From d81bfc14416f039805145484182389b52ced80c3 Mon Sep 17 00:00:00 2001 From: Guillaume Mercier Date: Wed, 23 Aug 2023 00:41:27 -0400 Subject: Update the conditionals buttons and tooltips on covers to reflect their actual effects (#2244) * Update redstone buttons and tooltips to better reflect actual use * Spotless Apply * Update GT_Cover_FluidRegulator.java * Update GT_Cover_FluidRegulator.java * Typo fix, Icon Improved and interactive blocking ui - Fixed a typo in the world machine - Fixed double button situation for conveyor belts. - There was never any issue, the testing methodology gave me invalid results. - Conveyor behaviour is in line with all the other covers affected by this PR/Branch. - Updated icon for the machine state to be a miniature machine controller cover. - Made the block/allow input section more interactive in order to better reflect the actual effect of these buttons. - In import mode, it actually blocks the machine from outputting from that side. * typos I can't write to save myself sometimes * Better text alignment - Better text alignment * fix typos I swear I can't write to save myself. --------- Co-authored-by: Martin Robertz --- .../gregtech/api/gui/modularui/GT_UITextures.java | 8 ++ .../java/gregtech/api/util/GT_LanguageManager.java | 4 + .../gregtech/common/covers/GT_Cover_Conveyor.java | 158 +++++++++++++-------- .../common/covers/GT_Cover_FluidRegulator.java | 12 +- .../java/gregtech/common/covers/GT_Cover_Pump.java | 158 +++++++++++++-------- .../textures/gui/overlay_button/allow_output.png | Bin 0 -> 2962 bytes .../textures/gui/overlay_button/block_output.png | Bin 0 -> 2945 bytes .../use_inverted_processing_state.png | Bin 0 -> 2937 bytes .../gui/overlay_button/use_processing_state.png | Bin 0 -> 2935 bytes 9 files changed, 220 insertions(+), 120 deletions(-) create mode 100644 src/main/resources/assets/gregtech/textures/gui/overlay_button/allow_output.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/overlay_button/block_output.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/overlay_button/use_inverted_processing_state.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/overlay_button/use_processing_state.png 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 8d0a63702c..83aeb1d029 100644 --- a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java +++ b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java @@ -302,12 +302,16 @@ public class GT_UITextures { .fullImage(GregTech.ID, "gui/overlay_button/autooutput_fluid"); public static final UITexture OVERLAY_BUTTON_ALLOW_INPUT = UITexture .fullImage(GregTech.ID, "gui/overlay_button/allow_input"); + public static final UITexture OVERLAY_BUTTON_ALLOW_OUTPUT = UITexture + .fullImage(GregTech.ID, "gui/overlay_button/allow_output"); public static final UITexture OVERLAY_BUTTON_AUTOPULL_ME = UITexture .fullImage(GregTech.ID, "gui/overlay_button/auto_pull_me"); public static final UITexture OVERLAY_BUTTON_AUTOPULL_ME_DISABLED = UITexture .fullImage(GregTech.ID, "gui/overlay_button/auto_pull_me_disabled"); public static final UITexture OVERLAY_BUTTON_BLOCK_INPUT = UITexture .fullImage(GregTech.ID, "gui/overlay_button/block_input"); + public static final UITexture OVERLAY_BUTTON_BLOCK_OUTPUT = UITexture + .fullImage(GregTech.ID, "gui/overlay_button/block_output"); public static final UITexture OVERLAY_BUTTON_ARROW_GREEN_UP = UITexture .fullImage(GregTech.ID, "gui/overlay_button/arrow_green_up"); public static final UITexture OVERLAY_BUTTON_ARROW_GREEN_DOWN = UITexture @@ -358,6 +362,10 @@ public class GT_UITextures { public static final UITexture OVERLAY_BUTTON_TANK_VOID_ALL = UITexture .fullImage(GregTech.ID, "gui/overlay_button/tank_void_all"); public static final UITexture OVERLAY_BUTTON_NEI = UITexture.fullImage(GregTech.ID, "gui/overlay_button/nei"); + public static final UITexture OVERLAY_BUTTON_USE_PROCESSING_STATE = UITexture + .fullImage(GregTech.ID, "gui/overlay_button/use_processing_state.png"); + public static final UITexture OVERLAY_BUTTON_USE_INVERTED_PROCESSING_STATE = UITexture + .fullImage(GregTech.ID, "gui/overlay_button/use_inverted_processing_state.png"); /** * Can adjust size as needed. diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java index 708048cf42..76e59eed22 100644 --- a/src/main/java/gregtech/api/util/GT_LanguageManager.java +++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java @@ -495,6 +495,10 @@ public class GT_LanguageManager { addStringLocalization("Interaction_DESCRIPTION_Index_341.1", "Tier 1 cooling disabled"); addStringLocalization("Interaction_DESCRIPTION_Index_342", "Tier 2 cooling enabled"); addStringLocalization("Interaction_DESCRIPTION_Index_342.1", "Tier 2 cooling disabled"); + addStringLocalization("Interaction_DESCRIPTION_Index_343", "Use Machine Processing State"); + addStringLocalization("Interaction_DESCRIPTION_Index_343.1", "Use Inverted Machine Processing State"); + addStringLocalization("Interaction_DESCRIPTION_Index_344", "Input Blocking"); + addStringLocalization("Interaction_DESCRIPTION_Index_344.1", "Output Blocking"); addStringLocalization("Interaction_DESCRIPTION_Index_500", "Fitting: Loose - More Flow"); addStringLocalization("Interaction_DESCRIPTION_Index_501", "Fitting: Tight - More Efficiency"); addStringLocalization("Interaction_DESCRIPTION_Index_502", "Mining chunk loading enabled"); diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java b/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java index bbea07b450..0ac0b3b3db 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java @@ -2,6 +2,8 @@ package gregtech.common.covers; import static gregtech.api.util.GT_Utility.moveMultipleItemStacks; +import java.util.Arrays; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; @@ -189,6 +191,9 @@ public class GT_Cover_Conveyor extends GT_CoverBehavior { private static final int spaceX = 18; private static final int spaceY = 18; + private CoverDataFollower_ToggleButtonWidget mBlockWidget = null; + private CoverDataFollower_ToggleButtonWidget mAllowWidget = null; + public ConveyorUIFactory(GT_CoverUIBuildContext buildContext) { super(buildContext); } @@ -196,75 +201,114 @@ public class GT_Cover_Conveyor extends GT_CoverBehavior { @SuppressWarnings("PointlessArithmeticExpression") @Override protected void addUIWidgets(ModularWindow.Builder builder) { - builder - .widget( - new CoverDataControllerWidget.CoverDataIndexedControllerWidget_ToggleButtons<>( - this::getCoverData, - this::setCoverData, - GT_Cover_Conveyor.this, - (id, coverData) -> !getClickable(id, convert(coverData)), - (id, coverData) -> new ISerializableObject.LegacyCoverData( - getNewCoverVariable(id, convert(coverData)))) - .addToggleButton( - 0, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_EXPORT) - .addTooltip(GT_Utility.trans("006", "Export")) - .setPos(spaceX * 0, spaceY * 0)) - .addToggleButton( - 1, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_IMPORT) - .addTooltip(GT_Utility.trans("007", "Import")) - .setPos(spaceX * 1, spaceY * 0)) - .addToggleButton( - 2, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_CHECKMARK) - .addTooltip(GT_Utility.trans("224", "Always On")) - .setPos(spaceX * 0, spaceY * 1)) - .addToggleButton( - 3, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_REDSTONE_ON) - .addTooltip(GT_Utility.trans("225", "Active with Redstone Signal")) - .setPos(spaceX * 1, spaceY * 1)) - .addToggleButton( - 4, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_REDSTONE_OFF) - .addTooltip(GT_Utility.trans("226", "Inactive with Redstone Signal")) - .setPos(spaceX * 2, spaceY * 1)) - .addToggleButton( - 5, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_ALLOW_INPUT) - .addTooltip(GT_Utility.trans("227", "Allow Input")) - .setPos(spaceX * 0, spaceY * 2)) - .addToggleButton( - 6, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_BLOCK_INPUT) - .addTooltip(GT_Utility.trans("228", "Block Input")) - .setPos(spaceX * 1, spaceY * 2)) - .setPos(startX, startY)) + builder.widget( + new CoverDataControllerWidget.CoverDataIndexedControllerWidget_ToggleButtons<>( + this::getCoverData, + this::setCoverData, + GT_Cover_Conveyor.this, + (id, coverData) -> !getClickable(id, convert(coverData)), + (id, coverData) -> new ISerializableObject.LegacyCoverData( + getNewCoverVariable(id, convert(coverData)))) + .addToggleButton( + 0, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_EXPORT) + .addTooltip(GT_Utility.trans("006", "Export")) + .setPos(spaceX * 0, spaceY * 0)) + .addToggleButton( + 1, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_IMPORT) + .addTooltip(GT_Utility.trans("007", "Import")) + .setPos(spaceX * 1, spaceY * 0)) + .addToggleButton( + 2, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_CHECKMARK) + .addTooltip(GT_Utility.trans("224", "Always On")) + .setPos(spaceX * 0, spaceY * 1)) + .addToggleButton( + 3, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_USE_PROCESSING_STATE) + .addTooltip(GT_Utility.trans("343", "Use Machine Processing State")) + .setPos(spaceX * 1, spaceY * 1)) + .addToggleButton( + 4, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget + .setStaticTexture(GT_UITextures.OVERLAY_BUTTON_USE_INVERTED_PROCESSING_STATE) + .addTooltip(GT_Utility.trans("343.1", "Use Inverted Machine Processing State")) + .setPos(spaceX * 2, spaceY * 1)) + .addToggleButton(5, CoverDataFollower_ToggleButtonWidget.ofDisableable(), widget -> { + mAllowWidget = widget; + widget.setTextureGetter(i -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return coverData == null || coverData.get() % 2 == 0 + ? GT_UITextures.OVERLAY_BUTTON_ALLOW_INPUT + : GT_UITextures.OVERLAY_BUTTON_ALLOW_OUTPUT; + }) + .dynamicTooltip(() -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return Arrays.asList( + coverData == null || coverData.get() % 2 == 0 + ? GT_Utility.trans("314", "Allow Input") + : GT_Utility.trans("312", "Allow Output")); + }) + .setPos(spaceX * 0, spaceY * 2); + }) + .addToggleButton(6, CoverDataFollower_ToggleButtonWidget.ofDisableable(), widget -> { + mBlockWidget = widget; + widget.setTextureGetter(i -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return coverData == null || coverData.get() % 2 == 0 + ? GT_UITextures.OVERLAY_BUTTON_BLOCK_INPUT + : GT_UITextures.OVERLAY_BUTTON_BLOCK_OUTPUT; + }) + .dynamicTooltip(() -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return Arrays.asList( + coverData == null || coverData.get() % 2 == 0 + ? GT_Utility.trans("313", "Block Input") + : GT_Utility.trans("311", "Block Output")); + }) + .setPos(spaceX * 1, spaceY * 2); + }) + .setPos(startX, startY)) .widget( new TextWidget(GT_Utility.trans("229", "Import/Export")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 3 + startY + spaceY * 0)) + .setPos(3 + startX + spaceX * 3, 4 + startY + spaceY * 0)) .widget( new TextWidget(GT_Utility.trans("230", "Conditional")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 3 + startY + spaceY * 1)) - .widget( - new TextWidget(GT_Utility.trans("231", "Enable Input")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 3 + startY + spaceY * 2)); + .setPos(3 + startX + spaceX * 3, 4 + startY + spaceY * 1)) + .widget(TextWidget.dynamicString(() -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return coverData == null || coverData.get() % 2 == 0 ? GT_Utility.trans("344", "Input Blocking") + : GT_Utility.trans("344.1", "Output Blocking"); + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(3 + startX + spaceX * 3, 4 + startY + spaceY * 2)); } private int getNewCoverVariable(int id, int coverVariable) { switch (id) { case 0 -> { + if (mBlockWidget != null) { + mBlockWidget.notifyTooltipChange(); + } + if (mAllowWidget != null) { + mAllowWidget.notifyTooltipChange(); + } return coverVariable & ~0x1; } case 1 -> { + if (mBlockWidget != null) { + mBlockWidget.notifyTooltipChange(); + } + if (mAllowWidget != null) { + mAllowWidget.notifyTooltipChange(); + } return coverVariable | 0x1; } case 2 -> { diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java index 13796e0915..9afb2cf765 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java @@ -314,8 +314,8 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_REDSTONE_ON) - .addTooltip(GT_Utility.trans("225", "Active with Redstone Signal")) + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_USE_PROCESSING_STATE) + .addTooltip(GT_Utility.trans("343", "Use Machine Processing State")) .setPos(spaceX * 1, spaceY * 1)) .addFollower( CoverDataFollower_ToggleButtonWidget.ofDisableable(), @@ -324,8 +324,8 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_REDSTONE_OFF) - .addTooltip(GT_Utility.trans("226", "Inactive with Redstone Signal")) + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_USE_INVERTED_PROCESSING_STATE) + .addTooltip(GT_Utility.trans("343.1", "Use Inverted Machine Processing State")) .setPos(spaceX * 2, spaceY * 1)) .addFollower( new CoverDataFollower_TextFieldWidget<>(), @@ -382,10 +382,10 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase mBlockWidget = null; + private CoverDataFollower_ToggleButtonWidget mAllowWidget = null; + public PumpUIFactory(GT_CoverUIBuildContext buildContext) { super(buildContext); } @@ -206,75 +211,114 @@ public class GT_Cover_Pump extends GT_CoverBehavior { @SuppressWarnings("PointlessArithmeticExpression") @Override protected void addUIWidgets(ModularWindow.Builder builder) { - builder - .widget( - new CoverDataControllerWidget.CoverDataIndexedControllerWidget_ToggleButtons<>( - this::getCoverData, - this::setCoverData, - GT_Cover_Pump.this, - (id, coverData) -> !getClickable(id, convert(coverData)), - (id, coverData) -> new ISerializableObject.LegacyCoverData( - getNewCoverVariable(id, convert(coverData)))) - .addToggleButton( - 0, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_EXPORT) - .addTooltip(GT_Utility.trans("006", "Export")) - .setPos(spaceX * 0, spaceY * 0)) - .addToggleButton( - 1, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_IMPORT) - .addTooltip(GT_Utility.trans("007", "Import")) - .setPos(spaceX * 1, spaceY * 0)) - .addToggleButton( - 2, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_CHECKMARK) - .addTooltip(GT_Utility.trans("224", "Always On")) - .setPos(spaceX * 0, spaceY * 1)) - .addToggleButton( - 3, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_REDSTONE_ON) - .addTooltip(GT_Utility.trans("225", "Active with Redstone Signal")) - .setPos(spaceX * 1, spaceY * 1)) - .addToggleButton( - 4, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_REDSTONE_OFF) - .addTooltip(GT_Utility.trans("226", "Inactive with Redstone Signal")) - .setPos(spaceX * 2, spaceY * 1)) - .addToggleButton( - 5, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_ALLOW_INPUT) - .addTooltip(GT_Utility.trans("227", "Allow Input")) - .setPos(spaceX * 0, spaceY * 2)) - .addToggleButton( - 6, - CoverDataFollower_ToggleButtonWidget.ofDisableable(), - widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_BLOCK_INPUT) - .addTooltip(GT_Utility.trans("228", "Block Input")) - .setPos(spaceX * 1, spaceY * 2)) - .setPos(startX, startY)) + builder.widget( + new CoverDataControllerWidget.CoverDataIndexedControllerWidget_ToggleButtons<>( + this::getCoverData, + this::setCoverData, + GT_Cover_Pump.this, + (id, coverData) -> !getClickable(id, convert(coverData)), + (id, coverData) -> new ISerializableObject.LegacyCoverData( + getNewCoverVariable(id, convert(coverData)))) + .addToggleButton( + 0, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_EXPORT) + .addTooltip(GT_Utility.trans("006", "Export")) + .setPos(spaceX * 0, spaceY * 0)) + .addToggleButton( + 1, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_IMPORT) + .addTooltip(GT_Utility.trans("007", "Import")) + .setPos(spaceX * 1, spaceY * 0)) + .addToggleButton( + 2, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_CHECKMARK) + .addTooltip(GT_Utility.trans("224", "Always On")) + .setPos(spaceX * 0, spaceY * 1)) + .addToggleButton( + 3, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_USE_PROCESSING_STATE) + .addTooltip(GT_Utility.trans("343", "Use Machine Processing State")) + .setPos(spaceX * 1, spaceY * 1)) + .addToggleButton( + 4, + CoverDataFollower_ToggleButtonWidget.ofDisableable(), + widget -> widget + .setStaticTexture(GT_UITextures.OVERLAY_BUTTON_USE_INVERTED_PROCESSING_STATE) + .addTooltip(GT_Utility.trans("343.1", "Use Inverted Machine Processing State")) + .setPos(spaceX * 2, spaceY * 1)) + .addToggleButton(5, CoverDataFollower_ToggleButtonWidget.ofDisableable(), widget -> { + mAllowWidget = widget; + widget.setTextureGetter(i -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return coverData == null || coverData.get() % 2 == 0 + ? GT_UITextures.OVERLAY_BUTTON_ALLOW_INPUT + : GT_UITextures.OVERLAY_BUTTON_ALLOW_OUTPUT; + }) + .dynamicTooltip(() -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return Arrays.asList( + coverData == null || coverData.get() % 2 == 0 + ? GT_Utility.trans("314", "Allow Input") + : GT_Utility.trans("312", "Allow Output")); + }) + .setPos(spaceX * 0, spaceY * 2); + }) + .addToggleButton(6, CoverDataFollower_ToggleButtonWidget.ofDisableable(), widget -> { + mBlockWidget = widget; + widget.setTextureGetter(i -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return coverData == null || coverData.get() % 2 == 0 + ? GT_UITextures.OVERLAY_BUTTON_BLOCK_INPUT + : GT_UITextures.OVERLAY_BUTTON_BLOCK_OUTPUT; + }) + .dynamicTooltip(() -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return Arrays.asList( + coverData == null || coverData.get() % 2 == 0 + ? GT_Utility.trans("313", "Block Input") + : GT_Utility.trans("311", "Block Output")); + }) + .setPos(spaceX * 1, spaceY * 2); + }) + .setPos(startX, startY)) .widget( new TextWidget(GT_Utility.trans("229", "Import/Export")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 3 + startY + spaceY * 0)) + .setPos(3 + startX + spaceX * 3, 4 + startY + spaceY * 0)) .widget( new TextWidget(GT_Utility.trans("230", "Conditional")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 3 + startY + spaceY * 1)) - .widget( - new TextWidget(GT_Utility.trans("231", "Enable Input")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 3, 3 + startY + spaceY * 2)); + .setPos(3 + startX + spaceX * 3, 4 + startY + spaceY * 1)) + .widget(TextWidget.dynamicString(() -> { + ISerializableObject.LegacyCoverData coverData = getCoverData(); + return coverData == null || coverData.get() % 2 == 0 ? GT_Utility.trans("344", "Input Blocking") + : GT_Utility.trans("344.1", "Output Blocking"); + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(3 + startX + spaceX * 3, 4 + startY + spaceY * 2)); } private int getNewCoverVariable(int id, int coverVariable) { switch (id) { case 0 -> { + if (mBlockWidget != null) { + mBlockWidget.notifyTooltipChange(); + } + if (mAllowWidget != null) { + mAllowWidget.notifyTooltipChange(); + } return coverVariable & ~0x1; } case 1 -> { + if (mBlockWidget != null) { + mBlockWidget.notifyTooltipChange(); + } + if (mAllowWidget != null) { + mAllowWidget.notifyTooltipChange(); + } return coverVariable | 0x1; } case 2 -> { diff --git a/src/main/resources/assets/gregtech/textures/gui/overlay_button/allow_output.png b/src/main/resources/assets/gregtech/textures/gui/overlay_button/allow_output.png new file mode 100644 index 0000000000..781512788a Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/gui/overlay_button/allow_output.png differ diff --git a/src/main/resources/assets/gregtech/textures/gui/overlay_button/block_output.png b/src/main/resources/assets/gregtech/textures/gui/overlay_button/block_output.png new file mode 100644 index 0000000000..168059b7f9 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/gui/overlay_button/block_output.png differ diff --git a/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_inverted_processing_state.png b/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_inverted_processing_state.png new file mode 100644 index 0000000000..28a767ecee Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_inverted_processing_state.png differ diff --git a/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_processing_state.png b/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_processing_state.png new file mode 100644 index 0000000000..47f991c50a Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_processing_state.png differ -- cgit