aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/EntryIngredients.java12
-rw-r--r--api/src/main/java/me/shedaniel/rei/impl/Internals.java6
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();
}