From f27356ac3f5f9f8306524fafd9a883e2138f4fad Mon Sep 17 00:00:00 2001 From: trinsdar <30245301+Trinsdar@users.noreply.github.com> Date: Wed, 13 Dec 2023 00:33:25 -0500 Subject: [PATCH] added method for recipe ingredient that uses multiple tags --- .../antimatter/integration/kubejs/KubeJSRecipe.java | 12 +++++++++++- .../recipe/ingredient/RecipeIngredient.java | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/muramasa/antimatter/integration/kubejs/KubeJSRecipe.java b/common/src/main/java/muramasa/antimatter/integration/kubejs/KubeJSRecipe.java index 9c257624a..cad804e35 100644 --- a/common/src/main/java/muramasa/antimatter/integration/kubejs/KubeJSRecipe.java +++ b/common/src/main/java/muramasa/antimatter/integration/kubejs/KubeJSRecipe.java @@ -8,6 +8,7 @@ import dev.latvian.mods.kubejs.item.ItemStackJS; import dev.latvian.mods.kubejs.item.ingredient.IngredientJS; import dev.latvian.mods.kubejs.item.ingredient.IngredientStackJS; +import dev.latvian.mods.kubejs.item.ingredient.MatchAnyIngredientJS; import dev.latvian.mods.kubejs.recipe.RecipeJS; import dev.latvian.mods.kubejs.util.ListJS; import dev.latvian.mods.kubejs.util.MapJS; @@ -138,7 +139,16 @@ public static JsonElement serializeStack(FluidHolder stack) { @Override public @Nullable JsonElement serializeIngredientStack(IngredientStackJS in) { - JsonElement element = in.ingredient.toJson(); + JsonElement element; + if (in.ingredient instanceof MatchAnyIngredientJS js){ + var object = new JsonObject(); + JsonArray array = new JsonArray(); + js.ingredients.forEach(i -> array.add(i.toJson())); + object.add("values", array); + element = object; + } else { + element = in.ingredient.toJson(); + } if (element instanceof JsonObject object && in.getCount() > 1){ object.addProperty(in.countKey, in.getCount()); } diff --git a/common/src/main/java/muramasa/antimatter/recipe/ingredient/RecipeIngredient.java b/common/src/main/java/muramasa/antimatter/recipe/ingredient/RecipeIngredient.java index f38883892..3dd7a2214 100644 --- a/common/src/main/java/muramasa/antimatter/recipe/ingredient/RecipeIngredient.java +++ b/common/src/main/java/muramasa/antimatter/recipe/ingredient/RecipeIngredient.java @@ -251,6 +251,14 @@ public static RecipeIngredient of(TagKey tagIn, int count) { return new RecipeIngredient(new RecipeValue(tagIn, count)); } + @SafeVarargs + public static RecipeIngredient of(int count, TagKey... tagIn) { + for (TagKey itemTagKey : tagIn) { + ensureRegisteredTag(itemTagKey.location()); + } + return new RecipeIngredient(new MultiValue(Arrays.stream(tagIn).map(t -> new RecipeValue(t, count)))); + } + public static RecipeIngredient ofObject(Object object, int amount){ if (object instanceof TagKey tag){ return of(tag, amount);