diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index a8b52f0ed..5cf03c90c 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -133,7 +133,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR public static final String NBT_ENERGY = "Energy"; public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity"; - private static final String NBT_CRAFTING_TASKS = "CraftingTasks"; private static final Comparator ITEM_SIZE_COMPARATOR = (left, right) -> { @@ -275,7 +274,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR craftingTasksToAdd.clear(); - updateCraftingTasks(CraftingTaskUpdateType.NORMAL); + if (updateCraftingTasks(CraftingTaskUpdateType.NORMAL)) { + craftingTasksChanged = true; + } if (!craftingTasks.isEmpty() || craftingTasksChanged) { markDirty(); @@ -314,12 +315,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR super.update(); } - enum CraftingTaskUpdateType { + private enum CraftingTaskUpdateType { NORMAL, DELETION } - private void updateCraftingTasks(CraftingTaskUpdateType type) { + private boolean updateCraftingTasks(CraftingTaskUpdateType type) { Iterator craftingTaskIterator = craftingTasks.iterator(); while (craftingTaskIterator.hasNext()) { @@ -327,8 +328,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR if (updateCraftingTask(task, type)) { craftingTaskIterator.remove(); + + return true; } } + + return false; } private boolean updateCraftingTask(ICraftingTask task, CraftingTaskUpdateType type) { @@ -576,7 +581,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR if (onInserted(stack, task)) { inserted--; - updateCraftingTasks(CraftingTaskUpdateType.DELETION); + if (updateCraftingTasks(CraftingTaskUpdateType.DELETION)) { + updateCraftingMonitors(); + } } } }