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; + } }