From 5bfc2be9c9ff41dc6841aed69e7f245c7c3b1ba5 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Tue, 16 Sep 2025 22:48:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=85=8D=E6=96=B9=E7=94=A8?= =?UTF-8?q?=E9=80=94=E5=87=BA=E7=8E=B0trim=E6=97=A0=E6=B3=95=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/item/recipe/AbstractRecipeManager.java | 14 ++++++++------ .../core/item/recipe/CustomSmithingTrimRecipe.java | 5 +++++ .../craftengine/core/item/recipe/Recipe.java | 4 ++++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java index 2e2b739df..670407315 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/AbstractRecipeManager.java @@ -106,12 +106,14 @@ public abstract class AbstractRecipeManager implements RecipeManager { if (recipe instanceof AbstractedFixedResultRecipe fixedResult) { this.byResult.computeIfAbsent(fixedResult.result().item().id(), k -> new ArrayList<>()).add(recipe); } - HashSet usedKeys = new HashSet<>(); - for (Ingredient ingredient : recipe.ingredientsInUse()) { - for (UniqueKey holder : ingredient.items()) { - Key key = holder.key(); - if (usedKeys.add(key)) { - this.byIngredient.computeIfAbsent(key, k -> new ArrayList<>()).add(recipe); + if (recipe.canBeSearchedByIngredients()) { + HashSet usedKeys = new HashSet<>(); + for (Ingredient ingredient : recipe.ingredientsInUse()) { + for (UniqueKey holder : ingredient.items()) { + Key key = holder.key(); + if (usedKeys.add(key)) { + this.byIngredient.computeIfAbsent(key, k -> new ArrayList<>()).add(recipe); + } } } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java index a85d30573..1d1195624 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java @@ -103,6 +103,11 @@ public class CustomSmithingTrimRecipe extends AbstractRecipe { return pattern; } + @Override + public boolean canBeSearchedByIngredients() { + return false; + } + @SuppressWarnings({"DuplicatedCode"}) public static class Serializer extends AbstractRecipeSerializer> { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/Recipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/Recipe.java index db3d2f675..ff5864916 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/Recipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/Recipe.java @@ -25,4 +25,8 @@ public interface Recipe { default boolean showNotification() { return true; } + + default boolean canBeSearchedByIngredients() { + return true; + } }