aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
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
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')
-rw-r--r--src/main/java/gregtech/api/gui/modularui/GT_UITextures.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java29
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java18
4 files changed, 49 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
index 98612ad936..526ba1aa18 100644
--- a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
+++ b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
@@ -298,6 +298,8 @@ public class GT_UITextures {
.fullImage(GregTech.ID, "gui/overlay_button/batch_mode_off");
public static final UITexture OVERLAY_BUTTON_BATCH_MODE_OFF_DISABLED = UITexture
.fullImage(GregTech.ID, "gui/overlay_button/batch_mode_off_disabled");
+ public static final UITexture OVERLAY_BUTTON_STRUCTURE_UPDATE = UITexture
+ .fullImage(GregTech.ID, "gui/overlay_button/structure_update");
public static final UITexture OVERLAY_BUTTON_FORBIDDEN = UITexture
.fullImage(GregTech.ID, "gui/overlay_button/forbidden");
public static final UITexture OVERLAY_BUTTON_LOCKED = UITexture
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;
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java
index c7f0e6cdd5..15ce78fae3 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java
@@ -59,7 +59,7 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta
final IGregTechTileEntity base = getBaseMetaTileEntity();
mMachine = false;
mUpdated = false;
- mUpdate = 100;
+ mUpdate = 50;
if (getBaseMetaTileEntity().isServerSide()
&& !GregTech_API.isDummyWorld(getBaseMetaTileEntity().getWorld())) {
StructureLibAPI.sendAlignment(
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index e8b81bc966..4ffe82b1c2 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -2154,6 +2154,21 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
}
@Override
+ public Pos2d getStructureUpdateButtonPos() {
+ return new Pos2d(174, 130);
+ }
+
+ @Override
+ public int getStructureUpdateTime() {
+ return mUpdate;
+ }
+
+ @Override
+ public void setStructureUpdateTime(int time) {
+ mUpdate = time;
+ }
+
+ @Override
public boolean supportsVoidProtection() {
return false;
}
@@ -2405,7 +2420,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
.widget(createInputSeparationButton(builder))
.widget(createModeSwitchButton(builder))
.widget(createBatchModeButton(builder))
- .widget(createLockToSingleRecipeButton(builder));
+ .widget(createLockToSingleRecipeButton(builder))
+ .widget(createStructureUpdateButton(builder));
}
@Override