diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/api/gui/modularui/GT_UITextures.java | 8 | ||||
-rw-r--r-- | src/main/java/gregtech/api/util/GT_LanguageManager.java | 4 | ||||
-rw-r--r-- | src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java | 158 | ||||
-rw-r--r-- | src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java | 12 | ||||
-rw-r--r-- | src/main/java/gregtech/common/covers/GT_Cover_Pump.java | 158 | ||||
-rw-r--r-- | src/main/resources/assets/gregtech/textures/gui/overlay_button/allow_output.png | bin | 0 -> 2962 bytes | |||
-rw-r--r-- | src/main/resources/assets/gregtech/textures/gui/overlay_button/block_output.png | bin | 0 -> 2945 bytes | |||
-rw-r--r-- | src/main/resources/assets/gregtech/textures/gui/overlay_button/use_inverted_processing_state.png | bin | 0 -> 2937 bytes | |||
-rw-r--r-- | src/main/resources/assets/gregtech/textures/gui/overlay_button/use_processing_state.png | bin | 0 -> 2935 bytes |
9 files changed, 220 insertions, 120 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 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<ISerializableObject.LegacyCoverData> mBlockWidget = null; + private CoverDataFollower_ToggleButtonWidget<ISerializableObject.LegacyCoverData> 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<GT_Cover_Fluid coverData.condition = Conditional.Conditional; return coverData; }, - widget -> 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<GT_Cover_Fluid coverData.condition = Conditional.Inverted; return coverData; }, - widget -> 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<GT_Cover_Fluid .setPos(startX, startY)) .widget( new TextWidget(GT_Utility.trans("229", "Import/Export")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 4, 4 + startY + spaceY * 0)) + .setPos(3 + startX + spaceX * 4, 4 + startY + spaceY * 0)) .widget( new TextWidget(GT_Utility.trans("230", "Conditional")).setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 4, 4 + startY + spaceY * 1)) + .setPos(3 + startX + spaceX * 4, 4 + startY + spaceY * 1)) .widget( new TextWidget(GT_Utility.trans("208", " L")).setDefaultColor(COLOR_TEXT_GRAY.get()) .setPos(startX + spaceX * 4, 4 + startY + spaceY * 2)) diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java index 278bf488e3..dd10e7e976 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java @@ -1,5 +1,7 @@ package gregtech.common.covers; +import java.util.Arrays; + import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; @@ -199,6 +201,9 @@ public class GT_Cover_Pump extends GT_CoverBehavior { private static final int spaceX = 18; private static final int spaceY = 18; + private CoverDataFollower_ToggleButtonWidget<ISerializableObject.LegacyCoverData> mBlockWidget = null; + private CoverDataFollower_ToggleButtonWidget<ISerializableObject.LegacyCoverData> 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 Binary files differnew file mode 100644 index 0000000000..781512788a --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/overlay_button/allow_output.png 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 Binary files differnew file mode 100644 index 0000000000..168059b7f9 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/overlay_button/block_output.png 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 Binary files differnew file mode 100644 index 0000000000..28a767ecee --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_inverted_processing_state.png 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 Binary files differnew file mode 100644 index 0000000000..47f991c50a --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/gui/overlay_button/use_processing_state.png |