From 5045736c2df49b6214c63dc78edff258ed39de0e Mon Sep 17 00:00:00 2001 From: Mary <33456283+FourIsTheNumber@users.noreply.github.com> Date: Wed, 24 Jul 2024 21:14:45 -0400 Subject: Update multi-machines to display running mode in GUI (#2755) * Framework for mode text in gui * Add getMachineModeName to all multimachines * Changed lang file for MFE because "Electromagnetic Polarizer" and "Electromagnetic Separator" are too long and make the GUI look bad * Removed leftover code * Removed more leftover code... oops * Moved logic to base class and made mode switch chat message localizable * Merge caused spotless to fail, I guess * Reverted logic from parent class * ahhhh spotless --- .../modularui/ControllerWithOptionalFeatures.java | 10 ++++++++++ .../GT_MetaTileEntity_MultiBlockBase.java | 8 +++++++- .../java/gregtech/api/util/GT_LanguageManager.java | 1 + ...ileEntity_IndustrialElectromagneticSeparator.java | 17 ++++++++++------- .../multi/GT_MetaTileEntity_MultiCanner.java | 17 ++++++++++------- .../base/GregtechMeta_MultiBlockBase.java | 1 + .../machines/multi/misc/GMTE_AmazonPackager.java | 18 ++++++++++-------- ...gtechMetaTileEntity_IndustrialCuttingMachine.java | 15 ++++++++++----- ...regtechMetaTileEntity_IndustrialMultiMachine.java | 19 ++++++++++--------- .../GregtechMetaTileEntity_IndustrialPlatePress.java | 18 ++++++++++-------- .../GregtechMetaTileEntity_IndustrialWashPlant.java | 20 ++++++++++---------- src/main/resources/assets/gregtech/lang/en_US.lang | 5 +++-- 12 files changed, 92 insertions(+), 57 deletions(-) diff --git a/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java b/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java index a877492907..67e6a72776 100644 --- a/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java +++ b/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java @@ -132,6 +132,13 @@ public interface ControllerWithOptionalFeatures extends IVoidable, IRecipeLockab return 0; } + /** + * @return name for the current machine mode on this machine. Defaults "Unknown Mode" + */ + default String getMachineModeName() { + return "Unknown Mode"; + } + /** * @param index Index of machineModeIcons to pull from * @return UITexture associated with that machineMode @@ -161,6 +168,9 @@ public interface ControllerWithOptionalFeatures extends IVoidable, IRecipeLockab Pos2d getMachineModeSwitchButtonPos(); + /** + * Called when the mode switch button is clicked + */ default void onMachineModeSwitchClick() {} default ButtonWidget createModeSwitchButton(IWidgetBuilder builder) { 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 735119d8bf..46518f0a8d 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 @@ -2455,7 +2455,13 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity screenElements.setSynced(false) .setSpace(0) .setPos(10, 7); - + if (supportsMachineModeSwitch()) { + screenElements.widget( + TextWidget.dynamicString( + () -> EnumChatFormatting.WHITE + GT_Utility.trans("400", "Running mode: ") + + EnumChatFormatting.GOLD + + getMachineModeName())); + } screenElements .widget( new TextWidget(GT_Utility.trans("132", "Pipe is loose.")).setDefaultColor(COLOR_TEXT_WHITE.get()) diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java index 09bf5d7e3b..e153b8e15f 100644 --- a/src/main/java/gregtech/api/util/GT_LanguageManager.java +++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java @@ -541,6 +541,7 @@ public class GT_LanguageManager { 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_400", "Running mode: "); 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/tileentities/machines/multi/GT_MetaTileEntity_IndustrialElectromagneticSeparator.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IndustrialElectromagneticSeparator.java index 9aa92a8125..e0ac38f31f 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IndustrialElectromagneticSeparator.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IndustrialElectromagneticSeparator.java @@ -345,6 +345,14 @@ public class GT_MetaTileEntity_IndustrialElectromagneticSeparator return true; } + @Override + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + setMachineMode(nextMachineMode()); + PlayerUtils.messagePlayer( + aPlayer, + String.format(StatCollector.translateToLocal("GT5U.MULTI_MACHINE_CHANGE"), getMachineModeName())); + } + @Override public void setMachineModeIcons() { machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_SEPARATOR); @@ -352,13 +360,8 @@ public class GT_MetaTileEntity_IndustrialElectromagneticSeparator } @Override - public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { - setMachineMode(nextMachineMode()); - if (machineMode == MACHINEMODE_POLARIZER) { - PlayerUtils.messagePlayer(aPlayer, "Now running in Polarizing Mode."); - } else { - PlayerUtils.messagePlayer(aPlayer, "Now running in Separating Mode."); - } + public String getMachineModeName() { + return StatCollector.translateToLocal("GT5U.INDUSTRIAL_ELECTROMAGNETIC_SEPARATOR.mode." + machineMode); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiCanner.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiCanner.java index b28a7bdca7..0a207331dd 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiCanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiCanner.java @@ -233,6 +233,14 @@ public class GT_MetaTileEntity_MultiCanner extends return true; } + @Override + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + setMachineMode(nextMachineMode()); + PlayerUtils.messagePlayer( + aPlayer, + String.format(StatCollector.translateToLocal("GT5U.MULTI_MACHINE_CHANGE"), getMachineModeName())); + } + @Override public void setMachineModeIcons() { machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_PACKAGER); @@ -240,13 +248,8 @@ public class GT_MetaTileEntity_MultiCanner extends } @Override - public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { - setMachineMode(nextMachineMode()); - if (machineMode == MACHINEMODE_FLUIDCANNER) { - PlayerUtils.messagePlayer(aPlayer, "Now running in Fluid Canning Mode."); - } else { - PlayerUtils.messagePlayer(aPlayer, "Now running in Canning Mode."); - } + public String getMachineModeName() { + return StatCollector.translateToLocal("GT5U.MULTI_CANNER.mode." + machineMode); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java index e19a25981d..491f696c43 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java @@ -858,6 +858,7 @@ public abstract class GregtechMeta_MultiBlockBase mModeString = "Metal"; - case MACHINEMODE_FLUID -> mModeString = "Fluid"; - default -> mModeString = "Misc"; - } - PlayerUtils.messagePlayer(aPlayer, "Multi-Machine is now in " + mModeString + " mode."); + public String getMachineModeName() { + return StatCollector.translateToLocal("GT5U.GTPP_MULTI_INDUSTRIAL_MULTI_MACHINE.mode." + machineMode); } @Override @@ -522,6 +515,14 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends return true; } + @Override + public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + setMachineMode(nextMachineMode()); + PlayerUtils.messagePlayer( + aPlayer, + String.format(StatCollector.translateToLocal("GT5U.MULTI_MACHINE_CHANGE"), getMachineModeName())); + } + @Override public int nextMachineMode() { mLastRecipe = null; diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java index ade5c2604b..cb02137ba6 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java @@ -215,6 +215,14 @@ public class GregtechMetaTileEntity_IndustrialPlatePress return true; } + @Override + public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + setMachineMode(nextMachineMode()); + PlayerUtils.messagePlayer( + aPlayer, + String.format(StatCollector.translateToLocal("GT5U.MULTI_MACHINE_CHANGE"), getMachineModeName())); + } + @Override public void setMachineModeIcons() { machineModeIcons.clear(); @@ -223,14 +231,8 @@ public class GregtechMetaTileEntity_IndustrialPlatePress } @Override - public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { - setMachineMode(nextMachineMode()); - if (machineMode == MACHINEMODE_FORMER) { - PlayerUtils.messagePlayer(aPlayer, "Now running in Forming Press Mode."); - } else { - PlayerUtils.messagePlayer(aPlayer, "Now running in Bending Mode."); - } - mLastRecipe = null; + public String getMachineModeName() { + return StatCollector.translateToLocal("GT5U.GTPP_MULTI_INDUSTRIAL_PLATE_PRESS.mode." + machineMode); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java index 9c7a47f7f8..4a8a7df037 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java @@ -372,16 +372,8 @@ public class GregtechMetaTileEntity_IndustrialWashPlant } @Override - public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { - setMachineMode(nextMachineMode()); - if (machineMode == 0) { - PlayerUtils.messagePlayer(aPlayer, "Wash Plant is now running in Ore Washer Mode."); - } else if (machineMode == 1) { - PlayerUtils.messagePlayer(aPlayer, "Wash Plant is now running in Simple Washer Mode."); - } else { - PlayerUtils.messagePlayer(aPlayer, "Wash Plant is now running in Chemical Bath Mode."); - } - mLastRecipe = null; + public String getMachineModeName() { + return StatCollector.translateToLocal("GT5U.GTPP_MULTI_WASH_PLANT.mode." + machineMode); } @Override @@ -408,6 +400,14 @@ public class GregtechMetaTileEntity_IndustrialWashPlant return true; } + @Override + public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + setMachineMode(nextMachineMode()); + PlayerUtils.messagePlayer( + aPlayer, + String.format(StatCollector.translateToLocal("GT5U.MULTI_MACHINE_CHANGE"), getMachineModeName())); + } + @Override public int nextMachineMode() { if (machineMode == MACHINEMODE_OREWASH) return MACHINEMODE_SIMPLEWASH; diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang index 9c62c6be6a..b670a6f8c1 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -327,8 +327,8 @@ GT5U.GTPP_MULTI_WASH_PLANT.mode.1=Simple Washer GT5U.GTPP_MULTI_WASH_PLANT.mode.2=Chemical Bath GT5U.GTPP_MULTI_INDUSTRIAL_PLATE_PRESS.mode.0=Bending GT5U.GTPP_MULTI_INDUSTRIAL_PLATE_PRESS.mode.1=Forming Press -GT5U.INDUSTRIAL_ELECTROMAGNETIC_SEPARATOR.mode.0=Electromagnetic Separator -GT5U.INDUSTRIAL_ELECTROMAGNETIC_SEPARATOR.mode.1=Electromagnetic Polarizer +GT5U.INDUSTRIAL_ELECTROMAGNETIC_SEPARATOR.mode.0=Separator +GT5U.INDUSTRIAL_ELECTROMAGNETIC_SEPARATOR.mode.1=Polarizer GT5U.GTPP_MULTI_INDUSTRIAL_MULTI_MACHINE.mode.0=Metal GT5U.GTPP_MULTI_INDUSTRIAL_MULTI_MACHINE.mode.1=Fluid GT5U.GTPP_MULTI_INDUSTRIAL_MULTI_MACHINE.mode.2=Misc @@ -344,6 +344,7 @@ GT5U.GTPP_MULTI_PRECISE_ASSEMBLER.mode.0=Precise GT5U.GTPP_MULTI_PRECISE_ASSEMBLER.mode.1=Normal GT5U.GTPP_MULTI_PACKAGER.mode.0=Packager GT5U.GTPP_MULTI_PACKAGER.mode.1=Unpackager +GT5U.MULTI_MACHINE_CHANGE=Now running in %s mode GT5U.machines.oreprocessor1=§eRunning Mode: GT5U.machines.oreprocessor2=§cTime: %s s GT5U.machines.oreprocessor.void=§eVoid Stone Dust: %s -- cgit