From bb9fe6db1cf6ff61f407b948a4c77316e07e03d3 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Mon, 28 May 2018 18:32:59 +0200 Subject: [PATCH] Fix some bugs --- .../apiimpl/autocrafting/CraftingPattern.java | 2 +- .../autocrafting/task/CraftingStepCraft.java | 19 +++++++++++++------ .../autocrafting/task/CraftingTask.java | 8 +++++--- .../assets/refinedstorage/lang/en_us.lang | 2 +- 4 files changed, 20 insertions(+), 11 deletions(-) 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 d9bec5ee7..51638d8ac 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java @@ -34,7 +34,7 @@ public class CraftingPattern implements ICraftingPattern { this.oredict = ItemPattern.isOredict(stack); if (processing) { - this.valid = true; + this.valid = false; // TODO for (int i = 0; i < 9; ++i) { ItemStack input = ItemPattern.getSlot(stack, i); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java index c5a849dc1..768f7fa4c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingStepCraft.java @@ -4,15 +4,18 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.util.IStackList; import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; public class CraftingStepCraft implements ICraftingStep { private INetwork network; private IStackList toExtract; + private NonNullList took; private ICraftingPattern pattern; - public CraftingStepCraft(INetwork network, IStackList toExtract, ICraftingPattern pattern) { + public CraftingStepCraft(INetwork network, IStackList toExtract, NonNullList took, ICraftingPattern pattern) { this.network = network; this.toExtract = toExtract; + this.took = took; this.pattern = pattern; } @@ -27,14 +30,18 @@ public class CraftingStepCraft implements ICraftingStep { } for (ItemStack toExtractItem : toExtract.getStacks()) { - network.extractItem(toExtractItem, toExtractItem.getCount(), false); + ItemStack extracted = network.extractItem(toExtractItem, toExtractItem.getCount(), false); + + if (extracted == null) { + throw new IllegalStateException("Did not extract anything"); + } } - for (ItemStack output : pattern.getOutputs()) { - network.insertItem(output, output.getCount(), false); - } + ItemStack output = pattern.getOutput(took); - for (ItemStack byproduct : pattern.getByproducts()) { + network.insertItem(output, output.getCount(), false); + + for (ItemStack byproduct : pattern.getByproducts(took)) { network.insertItem(byproduct, byproduct.getCount(), false); } 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 7600f482a..99e8983b6 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 @@ -69,7 +69,7 @@ public class CraftingTask implements ICraftingTask { ItemStack fromSelf = results.get(possibleInput); if (fromSelf != null) { - results.remove(possibleInput, Math.min(possibleInput.getCount(), fromSelf.getCount())); + results.remove(fromSelf, Math.min(possibleInput.getCount(), fromSelf.getCount())); toExtract -= fromSelf.getCount(); } @@ -79,7 +79,7 @@ public class CraftingTask implements ICraftingTask { int fromNetworkCount = fromNetwork == null ? 0 : Math.min(toExtract, fromNetwork.getCount()); - itemsToExtract.add(possibleInput); + itemsToExtract.add(possibleInput, toExtract); if (fromNetworkCount > 0) { this.toTake.add(possibleInput, fromNetworkCount); @@ -123,7 +123,7 @@ public class CraftingTask implements ICraftingTask { } } - return new CraftingStepCraft(network, itemsToExtract, pattern); + return new CraftingStepCraft(network, itemsToExtract, took, pattern); } private int getQuantityPerCraft(ICraftingPattern pattern, ItemStack requested) { @@ -181,6 +181,8 @@ public class CraftingTask implements ICraftingTask { @Override public List getCraftingMonitorElements() { + // TODO + ICraftingMonitorElementList elements = API.instance().createCraftingMonitorElementList(); elements.directAdd(new CraftingMonitorElementItemRender(network.getCraftingManager().getTasks().indexOf(this), requested, quantity, 0)); diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.lang b/src/main/resources/assets/refinedstorage/lang/en_us.lang index 891f0343a..fdd6a9a38 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_us.lang @@ -60,7 +60,7 @@ gui.refinedstorage:crafting_preview.error.2=itself. gui.refinedstorage:crafting_preview.error.3=You need to remove the pattern or make sure gui.refinedstorage:crafting_preview.error.4=the pattern is not used during crafting. gui.refinedstorage:crafting_preview.error.5=Offending pattern: -gui.refinedstorage:crafting_preview.force_start=Press CTRL + SHIFT to start anyway +gui.refinedstorage:crafting_preview.force_start=Press CTRL + SHIFT to ignore gui.refinedstorage:reader=Reader gui.refinedstorage:writer=Writer gui.refinedstorage:security_manager=Security Manager