mindustry logic execution, map- and schematic- parsing and rendering
remove read()
bendn 2023-08-06
parent cfbb676 · commit 74cfcef
-rw-r--r--assets/blocks/campaign/interplanetary-accelerator.pngbin2719 -> 2696 bytes
-rw-r--r--assets/blocks/campaign/launch-pad.pngbin742 -> 741 bytes
-rw-r--r--assets/blocks/campaign/launchpod.pngbin737 -> 735 bytes
-rw-r--r--assets/blocks/defense/barrier-projector.pngbin723 -> 831 bytes
-rw-r--r--assets/blocks/defense/build-tower-base.pngbin1119 -> 0 bytes
-rw-r--r--assets/blocks/defense/build-tower.pngbin943 -> 1093 bytes
-rw-r--r--assets/blocks/defense/force-projector.pngbin723 -> 829 bytes
-rw-r--r--assets/blocks/defense/large-shield-projector.pngbin1026 -> 1172 bytes
-rw-r--r--assets/blocks/defense/overdrive-dome.pngbin1110 -> 1105 bytes
-rw-r--r--assets/blocks/defense/radar-base.pngbin424 -> 0 bytes
-rw-r--r--assets/blocks/defense/radar.pngbin167 -> 301 bytes
-rw-r--r--assets/blocks/defense/regen-projector-bottom.pngbin357 -> 0 bytes
-rw-r--r--assets/blocks/defense/regen-projector.pngbin1170 -> 1072 bytes
-rw-r--r--assets/blocks/defense/shield-projector.pngbin753 -> 882 bytes
-rw-r--r--assets/blocks/defense/shock-mine-team-top.pngbin146 -> 140 bytes
-rw-r--r--assets/blocks/defense/shock-mine.pngbin215 -> 217 bytes
-rw-r--r--assets/blocks/defense/shockwave-tower.pngbin1145 -> 1144 bytes
-rw-r--r--assets/blocks/distribution/conveyors/armored-conveyor-2.pngbin293 -> 290 bytes
-rw-r--r--assets/blocks/distribution/conveyors/conveyor-0.pngbin146 -> 145 bytes
-rw-r--r--assets/blocks/distribution/conveyors/conveyor-4.pngbin175 -> 172 bytes
-rw-r--r--assets/blocks/distribution/conveyors/titanium-conveyor-1.pngbin277 -> 275 bytes
-rw-r--r--assets/blocks/distribution/conveyors/titanium-conveyor-2.pngbin190 -> 188 bytes
-rw-r--r--assets/blocks/distribution/conveyors/titanium-conveyor-4.pngbin179 -> 177 bytes
-rw-r--r--assets/blocks/distribution/cross-full.pngbin160 -> 159 bytes
-rw-r--r--assets/blocks/distribution/ducts/armored-duct-0.pngbin300 -> 298 bytes
-rw-r--r--assets/blocks/distribution/ducts/armored-duct-1.pngbin376 -> 375 bytes
-rw-r--r--assets/blocks/distribution/ducts/armored-duct-4.pngbin334 -> 331 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-0.pngbin291 -> 290 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-2.pngbin307 -> 305 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-3.pngbin306 -> 303 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-4.pngbin313 -> 312 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-bridge-arrow.pngbin135 -> 134 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-bridge-dir.pngbin142 -> 141 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-unloader-arrow.pngbin155 -> 154 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-unloader-top.pngbin141 -> 140 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-unloader.pngbin227 -> 226 bytes
-rw-r--r--assets/blocks/distribution/ducts/overflow-duct.pngbin135 -> 134 bytes
-rw-r--r--assets/blocks/distribution/ducts/surge-router-top.pngbin156 -> 0 bytes
-rw-r--r--assets/blocks/distribution/ducts/top.pngbin156 -> 155 bytes
-rw-r--r--assets/blocks/distribution/inverted-sorter.pngbin255 -> 252 bytes
-rw-r--r--assets/blocks/distribution/item-void.pngbin226 -> 223 bytes
-rw-r--r--assets/blocks/distribution/mass-driver-base.pngbin842 -> 840 bytes
-rw-r--r--assets/blocks/distribution/mass-driver.pngbin1107 -> 1023 bytes
-rw-r--r--assets/blocks/distribution/stack-conveyors/plastanium-conveyor-0.pngbin166 -> 165 bytes
-rw-r--r--assets/blocks/distribution/stack-conveyors/plastanium-conveyor-1.pngbin1641 -> 1640 bytes
-rw-r--r--assets/blocks/distribution/stack-conveyors/plastanium-conveyor-stack.pngbin1374 -> 1370 bytes
-rw-r--r--assets/blocks/distribution/stack-conveyors/surge-conveyor-0.pngbin200 -> 198 bytes
-rw-r--r--assets/blocks/distribution/stack-conveyors/surge-conveyor-edge.pngbin546 -> 545 bytes
-rw-r--r--assets/blocks/distribution/stack-conveyors/surge-conveyor-stack.pngbin191 -> 190 bytes
-rw-r--r--assets/blocks/distribution/underflow-gate.pngbin255 -> 253 bytes
-rw-r--r--assets/blocks/distribution/unit-cargo-unload-point.pngbin588 -> 586 bytes
-rw-r--r--assets/blocks/drills/blast-drill.pngbin1291 -> 1285 bytes
-rw-r--r--assets/blocks/drills/cliff-crusher-top.pngbin216 -> 214 bytes
-rw-r--r--assets/blocks/drills/cliff-crusher.pngbin689 -> 688 bytes
-rw-r--r--assets/blocks/drills/large-plasma-bore-top.pngbin433 -> 432 bytes
-rw-r--r--assets/blocks/drills/large-plasma-bore.pngbin1061 -> 1060 bytes
-rw-r--r--assets/blocks/drills/laser-drill.pngbin914 -> 912 bytes
-rw-r--r--assets/blocks/drills/oil-extractor.pngbin1068 -> 1065 bytes
-rw-r--r--assets/blocks/drills/pneumatic-drill.pngbin671 -> 666 bytes
-rw-r--r--assets/blocks/drills/vent-condenser.pngbin1412 -> 1408 bytes
-rw-r--r--assets/blocks/drills/water-extractor.pngbin717 -> 714 bytes
-rw-r--r--assets/blocks/environment/arkyic-vent.pngbin947 -> 946 bytes
-rw-r--r--assets/blocks/environment/arkyic-wall-large.pngbin528 -> 527 bytes
-rw-r--r--assets/blocks/environment/basalt-boulder.pngbin495 -> 494 bytes
-rw-r--r--assets/blocks/environment/basalt.pngbin158 -> 155 bytes
-rw-r--r--assets/blocks/environment/beryllic-boulder.pngbin478 -> 472 bytes
-rw-r--r--assets/blocks/environment/bluemat.pngbin159 -> 157 bytes
-rw-r--r--assets/blocks/environment/boulder.pngbin383 -> 382 bytes
-rw-r--r--assets/blocks/environment/carbon-stone.pngbin302 -> 301 bytes
-rw-r--r--assets/blocks/environment/carbon-vent.pngbin924 -> 923 bytes
-rw-r--r--assets/blocks/environment/carbon-wall-large.pngbin562 -> 559 bytes
-rw-r--r--assets/blocks/environment/core-zone.pngbin175 -> 172 bytes
-rw-r--r--assets/blocks/environment/crater-stone.pngbin214 -> 213 bytes
-rw-r--r--assets/blocks/environment/crystal-blocks.pngbin1028 -> 1023 bytes
-rw-r--r--assets/blocks/environment/crystal-cluster.pngbin2441 -> 2417 bytes
-rw-r--r--assets/blocks/environment/crystal-orbs.pngbin932 -> 929 bytes
-rw-r--r--assets/blocks/environment/crystalline-boulder.pngbin459 -> 458 bytes
-rw-r--r--assets/blocks/environment/crystalline-stone-wall-large.pngbin557 -> 555 bytes
-rw-r--r--assets/blocks/environment/crystalline-stone-wall.pngbin191 -> 190 bytes
-rw-r--r--assets/blocks/environment/crystalline-vent.pngbin944 -> 942 bytes
-rw-r--r--assets/blocks/environment/dacite-boulder.pngbin495 -> 494 bytes
-rw-r--r--assets/blocks/environment/dacite-wall.pngbin207 -> 205 bytes
-rw-r--r--assets/blocks/environment/dark-metal.pngbin263 -> 262 bytes
-rw-r--r--assets/blocks/environment/dark-panel-4.pngbin215 -> 210 bytes
-rw-r--r--assets/blocks/environment/dark-panel-6.pngbin175 -> 174 bytes
-rw-r--r--assets/blocks/environment/darksand-tainted-water.pngbin316 -> 313 bytes
-rw-r--r--assets/blocks/environment/darksand-water.pngbin316 -> 313 bytes
-rw-r--r--assets/blocks/environment/darksand.pngbin158 -> 157 bytes
-rw-r--r--assets/blocks/environment/dense-red-stone.pngbin202 -> 200 bytes
-rw-r--r--assets/blocks/liquid/bridge-conduit.pngbin235 -> 234 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-bottom-2.pngbin73 -> 71 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-bottom-3.pngbin73 -> 71 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-bottom-4.pngbin73 -> 71 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-top-0.pngbin256 -> 185 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-top-1.pngbin287 -> 243 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-top-2.pngbin304 -> 215 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-top-3.pngbin349 -> 219 bytes
-rw-r--r--assets/blocks/liquid/conduits/conduit-top-4.pngbin276 -> 202 bytes
-rw-r--r--assets/blocks/liquid/conduits/plated-conduit-cap.pngbin1170 -> 1169 bytes
-rw-r--r--assets/blocks/liquid/conduits/plated-conduit-top-0.pngbin266 -> 210 bytes
-rw-r--r--assets/blocks/liquid/conduits/plated-conduit-top-1.pngbin1937 -> 272 bytes
-rw-r--r--assets/blocks/liquid/conduits/plated-conduit-top-2.pngbin1638 -> 227 bytes
-rw-r--r--assets/blocks/liquid/conduits/plated-conduit-top-3.pngbin239 -> 215 bytes
-rw-r--r--assets/blocks/liquid/conduits/plated-conduit-top-4.pngbin238 -> 228 bytes
-rw-r--r--assets/blocks/liquid/conduits/pulse-conduit-top-0.pngbin291 -> 223 bytes
-rw-r--r--assets/blocks/liquid/conduits/pulse-conduit-top-1.pngbin2126 -> 297 bytes
-rw-r--r--assets/blocks/liquid/conduits/pulse-conduit-top-2.pngbin1887 -> 253 bytes
-rw-r--r--assets/blocks/liquid/conduits/pulse-conduit-top-3.pngbin478 -> 263 bytes
-rw-r--r--assets/blocks/liquid/conduits/pulse-conduit-top-4.pngbin2055 -> 235 bytes
-rw-r--r--assets/blocks/liquid/conduits/reinforced-conduit-top-0.pngbin243 -> 219 bytes
-rw-r--r--assets/blocks/liquid/conduits/reinforced-conduit-top-1.pngbin275 -> 257 bytes
-rw-r--r--assets/blocks/liquid/conduits/reinforced-conduit-top-2.pngbin248 -> 219 bytes
-rw-r--r--assets/blocks/liquid/conduits/reinforced-conduit-top-3.pngbin208 -> 198 bytes
-rw-r--r--assets/blocks/liquid/conduits/reinforced-conduit-top-4.pngbin235 -> 244 bytes
-rw-r--r--assets/blocks/liquid/fluid.pngbin73 -> 71 bytes
-rw-r--r--assets/blocks/liquid/impulse-pump-liquid.pngbin254 -> 253 bytes
-rw-r--r--assets/blocks/liquid/impulse-pump.pngbin1014 -> 1007 bytes
-rw-r--r--assets/blocks/liquid/liquid-container.pngbin681 -> 540 bytes
-rw-r--r--assets/blocks/liquid/liquid-overflow-gate-top.pngbin160 -> 0 bytes
-rw-r--r--assets/blocks/liquid/liquid-overflow-gate.pngbin175 -> 0 bytes
-rw-r--r--assets/blocks/liquid/liquid-router.pngbin261 -> 222 bytes
-rw-r--r--assets/blocks/liquid/liquid-tank.pngbin1055 -> 945 bytes
-rw-r--r--assets/blocks/liquid/liquid-void.pngbin223 -> 222 bytes
-rw-r--r--assets/blocks/liquid/mechanical-pump-liquid.pngbin254 -> 253 bytes
-rw-r--r--assets/blocks/liquid/mechanical-pump.pngbin306 -> 302 bytes
-rw-r--r--assets/blocks/liquid/reinforced-bridge-conduit-arrow.pngbin132 -> 129 bytes
-rw-r--r--assets/blocks/liquid/reinforced-bridge-conduit-bottom.pngbin149 -> 0 bytes
-rw-r--r--assets/blocks/liquid/reinforced-bridge-conduit-bridge.pngbin137 -> 136 bytes
-rw-r--r--assets/blocks/liquid/reinforced-bridge-conduit-dir.pngbin144 -> 141 bytes
-rw-r--r--assets/blocks/liquid/reinforced-bridge-conduit-liquid.pngbin133 -> 129 bytes
-rw-r--r--assets/blocks/liquid/reinforced-bridge-conduit.pngbin395 -> 257 bytes
-rw-r--r--assets/blocks/liquid/reinforced-liquid-container-bottom.pngbin184 -> 182 bytes
-rw-r--r--assets/blocks/liquid/reinforced-liquid-container.pngbin776 -> 659 bytes
-rw-r--r--assets/blocks/liquid/reinforced-liquid-router-bottom.pngbin142 -> 137 bytes
-rw-r--r--assets/blocks/liquid/reinforced-liquid-router.pngbin434 -> 285 bytes
-rw-r--r--assets/blocks/liquid/reinforced-liquid-tank.pngbin1110 -> 954 bytes
-rw-r--r--assets/blocks/liquid/reinforced-pump.pngbin686 -> 684 bytes
-rw-r--r--assets/blocks/liquid/rotary-pump-liquid.pngbin254 -> 253 bytes
-rw-r--r--assets/blocks/liquid/rotary-pump.pngbin702 -> 700 bytes
-rw-r--r--assets/blocks/payload/large-payload-mass-driver-base.pngbin1138 -> 0 bytes
-rw-r--r--assets/blocks/payload/large-payload-mass-driver-top.pngbin1746 -> 0 bytes
-rw-r--r--assets/blocks/payload/large-payload-mass-driver.pngbin1824 -> 2509 bytes
-rw-r--r--assets/blocks/payload/payload-conveyor-edge.pngbin359 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-conveyor-top.pngbin365 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-conveyor.pngbin294 -> 390 bytes
-rw-r--r--assets/blocks/payload/payload-mass-driver-base.pngbin776 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-mass-driver-cap.pngbin605 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-mass-driver-left.pngbin631 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-mass-driver-right.pngbin594 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-mass-driver-top.pngbin992 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-mass-driver.pngbin884 -> 1219 bytes
-rw-r--r--assets/blocks/payload/payload-propulsion-tower-base.pngbin1236 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-propulsion-tower-cap.pngbin1126 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-propulsion-tower-left.pngbin1152 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-propulsion-tower-right.pngbin1159 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-propulsion-tower-top.pngbin1491 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-propulsion-tower.pngbin1824 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-router-top.pngbin352 -> 0 bytes
-rw-r--r--assets/blocks/payload/payload-router.pngbin233 -> 307 bytes
-rw-r--r--assets/blocks/payload/reinforced-payload-conveyor-edge.pngbin427 -> 0 bytes
-rw-r--r--assets/blocks/payload/reinforced-payload-conveyor-top.pngbin375 -> 0 bytes
-rw-r--r--assets/blocks/payload/reinforced-payload-conveyor.pngbin294 -> 442 bytes
-rw-r--r--assets/blocks/payload/reinforced-payload-router-top.pngbin351 -> 0 bytes
-rw-r--r--assets/blocks/payload/reinforced-payload-router.pngbin233 -> 300 bytes
-rw-r--r--assets/blocks/power/flux-reactor.pngbin2263 -> 2141 bytes
-rw-r--r--assets/blocks/power/impact-reactor.pngbin1473 -> 1380 bytes
-rw-r--r--assets/blocks/power/neoplasia-reactor-top.png (renamed from assets/blocks/power/neoplasia-reactor-top1.png)bin428 -> 428 bytes
-rw-r--r--assets/blocks/power/neoplasia-reactor-top2.pngbin429 -> 0 bytes
-rw-r--r--assets/blocks/power/neoplasia-reactor.pngbin2475 -> 2384 bytes
-rw-r--r--assets/blocks/power/pyrolysis-generator-mid.pngbin166 -> 0 bytes
-rw-r--r--assets/blocks/power/pyrolysis-generator.pngbin1324 -> 1294 bytes
-rw-r--r--assets/blocks/production/atmospheric-concentrator.pngbin1089 -> 970 bytes
-rw-r--r--assets/blocks/production/carbide-crucible.pngbin1332 -> 1222 bytes
-rw-r--r--assets/blocks/production/cryofluid-mixer.pngbin791 -> 696 bytes
-rw-r--r--assets/blocks/production/cultivator-bottom.pngbin99 -> 0 bytes
-rw-r--r--assets/blocks/production/cultivator-middle.pngbin416 -> 0 bytes
-rw-r--r--assets/blocks/production/cultivator-top.pngbin663 -> 0 bytes
-rw-r--r--assets/blocks/production/cultivator.pngbin403 -> 655 bytes
-rw-r--r--assets/blocks/production/cyanogen-synthesizer.pngbin1326 -> 1100 bytes
-rw-r--r--assets/blocks/production/disassembler-spinner.pngbin431 -> 0 bytes
-rw-r--r--assets/blocks/production/disassembler.pngbin1187 -> 1118 bytes
-rw-r--r--assets/blocks/production/electrolyzer.pngbin1241 -> 1050 bytes
-rw-r--r--assets/blocks/production/heat-reactor-top1.pngbin491 -> 0 bytes
-rw-r--r--assets/blocks/production/heat-reactor-top2.pngbin492 -> 0 bytes
-rw-r--r--assets/blocks/production/heat-reactor.pngbin1111 -> 0 bytes
-rw-r--r--assets/blocks/production/melter.pngbin442 -> 303 bytes
-rw-r--r--assets/blocks/production/oxidation-chamber-bottom.pngbin334 -> 0 bytes
-rw-r--r--assets/blocks/production/oxidation-chamber.pngbin1437 -> 1214 bytes
-rw-r--r--assets/blocks/production/phase-heater-side2.pngbin400 -> 0 bytes
-rw-r--r--assets/blocks/production/phase-synthesizer-bottom.pngbin334 -> 0 bytes
-rw-r--r--assets/blocks/production/phase-synthesizer-vents.pngbin7991 -> 0 bytes
-rw-r--r--assets/blocks/production/phase-synthesizer.pngbin1314 -> 1200 bytes
-rw-r--r--assets/blocks/production/phase-weaver-bottom.pngbin99 -> 0 bytes
-rw-r--r--assets/blocks/production/phase-weaver.pngbin855 -> 665 bytes
-rw-r--r--assets/blocks/production/pulverizer-rotator.pngbin195 -> 0 bytes
-rw-r--r--assets/blocks/production/pulverizer-top.pngbin214 -> 0 bytes
-rw-r--r--assets/blocks/production/pulverizer.pngbin96 -> 234 bytes
-rw-r--r--assets/blocks/production/separator-bottom.pngbin99 -> 0 bytes
-rw-r--r--assets/blocks/production/separator-spinner.pngbin204 -> 0 bytes
-rw-r--r--assets/blocks/production/separator.pngbin685 -> 586 bytes
-rw-r--r--assets/blocks/production/silicon-arc-furnace-bottom.pngbin334 -> 0 bytes
-rw-r--r--assets/blocks/production/silicon-arc-furnace.pngbin1462 -> 1221 bytes
-rw-r--r--assets/blocks/production/slag-centrifuge-bottom.pngbin334 -> 0 bytes
-rw-r--r--assets/blocks/production/slag-centrifuge-liquid.pngbin379 -> 0 bytes
-rw-r--r--assets/blocks/production/slag-centrifuge.pngbin1312 -> 0 bytes
-rw-r--r--assets/blocks/production/slag-heater-top1.pngbin436 -> 305 bytes
-rw-r--r--assets/blocks/production/slag-heater-top2.pngbin436 -> 305 bytes
-rw-r--r--assets/blocks/production/slag-heater.pngbin1192 -> 1067 bytes
-rw-r--r--assets/blocks/production/slag-incinerator-top.pngbin134 -> 0 bytes
-rw-r--r--assets/blocks/production/slag-incinerator.pngbin449 -> 370 bytes
-rw-r--r--assets/blocks/production/spore-press-bottom.pngbin99 -> 0 bytes
-rw-r--r--assets/blocks/production/spore-press-liquid.pngbin166 -> 0 bytes
-rw-r--r--assets/blocks/production/spore-press-piston0.pngbin152 -> 0 bytes
-rw-r--r--assets/blocks/production/spore-press-piston1.pngbin153 -> 0 bytes
-rw-r--r--assets/blocks/production/spore-press-top.pngbin153 -> 0 bytes
-rw-r--r--assets/blocks/production/spore-press.pngbin726 -> 666 bytes
-rw-r--r--assets/blocks/production/surge-crucible.pngbin1292 -> 1173 bytes
-rw-r--r--assets/blocks/storage/container.pngbin334 -> 486 bytes
-rw-r--r--assets/blocks/storage/core-acropolis-thruster1.pngbin949 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-acropolis-thruster2.pngbin949 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-acropolis.pngbin2013 -> 3026 bytes
-rw-r--r--assets/blocks/storage/core-bastion-thruster1.pngbin489 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-bastion-thruster2.pngbin489 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-bastion.pngbin1244 -> 1624 bytes
-rw-r--r--assets/blocks/storage/core-citadel-thruster1.pngbin636 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-citadel-thruster2.pngbin635 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-citadel.pngbin1567 -> 2273 bytes
-rw-r--r--assets/blocks/storage/core-foundation-thruster1.pngbin489 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-foundation-thruster2.pngbin489 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-foundation.pngbin757 -> 1170 bytes
-rw-r--r--assets/blocks/storage/core-nucleus-thruster1.pngbin636 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-nucleus-thruster2.pngbin635 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-nucleus.pngbin1030 -> 1520 bytes
-rw-r--r--assets/blocks/storage/core-shard-thruster1.pngbin386 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-shard-thruster2.pngbin385 -> 0 bytes
-rw-r--r--assets/blocks/storage/core-shard.pngbin626 -> 771 bytes
-rw-r--r--assets/blocks/storage/reinforced-container.pngbin575 -> 601 bytes
-rw-r--r--assets/blocks/storage/reinforced-vault.pngbin821 -> 902 bytes
-rw-r--r--assets/blocks/storage/vault.pngbin581 -> 771 bytes
-rw-r--r--assets/blocks/units/basic-assembler-module-side.pngbin561 -> 0 bytes
-rw-r--r--assets/blocks/units/basic-assembler-module-side1.pngbin0 -> 969 bytes
-rw-r--r--assets/blocks/units/basic-assembler-module-side2.pngbin0 -> 1091 bytes
-rw-r--r--assets/blocks/units/mech-assembler-side.pngbin504 -> 0 bytes
-rw-r--r--assets/blocks/units/mech-assembler-side1.pngbin0 -> 764 bytes
-rw-r--r--assets/blocks/units/mech-assembler-side2.pngbin0 -> 767 bytes
-rw-r--r--assets/blocks/units/ship-assembler-side.pngbin504 -> 0 bytes
-rw-r--r--assets/blocks/units/ship-assembler-side1.pngbin0 -> 770 bytes
-rw-r--r--assets/blocks/units/ship-assembler-side2.pngbin0 -> 772 bytes
-rw-r--r--assets/blocks/units/tank-assembler-side.pngbin504 -> 0 bytes
-rw-r--r--assets/blocks/units/tank-assembler-side1.pngbin0 -> 765 bytes
-rw-r--r--assets/blocks/units/tank-assembler-side2.pngbin0 -> 765 bytes
-rw-r--r--assets/blocks/walls/scrap-wall-large.pngbin0 -> 381 bytes
-rw-r--r--build.rs4
-rw-r--r--src/block/defense.rs5
-rw-r--r--src/block/distribution.rs61
-rw-r--r--src/block/drills.rs11
-rw-r--r--src/block/liquid.rs6
-rw-r--r--src/block/logic.rs4
-rw-r--r--src/block/payload.rs96
-rw-r--r--src/block/power.rs20
-rw-r--r--src/block/production.rs34
-rw-r--r--src/block/simple.rs14
-rw-r--r--src/block/units.rs104
-rw-r--r--src/block/walls.rs41
-rw-r--r--src/data/renderer.rs55
265 files changed, 325 insertions, 130 deletions
diff --git a/assets/blocks/campaign/interplanetary-accelerator.png b/assets/blocks/campaign/interplanetary-accelerator.png
index e9bbf1f..78f302b 100644
--- a/assets/blocks/campaign/interplanetary-accelerator.png
+++ b/assets/blocks/campaign/interplanetary-accelerator.png
Binary files differ
diff --git a/assets/blocks/campaign/launch-pad.png b/assets/blocks/campaign/launch-pad.png
index 416e1c6..3dcca24 100644
--- a/assets/blocks/campaign/launch-pad.png
+++ b/assets/blocks/campaign/launch-pad.png
Binary files differ
diff --git a/assets/blocks/campaign/launchpod.png b/assets/blocks/campaign/launchpod.png
index c5b2cb6..1697897 100644
--- a/assets/blocks/campaign/launchpod.png
+++ b/assets/blocks/campaign/launchpod.png
Binary files differ
diff --git a/assets/blocks/defense/barrier-projector.png b/assets/blocks/defense/barrier-projector.png
index 51022ef..0b72218 100644
--- a/assets/blocks/defense/barrier-projector.png
+++ b/assets/blocks/defense/barrier-projector.png
Binary files differ
diff --git a/assets/blocks/defense/build-tower-base.png b/assets/blocks/defense/build-tower-base.png
deleted file mode 100644
index 63871c5..0000000
--- a/assets/blocks/defense/build-tower-base.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/defense/build-tower.png b/assets/blocks/defense/build-tower.png
index 6290379..cec7847 100644
--- a/assets/blocks/defense/build-tower.png
+++ b/assets/blocks/defense/build-tower.png
Binary files differ
diff --git a/assets/blocks/defense/force-projector.png b/assets/blocks/defense/force-projector.png
index dc5abbe..72bd63e 100644
--- a/assets/blocks/defense/force-projector.png
+++ b/assets/blocks/defense/force-projector.png
Binary files differ
diff --git a/assets/blocks/defense/large-shield-projector.png b/assets/blocks/defense/large-shield-projector.png
index 46f23ee..ec01b32 100644
--- a/assets/blocks/defense/large-shield-projector.png
+++ b/assets/blocks/defense/large-shield-projector.png
Binary files differ
diff --git a/assets/blocks/defense/overdrive-dome.png b/assets/blocks/defense/overdrive-dome.png
index b96b253..c52221e 100644
--- a/assets/blocks/defense/overdrive-dome.png
+++ b/assets/blocks/defense/overdrive-dome.png
Binary files differ
diff --git a/assets/blocks/defense/radar-base.png b/assets/blocks/defense/radar-base.png
deleted file mode 100644
index d8d4fcc..0000000
--- a/assets/blocks/defense/radar-base.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/defense/radar.png b/assets/blocks/defense/radar.png
index a1f4360..701beac 100644
--- a/assets/blocks/defense/radar.png
+++ b/assets/blocks/defense/radar.png
Binary files differ
diff --git a/assets/blocks/defense/regen-projector-bottom.png b/assets/blocks/defense/regen-projector-bottom.png
deleted file mode 100644
index 219f1bd..0000000
--- a/assets/blocks/defense/regen-projector-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/defense/regen-projector.png b/assets/blocks/defense/regen-projector.png
index b407bd3..7bc0fd4 100644
--- a/assets/blocks/defense/regen-projector.png
+++ b/assets/blocks/defense/regen-projector.png
Binary files differ
diff --git a/assets/blocks/defense/shield-projector.png b/assets/blocks/defense/shield-projector.png
index 0a6ec4c..43717ca 100644
--- a/assets/blocks/defense/shield-projector.png
+++ b/assets/blocks/defense/shield-projector.png
Binary files differ
diff --git a/assets/blocks/defense/shock-mine-team-top.png b/assets/blocks/defense/shock-mine-team-top.png
index e56ca19..4ee60bc 100644
--- a/assets/blocks/defense/shock-mine-team-top.png
+++ b/assets/blocks/defense/shock-mine-team-top.png
Binary files differ
diff --git a/assets/blocks/defense/shock-mine.png b/assets/blocks/defense/shock-mine.png
index 3fe9ae2..2f18055 100644
--- a/assets/blocks/defense/shock-mine.png
+++ b/assets/blocks/defense/shock-mine.png
Binary files differ
diff --git a/assets/blocks/defense/shockwave-tower.png b/assets/blocks/defense/shockwave-tower.png
index 8e19511..f6780d8 100644
--- a/assets/blocks/defense/shockwave-tower.png
+++ b/assets/blocks/defense/shockwave-tower.png
Binary files differ
diff --git a/assets/blocks/distribution/conveyors/armored-conveyor-2.png b/assets/blocks/distribution/conveyors/armored-conveyor-2.png
index f6140cc..72eba5c 100644
--- a/assets/blocks/distribution/conveyors/armored-conveyor-2.png
+++ b/assets/blocks/distribution/conveyors/armored-conveyor-2.png
Binary files differ
diff --git a/assets/blocks/distribution/conveyors/conveyor-0.png b/assets/blocks/distribution/conveyors/conveyor-0.png
index a7c1866..4de81c8 100644
--- a/assets/blocks/distribution/conveyors/conveyor-0.png
+++ b/assets/blocks/distribution/conveyors/conveyor-0.png
Binary files differ
diff --git a/assets/blocks/distribution/conveyors/conveyor-4.png b/assets/blocks/distribution/conveyors/conveyor-4.png
index c16513b..b788db9 100644
--- a/assets/blocks/distribution/conveyors/conveyor-4.png
+++ b/assets/blocks/distribution/conveyors/conveyor-4.png
Binary files differ
diff --git a/assets/blocks/distribution/conveyors/titanium-conveyor-1.png b/assets/blocks/distribution/conveyors/titanium-conveyor-1.png
index 9a2c145..749b079 100644
--- a/assets/blocks/distribution/conveyors/titanium-conveyor-1.png
+++ b/assets/blocks/distribution/conveyors/titanium-conveyor-1.png
Binary files differ
diff --git a/assets/blocks/distribution/conveyors/titanium-conveyor-2.png b/assets/blocks/distribution/conveyors/titanium-conveyor-2.png
index e4834ec..f5ba433 100644
--- a/assets/blocks/distribution/conveyors/titanium-conveyor-2.png
+++ b/assets/blocks/distribution/conveyors/titanium-conveyor-2.png
Binary files differ
diff --git a/assets/blocks/distribution/conveyors/titanium-conveyor-4.png b/assets/blocks/distribution/conveyors/titanium-conveyor-4.png
index 99d6592..079d383 100644
--- a/assets/blocks/distribution/conveyors/titanium-conveyor-4.png
+++ b/assets/blocks/distribution/conveyors/titanium-conveyor-4.png
Binary files differ
diff --git a/assets/blocks/distribution/cross-full.png b/assets/blocks/distribution/cross-full.png
index 637805a..631d138 100644
--- a/assets/blocks/distribution/cross-full.png
+++ b/assets/blocks/distribution/cross-full.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/armored-duct-0.png b/assets/blocks/distribution/ducts/armored-duct-0.png
index 3a661b6..7cdf0be 100644
--- a/assets/blocks/distribution/ducts/armored-duct-0.png
+++ b/assets/blocks/distribution/ducts/armored-duct-0.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/armored-duct-1.png b/assets/blocks/distribution/ducts/armored-duct-1.png
index d4b81d8..4c02046 100644
--- a/assets/blocks/distribution/ducts/armored-duct-1.png
+++ b/assets/blocks/distribution/ducts/armored-duct-1.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/armored-duct-4.png b/assets/blocks/distribution/ducts/armored-duct-4.png
index e1e2cab..985626c 100644
--- a/assets/blocks/distribution/ducts/armored-duct-4.png
+++ b/assets/blocks/distribution/ducts/armored-duct-4.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-0.png b/assets/blocks/distribution/ducts/duct-0.png
index 4112edc..3cec9b5 100644
--- a/assets/blocks/distribution/ducts/duct-0.png
+++ b/assets/blocks/distribution/ducts/duct-0.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-2.png b/assets/blocks/distribution/ducts/duct-2.png
index 0192770..c0afcfb 100644
--- a/assets/blocks/distribution/ducts/duct-2.png
+++ b/assets/blocks/distribution/ducts/duct-2.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-3.png b/assets/blocks/distribution/ducts/duct-3.png
index e0ce754..d1a331c 100644
--- a/assets/blocks/distribution/ducts/duct-3.png
+++ b/assets/blocks/distribution/ducts/duct-3.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-4.png b/assets/blocks/distribution/ducts/duct-4.png
index 2bba535..d490c36 100644
--- a/assets/blocks/distribution/ducts/duct-4.png
+++ b/assets/blocks/distribution/ducts/duct-4.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-bridge-arrow.png b/assets/blocks/distribution/ducts/duct-bridge-arrow.png
index ce38b2e..a00c8e9 100644
--- a/assets/blocks/distribution/ducts/duct-bridge-arrow.png
+++ b/assets/blocks/distribution/ducts/duct-bridge-arrow.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-bridge-dir.png b/assets/blocks/distribution/ducts/duct-bridge-dir.png
index c889e17..edca5f1 100644
--- a/assets/blocks/distribution/ducts/duct-bridge-dir.png
+++ b/assets/blocks/distribution/ducts/duct-bridge-dir.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-unloader-arrow.png b/assets/blocks/distribution/ducts/duct-unloader-arrow.png
index 4b1e81b..19609e0 100644
--- a/assets/blocks/distribution/ducts/duct-unloader-arrow.png
+++ b/assets/blocks/distribution/ducts/duct-unloader-arrow.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-unloader-top.png b/assets/blocks/distribution/ducts/duct-unloader-top.png
index 39aa94c..04c41de 100644
--- a/assets/blocks/distribution/ducts/duct-unloader-top.png
+++ b/assets/blocks/distribution/ducts/duct-unloader-top.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-unloader.png b/assets/blocks/distribution/ducts/duct-unloader.png
index 908b66b..b9ba79c 100644
--- a/assets/blocks/distribution/ducts/duct-unloader.png
+++ b/assets/blocks/distribution/ducts/duct-unloader.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/overflow-duct.png b/assets/blocks/distribution/ducts/overflow-duct.png
index 1d0c98e..6b3e6d0 100644
--- a/assets/blocks/distribution/ducts/overflow-duct.png
+++ b/assets/blocks/distribution/ducts/overflow-duct.png
Binary files differ
diff --git a/assets/blocks/distribution/ducts/surge-router-top.png b/assets/blocks/distribution/ducts/surge-router-top.png
deleted file mode 100644
index 2769d6f..0000000
--- a/assets/blocks/distribution/ducts/surge-router-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/distribution/ducts/top.png b/assets/blocks/distribution/ducts/top.png
index 2769d6f..c7f9cd6 100644
--- a/assets/blocks/distribution/ducts/top.png
+++ b/assets/blocks/distribution/ducts/top.png
Binary files differ
diff --git a/assets/blocks/distribution/inverted-sorter.png b/assets/blocks/distribution/inverted-sorter.png
index a36e45a..93283b4 100644
--- a/assets/blocks/distribution/inverted-sorter.png
+++ b/assets/blocks/distribution/inverted-sorter.png
Binary files differ
diff --git a/assets/blocks/distribution/item-void.png b/assets/blocks/distribution/item-void.png
index f48a743..0ef9612 100644
--- a/assets/blocks/distribution/item-void.png
+++ b/assets/blocks/distribution/item-void.png
Binary files differ
diff --git a/assets/blocks/distribution/mass-driver-base.png b/assets/blocks/distribution/mass-driver-base.png
index d019e7b..23ad8cc 100644
--- a/assets/blocks/distribution/mass-driver-base.png
+++ b/assets/blocks/distribution/mass-driver-base.png
Binary files differ
diff --git a/assets/blocks/distribution/mass-driver.png b/assets/blocks/distribution/mass-driver.png
index a4a0d82..6c65bf1 100644
--- a/assets/blocks/distribution/mass-driver.png
+++ b/assets/blocks/distribution/mass-driver.png
Binary files differ
diff --git a/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-0.png b/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-0.png
index 566bdbf..2dc44db 100644
--- a/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-0.png
+++ b/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-0.png
Binary files differ
diff --git a/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-1.png b/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-1.png
index 73925cf..e6d57f6 100644
--- a/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-1.png
+++ b/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-1.png
Binary files differ
diff --git a/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-stack.png b/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-stack.png
index 13e4d79..a0e5afe 100644
--- a/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-stack.png
+++ b/assets/blocks/distribution/stack-conveyors/plastanium-conveyor-stack.png
Binary files differ
diff --git a/assets/blocks/distribution/stack-conveyors/surge-conveyor-0.png b/assets/blocks/distribution/stack-conveyors/surge-conveyor-0.png
index bc0f58d..67e479f 100644
--- a/assets/blocks/distribution/stack-conveyors/surge-conveyor-0.png
+++ b/assets/blocks/distribution/stack-conveyors/surge-conveyor-0.png
Binary files differ
diff --git a/assets/blocks/distribution/stack-conveyors/surge-conveyor-edge.png b/assets/blocks/distribution/stack-conveyors/surge-conveyor-edge.png
index b77c6b0..5ef6959 100644
--- a/assets/blocks/distribution/stack-conveyors/surge-conveyor-edge.png
+++ b/assets/blocks/distribution/stack-conveyors/surge-conveyor-edge.png
Binary files differ
diff --git a/assets/blocks/distribution/stack-conveyors/surge-conveyor-stack.png b/assets/blocks/distribution/stack-conveyors/surge-conveyor-stack.png
index b84156b..3e82595 100644
--- a/assets/blocks/distribution/stack-conveyors/surge-conveyor-stack.png
+++ b/assets/blocks/distribution/stack-conveyors/surge-conveyor-stack.png
Binary files differ
diff --git a/assets/blocks/distribution/underflow-gate.png b/assets/blocks/distribution/underflow-gate.png
index 3bca339..92b6f26 100644
--- a/assets/blocks/distribution/underflow-gate.png
+++ b/assets/blocks/distribution/underflow-gate.png
Binary files differ
diff --git a/assets/blocks/distribution/unit-cargo-unload-point.png b/assets/blocks/distribution/unit-cargo-unload-point.png
index 20f576f..24cae6c 100644
--- a/assets/blocks/distribution/unit-cargo-unload-point.png
+++ b/assets/blocks/distribution/unit-cargo-unload-point.png
Binary files differ
diff --git a/assets/blocks/drills/blast-drill.png b/assets/blocks/drills/blast-drill.png
index b862929..13ff22b 100644
--- a/assets/blocks/drills/blast-drill.png
+++ b/assets/blocks/drills/blast-drill.png
Binary files differ
diff --git a/assets/blocks/drills/cliff-crusher-top.png b/assets/blocks/drills/cliff-crusher-top.png
index 7ff38a0..d883816 100644
--- a/assets/blocks/drills/cliff-crusher-top.png
+++ b/assets/blocks/drills/cliff-crusher-top.png
Binary files differ
diff --git a/assets/blocks/drills/cliff-crusher.png b/assets/blocks/drills/cliff-crusher.png
index 06ad9f0..3c82a82 100644
--- a/assets/blocks/drills/cliff-crusher.png
+++ b/assets/blocks/drills/cliff-crusher.png
Binary files differ
diff --git a/assets/blocks/drills/large-plasma-bore-top.png b/assets/blocks/drills/large-plasma-bore-top.png
index c5508e0..6bc63a7 100644
--- a/assets/blocks/drills/large-plasma-bore-top.png
+++ b/assets/blocks/drills/large-plasma-bore-top.png
Binary files differ
diff --git a/assets/blocks/drills/large-plasma-bore.png b/assets/blocks/drills/large-plasma-bore.png
index 8dcc11a..704a773 100644
--- a/assets/blocks/drills/large-plasma-bore.png
+++ b/assets/blocks/drills/large-plasma-bore.png
Binary files differ
diff --git a/assets/blocks/drills/laser-drill.png b/assets/blocks/drills/laser-drill.png
index 7a1f2bf..b0f94cb 100644
--- a/assets/blocks/drills/laser-drill.png
+++ b/assets/blocks/drills/laser-drill.png
Binary files differ
diff --git a/assets/blocks/drills/oil-extractor.png b/assets/blocks/drills/oil-extractor.png
index 4a9fea2..18e84d7 100644
--- a/assets/blocks/drills/oil-extractor.png
+++ b/assets/blocks/drills/oil-extractor.png
Binary files differ
diff --git a/assets/blocks/drills/pneumatic-drill.png b/assets/blocks/drills/pneumatic-drill.png
index 78918ee..3bbada9 100644
--- a/assets/blocks/drills/pneumatic-drill.png
+++ b/assets/blocks/drills/pneumatic-drill.png
Binary files differ
diff --git a/assets/blocks/drills/vent-condenser.png b/assets/blocks/drills/vent-condenser.png
index 2907fc4..ed715bd 100644
--- a/assets/blocks/drills/vent-condenser.png
+++ b/assets/blocks/drills/vent-condenser.png
Binary files differ
diff --git a/assets/blocks/drills/water-extractor.png b/assets/blocks/drills/water-extractor.png
index 44eb7d2..3579707 100644
--- a/assets/blocks/drills/water-extractor.png
+++ b/assets/blocks/drills/water-extractor.png
Binary files differ
diff --git a/assets/blocks/environment/arkyic-vent.png b/assets/blocks/environment/arkyic-vent.png
index 7c7cf86..f67cbe3 100644
--- a/assets/blocks/environment/arkyic-vent.png
+++ b/assets/blocks/environment/arkyic-vent.png
Binary files differ
diff --git a/assets/blocks/environment/arkyic-wall-large.png b/assets/blocks/environment/arkyic-wall-large.png
index 55dc3ae..6e1f48a 100644
--- a/assets/blocks/environment/arkyic-wall-large.png
+++ b/assets/blocks/environment/arkyic-wall-large.png
Binary files differ
diff --git a/assets/blocks/environment/basalt-boulder.png b/assets/blocks/environment/basalt-boulder.png
index 84f8b08..6f4ce91 100644
--- a/assets/blocks/environment/basalt-boulder.png
+++ b/assets/blocks/environment/basalt-boulder.png
Binary files differ
diff --git a/assets/blocks/environment/basalt.png b/assets/blocks/environment/basalt.png
index 3f3f661..93ee858 100644
--- a/assets/blocks/environment/basalt.png
+++ b/assets/blocks/environment/basalt.png
Binary files differ
diff --git a/assets/blocks/environment/beryllic-boulder.png b/assets/blocks/environment/beryllic-boulder.png
index 373d318..a039a47 100644
--- a/assets/blocks/environment/beryllic-boulder.png
+++ b/assets/blocks/environment/beryllic-boulder.png
Binary files differ
diff --git a/assets/blocks/environment/bluemat.png b/assets/blocks/environment/bluemat.png
index afdaeb2..e15530a 100644
--- a/assets/blocks/environment/bluemat.png
+++ b/assets/blocks/environment/bluemat.png
Binary files differ
diff --git a/assets/blocks/environment/boulder.png b/assets/blocks/environment/boulder.png
index 73540ec..a9bf280 100644
--- a/assets/blocks/environment/boulder.png
+++ b/assets/blocks/environment/boulder.png
Binary files differ
diff --git a/assets/blocks/environment/carbon-stone.png b/assets/blocks/environment/carbon-stone.png
index e212bb9..76bde92 100644
--- a/assets/blocks/environment/carbon-stone.png
+++ b/assets/blocks/environment/carbon-stone.png
Binary files differ
diff --git a/assets/blocks/environment/carbon-vent.png b/assets/blocks/environment/carbon-vent.png
index 20b2eac..d3e2570 100644
--- a/assets/blocks/environment/carbon-vent.png
+++ b/assets/blocks/environment/carbon-vent.png
Binary files differ
diff --git a/assets/blocks/environment/carbon-wall-large.png b/assets/blocks/environment/carbon-wall-large.png
index 4e61ade..653ae35 100644
--- a/assets/blocks/environment/carbon-wall-large.png
+++ b/assets/blocks/environment/carbon-wall-large.png
Binary files differ
diff --git a/assets/blocks/environment/core-zone.png b/assets/blocks/environment/core-zone.png
index 738e747..0a7bf40 100644
--- a/assets/blocks/environment/core-zone.png
+++ b/assets/blocks/environment/core-zone.png
Binary files differ
diff --git a/assets/blocks/environment/crater-stone.png b/assets/blocks/environment/crater-stone.png
index b9aa42f..9cfc92f 100644
--- a/assets/blocks/environment/crater-stone.png
+++ b/assets/blocks/environment/crater-stone.png
Binary files differ
diff --git a/assets/blocks/environment/crystal-blocks.png b/assets/blocks/environment/crystal-blocks.png
index d66a7df..0acc3d3 100644
--- a/assets/blocks/environment/crystal-blocks.png
+++ b/assets/blocks/environment/crystal-blocks.png
Binary files differ
diff --git a/assets/blocks/environment/crystal-cluster.png b/assets/blocks/environment/crystal-cluster.png
index 8c982a2..b3454ef 100644
--- a/assets/blocks/environment/crystal-cluster.png
+++ b/assets/blocks/environment/crystal-cluster.png
Binary files differ
diff --git a/assets/blocks/environment/crystal-orbs.png b/assets/blocks/environment/crystal-orbs.png
index 8545e00..4055f3b 100644
--- a/assets/blocks/environment/crystal-orbs.png
+++ b/assets/blocks/environment/crystal-orbs.png
Binary files differ
diff --git a/assets/blocks/environment/crystalline-boulder.png b/assets/blocks/environment/crystalline-boulder.png
index 59d0a9b..462dccd 100644
--- a/assets/blocks/environment/crystalline-boulder.png
+++ b/assets/blocks/environment/crystalline-boulder.png
Binary files differ
diff --git a/assets/blocks/environment/crystalline-stone-wall-large.png b/assets/blocks/environment/crystalline-stone-wall-large.png
index 5199f68..17962ee 100644
--- a/assets/blocks/environment/crystalline-stone-wall-large.png
+++ b/assets/blocks/environment/crystalline-stone-wall-large.png
Binary files differ
diff --git a/assets/blocks/environment/crystalline-stone-wall.png b/assets/blocks/environment/crystalline-stone-wall.png
index d5c25db..427bf7f 100644
--- a/assets/blocks/environment/crystalline-stone-wall.png
+++ b/assets/blocks/environment/crystalline-stone-wall.png
Binary files differ
diff --git a/assets/blocks/environment/crystalline-vent.png b/assets/blocks/environment/crystalline-vent.png
index 469ccce..2de8864 100644
--- a/assets/blocks/environment/crystalline-vent.png
+++ b/assets/blocks/environment/crystalline-vent.png
Binary files differ
diff --git a/assets/blocks/environment/dacite-boulder.png b/assets/blocks/environment/dacite-boulder.png
index d7df113..1a550b2 100644
--- a/assets/blocks/environment/dacite-boulder.png
+++ b/assets/blocks/environment/dacite-boulder.png
Binary files differ
diff --git a/assets/blocks/environment/dacite-wall.png b/assets/blocks/environment/dacite-wall.png
index a4bae3e..23ef79d 100644
--- a/assets/blocks/environment/dacite-wall.png
+++ b/assets/blocks/environment/dacite-wall.png
Binary files differ
diff --git a/assets/blocks/environment/dark-metal.png b/assets/blocks/environment/dark-metal.png
index 207575a..2adeae1 100644
--- a/assets/blocks/environment/dark-metal.png
+++ b/assets/blocks/environment/dark-metal.png
Binary files differ
diff --git a/assets/blocks/environment/dark-panel-4.png b/assets/blocks/environment/dark-panel-4.png
index 9bc8523..3030229 100644
--- a/assets/blocks/environment/dark-panel-4.png
+++ b/assets/blocks/environment/dark-panel-4.png
Binary files differ
diff --git a/assets/blocks/environment/dark-panel-6.png b/assets/blocks/environment/dark-panel-6.png
index 29928e4..d7d3ba2 100644
--- a/assets/blocks/environment/dark-panel-6.png
+++ b/assets/blocks/environment/dark-panel-6.png
Binary files differ
diff --git a/assets/blocks/environment/darksand-tainted-water.png b/assets/blocks/environment/darksand-tainted-water.png
index 502dc09..7f74cca 100644
--- a/assets/blocks/environment/darksand-tainted-water.png
+++ b/assets/blocks/environment/darksand-tainted-water.png
Binary files differ
diff --git a/assets/blocks/environment/darksand-water.png b/assets/blocks/environment/darksand-water.png
index 6aa482c..61c769d 100644
--- a/assets/blocks/environment/darksand-water.png
+++ b/assets/blocks/environment/darksand-water.png
Binary files differ
diff --git a/assets/blocks/environment/darksand.png b/assets/blocks/environment/darksand.png
index 7c6958b..ef61797 100644
--- a/assets/blocks/environment/darksand.png
+++ b/assets/blocks/environment/darksand.png
Binary files differ
diff --git a/assets/blocks/environment/dense-red-stone.png b/assets/blocks/environment/dense-red-stone.png
index ad1a3d4..40d1694 100644
--- a/assets/blocks/environment/dense-red-stone.png
+++ b/assets/blocks/environment/dense-red-stone.png
Binary files differ
diff --git a/assets/blocks/liquid/bridge-conduit.png b/assets/blocks/liquid/bridge-conduit.png
index 1a5a303..d57c2bb 100644
--- a/assets/blocks/liquid/bridge-conduit.png
+++ b/assets/blocks/liquid/bridge-conduit.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-bottom-2.png b/assets/blocks/liquid/conduits/conduit-bottom-2.png
index cb70d3b..0d9e7e3 100644
--- a/assets/blocks/liquid/conduits/conduit-bottom-2.png
+++ b/assets/blocks/liquid/conduits/conduit-bottom-2.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-bottom-3.png b/assets/blocks/liquid/conduits/conduit-bottom-3.png
index cb70d3b..0d9e7e3 100644
--- a/assets/blocks/liquid/conduits/conduit-bottom-3.png
+++ b/assets/blocks/liquid/conduits/conduit-bottom-3.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-bottom-4.png b/assets/blocks/liquid/conduits/conduit-bottom-4.png
index cb70d3b..0d9e7e3 100644
--- a/assets/blocks/liquid/conduits/conduit-bottom-4.png
+++ b/assets/blocks/liquid/conduits/conduit-bottom-4.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-top-0.png b/assets/blocks/liquid/conduits/conduit-top-0.png
index ed527d5..89e0a19 100644
--- a/assets/blocks/liquid/conduits/conduit-top-0.png
+++ b/assets/blocks/liquid/conduits/conduit-top-0.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-top-1.png b/assets/blocks/liquid/conduits/conduit-top-1.png
index b0ac383..dc86dd4 100644
--- a/assets/blocks/liquid/conduits/conduit-top-1.png
+++ b/assets/blocks/liquid/conduits/conduit-top-1.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-top-2.png b/assets/blocks/liquid/conduits/conduit-top-2.png
index 93e82c7..e8a7bb0 100644
--- a/assets/blocks/liquid/conduits/conduit-top-2.png
+++ b/assets/blocks/liquid/conduits/conduit-top-2.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-top-3.png b/assets/blocks/liquid/conduits/conduit-top-3.png
index 003c628..15b8dc2 100644
--- a/assets/blocks/liquid/conduits/conduit-top-3.png
+++ b/assets/blocks/liquid/conduits/conduit-top-3.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/conduit-top-4.png b/assets/blocks/liquid/conduits/conduit-top-4.png
index 8f74d35..3d0f869 100644
--- a/assets/blocks/liquid/conduits/conduit-top-4.png
+++ b/assets/blocks/liquid/conduits/conduit-top-4.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/plated-conduit-cap.png b/assets/blocks/liquid/conduits/plated-conduit-cap.png
index c62c41f..6a9f67d 100644
--- a/assets/blocks/liquid/conduits/plated-conduit-cap.png
+++ b/assets/blocks/liquid/conduits/plated-conduit-cap.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/plated-conduit-top-0.png b/assets/blocks/liquid/conduits/plated-conduit-top-0.png
index 4e51df6..9b1dcd0 100644
--- a/assets/blocks/liquid/conduits/plated-conduit-top-0.png
+++ b/assets/blocks/liquid/conduits/plated-conduit-top-0.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/plated-conduit-top-1.png b/assets/blocks/liquid/conduits/plated-conduit-top-1.png
index 8fcab39..201ffa2 100644
--- a/assets/blocks/liquid/conduits/plated-conduit-top-1.png
+++ b/assets/blocks/liquid/conduits/plated-conduit-top-1.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/plated-conduit-top-2.png b/assets/blocks/liquid/conduits/plated-conduit-top-2.png
index b251a3c..4a32d66 100644
--- a/assets/blocks/liquid/conduits/plated-conduit-top-2.png
+++ b/assets/blocks/liquid/conduits/plated-conduit-top-2.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/plated-conduit-top-3.png b/assets/blocks/liquid/conduits/plated-conduit-top-3.png
index c971709..ea24f9a 100644
--- a/assets/blocks/liquid/conduits/plated-conduit-top-3.png
+++ b/assets/blocks/liquid/conduits/plated-conduit-top-3.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/plated-conduit-top-4.png b/assets/blocks/liquid/conduits/plated-conduit-top-4.png
index e4a9546..5fd7ae2 100644
--- a/assets/blocks/liquid/conduits/plated-conduit-top-4.png
+++ b/assets/blocks/liquid/conduits/plated-conduit-top-4.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/pulse-conduit-top-0.png b/assets/blocks/liquid/conduits/pulse-conduit-top-0.png
index 810f8f5..09ee3e3 100644
--- a/assets/blocks/liquid/conduits/pulse-conduit-top-0.png
+++ b/assets/blocks/liquid/conduits/pulse-conduit-top-0.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/pulse-conduit-top-1.png b/assets/blocks/liquid/conduits/pulse-conduit-top-1.png
index 6881420..170ffc9 100644
--- a/assets/blocks/liquid/conduits/pulse-conduit-top-1.png
+++ b/assets/blocks/liquid/conduits/pulse-conduit-top-1.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/pulse-conduit-top-2.png b/assets/blocks/liquid/conduits/pulse-conduit-top-2.png
index 09ddb5f..35d1735 100644
--- a/assets/blocks/liquid/conduits/pulse-conduit-top-2.png
+++ b/assets/blocks/liquid/conduits/pulse-conduit-top-2.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/pulse-conduit-top-3.png b/assets/blocks/liquid/conduits/pulse-conduit-top-3.png
index 1c6e455..b7a411b 100644
--- a/assets/blocks/liquid/conduits/pulse-conduit-top-3.png
+++ b/assets/blocks/liquid/conduits/pulse-conduit-top-3.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/pulse-conduit-top-4.png b/assets/blocks/liquid/conduits/pulse-conduit-top-4.png
index ffbc66c..7958647 100644
--- a/assets/blocks/liquid/conduits/pulse-conduit-top-4.png
+++ b/assets/blocks/liquid/conduits/pulse-conduit-top-4.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/reinforced-conduit-top-0.png b/assets/blocks/liquid/conduits/reinforced-conduit-top-0.png
index 80e790a..45bcdc2 100644
--- a/assets/blocks/liquid/conduits/reinforced-conduit-top-0.png
+++ b/assets/blocks/liquid/conduits/reinforced-conduit-top-0.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/reinforced-conduit-top-1.png b/assets/blocks/liquid/conduits/reinforced-conduit-top-1.png
index 9114193..e393c9c 100644
--- a/assets/blocks/liquid/conduits/reinforced-conduit-top-1.png
+++ b/assets/blocks/liquid/conduits/reinforced-conduit-top-1.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/reinforced-conduit-top-2.png b/assets/blocks/liquid/conduits/reinforced-conduit-top-2.png
index 8f4d511..5099798 100644
--- a/assets/blocks/liquid/conduits/reinforced-conduit-top-2.png
+++ b/assets/blocks/liquid/conduits/reinforced-conduit-top-2.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/reinforced-conduit-top-3.png b/assets/blocks/liquid/conduits/reinforced-conduit-top-3.png
index 1168e35..297d720 100644
--- a/assets/blocks/liquid/conduits/reinforced-conduit-top-3.png
+++ b/assets/blocks/liquid/conduits/reinforced-conduit-top-3.png
Binary files differ
diff --git a/assets/blocks/liquid/conduits/reinforced-conduit-top-4.png b/assets/blocks/liquid/conduits/reinforced-conduit-top-4.png
index a7c4c9f..46deb70 100644
--- a/assets/blocks/liquid/conduits/reinforced-conduit-top-4.png
+++ b/assets/blocks/liquid/conduits/reinforced-conduit-top-4.png
Binary files differ
diff --git a/assets/blocks/liquid/fluid.png b/assets/blocks/liquid/fluid.png
index cb70d3b..0d9e7e3 100644
--- a/assets/blocks/liquid/fluid.png
+++ b/assets/blocks/liquid/fluid.png
Binary files differ
diff --git a/assets/blocks/liquid/impulse-pump-liquid.png b/assets/blocks/liquid/impulse-pump-liquid.png
index f442cb5..bd62682 100644
--- a/assets/blocks/liquid/impulse-pump-liquid.png
+++ b/assets/blocks/liquid/impulse-pump-liquid.png
Binary files differ
diff --git a/assets/blocks/liquid/impulse-pump.png b/assets/blocks/liquid/impulse-pump.png
index bd82eaf..7f41faf 100644
--- a/assets/blocks/liquid/impulse-pump.png
+++ b/assets/blocks/liquid/impulse-pump.png
Binary files differ
diff --git a/assets/blocks/liquid/liquid-container.png b/assets/blocks/liquid/liquid-container.png
index 36b1c41..5336e28 100644
--- a/assets/blocks/liquid/liquid-container.png
+++ b/assets/blocks/liquid/liquid-container.png
Binary files differ
diff --git a/assets/blocks/liquid/liquid-overflow-gate-top.png b/assets/blocks/liquid/liquid-overflow-gate-top.png
deleted file mode 100644
index 37b6b3d..0000000
--- a/assets/blocks/liquid/liquid-overflow-gate-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/liquid/liquid-overflow-gate.png b/assets/blocks/liquid/liquid-overflow-gate.png
deleted file mode 100644
index 8c3d4bb..0000000
--- a/assets/blocks/liquid/liquid-overflow-gate.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/liquid/liquid-router.png b/assets/blocks/liquid/liquid-router.png
index 6def5ec..75adcb1 100644
--- a/assets/blocks/liquid/liquid-router.png
+++ b/assets/blocks/liquid/liquid-router.png
Binary files differ
diff --git a/assets/blocks/liquid/liquid-tank.png b/assets/blocks/liquid/liquid-tank.png
index 8d55fdf..f4e9396 100644
--- a/assets/blocks/liquid/liquid-tank.png
+++ b/assets/blocks/liquid/liquid-tank.png
Binary files differ
diff --git a/assets/blocks/liquid/liquid-void.png b/assets/blocks/liquid/liquid-void.png
index 0340445..34b20dd 100644
--- a/assets/blocks/liquid/liquid-void.png
+++ b/assets/blocks/liquid/liquid-void.png
Binary files differ
diff --git a/assets/blocks/liquid/mechanical-pump-liquid.png b/assets/blocks/liquid/mechanical-pump-liquid.png
index f442cb5..bd62682 100644
--- a/assets/blocks/liquid/mechanical-pump-liquid.png
+++ b/assets/blocks/liquid/mechanical-pump-liquid.png
Binary files differ
diff --git a/assets/blocks/liquid/mechanical-pump.png b/assets/blocks/liquid/mechanical-pump.png
index 266d6c7..771d52d 100644
--- a/assets/blocks/liquid/mechanical-pump.png
+++ b/assets/blocks/liquid/mechanical-pump.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-bridge-conduit-arrow.png b/assets/blocks/liquid/reinforced-bridge-conduit-arrow.png
index aeeca0a..5309b37 100644
--- a/assets/blocks/liquid/reinforced-bridge-conduit-arrow.png
+++ b/assets/blocks/liquid/reinforced-bridge-conduit-arrow.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-bridge-conduit-bottom.png b/assets/blocks/liquid/reinforced-bridge-conduit-bottom.png
deleted file mode 100644
index 0d1f5d1..0000000
--- a/assets/blocks/liquid/reinforced-bridge-conduit-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-bridge-conduit-bridge.png b/assets/blocks/liquid/reinforced-bridge-conduit-bridge.png
index c3dae88..12c5bde 100644
--- a/assets/blocks/liquid/reinforced-bridge-conduit-bridge.png
+++ b/assets/blocks/liquid/reinforced-bridge-conduit-bridge.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-bridge-conduit-dir.png b/assets/blocks/liquid/reinforced-bridge-conduit-dir.png
index 3e87946..233e43a 100644
--- a/assets/blocks/liquid/reinforced-bridge-conduit-dir.png
+++ b/assets/blocks/liquid/reinforced-bridge-conduit-dir.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-bridge-conduit-liquid.png b/assets/blocks/liquid/reinforced-bridge-conduit-liquid.png
index ed75d3f..6c42419 100644
--- a/assets/blocks/liquid/reinforced-bridge-conduit-liquid.png
+++ b/assets/blocks/liquid/reinforced-bridge-conduit-liquid.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-bridge-conduit.png b/assets/blocks/liquid/reinforced-bridge-conduit.png
index 22f1561..9e694e0 100644
--- a/assets/blocks/liquid/reinforced-bridge-conduit.png
+++ b/assets/blocks/liquid/reinforced-bridge-conduit.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-liquid-container-bottom.png b/assets/blocks/liquid/reinforced-liquid-container-bottom.png
index d05104b..85194f9 100644
--- a/assets/blocks/liquid/reinforced-liquid-container-bottom.png
+++ b/assets/blocks/liquid/reinforced-liquid-container-bottom.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-liquid-container.png b/assets/blocks/liquid/reinforced-liquid-container.png
index c033889..b769691 100644
--- a/assets/blocks/liquid/reinforced-liquid-container.png
+++ b/assets/blocks/liquid/reinforced-liquid-container.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-liquid-router-bottom.png b/assets/blocks/liquid/reinforced-liquid-router-bottom.png
index bed01cd..3b2c81c 100644
--- a/assets/blocks/liquid/reinforced-liquid-router-bottom.png
+++ b/assets/blocks/liquid/reinforced-liquid-router-bottom.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-liquid-router.png b/assets/blocks/liquid/reinforced-liquid-router.png
index 517a715..0fdb7ba 100644
--- a/assets/blocks/liquid/reinforced-liquid-router.png
+++ b/assets/blocks/liquid/reinforced-liquid-router.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-liquid-tank.png b/assets/blocks/liquid/reinforced-liquid-tank.png
index bed36ee..94cbfe1 100644
--- a/assets/blocks/liquid/reinforced-liquid-tank.png
+++ b/assets/blocks/liquid/reinforced-liquid-tank.png
Binary files differ
diff --git a/assets/blocks/liquid/reinforced-pump.png b/assets/blocks/liquid/reinforced-pump.png
index 6f13b4a..22f25d4 100644
--- a/assets/blocks/liquid/reinforced-pump.png
+++ b/assets/blocks/liquid/reinforced-pump.png
Binary files differ
diff --git a/assets/blocks/liquid/rotary-pump-liquid.png b/assets/blocks/liquid/rotary-pump-liquid.png
index f442cb5..bd62682 100644
--- a/assets/blocks/liquid/rotary-pump-liquid.png
+++ b/assets/blocks/liquid/rotary-pump-liquid.png
Binary files differ
diff --git a/assets/blocks/liquid/rotary-pump.png b/assets/blocks/liquid/rotary-pump.png
index 8579273..0b94fea 100644
--- a/assets/blocks/liquid/rotary-pump.png
+++ b/assets/blocks/liquid/rotary-pump.png
Binary files differ
diff --git a/assets/blocks/payload/large-payload-mass-driver-base.png b/assets/blocks/payload/large-payload-mass-driver-base.png
deleted file mode 100644
index 4c1b055..0000000
--- a/assets/blocks/payload/large-payload-mass-driver-base.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/large-payload-mass-driver-top.png b/assets/blocks/payload/large-payload-mass-driver-top.png
deleted file mode 100644
index 5376d2d..0000000
--- a/assets/blocks/payload/large-payload-mass-driver-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/large-payload-mass-driver.png b/assets/blocks/payload/large-payload-mass-driver.png
index dddee60..42e9350 100644
--- a/assets/blocks/payload/large-payload-mass-driver.png
+++ b/assets/blocks/payload/large-payload-mass-driver.png
Binary files differ
diff --git a/assets/blocks/payload/payload-conveyor-edge.png b/assets/blocks/payload/payload-conveyor-edge.png
deleted file mode 100644
index 5c4256a..0000000
--- a/assets/blocks/payload/payload-conveyor-edge.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-conveyor-top.png b/assets/blocks/payload/payload-conveyor-top.png
deleted file mode 100644
index 86ded35..0000000
--- a/assets/blocks/payload/payload-conveyor-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-conveyor.png b/assets/blocks/payload/payload-conveyor.png
index b283b2c..ea511d4 100644
--- a/assets/blocks/payload/payload-conveyor.png
+++ b/assets/blocks/payload/payload-conveyor.png
Binary files differ
diff --git a/assets/blocks/payload/payload-mass-driver-base.png b/assets/blocks/payload/payload-mass-driver-base.png
deleted file mode 100644
index 616c7c5..0000000
--- a/assets/blocks/payload/payload-mass-driver-base.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-mass-driver-cap.png b/assets/blocks/payload/payload-mass-driver-cap.png
deleted file mode 100644
index ef9bebc..0000000
--- a/assets/blocks/payload/payload-mass-driver-cap.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-mass-driver-left.png b/assets/blocks/payload/payload-mass-driver-left.png
deleted file mode 100644
index 5936e09..0000000
--- a/assets/blocks/payload/payload-mass-driver-left.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-mass-driver-right.png b/assets/blocks/payload/payload-mass-driver-right.png
deleted file mode 100644
index b65a862..0000000
--- a/assets/blocks/payload/payload-mass-driver-right.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-mass-driver-top.png b/assets/blocks/payload/payload-mass-driver-top.png
deleted file mode 100644
index 6772e42..0000000
--- a/assets/blocks/payload/payload-mass-driver-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-mass-driver.png b/assets/blocks/payload/payload-mass-driver.png
index 25b3bd1..df38883 100644
--- a/assets/blocks/payload/payload-mass-driver.png
+++ b/assets/blocks/payload/payload-mass-driver.png
Binary files differ
diff --git a/assets/blocks/payload/payload-propulsion-tower-base.png b/assets/blocks/payload/payload-propulsion-tower-base.png
deleted file mode 100644
index b69f8f5..0000000
--- a/assets/blocks/payload/payload-propulsion-tower-base.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-propulsion-tower-cap.png b/assets/blocks/payload/payload-propulsion-tower-cap.png
deleted file mode 100644
index e750b0f..0000000
--- a/assets/blocks/payload/payload-propulsion-tower-cap.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-propulsion-tower-left.png b/assets/blocks/payload/payload-propulsion-tower-left.png
deleted file mode 100644
index f37fbba..0000000
--- a/assets/blocks/payload/payload-propulsion-tower-left.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-propulsion-tower-right.png b/assets/blocks/payload/payload-propulsion-tower-right.png
deleted file mode 100644
index 4993e09..0000000
--- a/assets/blocks/payload/payload-propulsion-tower-right.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-propulsion-tower-top.png b/assets/blocks/payload/payload-propulsion-tower-top.png
deleted file mode 100644
index 91f3e09..0000000
--- a/assets/blocks/payload/payload-propulsion-tower-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-propulsion-tower.png b/assets/blocks/payload/payload-propulsion-tower.png
deleted file mode 100644
index 23a7fa1..0000000
--- a/assets/blocks/payload/payload-propulsion-tower.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-router-top.png b/assets/blocks/payload/payload-router-top.png
deleted file mode 100644
index 9656dbf..0000000
--- a/assets/blocks/payload/payload-router-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/payload-router.png b/assets/blocks/payload/payload-router.png
index 7638e68..43e4c68 100644
--- a/assets/blocks/payload/payload-router.png
+++ b/assets/blocks/payload/payload-router.png
Binary files differ
diff --git a/assets/blocks/payload/reinforced-payload-conveyor-edge.png b/assets/blocks/payload/reinforced-payload-conveyor-edge.png
deleted file mode 100644
index 503c0b7..0000000
--- a/assets/blocks/payload/reinforced-payload-conveyor-edge.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/reinforced-payload-conveyor-top.png b/assets/blocks/payload/reinforced-payload-conveyor-top.png
deleted file mode 100644
index e55ad62..0000000
--- a/assets/blocks/payload/reinforced-payload-conveyor-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/reinforced-payload-conveyor.png b/assets/blocks/payload/reinforced-payload-conveyor.png
index 05770c6..ee67544 100644
--- a/assets/blocks/payload/reinforced-payload-conveyor.png
+++ b/assets/blocks/payload/reinforced-payload-conveyor.png
Binary files differ
diff --git a/assets/blocks/payload/reinforced-payload-router-top.png b/assets/blocks/payload/reinforced-payload-router-top.png
deleted file mode 100644
index 88ca3c3..0000000
--- a/assets/blocks/payload/reinforced-payload-router-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/payload/reinforced-payload-router.png b/assets/blocks/payload/reinforced-payload-router.png
index 7574f32..4d426a9 100644
--- a/assets/blocks/payload/reinforced-payload-router.png
+++ b/assets/blocks/payload/reinforced-payload-router.png
Binary files differ
diff --git a/assets/blocks/power/flux-reactor.png b/assets/blocks/power/flux-reactor.png
index 5dd24a8..5cbbb43 100644
--- a/assets/blocks/power/flux-reactor.png
+++ b/assets/blocks/power/flux-reactor.png
Binary files differ
diff --git a/assets/blocks/power/impact-reactor.png b/assets/blocks/power/impact-reactor.png
index 600a31d..1f3d2dd 100644
--- a/assets/blocks/power/impact-reactor.png
+++ b/assets/blocks/power/impact-reactor.png
Binary files differ
diff --git a/assets/blocks/power/neoplasia-reactor-top1.png b/assets/blocks/power/neoplasia-reactor-top.png
index b2b5833..b2b5833 100644
--- a/assets/blocks/power/neoplasia-reactor-top1.png
+++ b/assets/blocks/power/neoplasia-reactor-top.png
Binary files differ
diff --git a/assets/blocks/power/neoplasia-reactor-top2.png b/assets/blocks/power/neoplasia-reactor-top2.png
deleted file mode 100644
index 393b0f6..0000000
--- a/assets/blocks/power/neoplasia-reactor-top2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/power/neoplasia-reactor.png b/assets/blocks/power/neoplasia-reactor.png
index adda5d2..3376dec 100644
--- a/assets/blocks/power/neoplasia-reactor.png
+++ b/assets/blocks/power/neoplasia-reactor.png
Binary files differ
diff --git a/assets/blocks/power/pyrolysis-generator-mid.png b/assets/blocks/power/pyrolysis-generator-mid.png
deleted file mode 100644
index c422c98..0000000
--- a/assets/blocks/power/pyrolysis-generator-mid.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/power/pyrolysis-generator.png b/assets/blocks/power/pyrolysis-generator.png
index 9e71290..5f6556d 100644
--- a/assets/blocks/power/pyrolysis-generator.png
+++ b/assets/blocks/power/pyrolysis-generator.png
Binary files differ
diff --git a/assets/blocks/production/atmospheric-concentrator.png b/assets/blocks/production/atmospheric-concentrator.png
index 5fb8aea..f535fde 100644
--- a/assets/blocks/production/atmospheric-concentrator.png
+++ b/assets/blocks/production/atmospheric-concentrator.png
Binary files differ
diff --git a/assets/blocks/production/carbide-crucible.png b/assets/blocks/production/carbide-crucible.png
index 2f43872..309d70f 100644
--- a/assets/blocks/production/carbide-crucible.png
+++ b/assets/blocks/production/carbide-crucible.png
Binary files differ
diff --git a/assets/blocks/production/cryofluid-mixer.png b/assets/blocks/production/cryofluid-mixer.png
index 4dfe3f9..e9e4ecb 100644
--- a/assets/blocks/production/cryofluid-mixer.png
+++ b/assets/blocks/production/cryofluid-mixer.png
Binary files differ
diff --git a/assets/blocks/production/cultivator-bottom.png b/assets/blocks/production/cultivator-bottom.png
deleted file mode 100644
index 6e5ed2c..0000000
--- a/assets/blocks/production/cultivator-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/cultivator-middle.png b/assets/blocks/production/cultivator-middle.png
deleted file mode 100644
index 3ac4095..0000000
--- a/assets/blocks/production/cultivator-middle.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/cultivator-top.png b/assets/blocks/production/cultivator-top.png
deleted file mode 100644
index 24e29ab..0000000
--- a/assets/blocks/production/cultivator-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/cultivator.png b/assets/blocks/production/cultivator.png
index 8e2a943..5d7e152 100644
--- a/assets/blocks/production/cultivator.png
+++ b/assets/blocks/production/cultivator.png
Binary files differ
diff --git a/assets/blocks/production/cyanogen-synthesizer.png b/assets/blocks/production/cyanogen-synthesizer.png
index 1c810ee..b67f16f 100644
--- a/assets/blocks/production/cyanogen-synthesizer.png
+++ b/assets/blocks/production/cyanogen-synthesizer.png
Binary files differ
diff --git a/assets/blocks/production/disassembler-spinner.png b/assets/blocks/production/disassembler-spinner.png
deleted file mode 100644
index 2031837..0000000
--- a/assets/blocks/production/disassembler-spinner.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/disassembler.png b/assets/blocks/production/disassembler.png
index 602a90e..9860ac0 100644
--- a/assets/blocks/production/disassembler.png
+++ b/assets/blocks/production/disassembler.png
Binary files differ
diff --git a/assets/blocks/production/electrolyzer.png b/assets/blocks/production/electrolyzer.png
index 3d80664..c8d66e4 100644
--- a/assets/blocks/production/electrolyzer.png
+++ b/assets/blocks/production/electrolyzer.png
Binary files differ
diff --git a/assets/blocks/production/heat-reactor-top1.png b/assets/blocks/production/heat-reactor-top1.png
deleted file mode 100644
index c3c7c7b..0000000
--- a/assets/blocks/production/heat-reactor-top1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/heat-reactor-top2.png b/assets/blocks/production/heat-reactor-top2.png
deleted file mode 100644
index 686dad4..0000000
--- a/assets/blocks/production/heat-reactor-top2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/heat-reactor.png b/assets/blocks/production/heat-reactor.png
deleted file mode 100644
index f4b5ecf..0000000
--- a/assets/blocks/production/heat-reactor.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/melter.png b/assets/blocks/production/melter.png
index b2bff52..97b0278 100644
--- a/assets/blocks/production/melter.png
+++ b/assets/blocks/production/melter.png
Binary files differ
diff --git a/assets/blocks/production/oxidation-chamber-bottom.png b/assets/blocks/production/oxidation-chamber-bottom.png
deleted file mode 100644
index afe57ec..0000000
--- a/assets/blocks/production/oxidation-chamber-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/oxidation-chamber.png b/assets/blocks/production/oxidation-chamber.png
index 72b0d04..55ce729 100644
--- a/assets/blocks/production/oxidation-chamber.png
+++ b/assets/blocks/production/oxidation-chamber.png
Binary files differ
diff --git a/assets/blocks/production/phase-heater-side2.png b/assets/blocks/production/phase-heater-side2.png
deleted file mode 100644
index da117df..0000000
--- a/assets/blocks/production/phase-heater-side2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/phase-synthesizer-bottom.png b/assets/blocks/production/phase-synthesizer-bottom.png
deleted file mode 100644
index 6ef444d..0000000
--- a/assets/blocks/production/phase-synthesizer-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/phase-synthesizer-vents.png b/assets/blocks/production/phase-synthesizer-vents.png
deleted file mode 100644
index 0b7d740..0000000
--- a/assets/blocks/production/phase-synthesizer-vents.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/phase-synthesizer.png b/assets/blocks/production/phase-synthesizer.png
index 7f56294..8081f6d 100644
--- a/assets/blocks/production/phase-synthesizer.png
+++ b/assets/blocks/production/phase-synthesizer.png
Binary files differ
diff --git a/assets/blocks/production/phase-weaver-bottom.png b/assets/blocks/production/phase-weaver-bottom.png
deleted file mode 100644
index 6e5ed2c..0000000
--- a/assets/blocks/production/phase-weaver-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/phase-weaver.png b/assets/blocks/production/phase-weaver.png
index 9796f0b..576fa32 100644
--- a/assets/blocks/production/phase-weaver.png
+++ b/assets/blocks/production/phase-weaver.png
Binary files differ
diff --git a/assets/blocks/production/pulverizer-rotator.png b/assets/blocks/production/pulverizer-rotator.png
deleted file mode 100644
index 302b152..0000000
--- a/assets/blocks/production/pulverizer-rotator.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/pulverizer-top.png b/assets/blocks/production/pulverizer-top.png
deleted file mode 100644
index b027b84..0000000
--- a/assets/blocks/production/pulverizer-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/pulverizer.png b/assets/blocks/production/pulverizer.png
index 380776f..0d5d93a 100644
--- a/assets/blocks/production/pulverizer.png
+++ b/assets/blocks/production/pulverizer.png
Binary files differ
diff --git a/assets/blocks/production/separator-bottom.png b/assets/blocks/production/separator-bottom.png
deleted file mode 100644
index 46f2081..0000000
--- a/assets/blocks/production/separator-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/separator-spinner.png b/assets/blocks/production/separator-spinner.png
deleted file mode 100644
index 2d4be0b..0000000
--- a/assets/blocks/production/separator-spinner.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/separator.png b/assets/blocks/production/separator.png
index 04e2606..7c72cc3 100644
--- a/assets/blocks/production/separator.png
+++ b/assets/blocks/production/separator.png
Binary files differ
diff --git a/assets/blocks/production/silicon-arc-furnace-bottom.png b/assets/blocks/production/silicon-arc-furnace-bottom.png
deleted file mode 100644
index 4b8ee9c..0000000
--- a/assets/blocks/production/silicon-arc-furnace-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/silicon-arc-furnace.png b/assets/blocks/production/silicon-arc-furnace.png
index c8a7a8d..6d4f0b5 100644
--- a/assets/blocks/production/silicon-arc-furnace.png
+++ b/assets/blocks/production/silicon-arc-furnace.png
Binary files differ
diff --git a/assets/blocks/production/slag-centrifuge-bottom.png b/assets/blocks/production/slag-centrifuge-bottom.png
deleted file mode 100644
index 6ef444d..0000000
--- a/assets/blocks/production/slag-centrifuge-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/slag-centrifuge-liquid.png b/assets/blocks/production/slag-centrifuge-liquid.png
deleted file mode 100644
index eabd853..0000000
--- a/assets/blocks/production/slag-centrifuge-liquid.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/slag-centrifuge.png b/assets/blocks/production/slag-centrifuge.png
deleted file mode 100644
index 84bc93d..0000000
--- a/assets/blocks/production/slag-centrifuge.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/slag-heater-top1.png b/assets/blocks/production/slag-heater-top1.png
index 48c7284..72ab2df 100644
--- a/assets/blocks/production/slag-heater-top1.png
+++ b/assets/blocks/production/slag-heater-top1.png
Binary files differ
diff --git a/assets/blocks/production/slag-heater-top2.png b/assets/blocks/production/slag-heater-top2.png
index eab3a0a..4d21c9e 100644
--- a/assets/blocks/production/slag-heater-top2.png
+++ b/assets/blocks/production/slag-heater-top2.png
Binary files differ
diff --git a/assets/blocks/production/slag-heater.png b/assets/blocks/production/slag-heater.png
index 7525c8c..4709577 100644
--- a/assets/blocks/production/slag-heater.png
+++ b/assets/blocks/production/slag-heater.png
Binary files differ
diff --git a/assets/blocks/production/slag-incinerator-top.png b/assets/blocks/production/slag-incinerator-top.png
deleted file mode 100644
index ee6d442..0000000
--- a/assets/blocks/production/slag-incinerator-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/slag-incinerator.png b/assets/blocks/production/slag-incinerator.png
index 3d38503..8cb0be7 100644
--- a/assets/blocks/production/slag-incinerator.png
+++ b/assets/blocks/production/slag-incinerator.png
Binary files differ
diff --git a/assets/blocks/production/spore-press-bottom.png b/assets/blocks/production/spore-press-bottom.png
deleted file mode 100644
index 46f2081..0000000
--- a/assets/blocks/production/spore-press-bottom.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/spore-press-liquid.png b/assets/blocks/production/spore-press-liquid.png
deleted file mode 100644
index c1e6314..0000000
--- a/assets/blocks/production/spore-press-liquid.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/spore-press-piston0.png b/assets/blocks/production/spore-press-piston0.png
deleted file mode 100644
index 2de697c..0000000
--- a/assets/blocks/production/spore-press-piston0.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/spore-press-piston1.png b/assets/blocks/production/spore-press-piston1.png
deleted file mode 100644
index a26bd23..0000000
--- a/assets/blocks/production/spore-press-piston1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/spore-press-top.png b/assets/blocks/production/spore-press-top.png
deleted file mode 100644
index 86cc8ce..0000000
--- a/assets/blocks/production/spore-press-top.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/production/spore-press.png b/assets/blocks/production/spore-press.png
index 57fd663..6d9271c 100644
--- a/assets/blocks/production/spore-press.png
+++ b/assets/blocks/production/spore-press.png
Binary files differ
diff --git a/assets/blocks/production/surge-crucible.png b/assets/blocks/production/surge-crucible.png
index 035dd4a..33af200 100644
--- a/assets/blocks/production/surge-crucible.png
+++ b/assets/blocks/production/surge-crucible.png
Binary files differ
diff --git a/assets/blocks/storage/container.png b/assets/blocks/storage/container.png
index dd6808c..ff346df 100644
--- a/assets/blocks/storage/container.png
+++ b/assets/blocks/storage/container.png
Binary files differ
diff --git a/assets/blocks/storage/core-acropolis-thruster1.png b/assets/blocks/storage/core-acropolis-thruster1.png
deleted file mode 100644
index 15cad32..0000000
--- a/assets/blocks/storage/core-acropolis-thruster1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-acropolis-thruster2.png b/assets/blocks/storage/core-acropolis-thruster2.png
deleted file mode 100644
index 86c2eba..0000000
--- a/assets/blocks/storage/core-acropolis-thruster2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-acropolis.png b/assets/blocks/storage/core-acropolis.png
index 713f9e2..5ad4e3e 100644
--- a/assets/blocks/storage/core-acropolis.png
+++ b/assets/blocks/storage/core-acropolis.png
Binary files differ
diff --git a/assets/blocks/storage/core-bastion-thruster1.png b/assets/blocks/storage/core-bastion-thruster1.png
deleted file mode 100644
index 9abdf0f..0000000
--- a/assets/blocks/storage/core-bastion-thruster1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-bastion-thruster2.png b/assets/blocks/storage/core-bastion-thruster2.png
deleted file mode 100644
index 70dd3ad..0000000
--- a/assets/blocks/storage/core-bastion-thruster2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-bastion.png b/assets/blocks/storage/core-bastion.png
index c9e19e0..0e8f6e5 100644
--- a/assets/blocks/storage/core-bastion.png
+++ b/assets/blocks/storage/core-bastion.png
Binary files differ
diff --git a/assets/blocks/storage/core-citadel-thruster1.png b/assets/blocks/storage/core-citadel-thruster1.png
deleted file mode 100644
index 3628b60..0000000
--- a/assets/blocks/storage/core-citadel-thruster1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-citadel-thruster2.png b/assets/blocks/storage/core-citadel-thruster2.png
deleted file mode 100644
index bb11314..0000000
--- a/assets/blocks/storage/core-citadel-thruster2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-citadel.png b/assets/blocks/storage/core-citadel.png
index ac15b17..9451f70 100644
--- a/assets/blocks/storage/core-citadel.png
+++ b/assets/blocks/storage/core-citadel.png
Binary files differ
diff --git a/assets/blocks/storage/core-foundation-thruster1.png b/assets/blocks/storage/core-foundation-thruster1.png
deleted file mode 100644
index e4c4ced..0000000
--- a/assets/blocks/storage/core-foundation-thruster1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-foundation-thruster2.png b/assets/blocks/storage/core-foundation-thruster2.png
deleted file mode 100644
index 6bf956b..0000000
--- a/assets/blocks/storage/core-foundation-thruster2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-foundation.png b/assets/blocks/storage/core-foundation.png
index 378938a..8c02e4f 100644
--- a/assets/blocks/storage/core-foundation.png
+++ b/assets/blocks/storage/core-foundation.png
Binary files differ
diff --git a/assets/blocks/storage/core-nucleus-thruster1.png b/assets/blocks/storage/core-nucleus-thruster1.png
deleted file mode 100644
index 8e729f7..0000000
--- a/assets/blocks/storage/core-nucleus-thruster1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-nucleus-thruster2.png b/assets/blocks/storage/core-nucleus-thruster2.png
deleted file mode 100644
index c51fe38..0000000
--- a/assets/blocks/storage/core-nucleus-thruster2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-nucleus.png b/assets/blocks/storage/core-nucleus.png
index 265ed4e..59394e4 100644
--- a/assets/blocks/storage/core-nucleus.png
+++ b/assets/blocks/storage/core-nucleus.png
Binary files differ
diff --git a/assets/blocks/storage/core-shard-thruster1.png b/assets/blocks/storage/core-shard-thruster1.png
deleted file mode 100644
index a945f77..0000000
--- a/assets/blocks/storage/core-shard-thruster1.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-shard-thruster2.png b/assets/blocks/storage/core-shard-thruster2.png
deleted file mode 100644
index 5a0be4b..0000000
--- a/assets/blocks/storage/core-shard-thruster2.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/storage/core-shard.png b/assets/blocks/storage/core-shard.png
index 4fbd5ff..f6ce140 100644
--- a/assets/blocks/storage/core-shard.png
+++ b/assets/blocks/storage/core-shard.png
Binary files differ
diff --git a/assets/blocks/storage/reinforced-container.png b/assets/blocks/storage/reinforced-container.png
index 553a4b1..2c52768 100644
--- a/assets/blocks/storage/reinforced-container.png
+++ b/assets/blocks/storage/reinforced-container.png
Binary files differ
diff --git a/assets/blocks/storage/reinforced-vault.png b/assets/blocks/storage/reinforced-vault.png
index ae233a1..82afb8c 100644
--- a/assets/blocks/storage/reinforced-vault.png
+++ b/assets/blocks/storage/reinforced-vault.png
Binary files differ
diff --git a/assets/blocks/storage/vault.png b/assets/blocks/storage/vault.png
index 1c86b89..43eda41 100644
--- a/assets/blocks/storage/vault.png
+++ b/assets/blocks/storage/vault.png
Binary files differ
diff --git a/assets/blocks/units/basic-assembler-module-side.png b/assets/blocks/units/basic-assembler-module-side.png
deleted file mode 100644
index a621bee..0000000
--- a/assets/blocks/units/basic-assembler-module-side.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/units/basic-assembler-module-side1.png b/assets/blocks/units/basic-assembler-module-side1.png
new file mode 100644
index 0000000..2bc2f85
--- /dev/null
+++ b/assets/blocks/units/basic-assembler-module-side1.png
Binary files differ
diff --git a/assets/blocks/units/basic-assembler-module-side2.png b/assets/blocks/units/basic-assembler-module-side2.png
new file mode 100644
index 0000000..6ac7279
--- /dev/null
+++ b/assets/blocks/units/basic-assembler-module-side2.png
Binary files differ
diff --git a/assets/blocks/units/mech-assembler-side.png b/assets/blocks/units/mech-assembler-side.png
deleted file mode 100644
index 128573a..0000000
--- a/assets/blocks/units/mech-assembler-side.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/units/mech-assembler-side1.png b/assets/blocks/units/mech-assembler-side1.png
new file mode 100644
index 0000000..bfa591c
--- /dev/null
+++ b/assets/blocks/units/mech-assembler-side1.png
Binary files differ
diff --git a/assets/blocks/units/mech-assembler-side2.png b/assets/blocks/units/mech-assembler-side2.png
new file mode 100644
index 0000000..9cd4cde
--- /dev/null
+++ b/assets/blocks/units/mech-assembler-side2.png
Binary files differ
diff --git a/assets/blocks/units/ship-assembler-side.png b/assets/blocks/units/ship-assembler-side.png
deleted file mode 100644
index f865e4d..0000000
--- a/assets/blocks/units/ship-assembler-side.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/units/ship-assembler-side1.png b/assets/blocks/units/ship-assembler-side1.png
new file mode 100644
index 0000000..ec57520
--- /dev/null
+++ b/assets/blocks/units/ship-assembler-side1.png
Binary files differ
diff --git a/assets/blocks/units/ship-assembler-side2.png b/assets/blocks/units/ship-assembler-side2.png
new file mode 100644
index 0000000..5bac81c
--- /dev/null
+++ b/assets/blocks/units/ship-assembler-side2.png
Binary files differ
diff --git a/assets/blocks/units/tank-assembler-side.png b/assets/blocks/units/tank-assembler-side.png
deleted file mode 100644
index ee7fee9..0000000
--- a/assets/blocks/units/tank-assembler-side.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/units/tank-assembler-side1.png b/assets/blocks/units/tank-assembler-side1.png
new file mode 100644
index 0000000..6ea0859
--- /dev/null
+++ b/assets/blocks/units/tank-assembler-side1.png
Binary files differ
diff --git a/assets/blocks/units/tank-assembler-side2.png b/assets/blocks/units/tank-assembler-side2.png
new file mode 100644
index 0000000..c549831
--- /dev/null
+++ b/assets/blocks/units/tank-assembler-side2.png
Binary files differ
diff --git a/assets/blocks/walls/scrap-wall-large.png b/assets/blocks/walls/scrap-wall-large.png
new file mode 100644
index 0000000..5785da4
--- /dev/null
+++ b/assets/blocks/walls/scrap-wall-large.png
Binary files differ
diff --git a/build.rs b/build.rs
index 0f28ac0..6f5b184 100644
--- a/build.rs
+++ b/build.rs
@@ -33,6 +33,10 @@ fn main() {
let path = e.path();
if path.is_file() && let Some(e) = path.extension() && e == "png" {
let p = DynamicImage::from_decoder(PngDecoder::new(BufReader::new(File::open(path).unwrap())).unwrap()).unwrap().into_rgba8();
+ let f = path.to_str().unwrap();
+ if f.contains("-bottom.png") || f.contains("-liquid.png") || f.contains("-team") {
+ continue;
+ }
let path = path.with_extension("");
let path = path.file_name().unwrap().to_str().unwrap();
macro_rules! writ {
diff --git a/src/block/defense.rs b/src/block/defense.rs
index e77863c..38a003f 100644
--- a/src/block/defense.rs
+++ b/src/block/defense.rs
@@ -13,9 +13,10 @@ make_register! {
"shock-mine" => DefenseBlock::new(1, true, cost!(Lead: 25, Silicon: 12));
"radar" => DefenseBlock::new(1, true, cost!(Silicon: 60, Graphite: 50, Beryllium: 10));
"build-tower" => DefenseBlock::new(3, true, cost!(Silicon: 150, Oxide: 40, Thorium: 60));
+ "shockwave-tower" => DefenseBlock::new(3, true, cost!(SurgeAlloy: 50, Silicon: 150, Oxide: 30, Tungsten: 100));
// barrier projector
// editor only
- "shockwave-tower" => DefenseBlock::new(3, true, cost!(SurgeAlloy: 50, Silicon: 150, Oxide: 30, Tungsten: 100));
+ "barrier-projector" => DefenseBlock::new(3, true, &[]);
"shield-projector" => DefenseBlock::new(3, true, &[]);
"large-shield-projector" => DefenseBlock::new(4, true, &[]);
}
@@ -25,4 +26,4 @@ make_register! {
/// - phase heat: [`f32`]
fn read_heated(buff: &mut DataRead) -> Result<(), DataReadError> {
buff.skip(8)
-} \ No newline at end of file
+}
diff --git a/src/block/distribution.rs b/src/block/distribution.rs
index aaa9528..c69a503 100644
--- a/src/block/distribution.rs
+++ b/src/block/distribution.rs
@@ -70,7 +70,6 @@ fn draw_stack(
let gimme = |n: u8| load(&format!("{name}-{n}"), s);
let empty = ctx.cross[rot.count() as usize].map_or(true, |(v, _)| v.name != name);
// mindustry says fuck this and just draws the arrow convs in schems but im better than that
-
if rot.mirrored(true, true).mask() == mask && empty && name != "surge-conveyor" {
// end
let mut base = gimme(2);
@@ -113,6 +112,14 @@ make_simple!(
true
);
make_simple!(ControlBlock);
+make_simple!(
+ SurgeRouter
+ / |s| {
+ let mut base = load("surge-router", s);
+ base.overlay(&load("top", s));
+ base
+ }
+);
// format: id: [`i32`]
make_simple!(UnitCargoLoader => |_, _, _, buff: &mut DataRead| buff.skip(4));
@@ -139,7 +146,7 @@ make_register! {
"duct-bridge" => BridgeBlock::new(1, true, cost!(Beryllium: 20), 3, true);
"duct-unloader" => ItemBlock::new(1, true, cost!(Graphite: 20, Silicon: 20, Tungsten: 10));
"surge-conveyor" => StackConveyor::new(1, false, cost!(SurgeAlloy: 1, Tungsten: 1));
- "surge-router" => ControlBlock::new(1, false, cost!(SurgeAlloy: 5, Tungsten: 1)); // not symmetric
+ "surge-router" => SurgeRouter::new(1, false, cost!(SurgeAlloy: 5, Tungsten: 1)); // not symmetric
"unit-cargo-loader" => UnitCargoLoader::new(3, true, cost!(Silicon: 80, SurgeAlloy: 50, Oxide: 20));
"unit-cargo-unload-point" => ItemBlock::new(2, true, cost!(Silicon: 60, Tungsten: 60));
// sandbox only
@@ -433,23 +440,36 @@ impl BlockLogic for BridgeBlock {
/// (buffered brige)
/// - become [`read_item_buffer`]
/// (mass driver) (9b)
- /// - link: `i32`
- /// - rotation: `f32`
- /// - state: `i8`
+ /// - link: [`i32`]
+ /// - rotation: [`f32`]
+ /// - state: [`i8`]
+ /// (payload mass driver) (19b)
+ /// - call [`read_payload_block`](crate::block::payload::read_payload_block)
+ /// - link: [`i32`]
+ /// - rotation: [`f32`]
+ /// - state: [`i8`]
+ /// - reload: [`f32`]
+ /// - charge: [`f32`]
+ /// - loaded: [`bool`]
+ /// - charging: [`bool`]
fn read(
&self,
t: &mut Build,
- _: &super::BlockRegistry,
- _: &crate::data::map::EntityMapping,
+ r: &super::BlockRegistry,
+ e: &crate::data::map::EntityMapping,
buff: &mut crate::data::DataRead,
) -> Result<(), crate::data::ReadError> {
match t.block.name() {
"bridge-conveyor" => read_buffered_item_bridge(buff)?,
"phase-conveyor" | "phase-conduit" | "bridge-conduit" => read_item_bridge(buff)?,
"mass-driver" => buff.skip(9)?,
+ "payload-mass-driver" | "large-payload-mass-driver" => {
+ crate::block::payload::read_payload_block(r, e, buff)?;
+ buff.skip(19)?;
+ }
// no state?
"duct-bridge" | "reinforced-bridge-conduit" => {}
- _ => unreachable!(), // surely no forget
+ n => unreachable!("{n}"), // surely no forget
}
Ok(())
}
@@ -459,10 +479,31 @@ impl BlockLogic for BridgeBlock {
name: &str,
_: Option<&State>,
_: Option<&RenderingContext>,
- _: Rotation,
+ r: Rotation,
s: Scale,
) -> ImageHolder {
- read(name, self.size, s)
+ match name {
+ "mass-driver" => {
+ let mut base = load("mass-driver-base", s);
+ base.overlay(&load("mass-driver", s));
+ base
+ }
+ "duct-bridge" | "reinforced-bridge-conduit" => {
+ let mut base = load(name, s);
+ let mut arrow = load(
+ match name {
+ "duct-bridge" => "duct-bridge-dir",
+ _ => "reinforced-bridge-conduit-dir",
+ },
+ s,
+ );
+ arrow.rotate(r.rotated(false).count());
+ base.overlay(&arrow);
+ base
+ }
+ // "bridge-conveyor" | "phase-conveyor" | "bridge-conduit" | "phase-conduit" | "payload-mass-driver" | "large-payload-mass-driver"
+ _ => load(name, s),
+ }
}
}
diff --git a/src/block/drills.rs b/src/block/drills.rs
index 8bd6960..a06c1e4 100644
--- a/src/block/drills.rs
+++ b/src/block/drills.rs
@@ -6,7 +6,7 @@ use crate::block::*;
make_simple!(
DrillBlock,
|_, name, _, _, rot: Rotation, s| {
- if matches!(name, "large-plasma-bore" | "plasma-bore") {
+ if matches!(name, "large-plasma-bore" | "plasma-bore" | "cliff-crusher") {
let mut base = load(name, s);
let mut top = load(&format!("{name}-top"), s);
top.rotate(rot.rotated(false).count());
@@ -18,13 +18,6 @@ make_simple!(
|_, _, _, buff: &mut DataRead| read_drill(buff)
);
make_simple!(ExtractorBlock);
-make_simple!(WallCrafter, |_, _, _, _, rot: Rotation, s| {
- let mut base = load("cliff-crusher", s);
- let mut top = load("cliff-crusher-top", s);
- top.rotate(rot.rotated(false).count());
- base.overlay(&top);
- base
-});
make_register! {
"mechanical-drill" => DrillBlock::new(2, true, cost!(Copper: 12));
@@ -34,7 +27,7 @@ make_register! {
"water-extractor" => ExtractorBlock::new(2, true, cost!(Copper: 30, Lead: 30, Metaglass: 30, Graphite: 30));
"oil-extractor" => ExtractorBlock::new(3, true, cost!(Copper: 150, Lead: 115, Graphite: 175, Thorium: 115, Silicon: 75));
"vent-condenser" => ProductionBlock::new(3, true, cost!(Graphite: 20, Beryllium: 60));
- "cliff-crusher" => WallCrafter::new(2, false, cost!(Beryllium: 100, Graphite: 40));
+ "cliff-crusher" => DrillBlock::new(2, false, cost!(Beryllium: 100, Graphite: 40));
"plasma-bore" => DrillBlock::new(2, false, cost!(Beryllium: 40));
"large-plasma-bore" => DrillBlock::new(3, false, cost!(Silicon: 100, Oxide: 25, Beryllium: 100, Tungsten: 70));
"impact-drill" => DrillBlock::new(4, true, cost!(Silicon: 70, Beryllium: 90, Graphite: 60));
diff --git a/src/block/liquid.rs b/src/block/liquid.rs
index 4bb8106..de2917b 100644
--- a/src/block/liquid.rs
+++ b/src/block/liquid.rs
@@ -18,12 +18,8 @@ make_simple!(
let mask = mask(ctx, rot, name);
let (index, rot, flip) = mask2rotations(mask, rot);
let tile = rotations2tile((index, rot, flip), &format!("{name}-top"), s);
- let mut bottom = load(&format!("conduit-bottom-{index}"), s);
- flrot(flip, rot, &mut bottom);
- bottom.tint(image::Rgb([74, 75, 83]));
- bottom.overlay(tile.borrow());
// TODO caps. stopped trying bcz too complex
- bottom
+ tile
},
true
);
diff --git a/src/block/logic.rs b/src/block/logic.rs
index 0b5afd4..afaa947 100644
--- a/src/block/logic.rs
+++ b/src/block/logic.rs
@@ -241,7 +241,7 @@ impl BlockLogic for MessageLogic {
_: Rotation,
s: Scale,
) -> ImageHolder {
- read(name, self.size, s)
+ load(name, s)
}
fn deserialize_state(&self, data: DynData) -> Result<Option<State>, DeserializeError> {
@@ -416,7 +416,7 @@ impl BlockLogic for ProcessorLogic {
_: Rotation,
s: Scale,
) -> ImageHolder {
- read(name, self.size, s)
+ load(name, s)
}
fn data_from_i32(&self, _: i32, _: GridPos) -> Result<DynData, DataConvertError> {
diff --git a/src/block/payload.rs b/src/block/payload.rs
index c9961a1..e20aae9 100644
--- a/src/block/payload.rs
+++ b/src/block/payload.rs
@@ -12,15 +12,62 @@ use crate::unit;
use super::BlockRegistry;
-make_simple!(SimplePayloadBlock);
-make_simple!(PayloadConveyor => read_payload_conveyor);
+make_simple!(SimplePayloadBlock, |_, n, _, _, r: Rotation, scl| {
+ match n {
+ "deconstructor" | "small-deconstructor" | "payload-void" => {
+ let mut base = load(n, scl);
+ let mut r#in = load(
+ match n {
+ "small-deconstructor" => "factory-in-3",
+ _ => "factory-in-5",
+ },
+ scl,
+ );
+ base.overlay(r#in.rotate(r.rotated(false).count()))
+ .overlay(&load(
+ match n {
+ "small-deconstructor" => "small-deconstructor-top",
+ "deconstructor" => "deconstructor-top",
+ _ => "payload-void-top",
+ },
+ scl,
+ ));
+ base
+ }
+ // "payload-loader" | "payload-unloader"
+ _ => {
+ let mut base = load(n, scl);
+ let mut input = load("factory-in-3-dark", scl);
+ let mut output = load("factory-out-3-dark", scl);
+ base.overlay(input.rotate(r.rotated(false).count()))
+ .overlay(output.rotate(r.rotated(false).count()))
+ .overlay(&load(
+ match n {
+ "payload-loader" => "payload-loader-top",
+ _ => "payload-unloader-top",
+ },
+ scl,
+ ));
+ base
+ }
+ }
+});
+make_simple!(
+ PayloadConveyor,
+ |_, n, _, _, r: Rotation, s| {
+ let mut base = load(n, s);
+ base.rotate(r.rotated(false).count());
+ base
+ },
+ read_payload_conveyor
+);
// make_simple!(PayloadRouter => read_payload_router);
make_register! {
"payload-conveyor" => PayloadConveyor::new(3, false, cost!(Copper: 10, Graphite: 10));
"payload-router" => PayloadBlock::new(3, false, cost!(Copper: 10, Graphite: 15));
"reinforced-payload-conveyor" => PayloadConveyor::new(3, false, cost!(Tungsten: 10));
- "reinforced-payload-router" => SimplePayloadBlock::new(3, false, cost!(Tungsten: 15));
+ "reinforced-payload-router" => PayloadBlock::new(3, false, cost!(Tungsten: 15));
"payload-mass-driver" => BridgeBlock::new(3, true, cost!(Tungsten: 120, Silicon: 120, Graphite: 50), 700, false);
"large-payload-mass-driver" => BridgeBlock::new(5, true, cost!(Thorium: 200, Tungsten: 200, Silicon: 200, Graphite: 100, Oxide: 30), 1100, false);
"small-deconstructor" => SimplePayloadBlock::new(3, true, cost!(Beryllium: 100, Silicon: 100, Oxide: 40, Graphite: 80));
@@ -71,10 +118,49 @@ impl BlockLogic for PayloadBlock {
name: &str,
_: Option<&State>,
_: Option<&RenderingContext>,
- _: Rotation,
+ r: Rotation,
s: Scale,
) -> ImageHolder {
- read(name, self.size, s)
+ match name {
+ "payload-router" | "reinforced-payload-router" => {
+ let mut base = load(name, s);
+ base.rotate(r.rotated(false).count());
+ let over = load(
+ match name {
+ "payload-router" => "payload-router-over",
+ _ => "reinforced-payload-router-over",
+ },
+ s,
+ );
+ base.overlay(&over);
+ base
+ }
+ // "constructor" | "large-constructor" | "payload-source"
+ _ => {
+ let mut base = load(name, s);
+ let mut out = load(
+ match name {
+ "constructor" => "factory-out-3",
+ "large-constructor" => "factory-out-5-dark",
+ _ => "factory-out-5",
+ },
+ s,
+ );
+ out.rotate(r.rotated(false).count());
+ base.overlay(&out);
+
+ base.overlay(&load(
+ match name {
+ "constructor" => "constructor-top",
+ "large-constructor" => "large-constructor-top",
+ _ => "payload-source-top",
+ },
+ s,
+ ));
+
+ base
+ }
+ }
}
fn data_from_i32(&self, _: i32, _: GridPos) -> Result<DynData, DataConvertError> {
diff --git a/src/block/power.rs b/src/block/power.rs
index 2ef86f5..1d853e8 100644
--- a/src/block/power.rs
+++ b/src/block/power.rs
@@ -8,14 +8,22 @@ use crate::data::dynamic::DynType;
make_simple!(GeneratorBlock => |_, _, _, buff: &mut DataRead| read_generator(buff));
make_simple!(NuclearGeneratorBlock => |_, _, _, buff: &mut DataRead| read_nuclear(buff));
make_simple!(ImpactReactorBlock => |_, _, _, buff: &mut DataRead| read_impact(buff));
-make_simple!(HeaterGeneratorBlock => |_, _, _, buff: &mut DataRead| read_heater(buff));
+make_simple!(
+ Neoplasia,
+ |_, _, _, _, rot: Rotation, scl| {
+ let mut base = load("neoplasia-reactor", scl);
+ base.overlay(load("neoplasia-reactor-top", scl).rotate(rot.rotated(false).count()));
+ base
+ },
+ |_, _, _, buff: &mut DataRead| read_heater(buff)
+);
make_simple!(BatteryBlock);
make_simple!(DiodeBlock, |_, _, _, _, rot: Rotation, s| {
- let mut base = load("diode",s);
+ let mut base = load("diode", s);
if rot == Rotation::Right {
return base;
}
- let mut top = load("diode-arrow",s);
+ let mut top = load("diode-arrow", s);
top.rotate(rot.rotated(false).count());
base.overlay(&top);
base
@@ -46,7 +54,7 @@ make_register! {
"chemical-combustion-chamber" => GeneratorBlock::new(3, true, cost!(Graphite: 40, Tungsten: 40, Oxide: 40, Silicon: 30));
"pyrolysis-generator" => GeneratorBlock::new(3, true, cost!(Graphite: 50, Carbide: 50, Oxide: 60, Silicon: 50));
"flux-reactor" => GeneratorBlock::new(5, true, cost!(Graphite: 300, Carbide: 200, Oxide: 100, Silicon: 600, SurgeAlloy: 300));
- "neoplasia-reactor" => HeaterGeneratorBlock::new(5, true, cost!(Tungsten: 1000, Carbide: 300, Oxide: 150, Silicon: 500, PhaseFabric: 300, SurgeAlloy: 200));
+ "neoplasia-reactor" => Neoplasia::new(5, true, cost!(Tungsten: 1000, Carbide: 300, Oxide: 150, Silicon: 500, PhaseFabric: 300, SurgeAlloy: 200));
// editor only
"beam-link" => ConnectorBlock::new(3, true, &[], 12);
// sandbox only
@@ -138,7 +146,7 @@ impl BlockLogic for ConnectorBlock {
_: Rotation,
s: Scale,
) -> ImageHolder {
- read(name, self.size, s)
+ load(name, s)
}
}
@@ -225,7 +233,7 @@ impl BlockLogic for LampBlock {
_: Rotation,
s: Scale,
) -> ImageHolder {
- read(name, self.size, s)
+ load(name, s)
}
fn clone_state(&self, state: &State) -> State {
diff --git a/src/block/production.rs b/src/block/production.rs
index 5796ca9..af4c547 100644
--- a/src/block/production.rs
+++ b/src/block/production.rs
@@ -1,6 +1,6 @@
//! the industry part of mindustry
-use crate::block::make_register;
use crate::block::simple::{cost, make_simple};
+use crate::block::*;
use crate::data::DataRead;
make_register! {
@@ -55,7 +55,37 @@ make_simple!(
);
make_simple!(
- HeatCrafter =>
+ HeatCrafter,
+ |_, n, _, _, r: Rotation, s| {
+ match n {
+ // TODO i didnt realize the significance of two tops before and kinda deleted them, add them back
+ "phase-heater" | "electric-heater" | "oxidation-chamber" | "slag-heater" => {
+ let mut base = load(n, s);
+ base.overlay(
+ load(
+ match r {
+ Rotation::Up | Rotation::Right => match n {
+ "phase-heater" => "phase-heater-top1",
+ "oxidation-chamber" => "oxidation-chamber-top1",
+ "slag-heater" => "slag-heater-top1",
+ _ => "electric-heater-top1",
+ },
+ _ => match n {
+ "phase-heater" => "phase-heater-top2",
+ "oxidation-chamber" => "oxidation-chamber-top2",
+ "slag-heater" => "slag-heater-top2",
+ _ => "electric-heater-top2",
+ },
+ },
+ s,
+ )
+ .rotate(r.rotated(false).count()),
+ );
+ base
+ }
+ _ => load(n, s),
+ }
+ },
|_, _, _, buff: &mut DataRead| {
// format:
// - progress: `f32`
diff --git a/src/block/simple.rs b/src/block/simple.rs
index 20a9f22..f3053ee 100644
--- a/src/block/simple.rs
+++ b/src/block/simple.rs
@@ -124,18 +124,28 @@ macro_rules! make_simple {
($name: ident => $read: expr) => {
crate::block::simple::make_simple!(
$name,
- |m: &Self, n, _, _, _, s| crate::data::renderer::read(n, m.get_size(), s),
+ |_, n, _, _, _, s| crate::data::renderer::load(n, s),
$read
);
};
($name: ident) => {
crate::block::simple::make_simple!(
$name,
- |m: &Self, n, _, _, _, s| crate::data::renderer::read(n, m.get_size(), s),
+ |_, n, _, _, _, s| crate::data::renderer::load(n, s),
|_, _, _, _| Ok(()),
false
);
};
+ ($name: ident => $draw: expr, $read: expr) => {
+ crate::block::simple::make_simple!($name, |_, _, _, _, _, scl| $draw(scl), $read);
+ };
+ ($name: ident / $draw: expr) => {
+ crate::block::simple::make_simple!(
+ $name,
+ |_, _, _, _, _, scl| $draw(scl),
+ |_, _, _, _| Ok(())
+ );
+ };
}
pub(crate) use make_simple;
diff --git a/src/block/units.rs b/src/block/units.rs
index 536446a..fa31095 100644
--- a/src/block/units.rs
+++ b/src/block/units.rs
@@ -41,32 +41,33 @@ make_simple!(ConstructorBlock, |me: &Self,
s| {
let mut base = load(name, s);
let times = rot.rotated(false).count();
+ if !name.contains("assembler") {
+ let mut out = load(
+ &match name {
+ "additive-reconstructor"
+ | "multiplicative-reconstructor"
+ | "exponential-reconstructor"
+ | "tetrative-reconstructor" => format!("factory-out-{}", me.size),
+ _ => format!("factory-out-{}-dark", me.size),
+ },
+ s,
+ );
+ out.rotate(times);
+ base.overlay(&out);
- let mut out = load(
- &match name {
- "additive-reconstructor"
- | "multiplicative-reconstructor"
- | "exponential-reconstructor"
- | "tetrative-reconstructor" => format!("factory-out-{}", me.size),
- _ => format!("factory-out-{}-dark", me.size),
- },
- s,
- );
- out.rotate(times);
- base.overlay(&out);
-
- let mut input = load(
- &match name {
- "additive-reconstructor"
- | "multiplicative-reconstructor"
- | "exponential-reconstructor"
- | "tetrative-reconstructor" => format!("factory-in-{}", me.size),
- _ => format!("factory-in-{}-dark", me.size),
- },
- s,
- );
- input.rotate(times);
- base.overlay(&input);
+ let mut input = load(
+ &match name {
+ "additive-reconstructor"
+ | "multiplicative-reconstructor"
+ | "exponential-reconstructor"
+ | "tetrative-reconstructor" => format!("factory-in-{}", me.size),
+ _ => format!("factory-in-{}-dark", me.size),
+ },
+ s,
+ );
+ input.rotate(times);
+ base.overlay(&input);
+ }
// TODO: the context cross is too small
// for i in 0..4u8 {
@@ -90,16 +91,53 @@ make_simple!(ConstructorBlock, |me: &Self,
base.overlay(&load(&format!("{name}-top"), s));
if matches!(name, "mech-assembler" | "tank-assembler" | "ship-assembler") {
- let mut side = load(&format!("{name}-side"), s);
- side.rotate(times);
- base.overlay(&side);
+ base.overlay(
+ load(
+ match rot {
+ Rotation::Up | Rotation::Right => match name {
+ "mech-assembler" => "mech-assembler-side1",
+ "tank-assembler" => "tank-assembler-side1",
+ _ => "ship-assembler-side1",
+ },
+ _ => match name {
+ "mech-assembler" => "mech-assembler-side2",
+ "tank-assembler" => "tank-assembler-side2",
+ _ => "ship-assembler-side2",
+ },
+ },
+ s,
+ )
+ .rotate(times),
+ );
}
base
});
-make_simple!(UnitBlock);
-make_simple!(RepairTurret => |_, _, _, buff: &mut DataRead| {
- buff.skip(4) // rotation: [`f32`]
+make_simple!(UnitRepairTower);
+make_simple!(AssemblerModule, |_, _, _, _, rot: Rotation, scl| {
+ let mut base = load("basic-assembler-module", scl);
+ base.overlay(
+ load(
+ match rot {
+ Rotation::Up | Rotation::Right => "basic-assembler-module-side1",
+ _ => "basic-assembler-module-side2",
+ },
+ scl,
+ )
+ .rotate(rot.rotated(false).count()),
+ );
+ base
});
+make_simple!(
+ RepairTurret => |scl| {
+ let mut bot = load("block-2", scl);
+ let top = load("repair-turret", scl);
+ bot.overlay(&top);
+ bot
+ },
+ |_, _, _, buff: &mut DataRead| {
+ buff.skip(4) // rotation: [`f32`]
+ }
+);
const GROUND_UNITS: &[unit::Type] = &[unit::Type::Dagger, unit::Type::Crawler, unit::Type::Nova];
const AIR_UNITS: &[unit::Type] = &[unit::Type::Flare, unit::Type::Mono];
@@ -127,8 +165,8 @@ make_register! {
"tank-assembler" => ConstructorBlock::new(5, true, cost!(Thorium: 500, Oxide: 150, Carbide: 80, Silicon: 500));
"ship-assembler" => ConstructorBlock::new(5, true, cost!(Carbide: 100, Oxide: 200, Tungsten: 500, Silicon: 800, Thorium: 400));
"mech-assembler" => ConstructorBlock::new(5, true, cost!(Carbide: 200, Thorium: 600, Oxide: 200, Tungsten: 500, Silicon: 900)); // smh collaris
- "basic-assembler-module" => UnitBlock::new(5, true, cost!(Carbide: 300, Thorium: 500, Oxide: 200, PhaseFabric: 400)); // the dummy block
- "unit-repair-tower" => UnitBlock::new(2, true, cost!(Graphite: 90, Silicon: 90, Tungsten: 80));
+ "basic-assembler-module" => AssemblerModule::new(5, true, cost!(Carbide: 300, Thorium: 500, Oxide: 200, PhaseFabric: 400)); // the dummy block
+ "unit-repair-tower" => UnitRepairTower::new(2, true, cost!(Graphite: 90, Silicon: 90, Tungsten: 80));
}
diff --git a/src/block/walls.rs b/src/block/walls.rs
index 93eebe7..900232f 100644
--- a/src/block/walls.rs
+++ b/src/block/walls.rs
@@ -2,13 +2,14 @@
use crate::block::simple::*;
use crate::block::*;
use crate::data::dynamic::DynType;
-use crate::data::renderer::{load, read_with};
+use crate::data::renderer::load;
make_simple!(WallBlock, |_, name, _, _, _, s| {
match name {
"thruster" => {
- const SFX: &[&str; 1] = &["-top"];
- read_with("thruster", SFX, 4u32, s)
+ let mut base = load("thruster", s);
+ base.overlay(&load("thruster-top", s));
+ base
}
_ => load(name, s),
}
@@ -73,12 +74,27 @@ impl BlockLogic for DoorBlock {
fn draw(
&self,
name: &str,
- _: Option<&State>,
+ state: Option<&State>,
_: Option<&RenderingContext>,
_: Rotation,
s: Scale,
) -> ImageHolder {
- read(name, self.size, s)
+ if let Some(state) = state {
+ return if *Self::get_state(state) {
+ // TODO check
+ load(
+ match name {
+ "door" => "door-open",
+ "blast-door" => "blast-door-open",
+ _ => "door-large-open",
+ },
+ s,
+ )
+ } else {
+ load(name, s)
+ };
+ }
+ load(name, s)
}
fn data_from_i32(&self, _: i32, _: GridPos) -> Result<DynData, DataConvertError> {
@@ -100,12 +116,19 @@ impl BlockLogic for DoorBlock {
Box::new(Self::create_state(*state))
}
- fn mirror_state(&self, _: &mut State, _: bool, _: bool) {}
-
- fn rotate_state(&self, _: &mut State, _: bool) {}
-
fn serialize_state(&self, state: &State) -> Result<DynData, SerializeError> {
let state = Self::get_state(state);
Ok(DynData::Boolean(*state))
}
+
+ fn read(
+ &self,
+ build: &mut Build,
+ _: &BlockRegistry,
+ _: &EntityMapping,
+ buff: &mut DataRead,
+ ) -> Result<(), DataReadError> {
+ build.state = Some(Self::create_state(buff.read_bool()?));
+ Ok(())
+ }
}
diff --git a/src/data/renderer.rs b/src/data/renderer.rs
index b103deb..2ae8ac8 100644
--- a/src/data/renderer.rs
+++ b/src/data/renderer.rs
@@ -2,7 +2,6 @@
pub(crate) use super::autotile::*;
use crate::block::environment::METAL_FLOOR;
use crate::block::Rotation;
-use crate::team::SHARDED;
pub(crate) use crate::utils::{ImageUtils, Overlay, Repeat};
use crate::Map;
pub(crate) use image::{
@@ -45,12 +44,13 @@ impl ImageHolder {
}
}
- pub fn rotate(&mut self, times: u8) {
+ pub fn rotate(&mut self, times: u8) -> &mut Self {
if times == 0 {
- return;
+ return self;
}
let p: &mut RgbaImage = self.borrow_mut();
p.rotate(times);
+ self
}
}
@@ -134,47 +134,12 @@ pub(crate) fn try_load(name: &str, scale: Scale) -> Option<&'static RgbaImage> {
}
}
+#[track_caller]
pub(crate) fn load(name: &str, scale: Scale) -> ImageHolder {
- ImageHolder::from(
- try_load(name, scale)
- .ok_or_else(|| format!("failed to load {name}"))
- .unwrap(),
- )
-}
-
-const SUFFIXES: &[&str; 9] = &[
- "-bottom", "-mid", "-base", "", "-left", "-right", "-top", "-over", "-team",
-];
-pub(crate) fn read<S>(name: &str, size: S, scale: Scale) -> ImageHolder
-where
- S: Into<u32> + Copy,
-{
- read_with(name, SUFFIXES, size, scale)
-}
-
-pub(crate) fn read_with<S>(
- name: &str,
- suffixes: &'static [&'static str],
- size: S,
- scale: Scale,
-) -> ImageHolder
-where
- S: Into<u32> + Copy,
-{
- let mut c = RgbaImage::new(
- size.into() * scale.px() as u32,
- size.into() * scale.px() as u32,
- );
- for suffix in suffixes {
- if let Some(p) = try_load(&format!("{name}{suffix}"), scale) {
- if suffix == &"-team" {
- c.overlay(p.clone().tint(SHARDED.color()));
- continue;
- }
- c.overlay(p);
- }
- }
- ImageHolder::from(c)
+ let Some(i) = try_load(name, scale) else {
+ panic!("failed to load {name}")
+ };
+ ImageHolder::from(i)
}
/// trait for renderable objects
@@ -337,8 +302,8 @@ fn all_blocks() {
{
continue;
}
-
- let t = reg.get(t.get_name()).unwrap();
+ let name = t.get_name();
+ let t = reg.get(name).unwrap();
t.image(
None,
Some(&RenderingContext {