aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity/implementations
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-08-03 22:47:12 +0200
committerTechnus <daniel112092@gmail.com>2017-08-03 22:47:12 +0200
commit32fe75001aa6c8491432bdf9c8d19c1e5449b4bf (patch)
treefa15666cb7dd881164bd9c150e468a37ad744c4b /src/main/java/gregtech/api/metatileentity/implementations
parent4a66c8f221f0e2cdb7a69ffccc5eb44d811d0358 (diff)
parent77161c7daf90485265fc6e948ca1159f0c0e7fd8 (diff)
downloadGT5-Unofficial-32fe75001aa6c8491432bdf9c8d19c1e5449b4bf.tar.gz
GT5-Unofficial-32fe75001aa6c8491432bdf9c8d19c1e5449b4bf.tar.bz2
GT5-Unofficial-32fe75001aa6c8491432bdf9c8d19c1e5449b4bf.zip
Merge branch 'experimental' of https://github.com/GTNewHorizons/GT5-Unofficial into experimental
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/implementations')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java28
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java30
2 files changed, 41 insertions, 17 deletions
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..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
@@ -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;
@@ -631,8 +632,31 @@ 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);
+ ItemStack[] rInputs = new ItemStack[mInputSlotCount + 1];
+ boolean foundEmptySlotOrAreTwoInputsEqual = false;
+ boolean foundIntegratedCircuit = false;
+ for (int i = 0; i < mInputSlotCount; i++){
+ ItemStack currentInput = getInputAt(i);
+ if (currentInput == null) {
+ foundEmptySlotOrAreTwoInputsEqual = true;
+ continue;
+ }
+ rInputs[i] = currentInput;
+
+ if (!foundIntegratedCircuit && currentInput != null && currentInput.getItem() instanceof GT_IntegratedCircuit_Item) {
+ foundIntegratedCircuit = true;
+ }
+ 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);
+ }
return rInputs;
}
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 a89ed0779a..6ea6df7b4c 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
@@ -263,15 +263,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
addOutput(tStack);
}
- if(mOutputFluids!=null) {
- if (mOutputFluids.length == 1) {
- for (FluidStack tStack : mOutputFluids)
- if (tStack != null) {
- addOutput(tStack);
- }
- } else if (mOutputFluids.length > 1) {
- addFluidOutputs(mOutputFluids);
- }
+ if (mOutputFluids != null) {
+ addFluidOutputs(mOutputFluids);
}
mEfficiency = Math.max(0, Math.min(mEfficiency + mEfficiencyIncrease, getMaxEfficiency(mInventory[1]) - ((getIdealStatus() - getRepairStatus()) * 1000)));
mOutputItems = null;
@@ -606,13 +599,20 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
protected void addFluidOutputs(FluidStack[] mOutputFluids) {
- int min=mOutputFluids.length>mOutputHatches.size()?mOutputHatches.size():mOutputFluids.length;
- for (int i = 0; i < min; ++i) {
- if (this.mOutputHatches.get(i) != null && mOutputFluids[i] != null && isValidMetaTileEntity(this.mOutputHatches.get(i))) {
- this.mOutputHatches.get(i).fill(mOutputFluids[i], true);
- }
+ for (FluidStack outputFluidStack : mOutputFluids) {
+ if (outputFluidStack != null) {
+ FluidStack copiedStack = outputFluidStack.copy();
+ for (GT_MetaTileEntity_Hatch_Output outputhatch : mOutputHatches) {
+ if (copiedStack.amount <= 0) {
+ break;
+ }
+ if (!isValidMetaTileEntity(outputhatch)) {
+ continue;
+ }
+ copiedStack.amount -= outputhatch.fill(copiedStack, true);
+ }
+ }
}
-
}
public boolean depleteInput(FluidStack aLiquid) {