/
RecipeManager.java
119 lines (102 loc) · 4.33 KB
/
RecipeManager.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package mezz.jei.recipes;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import mezz.jei.api.gui.IRecipeLayoutDrawable;
import mezz.jei.api.helpers.IModIdHelper;
import mezz.jei.api.recipe.IFocus;
import mezz.jei.api.recipe.IRecipeManager;
import mezz.jei.api.recipe.category.IRecipeCategory;
import mezz.jei.gui.Focus;
import mezz.jei.gui.recipes.RecipeLayout;
import mezz.jei.util.ErrorUtil;
import net.minecraft.util.ResourceLocation;
import javax.annotation.Nullable;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
public class RecipeManager implements IRecipeManager {
private final RecipeManagerInternal internal;
private final IModIdHelper modIdHelper;
public RecipeManager(RecipeManagerInternal internal, IModIdHelper modIdHelper) {
this.internal = internal;
this.modIdHelper = modIdHelper;
}
@Override
public <V> IFocus<V> createFocus(IFocus.Mode mode, V ingredient) {
return new Focus<>(mode, ingredient);
}
@Override
@Deprecated
public <T> void addRecipe(T recipe, ResourceLocation recipeCategoryUid) {
ErrorUtil.checkNotNull(recipe, "recipe");
ErrorUtil.checkNotNull(recipeCategoryUid, "recipeCategoryUid");
ErrorUtil.assertMainThread();
internal.addRecipe(recipe, recipeCategoryUid);
}
@Override
@Nullable
public IRecipeCategory<?> getRecipeCategory(ResourceLocation recipeCategoryUid, boolean includeHidden) {
ErrorUtil.checkNotNull(recipeCategoryUid, "recipeCategoryUid");
return internal.getRecipeCategoriesStream(ImmutableSet.of(recipeCategoryUid), null, includeHidden)
.findFirst()
.orElse(null);
}
@Override
public <V> List<IRecipeCategory<?>> getRecipeCategories(Collection<ResourceLocation> recipeCategoryUids, @Nullable IFocus<V> focus, boolean includeHidden) {
ErrorUtil.checkNotNull(recipeCategoryUids, "recipeCategoryUids");
Focus<V> internalFocus = Focus.checkNullable(focus);
return internal.getRecipeCategoriesStream(recipeCategoryUids, internalFocus, includeHidden)
.collect(Collectors.toList());
}
@Override
public <V> List<IRecipeCategory<?>> getRecipeCategories(@Nullable IFocus<V> focus, boolean includeHidden) {
Focus<V> internalFocus = Focus.checkNullable(focus);
return internal.getRecipeCategoriesStream(null, internalFocus, includeHidden)
.collect(Collectors.toList());
}
@Override
public <T, V> List<T> getRecipes(IRecipeCategory<T> recipeCategory, @Nullable IFocus<V> focus, boolean includeHidden) {
ErrorUtil.checkNotNull(recipeCategory, "recipeCategory");
Focus<V> internalFocus = Focus.checkNullable(focus);
return internal.getRecipesStream(recipeCategory, internalFocus, includeHidden)
.collect(Collectors.toList());
}
@Override
public List<Object> getRecipeCatalysts(IRecipeCategory<?> recipeCategory, boolean includeHidden) {
ErrorUtil.checkNotNull(recipeCategory, "recipeCategory");
return internal.getRecipeCatalysts(recipeCategory, includeHidden);
}
@Override
public <T> IRecipeLayoutDrawable createRecipeLayoutDrawable(IRecipeCategory<T> recipeCategory, T recipe, IFocus<?> focus) {
Focus<?> checkedFocus = Focus.check(focus);
RecipeLayout<?> recipeLayout = RecipeLayout.create(-1, recipeCategory, recipe, checkedFocus, modIdHelper, 0, 0);
Preconditions.checkNotNull(recipeLayout, "Recipe layout crashed during creation, see log.");
return recipeLayout;
}
@Override
public <T> void hideRecipe(T recipe, ResourceLocation recipeCategoryUid) {
ErrorUtil.checkNotNull(recipe, "recipe");
ErrorUtil.checkNotNull(recipeCategoryUid, "recipeCategoryUid");
ErrorUtil.assertMainThread();
internal.hideRecipe(recipe, recipeCategoryUid);
}
@Override
public <T> void unhideRecipe(T recipe, ResourceLocation recipeCategoryUid) {
ErrorUtil.checkNotNull(recipe, "recipe");
ErrorUtil.checkNotNull(recipeCategoryUid, "recipeCategoryUid");
ErrorUtil.assertMainThread();
internal.unhideRecipe(recipe, recipeCategoryUid);
}
@Override
public void hideRecipeCategory(ResourceLocation recipeCategoryUid) {
ErrorUtil.checkNotNull(recipeCategoryUid, "recipeCategoryUid");
ErrorUtil.assertMainThread();
internal.hideRecipeCategory(recipeCategoryUid);
}
@Override
public void unhideRecipeCategory(ResourceLocation recipeCategoryUid) {
ErrorUtil.checkNotNull(recipeCategoryUid, "recipeCategoryUid");
ErrorUtil.assertMainThread();
internal.unhideRecipeCategory(recipeCategoryUid);
}
}