Fixed multiple fluid in network conflict
This commit is contained in:
parent
3c4808bb6c
commit
ca9e694a68
2 changed files with 13 additions and 8 deletions
|
@ -126,7 +126,8 @@ public class PartPipe extends PartFramedConnection<EnumPipeMaterial, IFluidPipe,
|
|||
@Override
|
||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
||||
{
|
||||
markPacket = true;
|
||||
if (doFill)
|
||||
markPacket = true;
|
||||
if (!world().isRemote)
|
||||
return tank.fill(resource, doFill);
|
||||
return pressure;
|
||||
|
@ -135,7 +136,8 @@ public class PartPipe extends PartFramedConnection<EnumPipeMaterial, IFluidPipe,
|
|||
@Override
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
|
||||
{
|
||||
markPacket = true;
|
||||
if (doDrain)
|
||||
markPacket = true;
|
||||
if (!world().isRemote)
|
||||
return tank.drain(resource.amount, doDrain);
|
||||
return null;
|
||||
|
@ -144,7 +146,8 @@ public class PartPipe extends PartFramedConnection<EnumPipeMaterial, IFluidPipe,
|
|||
@Override
|
||||
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
|
||||
{
|
||||
markPacket = true;
|
||||
if (doDrain)
|
||||
markPacket = true;
|
||||
if (!world().isRemote)
|
||||
return tank.drain(maxDrain, doDrain);
|
||||
return null;
|
||||
|
|
|
@ -191,8 +191,10 @@ public class PipeNetwork extends FluidNetwork
|
|||
|
||||
if (quantity > 0)
|
||||
{
|
||||
sourcePipe.drain(dir.getOpposite(), quantity, true);
|
||||
otherPipe.fill(dir, new FluidStack(fluidA.getFluid(), quantity), true);
|
||||
FluidStack drainStack = sourcePipe.drain(dir.getOpposite(), quantity, false);
|
||||
|
||||
if (drainStack != null)
|
||||
sourcePipe.drain(dir.getOpposite(), otherPipe.fill(dir, drainStack, true), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -213,8 +215,8 @@ public class PipeNetwork extends FluidNetwork
|
|||
{
|
||||
if (sourceTank.getFluidAmount() > 0 && transferAmount > 0)
|
||||
{
|
||||
FluidStack drainStack = sourceTank.drain(transferAmount, false);
|
||||
sourceTank.drain(fluidHandler.fill(dir.getOpposite(), drainStack, true), true);
|
||||
FluidStack drainStack = sourcePipe.drain(dir.getOpposite(), transferAmount, false);
|
||||
sourcePipe.drain(dir.getOpposite(), fluidHandler.fill(dir.getOpposite(), drainStack, true), true);
|
||||
}
|
||||
}
|
||||
else if (pressure < tankPressure)
|
||||
|
@ -222,7 +224,7 @@ public class PipeNetwork extends FluidNetwork
|
|||
if (transferAmount > 0)
|
||||
{
|
||||
FluidStack drainStack = fluidHandler.drain(dir.getOpposite(), transferAmount, false);
|
||||
fluidHandler.drain(dir.getOpposite(), sourceTank.fill(drainStack, true), true);
|
||||
fluidHandler.drain(dir.getOpposite(), sourcePipe.fill(dir.getOpposite(), drainStack, true), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue