aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod
diff options
context:
space:
mode:
authorMary <33456283+FourIsTheNumber@users.noreply.github.com>2024-07-19 12:27:40 -0400
committerGitHub <noreply@github.com>2024-07-19 23:27:40 +0700
commit1842f59eeb837edecfc31dae8a2b35fcda471b38 (patch)
tree826ae5a141706145ed48ec415c57b3bf93a3fc88 /src/main/java/gtPlusPlus/xmod
parente4b0d5d1e0f6080d4896c6ceec649d16fe68369f (diff)
downloadGT5-Unofficial-1842f59eeb837edecfc31dae8a2b35fcda471b38.tar.gz
GT5-Unofficial-1842f59eeb837edecfc31dae8a2b35fcda471b38.tar.bz2
GT5-Unofficial-1842f59eeb837edecfc31dae8a2b35fcda471b38.zip
Mode switch button (#2730)
* Button textures. Once again I am manually pulling changes from a different branch... sorry. If you want to read the full commit history, the modeswitchgui branch has it. * Texture enums * Implementation in ControllerWithOptionalFeatures * Implementation in GT_MetaTileEntity_MultiBlockBase * Implemented into all multi-machines * Lang changes * Added documentation * Added missing clear * Quick polish changes - button base texture is standard instead of pressed, and the click noise works. * MFE compatibility * TurboCan compatibility * Fix misordered icons in canner * Removed redundant code in button * Attempted to refactor with MachineMode enum. Also moved loadNBT and saveNBT logic to base class * sa * fix (cherry picked from commit 1f14a7abf460ad114f10e8ba58b6be44b7b18d48) * Rework machineMode into enum of IMachineMode completely * Fixed breaking typo * Made it stop crashing on normal multis that don't support mode switch * Revert * Finished revert and re-addressed changes from original review * spotless * Load nbt tags in correct order. Fixes backwards compat * Check nbt key on load instead * Run super last and make all MACHINEMODE static --------- Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java36
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java41
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java87
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java40
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java65
5 files changed, 176 insertions, 93 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java
index 10ccf64e96..cf9445dfdb 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java
@@ -32,6 +32,7 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import gregtech.api.enums.TAE;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -53,7 +54,8 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase<GMTE_Amazon
private int mCasing;
- private boolean mPackageMode = true;
+ private static final int MACHINEMODE_PACKAGER = 0;
+ private static final int MACHINEMODE_UNPACKAGER = 1;
private static IStructureDefinition<GMTE_AmazonPackager> STRUCTURE_DEFINITION = null;
@@ -139,7 +141,7 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase<GMTE_Amazon
@Override
public RecipeMap<?> getRecipeMap() {
- return mPackageMode ? RecipeMaps.packagerRecipes : RecipeMaps.unpackagerRecipes;
+ return (machineMode == MACHINEMODE_PACKAGER) ? RecipeMaps.packagerRecipes : RecipeMaps.unpackagerRecipes;
}
@Nonnull
@@ -193,14 +195,10 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase<GMTE_Amazon
}
@Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setBoolean("mPackageMode", mPackageMode);
- super.saveNBTData(aNBT);
- }
-
- @Override
public void loadNBTData(NBTTagCompound aNBT) {
- mPackageMode = aNBT.getBoolean("mPackageMode");
+ if (aNBT.hasKey("mPackageMode")) {
+ machineMode = aNBT.getInteger("mPackageMode");
+ }
super.loadNBTData(aNBT);
}
@@ -208,13 +206,13 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase<GMTE_Amazon
public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y,
int z) {
super.getWailaNBTData(player, tile, tag, world, x, y, z);
- tag.setBoolean("mode", mPackageMode);
+ tag.setInteger("mode", machineMode);
}
@Override
public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- mPackageMode = !mPackageMode;
- if (mPackageMode) {
+ setMachineMode(nextMachineMode());
+ if (machineMode == MACHINEMODE_PACKAGER) {
PlayerUtils.messagePlayer(aPlayer, "Now running in Packager Mode.");
} else {
PlayerUtils.messagePlayer(aPlayer, "Now running in Unpackager Mode.");
@@ -230,7 +228,19 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase<GMTE_Amazon
currentTip.add(
StatCollector.translateToLocal("GT5U.machines.oreprocessor1") + " "
+ EnumChatFormatting.WHITE
- + StatCollector.translateToLocal("GT5U.GTPP_MULTI_PACKAGER.mode." + (tag.getBoolean("mode") ? 1 : 0))
+ + StatCollector.translateToLocal("GT5U.GTPP_MULTI_PACKAGER.mode." + tag.getInteger("mode"))
+ EnumChatFormatting.RESET);
}
+
+ @Override
+ public boolean supportsMachineModeSwitch() {
+ return true;
+ }
+
+ @Override
+ public void setMachineModeIcons() {
+ machineModeIcons.clear();
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_PACKAGER);
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_UNPACKAGER);
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java
index 2bcbe0e018..216634b708 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java
@@ -34,6 +34,7 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import gregtech.api.enums.TAE;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -53,8 +54,10 @@ import mcp.mobius.waila.api.IWailaDataAccessor;
public class GregtechMetaTileEntity_IndustrialCuttingMachine extends
GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_IndustrialCuttingMachine> implements ISurvivalConstructable {
- private boolean mCuttingMode = true;
private int mCasing;
+ private static final int MACHINEMODE_CUTTER = 0;
+ private static final int MACHINEMODE_SLICER = 1;
+
private static IStructureDefinition<GregtechMetaTileEntity_IndustrialCuttingMachine> STRUCTURE_DEFINITION = null;
public GregtechMetaTileEntity_IndustrialCuttingMachine(final int aID, final String aName,
@@ -154,7 +157,7 @@ public class GregtechMetaTileEntity_IndustrialCuttingMachine extends
@Override
public RecipeMap<?> getRecipeMap() {
- return mCuttingMode ? RecipeMaps.cutterRecipes : RecipeMaps.slicerRecipes;
+ return (machineMode == MACHINEMODE_CUTTER) ? RecipeMaps.cutterRecipes : RecipeMaps.slicerRecipes;
}
@Nonnull
@@ -213,34 +216,39 @@ public class GregtechMetaTileEntity_IndustrialCuttingMachine extends
}
@Override
- public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- mCuttingMode = !mCuttingMode;
- String aMode = mCuttingMode ? "Cutting" : "Slicing";
- PlayerUtils.messagePlayer(aPlayer, "Mode: " + aMode);
- mLastRecipe = null;
+ public boolean supportsMachineModeSwitch() {
+ return true;
}
@Override
- public void saveNBTData(NBTTagCompound aNBT) {
- super.saveNBTData(aNBT);
- aNBT.setBoolean("mCuttingMode", mCuttingMode);
+ public void setMachineModeIcons() {
+ machineModeIcons.clear();
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_CUTTING);
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_SLICING);
+ }
+
+ @Override
+ public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ setMachineMode(nextMachineMode());
+ String aMode = machineMode == MACHINEMODE_CUTTER ? "Cutting" : "Slicing";
+ PlayerUtils.messagePlayer(aPlayer, "Mode: " + aMode);
+ mLastRecipe = null;
}
@Override
public void loadNBTData(NBTTagCompound aNBT) {
- super.loadNBTData(aNBT);
+ // Migrates old NBT tag to the new one
if (aNBT.hasKey("mCuttingMode")) {
- mCuttingMode = aNBT.getBoolean("mCuttingMode");
- } else {
- mCuttingMode = true;
+ machineMode = aNBT.getBoolean("mCuttingMode") ? MACHINEMODE_CUTTER : MACHINEMODE_SLICER;
}
+ super.loadNBTData(aNBT);
}
@Override
public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y,
int z) {
super.getWailaNBTData(player, tile, tag, world, x, y, z);
- tag.setBoolean("mode", mCuttingMode);
+ tag.setInteger("mode", machineMode);
}
@Override
@@ -251,8 +259,7 @@ public class GregtechMetaTileEntity_IndustrialCuttingMachine extends
currentTip.add(
StatCollector.translateToLocal("GT5U.machines.oreprocessor1") + " "
+ EnumChatFormatting.WHITE
- + StatCollector
- .translateToLocal("GT5U.GTPP_MULTI_CUTTING_MACHINE.mode." + (tag.getBoolean("mode") ? 1 : 0))
+ + StatCollector.translateToLocal("GT5U.GTPP_MULTI_CUTTING_MACHINE.mode." + tag.getInteger("mode"))
+ EnumChatFormatting.RESET);
}
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java
index edafdc72c4..dbafbc7866 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java
@@ -39,6 +39,7 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import gregtech.api.enums.TAE;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -72,7 +73,10 @@ import mcp.mobius.waila.api.IWailaDataAccessor;
public class GregtechMetaTileEntity_IndustrialMultiMachine extends
GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_IndustrialMultiMachine> implements ISurvivalConstructable {
- protected int mInternalMode = 0;
+ private final static int MACHINEMODE_METAL = 0;
+ private final static int MACHINEMODE_FLUID = 1;
+ private final static int MACHINEMODE_MISC = 2;
+
private static final int MODE_COMPRESSOR = 0;
private static final int MODE_LATHE = 1;
private static final int MODE_MAGNETIC = 2;
@@ -216,12 +220,16 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
@Override
public int getPollutionPerSecond(final ItemStack aStack) {
- if (mInternalMode == 0) {
- return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal;
- } else if (mInternalMode == 1) {
- return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid;
- } else { // config 2
- return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc;
+ switch (machineMode) {
+ case MACHINEMODE_METAL -> {
+ return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal;
+ }
+ case MACHINEMODE_FLUID -> {
+ return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid;
+ }
+ default -> {
+ return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc;
+ }
}
}
@@ -249,7 +257,7 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
private int getCircuitID(ItemStack circuit) {
int H = circuit.getItemDamage();
int T = (H == 20 ? 0 : (H == 21 ? 1 : (H == 22 ? 2 : -1)));
- return MODE_MAP[this.mInternalMode][T];
+ return MODE_MAP[machineMode][T];
}
@Override
@@ -306,6 +314,7 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
return new ProcessingLogic() {
private ItemStack lastCircuit = null;
+ private int lastMode = -1;
@Nonnull
@Override
@@ -318,6 +327,10 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
lastRecipe = null;
lastCircuit = circuit;
}
+ if (machineMode != lastMode) {
+ lastRecipe = null;
+ lastMode = machineMode;
+ }
RecipeMap<?> foundMap = getRecipeMap(getCircuitID(circuit));
if (foundMap == null) {
return Stream.empty();
@@ -331,15 +344,14 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
@Override
public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (mInternalMode < 2) {
- mInternalMode++;
- } else {
- mInternalMode = 0;
+ setMachineMode(nextMachineMode());
+ String mModeString;
+ switch (machineMode) {
+ case MACHINEMODE_METAL -> mModeString = "Metal";
+ case MACHINEMODE_FLUID -> mModeString = "Fluid";
+ default -> mModeString = "Misc";
}
- String mModeString = (mInternalMode == 0 ? "Metal"
- : mInternalMode == 1 ? "Fluid" : mInternalMode == 2 ? "Misc." : "null");
PlayerUtils.messagePlayer(aPlayer, "Multi-Machine is now in " + mModeString + " mode.");
- mLastRecipe = null;
}
@Override
@@ -347,26 +359,20 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
String[] data = super.getInfoData();
ArrayList<String> mInfo = new ArrayList<>(Arrays.asList(data));
String mode;
- if (mInternalMode == 0) {
- mode = StatCollector.translateToLocal("GTPP.multiblock.multimachine.metal");
- } else if (mInternalMode == 1) {
- mode = StatCollector.translateToLocal("GTPP.multiblock.multimachine.fluid");
- } else {
- mode = StatCollector.translateToLocal("GTPP.multiblock.multimachine.misc");
+ switch (machineMode) {
+ case MACHINEMODE_METAL -> mode = StatCollector.translateToLocal("GTPP.multiblock.multimachine.metal");
+ case MACHINEMODE_FLUID -> mode = StatCollector.translateToLocal("GTPP.multiblock.multimachine.fluid");
+ default -> mode = StatCollector.translateToLocal("GTPP.multiblock.multimachine.misc");
}
mInfo.add(mode);
return mInfo.toArray(new String[0]);
}
@Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setInteger("mInternalMode", mInternalMode);
- super.saveNBTData(aNBT);
- }
-
- @Override
public void loadNBTData(NBTTagCompound aNBT) {
- this.mInternalMode = aNBT.getInteger("mInternalMode");
+ if (aNBT.hasKey("mInternalMode")) {
+ machineMode = aNBT.getInteger("mInternalMode");
+ }
super.loadNBTData(aNBT);
}
@@ -378,7 +384,7 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
@Override
protected CheckRecipeResult doCheckRecipe() {
- if (mInternalMode != 2 || !isInputSeparationEnabled()) {
+ if (machineMode != MACHINEMODE_MISC || !isInputSeparationEnabled()) {
return super.doCheckRecipe();
} else {
CheckRecipeResult result = CheckRecipeResultRegistry.NO_RECIPE;
@@ -495,7 +501,7 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y,
int z) {
super.getWailaNBTData(player, tile, tag, world, x, y, z);
- tag.setInteger("mode", mInternalMode);
+ tag.setInteger("mode", machineMode);
}
@Override
@@ -512,4 +518,25 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine extends
+ EnumChatFormatting.RESET);
}
}
+
+ @Override
+ public boolean supportsMachineModeSwitch() {
+ return true;
+ }
+
+ @Override
+ public int nextMachineMode() {
+ mLastRecipe = null;
+ if (machineMode == MACHINEMODE_METAL) return MACHINEMODE_FLUID;
+ else if (machineMode == MACHINEMODE_FLUID) return MACHINEMODE_MISC;
+ else return MACHINEMODE_METAL;
+ }
+
+ @Override
+ public void setMachineModeIcons() {
+ machineModeIcons.clear();
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_LPF_METAL);
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_LPF_FLUID);
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_DEFAULT);
+ }
}
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 c186126912..ade5c2604b 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
@@ -32,6 +32,7 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import gregtech.api.enums.SoundResource;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -51,8 +52,11 @@ import mcp.mobius.waila.api.IWailaDataAccessor;
public class GregtechMetaTileEntity_IndustrialPlatePress
extends GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_IndustrialPlatePress> implements ISurvivalConstructable {
- private boolean mFormingMode = false;
private int mCasing;
+
+ private static final int MACHINEMODE_BENDER = 0;
+ private static final int MACHINEMODE_FORMER = 1;
+
private static IStructureDefinition<GregtechMetaTileEntity_IndustrialPlatePress> STRUCTURE_DEFINITION = null;
public GregtechMetaTileEntity_IndustrialPlatePress(final int aID, final String aName, final String aNameRegional) {
@@ -155,7 +159,7 @@ public class GregtechMetaTileEntity_IndustrialPlatePress
@Override
public RecipeMap<?> getRecipeMap() {
- return mFormingMode ? RecipeMaps.formingPressRecipes : RecipeMaps.benderRecipes;
+ return (machineMode == MACHINEMODE_FORMER) ? RecipeMaps.formingPressRecipes : RecipeMaps.benderRecipes;
}
@Nonnull
@@ -187,7 +191,8 @@ public class GregtechMetaTileEntity_IndustrialPlatePress
@Override
public int getPollutionPerSecond(final ItemStack aStack) {
- if (this.mFormingMode) return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialPlatePress_ModeForming;
+ if (machineMode == MACHINEMODE_FORMER)
+ return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialPlatePress_ModeForming;
return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialPlatePress_ModeBending;
}
@@ -197,21 +202,30 @@ public class GregtechMetaTileEntity_IndustrialPlatePress
}
@Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setBoolean("mFormingMode", mFormingMode);
- super.saveNBTData(aNBT);
+ public void loadNBTData(NBTTagCompound aNBT) {
+ // Migrates old NBT tag to the new one
+ if (aNBT.hasKey("mFormingMode")) {
+ machineMode = aNBT.getBoolean("mFormingMode") ? MACHINEMODE_FORMER : MACHINEMODE_BENDER;
+ }
+ super.loadNBTData(aNBT);
}
@Override
- public void loadNBTData(NBTTagCompound aNBT) {
- mFormingMode = aNBT.getBoolean("mFormingMode");
- super.loadNBTData(aNBT);
+ public boolean supportsMachineModeSwitch() {
+ return true;
+ }
+
+ @Override
+ public void setMachineModeIcons() {
+ machineModeIcons.clear();
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_BENDING);
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_FORMING);
}
@Override
public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- mFormingMode = !mFormingMode;
- if (mFormingMode) {
+ setMachineMode(nextMachineMode());
+ if (machineMode == MACHINEMODE_FORMER) {
PlayerUtils.messagePlayer(aPlayer, "Now running in Forming Press Mode.");
} else {
PlayerUtils.messagePlayer(aPlayer, "Now running in Bending Mode.");
@@ -228,7 +242,7 @@ public class GregtechMetaTileEntity_IndustrialPlatePress
public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y,
int z) {
super.getWailaNBTData(player, tile, tag, world, x, y, z);
- tag.setBoolean("mode", mFormingMode);
+ tag.setInteger("mode", machineMode);
}
@Override
@@ -240,7 +254,7 @@ public class GregtechMetaTileEntity_IndustrialPlatePress
StatCollector.translateToLocal("GT5U.machines.oreprocessor1") + " "
+ EnumChatFormatting.WHITE
+ StatCollector
- .translateToLocal("GT5U.GTPP_MULTI_INDUSTRIAL_PLATE_PRESS.mode." + (tag.getBoolean("mode") ? 1 : 0))
+ .translateToLocal("GT5U.GTPP_MULTI_INDUSTRIAL_PLATE_PRESS.mode." + tag.getInteger("mode"))
+ EnumChatFormatting.RESET);
}
}
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 f4f9f8500a..9c7a47f7f8 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
@@ -43,6 +43,7 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import gregtech.api.enums.TAE;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -71,11 +72,14 @@ import mcp.mobius.waila.api.IWailaDataAccessor;
public class GregtechMetaTileEntity_IndustrialWashPlant
extends GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_IndustrialWashPlant> implements ISurvivalConstructable {
- private int mMode = 0;
private int mCasing;
private static IStructureDefinition<GregtechMetaTileEntity_IndustrialWashPlant> STRUCTURE_DEFINITION = null;
+ private static final int MACHINEMODE_OREWASH = 0;
+ private static final int MACHINEMODE_SIMPLEWASH = 1;
+ private static final int MACHINEMODE_CHEMBATH = 2;
+
public GregtechMetaTileEntity_IndustrialWashPlant(final int aID, final String aName, final String aNameRegional) {
super(aID, aName, aNameRegional);
}
@@ -190,8 +194,17 @@ public class GregtechMetaTileEntity_IndustrialWashPlant
@Override
public RecipeMap<?> getRecipeMap() {
- return mMode == 0 ? RecipeMaps.oreWasherRecipes
- : mMode == 1 ? GTPPRecipeMaps.simpleWasherRecipes : RecipeMaps.chemicalBathRecipes;
+ switch (machineMode) {
+ case MACHINEMODE_OREWASH -> {
+ return RecipeMaps.oreWasherRecipes;
+ }
+ case MACHINEMODE_SIMPLEWASH -> {
+ return GTPPRecipeMaps.simpleWasherRecipes;
+ }
+ default -> {
+ return RecipeMaps.chemicalBathRecipes;
+ }
+ }
}
@Nonnull
@@ -234,7 +247,8 @@ public class GregtechMetaTileEntity_IndustrialWashPlant
@Override
public int getPollutionPerSecond(final ItemStack aStack) {
- if (mMode == 2) return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath;
+ if (machineMode == MACHINEMODE_CHEMBATH)
+ return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath;
return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialWashPlant_ModeWasher;
}
@@ -341,37 +355,28 @@ public class GregtechMetaTileEntity_IndustrialWashPlant
}
@Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setInteger("mMode", mMode);
- super.saveNBTData(aNBT);
- }
-
- @Override
public void loadNBTData(NBTTagCompound aNBT) {
if (aNBT.hasKey("mChemicalMode")) {
boolean aTempMode = aNBT.getBoolean("mChemicalMode");
if (aTempMode) {
- mMode = 2;
+ machineMode = 2;
} else {
- mMode = 0;
+ machineMode = 0;
}
aNBT.removeTag("mChemicalMode");
}
if (aNBT.hasKey("mMode")) {
- mMode = aNBT.getInteger("mMode");
+ machineMode = aNBT.getInteger("mMode");
}
super.loadNBTData(aNBT);
}
@Override
public void onModeChangeByScrewdriver(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- mMode++;
- if (mMode > 2) {
- mMode = 0;
- }
- if (mMode == 0) {
+ setMachineMode(nextMachineMode());
+ if (machineMode == 0) {
PlayerUtils.messagePlayer(aPlayer, "Wash Plant is now running in Ore Washer Mode.");
- } else if (mMode == 1) {
+ } 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.");
@@ -383,7 +388,7 @@ public class GregtechMetaTileEntity_IndustrialWashPlant
public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y,
int z) {
super.getWailaNBTData(player, tile, tag, world, x, y, z);
- tag.setInteger("mode", mMode);
+ tag.setInteger("mode", machineMode);
}
@Override
@@ -397,4 +402,24 @@ public class GregtechMetaTileEntity_IndustrialWashPlant
+ StatCollector.translateToLocal("GT5U.GTPP_MULTI_WASH_PLANT.mode." + tag.getInteger("mode"))
+ EnumChatFormatting.RESET);
}
+
+ @Override
+ public boolean supportsMachineModeSwitch() {
+ return true;
+ }
+
+ @Override
+ public int nextMachineMode() {
+ if (machineMode == MACHINEMODE_OREWASH) return MACHINEMODE_SIMPLEWASH;
+ else if (machineMode == MACHINEMODE_SIMPLEWASH) return MACHINEMODE_CHEMBATH;
+ else return MACHINEMODE_OREWASH;
+ }
+
+ @Override
+ public void setMachineModeIcons() {
+ machineModeIcons.clear();
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_WASHPLANT);
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_SIMPLEWASHER);
+ machineModeIcons.add(GT_UITextures.OVERLAY_BUTTON_MACHINEMODE_CHEMBATH);
+ }
}