From 240c82c6124a8f6ef66373a15e40edfb8b15d7db Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 5 Feb 2021 18:05:18 +0100 Subject: [PATCH] possibly fix a dependency chain issue for #71 --- .../prettypipes/pipe/modules/craft/CraftingModuleItem.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 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 a14e38c..1cfe20d 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 @@ -148,10 +148,12 @@ public class CraftingModuleItem extends ModuleItem { for (int i = 0; i < output.getSlots(); i++) { ItemStack out = output.getStackInSlot(i); if (!out.isEmpty() && ItemEqualityType.compareItems(out, stack, equalityTypes)) { + // we copy the dependency chain, because we want to pass down the dependencies for this output only + Stack deps = (Stack) dependencyChain.clone(); // we can craft this item *in general*, so add us to the dependency chain - dependencyChain.push(this); + deps.push(this); // figure out how many crafting operations we can actually do with the input items we have in the network - int availableCrafts = CraftingTerminalTileEntity.getAvailableCrafts(tile, input.getSlots(), input::getStackInSlot, k -> true, s -> items, unavailableConsumer, dependencyChain, equalityTypes); + int availableCrafts = CraftingTerminalTileEntity.getAvailableCrafts(tile, input.getSlots(), input::getStackInSlot, k -> true, s -> items, unavailableConsumer, deps, equalityTypes); if (availableCrafts > 0) craftable += out.getCount() * availableCrafts; }