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 | |
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')
11 files changed, 63 insertions, 12 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 diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java index d1c4d189dd..efdf055bb2 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java @@ -339,11 +339,6 @@ public class GregtechMetaTileEntity_IndustrialArcFurnace } @Override - public void onMachineBlockUpdate() { - mUpdate = 100; - } - - @Override public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) { super.getWailaNBTData(player, tile, tag, world, x, y, z); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java index 050fa19fd9..a245f696f9 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/steam/GregtechMetaTileEntity_SteamWasher.java @@ -476,7 +476,7 @@ public class GregtechMetaTileEntity_SteamWasher extends GregtechMeta_SteamMultiB public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); if (aBaseMetaTileEntity.isServerSide()) { - if (mUpdate < 0) mUpdate = 300; + if (mUpdate < -250) mUpdate = 50; if ((aTick % 1200) == 0) { isBroken = true; } diff --git a/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java b/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java index c811c2f9b0..94b120a3e9 100644 --- a/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java +++ b/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java @@ -287,6 +287,11 @@ public abstract class KubaTechGTMultiBlockBase<T extends GT_MetaTileEntity_Exten } @Override + public Pos2d getStructureUpdateButtonPos() { + return new Pos2d(174, 148 - (slotWidgets.size() * 18)); + } + + @Override public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { builder.widget( new DrawableWidget().setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) @@ -312,7 +317,8 @@ public abstract class KubaTechGTMultiBlockBase<T extends GT_MetaTileEntity_Exten .widget(createVoidExcessButton(builder)) .widget(createInputSeparationButton(builder)) .widget(createBatchModeButton(builder)) - .widget(createLockToSingleRecipeButton(builder)); + .widget(createLockToSingleRecipeButton(builder)) + .widget(createStructureUpdateButton(builder)); DynamicPositionedRow configurationElements = new DynamicPositionedRow(); addConfigurationWidgets(configurationElements, buildContext); diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java index a45e66142b..4df5a995b5 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java @@ -1039,7 +1039,8 @@ public class GT_MetaTileEntity_ExtremeIndustrialGreenhouse .widget(createVoidExcessButton(builder)) .widget(createInputSeparationButton(builder)) .widget(createBatchModeButton(builder)) - .widget(createLockToSingleRecipeButton(builder)); + .widget(createLockToSingleRecipeButton(builder)) + .widget(createStructureUpdateButton(builder)); DynamicPositionedRow configurationElements = new DynamicPositionedRow(); addConfigurationWidgets(configurationElements, buildContext); diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java index 10558187af..aecebe8da9 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java @@ -426,7 +426,7 @@ public class GT_MetaTileEntity_MegaIndustrialApiary super.onPostTick(aBaseMetaTileEntity, aTick); if (aBaseMetaTileEntity.isServerSide()) { // TODO: Look for proper fix - if (mUpdate < 0) mUpdate = 600; + if (mUpdate < -550) mUpdate = 50; } else { if (aBaseMetaTileEntity.isActive() && aTick % 100 == 0) { int[] abc = new int[] { 0, -2, 7 }; @@ -754,7 +754,8 @@ public class GT_MetaTileEntity_MegaIndustrialApiary .widget(createVoidExcessButton(builder)) .widget(createInputSeparationButton(builder)) .widget(createBatchModeButton(builder)) - .widget(createLockToSingleRecipeButton(builder)); + .widget(createLockToSingleRecipeButton(builder)) + .widget(createStructureUpdateButton(builder)); DynamicPositionedRow configurationElements = new DynamicPositionedRow(); addConfigurationWidgets(configurationElements, buildContext); diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang index 43845d9b37..b8540b6c5a 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -472,6 +472,7 @@ GT5U.gui.button.input_separation=Input Separation GT5U.gui.button.mode_switch=Mode Switch GT5U.gui.button.batch_mode=Batch Mode GT5U.gui.button.lock_recipe=Lock Recipe +GT5U.gui.button.structure_update=Update Structure GT5U.gui.button.down_tier=Down Tier GT5U.gui.button.tier=Tier: GT5U.gui.button.forbidden=ยง4Cannot change mode for this machine diff --git a/src/main/resources/assets/gregtech/textures/gui/overlay_button/structure_update.png b/src/main/resources/assets/gregtech/textures/gui/overlay_button/structure_update.png Binary files differnew file mode 100644 index 0000000000..6c8996c7a5 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/overlay_button/structure_update.png |