aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java16
-rw-r--r--src/main/java/kekztech/MultiFluidHandler.java2
2 files changed, 11 insertions, 7 deletions
diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java
index 709d2c42bb..a12f4130cb 100644
--- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java
+++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java
@@ -178,22 +178,26 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase {
for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) {
if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluidCopy.getUnlocalizedName())) {
storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount();
- } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluidCopy.getUnlocalizedName())) {
+ addFluidToHatch(storedFluidCopy,outputHatch);
+ } else if (outputHatch.getFluid() != null && outputHatch.getFluid().isFluidEqual(storedFluidCopy)) {
storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount();
- } else if (outputHatch.getFluid() == null) {
+ addFluidToHatch(storedFluidCopy,outputHatch);
+ } else if (!outputHatch.isFluidLocked() && outputHatch.getFluid() == null) {
storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount();
+ addFluidToHatch(storedFluidCopy,outputHatch);
}
}
- // Test how much can actually be drained and drain that amount
- storedFluidCopy.amount = mfh.pullFluid(storedFluidCopy, true);
- // Add to output
- super.addOutput(storedFluidCopy);
}
}
return true;
}
+ public void addFluidToHatch(FluidStack aFluid, GT_MetaTileEntity_Hatch_Output aHatch) {
+ aFluid.amount = mfh.pullFluid(aFluid, true);
+ aHatch.fill(aFluid,true);
+ }
+
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
super.onPostTick(aBaseMetaTileEntity, aTick);
diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java
index 936ecf5042..399f9faa8b 100644
--- a/src/main/java/kekztech/MultiFluidHandler.java
+++ b/src/main/java/kekztech/MultiFluidHandler.java
@@ -383,7 +383,7 @@ public class MultiFluidHandler {
return 0;
}
FluidStack tFluid = fluids[slot];
- if(tFluid == null && tFluid.equals(pull)) {
+ if(tFluid == null || !tFluid.equals(pull)) {
return 0;
} else {
final int rec = Math.min(pull.amount, tFluid.amount);