From 362a601e0a1b19d2844c9e040879b2c5cc3e9ba7 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 15 Oct 2020 05:00:43 +0200 Subject: [PATCH] fixed crafting items that don't fit being ignored --- .../modules/craft/CraftingModuleItem.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) 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); } } }