aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/shedaniel/rei/api/RecipeHelper.java2
-rw-r--r--src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java15
2 files changed, 12 insertions, 5 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
index cb5e3684f..cfbda23f0 100644
--- a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
+++ b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
@@ -211,4 +211,6 @@ public interface RecipeHelper {
void registerLiveRecipeGenerator(LiveRecipeGenerator liveRecipeGenerator);
<T extends Recipe<?>> void registerRecipes(Identifier category, Class<T> recipeClass, Function<T, RecipeDisplay> mappingFunction);
+
+ <T extends Recipe<?>> void registerRecipes(Identifier category, Function<Recipe, Boolean> recipeFilter, Function<T, RecipeDisplay> mappingFunction);
}
diff --git a/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java b/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java
index 00155ba65..7f4a0ee80 100644
--- a/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java
+++ b/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java
@@ -271,7 +271,7 @@ public class RecipeHelperImpl implements RecipeHelper {
Collections.reverse(allSortedRecipes);
recipeFunctions.forEach(recipeFunction -> {
try {
- allSortedRecipes.stream().filter(recipe -> recipeFunction.recipeClass.isAssignableFrom(recipe.getClass())).forEach(t -> registerDisplay(recipeFunction.category, (RecipeDisplay) recipeFunction.mappingFunction.apply(t), 0));
+ allSortedRecipes.stream().filter(recipe -> recipeFunction.recipeFilter.apply(recipe)).forEach(t -> registerDisplay(recipeFunction.category, (RecipeDisplay) recipeFunction.mappingFunction.apply(t), 0));
} catch (Exception e) {
RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to add recipes!", e);
}
@@ -356,7 +356,12 @@ public class RecipeHelperImpl implements RecipeHelper {
@Override
public <T extends Recipe<?>> void registerRecipes(Identifier category, Class<T> recipeClass, Function<T, RecipeDisplay> mappingFunction) {
- recipeFunctions.add(new RecipeFunction(category, recipeClass, mappingFunction));
+ recipeFunctions.add(new RecipeFunction(category, recipe -> recipeClass.isAssignableFrom(recipe.getClass()), mappingFunction));
+ }
+
+ @Override
+ public <T extends Recipe<?>> void registerRecipes(Identifier category, Function<Recipe, Boolean> recipeFilter, Function<T, RecipeDisplay> mappingFunction) {
+ recipeFunctions.add(new RecipeFunction(category, recipeFilter, mappingFunction));
}
@Override
@@ -371,12 +376,12 @@ public class RecipeHelperImpl implements RecipeHelper {
private class RecipeFunction {
Identifier category;
- Class recipeClass;
+ Function<Recipe, Boolean> recipeFilter;
Function mappingFunction;
- public RecipeFunction(Identifier category, Class<?> recipeClass, Function<?, RecipeDisplay> mappingFunction) {
+ public RecipeFunction(Identifier category, Function<Recipe, Boolean> recipeFilter, Function<?, RecipeDisplay> mappingFunction) {
this.category = category;
- this.recipeClass = recipeClass;
+ this.recipeFilter = recipeFilter;
this.mappingFunction = mappingFunction;
}
}