From 12eb4d8895df0d176753784f38a6584c94eb988c Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 9 Oct 2016 21:59:56 +0200 Subject: [PATCH] Make fluid autocrafting work correctly with buckets --- .../autocrafting/task/CraftingTask.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index 853f45ce5..4a62338b8 100755 --- a/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -88,11 +88,21 @@ public class CraftingTask implements ICraftingTask { if (fluidInStorage == null || fluidInStorage.amount < fluidInItem.amount) { missing.add(input); - } else if (network.getItemStorage().getList().get(RSUtils.EMPTY_BUCKET) == null) { - missing.add(RSUtils.EMPTY_BUCKET.copy()); } else { - toTake.add(RSUtils.EMPTY_BUCKET.copy()); - toTakeFluids.add(fluidInItem.copy()); + boolean hasBucket = network.getItemStorage().getList().get(RSUtils.EMPTY_BUCKET) != null; + ICraftingPattern bucketPattern = network.getPattern(RSUtils.EMPTY_BUCKET); + + if (!hasBucket) { + if (bucketPattern == null) { + missing.add(RSUtils.EMPTY_BUCKET.copy()); + } else { + calculate(list, bucketPattern, false); + } + } + + if (hasBucket || bucketPattern != null) { + toTakeFluids.add(fluidInItem.copy()); + } } } else { missing.add(input);