diff options
author | Martin Robertz <dream-master@gmx.net> | 2023-03-25 18:32:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-25 18:32:18 +0100 |
commit | 23543172c014c23a740148c3c9c2668fde574f96 (patch) | |
tree | 60ef1dd2e931cd7c8c071c8c2e6597d0ae76a90c /src | |
parent | 2ab22537fcb12a30858bdaf825d2a396211b34d5 (diff) | |
download | GT5-Unofficial-23543172c014c23a740148c3c9c2668fde574f96.tar.gz GT5-Unofficial-23543172c014c23a740148c3c9c2668fde574f96.tar.bz2 GT5-Unofficial-23543172c014c23a740148c3c9c2668fde574f96.zip |
Downtier oreproc GT++ multis to EV and add new EV Mac Stack (#579)
* tier down Multiblock Ore Washer,
add Grisium EV mixer recipe to handle in EV
* Tier down Thermal Centrifuge
* Downgrade Centrifuge to EV
maybe we need to nerf other recipes use Inconel Steel 250 later (Solar Tower, Cryo Stuff)
* Downgrade Bender to EV
* add code for less powerful macerator
it has less parallel than original and must be upgraded (like the distillus) to regain the full parallel bonus
* update tooltip to reflect casing change for T=1
* spotlessApply (#580)
Co-authored-by: GitHub GTNH Actions <>
* fix a bunch of issues with macerators
* Spotless apply for branch Multiblock-EV-change for #579 (#581)
Co-authored-by: GitHub GTNH Actions <>
* add Upgrade T2 Card
* spotlessApply (#582)
Co-authored-by: GitHub GTNH Actions <>
* fix NPE upon placing a fresh maceration controller
* fix
* spotlessApply (#583)
Co-authored-by: GitHub GTNH Actions <>
---------
Co-authored-by: Glease <4586901+Glease@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'src')
7 files changed, 241 insertions, 56 deletions
diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index 14d303ffe2..14b814be80 100644 --- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -9,10 +9,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.Loader; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.*; import gregtech.api.util.*; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; @@ -1509,6 +1506,30 @@ public class RECIPES_GREGTECH { MISC_MATERIALS.SOLAR_SALT_COLD.getCell(5), 20 * 10, 120); + GT_Values.RA.addMixerRecipe( + CI.getNumberedAdvancedCircuit(2), + Materials.Titanium.getDust(9), + Materials.Carbon.getDust(9), + Materials.Potassium.getDust(9), + Materials.Lithium.getDust(9), + Materials.Sulfur.getDust(9), + Materials.Hydrogen.getFluid(5000), + null, + ALLOY.LEAGRISIUM.getDust(50), + 20 * 60, + (int) TierEU.RECIPE_EV); + GT_Values.RA.addMixerRecipe( + CI.getNumberedAdvancedCircuit(2), + Materials.Steel.getDust(16), + Materials.Molybdenum.getDust(1), + Materials.Titanium.getDust(1), + Materials.Nickel.getDust(4), + Materials.Cobalt.getDust(2), + GT_Values.NF, + null, + ALLOY.MARAGING250.getDust(24), + 20 * 60, + (int) TierEU.RECIPE_EV); } private static void chemicalReactorRecipes() { diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java index 4786e67989..8ddcfc4112 100644 --- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java +++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -172,18 +172,19 @@ public class RECIPES_Machines { // EV/IV MACHINES public static ItemStack IV_MACHINE_Electrolyzer; - public static ItemStack IV_MACHINE_Centrifuge; - public static ItemStack IV_MACHINE_BendingMachine; + public static ItemStack EV_MACHINE_Centrifuge; + public static ItemStack EV_MACHINE_BendingMachine; public static ItemStack IV_MACHINE_Wiremill; + public static ItemStack EV_MACHINE_Macerator; public static ItemStack IV_MACHINE_Macerator; public static ItemStack IV_MACHINE_Cutter; public static ItemStack IV_MACHINE_Extruder; public static ItemStack HV_MACHINE_Sifter; - public static ItemStack IV_MACHINE_ThermalCentrifuge; - public static ItemStack IV_MACHINE_OreWasher; + public static ItemStack EV_MACHINE_ThermalCentrifuge; + public static ItemStack EV_MACHINE_OreWasher; public static ItemStack IV_MACHINE_AlloySmelter; public static ItemStack IV_MACHINE_Mixer; - public static ItemStack IV_MACHINE_ChemicalBath; + public static ItemStack EV_MACHINE_ChemicalBath; // Cables public static String cableGt02Electrum = "cableGt02Electrum"; @@ -972,18 +973,19 @@ public class RECIPES_Machines { // IV/EV/HV MACHINES IV_MACHINE_Electrolyzer = ItemList.Machine_IV_Electrolyzer.get(1); - IV_MACHINE_Centrifuge = ItemList.Machine_IV_Centrifuge.get(1); - IV_MACHINE_BendingMachine = ItemList.Machine_IV_Bender.get(1); + EV_MACHINE_Centrifuge = ItemList.Machine_EV_Centrifuge.get(1); + EV_MACHINE_BendingMachine = ItemList.Machine_EV_Bender.get(1); IV_MACHINE_Wiremill = ItemList.Machine_IV_Wiremill.get(1); + EV_MACHINE_Macerator = ItemList.Machine_EV_Macerator.get(1); IV_MACHINE_Macerator = ItemList.Machine_IV_Macerator.get(1); IV_MACHINE_Cutter = ItemList.Machine_IV_Cutter.get(1); IV_MACHINE_Extruder = ItemList.Machine_IV_Extruder.get(1); HV_MACHINE_Sifter = ItemList.Machine_HV_Sifter.get(1); - IV_MACHINE_ThermalCentrifuge = ItemList.Machine_IV_ThermalCentrifuge.get(1); - IV_MACHINE_OreWasher = ItemList.Machine_IV_OreWasher.get(1); + EV_MACHINE_ThermalCentrifuge = ItemList.Machine_EV_ThermalCentrifuge.get(1); + EV_MACHINE_OreWasher = ItemList.Machine_EV_OreWasher.get(1); IV_MACHINE_AlloySmelter = ItemList.Machine_IV_AlloySmelter.get(1); IV_MACHINE_Mixer = ItemList.Machine_IV_Mixer.get(1); - IV_MACHINE_ChemicalBath = ItemList.Machine_IV_ChemicalBath.get(1); + EV_MACHINE_ChemicalBath = ItemList.Machine_EV_ChemicalBath.get(1); if (CORE.ConfigSwitches.enableMultiblock_IndustrialCokeOven) { if (LoadedMods.Railcraft) { // Misc @@ -1288,14 +1290,14 @@ public class RECIPES_Machines { // Industrial Centrifuge RecipeUtils.addShapedGregtechRecipe( - CI.circuitTier5, + CI.circuitTier4, pipeHugeStainlessSteel, - CI.circuitTier5, + CI.circuitTier4, CI.component_Plate[6], - IV_MACHINE_Centrifuge, + EV_MACHINE_Centrifuge, CI.component_Plate[6], CI.component_Plate[8], - CI.machineCasing_IV, + CI.machineCasing_EV, CI.component_Plate[8], RECIPE_IndustrialCentrifugeController); // Centrifuge Casing @@ -1466,13 +1468,13 @@ public class RECIPES_Machines { // Industrial Material Press RecipeUtils.addShapedGregtechRecipe( "plateTitanium", - CI.circuitTier5, + CI.circuitTier4, "plateTitanium", - CI.machineCasing_IV, - IV_MACHINE_BendingMachine, - CI.machineCasing_IV, + CI.machineCasing_EV, + EV_MACHINE_BendingMachine, + CI.machineCasing_EV, "plateTitanium", - CI.circuitTier5, + CI.circuitTier4, "plateTitanium", RECIPE_IndustrialMaterialPressController); } @@ -1505,6 +1507,18 @@ public class RECIPES_Machines { 16); // Industrial Maceration stack RecipeUtils.addShapedGregtechRecipe( + "plateTitanium", + EV_MACHINE_Macerator, + "plateTitanium", + EV_MACHINE_Macerator, + CI.circuitTier4, + EV_MACHINE_Macerator, + "plateTitanium", + EV_MACHINE_Macerator, + "plateTitanium", + RECIPE_IndustrialMacerationStackController); + // T2-Upgrade Card + RecipeUtils.addShapedGregtechRecipe( "plateTungstenCarbide", IV_MACHINE_Macerator, "plateTungstenCarbide", @@ -1514,7 +1528,7 @@ public class RECIPES_Machines { "plateTungstenCarbide", IV_MACHINE_Macerator, "plateTungstenCarbide", - RECIPE_IndustrialMacerationStackController); + GregtechItemList.Maceration_Upgrade_Chip.get(1)); } if (CORE.ConfigSwitches.enableMultiblock_IndustrialWireMill) { @@ -2579,10 +2593,10 @@ public class RECIPES_Machines { RecipeUtils.addShapedRecipe( "plateRedSteel", - "circuitElite", + "circuitData", "plateRedSteel", "stickTalonite", - IV_MACHINE_ThermalCentrifuge, + EV_MACHINE_ThermalCentrifuge, "stickTalonite", "plateRedSteel", "gearGtTalonite", @@ -2612,13 +2626,13 @@ public class RECIPES_Machines { RecipeUtils.addShapedRecipe( "plateGrisium", - IV_MACHINE_OreWasher, + EV_MACHINE_OreWasher, "plateGrisium", "plateTalonite", - "circuitElite", + "circuitData", "plateTalonite", "plateGrisium", - IV_MACHINE_ChemicalBath, + EV_MACHINE_ChemicalBath, "plateGrisium", GregtechItemList.Industrial_WashPlant.get(1)); } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java index 2238af4fcc..743fe25b82 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java @@ -208,6 +208,7 @@ public enum GregtechItemList implements GregtechItemContainer { // Upgrade chip for Distillus Distillus_Upgrade_Chip, + Maceration_Upgrade_Chip, // Chips used to nerf my multis via custom behavioural attachments Chip_MultiNerf_NoOutputBonus, diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java index 0aa7f8cee9..38148b91ed 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java @@ -432,7 +432,9 @@ public class MetaGeneratedGregtechItems extends Gregtech_MetaItem_X32 { // Distillus Chip GregtechItemList.Distillus_Upgrade_Chip - .set(this.addItem(151, "Upgrade Chip", "Used to upgrade Distillus to Tier 2")); + .set(this.addItem(151, "Distillus Upgrade Chip", "Used to upgrade Distillus to Tier 2")); + GregtechItemList.Maceration_Upgrade_Chip + .set(this.addItem(152, "Maceration Upgrade Chip", "Used to upgrade Maceration Stack to Tier 2")); GregtechItemList.Chip_MultiNerf_NoOutputBonus .set(this.addItem(160, "No-Bonus Chip", "You won't like using this")); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java index 3860860cee..bf2654b97c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java @@ -10,6 +10,8 @@ import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; import java.util.Random; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.Constants.NBT; import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; @@ -27,12 +29,15 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; public class GregtechMetaTileEntity_IndustrialMacerator extends GregtechMeta_MultiBlockBase<GregtechMetaTileEntity_IndustrialMacerator> implements ISurvivalConstructable { + private int controllerTier = 1; private int mCasing; private int mPerLayer; private static IStructureDefinition<GregtechMetaTileEntity_IndustrialMacerator> STRUCTURE_DEFINITION = null; @@ -60,11 +65,13 @@ public class GregtechMetaTileEntity_IndustrialMacerator extends GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType(getMachineType()).addInfo("Controller block for the Industrial Maceration Stack") .addInfo("60% faster than using single block machines of the same voltage") - .addInfo("Maximum of 8*tier parallels, LV = Tier 1, MV = Tier 2, etc.") + .addInfo("Maximum of n*tier parallels, LV = Tier 1, MV = Tier 2, etc.") + .addInfo("n=2 initially. n=8 after inserting Maceration Upgrade Chip.") .addPollutionAmount(getPollutionPerSecond(null)).addSeparator().beginStructureBlock(3, 6, 3, true) - .addController("Bottom center").addCasingInfo("Maceration Stack Casings", 26) - .addInputBus("Bottom casing", 1).addEnergyHatch("Bottom casing", 1) - .addMaintenanceHatch("Bottom casing", 1).addOutputBus("One per layer except bottom layer", 2) + .addController("Bottom center").addCasingInfo("Maceration Stack Casings (After upgrade)", 26) + .addCasingInfo("Stable Titanium Casings (Before upgrade)", 26).addInputBus("Bottom casing", 1) + .addEnergyHatch("Bottom casing", 1).addMaintenanceHatch("Bottom casing", 1) + .addOutputBus("One per layer except bottom layer", 2) .addMufflerHatch("Any casing except bottom layer", 2).toolTipFinisher(CORE.GT_Tooltip_Builder.get()); return tt; } @@ -73,15 +80,18 @@ public class GregtechMetaTileEntity_IndustrialMacerator extends public IStructureDefinition<GregtechMetaTileEntity_IndustrialMacerator> getStructureDefinition() { if (STRUCTURE_DEFINITION == null) { STRUCTURE_DEFINITION = StructureDefinition.<GregtechMetaTileEntity_IndustrialMacerator>builder() - .addShape(mName + "top", transpose(new String[][] { { "CCC", "CCC", "CCC" }, })) + .addShape(mName + "top1", transpose(new String[][] { { "ccc", "ccc", "ccc" }, })) + .addShape(mName + "mid1", transpose(new String[][] { { "ccc", "c-c", "ccc" }, })) + .addShape(mName + "bottom1", transpose(new String[][] { { "b~b", "bbb", "bbb" }, })) + .addShape(mName + "top2", transpose(new String[][] { { "CCC", "CCC", "CCC" }, })) .addShape( - mName + "mid", + mName + "mid2", transpose(new String[][] { { "CCC", "C-C", "CCC" }, })) - .addShape(mName + "bottom", transpose(new String[][] { { "B~B", "BBB", "BBB" }, })) + .addShape(mName + "bottom2", transpose(new String[][] { { "B~B", "BBB", "BBB" }, })) .addElement( 'C', ofChain( - buildHatchAdder(GregtechMetaTileEntity_IndustrialMacerator.class).atLeast(OutputBus) + buildHatchAdder(GregtechMetaTileEntity_IndustrialMacerator.class).anyOf(OutputBus) .shouldReject(t -> t.mPerLayer + 1 == t.mOutputBusses.size()) .disallowOnly(ForgeDirection.UP, ForgeDirection.DOWN) .casingIndex(TAE.GTPP_INDEX(7)).dot(2).build(), @@ -97,6 +107,31 @@ public class GregtechMetaTileEntity_IndustrialMacerator extends .atLeast(Energy, Maintenance, InputBus).disallowOnly(ForgeDirection.UP) .casingIndex(TAE.GTPP_INDEX(7)).dot(2).build(), onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasingsMisc, 7)))) + .addElement( + 'c', + ofChain( + buildHatchAdder(GregtechMetaTileEntity_IndustrialMacerator.class).anyOf(OutputBus) + .shouldReject(t -> t.mPerLayer + 1 == t.mOutputBusses.size()) + .disallowOnly(ForgeDirection.UP, ForgeDirection.DOWN) + .casingIndex( + GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings4, 2)) + .dot(2).build(), + buildHatchAdder(GregtechMetaTileEntity_IndustrialMacerator.class) + .atLeast(Energy, Maintenance, Muffler) + .disallowOnly(ForgeDirection.UP, ForgeDirection.DOWN) + .casingIndex( + GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings4, 2)) + .dot(2).build(), + onElementPass(x -> ++x.mCasing, ofBlock(GregTech_API.sBlockCasings4, 2)))) + .addElement( + 'b', + ofChain( + buildHatchAdder(GregtechMetaTileEntity_IndustrialMacerator.class) + .atLeast(Energy, Maintenance, InputBus).disallowOnly(ForgeDirection.UP) + .casingIndex( + GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings4, 2)) + .dot(2).build(), + onElementPass(x -> ++x.mCasing, ofBlock(GregTech_API.sBlockCasings4, 2)))) .build(); } return STRUCTURE_DEFINITION; @@ -104,46 +139,95 @@ public class GregtechMetaTileEntity_IndustrialMacerator extends @Override public void construct(ItemStack stackSize, boolean hintsOnly) { - buildPiece(mName + "bottom", stackSize, hintsOnly, 1, 0, 0); - buildPiece(mName + "mid", stackSize, hintsOnly, 1, 1, 0); - buildPiece(mName + "mid", stackSize, hintsOnly, 1, 2, 0); - buildPiece(mName + "mid", stackSize, hintsOnly, 1, 3, 0); - buildPiece(mName + "mid", stackSize, hintsOnly, 1, 4, 0); - buildPiece(mName + "top", stackSize, hintsOnly, 1, 5, 0); + buildPiece(mName + "bottom" + controllerTier, stackSize, hintsOnly, 1, 0, 0); + buildPiece(mName + "mid" + controllerTier, stackSize, hintsOnly, 1, 1, 0); + buildPiece(mName + "mid" + controllerTier, stackSize, hintsOnly, 1, 2, 0); + buildPiece(mName + "mid" + controllerTier, stackSize, hintsOnly, 1, 3, 0); + buildPiece(mName + "mid" + controllerTier, stackSize, hintsOnly, 1, 4, 0); + buildPiece(mName + "top" + controllerTier, stackSize, hintsOnly, 1, 5, 0); } @Override public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { if (mMachine) return -1; int built; - built = survivialBuildPiece(mName + "bottom", stackSize, 1, 0, 0, elementBudget, env, false, true); + built = survivialBuildPiece( + mName + "bottom" + controllerTier, + stackSize, + 1, + 0, + 0, + elementBudget, + env, + false, + true); mPerLayer = 0; if (built >= 0) return built; - built = survivialBuildPiece(mName + "mid", stackSize, 1, 1, 0, elementBudget, env, false, true); + built = survivialBuildPiece( + mName + "mid" + controllerTier, + stackSize, + 1, + 1, + 0, + elementBudget, + env, + false, + true); mPerLayer = 1; if (built >= 0) return built; - built = survivialBuildPiece(mName + "mid", stackSize, 1, 2, 0, elementBudget, env, false, true); + built = survivialBuildPiece( + mName + "mid" + controllerTier, + stackSize, + 1, + 2, + 0, + elementBudget, + env, + false, + true); if (built >= 0) return built; mPerLayer = 2; - built = survivialBuildPiece(mName + "mid", stackSize, 1, 3, 0, elementBudget, env, false, true); + built = survivialBuildPiece( + mName + "mid" + controllerTier, + stackSize, + 1, + 3, + 0, + elementBudget, + env, + false, + true); if (built >= 0) return built; mPerLayer = 3; - built = survivialBuildPiece(mName + "mid", stackSize, 1, 4, 0, elementBudget, env, false, true); + built = survivialBuildPiece( + mName + "mid" + controllerTier, + stackSize, + 1, + 4, + 0, + elementBudget, + env, + false, + true); if (built >= 0) return built; - return survivialBuildPiece(mName + "top", stackSize, 1, 5, 0, elementBudget, env, false, true); + mPerLayer = 4; + return survivialBuildPiece(mName + "top" + controllerTier, stackSize, 1, 5, 0, elementBudget, env, false, true); } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mCasing = 0; mPerLayer = 0; - if (checkPiece(mName + "bottom", 1, 0, 0)) { + if (checkPiece(mName + "bottom" + controllerTier, 1, 0, 0)) { while (mPerLayer < 4) { - if (!checkPiece(mName + "mid", 1, mPerLayer + 1, 0) || mPerLayer + 1 != mOutputBusses.size()) + if (!checkPiece(mName + "mid" + controllerTier, 1, mPerLayer + 1, 0) + || mPerLayer + 1 != mOutputBusses.size()) return false; mPerLayer++; } - return checkPiece(mName + "top", 1, 5, 0) && mOutputBusses.size() == 5 && mCasing >= 26 && checkHatch(); + return checkPiece(mName + "top" + controllerTier, 1, 5, 0) && mOutputBusses.size() == 5 + && mCasing >= 26 + && checkHatch(); } return false; } @@ -165,7 +249,12 @@ public class GregtechMetaTileEntity_IndustrialMacerator extends @Override protected int getCasingTextureId() { - return TAE.GTPP_INDEX(7); + switch (controllerTier) { + case 2: + return TAE.GTPP_INDEX(7); + default: + return GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings4, 2); + } } @Override @@ -193,6 +282,64 @@ public class GregtechMetaTileEntity_IndustrialMacerator extends } @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + if (aTick % 20 == 0 && controllerTier == 1) { + ItemStack aGuiStack = this.getGUIItemStack(); + if (aGuiStack != null) { + if (GT_Utility.areStacksEqual(aGuiStack, GregtechItemList.Maceration_Upgrade_Chip.get(1))) { + controllerTier = 2; + mInventory[1] = ItemUtils.depleteStack(aGuiStack); + // schedule a structure check + mUpdated = true; + } + } + } + } + + @Override + public void onValueUpdate(byte aValue) { + controllerTier = aValue; + } + + @Override + public byte getUpdateData() { + return (byte) controllerTier; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setByte("mTier", (byte) controllerTier); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + if (!aNBT.hasKey("mTier", NBT.TAG_BYTE)) + // we assume old macerators are all T2 variants, as they were made before price reduction and shouldn't need + // to worry about upgrading + controllerTier = 2; + else controllerTier = aNBT.getByte("mTier"); + } + + @Override + public void initDefaultModes(NBTTagCompound aNBT) { + super.initDefaultModes(aNBT); + if (aNBT == null || !aNBT.hasKey("mTier")) { + controllerTier = 1; + } else { + controllerTier = aNBT.getByte("mTier"); + } + } + + @Override + public void setItemNBT(NBTTagCompound aNBT) { + super.setItemNBT(aNBT); + aNBT.setByte("mTier", (byte) controllerTier); + } + + @Override public boolean checkRecipe(final ItemStack aStack) { return checkRecipeGeneric(getMaxParallelRecipes(), getEuDiscountForParallelism(), 60, 7500); } @@ -206,7 +353,7 @@ public class GregtechMetaTileEntity_IndustrialMacerator extends public int getMaxParallelRecipes() { final long tVoltage = getMaxInputVoltage(); final byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); - return Math.max(1, 8 * tTier); + return Math.max(1, (controllerTier == 1 ? 2 : 8) * tTier); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java index 4d388da0ed..e19393213a 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java @@ -411,7 +411,7 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends if (aGuiStack != null) { if (GT_Utility.areStacksEqual(aGuiStack, GregtechItemList.Distillus_Upgrade_Chip.get(1))) { this.mUpgraded = true; - ItemUtils.depleteStack(aGuiStack); + mInventory[1] = ItemUtils.depleteStack(aGuiStack); } } } diff --git a/src/main/resources/assets/miscutils/textures/items/MU-metaitem.01/152.png b/src/main/resources/assets/miscutils/textures/items/MU-metaitem.01/152.png Binary files differnew file mode 100644 index 0000000000..f26db362f0 --- /dev/null +++ b/src/main/resources/assets/miscutils/textures/items/MU-metaitem.01/152.png |