diff options
author | querns <33518699+querns@users.noreply.github.com> | 2023-09-09 08:39:16 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-09 15:39:16 +0200 |
commit | cac77610b54a76300227bdd2e6d576480ec7725f (patch) | |
tree | e95bd5e477ceb5976b36edf5ef4578fdec6ee9ce /src | |
parent | 505850f40010719ebff477fc5cac41f0786e0f41 (diff) | |
download | GT5-Unofficial-cac77610b54a76300227bdd2e6d576480ec7725f.tar.gz GT5-Unofficial-cac77610b54a76300227bdd2e6d576480ec7725f.tar.bz2 GT5-Unofficial-cac77610b54a76300227bdd2e6d576480ec7725f.zip |
Request drill changes, eliminates recipe info in drill GUI (#2285)
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/api/gui/widgets/GT_LockedWhileActiveButton.java (renamed from src/main/java/gregtech/api/gui/widgets/GT_DisabledWhileActiveButton.java) | 50 | ||||
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java | 50 | ||||
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java | 9 | ||||
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java | 8 |
4 files changed, 57 insertions, 60 deletions
diff --git a/src/main/java/gregtech/api/gui/widgets/GT_DisabledWhileActiveButton.java b/src/main/java/gregtech/api/gui/widgets/GT_LockedWhileActiveButton.java index e86589ac2a..9a93a8fadf 100644 --- a/src/main/java/gregtech/api/gui/widgets/GT_DisabledWhileActiveButton.java +++ b/src/main/java/gregtech/api/gui/widgets/GT_LockedWhileActiveButton.java @@ -1,9 +1,7 @@ package gregtech.api.gui.widgets; -import java.lang.ref.WeakReference; import java.util.Arrays; import java.util.List; -import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Supplier; @@ -21,17 +19,17 @@ import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.tileentity.IMachineProgress; -public class GT_DisabledWhileActiveButton extends ButtonWidget { +public class GT_LockedWhileActiveButton extends ButtonWidget { @NotNull - private final WeakReference<IMachineProgress> machineRef; + private final IMachineProgress machine; - public GT_DisabledWhileActiveButton(@NotNull IMachineProgress machine, @NotNull ModularWindow.Builder builder) { + public GT_LockedWhileActiveButton(@NotNull IMachineProgress machine, @NotNull ModularWindow.Builder builder) { super(); - machineRef = new WeakReference<>(machine); + this.machine = machine; super.attachSyncer( - new FakeSyncWidget.BooleanSyncer(() -> isMachineActive().orElse(true), a -> {}), + new FakeSyncWidget.BooleanSyncer(machine::isActive, a -> {}), builder, (widget, aBoolean) -> widget.notifyTooltipChange()); @@ -41,11 +39,11 @@ public class GT_DisabledWhileActiveButton extends ButtonWidget { @NotNull @Override public ButtonWidget setOnClick(@NotNull BiConsumer<ClickData, Widget> clickAction) { - return super.setOnClick((clickData, widget) -> isMachineActive().ifPresent(isActive -> { - if (!isActive) { + return super.setOnClick((clickData, widget) -> { + if (!machine.isActive()) { clickAction.accept(clickData, widget); } - })); + }); } @NotNull @@ -73,32 +71,20 @@ public class GT_DisabledWhileActiveButton extends ButtonWidget { } @NotNull - private Optional<Boolean> isMachineActive() { - return Optional.ofNullable(machineRef.get()) - .map(IMachineProgress::isActive); - } - - @NotNull private IDrawable[] appendLockedOverlay(@NotNull IDrawable[] drawables) { - return isMachineActive().map(isActive -> { - if (isActive) { - final IDrawable[] copy = Arrays.copyOf(drawables, drawables.length + 1); - copy[drawables.length] = GT_UITextures.OVERLAY_BUTTON_LOCKED; - return copy; - } - return drawables; - }) - .orElse(drawables); + if (machine.isActive()) { + final IDrawable[] copy = Arrays.copyOf(drawables, drawables.length + 1); + copy[drawables.length] = GT_UITextures.OVERLAY_BUTTON_LOCKED; + return copy; + } + return drawables; } @NotNull private List<String> generateTooltip() { - return isMachineActive().map(isActive -> { - if (isActive) { - return ImmutableList.of(StatCollector.translateToLocal("GT5U.gui.button.forbidden_while_running")); - } - return ImmutableList.<String>of(); - }) - .orElse(ImmutableList.of()); + if (machine.isActive()) { + return ImmutableList.of(StatCollector.translateToLocal("GT5U.gui.button.forbidden_while_running")); + } + return ImmutableList.of(); } } 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 a729342430..9d86608bf4 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 @@ -2289,28 +2289,30 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity && shouldDisplayCheckRecipeResult())) .widget(new CheckRecipeResultSyncer(() -> checkRecipeResult, (result) -> checkRecipeResult = result)); - // Display current recipe - screenElements.widget( - TextWidget.dynamicString(this::generateCurrentRecipeInfoString) - .setSynced(false) - .setTextAlignment(Alignment.CenterLeft) - .setEnabled( - widget -> (mOutputFluids != null && mOutputFluids.length > 0) - || (mOutputItems != null && mOutputItems.length > 0))) - .widget( - new FakeSyncWidget.ListSyncer<>( - () -> mOutputFluids != null ? Arrays.asList(mOutputFluids) : Collections.emptyList(), - val -> mOutputFluids = val.toArray(new FluidStack[0]), - NetworkUtils::writeFluidStack, - NetworkUtils::readFluidStack)) - .widget( - new FakeSyncWidget.ListSyncer<>( - () -> mOutputItems != null ? Arrays.asList(mOutputItems) : Collections.emptyList(), - val -> mOutputItems = val.toArray(new ItemStack[0]), - NetworkUtils::writeItemStack, - NetworkUtils::readItemStack)) - .widget(new FakeSyncWidget.IntegerSyncer(() -> mProgresstime, val -> mProgresstime = val)) - .widget(new FakeSyncWidget.IntegerSyncer(() -> mMaxProgresstime, val -> mMaxProgresstime = val)); + if (showRecipeTextInGUI()) { + // Display current recipe + screenElements.widget( + TextWidget.dynamicString(this::generateCurrentRecipeInfoString) + .setSynced(false) + .setTextAlignment(Alignment.CenterLeft) + .setEnabled( + widget -> (mOutputFluids != null && mOutputFluids.length > 0) + || (mOutputItems != null && mOutputItems.length > 0))) + .widget( + new FakeSyncWidget.ListSyncer<>( + () -> mOutputFluids != null ? Arrays.asList(mOutputFluids) : Collections.emptyList(), + val -> mOutputFluids = val.toArray(new FluidStack[0]), + NetworkUtils::writeFluidStack, + NetworkUtils::readFluidStack)) + .widget( + new FakeSyncWidget.ListSyncer<>( + () -> mOutputItems != null ? Arrays.asList(mOutputItems) : Collections.emptyList(), + val -> mOutputItems = val.toArray(new ItemStack[0]), + NetworkUtils::writeItemStack, + NetworkUtils::readItemStack)) + .widget(new FakeSyncWidget.IntegerSyncer(() -> mProgresstime, val -> mProgresstime = val)) + .widget(new FakeSyncWidget.IntegerSyncer(() -> mMaxProgresstime, val -> mMaxProgresstime = val)); + } screenElements.widget( new TextWidget(GT_Utility.trans("144", "Missing Turbine Rotor")).setDefaultColor(COLOR_TEXT_WHITE.get()) @@ -2328,6 +2330,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity })); } + protected boolean showRecipeTextInGUI() { + return true; + } + @TestOnly protected void setEnergyHatches(ArrayList<GT_MetaTileEntity_Hatch_Energy> EnergyHatches) { this.mEnergyHatches = EnergyHatches; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java index 983e6c5998..f40c70d2a4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java @@ -61,7 +61,7 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.gui.widgets.GT_DisabledWhileActiveButton; +import gregtech.api.gui.widgets.GT_LockedWhileActiveButton; import gregtech.api.interfaces.IChunkLoader; import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.ITexture; @@ -789,6 +789,11 @@ public abstract class GT_MetaTileEntity_DrillerBase .widget(new FakeSyncWidget.StringSyncer(() -> shutdownReason, newString -> shutdownReason = newString)); } + @Override + protected boolean showRecipeTextInGUI() { + return false; + } + /** * Adds additional buttons to the main button row. You do not need to set the position. * @@ -805,7 +810,7 @@ public abstract class GT_MetaTileEntity_DrillerBase final int BUTTON_Y_LEVEL = 91; builder.widget( - new GT_DisabledWhileActiveButton(this.getBaseMetaTileEntity(), builder) + new GT_LockedWhileActiveButton(this.getBaseMetaTileEntity(), builder) .setOnClick((clickData, widget) -> mChunkLoadingEnabled = !mChunkLoadingEnabled) .setPlayClickSound(true) .setBackground(() -> { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java index 8103ff632b..7986e52208 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java @@ -44,7 +44,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SoundResource; import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.gui.widgets.GT_DisabledWhileActiveButton; +import gregtech.api.gui.widgets.GT_LockedWhileActiveButton; import gregtech.api.interfaces.IHatchElement; import gregtech.api.objects.GT_ChunkManager; import gregtech.api.objects.ItemData; @@ -623,7 +623,7 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile @Override protected List<ButtonWidget> getAdditionalButtons(ModularWindow.Builder builder, UIBuildContext buildContext) { return ImmutableList.of( - (ButtonWidget) new GT_DisabledWhileActiveButton(this.getBaseMetaTileEntity(), builder) + (ButtonWidget) new GT_LockedWhileActiveButton(this.getBaseMetaTileEntity(), builder) .setOnClick((clickData, widget) -> adjustChunkRadius(clickData.mouseButton == 0)) .setPlayClickSound(true) .setBackground(GT_UITextures.BUTTON_STANDARD, GT_UITextures.OVERLAY_WORK_AREA) @@ -639,12 +639,12 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile StatCollector.translateToLocal("GT5U.gui.button.ore_drill_radius_2"))) .setTooltipShowUpDelay(TOOLTIP_DELAY) .setSize(16, 16), - (ButtonWidget) new GT_DisabledWhileActiveButton(this.getBaseMetaTileEntity(), builder) + (ButtonWidget) new GT_LockedWhileActiveButton(this.getBaseMetaTileEntity(), builder) .setOnClick((clickData, widget) -> replaceWithCobblestone = !replaceWithCobblestone) .setPlayClickSound(true) .setBackground(() -> { if (replaceWithCobblestone) { - return new IDrawable[] { GT_UITextures.BUTTON_STANDARD, + return new IDrawable[] { GT_UITextures.BUTTON_STANDARD_PRESSED, GT_UITextures.OVERLAY_REPLACE_COBBLE_ON }; } return new IDrawable[] { GT_UITextures.BUTTON_STANDARD, GT_UITextures.OVERLAY_REPLACE_COBBLE_OFF }; |