From 22d43779a73af3cf75ca715368eab334be8e0389 Mon Sep 17 00:00:00 2001 From: Zorbatron <46525467+Zorbatron@users.noreply.github.com> Date: Thu, 27 Nov 2025 18:00:31 -0500 Subject: [PATCH 1/3] Remove nested lang keys in dynamic keys --- src/main/java/gregtech/api/cover/CoverWithUI.java | 11 +++++++++++ .../java/gregtech/common/covers/CoverFluidFilter.java | 7 +++---- .../gregtech/common/covers/CoverFluidVoiding.java | 8 +++----- .../java/gregtech/common/covers/CoverItemFilter.java | 7 +++---- .../java/gregtech/common/covers/CoverItemVoiding.java | 8 +++----- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/main/java/gregtech/api/cover/CoverWithUI.java b/src/main/java/gregtech/api/cover/CoverWithUI.java index 8802f23fc2f..100ed55e234 100644 --- a/src/main/java/gregtech/api/cover/CoverWithUI.java +++ b/src/main/java/gregtech/api/cover/CoverWithUI.java @@ -33,6 +33,9 @@ import com.cleanroommc.modularui.widgets.ToggleButton; import com.cleanroommc.modularui.widgets.layout.Flow; import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +import java.util.function.BooleanSupplier; public interface CoverWithUI extends Cover, IUIHolder, IGuiHolder { @@ -117,6 +120,14 @@ default ParentWidget createSettingsRow() { return new ParentWidget<>().height(16).widthRel(1.0f).marginBottom(2); } + /** + * Create a dynamic lang key that switches between {@code cover.generic.enabled} and {@code cover.generic.disabled} + * depending on the result of the given boolean supplier. + */ + default IKey createEnabledKey(@NotNull BooleanSupplier enabledState) { + return IKey.lang(() -> enabledState.getAsBoolean() ? "cover.generic.enabled" : "cover.generic.disabled"); + } + default int getIncrementValue(MouseData data) { int adjust = 1; if (data.shift) adjust *= 4; diff --git a/src/main/java/gregtech/common/covers/CoverFluidFilter.java b/src/main/java/gregtech/common/covers/CoverFluidFilter.java index e178b0441de..d6672472244 100644 --- a/src/main/java/gregtech/common/covers/CoverFluidFilter.java +++ b/src/main/java/gregtech/common/covers/CoverFluidFilter.java @@ -166,10 +166,9 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan .coverChildrenHeight() .setEnabledIf(b -> getFilterMode() != FluidFilterMode.FILTER_BOTH) .child(new ToggleButton() - .overlay(IKey.dynamic(() -> IKey.lang(allowFlow ? - "cover.generic.enabled" : - "cover.generic.disabled").get()) - .color(Color.WHITE.main).shadow(false)) + .overlay(createEnabledKey(() -> this.allowFlow) + .color(Color.WHITE.main) + .shadow(false)) .tooltip(tooltip -> tooltip .addLine(IKey.lang("cover.filter.allow_flow.tooltip"))) .size(72, 18) diff --git a/src/main/java/gregtech/common/covers/CoverFluidVoiding.java b/src/main/java/gregtech/common/covers/CoverFluidVoiding.java index 750a97de15f..210f8325415 100644 --- a/src/main/java/gregtech/common/covers/CoverFluidVoiding.java +++ b/src/main/java/gregtech/common/covers/CoverFluidVoiding.java @@ -24,7 +24,6 @@ import codechicken.lib.render.pipeline.IVertexOperation; import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.Matrix4; -import com.cleanroommc.modularui.api.drawable.IKey; import com.cleanroommc.modularui.factory.GuiData; import com.cleanroommc.modularui.factory.SidedPosGuiData; import com.cleanroommc.modularui.screen.ModularPanel; @@ -79,16 +78,15 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan @Override protected ParentWidget createUI(GuiData data, PanelSyncManager syncManager) { - var isWorking = new BooleanSyncValue(this::isWorkingEnabled, this::setWorkingEnabled); + // noinspection DuplicatedCode + BooleanSyncValue isWorking = new BooleanSyncValue(this::isWorkingEnabled, this::setWorkingEnabled); return super.createUI(data, syncManager) .child(Flow.row().height(18).widthRel(1f) .marginBottom(2) .child(new ToggleButton() .value(isWorking) - .overlay(IKey.dynamic(() -> IKey.lang(this.isWorkingAllowed ? - "behaviour.soft_hammer.enabled" : - "behaviour.soft_hammer.disabled").get()) + .overlay(createEnabledKey(() -> this.isWorkingAllowed) .color(Color.WHITE.darker(1))) .widthRel(0.6f) .left(0))); diff --git a/src/main/java/gregtech/common/covers/CoverItemFilter.java b/src/main/java/gregtech/common/covers/CoverItemFilter.java index 35a418d50cd..76dfcc481bd 100644 --- a/src/main/java/gregtech/common/covers/CoverItemFilter.java +++ b/src/main/java/gregtech/common/covers/CoverItemFilter.java @@ -168,10 +168,9 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan .coverChildrenHeight() .setEnabledIf(b -> getFilterMode() != ItemFilterMode.FILTER_BOTH) .child(new ToggleButton() - .overlay(IKey.dynamic(() -> IKey.lang(allowFlow ? - "cover.generic.enabled" : - "cover.generic.disabled").get()) - .color(Color.WHITE.main).shadow(false)) + .overlay(createEnabledKey(() -> this.allowFlow) + .color(Color.WHITE.main) + .shadow(false)) .tooltip(tooltip -> tooltip .addLine(IKey.lang("cover.filter.allow_flow.tooltip"))) .size(72, 18) diff --git a/src/main/java/gregtech/common/covers/CoverItemVoiding.java b/src/main/java/gregtech/common/covers/CoverItemVoiding.java index 234ebb70fcc..cb3051c229d 100644 --- a/src/main/java/gregtech/common/covers/CoverItemVoiding.java +++ b/src/main/java/gregtech/common/covers/CoverItemVoiding.java @@ -21,7 +21,6 @@ import codechicken.lib.render.pipeline.IVertexOperation; import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.Matrix4; -import com.cleanroommc.modularui.api.drawable.IKey; import com.cleanroommc.modularui.factory.GuiData; import com.cleanroommc.modularui.factory.SidedPosGuiData; import com.cleanroommc.modularui.screen.ModularPanel; @@ -80,16 +79,15 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan @Override protected ParentWidget createUI(GuiData data, PanelSyncManager guiSyncManager) { - var isWorking = new BooleanSyncValue(this::isWorkingEnabled, this::setWorkingEnabled); + // noinspection DuplicatedCode + BooleanSyncValue isWorking = new BooleanSyncValue(this::isWorkingEnabled, this::setWorkingEnabled); return super.createUI(data, guiSyncManager) .child(Flow.row().height(18).widthRel(1f) .marginBottom(2) .child(new ToggleButton() .value(isWorking) - .overlay(IKey.dynamic(() -> IKey.lang(this.isWorkingAllowed ? - "behaviour.soft_hammer.enabled" : - "behaviour.soft_hammer.disabled").get()) + .overlay(createEnabledKey(() -> this.isWorkingAllowed) .color(Color.WHITE.darker(1))) .widthRel(0.6f) .left(0))); From fdd9007bab6324dba910ec771f2677617ffde382 Mon Sep 17 00:00:00 2001 From: Zorbatron <46525467+Zorbatron@users.noreply.github.com> Date: Fri, 28 Nov 2025 10:38:02 -0500 Subject: [PATCH 2/3] Fix accidental change of lang key for fluid/item voiding covers --- src/main/java/gregtech/api/cover/CoverWithUI.java | 10 +++++++--- .../java/gregtech/common/covers/CoverFluidFilter.java | 2 +- .../java/gregtech/common/covers/CoverFluidVoiding.java | 2 +- .../java/gregtech/common/covers/CoverItemFilter.java | 2 +- .../java/gregtech/common/covers/CoverItemVoiding.java | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/gregtech/api/cover/CoverWithUI.java b/src/main/java/gregtech/api/cover/CoverWithUI.java index 100ed55e234..b557e38cced 100644 --- a/src/main/java/gregtech/api/cover/CoverWithUI.java +++ b/src/main/java/gregtech/api/cover/CoverWithUI.java @@ -122,10 +122,14 @@ default ParentWidget createSettingsRow() { /** * Create a dynamic lang key that switches between {@code cover.generic.enabled} and {@code cover.generic.disabled} - * depending on the result of the given boolean supplier. + * depending on the result of the given boolean supplier.
+ * + * @param keyBase the base of the lang key to use. {@code .enabled} and {@code .disabled} will be appended. */ - default IKey createEnabledKey(@NotNull BooleanSupplier enabledState) { - return IKey.lang(() -> enabledState.getAsBoolean() ? "cover.generic.enabled" : "cover.generic.disabled"); + default IKey createEnabledKey(@NotNull String keyBase, @NotNull BooleanSupplier enabledState) { + String enabled = keyBase + ".enabled"; + String disabled = keyBase + ".disabled"; + return IKey.lang(() -> enabledState.getAsBoolean() ? enabled : disabled); } default int getIncrementValue(MouseData data) { diff --git a/src/main/java/gregtech/common/covers/CoverFluidFilter.java b/src/main/java/gregtech/common/covers/CoverFluidFilter.java index d6672472244..d5d7ae1086e 100644 --- a/src/main/java/gregtech/common/covers/CoverFluidFilter.java +++ b/src/main/java/gregtech/common/covers/CoverFluidFilter.java @@ -166,7 +166,7 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan .coverChildrenHeight() .setEnabledIf(b -> getFilterMode() != FluidFilterMode.FILTER_BOTH) .child(new ToggleButton() - .overlay(createEnabledKey(() -> this.allowFlow) + .overlay(createEnabledKey("cover.generic", () -> this.allowFlow) .color(Color.WHITE.main) .shadow(false)) .tooltip(tooltip -> tooltip diff --git a/src/main/java/gregtech/common/covers/CoverFluidVoiding.java b/src/main/java/gregtech/common/covers/CoverFluidVoiding.java index 210f8325415..78384f22dd5 100644 --- a/src/main/java/gregtech/common/covers/CoverFluidVoiding.java +++ b/src/main/java/gregtech/common/covers/CoverFluidVoiding.java @@ -86,7 +86,7 @@ protected ParentWidget createUI(GuiData data, PanelSyncManager syncManager) { .marginBottom(2) .child(new ToggleButton() .value(isWorking) - .overlay(createEnabledKey(() -> this.isWorkingAllowed) + .overlay(createEnabledKey("behaviour.soft_hammer", () -> this.isWorkingAllowed) .color(Color.WHITE.darker(1))) .widthRel(0.6f) .left(0))); diff --git a/src/main/java/gregtech/common/covers/CoverItemFilter.java b/src/main/java/gregtech/common/covers/CoverItemFilter.java index 76dfcc481bd..274afc462d3 100644 --- a/src/main/java/gregtech/common/covers/CoverItemFilter.java +++ b/src/main/java/gregtech/common/covers/CoverItemFilter.java @@ -168,7 +168,7 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan .coverChildrenHeight() .setEnabledIf(b -> getFilterMode() != ItemFilterMode.FILTER_BOTH) .child(new ToggleButton() - .overlay(createEnabledKey(() -> this.allowFlow) + .overlay(createEnabledKey("cover.generic", () -> this.allowFlow) .color(Color.WHITE.main) .shadow(false)) .tooltip(tooltip -> tooltip diff --git a/src/main/java/gregtech/common/covers/CoverItemVoiding.java b/src/main/java/gregtech/common/covers/CoverItemVoiding.java index cb3051c229d..b63f95b319d 100644 --- a/src/main/java/gregtech/common/covers/CoverItemVoiding.java +++ b/src/main/java/gregtech/common/covers/CoverItemVoiding.java @@ -87,7 +87,7 @@ protected ParentWidget createUI(GuiData data, PanelSyncManager guiSyncMana .marginBottom(2) .child(new ToggleButton() .value(isWorking) - .overlay(createEnabledKey(() -> this.isWorkingAllowed) + .overlay(createEnabledKey("behaviour.soft_hammer", () -> this.isWorkingAllowed) .color(Color.WHITE.darker(1))) .widthRel(0.6f) .left(0))); From 3a739d0fb89ba6c2adcdc37fbe7b5e57e56b1c86 Mon Sep 17 00:00:00 2001 From: Zorbatron <46525467+Zorbatron@users.noreply.github.com> Date: Fri, 28 Nov 2025 22:53:58 -0500 Subject: [PATCH 3/3] remove noinspection --- src/main/java/gregtech/common/covers/CoverFluidVoiding.java | 1 - src/main/java/gregtech/common/covers/CoverItemVoiding.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/main/java/gregtech/common/covers/CoverFluidVoiding.java b/src/main/java/gregtech/common/covers/CoverFluidVoiding.java index 78384f22dd5..a1374655bdf 100644 --- a/src/main/java/gregtech/common/covers/CoverFluidVoiding.java +++ b/src/main/java/gregtech/common/covers/CoverFluidVoiding.java @@ -78,7 +78,6 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan @Override protected ParentWidget createUI(GuiData data, PanelSyncManager syncManager) { - // noinspection DuplicatedCode BooleanSyncValue isWorking = new BooleanSyncValue(this::isWorkingEnabled, this::setWorkingEnabled); return super.createUI(data, syncManager) diff --git a/src/main/java/gregtech/common/covers/CoverItemVoiding.java b/src/main/java/gregtech/common/covers/CoverItemVoiding.java index b63f95b319d..95cfa8c8241 100644 --- a/src/main/java/gregtech/common/covers/CoverItemVoiding.java +++ b/src/main/java/gregtech/common/covers/CoverItemVoiding.java @@ -79,7 +79,6 @@ public ModularPanel buildUI(SidedPosGuiData guiData, PanelSyncManager guiSyncMan @Override protected ParentWidget createUI(GuiData data, PanelSyncManager guiSyncManager) { - // noinspection DuplicatedCode BooleanSyncValue isWorking = new BooleanSyncValue(this::isWorkingEnabled, this::setWorkingEnabled); return super.createUI(data, guiSyncManager)