From 0a6a6771d8e71b9a97944ec3f5fa02bcd84318e0 Mon Sep 17 00:00:00 2001 From: slprime <31038811+slprime@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:21:52 +0300 Subject: [PATCH] Fixed Favorite Recipes in bookmarks for ingredients (#720) --- .../codechicken/nei/ItemHistoryPanel.java | 23 +++++++++++++++---- .../nei/recipe/GuiCraftingRecipe.java | 9 ++++---- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/codechicken/nei/ItemHistoryPanel.java b/src/main/java/codechicken/nei/ItemHistoryPanel.java index 9b442c92..ca4d872e 100644 --- a/src/main/java/codechicken/nei/ItemHistoryPanel.java +++ b/src/main/java/codechicken/nei/ItemHistoryPanel.java @@ -7,14 +7,27 @@ import net.minecraft.item.ItemStack; import codechicken.nei.ItemsGrid.ItemsGridSlot; import codechicken.nei.ItemsGrid.MouseContext; +import codechicken.nei.recipe.Recipe.RecipeId; import codechicken.nei.recipe.StackInfo; -public class ItemHistoryPanel extends AbstractSubpanel> { +public class ItemHistoryPanel extends AbstractSubpanel> { + + public static class HistoryGridSlot extends ItemsGridSlot { + + public HistoryGridSlot(int slotIndex, int itemIndex, ItemStack item) { + super(slotIndex, itemIndex, item); + } + + @Override + public RecipeId getRecipeId() { + return FavoriteRecipes.getFavorite(this.item); + } + } public ItemHistoryPanel() { this.grid = new ItemsGrid<>() { - protected List gridMask; + protected List gridMask; @Override protected void onGridChanged() { @@ -23,12 +36,12 @@ public class ItemHistoryPanel extends AbstractSubpanel getMask() { + public List getMask() { if (this.gridMask == null) { this.gridMask = new ArrayList<>(); for (int slotIndex = 0; slotIndex < Math.min(size(), this.rows * this.columns); slotIndex++) { - this.gridMask.add(new ItemsGridSlot(slotIndex, slotIndex, getItem(slotIndex))); + this.gridMask.add(new HistoryGridSlot(slotIndex, slotIndex, getItem(slotIndex))); } } @@ -37,7 +50,7 @@ public class ItemHistoryPanel extends AbstractSubpanel { final Point mouseover = GuiDraw.getMousePosition(); final BookmarksGridSlot panelSlot = ItemPanels.bookmarkPanel.getSlotMouseOver(mouseover.x, mouseover.y); - RecipeId recipeId = null; - if (panelSlot != null && !panelSlot.isIngredient()) { - recipeId = panelSlot.getRecipeId(); + if (panelSlot != null) { + return panelSlot.isIngredient() || panelSlot.getRecipeId() == null ? FavoriteRecipes.getFavorite(stackover) + : panelSlot.getRecipeId(); } ItemsGridSlot itemSlot = ItemPanels.itemPanel.getSlotMouseOver(mouseover.x, mouseover.y); @@ -143,7 +144,7 @@ public class GuiCraftingRecipe extends GuiRecipe { return itemSlot.getRecipeId(); } - return recipeId; + return null; } private GuiCraftingRecipe(ArrayList handlers, boolean limitToOneRecipe) {