diff options
author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-08-24 00:28:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-23 16:28:22 +0000 |
commit | eb34e71e22177fb2d8072522eb7f3e5401b84eea (patch) | |
tree | 1f94ad86d0e5efbbfc9d34aae6bed9275637c6ca /src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java | |
parent | 70679d342c65ef8a07b5729054ef64e3fb36d46e (diff) | |
download | GT5-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.java | 29 |
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; + } } |