blob: 26f9dedd7dab695ae05495b730430e051fca95f2 (
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
101
102
103
104
105
106
107
108
109
110
111
|
package gregtech.api.recipe.check;
import java.util.HashMap;
import java.util.Map;
public final class CheckRecipeResultRegistry {
private static final Map<String, CheckRecipeResult> registry = new HashMap<>();
/**
* Registers CheckRecipeResult. No duplicated IDs are allowed.
*
* @param sample Sample object to register
*/
public static void register(CheckRecipeResult sample) {
if (isRegistered(sample.getID())) {
throw new IllegalStateException(
String.format(
"ID %s is already registered for %s",
sample.getID(),
registry.get(sample.getID())
.getClass()
.getCanonicalName()));
}
registry.put(sample.getID(), sample);
}
public static CheckRecipeResult getSampleFromRegistry(String id) {
if (!isRegistered(id)) {
throw new RuntimeException("Unknown id: " + id);
}
return registry.get(id);
}
public static boolean isRegistered(String id) {
return registry.containsKey(id);
}
/**
* Successfully found recipe.
*/
public static final CheckRecipeResult SUCCESSFUL = SimpleCheckRecipeResult.ofSuccess("success");
/**
* All requirements met to generator power.
*/
public static final CheckRecipeResult GENERATING = SimpleCheckRecipeResult.ofSuccess("generating");
/**
* Cannot find recipe.
*/
public static final CheckRecipeResult NO_RECIPE = SimpleCheckRecipeResult.ofFailure("no_recipe");
/**
* Cannot process recipe because output is full.
*/
public static final CheckRecipeResult OUTPUT_FULL = SimpleCheckRecipeResult.ofFailure("output_full");
/**
* Default unknown state.
*/
public static final CheckRecipeResult NONE = SimpleCheckRecipeResult.ofFailure("none");
/**
* Code crashed.
*/
public static final CheckRecipeResult CRASH = SimpleCheckRecipeResult.ofFailure("crash");
/**
* Cannot find valid fuel for generator.
*/
public static final CheckRecipeResult NO_FUEL_FOUND = SimpleCheckRecipeResult.ofFailure("no_fuel");
/**
* Cannot find valid turbine.
*/
public static final CheckRecipeResult NO_TURBINE_FOUND = SimpleCheckRecipeResult.ofFailure("no_turbine");
/**
* No data sticks found for Assembly Line.
*/
public static final CheckRecipeResult NO_DATA_STICKS = SimpleCheckRecipeResult.ofFailure("no_data_sticks");
/**
* EU/t overflowed.
*/
public static final CheckRecipeResult POWER_OVERFLOW = SimpleCheckRecipeResult.ofFailure("power_overflow");
/**
* Progress time overflowed.
*/
public static final CheckRecipeResult DURATION_OVERFLOW = SimpleCheckRecipeResult.ofFailure("duration_overflow");
/**
* Cannot process recipe because the machine cannot handle required EUt.
*/
public static CheckRecipeResult insufficientPower(long required) {
return new ResultInsufficientPower(required);
}
/**
* Cannot process recipe because the machine cannot handle its heat.
*/
public static CheckRecipeResult insufficientHeat(int required) {
return new ResultInsufficientHeat(required);
}
/**
* Cannot process recipe because the machine is tiered and its tier is too low.
*/
public static CheckRecipeResult insufficientMachineTier(int required) {
return new ResultInsufficientMachineTier(required);
}
static {
register(new SimpleCheckRecipeResult(false, ""));
register(new ResultInsufficientPower(0));
register(new ResultInsufficientHeat(0));
register(new ResultInsufficientMachineTier(0));
}
}
|