mindustry logic execution, map- and schematic- parsing and rendering
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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
use crate::content::content_enum;

content_enum!
{
	pub enum Type / Block for u16 | TryFromU16Error
	{
		Air => "air",
		Spawn => "spawn",
		Cliff => "cliff",
		Build1 => "build1",
		Build2 => "build2",
		Build3 => "build3",
		Build4 => "build4",
		Build5 => "build5",
		Build6 => "build6",
		Build7 => "build7",
		Build8 => "build8",
		Build9 => "build9",
		Build10 => "build10",
		Build11 => "build11",
		Build12 => "build12",
		Build13 => "build13",
		Build14 => "build14",
		Build15 => "build15",
		Build16 => "build16",
		DeepWater => "deep-water",
		ShallowWater => "shallow-water",
		TaintedWater => "tainted-water",
		DeepTaintedWater => "deep-tainted-water",
		DarksandTaintedWater => "darksand-tainted-water",
		SandWater => "sand-water",
		DarksandWater => "darksand-water",
		Tar => "tar",
		PooledCryofluid => "pooled-cryofluid",
		MoltenSlag => "molten-slag",
		Space => "space",
		Empty => "empty",
		Stone => "stone",
		CraterStone => "crater-stone",
		Char => "char",
		Basalt => "basalt",
		Hotrock => "hotrock",
		Magmarock => "magmarock",
		SandFloor => "sand-floor",
		Darksand => "darksand",
		Dirt => "dirt",
		Mud => "mud",
		Dacite => "dacite",
		Rhyolite => "rhyolite",
		RhyoliteCrater => "rhyolite-crater",
		RoughRhyolite => "rough-rhyolite",
		Regolith => "regolith",
		YellowStone => "yellow-stone",
		CarbonStone => "carbon-stone",
		FerricStone => "ferric-stone",
		FerricCraters => "ferric-craters",
		BeryllicStone => "beryllic-stone",
		CrystallineStone => "crystalline-stone",
		CrystalFloor => "crystal-floor",
		YellowStonePlates => "yellow-stone-plates",
		RedStone => "red-stone",
		DenseRedStone => "dense-red-stone",
		RedIce => "red-ice",
		ArkyciteFloor => "arkycite-floor",
		ArkyicStone => "arkyic-stone",
		RhyoliteVent => "rhyolite-vent",
		CarbonVent => "carbon-vent",
		ArkyicVent => "arkyic-vent",
		YellowStoneVent => "yellow-stone-vent",
		RedStoneVent => "red-stone-vent",
		CrystallineVent => "crystalline-vent",
		Redmat => "redmat",
		Bluemat => "bluemat",
		Grass => "grass",
		Salt => "salt",
		Snow => "snow",
		Ice => "ice",
		IceSnow => "ice-snow",
		Shale => "shale",
		Moss => "moss",
		CoreZone => "core-zone",
		SporeMoss => "spore-moss",
		StoneWall => "stone-wall",
		SporeWall => "spore-wall",
		DirtWall => "dirt-wall",
		DaciteWall => "dacite-wall",
		IceWall => "ice-wall",
		SnowWall => "snow-wall",
		DuneWall => "dune-wall",
		RegolithWall => "regolith-wall",
		YellowStoneWall => "yellow-stone-wall",
		RhyoliteWall => "rhyolite-wall",
		CarbonWall => "carbon-wall",
		FerricStoneWall => "ferric-stone-wall",
		BeryllicStoneWall => "beryllic-stone-wall",
		ArkyicWall => "arkyic-wall",
		CrystallineStoneWall => "crystalline-stone-wall",
		RedIceWall => "red-ice-wall",
		RedStoneWall => "red-stone-wall",
		RedDiamondWall => "red-diamond-wall",
		SandWall => "sand-wall",
		SaltWall => "salt-wall",
		Shrubs => "shrubs",
		ShaleWall => "shale-wall",
		SporePine => "spore-pine",
		SnowPine => "snow-pine",
		Pine => "pine",
		WhiteTreeDead => "white-tree-dead",
		WhiteTree => "white-tree",
		SporeCluster => "spore-cluster",
		Redweed => "redweed",
		PurBush => "pur-bush",
		Yellowcoral => "yellowcoral",
		Boulder => "boulder",
		SnowBoulder => "snow-boulder",
		ShaleBoulder => "shale-boulder",
		SandBoulder => "sand-boulder",
		DaciteBoulder => "dacite-boulder",
		BasaltBoulder => "basalt-boulder",
		CarbonBoulder => "carbon-boulder",
		FerricBoulder => "ferric-boulder",
		BeryllicBoulder => "beryllic-boulder",
		YellowStoneBoulder => "yellow-stone-boulder",
		ArkyicBoulder => "arkyic-boulder",
		CrystalCluster => "crystal-cluster",
		VibrantCrystalCluster => "vibrant-crystal-cluster",
		CrystalBlocks => "crystal-blocks",
		CrystalOrbs => "crystal-orbs",
		CrystallineBoulder => "crystalline-boulder",
		RedIceBoulder => "red-ice-boulder",
		RhyoliteBoulder => "rhyolite-boulder",
		RedStoneBoulder => "red-stone-boulder",
		MetalFloor => "metal-floor",
		MetalFloorDamaged => "metal-floor-damaged",
		MetalFloor2 => "metal-floor-2",
		MetalFloor3 => "metal-floor-3",
		MetalFloor4 => "metal-floor-4",
		MetalFloor5 => "metal-floor-5",
		DarkPanel1 => "dark-panel-1",
		DarkPanel2 => "dark-panel-2",
		DarkPanel3 => "dark-panel-3",
		DarkPanel4 => "dark-panel-4",
		DarkPanel5 => "dark-panel-5",
		DarkPanel6 => "dark-panel-6",
		DarkMetal => "dark-metal",
		Pebbles => "pebbles",
		Tendrils => "tendrils",
		OreCopper => "ore-copper",
		OreLead => "ore-lead",
		OreScrap => "ore-scrap",
		OreCoal => "ore-coal",
		OreTitanium => "ore-titanium",
		OreThorium => "ore-thorium",
		OreBeryllium => "ore-beryllium",
		OreTungsten => "ore-tungsten",
		OreCrystalThorium => "ore-crystal-thorium",
		OreWallThorium => "ore-wall-thorium",
		OreWallBeryllium => "ore-wall-beryllium",
		GraphiticWall => "graphitic-wall",
		OreWallTungsten => "ore-wall-tungsten",
		GraphitePress => "graphite-press",
		MultiPress => "multi-press",
		SiliconSmelter => "silicon-smelter",
		SiliconCrucible => "silicon-crucible",
		Kiln => "kiln",
		PlastaniumCompressor => "plastanium-compressor",
		PhaseWeaver => "phase-weaver",
		SurgeSmelter => "surge-smelter",
		CryofluidMixer => "cryofluid-mixer",
		PyratiteMixer => "pyratite-mixer",
		BlastMixer => "blast-mixer",
		Melter => "melter",
		Separator => "separator",
		Disassembler => "disassembler",
		SporePress => "spore-press",
		Pulverizer => "pulverizer",
		CoalCentrifuge => "coal-centrifuge",
		Incinerator => "incinerator",
		SiliconArcFurnace => "silicon-arc-furnace",
		Electrolyzer => "electrolyzer",
		AtmosphericConcentrator => "atmospheric-concentrator",
		OxidationChamber => "oxidation-chamber",
		ElectricHeater => "electric-heater",
		SlagHeater => "slag-heater",
		PhaseHeater => "phase-heater",
		HeatRedirector => "heat-redirector",
		HeatRouter => "heat-router",
		SlagIncinerator => "slag-incinerator",
		CarbideCrucible => "carbide-crucible",
		SlagCentrifuge => "slag-centrifuge",
		SurgeCrucible => "surge-crucible",
		CyanogenSynthesizer => "cyanogen-synthesizer",
		PhaseSynthesizer => "phase-synthesizer",
		HeatReactor => "heat-reactor",
		CopperWall => "copper-wall",
		CopperWallLarge => "copper-wall-large",
		TitaniumWall => "titanium-wall",
		TitaniumWallLarge => "titanium-wall-large",
		PlastaniumWall => "plastanium-wall",
		PlastaniumWallLarge => "plastanium-wall-large",
		ThoriumWall => "thorium-wall",
		ThoriumWallLarge => "thorium-wall-large",
		PhaseWall => "phase-wall",
		PhaseWallLarge => "phase-wall-large",
		SurgeWall => "surge-wall",
		SurgeWallLarge => "surge-wall-large",
		Door => "door",
		DoorLarge => "door-large",
		ScrapWall => "scrap-wall",
		ScrapWallLarge => "scrap-wall-large",
		ScrapWallHuge => "scrap-wall-huge",
		ScrapWallGigantic => "scrap-wall-gigantic",
		Thruster => "thruster",
		BerylliumWall => "beryllium-wall",
		BerylliumWallLarge => "beryllium-wall-large",
		TungstenWall => "tungsten-wall",
		TungstenWallLarge => "tungsten-wall-large",
		BlastDoor => "blast-door",
		ReinforcedSurgeWall => "reinforced-surge-wall",
		ReinforcedSurgeWallLarge => "reinforced-surge-wall-large",
		CarbideWall => "carbide-wall",
		CarbideWallLarge => "carbide-wall-large",
		ShieldedWall => "shielded-wall",
		Mender => "mender",
		MendProjector => "mend-projector",
		OverdriveProjector => "overdrive-projector",
		OverdriveDome => "overdrive-dome",
		ForceProjector => "force-projector",
		ShockMine => "shock-mine",
		Radar => "radar",
		BuildTower => "build-tower",
		RegenProjector => "regen-projector",
		ShockwaveTower => "shockwave-tower",
		ShieldProjector => "shield-projector",
		LargeShieldProjector => "large-shield-projector",
		Conveyor => "conveyor",
		TitaniumConveyor => "titanium-conveyor",
		PlastaniumConveyor => "plastanium-conveyor",
		ArmoredConveyor => "armored-conveyor",
		Junction => "junction",
		BridgeConveyor => "bridge-conveyor",
		PhaseConveyor => "phase-conveyor",
		Sorter => "sorter",
		InvertedSorter => "inverted-sorter",
		Router => "router",
		Distributor => "distributor",
		OverflowGate => "overflow-gate",
		UnderflowGate => "underflow-gate",
		MassDriver => "mass-driver",
		Duct => "duct",
		ArmoredDuct => "armored-duct",
		DuctRouter => "duct-router",
		OverflowDuct => "overflow-duct",
		UnderflowDuct => "underflow-duct",
		DuctBridge => "duct-bridge",
		DuctUnloader => "duct-unloader",
		SurgeConveyor => "surge-conveyor",
		SurgeRouter => "surge-router",
		UnitCargoLoader => "unit-cargo-loader",
		UnitCargoUnloadPoint => "unit-cargo-unload-point",
		MechanicalPump => "mechanical-pump",
		RotaryPump => "rotary-pump",
		ImpulsePump => "impulse-pump",
		Conduit => "conduit",
		PulseConduit => "pulse-conduit",
		PlatedConduit => "plated-conduit",
		LiquidRouter => "liquid-router",
		LiquidContainer => "liquid-container",
		LiquidTank => "liquid-tank",
		LiquidJunction => "liquid-junction",
		BridgeConduit => "bridge-conduit",
		PhaseConduit => "phase-conduit",
		ReinforcedPump => "reinforced-pump",
		ReinforcedConduit => "reinforced-conduit",
		ReinforcedLiquidJunction => "reinforced-liquid-junction",
		ReinforcedBridgeConduit => "reinforced-bridge-conduit",
		ReinforcedLiquidRouter => "reinforced-liquid-router",
		ReinforcedLiquidContainer => "reinforced-liquid-container",
		ReinforcedLiquidTank => "reinforced-liquid-tank",
		PowerNode => "power-node",
		PowerNodeLarge => "power-node-large",
		SurgeTower => "surge-tower",
		Diode => "diode",
		Battery => "battery",
		BatteryLarge => "battery-large",
		CombustionGenerator => "combustion-generator",
		ThermalGenerator => "thermal-generator",
		SteamGenerator => "steam-generator",
		DifferentialGenerator => "differential-generator",
		RtgGenerator => "rtg-generator",
		SolarPanel => "solar-panel",
		SolarPanelLarge => "solar-panel-large",
		ThoriumReactor => "thorium-reactor",
		ImpactReactor => "impact-reactor",
		BeamNode => "beam-node",
		BeamTower => "beam-tower",
		BeamLink => "beam-link",
		TurbineCondenser => "turbine-condenser",
		ChemicalCombustionChamber => "chemical-combustion-chamber",
		PyrolysisGenerator => "pyrolysis-generator",
		FluxReactor => "flux-reactor",
		NeoplasiaReactor => "neoplasia-reactor",
		MechanicalDrill => "mechanical-drill",
		PneumaticDrill => "pneumatic-drill",
		LaserDrill => "laser-drill",
		BlastDrill => "blast-drill",
		WaterExtractor => "water-extractor",
		Cultivator => "cultivator",
		OilExtractor => "oil-extractor",
		VentCondenser => "vent-condenser",
		CliffCrusher => "cliff-crusher",
		PlasmaBore => "plasma-bore",
		LargePlasmaBore => "large-plasma-bore",
		ImpactDrill => "impact-drill",
		EruptionDrill => "eruption-drill",
		CoreShard => "core-shard",
		CoreFoundation => "core-foundation",
		CoreNucleus => "core-nucleus",
		CoreBastion => "core-bastion",
		CoreCitadel => "core-citadel",
		CoreAcropolis => "core-acropolis",
		Container => "container",
		Vault => "vault",
		Unloader => "unloader",
		ReinforcedContainer => "reinforced-container",
		ReinforcedVault => "reinforced-vault",
		Duo => "duo",
		Scatter => "scatter",
		Scorch => "scorch",
		Hail => "hail",
		Wave => "wave",
		Lancer => "lancer",
		Arc => "arc",
		Parallax => "parallax",
		Swarmer => "swarmer",
		Salvo => "salvo",
		Segment => "segment",
		Tsunami => "tsunami",
		Fuse => "fuse",
		Ripple => "ripple",
		Cyclone => "cyclone",
		Foreshadow => "foreshadow",
		Spectre => "spectre",
		Meltdown => "meltdown",
		Breach => "breach",
		Diffuse => "diffuse",
		Sublimate => "sublimate",
		Titan => "titan",
		Disperse => "disperse",
		Afflict => "afflict",
		Lustre => "lustre",
		Scathe => "scathe",
		Smite => "smite",
		Malign => "malign",
		GroundFactory => "ground-factory",
		AirFactory => "air-factory",
		NavalFactory => "naval-factory",
		AdditiveReconstructor => "additive-reconstructor",
		MultiplicativeReconstructor => "multiplicative-reconstructor",
		ExponentialReconstructor => "exponential-reconstructor",
		TetrativeReconstructor => "tetrative-reconstructor",
		RepairPoint => "repair-point",
		RepairTurret => "repair-turret",
		TankFabricator => "tank-fabricator",
		ShipFabricator => "ship-fabricator",
		MechFabricator => "mech-fabricator",
		TankRefabricator => "tank-refabricator",
		MechRefabricator => "mech-refabricator",
		ShipRefabricator => "ship-refabricator",
		PrimeRefabricator => "prime-refabricator",
		TankAssembler => "tank-assembler",
		ShipAssembler => "ship-assembler",
		MechAssembler => "mech-assembler",
		BasicAssemblerModule => "basic-assembler-module",
		UnitRepairTower => "unit-repair-tower",
		PayloadConveyor => "payload-conveyor",
		PayloadRouter => "payload-router",
		ReinforcedPayloadConveyor => "reinforced-payload-conveyor",
		ReinforcedPayloadRouter => "reinforced-payload-router",
		PayloadMassDriver => "payload-mass-driver",
		LargePayloadMassDriver => "large-payload-mass-driver",
		SmallDeconstructor => "small-deconstructor",
		Deconstructor => "deconstructor",
		Constructor => "constructor",
		LargeConstructor => "large-constructor",
		PayloadLoader => "payload-loader",
		PayloadUnloader => "payload-unloader",
		PowerSource => "power-source",
		PowerVoid => "power-void",
		ItemSource => "item-source",
		ItemVoid => "item-void",
		LiquidSource => "liquid-source",
		LiquidVoid => "liquid-void",
		PayloadSource => "payload-source",
		PayloadVoid => "payload-void",
		HeatSource => "heat-source",
		Illuminator => "illuminator",
		LegacyMechPad => "legacy-mech-pad",
		LegacyUnitFactory => "legacy-unit-factory",
		LegacyUnitFactoryAir => "legacy-unit-factory-air",
		LegacyUnitFactoryGround => "legacy-unit-factory-ground",
		CommandCenter => "command-center",
		LaunchPad => "launch-pad",
		InterplanetaryAccelerator => "interplanetary-accelerator",
		Message => "message",
		Switch => "switch",
		MicroProcessor => "micro-processor",
		LogicProcessor => "logic-processor",
		HyperProcessor => "hyper-processor",
		MemoryCell => "memory-cell",
		MemoryBank => "memory-bank",
		LogicDisplay => "logic-display",
		LargeLogicDisplay => "large-logic-display",
		Canvas => "canvas",
		ReinforcedMessage => "reinforced-message",
		WorldProcessor => "world-processor",
		WorldCell => "world-cell",
		WorldMessage => "world-message",
	}
}