aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2023-03-25 18:32:18 +0100
committerGitHub <noreply@github.com>2023-03-25 18:32:18 +0100
commit23543172c014c23a740148c3c9c2668fde574f96 (patch)
tree60ef1dd2e931cd7c8c071c8c2e6597d0ae76a90c /src
parent2ab22537fcb12a30858bdaf825d2a396211b34d5 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java29
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java64
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java1
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java4
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java197
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java2
-rw-r--r--src/main/resources/assets/miscutils/textures/items/MU-metaitem.01/152.pngbin0 -> 296 bytes
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
new file mode 100644
index 0000000000..f26db362f0
--- /dev/null
+++ b/src/main/resources/assets/miscutils/textures/items/MU-metaitem.01/152.png
Binary files differ