-
Notifications
You must be signed in to change notification settings - Fork 211
Expand file tree
/
Copy pathGregtechDataCodes.java
More file actions
229 lines (185 loc) · 9.29 KB
/
Copy pathGregtechDataCodes.java
File metadata and controls
229 lines (185 loc) · 9.29 KB
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
package gregtech.api.capability;
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import org.apache.commons.lang3.ArrayUtils;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class GregtechDataCodes {
private static int nextId = 0;
public static int assignId() {
return nextId++;
}
// MTE implementation update codes
public static final int INITIALIZE_MTE = assignId();
public static final int UPDATE_FRONT_FACING = assignId();
public static final int UPDATE_PAINTING_COLOR = assignId();
public static final int SYNC_MTE_TRAITS = assignId();
public static final int COVER_ATTACHED_MTE = assignId();
public static final int COVER_REMOVED_MTE = assignId();
public static final int UPDATE_COVER_DATA_MTE = assignId();
public static final int UPDATE_SOUND_MUFFLED = assignId();
public static final int UPDATE_OUTPUT_FACING = assignId();
public static final int UPDATE_AUTO_OUTPUT_ITEMS = assignId();
public static final int UPDATE_AUTO_OUTPUT_FLUIDS = assignId();
public static final int UPDATE_IS_VOIDING = assignId();
// Robotic Arm
public static final int UPDATE_TRANSFER_MODE = assignId();
// Drum
public static final int UPDATE_AUTO_OUTPUT = assignId();
// Steam Machines
public static final int NEEDS_VENTING = assignId();
public static final int VENTING_SIDE = assignId();
public static final int VENTING_STUCK = assignId();
public static final int BOILER_HEAT = assignId();
public static final int BOILER_LAST_TICK_STEAM = assignId();
// Misc TEs (Transformer, World Accelerator)
public static final int SYNC_TILE_MODE = assignId();
// Crafting Station
public static final int UPDATE_CLIENT_HANDLER = assignId();
// Clipboard
public static final int CREATE_FAKE_UI = assignId();
public static final int MOUSE_POSITION = assignId();
public static final int INIT_CLIPBOARD_NBT = assignId();
public static final int UPDATE_UI = assignId(); // 10-36
// Pump
public static final int PUMP_HEAD_LEVEL = assignId();
// Item Collector, Magic Energy Absorber, Large Boiler, Steam Oven
public static final int IS_WORKING = assignId();
// Adjustable Transformer, Adjustable Energy Hatch, Diode
public static final int AMP_INDEX = assignId();
// Facade Cover
public static final int UPDATE_FACADE_STACK = assignId();
// Pipe implementation update codes
public static final int UPDATE_INSULATION_COLOR = assignId();
public static final int UPDATE_CONNECTIONS = assignId();
public static final int SYNC_COVER_IMPLEMENTATION = assignId();
public static final int UPDATE_PIPE_TYPE = assignId();
public static final int UPDATE_PIPE_MATERIAL = assignId();
public static final int UPDATE_BLOCKED_CONNECTIONS = assignId();
public static final int UPDATE_FRAME_MATERIAL = assignId();
public static final int UPDATE_COVER_DATA_PIPE = assignId();
public static final int COVER_ATTACHED_PIPE = assignId();
public static final int COVER_REMOVED_PIPE = assignId();
public static final int PIPE_OPTICAL_ACTIVE = assignId();
public static final int PIPE_LASER_ACTIVE = assignId();
public static final int CABLE_TEMPERATURE = assignId();
// Multiblock implementation update codes
public static final int SYNC_CONTROLLER = assignId();
public static final int IS_ROTOR_LOOPING = assignId();
public static final int FRONT_FACE_FREE = assignId();
public static final int UPDATE_ROTOR_COLOR = assignId();
public static final int UPDATE_STRUCTURE_SIZE = assignId();
public static final int STRUCTURE_FORMED = assignId();
public static final int VARIANT_RENDER_UPDATE = assignId();
public static final int IS_TAPED = assignId();
public static final int STORE_MAINTENANCE = assignId();
public static final int STORE_TAPED = assignId();
public static final int RECIPE_MAP_INDEX = assignId();
public static final int IS_FRONT_FACE_FREE = assignId();
public static final int UPDATE_UPWARDS_FACING = assignId();
public static final int UPDATE_FLIP = assignId();
public static final int LOCK_FILL = assignId();
public static final int MUFFLER_OBSTRUCTED = assignId();
// Item Bus Item Stack Auto Collapsing
public static final int TOGGLE_COLLAPSE_ITEMS = assignId();
// Fusion Reactor
public static final int UPDATE_COLOR = assignId();
// Assembly Line
public static final int UPDATE_PARTICLE = assignId();
// Central Monitor
public static final int UPDATE_ALL = assignId();
public static final int UPDATE_COVERS = assignId();
public static final int UPDATE_HEIGHT = assignId();
public static final int UPDATE_ACTIVE = assignId();
public static final int UPDATE_PLUGIN_ITEM = assignId();
// Central Monitor Plugin
public static final int UPDATE_PLUGIN_DATA = assignId();
public static final int UPDATE_PLUGIN_CONFIG = assignId();
public static final int ACTION_PLUGIN_CONFIG = assignId();
public static final int UPDATE_PLUGIN_CLICK = assignId();
public static final int UPDATE_ADVANCED_VALID_POS = assignId();
public static final int UPDATE_FAKE_GUI = assignId();
public static final int ACTION_FAKE_GUI = assignId();
public static final int UPDATE_FAKE_GUI_DETECT = assignId();
// Digital Interface
public static final int UPDATE_COVER_MODE = assignId();
public static final int UPDATE_FLUID = assignId();
public static final int UPDATE_ITEM = assignId();
public static final int UPDATE_ENERGY = assignId();
public static final int UPDATE_ENERGY_PER = assignId();
public static final int UPDATE_MACHINE = assignId();
// Phantom Tanks
public static final int REMOVE_PHANTOM_FLUID_TYPE = assignId();
public static final int CHANGE_PHANTOM_FLUID = assignId();
public static final int SET_PHANTOM_FLUID = assignId();
public static final int LOAD_PHANTOM_FLUID_STACK_FROM_NBT = assignId();
// Recipe Logic
public static final int WORKABLE_ACTIVE = assignId();
public static final int WORKING_ENABLED = assignId();
// Creative Energy
public static final int UPDATE_IO_SPEED = assignId();
// Quantum Chest/Tank
public static final int UPDATE_ITEM_COUNT = assignId();
public static final int UPDATE_FLUID_AMOUNT = assignId();
// Quantum Storage Controller
public static final int UPDATE_CONTROLLER_POS = assignId();
public static final int REMOVE_CONTROLLER = assignId();
public static final int LOCATE_CONTROLLER = assignId();
// Detector Covers
public static final int UPDATE_INVERTED = assignId();
// Ender Covers
public static final int UPDATE_PRIVATE = assignId();
// HPCA / Research Station
public static final int DAMAGE_STATE = assignId();
public static final int LOCK_OBJECT_HOLDER = assignId();
public static final int CACHED_CWU = assignId();
// NBT Keys
// From MetaTileEntityHolder
public static final String CUSTOM_NAME = "CustomName";
public static final String BLOCK_ENTITY_TAG = "BlockEntityTag";
public static final String TAG_KEY_MTE = "MetaTileEntity";
// From MetaTileEntity
public static final String TAG_KEY_PAINTING_COLOR = "PaintingColor";
public static final String TAG_KEY_FRAGILE = "Fragile";
public static final String TAG_KEY_MUFFLED = "Muffled";
// MTE Trait Names
public static final String ABSTRACT_WORKABLE_TRAIT = "RecipeMapWorkable";
public static final String ENERGY_CONTAINER_TRAIT = "EnergyContainer";
public static final String ENERGY_CONVERTER_TRAIT = "EnergyConvertTrait";
public static final String FUSION_REACTOR_ENERGY_CONTAINER_TRAIT = "EnergyContainerInternal";
public static final String BATTERY_BUFFER_ENERGY_CONTAINER_TRAIT = "BatteryEnergyContainer";
// Alarm
public static final int UPDATE_SOUND = assignId();
public static final int UPDATE_RADIUS = assignId();
// ME Parts
public static final int UPDATE_AUTO_PULL = assignId();
public static final int UPDATE_ONLINE_STATUS = assignId();
// Everything below MUST be last in the class!
public static final Int2ObjectMap<String> NAMES = new Int2ObjectArrayMap<>();
static {
registerFields(GregtechDataCodes.class);
}
public static String getNameFor(int id) {
return NAMES.getOrDefault(id, "Unknown_DataCode:" + id);
}
/**
* Registers all fields from the passed in class to the name registry.
* Optionally, you can pass in a list of valid ids to check against so that errant ids are not added
*
* @param clazz Class to iterate fields
* @param validIds optional array of valid ids to check against class fields
*/
public static void registerFields(Class<?> clazz, int... validIds) {
try {
for (Field field : clazz.getDeclaredFields()) {
if (field.getType() != Integer.TYPE) continue;
if (!Modifier.isStatic(field.getModifiers())) continue;
if (!Modifier.isFinal(field.getModifiers())) continue;
int id = field.getInt(null);
if (!ArrayUtils.isEmpty(validIds) && !ArrayUtils.contains(validIds, id))
continue;
NAMES.put(id, field.getName() + ":" + id);
}
} catch (IllegalAccessException ignored) {}
}
}