Skip to content

Commit 32b0e13

Browse files
committed
add ability to use resourcelocation only item ids for external mods
1 parent bfad1d1 commit 32b0e13

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/api/java/mekanism/api/recipes/ingredients/creator/IItemStackIngredientCreator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
import mekanism.api.annotations.NothingNullByDefault;
55
import mekanism.api.recipes.ingredients.ItemStackIngredient;
66
import net.minecraft.core.Holder;
7+
import net.minecraft.core.HolderLookup;
78
import net.minecraft.core.component.DataComponentPredicate;
9+
import net.minecraft.core.registries.Registries;
10+
import net.minecraft.resources.ResourceKey;
11+
import net.minecraft.resources.ResourceLocation;
812
import net.minecraft.tags.TagKey;
913
import net.minecraft.world.item.Item;
1014
import net.minecraft.world.item.ItemStack;
@@ -195,4 +199,8 @@ default ItemStackIngredient from(Ingredient ingredient, int amount) {
195199
default ItemStackIngredient from(SizedIngredient ingredient) {
196200
return ItemStackIngredient.of(ingredient);
197201
}
202+
203+
default ItemStackIngredient from(HolderLookup.Provider registries, ResourceLocation itemId) {
204+
return fromHolder(registries.lookupOrThrow(Registries.ITEM).getOrThrow(ResourceKey.create(Registries.ITEM, itemId)));
205+
}
198206
}

src/datagen/main/java/mekanism/common/recipe/compat/CompatRecipeProvider.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@
55
import mekanism.api.annotations.NothingNullByDefault;
66
import mekanism.common.recipe.ISubRecipeProvider;
77
import mekanism.common.recipe.RecipeProviderUtil;
8+
import net.minecraft.core.Holder;
89
import net.minecraft.core.HolderLookup;
10+
import net.minecraft.core.registries.Registries;
911
import net.minecraft.data.recipes.RecipeOutput;
12+
import net.minecraft.resources.ResourceKey;
1013
import net.minecraft.resources.ResourceLocation;
1114
import net.minecraft.tags.ItemTags;
1215
import net.minecraft.tags.TagKey;
1316
import net.minecraft.world.item.Item;
17+
import net.minecraft.world.item.ItemStack;
1418
import net.neoforged.neoforge.common.conditions.AndCondition;
1519
import net.neoforged.neoforge.common.conditions.ICondition;
1620
import net.neoforged.neoforge.common.conditions.ModLoadedCondition;
@@ -59,4 +63,16 @@ protected ResourceLocation rl(String path) {
5963
protected TagKey<Item> tag(String path) {
6064
return ItemTags.create(rl(path));
6165
}
66+
67+
protected Holder<Item> foreignItem(HolderLookup.Provider registries, ResourceLocation id) {
68+
return registries.lookupOrThrow(Registries.ITEM).getOrThrow(ResourceKey.create(Registries.ITEM, id));
69+
}
70+
71+
protected ItemStack foreignItemStack(HolderLookup.Provider registries, ResourceLocation id, int count) {
72+
return new ItemStack(foreignItem(registries, id), count);
73+
}
74+
75+
protected ItemStack foreignItemStack(HolderLookup.Provider registries, ResourceLocation id) {
76+
return foreignItemStack(registries, id, 1);
77+
}
6278
}

0 commit comments

Comments
 (0)