diff options
| author | shedaniel <daniel@shedaniel.me> | 2025-02-25 19:20:09 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2025-02-25 19:20:09 +0800 |
| commit | f5408ce8c85dda2bccbe78d8d2a505acc69aa9a0 (patch) | |
| tree | d69fd8db7da7e00f451c29b91b581c133d4f56a8 /api/src/main/java | |
| parent | ce2de8d07e696b5ef75f2decbd6961286d88fb4f (diff) | |
| download | RoughlyEnoughItems-f5408ce8c85dda2bccbe78d8d2a505acc69aa9a0.tar.gz RoughlyEnoughItems-f5408ce8c85dda2bccbe78d8d2a505acc69aa9a0.tar.bz2 RoughlyEnoughItems-f5408ce8c85dda2bccbe78d8d2a505acc69aa9a0.zip | |
Fix custom ingredients
Diffstat (limited to 'api/src/main/java')
| -rw-r--r-- | api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java | 12 | ||||
| -rw-r--r-- | api/src/main/java/me/shedaniel/rei/impl/Internals.java | 6 |
2 files changed, 13 insertions, 5 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java index c36811a1d..68a47b5e5 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java @@ -153,22 +153,24 @@ public final class EntryIngredients { } public static EntryIngredient ofIngredient(Ingredient ingredient) { - return ofItemsHolderSet(ingredient.values); + return Internals.toEntryIngredient(ingredient); } public static List<EntryIngredient> ofIngredients(List<Ingredient> ingredients) { if (ingredients.size() == 0) return Collections.emptyList(); if (ingredients.size() == 1) { Ingredient ingredient = ingredients.get(0); - if (ingredient.values.size() == 0) return List.of(); - return List.of(ofIngredient(ingredient)); + EntryIngredient entryIngredient = ofIngredient(ingredient); + if (entryIngredient.isEmpty()) return List.of(); + return List.of(entryIngredient); } boolean emptyFlag = true; List<EntryIngredient> result = new ArrayList<>(ingredients.size()); for (int i = ingredients.size() - 1; i >= 0; i--) { Ingredient ingredient = ingredients.get(i); - if (emptyFlag && ingredient.values.size() == 0) continue; - result.add(0, ofIngredient(ingredient)); + EntryIngredient entryIngredient = ofIngredient(ingredient); + if (emptyFlag && entryIngredient.isEmpty()) continue; + result.add(0, entryIngredient); emptyFlag = false; } return ImmutableList.copyOf(result); diff --git a/api/src/main/java/me/shedaniel/rei/impl/Internals.java b/api/src/main/java/me/shedaniel/rei/impl/Internals.java index bdf7e6d2f..5c8593c6e 100644 --- a/api/src/main/java/me/shedaniel/rei/impl/Internals.java +++ b/api/src/main/java/me/shedaniel/rei/impl/Internals.java @@ -38,6 +38,7 @@ import net.minecraft.core.component.DataComponentMap; import net.minecraft.core.component.DataComponentType; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Unit; +import net.minecraft.world.item.crafting.Ingredient; import org.jetbrains.annotations.ApiStatus; import java.lang.reflect.Field; @@ -46,6 +47,7 @@ import java.util.function.Supplier; @ApiStatus.Internal public final class Internals { + private static Function<Ingredient, EntryIngredient> ingredientToEntryIngredient = (object) -> throwNotSetup(); private static Supplier<EntryStackProvider> entryStackProvider = Internals::throwNotSetup; private static Supplier<EntryIngredientProvider> entryIngredientProvider = Internals::throwNotSetup; private static Function<ResourceLocation, EntryType<?>> entryTypeDeferred = (object) -> throwNotSetup(); @@ -84,6 +86,10 @@ public final class Internals { } } + public static EntryIngredient toEntryIngredient(Ingredient ingredient) { + return ingredientToEntryIngredient.apply(ingredient); + } + public static EntryStackProvider getEntryStackProvider() { return entryStackProvider.get(); } |
