diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleItem.java b/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleItem.java index d0b9189..6004703 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleItem.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/modules/craft/CraftingModuleItem.java @@ -82,16 +82,17 @@ public class CraftingModuleItem extends ModuleItem { NetworkLock request = tile.craftIngredientRequests.peek(); Pair dest = tile.getAvailableDestination(request.stack, true, true); if (dest != null) { - ItemStack remain = network.requestExistingItem(request.location, tile.getPos(), dest.getLeft(), request, dest.getRight(), ItemEqualityType.NBT); - if (remain.getCount() != request.stack.getCount()) { - network.resolveNetworkLock(request); - tile.craftIngredientRequests.remove(); - // if we couldn't fit all items into the destination, create another request for the rest - if (!remain.isEmpty()) { - NetworkLock remainRequest = new NetworkLock(request.location, remain); - tile.craftIngredientRequests.add(remainRequest); - network.createNetworkLock(remainRequest); - } + ItemStack requestRemain = network.requestExistingItem(request.location, tile.getPos(), dest.getLeft(), request, dest.getRight(), ItemEqualityType.NBT); + network.resolveNetworkLock(request); + tile.craftIngredientRequests.remove(); + + // if we couldn't fit all items into the destination, create another request for the rest + ItemStack remain = request.stack.copy(); + remain.shrink(dest.getRight().getCount() - requestRemain.getCount()); + if (!remain.isEmpty()) { + NetworkLock remainRequest = new NetworkLock(request.location, remain); + tile.craftIngredientRequests.add(remainRequest); + network.createNetworkLock(remainRequest); } } }