From b59b599c60d25485a8047b6f1d93177394591f89 Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Sun, 27 Sep 2020 08:06:13 +0200 Subject: [PATCH] fix selecting fluidhandler fix if you picked a fluidhandler that is not the first one will still transfer the firsts fluid instead of selected fluid --- src/main/scala/li/cil/oc/util/FluidUtils.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/scala/li/cil/oc/util/FluidUtils.scala b/src/main/scala/li/cil/oc/util/FluidUtils.scala index 79639d9a7..5cf9a23c4 100644 --- a/src/main/scala/li/cil/oc/util/FluidUtils.scala +++ b/src/main/scala/li/cil/oc/util/FluidUtils.scala @@ -44,7 +44,8 @@ object FluidUtils { val ti = source.getTankInfo(sourceSide) val srcFluid = if (sourceTank < 0 || ti == null || ti.length <= sourceTank) null else ti(sourceTank).fluid.copy() - val drained = if (srcFluid == null) + val nullFluid = srcFluid == null; + val drained = if (nullFluid) source.drain(sourceSide, limit, false) else { srcFluid.amount = limit @@ -52,7 +53,12 @@ object FluidUtils { } if (drained != null) { val filled = sink.fill(sinkSide, drained, false) - sink.fill(sinkSide, source.drain(sourceSide, filled, true), true) + if (nullFluid) { + sink.fill(sinkSide, source.drain(sourceSide, filled, true), true) + } else { + srcFluid.amount = filled + sink.fill(sinkSide, source.drain(sourceSide, srcFluid, true), true) + } } else 0 }