From 4323f872cf22a5a476b209601094192146fbb3b8 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 20 Sep 2016 17:22:40 +0200 Subject: [PATCH] Exporter in fluid mode no longer duplicates fluids that are less than 1 bucket, fixes #369 --- CHANGELOG.md | 1 + .../java/refinedstorage/tile/TileExporter.java | 16 +++++++++++----- .../refinedstorage/tile/config/RedstoneMode.java | 4 ++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2f0b8a59..82b040b11 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Added Disk Manipulator (way2muchnoise) - Added ingame config (way2muchnoise) - When a machine is in use by a crafting pattern, inserting of items from other patterns will be avoided (raoulvdberge) +- Exporter in fluid mode no longer duplicates fluids that are less than 1 bucket (raoulvdberge) - Updated Dutch translation (raoulvdberge) ### 1.0.4 diff --git a/src/main/java/refinedstorage/tile/TileExporter.java b/src/main/java/refinedstorage/tile/TileExporter.java index ae4a5bf37..b6503b213 100755 --- a/src/main/java/refinedstorage/tile/TileExporter.java +++ b/src/main/java/refinedstorage/tile/TileExporter.java @@ -84,13 +84,19 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp if (handler != null) { for (FluidStack stack : fluidFilters.getFluids()) { if (stack != null) { - FluidStack took = network.extractFluid(stack, Fluid.BUCKET_VOLUME, compare); + FluidStack stackInStorage = network.getFluidStorage().get(stack, compare); - if (took != null) { - int remainder = Fluid.BUCKET_VOLUME - handler.fill(took, true); + if (stackInStorage != null) { + int toExtract = Math.min(Fluid.BUCKET_VOLUME, stackInStorage.amount); - if (remainder > 0) { - network.insertFluid(took, remainder, false); + FluidStack took = network.extractFluid(stack, toExtract, compare); + + if (took != null) { + int remainder = toExtract - handler.fill(took, true); + + if (remainder > 0) { + network.insertFluid(took, remainder, false); + } } } } diff --git a/src/main/java/refinedstorage/tile/config/RedstoneMode.java b/src/main/java/refinedstorage/tile/config/RedstoneMode.java index bf41509d5..1307b8497 100755 --- a/src/main/java/refinedstorage/tile/config/RedstoneMode.java +++ b/src/main/java/refinedstorage/tile/config/RedstoneMode.java @@ -22,9 +22,9 @@ public enum RedstoneMode { return world.isBlockPowered(pos); case LOW: return !world.isBlockPowered(pos); + default: + return false; } - - return false; } public void write(NBTTagCompound tag) {