aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Gäßler <updrn@student.kit.edu>2017-07-10 22:36:11 +0200
committerJohannes Gäßler <updrn@student.kit.edu>2017-07-10 22:39:51 +0200
commitbb68a5f74b1759f250cd68c76cb1c0f03599000d (patch)
treec89c0102e7a181d271479e301201b800ed75c33c
parentda2e748e8a179e38b9bd38381b0c8961dd529261 (diff)
downloadGT5-Unofficial-bb68a5f74b1759f250cd68c76cb1c0f03599000d.tar.gz
GT5-Unofficial-bb68a5f74b1759f250cd68c76cb1c0f03599000d.tar.bz2
GT5-Unofficial-bb68a5f74b1759f250cd68c76cb1c0f03599000d.zip
Made it so that multiblocks will look for empty output hatches.
Previously when there was more than one fluid output multiblocks would only try to put it into one of the output hatches.
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java27
1 files changed, 15 insertions, 12 deletions
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 a02a5568a0..6c0f8f5afe 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,13 +263,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
addOutput(tStack);
}
- if (mOutputFluids != null && mOutputFluids.length == 1) {
- for (FluidStack tStack : mOutputFluids)
- if (tStack != null) {
- addOutput(tStack);
- }
- } else if (mOutputFluids != null && 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;
@@ -554,12 +549,20 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
protected void addFluidOutputs(FluidStack[] mOutputFluids2) {
- for (int i = 0; i < mOutputFluids2.length; i++) {
- if (mOutputHatches.size() > i && mOutputHatches.get(i) != null && mOutputFluids2[i] != null && isValidMetaTileEntity(mOutputHatches.get(i))) {
- mOutputHatches.get(i).fill(mOutputFluids2[i], true);
- }
+ for (FluidStack outputFluidStack : mOutputFluids2) {
+ 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) {