diff --git a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java index 6b8770bd61c..436aa400381 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java +++ b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java @@ -361,9 +361,11 @@ public void detectAndSendChanges(boolean init) { // check if substitute exists if (!slot.hasIngredients) { ItemStack substitute = findSubstitute(slot.getIndex(), slotStack); - count = requiredItems.getOrDefault(substitute, 0); - requiredItems.put(substitute.copy(), ++count); - slot.hasIngredients = !substitute.isEmpty() && simulateExtractItem(substitute, count); + if (!substitute.isEmpty()) { + count = requiredItems.getOrDefault(substitute, 0); + requiredItems.put(substitute.copy(), ++count); + slot.hasIngredients = simulateExtractItem(substitute, count); + } } if (old != slot.hasIngredients) diff --git a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeMemory.java b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeMemory.java index d2c5d402aeb..b0a051c644a 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeMemory.java +++ b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeMemory.java @@ -51,9 +51,11 @@ private MemorizedRecipe offsetRecipe(int startIndex) { for (int i = startIndex + 1; i < memorizedRecipes.length; i++) { MemorizedRecipe recipe = memorizedRecipes[i]; if (recipe != null && recipe.recipeLocked) continue; - memorizedRecipes[i] = previousRecipe.copy(); + memorizedRecipes[i] = previousRecipe; memorizedRecipes[i].index = i; - if (recipe == null) return null; + if (recipe == null) + return memorizedRecipes[startIndex] = null; + previousRecipe = recipe; } return previousRecipe;