/
JeiHelpers.java
79 lines (68 loc) · 2.11 KB
/
JeiHelpers.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
package mezz.jei.common.runtime;
import mezz.jei.api.helpers.IGuiHelper;
import mezz.jei.api.helpers.IJeiHelpers;
import mezz.jei.api.helpers.IModIdHelper;
import mezz.jei.api.helpers.IPlatformFluidHelper;
import mezz.jei.api.helpers.IStackHelper;
import mezz.jei.api.recipe.IFocusFactory;
import mezz.jei.api.recipe.RecipeType;
import mezz.jei.api.recipe.category.IRecipeCategory;
import mezz.jei.common.gui.GuiHelper;
import mezz.jei.common.platform.Services;
import net.minecraft.resources.ResourceLocation;
import javax.annotation.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.Optional;
public class JeiHelpers implements IJeiHelpers {
private final GuiHelper guiHelper;
private final IStackHelper stackHelper;
private final IModIdHelper modIdHelper;
private final IFocusFactory focusFactory;
private final IPlatformFluidHelper<?> platformFluidHelper;
private @Nullable Collection<IRecipeCategory<?>> recipeCategories;
public JeiHelpers(
GuiHelper guiHelper,
IStackHelper stackHelper,
IModIdHelper modIdHelper,
IFocusFactory focusFactory
) {
this.guiHelper = guiHelper;
this.stackHelper = stackHelper;
this.modIdHelper = modIdHelper;
this.focusFactory = focusFactory;
this.platformFluidHelper = Services.PLATFORM.getFluidHelper();
}
public void setRecipeCategories(Collection<IRecipeCategory<?>> recipeCategories) {
this.recipeCategories = Collections.unmodifiableCollection(recipeCategories);
}
@Override
public IGuiHelper getGuiHelper() {
return guiHelper;
}
@Override
public IStackHelper getStackHelper() {
return stackHelper;
}
@Override
public IModIdHelper getModIdHelper() {
return modIdHelper;
}
@Override
public IFocusFactory getFocusFactory() {
return focusFactory;
}
@Override
public IPlatformFluidHelper<?> getPlatformFluidHelper() {
return platformFluidHelper;
}
@Override
public Optional<RecipeType<?>> getRecipeType(ResourceLocation uid) {
return Optional.ofNullable(this.recipeCategories)
.flatMap(r -> r.stream()
.map(IRecipeCategory::getRecipeType)
.filter(t -> t.getUid().equals(uid))
.findFirst()
);
}
}