From 82026627c6fafbc0def10244f8c02ebd8c514f9a Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Sun, 14 Jan 2024 18:20:41 +0100 Subject: Feature/movefluid (#2459) * merge similar code into new utility function moveFluid * Spotless apply for branch feature/movefluid for #2455 (#2456) spotlessApply Co-authored-by: GitHub GTNH Actions <> * fix boolean logic * Spotless apply for branch feature/movefluid for #2459 (#2460) spotlessApply Co-authored-by: GitHub GTNH Actions <> * fix (cherry picked from commit dce33cb4bbc0b1405bcbee25b5f1f1e6384f0147) --------- Co-authored-by: Glease <4586901+Glease@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../common/covers/GT_Cover_FluidRegulator.java | 10 ++------ .../java/gregtech/common/covers/GT_Cover_Pump.java | 28 +++++----------------- 2 files changed, 8 insertions(+), 30 deletions(-) (limited to 'src/main/java/gregtech/common/covers') diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java index ce11a397f4..7d2afb838d 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java @@ -108,14 +108,8 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase 0) { - tTank2.fill(directionTo, tTank1.drain(directionFrom, tLiquid.amount, true), true); - } - } + GT_Utility + .moveFluid(tTank1, tTank2, directionFrom, Math.abs(aCoverVariable.speed), this::canTransferFluid); allowFluid = false; } } diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java index f36f6ce215..e1bbf950ce 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Pump.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Pump.java @@ -50,32 +50,16 @@ public class GT_Cover_Pump extends GT_CoverBehavior { final IFluidHandler toAccess = aTileEntity.getITankContainerAtSide(side); if (toAccess == null) return aCoverVariable; - transferFluid(current, toAccess, side, aCoverVariable % 2); + transferFluid(current, toAccess, side, aCoverVariable % 2 == 0); } return aCoverVariable; } - protected void transferFluid(IFluidHandler current, IFluidHandler toAccess, ForgeDirection side, - int exportOrImport) { - if (exportOrImport == 0) { - FluidStack liquid = current.drain(side, this.mTransferRate, false); - if (liquid != null) { - liquid = liquid.copy(); - liquid.amount = toAccess.fill(side.getOpposite(), liquid, false); - if (liquid.amount > 0 && canTransferFluid(liquid)) { - toAccess.fill(side.getOpposite(), current.drain(side, liquid.amount, true), true); - } - } - return; - } - FluidStack liquid = toAccess.drain(side.getOpposite(), this.mTransferRate, false); - if (liquid != null) { - liquid = liquid.copy(); - liquid.amount = current.fill(side, liquid, false); - if (liquid.amount > 0 && canTransferFluid(liquid)) { - current.fill(side, toAccess.drain(side.getOpposite(), liquid.amount, true), true); - } - } + protected void transferFluid(IFluidHandler current, IFluidHandler toAccess, ForgeDirection side, boolean export) { + IFluidHandler source = export ? current : toAccess; + IFluidHandler dest = export ? toAccess : current; + ForgeDirection drainSide = export ? side : side.getOpposite(); + GT_Utility.moveFluid(source, dest, drainSide, mTransferRate, this::canTransferFluid); } protected boolean canTransferFluid(FluidStack fluid) { -- cgit