diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/modules/retrieval/RetrievalModuleItem.java b/src/main/java/de/ellpeck/prettypipes/pipe/modules/retrieval/RetrievalModuleItem.java index 1a6ffb8..c022895 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/modules/retrieval/RetrievalModuleItem.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/modules/retrieval/RetrievalModuleItem.java @@ -55,10 +55,10 @@ public class RetrievalModuleItem extends ModuleItem { Pair dest = tile.getAvailableDestination(copy, true, this.preventOversending); if (dest == null) continue; - // are we already waiting for crafting results? If so, don't request more - if (network.getCurrentlyCraftingAmount(tile.getPos(), copy, equalityTypes) >= this.maxExtraction) - break; - if (network.requestItem(tile.getPos(), dest.getLeft(), dest.getRight(), equalityTypes).isEmpty()) + ItemStack remain = dest.getRight().copy(); + // are we already waiting for crafting results? If so, don't request those again + remain.shrink(network.getCurrentlyCraftingAmount(tile.getPos(), copy, equalityTypes)); + if (network.requestItem(tile.getPos(), dest.getLeft(), remain, equalityTypes).isEmpty()) break; } } diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalTileEntity.java b/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalTileEntity.java index 121b10d..58ec91f 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalTileEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/ItemTerminalTileEntity.java @@ -208,6 +208,8 @@ public class ItemTerminalTileEntity extends TileEntity implements INamedContaine for (Pair craftable : network.getAllCraftables(pipe.getPos())) { PipeTileEntity otherPipe = network.getPipe(craftable.getLeft()); if (otherPipe != null) { + for (NetworkLock lock : otherPipe.craftIngredientRequests) + network.resolveNetworkLock(lock); otherPipe.craftIngredientRequests.clear(); otherPipe.craftResultRequests.clear(); }