From 958f350464f609f6d3edfbce0cb6fcff3783a924 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Sun, 19 Apr 2015 11:47:53 +0200 Subject: [PATCH] Fix casting Channels not respecting fluid-parameter when draining. #1517 You still shouldn't use them though. --- .../smeltery/logic/CastingChannelLogic.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/tconstruct/smeltery/logic/CastingChannelLogic.java b/src/main/java/tconstruct/smeltery/logic/CastingChannelLogic.java index 0225c421..62077192 100644 --- a/src/main/java/tconstruct/smeltery/logic/CastingChannelLogic.java +++ b/src/main/java/tconstruct/smeltery/logic/CastingChannelLogic.java @@ -383,6 +383,17 @@ public class CastingChannelLogic extends TileEntity implements IFluidHandler @Override public FluidStack drain (ForgeDirection from, FluidStack resource, boolean doDrain) { + FluidStack fluidStack = null; + if (from == ForgeDirection.DOWN) + if(this.internalTank.getFluid() != null) + fluidStack = this.internalTank.getFluid(); + else if(validOutputs.contains(from)) + fluidStack = this.subTanks.get(from).getFluid(); + + // wrong fluid + if(fluidStack != null && fluidStack.getFluid() != resource.getFluid()) + return null; + return drain(from, resource.amount, doDrain); }