aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-08-24 00:28:22 +0800
committerGitHub <noreply@github.com>2024-08-23 16:28:22 +0000
commiteb34e71e22177fb2d8072522eb7f3e5401b84eea (patch)
tree1f94ad86d0e5efbbfc9d34aae6bed9275637c6ca /src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
parent70679d342c65ef8a07b5729054ef64e3fb36d46e (diff)
downloadGT5-Unofficial-eb34e71e22177fb2d8072522eb7f3e5401b84eea.tar.gz
GT5-Unofficial-eb34e71e22177fb2d8072522eb7f3e5401b84eea.tar.bz2
GT5-Unofficial-eb34e71e22177fb2d8072522eb7f3e5401b84eea.zip
Add Structure Update button (#2941)
* trigger * structure update button --------- Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java')
-rw-r--r--src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java b/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
index 67e6a72776..66eee78822 100644
--- a/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
+++ b/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
@@ -360,4 +360,33 @@ public interface ControllerWithOptionalFeatures extends IVoidable, IRecipeLockab
}
return (ButtonWidget) button;
}
+
+ Pos2d getStructureUpdateButtonPos();
+
+ int getStructureUpdateTime();
+
+ void setStructureUpdateTime(int time);
+
+ default ButtonWidget createStructureUpdateButton(IWidgetBuilder<?> builder) {
+ Widget button = new ButtonWidget().setOnClick((clickData, widget) -> { setStructureUpdateTime(1); })
+ .setPlayClickSound(true)
+ .setBackground(() -> {
+ List<UITexture> ret = new ArrayList<>();
+ if (getStructureUpdateTime() > -20) {
+ ret.add(GT_UITextures.BUTTON_STANDARD_PRESSED);
+ } else {
+ ret.add(GT_UITextures.BUTTON_STANDARD);
+ }
+ ret.add(GT_UITextures.OVERLAY_BUTTON_STRUCTURE_UPDATE);
+ return ret.toArray(new IDrawable[0]);
+ })
+ .attachSyncer(
+ new FakeSyncWidget.IntegerSyncer(this::getStructureUpdateTime, this::setStructureUpdateTime),
+ builder)
+ .addTooltip(StatCollector.translateToLocal("GT5U.gui.button.structure_update"))
+ .setTooltipShowUpDelay(TOOLTIP_DELAY)
+ .setPos(getStructureUpdateButtonPos())
+ .setSize(16, 16);
+ return (ButtonWidget) button;
+ }
}