From 88c63884b8c7a2562e1661149a535bbdd9da5196 Mon Sep 17 00:00:00 2001 From: Johannes Gäßler Date: Tue, 1 Aug 2017 09:01:03 +0200 Subject: Made it so that empty slots are treated as Integ. Circ. with config 0 --- .../implementations/GT_MetaTileEntity_BasicMachine.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index b1a74ab303..4704fb753e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -632,7 +632,20 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B protected ItemStack[] getAllInputs() { ItemStack[] rInputs = new ItemStack[mInputSlotCount]; - for (int i = 0; i < mInputSlotCount; i++) rInputs[i] = getInputAt(i); + int emptySlotLocation = -1; + for (int i = 0; i < mInputSlotCount; i++){ + ItemStack currentInput = getInputAt(i); + if (emptySlotLocation == -1) { + if (currentInput == null) { + emptySlotLocation = i; + continue; + } + } + rInputs[i] = currentInput; + } + if (emptySlotLocation != -1) { + rInputs[emptySlotLocation] = GT_Utility.getIntegratedCircuit(0); + } return rInputs; } -- cgit From c5417f20ceafea8e8dabb40afbc64e6d6b6b61b8 Mon Sep 17 00:00:00 2001 From: Dream-Master Date: Tue, 1 Aug 2017 22:57:32 +0200 Subject: cherry pick Commit: ecf7b4aa504315528810f3a66867788810b00ab0 [ecf7b4a] Empty slots are only used as IntCirc(0) if no other IntCirc is in input --- .../implementations/GT_MetaTileEntity_BasicMachine.java | 10 ++++++++-- .../java/gregtech/loaders/postload/GT_MachineRecipeLoader.java | 6 ++++-- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index 4704fb753e..0a31298df9 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -14,6 +14,7 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; +import gregtech.common.items.GT_IntegratedCircuit_Item; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -633,6 +634,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B protected ItemStack[] getAllInputs() { ItemStack[] rInputs = new ItemStack[mInputSlotCount]; int emptySlotLocation = -1; + boolean foundIntegratedCircuit = false; for (int i = 0; i < mInputSlotCount; i++){ ItemStack currentInput = getInputAt(i); if (emptySlotLocation == -1) { @@ -641,9 +643,13 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B continue; } } - rInputs[i] = currentInput; + if (!foundIntegratedCircuit && currentInput != null && currentInput.getItem() instanceof GT_IntegratedCircuit_Item) { + foundIntegratedCircuit = true; + } + + rInputs[i] = currentInput; } - if (emptySlotLocation != -1) { + if (emptySlotLocation != -1 && !foundIntegratedCircuit) { rInputs[emptySlotLocation] = GT_Utility.getIntegratedCircuit(0); } return rInputs; diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index 0c97e90a9c..9eeedf02dc 100644 --- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -2646,8 +2646,10 @@ public class GT_MachineRecipeLoader implements Runnable { GT_Values.RA.addDistilleryRecipe(1, Materials.SaltWater.getFluid(1000), GT_ModHandler.getDistilledWater(1000), Materials.Salt.getDust(2), 3200, 16, false); GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("potion.vinegar", 40), new FluidStack[]{Materials.AceticAcid.getFluid(5), Materials.Water.getFluid(35)}, GT_Values.NI, 20, 64); - GT_Values.RA.addMixerRecipe(Materials.Calcite.getDust(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 240, 16); - GT_Values.RA.addMixerRecipe(Materials.Calcium.getDust(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 80, 16); + GT_Values.RA.addMixerRecipe(Materials.Calcite.getDust(1), GT_Utility.getIntegratedCircuit(0), GT_Values.NI, GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 240, 16); + GT_Values.RA.addMixerRecipe(Materials.Calcium.getDust(1), GT_Utility.getIntegratedCircuit(0), GT_Values.NI, GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 80, 16); + GT_Values.RA.addMixerRecipe(Materials.Calcite.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(10), GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 240, 16); + GT_Values.RA.addMixerRecipe(Materials.Calcium.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(10), GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 80, 16); GameRegistry.addSmelting(Materials.CalciumAcetateSolution.getCells(1), Materials.Acetone.getCells(1), 0); GT_Values.RA.addFluidHeaterRecipe(GT_Utility.getIntegratedCircuit(0), Materials.CalciumAcetateSolution.getFluid(1000), Materials.Acetone.getFluid(1000), 80, 30); GT_Values.RA.addUniversalDistillationRecipe(Materials.CalciumAcetateSolution.getFluid(1000), new FluidStack[]{Materials.Acetone.getFluid(1000)}, Materials.Calcite.getDustSmall(3), 80, 480); -- cgit From bbb249b3ba869a8c5caab4274099e6aad2ce3add Mon Sep 17 00:00:00 2001 From: Dream-Master Date: Tue, 1 Aug 2017 23:00:12 +0200 Subject: cherry pick Commit: 4bfbdcdb1dea4d4e4786e351b591096fb7646351 [4bfbdcd] Made it so that if two inputs are equal an Integr. Circuit (0) is added --- .../GT_MetaTileEntity_BasicMachine.java | 31 +++++++++++++--------- .../loaders/postload/GT_MachineRecipeLoader.java | 4 +-- 2 files changed, 20 insertions(+), 15 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index 0a31298df9..bdf198bf4c 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -632,26 +632,31 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } protected ItemStack[] getAllInputs() { - ItemStack[] rInputs = new ItemStack[mInputSlotCount]; - int emptySlotLocation = -1; + ItemStack[] rInputs = new ItemStack[mInputSlotCount + 1]; + boolean foundEmptySlotOrAreTwoInputsEqual = false; boolean foundIntegratedCircuit = false; for (int i = 0; i < mInputSlotCount; i++){ ItemStack currentInput = getInputAt(i); - if (emptySlotLocation == -1) { - if (currentInput == null) { - emptySlotLocation = i; - continue; - } - } + if (currentInput == null) { + foundEmptySlotOrAreTwoInputsEqual = true; + continue; + } + rInputs[i] = currentInput; + if (!foundIntegratedCircuit && currentInput != null && currentInput.getItem() instanceof GT_IntegratedCircuit_Item) { foundIntegratedCircuit = true; } - - rInputs[i] = currentInput; + if (!foundEmptySlotOrAreTwoInputsEqual) { + for (int j = 0; j < i; j++) { + if (GT_Utility.areStacksEqual(rInputs[i], rInputs[j])) { + foundEmptySlotOrAreTwoInputsEqual = true; + } + } + } + } + if (!foundIntegratedCircuit && foundEmptySlotOrAreTwoInputsEqual) { + rInputs[mInputSlotCount] = GT_Utility.getIntegratedCircuit(0); } - if (emptySlotLocation != -1 && !foundIntegratedCircuit) { - rInputs[emptySlotLocation] = GT_Utility.getIntegratedCircuit(0); - } return rInputs; } diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index 9eeedf02dc..f3ef6bbe57 100644 --- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -2648,8 +2648,8 @@ public class GT_MachineRecipeLoader implements Runnable { GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("potion.vinegar", 40), new FluidStack[]{Materials.AceticAcid.getFluid(5), Materials.Water.getFluid(35)}, GT_Values.NI, 20, 64); GT_Values.RA.addMixerRecipe(Materials.Calcite.getDust(1), GT_Utility.getIntegratedCircuit(0), GT_Values.NI, GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 240, 16); GT_Values.RA.addMixerRecipe(Materials.Calcium.getDust(1), GT_Utility.getIntegratedCircuit(0), GT_Values.NI, GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 80, 16); - GT_Values.RA.addMixerRecipe(Materials.Calcite.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(10), GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 240, 16); - GT_Values.RA.addMixerRecipe(Materials.Calcium.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(10), GT_Values.NI, Materials.AceticAcid.getFluid(2000), Materials.CalciumAcetateSolution.getFluid(1000), GT_Values.NI, 80, 16); + GT_Values.RA.addMixerRecipe(Materials.Calcite.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(10), GT_Values.NI, Materials.AceticAcid.getFluid(2000), GT_Values.NF, Materials.CalciumAcetateSolution.getCells(1), 240, 16); + GT_Values.RA.addMixerRecipe(Materials.Calcium.getDust(1), Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(10), GT_Values.NI, Materials.AceticAcid.getFluid(2000), GT_Values.NF, Materials.CalciumAcetateSolution.getCells(1), 80, 16); GameRegistry.addSmelting(Materials.CalciumAcetateSolution.getCells(1), Materials.Acetone.getCells(1), 0); GT_Values.RA.addFluidHeaterRecipe(GT_Utility.getIntegratedCircuit(0), Materials.CalciumAcetateSolution.getFluid(1000), Materials.Acetone.getFluid(1000), 80, 30); GT_Values.RA.addUniversalDistillationRecipe(Materials.CalciumAcetateSolution.getFluid(1000), new FluidStack[]{Materials.Acetone.getFluid(1000)}, Materials.Calcite.getDustSmall(3), 80, 480); -- cgit