From 9211d4ad0a8bf560c83cc8d3236d0bf65a3a028e Mon Sep 17 00:00:00 2001 From: miozune Date: Mon, 17 Feb 2025 18:21:54 +0900 Subject: [PATCH] Now you can't craft mince meat out of mince meat --- .../recipes/ShapelessUniversalRecipe.java | 14 ++++++++++++++ .../dreammaster/scripts/ScriptGregtech.java | 19 +++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/dreammaster/recipes/ShapelessUniversalRecipe.java b/src/main/java/com/dreammaster/recipes/ShapelessUniversalRecipe.java index 7ccf29228..b50658508 100644 --- a/src/main/java/com/dreammaster/recipes/ShapelessUniversalRecipe.java +++ b/src/main/java/com/dreammaster/recipes/ShapelessUniversalRecipe.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import net.minecraft.block.Block; import net.minecraft.init.Items; @@ -47,6 +48,19 @@ public ShapelessUniversalRecipe(ItemStack result, Object... recipe) { } this.recipe.add(oresHashes); this.recipeXY.add(ores); + } else if (value instanceof Listlist) { + List items = new ArrayList<>(); + HashSet itemHash = new HashSet<>(); + for (Object o : list) { + if (!(o instanceof ItemStack itemStack)) { + throw new IllegalArgumentException("Invalid item stack: " + o); + } + ItemStack i = itemStack.copy(); + items.add(i); + itemHash.add(GTUtility.ItemId.createNoCopy(i)); + } + this.recipe.add(itemHash); + this.recipeXY.add(items); } else if (value instanceof ItemStack) { ItemStack i = ((ItemStack) value).copy(); this.recipe.add(i); diff --git a/src/main/java/com/dreammaster/scripts/ScriptGregtech.java b/src/main/java/com/dreammaster/scripts/ScriptGregtech.java index 1293421ad..233525a11 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptGregtech.java +++ b/src/main/java/com/dreammaster/scripts/ScriptGregtech.java @@ -34,11 +34,14 @@ import static gregtech.api.util.GTRecipeBuilder.TICKS; import static gregtech.api.util.GTRecipeConstants.UniversalChemical; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.oredict.OreDictionary; import com.dreammaster.gthandler.CustomItemList; import com.dreammaster.item.NHItemList; @@ -115,10 +118,16 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.dustSmall, Materials.Glass, 1L), "craftingToolMortar", getModItem(TinkerConstruct.ID, "GlassPane", 1, 0, missing)); + List meatItems = new ArrayList<>(OreDictionary.getOres("listAllmeatraw")).stream() + .filter( + itemStack -> !ItemStack.areItemStacksEqual( + itemStack, + GTOreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1L))) + .collect(Collectors.toList()); addShapelessRecipe( GTOreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1L), "craftingToolMortar", - "listAllmeatraw"); + meatItems); addShapelessRecipe( GTOreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1L), "craftingToolMortar", @@ -127,10 +136,16 @@ public void loadRecipes() { getModItem(Minecraft.ID, "sugar", 4, 0, missing), "craftingToolMortar", getModItem(CropsPlusPlus.ID, "foodBerries", 1, 1, missing)); + List cookedMeatItems = new ArrayList<>(OreDictionary.getOres("listAllmeatcooked")).stream() + .filter( + itemStack -> !ItemStack.areItemStacksEqual( + itemStack, + GTOreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L))) + .collect(Collectors.toList()); addShapelessRecipe( GTOreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), "craftingToolMortar", - "listAllmeatcooked"); + cookedMeatItems); addShapelessRecipe( GTOreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L), "craftingToolMortar",