From e94e8dec7f3d6ce03033180ecadb310a5c543aaa Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 25 Oct 2016 18:54:21 +0200 Subject: [PATCH] Fix crafting upgrade not working anymore, fixes #514 --- .../refinedstorage/api/network/INetworkMaster.java | 9 +++++++-- .../refinedstorage/tile/TileConstructor.java | 2 +- .../raoulvdberge/refinedstorage/tile/TileCrafter.java | 2 +- .../raoulvdberge/refinedstorage/tile/TileExporter.java | 2 +- .../raoulvdberge/refinedstorage/tile/TileInterface.java | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java index 27b83f289..94bfcaa8c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java @@ -166,7 +166,7 @@ public interface INetworkMaster { * @param toSchedule the amount of tasks to schedule * @param compare the compare value to find patterns */ - default void scheduleCraftingTaskIfUnscheduled(ItemStack stack, int toSchedule, int compare) { + default void scheduleCraftingTask(ItemStack stack, int toSchedule, int compare) { int alreadyScheduled = 0; for (ICraftingTask task : getCraftingTasks()) { @@ -181,7 +181,12 @@ public interface INetworkMaster { ICraftingPattern pattern = getPattern(stack, compare); if (pattern != null) { - addCraftingTask(createCraftingTask(stack, pattern, 1)); + ICraftingTask task = createCraftingTask(stack, pattern, 1); + + task.calculate(); + + // @TODO: Only schedule when there are no items missing? + addCraftingTask(task); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java index 56854876d..bd61b04f8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java @@ -180,7 +180,7 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I } else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { ItemStack craft = itemFilters.getStackInSlot(0); - network.scheduleCraftingTaskIfUnscheduled(craft, 1, compare); + network.scheduleCraftingTask(craft, 1, compare); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java index 7337db247..1f8115d84 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java @@ -110,7 +110,7 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { if (triggeredAutocrafting && worldObj.isBlockPowered(pos)) { for (ICraftingPattern pattern : actualPatterns) { for (ItemStack output : pattern.getOutputs()) { - network.scheduleCraftingTaskIfUnscheduled(output, 1, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT); + network.scheduleCraftingTask(output, 1, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java index 66feedc3d..59ee2c9d5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java @@ -72,7 +72,7 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp network.insertItem(remainder, remainder.stackSize, false); } } else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { - network.scheduleCraftingTaskIfUnscheduled(slot, 1, compare); + network.scheduleCraftingTask(slot, 1, compare); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java index 92a9e19cc..485116447 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java @@ -90,7 +90,7 @@ public class TileInterface extends TileNode implements IComparable { exportItems.getStackInSlot(i).stackSize += result.stackSize; } } else { - network.scheduleCraftingTaskIfUnscheduled(wanted, delta, compare); + network.scheduleCraftingTask(wanted, delta, compare); } } else if (delta < 0) { ItemStack remainder = network.insertItem(got, Math.abs(delta), false);