blob: 3b47e9ce139be43cdf4a57fb976ab9aca924fc7a (
plain)
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
|
package gregtech.api.recipe;
import java.util.Comparator;
import java.util.function.UnaryOperator;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import com.gtnewhorizons.modularui.api.math.Pos2d;
import com.gtnewhorizons.modularui.api.math.Size;
import codechicken.nei.recipe.HandlerInfo;
import gregtech.api.util.GTRecipe;
import gregtech.api.util.MethodsReturnNonnullByDefault;
import gregtech.nei.formatter.DefaultSpecialValueFormatter;
import gregtech.nei.formatter.INEISpecialInfoFormatter;
/**
* Builder class for {@link NEIRecipeProperties}.
*/
@SuppressWarnings("UnusedReturnValue")
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
public final class NEIRecipePropertiesBuilder {
private boolean registerNEI = true;
@Nullable
private UnaryOperator<HandlerInfo.Builder> handlerInfoCreator;
private Size recipeBackgroundSize = new Size(170, 82);
private Pos2d recipeBackgroundOffset = new Pos2d(3, 3);
private INEISpecialInfoFormatter neiSpecialInfoFormatter = DefaultSpecialValueFormatter.INSTANCE;
private boolean unificateOutput = true;
private boolean useCustomFilter;
private boolean renderRealStackSizes = true;
private Comparator<GTRecipe> comparator = GTRecipe::compareTo;
NEIRecipePropertiesBuilder() {}
public NEIRecipeProperties build() {
return new NEIRecipeProperties(
registerNEI,
handlerInfoCreator,
recipeBackgroundSize,
recipeBackgroundOffset,
neiSpecialInfoFormatter,
unificateOutput,
useCustomFilter,
renderRealStackSizes,
comparator);
}
public NEIRecipePropertiesBuilder disableRegisterNEI() {
this.registerNEI = false;
return this;
}
public NEIRecipePropertiesBuilder handlerInfoCreator(UnaryOperator<HandlerInfo.Builder> builderCreator) {
this.handlerInfoCreator = builderCreator;
return this;
}
public NEIRecipePropertiesBuilder recipeBackgroundSize(Size recipeBackgroundSize) {
this.recipeBackgroundSize = recipeBackgroundSize;
return this;
}
public NEIRecipePropertiesBuilder recipeBackgroundOffset(Pos2d recipeBackgroundOffset) {
this.recipeBackgroundOffset = recipeBackgroundOffset;
return this;
}
public NEIRecipePropertiesBuilder neiSpecialInfoFormatter(INEISpecialInfoFormatter neiSpecialInfoFormatter) {
this.neiSpecialInfoFormatter = neiSpecialInfoFormatter;
return this;
}
public NEIRecipePropertiesBuilder unificateOutput(boolean unificateOutput) {
this.unificateOutput = unificateOutput;
return this;
}
public NEIRecipePropertiesBuilder useCustomFilter() {
this.useCustomFilter = true;
return this;
}
public NEIRecipePropertiesBuilder disableRenderRealStackSizes() {
this.renderRealStackSizes = false;
return this;
}
public NEIRecipePropertiesBuilder recipeComparator(Comparator<GTRecipe> comparator) {
this.comparator = comparator;
return this;
}
}
|