diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties index 764bcd7a..25d9c387 100644 --- a/gradle/gradle-daemon-jvm.properties +++ b/gradle/gradle-daemon-jvm.properties @@ -1,12 +1,12 @@ #This file is generated by updateDaemonJvm -toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect -toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/b41931cf1e70bc8e08d7dd19c343ef00/redirect -toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/4945f00643ec68e7c7a6b66f90124f89/redirect -toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/93aeea858331bd6bb00ba94759830234/redirect -toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/3426ffcaa54c3f62406beb1f1ab8b179/redirect -toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/f636c800fdb3f9ae33f019dfa048ba72/redirect -toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect -toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/93aeea858331bd6bb00ba94759830234/redirect -toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/3cd7045fca9a72cd9bc7d14a385e594c/redirect -toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/552c7bffe0370c66410a51c55985b511/redirect +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e1118b4c7c2858d28154d086dbff010e/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/faa12903720d410b387cc69ccafb1a74/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/a4c09dd2e2d7079373d30e524bbc2829/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/b96cb7670c095245220e7d01d5927b58/redirect toolchainVersion=25 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f8e1ee31..d997cfc6 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f78a6a..dbc3ce4a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index adff685a..0262dcbd 100755 --- a/gradlew +++ b/gradlew @@ -57,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/b631911858264c0b6e4d6603d677ff5218766cee/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. diff --git a/settings.gradle b/settings.gradle index d9c3d95b..e05c75ef 100644 --- a/settings.gradle +++ b/settings.gradle @@ -17,7 +17,7 @@ pluginManagement { } plugins { - id 'com.gtnewhorizons.gtnhsettingsconvention' version '2.0.21' + id 'com.gtnewhorizons.gtnhsettingsconvention' version '2.0.24' } diff --git a/src/main/java/codechicken/nei/recipe/DefaultOverlayHandler.java b/src/main/java/codechicken/nei/recipe/DefaultOverlayHandler.java index 9b18d619..f1e3d664 100644 --- a/src/main/java/codechicken/nei/recipe/DefaultOverlayHandler.java +++ b/src/main/java/codechicken/nei/recipe/DefaultOverlayHandler.java @@ -98,10 +98,14 @@ public class DefaultOverlayHandler implements IOverlayHandler { && presenceOverlay(firstGui, handler, recipeIndex).stream().allMatch(state -> state.isPresent()); } + protected Slot getCraftingResultSlot(GuiContainer gui) { + return gui.inventorySlots.inventorySlots.stream().filter(slot -> slot instanceof SlotCrafting).findFirst() + .orElse(null); + } + @Override public boolean craft(GuiContainer firstGui, IRecipeHandler handler, int recipeIndex, int multiplier) { - final Slot craftingSlot = firstGui.inventorySlots.inventorySlots.stream() - .filter(slot -> slot instanceof SlotCrafting).findFirst().orElse(null); + final Slot craftingSlot = getCraftingResultSlot(firstGui); if (craftingSlot == null) { return false; @@ -145,7 +149,7 @@ public class DefaultOverlayHandler implements IOverlayHandler { /** * Gets the slots in the crafting matrix for the given GUI and recipe handler. - * + * * @param gui * @param handler * @return @@ -194,9 +198,10 @@ public class DefaultOverlayHandler implements IOverlayHandler { } private void moveIngredients(GuiContainer gui, List assignedIngredients, int multiplier) { + final Slot craftingSlot = getCraftingResultSlot(gui); for (Slot slot : gui.inventorySlots.inventorySlots) { - if (slot instanceof SlotCrafting || !slot.getHasStack() + if (slot == craftingSlot || !slot.getHasStack() || !canMoveFrom(slot, gui) || !slot.canTakeStack(gui.mc.thePlayer)) continue; @@ -422,8 +427,8 @@ public class DefaultOverlayHandler implements IOverlayHandler { return null; } - protected boolean canStack(ItemStack stack1, ItemStack stack2) { - if (stack1 == null || stack2 == null) return true; - return NEIClientUtils.areStacksSameTypeCraftingWithNBT(stack1, stack2); + protected boolean canStack(ItemStack dst, ItemStack src) { + if (dst == null || src == null) return true; + return NEIClientUtils.areStacksSameTypeCraftingWithNBT(dst, src); } } diff --git a/src/main/java/codechicken/nei/recipe/GuiOverlayButton.java b/src/main/java/codechicken/nei/recipe/GuiOverlayButton.java index 0776e201..d265c401 100644 --- a/src/main/java/codechicken/nei/recipe/GuiOverlayButton.java +++ b/src/main/java/codechicken/nei/recipe/GuiOverlayButton.java @@ -96,10 +96,11 @@ public class GuiOverlayButton extends GuiRecipeButton { super(handlerRef, x, y, handlerRef.recipeIndex + BUTTON_ID_SHIFT, "+"); this.firstGui = firstGui != null && firstGui.inventorySlots != null ? firstGui : null; - this.canUseOverlayRenderer = this.firstGui != null && handlerRef.getRecipeOverlayRenderer(firstGui) != null; - this.canFillCraftingGrid = this.firstGui != null && this.handlerRef.canFillCraftingGrid(this.firstGui); - this.hasOverlay = this.canUseOverlayRenderer - || this.firstGui != null && handlerRef.getOverlayHandler(firstGui) != null; + if (this.firstGui != null) { + this.canUseOverlayRenderer = this.handlerRef.getRecipeOverlayRenderer(this.firstGui) != null; + this.canFillCraftingGrid = this.handlerRef.canFillCraftingGrid(this.firstGui); + this.hasOverlay = this.canUseOverlayRenderer || this.handlerRef.getOverlayHandler(this.firstGui) != null; + } setRequireShiftForOverlayRecipe(NEIClientConfig.requireShiftForOverlayRecipe()); ingredientsOverlay(); diff --git a/src/main/java/codechicken/nei/recipe/NEIRecipeWidget.java b/src/main/java/codechicken/nei/recipe/NEIRecipeWidget.java index a0d57f57..f8d40f8b 100644 --- a/src/main/java/codechicken/nei/recipe/NEIRecipeWidget.java +++ b/src/main/java/codechicken/nei/recipe/NEIRecipeWidget.java @@ -588,6 +588,7 @@ public class NEIRecipeWidget extends Widget { private void updatePermutationsFor(PositionedStack pStack) { List perms = this.permutations.get(pStack); int favoriteIndex = this.favoriteIndexes.getOrDefault(pStack, -1); + boolean needsUpdate = false; if (perms == null) { perms = pStack.getFilteredPermutations(); @@ -602,10 +603,10 @@ public class NEIRecipeWidget extends Widget { this.permutations.put(pStack, perms); this.favoriteIndexes.put(pStack, favoriteIndex); - pStack.setPermutationToRender(perms.get(0)); + needsUpdate = true; } - if (perms.size() > 1) { + if (perms.size() > 1 || needsUpdate) { final int size = favoriteIndex != -1 ? favoriteIndex + 1 : perms.size(); if (size > 0) {