From d861528d94ab25c1762eb8cae6cbb403e923f7d5 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Sun, 8 Sep 2024 19:24:26 +0200 Subject: Add waterline debug mode (#3123) --- .../multi/purification/MTEPurificationPlant.java | 40 ++++++++++++++++++++-- .../purification/MTEPurificationUnitBase.java | 23 ++++++++----- 2 files changed, 52 insertions(+), 11 deletions(-) (limited to 'src/main/java/gregtech/common') diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java index 9c0b530164..2c575528ab 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java @@ -12,6 +12,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_PROCESSING_AR import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_PROCESSING_ARRAY_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_PROCESSING_ARRAY_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_PROCESSING_ARRAY_GLOW; +import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY; import static gregtech.api.util.GTRecipeBuilder.SECONDS; import static gregtech.api.util.GTStructureUtility.ofFrame; import static gregtech.common.tileentities.machines.multi.purification.MTEPurificationUnitBase.WATER_BOOST_BONUS_CHANCE; @@ -36,6 +37,8 @@ import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructa import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.drawable.UITexture; import com.gtnewhorizons.modularui.api.drawable.shapes.Rectangle; import com.gtnewhorizons.modularui.api.forge.ItemStackHandler; import com.gtnewhorizons.modularui.api.math.Alignment; @@ -95,6 +98,13 @@ public class MTEPurificationPlant extends MTEExtendedPowerMultiBlockBase mLinkedUnits = new ArrayList<>(); + /** + * Debug mode is an operational mode that does not produce output or consume input, but cuts down + * processing time for players to more easily debug their automation setups. + */ + private boolean debugMode = false; + public static final int CYCLE_TIME_IN_DEBUG = 30 * SECONDS; + private static final IStructureDefinition STRUCTURE_DEFINITION = StructureDefinition .builder() .addShape(STRUCTURE_PIECE_MAIN, PurificationPlantStructureString.STRUCTURE_STRING) @@ -207,6 +217,7 @@ public class MTEPurificationPlant extends MTEExtendedPowerMultiBlockBase debugMode = !debugMode) + .setBackground(() -> { + List ret = new ArrayList<>(); + if (debugMode) { + ret.add(GTUITextures.BUTTON_STANDARD_PRESSED); + ret.add(GTUITextures.OVERLAY_BUTTON_MACHINEMODE_DEFAULT); + } else { + ret.add(GTUITextures.BUTTON_STANDARD); + ret.add(GTUITextures.OVERLAY_BUTTON_MACHINEMODE_DEFAULT); + } + return ret.toArray(new IDrawable[0]); + }) + .attachSyncer(new FakeSyncWidget.BooleanSyncer(() -> debugMode, b -> debugMode = b), builder) + .addTooltip("Toggle debug mode.") + .setTooltipShowUpDelay(TOOLTIP_DELAY) + .setPos(174, 112) + .setSize(16, 16)); builder.widget(createPowerSwitchButton(builder)); diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java index ffb929074a..ac316f7678 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java @@ -367,8 +367,10 @@ public abstract class MTEPurificationUnitBase