From b16916dbe62d9bc89942aa8de798c5770bebf2ea Mon Sep 17 00:00:00 2001 From: slprime Date: Sun, 14 Jan 2024 14:51:26 +0200 Subject: [PATCH] Optimize Chain Algorithm --- .../codechicken/nei/BookmarkCraftingChain.java | 14 +++++--------- src/main/java/codechicken/nei/BookmarkPanel.java | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/java/codechicken/nei/BookmarkCraftingChain.java b/src/main/java/codechicken/nei/BookmarkCraftingChain.java index 3a7d7ad3a..8adbdd928 100644 --- a/src/main/java/codechicken/nei/BookmarkCraftingChain.java +++ b/src/main/java/codechicken/nei/BookmarkCraftingChain.java @@ -269,27 +269,23 @@ private boolean calculateShift(CraftingChainRequest request, int stackIndex) { return false; } - int shift = 0; int minRecipeIndex = 0; - int minShift = 0x7fffff; + int minShift = Integer.MAX_VALUE; for (CraftingChainItem item : request.outputs.get(stackIndex)) { if (!request.initialItems.contains(item.recipeIndex) && item.factor > 0) { long ingrCount = calculateCount(request, request.inputs.get(item.stackIndex)); long outputCount = calculateCount(request, request.outputs.get(item.stackIndex)); + long shift = (ingrCount - outputCount) / item.factor; - while ((outputCount + item.factor * shift) < ingrCount && shift < minShift) { - shift++; - } - - if (shift < minShift) { - minShift = shift; + if (shift > 0 && shift < minShift) { + minShift = (int) shift; minRecipeIndex = item.recipeIndex; } } } - if (minShift < 0x7fffff) { + if (minShift < Integer.MAX_VALUE) { request.multiplier.put(minRecipeIndex, request.multiplier.get(minRecipeIndex) + minShift); return true; } diff --git a/src/main/java/codechicken/nei/BookmarkPanel.java b/src/main/java/codechicken/nei/BookmarkPanel.java index 4eea92654..ab39ff4f6 100644 --- a/src/main/java/codechicken/nei/BookmarkPanel.java +++ b/src/main/java/codechicken/nei/BookmarkPanel.java @@ -1983,7 +1983,7 @@ public void mouseUp(int mousex, int mousey, int button) { if (this.sortableItem != null) { this.sortableItem = null; this.mouseDownSlot = -1; - grid.onGridChanged(); /* make sure grid redraws the new item */ + grid.onItemsChanged(); /* make sure grid redraws the new item */ saveBookmarks(); } else if (this.groupingItem != null) { final BookmarkGrid BGrid = (BookmarkGrid) grid;