From bd17301cb90e720e5ab88b4d64f043f580aefe4f Mon Sep 17 00:00:00 2001 From: slprime <31038811+slprime@users.noreply.github.com> Date: Mon, 13 Apr 2026 15:41:30 +0300 Subject: [PATCH] Fix Collapsed Recipes in Bookmarks (#915) --- .../nei/bookmark/BookmarkGridGenerator.java | 10 +++++++--- .../codechicken/nei/bookmark/RecipeChainDetails.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/codechicken/nei/bookmark/BookmarkGridGenerator.java b/src/main/java/codechicken/nei/bookmark/BookmarkGridGenerator.java index 8e9f23fa..027725a0 100644 --- a/src/main/java/codechicken/nei/bookmark/BookmarkGridGenerator.java +++ b/src/main/java/codechicken/nei/bookmark/BookmarkGridGenerator.java @@ -66,10 +66,14 @@ public class BookmarkGridGenerator { while (itemIndex < size && absoluteSlotIndex != -1) { final BookmarkItem bookmarkItem = this.grid.getBookmarkItem(itemIndex); final BookmarkGroup group = this.grid.getGroup(bookmarkItem.groupId); + final boolean isCollapsedRecipeAnchor = group.crafting != null && bookmarkItem.recipeId != null + && bookmarkItem.type != BookmarkItemType.INGREDIENT + && group.collapsedRecipes.contains(bookmarkItem.recipeId); - if (group.crafting != null && (!group.crafting.calculatedItems.containsKey(itemIndex) - || bookmarkItem.recipeId != null && !bookmarkItem.recipeId - .equals(group.crafting.itemToRecipe.getOrDefault(itemIndex, bookmarkItem.recipeId)))) { + if (group.crafting != null && !isCollapsedRecipeAnchor + && (!group.crafting.calculatedItems.containsKey(itemIndex) + || bookmarkItem.recipeId != null && !bookmarkItem.recipeId.equals( + group.crafting.itemToRecipe.getOrDefault(itemIndex, bookmarkItem.recipeId)))) { itemIndex++; } else if (group.collapsed) { final List results = getGroupResults(bookmarkItem.groupId, itemIndex, size); diff --git a/src/main/java/codechicken/nei/bookmark/RecipeChainDetails.java b/src/main/java/codechicken/nei/bookmark/RecipeChainDetails.java index bfc06246..9afc8eea 100644 --- a/src/main/java/codechicken/nei/bookmark/RecipeChainDetails.java +++ b/src/main/java/codechicken/nei/bookmark/RecipeChainDetails.java @@ -185,7 +185,7 @@ public class RecipeChainDetails { if (itemIndex >= 0 && this.calculatedItems.containsKey(itemIndex)) { final BookmarkItem item = entry.getValue(); if (this.recipeInMiddle.contains(item.recipeId)) { - this.calculatedItems.get(itemIndex).setRealMultiplier(item.getMultiplier() - 1); + this.calculatedItems.get(itemIndex).setRealMultiplier(Math.max(0, item.getMultiplier() - 1)); } else { this.calculatedItems.get(itemIndex).setRealMultiplier(item.getMultiplier()); }