From 29b8e762ed9df458ba004d9b7ba1728e9d472066 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Tue, 29 May 2018 11:15:04 +0200 Subject: [PATCH] Some more fixes. --- .../api/autocrafting/ICraftingPattern.java | 4 ++-- .../apiimpl/autocrafting/CraftingPattern.java | 8 ++++++-- .../apiimpl/autocrafting/task/CraftingExtractor.java | 2 ++ .../apiimpl/autocrafting/task/CraftingTask.java | 10 +++------- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPattern.java index a4c932100..ba5565baa 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/ICraftingPattern.java @@ -51,13 +51,13 @@ public interface ICraftingPattern { ItemStack getOutput(NonNullList took); /** - * @return the outputs + * @return the byproducts */ NonNullList getByproducts(); /** * @param took the items took per slot - * @return the outputs based on the items took + * @return the byproducts based on the items took */ NonNullList getByproducts(NonNullList took); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java index d1a86acf8..4bb904c82 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java @@ -125,7 +125,7 @@ public class CraftingPattern implements ICraftingPattern { public ItemStack getOutput(NonNullList took) { if (processing) { - throw new IllegalStateException("Cannot get crafting outputs from processing pattern"); + throw new IllegalStateException("Cannot get crafting output from processing pattern"); } if (took.size() != inputs.size()) { @@ -148,13 +148,17 @@ public class CraftingPattern implements ICraftingPattern { @Override public NonNullList getByproducts() { + if (processing) { + throw new IllegalStateException("Cannot get byproduct outputs from processing pattern"); + } + return byproducts; } @Override public NonNullList getByproducts(NonNullList took) { if (processing) { - throw new IllegalStateException("Cannot get crafting outputs from processing pattern"); + throw new IllegalStateException("Cannot get byproduct outputs from processing pattern"); } if (took.size() != inputs.size()) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingExtractor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingExtractor.java index 8cc978b45..76fb06873 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingExtractor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingExtractor.java @@ -61,6 +61,8 @@ public class CraftingExtractor { } status.set(i, CraftingExtractorItemStatus.EXTRACTED); + + return; } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index 97c1538c7..01b300223 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -75,9 +75,9 @@ public class CraftingTask implements ICraftingTask { ItemStack fromSelf = results.get(possibleInput); if (fromSelf != null) { - int toExtractFromSelf = fromSelf.getCount(); + int toExtractFromSelf = Math.min(possibleInput.getCount(), fromSelf.getCount()); - results.remove(fromSelf, Math.min(possibleInput.getCount(), toExtractFromSelf)); + results.remove(possibleInput, toExtractFromSelf); toExtract -= toExtractFromSelf; } @@ -106,7 +106,7 @@ public class CraftingTask implements ICraftingTask { this.toCraft.add(possibleInput, missing); while (missing > 0) { - this.steps.add(calculateInternal(mutatedStorage, results, subPattern)); + this.steps.add(calculateInternal(mutatedStorage, results, subPattern)); // TODO: eating from itself? missing -= getQuantityPerCraft(subPattern, possibleInput); } @@ -119,10 +119,6 @@ public class CraftingTask implements ICraftingTask { for (ItemStack output : pattern.getOutputs()) { results.add(output); } - - for (ItemStack byproduct : pattern.getByproducts()) { - results.add(byproduct); - } } else { results.add(pattern.getOutput(took));