diff --git a/.gitignore b/.gitignore index 1a50ef27f2..543197c2f8 100644 --- a/.gitignore +++ b/.gitignore @@ -79,9 +79,11 @@ com_crashlytics_export_strings.xml /android/bin/ /core/bin/ /desktop/bin/ -/html/bin/ /ios/bin/ -/ios-moe/bin/ +/annotations/bin/ +/server/bin/ +/tests/bin/ +/tools/bin/ *.tmp *.bak *.swp diff --git a/.travis.yml b/.travis.yml index ef04618dc9..f31a2d36f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ jdk: -- openjdk8 +- openjdk14 dist: xenial android: components: diff --git a/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java b/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java index 2a7f7034e1..eca5d84387 100644 --- a/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java +++ b/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java @@ -71,22 +71,17 @@ public class LogicStatementProcessor extends BaseProcessor{ writer.addStatement("out.append(\" \")"); writer.addStatement("out.append((($T)obj).$L$L)", c.mirror(), field.name(), - field.mirror().toString().equals("java.lang.String") ? - ".replace(\"\\n\", \"\\\\n\")" : - Seq.with(typeu.directSupertypes(field.mirror())).contains(t -> t.toString().contains("java.lang.Enum")) ? ".name()" : - ""); + Seq.with(typeu.directSupertypes(field.mirror())).contains(t -> t.toString().contains("java.lang.Enum")) ? ".name()" : + ""); //reading primitives, strings and enums is supported; nothing else is - reader.addStatement("if(tokens.length > $L) result.$L = $L(tokens[$L])$L", + reader.addStatement("if(tokens.length > $L) result.$L = $L(tokens[$L])", index + 1, field.name(), field.mirror().toString().equals("java.lang.String") ? "" : (field.tname().isPrimitive() ? field.tname().box().toString() : field.mirror().toString()) + ".valueOf", //if it's not a string, it must have a valueOf method - index + 1, - field.mirror().toString().equals("java.lang.String") ? - ".replace(\"\\\\n\", \"\\n\")" : - "" + index + 1 ); index ++; diff --git a/annotations/src/main/resources/revisions/Fire/1.json b/annotations/src/main/resources/revisions/Fire/1.json new file mode 100644 index 0000000000..b410469512 --- /dev/null +++ b/annotations/src/main/resources/revisions/Fire/1.json @@ -0,0 +1 @@ +{version:1,fields:[{name:lifetime,type:float,size:4},{name:tile,type:mindustry.world.Tile,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/WeatherState/2.json b/annotations/src/main/resources/revisions/WeatherState/2.json new file mode 100644 index 0000000000..d085d4d22f --- /dev/null +++ b/annotations/src/main/resources/revisions/WeatherState/2.json @@ -0,0 +1 @@ +{version:2,fields:[{name:effectTimer,type:float,size:4},{name:intensity,type:float,size:4},{name:life,type:float,size:4},{name:opacity,type:float,size:4},{name:weather,type:mindustry.type.Weather,size:-1},{name:windVector,type:arc.math.geom.Vec2,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 86f06caef2..20e2b7f0dd 100644 --- a/build.gradle +++ b/build.gradle @@ -187,6 +187,10 @@ configure(subprojects - project(":annotations")){ options.compilerArgs.addAll(['--release', '8']) } } + + tasks.withType(Javadoc){ + options.addStringOption('Xdoclint:none', '-quiet') + } } project(":desktop"){ diff --git a/core/assets-raw/sprites/blocks/defense/overdrive-dome.png b/core/assets-raw/sprites/blocks/defense/overdrive-dome.png index 61515689d0..6bf8371b21 100644 Binary files a/core/assets-raw/sprites/blocks/defense/overdrive-dome.png and b/core/assets-raw/sprites/blocks/defense/overdrive-dome.png differ diff --git a/core/assets-raw/sprites/blocks/distribution/mass-conveyor-edge.png b/core/assets-raw/sprites/blocks/distribution/payload-conveyor-edge.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/mass-conveyor-edge.png rename to core/assets-raw/sprites/blocks/distribution/payload-conveyor-edge.png diff --git a/core/assets-raw/sprites/blocks/distribution/mass-conveyor-icon.png b/core/assets-raw/sprites/blocks/distribution/payload-conveyor-icon.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/mass-conveyor-icon.png rename to core/assets-raw/sprites/blocks/distribution/payload-conveyor-icon.png diff --git a/core/assets-raw/sprites/blocks/distribution/mass-conveyor-top.png b/core/assets-raw/sprites/blocks/distribution/payload-conveyor-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/mass-conveyor-top.png rename to core/assets-raw/sprites/blocks/distribution/payload-conveyor-top.png diff --git a/core/assets-raw/sprites/blocks/distribution/mass-conveyor.png b/core/assets-raw/sprites/blocks/distribution/payload-conveyor.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/mass-conveyor.png rename to core/assets-raw/sprites/blocks/distribution/payload-conveyor.png diff --git a/core/assets-raw/sprites/blocks/logic/data-processor-top.png b/core/assets-raw/sprites/blocks/logic/data-processor-top.png deleted file mode 100644 index 2596221950..0000000000 Binary files a/core/assets-raw/sprites/blocks/logic/data-processor-top.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/logic/hyper-processor.png b/core/assets-raw/sprites/blocks/logic/hyper-processor.png new file mode 100644 index 0000000000..74dc55f3ea Binary files /dev/null and b/core/assets-raw/sprites/blocks/logic/hyper-processor.png differ diff --git a/core/assets-raw/sprites/blocks/logic/logic-processor-3.png b/core/assets-raw/sprites/blocks/logic/logic-processor-3.png deleted file mode 100644 index 92bbec2528..0000000000 Binary files a/core/assets-raw/sprites/blocks/logic/logic-processor-3.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/arkyid-cell.png b/core/assets-raw/sprites/units/arkyid-cell.png index 0806581f78..2cfccc7afb 100644 Binary files a/core/assets-raw/sprites/units/arkyid-cell.png and b/core/assets-raw/sprites/units/arkyid-cell.png differ diff --git a/core/assets-raw/sprites/units/arkyid-leg-base.png b/core/assets-raw/sprites/units/arkyid-leg-base.png index 5586043b4a..114665d7a1 100644 Binary files a/core/assets-raw/sprites/units/arkyid-leg-base.png and b/core/assets-raw/sprites/units/arkyid-leg-base.png differ diff --git a/core/assets-raw/sprites/units/arkyid.png b/core/assets-raw/sprites/units/arkyid.png index 78c84e44c6..184ea910ae 100644 Binary files a/core/assets-raw/sprites/units/arkyid.png and b/core/assets-raw/sprites/units/arkyid.png differ diff --git a/core/assets-raw/sprites/units/weapons/antumbra-missiles.png b/core/assets-raw/sprites/units/weapons/antumbra-missiles.png deleted file mode 100644 index a37cbfa449..0000000000 Binary files a/core/assets-raw/sprites/units/weapons/antumbra-missiles.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/weapons/large-purple-mount.png b/core/assets-raw/sprites/units/weapons/large-purple-mount.png new file mode 100644 index 0000000000..4940a5b049 Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/large-purple-mount.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index a9b2287157..361782102c 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -137,6 +137,8 @@ mod.scripts.disable = Your device does not support mods with scripts. You must d about.button = About name = Name: noname = Pick a[accent] player name[] first. +planetmap = Planet Map +launchcore = Launch Core filename = File Name: unlocked = New content unlocked! completed = [accent]Completed @@ -171,7 +173,7 @@ host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \n join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] or [accent]global[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]If you want to connect to someone by IP, you would need to ask the host for their IP, which can be found by googling "my ip" from their device. hostserver = Host Multiplayer Game invitefriends = Invite Friends -hostserver.mobile = Host\nGame +hostserver.mobile = Host Game host = Host hosting = [accent]Opening server... hosts.refresh = Refresh @@ -576,6 +578,8 @@ blocks.shootrange = Range blocks.size = Size blocks.liquidcapacity = Liquid Capacity blocks.powerrange = Power Range +blocks.linkrange = Link Range +blocks.instructions = Instructions blocks.powerconnections = Max Connections blocks.poweruse = Power Use blocks.powerdamage = Power/Damage @@ -728,6 +732,7 @@ category.blocks.name = Block Select command.attack = Attack command.rally = Rally command.retreat = Retreat +command.idle = Idle placement.blockselectkeys = \n[lightgray]Key: [{0}, keybind.respawn.name = Respawn keybind.control.name = Control Unit @@ -740,6 +745,7 @@ keybind.toggle_block_status.name = Toggle Block Statuses keybind.move_x.name = Move X keybind.move_y.name = Move Y keybind.mouse_move.name = Follow Mouse +keybind.pan.name = Pan View keybind.boost.name = Boost keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu @@ -1076,6 +1082,7 @@ block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad block.segment.name = Segment +block.command-center.name = Command Center block.ground-factory.name = Ground Factory block.air-factory.name = Air Factory block.naval-factory.name = Naval Factory @@ -1083,7 +1090,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Payload Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible @@ -1092,6 +1099,7 @@ block.overdrive-dome.name = Overdrive Dome block.switch.name = Switch block.micro-processor.name = Micro Processor block.logic-processor.name = Logic Processor +block.hyper-processor.name = Hyper Processor block.logic-display.name = Logic Display block.memory-cell.name = Memory Cell diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 7e64018c45..906aa492cd 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index d2bcda5623..18d6b667e3 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Přídavný přestavbovač block.multiplicative-reconstructor.name = Násobný přestavbovač block.exponential-reconstructor.name = Exponenciální přestavbovač block.tetrative-reconstructor.name = Umocňující přestavbovač -block.mass-conveyor.name = Hromadný dopravník +block.payload-conveyor.name = Hromadný dopravník block.payload-router.name = Směřovač nákladu block.disassembler.name = Rozebírač block.silicon-crucible.name = Křemíková nádoba diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index cf07fd28fa..f448bcafaf 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 2e09d13cee..881ffe40be 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 7d20286d0f..9fad522899 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 8dc981c19c..ea08f62c6d 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 2c5d3b7c4b..1c115f90ad 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 985cea08a4..93cf3feaaf 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 4f6e36f3ae..a07e8ebf76 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1076,7 +1076,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index fb20242768..cd79e0ab9c 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Reconstructeur Additif block.multiplicative-reconstructor.name = Reconstructeur Multiplicatif block.exponential-reconstructor.name = Reconstructeur Exponentiel block.tetrative-reconstructor.name = Reconstructeur Tétratif -block.mass-conveyor.name = Convoyeur de Masse +block.payload-conveyor.name = Convoyeur de Masse block.payload-router.name = Routeur de Charge Utile block.disassembler.name = Disassembler block.silicon-crucible.name = Creuset de Silicium diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties index 15147ed9c4..aeff0d5cb8 100644 --- a/core/assets/bundles/bundle_fr_BE.properties +++ b/core/assets/bundles/bundle_fr_BE.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 9311c27ac7..6c8e0bd47d 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index f0c67a2302..5868526b85 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 81781a53f3..93e2de29d2 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 65a34244fc..933ae1992a 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 70540d24ec..cedeaaf039 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = 첨가물 재구성기 block.multiplicative-reconstructor.name = 다중 재구성기 block.exponential-reconstructor.name = 지수 재구성기 block.tetrative-reconstructor.name = 정서 재구성기 -block.mass-conveyor.name = 매스 컨베이어 +block.payload-conveyor.name = 매스 컨베이어 block.payload-router.name = 화물 분배기 block.disassembler.name = 분해기 block.silicon-crucible.name = 실리콘 도가니 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 338a12c5dd..8316b54c06 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index a55f78e081..88fba3f8f5 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 4afde54148..e643b1d553 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index d4c14e22f5..a8d15895b9 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1063,7 +1063,7 @@ block.additive-reconstructor.name = Rekonstruktor Addytywny block.multiplicative-reconstructor.name = Rekonstruktor Multiplikatywny block.exponential-reconstructor.name = Rekonstruktor Wykładniczy block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Przenośnik Masowy +block.payload-conveyor.name = Przenośnik Masowy block.payload-router.name = Rozdzielacz Ładunku block.disassembler.name = Dezasembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 755622fa29..64d54a3d5d 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 6ddd177a4f..c665535ba8 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 5d679e6504..2fb9106b6d 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1079,7 +1079,7 @@ block.additive-reconstructor.name = Добавляющий реконструк block.multiplicative-reconstructor.name = Умножающий реконструктор block.exponential-reconstructor.name = Экспоненциальный реконструктор block.tetrative-reconstructor.name = Тетративный реконструктор -block.mass-conveyor.name = Грузовой конвейер +block.payload-conveyor.name = Грузовой конвейер block.payload-router.name = Разгрузочный маршрутизатор block.disassembler.name = Разборщик block.silicon-crucible.name = Кремниевый тигель diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 6a6ce9d221..bbe0f390c6 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 58b1a304c0..8fcf97cb03 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 03f22600bb..006ef4ae92 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 461f09b534..15788e2753 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index e819ae10cd..9c02b7b8b4 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Додавальний реконструк block.multiplicative-reconstructor.name = Примножувальний реконструктор block.exponential-reconstructor.name = Експоненційний реконструктор block.tetrative-reconstructor.name = Тетративний реконструктор -block.mass-conveyor.name = Вантажний конвеєр +block.payload-conveyor.name = Вантажний конвеєр block.payload-router.name = Розвантажувальний маршрутизатор block.disassembler.name = Розбирач block.silicon-crucible.name = Кремнієвий тигель diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 50d2e80615..13cf2709e2 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 23e2ab2467..ea90067971 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1062,7 +1062,7 @@ block.additive-reconstructor.name = Additive Reconstructor block.multiplicative-reconstructor.name = Multiplicative Reconstructor block.exponential-reconstructor.name = Exponential Reconstructor block.tetrative-reconstructor.name = Tetrative Reconstructor -block.mass-conveyor.name = Mass Conveyor +block.payload-conveyor.name = Mass Conveyor block.payload-router.name = Payload Router block.disassembler.name = Disassembler block.silicon-crucible.name = Silicon Crucible diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index e50ea372cd..278b00dc51 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -285,3 +285,5 @@ 63459=logic-display|block-logic-display-medium 63458=switch|block-switch-medium 63457=memory-cell|block-memory-cell-medium +63456=payload-conveyor|block-payload-conveyor-medium +63455=hyper-processor|block-hyper-processor-medium diff --git a/core/assets/maps/craters.msav b/core/assets/maps/craters.msav index c0bd73e09b..b879701ae6 100644 Binary files a/core/assets/maps/craters.msav and b/core/assets/maps/craters.msav differ diff --git a/core/assets/maps/desolateRift.msav b/core/assets/maps/desolateRift.msav index d140c9e5ba..ca3181301a 100644 Binary files a/core/assets/maps/desolateRift.msav and b/core/assets/maps/desolateRift.msav differ diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/frozenForest.msav index 21e75e565b..a2a1f52354 100644 Binary files a/core/assets/maps/frozenForest.msav and b/core/assets/maps/frozenForest.msav differ diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav index f5403ec8c3..2415d16ae4 100644 Binary files a/core/assets/maps/fungalPass.msav and b/core/assets/maps/fungalPass.msav differ diff --git a/core/assets/maps/nuclearComplex.msav b/core/assets/maps/nuclearComplex.msav index 4ce3e3484e..fe8b36e26a 100644 Binary files a/core/assets/maps/nuclearComplex.msav and b/core/assets/maps/nuclearComplex.msav differ diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/overgrowth.msav index 56dddd5bae..b65b8e4818 100644 Binary files a/core/assets/maps/overgrowth.msav and b/core/assets/maps/overgrowth.msav differ diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav index 9d8708c6f0..a0ef267a99 100644 Binary files a/core/assets/maps/ruinousShores.msav and b/core/assets/maps/ruinousShores.msav differ diff --git a/core/assets/maps/saltFlats.msav b/core/assets/maps/saltFlats.msav index d926b085c0..9a70ba342a 100644 Binary files a/core/assets/maps/saltFlats.msav and b/core/assets/maps/saltFlats.msav differ diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/stainedMountains.msav index 07d2d6ad81..c627b0917e 100644 Binary files a/core/assets/maps/stainedMountains.msav and b/core/assets/maps/stainedMountains.msav differ diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/tarFields.msav index e4a99d71bf..06eaed164d 100644 Binary files a/core/assets/maps/tarFields.msav and b/core/assets/maps/tarFields.msav differ diff --git a/core/assets/planets/colors.png b/core/assets/planets/colors.png deleted file mode 100644 index 5efd5d38e0..0000000000 Binary files a/core/assets/planets/colors.png and /dev/null differ diff --git a/core/assets/planets/serpulo.dat b/core/assets/planets/serpulo.dat index aa856cce4d..d31bf6c11c 100644 Binary files a/core/assets/planets/serpulo.dat and b/core/assets/planets/serpulo.dat differ diff --git a/core/assets/scripts/base.js b/core/assets/scripts/base.js index b6e377fa24..c6d7be846b 100755 --- a/core/assets/scripts/base.js +++ b/core/assets/scripts/base.js @@ -5,8 +5,9 @@ const log = function(context, obj){ } const readString = path => Vars.mods.getScripts().readString(path) - const readBytes = path => Vars.mods.getScripts().readBytes(path) +const loadMusic = path => Vars.mods.getScripts().loadMusic(path) +const loadSound = path => Vars.mods.getScripts().loadSound(path) var scriptName = "base.js" var modName = "none" diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js index 72162e3c6a..04ebb37a27 100755 --- a/core/assets/scripts/global.js +++ b/core/assets/scripts/global.js @@ -7,8 +7,9 @@ const log = function(context, obj){ } const readString = path => Vars.mods.getScripts().readString(path) - const readBytes = path => Vars.mods.getScripts().readBytes(path) +const loadMusic = path => Vars.mods.getScripts().loadMusic(path) +const loadSound = path => Vars.mods.getScripts().loadSound(path) var scriptName = "base.js" var modName = "none" @@ -40,6 +41,7 @@ importPackage(Packages.arc) importPackage(Packages.arc.func) importPackage(Packages.arc.graphics) importPackage(Packages.arc.graphics.g2d) +importPackage(Packages.arc.graphics.gl) importPackage(Packages.arc.math) importPackage(Packages.arc.math.geom) importPackage(Packages.arc.scene) @@ -128,8 +130,6 @@ const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent const DepositEvent = Packages.mindustry.game.EventType.DepositEvent const WithdrawEvent = Packages.mindustry.game.EventType.WithdrawEvent const SectorCaptureEvent = Packages.mindustry.game.EventType.SectorCaptureEvent -const ZoneConfigureCompleteEvent = Packages.mindustry.game.EventType.ZoneConfigureCompleteEvent -const ZoneRequireCompleteEvent = Packages.mindustry.game.EventType.ZoneRequireCompleteEvent const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index 95f6a24502..ea02d69e0d 100644 Binary files a/core/assets/sprites/block_colors.png and b/core/assets/sprites/block_colors.png differ diff --git a/core/assets/sprites/fallback/sprites.atlas b/core/assets/sprites/fallback/sprites.atlas index b5e6b174e4..0410a7e3fe 100644 --- a/core/assets/sprites/fallback/sprites.atlas +++ b/core/assets/sprites/fallback/sprites.atlas @@ -418,1337 +418,1078 @@ core-silo index: -1 launch-pad rotate: false - xy: 521, 209 + xy: 1239, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large rotate: false - xy: 1397, 1627 + xy: 1657, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 launch-pad-light rotate: false - xy: 521, 111 + xy: 1239, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launchpod rotate: false - xy: 1575, 1037 + xy: 809, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 force-projector rotate: false - xy: 1125, 811 + xy: 929, 711 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector-top rotate: false - xy: 1349, 1415 + xy: 1027, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 1569, 839 + xy: 941, 243 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 1635, 905 + xy: 1007, 309 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-dome rotate: false - xy: 619, 353 + xy: 1741, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-top rotate: false - xy: 619, 255 + xy: 1839, 1341 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 1701, 971 + xy: 941, 177 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 1635, 839 + xy: 1007, 243 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-loader rotate: false - xy: 1043, 1203 + xy: 749, 1121 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader rotate: false - xy: 647, 1137 + xy: 423, 195 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -bridge-arrow - rotate: false - xy: 767, 26 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor - rotate: false - xy: 1979, 217 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-bridge - rotate: false - xy: 1945, 149 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-end - rotate: false - xy: 1979, 183 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -center - rotate: false - xy: 1979, 149 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 armored-conveyor-0-0 rotate: false - xy: 2001, 1799 + xy: 229, 31 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 2001, 1799 + xy: 229, 31 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 2009, 1207 + xy: 929, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 1909, 497 + xy: 963, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 2009, 1173 + xy: 997, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 1909, 463 + xy: 1031, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 2009, 1139 + xy: 1065, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 1909, 429 + xy: 1411, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 2009, 1105 + xy: 1955, 281 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 2009, 1071 + xy: 1955, 247 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 2009, 1037 + xy: 2000, 547 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 2009, 1003 + xy: 2000, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 2009, 969 + xy: 2000, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 2009, 935 + xy: 2000, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 2009, 901 + xy: 2013, 979 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 2009, 867 + xy: 1913, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 2009, 833 + xy: 1905, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 2009, 799 + xy: 1905, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 579, 77 + xy: 1905, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 579, 43 + xy: 1955, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 1909, 395 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-1 - rotate: false - xy: 1819, 1175 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-2 - rotate: false - xy: 1819, 1141 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-3 - rotate: false - xy: 1853, 1209 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-0 - rotate: false - xy: 1853, 1175 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-1 - rotate: false - xy: 1853, 1141 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-2 - rotate: false - xy: 1819, 1107 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-3 - rotate: false - xy: 1853, 1107 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-0 - rotate: false - xy: 1838, 1073 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-1 - rotate: false - xy: 1838, 1039 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-2 - rotate: false - xy: 1872, 1073 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-3 - rotate: false - xy: 1872, 1039 + xy: 2000, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 1363, 674 + xy: 751, 393 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -mass-conveyor +mass-driver-base rotate: false - xy: 929, 713 + xy: 1027, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -mass-conveyor-edge +payload-conveyor rotate: false - xy: 1027, 713 + xy: 1937, 1341 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -mass-conveyor-top +payload-conveyor-edge rotate: false - xy: 1125, 713 + xy: 1839, 1243 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-conveyor-top + rotate: false + xy: 1937, 1243 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-top rotate: false - xy: 1125, 713 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-driver-base - rotate: false - xy: 733, 627 + xy: 1937, 1243 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router rotate: false - xy: 619, 157 + xy: 1643, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-edge rotate: false - xy: 729, 529 + xy: 1741, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-over rotate: false - xy: 827, 529 + xy: 1839, 1145 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-drill rotate: false - xy: 155, 65 + xy: 305, 1437 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 305, 1437 + xy: 305, 1307 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 305, 1307 + xy: 305, 1177 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 305, 1177 + xy: 305, 1047 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 1363, 476 + xy: 677, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 1363, 476 + xy: 677, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 1447, 1317 + xy: 1153, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rim rotate: false - xy: 1545, 1415 + xy: 929, 613 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 521, 307 + xy: 1027, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 1545, 1317 + xy: 1251, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 1503, 839 + xy: 949, 375 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 1569, 905 + xy: 1015, 375 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 1635, 971 + xy: 941, 309 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 oil-extractor rotate: false - xy: 1027, 615 + xy: 1337, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-liquid rotate: false - xy: 1125, 615 + xy: 1447, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-rotator rotate: false - xy: 631, 549 + xy: 1545, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-top rotate: false - xy: 619, 451 + xy: 1643, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 1429, 641 + xy: 1063, 45 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 1495, 707 + xy: 1073, 309 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 1429, 575 + xy: 1073, 243 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 1611, 179 + xy: 1881, 947 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 1677, 179 + xy: 1815, 815 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 1743, 377 + xy: 1881, 881 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 1743, 311 + xy: 1947, 947 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 1909, 225 + xy: 1915, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 1943, 251 + xy: 1949, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 2011, 421 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-liquid - rotate: false - xy: 2001, 81 + xy: 1761, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 place-arrow rotate: false - xy: 717, 431 + xy: 1937, 1145 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -bridge-conduit - rotate: false - xy: 1809, 1255 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-arrow - rotate: false - xy: 1843, 1243 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-arrow - rotate: false - xy: 1843, 1243 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-bridge - rotate: false - xy: 1945, 217 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-end - rotate: false - xy: 1945, 183 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom - rotate: false - xy: 2013, 149 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-0 - rotate: false - xy: 1967, 115 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-1 - rotate: false - xy: 1967, 81 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-2 - rotate: false - xy: 2001, 115 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-3 - rotate: false - xy: 2001, 115 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-4 - rotate: false - xy: 2001, 115 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-0 - rotate: false - xy: 1977, 47 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-1 - rotate: false - xy: 1977, 13 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-2 - rotate: false - xy: 2011, 47 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-3 - rotate: false - xy: 2011, 13 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-3 - rotate: false - xy: 2011, 13 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-4 - rotate: false - xy: 1819, 1209 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-tank-bottom rotate: false - xy: 533, 599 + xy: 537, 594 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-liquid rotate: false - xy: 1643, 1415 + xy: 635, 533 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-top rotate: false - xy: 1643, 1317 + xy: 733, 533 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 1627, 707 + xy: 1139, 150 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 1109, 419 + xy: 1321, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -data-processor-top +hyper-processor rotate: false - xy: 1039, 1105 + xy: 831, 631 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-display rotate: false - xy: 733, 725 + xy: 831, 533 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor rotate: false - xy: 1641, 1037 + xy: 743, 129 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -logic-processor-3 - rotate: false - xy: 831, 725 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 battery rotate: false - xy: 1909, 361 + xy: 1983, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large rotate: false - xy: 1153, 1301 + xy: 1867, 1439 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 435, 599 + xy: 663, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-top rotate: false - xy: 1909, 327 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -combustion-generator - rotate: false - xy: 2013, 217 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -combustion-generator-top - rotate: false - xy: 2013, 183 + xy: 1813, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator rotate: false - xy: 1137, 1105 + xy: 733, 827 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-liquid rotate: false - xy: 929, 1007 + xy: 831, 925 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-top rotate: false - xy: 929, 909 + xy: 733, 729 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 impact-reactor rotate: false - xy: 487, 1627 + xy: 747, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-bottom rotate: false - xy: 617, 1627 + xy: 877, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-light rotate: false - xy: 747, 1627 + xy: 1007, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-0 rotate: false - xy: 877, 1627 + xy: 1137, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-1 rotate: false - xy: 1007, 1627 + xy: 1267, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-2 rotate: false - xy: 1137, 1627 + xy: 1397, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-3 rotate: false - xy: 1267, 1627 + xy: 1527, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 1495, 641 + xy: 1073, 177 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 1495, 509 + xy: 1139, 84 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 solar-panel-large rotate: false - xy: 1011, 321 + xy: 1223, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 surge-tower rotate: false - xy: 1611, 377 + xy: 1683, 680 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 1677, 377 + xy: 1749, 944 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-reactor rotate: false - xy: 1109, 321 + xy: 1223, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-lights rotate: false - xy: 913, 223 + xy: 1321, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-top rotate: false - xy: 1011, 223 + xy: 1223, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 turbine-generator rotate: false - xy: 1677, 311 + xy: 1749, 746 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-cap rotate: false - xy: 1611, 245 + xy: 1749, 680 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-top rotate: false - xy: 1677, 245 + xy: 1749, 614 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-turbine0 rotate: false - xy: 1413, 179 + xy: 1749, 548 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-turbine1 rotate: false - xy: 1479, 179 + xy: 1815, 947 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 alloy-smelter rotate: false - xy: 957, 1301 + xy: 1671, 1415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 1055, 1301 + xy: 1769, 1439 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-mixer rotate: false - xy: 1521, 1169 + xy: 1333, 447 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-forge rotate: false - xy: 415, 11 + xy: 957, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 coal-centrifuge rotate: false - xy: 1295, 19 + xy: 1419, 739 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 1377, 1070 + xy: 1465, 421 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 1371, 1004 + xy: 1465, 355 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 1371, 938 + xy: 1531, 421 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 1371, 872 + xy: 1531, 355 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 1371, 806 + xy: 667, 15 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 1363, 740 + xy: 685, 393 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 disassembler rotate: false - xy: 1027, 1007 + xy: 831, 827 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-liquid rotate: false - xy: 1027, 909 + xy: 831, 729 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-spinner rotate: false - xy: 1125, 1007 + xy: 941, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 1347, 344 + xy: 677, 195 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln rotate: false - xy: 1347, 278 + xy: 743, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 1347, 212 + xy: 809, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 1347, 212 + xy: 809, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 multi-press rotate: false - xy: 831, 627 + xy: 1349, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 1437, 773 + xy: 1007, 111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 1503, 773 + xy: 733, 63 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 1569, 773 + xy: 799, 63 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 1635, 773 + xy: 865, 47 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 1701, 773 + xy: 931, 45 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 1429, 509 + xy: 1139, 348 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 1495, 443 + xy: 1617, 750 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1561, 443 + xy: 1551, 618 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 1627, 443 + xy: 1617, 684 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-crucible rotate: false - xy: 913, 321 + xy: 1223, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-crucible-top rotate: false - xy: 1011, 419 + xy: 1321, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 1693, 443 + xy: 1551, 552 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 1413, 377 + xy: 1617, 618 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 1479, 377 + xy: 1617, 552 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 1413, 311 + xy: 1683, 944 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 1545, 377 + xy: 1683, 878 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 1479, 311 + xy: 1683, 812 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 1413, 245 + xy: 1683, 746 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rock1 rotate: false - xy: 1959, 1179 + xy: 1663, 71 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rock2 rotate: false - xy: 1909, 1129 + xy: 1713, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock1 rotate: false - xy: 1909, 1029 + xy: 1713, 74 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock2 rotate: false - xy: 1959, 1029 + xy: 1763, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 1909, 653 + xy: 1345, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 1909, 611 + xy: 1345, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 1909, 569 + xy: 149, 23 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 container rotate: false - xy: 513, 43 + xy: 1419, 607 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation rotate: false - xy: 357, 1725 + xy: 617, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team rotate: false - xy: 487, 1757 + xy: 747, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -1769,147 +1510,147 @@ core-nucleus-team index: -1 core-shard rotate: false - xy: 635, 1039 + xy: 423, 97 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team rotate: false - xy: 635, 941 + xy: 549, 1084 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 vault rotate: false - xy: 717, 137 + xy: 1321, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 1809, 188 + xy: 2001, 1799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 1909, 293 + xy: 1847, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 1587, 1169 + xy: 1267, 381 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 423, 501 + xy: 761, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 305, 1047 + xy: 305, 917 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 hail-heat rotate: false - xy: 555, 1 + xy: 2007, 863 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 1509, 1037 + xy: 743, 195 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 meltdown-heat rotate: false - xy: 1657, 1627 + xy: 1917, 1667 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ripple-heat rotate: false - xy: 815, 431 + xy: 1125, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 1627, 641 + xy: 1195, 18 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 1693, 707 + xy: 1551, 948 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 1561, 509 + xy: 1551, 882 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 1743, 179 + xy: 1881, 815 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 additive-reconstructor rotate: false - xy: 957, 1399 + xy: 1377, 1399 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 additive-reconstructor-top rotate: false - xy: 1055, 1399 + xy: 1475, 1399 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 1153, 1399 + xy: 1573, 1415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 command-center rotate: false - xy: 1361, 19 + xy: 1419, 673 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 factory-in-3 rotate: false - xy: 1125, 909 + xy: 1039, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1923,7 +1664,7 @@ factory-in-5 index: -1 factory-out-3 rotate: false - xy: 929, 811 + xy: 1027, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1937,14 +1678,14 @@ factory-out-5 index: -1 factory-top-3 rotate: false - xy: 1027, 811 + xy: 1027, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 1447, 1415 + xy: 733, 631 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -1965,378 +1706,378 @@ multiplicative-reconstructor-top index: -1 naval-factory rotate: false - xy: 929, 615 + xy: 1337, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rally-point rotate: false - xy: 1495, 575 + xy: 1139, 282 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 resupply-point rotate: false - xy: 1561, 641 + xy: 1139, 216 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 1297, 711 + xy: 1419, 541 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large rotate: false - xy: 1363, 608 + xy: 817, 393 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 1363, 542 + xy: 677, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 1701, 839 + xy: 941, 111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 1429, 707 + xy: 997, 45 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-gigantic rotate: false - xy: 617, 1497 + xy: 877, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge2 rotate: false - xy: 1121, 517 + xy: 1223, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 913, 419 + xy: 1333, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 1693, 641 + xy: 1551, 816 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 1627, 509 + xy: 1617, 882 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 1693, 575 + xy: 1551, 750 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 1693, 509 + xy: 1617, 816 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 1545, 311 + xy: 1683, 614 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 1611, 311 + xy: 1749, 878 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster rotate: false - xy: 877, 1497 + xy: 1137, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 1545, 245 + xy: 1749, 812 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 1305, 779 + xy: 1829, 378 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 1613, 67 + xy: 1597, 317 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 circle-end rotate: false - xy: 549, 1296 + xy: 549, 1182 size: 100, 199 orig: 100, 199 offset: 0, 0 index: -1 error rotate: false - xy: 1817, 588 + xy: 1513, 255 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser-end rotate: false - xy: 1207, 407 + xy: 603, 229 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 1207, 333 + xy: 603, 155 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 missile rotate: false - xy: 1311, 1265 + xy: 2005, 783 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 1809, 1289 + xy: 891, 9 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 parallax-laser-end rotate: false - xy: 1207, 259 + xy: 603, 81 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 particle rotate: false - xy: 1959, 693 + xy: 1303, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 shell rotate: false - xy: 2009, 1241 + xy: 1373, 93 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 1909, 531 + xy: 191, 27 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 alpha-wreck0 rotate: false - xy: 1767, 71 + xy: 1265, 331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck1 rotate: false - xy: 1427, 13 + xy: 1315, 331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck2 rotate: false - xy: 1477, 13 + xy: 1365, 331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 arc rotate: false - xy: 1741, 1327 + xy: 107, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arkyid-wreck0 rotate: false - xy: 163, 455 + xy: 163, 325 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck1 rotate: false - xy: 163, 325 + xy: 163, 195 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck2 rotate: false - xy: 163, 195 + xy: 155, 65 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 atrax-wreck0 rotate: false - xy: 1085, 80 + xy: 1525, 1081 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck1 rotate: false - xy: 811, 26 + xy: 1431, 1015 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck2 rotate: false - xy: 901, 14 + xy: 1521, 1015 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 beta-wreck0 rotate: false - xy: 1727, 21 + xy: 1313, 281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck1 rotate: false - xy: 1777, 21 + xy: 1263, 181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck2 rotate: false - xy: 1817, 71 + xy: 1313, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-additive-reconstructor-full rotate: false - xy: 423, 403 + xy: 859, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-air-factory-full rotate: false - xy: 423, 305 + xy: 651, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-arc-full rotate: false - xy: 1909, 259 + xy: 1881, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-full rotate: false - xy: 305, 917 + xy: 305, 787 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-char-full rotate: false - xy: 613, 46 + xy: 1983, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 647, 46 + xy: 1881, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 681, 46 + xy: 1915, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 1199, 151 + xy: 1387, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 1199, 151 + xy: 1387, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-full rotate: false - xy: 305, 787 + xy: 305, 657 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2350,224 +2091,210 @@ block-core-nucleus-full index: -1 block-core-shard-full rotate: false - xy: 423, 207 + xy: 749, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 1233, 151 + xy: 1387, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 1653, 1169 + xy: 1333, 381 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 1163, 6 + xy: 1399, 447 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 423, 109 + xy: 847, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 1951, 659 + xy: 1421, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 1951, 625 + xy: 1421, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-full rotate: false - xy: 1951, 591 + xy: 1455, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 2009, 765 + xy: 1489, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-fuse-full rotate: false - xy: 651, 1235 + xy: 1055, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-grass-full rotate: false - xy: 2001, 731 + xy: 1455, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ground-factory-full rotate: false - xy: 749, 1215 + xy: 945, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 2001, 697 + xy: 1523, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 1951, 557 + xy: 1489, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 1947, 523 + xy: 1523, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 1943, 489 + xy: 1557, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 1943, 455 + xy: 1557, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 1943, 421 + xy: 1591, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 1943, 387 + xy: 1625, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-full rotate: false - xy: 305, 657 + xy: 293, 527 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 1719, 1169 + xy: 1399, 381 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-laser-drill-full rotate: false - xy: 847, 1215 + xy: 1043, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 1943, 353 + xy: 1939, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-full rotate: false - xy: 945, 1203 + xy: 651, 1121 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 1943, 319 + xy: 1939, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-conveyor-full - rotate: false - xy: 1141, 1203 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-icon - rotate: false - xy: 1141, 1203 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 block-mass-driver-full rotate: false - xy: 549, 1198 + xy: 847, 1121 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 1455, 1103 + xy: 1705, 1076 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 293, 527 + xy: 293, 397 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 1943, 285 + xy: 1939, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 1847, 1277 + xy: 1949, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2581,378 +2308,322 @@ block-multiplicative-reconstructor-full index: -1 block-naval-factory-full rotate: false - xy: 537, 1100 + xy: 945, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-oil-extractor-full rotate: false - xy: 537, 1002 + xy: 1043, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-ore-coal-full rotate: false - xy: 1785, 1201 + xy: 1663, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 1785, 1167 + xy: 1697, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 1785, 1133 + xy: 1989, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 597, 9 + xy: 1989, 275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 631, 12 + xy: 1989, 241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 665, 12 + xy: 1989, 207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-parallax-full rotate: false - xy: 1521, 1103 + xy: 1693, 1010 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +block-payload-conveyor-full + rotate: false + xy: 435, 587 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-conveyor-icon + rotate: false + xy: 435, 587 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-payload-router-full rotate: false - xy: 537, 904 + xy: 423, 489 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon rotate: false - xy: 537, 904 + xy: 423, 489 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 1985, 659 + xy: 1973, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 1587, 1103 + xy: 1771, 1087 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 1985, 625 + xy: 1973, 139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 1653, 1103 + xy: 1837, 1079 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 1985, 591 + xy: 1973, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 1985, 557 + xy: 2007, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 1981, 523 + xy: 2007, 139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ripple-full rotate: false - xy: 537, 806 + xy: 423, 391 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-rock-full rotate: false - xy: 1827, 21 + xy: 1363, 281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-full rotate: false - xy: 2015, 523 + xy: 2007, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 1977, 489 + xy: 1983, 71 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 1719, 1103 + xy: 1903, 1079 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 1977, 455 + xy: 1983, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 2011, 489 + xy: 1983, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 1977, 421 + xy: 1659, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 1229, 6 + xy: 1969, 1079 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 2011, 455 + xy: 1693, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 1977, 387 + xy: 1727, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 1977, 387 + xy: 1727, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-huge-full rotate: false - xy: 537, 708 + xy: 423, 293 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge1 rotate: false - xy: 537, 708 + xy: 423, 293 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 1281, 415 + xy: 1771, 1021 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 1281, 349 + xy: 1837, 1013 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 1977, 353 + xy: 1795, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 2011, 387 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shalerocks-full - rotate: false - xy: 1977, 319 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shrubs-full - rotate: false - xy: 2011, 353 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-full - rotate: false - xy: 1977, 285 + xy: 1829, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snowrock-full rotate: false - xy: 435, 1545 + xy: 1313, 181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-full - rotate: false - xy: 2011, 319 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-spectre-full rotate: false - xy: 293, 397 + xy: 293, 267 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 1759, 1235 + xy: 2007, 905 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-moss-full - rotate: false - xy: 1977, 251 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-spore-press-full rotate: false - xy: 1281, 283 + xy: 1903, 1013 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-sporerocks-full - rotate: false - xy: 2011, 285 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-stone-full - rotate: false - xy: 2011, 251 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-swarmer-full rotate: false - xy: 1281, 217 + xy: 1969, 1013 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-tendrils-full - rotate: false - xy: 699, 12 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titanium-conveyor-full - rotate: false - xy: 733, 26 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-0-0 - rotate: false - xy: 733, 26 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-turbine-generator-full rotate: false - xy: 1281, 151 + xy: 1419, 937 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 1249, 85 + xy: 1419, 871 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 1315, 85 + xy: 1419, 805 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2980,14 +2651,14 @@ bryde-wreck2 index: -1 core-foundation-team-crux rotate: false - xy: 617, 1757 + xy: 877, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team-sharded rotate: false - xy: 747, 1757 + xy: 1007, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -3008,182 +2679,182 @@ core-nucleus-team-sharded index: -1 core-shard-team-crux rotate: false - xy: 635, 843 + xy: 537, 986 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team-sharded rotate: false - xy: 635, 745 + xy: 537, 888 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 1297, 645 + xy: 1485, 949 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 1297, 579 + xy: 1485, 883 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 1297, 513 + xy: 1485, 817 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 1311, 1097 + xy: 1485, 751 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 1305, 1031 + xy: 1485, 685 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 1305, 965 + xy: 1485, 619 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 1305, 899 + xy: 1485, 553 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 1305, 833 + xy: 1485, 487 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-3-0 rotate: false - xy: 745, 1117 + xy: 537, 790 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-1 rotate: false - xy: 843, 1117 + xy: 537, 692 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-2 rotate: false - xy: 733, 1019 + xy: 647, 1023 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-3 rotate: false - xy: 733, 921 + xy: 745, 1023 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-4 rotate: false - xy: 831, 1019 + xy: 843, 1023 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-5 rotate: false - xy: 733, 823 + xy: 635, 925 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-6 rotate: false - xy: 831, 921 + xy: 635, 827 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-7 rotate: false - xy: 831, 823 + xy: 733, 925 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-4-0 rotate: false - xy: 877, 1757 + xy: 1137, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-1 rotate: false - xy: 1007, 1757 + xy: 1267, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-2 rotate: false - xy: 1137, 1757 + xy: 1397, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-3 rotate: false - xy: 1267, 1757 + xy: 1527, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-4 rotate: false - xy: 1397, 1757 + xy: 1657, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-5 rotate: false - xy: 1527, 1757 + xy: 357, 1595 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-6 rotate: false - xy: 1657, 1757 + xy: 487, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-7 rotate: false - xy: 357, 1595 + xy: 617, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -3267,728 +2938,728 @@ cracks-6-7 index: -1 crawler-wreck0 rotate: false - xy: 1767, 787 + xy: 1363, 131 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck1 rotate: false - xy: 1817, 988 + xy: 1413, 273 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck2 rotate: false - xy: 1817, 938 + xy: 1413, 223 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cyclone rotate: false - xy: 941, 1105 + xy: 635, 729 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dagger-wreck0 rotate: false - xy: 1817, 738 + xy: 1515, 305 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck1 rotate: false - xy: 1817, 688 + xy: 1463, 255 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck2 rotate: false - xy: 1817, 638 + xy: 1463, 205 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck0 rotate: false - xy: 1809, 322 + xy: 1513, 97 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck1 rotate: false - xy: 1809, 272 + xy: 1941, 731 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck2 rotate: false - xy: 1809, 222 + xy: 1991, 731 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress-wreck0 rotate: false - xy: 435, 1105 + xy: 765, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck1 rotate: false - xy: 651, 1333 + xy: 435, 991 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck2 rotate: false - xy: 753, 1415 + xy: 867, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fuse rotate: false - xy: 1349, 1317 + xy: 635, 631 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 gamma-wreck0 rotate: false - xy: 1759, 519 + xy: 1205, 190 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck1 rotate: false - xy: 1759, 461 + xy: 1205, 132 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck2 rotate: false - xy: 1801, 1479 + xy: 733, 5 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 horizon-wreck0 rotate: false - xy: 1175, 72 + xy: 759, 459 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck1 rotate: false - xy: 1223, 555 + xy: 603, 303 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck2 rotate: false - xy: 1219, 481 + xy: 833, 459 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 1967, 987 + xy: 107, 35 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-xlarge rotate: false - xy: 1859, 222 + xy: 1873, 565 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 1867, 679 + xy: 435, 1503 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 1845, 172 + xy: 1900, 515 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 1917, 737 + xy: 1205, 90 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 1845, 122 + xy: 1931, 681 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 2001, 1959 + xy: 1913, 273 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 1867, 72 + xy: 1981, 681 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 1967, 945 + xy: 1863, 173 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 1877, 22 + xy: 1925, 631 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 1867, 637 + xy: 2001, 1959 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 1895, 172 + xy: 1975, 631 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 2001, 1917 + xy: 1913, 231 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 1895, 122 + xy: 1923, 581 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 1967, 903 + xy: 1863, 131 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 1917, 72 + xy: 1973, 581 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 1867, 595 + xy: 2001, 1917 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 1927, 22 + xy: 1950, 531 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 2001, 1875 + xy: 1863, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 107, 15 + xy: 1950, 481 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 1967, 861 + xy: 2001, 1875 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 157, 15 + xy: 1900, 465 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 1867, 553 + xy: 2001, 1833 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 207, 15 + xy: 1887, 415 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 2001, 1833 + xy: 2005, 821 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 1799, 1427 + xy: 1883, 365 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 1967, 819 + xy: 849, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 1799, 1377 + xy: 1950, 431 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 1867, 511 + xy: 1247, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 1849, 1429 + xy: 1829, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 1867, 469 + xy: 1289, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 1899, 1429 + xy: 1879, 315 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 1443, 1037 + xy: 677, 129 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 1867, 427 + xy: 1331, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 1999, 1429 + xy: 1563, 137 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 1967, 777 + xy: 1261, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 1899, 1379 + xy: 1563, 87 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 1959, 735 + xy: 1303, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 1949, 1379 + xy: 1613, 267 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 1917, 695 + xy: 1261, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 1999, 1379 + xy: 1613, 217 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mace-wreck0 rotate: false - xy: 1437, 839 + xy: 875, 245 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck1 rotate: false - xy: 1503, 905 + xy: 875, 179 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck2 rotate: false - xy: 1569, 971 + xy: 875, 113 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 635, 647 + xy: 929, 515 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mega-wreck0 rotate: false - xy: 435, 799 + xy: 435, 685 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck1 rotate: false - xy: 435, 697 + xy: 969, 1395 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck2 rotate: false - xy: 753, 1313 + xy: 1071, 1395 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 meltdown rotate: false - xy: 1527, 1627 + xy: 1787, 1667 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck0 rotate: false - xy: 1787, 1537 + xy: 487, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck1 rotate: false - xy: 1917, 1537 + xy: 617, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck2 rotate: false - xy: 487, 1497 + xy: 747, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono-wreck0 rotate: false - xy: 1999, 1329 + xy: 1929, 315 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck1 rotate: false - xy: 1899, 1279 + xy: 1651, 321 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck2 rotate: false - xy: 1949, 1279 + xy: 1701, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-wreck0 rotate: false - xy: 1975, 1479 + xy: 1734, 490 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck1 rotate: false - xy: 1381, 104 + xy: 1947, 781 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck2 rotate: false - xy: 1439, 121 + xy: 1792, 490 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 parallax rotate: false - xy: 1701, 905 + xy: 1007, 177 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 poly-wreck0 rotate: false - xy: 1613, 121 + xy: 1655, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck1 rotate: false - xy: 1671, 121 + xy: 1655, 374 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck2 rotate: false - xy: 1729, 121 + xy: 1713, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar-wreck0 rotate: false - xy: 1347, 162 + xy: 1947, 897 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck1 rotate: false - xy: 1723, 1527 + xy: 1815, 699 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck2 rotate: false - xy: 1235, 1107 + xy: 1881, 765 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 quasar-wreck0 rotate: false - xy: 1223, 1023 + xy: 521, 177 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck1 rotate: false - xy: 1223, 941 + xy: 521, 95 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck2 rotate: false - xy: 1223, 859 + xy: 511, 13 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 ripple rotate: false - xy: 717, 333 + xy: 1125, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck0 rotate: false - xy: 815, 235 + xy: 1125, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck1 rotate: false - xy: 925, 517 + xy: 1137, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck2 rotate: false - xy: 1023, 517 + xy: 1235, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 1561, 575 + xy: 1129, 18 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 1627, 575 + xy: 1617, 948 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 segment rotate: false - xy: 1429, 443 + xy: 1551, 684 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spectre rotate: false - xy: 747, 1497 + xy: 1007, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spiroct-wreck0 rotate: false - xy: 1007, 146 + xy: 1543, 1224 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck1 rotate: false - xy: 1103, 146 + xy: 1435, 1147 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck2 rotate: false - xy: 619, 80 + xy: 1531, 1147 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 swarmer rotate: false - xy: 1479, 245 + xy: 1683, 548 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-alpha-full rotate: false - xy: 1867, 921 + xy: 1763, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-arkyid-full rotate: false - xy: 1007, 1497 + xy: 1267, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-atrax-full rotate: false - xy: 991, 14 + xy: 1615, 1076 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 unit-beta-full rotate: false - xy: 1917, 979 + xy: 1763, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4002,168 +3673,168 @@ unit-bryde-full index: -1 unit-crawler-full rotate: false - xy: 1867, 871 + xy: 1763, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 1917, 929 + xy: 1813, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-full rotate: false - xy: 1867, 821 + xy: 1813, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-full rotate: false - xy: 855, 1415 + xy: 1173, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 unit-gamma-full rotate: false - xy: 1439, 63 + xy: 1771, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-horizon-full rotate: false - xy: 1207, 185 + xy: 593, 7 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 unit-mace-full rotate: false - xy: 1545, 179 + xy: 1815, 881 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-mega-full rotate: false - xy: 855, 1313 + xy: 1275, 1395 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 unit-minke-full rotate: false - xy: 1137, 1497 + xy: 1397, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-mono-full rotate: false - xy: 1917, 879 + xy: 1813, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-full rotate: false - xy: 1497, 63 + xy: 1771, 374 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-poly-full rotate: false - xy: 1555, 63 + xy: 1829, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-pulsar-full rotate: false - xy: 1741, 1477 + xy: 1616, 502 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 unit-quasar-full rotate: false - xy: 1223, 777 + xy: 603, 451 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 unit-risso-full rotate: false - xy: 1109, 223 + xy: 1321, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 unit-spiroct-full rotate: false - xy: 715, 60 + xy: 1627, 1142 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 unit-zenith-full rotate: false - xy: 1267, 1513 + xy: 1527, 1513 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 wave rotate: false - xy: 1743, 245 + xy: 1815, 749 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 zenith-wreck0 rotate: false - xy: 1609, 1513 + xy: 435, 1269 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck1 rotate: false - xy: 435, 1383 + xy: 549, 1383 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck2 rotate: false - xy: 435, 1269 + xy: 435, 1155 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 shape-3 rotate: false - xy: 1773, 1038 + xy: 1551, 487 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 1667, 71 + xy: 435, 1545 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-cell rotate: false - xy: 1717, 71 + xy: 1881, 715 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4175,37 +3846,30 @@ arkyid orig: 128, 128 offset: 0, 0 index: -1 -chaos-array +arkyid-cell rotate: false - xy: 163, 585 + xy: 163, 455 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -arkyid-cell - rotate: false - xy: 815, 92 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 arkyid-foot rotate: false - xy: 1239, 1229 + xy: 907, 443 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-joint-base rotate: false - xy: 1239, 1157 + xy: 979, 441 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-leg rotate: false - xy: 1741, 1419 + xy: 1205, 306 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -4219,56 +3883,56 @@ arkyid-leg-base index: -1 atrax rotate: false - xy: 905, 80 + xy: 1723, 1153 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-base rotate: false - xy: 1455, 1169 + xy: 1267, 447 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 atrax-cell rotate: false - xy: 995, 80 + xy: 1435, 1081 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-foot rotate: false - xy: 513, 1 + xy: 1081, 399 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 atrax-leg rotate: false - xy: 349, 1567 + xy: 1419, 513 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 atrax-leg-base rotate: false - xy: 387, 1567 + xy: 349, 1567 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 beta rotate: false - xy: 1627, 17 + xy: 1263, 281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-cell rotate: false - xy: 1677, 21 + xy: 1263, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4287,72 +3951,79 @@ bryde-cell orig: 140, 140 offset: 0, 0 index: -1 -chaos-array-base - rotate: false - xy: 293, 267 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array-cell +chaos-array rotate: false xy: 293, 137 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -chaos-array-leg +chaos-array-base rotate: false xy: 285, 7 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 +chaos-array-cell + rotate: false + xy: 357, 1725 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +chaos-array-leg + rotate: false + xy: 487, 1757 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 crawler rotate: false - xy: 1767, 987 + xy: 1363, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 1767, 937 + xy: 1363, 181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 1767, 887 + xy: 1263, 131 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 1767, 837 + xy: 1313, 131 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 1817, 888 + xy: 1413, 173 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 1817, 838 + xy: 1413, 123 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 1817, 788 + xy: 1465, 305 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -4387,182 +4058,182 @@ eradicator-leg index: -1 flare rotate: false - xy: 1809, 372 + xy: 1463, 97 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress rotate: false - xy: 435, 1187 + xy: 663, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 1347, 410 + xy: 743, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-cell rotate: false - xy: 651, 1415 + xy: 435, 1073 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 1081, 18 + xy: 1611, 1014 size: 80, 60 orig: 80, 60 offset: 0, 0 index: -1 gamma rotate: false - xy: 1741, 1361 + xy: 1947, 839 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-cell rotate: false - xy: 1759, 577 + xy: 1205, 248 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 horizon rotate: false - xy: 1223, 703 + xy: 685, 459 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-cell rotate: false - xy: 1223, 629 + xy: 603, 377 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 mace rotate: false - xy: 1707, 1037 + xy: 809, 195 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-base rotate: false - xy: 1437, 971 + xy: 809, 129 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-cell rotate: false - xy: 1437, 905 + xy: 883, 377 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-leg rotate: false - xy: 1503, 971 + xy: 875, 311 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mega rotate: false - xy: 435, 1003 + xy: 435, 889 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-cell rotate: false - xy: 435, 901 + xy: 435, 787 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 minke rotate: false - xy: 1787, 1667 + xy: 1787, 1537 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-cell rotate: false - xy: 1917, 1667 + xy: 1917, 1537 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono rotate: false - xy: 1899, 1329 + xy: 1613, 67 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-cell rotate: false - xy: 1949, 1329 + xy: 1933, 365 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova rotate: false - xy: 1859, 1479 + xy: 791, 5 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-base rotate: false - xy: 1909, 1229 + xy: 1663, 221 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-cell rotate: false - xy: 1917, 1479 + xy: 1676, 490 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-leg rotate: false - xy: 1959, 1229 + xy: 1663, 171 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 poly rotate: false - xy: 1497, 121 + xy: 1597, 429 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-cell rotate: false - xy: 1555, 121 + xy: 1597, 371 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 1787, 121 + xy: 1713, 374 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -4576,77 +4247,77 @@ pulsar index: -1 pulsar-base rotate: false - xy: 1909, 1179 + xy: 1663, 121 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulsar-cell rotate: false - xy: 1723, 1577 + xy: 1205, 364 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-leg rotate: false - xy: 1561, 707 + xy: 1073, 111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 quasar rotate: false - xy: 1431, 1235 + xy: 521, 505 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-base rotate: false - xy: 1513, 1235 + xy: 521, 423 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-cell rotate: false - xy: 1595, 1235 + xy: 521, 341 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-leg rotate: false - xy: 1677, 1235 + xy: 521, 259 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 risso rotate: false - xy: 717, 235 + xy: 1125, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-cell rotate: false - xy: 815, 333 + xy: 1125, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 spiroct rotate: false - xy: 815, 158 + xy: 415, 20 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-cell rotate: false - xy: 911, 146 + xy: 1447, 1224 size: 94, 75 orig: 94, 75 offset: 0, 0 @@ -4660,1025 +4331,1277 @@ spiroct-foot index: -1 spiroct-leg rotate: false - xy: 1787, 1801 + xy: 677, 93 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 spiroct-leg-base rotate: false - xy: 435, 1509 + xy: 1787, 1801 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 vanguard rotate: false - xy: 1867, 771 + xy: 1813, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 1917, 829 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -antumbra-missiles - rotate: false - xy: 1527, 13 + xy: 1813, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery rotate: false - xy: 1577, 5 + xy: 1415, 323 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 artillery-mount rotate: false - xy: 1311, 1163 + xy: 1051, 441 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 beam-weapon rotate: false - xy: 1349, 1235 + xy: 1965, 1455 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 chaos rotate: false - xy: 1759, 635 + xy: 1815, 561 size: 56, 136 orig: 56, 136 offset: 0, 0 index: -1 eradication rotate: false - xy: 1251, 1303 + xy: 929, 809 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 eruption rotate: false - xy: 1817, 530 + xy: 1463, 147 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun rotate: false - xy: 1817, 480 + xy: 1513, 205 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower rotate: false - xy: 1817, 422 + xy: 1513, 147 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-shotgun-weapon rotate: false - xy: 1859, 372 + xy: 1850, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon rotate: false - xy: 1859, 322 + xy: 1875, 665 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon-mount rotate: false - xy: 1859, 272 + xy: 1873, 615 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 large-artillery rotate: false - xy: 1849, 1361 + xy: 1563, 237 size: 48, 66 orig: 48, 66 offset: 0, 0 index: -1 large-bullet-mount rotate: false - xy: 1383, 1136 + xy: 1123, 414 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 large-laser-mount rotate: false - xy: 521, 405 + xy: 1141, 1103 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 +large-purple-mount + rotate: false + xy: 1195, 414 + size: 70, 97 + orig: 70, 97 + offset: 0, 0 + index: -1 large-weapon rotate: false - xy: 1949, 1429 + xy: 1563, 187 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles rotate: false - xy: 1799, 1327 + xy: 1613, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-mount rotate: false - xy: 1849, 1311 + xy: 1613, 117 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-purple-weapon rotate: false - xy: 1999, 1279 + xy: 1751, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon rotate: false - xy: 1759, 1277 + xy: 1663, 271 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-basic-weapon rotate: false - xy: 1959, 1129 + xy: 1713, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-mount-weapon rotate: false - xy: 1909, 1079 + xy: 1713, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-weapon rotate: false - xy: 1959, 1079 + xy: 1713, 124 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spiroct-weapon rotate: false - xy: 1867, 971 + xy: 1763, 216 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 weapon rotate: false - xy: 1867, 721 + xy: 1863, 265 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith-missiles rotate: false - xy: 1917, 779 + xy: 1863, 215 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith rotate: false - xy: 1381, 1513 + xy: 1641, 1513 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-cell rotate: false - xy: 1495, 1513 + xy: 435, 1383 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 sprites3.png -size: 1024,256 +size: 2048,256 format: rgba8888 filter: nearest,nearest repeat: none mender - rotate: false - xy: 477, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -mender-top - rotate: false - xy: 307, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -shock-mine - rotate: false - xy: 715, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-0 - rotate: false - xy: 1, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-1 - rotate: false - xy: 1, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-2 - rotate: false - xy: 35, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-3 - rotate: false - xy: 1, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-0 - rotate: false - xy: 35, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-1 - rotate: false - xy: 69, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-2 - rotate: false - xy: 1, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-3 - rotate: false - xy: 35, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor - rotate: false - xy: 545, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-0 - rotate: false - xy: 375, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-1 - rotate: false - xy: 409, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-2 - rotate: false - xy: 443, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-edge - rotate: false - xy: 477, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-stack - rotate: false - xy: 511, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-0-1 - rotate: false - xy: 783, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-0-2 - rotate: false - xy: 817, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-0-3 - rotate: false - xy: 647, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-0 - rotate: false - xy: 681, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-1 - rotate: false - xy: 715, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-2 - rotate: false - xy: 749, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-3 - rotate: false - xy: 783, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-0 - rotate: false - xy: 817, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-1 - rotate: false - xy: 851, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-2 - rotate: false - xy: 681, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-3 - rotate: false - xy: 715, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-0 - rotate: false - xy: 749, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-1 - rotate: false - xy: 783, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-2 - rotate: false - xy: 817, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-3 - rotate: false - xy: 851, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-0 - rotate: false - xy: 885, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-1 - rotate: false - xy: 715, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-2 - rotate: false - xy: 749, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-3 - rotate: false - xy: 783, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cross - rotate: false - xy: 69, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -inverted-sorter - rotate: false - xy: 205, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -junction - rotate: false - xy: 375, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -overflow-gate - rotate: false - xy: 409, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor - rotate: false - xy: 375, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-arrow - rotate: false - xy: 409, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-bridge - rotate: false - xy: 443, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-end - rotate: false - xy: 477, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -router - rotate: false - xy: 545, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sorter - rotate: false - xy: 579, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -underflow-gate - rotate: false - xy: 885, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-junction - rotate: false - xy: 273, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-overflow-gate - rotate: false - xy: 375, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-overflow-gate-top - rotate: false - xy: 409, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-bottom - rotate: false - xy: 239, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-liquid - rotate: false - xy: 273, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-top - rotate: false - xy: 307, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -mechanical-pump - rotate: false - xy: 341, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -mechanical-pump-liquid - rotate: false - xy: 375, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rotary-pump-liquid - rotate: false - xy: 375, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -thermal-pump-liquid - rotate: false - xy: 375, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit - rotate: false - xy: 443, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-arrow - rotate: false - xy: 477, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-bridge - rotate: false - xy: 511, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-end - rotate: false - xy: 341, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-cap - rotate: false - xy: 579, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-0 - rotate: false - xy: 409, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-1 - rotate: false - xy: 443, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-2 - rotate: false - xy: 477, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-3 - rotate: false - xy: 511, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-4 - rotate: false - xy: 545, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-0 - rotate: false - xy: 477, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-1 - rotate: false - xy: 511, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-2 - rotate: false - xy: 545, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-4 - rotate: false - xy: 579, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -memory-cell - rotate: false - xy: 443, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -message - rotate: false - xy: 341, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -micro-processor - rotate: false - xy: 375, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -switch - rotate: false - xy: 681, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -switch-on - rotate: false - xy: 715, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -diode - rotate: false - xy: 103, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -diode-arrow - rotate: false - xy: 137, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -illuminator - rotate: false - xy: 103, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -illuminator-top - rotate: false - xy: 137, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -power-node - rotate: false - xy: 579, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -power-source - rotate: false - xy: 613, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -power-void - rotate: false - xy: 443, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rtg-generator-top - rotate: false - xy: 579, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -solar-panel - rotate: false - xy: 545, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -incinerator - rotate: false - xy: 171, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-source - rotate: false - xy: 239, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-void - rotate: false - xy: 341, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-source - rotate: false - xy: 409, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-void - rotate: false - xy: 443, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -melter - rotate: false - xy: 409, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulverizer - rotate: false - xy: 613, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulverizer-rotator - rotate: false - xy: 647, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand-boulder1 - rotate: false - xy: 613, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand-boulder2 rotate: false xy: 647, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shale-boulder1 +mender-top rotate: false - xy: 647, 155 + xy: 681, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shale-boulder2 +shock-mine rotate: false - xy: 681, 189 + xy: 885, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -unloader +bridge-arrow rotate: false - xy: 919, 223 + xy: 103, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -unloader-center +bridge-conveyor rotate: false - xy: 749, 19 + xy: 137, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scorch-heat +bridge-conveyor-bridge rotate: false - xy: 511, 19 + xy: 1, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -repair-point-base +bridge-conveyor-end rotate: false - xy: 511, 53 + xy: 35, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -copper-wall +center rotate: false - xy: 69, 189 + xy: 69, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -door +conveyor-0-1 rotate: false - xy: 171, 223 + xy: 103, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -door-open +conveyor-0-2 rotate: false - xy: 1, 19 + xy: 137, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -phase-wall +conveyor-0-3 rotate: false - xy: 511, 189 + xy: 171, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plastanium-wall +conveyor-1-0 + rotate: false + xy: 205, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-1-1 + rotate: false + xy: 239, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-1-2 + rotate: false + xy: 69, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-1-3 + rotate: false + xy: 103, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-2-0 + rotate: false + xy: 137, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-2-1 + rotate: false + xy: 171, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-2-2 + rotate: false + xy: 205, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-2-3 + rotate: false + xy: 239, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-3-0 + rotate: false + xy: 273, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-3-1 + rotate: false + xy: 103, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-3-2 + rotate: false + xy: 137, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-3-3 + rotate: false + xy: 171, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-0 + rotate: false + xy: 205, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-1 + rotate: false + xy: 239, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-2 + rotate: false + xy: 273, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-4-3 + rotate: false + xy: 307, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor + rotate: false + xy: 715, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor-0 + rotate: false + xy: 749, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor-1 + rotate: false + xy: 579, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor-2 + rotate: false + xy: 613, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor-edge + rotate: false + xy: 647, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-conveyor-stack + rotate: false + xy: 681, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-0-1 + rotate: false + xy: 953, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-0-2 + rotate: false + xy: 987, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-0-3 + rotate: false + xy: 1021, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-1-0 + rotate: false + xy: 851, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-1-1 + rotate: false + xy: 885, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-1-2 + rotate: false + xy: 919, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-1-3 + rotate: false + xy: 953, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-2-0 + rotate: false + xy: 987, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-2-1 + rotate: false + xy: 1021, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-2-2 + rotate: false + xy: 1055, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-2-3 + rotate: false + xy: 885, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-3-0 + rotate: false + xy: 919, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-3-1 + rotate: false + xy: 953, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-3-2 + rotate: false + xy: 987, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-3-3 + rotate: false + xy: 1021, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-4-0 + rotate: false + xy: 1055, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-4-1 + rotate: false + xy: 1089, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-4-2 + rotate: false + xy: 919, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-4-3 + rotate: false + xy: 953, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cross + rotate: false + xy: 239, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +inverted-sorter + rotate: false + xy: 375, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +junction rotate: false xy: 545, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap-wall2 - rotate: false - xy: 545, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -scrap-wall3 +overflow-gate rotate: false xy: 579, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap-wall4 +phase-conveyor + rotate: false + xy: 545, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-arrow + rotate: false + xy: 579, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-bridge + rotate: false + xy: 613, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-end + rotate: false + xy: 647, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +router + rotate: false + xy: 715, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sorter + rotate: false + xy: 749, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +underflow-gate + rotate: false + xy: 1055, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-liquid + rotate: false + xy: 103, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit + rotate: false + xy: 1, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-arrow + rotate: false + xy: 35, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conveyor-arrow + rotate: false + xy: 35, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-bridge + rotate: false + xy: 69, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-end + rotate: false + xy: 103, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom + rotate: false + xy: 171, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-0 + rotate: false + xy: 1, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-1 + rotate: false + xy: 35, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-2 + rotate: false + xy: 69, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-3 + rotate: false + xy: 69, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-4 + rotate: false + xy: 69, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-0 + rotate: false + xy: 137, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-1 + rotate: false + xy: 171, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-2 + rotate: false + xy: 205, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-3 + rotate: false + xy: 35, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-3 + rotate: false + xy: 35, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-4 + rotate: false + xy: 69, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-junction + rotate: false + xy: 443, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-overflow-gate + rotate: false + xy: 545, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-overflow-gate-top + rotate: false + xy: 579, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-bottom + rotate: false + xy: 613, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-liquid + rotate: false + xy: 443, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-top + rotate: false + xy: 477, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +mechanical-pump + rotate: false + xy: 511, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +mechanical-pump-liquid + rotate: false + xy: 545, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +rotary-pump-liquid + rotate: false + xy: 545, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thermal-pump-liquid + rotate: false + xy: 545, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit rotate: false xy: 613, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap-wall5 +phase-conduit-arrow rotate: false - xy: 613, 121 + xy: 647, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -surge-wall +phase-conduit-bridge + rotate: false + xy: 681, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-end + rotate: false + xy: 715, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-cap + rotate: false + xy: 749, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-0 + rotate: false + xy: 783, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-1 + rotate: false + xy: 613, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-2 rotate: false xy: 647, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -thorium-wall +plated-conduit-top-3 + rotate: false + xy: 681, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-4 + rotate: false + xy: 715, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-0 + rotate: false + xy: 647, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-1 + rotate: false + xy: 681, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-2 + rotate: false + xy: 715, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-4 + rotate: false + xy: 749, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +memory-cell + rotate: false + xy: 613, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +message + rotate: false + xy: 511, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +micro-processor + rotate: false + xy: 545, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +switch + rotate: false + xy: 851, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +switch-on + rotate: false + xy: 885, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +combustion-generator + rotate: false + xy: 103, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +combustion-generator-top + rotate: false + xy: 137, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +diode + rotate: false + xy: 273, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +diode-arrow + rotate: false + xy: 307, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator + rotate: false + xy: 273, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator-top + rotate: false + xy: 307, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-node rotate: false xy: 749, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -titanium-wall +power-source + rotate: false + xy: 783, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-void + rotate: false + xy: 817, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +rtg-generator-top + rotate: false + xy: 749, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +solar-panel + rotate: false + xy: 919, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +incinerator + rotate: false + xy: 341, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-source + rotate: false + xy: 409, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-void + rotate: false + xy: 511, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-source + rotate: false + xy: 579, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-void + rotate: false + xy: 613, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +melter + rotate: false + xy: 579, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulverizer + rotate: false + xy: 783, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulverizer-rotator + rotate: false + xy: 817, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-boulder1 + rotate: false + xy: 783, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-boulder2 + rotate: false + xy: 817, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale-boulder1 rotate: false xy: 817, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +shale-boulder2 + rotate: false + xy: 851, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +unloader + rotate: false + xy: 1089, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +unloader-center + rotate: false + xy: 1123, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scorch-heat + rotate: false + xy: 885, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +repair-point-base + rotate: false + xy: 681, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper-wall + rotate: false + xy: 137, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +door + rotate: false + xy: 341, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +door-open + rotate: false + xy: 375, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-wall + rotate: false + xy: 681, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plastanium-wall + rotate: false + xy: 715, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-wall2 + rotate: false + xy: 715, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-wall3 + rotate: false + xy: 749, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-wall4 + rotate: false + xy: 783, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-wall5 + rotate: false + xy: 783, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +surge-wall + rotate: false + xy: 817, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thorium-wall + rotate: false + xy: 919, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-wall + rotate: false + xy: 987, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 casing rotate: false xy: 361, 1 @@ -5688,140 +5611,210 @@ casing index: -1 circle-mid rotate: false - xy: 997, 30 + xy: 1149, 22 size: 1, 199 orig: 1, 199 offset: 0, 0 index: -1 laser rotate: false - xy: 809, 9 + xy: 981, 3 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser rotate: false - xy: 815, 19 + xy: 987, 11 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 parallax-laser rotate: false - xy: 821, 19 + xy: 993, 11 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 scale_marker rotate: false - xy: 811, 81 + xy: 1013, 81 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 transfer rotate: false - xy: 827, 19 + xy: 999, 11 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 851, 155 + xy: 1021, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 1005, 252 + xy: 1021, 90 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 +block-shalerocks-full + rotate: false + xy: 1, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shrubs-full + rotate: false + xy: 1, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-full + rotate: false + xy: 35, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snowrocks-full + rotate: false + xy: 1, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spore-moss-full + rotate: false + xy: 35, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sporerocks-full + rotate: false + xy: 69, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-stone-full + rotate: false + xy: 1, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tendrils-full + rotate: false + xy: 35, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-conveyor-full + rotate: false + xy: 69, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +titanium-conveyor-0-0 + rotate: false + xy: 69, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 cracks-1-0 rotate: false - xy: 103, 223 + xy: 171, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 1, 87 + xy: 205, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 35, 121 + xy: 239, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 69, 155 + xy: 273, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 103, 189 + xy: 307, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 137, 223 + xy: 341, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 1, 53 + xy: 171, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 35, 87 + xy: 205, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo rotate: false - xy: 35, 53 + xy: 205, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hail rotate: false - xy: 69, 87 + xy: 239, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 69, 53 + xy: 239, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 817, 95 + xy: 987, 61 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5835,14 +5828,14 @@ item-blast-compound-tiny index: -1 item-coal-medium rotate: false - xy: 137, 121 + xy: 307, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 851, 129 + xy: 1021, 95 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5856,14 +5849,14 @@ item-coal-tiny index: -1 item-copper-medium rotate: false - xy: 205, 189 + xy: 375, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 885, 163 + xy: 1055, 129 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5877,14 +5870,14 @@ item-copper-tiny index: -1 item-graphite-medium rotate: false - xy: 69, 19 + xy: 443, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 919, 197 + xy: 1089, 163 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5898,14 +5891,14 @@ item-graphite-tiny index: -1 item-lead-medium rotate: false - xy: 137, 87 + xy: 307, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 953, 231 + xy: 1123, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5919,14 +5912,14 @@ item-lead-tiny index: -1 item-metaglass-medium rotate: false - xy: 205, 155 + xy: 375, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 783, 33 + xy: 1157, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5940,14 +5933,14 @@ item-metaglass-tiny index: -1 item-phase-fabric-medium rotate: false - xy: 273, 223 + xy: 443, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 979, 231 + xy: 1183, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5961,14 +5954,14 @@ item-phase-fabric-tiny index: -1 item-plastanium-medium rotate: false - xy: 137, 53 + xy: 307, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 783, 7 + xy: 1209, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -5982,14 +5975,14 @@ item-plastanium-tiny index: -1 item-pyratite-medium rotate: false - xy: 205, 121 + xy: 375, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 817, 69 + xy: 1235, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6003,14 +5996,14 @@ item-pyratite-tiny index: -1 item-sand-medium rotate: false - xy: 273, 189 + xy: 443, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 843, 95 + xy: 1261, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6024,14 +6017,14 @@ item-sand-tiny index: -1 item-scrap-medium rotate: false - xy: 137, 19 + xy: 511, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 843, 69 + xy: 1287, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6045,14 +6038,14 @@ item-scrap-tiny index: -1 item-silicon-medium rotate: false - xy: 205, 87 + xy: 375, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 877, 129 + xy: 1313, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6066,14 +6059,14 @@ item-silicon-tiny index: -1 item-spore-pod-medium rotate: false - xy: 307, 189 + xy: 477, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 869, 103 + xy: 1339, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6087,14 +6080,14 @@ item-spore-pod-tiny index: -1 item-surge-alloy-medium rotate: false - xy: 171, 19 + xy: 545, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 869, 77 + xy: 1365, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6108,14 +6101,14 @@ item-surge-alloy-tiny index: -1 item-thorium-medium rotate: false - xy: 239, 87 + xy: 409, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 911, 163 + xy: 1391, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6129,14 +6122,14 @@ item-thorium-tiny index: -1 item-titanium-medium rotate: false - xy: 307, 155 + xy: 477, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 903, 137 + xy: 1417, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6150,14 +6143,14 @@ item-titanium-tiny index: -1 liquid-cryofluid-medium rotate: false - xy: 239, 53 + xy: 409, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 945, 197 + xy: 1443, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6171,14 +6164,14 @@ liquid-cryofluid-tiny index: -1 liquid-oil-medium rotate: false - xy: 341, 155 + xy: 511, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 937, 171 + xy: 1469, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6192,14 +6185,14 @@ liquid-oil-tiny index: -1 liquid-slag-medium rotate: false - xy: 375, 155 + xy: 545, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 971, 205 + xy: 1495, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6213,14 +6206,14 @@ liquid-slag-tiny index: -1 liquid-water-medium rotate: false - xy: 307, 53 + xy: 477, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 895, 103 + xy: 1521, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6234,259 +6227,259 @@ liquid-water-tiny index: -1 repair-point rotate: false - xy: 477, 19 + xy: 851, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scorch rotate: false - xy: 681, 223 + xy: 851, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-0 rotate: false - xy: 647, 121 + xy: 817, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 681, 155 + xy: 851, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 783, 223 + xy: 953, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 613, 19 + xy: 987, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 715, 189 + xy: 885, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 749, 223 + xy: 919, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 579, 19 + xy: 953, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 613, 53 + xy: 783, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 647, 87 + xy: 817, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 681, 121 + xy: 851, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 715, 155 + xy: 885, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 749, 189 + xy: 919, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 35, 19 + xy: 409, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 103, 87 + xy: 273, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 171, 155 + xy: 341, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 239, 223 + xy: 409, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 103, 53 + xy: 273, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 171, 121 + xy: 341, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 239, 189 + xy: 409, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 103, 19 + xy: 477, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 171, 87 + xy: 341, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 239, 155 + xy: 409, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 307, 223 + xy: 477, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 171, 53 + xy: 341, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 273, 155 + xy: 443, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 341, 223 + xy: 511, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 205, 53 + xy: 375, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 273, 121 + xy: 443, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 205, 19 + xy: 579, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 307, 121 + xy: 477, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 341, 121 + xy: 511, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 273, 19 + xy: 647, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 851, 126 + xy: 1047, 118 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 atrax-joint rotate: false - xy: 783, 59 + xy: 953, 25 size: 26, 26 orig: 26, 26 offset: 0, 0 index: -1 spiroct-joint rotate: false - xy: 613, 87 + xy: 783, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8156,2135 +8149,2149 @@ filter: nearest,nearest repeat: none additive-reconstructor-icon-editor rotate: false - xy: 485, 631 + xy: 485, 627 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory-icon-editor rotate: false - xy: 613, 759 + xy: 613, 755 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-icon-editor rotate: false - xy: 1555, 921 + xy: 1555, 917 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-icon-editor rotate: false - xy: 375, 207 + xy: 327, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-icon-editor rotate: false - xy: 181, 17 + xy: 375, 203 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-icon-editor rotate: false - xy: 583, 695 + xy: 131, 13 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large-icon-editor rotate: false - xy: 1653, 921 + xy: 1653, 917 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-drill-icon-editor rotate: false - xy: 1, 19 + xy: 1, 15 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-mixer-icon-editor rotate: false - xy: 1005, 725 + xy: 1103, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border-editor rotate: false - xy: 583, 661 + xy: 165, 13 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-forge-icon-editor rotate: false - xy: 1751, 921 + xy: 1751, 917 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-loader-icon-editor rotate: false - xy: 1849, 921 + xy: 1849, 917 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader-icon-editor rotate: false - xy: 1947, 921 + xy: 1947, 917 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-conduit-icon-editor rotate: false - xy: 583, 627 + xy: 587, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-icon-editor rotate: false - xy: 583, 593 + xy: 587, 329 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char-icon-editor rotate: false - xy: 583, 559 + xy: 587, 295 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char1 rotate: false - xy: 583, 559 + xy: 587, 295 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear-editor rotate: false - xy: 2045, 1016 + xy: 2045, 1012 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 cliff-icon-editor rotate: false - xy: 587, 367 + xy: 521, 231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliffs-icon-editor rotate: false - xy: 587, 333 + xy: 555, 231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal-centrifuge-icon-editor rotate: false - xy: 1071, 725 + xy: 1169, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 combustion-generator-icon-editor rotate: false - xy: 587, 299 + xy: 649, 589 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +command-center-icon-editor + rotate: false + xy: 1235, 721 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 conduit-icon-editor rotate: false - xy: 521, 235 + xy: 683, 589 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 container-icon-editor rotate: false - xy: 1137, 725 + xy: 1301, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 conveyor-icon-editor rotate: false - xy: 555, 235 + xy: 1961, 719 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-icon-editor rotate: false - xy: 1995, 795 + xy: 1961, 685 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large-icon-editor rotate: false - xy: 1203, 725 + xy: 1367, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation-icon-editor rotate: false - xy: 323, 437 + xy: 323, 433 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus-icon-editor rotate: false - xy: 323, 567 + xy: 323, 563 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard-icon-editor rotate: false - xy: 227, 277 + xy: 227, 273 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 craters-icon-editor rotate: false - xy: 1995, 761 + xy: 1961, 651 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters1 rotate: false - xy: 1995, 761 + xy: 1961, 651 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cryofluidmixer-icon-editor rotate: false - xy: 1269, 725 + xy: 1433, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-icon-editor rotate: false - xy: 1335, 725 + xy: 1499, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cyclone-icon-editor rotate: false - xy: 227, 179 + xy: 227, 175 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dark-metal-icon-editor rotate: false - xy: 1995, 727 + xy: 1961, 617 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1-icon-editor rotate: false - xy: 1995, 693 + xy: 1989, 791 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-1 rotate: false - xy: 1995, 693 + xy: 1989, 791 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-2-icon-editor rotate: false - xy: 1995, 659 + xy: 1989, 757 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-2 rotate: false - xy: 1995, 659 + xy: 1989, 757 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-3-icon-editor rotate: false - xy: 1995, 625 + xy: 1995, 723 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-3 rotate: false - xy: 1995, 625 + xy: 1995, 723 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-4-icon-editor rotate: false - xy: 409, 205 + xy: 1995, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-4 rotate: false - xy: 409, 205 + xy: 1995, 689 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-5-icon-editor rotate: false - xy: 443, 205 + xy: 1995, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-5 rotate: false - xy: 443, 205 + xy: 1995, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-6-icon-editor rotate: false - xy: 477, 205 + xy: 1995, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-6 rotate: false - xy: 477, 205 + xy: 1995, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-icon-editor rotate: false - xy: 511, 201 + xy: 409, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand1 rotate: false - xy: 511, 201 + xy: 409, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water-icon-editor rotate: false - xy: 545, 201 + xy: 443, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-icon-editor rotate: false - xy: 579, 201 + xy: 477, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-icon-editor rotate: false - xy: 361, 57 + xy: 511, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-deepwater rotate: false - xy: 361, 57 + xy: 511, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator-icon-editor rotate: false - xy: 131, 51 + xy: 131, 47 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 diode-icon-editor rotate: false - xy: 361, 23 + xy: 545, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 disassembler-icon-editor rotate: false - xy: 229, 81 + xy: 229, 77 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 distributor-icon-editor rotate: false - xy: 1401, 725 + xy: 551, 463 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-icon-editor rotate: false - xy: 617, 725 + xy: 633, 555 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large-icon-editor rotate: false - xy: 1467, 725 + xy: 1593, 753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dunerocks-icon-editor rotate: false - xy: 617, 691 + xy: 667, 555 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo-icon-editor rotate: false - xy: 651, 725 + xy: 717, 605 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char2 rotate: false - xy: 617, 657 + xy: 765, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char3 rotate: false - xy: 651, 691 + xy: 799, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters2 rotate: false - xy: 685, 725 + xy: 833, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters3 rotate: false - xy: 617, 623 + xy: 867, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water1 rotate: false - xy: 719, 725 + xy: 969, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water2 rotate: false - xy: 617, 589 + xy: 1003, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water3 rotate: false - xy: 651, 623 + xy: 1037, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water1 rotate: false - xy: 685, 657 + xy: 765, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water2 rotate: false - xy: 719, 691 + xy: 799, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water3 rotate: false - xy: 753, 725 + xy: 833, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand2 rotate: false - xy: 651, 657 + xy: 901, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand3 rotate: false - xy: 685, 691 + xy: 935, 655 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass1 rotate: false - xy: 651, 589 + xy: 867, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-icon-editor rotate: false - xy: 651, 589 + xy: 867, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass2 rotate: false - xy: 685, 623 + xy: 901, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass3 rotate: false - xy: 719, 657 + xy: 935, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone1 rotate: false - xy: 753, 691 + xy: 969, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone-icon-editor rotate: false - xy: 753, 691 + xy: 969, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone2 rotate: false - xy: 685, 589 + xy: 1003, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone3 rotate: false - xy: 719, 623 + xy: 1037, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock1 rotate: false - xy: 753, 657 + xy: 361, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock-icon-editor rotate: false - xy: 753, 657 + xy: 361, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock2 rotate: false - xy: 719, 589 + xy: 701, 555 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock3 rotate: false - xy: 753, 623 + xy: 633, 521 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow1 rotate: false - xy: 685, 555 + xy: 617, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow-icon-editor rotate: false - xy: 685, 555 + xy: 617, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow2 rotate: false - xy: 719, 555 + xy: 651, 487 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow3 rotate: false - xy: 753, 555 + xy: 617, 419 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice1 rotate: false - xy: 753, 589 + xy: 667, 521 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-icon-editor rotate: false - xy: 753, 589 + xy: 667, 521 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice2 rotate: false - xy: 617, 555 + xy: 701, 521 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice3 rotate: false - xy: 651, 555 + xy: 617, 487 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock1 rotate: false - xy: 787, 659 + xy: 651, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock-icon-editor rotate: false - xy: 787, 659 + xy: 651, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock2 rotate: false - xy: 787, 625 + xy: 685, 487 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock3 rotate: false - xy: 787, 591 + xy: 651, 419 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock1 rotate: false - xy: 821, 659 + xy: 685, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock-icon-editor rotate: false - xy: 821, 659 + xy: 685, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock2 rotate: false - xy: 821, 625 + xy: 685, 419 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock3 rotate: false - xy: 787, 557 + xy: 719, 487 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor rotate: false - xy: 821, 591 + xy: 719, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-icon-editor rotate: false - xy: 821, 591 + xy: 719, 453 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-2 rotate: false - xy: 855, 659 + xy: 719, 419 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-icon-editor rotate: false - xy: 855, 659 + xy: 719, 419 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-3 rotate: false - xy: 855, 625 + xy: 621, 385 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-icon-editor rotate: false - xy: 855, 625 + xy: 621, 385 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-5 rotate: false - xy: 821, 557 + xy: 621, 351 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-icon-editor rotate: false - xy: 821, 557 + xy: 621, 351 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged1 rotate: false - xy: 855, 591 + xy: 655, 385 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged-icon-editor rotate: false - xy: 855, 591 + xy: 655, 385 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged2 rotate: false - xy: 889, 659 + xy: 621, 317 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged3 rotate: false - xy: 889, 625 + xy: 655, 351 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss1 rotate: false - xy: 855, 557 + xy: 689, 385 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss-icon-editor rotate: false - xy: 855, 557 + xy: 689, 385 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss2 rotate: false - xy: 889, 591 + xy: 655, 317 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss3 rotate: false - xy: 923, 659 + xy: 689, 351 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal1 rotate: false - xy: 923, 625 + xy: 689, 317 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal2 rotate: false - xy: 889, 557 + xy: 723, 385 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal3 rotate: false - xy: 923, 591 + xy: 723, 351 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper1 rotate: false - xy: 957, 659 + xy: 723, 317 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper2 rotate: false - xy: 957, 625 + xy: 621, 283 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper3 rotate: false - xy: 923, 557 + xy: 655, 283 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead1 rotate: false - xy: 957, 591 + xy: 689, 283 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead2 rotate: false - xy: 957, 557 + xy: 723, 283 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead3 rotate: false - xy: 991, 625 + xy: 579, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap1 rotate: false - xy: 991, 591 + xy: 361, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap2 rotate: false - xy: 1025, 625 + xy: 361, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap3 rotate: false - xy: 991, 557 + xy: 361, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium1 rotate: false - xy: 1025, 591 + xy: 1995, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium2 rotate: false - xy: 1059, 625 + xy: 1071, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium3 rotate: false - xy: 1025, 557 + xy: 1105, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium1 rotate: false - xy: 1059, 591 + xy: 1139, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium2 rotate: false - xy: 1093, 625 + xy: 1173, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium3 rotate: false - xy: 1059, 557 + xy: 1207, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles1 rotate: false - xy: 1093, 591 + xy: 1241, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles2 rotate: false - xy: 1127, 625 + xy: 1275, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles3 rotate: false - xy: 1093, 557 + xy: 1309, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-salt rotate: false - xy: 1127, 591 + xy: 1343, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-icon-editor rotate: false - xy: 1127, 591 + xy: 1343, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water1 rotate: false - xy: 1195, 625 + xy: 1479, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water2 rotate: false - xy: 1161, 557 + xy: 1513, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water3 rotate: false - xy: 1195, 591 + xy: 751, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand1 rotate: false - xy: 1161, 625 + xy: 1377, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-icon-editor rotate: false - xy: 1161, 625 + xy: 1377, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand2 rotate: false - xy: 1127, 557 + xy: 1411, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand3 rotate: false - xy: 1161, 591 + xy: 1445, 621 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale1 rotate: false - xy: 1229, 625 + xy: 785, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-icon-editor rotate: false - xy: 1229, 625 + xy: 785, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale2 rotate: false - xy: 1195, 557 + xy: 819, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale3 rotate: false - xy: 1229, 591 + xy: 853, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-slag rotate: false - xy: 1263, 625 + xy: 887, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag-icon-editor rotate: false - xy: 1263, 625 + xy: 887, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow1 rotate: false - xy: 1229, 557 + xy: 921, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow2 rotate: false - xy: 1263, 591 + xy: 955, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow3 rotate: false - xy: 1297, 625 + xy: 989, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spawn rotate: false - xy: 1263, 557 + xy: 1023, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss1 rotate: false - xy: 1297, 591 + xy: 1057, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-icon-editor rotate: false - xy: 1297, 591 + xy: 1057, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss2 rotate: false - xy: 1331, 625 + xy: 1091, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss3 rotate: false - xy: 1297, 557 + xy: 1125, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone1 rotate: false - xy: 1331, 591 + xy: 1159, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-icon-editor rotate: false - xy: 1331, 591 + xy: 1159, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone2 rotate: false - xy: 1365, 625 + xy: 1193, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone3 rotate: false - xy: 1331, 557 + xy: 1227, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tainted-water rotate: false - xy: 1365, 591 + xy: 1261, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-icon-editor rotate: false - xy: 1365, 591 + xy: 1261, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tar rotate: false - xy: 1399, 625 + xy: 1295, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-icon-editor rotate: false - xy: 1399, 625 + xy: 1295, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils1 rotate: false - xy: 1365, 557 + xy: 1329, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils2 rotate: false - xy: 1399, 591 + xy: 1363, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils3 rotate: false - xy: 1433, 625 + xy: 1397, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-water rotate: false - xy: 1399, 557 + xy: 1431, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-icon-editor rotate: false - xy: 1399, 557 + xy: 1431, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 exponential-reconstructor-icon-editor rotate: false - xy: 1, 149 + xy: 1, 145 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 force-projector-icon-editor rotate: false - xy: 485, 533 + xy: 485, 529 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 fuse-icon-editor rotate: false - xy: 711, 759 + xy: 711, 755 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press-icon-editor rotate: false - xy: 1533, 725 + xy: 1659, 753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ground-factory-icon-editor rotate: false - xy: 809, 791 + xy: 809, 787 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 hail-icon-editor rotate: false - xy: 1433, 591 + xy: 1465, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +hyper-processor-icon-editor + rotate: false + xy: 907, 787 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 icerocks-icon-editor rotate: false - xy: 1467, 625 + xy: 1499, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-icon-editor rotate: false - xy: 1433, 557 + xy: 735, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 impact-reactor-icon-editor rotate: false - xy: 775, 889 + xy: 775, 885 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 incinerator-icon-editor rotate: false - xy: 1467, 591 + xy: 769, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter-icon-editor rotate: false - xy: 1501, 625 + xy: 803, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source-icon-editor rotate: false - xy: 1467, 557 + xy: 837, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void-icon-editor rotate: false - xy: 1501, 591 + xy: 871, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction-icon-editor rotate: false - xy: 1535, 625 + xy: 905, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln-icon-editor rotate: false - xy: 1599, 757 + xy: 1725, 753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 lancer-icon-editor rotate: false - xy: 1665, 757 + xy: 1791, 753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill-icon-editor rotate: false - xy: 907, 791 + xy: 1005, 787 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-icon-editor rotate: false - xy: 1005, 791 + xy: 1103, 787 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large-icon-editor rotate: false - xy: 905, 889 + xy: 905, 885 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 liquid-junction-icon-editor rotate: false - xy: 1501, 557 + xy: 939, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-icon-editor rotate: false - xy: 1535, 591 + xy: 973, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source-icon-editor rotate: false - xy: 1535, 557 + xy: 1007, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-icon-editor rotate: false - xy: 1103, 791 + xy: 1201, 787 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-void-icon-editor rotate: false - xy: 617, 521 + xy: 1041, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-display-icon-editor rotate: false - xy: 1201, 791 + xy: 1299, 787 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor-icon-editor rotate: false - xy: 1731, 757 + xy: 1857, 753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -mass-conveyor-icon-editor - rotate: false - xy: 1299, 791 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 mass-driver-icon-editor rotate: false - xy: 1397, 791 + xy: 1397, 787 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill-icon-editor rotate: false - xy: 1797, 757 + xy: 1923, 753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-pump-icon-editor rotate: false - xy: 617, 487 + xy: 1075, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 meltdown-icon-editor rotate: false - xy: 1035, 889 + xy: 1035, 885 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 melter-icon-editor rotate: false - xy: 651, 521 + xy: 1109, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 memory-cell-icon-editor rotate: false - xy: 617, 453 + xy: 1143, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mend-projector-icon-editor rotate: false - xy: 1863, 757 + xy: 1103, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender-icon-editor rotate: false - xy: 651, 487 + xy: 1177, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 685, 521 + xy: 1211, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor-icon-editor rotate: false - xy: 617, 419 + xy: 1245, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press-icon-editor rotate: false - xy: 453, 435 + xy: 453, 431 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multiplicative-reconstructor-icon-editor rotate: false - xy: 613, 857 + xy: 613, 853 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 naval-factory-icon-editor rotate: false - xy: 1495, 791 + xy: 1495, 787 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-icon-editor rotate: false - xy: 1593, 823 + xy: 1593, 819 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-icon-editor rotate: false - xy: 1691, 823 + xy: 1691, 819 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector-icon-editor rotate: false - xy: 1929, 757 + xy: 1169, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overflow-gate-icon-editor rotate: false - xy: 651, 453 + xy: 1279, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 parallax-icon-editor rotate: false - xy: 551, 467 + xy: 1235, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +payload-conveyor-icon-editor + rotate: false + xy: 1789, 819 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 payload-router-icon-editor rotate: false - xy: 1789, 823 + xy: 1887, 819 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pebbles-icon-editor rotate: false - xy: 685, 487 + xy: 1313, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-editor rotate: false - xy: 719, 521 + xy: 1347, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 651, 419 + xy: 1381, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 685, 453 + xy: 1415, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large-icon-editor rotate: false - xy: 1005, 659 + xy: 1301, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-icon-editor rotate: false - xy: 1071, 659 + xy: 1367, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pine-icon-editor rotate: false - xy: 325, 191 + xy: 325, 187 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 plastanium-compressor-icon-editor rotate: false - xy: 1137, 659 + xy: 1433, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-conveyor-icon-editor rotate: false - xy: 719, 487 + xy: 1449, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-icon-editor rotate: false - xy: 753, 521 + xy: 1483, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large-icon-editor rotate: false - xy: 1203, 659 + xy: 1499, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plated-conduit-icon-editor rotate: false - xy: 787, 523 + xy: 1533, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pneumatic-drill-icon-editor rotate: false - xy: 1269, 659 + xy: 1565, 687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-node-icon-editor rotate: false - xy: 685, 419 + xy: 1517, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large-icon-editor rotate: false - xy: 1335, 659 + xy: 1631, 687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source-icon-editor rotate: false - xy: 719, 453 + xy: 1567, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 753, 487 + xy: 1551, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 787, 489 + xy: 1601, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 821, 523 + xy: 1585, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer-icon-editor rotate: false - xy: 1401, 659 + xy: 1697, 687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-icon-editor rotate: false - xy: 719, 419 + xy: 1635, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point-icon-editor rotate: false - xy: 1467, 659 + xy: 1763, 687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ripple-icon-editor rotate: false - xy: 1887, 823 + xy: 325, 335 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rock-icon-editor rotate: false - xy: 1985, 871 + xy: 1985, 867 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rocks-icon-editor rotate: false - xy: 753, 453 + xy: 1619, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-icon-editor rotate: false - xy: 1533, 659 + xy: 1829, 687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 router-icon-editor rotate: false - xy: 787, 455 + xy: 1669, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-icon-editor rotate: false - xy: 1599, 691 + xy: 1895, 687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 saltrocks-icon-editor rotate: false - xy: 821, 489 + xy: 1653, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salvo-icon-editor rotate: false - xy: 1665, 691 + xy: 551, 397 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sand-boulder-icon-editor rotate: false - xy: 855, 523 + xy: 1703, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 753, 419 + xy: 1687, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-icon-editor rotate: false - xy: 787, 421 + xy: 1737, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scatter-icon-editor rotate: false - xy: 1731, 691 + xy: 521, 331 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-icon-editor rotate: false - xy: 821, 455 + xy: 1721, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-gigantic-icon-editor rotate: false - xy: 1165, 889 + xy: 1165, 885 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge-icon-editor rotate: false - xy: 325, 339 + xy: 325, 237 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-icon-editor rotate: false - xy: 855, 489 + xy: 1771, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-large-icon-editor rotate: false - xy: 1797, 691 + xy: 521, 265 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 segment-icon-editor rotate: false - xy: 1863, 691 + xy: 1565, 621 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-icon-editor rotate: false - xy: 1929, 691 + xy: 1631, 621 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shale-boulder-icon-editor rotate: false - xy: 889, 523 + xy: 1755, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-icon-editor rotate: false - xy: 821, 421 + xy: 1805, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 855, 455 + xy: 1789, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 889, 489 + xy: 1839, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 silicon-crucible-icon-editor rotate: false - xy: 325, 241 + xy: 423, 333 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter-icon-editor rotate: false - xy: 551, 401 + xy: 1697, 621 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 snow-icon-editor rotate: false - xy: 923, 523 + xy: 1823, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-pine-icon-editor rotate: false - xy: 327, 141 + xy: 583, 543 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock-icon-editor rotate: false - xy: 327, 91 + xy: 715, 639 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrocks-icon-editor rotate: false - xy: 855, 421 + xy: 1873, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 889, 455 + xy: 1857, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large-icon-editor rotate: false - xy: 423, 337 + xy: 423, 235 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sorter-icon-editor rotate: false - xy: 923, 489 + xy: 1907, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 957, 523 + xy: 1891, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spectre-icon-editor rotate: false - xy: 1295, 889 + xy: 1295, 885 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spore-cluster-icon-editor rotate: false - xy: 1985, 829 + xy: 1985, 825 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-pine-icon-editor rotate: false - xy: 131, 1 + xy: 327, 137 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-press-icon-editor rotate: false - xy: 521, 335 + xy: 1763, 621 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sporerocks-icon-editor rotate: false - xy: 889, 421 + xy: 1925, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-tower-icon-editor rotate: false - xy: 521, 269 + xy: 1829, 621 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-icon-editor rotate: false - xy: 923, 455 + xy: 753, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large-icon-editor rotate: false - xy: 1599, 625 + xy: 1895, 621 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 swarmer-icon-editor rotate: false - xy: 1665, 625 + xy: 229, 11 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 switch-icon-editor rotate: false - xy: 957, 489 + xy: 753, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils-icon-editor rotate: false - xy: 991, 523 + xy: 787, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tetrative-reconstructor-icon-editor rotate: false - xy: 323, 729 + xy: 323, 725 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 thermal-generator-icon-editor rotate: false - xy: 1731, 625 + xy: 295, 11 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump-icon-editor rotate: false - xy: 423, 239 + xy: 809, 689 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-icon-editor rotate: false - xy: 809, 693 + xy: 907, 689 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-wall-icon-editor rotate: false - xy: 923, 421 + xy: 753, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large-icon-editor rotate: false - xy: 1797, 625 + xy: 583, 659 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster-icon-editor rotate: false - xy: 1425, 889 + xy: 1425, 885 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-conveyor-icon-editor rotate: false - xy: 957, 455 + xy: 787, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 991, 489 + xy: 821, 519 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large-icon-editor rotate: false - xy: 1863, 625 + xy: 583, 593 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-icon-editor rotate: false - xy: 1929, 625 + xy: 649, 689 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 underflow-gate-icon-editor rotate: false - xy: 1025, 523 + xy: 787, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-editor rotate: false - xy: 957, 421 + xy: 821, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault-icon-editor rotate: false - xy: 907, 693 + xy: 1005, 689 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 water-extractor-icon-editor rotate: false - xy: 229, 15 + xy: 649, 623 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-icon-editor rotate: false - xy: 295, 15 + xy: 715, 689 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 white-tree-dead-icon-editor rotate: false - xy: 1, 697 + xy: 1, 693 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 white-tree-icon-editor rotate: false - xy: 1, 375 + xy: 1, 371 size: 320, 320 orig: 320, 320 offset: 0, 0 @@ -10304,7 +10311,7 @@ alpha-bg index: -1 bar rotate: false - xy: 1748, 590 + xy: 1656, 379 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -10312,7 +10319,7 @@ bar index: -1 bar-top rotate: false - xy: 751, 578 + xy: 1659, 417 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -10327,7 +10334,7 @@ block-additive-reconstructor-large index: -1 block-additive-reconstructor-medium rotate: false - xy: 1071, 618 + xy: 957, 589 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -10341,7 +10348,7 @@ block-additive-reconstructor-small index: -1 block-additive-reconstructor-tiny rotate: false - xy: 719, 156 + xy: 301, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10362,21 +10369,21 @@ block-air-factory-large index: -1 block-air-factory-medium rotate: false - xy: 1109, 647 + xy: 995, 618 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-air-factory-small rotate: false - xy: 80, 2 + xy: 1013, 286 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-air-factory-tiny rotate: false - xy: 301, 1 + xy: 319, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10390,28 +10397,28 @@ block-air-factory-xlarge index: -1 block-alloy-smelter-large rotate: false - xy: 551, 274 + xy: 651, 374 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-alloy-smelter-medium rotate: false - xy: 1143, 647 + xy: 1029, 618 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 1808, 650 + xy: 971, 184 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 319, 1 + xy: 309, 698 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10425,28 +10432,28 @@ block-alloy-smelter-xlarge index: -1 block-arc-large rotate: false - xy: 601, 324 + xy: 701, 434 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-arc-medium rotate: false - xy: 1177, 647 + xy: 1071, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 106, 2 + xy: 1622, 355 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 337, 1 + xy: 331, 598 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10460,28 +10467,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 651, 374 + xy: 351, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 1211, 647 + xy: 1105, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 1808, 624 + xy: 703, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 719, 364 + xy: 1955, 740 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10495,35 +10502,35 @@ block-armored-conveyor-xlarge index: -1 block-battery-large rotate: false - xy: 701, 424 + xy: 451, 124 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-large rotate: false - xy: 351, 24 + xy: 501, 184 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-medium rotate: false - xy: 1245, 647 + xy: 1139, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-large-small rotate: false - xy: 1834, 650 + xy: 729, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-large-tiny rotate: false - xy: 309, 698 + xy: 309, 680 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10537,21 +10544,21 @@ block-battery-large-xlarge index: -1 block-battery-medium rotate: false - xy: 1279, 647 + xy: 1173, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-small rotate: false - xy: 1834, 624 + xy: 755, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-tiny rotate: false - xy: 331, 598 + xy: 331, 580 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10565,28 +10572,28 @@ block-battery-xlarge index: -1 block-blast-drill-large rotate: false - xy: 401, 74 + xy: 601, 274 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-drill-medium rotate: false - xy: 1313, 647 + xy: 1207, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-small rotate: false - xy: 1777, 587 + xy: 781, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-drill-tiny rotate: false - xy: 132, 10 + xy: 1955, 722 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10600,28 +10607,28 @@ block-blast-drill-xlarge index: -1 block-blast-mixer-large rotate: false - xy: 451, 124 + xy: 551, 224 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-mixer-medium rotate: false - xy: 1347, 647 + xy: 1241, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-mixer-small rotate: false - xy: 1860, 650 + xy: 807, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-mixer-tiny rotate: false - xy: 745, 116 + xy: 1955, 704 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10635,28 +10642,28 @@ block-blast-mixer-xlarge index: -1 block-block-forge-large rotate: false - xy: 501, 174 + xy: 543, 182 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-forge-medium rotate: false - xy: 1381, 647 + xy: 1949, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-forge-small rotate: false - xy: 1860, 624 + xy: 833, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-forge-tiny rotate: false - xy: 1057, 271 + xy: 1955, 686 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10670,28 +10677,28 @@ block-block-forge-xlarge index: -1 block-block-loader-large rotate: false - xy: 551, 232 + xy: 351, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-loader-medium rotate: false - xy: 1415, 647 + xy: 991, 584 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-loader-small rotate: false - xy: 1731, 554 + xy: 859, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-loader-tiny rotate: false - xy: 1083, 297 + xy: 1705, 542 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10705,28 +10712,28 @@ block-block-loader-xlarge index: -1 block-block-unloader-large rotate: false - xy: 551, 190 + xy: 401, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-unloader-medium rotate: false - xy: 1449, 647 + xy: 1025, 584 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-unloader-small rotate: false - xy: 1808, 598 + xy: 885, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-unloader-tiny rotate: false - xy: 1109, 323 + xy: 1705, 524 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10740,28 +10747,28 @@ block-block-unloader-xlarge index: -1 block-bridge-conduit-large rotate: false - xy: 751, 536 + xy: 393, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conduit-medium rotate: false - xy: 1483, 647 + xy: 1489, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conduit-small rotate: false - xy: 1834, 598 + xy: 911, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conduit-tiny rotate: false - xy: 309, 680 + xy: 1705, 506 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10775,28 +10782,28 @@ block-bridge-conduit-xlarge index: -1 block-bridge-conveyor-large rotate: false - xy: 751, 494 + xy: 501, 142 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conveyor-medium rotate: false - xy: 1517, 647 + xy: 1405, 710 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-small rotate: false - xy: 1860, 598 + xy: 937, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conveyor-tiny rotate: false - xy: 331, 580 + xy: 1727, 651 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10810,28 +10817,28 @@ block-bridge-conveyor-xlarge index: -1 block-char-large rotate: false - xy: 793, 536 + xy: 543, 140 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-char-medium rotate: false - xy: 1551, 647 + xy: 1063, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-small rotate: false - xy: 435, 6 + xy: 963, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-char-tiny rotate: false - xy: 1057, 253 + xy: 1727, 633 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10845,28 +10852,28 @@ block-char-xlarge index: -1 block-cliff-large rotate: false - xy: 793, 494 + xy: 701, 392 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliff-medium rotate: false - xy: 1585, 647 + xy: 1097, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliff-small rotate: false - xy: 461, 6 + xy: 1421, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliff-tiny rotate: false - xy: 1127, 323 + xy: 1727, 615 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10880,28 +10887,28 @@ block-cliff-xlarge index: -1 block-cliffs-large rotate: false - xy: 835, 536 + xy: 751, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliffs-medium rotate: false - xy: 1619, 647 + xy: 1131, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-small rotate: false - xy: 487, 14 + xy: 1447, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliffs-tiny rotate: false - xy: 1057, 235 + xy: 1727, 597 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10915,28 +10922,28 @@ block-cliffs-xlarge index: -1 block-coal-centrifuge-large rotate: false - xy: 835, 494 + xy: 751, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-coal-centrifuge-medium rotate: false - xy: 1653, 647 + xy: 1165, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-coal-centrifuge-small rotate: false - xy: 1803, 572 + xy: 1473, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-coal-centrifuge-tiny rotate: false - xy: 1145, 323 + xy: 1727, 579 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10950,28 +10957,28 @@ block-coal-centrifuge-xlarge index: -1 block-combustion-generator-large rotate: false - xy: 751, 452 + xy: 793, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-combustion-generator-medium rotate: false - xy: 1105, 613 + xy: 1199, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-combustion-generator-small rotate: false - xy: 1829, 572 + xy: 1499, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-combustion-generator-tiny rotate: false - xy: 1057, 217 + xy: 1727, 561 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10983,6624 +10990,6694 @@ block-combustion-generator-xlarge orig: 48, 48 offset: 0, 0 index: -1 -block-conduit-large +block-command-center-large rotate: false - xy: 793, 452 + xy: 793, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conduit-medium +block-command-center-medium rotate: false - xy: 1139, 613 + xy: 1233, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conduit-small +block-command-center-small rotate: false - xy: 1855, 572 + xy: 1525, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conduit-tiny +block-command-center-tiny rotate: false - xy: 1163, 323 + xy: 1031, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conduit-xlarge +block-command-center-xlarge rotate: false xy: 51, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-container-large +block-conduit-large rotate: false - xy: 835, 452 + xy: 835, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-container-medium +block-conduit-medium rotate: false - xy: 1173, 613 + xy: 1059, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-container-small +block-conduit-small rotate: false - xy: 1881, 572 + xy: 1551, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-container-tiny +block-conduit-tiny rotate: false - xy: 1057, 199 + xy: 1049, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-container-xlarge +block-conduit-xlarge rotate: false xy: 1, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conveyor-large +block-container-large rotate: false - xy: 743, 410 + xy: 835, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conveyor-medium +block-container-medium rotate: false - xy: 1207, 613 + xy: 1093, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conveyor-small +block-container-small rotate: false - xy: 1859, 768 + xy: 1648, 353 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conveyor-tiny +block-container-tiny rotate: false - xy: 1181, 323 + xy: 1067, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conveyor-xlarge +block-container-xlarge rotate: false xy: 51, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-large +block-conveyor-large rotate: false - xy: 785, 410 + xy: 751, 452 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-copper-wall-large-large +block-conveyor-medium rotate: false - xy: 827, 410 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-copper-wall-large-medium - rotate: false - xy: 1241, 613 + xy: 1127, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-large-small +block-conveyor-small rotate: false - xy: 1885, 768 + xy: 1387, 310 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-large-tiny +block-conveyor-tiny rotate: false - xy: 1057, 181 + xy: 1085, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-large-xlarge +block-conveyor-xlarge rotate: false xy: 1, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-medium +block-copper-wall-large rotate: false - xy: 1275, 613 + xy: 793, 452 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-copper-wall-large-large + rotate: false + xy: 835, 452 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-copper-wall-large-medium + rotate: false + xy: 1161, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-small +block-copper-wall-large-small rotate: false - xy: 1911, 768 + xy: 2017, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-tiny +block-copper-wall-large-tiny rotate: false - xy: 1199, 323 + xy: 1103, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-xlarge +block-copper-wall-large-xlarge rotate: false xy: 51, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-foundation-large +block-copper-wall-medium rotate: false - xy: 701, 382 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-core-foundation-medium - rotate: false - xy: 1309, 613 + xy: 1195, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-foundation-small +block-copper-wall-small rotate: false - xy: 1937, 768 + xy: 1039, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-foundation-tiny +block-copper-wall-tiny rotate: false - xy: 1217, 323 + xy: 1121, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-foundation-xlarge +block-copper-wall-xlarge rotate: false xy: 1, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-nucleus-large +block-core-foundation-large rotate: false - xy: 743, 368 + xy: 743, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-nucleus-medium +block-core-foundation-medium rotate: false - xy: 1343, 613 + xy: 1229, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-nucleus-small +block-core-foundation-small rotate: false - xy: 1963, 768 + xy: 1065, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-nucleus-tiny +block-core-foundation-tiny rotate: false - xy: 1235, 323 + xy: 1139, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-nucleus-xlarge +block-core-foundation-xlarge rotate: false xy: 51, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-shard-large +block-core-nucleus-large rotate: false - xy: 785, 368 + xy: 785, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-shard-medium - rotate: false - xy: 1377, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-core-shard-small - rotate: false - xy: 1989, 768 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-core-shard-tiny - rotate: false - xy: 1253, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-core-shard-xlarge - rotate: false - xy: 1, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-craters-large - rotate: false - xy: 827, 368 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-craters-medium - rotate: false - xy: 1411, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-craters-small - rotate: false - xy: 2015, 779 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-craters-tiny - rotate: false - xy: 1271, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-craters-xlarge - rotate: false - xy: 51, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-cryofluidmixer-large - rotate: false - xy: 593, 274 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cryofluidmixer-medium - rotate: false - xy: 1445, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cryofluidmixer-small - rotate: false - xy: 2015, 753 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cryofluidmixer-tiny - rotate: false - xy: 1289, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-cryofluidmixer-xlarge - rotate: false - xy: 51, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-cultivator-large - rotate: false - xy: 593, 232 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cultivator-medium - rotate: false - xy: 1479, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cultivator-small - rotate: false - xy: 1877, 684 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cultivator-tiny - rotate: false - xy: 1307, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-cultivator-xlarge - rotate: false - xy: 857, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-cyclone-large - rotate: false - xy: 593, 190 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cyclone-medium - rotate: false - xy: 1513, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cyclone-small - rotate: false - xy: 1886, 658 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cyclone-tiny - rotate: false - xy: 1325, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-cyclone-xlarge - rotate: false - xy: 907, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-metal-large - rotate: false - xy: 643, 324 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-metal-medium - rotate: false - xy: 1547, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-metal-small - rotate: false - xy: 1886, 632 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-metal-tiny - rotate: false - xy: 1343, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-metal-xlarge - rotate: false - xy: 957, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-1-large - rotate: false - xy: 635, 282 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-1-medium - rotate: false - xy: 1581, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-1-small - rotate: false - xy: 1886, 606 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-1-tiny - rotate: false - xy: 1361, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-1-xlarge - rotate: false - xy: 1007, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-2-large - rotate: false - xy: 635, 240 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-2-medium - rotate: false - xy: 1615, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-2-small - rotate: false - xy: 1881, 742 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-2-tiny - rotate: false - xy: 1379, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-2-xlarge - rotate: false - xy: 1057, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-3-large - rotate: false - xy: 635, 198 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-3-medium - rotate: false - xy: 1649, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-3-small - rotate: false - xy: 1881, 716 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-3-tiny - rotate: false - xy: 1397, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-3-xlarge - rotate: false - xy: 1107, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-4-large - rotate: false - xy: 393, 24 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-4-medium - rotate: false - xy: 1071, 584 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-4-small - rotate: false - xy: 1907, 742 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-4-tiny - rotate: false - xy: 1415, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-4-xlarge - rotate: false - xy: 1157, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-5-large - rotate: false - xy: 443, 74 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-5-medium - rotate: false - xy: 1105, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-5-small - rotate: false - xy: 1933, 742 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-5-tiny - rotate: false - xy: 1433, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-5-xlarge - rotate: false - xy: 1207, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-6-large - rotate: false - xy: 435, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-6-medium - rotate: false - xy: 1139, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-6-small - rotate: false - xy: 1907, 716 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-6-tiny - rotate: false - xy: 1451, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dark-panel-6-xlarge - rotate: false - xy: 1257, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-darksand-large - rotate: false - xy: 493, 124 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-medium - rotate: false - xy: 1173, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-small - rotate: false - xy: 1959, 742 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-large - rotate: false - xy: 485, 82 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-medium - rotate: false - xy: 1207, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-small - rotate: false - xy: 1933, 716 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-tiny - rotate: false - xy: 1469, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-xlarge - rotate: false - xy: 1307, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-darksand-tiny - rotate: false - xy: 1487, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-water-large - rotate: false - xy: 543, 148 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-water-medium - rotate: false - xy: 1241, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-water-small - rotate: false - xy: 1985, 742 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-water-tiny - rotate: false - xy: 1505, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-water-xlarge - rotate: false - xy: 1357, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-darksand-xlarge - rotate: false - xy: 1407, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-deepwater-large - rotate: false - xy: 585, 148 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-deepwater-medium - rotate: false - xy: 1275, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-deepwater-small - rotate: false - xy: 1959, 716 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-deepwater-tiny - rotate: false - xy: 1523, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-deepwater-xlarge - rotate: false - xy: 1457, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-differential-generator-large - rotate: false - xy: 535, 106 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-differential-generator-medium - rotate: false - xy: 1309, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-differential-generator-small - rotate: false - xy: 1985, 716 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-differential-generator-tiny - rotate: false - xy: 1541, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-differential-generator-xlarge - rotate: false - xy: 1507, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-diode-large - rotate: false - xy: 577, 106 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-diode-medium - rotate: false - xy: 1343, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-diode-small - rotate: false - xy: 2011, 727 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-diode-tiny - rotate: false - xy: 1559, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-diode-xlarge - rotate: false - xy: 1557, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-disassembler-large - rotate: false - xy: 527, 64 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-disassembler-medium - rotate: false - xy: 1377, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-disassembler-small - rotate: false - xy: 1903, 690 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-disassembler-tiny - rotate: false - xy: 1577, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-disassembler-xlarge - rotate: false - xy: 1607, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-distributor-large - rotate: false - xy: 569, 64 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-distributor-medium - rotate: false - xy: 1411, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-distributor-small - rotate: false - xy: 1929, 690 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-distributor-tiny - rotate: false - xy: 1595, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-distributor-xlarge - rotate: false - xy: 1657, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-door-large - rotate: false - xy: 485, 40 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-large - rotate: false - xy: 527, 22 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-medium - rotate: false - xy: 1445, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-door-large-small - rotate: false - xy: 1955, 690 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-door-large-tiny - rotate: false - xy: 1613, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-door-large-xlarge - rotate: false - xy: 1707, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-door-medium - rotate: false - xy: 1479, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-door-small - rotate: false - xy: 1981, 690 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-door-tiny - rotate: false - xy: 1631, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-door-xlarge - rotate: false - xy: 1757, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dunerocks-large - rotate: false - xy: 569, 22 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dunerocks-medium - rotate: false - xy: 1513, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dunerocks-small - rotate: false - xy: 1912, 664 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dunerocks-tiny - rotate: false - xy: 1649, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-dunerocks-xlarge - rotate: false - xy: 1807, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-duo-large - rotate: false - xy: 869, 410 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-duo-medium - rotate: false - xy: 1547, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-duo-small - rotate: false - xy: 1912, 638 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-duo-tiny - rotate: false - xy: 1667, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-duo-xlarge - rotate: false - xy: 1857, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-exponential-reconstructor-large - rotate: false - xy: 869, 368 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-exponential-reconstructor-medium - rotate: false - xy: 1581, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-exponential-reconstructor-small - rotate: false - xy: 1938, 664 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-exponential-reconstructor-tiny - rotate: false - xy: 1685, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-exponential-reconstructor-xlarge - rotate: false - xy: 1907, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-force-projector-large - rotate: false - xy: 677, 282 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-force-projector-medium - rotate: false - xy: 1615, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-force-projector-small - rotate: false - xy: 1912, 612 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-force-projector-tiny - rotate: false - xy: 1703, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-force-projector-xlarge - rotate: false - xy: 1957, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-fuse-large - rotate: false - xy: 677, 240 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-fuse-medium - rotate: false - xy: 1649, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-fuse-small - rotate: false - xy: 1938, 638 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-fuse-tiny - rotate: false - xy: 1721, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-fuse-xlarge - rotate: false - xy: 345, 866 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-graphite-press-large - rotate: false - xy: 677, 198 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-graphite-press-medium +block-core-nucleus-medium rotate: false xy: 1979, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-graphite-press-small +block-core-nucleus-small rotate: false - xy: 1964, 664 + xy: 1091, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-graphite-press-tiny +block-core-nucleus-tiny rotate: false - xy: 1739, 323 + xy: 1157, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-graphite-press-xlarge +block-core-nucleus-xlarge rotate: false - xy: 395, 866 + xy: 1, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-grass-large +block-core-shard-large rotate: false - xy: 635, 156 + xy: 827, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-grass-medium +block-core-shard-medium rotate: false xy: 2013, 907 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-grass-small +block-core-shard-small rotate: false - xy: 1938, 612 + xy: 1117, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-grass-tiny +block-core-shard-tiny rotate: false - xy: 1057, 163 + xy: 1175, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-grass-xlarge +block-core-shard-xlarge rotate: false - xy: 445, 866 + xy: 51, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ground-factory-large +block-craters-large rotate: false - xy: 677, 156 + xy: 743, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ground-factory-medium +block-craters-medium rotate: false - xy: 1981, 865 + xy: 1983, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ground-factory-small +block-craters-small rotate: false - xy: 1964, 638 + xy: 1143, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ground-factory-tiny +block-craters-tiny rotate: false - xy: 355, 6 + xy: 1193, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ground-factory-xlarge +block-craters-xlarge rotate: false - xy: 495, 866 + xy: 51, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hail-large +block-cryofluidmixer-large rotate: false - xy: 619, 106 + xy: 785, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hail-medium - rotate: false - xy: 2015, 873 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-hail-small - rotate: false - xy: 1964, 612 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-hail-tiny - rotate: false - xy: 373, 6 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-hail-xlarge - rotate: false - xy: 545, 866 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-holostone-large - rotate: false - xy: 611, 64 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-holostone-medium - rotate: false - xy: 2015, 839 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-holostone-small - rotate: false - xy: 1990, 664 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-holostone-tiny - rotate: false - xy: 391, 6 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-holostone-xlarge - rotate: false - xy: 595, 866 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-hotrock-large - rotate: false - xy: 611, 22 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-hotrock-medium - rotate: false - xy: 1981, 831 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-hotrock-small - rotate: false - xy: 1990, 638 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-hotrock-tiny - rotate: false - xy: 409, 6 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-hotrock-xlarge - rotate: false - xy: 645, 866 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ice-large - rotate: false - xy: 661, 114 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-medium - rotate: false - xy: 2015, 805 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-small - rotate: false - xy: 1990, 612 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ice-snow-large - rotate: false - xy: 703, 114 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-snow-medium +block-cryofluidmixer-medium rotate: false xy: 881, 560 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-snow-small +block-cryofluidmixer-small rotate: false - xy: 2007, 690 + xy: 1169, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ice-snow-tiny +block-cryofluidmixer-tiny rotate: false - xy: 1851, 750 + xy: 1211, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-snow-xlarge +block-cryofluidmixer-xlarge rotate: false - xy: 695, 866 + xy: 857, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-tiny +block-cultivator-large rotate: false - xy: 1757, 572 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ice-xlarge - rotate: false - xy: 101, 478 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-icerocks-large - rotate: false - xy: 653, 64 + xy: 827, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-icerocks-medium - rotate: false - xy: 915, 560 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-icerocks-small - rotate: false - xy: 2016, 664 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-icerocks-tiny - rotate: false - xy: 1757, 554 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-icerocks-xlarge - rotate: false - xy: 101, 428 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ignarock-large - rotate: false - xy: 653, 22 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ignarock-medium - rotate: false - xy: 949, 560 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ignarock-small - rotate: false - xy: 2016, 638 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ignarock-tiny - rotate: false - xy: 1775, 569 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ignarock-xlarge - rotate: false - xy: 101, 378 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-illuminator-large - rotate: false - xy: 695, 72 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-illuminator-medium - rotate: false - xy: 983, 560 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-illuminator-small - rotate: false - xy: 2016, 612 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-illuminator-tiny - rotate: false - xy: 1775, 551 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-illuminator-xlarge - rotate: false - xy: 101, 328 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-impact-reactor-large - rotate: false - xy: 695, 30 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-impact-reactor-medium - rotate: false - xy: 1017, 560 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-impact-reactor-small - rotate: false - xy: 1912, 586 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-impact-reactor-tiny - rotate: false - xy: 1075, 271 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-impact-reactor-xlarge - rotate: false - xy: 101, 278 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-incinerator-large - rotate: false - xy: 737, 72 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-incinerator-medium +block-cultivator-medium rotate: false xy: 877, 526 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-incinerator-small +block-cultivator-small rotate: false - xy: 1938, 586 + xy: 1195, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-incinerator-tiny +block-cultivator-tiny rotate: false - xy: 1075, 253 + xy: 1229, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-incinerator-xlarge +block-cultivator-xlarge rotate: false - xy: 101, 228 + xy: 907, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-inverted-sorter-large +block-cyclone-large rotate: false - xy: 737, 30 + xy: 493, 100 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-inverted-sorter-medium - rotate: false - xy: 911, 526 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-inverted-sorter-small - rotate: false - xy: 1964, 586 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-inverted-sorter-tiny - rotate: false - xy: 1075, 235 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-inverted-sorter-xlarge - rotate: false - xy: 101, 178 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-item-source-large - rotate: false - xy: 821, 933 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-item-source-medium +block-cyclone-medium rotate: false xy: 877, 492 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-source-small +block-cyclone-small rotate: false - xy: 1990, 586 + xy: 1221, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-source-tiny +block-cyclone-tiny rotate: false - xy: 1075, 217 + xy: 1247, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-source-xlarge +block-cyclone-xlarge rotate: false - xy: 101, 128 + xy: 957, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-void-large +block-dark-metal-large rotate: false - xy: 863, 933 + xy: 451, 82 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-void-medium - rotate: false - xy: 911, 492 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-item-void-small - rotate: false - xy: 2016, 586 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-item-void-tiny - rotate: false - xy: 1075, 199 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-item-void-xlarge - rotate: false - xy: 101, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-junction-large - rotate: false - xy: 905, 933 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-junction-medium - rotate: false - xy: 945, 526 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-junction-small - rotate: false - xy: 1907, 560 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-junction-tiny - rotate: false - xy: 1075, 181 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-junction-xlarge - rotate: false - xy: 101, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-kiln-large - rotate: false - xy: 947, 933 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-kiln-medium +block-dark-metal-medium rotate: false xy: 877, 458 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-kiln-small +block-dark-metal-small rotate: false - xy: 1933, 560 + xy: 1247, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-kiln-tiny +block-dark-metal-tiny rotate: false - xy: 1075, 163 + xy: 1265, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-kiln-xlarge +block-dark-metal-xlarge + rotate: false + xy: 1007, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-1-large + rotate: false + xy: 535, 98 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-1-medium + rotate: false + xy: 915, 547 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-1-small + rotate: false + xy: 1273, 281 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-1-tiny + rotate: false + xy: 1283, 211 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-1-xlarge + rotate: false + xy: 1057, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-2-large + rotate: false + xy: 493, 58 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-2-medium + rotate: false + xy: 911, 513 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-2-small + rotate: false + xy: 1299, 281 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-2-tiny + rotate: false + xy: 1301, 211 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-2-xlarge + rotate: false + xy: 1107, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-3-large + rotate: false + xy: 535, 56 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-3-medium + rotate: false + xy: 911, 479 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-3-small + rotate: false + xy: 1325, 294 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-3-tiny + rotate: false + xy: 1747, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-3-xlarge + rotate: false + xy: 1157, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-4-large + rotate: false + xy: 693, 350 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-4-medium + rotate: false + xy: 911, 445 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-4-small + rotate: false + xy: 1351, 294 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-4-tiny + rotate: false + xy: 1765, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-4-xlarge + rotate: false + xy: 1207, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-5-large + rotate: false + xy: 651, 332 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-5-medium + rotate: false + xy: 911, 411 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-5-small + rotate: false + xy: 1325, 268 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-5-tiny + rotate: false + xy: 1783, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-5-xlarge + rotate: false + xy: 1257, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-6-large + rotate: false + xy: 693, 308 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-6-medium + rotate: false + xy: 911, 377 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-6-small + rotate: false + xy: 1351, 268 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-6-tiny + rotate: false + xy: 1801, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-6-xlarge + rotate: false + xy: 1307, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-darksand-large + rotate: false + xy: 735, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-medium + rotate: false + xy: 957, 555 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-small + rotate: false + xy: 1377, 284 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-large + rotate: false + xy: 777, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-medium + rotate: false + xy: 991, 550 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-small + rotate: false + xy: 1377, 258 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-tiny + rotate: false + xy: 1819, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-xlarge + rotate: false + xy: 1357, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-darksand-tiny + rotate: false + xy: 1837, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-large + rotate: false + xy: 819, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-water-medium + rotate: false + xy: 1025, 550 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-water-small + rotate: false + xy: 1693, 463 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-water-tiny + rotate: false + xy: 1855, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-xlarge + rotate: false + xy: 1407, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-darksand-xlarge + rotate: false + xy: 1457, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-deepwater-large + rotate: false + xy: 735, 284 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-deepwater-medium + rotate: false + xy: 1059, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-deepwater-small + rotate: false + xy: 1674, 353 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-deepwater-tiny + rotate: false + xy: 1873, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-deepwater-xlarge + rotate: false + xy: 1507, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-differential-generator-large + rotate: false + xy: 777, 284 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-differential-generator-medium + rotate: false + xy: 1093, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-differential-generator-small + rotate: false + xy: 1622, 329 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-differential-generator-tiny + rotate: false + xy: 1891, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-differential-generator-xlarge + rotate: false + xy: 1557, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-diode-large + rotate: false + xy: 819, 284 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-diode-medium + rotate: false + xy: 1127, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-diode-small + rotate: false + xy: 1648, 327 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-diode-tiny + rotate: false + xy: 1909, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-diode-xlarge + rotate: false + xy: 1607, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-disassembler-large + rotate: false + xy: 646, 290 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-disassembler-medium + rotate: false + xy: 1161, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-disassembler-small + rotate: false + xy: 1674, 327 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-disassembler-tiny + rotate: false + xy: 1927, 662 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-disassembler-xlarge + rotate: false + xy: 1657, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-distributor-large + rotate: false + xy: 643, 248 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-distributor-medium + rotate: false + xy: 1195, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-distributor-small + rotate: false + xy: 1403, 284 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-distributor-tiny + rotate: false + xy: 1745, 644 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-distributor-xlarge + rotate: false + xy: 1707, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-door-large + rotate: false + xy: 601, 232 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-large + rotate: false + xy: 643, 206 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-medium + rotate: false + xy: 1229, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-door-large-small + rotate: false + xy: 1403, 258 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-door-large-tiny + rotate: false + xy: 1763, 644 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-door-large-xlarge + rotate: false + xy: 1757, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-door-medium + rotate: false + xy: 1485, 761 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-door-small + rotate: false + xy: 1429, 301 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-door-tiny + rotate: false + xy: 1745, 626 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-door-xlarge + rotate: false + xy: 1807, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dunerocks-large + rotate: false + xy: 688, 266 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dunerocks-medium + rotate: false + xy: 603, 4 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dunerocks-small + rotate: false + xy: 1429, 275 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dunerocks-tiny + rotate: false + xy: 1763, 626 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dunerocks-xlarge + rotate: false + xy: 1857, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-duo-large + rotate: false + xy: 685, 224 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-duo-medium + rotate: false + xy: 1397, 676 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-duo-small + rotate: false + xy: 1455, 301 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-duo-tiny + rotate: false + xy: 1781, 644 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-duo-xlarge + rotate: false + xy: 1907, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-exponential-reconstructor-large + rotate: false + xy: 685, 182 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-exponential-reconstructor-medium + rotate: false + xy: 1267, 613 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-exponential-reconstructor-small + rotate: false + xy: 1455, 275 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-exponential-reconstructor-tiny + rotate: false + xy: 1745, 608 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-exponential-reconstructor-xlarge + rotate: false + xy: 1957, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-force-projector-large + rotate: false + xy: 730, 242 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-force-projector-medium + rotate: false + xy: 1263, 579 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-force-projector-small + rotate: false + xy: 1481, 301 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-force-projector-tiny + rotate: false + xy: 1763, 608 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-force-projector-xlarge + rotate: false + xy: 345, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-fuse-large + rotate: false + xy: 772, 242 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-fuse-medium + rotate: false + xy: 1263, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-fuse-small + rotate: false + xy: 1481, 275 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-fuse-tiny + rotate: false + xy: 1781, 626 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-fuse-xlarge + rotate: false + xy: 395, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-graphite-press-large + rotate: false + xy: 814, 242 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-graphite-press-medium + rotate: false + xy: 1275, 647 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-graphite-press-small + rotate: false + xy: 1507, 301 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-graphite-press-tiny + rotate: false + xy: 1799, 644 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-graphite-press-xlarge + rotate: false + xy: 445, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-grass-large + rotate: false + xy: 727, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-grass-medium + rotate: false + xy: 1983, 831 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-grass-small + rotate: false + xy: 1507, 275 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-grass-tiny + rotate: false + xy: 1745, 590 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-grass-xlarge + rotate: false + xy: 495, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ground-factory-large + rotate: false + xy: 769, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ground-factory-medium + rotate: false + xy: 1431, 676 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ground-factory-small + rotate: false + xy: 1533, 301 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ground-factory-tiny + rotate: false + xy: 1763, 590 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ground-factory-xlarge + rotate: false + xy: 545, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-hail-large + rotate: false + xy: 811, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-hail-medium + rotate: false + xy: 1439, 710 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hail-small + rotate: false + xy: 1533, 275 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-hail-tiny + rotate: false + xy: 1781, 608 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-hail-xlarge + rotate: false + xy: 595, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-holostone-large + rotate: false + xy: 727, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-holostone-medium + rotate: false + xy: 1447, 744 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-holostone-small + rotate: false + xy: 1559, 301 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-holostone-tiny + rotate: false + xy: 1799, 626 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-holostone-xlarge + rotate: false + xy: 645, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-hotrock-large + rotate: false + xy: 769, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-hotrock-medium + rotate: false + xy: 1481, 727 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hotrock-small + rotate: false + xy: 1559, 275 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-hotrock-tiny + rotate: false + xy: 1817, 644 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-hotrock-xlarge + rotate: false + xy: 695, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-hyper-processor-large + rotate: false + xy: 811, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-hyper-processor-medium + rotate: false + xy: 1473, 693 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hyper-processor-small + rotate: false + xy: 1429, 249 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-hyper-processor-tiny + rotate: false + xy: 1745, 572 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-hyper-processor-xlarge + rotate: false + xy: 101, 478 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ice-large + rotate: false + xy: 869, 410 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-medium + rotate: false + xy: 1465, 659 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-small + rotate: false + xy: 1455, 249 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-snow-large + rotate: false + xy: 869, 368 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-snow-medium + rotate: false + xy: 1301, 613 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-snow-small + rotate: false + xy: 1481, 249 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-snow-tiny + rotate: false + xy: 1763, 572 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ice-snow-xlarge + rotate: false + xy: 101, 428 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ice-tiny + rotate: false + xy: 1781, 590 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ice-xlarge + rotate: false + xy: 101, 378 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-icerocks-large + rotate: false + xy: 861, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-icerocks-medium + rotate: false + xy: 1297, 579 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-icerocks-small + rotate: false + xy: 1507, 249 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-icerocks-tiny + rotate: false + xy: 1799, 608 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-icerocks-xlarge + rotate: false + xy: 101, 328 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ignarock-large + rotate: false + xy: 861, 284 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ignarock-medium + rotate: false + xy: 1297, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ignarock-small + rotate: false + xy: 1533, 249 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ignarock-tiny + rotate: false + xy: 1817, 626 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ignarock-xlarge + rotate: false + xy: 101, 278 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-illuminator-large + rotate: false + xy: 856, 242 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-illuminator-medium + rotate: false + xy: 1507, 693 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-illuminator-small + rotate: false + xy: 1559, 249 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-illuminator-tiny + rotate: false + xy: 1835, 644 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-illuminator-xlarge + rotate: false + xy: 101, 228 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-impact-reactor-large + rotate: false + xy: 853, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-impact-reactor-medium + rotate: false + xy: 1499, 659 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-impact-reactor-small + rotate: false + xy: 997, 184 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-impact-reactor-tiny + rotate: false + xy: 1781, 572 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-impact-reactor-xlarge + rotate: false + xy: 101, 178 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-incinerator-large + rotate: false + xy: 853, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-incinerator-medium + rotate: false + xy: 1515, 727 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-incinerator-small + rotate: false + xy: 989, 6 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-incinerator-tiny + rotate: false + xy: 1799, 590 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-incinerator-xlarge + rotate: false + xy: 101, 128 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-inverted-sorter-large + rotate: false + xy: 577, 98 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-inverted-sorter-medium + rotate: false + xy: 1519, 761 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-inverted-sorter-small + rotate: false + xy: 1693, 437 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-inverted-sorter-tiny + rotate: false + xy: 1817, 608 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-inverted-sorter-xlarge + rotate: false + xy: 101, 78 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-item-source-large + rotate: false + xy: 577, 56 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-item-source-medium + rotate: false + xy: 1523, 795 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-item-source-small + rotate: false + xy: 1688, 411 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-item-source-tiny + rotate: false + xy: 1835, 626 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-item-source-xlarge + rotate: false + xy: 101, 28 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-item-void-large + rotate: false + xy: 585, 140 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-item-void-medium + rotate: false + xy: 1533, 659 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-item-void-small + rotate: false + xy: 1685, 385 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-item-void-tiny + rotate: false + xy: 1853, 644 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-item-void-xlarge rotate: false xy: 231, 608 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-lancer-large +block-junction-large rotate: false - xy: 989, 933 + xy: 585, 182 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-lancer-medium +block-junction-medium rotate: false - xy: 911, 458 + xy: 1541, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-lancer-small +block-junction-small rotate: false - xy: 1959, 560 + xy: 1013, 260 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-lancer-tiny +block-junction-tiny rotate: false - xy: 1101, 297 + xy: 1799, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-lancer-xlarge +block-junction-xlarge rotate: false xy: 231, 558 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-laser-drill-large +block-kiln-large rotate: false - xy: 1031, 933 + xy: 627, 164 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-laser-drill-medium +block-kiln-medium rotate: false - xy: 945, 492 + xy: 1549, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-laser-drill-small +block-kiln-small rotate: false - xy: 1985, 560 + xy: 1039, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-laser-drill-tiny +block-kiln-tiny rotate: false - xy: 1093, 279 + xy: 1817, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-laser-drill-xlarge +block-kiln-xlarge rotate: false xy: 745, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-large +block-lancer-large rotate: false - xy: 1073, 933 + xy: 627, 122 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-launch-pad-large-large +block-lancer-medium rotate: false - xy: 1115, 933 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-launch-pad-large-medium - rotate: false - xy: 979, 526 + xy: 1553, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-large-small +block-lancer-small rotate: false - xy: 2011, 560 + xy: 1065, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-large-tiny +block-lancer-tiny rotate: false - xy: 1093, 261 + xy: 1835, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-large-xlarge +block-lancer-xlarge rotate: false xy: 151, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-medium +block-laser-drill-large rotate: false - xy: 945, 458 + xy: 619, 80 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-laser-drill-medium + rotate: false + xy: 1567, 659 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-small +block-laser-drill-small rotate: false - xy: 693, 356 + xy: 1091, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-tiny +block-laser-drill-tiny rotate: false - xy: 1093, 243 + xy: 1853, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-xlarge +block-laser-drill-xlarge rotate: false xy: 151, 458 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-junction-large +block-launch-pad-large rotate: false - xy: 1157, 933 + xy: 669, 140 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-junction-medium +block-launch-pad-large-large rotate: false - xy: 979, 492 + xy: 619, 38 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-launch-pad-large-medium + rotate: false + xy: 1575, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-junction-small +block-launch-pad-large-small rotate: false - xy: 685, 330 + xy: 1117, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-junction-tiny +block-launch-pad-large-tiny rotate: false - xy: 1093, 225 + xy: 1871, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-junction-xlarge +block-launch-pad-large-xlarge rotate: false xy: 201, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-router-large +block-launch-pad-medium rotate: false - xy: 1199, 933 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-router-medium - rotate: false - xy: 1013, 526 + xy: 1583, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-router-small +block-launch-pad-small rotate: false - xy: 711, 330 + xy: 1143, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-router-tiny +block-launch-pad-tiny rotate: false - xy: 1093, 207 + xy: 1817, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-router-xlarge +block-launch-pad-xlarge rotate: false xy: 151, 408 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-source-large +block-liquid-junction-large rotate: false - xy: 1241, 933 + xy: 669, 98 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-source-medium +block-liquid-junction-medium rotate: false - xy: 979, 458 + xy: 1601, 659 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-source-small +block-liquid-junction-small rotate: false - xy: 719, 304 + xy: 1169, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-source-tiny +block-liquid-junction-tiny rotate: false - xy: 1093, 189 + xy: 1835, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-source-xlarge +block-liquid-junction-xlarge rotate: false xy: 201, 458 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-tank-large +block-liquid-router-large rotate: false - xy: 1283, 933 + xy: 661, 56 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-tank-medium +block-liquid-router-medium rotate: false - xy: 1013, 492 + xy: 1609, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-tank-small +block-liquid-router-small rotate: false - xy: 719, 278 + xy: 1195, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-tank-tiny +block-liquid-router-tiny rotate: false - xy: 1093, 171 + xy: 1853, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-tank-xlarge +block-liquid-router-xlarge rotate: false xy: 151, 358 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-void-large +block-liquid-source-large rotate: false - xy: 1325, 933 + xy: 711, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-void-medium +block-liquid-source-medium rotate: false - xy: 1013, 458 + xy: 1635, 659 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-void-small +block-liquid-source-small rotate: false - xy: 719, 252 + xy: 1221, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-void-tiny +block-liquid-source-tiny rotate: false - xy: 1119, 305 + xy: 1871, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-void-xlarge +block-liquid-source-xlarge rotate: false xy: 201, 408 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-logic-display-large +block-liquid-tank-large rotate: false - xy: 1367, 933 + xy: 753, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-logic-display-medium +block-liquid-tank-medium rotate: false - xy: 911, 424 + xy: 1321, 660 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-logic-display-small +block-liquid-tank-small rotate: false - xy: 719, 226 + xy: 1247, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-logic-display-tiny +block-liquid-tank-tiny rotate: false - xy: 1137, 305 + xy: 1889, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-logic-display-xlarge +block-liquid-tank-xlarge rotate: false xy: 151, 308 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-logic-processor-large +block-liquid-void-large rotate: false - xy: 1409, 933 + xy: 795, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-logic-processor-medium +block-liquid-void-medium rotate: false - xy: 911, 390 + xy: 1355, 660 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-logic-processor-small +block-liquid-void-small rotate: false - xy: 719, 200 + xy: 1273, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-logic-processor-tiny +block-liquid-void-tiny rotate: false - xy: 1155, 305 + xy: 1835, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-logic-processor-xlarge +block-liquid-void-xlarge rotate: false xy: 201, 358 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-magmarock-large +block-logic-display-large rotate: false - xy: 1451, 933 + xy: 837, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-magmarock-medium +block-logic-display-medium rotate: false - xy: 945, 424 + xy: 1335, 626 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-magmarock-small +block-logic-display-small rotate: false - xy: 719, 174 + xy: 1299, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-magmarock-tiny +block-logic-display-tiny rotate: false - xy: 1173, 305 + xy: 1853, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-magmarock-xlarge +block-logic-display-xlarge rotate: false xy: 151, 258 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-conveyor-large +block-logic-processor-large rotate: false - xy: 1493, 933 + xy: 661, 14 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-conveyor-medium +block-logic-processor-medium rotate: false - xy: 945, 390 + xy: 1369, 626 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-conveyor-small +block-logic-processor-small rotate: false - xy: 737, 342 + xy: 1325, 242 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-conveyor-tiny +block-logic-processor-tiny rotate: false - xy: 1191, 305 + xy: 1871, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-conveyor-xlarge +block-logic-processor-xlarge rotate: false xy: 201, 308 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-driver-large +block-magmarock-large rotate: false - xy: 1535, 933 + xy: 711, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-driver-medium +block-magmarock-medium rotate: false - xy: 979, 424 + xy: 1403, 642 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-driver-small +block-magmarock-small rotate: false - xy: 763, 342 + xy: 1351, 242 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-driver-tiny +block-magmarock-tiny rotate: false - xy: 1209, 305 + xy: 1889, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-driver-xlarge +block-magmarock-xlarge rotate: false xy: 151, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-drill-large +block-mass-driver-large rotate: false - xy: 1577, 933 + xy: 753, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-drill-medium +block-mass-driver-medium rotate: false - xy: 979, 390 + xy: 1403, 608 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-drill-small +block-mass-driver-small rotate: false - xy: 789, 342 + xy: 1377, 232 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-drill-tiny +block-mass-driver-tiny rotate: false - xy: 1227, 305 + xy: 1907, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-drill-xlarge +block-mass-driver-xlarge rotate: false xy: 201, 258 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-pump-large +block-mechanical-drill-large rotate: false - xy: 1619, 933 + xy: 795, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-pump-medium +block-mechanical-drill-medium rotate: false - xy: 1013, 424 + xy: 1335, 592 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-pump-small +block-mechanical-drill-small rotate: false - xy: 815, 342 + xy: 1403, 232 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-pump-tiny +block-mechanical-drill-tiny rotate: false - xy: 1245, 305 + xy: 1853, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-pump-xlarge +block-mechanical-drill-xlarge rotate: false xy: 151, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-meltdown-large +block-mechanical-pump-large rotate: false - xy: 1661, 933 + xy: 837, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-meltdown-medium +block-mechanical-pump-medium rotate: false - xy: 1013, 390 + xy: 1369, 592 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-meltdown-small +block-mechanical-pump-small rotate: false - xy: 841, 342 + xy: 1429, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-meltdown-tiny +block-mechanical-pump-tiny rotate: false - xy: 1263, 305 + xy: 1871, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-meltdown-xlarge +block-mechanical-pump-xlarge rotate: false xy: 201, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-melter-large +block-meltdown-large rotate: false - xy: 1703, 933 + xy: 703, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-melter-medium +block-meltdown-medium rotate: false - xy: 911, 356 + xy: 1331, 558 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-melter-small +block-meltdown-small rotate: false - xy: 867, 342 + xy: 1455, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-melter-tiny +block-meltdown-tiny rotate: false - xy: 1281, 305 + xy: 1889, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-melter-xlarge +block-meltdown-xlarge rotate: false xy: 151, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-memory-cell-large +block-melter-large rotate: false - xy: 1745, 933 + xy: 745, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-memory-cell-medium +block-melter-medium rotate: false - xy: 945, 356 + xy: 1365, 558 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-memory-cell-small +block-melter-small rotate: false - xy: 745, 316 + xy: 1481, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-memory-cell-tiny +block-melter-tiny rotate: false - xy: 1299, 305 + xy: 1907, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-memory-cell-xlarge +block-melter-xlarge rotate: false xy: 201, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mend-projector-large +block-memory-cell-large rotate: false - xy: 1787, 933 + xy: 787, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mend-projector-medium +block-memory-cell-medium rotate: false - xy: 979, 356 + xy: 1403, 574 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mend-projector-small +block-memory-cell-small rotate: false - xy: 745, 290 + xy: 1507, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mend-projector-tiny +block-memory-cell-tiny rotate: false - xy: 1317, 305 + xy: 1925, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mend-projector-xlarge +block-memory-cell-xlarge rotate: false xy: 151, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mender-large +block-mend-projector-large rotate: false - xy: 1829, 933 + xy: 829, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mender-medium +block-mend-projector-medium rotate: false - xy: 1013, 356 + xy: 1331, 524 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mender-small +block-mend-projector-small rotate: false - xy: 771, 316 + xy: 1533, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mender-tiny +block-mend-projector-tiny rotate: false - xy: 1335, 305 + xy: 1871, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mender-xlarge +block-mend-projector-xlarge rotate: false xy: 201, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-message-large +block-mender-large rotate: false - xy: 1871, 933 + xy: 879, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-message-medium +block-mender-medium rotate: false - xy: 1783, 744 + xy: 1365, 524 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-message-small +block-mender-small rotate: false - xy: 745, 264 + xy: 1559, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-message-tiny +block-mender-tiny rotate: false - xy: 1353, 305 + xy: 1889, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-message-xlarge +block-mender-xlarge rotate: false xy: 201, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-2-large +block-message-large rotate: false - xy: 1913, 933 + xy: 879, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-2-medium +block-message-medium rotate: false - xy: 1741, 702 + xy: 1399, 540 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-2-small +block-message-small rotate: false - xy: 797, 316 + xy: 1714, 411 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-2-tiny +block-message-tiny rotate: false - xy: 1371, 305 + xy: 1907, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-2-xlarge +block-message-xlarge rotate: false xy: 251, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-3-large +block-metal-floor-2-large rotate: false - xy: 1955, 933 + xy: 871, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-3-medium +block-metal-floor-2-medium rotate: false - xy: 1699, 660 + xy: 1399, 506 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-3-small +block-metal-floor-2-small rotate: false - xy: 771, 290 + xy: 1711, 385 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-3-tiny +block-metal-floor-2-tiny rotate: false - xy: 1389, 305 + xy: 1925, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-3-xlarge +block-metal-floor-2-xlarge rotate: false xy: 251, 458 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-5-large +block-metal-floor-3-large rotate: false - xy: 845, 891 + xy: 435, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-5-medium +block-metal-floor-3-medium rotate: false - xy: 1867, 828 + xy: 1437, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-5-small +block-metal-floor-3-small rotate: false - xy: 745, 238 + xy: 1700, 359 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-5-tiny +block-metal-floor-3-tiny rotate: false - xy: 1407, 305 + xy: 1889, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-5-xlarge +block-metal-floor-3-xlarge rotate: false xy: 251, 408 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-damaged-large +block-metal-floor-5-large rotate: false - xy: 887, 891 + xy: 477, 16 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-damaged-medium +block-metal-floor-5-medium rotate: false - xy: 1901, 828 + xy: 1437, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-damaged-small +block-metal-floor-5-small rotate: false - xy: 823, 316 + xy: 1700, 333 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-damaged-tiny +block-metal-floor-5-tiny rotate: false - xy: 1425, 305 + xy: 1907, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-damaged-xlarge +block-metal-floor-5-xlarge rotate: false xy: 251, 358 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-large +block-metal-floor-damaged-large rotate: false - xy: 929, 891 + xy: 519, 14 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-medium +block-metal-floor-damaged-medium rotate: false - xy: 1935, 828 + xy: 1471, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-small +block-metal-floor-damaged-small rotate: false - xy: 797, 290 + xy: 1726, 359 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-tiny +block-metal-floor-damaged-tiny rotate: false - xy: 1443, 305 + xy: 1925, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-xlarge +block-metal-floor-damaged-xlarge rotate: false xy: 251, 308 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-micro-processor-large +block-metal-floor-large rotate: false - xy: 971, 891 + xy: 561, 14 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-micro-processor-medium +block-metal-floor-medium rotate: false - xy: 1825, 786 + xy: 1471, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-micro-processor-small +block-metal-floor-small rotate: false - xy: 771, 264 + xy: 1726, 333 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-micro-processor-tiny +block-metal-floor-tiny rotate: false - xy: 1461, 305 + xy: 1907, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-micro-processor-xlarge +block-metal-floor-xlarge rotate: false xy: 251, 258 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-moss-large +block-micro-processor-large rotate: false - xy: 1013, 891 + xy: 903, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-moss-medium +block-micro-processor-medium rotate: false - xy: 1683, 613 + xy: 1505, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-moss-small +block-micro-processor-small rotate: false - xy: 745, 212 + xy: 1737, 385 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-moss-tiny +block-micro-processor-tiny rotate: false - xy: 1479, 305 + xy: 1925, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-moss-xlarge +block-micro-processor-xlarge rotate: false xy: 251, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multi-press-large +block-moss-large rotate: false - xy: 1055, 891 + xy: 903, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multi-press-medium +block-moss-medium rotate: false - xy: 1683, 579 + xy: 1505, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multi-press-small +block-moss-small rotate: false - xy: 849, 316 + xy: 1752, 359 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multi-press-tiny +block-moss-tiny rotate: false - xy: 1497, 305 + xy: 1925, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multi-press-xlarge +block-moss-xlarge rotate: false xy: 251, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-large +block-multi-press-large rotate: false - xy: 1097, 891 + xy: 898, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-medium +block-multi-press-medium rotate: false - xy: 1051, 550 + xy: 1539, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-small +block-multi-press-small rotate: false - xy: 823, 290 + xy: 1752, 333 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-tiny +block-multi-press-tiny rotate: false - xy: 1515, 305 + xy: 1745, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-xlarge +block-multi-press-xlarge rotate: false xy: 251, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-naval-factory-large +block-multiplicative-reconstructor-large rotate: false - xy: 1139, 891 + xy: 895, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-naval-factory-medium +block-multiplicative-reconstructor-medium rotate: false - xy: 1047, 516 + xy: 1539, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-naval-factory-small +block-multiplicative-reconstructor-small rotate: false - xy: 797, 264 + xy: 1700, 307 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-naval-factory-tiny +block-multiplicative-reconstructor-tiny rotate: false - xy: 1533, 305 + xy: 1763, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-naval-factory-xlarge +block-multiplicative-reconstructor-xlarge rotate: false xy: 251, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-oil-extractor-large +block-naval-factory-large rotate: false - xy: 1181, 891 + xy: 895, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-oil-extractor-medium +block-naval-factory-medium rotate: false - xy: 1047, 482 + xy: 1573, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-oil-extractor-small +block-naval-factory-small rotate: false - xy: 771, 238 + xy: 1726, 307 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-oil-extractor-tiny +block-naval-factory-tiny rotate: false - xy: 1551, 305 + xy: 1781, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-oil-extractor-xlarge +block-naval-factory-xlarge rotate: false xy: 151, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-coal-large +block-oil-extractor-large rotate: false - xy: 1223, 891 + xy: 921, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-coal-medium +block-oil-extractor-medium rotate: false - xy: 1047, 448 + xy: 1573, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-coal-small +block-oil-extractor-small rotate: false - xy: 745, 186 + xy: 1752, 307 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-coal-tiny +block-oil-extractor-tiny rotate: false - xy: 1569, 305 + xy: 1799, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-coal-xlarge +block-oil-extractor-xlarge rotate: false xy: 201, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-copper-large +block-ore-coal-large rotate: false - xy: 1265, 891 + xy: 921, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-copper-medium +block-ore-coal-medium rotate: false - xy: 1047, 414 + xy: 1607, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-copper-small +block-ore-coal-small rotate: false - xy: 849, 290 + xy: 1008, 234 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-copper-tiny +block-ore-coal-tiny rotate: false - xy: 1587, 305 + xy: 1817, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-copper-xlarge +block-ore-coal-xlarge rotate: false xy: 251, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-lead-large +block-ore-copper-large rotate: false - xy: 1307, 891 + xy: 913, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-lead-medium +block-ore-copper-medium rotate: false - xy: 1047, 380 + xy: 1607, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-lead-small +block-ore-copper-small rotate: false - xy: 823, 264 + xy: 1034, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-lead-tiny +block-ore-copper-tiny rotate: false - xy: 1605, 305 + xy: 1835, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-lead-xlarge +block-ore-copper-xlarge rotate: false xy: 281, 619 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-scrap-large +block-ore-lead-large rotate: false - xy: 1349, 891 + xy: 955, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-scrap-medium +block-ore-lead-medium rotate: false - xy: 1047, 346 + xy: 1641, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-scrap-small +block-ore-lead-small rotate: false - xy: 797, 238 + xy: 1060, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-scrap-tiny +block-ore-lead-tiny rotate: false - xy: 1623, 305 + xy: 1853, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-scrap-xlarge +block-ore-lead-xlarge rotate: false xy: 281, 569 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-thorium-large +block-ore-scrap-large rotate: false - xy: 1391, 891 + xy: 821, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-thorium-medium +block-ore-scrap-medium rotate: false - xy: 1085, 545 + xy: 1641, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-thorium-small +block-ore-scrap-small rotate: false - xy: 771, 212 + xy: 1086, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-thorium-tiny +block-ore-scrap-tiny rotate: false - xy: 1641, 305 + xy: 1871, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-thorium-xlarge +block-ore-scrap-xlarge rotate: false xy: 301, 519 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-titanium-large +block-ore-thorium-large rotate: false - xy: 1433, 891 + xy: 863, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-titanium-medium +block-ore-thorium-medium rotate: false - xy: 1119, 545 + xy: 1437, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-titanium-small +block-ore-thorium-small rotate: false - xy: 849, 264 + xy: 1112, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-titanium-tiny +block-ore-thorium-tiny rotate: false - xy: 1659, 305 + xy: 1889, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-titanium-xlarge +block-ore-thorium-xlarge rotate: false xy: 301, 469 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-dome-large +block-ore-titanium-large rotate: false - xy: 1475, 891 + xy: 905, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-dome-medium +block-ore-titanium-medium rotate: false - xy: 1153, 545 + xy: 1471, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-dome-small +block-ore-titanium-small rotate: false - xy: 823, 238 + xy: 1138, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-dome-tiny +block-ore-titanium-tiny rotate: false - xy: 1677, 305 + xy: 1907, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-dome-xlarge +block-ore-titanium-xlarge rotate: false xy: 301, 419 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-projector-large +block-overdrive-dome-large rotate: false - xy: 1517, 891 + xy: 947, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-projector-medium +block-overdrive-dome-medium rotate: false - xy: 1187, 545 + xy: 1505, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-projector-small +block-overdrive-dome-small rotate: false - xy: 797, 212 + xy: 1164, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-projector-tiny +block-overdrive-dome-tiny rotate: false - xy: 1695, 305 + xy: 1925, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-projector-xlarge +block-overdrive-dome-xlarge rotate: false xy: 301, 369 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overflow-gate-large +block-overdrive-projector-large rotate: false - xy: 1559, 891 + xy: 989, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overflow-gate-medium +block-overdrive-projector-medium rotate: false - xy: 1221, 545 + xy: 1539, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overflow-gate-small +block-overdrive-projector-small rotate: false - xy: 771, 186 + xy: 1190, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overflow-gate-tiny +block-overdrive-projector-tiny rotate: false - xy: 1713, 305 + xy: 1945, 662 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overflow-gate-xlarge +block-overdrive-projector-xlarge rotate: false xy: 301, 319 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-parallax-large +block-overflow-gate-large rotate: false - xy: 1601, 891 + xy: 1031, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-parallax-medium +block-overflow-gate-medium rotate: false - xy: 1255, 545 + xy: 1573, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-parallax-small +block-overflow-gate-small rotate: false - xy: 849, 238 + xy: 1216, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-parallax-tiny +block-overflow-gate-tiny rotate: false - xy: 1731, 305 + xy: 1943, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-parallax-xlarge +block-overflow-gate-xlarge rotate: false xy: 301, 269 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-payload-router-large +block-parallax-large rotate: false - xy: 1643, 891 + xy: 1073, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-payload-router-medium +block-parallax-medium rotate: false - xy: 1289, 545 + xy: 1607, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-payload-router-small +block-parallax-small rotate: false - xy: 823, 212 + xy: 1242, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-payload-router-tiny +block-parallax-tiny rotate: false - xy: 1793, 554 + xy: 1943, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-payload-router-xlarge +block-parallax-xlarge rotate: false xy: 301, 219 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pebbles-large +block-payload-conveyor-large rotate: false - xy: 1685, 891 + xy: 1115, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pebbles-medium +block-payload-conveyor-medium rotate: false - xy: 1323, 545 + xy: 1641, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pebbles-small +block-payload-conveyor-small rotate: false - xy: 797, 186 + xy: 1268, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pebbles-tiny +block-payload-conveyor-tiny rotate: false - xy: 1811, 554 + xy: 1943, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pebbles-xlarge +block-payload-conveyor-xlarge rotate: false xy: 301, 169 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conduit-large +block-payload-router-large rotate: false - xy: 1727, 891 + xy: 1157, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conduit-medium +block-payload-router-medium rotate: false - xy: 1357, 545 + xy: 1433, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conduit-small +block-payload-router-small rotate: false - xy: 849, 212 + xy: 1294, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conduit-tiny +block-payload-router-tiny rotate: false - xy: 1829, 554 + xy: 1943, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conduit-xlarge +block-payload-router-xlarge rotate: false xy: 301, 119 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conveyor-large +block-pebbles-large rotate: false - xy: 1769, 891 + xy: 1199, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-pebbles-medium rotate: false - xy: 1391, 545 + xy: 1467, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-pebbles-small rotate: false - xy: 823, 186 + xy: 1320, 216 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-pebbles-tiny rotate: false - xy: 1847, 554 + xy: 1943, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-pebbles-xlarge rotate: false xy: 301, 69 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large +block-phase-conduit-large rotate: false - xy: 1811, 891 + xy: 1241, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-large +block-phase-conduit-medium rotate: false - xy: 1853, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-medium - rotate: false - xy: 1425, 545 + xy: 1501, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-large-small +block-phase-conduit-small rotate: false - xy: 849, 186 + xy: 1346, 216 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-large-tiny +block-phase-conduit-tiny rotate: false - xy: 1865, 554 + xy: 1943, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-large-xlarge +block-phase-conduit-xlarge rotate: false xy: 301, 19 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-medium +block-phase-conveyor-large rotate: false - xy: 1459, 545 + xy: 1283, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-conveyor-medium + rotate: false + xy: 1535, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-small +block-phase-conveyor-small rotate: false - xy: 875, 316 + xy: 1372, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-tiny +block-phase-conveyor-tiny rotate: false - xy: 1883, 554 + xy: 1023, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-xlarge +block-phase-conveyor-xlarge rotate: false xy: 795, 878 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-weaver-large +block-phase-wall-large rotate: false - xy: 1895, 891 + xy: 1325, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-phase-wall-large-large rotate: false - xy: 1493, 545 + xy: 1367, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-medium + rotate: false + xy: 1569, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-phase-wall-large-small rotate: false - xy: 875, 290 + xy: 1398, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-phase-wall-large-tiny rotate: false - xy: 1111, 279 + xy: 1041, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-phase-wall-large-xlarge rotate: false xy: 309, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large +block-phase-wall-medium rotate: false - xy: 1937, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pine-medium - rotate: false - xy: 1527, 545 + xy: 1603, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pine-small +block-phase-wall-small rotate: false - xy: 875, 264 + xy: 1424, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pine-tiny +block-phase-wall-tiny rotate: false - xy: 1111, 261 + xy: 1059, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pine-xlarge +block-phase-wall-xlarge rotate: false xy: 309, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-compressor-large +block-phase-weaver-large rotate: false - xy: 859, 849 + xy: 1409, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-compressor-medium +block-phase-weaver-medium rotate: false - xy: 1561, 545 + xy: 1637, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-compressor-small +block-phase-weaver-small rotate: false - xy: 875, 238 + xy: 1450, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-compressor-tiny +block-phase-weaver-tiny rotate: false - xy: 1111, 243 + xy: 1077, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-compressor-xlarge +block-phase-weaver-xlarge rotate: false xy: 359, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-conveyor-large +block-pine-large rotate: false - xy: 859, 807 + xy: 1451, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-conveyor-medium +block-pine-medium rotate: false - xy: 1595, 545 + xy: 1433, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-conveyor-small +block-pine-small rotate: false - xy: 875, 212 + xy: 1476, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-conveyor-tiny +block-pine-tiny rotate: false - xy: 1111, 225 + xy: 1095, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-conveyor-xlarge +block-pine-xlarge rotate: false xy: 309, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-large +block-plastanium-compressor-large rotate: false - xy: 901, 849 + xy: 1493, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-wall-large-large +block-plastanium-compressor-medium rotate: false - xy: 859, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-medium - rotate: false - xy: 1629, 545 + xy: 1467, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-large-small +block-plastanium-compressor-small rotate: false - xy: 875, 186 + xy: 1502, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-large-tiny +block-plastanium-compressor-tiny rotate: false - xy: 1111, 207 + xy: 1113, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-large-xlarge +block-plastanium-compressor-xlarge rotate: false xy: 359, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-medium +block-plastanium-conveyor-large rotate: false - xy: 1663, 545 + xy: 1535, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-medium + rotate: false + xy: 1501, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-small +block-plastanium-conveyor-small rotate: false - xy: 745, 160 + xy: 1528, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-tiny +block-plastanium-conveyor-tiny rotate: false - xy: 1111, 189 + xy: 1131, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-xlarge +block-plastanium-conveyor-xlarge rotate: false xy: 409, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plated-conduit-large +block-plastanium-wall-large rotate: false - xy: 943, 849 + xy: 1577, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plated-conduit-medium +block-plastanium-wall-large-large rotate: false - xy: 1081, 511 + xy: 1619, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-medium + rotate: false + xy: 1535, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plated-conduit-small +block-plastanium-wall-large-small rotate: false - xy: 771, 160 + xy: 1554, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plated-conduit-tiny +block-plastanium-wall-large-tiny rotate: false - xy: 1111, 171 + xy: 1149, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plated-conduit-xlarge +block-plastanium-wall-large-xlarge rotate: false xy: 359, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pneumatic-drill-large +block-plastanium-wall-medium rotate: false - xy: 901, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pneumatic-drill-medium - rotate: false - xy: 1081, 477 + xy: 1569, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pneumatic-drill-small +block-plastanium-wall-small rotate: false - xy: 797, 160 + xy: 1580, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pneumatic-drill-tiny +block-plastanium-wall-tiny rotate: false - xy: 1129, 287 + xy: 1167, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pneumatic-drill-xlarge +block-plastanium-wall-xlarge rotate: false xy: 409, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-large +block-plated-conduit-large rotate: false - xy: 859, 723 + xy: 1661, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-node-large-large +block-plated-conduit-medium rotate: false - xy: 985, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-medium - rotate: false - xy: 1115, 511 + xy: 1603, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-large-small +block-plated-conduit-small rotate: false - xy: 823, 160 + xy: 1527, 832 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-large-tiny +block-plated-conduit-tiny rotate: false - xy: 1129, 269 + xy: 1185, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-large-xlarge +block-plated-conduit-xlarge rotate: false xy: 459, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-medium +block-pneumatic-drill-large rotate: false - xy: 1081, 443 + xy: 1703, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pneumatic-drill-medium + rotate: false + xy: 1637, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-small +block-pneumatic-drill-small rotate: false - xy: 849, 160 + xy: 1553, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-tiny +block-pneumatic-drill-tiny rotate: false - xy: 1147, 287 + xy: 1203, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-xlarge +block-pneumatic-drill-xlarge rotate: false xy: 409, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-source-large +block-power-node-large rotate: false - xy: 943, 807 + xy: 1745, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-source-medium +block-power-node-large-large rotate: false - xy: 1115, 477 + xy: 1787, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-medium + rotate: false + xy: 940, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-source-small +block-power-node-large-small rotate: false - xy: 875, 160 + xy: 1579, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-source-tiny +block-power-node-large-tiny rotate: false - xy: 1129, 251 + xy: 1221, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-source-xlarge +block-power-node-large-xlarge rotate: false xy: 459, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-void-large +block-power-node-medium rotate: false - xy: 901, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-void-medium - rotate: false - xy: 1149, 511 + xy: 940, 216 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-void-small +block-power-node-small rotate: false - xy: 745, 134 + xy: 1605, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-void-tiny +block-power-node-tiny rotate: false - xy: 1147, 269 + xy: 1239, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-void-xlarge +block-power-node-xlarge rotate: false xy: 509, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulse-conduit-large +block-power-source-large rotate: false - xy: 859, 681 + xy: 1829, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulse-conduit-medium +block-power-source-medium rotate: false - xy: 1081, 409 + xy: 937, 182 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulse-conduit-small +block-power-source-small rotate: false - xy: 771, 134 + xy: 1631, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulse-conduit-tiny +block-power-source-tiny rotate: false - xy: 1165, 287 + xy: 1257, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulse-conduit-xlarge +block-power-source-xlarge rotate: false xy: 459, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulverizer-large +block-power-void-large rotate: false - xy: 1027, 849 + xy: 1871, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulverizer-medium +block-power-void-medium rotate: false - xy: 1115, 443 + xy: 1671, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulverizer-small +block-power-void-small rotate: false - xy: 797, 134 + xy: 1657, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulverizer-tiny +block-power-void-tiny rotate: false - xy: 1129, 233 + xy: 1275, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulverizer-xlarge +block-power-void-xlarge rotate: false xy: 509, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pyratite-mixer-large +block-pulse-conduit-large rotate: false - xy: 985, 807 + xy: 1913, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pyratite-mixer-medium +block-pulse-conduit-medium rotate: false - xy: 1149, 477 + xy: 1671, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pyratite-mixer-small +block-pulse-conduit-small rotate: false - xy: 823, 134 + xy: 1683, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pyratite-mixer-tiny +block-pulse-conduit-tiny rotate: false - xy: 1147, 251 + xy: 1293, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pyratite-mixer-xlarge +block-pulse-conduit-xlarge rotate: false xy: 559, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-repair-point-large +block-pulverizer-large rotate: false - xy: 943, 765 + xy: 1955, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-repair-point-medium +block-pulverizer-medium rotate: false - xy: 1183, 511 + xy: 945, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-repair-point-small +block-pulverizer-small rotate: false - xy: 849, 134 + xy: 1709, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-repair-point-tiny +block-pulverizer-tiny rotate: false - xy: 1165, 269 + xy: 1023, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-repair-point-xlarge +block-pulverizer-xlarge rotate: false xy: 509, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-resupply-point-large +block-pyratite-mixer-large rotate: false - xy: 901, 723 + xy: 845, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-resupply-point-medium +block-pyratite-mixer-medium rotate: false - xy: 1081, 375 + xy: 945, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-resupply-point-small +block-pyratite-mixer-small rotate: false - xy: 875, 134 + xy: 1735, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-resupply-point-tiny +block-pyratite-mixer-tiny rotate: false - xy: 1183, 287 + xy: 1041, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-resupply-point-xlarge +block-pyratite-mixer-xlarge rotate: false xy: 559, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ripple-large +block-repair-point-large rotate: false - xy: 1069, 849 + xy: 887, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ripple-medium +block-repair-point-medium rotate: false - xy: 1115, 409 + xy: 945, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ripple-small +block-repair-point-small rotate: false - xy: 779, 108 + xy: 1761, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ripple-tiny +block-repair-point-tiny rotate: false - xy: 1129, 215 + xy: 1059, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ripple-xlarge +block-repair-point-xlarge rotate: false xy: 609, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rock-large +block-resupply-point-large rotate: false - xy: 1027, 807 + xy: 929, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rock-medium +block-resupply-point-medium rotate: false - xy: 1149, 443 + xy: 945, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rock-small +block-resupply-point-small rotate: false - xy: 779, 82 + xy: 1787, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rock-tiny +block-resupply-point-tiny rotate: false - xy: 1147, 233 + xy: 1077, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rock-xlarge +block-resupply-point-xlarge rotate: false xy: 559, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rocks-large +block-ripple-large rotate: false - xy: 985, 765 + xy: 971, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rocks-medium +block-ripple-medium rotate: false - xy: 1183, 477 + xy: 945, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rocks-small +block-ripple-small rotate: false - xy: 805, 108 + xy: 1813, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rocks-tiny +block-ripple-tiny rotate: false - xy: 1165, 251 + xy: 1095, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rocks-xlarge +block-ripple-xlarge rotate: false xy: 609, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rotary-pump-large +block-rock-large rotate: false - xy: 943, 723 + xy: 1013, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rotary-pump-medium +block-rock-medium rotate: false - xy: 1217, 511 + xy: 945, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rotary-pump-small +block-rock-small rotate: false - xy: 779, 56 + xy: 1839, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rotary-pump-tiny +block-rock-tiny rotate: false - xy: 1183, 269 + xy: 1113, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rotary-pump-xlarge +block-rock-xlarge rotate: false xy: 659, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-router-large +block-rocks-large rotate: false - xy: 901, 681 + xy: 1055, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-router-medium +block-rocks-medium rotate: false - xy: 1115, 375 + xy: 945, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-router-small +block-rocks-small rotate: false - xy: 779, 30 + xy: 1865, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-router-tiny +block-rocks-tiny rotate: false - xy: 1201, 287 + xy: 1131, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-router-xlarge +block-rocks-xlarge rotate: false xy: 609, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rtg-generator-large +block-rotary-pump-large rotate: false - xy: 1111, 849 + xy: 1097, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rtg-generator-medium +block-rotary-pump-medium rotate: false - xy: 1149, 409 + xy: 979, 516 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rtg-generator-small +block-rotary-pump-small rotate: false - xy: 831, 108 + xy: 1891, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rtg-generator-tiny +block-rotary-pump-tiny rotate: false - xy: 1129, 197 + xy: 1149, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rtg-generator-xlarge +block-rotary-pump-xlarge rotate: false xy: 659, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salt-large +block-router-large rotate: false - xy: 1069, 807 + xy: 1139, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salt-medium +block-router-medium rotate: false - xy: 1183, 443 + xy: 1013, 516 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salt-small +block-router-small rotate: false - xy: 805, 82 + xy: 1917, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salt-tiny +block-router-tiny rotate: false - xy: 1147, 215 + xy: 1167, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salt-xlarge +block-router-xlarge rotate: false xy: 709, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-saltrocks-large +block-rtg-generator-large rotate: false - xy: 1027, 765 + xy: 1181, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-saltrocks-medium +block-rtg-generator-medium rotate: false - xy: 1217, 477 + xy: 979, 482 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-saltrocks-small +block-rtg-generator-small rotate: false - xy: 857, 108 + xy: 1557, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-saltrocks-tiny +block-rtg-generator-tiny rotate: false - xy: 1165, 233 + xy: 1185, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-saltrocks-xlarge +block-rtg-generator-xlarge rotate: false xy: 659, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salvo-large +block-salt-large rotate: false - xy: 985, 723 + xy: 1223, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salvo-medium +block-salt-medium rotate: false - xy: 1251, 511 + xy: 979, 448 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salvo-small +block-salt-small rotate: false - xy: 831, 82 + xy: 1583, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salvo-tiny +block-salt-tiny rotate: false - xy: 1183, 251 + xy: 1203, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salvo-xlarge +block-salt-xlarge rotate: false xy: 709, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-boulder-large +block-saltrocks-large rotate: false - xy: 943, 681 + xy: 1265, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-boulder-medium +block-saltrocks-medium rotate: false - xy: 1149, 375 + xy: 1013, 482 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-boulder-small +block-saltrocks-small rotate: false - xy: 805, 56 + xy: 1609, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-boulder-tiny +block-saltrocks-tiny rotate: false - xy: 1201, 269 + xy: 1221, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-boulder-xlarge +block-saltrocks-xlarge rotate: false xy: 709, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-large +block-salvo-large rotate: false - xy: 1153, 849 + xy: 1307, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-medium +block-salvo-medium rotate: false - xy: 1183, 409 + xy: 979, 414 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-small +block-salvo-small rotate: false - xy: 805, 30 + xy: 1635, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-tiny +block-salvo-tiny rotate: false - xy: 1219, 287 + xy: 1239, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-water-large - rotate: false - xy: 1111, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-water-medium - rotate: false - xy: 1217, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-water-small - rotate: false - xy: 857, 82 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-water-tiny - rotate: false - xy: 1129, 179 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-water-xlarge +block-salvo-xlarge rotate: false xy: 759, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-xlarge +block-sand-boulder-large + rotate: false + xy: 1349, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-boulder-medium + rotate: false + xy: 1013, 448 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-boulder-small + rotate: false + xy: 1661, 810 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-boulder-tiny + rotate: false + xy: 1257, 175 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-boulder-xlarge rotate: false xy: 759, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sandrocks-large +block-sand-large rotate: false - xy: 1069, 765 + xy: 1391, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sandrocks-medium +block-sand-medium rotate: false - xy: 1251, 477 + xy: 979, 380 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sandrocks-small +block-sand-small rotate: false - xy: 831, 56 + xy: 1687, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sandrocks-tiny +block-sand-tiny rotate: false - xy: 1147, 197 + xy: 1275, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sandrocks-xlarge +block-sand-water-large + rotate: false + xy: 1433, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-water-medium + rotate: false + xy: 1013, 414 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-water-small + rotate: false + xy: 1713, 810 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-water-tiny + rotate: false + xy: 1293, 175 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-water-xlarge rotate: false xy: 759, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scatter-large - rotate: false - xy: 1027, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scatter-medium - rotate: false - xy: 1285, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scatter-small - rotate: false - xy: 831, 30 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scatter-tiny - rotate: false - xy: 1165, 215 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scatter-xlarge +block-sand-xlarge rotate: false xy: 809, 828 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scorch-large +block-sandrocks-large rotate: false - xy: 985, 681 + xy: 1475, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scorch-medium +block-sandrocks-medium rotate: false - xy: 1183, 375 + xy: 979, 346 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scorch-small +block-sandrocks-small rotate: false - xy: 809, 4 + xy: 1739, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scorch-tiny +block-sandrocks-tiny rotate: false - xy: 1183, 233 + xy: 1973, 813 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scorch-xlarge +block-sandrocks-xlarge rotate: false xy: 809, 778 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-large +block-scatter-large rotate: false - xy: 1195, 849 + xy: 1517, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-medium +block-scatter-medium rotate: false - xy: 1217, 409 + xy: 1013, 380 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-small +block-scatter-small rotate: false - xy: 857, 56 + xy: 1765, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-tiny +block-scatter-tiny rotate: false - xy: 1201, 251 + xy: 1991, 813 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-xlarge +block-scatter-xlarge rotate: false xy: 809, 728 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-huge-large +block-scorch-large rotate: false - xy: 1153, 807 + xy: 1559, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-huge-medium +block-scorch-medium rotate: false - xy: 1251, 443 + xy: 979, 312 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-huge-small +block-scorch-small rotate: false - xy: 857, 30 + xy: 1791, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-huge-tiny +block-scorch-tiny rotate: false - xy: 1219, 269 + xy: 1977, 795 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-huge-xlarge +block-scorch-xlarge rotate: false xy: 809, 678 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-large +block-scrap-wall-gigantic-large rotate: false - xy: 1111, 765 + xy: 1601, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-large-large +block-scrap-wall-gigantic-medium rotate: false - xy: 1069, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-medium - rotate: false - xy: 1285, 477 + xy: 1013, 346 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-large-small +block-scrap-wall-gigantic-small rotate: false - xy: 835, 4 + xy: 1817, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-large-tiny +block-scrap-wall-gigantic-tiny rotate: false - xy: 1237, 287 + xy: 1995, 795 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-large-xlarge +block-scrap-wall-gigantic-xlarge rotate: false xy: 331, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-medium +block-scrap-wall-huge-large rotate: false - xy: 1319, 511 + xy: 1643, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-medium + rotate: false + xy: 1013, 312 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-small +block-scrap-wall-huge-small rotate: false - xy: 861, 4 + xy: 1843, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-tiny +block-scrap-wall-huge-tiny rotate: false - xy: 1147, 179 + xy: 2013, 800 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-xlarge +block-scrap-wall-huge-xlarge rotate: false xy: 331, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-segment-large +block-scrap-wall-large rotate: false - xy: 1027, 681 + xy: 1685, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-segment-medium +block-scrap-wall-large-large rotate: false - xy: 1217, 375 + xy: 1727, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-medium + rotate: false + xy: 1047, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-segment-small +block-scrap-wall-large-small rotate: false - xy: 883, 108 + xy: 1869, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-segment-tiny +block-scrap-wall-large-tiny rotate: false - xy: 1165, 197 + xy: 2031, 800 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-segment-xlarge +block-scrap-wall-large-xlarge rotate: false xy: 381, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-separator-large +block-scrap-wall-medium rotate: false - xy: 1237, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-separator-medium - rotate: false - xy: 1251, 409 + xy: 1081, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-separator-small +block-scrap-wall-small rotate: false - xy: 883, 82 + xy: 1895, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-separator-tiny +block-scrap-wall-tiny rotate: false - xy: 1183, 215 + xy: 1973, 740 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-separator-xlarge +block-scrap-wall-xlarge rotate: false xy: 381, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-boulder-large +block-segment-large rotate: false - xy: 1195, 807 + xy: 1769, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-boulder-medium +block-segment-medium rotate: false - xy: 1285, 443 + xy: 1047, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-boulder-small +block-segment-small rotate: false - xy: 883, 56 + xy: 1921, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-boulder-tiny +block-segment-tiny rotate: false - xy: 1201, 233 + xy: 1973, 722 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-boulder-xlarge +block-segment-xlarge rotate: false xy: 431, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-large +block-separator-large rotate: false - xy: 1153, 765 + xy: 1811, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-medium +block-separator-medium rotate: false - xy: 1319, 477 + xy: 1115, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-small +block-separator-small rotate: false - xy: 883, 30 + xy: 1587, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-tiny +block-separator-tiny rotate: false - xy: 1219, 251 + xy: 1973, 704 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-xlarge +block-separator-xlarge rotate: false xy: 431, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shalerocks-large +block-shale-boulder-large rotate: false - xy: 1111, 723 + xy: 1853, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shalerocks-medium +block-shale-boulder-medium rotate: false - xy: 1353, 511 + xy: 1047, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shalerocks-small +block-shale-boulder-small rotate: false - xy: 887, 4 + xy: 1613, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shalerocks-tiny +block-shale-boulder-tiny rotate: false - xy: 1237, 269 + xy: 1973, 686 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shalerocks-xlarge +block-shale-boulder-xlarge rotate: false xy: 481, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shock-mine-large +block-shale-large rotate: false - xy: 1069, 681 + xy: 1895, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shock-mine-medium +block-shale-medium rotate: false - xy: 1251, 375 + xy: 1081, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shock-mine-small +block-shale-small rotate: false - xy: 901, 330 + xy: 1639, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shock-mine-tiny +block-shale-tiny rotate: false - xy: 1255, 287 + xy: 1963, 668 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shock-mine-xlarge +block-shale-xlarge rotate: false xy: 481, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shrubs-large +block-shalerocks-large rotate: false - xy: 1279, 849 + xy: 1937, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shrubs-medium +block-shalerocks-medium rotate: false - xy: 1285, 409 + xy: 1149, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shrubs-small +block-shalerocks-small rotate: false - xy: 901, 304 + xy: 1665, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shrubs-tiny +block-shalerocks-tiny rotate: false - xy: 1165, 179 + xy: 1981, 668 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shrubs-xlarge +block-shalerocks-xlarge rotate: false xy: 531, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-crucible-large +block-shock-mine-large rotate: false - xy: 1237, 807 + xy: 859, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-crucible-medium +block-shock-mine-medium rotate: false - xy: 1319, 443 + xy: 1047, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-crucible-small +block-shock-mine-small rotate: false - xy: 927, 330 + xy: 1691, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-crucible-tiny +block-shock-mine-tiny rotate: false - xy: 1183, 197 + xy: 1727, 543 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-crucible-xlarge +block-shock-mine-xlarge rotate: false xy: 531, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-smelter-large +block-shrubs-large rotate: false - xy: 1195, 765 + xy: 859, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-smelter-medium +block-shrubs-medium rotate: false - xy: 1353, 477 + xy: 1081, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-smelter-small +block-shrubs-small rotate: false - xy: 901, 278 + xy: 1717, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-smelter-tiny +block-shrubs-tiny rotate: false - xy: 1201, 215 + xy: 1723, 525 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-smelter-xlarge +block-shrubs-xlarge rotate: false xy: 581, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-slag-large +block-silicon-crucible-large rotate: false - xy: 1153, 723 + xy: 901, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-slag-medium +block-silicon-crucible-medium rotate: false - xy: 1387, 511 + xy: 1115, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-slag-small +block-silicon-crucible-small rotate: false - xy: 953, 330 + xy: 1743, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-slag-tiny +block-silicon-crucible-tiny rotate: false - xy: 1219, 233 + xy: 1723, 507 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-slag-xlarge +block-silicon-crucible-xlarge rotate: false xy: 581, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-large +block-silicon-smelter-large rotate: false - xy: 1111, 681 + xy: 859, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-medium +block-silicon-smelter-medium rotate: false - xy: 1285, 375 + xy: 1183, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-large +block-silicon-smelter-small rotate: false - xy: 1321, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-pine-medium - rotate: false - xy: 1319, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-pine-small - rotate: false - xy: 927, 304 + xy: 1769, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-pine-tiny +block-silicon-smelter-tiny rotate: false - xy: 1237, 251 + xy: 1745, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-pine-xlarge +block-silicon-smelter-xlarge rotate: false xy: 631, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-small +block-slag-large rotate: false - xy: 901, 252 + xy: 943, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-slag-medium + rotate: false + xy: 1047, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-slag-small + rotate: false + xy: 1795, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-tiny +block-slag-tiny rotate: false - xy: 1255, 269 + xy: 1763, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-xlarge +block-slag-xlarge rotate: false xy: 631, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrock-large +block-snow-large rotate: false - xy: 1279, 807 + xy: 901, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrock-medium +block-snow-medium rotate: false - xy: 1353, 443 + xy: 1081, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrock-small +block-snow-pine-large rotate: false - xy: 979, 330 + xy: 859, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-pine-medium + rotate: false + xy: 1115, 443 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-small + rotate: false + xy: 1821, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrock-tiny +block-snow-pine-tiny rotate: false - xy: 1273, 287 + xy: 1781, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrock-xlarge +block-snow-pine-xlarge rotate: false xy: 681, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-large +block-snow-small rotate: false - xy: 1237, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snowrocks-medium - rotate: false - xy: 1387, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrocks-small - rotate: false - xy: 927, 278 + xy: 1847, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrocks-tiny +block-snow-tiny rotate: false - xy: 1183, 179 + xy: 1799, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrocks-xlarge +block-snow-xlarge rotate: false xy: 681, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-large +block-snowrock-large rotate: false - xy: 1195, 723 + xy: 985, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-solar-panel-large-large +block-snowrock-medium rotate: false - xy: 1153, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-medium - rotate: false - xy: 1421, 511 + xy: 1149, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-large-small +block-snowrock-small rotate: false - xy: 953, 304 + xy: 1873, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-large-tiny +block-snowrock-tiny rotate: false - xy: 1201, 197 + xy: 1817, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-large-xlarge +block-snowrock-xlarge rotate: false xy: 731, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-medium +block-snowrocks-large rotate: false - xy: 1319, 375 + xy: 943, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snowrocks-medium + rotate: false + xy: 1217, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-small +block-snowrocks-small rotate: false - xy: 901, 226 + xy: 1899, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-tiny +block-snowrocks-tiny rotate: false - xy: 1219, 215 + xy: 1835, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-xlarge +block-snowrocks-xlarge rotate: false xy: 731, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sorter-large +block-solar-panel-large rotate: false - xy: 1363, 849 + xy: 901, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sorter-medium +block-solar-panel-large-large rotate: false - xy: 1353, 409 + xy: 859, 681 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-medium + rotate: false + xy: 1047, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sorter-small +block-solar-panel-large-small rotate: false - xy: 1005, 330 + xy: 1925, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sorter-tiny +block-solar-panel-large-tiny rotate: false - xy: 1237, 233 + xy: 1853, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sorter-xlarge +block-solar-panel-large-xlarge rotate: false xy: 781, 628 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spawn-large +block-solar-panel-medium rotate: false - xy: 1321, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spawn-medium - rotate: false - xy: 1387, 443 + xy: 1081, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spawn-small +block-solar-panel-small rotate: false - xy: 927, 252 + xy: 1617, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spawn-tiny +block-solar-panel-tiny rotate: false - xy: 1255, 251 + xy: 1871, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spawn-xlarge +block-solar-panel-xlarge rotate: false xy: 831, 628 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spectre-large +block-sorter-large rotate: false - xy: 1279, 765 + xy: 1027, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spectre-medium +block-sorter-medium rotate: false - xy: 1421, 477 + xy: 1115, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spectre-small +block-sorter-small rotate: false - xy: 953, 278 + xy: 1643, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spectre-tiny +block-sorter-tiny rotate: false - xy: 1273, 269 + xy: 1889, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spectre-xlarge +block-sorter-xlarge rotate: false xy: 781, 578 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-cluster-large +block-spawn-large rotate: false - xy: 1237, 723 + xy: 985, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-cluster-medium +block-spawn-medium rotate: false - xy: 1455, 511 + xy: 1149, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-cluster-small +block-spawn-small rotate: false - xy: 979, 304 + xy: 1669, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-cluster-tiny +block-spawn-tiny rotate: false - xy: 1291, 287 + xy: 1907, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-cluster-xlarge +block-spawn-xlarge rotate: false xy: 831, 578 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-moss-large +block-spectre-large rotate: false - xy: 1195, 681 + xy: 943, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-moss-medium +block-spectre-medium rotate: false - xy: 1353, 375 + xy: 1183, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-moss-small +block-spectre-small rotate: false - xy: 901, 200 + xy: 1617, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-moss-tiny +block-spectre-tiny rotate: false - xy: 1201, 179 + xy: 1925, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-moss-xlarge +block-spectre-xlarge rotate: false xy: 351, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-pine-large +block-spore-cluster-large rotate: false - xy: 1405, 849 + xy: 901, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-pine-medium +block-spore-cluster-medium rotate: false - xy: 1387, 409 + xy: 1251, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-pine-small +block-spore-cluster-small rotate: false - xy: 927, 226 + xy: 1643, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-pine-tiny +block-spore-cluster-tiny rotate: false - xy: 1219, 197 + xy: 1943, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-pine-xlarge +block-spore-cluster-xlarge rotate: false xy: 351, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-press-large +block-spore-moss-large rotate: false - xy: 1363, 807 + xy: 1069, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-press-medium +block-spore-moss-medium rotate: false - xy: 1421, 443 + xy: 1081, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-press-small +block-spore-moss-small rotate: false - xy: 953, 252 + xy: 1669, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-press-tiny +block-spore-moss-tiny rotate: false - xy: 1237, 215 + xy: 1741, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-press-xlarge +block-spore-moss-xlarge rotate: false xy: 401, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sporerocks-large +block-spore-pine-large rotate: false - xy: 1321, 765 + xy: 1027, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sporerocks-medium +block-spore-pine-medium rotate: false - xy: 1455, 477 + xy: 1115, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sporerocks-small +block-spore-pine-small rotate: false - xy: 979, 278 + xy: 1695, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sporerocks-tiny +block-spore-pine-tiny rotate: false - xy: 1255, 233 + xy: 1759, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sporerocks-xlarge +block-spore-pine-xlarge rotate: false xy: 351, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-stone-large +block-spore-press-large rotate: false - xy: 1279, 723 + xy: 985, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-stone-medium +block-spore-press-medium rotate: false - xy: 1489, 511 + xy: 1149, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-stone-small +block-spore-press-small rotate: false - xy: 1005, 304 + xy: 1721, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-stone-tiny +block-spore-press-tiny rotate: false - xy: 1273, 251 + xy: 1777, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-stone-xlarge +block-spore-press-xlarge rotate: false xy: 401, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-tower-large +block-sporerocks-large rotate: false - xy: 1237, 681 + xy: 943, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-tower-medium +block-sporerocks-medium rotate: false - xy: 1387, 375 + xy: 1183, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-tower-small +block-sporerocks-small rotate: false - xy: 901, 174 + xy: 1695, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-tower-tiny +block-sporerocks-tiny rotate: false - xy: 1291, 269 + xy: 1795, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-tower-xlarge +block-sporerocks-xlarge rotate: false xy: 451, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-large +block-stone-large rotate: false - xy: 1447, 849 + xy: 901, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-wall-large-large +block-stone-medium rotate: false - xy: 1405, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-medium - rotate: false - xy: 1421, 409 + xy: 1217, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-large-small +block-stone-small rotate: false - xy: 927, 200 + xy: 1747, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-large-tiny +block-stone-tiny rotate: false - xy: 1309, 287 + xy: 1813, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-large-xlarge +block-stone-xlarge rotate: false xy: 351, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-medium +block-surge-tower-large rotate: false - xy: 1455, 443 + xy: 1111, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-tower-medium + rotate: false + xy: 1285, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-small +block-surge-tower-small rotate: false - xy: 953, 226 + xy: 1721, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-tiny +block-surge-tower-tiny rotate: false - xy: 1219, 179 + xy: 1831, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-xlarge +block-surge-tower-xlarge rotate: false xy: 401, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-swarmer-large +block-surge-wall-large rotate: false - xy: 1363, 765 + xy: 1069, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-swarmer-medium +block-surge-wall-large-large rotate: false - xy: 1489, 477 + xy: 1027, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-wall-large-medium + rotate: false + xy: 1115, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-swarmer-small +block-surge-wall-large-small rotate: false - xy: 979, 252 + xy: 1773, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-swarmer-tiny +block-surge-wall-large-tiny rotate: false - xy: 1237, 197 + xy: 1849, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-swarmer-xlarge +block-surge-wall-large-xlarge rotate: false xy: 451, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-switch-large +block-surge-wall-medium rotate: false - xy: 1321, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-switch-medium - rotate: false - xy: 1523, 511 + xy: 1149, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-switch-small +block-surge-wall-small rotate: false - xy: 1005, 278 + xy: 1747, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-switch-tiny +block-surge-wall-tiny rotate: false - xy: 1255, 215 + xy: 1867, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-switch-xlarge +block-surge-wall-xlarge rotate: false xy: 501, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tainted-water-large +block-swarmer-large rotate: false - xy: 1279, 681 + xy: 985, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tainted-water-medium +block-swarmer-medium rotate: false - xy: 1421, 375 + xy: 1183, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tainted-water-small +block-swarmer-small rotate: false - xy: 901, 148 + xy: 1799, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tainted-water-tiny +block-swarmer-tiny rotate: false - xy: 1273, 233 + xy: 1885, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tainted-water-xlarge +block-swarmer-xlarge rotate: false xy: 351, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tar-large +block-switch-large rotate: false - xy: 1489, 849 + xy: 943, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tar-medium +block-switch-medium rotate: false - xy: 1455, 409 + xy: 1217, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tar-small +block-switch-small rotate: false - xy: 927, 174 + xy: 1773, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tar-tiny +block-switch-tiny rotate: false - xy: 1291, 251 + xy: 1903, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tar-xlarge +block-switch-xlarge rotate: false xy: 401, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tendrils-large +block-tainted-water-large rotate: false - xy: 1447, 807 + xy: 1153, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tendrils-medium +block-tainted-water-medium rotate: false - xy: 1489, 443 + xy: 1251, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tendrils-small +block-tainted-water-small rotate: false - xy: 953, 200 + xy: 1825, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tendrils-tiny +block-tainted-water-tiny rotate: false - xy: 1309, 269 + xy: 1921, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tendrils-xlarge +block-tainted-water-xlarge rotate: false xy: 451, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tetrative-reconstructor-large +block-tar-large rotate: false - xy: 1405, 765 + xy: 1111, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tetrative-reconstructor-medium +block-tar-medium rotate: false - xy: 1523, 477 + xy: 1149, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tetrative-reconstructor-small +block-tar-small rotate: false - xy: 979, 226 + xy: 1799, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tetrative-reconstructor-tiny +block-tar-tiny rotate: false - xy: 1327, 287 + xy: 1939, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tetrative-reconstructor-xlarge +block-tar-xlarge rotate: false xy: 501, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-generator-large +block-tendrils-large rotate: false - xy: 1363, 723 + xy: 1069, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-generator-medium +block-tendrils-medium rotate: false - xy: 1557, 511 + xy: 1183, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-generator-small +block-tendrils-small rotate: false - xy: 1005, 252 + xy: 1851, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-generator-tiny +block-tendrils-tiny rotate: false - xy: 1237, 179 + xy: 1741, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-generator-xlarge +block-tendrils-xlarge rotate: false xy: 551, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-pump-large +block-tetrative-reconstructor-large rotate: false - xy: 1321, 681 + xy: 1027, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-pump-medium +block-tetrative-reconstructor-medium rotate: false - xy: 1455, 375 + xy: 1217, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-pump-small +block-tetrative-reconstructor-small rotate: false - xy: 927, 148 + xy: 1825, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-pump-tiny +block-tetrative-reconstructor-tiny rotate: false - xy: 1255, 197 + xy: 1759, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-pump-xlarge +block-tetrative-reconstructor-xlarge rotate: false xy: 351, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-reactor-large +block-thermal-generator-large rotate: false - xy: 1531, 849 + xy: 985, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-reactor-medium +block-thermal-generator-medium rotate: false - xy: 1489, 409 + xy: 1251, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-reactor-small +block-thermal-generator-small rotate: false - xy: 953, 174 + xy: 1877, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-reactor-tiny +block-thermal-generator-tiny rotate: false - xy: 1273, 215 + xy: 1777, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-reactor-xlarge +block-thermal-generator-xlarge rotate: false xy: 401, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-large +block-thermal-pump-large rotate: false - xy: 1489, 807 + xy: 1195, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-thermal-pump-medium rotate: false - xy: 1447, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thorium-wall-large-medium - rotate: false - xy: 1523, 443 + xy: 1285, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-thermal-pump-small rotate: false - xy: 979, 200 + xy: 1851, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-thermal-pump-tiny rotate: false - xy: 1291, 233 + xy: 1795, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-thermal-pump-xlarge rotate: false xy: 451, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium +block-thorium-reactor-large rotate: false - xy: 1557, 477 + xy: 1153, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-reactor-medium + rotate: false + xy: 1183, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-small +block-thorium-reactor-small rotate: false - xy: 1005, 226 + xy: 1903, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-tiny +block-thorium-reactor-tiny rotate: false - xy: 1309, 251 + xy: 1813, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-xlarge +block-thorium-reactor-xlarge rotate: false xy: 501, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thruster-large +block-thorium-wall-large rotate: false - xy: 1405, 723 + xy: 1111, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium +block-thorium-wall-large-large rotate: false - xy: 1591, 511 + xy: 1069, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-medium + rotate: false + xy: 1217, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thruster-small +block-thorium-wall-large-small rotate: false - xy: 953, 148 + xy: 1877, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thruster-tiny +block-thorium-wall-large-tiny rotate: false - xy: 1327, 269 + xy: 1831, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thruster-xlarge +block-thorium-wall-large-xlarge rotate: false xy: 551, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-conveyor-large +block-thorium-wall-medium rotate: false - xy: 1363, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-conveyor-medium - rotate: false - xy: 1489, 375 + xy: 1251, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-thorium-wall-small rotate: false - xy: 979, 174 + xy: 1903, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-thorium-wall-tiny rotate: false - xy: 1345, 287 + xy: 1849, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-thorium-wall-xlarge rotate: false xy: 601, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-thruster-large rotate: false - xy: 1573, 849 + xy: 1027, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-large +block-thruster-medium rotate: false - xy: 1531, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-wall-large-medium - rotate: false - xy: 1523, 409 + xy: 1285, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-large-small +block-thruster-small rotate: false - xy: 1005, 200 + xy: 1929, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-large-tiny +block-thruster-tiny rotate: false - xy: 1255, 179 + xy: 1867, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-large-xlarge +block-thruster-xlarge rotate: false xy: 351, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-medium +block-titanium-conveyor-large rotate: false - xy: 1557, 443 + xy: 1237, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-conveyor-medium + rotate: false + xy: 1217, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-small +block-titanium-conveyor-small rotate: false - xy: 979, 148 + xy: 1929, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-tiny +block-titanium-conveyor-tiny rotate: false - xy: 1273, 197 + xy: 1885, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-xlarge +block-titanium-conveyor-xlarge rotate: false xy: 401, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-turbine-generator-large +block-titanium-wall-large rotate: false - xy: 1489, 765 + xy: 1195, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-turbine-generator-medium +block-titanium-wall-large-large rotate: false - xy: 1591, 477 + xy: 1153, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-medium + rotate: false + xy: 1251, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-turbine-generator-small +block-titanium-wall-large-small rotate: false - xy: 1005, 174 + xy: 1643, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-turbine-generator-tiny +block-titanium-wall-large-tiny rotate: false - xy: 1291, 215 + xy: 1903, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-turbine-generator-xlarge +block-titanium-wall-large-xlarge rotate: false xy: 451, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-underflow-gate-large +block-titanium-wall-medium rotate: false - xy: 1447, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-underflow-gate-medium - rotate: false - xy: 1625, 511 + xy: 1285, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-underflow-gate-small +block-titanium-wall-small rotate: false - xy: 1005, 148 + xy: 1669, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-underflow-gate-tiny +block-titanium-wall-tiny rotate: false - xy: 1309, 233 + xy: 1921, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-underflow-gate-xlarge +block-titanium-wall-xlarge rotate: false xy: 501, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-unloader-large +block-turbine-generator-large rotate: false - xy: 1405, 681 + xy: 1111, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-unloader-medium +block-turbine-generator-medium rotate: false - xy: 1523, 375 + xy: 1251, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-unloader-small +block-turbine-generator-small rotate: false - xy: 909, 122 + xy: 1695, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-unloader-tiny +block-turbine-generator-tiny rotate: false - xy: 1327, 251 + xy: 1939, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-unloader-xlarge +block-turbine-generator-xlarge rotate: false xy: 551, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-vault-large +block-underflow-gate-large rotate: false - xy: 1615, 849 + xy: 1069, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-vault-medium +block-underflow-gate-medium rotate: false - xy: 1557, 409 + xy: 1285, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-underflow-gate-small rotate: false - xy: 909, 96 + xy: 1721, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-underflow-gate-tiny rotate: false - xy: 1345, 269 + xy: 1311, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-underflow-gate-xlarge rotate: false xy: 601, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large +block-unloader-large rotate: false - xy: 1573, 807 + xy: 1279, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-extractor-medium +block-unloader-medium rotate: false - xy: 1591, 443 + xy: 1285, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-extractor-small +block-unloader-small rotate: false - xy: 935, 122 + xy: 1747, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-extractor-tiny +block-unloader-tiny rotate: false - xy: 1363, 287 + xy: 1311, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-extractor-xlarge +block-unloader-xlarge rotate: false xy: 651, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-large +block-vault-large rotate: false - xy: 1531, 765 + xy: 1237, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-medium +block-vault-medium rotate: false - xy: 1625, 477 + xy: 1047, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-small +block-vault-small rotate: false - xy: 909, 70 + xy: 1773, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-tiny +block-vault-tiny rotate: false - xy: 1273, 179 + xy: 1329, 198 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-xlarge +block-vault-xlarge rotate: false xy: 351, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-wave-large +block-water-extractor-large rotate: false - xy: 1489, 723 + xy: 1195, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wave-medium +block-water-extractor-medium rotate: false - xy: 1659, 511 + xy: 1081, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-water-extractor-small rotate: false - xy: 935, 96 + xy: 1799, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-water-extractor-tiny rotate: false - xy: 1291, 197 + xy: 1347, 198 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-water-extractor-xlarge rotate: false xy: 401, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large +block-water-large rotate: false - xy: 1447, 681 + xy: 1153, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-dead-medium +block-water-medium rotate: false - xy: 1557, 375 + xy: 1115, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-dead-small +block-water-small rotate: false - xy: 961, 122 + xy: 1825, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-dead-tiny +block-water-tiny rotate: false - xy: 1309, 215 + xy: 1329, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-dead-xlarge +block-water-xlarge rotate: false xy: 451, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-large +block-wave-large rotate: false - xy: 1657, 849 + xy: 1111, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-medium +block-wave-medium rotate: false - xy: 1591, 409 + xy: 1149, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-small +block-wave-small rotate: false - xy: 909, 44 + xy: 1851, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-tiny +block-wave-tiny rotate: false - xy: 1327, 233 + xy: 1347, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-xlarge +block-wave-xlarge rotate: false xy: 501, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-white-tree-dead-large + rotate: false + xy: 1321, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-dead-medium + rotate: false + xy: 1183, 307 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-dead-small + rotate: false + xy: 1877, 706 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-dead-tiny + rotate: false + xy: 1365, 188 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-dead-xlarge + rotate: false + xy: 551, 416 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-large + rotate: false + xy: 1279, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-medium + rotate: false + xy: 1217, 307 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-small + rotate: false + xy: 1903, 706 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-tiny + rotate: false + xy: 1383, 188 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-xlarge + rotate: false + xy: 601, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 button rotate: false - xy: 919, 594 + xy: 1911, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17608,7 +17685,7 @@ button index: -1 button-disabled rotate: false - xy: 695, 1 + xy: 435, 3 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17616,7 +17693,7 @@ button-disabled index: -1 button-down rotate: false - xy: 733, 1 + xy: 1321, 694 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17624,7 +17701,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 771, 1 + xy: 1405, 744 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17632,7 +17709,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 1867, 862 + xy: 1447, 778 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17640,7 +17717,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 1825, 820 + xy: 1489, 829 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17648,7 +17725,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 1783, 778 + xy: 1531, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17656,7 +17733,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 1741, 736 + xy: 1359, 694 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17664,7 +17741,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 1699, 694 + xy: 1569, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17672,7 +17749,7 @@ button-over index: -1 button-red rotate: false - xy: 1905, 862 + xy: 1607, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17680,7 +17757,7 @@ button-red index: -1 button-right rotate: false - xy: 881, 623 + xy: 1721, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17688,7 +17765,7 @@ button-right index: -1 button-right-down rotate: false - xy: 1943, 862 + xy: 1645, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17696,7 +17773,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 881, 652 + xy: 1683, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17704,7 +17781,7 @@ button-right-over index: -1 button-select rotate: false - xy: 935, 70 + xy: 1929, 706 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -17712,7 +17789,7 @@ button-select index: -1 button-square rotate: false - xy: 919, 623 + xy: 1835, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17720,7 +17797,7 @@ button-square index: -1 button-square-down rotate: false - xy: 919, 652 + xy: 1759, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17728,7 +17805,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 881, 594 + xy: 1797, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17736,7 +17813,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 957, 652 + xy: 1873, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17744,42 +17821,42 @@ button-trans index: -1 check-disabled rotate: false - xy: 1625, 443 + xy: 1251, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1659, 477 + xy: 1285, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1591, 375 + xy: 1319, 490 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1625, 409 + xy: 1353, 490 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 1659, 443 + xy: 1319, 456 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 1625, 375 + xy: 1319, 422 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -17814,7 +17891,7 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 957, 623 + xy: 881, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17829,7 +17906,7 @@ info-banner index: -1 inventory rotate: false - xy: 961, 80 + xy: 1669, 664 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -17837,147 +17914,147 @@ inventory index: -1 item-blast-compound-icon rotate: false - xy: 1659, 409 + xy: 1353, 456 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-icon rotate: false - xy: 1659, 375 + xy: 1319, 388 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-icon rotate: false - xy: 1081, 341 + xy: 1353, 422 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-icon rotate: false - xy: 1115, 341 + xy: 1319, 354 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-icon rotate: false - xy: 1149, 341 + xy: 1353, 388 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-icon rotate: false - xy: 1183, 341 + xy: 1319, 320 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-icon rotate: false - xy: 1217, 341 + xy: 1353, 354 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-icon rotate: false - xy: 1251, 341 + xy: 1353, 320 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-icon rotate: false - xy: 1285, 341 + xy: 1387, 472 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-icon rotate: false - xy: 1319, 341 + xy: 1387, 438 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-icon rotate: false - xy: 1353, 341 + xy: 1387, 404 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-icon rotate: false - xy: 1387, 341 + xy: 1387, 370 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-icon rotate: false - xy: 1421, 341 + xy: 1387, 336 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-icon rotate: false - xy: 1455, 341 + xy: 1421, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-icon rotate: false - xy: 1489, 341 + xy: 1421, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-icon rotate: false - xy: 1523, 341 + xy: 1455, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-icon rotate: false - xy: 1557, 341 + xy: 1421, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-icon rotate: false - xy: 1591, 341 + xy: 1455, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-icon rotate: false - xy: 1625, 341 + xy: 1489, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-icon rotate: false - xy: 1659, 341 + xy: 1421, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-node rotate: false - xy: 1697, 545 + xy: 1455, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -17998,7 +18075,7 @@ nomap index: -1 pane rotate: false - xy: 957, 594 + xy: 919, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18006,7 +18083,7 @@ pane index: -1 pane-2 rotate: false - xy: 995, 652 + xy: 881, 623 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18014,7 +18091,7 @@ pane-2 index: -1 scroll rotate: false - xy: 1013, 111 + xy: 1721, 669 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -18037,49 +18114,49 @@ scroll-knob-horizontal-black index: -1 scroll-knob-vertical-black rotate: false - xy: 987, 106 + xy: 1695, 664 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 1761, 512 + xy: 997, 34 size: 12, 40 orig: 12, 40 offset: 0, 0 index: -1 selection rotate: false - xy: 821, 975 + xy: 643, 313 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 1051, 584 + xy: 685, 280 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 1717, 620 + xy: 1591, 347 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 1717, 580 + xy: 974, 210 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 1748, 628 + xy: 1625, 381 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -18093,7 +18170,7 @@ slider-vertical index: -1 underline rotate: false - xy: 1071, 652 + xy: 957, 623 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18101,7 +18178,7 @@ underline index: -1 underline-2 rotate: false - xy: 995, 623 + xy: 881, 594 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18109,7 +18186,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 1033, 652 + xy: 957, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18117,7 +18194,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 995, 594 + xy: 919, 623 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18125,7 +18202,7 @@ underline-red index: -1 underline-white rotate: false - xy: 1033, 623 + xy: 995, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18133,847 +18210,847 @@ underline-white index: -1 unit-alpha-large rotate: false - xy: 1615, 807 + xy: 1237, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-alpha-medium rotate: false - xy: 1693, 511 + xy: 1489, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-alpha-small rotate: false - xy: 935, 44 + xy: 1747, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-alpha-tiny rotate: false - xy: 1345, 251 + xy: 1401, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-alpha-xlarge rotate: false - xy: 551, 416 + xy: 651, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-antumbra-large rotate: false - xy: 1573, 765 - size: 40, 40 - orig: 40, 40 + xy: 919, 581 + size: 36, 40 + orig: 36, 40 offset: 0, 0 index: -1 unit-antumbra-medium rotate: false - xy: 1693, 477 - size: 32, 32 - orig: 32, 32 + xy: 751, 582 + size: 28, 32 + orig: 28, 32 offset: 0, 0 index: -1 unit-antumbra-small rotate: false - xy: 961, 54 - size: 24, 24 - orig: 24, 24 + xy: 637, 12 + size: 21, 24 + orig: 21, 24 offset: 0, 0 index: -1 unit-antumbra-tiny rotate: false - xy: 1363, 269 - size: 16, 16 - orig: 16, 16 + xy: 603, 38 + size: 14, 16 + orig: 14, 16 offset: 0, 0 index: -1 unit-antumbra-xlarge rotate: false - xy: 601, 466 - size: 48, 48 - orig: 48, 48 + xy: 601, 316 + size: 43, 48 + orig: 43, 48 offset: 0, 0 index: -1 unit-arkyid-large rotate: false - xy: 1531, 723 + xy: 1195, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-arkyid-medium rotate: false - xy: 1693, 443 + xy: 1523, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-arkyid-small rotate: false - xy: 987, 80 + xy: 1773, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-arkyid-tiny rotate: false - xy: 1381, 287 + xy: 963, 164 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-arkyid-xlarge rotate: false - xy: 651, 516 + xy: 701, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-atrax-large rotate: false - xy: 1489, 681 - size: 40, 40 - orig: 40, 40 + xy: 393, 1 + size: 40, 29 + orig: 40, 29 offset: 0, 0 index: -1 unit-atrax-medium rotate: false - xy: 1693, 409 - size: 32, 32 - orig: 32, 32 + xy: 945, 284 + size: 32, 23 + orig: 32, 23 offset: 0, 0 index: -1 unit-atrax-small rotate: false - xy: 1013, 85 - size: 24, 24 - orig: 24, 24 + xy: 937, 163 + size: 24, 17 + orig: 24, 17 offset: 0, 0 index: -1 unit-atrax-tiny rotate: false - xy: 1291, 179 - size: 16, 16 - orig: 16, 16 + xy: 1643, 693 + size: 16, 11 + orig: 16, 11 offset: 0, 0 index: -1 unit-atrax-xlarge rotate: false - xy: 701, 566 - size: 48, 48 - orig: 48, 48 + xy: 351, 180 + size: 48, 34 + orig: 48, 34 offset: 0, 0 index: -1 unit-beta-large rotate: false - xy: 1699, 849 + xy: 1153, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-beta-medium rotate: false - xy: 1693, 375 + xy: 1455, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-beta-small rotate: false - xy: 987, 54 + xy: 1799, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-beta-tiny rotate: false - xy: 1309, 197 + xy: 981, 166 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-beta-xlarge rotate: false - xy: 351, 166 + xy: 401, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-large rotate: false - xy: 1657, 807 + xy: 1363, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-bryde-medium rotate: false - xy: 1693, 341 + xy: 1489, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-bryde-small rotate: false - xy: 1013, 59 + xy: 1825, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-bryde-tiny rotate: false - xy: 1327, 215 + xy: 999, 166 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-bryde-xlarge rotate: false - xy: 401, 216 + xy: 451, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-crawler-large rotate: false - xy: 1615, 765 + xy: 1321, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-crawler-medium rotate: false - xy: 1817, 744 + xy: 1523, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-crawler-small rotate: false - xy: 913, 18 + xy: 1851, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-crawler-tiny rotate: false - xy: 1345, 233 + xy: 963, 146 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-crawler-xlarge rotate: false - xy: 451, 266 + xy: 501, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-large rotate: false - xy: 1573, 723 + xy: 1279, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-dagger-medium rotate: false - xy: 1779, 710 + xy: 1557, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-dagger-small rotate: false - xy: 939, 18 + xy: 1877, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-dagger-tiny rotate: false - xy: 1363, 251 + xy: 981, 148 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-dagger-xlarge rotate: false - xy: 501, 316 + xy: 551, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eclipse-large rotate: false - xy: 1531, 681 + xy: 1237, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-eclipse-medium rotate: false - xy: 1813, 710 + xy: 1489, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-eclipse-small rotate: false - xy: 965, 28 + xy: 1903, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-eclipse-tiny rotate: false - xy: 1381, 269 + xy: 963, 128 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-eclipse-xlarge rotate: false - xy: 551, 366 + xy: 601, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-large rotate: false - xy: 1741, 849 + xy: 1195, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-flare-medium rotate: false - xy: 1737, 668 + xy: 1523, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-flare-small rotate: false - xy: 991, 28 + xy: 1929, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-flare-tiny rotate: false - xy: 1399, 287 + xy: 999, 148 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-flare-xlarge rotate: false - xy: 601, 416 + xy: 651, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-large rotate: false - xy: 1699, 807 - size: 40, 40 - orig: 40, 40 + xy: 1405, 857 + size: 40, 32 + orig: 40, 32 offset: 0, 0 index: -1 unit-fortress-medium rotate: false - xy: 1863, 794 - size: 32, 32 - orig: 32, 32 + xy: 80, 1 + size: 32, 25 + orig: 32, 25 offset: 0, 0 index: -1 unit-fortress-small rotate: false - xy: 1017, 33 - size: 24, 24 - orig: 24, 24 + xy: 1587, 763 + size: 24, 19 + orig: 24, 19 offset: 0, 0 index: -1 unit-fortress-tiny rotate: false - xy: 1309, 179 - size: 16, 16 - orig: 16, 16 + xy: 1437, 662 + size: 16, 12 + orig: 16, 12 offset: 0, 0 index: -1 unit-fortress-xlarge rotate: false - xy: 651, 466 - size: 48, 48 - orig: 48, 48 + xy: 701, 526 + size: 48, 38 + orig: 48, 38 offset: 0, 0 index: -1 unit-gamma-large rotate: false - xy: 1657, 765 + xy: 1363, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-gamma-medium rotate: false - xy: 1897, 794 + xy: 1557, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-gamma-small rotate: false - xy: 1031, 320 + xy: 1675, 638 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-gamma-tiny rotate: false - xy: 1327, 197 + xy: 981, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-gamma-xlarge rotate: false - xy: 701, 516 + xy: 351, 130 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-horizon-large rotate: false - xy: 1615, 723 + xy: 1321, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-horizon-medium rotate: false - xy: 1931, 794 + xy: 1591, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-horizon-small rotate: false - xy: 1031, 294 + xy: 1675, 612 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-horizon-tiny rotate: false - xy: 1345, 215 + xy: 963, 110 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-horizon-xlarge rotate: false - xy: 351, 116 + xy: 401, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mace-large rotate: false - xy: 1573, 681 + xy: 1279, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mace-medium rotate: false - xy: 1727, 511 + xy: 1523, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mace-small rotate: false - xy: 1031, 268 + xy: 1675, 586 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mace-tiny rotate: false - xy: 1363, 233 + xy: 999, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mace-xlarge rotate: false - xy: 401, 166 + xy: 451, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mega-large rotate: false - xy: 1783, 849 + xy: 1237, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mega-medium rotate: false - xy: 1727, 477 + xy: 1557, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mega-small rotate: false - xy: 1031, 242 + xy: 1675, 560 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mega-tiny rotate: false - xy: 1381, 251 + xy: 981, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mega-xlarge rotate: false - xy: 451, 216 + xy: 501, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-minke-large rotate: false - xy: 1741, 807 + xy: 1405, 815 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-minke-medium rotate: false - xy: 1727, 443 + xy: 1591, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-minke-small rotate: false - xy: 1031, 216 + xy: 1701, 638 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-minke-tiny rotate: false - xy: 1399, 269 + xy: 963, 92 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-minke-xlarge rotate: false - xy: 501, 266 + xy: 551, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mono-large rotate: false - xy: 1699, 765 + xy: 1447, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mono-medium rotate: false - xy: 1727, 409 + xy: 1625, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mono-small rotate: false - xy: 1031, 190 + xy: 1701, 612 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mono-tiny rotate: false - xy: 1417, 287 + xy: 963, 74 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mono-xlarge rotate: false - xy: 551, 316 + xy: 601, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-large rotate: false - xy: 1657, 723 + xy: 1363, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-nova-medium rotate: false - xy: 1727, 375 + xy: 1557, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-nova-small rotate: false - xy: 1031, 164 + xy: 1701, 586 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-nova-tiny rotate: false - xy: 1327, 179 + xy: 999, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-nova-xlarge rotate: false - xy: 601, 366 + xy: 651, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-poly-large rotate: false - xy: 1615, 681 + xy: 1321, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-poly-medium rotate: false - xy: 1727, 341 + xy: 1591, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-poly-small rotate: false - xy: 965, 2 + xy: 1701, 560 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-poly-tiny rotate: false - xy: 1345, 197 + xy: 981, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-poly-xlarge rotate: false - xy: 651, 416 + xy: 701, 476 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-pulsar-large rotate: false - xy: 1825, 849 - size: 40, 40 - orig: 40, 40 + xy: 1279, 688 + size: 40, 33 + orig: 40, 33 offset: 0, 0 index: -1 unit-pulsar-medium rotate: false - xy: 1775, 676 - size: 32, 32 - orig: 32, 32 + xy: 979, 284 + size: 32, 26 + orig: 32, 26 offset: 0, 0 index: -1 unit-pulsar-small rotate: false - xy: 991, 2 - size: 24, 24 - orig: 24, 24 + xy: 1943, 836 + size: 24, 19 + orig: 24, 19 offset: 0, 0 index: -1 unit-pulsar-tiny rotate: false - xy: 1363, 215 - size: 16, 16 - orig: 16, 16 + xy: 1557, 795 + size: 16, 13 + orig: 16, 13 offset: 0, 0 index: -1 unit-pulsar-xlarge rotate: false - xy: 701, 466 - size: 48, 48 - orig: 48, 48 + xy: 351, 89 + size: 48, 39 + orig: 48, 39 offset: 0, 0 index: -1 unit-quasar-large rotate: false - xy: 1783, 807 + xy: 1405, 773 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-quasar-medium rotate: false - xy: 1809, 676 + xy: 974, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-quasar-small rotate: false - xy: 1017, 7 + xy: 1947, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-quasar-tiny rotate: false - xy: 1381, 233 + xy: 999, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-quasar-xlarge rotate: false - xy: 351, 66 + xy: 401, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-risso-large rotate: false - xy: 1741, 765 + xy: 1447, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-risso-medium rotate: false - xy: 1847, 710 + xy: 1625, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-risso-small rotate: false - xy: 1057, 315 + xy: 1951, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-risso-tiny rotate: false - xy: 1399, 251 + xy: 981, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-risso-xlarge rotate: false - xy: 401, 116 + xy: 451, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-spiroct-large rotate: false - xy: 1699, 723 - size: 40, 40 - orig: 40, 40 + xy: 1489, 858 + size: 40, 31 + orig: 40, 31 offset: 0, 0 index: -1 unit-spiroct-medium rotate: false - xy: 1843, 676 - size: 32, 32 - orig: 32, 32 + xy: 114, 1 + size: 31, 25 + orig: 31, 25 offset: 0, 0 index: -1 unit-spiroct-small rotate: false - xy: 1057, 289 - size: 24, 24 - orig: 24, 24 + xy: 1005, 213 + size: 24, 19 + orig: 24, 19 offset: 0, 0 index: -1 unit-spiroct-tiny rotate: false - xy: 1417, 269 - size: 16, 16 - orig: 16, 16 + xy: 1705, 492 + size: 15, 12 + orig: 15, 12 offset: 0, 0 index: -1 unit-spiroct-xlarge rotate: false - xy: 451, 166 - size: 48, 48 - orig: 48, 48 + xy: 501, 226 + size: 48, 38 + orig: 48, 38 offset: 0, 0 index: -1 unit-zenith-large rotate: false - xy: 1657, 681 + xy: 1363, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-zenith-medium rotate: false - xy: 1965, 794 + xy: 1659, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-zenith-small rotate: false - xy: 1083, 315 + xy: 1955, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-zenith-tiny rotate: false - xy: 1435, 287 + xy: 999, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-zenith-xlarge rotate: false - xy: 501, 216 + xy: 551, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-pane rotate: false - xy: 1033, 594 + xy: 1033, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18981,14 +19058,14 @@ white-pane index: -1 whiteui rotate: false - xy: 821, 928 + xy: 1034, 255 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 1779, 613 + xy: 2017, 844 size: 27, 61 split: 4, 4, 2, 2 orig: 27, 61 diff --git a/core/assets/sprites/fallback/sprites.png b/core/assets/sprites/fallback/sprites.png index af3a0e5549..612311a8eb 100644 Binary files a/core/assets/sprites/fallback/sprites.png and b/core/assets/sprites/fallback/sprites.png differ diff --git a/core/assets/sprites/fallback/sprites2.png b/core/assets/sprites/fallback/sprites2.png index 86016d627c..a3a75a8797 100644 Binary files a/core/assets/sprites/fallback/sprites2.png and b/core/assets/sprites/fallback/sprites2.png differ diff --git a/core/assets/sprites/fallback/sprites3.png b/core/assets/sprites/fallback/sprites3.png index 2a9667623a..eaa96bce0f 100644 Binary files a/core/assets/sprites/fallback/sprites3.png and b/core/assets/sprites/fallback/sprites3.png differ diff --git a/core/assets/sprites/fallback/sprites4.png b/core/assets/sprites/fallback/sprites4.png index ec8b3e32f5..7319551a32 100644 Binary files a/core/assets/sprites/fallback/sprites4.png and b/core/assets/sprites/fallback/sprites4.png differ diff --git a/core/assets/sprites/fallback/sprites6.png b/core/assets/sprites/fallback/sprites6.png index 9ba8ef5541..61522803dc 100644 Binary files a/core/assets/sprites/fallback/sprites6.png and b/core/assets/sprites/fallback/sprites6.png differ diff --git a/core/assets/sprites/fallback/sprites7.png b/core/assets/sprites/fallback/sprites7.png index b1aee5a8df..0a1ad63aaf 100644 Binary files a/core/assets/sprites/fallback/sprites7.png and b/core/assets/sprites/fallback/sprites7.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 58dad4bb1c..c4932f28b0 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -13,1995 +13,1988 @@ core-silo index: -1 launch-pad rotate: false - xy: 2917, 1065 + xy: 3995, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large rotate: false - xy: 2059, 778 + xy: 2351, 756 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 launch-pad-light rotate: false - xy: 3015, 1065 + xy: 2513, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launchpod rotate: false - xy: 3727, 847 + xy: 3675, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 force-projector rotate: false - xy: 2277, 288 + xy: 3211, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector-top rotate: false - xy: 2313, 190 + xy: 3309, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 3991, 847 + xy: 3147, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 3991, 781 + xy: 3213, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender rotate: false - xy: 3987, 167 + xy: 1987, 183 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 4021, 167 + xy: 1953, 115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-dome rotate: false - xy: 3101, 967 + xy: 3167, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-top rotate: false - xy: 2579, 869 + xy: 3199, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 3239, 703 + xy: 3279, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 3305, 703 + xy: 3345, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 3831, 65 + xy: 2191, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-loader rotate: false - xy: 1823, 53 + xy: 2189, 520 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader rotate: false - xy: 1961, 445 + xy: 2287, 462 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 3661, 287 + xy: 3599, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 3837, 473 + xy: 3769, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 3871, 473 + xy: 3803, 133 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 3905, 473 + xy: 1689, 248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 3939, 473 + xy: 1723, 248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 3025, 182 + xy: 3989, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 3025, 182 + xy: 3989, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 2135, 352 + xy: 3989, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 1847, 19 + xy: 3989, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 1881, 19 + xy: 3989, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 1915, 19 + xy: 3981, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 1949, 19 + xy: 4057, 471 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 1983, 19 + xy: 1651, 244 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 2017, 19 + xy: 3939, 86 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 2051, 19 + xy: 3089, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 2085, 19 + xy: 3123, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 2119, 19 + xy: 3157, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 2153, 19 + xy: 3191, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 2637, 117 + xy: 3225, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 2637, 83 + xy: 3259, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 2637, 49 + xy: 3293, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 2671, 111 + xy: 3327, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 2671, 77 + xy: 3361, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 2671, 43 + xy: 3395, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 4057, 945 + xy: 3085, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 4057, 911 + xy: 3085, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 3735, 439 + xy: 1749, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 3769, 439 + xy: 1749, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 3803, 439 + xy: 1757, 248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 3837, 439 + xy: 1791, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 3871, 439 + xy: 1791, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 3905, 439 + xy: 1783, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 3939, 439 + xy: 1783, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 3973, 439 + xy: 1783, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 4007, 447 + xy: 1783, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 4041, 447 + xy: 1783, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 3719, 389 + xy: 1783, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 3711, 355 + xy: 1783, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 3711, 321 + xy: 1817, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 3753, 405 + xy: 1817, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 3787, 405 + xy: 1817, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 3821, 405 + xy: 1817, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 3855, 405 + xy: 1817, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 3889, 405 + xy: 1817, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 3923, 405 + xy: 1817, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor rotate: false - xy: 3355, 195 + xy: 2089, 152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 3355, 161 + xy: 2123, 186 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 3389, 181 + xy: 1987, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 3423, 181 + xy: 2021, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 3457, 181 + xy: 2055, 84 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 3389, 147 + xy: 2089, 118 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 3523, 77 + xy: 2429, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 3557, 77 + xy: 2361, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 3591, 77 + xy: 2395, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 3625, 77 + xy: 2429, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 3659, 77 + xy: 2395, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 3489, 53 + xy: 2429, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 3523, 43 + xy: 2429, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 3557, 43 + xy: 2463, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 3591, 43 + xy: 2497, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 3625, 43 + xy: 2463, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 3659, 43 + xy: 2531, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 3693, 49 + xy: 2497, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 3727, 31 + xy: 2531, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 3761, 31 + xy: 2565, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 3795, 31 + xy: 2599, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 3829, 31 + xy: 2633, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 3863, 31 + xy: 3837, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 3897, 31 + xy: 3833, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 3931, 31 + xy: 3871, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 3889, 371 + xy: 3561, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 3463, 781 + xy: 3691, 733 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 3915, 337 + xy: 3731, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 3681, 213 + xy: 1851, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -mass-conveyor - rotate: false - xy: 3603, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-edge - rotate: false - xy: 3701, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-top - rotate: false - xy: 3799, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -payload-router-top - rotate: false - xy: 3799, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 mass-driver-base rotate: false - xy: 3995, 1077 + xy: 3101, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 3749, 133 + xy: 2055, 186 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -payload-router - rotate: false - xy: 2579, 771 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -payload-router-edge - rotate: false - xy: 2677, 869 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -payload-router-over - rotate: false - xy: 2677, 771 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -phase-conveyor - rotate: false - xy: 3919, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-arrow - rotate: false - xy: 3953, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-bridge - rotate: false - xy: 3987, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-end - rotate: false - xy: 4021, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -router - rotate: false - xy: 3797, 99 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sorter - rotate: false - xy: 3899, 65 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -underflow-gate - rotate: false - xy: 4033, 31 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -blast-drill - rotate: false - xy: 3365, 1435 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -blast-drill-rim - rotate: false - xy: 3495, 1435 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -blast-drill-rotator - rotate: false - xy: 3625, 1435 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -blast-drill-top - rotate: false - xy: 3755, 1435 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -drill-top - rotate: false - xy: 3529, 781 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-liquid - rotate: false - xy: 3529, 781 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -laser-drill - rotate: false - xy: 2525, 1065 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -laser-drill-rim - rotate: false - xy: 2623, 1065 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -laser-drill-rotator - rotate: false - xy: 2721, 1065 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -laser-drill-top - rotate: false - xy: 2819, 1065 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mechanical-drill - rotate: false - xy: 3925, 847 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -mechanical-drill-rotator - rotate: false - xy: 3991, 913 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -mechanical-drill-top - rotate: false - xy: 3925, 781 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -oil-extractor - rotate: false - xy: 2709, 967 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -oil-extractor-liquid - rotate: false - xy: 2807, 967 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -oil-extractor-rotator - rotate: false - xy: 2905, 967 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -oil-extractor-top - rotate: false - xy: 3003, 967 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -pneumatic-drill - rotate: false - xy: 3899, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -pneumatic-drill-rotator - rotate: false - xy: 3965, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -pneumatic-drill-top - rotate: false - xy: 4031, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -water-extractor - rotate: false - xy: 2477, 216 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -water-extractor-liquid - rotate: false - xy: 2477, 150 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -water-extractor-rotator - rotate: false - xy: 2543, 216 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -water-extractor-top - rotate: false - xy: 2543, 150 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -block-border - rotate: false - xy: 3443, 215 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-middle - rotate: false - xy: 3092, 41 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-select - rotate: false - xy: 2705, 48 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-liquid - rotate: false - xy: 3693, 423 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -place-arrow - rotate: false - xy: 2775, 869 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -bridge-conduit - rotate: false - xy: 3701, 465 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-arrow - rotate: false - xy: 3735, 473 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-arrow - rotate: false - xy: 3735, 473 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-bridge - rotate: false - xy: 3769, 473 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-end - rotate: false - xy: 3803, 473 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom - rotate: false - xy: 4041, 481 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-0 - rotate: false - xy: 3653, 247 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-1 - rotate: false - xy: 3647, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-2 - rotate: false - xy: 3647, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-3 - rotate: false - xy: 3647, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-4 - rotate: false - xy: 3647, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-0 - rotate: false - xy: 3685, 389 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-1 - rotate: false - xy: 3677, 355 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-2 - rotate: false - xy: 3677, 321 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-3 - rotate: false - xy: 3695, 287 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-3 - rotate: false - xy: 3695, 287 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-4 - rotate: false - xy: 3687, 253 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-junction - rotate: false - xy: 3715, 185 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-overflow-gate - rotate: false - xy: 3817, 201 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-overflow-gate-top - rotate: false - xy: 3851, 201 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-bottom - rotate: false - xy: 3885, 201 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-liquid - rotate: false - xy: 3919, 201 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-top - rotate: false - xy: 3953, 201 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-tank-bottom - rotate: false - xy: 3113, 1065 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -liquid-tank-liquid - rotate: false - xy: 3211, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -liquid-tank-top - rotate: false - xy: 3309, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mechanical-pump - rotate: false - xy: 3851, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -mechanical-pump-liquid - rotate: false - xy: 3885, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rotary-pump-liquid - rotate: false - xy: 3885, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -thermal-pump-liquid - rotate: false - xy: 3885, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit - rotate: false - xy: 3783, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-arrow - rotate: false - xy: 3817, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-bridge - rotate: false - xy: 3851, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-end - rotate: false - xy: 3885, 133 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-cap - rotate: false - xy: 3457, 147 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-0 - rotate: false - xy: 3491, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-1 - rotate: false - xy: 3491, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-2 - rotate: false - xy: 3525, 145 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-3 - rotate: false - xy: 3559, 145 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-4 - rotate: false - xy: 3593, 145 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-0 - rotate: false - xy: 3559, 111 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-1 - rotate: false - xy: 3593, 111 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-2 - rotate: false - xy: 3627, 111 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-4 - rotate: false - xy: 3661, 111 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rotary-pump - rotate: false - xy: 3635, 649 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -thermal-pump - rotate: false - xy: 3493, 979 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -data-processor-top - rotate: false - xy: 2157, 680 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -logic-display - rotate: false - xy: 3407, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -logic-processor - rotate: false - xy: 3793, 913 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -logic-processor-3 - rotate: false - xy: 3505, 1077 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -memory-cell - rotate: false - xy: 3953, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -message - rotate: false - xy: 4055, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -micro-processor - rotate: false - xy: 3715, 151 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -switch - rotate: false - xy: 3421, 79 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -switch-on - rotate: false - xy: 3455, 79 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -battery - rotate: false - xy: 4057, 877 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -battery-large - rotate: false - xy: 1431, 162 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -battery-large-top - rotate: false - xy: 1431, 64 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -battery-top - rotate: false - xy: 4057, 843 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -combustion-generator - rotate: false - xy: 3973, 473 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -combustion-generator-top - rotate: false - xy: 4007, 481 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -differential-generator - rotate: false - xy: 2157, 582 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -differential-generator-liquid - rotate: false - xy: 2157, 484 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -differential-generator-top - rotate: false - xy: 2183, 386 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -diode - rotate: false - xy: 3923, 371 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -diode-arrow - rotate: false - xy: 3957, 371 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -illuminator - rotate: false - xy: 3813, 337 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -illuminator-top - rotate: false - xy: 3847, 337 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -impact-reactor - rotate: false - xy: 3565, 1175 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -impact-reactor-bottom - rotate: false - xy: 3695, 1305 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -impact-reactor-light - rotate: false - xy: 3695, 1175 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -impact-reactor-plasma-0 - rotate: false - xy: 3825, 1305 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -impact-reactor-plasma-1 - rotate: false - xy: 3825, 1175 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -impact-reactor-plasma-2 - rotate: false - xy: 3955, 1305 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -impact-reactor-plasma-3 - rotate: false - xy: 3955, 1175 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -power-node - rotate: false - xy: 3627, 145 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -power-node-large - rotate: false - xy: 2995, 216 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -power-source - rotate: false - xy: 3661, 145 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -power-void - rotate: false - xy: 3525, 111 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rtg-generator - rotate: false - xy: 3701, 649 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -rtg-generator-top - rotate: false - xy: 3831, 99 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -solar-panel - rotate: false - xy: 3865, 65 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -solar-panel-large - rotate: false - xy: 3395, 979 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -surge-tower - rotate: false - xy: 3127, 177 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -thermal-generator - rotate: false - xy: 1863, 449 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -thorium-reactor - rotate: false - xy: 3591, 979 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -thorium-reactor-lights - rotate: false - xy: 3689, 979 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -thorium-reactor-top - rotate: false - xy: 3787, 979 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -turbine-generator - rotate: false - xy: 361, 21 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-cap - rotate: false - xy: 427, 21 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-top - rotate: false - xy: 2449, 282 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-turbine0 - rotate: false - xy: 2515, 282 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-turbine1 - rotate: false - xy: 2411, 216 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -alloy-smelter - rotate: false - xy: 1493, 260 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -alloy-smelter-top - rotate: false - xy: 1591, 249 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -blast-mixer - rotate: false - xy: 2789, 464 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -block-forge - rotate: false - xy: 1693, 347 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -coal-centrifuge - rotate: false - xy: 2665, 299 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -cryofluidmixer-bottom - rotate: false - xy: 3331, 781 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -cryofluidmixer-liquid - rotate: false - xy: 3397, 847 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -cryofluidmixer-top - rotate: false - xy: 3463, 913 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -cultivator - rotate: false - xy: 3397, 781 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -cultivator-middle - rotate: false - xy: 3463, 847 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -cultivator-top - rotate: false - xy: 3529, 913 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -disassembler - rotate: false - xy: 2179, 288 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -disassembler-liquid - rotate: false - xy: 2215, 190 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -disassembler-spinner - rotate: false - xy: 2215, 92 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -graphite-press - rotate: false - xy: 3661, 913 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -incinerator - rotate: false - xy: 3881, 337 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-source - rotate: false - xy: 3755, 235 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-void - rotate: false - xy: 4061, 235 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -kiln - rotate: false - xy: 3595, 781 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -kiln-top - rotate: false - xy: 3661, 847 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -silicon-smelter-top - rotate: false - xy: 3661, 847 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -liquid-source - rotate: false - xy: 4055, 201 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-void - rotate: false - xy: 3749, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -melter - rotate: false - xy: 3919, 167 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -multi-press - rotate: false - xy: 2513, 967 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -phase-weaver - rotate: false - xy: 3503, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -phase-weaver-bottom - rotate: false - xy: 3569, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -phase-weaver-weave - rotate: false - xy: 3635, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -plastanium-compressor - rotate: false - xy: 3701, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -plastanium-compressor-top - rotate: false - xy: 3767, 715 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -pulverizer - rotate: false - xy: 3695, 117 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulverizer-rotator - rotate: false - xy: 3695, 83 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pyratite-mixer - rotate: false - xy: 3437, 649 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -separator - rotate: false - xy: 3119, 507 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -separator-liquid - rotate: false - xy: 3061, 441 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -separator-spinner - rotate: false - xy: 3061, 375 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -silicon-crucible - rotate: false - xy: 3199, 967 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -silicon-crucible-top +payload-conveyor rotate: false xy: 3297, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +payload-conveyor-edge + rotate: false + xy: 3395, 979 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-conveyor-top + rotate: false + xy: 3493, 979 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-router-top + rotate: false + xy: 3493, 979 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-router + rotate: false + xy: 3591, 979 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-router-edge + rotate: false + xy: 3689, 979 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-router-over + rotate: false + xy: 3787, 979 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +phase-conveyor + rotate: false + xy: 2089, 186 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-arrow + rotate: false + xy: 1953, 47 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-bridge + rotate: false + xy: 1987, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conveyor-end + rotate: false + xy: 2021, 115 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +router + rotate: false + xy: 2191, 158 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sorter + rotate: false + xy: 2225, 22 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +underflow-gate + rotate: false + xy: 3905, 43 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +blast-drill + rotate: false + xy: 3495, 1435 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +blast-drill-rim + rotate: false + xy: 3625, 1435 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +blast-drill-rotator + rotate: false + xy: 3755, 1435 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +blast-drill-top + rotate: false + xy: 3885, 1435 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +drill-top + rotate: false + xy: 3889, 741 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +turbine-generator-liquid + rotate: false + xy: 3889, 741 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +laser-drill + rotate: false + xy: 3701, 1077 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +laser-drill-rim + rotate: false + xy: 2577, 104 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +laser-drill-rotator + rotate: false + xy: 3799, 1077 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +laser-drill-top + rotate: false + xy: 3897, 1077 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +mechanical-drill + rotate: false + xy: 2949, 594 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +mechanical-drill-rotator + rotate: false + xy: 3015, 589 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +mechanical-drill-top + rotate: false + xy: 3081, 589 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +oil-extractor + rotate: false + xy: 2775, 869 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +oil-extractor-liquid + rotate: false + xy: 2873, 869 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +oil-extractor-rotator + rotate: false + xy: 2971, 869 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +oil-extractor-top + rotate: false + xy: 3069, 869 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +pneumatic-drill + rotate: false + xy: 3939, 609 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +pneumatic-drill-rotator + rotate: false + xy: 4005, 609 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +pneumatic-drill-top + rotate: false + xy: 2975, 523 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor + rotate: false + xy: 3735, 403 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor-liquid + rotate: false + xy: 3801, 469 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor-rotator + rotate: false + xy: 3801, 403 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor-top + rotate: false + xy: 3867, 477 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +block-border + rotate: false + xy: 3187, 123 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-middle + rotate: false + xy: 3998, 417 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-select + rotate: false + xy: 3175, 21 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-liquid + rotate: false + xy: 1715, 10 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +place-arrow + rotate: false + xy: 3885, 979 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +bridge-conduit + rotate: false + xy: 3633, 127 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-arrow + rotate: false + xy: 3667, 127 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conveyor-arrow + rotate: false + xy: 3667, 127 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-bridge + rotate: false + xy: 3701, 127 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +bridge-conduit-end + rotate: false + xy: 3735, 127 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom + rotate: false + xy: 1715, 146 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-0 + rotate: false + xy: 1715, 112 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-1 + rotate: false + xy: 1715, 78 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-2 + rotate: false + xy: 1715, 44 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-3 + rotate: false + xy: 1715, 44 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-bottom-4 + rotate: false + xy: 1715, 44 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-0 + rotate: false + xy: 1749, 214 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-1 + rotate: false + xy: 1749, 180 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-2 + rotate: false + xy: 1749, 146 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-3 + rotate: false + xy: 1749, 112 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-3 + rotate: false + xy: 1749, 112 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conduit-top-4 + rotate: false + xy: 1749, 78 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-junction + rotate: false + xy: 1885, 117 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-overflow-gate + rotate: false + xy: 1851, 15 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-overflow-gate-top + rotate: false + xy: 1885, 49 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-bottom + rotate: false + xy: 1885, 15 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-liquid + rotate: false + xy: 1919, 219 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-router-top + rotate: false + xy: 1919, 185 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-tank-bottom + rotate: false + xy: 2611, 967 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +liquid-tank-liquid + rotate: false + xy: 2709, 967 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +liquid-tank-top + rotate: false + xy: 2807, 967 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +mechanical-pump + rotate: false + xy: 1987, 217 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +mechanical-pump-liquid + rotate: false + xy: 2021, 217 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +rotary-pump-liquid + rotate: false + xy: 2021, 217 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thermal-pump-liquid + rotate: false + xy: 2021, 217 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit + rotate: false + xy: 1953, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-arrow + rotate: false + xy: 1987, 115 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-bridge + rotate: false + xy: 2021, 149 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit-end + rotate: false + xy: 2055, 152 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-cap + rotate: false + xy: 2021, 47 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-0 + rotate: false + xy: 2055, 50 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-1 + rotate: false + xy: 2089, 84 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-2 + rotate: false + xy: 2123, 118 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-3 + rotate: false + xy: 2089, 50 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plated-conduit-top-4 + rotate: false + xy: 2123, 84 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-0 + rotate: false + xy: 2021, 13 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-1 + rotate: false + xy: 2055, 16 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-2 + rotate: false + xy: 2089, 16 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulse-conduit-top-4 + rotate: false + xy: 2123, 16 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +rotary-pump + rotate: false + xy: 3371, 523 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +thermal-pump + rotate: false + xy: 2581, 575 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +hyper-processor + rotate: false + xy: 3603, 1077 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +logic-display + rotate: false + xy: 2905, 967 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +logic-processor + rotate: false + xy: 3741, 667 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +memory-cell + rotate: false + xy: 1953, 149 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +message + rotate: false + xy: 1987, 149 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +micro-processor + rotate: false + xy: 2021, 183 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +switch + rotate: false + xy: 2327, 32 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +switch-on + rotate: false + xy: 2361, 66 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +battery + rotate: false + xy: 3119, 123 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +battery-large + rotate: false + xy: 2189, 618 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +battery-large-top + rotate: false + xy: 2087, 484 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +battery-top + rotate: false + xy: 3119, 89 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +combustion-generator + rotate: false + xy: 1715, 214 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +combustion-generator-top + rotate: false + xy: 1715, 180 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +differential-generator + rotate: false + xy: 2479, 200 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +differential-generator-liquid + rotate: false + xy: 2479, 102 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +differential-generator-top + rotate: false + xy: 2525, 1065 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +diode + rotate: false + xy: 3527, 59 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +diode-arrow + rotate: false + xy: 3595, 93 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator + rotate: false + xy: 3629, 59 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator-top + rotate: false + xy: 3697, 93 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +impact-reactor + rotate: false + xy: 3695, 1175 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +impact-reactor-bottom + rotate: false + xy: 3825, 1305 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +impact-reactor-light + rotate: false + xy: 3825, 1175 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +impact-reactor-plasma-0 + rotate: false + xy: 3955, 1305 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +impact-reactor-plasma-1 + rotate: false + xy: 3955, 1175 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +impact-reactor-plasma-2 + rotate: false + xy: 2059, 778 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +impact-reactor-plasma-3 + rotate: false + xy: 2221, 814 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +power-node + rotate: false + xy: 2123, 50 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-node-large + rotate: false + xy: 3041, 523 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +power-source + rotate: false + xy: 1953, 13 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +power-void + rotate: false + xy: 1987, 13 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +rtg-generator + rotate: false + xy: 3009, 457 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +rtg-generator-top + rotate: false + xy: 2225, 192 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +solar-panel + rotate: false + xy: 2225, 56 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +solar-panel-large + rotate: false + xy: 2679, 771 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +surge-tower + rotate: false + xy: 3899, 543 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +thermal-generator + rotate: false + xy: 3471, 457 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +thorium-reactor + rotate: false + xy: 2679, 673 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +thorium-reactor-lights + rotate: false + xy: 2777, 771 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +thorium-reactor-top + rotate: false + xy: 2581, 477 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +turbine-generator + rotate: false + xy: 3537, 403 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +turbine-generator-cap + rotate: false + xy: 3603, 469 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +turbine-generator-top + rotate: false + xy: 3603, 403 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +turbine-generator-turbine0 + rotate: false + xy: 3669, 469 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +turbine-generator-turbine1 + rotate: false + xy: 3669, 403 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +alloy-smelter + rotate: false + xy: 2189, 716 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +alloy-smelter-top + rotate: false + xy: 2091, 582 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +blast-mixer + rotate: false + xy: 2677, 366 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +block-forge + rotate: false + xy: 1493, 253 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +coal-centrifuge + rotate: false + xy: 2949, 660 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cryofluidmixer-bottom + rotate: false + xy: 3361, 721 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cryofluidmixer-liquid + rotate: false + xy: 3345, 655 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cryofluidmixer-top + rotate: false + xy: 3427, 733 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cultivator + rotate: false + xy: 3493, 733 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cultivator-middle + rotate: false + xy: 3559, 733 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +cultivator-top + rotate: false + xy: 3625, 733 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +disassembler + rotate: false + xy: 2623, 1065 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +disassembler-liquid + rotate: false + xy: 2721, 1065 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +disassembler-spinner + rotate: false + xy: 2819, 1065 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +graphite-press + rotate: false + xy: 4021, 743 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +incinerator + rotate: false + xy: 3663, 59 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-source + rotate: false + xy: 2089, 220 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-void + rotate: false + xy: 1885, 185 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +kiln + rotate: false + xy: 3411, 655 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +kiln-top + rotate: false + xy: 3477, 667 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +silicon-smelter-top + rotate: false + xy: 3477, 667 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +liquid-source + rotate: false + xy: 1919, 83 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-void + rotate: false + xy: 1919, 49 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +melter + rotate: false + xy: 1953, 183 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +multi-press + rotate: false + xy: 2579, 869 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +phase-weaver + rotate: false + xy: 3543, 601 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +phase-weaver-bottom + rotate: false + xy: 3609, 601 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +phase-weaver-weave + rotate: false + xy: 3675, 601 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +plastanium-compressor + rotate: false + xy: 3741, 601 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +plastanium-compressor-top + rotate: false + xy: 3807, 609 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +pulverizer + rotate: false + xy: 2157, 192 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pulverizer-rotator + rotate: false + xy: 2157, 158 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pyratite-mixer + rotate: false + xy: 3173, 523 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +separator + rotate: false + xy: 3339, 391 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +separator-liquid + rotate: false + xy: 3437, 523 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +separator-spinner + rotate: false + xy: 3405, 457 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +silicon-crucible + rotate: false + xy: 2581, 771 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +silicon-crucible-top + rotate: false + xy: 2581, 673 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 silicon-smelter rotate: false - xy: 3061, 309 + xy: 3405, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 3061, 243 + xy: 3503, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 3127, 441 + xy: 3569, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 3127, 375 + xy: 3635, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 3127, 309 + xy: 3701, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 3127, 243 + xy: 3767, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 3061, 177 + xy: 3833, 543 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rock1 rotate: false - xy: 3559, 499 + xy: 3439, 175 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rock2 rotate: false - xy: 3851, 549 + xy: 3489, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-boulder1 rotate: false - xy: 3865, 99 + xy: 2157, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 3899, 99 + xy: 2191, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 3763, 65 + xy: 2191, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 3797, 65 + xy: 2225, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snowrock1 rotate: false - xy: 3509, 399 + xy: 3689, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock2 rotate: false - xy: 3559, 449 + xy: 3739, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 1607, 11 + xy: 3707, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 1649, 11 + xy: 3989, 370 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 1691, 11 + xy: 3989, 328 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -2036,21 +2029,21 @@ white-tree-shadow index: -1 container rotate: false - xy: 2797, 266 + xy: 3031, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation rotate: false - xy: 2383, 1016 + xy: 2375, 886 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team rotate: false - xy: 1001, 339 + xy: 3045, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2071,161 +2064,161 @@ core-nucleus-team index: -1 core-shard rotate: false - xy: 1791, 347 + xy: 2385, 462 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team rotate: false - xy: 1885, 249 + xy: 2283, 364 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 unloader rotate: false - xy: 3693, 15 + xy: 3939, 52 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 2841, 74 + xy: 3973, 52 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault rotate: false - xy: 3983, 979 + xy: 2777, 673 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 2179, 254 + xy: 1949, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 4057, 809 + xy: 3153, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 2855, 464 + xy: 2675, 300 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 1529, 151 + xy: 2087, 386 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 3885, 1435 + xy: 2525, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 hail-heat rotate: false - xy: 1481, 22 + xy: 4049, 889 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 3661, 781 + xy: 3609, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 meltdown-heat rotate: false - xy: 2351, 756 + xy: 1065, 531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ripple-heat rotate: false - xy: 2873, 869 + xy: 3265, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 3833, 649 + xy: 3075, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 3899, 649 + xy: 3075, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 3965, 649 + xy: 3141, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-heat rotate: false - xy: 3967, 99 + xy: 2157, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 2609, 216 + xy: 3933, 477 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 additive-reconstructor rotate: false - xy: 1595, 347 + xy: 1989, 539 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 additive-reconstructor-top rotate: false - xy: 2481, 788 + xy: 1989, 441 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 2481, 690 + xy: 2091, 680 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 command-center rotate: false - xy: 2731, 266 + xy: 2965, 726 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2246,7 +2239,7 @@ exponential-reconstructor-top index: -1 factory-in-3 rotate: false - xy: 2353, 658 + xy: 2917, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -2274,7 +2267,7 @@ factory-in-9 index: -1 factory-out-3 rotate: false - xy: 2353, 560 + xy: 3015, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -2302,14 +2295,14 @@ factory-out-9 index: -1 factory-top-3 rotate: false - xy: 2451, 592 + xy: 3113, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 2451, 494 + xy: 3505, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -2330,28 +2323,28 @@ multiplicative-reconstructor-top index: -1 naval-factory rotate: false - xy: 2611, 967 + xy: 2677, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rally-point rotate: false - xy: 3503, 649 + xy: 3239, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-base rotate: false - xy: 3763, 99 + xy: 2157, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point rotate: false - xy: 3569, 649 + xy: 3305, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2372,224 +2365,224 @@ tetrative-reconstructor-top index: -1 copper-wall rotate: false - xy: 3957, 405 + xy: 4007, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 2863, 266 + xy: 3097, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door rotate: false - xy: 3991, 371 + xy: 3561, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large rotate: false - xy: 3529, 847 + xy: 3757, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 3595, 913 + xy: 3823, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-open rotate: false - xy: 4025, 379 + xy: 3629, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 4055, 133 + xy: 2055, 118 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 3437, 715 + xy: 3477, 601 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 3423, 147 + xy: 2123, 152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 3833, 715 + xy: 3873, 609 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-gigantic rotate: false - xy: 1261, 401 + xy: 1261, 271 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge2 rotate: false - xy: 3167, 869 + xy: 3853, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 3167, 771 + xy: 3951, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 3059, 639 + xy: 3207, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 3125, 639 + xy: 3207, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 3049, 573 + xy: 3273, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 3115, 573 + xy: 3273, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 4001, 99 + xy: 2191, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 4035, 99 + xy: 2225, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 3729, 65 + xy: 2157, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 3729, 65 + xy: 2157, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 3387, 79 + xy: 2395, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 3191, 637 + xy: 3965, 543 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 3489, 87 + xy: 2395, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 229, 21 + xy: 3471, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster rotate: false - xy: 1261, 271 + xy: 1187, 11 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-wall rotate: false - xy: 3965, 31 + xy: 3905, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 295, 21 + xy: 3537, 469 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 3251, 177 + xy: 2981, 152 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 2675, 245 + xy: 2981, 98 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 2049, 1538 + xy: 1979, 343 size: 8, 16 orig: 8, 16 offset: 0, 0 index: -1 circle-end rotate: false - xy: 1455, 542 + xy: 1683, 510 size: 100, 199 orig: 100, 199 offset: 0, 0 @@ -2610,7 +2603,7 @@ circle-shadow index: -1 error rotate: false - xy: 2824, 116 + xy: 3389, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -2624,56 +2617,56 @@ laser index: -1 laser-end rotate: false - xy: 2429, 420 + xy: 2875, 652 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser rotate: false - xy: 3365, 653 + xy: 4091, 881 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 2503, 420 + xy: 2873, 578 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 missile rotate: false - xy: 2313, 776 + xy: 1651, 278 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 1733, 15 + xy: 4057, 505 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 parallax-laser rotate: false - xy: 317, 361 + xy: 4091, 455 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 parallax-laser-end rotate: false - xy: 2577, 422 + xy: 1875, 359 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 particle rotate: false - xy: 1565, 11 + xy: 3665, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -2687,56 +2680,56 @@ scale_marker index: -1 shell rotate: false - xy: 1771, 15 + xy: 1949, 395 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 1809, 15 + xy: 3749, 165 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 transfer rotate: false - xy: 543, 263 + xy: 317, 361 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 3999, 31 + xy: 3871, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 1557, 542 + xy: 3015, 721 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 alpha-wreck0 rotate: false - xy: 3297, 587 + xy: 1497, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck1 rotate: false - xy: 3301, 537 + xy: 1547, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck2 rotate: false - xy: 3309, 487 + xy: 3039, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -2764,140 +2757,140 @@ antumbra-wreck2 index: -1 arc rotate: false - xy: 229, 87 + xy: 3989, 294 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arkyid-wreck0 rotate: false - xy: 3105, 1435 + xy: 3964, 1789 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck1 rotate: false - xy: 3964, 1789 + xy: 3235, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck2 rotate: false - xy: 3235, 1435 + xy: 3365, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 atrax-wreck0 rotate: false - xy: 1391, 272 + xy: 4007, 1591 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck1 rotate: false - xy: 3059, 705 + xy: 1785, 379 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck2 rotate: false - xy: 3149, 705 + xy: 2875, 726 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 beta-wreck0 rotate: false - xy: 3309, 229 + xy: 3089, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck1 rotate: false - xy: 3305, 179 + xy: 3139, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck2 rotate: false - xy: 2587, 100 + xy: 3089, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-additive-reconstructor-full rotate: false - xy: 1529, 53 + xy: 1989, 343 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-air-factory-full rotate: false - xy: 1627, 151 + xy: 2087, 288 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-arc-full rotate: false - xy: 3409, 215 + xy: 3153, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-full rotate: false - xy: 2525, 1293 + xy: 2525, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-char-full rotate: false - xy: 3477, 215 + xy: 3187, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 3511, 223 + xy: 3221, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 2413, 8 + xy: 3221, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 3659, 423 + xy: 3255, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 3659, 423 + xy: 3255, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-full rotate: false - xy: 2525, 1163 + xy: 2655, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2911,63 +2904,63 @@ block-core-nucleus-full index: -1 block-core-shard-full rotate: false - xy: 1627, 53 + xy: 1493, 449 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 3559, 281 + xy: 3255, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 2921, 464 + xy: 2675, 234 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 2665, 365 + xy: 2675, 168 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 1689, 249 + xy: 1493, 351 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 3593, 281 + xy: 3289, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 3025, 148 + xy: 3289, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-full rotate: false - xy: 3024, 114 + xy: 3323, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 3024, 80 + xy: 3323, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2981,161 +2974,147 @@ block-exponential-reconstructor-full index: -1 block-fuse-full rotate: false - xy: 1725, 151 + xy: 1447, 155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-grass-full rotate: false - xy: 3059, 143 + xy: 3357, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ground-factory-full rotate: false - xy: 1725, 53 + xy: 1447, 57 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 3093, 143 + xy: 3357, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 3127, 143 + xy: 3391, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 3058, 109 + xy: 3391, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 3092, 109 + xy: 4023, 294 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 3126, 109 + xy: 4023, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 3058, 75 + xy: 4023, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 3092, 75 + xy: 4023, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-full rotate: false - xy: 2655, 1293 + xy: 2655, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 2987, 480 + xy: 2675, 102 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-laser-drill-full rotate: false - xy: 1787, 249 + xy: 1545, 155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 3126, 75 + xy: 4023, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-full rotate: false - xy: 1823, 151 + xy: 1545, 57 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 3024, 46 + xy: 4015, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-conveyor-full - rotate: false - xy: 1863, 613 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-icon - rotate: false - xy: 1863, 613 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 block-mass-driver-full rotate: false - xy: 1863, 515 + xy: 2185, 422 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 2215, 26 + xy: 2745, 432 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 2655, 1163 + xy: 2785, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 3058, 41 + xy: 3999, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 3126, 41 + xy: 3973, 86 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3149,343 +3128,357 @@ block-multiplicative-reconstructor-full index: -1 block-naval-factory-full rotate: false - xy: 1961, 641 + xy: 2185, 324 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-oil-extractor-full rotate: false - xy: 1961, 543 + xy: 2185, 226 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-ore-coal-full rotate: false - xy: 2587, 16 + xy: 4007, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 2621, 15 + xy: 3429, 141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 3651, 389 + xy: 3425, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 3643, 355 + xy: 3425, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 3643, 321 + xy: 4049, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 3551, 247 + xy: 4041, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-parallax-full rotate: false - xy: 2281, 26 + xy: 2743, 366 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +block-payload-conveyor-full + rotate: false + xy: 2287, 658 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +payload-conveyor-icon + rotate: false + xy: 2287, 658 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 block-payload-router-full rotate: false - xy: 2059, 680 + xy: 2287, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon rotate: false - xy: 2059, 680 + xy: 2287, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 3585, 247 + xy: 3085, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 2347, 26 + xy: 2741, 300 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 3545, 213 + xy: 3119, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 2731, 398 + xy: 2741, 234 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 3579, 213 + xy: 3153, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 3511, 189 + xy: 3187, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 3545, 179 + xy: 3221, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ripple-full rotate: false - xy: 2059, 582 + xy: 2385, 658 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-rock-full rotate: false - xy: 2587, 50 + xy: 3139, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-full rotate: false - xy: 3579, 179 + xy: 3255, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 3627, 281 + xy: 3289, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 2797, 398 + xy: 2741, 168 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 3619, 247 + xy: 3323, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 3613, 213 + xy: 3357, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 3613, 179 + xy: 3391, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 2863, 398 + xy: 2741, 102 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 2705, 82 + xy: 3107, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 2739, 82 + xy: 3141, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 2739, 82 + xy: 3141, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-huge-full rotate: false - xy: 2059, 484 + xy: 2385, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge1 rotate: false - xy: 2059, 484 + xy: 2385, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 2929, 398 + xy: 2777, 530 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 2995, 414 + xy: 2843, 512 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 2773, 82 + xy: 3209, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 2739, 48 + xy: 3243, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-full rotate: false - xy: 2807, 82 + xy: 3277, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 2773, 48 + xy: 3311, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-full rotate: false - xy: 2807, 48 + xy: 3345, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snowrock-full rotate: false - xy: 1431, 14 + xy: 3189, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrocks-full rotate: false - xy: 2655, 9 + xy: 3379, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spectre-full rotate: false - xy: 2785, 1293 + xy: 2785, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 1359, 1 + xy: 3939, 120 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 2689, 9 + xy: 3425, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-full rotate: false - xy: 2731, 332 + xy: 2909, 512 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sporerocks-full rotate: false - xy: 2723, 14 + xy: 3413, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 2757, 14 + xy: 3447, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 2797, 332 + xy: 2811, 446 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 2791, 14 + xy: 3531, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3499,35 +3492,35 @@ block-tetrative-reconstructor-full index: -1 block-titanium-conveyor-full rotate: false - xy: 2825, 14 + xy: 3565, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 2825, 14 + xy: 3565, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-turbine-generator-full rotate: false - xy: 2863, 332 + xy: 2877, 446 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 2929, 332 + xy: 2943, 446 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 2995, 348 + xy: 1591, 531 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3555,14 +3548,14 @@ bryde-wreck2 index: -1 core-foundation-team-crux rotate: false - xy: 2375, 886 + xy: 3045, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team-sharded rotate: false - xy: 3045, 1293 + xy: 3175, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -3583,238 +3576,238 @@ core-nucleus-team-sharded index: -1 core-shard-team-crux rotate: false - xy: 1889, 347 + xy: 2283, 266 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team-sharded rotate: false - xy: 1987, 347 + xy: 2381, 364 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-1-0 rotate: false - xy: 3729, 287 + xy: 4041, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 3721, 253 + xy: 3459, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 3991, 405 + xy: 3459, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 4025, 413 + xy: 3459, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 3753, 371 + xy: 3493, 115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 3787, 371 + xy: 3493, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 3821, 371 + xy: 3493, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 3855, 371 + xy: 3527, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 2929, 266 + xy: 3163, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 2995, 282 + xy: 3229, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 3265, 901 + xy: 3295, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 3265, 835 + xy: 3015, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 3265, 769 + xy: 3081, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 3331, 913 + xy: 3147, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 3331, 847 + xy: 3213, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 3397, 913 + xy: 3279, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-3-0 rotate: false - xy: 1983, 249 + xy: 2381, 266 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-1 rotate: false - xy: 1921, 151 + xy: 2283, 168 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-2 rotate: false - xy: 1921, 53 + xy: 2381, 168 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-3 rotate: false - xy: 2019, 151 + xy: 2481, 788 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-4 rotate: false - xy: 2019, 53 + xy: 2483, 690 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-5 rotate: false - xy: 2081, 249 + xy: 2483, 592 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-6 rotate: false - xy: 2117, 151 + xy: 2483, 494 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-7 rotate: false - xy: 2117, 53 + xy: 2483, 396 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-4-0 rotate: false - xy: 3045, 1163 + xy: 3175, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-1 rotate: false - xy: 3175, 1305 + xy: 3305, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-2 rotate: false - xy: 3175, 1175 + xy: 3305, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-3 rotate: false - xy: 3305, 1305 + xy: 3435, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-4 rotate: false - xy: 3305, 1175 + xy: 3435, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-5 rotate: false - xy: 3435, 1305 + xy: 3565, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-6 rotate: false - xy: 3435, 1175 + xy: 3565, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-7 rotate: false - xy: 3565, 1305 + xy: 3695, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -4101,56 +4094,56 @@ cracks-9-7 index: -1 crawler-wreck0 rotate: false - xy: 2929, 216 + xy: 3239, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck1 rotate: false - xy: 2725, 166 + xy: 3289, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck2 rotate: false - xy: 2775, 166 + xy: 3239, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cyclone rotate: false - xy: 2085, 386 + xy: 2479, 298 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dagger-wreck0 rotate: false - xy: 2975, 166 + xy: 3339, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck1 rotate: false - xy: 2724, 116 + xy: 3389, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck2 rotate: false - xy: 2774, 116 + xy: 3339, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 duo rotate: false - xy: 3745, 337 + xy: 3595, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4178,1183 +4171,1183 @@ eclipse-wreck2 index: -1 flare-wreck0 rotate: false - xy: 2974, 58 + xy: 3489, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck1 rotate: false - xy: 3347, 599 + xy: 3539, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck2 rotate: false - xy: 3397, 599 + xy: 3539, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress-wreck0 rotate: false - xy: 1557, 547 + xy: 1325, 547 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck1 rotate: false - xy: 1659, 629 + xy: 1427, 547 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck2 rotate: false - xy: 1659, 547 + xy: 1391, 465 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fuse rotate: false - xy: 2313, 92 + xy: 3407, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 gamma-wreck0 rotate: false - xy: 2529, 34 + xy: 2807, 112 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck1 rotate: false - xy: 1757, 449 + xy: 2865, 322 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck2 rotate: false - xy: 3181, 579 + xy: 2865, 264 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 hail rotate: false - xy: 3779, 337 + xy: 3663, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 horizon-wreck0 rotate: false - xy: 2975, 546 + xy: 3791, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck1 rotate: false - xy: 2281, 411 + xy: 3865, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck2 rotate: false - xy: 2355, 420 + xy: 3939, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 3323, 661 + xy: 2981, 6 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 3983, 337 + xy: 3731, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 2059, 458 + xy: 1657, 571 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-blast-compound-tiny rotate: false - xy: 3729, 133 + xy: 1857, 361 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-blast-compound-xlarge rotate: false - xy: 3597, 599 + xy: 3639, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 3559, 357 + xy: 3023, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-medium rotate: false - xy: 3797, 303 + xy: 3527, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 2841, 48 + xy: 3463, 149 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-coal-tiny rotate: false - xy: 2647, 332 + xy: 2843, 578 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 3647, 599 + xy: 3689, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 3609, 399 + xy: 3489, 149 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-medium rotate: false - xy: 3865, 303 + xy: 3595, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 291, 385 + xy: 1657, 545 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 2647, 314 + xy: 499, 69 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 3697, 599 + xy: 3689, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 3659, 457 + xy: 3065, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-medium rotate: false - xy: 3933, 303 + xy: 3663, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 517, 287 + xy: 4071, 717 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 2647, 296 + xy: 3871, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 3747, 599 + xy: 3739, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 3709, 507 + xy: 289, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 4059, 413 + xy: 3731, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 1644, 1733 + xy: 4071, 691 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 1847, 1 + xy: 499, 51 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 3797, 599 + xy: 3739, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 4001, 557 + xy: 331, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 3763, 269 + xy: 3803, 99 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 1387, 1475 + xy: 4071, 665 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 1865, 1 + xy: 1643, 226 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 3847, 599 + xy: 3789, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 3509, 257 + xy: 373, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 3831, 269 + xy: 3765, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 1831, 1491 + xy: 4071, 639 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 1883, 1 + xy: 1661, 226 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 3897, 599 + xy: 3789, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 3559, 315 + xy: 415, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 3899, 269 + xy: 3799, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 871, 701 + xy: 4071, 613 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 1901, 1 + xy: 499, 33 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 3947, 599 + xy: 3439, 225 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 3601, 357 + xy: 457, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 3967, 269 + xy: 2027, 744 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 1097, 927 + xy: 1657, 519 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 1919, 1 + xy: 1679, 226 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 3997, 599 + xy: 3489, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 3751, 507 + xy: 287, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 4001, 269 + xy: 2611, 70 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 1001, 247 + xy: 291, 385 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 1937, 1 + xy: 1697, 230 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 4047, 599 + xy: 3539, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 4043, 557 + xy: 329, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 4051, 345 + xy: 2089, 254 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 2027, 843 + xy: 517, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 1955, 1 + xy: 2351, 926 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 3351, 549 + xy: 3589, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 3601, 315 + xy: 371, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 4035, 269 + xy: 2055, 220 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 2451, 730 + xy: 1644, 1733 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 1973, 1 + xy: 1107, 321 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 3401, 549 + xy: 3639, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 3793, 507 + xy: 413, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 3823, 235 + xy: 1825, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 3964, 1763 + xy: 1387, 1475 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1991, 1 + xy: 549, 471 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 3451, 549 + xy: 3689, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 3835, 507 + xy: 455, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 3891, 235 + xy: 1893, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1929, 489 + xy: 1831, 1491 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 2009, 1 + xy: 4033, 467 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 3501, 549 + xy: 3739, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 3877, 507 + xy: 1929, 259 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 3959, 235 + xy: 1851, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 2189, 882 + xy: 871, 701 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 2027, 1 + xy: 1763, 338 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 3551, 549 + xy: 3789, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 3919, 507 + xy: 1971, 251 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 4027, 235 + xy: 1851, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 1401, 17 + xy: 1097, 927 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 2045, 1 + xy: 2027, 851 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 3601, 549 + xy: 3839, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 3727, 913 + xy: 3543, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 3961, 507 + xy: 2013, 251 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-medium rotate: false - xy: 3715, 219 + xy: 1851, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 432, 1701 + xy: 1001, 247 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 2063, 1 + xy: 2061, 760 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 3359, 431 + xy: 3889, 311 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 4003, 515 + xy: 3539, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 3783, 201 + xy: 1885, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 263, 95 + xy: 2189, 882 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 2081, 1 + xy: 1825, 289 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 3409, 499 + xy: 3939, 362 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 4045, 515 + xy: 3581, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 4021, 201 + xy: 1919, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 2187, 27 + xy: 3964, 1763 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 2099, 1 + xy: 2157, 270 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 3701, 549 + xy: 3939, 312 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 1523, 11 + xy: 3623, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 3817, 167 + xy: 1953, 217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 2187, 1 + xy: 1529, 603 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 2117, 1 + xy: 2259, 208 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 3359, 381 + xy: 3839, 235 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mace-wreck0 rotate: false - xy: 3859, 847 + xy: 2811, 380 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck1 rotate: false - xy: 3925, 913 + xy: 2877, 380 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck2 rotate: false - xy: 3859, 781 + xy: 2943, 380 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 3897, 1077 + xy: 3003, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mega-wreck0 rotate: false - xy: 1391, 440 + xy: 1887, 535 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck1 rotate: false - xy: 1391, 338 + xy: 1785, 445 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck2 rotate: false - xy: 1493, 440 + xy: 1887, 433 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 meltdown rotate: false - xy: 2221, 814 + xy: 1097, 661 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck0 rotate: false - xy: 1897, 739 + xy: 1131, 401 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck1 rotate: false - xy: 1195, 531 + xy: 1261, 401 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck2 rotate: false - xy: 1131, 401 + xy: 1131, 271 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono-wreck0 rotate: false - xy: 3409, 399 + xy: 3139, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck1 rotate: false - xy: 3459, 449 + xy: 3189, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck2 rotate: false - xy: 3509, 499 + xy: 3239, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-wreck0 rotate: false - xy: 3243, 521 + xy: 2923, 264 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck1 rotate: false - xy: 3193, 463 + xy: 2865, 148 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck2 rotate: false - xy: 3193, 405 + xy: 2923, 206 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 parallax rotate: false - xy: 3371, 715 + xy: 3411, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 poly-wreck0 rotate: false - xy: 3193, 231 + xy: 2923, 90 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck1 rotate: false - xy: 3193, 173 + xy: 2807, 54 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck2 rotate: false - xy: 3251, 463 + xy: 2865, 32 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar-wreck0 rotate: false - xy: 1697, 497 + xy: 1065, 481 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck1 rotate: false - xy: 2375, 296 + xy: 229, 71 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck2 rotate: false - xy: 2411, 100 + xy: 2287, 764 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 quasar-wreck0 rotate: false - xy: 2811, 612 + xy: 3389, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck1 rotate: false - xy: 2811, 530 + xy: 3471, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck2 rotate: false - xy: 2893, 612 + xy: 3553, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 repair-point rotate: false - xy: 3729, 99 + xy: 2191, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple rotate: false - xy: 2775, 771 + xy: 3983, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck0 rotate: false - xy: 2971, 771 + xy: 3559, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck1 rotate: false - xy: 3069, 869 + xy: 3657, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck2 rotate: false - xy: 3069, 771 + xy: 3755, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 3767, 649 + xy: 3009, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 4031, 649 + xy: 3141, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch rotate: false - xy: 3933, 99 + xy: 2225, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 segment rotate: false - xy: 3053, 507 + xy: 3339, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spectre rotate: false - xy: 1131, 271 + xy: 1187, 141 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spiroct-wreck0 rotate: false - xy: 2675, 694 + xy: 2875, 792 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck1 rotate: false - xy: 2771, 694 + xy: 2581, 400 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck2 rotate: false - xy: 2867, 694 + xy: 2679, 498 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 splash-0 rotate: false - xy: 3967, 65 + xy: 2259, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 4001, 65 + xy: 2293, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 3455, 113 + xy: 2327, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 3353, 93 + xy: 2361, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 4035, 65 + xy: 2259, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 3251, 143 + xy: 2293, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 3285, 143 + xy: 2327, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 3319, 145 + xy: 2259, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 3353, 127 + xy: 2293, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 3319, 111 + xy: 2327, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 3387, 113 + xy: 2361, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 3421, 113 + xy: 2293, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 swarmer rotate: false - xy: 3257, 637 + xy: 4031, 543 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-alpha-full rotate: false - xy: 3901, 549 + xy: 1979, 293 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5368,21 +5361,21 @@ unit-antumbra-full index: -1 unit-arkyid-full rotate: false - xy: 1187, 141 + xy: 1317, 141 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-atrax-full rotate: false - xy: 2351, 494 + xy: 2971, 803 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 unit-beta-full rotate: false - xy: 3409, 249 + xy: 2029, 293 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5396,14 +5389,14 @@ unit-bryde-full index: -1 unit-crawler-full rotate: false - xy: 3459, 299 + xy: 3889, 211 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 3509, 349 + xy: 3939, 212 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5417,98 +5410,98 @@ unit-eclipse-full index: -1 unit-flare-full rotate: false - xy: 3559, 399 + xy: 3839, 185 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-full rotate: false - xy: 1493, 358 + xy: 1391, 281 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 unit-gamma-full rotate: false - xy: 3251, 347 + xy: 2981, 322 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-horizon-full rotate: false - xy: 2375, 346 + xy: 1689, 282 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 unit-mace-full rotate: false - xy: 2411, 150 + xy: 3735, 469 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-mega-full rotate: false - xy: 1595, 445 + xy: 1989, 637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 unit-minke-full rotate: false - xy: 1187, 11 + xy: 1317, 11 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-mono-full rotate: false - xy: 3609, 441 + xy: 3789, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-full rotate: false - xy: 3251, 289 + xy: 2981, 264 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-poly-full rotate: false - xy: 3251, 231 + xy: 2981, 206 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-pulsar-full rotate: false - xy: 1697, 447 + xy: 1591, 266 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 unit-quasar-full rotate: false - xy: 2893, 530 + xy: 3635, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 unit-risso-full rotate: false - xy: 3885, 979 + xy: 2679, 575 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 unit-spiroct-full rotate: false - xy: 2963, 694 + xy: 2777, 596 size: 94, 75 orig: 94, 75 offset: 0, 0 @@ -5522,168 +5515,168 @@ unit-zenith-full index: -1 wave rotate: false - xy: 2581, 282 + xy: 3867, 411 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 zenith-wreck0 rotate: false - xy: 1317, 157 + xy: 1341, 629 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck1 rotate: false - xy: 1317, 43 + xy: 1455, 629 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck2 rotate: false - xy: 1341, 629 + xy: 1569, 597 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 3949, 337 + xy: 3697, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 3763, 303 + xy: 3481, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 3831, 303 + xy: 3561, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 3899, 303 + xy: 3629, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 3967, 303 + xy: 3697, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 4059, 379 + xy: 3769, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 3797, 269 + xy: 3837, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 3865, 269 + xy: 3765, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 3933, 269 + xy: 3799, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 4001, 303 + xy: 2577, 70 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 4017, 337 + xy: 2055, 254 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 4035, 303 + xy: 2123, 254 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 3789, 235 + xy: 2123, 220 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 3857, 235 + xy: 1859, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 3925, 235 + xy: 1851, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 3993, 235 + xy: 1885, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 3681, 179 + xy: 1885, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 3749, 201 + xy: 1851, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 3987, 201 + xy: 1919, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 3783, 167 + xy: 1919, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5704,21 +5697,21 @@ circle index: -1 shape-3 rotate: false - xy: 2609, 151 + xy: 3933, 412 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 2675, 195 + xy: 2981, 48 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-cell rotate: false - xy: 2674, 145 + xy: 1447, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5744,37 +5737,30 @@ arkyid orig: 128, 128 offset: 0, 0 index: -1 -chaos-array +arkyid-cell rotate: false - xy: 3964, 1919 + xy: 3105, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -arkyid-cell - rotate: false - xy: 4007, 1723 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 arkyid-foot rotate: false - xy: 2449, 348 + xy: 4013, 809 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-joint-base rotate: false - xy: 2521, 348 + xy: 1785, 307 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-leg rotate: false - xy: 2255, 756 + xy: 3999, 485 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5788,35 +5774,35 @@ arkyid-leg-base index: -1 atrax rotate: false - xy: 4007, 1657 + xy: 4007, 1723 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-base rotate: false - xy: 2723, 464 + xy: 2679, 432 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 atrax-cell rotate: false - xy: 4007, 1591 + xy: 4007, 1657 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-foot rotate: false - xy: 1317, 1 + xy: 1597, 15 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 atrax-joint rotate: false - xy: 1427, 601 + xy: 432, 1699 size: 26, 26 orig: 26, 26 offset: 0, 0 @@ -5837,14 +5823,14 @@ atrax-leg-base index: -1 beta rotate: false - xy: 3309, 329 + xy: 3089, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-cell rotate: false - xy: 3309, 279 + xy: 3039, 233 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5863,72 +5849,79 @@ bryde-cell orig: 140, 140 offset: 0, 0 index: -1 -chaos-array-base - rotate: false - xy: 2785, 1163 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array-cell +chaos-array rotate: false xy: 2915, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -chaos-array-leg +chaos-array-base rotate: false xy: 2915, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 +chaos-array-cell + rotate: false + xy: 2383, 1016 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +chaos-array-leg + rotate: false + xy: 1001, 339 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 crawler rotate: false - xy: 2729, 216 + xy: 3139, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 2779, 216 + xy: 3189, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 2829, 216 + xy: 3239, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 2879, 216 + xy: 3189, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 2825, 166 + xy: 3289, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 2875, 166 + xy: 3339, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 2925, 166 + xy: 3289, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5977,28 +5970,28 @@ eradicator-leg index: -1 flare rotate: false - xy: 2924, 66 + xy: 3489, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress rotate: false - xy: 1325, 547 + xy: 1785, 629 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 3595, 847 + xy: 3955, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-cell rotate: false - xy: 1557, 629 + xy: 1785, 547 size: 100, 80 orig: 100, 80 offset: 0, 0 @@ -6012,14 +6005,14 @@ fortress-leg index: -1 gamma rotate: false - xy: 2413, 42 + xy: 229, 13 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-cell rotate: false - xy: 2529, 92 + xy: 2807, 170 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -6033,273 +6026,266 @@ horizon index: -1 horizon-cell rotate: false - xy: 2975, 620 + xy: 3717, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 mace rotate: false - xy: 3727, 781 + xy: 3807, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-base rotate: false - xy: 3793, 847 + xy: 3873, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-cell rotate: false - xy: 3859, 913 + xy: 3939, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-leg rotate: false - xy: 3793, 781 + xy: 4005, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mega rotate: false - xy: 1761, 609 + xy: 1391, 363 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-cell rotate: false - xy: 1761, 507 + xy: 1887, 637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 minke rotate: false - xy: 1097, 661 + xy: 1897, 739 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-cell rotate: false - xy: 1065, 531 + xy: 1195, 531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono rotate: false - xy: 3751, 549 + xy: 3039, 183 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-cell rotate: false - xy: 3359, 331 + xy: 3089, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova rotate: false - xy: 3239, 579 + xy: 2923, 322 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-base rotate: false - xy: 3409, 349 + xy: 3389, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-cell rotate: false - xy: 3185, 521 + xy: 2865, 206 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-leg rotate: false - xy: 3459, 399 + xy: 3035, 133 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 poly rotate: false - xy: 3193, 347 + xy: 2923, 148 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-cell rotate: false - xy: 3193, 289 + xy: 2865, 90 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 3251, 405 + xy: 2923, 32 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar rotate: false - xy: 549, 489 + xy: 1529, 547 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-base rotate: false - xy: 3509, 449 + xy: 3035, 83 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulsar-cell rotate: false - xy: 1065, 481 + xy: 549, 489 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-leg rotate: false - xy: 3371, 649 + xy: 3107, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 quasar rotate: false - xy: 2647, 612 + xy: 3061, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-base rotate: false - xy: 2647, 530 + xy: 3143, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-cell rotate: false - xy: 2729, 612 + xy: 3225, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-leg rotate: false - xy: 2729, 530 + xy: 3307, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 risso rotate: false - xy: 2873, 771 + xy: 3363, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-cell rotate: false - xy: 2971, 869 + xy: 3461, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 spiroct rotate: false - xy: 2255, 485 + xy: 1689, 433 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-cell rotate: false - xy: 2579, 694 + xy: 1689, 356 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-foot rotate: false - xy: 1815, 459 + xy: 4049, 931 size: 46, 46 orig: 46, 46 offset: 0, 0 index: -1 spiroct-joint rotate: false - xy: 3933, 65 + xy: 2259, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spiroct-leg rotate: false - xy: 2189, 778 + xy: 3789, 217 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 spiroct-leg-base rotate: false - xy: 2085, 350 + xy: 3031, 47 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 vanguard rotate: false - xy: 3659, 499 + xy: 3889, 161 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 3951, 549 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -antumbra-missiles - rotate: false - xy: 3309, 437 + xy: 3939, 162 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery rotate: false - xy: 3309, 379 + xy: 3039, 283 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 artillery-mount rotate: false - xy: 2593, 350 + xy: 1857, 287 size: 70, 70 orig: 70, 70 offset: 0, 0 @@ -6313,154 +6299,161 @@ beam-weapon index: -1 chaos rotate: false - xy: 2471, 12 + xy: 2807, 228 size: 56, 136 orig: 56, 136 offset: 0, 0 index: -1 eradication rotate: false - xy: 2255, 562 + xy: 1591, 316 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 eruption rotate: false - xy: 2874, 108 + xy: 3439, 333 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun rotate: false - xy: 2924, 116 + xy: 3389, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower rotate: false - xy: 2974, 108 + xy: 3439, 275 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-shotgun-weapon rotate: false - xy: 3447, 599 + xy: 3589, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon rotate: false - xy: 3497, 599 + xy: 3589, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon-mount rotate: false - xy: 3547, 599 + xy: 3639, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 large-artillery rotate: false - xy: 3359, 481 + xy: 3839, 285 size: 48, 66 orig: 48, 66 offset: 0, 0 index: -1 large-bullet-mount rotate: false - xy: 2651, 431 + xy: 1643, 127 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 large-laser-mount rotate: false - xy: 2549, 496 + xy: 2577, 202 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 +large-purple-mount + rotate: false + xy: 1643, 28 + size: 70, 97 + orig: 70, 97 + offset: 0, 0 + index: -1 large-weapon rotate: false - xy: 3651, 549 + xy: 3889, 361 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles rotate: false - xy: 3409, 449 + xy: 3889, 261 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-mount rotate: false - xy: 3459, 499 + xy: 3939, 262 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-purple-weapon rotate: false - xy: 3801, 549 + xy: 3289, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon rotate: false - xy: 3359, 281 + xy: 3339, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-basic-weapon rotate: false - xy: 3359, 231 + xy: 3539, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-mount-weapon rotate: false - xy: 3409, 299 + xy: 3589, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-weapon rotate: false - xy: 3459, 349 + xy: 3639, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spiroct-weapon rotate: false - xy: 3609, 491 + xy: 1929, 301 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 weapon rotate: false - xy: 3459, 249 + xy: 3839, 135 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith-missiles rotate: false - xy: 3509, 299 + xy: 3889, 111 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -8172,7 +8165,7 @@ arc-icon-editor index: -1 armored-conveyor-icon-editor rotate: false - xy: 1631, 225 + xy: 3897, 355 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8207,7 +8200,7 @@ blast-mixer-icon-editor index: -1 block-border-editor rotate: false - xy: 1665, 225 + xy: 3931, 355 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8235,28 +8228,28 @@ block-unloader-icon-editor index: -1 bridge-conduit-icon-editor rotate: false - xy: 1699, 225 + xy: 3965, 355 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-icon-editor rotate: false - xy: 1733, 225 + xy: 163, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char-icon-editor rotate: false - xy: 1767, 225 + xy: 197, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char1 rotate: false - xy: 1767, 225 + xy: 197, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8270,14 +8263,14 @@ clear-editor index: -1 cliff-icon-editor rotate: false - xy: 1801, 225 + xy: 231, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliffs-icon-editor rotate: false - xy: 1847, 257 + xy: 265, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8291,42 +8284,49 @@ coal-centrifuge-icon-editor index: -1 combustion-generator-icon-editor rotate: false - xy: 1881, 257 + xy: 299, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +command-center-icon-editor + rotate: false + xy: 553, 1 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 conduit-icon-editor rotate: false - xy: 1915, 257 + xy: 333, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 container-icon-editor rotate: false - xy: 1847, 291 + xy: 651, 33 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 conveyor-icon-editor rotate: false - xy: 1979, 289 + xy: 367, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-icon-editor rotate: false - xy: 2013, 289 + xy: 401, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large-icon-editor rotate: false - xy: 1913, 291 + xy: 717, 33 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -8354,28 +8354,28 @@ core-shard-icon-editor index: -1 craters-icon-editor rotate: false - xy: 2047, 289 + xy: 435, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters1 rotate: false - xy: 2047, 289 + xy: 435, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cryofluidmixer-icon-editor rotate: false - xy: 1979, 323 + xy: 783, 33 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-icon-editor rotate: false - xy: 2045, 323 + xy: 849, 33 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -8389,133 +8389,133 @@ cyclone-icon-editor index: -1 dark-metal-icon-editor rotate: false - xy: 2081, 289 + xy: 469, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1-icon-editor rotate: false - xy: 2115, 289 + xy: 503, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-1 rotate: false - xy: 2115, 289 + xy: 503, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-2-icon-editor rotate: false - xy: 2149, 289 + xy: 915, 65 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-2 rotate: false - xy: 2149, 289 + xy: 915, 65 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-3-icon-editor rotate: false - xy: 2183, 289 + xy: 915, 31 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-3 rotate: false - xy: 2183, 289 + xy: 915, 31 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-4-icon-editor rotate: false - xy: 2217, 289 + xy: 945, 177 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-4 rotate: false - xy: 2217, 289 + xy: 945, 177 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-5-icon-editor rotate: false - xy: 2251, 289 + xy: 945, 143 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-5 rotate: false - xy: 2251, 289 + xy: 945, 143 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-6-icon-editor rotate: false - xy: 2285, 289 + xy: 979, 177 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-6 rotate: false - xy: 2285, 289 + xy: 979, 177 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-icon-editor rotate: false - xy: 2319, 289 + xy: 945, 109 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand1 rotate: false - xy: 2319, 289 + xy: 945, 109 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water-icon-editor rotate: false - xy: 2353, 289 + xy: 979, 143 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-icon-editor rotate: false - xy: 2387, 289 + xy: 1013, 177 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-icon-editor rotate: false - xy: 2421, 289 + xy: 979, 109 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-deepwater rotate: false - xy: 2421, 289 + xy: 979, 109 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8529,7 +8529,7 @@ differential-generator-icon-editor index: -1 diode-icon-editor rotate: false - xy: 2455, 289 + xy: 1013, 143 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8543,826 +8543,826 @@ disassembler-icon-editor index: -1 distributor-icon-editor rotate: false - xy: 2111, 323 + xy: 1357, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-icon-editor rotate: false - xy: 2489, 289 + xy: 1047, 177 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large-icon-editor rotate: false - xy: 2177, 323 + xy: 1423, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 dunerocks-icon-editor rotate: false - xy: 2523, 289 + xy: 1013, 109 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo-icon-editor rotate: false - xy: 2557, 289 + xy: 1047, 143 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char2 rotate: false - xy: 2591, 289 + xy: 1047, 109 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char3 rotate: false - xy: 2625, 289 + xy: 949, 75 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters2 rotate: false - xy: 2659, 289 + xy: 949, 41 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters3 rotate: false - xy: 2693, 289 + xy: 983, 75 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water1 rotate: false - xy: 2795, 289 + xy: 1017, 41 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water2 rotate: false - xy: 2829, 289 + xy: 1051, 75 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water3 rotate: false - xy: 2863, 289 + xy: 1051, 41 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water1 rotate: false - xy: 2897, 289 + xy: 3755, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water2 rotate: false - xy: 2931, 289 + xy: 3789, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water3 rotate: false - xy: 2965, 289 + xy: 3823, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand2 rotate: false - xy: 2727, 289 + xy: 983, 41 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand3 rotate: false - xy: 2761, 289 + xy: 1017, 75 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass1 rotate: false - xy: 2999, 289 + xy: 3857, 313 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-icon-editor rotate: false - xy: 2999, 289 + xy: 3857, 313 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass2 rotate: false - xy: 3033, 289 + xy: 1085, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass3 rotate: false - xy: 3067, 289 + xy: 1119, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone1 rotate: false - xy: 3101, 289 + xy: 1081, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone-icon-editor rotate: false - xy: 3101, 289 + xy: 1081, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone2 rotate: false - xy: 3135, 289 + xy: 1081, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone3 rotate: false - xy: 3169, 289 + xy: 1115, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock1 rotate: false - xy: 3203, 289 + xy: 1115, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock-icon-editor rotate: false - xy: 3203, 289 + xy: 1115, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock2 rotate: false - xy: 3237, 289 + xy: 1153, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock3 rotate: false - xy: 3271, 289 + xy: 1149, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow1 rotate: false - xy: 3407, 289 + xy: 1221, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow-icon-editor rotate: false - xy: 3407, 289 + xy: 1221, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow2 rotate: false - xy: 3441, 289 + xy: 1183, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow3 rotate: false - xy: 3475, 289 + xy: 1217, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice1 rotate: false - xy: 3305, 289 + xy: 1187, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-icon-editor rotate: false - xy: 3305, 289 + xy: 1187, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice2 rotate: false - xy: 3339, 289 + xy: 1149, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice3 rotate: false - xy: 3373, 289 + xy: 1183, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock1 rotate: false - xy: 3509, 289 + xy: 1255, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock-icon-editor rotate: false - xy: 3509, 289 + xy: 1255, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock2 rotate: false - xy: 3543, 289 + xy: 1217, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock3 rotate: false - xy: 3577, 289 + xy: 1251, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock1 rotate: false - xy: 3611, 289 + xy: 1289, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock-icon-editor rotate: false - xy: 3611, 289 + xy: 1289, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock2 rotate: false - xy: 3645, 289 + xy: 1323, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock3 rotate: false - xy: 3679, 289 + xy: 1251, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor rotate: false - xy: 3713, 289 + xy: 1285, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-icon-editor rotate: false - xy: 3713, 289 + xy: 1285, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-2 rotate: false - xy: 3747, 289 + xy: 1285, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-icon-editor rotate: false - xy: 3747, 289 + xy: 1285, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-3 rotate: false - xy: 3781, 289 + xy: 1319, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-icon-editor rotate: false - xy: 3781, 289 + xy: 1319, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-5 rotate: false - xy: 3815, 289 + xy: 1319, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-icon-editor rotate: false - xy: 3815, 289 + xy: 1319, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged1 rotate: false - xy: 3849, 289 + xy: 1353, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged-icon-editor rotate: false - xy: 3849, 289 + xy: 1353, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged2 rotate: false - xy: 3883, 289 + xy: 1353, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged3 rotate: false - xy: 3917, 289 + xy: 1387, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss1 rotate: false - xy: 3951, 289 + xy: 1387, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss-icon-editor rotate: false - xy: 3951, 289 + xy: 1387, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss2 rotate: false - xy: 3985, 289 + xy: 1421, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss3 rotate: false - xy: 163, 1 + xy: 1421, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal1 rotate: false - xy: 197, 1 + xy: 1455, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal2 rotate: false - xy: 231, 1 + xy: 1455, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal3 rotate: false - xy: 265, 1 + xy: 1489, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper1 rotate: false - xy: 299, 1 + xy: 1489, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper2 rotate: false - xy: 333, 1 + xy: 1523, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper3 rotate: false - xy: 367, 1 + xy: 1523, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead1 rotate: false - xy: 401, 1 + xy: 1557, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead2 rotate: false - xy: 435, 1 + xy: 1557, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead3 rotate: false - xy: 469, 1 + xy: 1591, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap1 rotate: false - xy: 503, 1 + xy: 1591, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap2 rotate: false - xy: 915, 65 + xy: 1625, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap3 rotate: false - xy: 915, 31 + xy: 1625, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium1 rotate: false - xy: 4025, 321 + xy: 1659, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium2 rotate: false - xy: 4059, 321 + xy: 1659, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium3 rotate: false - xy: 4019, 287 + xy: 1693, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium1 rotate: false - xy: 4053, 287 + xy: 1693, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium2 rotate: false - xy: 1835, 223 + xy: 1727, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium3 rotate: false - xy: 1869, 223 + xy: 1727, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles1 rotate: false - xy: 1903, 223 + xy: 1761, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles2 rotate: false - xy: 945, 177 + xy: 1761, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles3 rotate: false - xy: 945, 143 + xy: 1795, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-salt rotate: false - xy: 979, 177 + xy: 1795, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-icon-editor rotate: false - xy: 979, 177 + xy: 1795, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water1 rotate: false - xy: 979, 109 + xy: 1863, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water2 rotate: false - xy: 1013, 143 + xy: 1897, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water3 rotate: false - xy: 1047, 177 + xy: 1897, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand1 rotate: false - xy: 945, 109 + xy: 1829, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-icon-editor rotate: false - xy: 945, 109 + xy: 1829, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand2 rotate: false - xy: 979, 143 + xy: 1829, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand3 rotate: false - xy: 1013, 177 + xy: 1863, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale1 rotate: false - xy: 1013, 109 + xy: 1931, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-icon-editor rotate: false - xy: 1013, 109 + xy: 1931, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale2 rotate: false - xy: 1047, 143 + xy: 1931, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale3 rotate: false - xy: 1047, 109 + xy: 1085, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-slag rotate: false - xy: 949, 75 + xy: 1085, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag-icon-editor rotate: false - xy: 949, 75 + xy: 1085, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow1 rotate: false - xy: 949, 41 + xy: 1119, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow2 rotate: false - xy: 983, 75 + xy: 1119, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow3 rotate: false - xy: 983, 41 + xy: 1153, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spawn rotate: false - xy: 1017, 75 + xy: 1153, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss1 rotate: false - xy: 1017, 41 + xy: 1187, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-icon-editor rotate: false - xy: 1017, 41 + xy: 1187, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss2 rotate: false - xy: 1051, 75 + xy: 1187, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss3 rotate: false - xy: 1051, 41 + xy: 1221, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone1 rotate: false - xy: 1489, 175 + xy: 1221, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-icon-editor rotate: false - xy: 1489, 175 + xy: 1221, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone2 rotate: false - xy: 1523, 175 + xy: 1255, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone3 rotate: false - xy: 1557, 175 + xy: 1255, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tainted-water rotate: false - xy: 1591, 183 + xy: 1289, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-icon-editor rotate: false - xy: 1591, 183 + xy: 1289, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tar rotate: false - xy: 1085, 193 + xy: 1289, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-icon-editor rotate: false - xy: 1085, 193 + xy: 1289, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils1 rotate: false - xy: 1119, 193 + xy: 1323, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils2 rotate: false - xy: 1081, 159 + xy: 1323, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils3 rotate: false - xy: 1081, 125 + xy: 1357, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-water rotate: false - xy: 1115, 159 + xy: 1357, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-icon-editor rotate: false - xy: 1115, 159 + xy: 1357, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9390,7 +9390,7 @@ fuse-icon-editor index: -1 graphite-press-icon-editor rotate: false - xy: 2243, 323 + xy: 1489, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -9404,21 +9404,28 @@ ground-factory-icon-editor index: -1 hail-icon-editor rotate: false - xy: 1115, 125 + xy: 1391, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +hyper-processor-icon-editor + rotate: false + xy: 3345, 389 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 icerocks-icon-editor rotate: false - xy: 1153, 193 + xy: 1391, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-icon-editor rotate: false - xy: 1149, 159 + xy: 1425, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9432,63 +9439,63 @@ impact-reactor-icon-editor index: -1 incinerator-icon-editor rotate: false - xy: 1187, 193 + xy: 1425, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter-icon-editor rotate: false - xy: 1149, 125 + xy: 1459, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source-icon-editor rotate: false - xy: 1183, 159 + xy: 1459, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void-icon-editor rotate: false - xy: 1221, 193 + xy: 1493, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction-icon-editor rotate: false - xy: 1183, 125 + xy: 1493, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln-icon-editor rotate: false - xy: 2309, 323 + xy: 1555, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 lancer-icon-editor rotate: false - xy: 2375, 323 + xy: 1621, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill-icon-editor rotate: false - xy: 3345, 389 + xy: 3443, 389 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-icon-editor rotate: false - xy: 3443, 389 + xy: 3541, 389 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -9502,60 +9509,53 @@ launch-pad-large-icon-editor index: -1 liquid-junction-icon-editor rotate: false - xy: 1217, 159 + xy: 1527, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-icon-editor rotate: false - xy: 1255, 193 + xy: 1527, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source-icon-editor rotate: false - xy: 1217, 125 + xy: 1561, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-icon-editor rotate: false - xy: 3541, 389 + xy: 3639, 389 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-void-icon-editor rotate: false - xy: 1251, 159 + xy: 1561, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-display-icon-editor rotate: false - xy: 3639, 389 + xy: 3737, 389 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor-icon-editor rotate: false - xy: 2441, 323 + xy: 1687, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -mass-conveyor-icon-editor - rotate: false - xy: 3737, 389 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 mass-driver-icon-editor rotate: false xy: 3835, 389 @@ -9565,14 +9565,14 @@ mass-driver-icon-editor index: -1 mechanical-drill-icon-editor rotate: false - xy: 2507, 323 + xy: 1753, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-pump-icon-editor rotate: false - xy: 1289, 193 + xy: 1595, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9586,42 +9586,42 @@ meltdown-icon-editor index: -1 melter-icon-editor rotate: false - xy: 1323, 193 + xy: 1595, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 memory-cell-icon-editor rotate: false - xy: 1251, 125 + xy: 1629, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mend-projector-icon-editor rotate: false - xy: 2573, 323 + xy: 1819, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender-icon-editor rotate: false - xy: 1285, 159 + xy: 1629, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 1285, 125 + xy: 1663, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor-icon-editor rotate: false - xy: 1319, 159 + xy: 1663, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9663,70 +9663,77 @@ overdrive-dome-icon-editor index: -1 overdrive-projector-icon-editor rotate: false - xy: 2639, 323 + xy: 1885, 193 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overflow-gate-icon-editor rotate: false - xy: 1319, 125 + xy: 1697, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 parallax-icon-editor rotate: false - xy: 2705, 323 + xy: 1973, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -payload-router-icon-editor +payload-conveyor-icon-editor rotate: false xy: 847, 99 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +payload-router-icon-editor + rotate: false + xy: 1161, 227 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 pebbles-icon-editor rotate: false - xy: 1353, 159 + xy: 1697, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-editor rotate: false - xy: 1353, 125 + xy: 1731, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 1387, 159 + xy: 1731, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 1387, 125 + xy: 1765, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large-icon-editor rotate: false - xy: 2771, 323 + xy: 2039, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-icon-editor rotate: false - xy: 2837, 323 + xy: 2105, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -9740,196 +9747,196 @@ pine-icon-editor index: -1 plastanium-compressor-icon-editor rotate: false - xy: 2903, 323 + xy: 2171, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-conveyor-icon-editor rotate: false - xy: 1421, 159 + xy: 1765, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-icon-editor rotate: false - xy: 1455, 159 + xy: 1799, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large-icon-editor rotate: false - xy: 2969, 323 + xy: 2237, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plated-conduit-icon-editor rotate: false - xy: 1421, 125 + xy: 1799, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pneumatic-drill-icon-editor rotate: false - xy: 3035, 323 + xy: 2303, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-node-icon-editor rotate: false - xy: 1455, 125 + xy: 1833, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large-icon-editor rotate: false - xy: 3101, 323 + xy: 2369, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source-icon-editor rotate: false - xy: 1489, 141 + xy: 1833, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 1523, 141 + xy: 1867, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 1557, 141 + xy: 1867, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 1591, 149 + xy: 1901, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer-icon-editor rotate: false - xy: 3167, 323 + xy: 2435, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-icon-editor rotate: false - xy: 1085, 91 + xy: 1901, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point-icon-editor rotate: false - xy: 3233, 323 + xy: 2501, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ripple-icon-editor rotate: false - xy: 1161, 227 + xy: 1259, 227 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rock-icon-editor rotate: false - xy: 1489, 209 + xy: 3755, 339 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rocks-icon-editor rotate: false - xy: 1085, 57 + xy: 1935, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-icon-editor rotate: false - xy: 3299, 323 + xy: 2567, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 router-icon-editor rotate: false - xy: 1119, 91 + xy: 1935, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-icon-editor rotate: false - xy: 3365, 323 + xy: 2633, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 saltrocks-icon-editor rotate: false - xy: 1119, 57 + xy: 1085, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salvo-icon-editor rotate: false - xy: 3431, 323 + xy: 2699, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sand-boulder-icon-editor rotate: false - xy: 1153, 91 + xy: 1119, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 1153, 57 + xy: 1153, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-icon-editor rotate: false - xy: 1187, 91 + xy: 1187, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scatter-icon-editor rotate: false - xy: 3497, 323 + xy: 2765, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-icon-editor rotate: false - xy: 1187, 57 + xy: 1221, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9943,84 +9950,84 @@ scrap-wall-gigantic-icon-editor index: -1 scrap-wall-huge-icon-editor rotate: false - xy: 1259, 227 + xy: 1357, 259 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-icon-editor rotate: false - xy: 1221, 91 + xy: 1255, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-large-icon-editor rotate: false - xy: 3563, 323 + xy: 2831, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 segment-icon-editor rotate: false - xy: 3629, 323 + xy: 2897, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-icon-editor rotate: false - xy: 3695, 323 + xy: 2963, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shale-boulder-icon-editor rotate: false - xy: 1221, 57 + xy: 1289, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-icon-editor rotate: false - xy: 1255, 91 + xy: 1323, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 1255, 57 + xy: 1357, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 1289, 91 + xy: 1391, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 silicon-crucible-icon-editor rotate: false - xy: 1357, 259 + xy: 1455, 259 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter-icon-editor rotate: false - xy: 3761, 323 + xy: 3029, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 snow-icon-editor rotate: false - xy: 1289, 57 + xy: 1425, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -10034,42 +10041,42 @@ snow-pine-icon-editor index: -1 snowrock-icon-editor rotate: false - xy: 1539, 209 + xy: 3805, 339 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrocks-icon-editor rotate: false - xy: 1323, 91 + xy: 1459, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 1323, 57 + xy: 1493, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large-icon-editor rotate: false - xy: 1455, 259 + xy: 1553, 259 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sorter-icon-editor rotate: false - xy: 1357, 91 + xy: 1527, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 1357, 57 + xy: 1561, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -10083,7 +10090,7 @@ spectre-icon-editor index: -1 spore-cluster-icon-editor rotate: false - xy: 1589, 217 + xy: 3855, 347 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -10097,56 +10104,56 @@ spore-pine-icon-editor index: -1 spore-press-icon-editor rotate: false - xy: 3827, 323 + xy: 3095, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sporerocks-icon-editor rotate: false - xy: 1391, 91 + xy: 1595, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-tower-icon-editor rotate: false - xy: 3893, 323 + xy: 3161, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-icon-editor rotate: false - xy: 1391, 57 + xy: 1629, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large-icon-editor rotate: false - xy: 3959, 323 + xy: 3227, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 swarmer-icon-editor rotate: false - xy: 553, 1 + xy: 3293, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 switch-icon-editor rotate: false - xy: 1425, 91 + xy: 1663, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils-icon-editor rotate: false - xy: 1425, 57 + xy: 1697, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -10160,35 +10167,35 @@ tetrative-reconstructor-icon-editor index: -1 thermal-generator-icon-editor rotate: false - xy: 651, 33 + xy: 3359, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump-icon-editor rotate: false - xy: 1553, 259 + xy: 1651, 259 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-icon-editor rotate: false - xy: 1651, 259 + xy: 1749, 259 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-wall-icon-editor rotate: false - xy: 1459, 91 + xy: 1731, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large-icon-editor rotate: false - xy: 717, 33 + xy: 3425, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -10202,63 +10209,63 @@ thruster-icon-editor index: -1 titanium-conveyor-icon-editor rotate: false - xy: 1459, 57 + xy: 1765, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 1493, 107 + xy: 1799, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large-icon-editor rotate: false - xy: 783, 33 + xy: 3491, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-icon-editor rotate: false - xy: 849, 33 + xy: 3557, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 underflow-gate-icon-editor rotate: false - xy: 1493, 73 + xy: 1833, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-editor rotate: false - xy: 1527, 107 + xy: 1867, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault-icon-editor rotate: false - xy: 1749, 259 + xy: 1847, 259 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 water-extractor-icon-editor rotate: false - xy: 1357, 193 + xy: 3623, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-icon-editor rotate: false - xy: 1423, 193 + xy: 3689, 323 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -10292,7 +10299,7 @@ alpha-bg index: -1 bar rotate: false - xy: 2847, 167 + xy: 3212, 225 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -10300,7 +10307,7 @@ bar index: -1 bar-top rotate: false - xy: 2818, 167 + xy: 3183, 230 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -10308,21 +10315,21 @@ bar-top index: -1 block-additive-reconstructor-large rotate: false - xy: 909, 321 + xy: 3454, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-additive-reconstructor-medium rotate: false - xy: 821, 432 + xy: 1091, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-additive-reconstructor-small rotate: false - xy: 781, 178 + xy: 4033, 387 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -10343,28 +10350,28 @@ block-additive-reconstructor-xlarge index: -1 block-air-factory-large rotate: false - xy: 959, 371 + xy: 3496, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-air-factory-medium rotate: false - xy: 3343, 337 + xy: 1125, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-air-factory-small rotate: false - xy: 999, 80 + xy: 781, 178 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-air-factory-tiny rotate: false - xy: 257, 28 + xy: 3285, 359 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10378,28 +10385,28 @@ block-air-factory-xlarge index: -1 block-alloy-smelter-large rotate: false - xy: 859, 221 + xy: 3538, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-alloy-smelter-medium rotate: false - xy: 3377, 337 + xy: 1159, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 999, 54 + xy: 1254, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 1025, 29 + xy: 2859, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10413,28 +10420,28 @@ block-alloy-smelter-xlarge index: -1 block-arc-large rotate: false - xy: 909, 279 + xy: 231, 4 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-arc-medium rotate: false - xy: 3411, 337 + xy: 1193, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 999, 28 + xy: 1280, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 1753, 81 + xy: 309, 168 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10448,28 +10455,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 1001, 371 + xy: 3580, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 3445, 337 + xy: 1227, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 2883, 198 + xy: 1306, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 309, 168 + xy: 2877, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10483,35 +10490,35 @@ block-armored-conveyor-xlarge index: -1 block-battery-large rotate: false - xy: 859, 179 + xy: 845, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-large rotate: false - xy: 1043, 371 + xy: 887, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-medium rotate: false - xy: 3479, 337 + xy: 1261, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-large-small rotate: false - xy: 2876, 172 + xy: 1332, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-large-tiny rotate: false - xy: 257, 10 + xy: 2895, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10525,21 +10532,21 @@ block-battery-large-xlarge index: -1 block-battery-medium rotate: false - xy: 3513, 337 + xy: 1295, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-small rotate: false - xy: 1028, 151 + xy: 1358, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-tiny rotate: false - xy: 1771, 81 + xy: 2913, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10553,28 +10560,28 @@ block-battery-xlarge index: -1 block-blast-drill-large rotate: false - xy: 1085, 371 + xy: 929, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-drill-medium rotate: false - xy: 3547, 337 + xy: 1329, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-small rotate: false - xy: 1054, 151 + xy: 1384, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-drill-tiny rotate: false - xy: 1789, 81 + xy: 2931, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10588,28 +10595,28 @@ block-blast-drill-xlarge index: -1 block-blast-mixer-large rotate: false - xy: 1127, 371 + xy: 971, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-mixer-medium rotate: false - xy: 3581, 337 + xy: 1363, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-mixer-small rotate: false - xy: 1028, 125 + xy: 1410, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-mixer-tiny rotate: false - xy: 1807, 81 + xy: 2949, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10623,28 +10630,28 @@ block-blast-mixer-xlarge index: -1 block-block-forge-large rotate: false - xy: 1169, 371 + xy: 1013, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-forge-medium rotate: false - xy: 3615, 337 + xy: 1397, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-forge-small rotate: false - xy: 1080, 151 + xy: 1436, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-forge-tiny rotate: false - xy: 1825, 81 + xy: 2967, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10658,28 +10665,28 @@ block-block-forge-xlarge index: -1 block-block-loader-large rotate: false - xy: 1211, 371 + xy: 1055, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-loader-medium rotate: false - xy: 3649, 337 + xy: 1431, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-loader-small rotate: false - xy: 1054, 125 + xy: 1462, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-loader-tiny rotate: false - xy: 1843, 81 + xy: 2985, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10693,28 +10700,28 @@ block-block-loader-xlarge index: -1 block-block-unloader-large rotate: false - xy: 1253, 371 + xy: 1097, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-unloader-medium rotate: false - xy: 3683, 337 + xy: 1465, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-unloader-small rotate: false - xy: 1106, 151 + xy: 1488, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-unloader-tiny rotate: false - xy: 1861, 81 + xy: 3003, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10728,28 +10735,28 @@ block-block-unloader-xlarge index: -1 block-bridge-conduit-large rotate: false - xy: 1295, 371 + xy: 1139, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conduit-medium rotate: false - xy: 3717, 337 + xy: 1499, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conduit-small rotate: false - xy: 1080, 125 + xy: 1514, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conduit-tiny rotate: false - xy: 1879, 81 + xy: 3021, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10763,28 +10770,28 @@ block-bridge-conduit-xlarge index: -1 block-bridge-conveyor-large rotate: false - xy: 1337, 371 + xy: 1181, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conveyor-medium rotate: false - xy: 3751, 337 + xy: 1533, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-small rotate: false - xy: 1132, 151 + xy: 1540, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conveyor-tiny rotate: false - xy: 1897, 81 + xy: 3039, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10798,28 +10805,28 @@ block-bridge-conveyor-xlarge index: -1 block-char-large rotate: false - xy: 1379, 371 + xy: 1223, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-char-medium rotate: false - xy: 3785, 337 + xy: 1567, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-small rotate: false - xy: 1106, 125 + xy: 1566, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-char-tiny rotate: false - xy: 1915, 81 + xy: 3057, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10833,28 +10840,28 @@ block-char-xlarge index: -1 block-cliff-large rotate: false - xy: 1421, 371 + xy: 1265, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliff-medium rotate: false - xy: 3819, 337 + xy: 1601, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliff-small rotate: false - xy: 1158, 151 + xy: 1592, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliff-tiny rotate: false - xy: 1933, 81 + xy: 3075, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10868,28 +10875,28 @@ block-cliff-xlarge index: -1 block-cliffs-large rotate: false - xy: 1463, 371 + xy: 1307, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliffs-medium rotate: false - xy: 3853, 337 + xy: 1635, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-small rotate: false - xy: 1132, 125 + xy: 1618, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliffs-tiny rotate: false - xy: 1951, 81 + xy: 3093, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10903,28 +10910,28 @@ block-cliffs-xlarge index: -1 block-coal-centrifuge-large rotate: false - xy: 1505, 371 + xy: 1349, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-coal-centrifuge-medium rotate: false - xy: 3887, 337 + xy: 1669, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-coal-centrifuge-small rotate: false - xy: 1184, 151 + xy: 1644, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-coal-centrifuge-tiny rotate: false - xy: 1969, 81 + xy: 3111, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10938,28 +10945,28 @@ block-coal-centrifuge-xlarge index: -1 block-combustion-generator-large rotate: false - xy: 1547, 371 + xy: 1391, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-combustion-generator-medium rotate: false - xy: 3921, 337 + xy: 1703, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-combustion-generator-small rotate: false - xy: 1158, 125 + xy: 1670, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-combustion-generator-tiny rotate: false - xy: 1987, 81 + xy: 3129, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10971,6624 +10978,6694 @@ block-combustion-generator-xlarge orig: 48, 48 offset: 0, 0 index: -1 -block-conduit-large +block-command-center-large rotate: false - xy: 1589, 371 + xy: 1433, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conduit-medium +block-command-center-medium rotate: false - xy: 3955, 337 + xy: 1737, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conduit-small +block-command-center-small rotate: false - xy: 1210, 151 + xy: 1696, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conduit-tiny +block-command-center-tiny rotate: false - xy: 2005, 81 + xy: 2376, 40 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conduit-xlarge +block-command-center-xlarge rotate: false xy: 1357, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-container-large +block-conduit-large rotate: false - xy: 1631, 371 + xy: 1475, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-container-medium +block-conduit-medium rotate: false - xy: 3989, 337 + xy: 1771, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-container-small +block-conduit-small rotate: false - xy: 1184, 125 + xy: 1722, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-container-tiny +block-conduit-tiny rotate: false - xy: 2023, 81 + xy: 2859, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-container-xlarge +block-conduit-xlarge rotate: false xy: 1407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conveyor-large +block-container-large rotate: false - xy: 1673, 371 + xy: 1517, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conveyor-medium +block-container-medium rotate: false - xy: 4023, 337 + xy: 1805, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conveyor-small +block-container-small rotate: false - xy: 1236, 151 + xy: 1748, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conveyor-tiny +block-container-tiny rotate: false - xy: 2041, 81 + xy: 2877, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conveyor-xlarge +block-container-xlarge rotate: false xy: 1457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-large +block-conveyor-large rotate: false - xy: 1715, 371 + xy: 1559, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-copper-wall-large-large +block-conveyor-medium rotate: false - xy: 1757, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-copper-wall-large-medium - rotate: false - xy: 2925, 279 + xy: 1839, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-large-small +block-conveyor-small rotate: false - xy: 1210, 125 + xy: 1774, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-large-tiny +block-conveyor-tiny rotate: false - xy: 2059, 81 + xy: 2895, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-large-xlarge +block-conveyor-xlarge rotate: false xy: 1507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-medium +block-copper-wall-large rotate: false - xy: 2959, 279 + xy: 1601, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-copper-wall-large-large + rotate: false + xy: 1643, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-copper-wall-large-medium + rotate: false + xy: 1873, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-small +block-copper-wall-large-small rotate: false - xy: 1262, 151 + xy: 1800, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-tiny +block-copper-wall-large-tiny rotate: false - xy: 2077, 81 + xy: 2913, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-xlarge +block-copper-wall-large-xlarge rotate: false xy: 1557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-foundation-large +block-copper-wall-medium rotate: false - xy: 1799, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-core-foundation-medium - rotate: false - xy: 2993, 279 + xy: 1907, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-foundation-small +block-copper-wall-small rotate: false - xy: 1236, 125 + xy: 1826, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-foundation-tiny +block-copper-wall-tiny rotate: false - xy: 2095, 81 + xy: 2931, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-foundation-xlarge +block-copper-wall-xlarge rotate: false xy: 1607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-nucleus-large +block-core-foundation-large rotate: false - xy: 1841, 371 + xy: 1685, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-nucleus-medium +block-core-foundation-medium rotate: false - xy: 3027, 279 + xy: 1941, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-nucleus-small +block-core-foundation-small rotate: false - xy: 1288, 151 + xy: 1852, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-nucleus-tiny +block-core-foundation-tiny rotate: false - xy: 2113, 81 + xy: 2949, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-nucleus-xlarge +block-core-foundation-xlarge rotate: false xy: 1657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-shard-large +block-core-nucleus-large rotate: false - xy: 1883, 371 + xy: 1727, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-shard-medium +block-core-nucleus-medium rotate: false - xy: 3061, 279 + xy: 1975, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-shard-small +block-core-nucleus-small rotate: false - xy: 1262, 125 + xy: 1878, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-shard-tiny +block-core-nucleus-tiny rotate: false - xy: 2131, 81 + xy: 2967, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-shard-xlarge +block-core-nucleus-xlarge rotate: false xy: 1707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-craters-large +block-core-shard-large rotate: false - xy: 1925, 371 + xy: 1769, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-craters-medium +block-core-shard-medium rotate: false - xy: 3095, 279 + xy: 2009, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-craters-small +block-core-shard-small rotate: false - xy: 1314, 151 + xy: 1904, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-craters-tiny +block-core-shard-tiny rotate: false - xy: 2149, 81 + xy: 2985, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-craters-xlarge +block-core-shard-xlarge rotate: false xy: 1757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cryofluidmixer-large +block-craters-large rotate: false - xy: 1967, 371 + xy: 1811, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cryofluidmixer-medium +block-craters-medium rotate: false - xy: 3129, 279 + xy: 2043, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cryofluidmixer-small +block-craters-small rotate: false - xy: 1288, 125 + xy: 1930, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cryofluidmixer-tiny +block-craters-tiny rotate: false - xy: 2167, 81 + xy: 3003, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cryofluidmixer-xlarge +block-craters-xlarge rotate: false xy: 1807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cultivator-large +block-cryofluidmixer-large rotate: false - xy: 2009, 371 + xy: 1853, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cultivator-medium +block-cryofluidmixer-medium rotate: false - xy: 3163, 279 + xy: 2077, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cultivator-small +block-cryofluidmixer-small rotate: false - xy: 1340, 151 + xy: 1956, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cultivator-tiny +block-cryofluidmixer-tiny rotate: false - xy: 2185, 81 + xy: 3021, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cultivator-xlarge +block-cryofluidmixer-xlarge rotate: false xy: 1857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cyclone-large +block-cultivator-large rotate: false - xy: 2051, 371 + xy: 1895, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cyclone-medium +block-cultivator-medium rotate: false - xy: 3197, 279 + xy: 2111, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cyclone-small +block-cultivator-small rotate: false - xy: 1314, 125 + xy: 1982, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cyclone-tiny +block-cultivator-tiny rotate: false - xy: 2203, 81 + xy: 3039, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cyclone-xlarge +block-cultivator-xlarge rotate: false xy: 1907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-metal-large +block-cyclone-large rotate: false - xy: 2093, 371 + xy: 1937, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-metal-medium +block-cyclone-medium rotate: false - xy: 3231, 279 + xy: 2145, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-metal-small +block-cyclone-small rotate: false - xy: 1366, 151 + xy: 2008, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-metal-tiny +block-cyclone-tiny rotate: false - xy: 2221, 81 + xy: 3057, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-metal-xlarge +block-cyclone-xlarge rotate: false xy: 1957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-1-large +block-dark-metal-large rotate: false - xy: 2135, 371 + xy: 1979, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-1-medium +block-dark-metal-medium rotate: false - xy: 3265, 279 + xy: 2179, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-1-small +block-dark-metal-small rotate: false - xy: 1340, 125 + xy: 2034, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-1-tiny +block-dark-metal-tiny rotate: false - xy: 2239, 81 + xy: 3075, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-1-xlarge +block-dark-metal-xlarge rotate: false xy: 2007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-2-large +block-dark-panel-1-large rotate: false - xy: 2177, 371 + xy: 2021, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-2-medium +block-dark-panel-1-medium rotate: false - xy: 3299, 279 + xy: 2213, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-2-small +block-dark-panel-1-small rotate: false - xy: 1392, 151 + xy: 2060, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-2-tiny +block-dark-panel-1-tiny rotate: false - xy: 2257, 81 + xy: 3093, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-2-xlarge +block-dark-panel-1-xlarge rotate: false xy: 2057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-3-large +block-dark-panel-2-large rotate: false - xy: 2219, 371 + xy: 2063, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-3-medium +block-dark-panel-2-medium rotate: false - xy: 3343, 303 + xy: 2247, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-3-small +block-dark-panel-2-small rotate: false - xy: 1366, 125 + xy: 2086, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-3-tiny +block-dark-panel-2-tiny rotate: false - xy: 2275, 81 + xy: 3111, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-3-xlarge +block-dark-panel-2-xlarge rotate: false xy: 2107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-4-large +block-dark-panel-3-large rotate: false - xy: 2261, 371 + xy: 2105, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-4-medium +block-dark-panel-3-medium rotate: false - xy: 3377, 303 + xy: 2281, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-4-small +block-dark-panel-3-small rotate: false - xy: 1418, 151 + xy: 2112, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-4-tiny +block-dark-panel-3-tiny rotate: false - xy: 2293, 81 + xy: 3129, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-4-xlarge +block-dark-panel-3-xlarge rotate: false xy: 2157, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-5-large +block-dark-panel-4-large rotate: false - xy: 2303, 371 + xy: 2147, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-5-medium +block-dark-panel-4-medium rotate: false - xy: 3411, 303 + xy: 2315, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-5-small +block-dark-panel-4-small rotate: false - xy: 1392, 125 + xy: 2138, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-5-tiny +block-dark-panel-4-tiny rotate: false - xy: 2311, 81 + xy: 2394, 39 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-5-xlarge +block-dark-panel-4-xlarge rotate: false xy: 2207, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-6-large +block-dark-panel-5-large rotate: false - xy: 2345, 371 + xy: 2189, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-6-medium +block-dark-panel-5-medium rotate: false - xy: 3445, 303 + xy: 3622, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-6-small +block-dark-panel-5-small rotate: false - xy: 1444, 151 + xy: 2164, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-6-tiny +block-dark-panel-5-tiny rotate: false - xy: 2329, 81 + xy: 2412, 39 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-6-xlarge +block-dark-panel-5-xlarge rotate: false xy: 2257, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-large +block-dark-panel-6-large rotate: false - xy: 2387, 371 + xy: 2231, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-darksand-medium +block-dark-panel-6-medium rotate: false - xy: 3479, 303 + xy: 2349, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-darksand-small +block-dark-panel-6-small rotate: false - xy: 1418, 125 + xy: 2190, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-darksand-tainted-water-large +block-dark-panel-6-tiny rotate: false - xy: 2429, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-medium - rotate: false - xy: 3513, 303 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-small - rotate: false - xy: 1470, 151 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-tiny - rotate: false - xy: 2347, 81 + xy: 2365, 22 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-darksand-tainted-water-xlarge +block-dark-panel-6-xlarge rotate: false xy: 2307, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-tiny +block-darksand-large rotate: false - xy: 2365, 81 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-water-large - rotate: false - xy: 2471, 371 + xy: 2273, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-darksand-water-medium +block-darksand-medium rotate: false - xy: 3547, 303 + xy: 2383, 180 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-darksand-water-small +block-darksand-small rotate: false - xy: 1444, 125 + xy: 2216, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-darksand-water-tiny +block-darksand-tainted-water-large rotate: false - xy: 2383, 81 + xy: 2315, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-medium + rotate: false + xy: 2417, 182 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-small + rotate: false + xy: 2242, 41 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-tiny + rotate: false + xy: 2365, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-darksand-water-xlarge +block-darksand-tainted-water-xlarge rotate: false xy: 2357, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-xlarge +block-darksand-tiny + rotate: false + xy: 2383, 21 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-large + rotate: false + xy: 2357, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-water-medium + rotate: false + xy: 2451, 182 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-water-small + rotate: false + xy: 2440, 122 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-water-tiny + rotate: false + xy: 2401, 21 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-xlarge rotate: false xy: 2407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-deepwater-large - rotate: false - xy: 2513, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-deepwater-medium - rotate: false - xy: 3581, 303 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-deepwater-small - rotate: false - xy: 1496, 151 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-deepwater-tiny - rotate: false - xy: 2401, 81 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-deepwater-xlarge +block-darksand-xlarge rotate: false xy: 2457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-differential-generator-large +block-deepwater-large rotate: false - xy: 2555, 371 + xy: 2399, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-differential-generator-medium +block-deepwater-medium rotate: false - xy: 3615, 303 + xy: 3217, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-differential-generator-small +block-deepwater-small rotate: false - xy: 1470, 125 + xy: 2440, 96 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-differential-generator-tiny +block-deepwater-tiny rotate: false - xy: 2419, 81 + xy: 2383, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-differential-generator-xlarge +block-deepwater-xlarge rotate: false xy: 2507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-diode-large +block-differential-generator-large rotate: false - xy: 2597, 371 + xy: 2441, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-diode-medium +block-differential-generator-medium rotate: false - xy: 3649, 303 + xy: 3251, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-diode-small +block-differential-generator-small rotate: false - xy: 1522, 151 + xy: 881, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-diode-tiny +block-differential-generator-tiny rotate: false - xy: 2437, 81 + xy: 2401, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-diode-xlarge +block-differential-generator-xlarge rotate: false xy: 2557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-disassembler-large +block-diode-large rotate: false - xy: 2639, 371 + xy: 2483, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-disassembler-medium +block-diode-medium rotate: false - xy: 3683, 303 + xy: 3659, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-disassembler-small +block-diode-small rotate: false - xy: 1496, 125 + xy: 907, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-disassembler-tiny +block-diode-tiny rotate: false - xy: 2455, 81 + xy: 2419, 21 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-disassembler-xlarge +block-diode-xlarge rotate: false xy: 2607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-distributor-large +block-disassembler-large rotate: false - xy: 2681, 371 + xy: 2525, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-distributor-medium +block-disassembler-medium rotate: false - xy: 3717, 303 + xy: 3693, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-distributor-small +block-disassembler-small rotate: false - xy: 1548, 151 + xy: 933, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-distributor-tiny +block-disassembler-tiny rotate: false - xy: 2473, 81 + xy: 2419, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-distributor-xlarge +block-disassembler-xlarge rotate: false xy: 2657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-door-large +block-distributor-large rotate: false - xy: 2723, 371 + xy: 2567, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-door-large-large +block-distributor-medium rotate: false - xy: 2765, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-medium - rotate: false - xy: 3751, 303 + xy: 3727, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-large-small +block-distributor-small rotate: false - xy: 1522, 125 + xy: 959, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-large-tiny +block-distributor-tiny rotate: false - xy: 2491, 81 + xy: 3147, 160 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-large-xlarge +block-distributor-xlarge rotate: false xy: 2707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-door-medium +block-door-large rotate: false - xy: 3785, 303 + xy: 2609, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-large + rotate: false + xy: 2651, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-medium + rotate: false + xy: 3761, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-small +block-door-large-small rotate: false - xy: 1574, 151 + xy: 985, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-tiny +block-door-large-tiny rotate: false - xy: 2509, 81 + xy: 3165, 160 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-xlarge +block-door-large-xlarge rotate: false xy: 2757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dunerocks-large +block-door-medium rotate: false - xy: 2807, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dunerocks-medium - rotate: false - xy: 3819, 303 + xy: 3795, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dunerocks-small +block-door-small rotate: false - xy: 1548, 125 + xy: 1011, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dunerocks-tiny +block-door-tiny rotate: false - xy: 2527, 81 + xy: 3147, 142 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dunerocks-xlarge +block-door-xlarge rotate: false xy: 2807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-duo-large +block-dunerocks-large rotate: false - xy: 2849, 371 + xy: 2693, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-duo-medium +block-dunerocks-medium rotate: false - xy: 3853, 303 + xy: 3829, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-duo-small +block-dunerocks-small rotate: false - xy: 1600, 151 + xy: 1037, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-duo-tiny +block-dunerocks-tiny rotate: false - xy: 2545, 81 + xy: 3165, 142 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-duo-xlarge +block-dunerocks-xlarge rotate: false xy: 2857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-exponential-reconstructor-large +block-duo-large rotate: false - xy: 2891, 371 + xy: 2735, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-exponential-reconstructor-medium +block-duo-medium rotate: false - xy: 3887, 303 + xy: 3863, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-exponential-reconstructor-small +block-duo-small rotate: false - xy: 1574, 125 + xy: 1063, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-exponential-reconstructor-tiny +block-duo-tiny rotate: false - xy: 2563, 81 + xy: 3183, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-exponential-reconstructor-xlarge +block-duo-xlarge rotate: false xy: 2907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-force-projector-large +block-exponential-reconstructor-large rotate: false - xy: 2933, 371 + xy: 2777, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-force-projector-medium +block-exponential-reconstructor-medium rotate: false - xy: 3921, 303 + xy: 3897, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-force-projector-small +block-exponential-reconstructor-small rotate: false - xy: 1626, 151 + xy: 1089, 16 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-force-projector-tiny +block-exponential-reconstructor-tiny rotate: false - xy: 2581, 81 + xy: 2807, 149 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-force-projector-xlarge +block-exponential-reconstructor-xlarge rotate: false xy: 2957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-fuse-large +block-force-projector-large rotate: false - xy: 2975, 371 + xy: 2819, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-fuse-medium +block-force-projector-medium rotate: false - xy: 3955, 303 + xy: 3931, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-fuse-small +block-force-projector-small rotate: false - xy: 1600, 125 + xy: 2466, 122 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-fuse-tiny +block-force-projector-tiny rotate: false - xy: 2599, 81 + xy: 2825, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-fuse-xlarge +block-force-projector-xlarge rotate: false xy: 3007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-graphite-press-large +block-fuse-large rotate: false - xy: 3017, 371 + xy: 2861, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-graphite-press-medium +block-fuse-medium rotate: false - xy: 3989, 303 + xy: 3965, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-graphite-press-small +block-fuse-small rotate: false - xy: 1652, 151 + xy: 2466, 96 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-graphite-press-tiny +block-fuse-tiny rotate: false - xy: 2617, 81 + xy: 3201, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-graphite-press-xlarge +block-fuse-xlarge rotate: false xy: 3057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-grass-large +block-graphite-press-large rotate: false - xy: 3059, 371 + xy: 2903, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-grass-medium +block-graphite-press-medium rotate: false - xy: 4023, 303 + xy: 3999, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-grass-small +block-graphite-press-small rotate: false - xy: 1626, 125 + xy: 2377, 58 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-grass-tiny +block-graphite-press-tiny rotate: false - xy: 2635, 81 + xy: 3219, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-grass-xlarge +block-graphite-press-xlarge rotate: false xy: 3107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ground-factory-large +block-grass-large rotate: false - xy: 3101, 371 + xy: 2945, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ground-factory-medium +block-grass-medium rotate: false - xy: 965, 119 + xy: 2875, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ground-factory-small +block-grass-small rotate: false - xy: 1678, 151 + xy: 2403, 57 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ground-factory-tiny +block-grass-tiny rotate: false - xy: 2653, 81 + xy: 3237, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ground-factory-xlarge +block-grass-xlarge rotate: false xy: 3157, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hail-large +block-ground-factory-large rotate: false - xy: 3143, 371 + xy: 2987, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hail-medium +block-ground-factory-medium rotate: false - xy: 965, 85 + xy: 2909, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hail-small +block-ground-factory-small rotate: false - xy: 1652, 125 + xy: 2440, 70 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hail-tiny +block-ground-factory-tiny rotate: false - xy: 2671, 81 + xy: 3183, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hail-xlarge +block-ground-factory-xlarge rotate: false xy: 3207, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-holostone-large +block-hail-large rotate: false - xy: 3185, 371 + xy: 3029, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-holostone-medium +block-hail-medium rotate: false - xy: 965, 51 + xy: 2943, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-holostone-small +block-hail-small rotate: false - xy: 1704, 151 + xy: 2466, 70 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-holostone-tiny +block-hail-tiny rotate: false - xy: 2689, 81 + xy: 3201, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-holostone-xlarge +block-hail-xlarge rotate: false xy: 3257, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hotrock-large +block-holostone-large rotate: false - xy: 3227, 371 + xy: 3071, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hotrock-medium +block-holostone-medium rotate: false - xy: 965, 17 + xy: 2977, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hotrock-small +block-holostone-small rotate: false - xy: 1678, 125 + xy: 1115, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hotrock-tiny +block-holostone-tiny rotate: false - xy: 2707, 81 + xy: 3219, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hotrock-xlarge +block-holostone-xlarge rotate: false xy: 3307, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-large +block-hotrock-large rotate: false - xy: 3269, 371 + xy: 3113, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ice-medium +block-hotrock-medium rotate: false - xy: 2921, 245 + xy: 3011, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-small +block-hotrock-small rotate: false - xy: 1730, 151 + xy: 1141, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ice-snow-large +block-hotrock-tiny rotate: false - xy: 3311, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-snow-medium - rotate: false - xy: 2955, 245 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-small - rotate: false - xy: 1704, 125 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ice-snow-tiny - rotate: false - xy: 2725, 81 + xy: 3237, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-snow-xlarge +block-hotrock-xlarge rotate: false xy: 3357, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-tiny +block-hyper-processor-large rotate: false - xy: 2743, 81 + xy: 3155, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-hyper-processor-medium + rotate: false + xy: 3045, 308 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hyper-processor-small + rotate: false + xy: 1167, 7 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-hyper-processor-tiny + rotate: false + xy: 3255, 127 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-xlarge +block-hyper-processor-xlarge rotate: false xy: 3407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-icerocks-large +block-ice-large rotate: false - xy: 3353, 371 + xy: 3197, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-icerocks-medium +block-ice-medium rotate: false - xy: 2989, 245 + xy: 3079, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-icerocks-small +block-ice-small rotate: false - xy: 1756, 151 + xy: 1193, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-icerocks-tiny +block-ice-snow-large rotate: false - xy: 999, 10 + xy: 859, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-snow-medium + rotate: false + xy: 3113, 308 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-snow-small + rotate: false + xy: 3651, 319 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-snow-tiny + rotate: false + xy: 3255, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-icerocks-xlarge +block-ice-snow-xlarge rotate: false xy: 3457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ignarock-large +block-ice-tiny rotate: false - xy: 3395, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ignarock-medium - rotate: false - xy: 3023, 245 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ignarock-small - rotate: false - xy: 1730, 125 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ignarock-tiny - rotate: false - xy: 1129, 55 + xy: 2563, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ignarock-xlarge +block-ice-xlarge rotate: false xy: 3507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-illuminator-large +block-icerocks-large rotate: false - xy: 3437, 371 + xy: 859, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-illuminator-medium +block-icerocks-medium rotate: false - xy: 3057, 245 + xy: 3147, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-illuminator-small +block-icerocks-small rotate: false - xy: 1782, 151 + xy: 3677, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-illuminator-tiny +block-icerocks-tiny rotate: false - xy: 1147, 55 + xy: 2581, 202 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-illuminator-xlarge +block-icerocks-xlarge rotate: false xy: 3557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-impact-reactor-large +block-ignarock-large rotate: false - xy: 3479, 371 + xy: 901, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-impact-reactor-medium +block-ignarock-medium rotate: false - xy: 3091, 245 + xy: 3181, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-impact-reactor-small +block-ignarock-small rotate: false - xy: 1756, 125 + xy: 3703, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-impact-reactor-tiny +block-ignarock-tiny rotate: false - xy: 1165, 55 + xy: 2563, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-impact-reactor-xlarge +block-ignarock-xlarge rotate: false xy: 3607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-incinerator-large +block-illuminator-large rotate: false - xy: 3521, 371 + xy: 859, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-incinerator-medium +block-illuminator-medium rotate: false - xy: 3125, 245 + xy: 3215, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-incinerator-small +block-illuminator-small rotate: false - xy: 1808, 151 + xy: 3729, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-incinerator-tiny +block-illuminator-tiny rotate: false - xy: 1183, 55 + xy: 2581, 184 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-incinerator-xlarge +block-illuminator-xlarge rotate: false xy: 3657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-inverted-sorter-large +block-impact-reactor-large rotate: false - xy: 3563, 371 + xy: 901, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-inverted-sorter-medium +block-impact-reactor-medium rotate: false - xy: 3159, 245 + xy: 3656, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-inverted-sorter-small +block-impact-reactor-small rotate: false - xy: 1782, 125 + xy: 3755, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-inverted-sorter-tiny +block-impact-reactor-tiny rotate: false - xy: 1201, 55 + xy: 2599, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-inverted-sorter-xlarge +block-impact-reactor-xlarge rotate: false xy: 3707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-source-large +block-incinerator-large rotate: false - xy: 3605, 371 + xy: 943, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-source-medium +block-incinerator-medium rotate: false - xy: 3193, 245 + xy: 3690, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-source-small +block-incinerator-small rotate: false - xy: 1834, 151 + xy: 3781, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-source-tiny +block-incinerator-tiny rotate: false - xy: 1219, 55 + xy: 2617, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-source-xlarge +block-incinerator-xlarge rotate: false xy: 3757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-void-large +block-inverted-sorter-large rotate: false - xy: 3647, 371 + xy: 859, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-void-medium +block-inverted-sorter-medium rotate: false - xy: 3227, 245 + xy: 3724, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-void-small +block-inverted-sorter-small rotate: false - xy: 1808, 125 + xy: 3807, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-void-tiny +block-inverted-sorter-tiny rotate: false - xy: 1237, 55 + xy: 2635, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-void-xlarge +block-inverted-sorter-xlarge rotate: false xy: 3807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-junction-large +block-item-source-large rotate: false - xy: 3689, 371 + xy: 901, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-junction-medium +block-item-source-medium rotate: false - xy: 3261, 245 + xy: 3758, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-junction-small +block-item-source-small rotate: false - xy: 1860, 151 + xy: 3833, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-junction-tiny +block-item-source-tiny rotate: false - xy: 1255, 55 + xy: 2653, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-junction-xlarge +block-item-source-xlarge rotate: false xy: 3857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-kiln-large +block-item-void-large rotate: false - xy: 3731, 371 + xy: 943, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-kiln-medium +block-item-void-medium rotate: false - xy: 3295, 245 + xy: 3792, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-kiln-small +block-item-void-small rotate: false - xy: 1834, 125 + xy: 3859, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-kiln-tiny +block-item-void-tiny rotate: false - xy: 1273, 55 + xy: 2671, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-kiln-xlarge +block-item-void-xlarge rotate: false xy: 3907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-lancer-large +block-junction-large rotate: false - xy: 3773, 371 + xy: 985, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-lancer-medium +block-junction-medium rotate: false - xy: 3333, 269 + xy: 3826, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-lancer-small +block-junction-small rotate: false - xy: 1886, 151 + xy: 3885, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-lancer-tiny +block-junction-tiny rotate: false - xy: 1291, 55 + xy: 2581, 166 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-lancer-xlarge +block-junction-xlarge rotate: false xy: 3957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-laser-drill-large +block-kiln-large rotate: false - xy: 3815, 371 + xy: 901, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-laser-drill-medium +block-kiln-medium rotate: false - xy: 3367, 269 + xy: 3860, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-laser-drill-small +block-kiln-small rotate: false - xy: 1860, 125 + xy: 3911, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-laser-drill-tiny +block-kiln-tiny rotate: false - xy: 1309, 55 + xy: 2599, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-laser-drill-xlarge +block-kiln-xlarge rotate: false xy: 4007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-large +block-lancer-large rotate: false - xy: 3857, 371 + xy: 943, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-launch-pad-large-large +block-lancer-medium rotate: false - xy: 3899, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-launch-pad-large-medium - rotate: false - xy: 3401, 269 + xy: 3894, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-large-small +block-lancer-small rotate: false - xy: 1912, 151 + xy: 3937, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-large-tiny +block-lancer-tiny rotate: false - xy: 1327, 55 + xy: 2617, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-large-xlarge +block-lancer-xlarge rotate: false xy: 345, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-medium +block-laser-drill-large rotate: false - xy: 3435, 269 + xy: 985, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-laser-drill-medium + rotate: false + xy: 3928, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-small +block-laser-drill-small rotate: false - xy: 1886, 125 + xy: 3963, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-tiny +block-laser-drill-tiny rotate: false - xy: 1345, 55 + xy: 2635, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-xlarge +block-laser-drill-xlarge rotate: false xy: 395, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-junction-large +block-launch-pad-large rotate: false - xy: 3941, 371 + xy: 1027, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-junction-medium +block-launch-pad-large-large rotate: false - xy: 3469, 269 + xy: 943, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-launch-pad-large-medium + rotate: false + xy: 3962, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-junction-small +block-launch-pad-large-small rotate: false - xy: 1938, 151 + xy: 3989, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-junction-tiny +block-launch-pad-large-tiny rotate: false - xy: 1363, 55 + xy: 2653, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-junction-xlarge +block-launch-pad-large-xlarge rotate: false xy: 445, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-router-large +block-launch-pad-medium rotate: false - xy: 3983, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-router-medium - rotate: false - xy: 3503, 269 + xy: 3996, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-router-small +block-launch-pad-small rotate: false - xy: 1912, 125 + xy: 4015, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-router-tiny +block-launch-pad-tiny rotate: false - xy: 1381, 55 + xy: 2671, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-router-xlarge +block-launch-pad-xlarge rotate: false xy: 495, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-source-large +block-liquid-junction-large rotate: false - xy: 4025, 371 + xy: 985, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-source-medium +block-liquid-junction-medium rotate: false - xy: 3537, 269 + xy: 2383, 146 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-source-small +block-liquid-junction-small rotate: false - xy: 1964, 151 + xy: 4059, 371 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-source-tiny +block-liquid-junction-tiny rotate: false - xy: 1399, 55 + xy: 2570, 148 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-source-xlarge +block-liquid-junction-xlarge rotate: false xy: 545, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-tank-large +block-liquid-router-large rotate: false - xy: 131, 4 + xy: 1027, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-tank-medium +block-liquid-router-medium rotate: false - xy: 3571, 269 + xy: 2417, 148 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-tank-small +block-liquid-router-small rotate: false - xy: 1938, 125 + xy: 4033, 361 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-tank-tiny +block-liquid-router-tiny rotate: false - xy: 1417, 55 + xy: 2570, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-tank-xlarge +block-liquid-router-xlarge rotate: false xy: 595, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-void-large +block-liquid-source-large rotate: false - xy: 173, 4 + xy: 1069, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-void-medium +block-liquid-source-medium rotate: false - xy: 3605, 269 + xy: 2451, 148 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-void-small +block-liquid-source-small rotate: false - xy: 1990, 151 + xy: 4059, 345 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-void-tiny +block-liquid-source-tiny rotate: false - xy: 1435, 55 + xy: 2570, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-void-xlarge +block-liquid-source-xlarge rotate: false xy: 645, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-logic-display-large +block-liquid-tank-large rotate: false - xy: 215, 4 + xy: 985, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-logic-display-medium +block-liquid-tank-medium rotate: false - xy: 3639, 269 + xy: 2497, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-logic-display-small +block-liquid-tank-small rotate: false - xy: 1964, 125 + xy: 4041, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-logic-display-tiny +block-liquid-tank-tiny rotate: false - xy: 1453, 55 + xy: 2570, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-logic-display-xlarge +block-liquid-tank-xlarge rotate: false xy: 695, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-logic-processor-large +block-liquid-void-large rotate: false - xy: 909, 237 + xy: 1027, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-logic-processor-medium +block-liquid-void-medium rotate: false - xy: 3673, 269 + xy: 3454, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-logic-processor-small +block-liquid-void-small rotate: false - xy: 2016, 151 + xy: 4067, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-logic-processor-tiny +block-liquid-void-tiny rotate: false - xy: 1471, 55 + xy: 2570, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-logic-processor-xlarge +block-liquid-void-xlarge rotate: false xy: 231, 96 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-magmarock-large +block-logic-display-large rotate: false - xy: 901, 195 + xy: 1069, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-magmarock-medium +block-logic-display-medium rotate: false - xy: 3707, 269 + xy: 3488, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-magmarock-small +block-logic-display-small rotate: false - xy: 1990, 125 + xy: 2275, 48 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-magmarock-tiny +block-logic-display-tiny rotate: false - xy: 1489, 55 + xy: 2570, 58 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-magmarock-xlarge +block-logic-display-xlarge rotate: false xy: 231, 46 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-conveyor-large +block-logic-processor-large rotate: false - xy: 901, 153 + xy: 1111, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-conveyor-medium +block-logic-processor-medium rotate: false - xy: 3741, 269 + xy: 3522, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-conveyor-small +block-logic-processor-small rotate: false - xy: 2042, 151 + xy: 2301, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-conveyor-tiny +block-logic-processor-tiny rotate: false - xy: 1507, 55 + xy: 2570, 40 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-conveyor-xlarge +block-logic-processor-xlarge rotate: false xy: 745, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-driver-large +block-magmarock-large rotate: false - xy: 881, 111 + xy: 1027, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-driver-medium +block-magmarock-medium rotate: false - xy: 3775, 269 + xy: 3556, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-driver-small +block-magmarock-small rotate: false - xy: 2016, 125 + xy: 2327, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-driver-tiny +block-magmarock-tiny rotate: false - xy: 1525, 55 + xy: 2588, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-driver-xlarge +block-magmarock-xlarge rotate: false xy: 281, 107 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-drill-large +block-mass-driver-large rotate: false - xy: 881, 69 + xy: 1069, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-drill-medium +block-mass-driver-medium rotate: false - xy: 3809, 269 + xy: 2531, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-drill-small +block-mass-driver-small rotate: false - xy: 2068, 151 + xy: 1221, 14 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-drill-tiny +block-mass-driver-tiny rotate: false - xy: 1543, 55 + xy: 2588, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-drill-xlarge +block-mass-driver-xlarge rotate: false xy: 281, 57 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-pump-large +block-mechanical-drill-large rotate: false - xy: 881, 27 + xy: 1111, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-pump-medium +block-mechanical-drill-medium rotate: false - xy: 3843, 269 + xy: 2565, 220 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-pump-small +block-mechanical-drill-small rotate: false - xy: 2042, 125 + xy: 1247, 14 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-pump-tiny +block-mechanical-drill-tiny rotate: false - xy: 1561, 55 + xy: 2588, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-pump-xlarge +block-mechanical-drill-xlarge rotate: false xy: 795, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-meltdown-large +block-mechanical-pump-large rotate: false - xy: 923, 111 + xy: 1153, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-meltdown-medium +block-mechanical-pump-medium rotate: false - xy: 3877, 269 + xy: 2599, 224 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-meltdown-small +block-mechanical-pump-small rotate: false - xy: 2094, 151 + xy: 1273, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-meltdown-tiny +block-mechanical-pump-tiny rotate: false - xy: 1579, 55 + xy: 2606, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-meltdown-xlarge +block-mechanical-pump-xlarge rotate: false xy: 309, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-melter-large +block-meltdown-large rotate: false - xy: 923, 69 + xy: 1069, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-melter-medium +block-meltdown-medium rotate: false - xy: 3911, 269 + xy: 2633, 224 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-melter-small +block-meltdown-small rotate: false - xy: 2068, 125 + xy: 1299, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-melter-tiny +block-meltdown-tiny rotate: false - xy: 1597, 55 + xy: 2606, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-melter-xlarge +block-meltdown-xlarge rotate: false xy: 309, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-memory-cell-large +block-melter-large rotate: false - xy: 923, 27 + xy: 1111, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-memory-cell-medium +block-melter-medium rotate: false - xy: 3945, 269 + xy: 2667, 224 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-memory-cell-small +block-melter-small rotate: false - xy: 2120, 151 + xy: 1325, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-memory-cell-tiny +block-melter-tiny rotate: false - xy: 1615, 55 + xy: 2606, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-memory-cell-xlarge +block-melter-xlarge rotate: false xy: 359, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mend-projector-large +block-memory-cell-large rotate: false - xy: 951, 321 + xy: 1153, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mend-projector-medium +block-memory-cell-medium rotate: false - xy: 3979, 269 + xy: 2707, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mend-projector-small +block-memory-cell-small rotate: false - xy: 2094, 125 + xy: 1351, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mend-projector-tiny +block-memory-cell-tiny rotate: false - xy: 1633, 55 + xy: 2588, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mend-projector-xlarge +block-memory-cell-xlarge rotate: false xy: 309, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mender-large +block-mend-projector-large rotate: false - xy: 951, 279 + xy: 1195, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mender-medium +block-mend-projector-medium rotate: false - xy: 4013, 269 + xy: 2701, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mender-small +block-mend-projector-small rotate: false - xy: 2146, 151 + xy: 1377, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mender-tiny +block-mend-projector-tiny rotate: false - xy: 1651, 55 + xy: 2624, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mender-xlarge +block-mend-projector-xlarge rotate: false xy: 359, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-message-large +block-mender-large rotate: false - xy: 951, 237 + xy: 1111, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-message-medium +block-mender-medium rotate: false - xy: 3329, 235 + xy: 2741, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-message-small +block-mender-small rotate: false - xy: 2120, 125 + xy: 1403, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-message-tiny +block-mender-tiny rotate: false - xy: 1669, 55 + xy: 2624, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-message-xlarge +block-mender-xlarge rotate: false xy: 409, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-2-large +block-message-large rotate: false - xy: 943, 195 + xy: 1153, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-2-medium +block-message-medium rotate: false - xy: 3363, 235 + xy: 2735, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-2-small +block-message-small rotate: false - xy: 2172, 151 + xy: 1429, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-2-tiny +block-message-tiny rotate: false - xy: 1687, 55 + xy: 2624, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-2-xlarge +block-message-xlarge rotate: false xy: 359, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-3-large +block-metal-floor-2-large rotate: false - xy: 943, 153 + xy: 1195, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-3-medium +block-metal-floor-2-medium rotate: false - xy: 3397, 235 + xy: 2775, 266 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-3-small +block-metal-floor-2-small rotate: false - xy: 2146, 125 + xy: 1455, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-3-tiny +block-metal-floor-2-tiny rotate: false - xy: 1705, 55 + xy: 2588, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-3-xlarge +block-metal-floor-2-xlarge rotate: false xy: 409, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-5-large +block-metal-floor-3-large rotate: false - xy: 993, 329 + xy: 1237, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-5-medium +block-metal-floor-3-medium rotate: false - xy: 3431, 235 + xy: 2809, 266 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-5-small +block-metal-floor-3-small rotate: false - xy: 2198, 151 + xy: 1481, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-5-tiny +block-metal-floor-3-tiny rotate: false - xy: 1723, 55 + xy: 2606, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-5-xlarge +block-metal-floor-3-xlarge rotate: false xy: 459, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-damaged-large +block-metal-floor-5-large rotate: false - xy: 993, 287 + xy: 1153, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-damaged-medium +block-metal-floor-5-medium rotate: false - xy: 3465, 235 + xy: 2843, 266 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-damaged-small +block-metal-floor-5-small rotate: false - xy: 2172, 125 + xy: 1507, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-damaged-tiny +block-metal-floor-5-tiny rotate: false - xy: 1741, 55 + xy: 2642, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-damaged-xlarge +block-metal-floor-5-xlarge rotate: false xy: 409, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-large +block-metal-floor-damaged-large rotate: false - xy: 1035, 329 + xy: 1195, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-medium +block-metal-floor-damaged-medium rotate: false - xy: 3499, 235 + xy: 2877, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-small +block-metal-floor-damaged-small rotate: false - xy: 2224, 151 + xy: 1533, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-tiny +block-metal-floor-damaged-tiny rotate: false - xy: 1051, 39 + xy: 2642, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-xlarge +block-metal-floor-damaged-xlarge rotate: false xy: 459, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-micro-processor-large +block-metal-floor-large rotate: false - xy: 993, 245 + xy: 1237, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-micro-processor-medium +block-metal-floor-medium rotate: false - xy: 3533, 235 + xy: 2911, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-micro-processor-small +block-metal-floor-small rotate: false - xy: 2198, 125 + xy: 1559, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-micro-processor-tiny +block-metal-floor-tiny rotate: false - xy: 1069, 39 + xy: 2642, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-micro-processor-xlarge +block-metal-floor-xlarge rotate: false xy: 509, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-moss-large +block-micro-processor-large rotate: false - xy: 1035, 287 + xy: 1279, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-moss-medium +block-micro-processor-medium rotate: false - xy: 3567, 235 + xy: 2945, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-moss-small +block-micro-processor-small rotate: false - xy: 2250, 151 + xy: 1585, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-moss-tiny +block-micro-processor-tiny rotate: false - xy: 1087, 39 + xy: 2588, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-moss-xlarge +block-micro-processor-xlarge rotate: false xy: 459, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multi-press-large +block-moss-large rotate: false - xy: 1077, 329 + xy: 1195, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multi-press-medium +block-moss-medium rotate: false - xy: 3601, 235 + xy: 2979, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multi-press-small +block-moss-small rotate: false - xy: 2224, 125 + xy: 1611, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multi-press-tiny +block-moss-tiny rotate: false - xy: 1105, 44 + xy: 2606, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multi-press-xlarge +block-moss-xlarge rotate: false xy: 509, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-large +block-multi-press-large rotate: false - xy: 1035, 245 + xy: 1237, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-medium +block-multi-press-medium rotate: false - xy: 3635, 235 + xy: 3013, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-small +block-multi-press-small rotate: false - xy: 2276, 151 + xy: 1637, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-tiny +block-multi-press-tiny rotate: false - xy: 1759, 63 + xy: 2624, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-xlarge +block-multi-press-xlarge rotate: false xy: 559, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-naval-factory-large +block-multiplicative-reconstructor-large rotate: false - xy: 1077, 287 + xy: 1279, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-naval-factory-medium +block-multiplicative-reconstructor-medium rotate: false - xy: 3669, 235 + xy: 3047, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-naval-factory-small +block-multiplicative-reconstructor-small rotate: false - xy: 2250, 125 + xy: 1663, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-naval-factory-tiny +block-multiplicative-reconstructor-tiny rotate: false - xy: 1777, 63 + xy: 2660, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-naval-factory-xlarge +block-multiplicative-reconstructor-xlarge rotate: false xy: 509, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-oil-extractor-large +block-naval-factory-large rotate: false - xy: 1119, 329 + xy: 1321, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-oil-extractor-medium +block-naval-factory-medium rotate: false - xy: 3703, 235 + xy: 3081, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-oil-extractor-small +block-naval-factory-small rotate: false - xy: 2302, 151 + xy: 1689, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-oil-extractor-tiny +block-naval-factory-tiny rotate: false - xy: 1795, 63 + xy: 2660, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-oil-extractor-xlarge +block-naval-factory-xlarge rotate: false xy: 559, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-coal-large +block-oil-extractor-large rotate: false - xy: 1077, 245 + xy: 1237, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-coal-medium +block-oil-extractor-medium rotate: false - xy: 3737, 235 + xy: 3115, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-coal-small +block-oil-extractor-small rotate: false - xy: 2276, 125 + xy: 1715, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-coal-tiny +block-oil-extractor-tiny rotate: false - xy: 1813, 63 + xy: 2660, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-coal-xlarge +block-oil-extractor-xlarge rotate: false xy: 609, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-copper-large +block-ore-coal-large rotate: false - xy: 1119, 287 + xy: 1279, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-copper-medium +block-ore-coal-medium rotate: false - xy: 3771, 235 + xy: 3149, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-copper-small +block-ore-coal-small rotate: false - xy: 2328, 151 + xy: 1741, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-copper-tiny +block-ore-coal-tiny rotate: false - xy: 1831, 63 + xy: 2606, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-copper-xlarge +block-ore-coal-xlarge rotate: false xy: 559, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-lead-large +block-ore-copper-large rotate: false - xy: 1161, 329 + xy: 1321, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-lead-medium +block-ore-copper-medium rotate: false - xy: 3805, 235 + xy: 2877, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-lead-small +block-ore-copper-small rotate: false - xy: 2302, 125 + xy: 1767, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-lead-tiny +block-ore-copper-tiny rotate: false - xy: 1849, 63 + xy: 2624, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-lead-xlarge +block-ore-copper-xlarge rotate: false xy: 609, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-scrap-large +block-ore-lead-large rotate: false - xy: 1119, 245 + xy: 1363, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-scrap-medium +block-ore-lead-medium rotate: false - xy: 3839, 235 + xy: 2911, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-scrap-small +block-ore-lead-small rotate: false - xy: 2354, 151 + xy: 1793, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-scrap-tiny +block-ore-lead-tiny rotate: false - xy: 1867, 63 + xy: 2642, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-scrap-xlarge +block-ore-lead-xlarge rotate: false xy: 659, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-thorium-large +block-ore-scrap-large rotate: false - xy: 1161, 287 + xy: 1279, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-thorium-medium +block-ore-scrap-medium rotate: false - xy: 3873, 235 + xy: 2945, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-thorium-small +block-ore-scrap-small rotate: false - xy: 2328, 125 + xy: 1819, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-thorium-tiny +block-ore-scrap-tiny rotate: false - xy: 1885, 63 + xy: 2624, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-thorium-xlarge +block-ore-scrap-xlarge rotate: false xy: 609, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-titanium-large +block-ore-thorium-large rotate: false - xy: 1203, 329 + xy: 1321, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-titanium-medium +block-ore-thorium-medium rotate: false - xy: 3907, 235 + xy: 2979, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-titanium-small +block-ore-thorium-small rotate: false - xy: 2380, 151 + xy: 1845, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-titanium-tiny +block-ore-thorium-tiny rotate: false - xy: 1903, 63 + xy: 2642, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-titanium-xlarge +block-ore-thorium-xlarge rotate: false xy: 659, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-dome-large +block-ore-titanium-large rotate: false - xy: 1161, 245 + xy: 1363, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-dome-medium +block-ore-titanium-medium rotate: false - xy: 3941, 235 + xy: 3013, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-dome-small +block-ore-titanium-small rotate: false - xy: 2354, 125 + xy: 1871, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-dome-tiny +block-ore-titanium-tiny rotate: false - xy: 1921, 63 + xy: 2660, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-dome-xlarge +block-ore-titanium-xlarge rotate: false xy: 709, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-projector-large +block-overdrive-dome-large rotate: false - xy: 1203, 287 + xy: 1405, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-projector-medium +block-overdrive-dome-medium rotate: false - xy: 3975, 235 + xy: 3047, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-projector-small +block-overdrive-dome-small rotate: false - xy: 2406, 151 + xy: 1897, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-projector-tiny +block-overdrive-dome-tiny rotate: false - xy: 1939, 63 + xy: 2642, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-projector-xlarge +block-overdrive-dome-xlarge rotate: false xy: 659, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overflow-gate-large +block-overdrive-projector-large rotate: false - xy: 1245, 329 + xy: 1321, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overflow-gate-medium +block-overdrive-projector-medium rotate: false - xy: 4009, 235 + xy: 3081, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overflow-gate-small +block-overdrive-projector-small rotate: false - xy: 2380, 125 + xy: 1923, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overflow-gate-tiny +block-overdrive-projector-tiny rotate: false - xy: 1957, 63 + xy: 2660, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overflow-gate-xlarge +block-overdrive-projector-xlarge rotate: false xy: 709, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-parallax-large +block-overflow-gate-large rotate: false - xy: 1203, 245 + xy: 1363, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-parallax-medium +block-overflow-gate-medium rotate: false - xy: 2883, 224 + xy: 3115, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-parallax-small +block-overflow-gate-small rotate: false - xy: 2432, 151 + xy: 1949, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-parallax-tiny +block-overflow-gate-tiny rotate: false - xy: 1975, 63 + xy: 2660, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-parallax-xlarge +block-overflow-gate-xlarge rotate: false xy: 709, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-payload-router-large +block-parallax-large rotate: false - xy: 1245, 287 + xy: 1405, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-payload-router-medium +block-parallax-medium rotate: false - xy: 2917, 211 + xy: 3149, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-payload-router-small +block-parallax-small rotate: false - xy: 2406, 125 + xy: 1975, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-payload-router-tiny +block-parallax-tiny rotate: false - xy: 1993, 63 + xy: 2588, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-payload-router-xlarge +block-parallax-xlarge rotate: false xy: 759, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pebbles-large +block-payload-conveyor-large rotate: false - xy: 1287, 329 + xy: 1447, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pebbles-medium +block-payload-conveyor-medium rotate: false - xy: 2951, 211 + xy: 881, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pebbles-small +block-payload-conveyor-small rotate: false - xy: 2458, 151 + xy: 2001, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pebbles-tiny +block-payload-conveyor-tiny rotate: false - xy: 2011, 63 + xy: 2606, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pebbles-xlarge +block-payload-conveyor-xlarge rotate: false xy: 759, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conduit-large +block-payload-router-large rotate: false - xy: 1245, 245 + xy: 1363, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conduit-medium +block-payload-router-medium rotate: false - xy: 2985, 211 + xy: 915, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conduit-small +block-payload-router-small rotate: false - xy: 2432, 125 + xy: 2027, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conduit-tiny +block-payload-router-tiny rotate: false - xy: 2029, 63 + xy: 2624, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conduit-xlarge +block-payload-router-xlarge rotate: false xy: 759, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conveyor-large +block-pebbles-large rotate: false - xy: 1287, 287 + xy: 1405, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-pebbles-medium rotate: false - xy: 3019, 211 + xy: 881, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-pebbles-small rotate: false - xy: 2484, 151 + xy: 2053, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-pebbles-tiny rotate: false - xy: 2047, 63 + xy: 2642, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-pebbles-xlarge rotate: false xy: 809, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large +block-phase-conduit-large rotate: false - xy: 1329, 329 + xy: 1447, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-large +block-phase-conduit-medium rotate: false - xy: 1287, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-medium - rotate: false - xy: 3053, 211 + xy: 949, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-large-small +block-phase-conduit-small rotate: false - xy: 2458, 125 + xy: 2079, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-large-tiny +block-phase-conduit-tiny rotate: false - xy: 2065, 63 + xy: 2660, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-large-xlarge +block-phase-conduit-xlarge rotate: false xy: 809, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-medium +block-phase-conveyor-large rotate: false - xy: 3087, 211 + xy: 1489, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-conveyor-medium + rotate: false + xy: 881, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-small +block-phase-conveyor-small rotate: false - xy: 2510, 151 + xy: 2105, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-tiny +block-phase-conveyor-tiny rotate: false - xy: 2083, 63 + xy: 2678, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-xlarge +block-phase-conveyor-xlarge rotate: false xy: 809, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-weaver-large +block-phase-wall-large rotate: false - xy: 1329, 287 + xy: 1405, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-phase-wall-large-large rotate: false - xy: 3121, 211 + xy: 1447, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-medium + rotate: false + xy: 915, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-phase-wall-large-small rotate: false - xy: 2484, 125 + xy: 2131, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-phase-wall-large-tiny rotate: false - xy: 2101, 63 + xy: 2678, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-phase-wall-large-xlarge rotate: false xy: 809, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large +block-phase-wall-medium rotate: false - xy: 1371, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pine-medium - rotate: false - xy: 3155, 211 + xy: 983, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pine-small +block-phase-wall-small rotate: false - xy: 2536, 151 + xy: 2157, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pine-tiny +block-phase-wall-tiny rotate: false - xy: 2119, 63 + xy: 2678, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pine-xlarge +block-phase-wall-xlarge rotate: false xy: 281, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-compressor-large +block-phase-weaver-large rotate: false - xy: 1329, 245 + xy: 1489, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-compressor-medium +block-phase-weaver-medium rotate: false - xy: 3189, 211 + xy: 881, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-compressor-small +block-phase-weaver-small rotate: false - xy: 2510, 125 + xy: 2183, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-compressor-tiny +block-phase-weaver-tiny rotate: false - xy: 2137, 63 + xy: 2678, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-compressor-xlarge +block-phase-weaver-xlarge rotate: false xy: 331, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-conveyor-large +block-pine-large rotate: false - xy: 1371, 287 + xy: 1531, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-conveyor-medium +block-pine-medium rotate: false - xy: 3223, 211 + xy: 915, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-conveyor-small +block-pine-small rotate: false - xy: 2562, 151 + xy: 2209, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-conveyor-tiny +block-pine-tiny rotate: false - xy: 2155, 63 + xy: 2678, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-conveyor-xlarge +block-pine-xlarge rotate: false xy: 331, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-large +block-plastanium-compressor-large rotate: false - xy: 1413, 329 + xy: 1447, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-wall-large-large +block-plastanium-compressor-medium rotate: false - xy: 1371, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-medium - rotate: false - xy: 3257, 211 + xy: 949, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-large-small +block-plastanium-compressor-small rotate: false - xy: 2536, 125 + xy: 2235, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-large-tiny +block-plastanium-compressor-tiny rotate: false - xy: 2173, 63 + xy: 2678, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-large-xlarge +block-plastanium-compressor-xlarge rotate: false xy: 381, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-medium +block-plastanium-conveyor-large rotate: false - xy: 3291, 211 + xy: 1489, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-medium + rotate: false + xy: 1017, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-small +block-plastanium-conveyor-small rotate: false - xy: 2588, 151 + xy: 2261, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-tiny +block-plastanium-conveyor-tiny rotate: false - xy: 2191, 63 + xy: 2678, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-xlarge +block-plastanium-conveyor-xlarge rotate: false xy: 331, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plated-conduit-large +block-plastanium-wall-large rotate: false - xy: 1413, 287 + xy: 1531, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plated-conduit-medium +block-plastanium-wall-large-large rotate: false - xy: 3325, 201 + xy: 1573, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-medium + rotate: false + xy: 915, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plated-conduit-small +block-plastanium-wall-large-small rotate: false - xy: 2562, 125 + xy: 2287, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plated-conduit-tiny +block-plastanium-wall-large-tiny rotate: false - xy: 2209, 63 + xy: 2570, 22 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plated-conduit-xlarge +block-plastanium-wall-large-xlarge rotate: false xy: 381, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pneumatic-drill-large +block-plastanium-wall-medium rotate: false - xy: 1455, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pneumatic-drill-medium - rotate: false - xy: 3359, 201 + xy: 949, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pneumatic-drill-small +block-plastanium-wall-small rotate: false - xy: 2614, 151 + xy: 2313, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pneumatic-drill-tiny +block-plastanium-wall-tiny rotate: false - xy: 2227, 63 + xy: 2588, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pneumatic-drill-xlarge +block-plastanium-wall-xlarge rotate: false xy: 431, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-large +block-plated-conduit-large rotate: false - xy: 1413, 245 + xy: 1489, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-node-large-large +block-plated-conduit-medium rotate: false - xy: 1455, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-medium - rotate: false - xy: 3393, 201 + xy: 983, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-large-small +block-plated-conduit-small rotate: false - xy: 2588, 125 + xy: 2339, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-large-tiny +block-plated-conduit-tiny rotate: false - xy: 2245, 63 + xy: 2606, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-large-xlarge +block-plated-conduit-xlarge rotate: false xy: 381, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-medium +block-pneumatic-drill-large rotate: false - xy: 3427, 201 + xy: 1531, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pneumatic-drill-medium + rotate: false + xy: 1051, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-small +block-pneumatic-drill-small rotate: false - xy: 2640, 151 + xy: 3251, 317 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-tiny +block-pneumatic-drill-tiny rotate: false - xy: 2263, 63 + xy: 2624, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-xlarge +block-pneumatic-drill-xlarge rotate: false xy: 431, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-source-large +block-power-node-large rotate: false - xy: 1497, 329 + xy: 1573, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-source-medium +block-power-node-large-large rotate: false - xy: 3461, 201 + xy: 1615, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-medium + rotate: false + xy: 949, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-source-small +block-power-node-large-small rotate: false - xy: 2614, 125 + xy: 3249, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-source-tiny +block-power-node-large-tiny rotate: false - xy: 2281, 63 + xy: 2642, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-source-xlarge +block-power-node-large-xlarge rotate: false xy: 481, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-void-large +block-power-node-medium rotate: false - xy: 1455, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-void-medium - rotate: false - xy: 3495, 201 + xy: 983, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-void-small +block-power-node-small rotate: false - xy: 2666, 151 + xy: 3245, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-void-tiny +block-power-node-tiny rotate: false - xy: 2299, 63 + xy: 2660, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-void-xlarge +block-power-node-xlarge rotate: false xy: 431, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulse-conduit-large +block-power-source-large rotate: false - xy: 1497, 287 + xy: 1531, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulse-conduit-medium +block-power-source-medium rotate: false - xy: 3529, 201 + xy: 1017, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulse-conduit-small +block-power-source-small rotate: false - xy: 2640, 125 + xy: 3277, 317 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulse-conduit-tiny +block-power-source-tiny rotate: false - xy: 2317, 63 + xy: 2678, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulse-conduit-xlarge +block-power-source-xlarge rotate: false xy: 481, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulverizer-large +block-power-void-large rotate: false - xy: 1539, 329 + xy: 1573, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulverizer-medium +block-power-void-medium rotate: false - xy: 3563, 201 + xy: 983, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulverizer-small +block-power-void-small rotate: false - xy: 2692, 151 + xy: 3275, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulverizer-tiny +block-power-void-tiny rotate: false - xy: 2335, 63 + xy: 3273, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulverizer-xlarge +block-power-void-xlarge rotate: false xy: 531, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pyratite-mixer-large +block-pulse-conduit-large rotate: false - xy: 1497, 245 + xy: 1615, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pyratite-mixer-medium +block-pulse-conduit-medium rotate: false - xy: 3597, 201 + xy: 1017, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pyratite-mixer-small +block-pulse-conduit-small rotate: false - xy: 2666, 125 + xy: 3271, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pyratite-mixer-tiny +block-pulse-conduit-tiny rotate: false - xy: 2353, 63 + xy: 3291, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pyratite-mixer-xlarge +block-pulse-conduit-xlarge rotate: false xy: 481, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-repair-point-large +block-pulverizer-large rotate: false - xy: 1539, 287 + xy: 1657, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-repair-point-medium +block-pulverizer-medium rotate: false - xy: 3631, 201 + xy: 1051, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-repair-point-small +block-pulverizer-small rotate: false - xy: 2718, 151 + xy: 2769, 234 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-repair-point-tiny +block-pulverizer-tiny rotate: false - xy: 2371, 63 + xy: 3309, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-repair-point-xlarge +block-pulverizer-xlarge rotate: false xy: 531, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-resupply-point-large +block-pyratite-mixer-large rotate: false - xy: 1581, 329 + xy: 1573, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-resupply-point-medium +block-pyratite-mixer-medium rotate: false - xy: 3665, 201 + xy: 1017, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-resupply-point-small +block-pyratite-mixer-small rotate: false - xy: 2692, 125 + xy: 2795, 240 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-resupply-point-tiny +block-pyratite-mixer-tiny rotate: false - xy: 2389, 63 + xy: 3327, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-resupply-point-xlarge +block-pyratite-mixer-xlarge rotate: false xy: 581, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ripple-large +block-repair-point-large rotate: false - xy: 1539, 245 + xy: 1615, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ripple-medium +block-repair-point-medium rotate: false - xy: 3699, 201 + xy: 1051, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ripple-small +block-repair-point-small rotate: false - xy: 2744, 151 + xy: 2821, 240 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ripple-tiny +block-repair-point-tiny rotate: false - xy: 2407, 63 + xy: 3345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ripple-xlarge +block-repair-point-xlarge rotate: false xy: 531, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rock-large +block-resupply-point-large rotate: false - xy: 1581, 287 + xy: 1657, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rock-medium +block-resupply-point-medium rotate: false - xy: 3733, 201 + xy: 1051, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rock-small +block-resupply-point-small rotate: false - xy: 2718, 125 + xy: 2847, 240 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rock-tiny +block-resupply-point-tiny rotate: false - xy: 2425, 63 + xy: 3363, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rock-xlarge +block-resupply-point-xlarge rotate: false xy: 581, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rocks-large +block-ripple-large rotate: false - xy: 1623, 329 + xy: 1699, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rocks-medium +block-ripple-medium rotate: false - xy: 3767, 201 + xy: 1085, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rocks-small +block-ripple-small rotate: false - xy: 2744, 125 + xy: 2769, 208 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rocks-tiny +block-ripple-tiny rotate: false - xy: 2443, 63 + xy: 3381, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rocks-xlarge +block-ripple-xlarge rotate: false xy: 631, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rotary-pump-large +block-rock-large rotate: false - xy: 1581, 245 + xy: 1615, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rotary-pump-medium +block-rock-medium rotate: false - xy: 3801, 201 + xy: 1085, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rotary-pump-small +block-rock-small rotate: false - xy: 1028, 99 + xy: 2795, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rotary-pump-tiny +block-rock-tiny rotate: false - xy: 2461, 63 + xy: 3273, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rotary-pump-xlarge +block-rock-xlarge rotate: false xy: 581, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-router-large +block-rocks-large rotate: false - xy: 1623, 287 + xy: 1657, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-router-medium +block-rocks-medium rotate: false - xy: 3835, 201 + xy: 1119, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-router-small +block-rocks-small rotate: false - xy: 1054, 99 + xy: 2821, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-router-tiny +block-rocks-tiny rotate: false - xy: 2479, 63 + xy: 3291, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-router-xlarge +block-rocks-xlarge rotate: false xy: 631, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rtg-generator-large +block-rotary-pump-large rotate: false - xy: 1665, 329 + xy: 1699, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rtg-generator-medium +block-rotary-pump-medium rotate: false - xy: 3869, 201 + xy: 1085, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rtg-generator-small +block-rotary-pump-small rotate: false - xy: 1080, 99 + xy: 2847, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rtg-generator-tiny +block-rotary-pump-tiny rotate: false - xy: 2497, 63 + xy: 3309, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rtg-generator-xlarge +block-rotary-pump-xlarge rotate: false xy: 681, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salt-large +block-router-large rotate: false - xy: 1623, 245 + xy: 1741, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salt-medium +block-router-medium rotate: false - xy: 3903, 201 + xy: 1119, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salt-small +block-router-small rotate: false - xy: 1106, 99 + xy: 2873, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salt-tiny +block-router-tiny rotate: false - xy: 2515, 63 + xy: 3327, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salt-xlarge +block-router-xlarge rotate: false xy: 631, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-saltrocks-large +block-rtg-generator-large rotate: false - xy: 1665, 287 + xy: 1657, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-saltrocks-medium +block-rtg-generator-medium rotate: false - xy: 3937, 201 + xy: 1153, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-saltrocks-small +block-rtg-generator-small rotate: false - xy: 1132, 99 + xy: 2899, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-saltrocks-tiny +block-rtg-generator-tiny rotate: false - xy: 2533, 63 + xy: 3345, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-saltrocks-xlarge +block-rtg-generator-xlarge rotate: false xy: 681, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salvo-large +block-salt-large rotate: false - xy: 1707, 329 + xy: 1699, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salvo-medium +block-salt-medium rotate: false - xy: 3971, 201 + xy: 1119, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salvo-small +block-salt-small rotate: false - xy: 1158, 99 + xy: 2925, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salvo-tiny +block-salt-tiny rotate: false - xy: 2551, 63 + xy: 3363, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salvo-xlarge +block-salt-xlarge rotate: false xy: 731, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-boulder-large +block-saltrocks-large rotate: false - xy: 1665, 245 + xy: 1741, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-boulder-medium +block-saltrocks-medium rotate: false - xy: 4005, 201 + xy: 1153, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-boulder-small +block-saltrocks-small rotate: false - xy: 1184, 99 + xy: 2951, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-boulder-tiny +block-saltrocks-tiny rotate: false - xy: 2569, 63 + xy: 3381, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-boulder-xlarge +block-saltrocks-xlarge rotate: false xy: 681, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-large +block-salvo-large rotate: false - xy: 1707, 287 + xy: 1783, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-medium +block-salvo-medium rotate: false - xy: 4057, 337 + xy: 1187, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-small +block-salvo-small rotate: false - xy: 1210, 99 + xy: 2977, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-tiny +block-salvo-tiny rotate: false - xy: 2587, 63 + xy: 2781, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-water-large - rotate: false - xy: 1749, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-water-medium - rotate: false - xy: 4057, 303 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-water-small - rotate: false - xy: 1236, 99 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-water-tiny - rotate: false - xy: 2605, 63 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-water-xlarge +block-salvo-xlarge rotate: false xy: 731, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-xlarge +block-sand-boulder-large + rotate: false + xy: 1699, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-boulder-medium + rotate: false + xy: 1153, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-boulder-small + rotate: false + xy: 3003, 214 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-boulder-tiny + rotate: false + xy: 3303, 319 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-boulder-xlarge rotate: false xy: 731, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sandrocks-large +block-sand-large rotate: false - xy: 1707, 245 + xy: 1741, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sandrocks-medium +block-sand-medium rotate: false - xy: 4047, 269 + xy: 1187, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sandrocks-small +block-sand-small rotate: false - xy: 1262, 99 + xy: 3029, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sandrocks-tiny +block-sand-tiny rotate: false - xy: 2623, 63 + xy: 3327, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sandrocks-xlarge +block-sand-water-large + rotate: false + xy: 1783, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-water-medium + rotate: false + xy: 1221, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-water-small + rotate: false + xy: 3055, 214 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-water-tiny + rotate: false + xy: 3345, 345 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-water-xlarge rotate: false xy: 331, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scatter-large - rotate: false - xy: 1749, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scatter-medium - rotate: false - xy: 4043, 235 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scatter-small - rotate: false - xy: 1288, 99 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scatter-tiny - rotate: false - xy: 2641, 63 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scatter-xlarge +block-sand-xlarge rotate: false xy: 381, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scorch-large +block-sandrocks-large rotate: false - xy: 1791, 329 + xy: 1825, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scorch-medium +block-sandrocks-medium rotate: false - xy: 4039, 201 + xy: 1187, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scorch-small +block-sandrocks-small rotate: false - xy: 1314, 99 + xy: 3081, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scorch-tiny +block-sandrocks-tiny rotate: false - xy: 2659, 63 + xy: 3363, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scorch-xlarge +block-sandrocks-xlarge rotate: false xy: 431, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-large +block-scatter-large rotate: false - xy: 1749, 245 + xy: 1741, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-medium +block-scatter-medium rotate: false - xy: 985, 203 + xy: 1221, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-small +block-scatter-small rotate: false - xy: 1340, 99 + xy: 3107, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-tiny +block-scatter-tiny rotate: false - xy: 2677, 63 + xy: 3381, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-xlarge +block-scatter-xlarge rotate: false xy: 481, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-huge-large +block-scorch-large rotate: false - xy: 1791, 287 + xy: 1783, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-huge-medium +block-scorch-medium rotate: false - xy: 985, 169 + xy: 1255, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-huge-small +block-scorch-small rotate: false - xy: 1366, 99 + xy: 3133, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-huge-tiny +block-scorch-tiny rotate: false - xy: 2695, 63 + xy: 3399, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-huge-xlarge +block-scorch-xlarge rotate: false xy: 531, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-large +block-scrap-wall-gigantic-large rotate: false - xy: 1833, 329 + xy: 1825, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-large-large +block-scrap-wall-gigantic-medium rotate: false - xy: 1791, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-medium - rotate: false - xy: 1019, 211 + xy: 1221, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-large-small +block-scrap-wall-gigantic-small rotate: false - xy: 1392, 99 + xy: 2795, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-large-tiny +block-scrap-wall-gigantic-tiny rotate: false - xy: 2713, 63 + xy: 3417, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-large-xlarge +block-scrap-wall-gigantic-xlarge rotate: false xy: 581, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-medium +block-scrap-wall-huge-large rotate: false - xy: 1019, 177 + xy: 1867, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-medium + rotate: false + xy: 1255, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-small +block-scrap-wall-huge-small rotate: false - xy: 1418, 99 + xy: 2821, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-tiny +block-scrap-wall-huge-tiny rotate: false - xy: 2731, 63 + xy: 3435, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-xlarge +block-scrap-wall-huge-xlarge rotate: false xy: 631, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-segment-large +block-scrap-wall-large rotate: false - xy: 1833, 287 + xy: 1783, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-segment-medium +block-scrap-wall-large-large rotate: false - xy: 1053, 211 + xy: 1825, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-medium + rotate: false + xy: 1289, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-segment-small +block-scrap-wall-large-small rotate: false - xy: 1444, 99 + xy: 2847, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-segment-tiny +block-scrap-wall-large-tiny rotate: false - xy: 2749, 63 + xy: 3321, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-segment-xlarge +block-scrap-wall-large-xlarge rotate: false xy: 681, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-separator-large +block-scrap-wall-medium rotate: false - xy: 1875, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-separator-medium - rotate: false - xy: 1053, 177 + xy: 1255, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-separator-small +block-scrap-wall-small rotate: false - xy: 1470, 99 + xy: 2873, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-separator-tiny +block-scrap-wall-tiny rotate: false - xy: 2761, 81 + xy: 3339, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-separator-xlarge +block-scrap-wall-xlarge rotate: false xy: 731, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-boulder-large +block-segment-large rotate: false - xy: 1833, 245 + xy: 1867, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-boulder-medium +block-segment-medium rotate: false - xy: 1087, 211 + xy: 1289, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-boulder-small +block-segment-small rotate: false - xy: 1496, 99 + xy: 2899, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-boulder-tiny +block-segment-tiny rotate: false - xy: 2767, 63 + xy: 3357, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-boulder-xlarge +block-segment-xlarge rotate: false xy: 781, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-large +block-separator-large rotate: false - xy: 1875, 287 + xy: 1909, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-medium +block-separator-medium rotate: false - xy: 1087, 177 + xy: 1323, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-small +block-separator-small rotate: false - xy: 1522, 99 + xy: 2925, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-tiny +block-separator-tiny rotate: false - xy: 1017, 10 + xy: 3375, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-xlarge +block-separator-xlarge rotate: false xy: 781, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shalerocks-large +block-shale-boulder-large rotate: false - xy: 1917, 329 + xy: 1825, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shalerocks-medium +block-shale-boulder-medium rotate: false - xy: 1121, 211 + xy: 1289, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shalerocks-small +block-shale-boulder-small rotate: false - xy: 1548, 99 + xy: 2951, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shalerocks-tiny +block-shale-boulder-tiny rotate: false - xy: 1759, 45 + xy: 3393, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shalerocks-xlarge +block-shale-boulder-xlarge rotate: false xy: 781, 16 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shock-mine-large +block-shale-large rotate: false - xy: 1875, 245 + xy: 1867, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shock-mine-medium +block-shale-medium rotate: false - xy: 1121, 177 + xy: 1323, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shock-mine-small +block-shale-small rotate: false - xy: 1574, 99 + xy: 2977, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shock-mine-tiny +block-shale-tiny rotate: false - xy: 1777, 45 + xy: 3411, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shock-mine-xlarge +block-shale-xlarge rotate: false xy: 831, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shrubs-large +block-shalerocks-large rotate: false - xy: 1917, 287 + xy: 1909, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shrubs-medium +block-shalerocks-medium rotate: false - xy: 1155, 211 + xy: 1357, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shrubs-small +block-shalerocks-small rotate: false - xy: 1600, 99 + xy: 3003, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shrubs-tiny +block-shalerocks-tiny rotate: false - xy: 1795, 45 + xy: 3429, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shrubs-xlarge +block-shalerocks-xlarge rotate: false xy: 831, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-crucible-large +block-shock-mine-large rotate: false - xy: 1959, 329 + xy: 1951, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-crucible-medium +block-shock-mine-medium rotate: false - xy: 1155, 177 + xy: 1323, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-crucible-small +block-shock-mine-small rotate: false - xy: 1626, 99 + xy: 3029, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-crucible-tiny +block-shock-mine-tiny rotate: false - xy: 1813, 45 + xy: 3327, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-crucible-xlarge +block-shock-mine-xlarge rotate: false xy: 831, 16 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-smelter-large +block-shrubs-large rotate: false - xy: 1917, 245 + xy: 1867, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-smelter-medium +block-shrubs-medium rotate: false - xy: 1189, 211 + xy: 1357, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-smelter-small +block-shrubs-small rotate: false - xy: 1652, 99 + xy: 3055, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-smelter-tiny +block-shrubs-tiny rotate: false - xy: 1831, 45 + xy: 3327, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-smelter-xlarge +block-shrubs-xlarge rotate: false xy: 859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-slag-large +block-silicon-crucible-large rotate: false - xy: 1959, 287 + xy: 1909, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-slag-medium +block-silicon-crucible-medium rotate: false - xy: 1189, 177 + xy: 1391, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-slag-small +block-silicon-crucible-small rotate: false - xy: 1678, 99 + xy: 3081, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-slag-tiny +block-silicon-crucible-tiny rotate: false - xy: 1849, 45 + xy: 3345, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-slag-xlarge +block-silicon-crucible-xlarge rotate: false xy: 909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-large +block-silicon-smelter-large rotate: false - xy: 2001, 329 + xy: 1951, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-medium +block-silicon-smelter-medium rotate: false - xy: 1223, 211 + xy: 1357, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-large +block-silicon-smelter-small rotate: false - xy: 1959, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-pine-medium - rotate: false - xy: 1223, 177 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-pine-small - rotate: false - xy: 1704, 99 + xy: 3107, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-pine-tiny +block-silicon-smelter-tiny rotate: false - xy: 1867, 45 + xy: 3345, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-pine-xlarge +block-silicon-smelter-xlarge rotate: false xy: 959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-small +block-slag-large rotate: false - xy: 1730, 99 + xy: 1993, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-slag-medium + rotate: false + xy: 1391, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-slag-small + rotate: false + xy: 3133, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-tiny +block-slag-tiny rotate: false - xy: 1885, 45 + xy: 3363, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-xlarge +block-slag-xlarge rotate: false xy: 1009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrock-large +block-snow-large rotate: false - xy: 2001, 287 + xy: 1909, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrock-medium +block-snow-medium rotate: false - xy: 1257, 211 + xy: 1425, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrock-small +block-snow-pine-large rotate: false - xy: 1756, 99 + xy: 1951, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-pine-medium + rotate: false + xy: 1391, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-small + rotate: false + xy: 3241, 237 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrock-tiny +block-snow-pine-tiny rotate: false - xy: 1903, 45 + xy: 3381, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrock-xlarge +block-snow-pine-xlarge rotate: false xy: 1059, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-large +block-snow-small rotate: false - xy: 2043, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snowrocks-medium - rotate: false - xy: 1257, 177 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrocks-small - rotate: false - xy: 1782, 99 + xy: 3267, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrocks-tiny +block-snow-tiny rotate: false - xy: 1921, 45 + xy: 3399, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrocks-xlarge +block-snow-xlarge rotate: false xy: 1109, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-large +block-snowrock-large rotate: false - xy: 2001, 245 + xy: 1993, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-solar-panel-large-large +block-snowrock-medium rotate: false - xy: 2043, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-medium - rotate: false - xy: 1291, 211 + xy: 1425, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-large-small +block-snowrock-small rotate: false - xy: 1808, 99 + xy: 3241, 211 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-large-tiny +block-snowrock-tiny rotate: false - xy: 1939, 45 + xy: 3363, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-large-xlarge +block-snowrock-xlarge rotate: false xy: 1159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-medium +block-snowrocks-large rotate: false - xy: 1291, 177 + xy: 2035, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snowrocks-medium + rotate: false + xy: 1459, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-small +block-snowrocks-small rotate: false - xy: 1834, 99 + xy: 3267, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-tiny +block-snowrocks-tiny rotate: false - xy: 1957, 45 + xy: 3349, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-xlarge +block-snowrocks-xlarge rotate: false xy: 1209, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sorter-large +block-solar-panel-large rotate: false - xy: 2085, 329 + xy: 1951, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sorter-medium +block-solar-panel-large-large rotate: false - xy: 1325, 211 + xy: 1993, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-medium + rotate: false + xy: 1425, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sorter-small +block-solar-panel-large-small rotate: false - xy: 1860, 99 + xy: 3297, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sorter-tiny +block-solar-panel-large-tiny rotate: false - xy: 1975, 45 + xy: 3417, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sorter-xlarge +block-solar-panel-large-xlarge rotate: false xy: 1259, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spawn-large +block-solar-panel-medium rotate: false - xy: 2043, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spawn-medium - rotate: false - xy: 1325, 177 + xy: 1459, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spawn-small +block-solar-panel-small rotate: false - xy: 1886, 99 + xy: 3293, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spawn-tiny +block-solar-panel-tiny rotate: false - xy: 1993, 45 + xy: 3381, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spawn-xlarge +block-solar-panel-xlarge rotate: false xy: 1309, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spectre-large +block-sorter-large rotate: false - xy: 2085, 287 + xy: 2035, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spectre-medium +block-sorter-medium rotate: false - xy: 1359, 211 + xy: 1493, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spectre-small +block-sorter-small rotate: false - xy: 1912, 99 + xy: 3293, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spectre-tiny +block-sorter-tiny rotate: false - xy: 2011, 45 + xy: 3399, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spectre-xlarge +block-sorter-xlarge rotate: false xy: 1359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-cluster-large +block-spawn-large rotate: false - xy: 2127, 329 + xy: 2077, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-cluster-medium +block-spawn-medium rotate: false - xy: 1359, 177 + xy: 1459, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-cluster-small +block-spawn-small rotate: false - xy: 1938, 99 + xy: 3301, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-cluster-tiny +block-spawn-tiny rotate: false - xy: 2029, 45 + xy: 3367, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-cluster-xlarge +block-spawn-xlarge rotate: false xy: 1409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-moss-large +block-spectre-large rotate: false - xy: 2085, 245 + xy: 1993, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-moss-medium +block-spectre-medium rotate: false - xy: 1393, 211 + xy: 1493, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-moss-small +block-spectre-small rotate: false - xy: 1964, 99 + xy: 2599, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-moss-tiny +block-spectre-tiny rotate: false - xy: 2047, 45 + xy: 3417, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-moss-xlarge +block-spectre-xlarge rotate: false xy: 1459, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-pine-large +block-spore-cluster-large rotate: false - xy: 2127, 287 + xy: 2035, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-pine-medium +block-spore-cluster-medium rotate: false - xy: 1393, 177 + xy: 1527, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-pine-small +block-spore-cluster-small rotate: false - xy: 1990, 99 + xy: 2625, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-pine-tiny +block-spore-cluster-tiny rotate: false - xy: 2065, 45 + xy: 3385, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-pine-xlarge +block-spore-cluster-xlarge rotate: false xy: 1509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-press-large +block-spore-moss-large rotate: false - xy: 2169, 329 + xy: 2077, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-press-medium +block-spore-moss-medium rotate: false - xy: 1427, 211 + xy: 1493, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-press-small +block-spore-moss-small rotate: false - xy: 2016, 99 + xy: 2651, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-press-tiny +block-spore-moss-tiny rotate: false - xy: 2083, 45 + xy: 3403, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-press-xlarge +block-spore-moss-xlarge rotate: false xy: 1559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sporerocks-large +block-spore-pine-large rotate: false - xy: 2127, 245 + xy: 2119, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sporerocks-medium +block-spore-pine-medium rotate: false - xy: 1427, 177 + xy: 1527, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sporerocks-small +block-spore-pine-small rotate: false - xy: 2042, 99 + xy: 2677, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sporerocks-tiny +block-spore-pine-tiny rotate: false - xy: 2101, 45 + xy: 3421, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sporerocks-xlarge +block-spore-pine-xlarge rotate: false xy: 1609, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-stone-large +block-spore-press-large rotate: false - xy: 2169, 287 + xy: 2035, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-stone-medium +block-spore-press-medium rotate: false - xy: 1461, 211 + xy: 1561, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-stone-small +block-spore-press-small rotate: false - xy: 2068, 99 + xy: 2703, 200 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-stone-tiny +block-spore-press-tiny rotate: false - xy: 2119, 45 + xy: 3435, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-stone-xlarge +block-spore-press-xlarge rotate: false xy: 1659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-tower-large +block-sporerocks-large rotate: false - xy: 2211, 329 + xy: 2077, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-tower-medium +block-sporerocks-medium rotate: false - xy: 1461, 177 + xy: 1527, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-tower-small +block-sporerocks-small rotate: false - xy: 2094, 99 + xy: 2729, 200 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-tower-tiny +block-sporerocks-tiny rotate: false - xy: 2137, 45 + xy: 3435, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-tower-xlarge +block-sporerocks-xlarge rotate: false xy: 1709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-large +block-stone-large rotate: false - xy: 2169, 245 + xy: 2119, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-wall-large-large +block-stone-medium rotate: false - xy: 2211, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-medium - rotate: false - xy: 1495, 211 + xy: 1561, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-large-small +block-stone-small rotate: false - xy: 2120, 99 + xy: 3319, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-large-tiny +block-stone-tiny rotate: false - xy: 2155, 45 + xy: 3439, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-large-xlarge +block-stone-xlarge rotate: false xy: 1759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-medium +block-surge-tower-large rotate: false - xy: 1495, 177 + xy: 2161, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-tower-medium + rotate: false + xy: 1595, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-small +block-surge-tower-small rotate: false - xy: 2146, 99 + xy: 3319, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-tiny +block-surge-tower-tiny rotate: false - xy: 2173, 45 + xy: 3371, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-xlarge +block-surge-tower-xlarge rotate: false xy: 1809, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-swarmer-large +block-surge-wall-large rotate: false - xy: 2253, 329 + xy: 2077, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-swarmer-medium +block-surge-wall-large-large rotate: false - xy: 1529, 211 + xy: 2119, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-wall-large-medium + rotate: false + xy: 1561, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-swarmer-small +block-surge-wall-large-small rotate: false - xy: 2172, 99 + xy: 3323, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-swarmer-tiny +block-surge-wall-large-tiny rotate: false - xy: 2191, 45 + xy: 3371, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-swarmer-xlarge +block-surge-wall-large-xlarge rotate: false xy: 1859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-switch-large +block-surge-wall-medium rotate: false - xy: 2211, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-switch-medium - rotate: false - xy: 1529, 177 + xy: 1595, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-switch-small +block-surge-wall-small rotate: false - xy: 2198, 99 + xy: 2485, 190 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-switch-tiny +block-surge-wall-tiny rotate: false - xy: 2209, 45 + xy: 3389, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-switch-xlarge +block-surge-wall-xlarge rotate: false xy: 1909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tainted-water-large +block-swarmer-large rotate: false - xy: 2253, 287 + xy: 2161, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tainted-water-medium +block-swarmer-medium rotate: false - xy: 1563, 211 + xy: 1629, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tainted-water-small +block-swarmer-small rotate: false - xy: 2224, 99 + xy: 2485, 164 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tainted-water-tiny +block-swarmer-tiny rotate: false - xy: 2227, 45 + xy: 3371, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tainted-water-xlarge +block-swarmer-xlarge rotate: false xy: 1959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tar-large +block-switch-large rotate: false - xy: 2295, 329 + xy: 2203, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tar-medium +block-switch-medium rotate: false - xy: 1563, 177 + xy: 1595, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tar-small +block-switch-small rotate: false - xy: 2250, 99 + xy: 2511, 193 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tar-tiny +block-switch-tiny rotate: false - xy: 2245, 45 + xy: 3407, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tar-xlarge +block-switch-xlarge rotate: false xy: 2009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tendrils-large +block-tainted-water-large rotate: false - xy: 2253, 245 + xy: 2119, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tendrils-medium +block-tainted-water-medium rotate: false - xy: 1597, 211 + xy: 1629, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tendrils-small +block-tainted-water-small rotate: false - xy: 2276, 99 + xy: 2537, 193 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tendrils-tiny +block-tainted-water-tiny rotate: false - xy: 2263, 45 + xy: 3389, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tendrils-xlarge +block-tainted-water-xlarge rotate: false xy: 2059, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tetrative-reconstructor-large +block-tar-large rotate: false - xy: 2295, 287 + xy: 2161, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tetrative-reconstructor-medium +block-tar-medium rotate: false - xy: 1597, 177 + xy: 1663, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tetrative-reconstructor-small +block-tar-small rotate: false - xy: 2302, 99 + xy: 2511, 167 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tetrative-reconstructor-tiny +block-tar-tiny rotate: false - xy: 2281, 45 + xy: 3425, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tetrative-reconstructor-xlarge +block-tar-xlarge rotate: false xy: 2109, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-generator-large +block-tendrils-large rotate: false - xy: 2337, 329 + xy: 2203, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-generator-medium +block-tendrils-medium rotate: false - xy: 1631, 211 + xy: 1629, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-generator-small +block-tendrils-small rotate: false - xy: 2328, 99 + xy: 2537, 167 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-generator-tiny +block-tendrils-tiny rotate: false - xy: 2299, 45 + xy: 3407, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-generator-xlarge +block-tendrils-xlarge rotate: false xy: 2159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-pump-large +block-tetrative-reconstructor-large rotate: false - xy: 2295, 245 + xy: 2245, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-pump-medium +block-tetrative-reconstructor-medium rotate: false - xy: 1631, 177 + xy: 1663, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-pump-small +block-tetrative-reconstructor-small rotate: false - xy: 2354, 99 + xy: 3345, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-pump-tiny +block-tetrative-reconstructor-tiny rotate: false - xy: 2317, 45 + xy: 3389, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-pump-xlarge +block-tetrative-reconstructor-xlarge rotate: false xy: 2209, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-reactor-large +block-thermal-generator-large rotate: false - xy: 2337, 287 + xy: 2161, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-reactor-medium +block-thermal-generator-medium rotate: false - xy: 1665, 211 + xy: 1697, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-reactor-small +block-thermal-generator-small rotate: false - xy: 2380, 99 + xy: 3345, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-reactor-tiny +block-thermal-generator-tiny rotate: false - xy: 2335, 45 + xy: 3425, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-reactor-xlarge +block-thermal-generator-xlarge rotate: false xy: 2259, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-large +block-thermal-pump-large rotate: false - xy: 2379, 329 + xy: 2203, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-thermal-pump-medium rotate: false - xy: 2337, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thorium-wall-large-medium - rotate: false - xy: 1665, 177 + xy: 1663, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-thermal-pump-small rotate: false - xy: 2406, 99 + xy: 2492, 138 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-thermal-pump-tiny rotate: false - xy: 2353, 45 + xy: 3407, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-thermal-pump-xlarge rotate: false xy: 2309, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium +block-thorium-reactor-large rotate: false - xy: 1699, 211 + xy: 2245, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-reactor-medium + rotate: false + xy: 1697, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-small +block-thorium-reactor-small rotate: false - xy: 2432, 99 + xy: 2492, 112 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-tiny +block-thorium-reactor-tiny rotate: false - xy: 2371, 45 + xy: 3425, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-xlarge +block-thorium-reactor-xlarge rotate: false xy: 2359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thruster-large +block-thorium-wall-large rotate: false - xy: 2379, 287 + xy: 2287, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium +block-thorium-wall-large-large rotate: false - xy: 1699, 177 + xy: 2203, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-medium + rotate: false + xy: 1731, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thruster-small +block-thorium-wall-large-small rotate: false - xy: 2458, 99 + xy: 2492, 86 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thruster-tiny +block-thorium-wall-large-tiny rotate: false - xy: 2389, 45 + xy: 3443, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thruster-xlarge +block-thorium-wall-large-xlarge rotate: false xy: 2409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-conveyor-large +block-thorium-wall-medium rotate: false - xy: 2421, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-conveyor-medium - rotate: false - xy: 1733, 211 + xy: 1697, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-thorium-wall-small rotate: false - xy: 2484, 99 + xy: 2518, 141 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-thorium-wall-tiny rotate: false - xy: 2407, 45 + xy: 3443, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-thorium-wall-xlarge rotate: false xy: 2459, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-thruster-large rotate: false - xy: 2379, 245 + xy: 2245, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-large +block-thruster-medium rotate: false - xy: 2421, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-wall-large-medium - rotate: false - xy: 1733, 177 + xy: 1731, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-large-small +block-thruster-small rotate: false - xy: 2510, 99 + xy: 2518, 115 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-large-tiny +block-thruster-tiny rotate: false - xy: 2425, 45 + xy: 3443, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-large-xlarge +block-thruster-xlarge rotate: false xy: 2509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-medium +block-titanium-conveyor-large rotate: false - xy: 1767, 211 + xy: 2287, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-conveyor-medium + rotate: false + xy: 1765, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-small +block-titanium-conveyor-small rotate: false - xy: 2536, 99 + xy: 2518, 89 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-tiny +block-titanium-conveyor-tiny rotate: false - xy: 2443, 45 + xy: 3393, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-xlarge +block-titanium-conveyor-xlarge rotate: false xy: 2559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-turbine-generator-large +block-titanium-wall-large rotate: false - xy: 2463, 329 + xy: 2329, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-turbine-generator-medium +block-titanium-wall-large-large rotate: false - xy: 1767, 177 + xy: 2245, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-medium + rotate: false + xy: 1731, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-turbine-generator-small +block-titanium-wall-large-small rotate: false - xy: 2562, 99 + xy: 2544, 141 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-turbine-generator-tiny +block-titanium-wall-large-tiny rotate: false - xy: 2461, 45 + xy: 3393, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-turbine-generator-xlarge +block-titanium-wall-large-xlarge rotate: false xy: 2609, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-underflow-gate-large +block-titanium-wall-medium rotate: false - xy: 2421, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-underflow-gate-medium - rotate: false - xy: 1801, 211 + xy: 1765, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-underflow-gate-small +block-titanium-wall-small rotate: false - xy: 2588, 99 + xy: 2544, 115 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-underflow-gate-tiny +block-titanium-wall-tiny rotate: false - xy: 2479, 45 + xy: 3411, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-underflow-gate-xlarge +block-titanium-wall-xlarge rotate: false xy: 2659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-unloader-large +block-turbine-generator-large rotate: false - xy: 2463, 287 + xy: 2287, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-unloader-medium +block-turbine-generator-medium rotate: false - xy: 1801, 177 + xy: 1799, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-unloader-small +block-turbine-generator-small rotate: false - xy: 2614, 99 + xy: 2544, 89 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-unloader-tiny +block-turbine-generator-tiny rotate: false - xy: 2497, 45 + xy: 3393, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-unloader-xlarge +block-turbine-generator-xlarge rotate: false xy: 2709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-vault-large +block-underflow-gate-large rotate: false - xy: 2505, 329 + xy: 2329, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-vault-medium +block-underflow-gate-medium rotate: false - xy: 1835, 211 + xy: 1765, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-underflow-gate-small rotate: false - xy: 2640, 99 + xy: 2492, 60 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-underflow-gate-tiny rotate: false - xy: 2515, 45 + xy: 3411, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-underflow-gate-xlarge rotate: false xy: 2759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large +block-unloader-large rotate: false - xy: 2463, 245 + xy: 2371, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-extractor-medium +block-unloader-medium rotate: false - xy: 1835, 177 + xy: 1799, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-extractor-small +block-unloader-small rotate: false - xy: 2666, 99 + xy: 2518, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-extractor-tiny +block-unloader-tiny rotate: false - xy: 2533, 45 + xy: 3429, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-extractor-xlarge +block-unloader-xlarge rotate: false xy: 2809, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-large +block-vault-large rotate: false - xy: 2505, 287 + xy: 2287, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-medium +block-vault-medium rotate: false - xy: 1869, 211 + xy: 1833, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-small +block-vault-small rotate: false - xy: 2692, 99 + xy: 2544, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-tiny +block-vault-tiny rotate: false - xy: 2551, 45 + xy: 3393, 147 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-xlarge +block-vault-xlarge rotate: false xy: 2859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-wave-large +block-water-extractor-large rotate: false - xy: 2547, 329 + xy: 2329, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wave-medium +block-water-extractor-medium rotate: false - xy: 1869, 177 + xy: 1799, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-water-extractor-small rotate: false - xy: 2718, 99 + xy: 2518, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-water-extractor-tiny rotate: false - xy: 2569, 45 + xy: 3411, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-water-extractor-xlarge rotate: false xy: 2909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large +block-water-large rotate: false - xy: 2505, 245 + xy: 2371, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-dead-medium +block-water-medium rotate: false - xy: 1903, 211 + xy: 1833, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-dead-small +block-water-small rotate: false - xy: 2744, 99 + xy: 2544, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-dead-tiny +block-water-tiny rotate: false - xy: 2587, 45 + xy: 3429, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-dead-xlarge +block-water-xlarge rotate: false xy: 2959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-large +block-wave-large rotate: false - xy: 2547, 287 + xy: 2413, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-medium +block-wave-medium rotate: false - xy: 1903, 177 + xy: 1867, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-small +block-wave-small rotate: false - xy: 1025, 73 + xy: 3159, 204 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-tiny +block-wave-tiny rotate: false - xy: 2605, 45 + xy: 3411, 147 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-xlarge +block-wave-xlarge rotate: false xy: 3009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-white-tree-dead-large + rotate: false + xy: 2329, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-dead-medium + rotate: false + xy: 1833, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-dead-small + rotate: false + xy: 3185, 204 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-dead-tiny + rotate: false + xy: 3429, 165 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-dead-xlarge + rotate: false + xy: 3059, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-large + rotate: false + xy: 2371, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-medium + rotate: false + xy: 1867, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-small + rotate: false + xy: 3211, 199 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-tiny + rotate: false + xy: 3429, 147 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-xlarge + rotate: false + xy: 3109, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 button rotate: false - xy: 3153, 342 + xy: 3027, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17620,7 +17697,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 2925, 342 + xy: 4059, 397 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17628,7 +17705,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 2883, 258 + xy: 2413, 216 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17636,7 +17713,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 2925, 313 + xy: 2749, 300 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17644,7 +17721,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 2963, 342 + xy: 2581, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17652,7 +17729,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 2963, 313 + xy: 2875, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17660,7 +17737,7 @@ button-over index: -1 button-red rotate: false - xy: 3001, 342 + xy: 2451, 216 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17668,7 +17745,7 @@ button-red index: -1 button-right rotate: false - xy: 3039, 313 + xy: 2913, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17676,7 +17753,7 @@ button-right index: -1 button-right-down rotate: false - xy: 3001, 313 + xy: 2787, 300 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17684,7 +17761,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 3039, 342 + xy: 2619, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17692,7 +17769,7 @@ button-right-over index: -1 button-select rotate: false - xy: 1025, 47 + xy: 3159, 178 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -17700,7 +17777,7 @@ button-select index: -1 button-square rotate: false - xy: 3115, 342 + xy: 2951, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17708,7 +17785,7 @@ button-square index: -1 button-square-down rotate: false - xy: 3077, 342 + xy: 2825, 300 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17716,7 +17793,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 3077, 313 + xy: 2657, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17724,7 +17801,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 3115, 313 + xy: 2989, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17732,42 +17809,42 @@ button-trans index: -1 check-disabled rotate: false - xy: 1937, 211 + xy: 1901, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1937, 177 + xy: 1867, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1971, 211 + xy: 1901, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1971, 177 + xy: 1935, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 2005, 211 + xy: 1901, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 2005, 177 + xy: 1935, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -17781,14 +17858,14 @@ clear index: -1 crater rotate: false - xy: 881, 159 + xy: 3239, 393 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 cursor rotate: false - xy: 881, 153 + xy: 2749, 294 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -17802,7 +17879,7 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 3153, 313 + xy: 3065, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17817,7 +17894,7 @@ info-banner index: -1 inventory rotate: false - xy: 1051, 57 + xy: 3185, 162 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -17825,147 +17902,147 @@ inventory index: -1 item-blast-compound-icon rotate: false - xy: 2039, 211 + xy: 1969, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-icon rotate: false - xy: 2039, 177 + xy: 1935, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-icon rotate: false - xy: 2073, 211 + xy: 1969, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-icon rotate: false - xy: 2073, 177 + xy: 2003, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-icon rotate: false - xy: 2107, 211 + xy: 1969, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-icon rotate: false - xy: 2107, 177 + xy: 2003, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-icon rotate: false - xy: 2141, 211 + xy: 2037, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-icon rotate: false - xy: 2141, 177 + xy: 2003, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-icon rotate: false - xy: 2175, 211 + xy: 2037, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-icon rotate: false - xy: 2175, 177 + xy: 2071, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-icon rotate: false - xy: 2209, 211 + xy: 2037, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-icon rotate: false - xy: 2209, 177 + xy: 2071, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-icon rotate: false - xy: 2243, 211 + xy: 2105, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-icon rotate: false - xy: 2243, 177 + xy: 2071, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-icon rotate: false - xy: 2277, 211 + xy: 2105, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-icon rotate: false - xy: 2277, 177 + xy: 2139, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-icon rotate: false - xy: 2311, 211 + xy: 2105, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-icon rotate: false - xy: 2311, 177 + xy: 2139, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-icon rotate: false - xy: 2345, 211 + xy: 2173, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-icon rotate: false - xy: 2345, 177 + xy: 2139, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-node rotate: false - xy: 2379, 211 + xy: 2173, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -17986,7 +18063,7 @@ nomap index: -1 pane rotate: false - xy: 3191, 313 + xy: 3141, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17994,7 +18071,7 @@ pane index: -1 pane-2 rotate: false - xy: 3191, 342 + xy: 3103, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18002,7 +18079,7 @@ pane-2 index: -1 scroll rotate: false - xy: 1103, 62 + xy: 3237, 174 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -18010,7 +18087,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 923, 1 + xy: 3622, 397 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -18018,56 +18095,56 @@ scroll-horizontal index: -1 scroll-knob-horizontal-black rotate: false - xy: 881, 1 + xy: 859, 177 size: 40, 24 orig: 40, 24 offset: 0, 0 index: -1 scroll-knob-vertical-black rotate: false - xy: 1077, 57 + xy: 3211, 157 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 845, 390 + xy: 3461, 241 size: 12, 40 orig: 12, 40 offset: 0, 0 index: -1 selection rotate: false - xy: 2818, 208 + xy: 821, 463 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 3333, 303 + xy: 3656, 387 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 2787, 171 + xy: 3183, 268 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 2821, 205 + xy: 3590, 331 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 2852, 205 + xy: 3214, 263 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -18081,7 +18158,7 @@ slider-vertical index: -1 underline rotate: false - xy: 3305, 342 + xy: 1015, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18089,7 +18166,7 @@ underline index: -1 underline-2 rotate: false - xy: 3229, 342 + xy: 3179, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18097,7 +18174,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 3229, 313 + xy: 901, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18105,7 +18182,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 3267, 342 + xy: 939, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18113,7 +18190,7 @@ underline-red index: -1 underline-white rotate: false - xy: 3267, 313 + xy: 977, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18121,847 +18198,847 @@ underline-white index: -1 unit-alpha-large rotate: false - xy: 2589, 329 + xy: 2413, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-alpha-medium rotate: false - xy: 2379, 177 + xy: 2207, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-alpha-small rotate: false - xy: 1129, 73 + xy: 3237, 148 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-alpha-tiny rotate: false - xy: 2623, 45 + xy: 3447, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-alpha-xlarge rotate: false - xy: 3059, 413 + xy: 3159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-antumbra-large rotate: false - xy: 2547, 245 - size: 40, 40 - orig: 40, 40 + xy: 821, 421 + size: 36, 40 + orig: 36, 40 offset: 0, 0 index: -1 unit-antumbra-medium rotate: false - xy: 2413, 211 - size: 32, 32 - orig: 32, 32 + xy: 3621, 329 + size: 28, 32 + orig: 28, 32 offset: 0, 0 index: -1 unit-antumbra-small rotate: false - xy: 1155, 73 - size: 24, 24 - orig: 24, 24 + xy: 2353, 41 + size: 21, 24 + orig: 21, 24 offset: 0, 0 index: -1 unit-antumbra-tiny rotate: false - xy: 2641, 45 - size: 16, 16 - orig: 16, 16 + xy: 2843, 144 + size: 14, 16 + orig: 14, 16 offset: 0, 0 index: -1 unit-antumbra-xlarge rotate: false - xy: 3109, 413 - size: 48, 48 - orig: 48, 48 + xy: 3409, 363 + size: 43, 48 + orig: 43, 48 offset: 0, 0 index: -1 unit-arkyid-large rotate: false - xy: 2589, 287 + xy: 2455, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-arkyid-medium rotate: false - xy: 2413, 177 + xy: 2173, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-arkyid-small rotate: false - xy: 1181, 73 + xy: 3263, 185 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-arkyid-tiny rotate: false - xy: 2659, 45 + xy: 3447, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-arkyid-xlarge rotate: false - xy: 3159, 413 + xy: 3209, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-atrax-large rotate: false - xy: 2631, 329 - size: 40, 40 - orig: 40, 40 + xy: 2371, 214 + size: 40, 29 + orig: 40, 29 offset: 0, 0 index: -1 unit-atrax-medium rotate: false - xy: 2447, 211 - size: 32, 32 - orig: 32, 32 + xy: 1085, 42 + size: 32, 23 + orig: 32, 23 offset: 0, 0 index: -1 unit-atrax-small rotate: false - xy: 1207, 73 - size: 24, 24 - orig: 24, 24 + xy: 3263, 166 + size: 24, 17 + orig: 24, 17 offset: 0, 0 index: -1 unit-atrax-tiny rotate: false - xy: 2677, 45 - size: 16, 16 - orig: 16, 16 + xy: 2563, 170 + size: 16, 11 + orig: 16, 11 offset: 0, 0 index: -1 unit-atrax-xlarge rotate: false - xy: 3209, 413 - size: 48, 48 - orig: 48, 48 + xy: 3259, 427 + size: 48, 34 + orig: 48, 34 offset: 0, 0 index: -1 unit-beta-large rotate: false - xy: 2589, 245 + xy: 2413, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-beta-medium rotate: false - xy: 2447, 177 + xy: 2207, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-beta-small rotate: false - xy: 1233, 73 + xy: 3289, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-beta-tiny rotate: false - xy: 2695, 45 + xy: 3447, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-beta-xlarge rotate: false - xy: 3259, 413 + xy: 3309, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-large rotate: false - xy: 2631, 287 + xy: 2455, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-bryde-medium rotate: false - xy: 2481, 211 + xy: 2241, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-bryde-small rotate: false - xy: 1259, 73 + xy: 3315, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-bryde-tiny rotate: false - xy: 2713, 45 + xy: 3447, 147 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-bryde-xlarge rotate: false - xy: 3309, 413 + xy: 3359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-crawler-large rotate: false - xy: 2673, 329 + xy: 2497, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-crawler-medium rotate: false - xy: 2481, 177 + xy: 2207, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-crawler-small rotate: false - xy: 1285, 73 + xy: 3341, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-crawler-tiny rotate: false - xy: 2731, 45 + xy: 3453, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-crawler-xlarge rotate: false - xy: 3359, 413 + xy: 3409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-large rotate: false - xy: 2631, 245 + xy: 2455, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-dagger-medium rotate: false - xy: 2515, 211 + xy: 2241, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-dagger-small rotate: false - xy: 1311, 73 + xy: 3289, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-dagger-tiny rotate: false - xy: 2749, 45 + xy: 3453, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-dagger-xlarge rotate: false - xy: 3409, 413 + xy: 3459, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eclipse-large rotate: false - xy: 2673, 287 + xy: 2497, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-eclipse-medium rotate: false - xy: 2515, 177 + xy: 2275, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-eclipse-small rotate: false - xy: 1337, 73 + xy: 3315, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-eclipse-tiny rotate: false - xy: 2767, 45 + xy: 3471, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-eclipse-xlarge rotate: false - xy: 3459, 413 + xy: 3509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-large rotate: false - xy: 2715, 329 + xy: 2539, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-flare-medium rotate: false - xy: 2549, 211 + xy: 2241, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-flare-small rotate: false - xy: 1363, 73 + xy: 3341, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-flare-tiny rotate: false - xy: 2902, 180 + xy: 3471, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-flare-xlarge rotate: false - xy: 3509, 413 + xy: 3559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-large rotate: false - xy: 2673, 245 - size: 40, 40 - orig: 40, 40 + xy: 2497, 253 + size: 40, 32 + orig: 40, 32 offset: 0, 0 index: -1 unit-fortress-medium rotate: false - xy: 2549, 177 - size: 32, 32 - orig: 32, 32 + xy: 2275, 108 + size: 32, 25 + orig: 32, 25 offset: 0, 0 index: -1 unit-fortress-small rotate: false - xy: 1389, 73 - size: 24, 24 - orig: 24, 24 + xy: 3263, 145 + size: 24, 19 + orig: 24, 19 offset: 0, 0 index: -1 unit-fortress-tiny rotate: false - xy: 2902, 162 - size: 16, 16 - orig: 16, 16 + xy: 1273, 1 + size: 16, 12 + orig: 16, 12 offset: 0, 0 index: -1 unit-fortress-xlarge rotate: false - xy: 3559, 413 - size: 48, 48 - orig: 48, 48 + xy: 3609, 423 + size: 48, 38 + orig: 48, 38 offset: 0, 0 index: -1 unit-gamma-large rotate: false - xy: 2715, 287 + xy: 2539, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-gamma-medium rotate: false - xy: 2583, 211 + xy: 2309, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-gamma-small rotate: false - xy: 1415, 73 + xy: 3289, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-gamma-tiny rotate: false - xy: 1035, 11 + xy: 3489, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-gamma-xlarge rotate: false - xy: 3609, 413 + xy: 3659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-horizon-large rotate: false - xy: 2757, 329 + xy: 2581, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-horizon-medium rotate: false - xy: 2583, 177 + xy: 2275, 74 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-horizon-small rotate: false - xy: 1441, 73 + xy: 3315, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-horizon-tiny rotate: false - xy: 1053, 21 + xy: 3489, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-horizon-xlarge rotate: false - xy: 3659, 413 + xy: 3709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mace-large rotate: false - xy: 2715, 245 + xy: 2581, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mace-medium rotate: false - xy: 2617, 211 + xy: 2309, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mace-small rotate: false - xy: 1467, 73 + xy: 3341, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mace-tiny rotate: false - xy: 1071, 21 + xy: 3507, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mace-xlarge rotate: false - xy: 3709, 413 + xy: 3759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mega-large rotate: false - xy: 2757, 287 + xy: 2623, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mega-medium rotate: false - xy: 2617, 177 + xy: 2343, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mega-small rotate: false - xy: 1493, 73 + xy: 3367, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mega-tiny rotate: false - xy: 1089, 21 + xy: 3507, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mega-xlarge rotate: false - xy: 3759, 413 + xy: 3809, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-minke-large rotate: false - xy: 2799, 329 + xy: 2623, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-minke-medium rotate: false - xy: 2651, 211 + xy: 2343, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-minke-small rotate: false - xy: 1519, 73 + xy: 3367, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-minke-tiny rotate: false - xy: 1107, 26 + xy: 3525, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-minke-xlarge rotate: false - xy: 3809, 413 + xy: 3859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mono-large rotate: false - xy: 2757, 245 + xy: 2665, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mono-medium rotate: false - xy: 2651, 177 + xy: 2377, 112 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mono-small rotate: false - xy: 1545, 73 + xy: 3367, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mono-tiny rotate: false - xy: 1053, 3 + xy: 3525, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mono-xlarge rotate: false - xy: 3859, 413 + xy: 3909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-large rotate: false - xy: 2799, 287 + xy: 2665, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-nova-medium rotate: false - xy: 2685, 211 + xy: 2309, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-nova-small rotate: false - xy: 1571, 73 + xy: 2703, 174 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-nova-tiny rotate: false - xy: 1071, 3 + xy: 3543, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-nova-xlarge rotate: false - xy: 3909, 413 + xy: 3959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-poly-large rotate: false - xy: 2841, 329 + xy: 2707, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-poly-medium rotate: false - xy: 2685, 177 + xy: 2343, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-poly-small rotate: false - xy: 1597, 73 + xy: 2729, 174 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-poly-tiny rotate: false - xy: 1089, 3 + xy: 3543, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-poly-xlarge rotate: false - xy: 3959, 413 + xy: 4009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-pulsar-large rotate: false - xy: 2799, 245 - size: 40, 40 - orig: 40, 40 + xy: 2707, 294 + size: 40, 33 + orig: 40, 33 offset: 0, 0 index: -1 unit-pulsar-medium rotate: false - xy: 2719, 211 - size: 32, 32 - orig: 32, 32 + xy: 2377, 84 + size: 32, 26 + orig: 32, 26 offset: 0, 0 index: -1 unit-pulsar-small rotate: false - xy: 1623, 73 - size: 24, 24 - orig: 24, 24 + xy: 2755, 187 + size: 24, 19 + orig: 24, 19 offset: 0, 0 index: -1 unit-pulsar-tiny rotate: false - xy: 1107, 8 - size: 16, 16 - orig: 16, 16 + xy: 1, 1 + size: 16, 13 + orig: 16, 13 offset: 0, 0 index: -1 unit-pulsar-xlarge rotate: false - xy: 4009, 413 - size: 48, 48 - orig: 48, 48 + xy: 131, 5 + size: 48, 39 + orig: 48, 39 offset: 0, 0 index: -1 unit-quasar-large rotate: false - xy: 2841, 287 + xy: 2749, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-quasar-medium rotate: false - xy: 2719, 177 + xy: 1119, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-quasar-small rotate: false - xy: 1649, 73 + xy: 2755, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-quasar-tiny rotate: false - xy: 4067, 408 + xy: 3561, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-quasar-xlarge rotate: false - xy: 859, 363 + xy: 3259, 377 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-risso-large rotate: false - xy: 2883, 329 + xy: 2791, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-risso-medium rotate: false - xy: 2753, 211 + xy: 1153, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-risso-small rotate: false - xy: 1675, 73 + xy: 2781, 162 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-risso-tiny rotate: false - xy: 4067, 390 + xy: 3561, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-risso-xlarge rotate: false - xy: 859, 313 + xy: 3309, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-spiroct-large rotate: false - xy: 2841, 245 - size: 40, 40 - orig: 40, 40 + xy: 2539, 254 + size: 40, 31 + orig: 40, 31 offset: 0, 0 index: -1 unit-spiroct-medium rotate: false - xy: 2753, 177 - size: 32, 32 - orig: 32, 32 + xy: 1221, 40 + size: 31, 25 + orig: 31, 25 offset: 0, 0 index: -1 unit-spiroct-small rotate: false - xy: 1701, 73 - size: 24, 24 - orig: 24, 24 + xy: 2807, 167 + size: 24, 19 + orig: 24, 19 offset: 0, 0 index: -1 unit-spiroct-tiny rotate: false - xy: 4067, 372 - size: 16, 16 - orig: 16, 16 + xy: 1291, 1 + size: 15, 12 + orig: 15, 12 offset: 0, 0 index: -1 unit-spiroct-xlarge rotate: false - xy: 909, 363 - size: 48, 48 - orig: 48, 48 + xy: 181, 6 + size: 48, 38 + orig: 48, 38 offset: 0, 0 index: -1 unit-zenith-large rotate: false - xy: 2883, 287 + xy: 2833, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-zenith-medium rotate: false - xy: 2787, 211 + xy: 1187, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-zenith-small rotate: false - xy: 1727, 73 + xy: 2833, 162 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-zenith-tiny rotate: false - xy: 2920, 193 + xy: 3457, 283 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-zenith-xlarge rotate: false - xy: 859, 263 + xy: 3359, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-pane rotate: false - xy: 3305, 313 + xy: 1053, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18969,14 +19046,14 @@ white-pane index: -1 whiteui rotate: false - xy: 960, 22 + xy: 845, 366 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 999, 106 + xy: 2411, 83 size: 27, 61 split: 4, 4, 2, 2 orig: 27, 61 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 1f1fa5ce2d..bc3ae33db7 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites2.png b/core/assets/sprites/sprites2.png index a9891ea662..dad64fba80 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/assets/sprites/sprites4.png b/core/assets/sprites/sprites4.png index d39bf90014..70f9cea236 100644 Binary files a/core/assets/sprites/sprites4.png and b/core/assets/sprites/sprites4.png differ diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index 9822452c36..181928f70c 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/mindustry/ai/BaseAI.java b/core/src/mindustry/ai/BaseAI.java index df2fc26302..83f393cc83 100644 --- a/core/src/mindustry/ai/BaseAI.java +++ b/core/src/mindustry/ai/BaseAI.java @@ -63,6 +63,7 @@ public class BaseAI{ int range = 150; Position pos = randomPosition(); + //when there are no random positions, do nothing. if(pos == null) return; @@ -159,7 +160,10 @@ public class BaseAI{ private void tryWalls(){ Block wall = Blocks.copperWall; - Tile spawn = state.rules.defaultTeam.core() != null ? state.rules.defaultTeam.core().tile : data.team.core().tile; + Building spawnt = state.rules.defaultTeam.core() != null ? state.rules.defaultTeam.core() : data.team.core(); + Tile spawn = spawnt == null ? null : spawnt.tile; + + if(spawn == null) return; for(int wx = lastX; wx <= lastX + lastW; wx++){ for(int wy = lastY; wy <= lastY + lastH; wy++){ diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index 5931068c48..26ec43e74b 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -185,7 +185,7 @@ public class BlockIndexer{ if(other == null) continue; - if(other.team() == team && pred.get(other) && intSet.add(other.pos())){ + if(other.team == team && pred.get(other) && intSet.add(other.pos())){ cons.get(other); any = true; } @@ -212,11 +212,11 @@ public class BlockIndexer{ } public void notifyTileDamaged(Building entity){ - if(damagedTiles[entity.team().id] == null){ - damagedTiles[entity.team().id] = new BuildingArray(); + if(damagedTiles[entity.team.id] == null){ + damagedTiles[entity.team.id] = new BuildingArray(); } - damagedTiles[entity.team().id].add(entity); + damagedTiles[entity.team.id].add(entity); } public Building findEnemyTile(Team team, float x, float y, float range, Boolf pred){ @@ -251,7 +251,7 @@ public class BlockIndexer{ if(e == null) continue; - if(e.team() != team || !pred.get(e) || !e.block().targetable) + if(e.team != team || !pred.get(e) || !e.block().targetable) continue; float ndst = e.dst2(x, y); @@ -390,7 +390,7 @@ public class BlockIndexer{ for(int y = quadrantY * quadrantSize; y < world.height() && y < (quadrantY + 1) * quadrantSize; y++){ Building result = world.build(x, y); //when a targetable block is found, mark this quadrant as occupied and stop searching - if(result != null && result.team() == team){ + if(result != null && result.team == team){ bits.set(quadrantX, quadrantY); break outer; } diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java index 09060fd33d..4ac1b4d8f8 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -99,7 +99,7 @@ public class WaveSpawner{ private void eachFlyerSpawn(Floatc2 cons){ for(Tile tile : spawns){ - float angle = Angles.angle(tile.x, tile.y, world.width() / 2, world.height() / 2); + float angle = Angles.angle(world.width() / 2, world.height() / 2, tile.x, tile.y); float trns = Math.max(world.width(), world.height()) * Mathf.sqrt2 * tilesize; float spawnX = Mathf.clamp(world.width() * tilesize / 2f + Angles.trnsx(angle, trns), -margin, world.width() * tilesize + margin); diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java index 479e2ce817..6f4eae425f 100644 --- a/core/src/mindustry/ai/types/FlyingAI.java +++ b/core/src/mindustry/ai/types/FlyingAI.java @@ -6,6 +6,8 @@ import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.world.meta.*; +import static mindustry.Vars.*; + public class FlyingAI extends AIController{ @Override @@ -18,7 +20,7 @@ public class FlyingAI extends AIController{ unit.wobble(); } - if(target != null && unit.hasWeapons()){ + if(target != null && unit.hasWeapons() && command() == UnitCommand.attack){ if(unit.type().weapons.first().rotate){ moveTo(target, unit.range() * 0.8f); unit.lookAt(target); @@ -26,6 +28,15 @@ public class FlyingAI extends AIController{ attack(80f); } } + + if(target == null && command() == UnitCommand.attack && state.rules.waves && unit.team == state.rules.defaultTeam){ + moveTo(getClosestSpawner(), state.rules.dropZoneRadius + 120f); + } + + if(command() == UnitCommand.rally){ + target = targetFlag(unit.x, unit.y, BlockFlag.rally, false); + moveTo(target, 60f); + } } @Override diff --git a/core/src/mindustry/ai/types/GroundAI.java b/core/src/mindustry/ai/types/GroundAI.java index 6cebf43913..888d8a3418 100644 --- a/core/src/mindustry/ai/types/GroundAI.java +++ b/core/src/mindustry/ai/types/GroundAI.java @@ -1,31 +1,55 @@ package mindustry.ai.types; +import arc.math.*; import mindustry.ai.Pathfinder.*; import mindustry.entities.*; import mindustry.entities.units.*; import mindustry.game.*; import mindustry.gen.*; import mindustry.world.*; +import mindustry.world.meta.*; -import static mindustry.Vars.pathfinder; +import java.util.*; + +import static mindustry.Vars.*; public class GroundAI extends AIController{ + //static final float commandCooldown = 60f * 10; + //float commandTimer = 60*3; @Override public void updateMovement(){ Building core = unit.closestEnemyCore(); - if(core != null){ - if(unit.within(core,unit.range() / 1.1f)){ - target = core; + if(core != null && unit.within(core, unit.range() / 1.1f + core.block.size * tilesize / 2f)){ + target = core; + Arrays.fill(targets, core); + } + + if((core == null || !unit.within(core, unit.range() * 0.5f)) && command() == UnitCommand.attack){ + boolean move = true; + + if(state.rules.waves && unit.team == state.rules.defaultTeam){ + Tile spawner = getClosestSpawner(); + if(spawner != null && unit.within(spawner, state.rules.dropZoneRadius + 120f)) move = false; } - if(!unit.within(core, unit.range() * 0.5f)){ - moveToCore(FlagTarget.enemyCores); + if(move) moveToCore(FlagTarget.enemyCores); + } + + if(command() == UnitCommand.rally){ + Teamc target = targetFlag(unit.x, unit.y, BlockFlag.rally, false); + + if(target != null && !unit.within(target, 70f)){ + moveToCore(FlagTarget.rallyPoints); } } + if(unit.type().canBoost){ + unit.elevation = Mathf.approachDelta(unit.elevation, 0f, 0.08f); + } + if(!Units.invalidateTarget(target, unit, unit.range())){ if(unit.type().hasWeapons()){ unit.aimLook(Predict.intercept(unit, target, unit.type().weapons.first().bullet.speed)); @@ -33,12 +57,27 @@ public class GroundAI extends AIController{ }else if(unit.moving()){ unit.lookAt(unit.vel().angle()); } + + //auto-command works but it's very buggy + /* + if(unit instanceof Commanderc){ + Commanderc c = (Commanderc)unit; + //try to command when missing members + if(c.controlling().size <= unit.type().commandLimit/2){ + commandTimer -= Time.delta; + + if(commandTimer <= 0){ + c.commandNearby(new SquareFormation(), u -> !(u.controller() instanceof FormationAI) && !(u instanceof Commanderc)); + commandTimer = commandCooldown; + } + } + }*/ } protected void moveToCore(FlagTarget path){ Tile tile = unit.tileOn(); if(tile == null) return; - Tile targetTile = pathfinder.getTargetTile(tile, unit.team(), path); + Tile targetTile = pathfinder.getTargetTile(tile, unit.team, path); if(tile == targetTile) return; diff --git a/core/src/mindustry/ai/types/SuicideAI.java b/core/src/mindustry/ai/types/SuicideAI.java index 354b90f8b3..275bc68204 100644 --- a/core/src/mindustry/ai/types/SuicideAI.java +++ b/core/src/mindustry/ai/types/SuicideAI.java @@ -39,7 +39,7 @@ public class SuicideAI extends GroundAI{ boolean blocked = Vars.world.raycast(unit.tileX(), unit.tileY(), target.tileX(), target.tileY(), (x, y) -> { Tile tile = Vars.world.tile(x, y); if(tile != null && tile.build == target) return false; - if(tile != null && tile.build != null && tile.build.team() != unit.team()){ + if(tile != null && tile.build != null && tile.build.team != unit.team()){ blockedByBlock = true; return true; }else{ diff --git a/core/src/mindustry/async/PhysicsProcess.java b/core/src/mindustry/async/PhysicsProcess.java index 6f34189af2..5e8b1be923 100644 --- a/core/src/mindustry/async/PhysicsProcess.java +++ b/core/src/mindustry/async/PhysicsProcess.java @@ -1,6 +1,5 @@ package mindustry.async; -import arc.*; import arc.box2d.*; import arc.box2d.BodyDef.*; import arc.math.geom.*; @@ -98,7 +97,7 @@ public class PhysicsProcess implements AsyncProcess{ ref.lastVelocity.set(ref.velocity); } - physics.step(Core.graphics.getDeltaTime(), 5, 8); + physics.step(1f/45f, 5, 8); //get delta vectors for(PhysicRef ref : refs){ diff --git a/core/src/mindustry/audio/MusicControl.java b/core/src/mindustry/audio/MusicControl.java index afb48a8d59..1b642bc7cd 100644 --- a/core/src/mindustry/audio/MusicControl.java +++ b/core/src/mindustry/audio/MusicControl.java @@ -19,6 +19,7 @@ public class MusicControl{ public Seq ambientMusic = Seq.with(); /** darker music, used in times of conflict */ public Seq darkMusic = Seq.with(); + protected Music lastRandomPlayed; protected Interval timer = new Interval(); protected @Nullable Music current; diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 80bc7d2fb8..2b4da903c4 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -19,7 +19,6 @@ import mindustry.world.blocks.experimental.*; import mindustry.world.blocks.legacy.*; import mindustry.world.blocks.liquid.*; import mindustry.world.blocks.logic.*; -import mindustry.world.blocks.logic.MessageBlock; import mindustry.world.blocks.power.*; import mindustry.world.blocks.production.*; import mindustry.world.blocks.sandbox.*; @@ -78,12 +77,13 @@ public class Blocks implements ContentList{ duo, scatter, scorch, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown, segment, parallax, //units + commandCenter, groundFactory, airFactory, navalFactory, additiveReconstructor, multiplicativeReconstructor, exponentialReconstructor, tetrativeReconstructor, repairPoint, resupplyPoint, //logic - message, switchBlock, microProcessor, logicProcessor, logicDisplay, memoryCell, + message, switchBlock, microProcessor, logicProcessor, hyperProcessor, logicDisplay, memoryCell, //campaign launchPad, launchPadLarge, @@ -270,7 +270,7 @@ public class Blocks implements ContentList{ }}; grass = new Floor("grass"){{ - + attributes.set(Attribute.water, 0.1f); }}; salt = new Floor("salt"){{ @@ -908,6 +908,7 @@ public class Blocks implements ContentList{ health = 45; speed = 0.03f; displayedSpeed = 4.2f; + buildCostMultiplier = 2f; }}; titaniumConveyor = new Conveyor("titanium-conveyor"){{ @@ -995,12 +996,14 @@ public class Blocks implements ContentList{ consumes.power(1.75f); }}; - payloadConveyor = new PayloadConveyor("mass-conveyor"){{ - requirements(Category.distribution, with(Items.copper, 1)); + payloadConveyor = new PayloadConveyor("payload-conveyor"){{ + requirements(Category.distribution, with(Items.graphite, 10, Items.copper, 20)); + canOverdrive = false; }}; payloadRouter = new PayloadRouter("payload-router"){{ - requirements(Category.distribution, with(Items.copper, 1)); + requirements(Category.distribution, with(Items.graphite, 15, Items.copper, 20)); + canOverdrive = false; }}; //endregion @@ -1338,7 +1341,7 @@ public class Blocks implements ContentList{ unloader = new Unloader("unloader"){{ requirements(Category.effect, with(Items.titanium, 25, Items.silicon, 30)); - speed = 7f; + speed = 6f; }}; //endregion @@ -1485,7 +1488,7 @@ public class Blocks implements ContentList{ reloadTime = 35f; shootCone = 40f; rotatespeed = 8f; - powerUse = 5f; + powerUse = 4f; targetAir = false; range = 90f; shootEffect = Fx.lightningShoot; @@ -1501,8 +1504,8 @@ public class Blocks implements ContentList{ hasPower = true; size = 2; - force = 2.5f; - scaledForce = 5f; + force = 3f; + scaledForce = 5.5f; range = 170f; damage = 0.08f; health = 160 * size * size; @@ -1555,14 +1558,14 @@ public class Blocks implements ContentList{ }}; segment = new PointDefenseTurret("segment"){{ - requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 50)); + requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 25)); hasPower = true; consumes.power(3f); size = 2; shootLength = 5f; bulletDamage = 12f; - reloadTime = 25f; + reloadTime = 20f; health = 190 * size * size; }}; @@ -1698,11 +1701,17 @@ public class Blocks implements ContentList{ //endregion //region units + commandCenter = new CommandCenter("command-center"){{ + requirements(Category.units, ItemStack.with(Items.copper, 200, Items.lead, 250, Items.silicon, 250, Items.graphite, 100)); + size = 2; + health = size * size * 55; + }}; + groundFactory = new UnitFactory("ground-factory"){{ requirements(Category.units, with(Items.copper, 50, Items.lead, 120, Items.silicon, 80)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.dagger, 60f * 20, with(Items.silicon, 10, Items.lead, 10)), - new UnitPlan(UnitTypes.crawler, 60f * 15, with(Items.silicon, 10, Items.coal, 20)), + new UnitPlan(UnitTypes.dagger, 60f * 15, with(Items.silicon, 10, Items.lead, 10)), + new UnitPlan(UnitTypes.crawler, 60f * 12, with(Items.silicon, 10, Items.coal, 20)), new UnitPlan(UnitTypes.nova, 60f * 40, with(Items.silicon, 30, Items.lead, 20, Items.titanium, 20)), }; size = 3; @@ -1710,7 +1719,7 @@ public class Blocks implements ContentList{ }}; airFactory = new UnitFactory("air-factory"){{ - requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); + requirements(Category.units, with(Items.copper, 60, Items.lead, 70)); plans = new UnitPlan[]{ new UnitPlan(UnitTypes.flare, 60f * 15, with(Items.silicon, 15)), new UnitPlan(UnitTypes.mono, 60f * 35, with(Items.silicon, 30, Items.lead, 15)), @@ -1720,7 +1729,7 @@ public class Blocks implements ContentList{ }}; navalFactory = new UnitFactory("naval-factory"){{ - requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); + requirements(Category.units, with(Items.copper, 150, Items.lead, 130, Items.metaglass, 120)); plans = new UnitPlan[]{ new UnitPlan(UnitTypes.risso, 60f * 30f, with(Items.silicon, 20, Items.metaglass, 25)), }; @@ -1768,11 +1777,11 @@ public class Blocks implements ContentList{ }}; exponentialReconstructor = new Reconstructor("exponential-reconstructor"){{ - requirements(Category.units, with(Items.lead, 2000, Items.silicon, 750, Items.titanium, 950, Items.thorium, 450, Items.plastanium, 350, Items.phasefabric, 250)); + requirements(Category.units, with(Items.lead, 2000, Items.silicon, 750, Items.titanium, 950, Items.thorium, 450, Items.plastanium, 350, Items.phasefabric, 450)); size = 7; - consumes.power(12f); - consumes.items(with(Items.silicon, 250, Items.titanium, 500, Items.plastanium, 400)); + consumes.power(13f); + consumes.items(with(Items.silicon, 450, Items.titanium, 550, Items.plastanium, 550)); consumes.liquid(Liquids.cryofluid, 1f); constructTime = 60f * 60f * 1.5f; @@ -1780,15 +1789,16 @@ public class Blocks implements ContentList{ upgrades = new UnitType[][]{ {UnitTypes.zenith, UnitTypes.antumbra}, + {UnitTypes.spiroct, UnitTypes.arkyid}, }; }}; tetrativeReconstructor = new Reconstructor("tetrative-reconstructor"){{ - requirements(Category.units, with(Items.lead, 4000, Items.silicon, 1500, Items.thorium, 500, Items.plastanium, 50, Items.phasefabric, 600, Items.surgealloy, 500)); + requirements(Category.units, with(Items.lead, 4000, Items.silicon, 1500, Items.thorium, 500, Items.plastanium, 450, Items.phasefabric, 600, Items.surgealloy, 500)); size = 9; consumes.power(25f); - consumes.items(with(Items.silicon, 350, Items.plastanium, 450, Items.surgealloy, 400, Items.phasefabric, 150)); + consumes.items(with(Items.silicon, 350, Items.plastanium, 550, Items.surgealloy, 350, Items.phasefabric, 150)); consumes.liquid(Liquids.cryofluid, 3f); constructTime = 60f * 60f * 4; @@ -1861,7 +1871,6 @@ public class Blocks implements ContentList{ //looked up by name, no ref needed new LegacyMechPad("legacy-mech-pad"); new LegacyUnitFactory("legacy-unit-factory"); - new LegacyCommandCenter("legacy-command-center"); //endregion //region campaign @@ -1897,7 +1906,7 @@ public class Blocks implements ContentList{ }}; microProcessor = new LogicBlock("micro-processor"){{ - requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 60)); + requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 50)); instructionsPerTick = 2; @@ -1905,15 +1914,28 @@ public class Blocks implements ContentList{ }}; logicProcessor = new LogicBlock("logic-processor"){{ - requirements(Category.logic, with(Items.lead, 320, Items.silicon, 140, Items.graphite, 80, Items.thorium, 70)); + requirements(Category.logic, with(Items.lead, 320, Items.silicon, 100, Items.graphite, 60, Items.thorium, 50)); instructionsPerTick = 5; - range = 16 * 10; + range = 8 * 20; size = 2; }}; + hyperProcessor = new LogicBlock("hyper-processor"){{ + requirements(Category.logic, with(Items.lead, 450, Items.silicon, 150, Items.thorium, 75, Items.surgealloy, 50)); + + consumes.liquid(Liquids.cryofluid, 0.08f); + hasLiquids = true; + + instructionsPerTick = 25; + + range = 8 * 40; + + size = 3; + }}; + logicDisplay = new LogicDisplay("logic-display"){{ requirements(Category.logic, with(Items.copper, 200, Items.lead, 120, Items.silicon, 100, Items.metaglass, 50)); diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index c4dac32493..cc6e1f10a0 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -163,7 +163,7 @@ public class Bullets implements ContentList{ width = 6f; height = 8f; hitEffect = Fx.flakExplosion; - splashDamage = 20f; + splashDamage = 22f; splashDamageRadius = 20f; fragBullet = flakGlassFrag; fragBullets = 5; @@ -240,7 +240,7 @@ public class Bullets implements ContentList{ explodeRange = 20f; }}; - missileExplosive = new MissileBulletType(3f, 10){{ + missileExplosive = new MissileBulletType(3.7f, 10){{ width = 8f; height = 8f; shrinkY = 0f; @@ -255,7 +255,7 @@ public class Bullets implements ContentList{ statusDuration = 60f; }}; - missileIncendiary = new MissileBulletType(3f, 12){{ + missileIncendiary = new MissileBulletType(3.7f, 12){{ frontColor = Pal.lightishOrange; backColor = Pal.lightOrange; width = 7f; @@ -269,7 +269,7 @@ public class Bullets implements ContentList{ status = StatusEffects.burning; }}; - missileSurge = new MissileBulletType(3f, 20){{ + missileSurge = new MissileBulletType(3.7f, 20){{ width = 8f; height = 8f; shrinkY = 0f; @@ -279,7 +279,7 @@ public class Bullets implements ContentList{ hitEffect = Fx.blastExplosion; despawnEffect = Fx.blastExplosion; lightning = 2; - lightningLength = 14; + lightningLength = 10; }}; standardCopper = new BasicBulletType(2.5f, 9){{ diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 04723e941d..0c7a05c557 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -33,8 +33,10 @@ public class Fx{ float scl = 1f + e.fout() * 2f; UnitType unit = e.data(); - rect(unit.region, e.x, e.y, - unit.region.getWidth() * Draw.scl * scl, unit.region.getHeight() * Draw.scl * scl, 180f); + TextureRegion region = unit.icon(Cicon.full); + + rect(region, e.x, e.y, + region.getWidth() * Draw.scl * scl, region.getHeight() * Draw.scl * scl, 180f); }), @@ -512,6 +514,29 @@ public class Fx{ }), + sapExplosion = new Effect(25, e -> { + + color(Pal.sapBullet); + e.scaled(6, i -> { + stroke(3f * i.fout()); + Lines.circle(e.x, e.y, 3f + i.fin() * 80f); + }); + + color(Color.gray); + + randLenVectors(e.id, 9, 2f + 70 * e.finpow(), (x, y) -> { + Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.5f); + }); + + color(Pal.sapBulletBack); + stroke(1f * e.fout()); + + randLenVectors(e.id + 1, 8, 1f + 60f * e.finpow(), (x, y) -> { + lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f); + }); + + }), + massiveExplosion = new Effect(30, e -> { color(Pal.missileYellow); diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index 2a92e9ad0f..38e67d0b4e 100644 --- a/core/src/mindustry/content/TechTree.java +++ b/core/src/mindustry/content/TechTree.java @@ -17,7 +17,7 @@ import static mindustry.content.UnitTypes.*; import static mindustry.type.ItemStack.*; public class TechTree implements ContentList{ - private static ObjectMap map = new ObjectMap<>(); + static ObjectMap map = new ObjectMap<>(); public static Seq all; public static TechNode root; @@ -38,7 +38,6 @@ public class TechTree implements ContentList{ node(distributor); node(sorter, () -> { node(invertedSorter); - node(message); node(overflowGate, () -> { node(underflowGate); }); @@ -204,6 +203,26 @@ public class TechTree implements ContentList{ }); }); }); + + node(microProcessor, () -> { + node(switchBlock, () -> { + node(message, () -> { + node(logicDisplay, () -> { + + }); + + node(memoryCell, () -> { + + }); + }); + + node(logicProcessor, () -> { + node(hyperProcessor, () -> { + + }); + }); + }); + }); }); }); }); @@ -340,6 +359,10 @@ public class TechTree implements ContentList{ }); node(groundFactory, () -> { + node(commandCenter, () -> { + + }); + node(dagger, () -> { node(mace, () -> { node(fortress, () -> { @@ -406,8 +429,6 @@ public class TechTree implements ContentList{ }); }); - //TODO research sectors - node(groundZero, () -> { node(frozenForest, Seq.with( new SectorComplete(groundZero), @@ -544,7 +565,7 @@ public class TechTree implements ContentList{ } public static class TechNode{ - private static TechNode context; + static TechNode context; /** Depth in tech tree. */ public int depth; @@ -556,25 +577,20 @@ public class TechTree implements ContentList{ public ItemStack[] requirements; /** Requirements that have been fulfilled. Always the same length as the requirement array. */ public final ItemStack[] finishedRequirements; - /** Extra objectives needed to research this. TODO implement */ + /** Extra objectives needed to research this. */ public Seq objectives = new Seq<>(); /** Time required to research this content, in seconds. */ public float time; /** Nodes that depend on this node. */ public final Seq children = new Seq<>(); - /** Research progress, in seconds. */ - public float progress; TechNode(@Nullable TechNode ccontext, UnlockableContent content, ItemStack[] requirements, Runnable children){ - if(ccontext != null){ - ccontext.children.add(this); - } + if(ccontext != null) ccontext.children.add(this); this.parent = ccontext; this.content = content; this.requirements = requirements; this.depth = parent == null ? 0 : parent.depth + 1; - this.progress = Core.settings == null ? 0 : Core.settings.getFloat("research-" + content.name, 0f); this.time = Seq.with(requirements).mapFloat(i -> i.item.cost * i.amount).sum() * 10; this.finishedRequirements = new ItemStack[requirements.length]; @@ -599,7 +615,6 @@ public class TechTree implements ContentList{ /** Flushes research progress to settings. */ public void save(){ - Core.settings.put("research-" + content.name, progress); //save finished requirements by item type for(ItemStack stack : finishedRequirements){ diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 1de41c76d1..10f19cad4b 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -27,7 +27,7 @@ public class UnitTypes implements ContentList{ public static @EntityDef({Unitc.class, Legsc.class}) UnitType atrax; //legs + building - public static @EntityDef({Unitc.class, Legsc.class, Builderc.class}) UnitType spiroct, arkyid; + public static @EntityDef({Unitc.class, Legsc.class, Builderc.class}) UnitType spiroct, arkyid, toxopid; //air (no special traits) public static @EntityDef({Unitc.class}) UnitType flare, eclipse, horizon, zenith, antumbra; @@ -72,7 +72,6 @@ public class UnitTypes implements ContentList{ mace = new UnitType("mace"){{ speed = 0.4f; hitsize = 9f; - range = 10f; health = 500; armor = 4f; @@ -84,12 +83,11 @@ public class UnitTypes implements ContentList{ reload = 14f; recoil = 1f; ejectEffect = Fx.none; - bullet = new BulletType(3f, 30f){{ + bullet = new BulletType(3.9f, 30f){{ ammoMultiplier = 3f; hitSize = 7f; - lifetime = 42f; + lifetime = 12f; pierce = true; - drag = 0.05f; statusDuration = 60f * 4; shootEffect = Fx.shootSmallFlame; hitEffect = Fx.hitFlameSmall; @@ -165,7 +163,7 @@ public class UnitTypes implements ContentList{ boostMultiplier = 1.5f; speed = 0.48f; hitsize = 10f; - health = 300f; + health = 320f; buildSpeed = 0.9f; armor = 4f; @@ -173,7 +171,7 @@ public class UnitTypes implements ContentList{ mineSpeed = 5f; commandLimit = 8; - abilities.add(new ShieldFieldAbility(15f, 30f, 60f * 5, 60f)); + abilities.add(new ShieldFieldAbility(20f, 40f, 60f * 5, 60f)); weapons.add(new Weapon("heal-shotgun-weapon"){{ x = 5f; @@ -193,7 +191,7 @@ public class UnitTypes implements ContentList{ bullet = new LightningBulletType(){{ lightningColor = hitColor = Pal.heal; - damage = 12f; + damage = 15f; lightningLength = 7; lightningLengthRand = 7; shootEffect = Fx.shootHeal; @@ -206,7 +204,7 @@ public class UnitTypes implements ContentList{ hitsize = 12f; boostMultiplier = 2f; itemCapacity = 80; - health = 640f; + health = 650f; buildSpeed = 1.7f; canBoost = true; armor = 9f; @@ -219,7 +217,7 @@ public class UnitTypes implements ContentList{ mineSpeed = 7f; drawShields = false; - abilities.add(new ForceFieldAbility(60f, 0.12f, 200f, 60f * 8)); + abilities.add(new ForceFieldAbility(60f, 0.2f, 300f, 60f * 7)); weapons.add(new Weapon("beam-weapon"){{ shake = 2f; @@ -230,7 +228,7 @@ public class UnitTypes implements ContentList{ shootSound = Sounds.laser; bullet = new LaserBulletType(){{ - damage = 27f; + damage = 30f; recoil = 1f; sideAngle = 45f; sideWidth = 1f; @@ -316,7 +314,7 @@ public class UnitTypes implements ContentList{ drag = 0.4f; hitsize = 12f; rotateSpeed = 3f; - health = 600; + health = 760; immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting); legCount = 6; legLength = 13f; @@ -352,7 +350,7 @@ public class UnitTypes implements ContentList{ despawnEffect = Fx.none; width = 0.54f; lifetime = 35f; - knockback = -1.2f; + knockback = -1.24f; }}; }}); @@ -365,62 +363,109 @@ public class UnitTypes implements ContentList{ bullet = new SapBulletType(){{ sapStrength = 0.65f; length = 40f; - damage = 12; + damage = 13; shootEffect = Fx.shootSmall; hitColor = color = Color.valueOf("bf92f9"); despawnEffect = Fx.none; width = 0.4f; lifetime = 25f; - knockback = -0.6f; + knockback = -0.65f; }}; }}); }}; - //TODO implement arkyid = new UnitType("arkyid"){{ drag = 0.1f; speed = 0.5f; - hitsize = 9f; - health = 140; + hitsize = 21f; + health = 8000; + armor = 6f; legCount = 6; legMoveSpace = 1f; legPairOffset = 3; - legLength = 34f; - rotateShooting = false; + legLength = 30f; legExtension = -15; legBaseOffset = 10f; - landShake = 2f; + landShake = 1f; legSpeed = 0.1f; legLengthScl = 1f; rippleScale = 2f; legSpeed = 0.2f; + legSplashDamage = 32; legSplashRange = 30; + hovering = true; + allowLegStep = true; + visualElevation = 0.4f; + groundLayer = Layer.legUnit; + + BulletType sapper = new SapBulletType(){{ + sapStrength = 0.8f; + length = 55f; + damage = 34; + shootEffect = Fx.shootSmall; + hitColor = color = Color.valueOf("bf92f9"); + despawnEffect = Fx.none; + width = 0.55f; + lifetime = 30f; + knockback = -1f; + }}; + weapons.add( - new Weapon("missiles-mount"){{ - reload = 20f; + new Weapon("spiroct-weapon"){{ + reload = 9f; x = 4f; + y = 8f; rotate = true; - shake = 1f; - bullet = new MissileBulletType(2.7f, 12, "missile"){{ - width = 8f; - height = 8f; - shrinkY = 0f; - drag = -0.003f; - homingRange = 60f; - keepVelocity = false; - splashDamageRadius = 25f; - splashDamage = 10f; - lifetime = 120f; - trailColor = Color.gray; - backColor = Pal.bulletYellowBack; - frontColor = Pal.bulletYellow; - hitEffect = Fx.blastExplosion; - despawnEffect = Fx.blastExplosion; - weaveScale = 8f; - weaveMag = 2f; + bullet = sapper; + }}, + new Weapon("spiroct-weapon"){{ + reload = 15f; + x = 9f; + y = 6f; + rotate = true; + bullet = sapper; + }}, + new Weapon("spiroct-weapon"){{ + reload = 23f; + x = 14f; + y = 0f; + rotate = true; + bullet = sapper; + }}, + new Weapon("large-purple-mount"){{ + y = -7f; + x = 9f; + shootY = 7f; + reload = 45; + shake = 3f; + rotateSpeed = 2f; + ejectEffect = Fx.shellEjectSmall; + shootSound = Sounds.shootBig; + rotate = true; + occlusion = 8f; + recoil = 3f; + + bullet = new ArtilleryBulletType(2f, 12){{ + hitEffect = Fx.sapExplosion; + knockback = 0.8f; + lifetime = 70f; + width = height = 19f; + collidesTiles = false; + ammoMultiplier = 4f; + splashDamageRadius = 95f; + splashDamage = 55f; + backColor = Pal.sapBulletBack; + frontColor = lightningColor = Pal.sapBullet; + lightning = 3; + lightningLength = 10; + smokeEffect = Fx.shootBigSmoke2; + shake = 5f; + + status = StatusEffects.sapped; + statusDuration = 60f * 10; }}; }}); }}; @@ -448,7 +493,7 @@ public class UnitTypes implements ContentList{ }}; horizon = new UnitType("horizon"){{ - health = 300; + health = 350; speed = 2f; accel = 0.08f; drag = 0.016f; @@ -457,19 +502,19 @@ public class UnitTypes implements ContentList{ engineOffset = 7.8f; range = 140f; faceTarget = false; - armor = 2f; + armor = 4f; weapons.add(new Weapon(){{ minShootVelocity = 0.75f; x = 3f; shootY = 0f; - reload = 12f; + reload = 11f; shootCone = 180f; ejectEffect = Fx.none; inaccuracy = 15f; ignoreRotation = true; shootSound = Sounds.none; - bullet = new BombBulletType(23f, 25f){{ + bullet = new BombBulletType(28f, 25f){{ width = 10f; height = 14f; hitEffect = Fx.flakExplosion; @@ -483,21 +528,21 @@ public class UnitTypes implements ContentList{ }}; zenith = new UnitType("zenith"){{ - health = 1000; - speed = 1.9f; + health = 700; + speed = 1.7f; accel = 0.04f; drag = 0.016f; flying = true; range = 140f; hitsize = 18f; lowAltitude = true; - armor = 6f; + armor = 5f; engineOffset = 12f; engineSize = 3f; weapons.add(new Weapon("zenith-missiles"){{ - reload = 32f; + reload = 40f; x = 7f; rotate = true; shake = 1f; @@ -533,21 +578,21 @@ public class UnitTypes implements ContentList{ rotateSpeed = 1.9f; flying = true; lowAltitude = true; - health = 9000; + health = 7000; armor = 9f; engineOffset = 21; engineSize = 5.3f; - hitsize = 58f; + hitsize = 56f; BulletType missiles = new MissileBulletType(2.7f, 10){{ width = 8f; height = 8f; shrinkY = 0f; drag = -0.01f; - splashDamageRadius = 40f; - splashDamage = 40f; + splashDamageRadius = 20f; + splashDamage = 30f; ammoMultiplier = 4f; - lifetime = 80f; + lifetime = 50f; hitEffect = Fx.blastExplosion; despawnEffect = Fx.blastExplosion; @@ -581,17 +626,18 @@ public class UnitTypes implements ContentList{ new Weapon("large-bullet-mount"){{ y = 2f; x = 10f; - shootY = 12f; - reload = 10; + shootY = 10f; + reload = 12; shake = 1f; rotateSpeed = 2f; ejectEffect = Fx.shellEjectSmall; shootSound = Sounds.shootBig; rotate = true; occlusion = 8f; - bullet = new BasicBulletType(7f, 60){{ + bullet = new BasicBulletType(7f, 50){{ width = 12f; height = 18f; + lifetime = 25f; shootEffect = Fx.shootBig; }}; }} @@ -612,6 +658,18 @@ public class UnitTypes implements ContentList{ destructibleWreck = false; armor = 13f; + BulletType fragBullet = new FlakBulletType(4f, 5){{ + shootEffect = Fx.shootBig; + ammoMultiplier = 4f; + splashDamage = 42f; + splashDamageRadius = 25f; + collidesGround = true; + lifetime = 38f; + + status = StatusEffects.blasted; + statusDuration = 60f; + }}; + weapons.add( new Weapon("large-laser-mount"){{ shake = 4f; @@ -619,14 +677,14 @@ public class UnitTypes implements ContentList{ x = 18f; y = 5f; rotateSpeed = 2f; - reload = 50f; + reload = 45f; recoil = 4f; shootSound = Sounds.laser; occlusion = 20f; rotate = true; bullet = new LaserBulletType(){{ - damage = 75f; + damage = 90f; sideAngle = 20f; sideWidth = 1.5f; sideLength = 80f; @@ -636,50 +694,29 @@ public class UnitTypes implements ContentList{ colors = new Color[]{Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.white}; }}; }}, - new Weapon("missiles-mount"){{ + new Weapon("large-artillery"){{ x = 11f; y = 27f; rotateSpeed = 2f; - reload = 4f; + reload = 9f; shootSound = Sounds.flame; occlusion = 7f; rotate = true; recoil = 0.5f; - bullet = Bullets.pyraFlame; + bullet = fragBullet; }}, new Weapon("large-artillery"){{ y = -13f; x = 20f; - reload = 18f; + reload = 12f; ejectEffect = Fx.shellEjectSmall; rotateSpeed = 7f; shake = 1f; shootSound = Sounds.shoot; rotate = true; occlusion = 12f; - bullet = new ArtilleryBulletType(3.2f, 12){{ - trailMult = 0.8f; - hitEffect = Fx.massiveExplosion; - knockback = 1.5f; - lifetime = 140f; - height = 12f; - width = 12f; - collidesTiles = false; - ammoMultiplier = 4f; - splashDamageRadius = 60f; - splashDamage = 60f; - backColor = Pal.missileYellowBack; - frontColor = Pal.missileYellow; - trailEffect = Fx.artilleryTrail; - trailSize = 6f; - hitShake = 4f; - - shootEffect = Fx.shootBig2; - - status = StatusEffects.blasted; - statusDuration = 60f; - }}; + bullet = fragBullet; }}); }}; @@ -1001,7 +1038,7 @@ public class UnitTypes implements ContentList{ lifetime = 60f; shootEffect = Fx.shootSmall; smokeEffect = Fx.shootSmallSmoke; - tileDamageMultiplier = 0.95f; + tileDamageMultiplier = 0.09f; }}; }}); }}; @@ -1092,6 +1129,7 @@ public class UnitTypes implements ContentList{ hitsize = 0f; health = 1; rotateSpeed = 360f; + itemCapacity = 0; } @Override diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index a147e6e79e..3a3fe0d2a3 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -243,11 +243,11 @@ public class ContentLoader{ } public Block block(int id){ - return (Block)getByID(ContentType.block, id); + return getByID(ContentType.block, id); } public Block block(String name){ - return (Block)getByName(ContentType.block, name); + return getByName(ContentType.block, name); } public Seq items(){ @@ -255,7 +255,7 @@ public class ContentLoader{ } public Item item(int id){ - return (Item)getByID(ContentType.item, id); + return getByID(ContentType.item, id); } public Seq liquids(){ @@ -263,7 +263,7 @@ public class ContentLoader{ } public Liquid liquid(int id){ - return (Liquid)getByID(ContentType.liquid, id); + return getByID(ContentType.liquid, id); } public Seq bullets(){ @@ -271,7 +271,7 @@ public class ContentLoader{ } public BulletType bullet(int id){ - return (BulletType)getByID(ContentType.bullet, id); + return getByID(ContentType.bullet, id); } public Seq sectors(){ diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 439ab8884a..46e79e64cd 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -155,12 +155,6 @@ public class Control implements ApplicationListener, Loadable{ } }); - Events.on(ZoneRequireCompleteEvent.class, e -> { - if(e.objective.display() != null){ - ui.hudfrag.showToast(Core.bundle.format("zone.requirement.complete", e.zoneForMet.localizedName, e.objective.display())); - } - }); - //delete save on campaign game over Events.on(GameOverEvent.class, e -> { if(state.isCampaign() && !net.client() && !headless){ diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 77741767a9..d70776a006 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -302,6 +302,11 @@ public class Logic implements ApplicationListener{ }); } + @Remote(called = Loc.both) + public static void updateGameOver(Team winner){ + state.gameOver = true; + } + @Remote(called = Loc.both) public static void gameOver(Team winner){ state.stats.wavesLasted = state.wave; @@ -320,6 +325,10 @@ public class Logic implements ApplicationListener{ Events.fire(Trigger.update); universe.updateGlobal(); + if(Core.settings.modified() && !state.isPlaying()){ + Core.settings.forceSave(); + } + if(state.isGame()){ if(!net.client()){ state.enemies = Groups.unit.count(u -> u.team() == state.rules.waveTeam && u.type().isCounted); diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index 2262e2248b..ecdf57fc91 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -366,6 +366,9 @@ public class NetClient implements ApplicationListener{ @Remote public static void playerDisconnect(int playerid){ + if(netClient != null){ + netClient.addRemovedEntity(playerid); + } Groups.player.removeByID(playerid); } @@ -437,13 +440,14 @@ public class NetClient implements ApplicationListener{ } @Remote(variants = Variant.one, priority = PacketPriority.low, unreliable = true) - public static void stateSnapshot(float waveTime, int wave, int enemies, boolean paused, short coreDataLen, byte[] coreData){ + public static void stateSnapshot(float waveTime, int wave, int enemies, boolean paused, boolean gameOver, short coreDataLen, byte[] coreData){ try{ if(wave > state.wave){ state.wave = wave; Events.fire(new WaveEvent()); } + state.gameOver = gameOver; state.wavetime = waveTime; state.wave = wave; state.enemies = enemies; @@ -558,6 +562,22 @@ public class NetClient implements ApplicationListener{ //limit to 10 to prevent buffer overflows int usedRequests = Math.min(player.builder().plans().size, 10); + int totalLength = 0; + + //prevent buffer overflow by checking config length + for(int i = 0; i < usedRequests; i++){ + BuildPlan plan = player.builder().plans().get(i); + if(plan.config instanceof byte[]){ + int length = ((byte[])plan.config).length; + totalLength += length; + } + + if(totalLength > 2048){ + usedRequests = i + 1; + break; + } + } + requests = new BuildPlan[usedRequests]; for(int i = 0; i < usedRequests; i++){ requests[i] = player.builder().plans().get(i); diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index fd169870ad..ba03907038 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -34,8 +34,9 @@ import static arc.util.Log.*; import static mindustry.Vars.*; public class NetServer implements ApplicationListener{ - private static final int maxSnapshotSize = 430, timerBlockSync = 0; - private static final float serverSyncTime = 12, blockSyncTime = 60 * 8; + /** note that snapshots are compressed, so the max snapshot size here is above the typical UDP safe limit */ + private static final int maxSnapshotSize = 800, timerBlockSync = 0; + private static final float serverSyncTime = 12, blockSyncTime = 60 * 6; private static final FloatBuffer fbuffer = FloatBuffer.allocate(20); private static final Vec2 vector = new Vec2(); private static final Rect viewport = new Rect(); @@ -370,6 +371,11 @@ public class NetServer implements ApplicationListener{ return; } + if(currentlyKicking[0] != null){ + player.sendMessage("[scarlet]A vote is already in progress."); + return; + } + if(args.length == 0){ StringBuilder builder = new StringBuilder(); builder.append("[orange]Players to kick: \n"); @@ -384,9 +390,7 @@ public class NetServer implements ApplicationListener{ int id = Strings.parseInt(args[0].substring(1)); found = Groups.player.find(p -> p.id() == id); }else{ - found = Groups.player.find(p -> { - return p.name.equalsIgnoreCase(args[0]); - }); + found = Groups.player.find(p -> p.name.equalsIgnoreCase(args[0])); } if(found != null){ @@ -526,6 +530,10 @@ public class NetServer implements ApplicationListener{ public static void serverPacketUnreliable(Player player, String type, String contents){ serverPacketReliable(player, type, contents); } + + private static boolean invalid(float f){ + return Float.isInfinite(f) || Float.isNaN(f); + } @Remote(targets = Loc.client, unreliable = true) public static void clientSnapshot( @@ -544,6 +552,16 @@ public class NetServer implements ApplicationListener{ NetConnection con = player.con; if(con == null || snapshotID < con.lastReceivedClientSnapshot) return; + //validate coordinates just in case + if(invalid(x)) x = 0f; + if(invalid(y)) y = 0f; + if(invalid(xVelocity)) xVelocity = 0f; + if(invalid(yVelocity)) yVelocity = 0f; + if(invalid(pointerX)) pointerX = 0f; + if(invalid(pointerY)) pointerY = 0f; + if(invalid(rotation)) rotation = 0f; + if(invalid(baseRotation)) baseRotation = 0f; + boolean verifyPosition = !player.dead() && netServer.admins.getStrict() && headless; if(con.lastReceivedClientTime == 0) con.lastReceivedClientTime = Time.millis() - 16; @@ -612,12 +630,12 @@ public class NetServer implements ApplicationListener{ if(!player.dead()){ Unit unit = player.unit(); - unit.vel.set(xVelocity, yVelocity).limit(unit.type().speed); long elapsed = Time.timeSinceMillis(con.lastReceivedClientTime); - float maxSpeed = (boosting ? player.unit().type().boostMultiplier : 1f) * player.unit().type().speed; + float maxSpeed = ((player.unit().type().canBoost && player.unit().isFlying()) ? player.unit().type().boostMultiplier : 1f) * player.unit().type().speed; if(unit.isGrounded()){ maxSpeed *= unit.floorSpeedMultiplier(); } + unit.vel.set(xVelocity, yVelocity).limit(maxSpeed); float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.1f; if(con.lastUnit != unit){ @@ -681,8 +699,8 @@ public class NetServer implements ApplicationListener{ public static void adminRequest(Player player, Player other, AdminAction action){ if(!player.admin){ - Log.warn("ACCESS DENIED: Player @ / @ attempted to perform admin action without proper security access.", - player.name, player.con.address); + Log.warn("ACCESS DENIED: Player @ / @ attempted to perform admin action '@' on '@' without proper security access.", + player.name, player.con.address, action.name(), other == null ? null : other.name); return; } @@ -735,7 +753,7 @@ public class NetServer implements ApplicationListener{ } public boolean isWaitingForPlayers(){ - if(state.rules.pvp){ + if(state.rules.pvp && !state.gameOver){ int used = 0; for(TeamData t : state.teams.getActive()){ if(Groups.player.count(p -> p.team() == t.team) > 0){ @@ -761,6 +779,10 @@ public class NetServer implements ApplicationListener{ } if(state.isGame() && net.server()){ + if(state.rules.pvp){ + state.serverPaused = isWaitingForPlayers(); + } + sync(); } } @@ -794,7 +816,7 @@ public class NetServer implements ApplicationListener{ if(!entity.block().sync) continue; sent ++; - dataStream.writeInt(entity.tile().pos()); + dataStream.writeInt(entity.pos()); entity.writeAll(Writes.get(dataStream)); if(syncStream.size() > maxSnapshotSize){ @@ -828,7 +850,7 @@ public class NetServer implements ApplicationListener{ byte[] stateBytes = syncStream.toByteArray(); //write basic state data. - Call.stateSnapshot(player.con, state.wavetime, state.wave, state.enemies, state.serverPaused, (short)stateBytes.length, net.compressSnapshot(stateBytes)); + Call.stateSnapshot(player.con, state.wavetime, state.wave, state.enemies, state.serverPaused, state.gameOver, (short)stateBytes.length, net.compressSnapshot(stateBytes)); viewport.setSize(player.con.viewWidth, player.con.viewHeight).setCenter(player.con.viewX, player.con.viewY); diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index dc5d350a0f..e04aef622d 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -185,6 +185,8 @@ public class Renderer implements ApplicationListener{ } public void draw(){ + Events.fire(Trigger.preDraw); + camera.update(); if(Float.isNaN(camera.position.x) || Float.isNaN(camera.position.y)){ @@ -205,6 +207,8 @@ public class Renderer implements ApplicationListener{ Draw.sort(true); + Events.fire(Trigger.draw); + if(pixelator.enabled()){ pixelator.register(); } @@ -254,6 +258,8 @@ public class Renderer implements ApplicationListener{ Draw.reset(); Draw.flush(); Draw.sort(false); + + Events.fire(Trigger.postDraw); } private void drawBackground(){ diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index 0d5a08436a..783cb89cf8 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -128,6 +128,8 @@ public class UI implements ApplicationListener, Loadable{ public void update(){ if(disableUI || Core.scene == null) return; + Events.fire(Trigger.uiDrawBegin); + Core.scene.act(); Core.scene.draw(); @@ -143,6 +145,8 @@ public class UI implements ApplicationListener, Loadable{ control.tutorial.draw(); Draw.flush(); } + + Events.fire(Trigger.uiDrawEnd); } @Override @@ -221,12 +225,15 @@ public class UI implements ApplicationListener, Loadable{ } public TextureRegionDrawable getIcon(String name){ - if(Icon.icons.containsKey(name)){ - return Icon.icons.get(name); - } + if(Icon.icons.containsKey(name)) return Icon.icons.get(name); return Core.atlas.getDrawable("error"); } + public TextureRegionDrawable getIcon(String name, String def){ + if(Icon.icons.containsKey(name)) return Icon.icons.get(name); + return getIcon(def); + } + public void loadAnd(Runnable call){ loadAnd("@loading", call); } diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java index f9c7e97e15..9dea5f0e35 100644 --- a/core/src/mindustry/core/World.java +++ b/core/src/mindustry/core/World.java @@ -484,6 +484,9 @@ public class World{ private class Context implements WorldContext{ + Context(){ + } + @Override public Tile tile(int index){ return tiles.geti(index); diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java index 684f410b26..c2869a664c 100644 --- a/core/src/mindustry/editor/MapGenerateDialog.java +++ b/core/src/mindustry/editor/MapGenerateDialog.java @@ -37,18 +37,18 @@ public class MapGenerateDialog extends BaseDialog{ private Pixmap pixmap; private Texture texture; private GenerateInput input = new GenerateInput(); - private Seq filters = new Seq<>(); + Seq filters = new Seq<>(); private int scaling = mobile ? 3 : 1; private Table filterTable; private AsyncExecutor executor = new AsyncExecutor(1); private AsyncResult result; - private boolean generating; + boolean generating; private GenTile returnTile = new GenTile(); private GenTile[][] buffer1, buffer2; private Cons> applier; - private CachedTile ctile = new CachedTile(){ + CachedTile ctile = new CachedTile(){ //nothing. @Override protected void changeEntity(Team team, Prov entityprov, int rotation){ @@ -178,7 +178,7 @@ public class MapGenerateDialog extends BaseDialog{ add(new Image(Styles.black8)); add(new Image(Icon.refresh, Scaling.none)); visible(() -> generating && !updateEditorOnChange); - }}).grow().padRight(10); + }}).uniformX().grow().padRight(10); t.pane(p -> filterTable = p.marginRight(6)).update(pane -> { if(Core.scene.getKeyboardFocus() instanceof Dialog && Core.scene.getKeyboardFocus() != this){ return; @@ -191,7 +191,7 @@ public class MapGenerateDialog extends BaseDialog{ }else{ Core.scene.setScrollFocus(null); } - }).grow().get().setScrollingDisabled(true, false); + }).grow().uniformX().get().setScrollingDisabled(true, false); }).grow(); buffer1 = create(); @@ -213,7 +213,7 @@ public class MapGenerateDialog extends BaseDialog{ } void rebuildFilters(){ - int cols = Math.max((int)(Math.max(filterTable.parent.getWidth(), Core.graphics.getWidth()/2f * 0.9f) / Scl.scl(290f)), 1); + int cols = Math.max((int)(Core.graphics.getWidth()/2f / Scl.scl(290f)), 1); filterTable.clearChildren(); filterTable.top().left(); int i = 0; @@ -229,7 +229,7 @@ public class MapGenerateDialog extends BaseDialog{ t.setColor(Pal.gray); t.top().left(); - t.add(filter.name()).left().padLeft(6); + t.add(filter.name()).left().padLeft(6).width(100f).wrap(); t.add().growX(); @@ -408,6 +408,9 @@ public class MapGenerateDialog extends BaseDialog{ public byte team; public short block, floor, ore; + GenTile(){ + } + public void set(Block floor, Block wall, Block ore, Team team){ this.floor = floor.id; this.block = wall.id; diff --git a/core/src/mindustry/editor/MapView.java b/core/src/mindustry/editor/MapView.java index c1715a3d3b..7689e7aa48 100644 --- a/core/src/mindustry/editor/MapView.java +++ b/core/src/mindustry/editor/MapView.java @@ -22,7 +22,7 @@ import static mindustry.Vars.ui; public class MapView extends Element implements GestureListener{ private MapEditor editor; - private EditorTool tool = EditorTool.pencil; + EditorTool tool = EditorTool.pencil; private float offsetx, offsety; private float zoom = 1f; private boolean grid = false; @@ -31,11 +31,11 @@ public class MapView extends Element implements GestureListener{ private Rect rect = new Rect(); private Vec2[][] brushPolygons = new Vec2[MapEditor.brushSizes.length][0]; - private boolean drawing; - private int lastx, lasty; - private int startx, starty; - private float mousex, mousey; - private EditorTool lastTool; + boolean drawing; + int lastx, lasty; + int startx, starty; + float mousex, mousey; + EditorTool lastTool; public MapView(MapEditor editor){ this.editor = editor; @@ -204,7 +204,7 @@ public class MapView extends Element implements GestureListener{ zoom = Mathf.clamp(zoom, 0.2f, 20f); } - private Point2 project(float x, float y){ + Point2 project(float x, float y){ float ratio = 1f / ((float)editor.width() / editor.height()); float size = Math.min(width, height); float sclwidth = size * zoom; diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index 9de662dfa7..d5b957e143 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -23,7 +23,7 @@ import static mindustry.game.SpawnGroup.*; public class WaveInfoDialog extends BaseDialog{ private int displayed = 20; - private Seq groups = new Seq<>(); + Seq groups = new Seq<>(); private Table table; private int start = 0; diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index 2650588cb8..b6a2a94440 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -30,24 +30,26 @@ public class Damage{ private static Unit tmpUnit; /** Creates a dynamic explosion based on specified parameters. */ - public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){ - for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){ - int branches = 5 + Mathf.clamp((int)(power / 30), 1, 20); - Time.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.derelict, Pal.power, 3, x, y, Mathf.random(360f), branches + Mathf.range(2))); - } + public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color, boolean damage){ + if(damage){ + for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){ + int branches = 5 + Mathf.clamp((int)(power / 30), 1, 20); + Time.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.derelict, Pal.power, 3, x, y, Mathf.random(360f), branches + Mathf.range(2))); + } - for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){ - Time.run(i / 2f, () -> Call.createBullet(Bullets.fireball, Team.derelict, x, y, Mathf.random(360f), Bullets.fireball.damage, 1, 1)); - } + for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){ + Time.run(i / 2f, () -> Call.createBullet(Bullets.fireball, Team.derelict, x, y, Mathf.random(360f), Bullets.fireball.damage, 1, 1)); + } - int waves = Mathf.clamp((int)(explosiveness / 4), 0, 30); + int waves = Mathf.clamp((int)(explosiveness / 4), 0, 30); - for(int i = 0; i < waves; i++){ - int f = i; - Time.run(i * 2f, () -> { - Damage.damage(x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), explosiveness / 2f); - Fx.blockExplosionSmoke.at(x + Mathf.range(radius), y + Mathf.range(radius)); - }); + for(int i = 0; i < waves; i++){ + int f = i; + Time.run(i * 2f, () -> { + Damage.damage(x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), explosiveness / 2f); + Fx.blockExplosionSmoke.at(x + Mathf.range(radius), y + Mathf.range(radius)); + }); + } } if(explosiveness > 15f){ @@ -87,7 +89,7 @@ public class Damage{ tr.trns(angle, length); Intc2 collider = (cx, cy) -> { Building tile = world.build(cx, cy); - if(tile != null && !collidedBlocks.contains(tile.pos()) && tile.team() != team && tile.collide(hitter)){ + if(tile != null && !collidedBlocks.contains(tile.pos()) && tile.team != team && tile.collide(hitter)){ tile.collision(hitter); collidedBlocks.add(tile.pos()); hitter.type.hit(hitter, tile.x, tile.y); diff --git a/core/src/mindustry/entities/EntityGroup.java b/core/src/mindustry/entities/EntityGroup.java index f9c6d55316..5a1be4bdc3 100644 --- a/core/src/mindustry/entities/EntityGroup.java +++ b/core/src/mindustry/entities/EntityGroup.java @@ -101,7 +101,7 @@ public class EntityGroup implements Iterable{ if(map == null) throw new RuntimeException("Mapping is not enabled for group " + id + "!"); T t = map.get(id); if(t != null){ //remove if present in map already - remove(t); + t.remove(); } } diff --git a/core/src/mindustry/entities/Fires.java b/core/src/mindustry/entities/Fires.java index e24d34dac4..2906b4e7d7 100644 --- a/core/src/mindustry/entities/Fires.java +++ b/core/src/mindustry/entities/Fires.java @@ -17,7 +17,7 @@ public class Fires{ /** Start a fire on the tile. If there already is a file there, refreshes its lifetime. */ public static void create(Tile tile){ - if(net.client() || tile == null) return; //not clientside. + if(net.client() || tile == null || !state.rules.fire) return; //not clientside. Fire fire = map.get(tile.pos()); diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 35143817c7..23e3c56db4 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -19,8 +19,17 @@ public class Units{ private static boolean boolResult; @Remote(called = Loc.server) - public static void unitDeath(Unit unit){ - unit.killed(); + public static void unitDeath(int uid){ + Unit unit = Groups.unit.getByID(uid); + + //if there's no unit don't add it later and get it stuck as a ghost + if(netClient != null){ + netClient.addRemovedEntity(uid); + } + + if(unit != null){ + unit.killed(); + } } @Remote(called = Loc.server) diff --git a/core/src/mindustry/entities/abilities/ForceFieldAbility.java b/core/src/mindustry/entities/abilities/ForceFieldAbility.java index 60de9a49aa..33aa408602 100644 --- a/core/src/mindustry/entities/abilities/ForceFieldAbility.java +++ b/core/src/mindustry/entities/abilities/ForceFieldAbility.java @@ -31,6 +31,7 @@ public class ForceFieldAbility implements Ability{ //break shield if(paramUnit.shield <= trait.damage()){ paramUnit.shield -= cooldown * regen; + Fx.shieldBreak.at(paramUnit.x, paramUnit.y, radius, paramUnit.team.color); } diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 226cc10583..481731f7b3 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -92,6 +92,7 @@ public abstract class BulletType extends Content{ public float homingPower = 0f; public float homingRange = 50f; + public Color lightningColor = Pal.surge; public int lightning; public int lightningLength = 5; /** Use a negative value to use default bullet damage. */ @@ -172,7 +173,7 @@ public abstract class BulletType extends Content{ } for(int i = 0; i < lightning; i++){ - Lightning.create(b, Pal.surge, lightningDamage < 0 ? damage : lightningDamage, b.x, b.y, Mathf.random(360f), lightningLength); + Lightning.create(b, lightningColor, lightningDamage < 0 ? damage : lightningDamage, b.x, b.y, Mathf.random(360f), lightningLength); } } @@ -264,7 +265,7 @@ public abstract class BulletType extends Content{ bullet.damage = damage < 0 ? this.damage : damage; bullet.add(); - if(keepVelocity && owner instanceof Hitboxc) bullet.vel.add(((Hitboxc)owner).deltaX(), ((Hitboxc)owner).deltaY()); + if(keepVelocity && owner instanceof Hitboxc) bullet.vel.add(((Hitboxc)owner).deltaX() / Time.delta, ((Hitboxc)owner).deltaY() / Time.delta); return bullet; } diff --git a/core/src/mindustry/entities/bullet/HealBulletType.java b/core/src/mindustry/entities/bullet/HealBulletType.java index af66a4c931..4d363dc611 100644 --- a/core/src/mindustry/entities/bullet/HealBulletType.java +++ b/core/src/mindustry/entities/bullet/HealBulletType.java @@ -29,7 +29,7 @@ public class HealBulletType extends BulletType{ @Override public boolean collides(Bullet b, Building tile){ - return tile.team() != b.team || tile.healthf() < 1f; + return tile.team != b.team || tile.healthf() < 1f; } @Override @@ -46,7 +46,7 @@ public class HealBulletType extends BulletType{ public void hitTile(Bullet b, Building tile){ super.hit(b); - if(tile.team() == b.team && !(tile.block() instanceof BuildBlock)){ + if(tile.team == b.team && !(tile.block() instanceof BuildBlock)){ Fx.healBlockFull.at(tile.x, tile.y, tile.block().size, Pal.heal); tile.heal(healPercent / 100f * tile.maxHealth()); } diff --git a/core/src/mindustry/entities/comp/BlockUnitComp.java b/core/src/mindustry/entities/comp/BlockUnitComp.java index 4ae698db2a..39bfb85b97 100644 --- a/core/src/mindustry/entities/comp/BlockUnitComp.java +++ b/core/src/mindustry/entities/comp/BlockUnitComp.java @@ -27,7 +27,7 @@ abstract class BlockUnitComp implements Unitc{ @Override public void update(){ if(tile != null){ - team = tile.team(); + team = tile.team; } } @@ -61,7 +61,7 @@ abstract class BlockUnitComp implements Unitc{ public void team(Team team){ if(tile != null && this.team != team){ this.team = team; - if(tile.team() != team){ + if(tile.team != team){ tile.team(team); } } diff --git a/core/src/mindustry/entities/comp/BuilderComp.java b/core/src/mindustry/entities/comp/BuilderComp.java index 241179e7ae..6565ed573d 100644 --- a/core/src/mindustry/entities/comp/BuilderComp.java +++ b/core/src/mindustry/entities/comp/BuilderComp.java @@ -144,7 +144,6 @@ abstract class BuilderComp implements Unitc{ boolean shouldSkip(BuildPlan request, @Nullable Building core){ //requests that you have at least *started* are considered if(state.rules.infiniteResources || team().rules().infiniteResources || request.breaking || core == null) return false; - //TODO these are bad criteria return (request.stuck && !core.items.has(request.block.requirements)) || (Structs.contains(request.block.requirements, i -> !core.items.has(i.item)) && !request.initialized); } diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index a6887a0512..e498ab4701 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -41,7 +41,7 @@ import static mindustry.Vars.*; @Component(base = true) abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Senseable, Controllable{ //region vars and initialization - static final float timeToSleep = 60f * 1; + static final float timeToSleep = 60f * 1, timeToUncontrol = 60f * 6; static final ObjectSet tmpTiles = new ObjectSet<>(); static final Seq tempTileEnts = new Seq<>(); static final Seq tempTiles = new Seq<>(); @@ -57,6 +57,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, transient byte dump; transient int rotation; transient boolean enabled = true; + transient float enabledControlTime; PowerModule power; ItemModule items; @@ -134,8 +135,9 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, public final void writeBase(Writes write){ write.f(health); - write.b(rotation); + write.b(rotation | 0b10000000); write.b(team.id); + write.b(0); //extra padding for later use if(items != null) items.write(write); if(power != null) power.write(write); if(liquids != null) liquids.write(write); @@ -144,12 +146,20 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, public final void readBase(Reads read){ health = read.f(); - rotation = read.b(); + byte rot = read.b(); team = Team.get(read.b()); - if(items != null) items.read(read); - if(power != null) power.read(read); - if(liquids != null) liquids.read(read); - if(cons != null) cons.read(read); + + rotation = rot & 0b01111111; + boolean legacy = true; + if((rot & 0b10000000) != 0){ + read.b(); //padding + legacy = false; + } + + if(items != null) items.read(read, legacy); + if(power != null) power.read(read, legacy); + if(liquids != null) liquids.read(read, legacy); + if(cons != null) cons.read(read, legacy); } public void writeAll(Writes write){ @@ -330,15 +340,20 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, //endregion //region handler methods + /** Called when this block is dropped as a payload. */ + public void dropped(){ + + } + /** This is for logic blocks. */ public void handleString(Object value){ } public void created(){} - + public boolean shouldConsume(){ - return true; + return enabled; } public boolean productionValid(){ @@ -404,7 +419,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, int trns = block.size/2 + 1; Tile next = tile.getNearby(Geometry.d4(rotation).x * trns, Geometry.d4(rotation).y * trns); - if(next != null && next.build != null && next.build.team() == team && next.build.acceptPayload(base(), todump)){ + if(next != null && next.build != null && next.build.team == team && next.build.acceptPayload(base(), todump)){ next.build.handlePayload(base(), todump); return true; } @@ -425,7 +440,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, for(int i = 0; i < proximity.size; i++){ Building other = proximity.get((i + dump) % proximity.size); - if(other.team() == team && other.acceptPayload(base(), todump)){ + if(other.team == team && other.acceptPayload(base(), todump)){ other.handlePayload(base(), todump); incrementDump(proximity.size); return true; @@ -504,34 +519,31 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, next = next.getLiquidDestination(base(), liquid); - if(next.team() == team && next.block.hasLiquids && liquids.get(liquid) > 0f){ + if(next.team == team && next.block.hasLiquids && liquids.get(liquid) > 0f){ + float ofract = next.liquids.get(liquid) / next.block.liquidCapacity; + float fract = liquids.get(liquid) / block.liquidCapacity * block.liquidPressure; + float flow = Math.min(Mathf.clamp((fract - ofract) * (1f)) * (block.liquidCapacity), liquids.get(liquid)); + flow = Math.min(flow, next.block.liquidCapacity - next.liquids.get(liquid) - 0.001f); - if(next.acceptLiquid(base(), liquid, 0f)){ - float ofract = next.liquids().get(liquid) / next.block.liquidCapacity; - float fract = liquids.get(liquid) / block.liquidCapacity * block.liquidPressure; - float flow = Math.min(Mathf.clamp((fract - ofract) * (1f)) * (block.liquidCapacity), liquids.get(liquid)); - flow = Math.min(flow, next.block.liquidCapacity - next.liquids().get(liquid) - 0.001f); + if(flow > 0f && ofract <= fract && next.acceptLiquid(base(), liquid, flow)){ + next.handleLiquid(base(), liquid, flow); + liquids.remove(liquid, flow); + return flow; + }else if(next.liquids.currentAmount() / next.block.liquidCapacity > 0.1f && fract > 0.1f){ + //TODO these are incorrect effect positions + float fx = (x + next.x) / 2f, fy = (y + next.y) / 2f; - if(flow > 0f && ofract <= fract && next.acceptLiquid(base(), liquid, flow)){ - next.handleLiquid(base(), liquid, flow); - liquids.remove(liquid, flow); - return flow; - }else if(ofract > 0.1f && fract > 0.1f){ - //TODO these are incorrect effect positions - float fx = (x + next.x) / 2f, fy = (y + next.y) / 2f; - - Liquid other = next.liquids().current(); - if((other.flammability > 0.3f && liquid.temperature > 0.7f) || (liquid.flammability > 0.3f && other.temperature > 0.7f)){ - damage(1 * Time.delta); - next.damage(1 * Time.delta); - if(Mathf.chance(0.1 * Time.delta)){ - Fx.fire.at(fx, fy); - } - }else if((liquid.temperature > 0.7f && other.temperature < 0.55f) || (other.temperature > 0.7f && liquid.temperature < 0.55f)){ - liquids.remove(liquid, Math.min(liquids.get(liquid), 0.7f * Time.delta)); - if(Mathf.chance(0.2f * Time.delta)){ - Fx.steam.at(fx, fy); - } + Liquid other = next.liquids.current(); + if((other.flammability > 0.3f && liquid.temperature > 0.7f) || (liquid.flammability > 0.3f && other.temperature > 0.7f)){ + damage(1 * Time.delta); + next.damage(1 * Time.delta); + if(Mathf.chance(0.1 * Time.delta)){ + Fx.fire.at(fx, fy); + } + }else if((liquid.temperature > 0.7f && other.temperature < 0.55f) || (other.temperature > 0.7f && liquid.temperature < 0.55f)){ + liquids.remove(liquid, Math.min(liquids.get(liquid), 0.7f * Time.delta)); + if(Mathf.chance(0.2f * Time.delta)){ + Fx.steam.at(fx, fy); } } } @@ -562,7 +574,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, for(int i = 0; i < proximity.size; i++){ incrementDump(proximity.size); Building other = proximity.get((i + dump) % proximity.size); - if(other.team() == team && other.acceptItem(base(), item) && canDump(other, item)){ + if(other.team == team && other.acceptItem(base(), item) && canDump(other, item)){ other.handleItem(base(), item); return; } @@ -580,7 +592,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, for(int i = 0; i < proximity.size; i++){ incrementDump(proximity.size); Building other = proximity.get((i + dump) % proximity.size); - if(other.team() == team && other.acceptItem(base(), item) && canDump(other, item)){ + if(other.team == team && other.acceptItem(base(), item) && canDump(other, item)){ other.handleItem(base(), item); return true; } @@ -613,7 +625,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, for(int ii = 0; ii < content.items().size; ii++){ Item item = content.item(ii); - if(other.team() == team && items.has(item) && other.acceptItem(base(), item) && canDump(other, item)){ + if(other.team == team && items.has(item) && other.acceptItem(base(), item) && canDump(other, item)){ other.handleItem(base(), item); items.remove(item, 1); incrementDump(proximity.size); @@ -621,7 +633,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } } }else{ - if(other.team() == team && other.acceptItem(base(), todump) && canDump(other, todump)){ + if(other.team == team && other.acceptItem(base(), todump) && canDump(other, todump)){ other.handleItem(base(), todump); items.remove(todump, 1); incrementDump(proximity.size); @@ -647,7 +659,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, /** Try offloading an item to a nearby container in its facing direction. Returns true if success. */ public boolean moveForward(Item item){ Building other = front(); - if(other != null && other.team() == team && other.acceptItem(base(), item)){ + if(other != null && other.team == team && other.acceptItem(base(), item)){ other.handleItem(base(), item); return true; } @@ -751,6 +763,16 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, public void drawSelect(){ } + public void drawDisabled(){ + Draw.color(Color.scarlet); + Draw.alpha(0.8f); + + float size = 6f; + Draw.rect(Icon.cancel.getRegion(), x, y, size, size); + + Draw.reset(); + } + public void draw(){ Draw.rect(block.region, x, y, block.rotate ? rotdeg() : 0); @@ -871,7 +893,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, power += this.power.status * block.consumes.getPower().capacity; } - if(block.hasLiquids){ + if(block.hasLiquids && state.rules.damageExplosions){ liquids.each((liquid, amount) -> { float splash = Mathf.clamp(amount / 4f, 0f, 10f); @@ -887,7 +909,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, }); } - Damage.dynamicExplosion(x, y, flammability, explosiveness * 3.5f, power, tilesize * block.size / 2f, Pal.darkFlame); + Damage.dynamicExplosion(x, y, flammability, explosiveness * 3.5f, power, tilesize * block.size / 2f, Pal.darkFlame, state.rules.damageExplosions); + if(!floor().solid && !floor().isLiquid){ Effect.rubble(x, y, block.size); } @@ -1203,6 +1226,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, public void control(LAccess type, double p1, double p2, double p3, double p4){ if(type == LAccess.enabled){ enabled = !Mathf.zero((float)p1); + enabledControlTime = timeToUncontrol; } } @@ -1230,6 +1254,14 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, timeScale = 1f; } + if(block.autoResetEnabled){ + enabledControlTime -= Time.delta; + + if(enabledControlTime <= 0){ + enabled = true; + } + } + if(sound != null){ sound.update(x, y, shouldActiveSound()); } diff --git a/core/src/mindustry/entities/comp/CommanderComp.java b/core/src/mindustry/entities/comp/CommanderComp.java index 89be9842f5..39fdda447f 100644 --- a/core/src/mindustry/entities/comp/CommanderComp.java +++ b/core/src/mindustry/entities/comp/CommanderComp.java @@ -1,10 +1,13 @@ package mindustry.entities.comp; +import arc.func.*; +import arc.math.geom.*; import arc.struct.*; import arc.util.ArcAnnotate.*; import mindustry.ai.formations.*; import mindustry.ai.types.*; import mindustry.annotations.Annotations.*; +import mindustry.entities.*; import mindustry.entities.units.*; import mindustry.gen.*; @@ -12,6 +15,7 @@ import mindustry.gen.*; @Component abstract class CommanderComp implements Unitc{ private static final Seq members = new Seq<>(); + private static final Seq units = new Seq<>(); @Import float x, y, rotation; @@ -44,6 +48,28 @@ abstract class CommanderComp implements Unitc{ clearCommand(); } + void commandNearby(FormationPattern pattern){ + commandNearby(pattern, u -> true); + } + + void commandNearby(FormationPattern pattern, Boolf include){ + Formation formation = new Formation(new Vec3(x, y, rotation), pattern); + formation.slotAssignmentStrategy = new DistanceAssignmentStrategy(pattern); + + units.clear(); + + Units.nearby(team(), x, y, 200f, u -> { + if(u.isAI() && include.get(u) && u != base()){ + units.add(u); + } + }); + + units.sort(u -> u.dst2(this)); + units.truncate(type().commandLimit); + + command(formation, units); + } + void command(Formation formation, Seq units){ clearCommand(); diff --git a/core/src/mindustry/entities/comp/FireComp.java b/core/src/mindustry/entities/comp/FireComp.java index 075a96416b..e3b066a60f 100644 --- a/core/src/mindustry/entities/comp/FireComp.java +++ b/core/src/mindustry/entities/comp/FireComp.java @@ -15,14 +15,14 @@ import static mindustry.Vars.*; @EntityDef(value = {Firec.class}, pooled = true) @Component(base = true) -abstract class FireComp implements Timedc, Posc, Firec{ +abstract class FireComp implements Timedc, Posc, Firec, Syncc{ private static final float spreadChance = 0.05f, fireballChance = 0.07f; @Import float time, lifetime, x, y; Tile tile; - private Block block; - private float baseFlammability = -1, puddleFlammability; + private transient Block block; + private transient float baseFlammability = -1, puddleFlammability; @Override public void update(){ @@ -99,4 +99,9 @@ abstract class FireComp implements Timedc, Posc, Firec{ public void afterRead(){ Fires.register(base()); } + + @Override + public void afterSync(){ + Fires.register(base()); + } } diff --git a/core/src/mindustry/entities/comp/FlyingComp.java b/core/src/mindustry/entities/comp/FlyingComp.java index bc27a2b084..415337622b 100644 --- a/core/src/mindustry/entities/comp/FlyingComp.java +++ b/core/src/mindustry/entities/comp/FlyingComp.java @@ -14,7 +14,7 @@ import static mindustry.Vars.net; abstract class FlyingComp implements Posc, Velc, Healthc, Hitboxc{ private static final Vec2 tmp1 = new Vec2(), tmp2 = new Vec2(); - @Import float x, y; + @Import float x, y, speedMultiplier; @Import Vec2 vel; @SyncLocal float elevation; @@ -56,7 +56,7 @@ abstract class FlyingComp implements Posc, Velc, Healthc, Hitboxc{ float floorSpeedMultiplier(){ Floor on = isFlying() || hovering ? Blocks.air.asFloor() : floorOn(); - return on.speedMultiplier; + return on.speedMultiplier * speedMultiplier; } @Override diff --git a/core/src/mindustry/entities/comp/MechComp.java b/core/src/mindustry/entities/comp/MechComp.java index 60e9a7dbde..d258e75406 100644 --- a/core/src/mindustry/entities/comp/MechComp.java +++ b/core/src/mindustry/entities/comp/MechComp.java @@ -13,7 +13,7 @@ abstract class MechComp implements Posc, Flyingc, Hitboxc, Unitc, Mechc, Elevati @Override public void update(){ float len = deltaLen(); - baseRotation = Angles.moveToward(baseRotation, deltaAngle(), type().baseRotateSpeed * Mathf.clamp(len / type().speed)); - walkTime += Time.delta *len; + baseRotation = Angles.moveToward(baseRotation, deltaAngle(), type().baseRotateSpeed * Mathf.clamp(len / type().speed / Time.delta) * Time.delta); + walkTime += len; } } diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index d2bc746aa9..b715d4d7c4 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -95,7 +95,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc{ Building tile = payload.entity; int tx = Vars.world.toTile(x - tile.block().offset), ty = Vars.world.toTile(y - tile.block().offset); Tile on = Vars.world.tile(tx, ty); - if(on != null && Build.validPlace(tile.block(), tile.team(), tx, ty, tile.rotation)){ + if(on != null && Build.validPlace(tile.block(), tile.team, tx, ty, tile.rotation)){ int rot = (int)((rotation + 45f) / 90f) % 4; payload.place(on, rot); diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index 85ed95939e..53b53b4182 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -31,6 +31,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I @Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health; @Import boolean dead; @Import Team team; + @Import int id; private UnitController controller; private UnitType type; @@ -223,7 +224,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I //apply knockback based on spawns if(team != state.rules.waveTeam){ - float relativeSize = state.rules.dropZoneRadius + bounds()/2f + 1f; + float relativeSize = state.rules.dropZoneRadius + hitSize/2f + 1f; for(Tile spawn : spawner.getSpawns()){ if(within(spawn.worldx(), spawn.worldy(), relativeSize)){ vel().add(Tmp.v1.set(this).sub(spawn.worldx(), spawn.worldy()).setLength(0.1f + 1f - dst(spawn) / relativeSize).scl(0.45f * Time.delta)); @@ -275,10 +276,10 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I damageContinuous(floor.damageTaken); } - if(!net.client() && tile.solid()){ + if(tile.solid()){ if(type.canBoost){ elevation = 1f; - }else{ + }else if(!net.client()){ kill(); } } @@ -314,7 +315,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I public void destroy(){ float explosiveness = 2f + item().explosiveness * stack().amount; float flammability = item().flammability * stack().amount; - Damage.dynamicExplosion(x, y, flammability, explosiveness, 0f, bounds() / 2f, Pal.darkFlame); + Damage.dynamicExplosion(x, y, flammability, explosiveness, 0f, bounds() / 2f, Pal.darkFlame, state.rules.damageExplosions); float shake = hitSize / 3f; @@ -389,6 +390,6 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(dead || net.client()) return; //deaths are synced; this calls killed() - Call.unitDeath(base()); + Call.unitDeath(id); } } diff --git a/core/src/mindustry/entities/comp/VelComp.java b/core/src/mindustry/entities/comp/VelComp.java index b01e6322ce..469d217665 100644 --- a/core/src/mindustry/entities/comp/VelComp.java +++ b/core/src/mindustry/entities/comp/VelComp.java @@ -1,5 +1,6 @@ package mindustry.entities.comp; +import arc.math.*; import arc.math.geom.*; import arc.util.*; import mindustry.annotations.Annotations.*; @@ -18,7 +19,7 @@ abstract class VelComp implements Posc{ @Override public void update(){ move(vel.x * Time.delta, vel.y * Time.delta); - vel.scl(1f - drag * Time.delta); + vel.scl(Mathf.clamp(1f - drag * Time.delta)); } boolean moving(){ diff --git a/core/src/mindustry/entities/comp/WaterMoveComp.java b/core/src/mindustry/entities/comp/WaterMoveComp.java index d72fe4959b..92d3fffbf1 100644 --- a/core/src/mindustry/entities/comp/WaterMoveComp.java +++ b/core/src/mindustry/entities/comp/WaterMoveComp.java @@ -62,8 +62,8 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{ Draw.z(Layer.debris); - Floor floor = floorOn(); - Color color = Tmp.c1.set(floor.mapColor).mul(1.5f); + Floor floor = tileOn() == null ? Blocks.air.asFloor() : tileOn().floor(); + Color color = Tmp.c1.set(floor.mapColor.equals(Color.black) ? Blocks.water.mapColor : floor.mapColor).mul(1.5f); trailColor.lerp(color, Mathf.clamp(Time.delta * 0.04f)); tleft.draw(trailColor, type.trailScl); diff --git a/core/src/mindustry/entities/comp/WeaponsComp.java b/core/src/mindustry/entities/comp/WeaponsComp.java index fce81db655..5665bee7db 100644 --- a/core/src/mindustry/entities/comp/WeaponsComp.java +++ b/core/src/mindustry/entities/comp/WeaponsComp.java @@ -113,7 +113,8 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc{ can && //must be able to shoot (ammo > 0 || !state.rules.unitAmmo || team().rules().infiniteAmmo) && //check ammo (!weapon.alternate || mount.side == weapon.flipSprite) && - vel.len() >= mount.weapon.minShootVelocity && //check velocity requirements + //TODO checking for velocity this way isn't entirely correct + (vel.len() >= mount.weapon.minShootVelocity || (net.active() && !isLocal())) && //check velocity requirements mount.reload <= 0.0001f && //reload has to be 0 Angles.within(weapon.rotate ? mount.rotation : this.rotation, mount.targetRotation, mount.weapon.shootCone) //has to be within the cone ){ diff --git a/core/src/mindustry/entities/units/AIController.java b/core/src/mindustry/entities/units/AIController.java index f2ed8f4476..aa95959e60 100644 --- a/core/src/mindustry/entities/units/AIController.java +++ b/core/src/mindustry/entities/units/AIController.java @@ -2,7 +2,9 @@ package mindustry.entities.units; import arc.math.*; import arc.math.geom.*; +import arc.util.ArcAnnotate.*; import arc.util.*; +import mindustry.*; import mindustry.entities.*; import mindustry.gen.*; import mindustry.type.*; @@ -33,6 +35,10 @@ public class AIController implements UnitController{ updateMovement(); } + protected UnitCommand command(){ + return unit.team.data().command; + } + protected void updateMovement(){ } @@ -115,6 +121,10 @@ public class AIController implements UnitController{ } + protected @Nullable Tile getClosestSpawner(){ + return Geometry.findClosest(unit.x, unit.y, Vars.spawner.getSpawns()); + } + protected void circle(Position target, float circleLength){ circle(target, circleLength, unit.type().speed); } diff --git a/core/src/mindustry/entities/units/UnitCommand.java b/core/src/mindustry/entities/units/UnitCommand.java index d04d2481aa..977150a92d 100644 --- a/core/src/mindustry/entities/units/UnitCommand.java +++ b/core/src/mindustry/entities/units/UnitCommand.java @@ -3,7 +3,7 @@ package mindustry.entities.units; import arc.*; public enum UnitCommand{ - attack, retreat, rally, idle; + attack, rally, idle; private final String localized; public static final UnitCommand[] all = values(); diff --git a/core/src/mindustry/game/DefaultWaves.java b/core/src/mindustry/game/DefaultWaves.java index b7388040f5..6abdc46eb5 100644 --- a/core/src/mindustry/game/DefaultWaves.java +++ b/core/src/mindustry/game/DefaultWaves.java @@ -35,6 +35,12 @@ public class DefaultWaves{ max = 4; }}, + new SpawnGroup(UnitTypes.pulsar){{ + begin = 13; + spacing = 3; + unitScaling = 0.5f; + }}, + new SpawnGroup(UnitTypes.mace){{ begin = 7; spacing = 3; diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 03c45d6f95..531ca72cf2 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -30,7 +30,12 @@ public class EventType{ openWiki, teamCoreDamage, socketConfigChanged, - update + update, + draw, + preDraw, + postDraw, + uiDrawBegin, + uiDrawEnd } public static class WinEvent{} @@ -77,7 +82,6 @@ public class EventType{ } } - public static class CommandIssueEvent{ public final Building tile; public final UnitCommand command; @@ -106,27 +110,6 @@ public class EventType{ } } - /** Called when a zone's requirements are met. */ - public static class ZoneRequireCompleteEvent{ - public final SectorPreset zoneMet, zoneForMet; - public final Objectives.Objective objective; - - public ZoneRequireCompleteEvent(SectorPreset zoneMet, SectorPreset zoneForMet, Objectives.Objective objective){ - this.zoneMet = zoneMet; - this.zoneForMet = zoneForMet; - this.objective = objective; - } - } - - /** Called when a zone's requirements are met. */ - public static class ZoneConfigureCompleteEvent{ - public final SectorPreset zone; - - public ZoneConfigureCompleteEvent(SectorPreset zone){ - this.zone = zone; - } - } - /** Called when a sector is conquered, e.g. a boss or base is defeated. */ public static class SectorCaptureEvent{ public final Sector sector; diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index 8c277977fb..5cf90b9de5 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -40,6 +40,15 @@ public class Rules{ public boolean reactorExplosions = true; /** Whether schematics are allowed */ public boolean schematicAllowed = true; +<<<<<<< HEAD +======= + /** Whether copying is allowed */ + public boolean copyAllowed = true; + /** Whether friendly explosions can occur and set fire/damage other blocks. */ + public boolean damageExplosions = true; + /** Whether fire is enabled. */ + public boolean fire = true; +>>>>>>> fee15caf7aa42f112eebe4c465885b6c37fd51a5 /** Whether units use and require ammo. */ public boolean unitAmmo = false; /** How fast unit pads build units. */ diff --git a/core/src/mindustry/game/Saves.java b/core/src/mindustry/game/Saves.java index bf9dd2ae95..501eaf2c3c 100644 --- a/core/src/mindustry/game/Saves.java +++ b/core/src/mindustry/game/Saves.java @@ -23,14 +23,14 @@ import java.util.*; import static mindustry.Vars.*; public class Saves{ - private Seq saves = new Seq<>(); - private @Nullable SaveSlot current; + Seq saves = new Seq<>(); + @Nullable SaveSlot current; private @Nullable SaveSlot lastSectorSave; - private AsyncExecutor previewExecutor = new AsyncExecutor(1); + AsyncExecutor previewExecutor = new AsyncExecutor(1); private boolean saving; private float time; - private long totalPlaytime; + long totalPlaytime; private long lastTimestamp; public Saves(){ diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java index b9d2f69594..e513c31fc6 100644 --- a/core/src/mindustry/game/Teams.java +++ b/core/src/mindustry/game/Teams.java @@ -102,7 +102,7 @@ public class Teams{ } public void registerCore(CoreBuild core){ - TeamData data = get(core.team()); + TeamData data = get(core.team); //add core if not present if(!data.cores.contains(core)){ data.cores.add(core); @@ -117,7 +117,7 @@ public class Teams{ } public void unregisterCore(CoreBuild entity){ - TeamData data = get(entity.team()); + TeamData data = get(entity.team); //remove core data.cores.remove(entity); //unregister in active list @@ -181,7 +181,7 @@ public class Teams{ /** @return whether this team is controlled by the AI and builds bases. */ public boolean hasAI(){ - return state.rules.attackMode && team.rules().ai; + return team.rules().ai; } @Override diff --git a/core/src/mindustry/game/Tutorial.java b/core/src/mindustry/game/Tutorial.java index cfaa85a84c..bfa18e8e50 100644 --- a/core/src/mindustry/game/Tutorial.java +++ b/core/src/mindustry/game/Tutorial.java @@ -23,9 +23,9 @@ public class Tutorial{ private static final int mineCopper = 18; private static final int blocksToBreak = 3, blockOffset = -6; - private ObjectSet events = new ObjectSet<>(); - private ObjectIntMap blocksPlaced = new ObjectIntMap<>(); - private int sentence; + ObjectSet events = new ObjectSet<>(); + ObjectIntMap blocksPlaced = new ObjectIntMap<>(); + int sentence; public TutorialStage stage = TutorialStage.values()[0]; public Tutorial(){ diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java index c38ee07eb9..4e91437a76 100644 --- a/core/src/mindustry/game/Universe.java +++ b/core/src/mindustry/game/Universe.java @@ -140,7 +140,7 @@ public class Universe{ sector.setSecondsPassed(sector.getSecondsPassed() + actuallyPassed); //check if the sector has been attacked too many times... - if(sector.hasBase() && sector.getSecondsPassed() * 60f > turnDuration * sectorDestructionTurns){ + if(sector.hasBase() && sector.hasWaves() && sector.getSecondsPassed() * 60f > turnDuration * sectorDestructionTurns){ //fire event for losing the sector Events.fire(new SectorLoseEvent(sector)); diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 97382dd6d7..08b13bf9b8 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -249,7 +249,7 @@ public class BlockRenderer implements Disposable{ Draw.z(Layer.block); } - if(entity.team() != player.team()){ + if(entity.team != player.team()){ entity.drawTeam(); Draw.z(Layer.block); } diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java index b13011fbba..43c45ad221 100644 --- a/core/src/mindustry/graphics/FloorRenderer.java +++ b/core/src/mindustry/graphics/FloorRenderer.java @@ -256,5 +256,8 @@ public class FloorRenderer implements Disposable{ /** Maps cache layer ID to cache ID in the batch. * -1 means that this cache is unoccupied. */ int[] caches = new int[CacheLayer.all.length]; + + Chunk(){ + } } } diff --git a/core/src/mindustry/graphics/Layer.java b/core/src/mindustry/graphics/Layer.java index 87892852f2..519850a2f9 100644 --- a/core/src/mindustry/graphics/Layer.java +++ b/core/src/mindustry/graphics/Layer.java @@ -5,6 +5,9 @@ public class Layer{ public static final float + //min layer + min = -11, + //background, which may be planets or an image or nothing at all background = -10, @@ -81,7 +84,10 @@ public class Layer{ end = 200, //things after pixelation - used for text - endPixeled = 210 + endPixeled = 210, + + //max layer + max = 220 ; } diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java index 784d7654f1..133d8898b0 100644 --- a/core/src/mindustry/graphics/OverlayRenderer.java +++ b/core/src/mindustry/graphics/OverlayRenderer.java @@ -111,7 +111,7 @@ public class OverlayRenderer{ if(dst < state.rules.enemyCoreBuildRadius * 2.2f){ Draw.color(Color.darkGray); Lines.circle(core.x, core.y - 2, state.rules.enemyCoreBuildRadius); - Draw.color(Pal.accent, core.team().color, 0.5f + Mathf.absin(Time.time(), 10f, 0.5f)); + Draw.color(Pal.accent, core.team.color, 0.5f + Mathf.absin(Time.time(), 10f, 0.5f)); Lines.circle(core.x, core.y, state.rules.enemyCoreBuildRadius); } }); @@ -134,8 +134,11 @@ public class OverlayRenderer{ Vec2 vec = Core.input.mouseWorld(input.getMouseX(), input.getMouseY()); Building tile = world.buildWorld(vec.x, vec.y); - if(tile != null && tile.team() == player.team()){ + if(tile != null && tile.team == player.team()){ tile.drawSelect(); + if(!tile.enabled && tile.block.drawDisabled){ + tile.drawDisabled(); + } if(Core.input.keyDown(Binding.rotateplaced) && tile.block().rotate && tile.interactable(player.team())){ control.input.drawArrow(tile.block(), tile.tileX(), tile.tileY(), tile.rotation, true); diff --git a/core/src/mindustry/graphics/Pal.java b/core/src/mindustry/graphics/Pal.java index 3bff10a11a..052cd14326 100644 --- a/core/src/mindustry/graphics/Pal.java +++ b/core/src/mindustry/graphics/Pal.java @@ -9,6 +9,8 @@ public class Pal{ command = Color.valueOf("eab678"), sap = Color.valueOf("665c9f"), + sapBullet = Color.valueOf("bf92f9"), + sapBulletBack = Color.valueOf("6d56bf"), spore = Color.valueOf("7457ce"), diff --git a/core/src/mindustry/input/Binding.java b/core/src/mindustry/input/Binding.java index 517e50ca69..75655412cb 100644 --- a/core/src/mindustry/input/Binding.java +++ b/core/src/mindustry/input/Binding.java @@ -8,7 +8,8 @@ import arc.input.*; public enum Binding implements KeyBind{ move_x(new Axis(KeyCode.a, KeyCode.d), "general"), move_y(new Axis(KeyCode.s, KeyCode.w)), - mouse_move(KeyCode.mouseForward), + mouse_move(KeyCode.mouseBack), + pan(KeyCode.mouseForward), boost(KeyCode.shiftLeft), control(KeyCode.controlLeft), diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 82cea19de6..dfea18f26c 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -27,24 +27,35 @@ import static mindustry.Vars.*; import static mindustry.input.PlaceMode.*; public class DesktopInput extends InputHandler{ - private Vec2 movement = new Vec2(); + public Vec2 movement = new Vec2(); /** Current cursor type. */ - private Cursor cursorType = SystemCursor.arrow; + public Cursor cursorType = SystemCursor.arrow; /** Position where the player started dragging a line. */ - private int selectX, selectY, schemX, schemY; + public int selectX, selectY, schemX, schemY; /** Last known line positions.*/ - private int lastLineX, lastLineY, schematicX, schematicY; + public int lastLineX, lastLineY, schematicX, schematicY; /** Whether selecting mode is active. */ - private PlaceMode mode; + public PlaceMode mode; /** Animation scale for line. */ - private float selectScale; + public float selectScale; /** Selected build request for movement. */ - private @Nullable BuildPlan sreq; + public @Nullable BuildPlan sreq; /** Whether player is currently deleting removal requests. */ - private boolean deleting = false, shouldShoot = false; + public boolean deleting = false, shouldShoot = false, panning = false; + /** Mouse pan speed. */ + public float panScale = 0.005f, panSpeed = 4.5f, panBoostSpeed = 9f; @Override public void buildUI(Group group){ + group.fill(t -> { + t.visible(() -> Core.settings.getBool("hints") && !player.dead() && !player.unit().spawnedByCore() && !(Core.settings.getBool("hints") && lastSchematic != null && !selectRequests.isEmpty())); + t.bottom(); + t.table(Styles.black6, b -> { + b.defaults().left(); + b.label(() -> Core.bundle.format("respawn", Core.keybinds.get(Binding.respawn).key.toString())).style(Styles.outlineLabel); + }).margin(6f); + }); + group.fill(t -> { t.bottom(); t.visible(() -> { @@ -77,15 +88,6 @@ public class DesktopInput extends InputHandler{ }); }).margin(6f); }); - - group.fill(t -> { - t.visible(() -> Core.settings.getBool("hints") && !player.dead() && !player.unit().spawnedByCore()); - t.bottom(); - t.table(Styles.black6, b -> { - b.defaults().left(); - b.label(() -> Core.bundle.format("respawn", Core.keybinds.get(Binding.respawn).key.toString())).style(Styles.outlineLabel); - }).margin(6f); - }); } @Override @@ -132,14 +134,12 @@ public class DesktopInput extends InputHandler{ } //draw schematic requests - for(BuildPlan request : selectRequests){ - request.animScale = 1f; - drawRequest(request); - } + selectRequests.each(req -> { + req.animScale = 1f; + drawRequest(req); + }); - for(BuildPlan request : selectRequests){ - drawOverRequest(request); - } + selectRequests.each(this::drawOverRequest); if(player.isBuilder()){ //draw things that may be placed soon @@ -180,22 +180,35 @@ public class DesktopInput extends InputHandler{ ui.listfrag.toggle(); } - //TODO awful UI state checking code - if((player.dead() || state.isPaused()) && !ui.chatfrag.shown()){ - if(!(scene.getKeyboardFocus() instanceof TextField) && !scene.hasDialog()){ - //move camera around - float camSpeed = !Core.input.keyDown(Binding.boost) ? 3f : 8f; - Core.camera.position.add(Tmp.v1.setZero().add(Core.input.axis(Binding.move_x), Core.input.axis(Binding.move_y)).nor().scl(Time.delta * camSpeed)); + boolean panCam = false; + float camSpeed = !Core.input.keyDown(Binding.boost) ? panSpeed : panBoostSpeed; - if(Core.input.keyDown(Binding.mouse_move)){ - Core.camera.position.x += Mathf.clamp((Core.input.mouseX() - Core.graphics.getWidth() / 2f) * 0.005f, -1, 1) * camSpeed; - Core.camera.position.y += Mathf.clamp((Core.input.mouseY() - Core.graphics.getHeight() / 2f) * 0.005f, -1, 1) * camSpeed; - } + if(input.keyDown(Binding.pan)){ + panCam = true; + panning = true; + } + + if((Math.abs(Core.input.axis(Binding.move_x)) > 0 || Math.abs(Core.input.axis(Binding.move_y)) > 0 || input.keyDown(Binding.mouse_move)) && (!scene.hasField())){ + panning = false; + } + + //TODO awful UI state checking code + if(((player.dead() || state.isPaused()) && !ui.chatfrag.shown()) && (!scene.hasField() && !scene.hasDialog())){ + if(input.keyDown(Binding.mouse_move)){ + panCam = true; } - }else if(!player.dead()){ + panning = false; + + Core.camera.position.add(Tmp.v1.setZero().add(Core.input.axis(Binding.move_x), Core.input.axis(Binding.move_y)).nor().scl(Time.delta * camSpeed)); + }else if(!player.dead() && !panning){ Core.camera.position.lerpDelta(player, Core.settings.getBool("smoothcamera") ? 0.08f : 1f); } + if(panCam){ + Core.camera.position.x += Mathf.clamp((Core.input.mouseX() - Core.graphics.getWidth() / 2f) * panScale, -1, 1) * camSpeed; + Core.camera.position.y += Mathf.clamp((Core.input.mouseY() - Core.graphics.getHeight() / 2f) * panScale, -1, 1) * camSpeed; + } + shouldShoot = !scene.hasMouse(); if(!scene.hasMouse()){ @@ -327,22 +340,29 @@ public class DesktopInput extends InputHandler{ table.row(); table.left().margin(0f).defaults().size(48f).left(); + //TODO localize these + table.button(Icon.paste, Styles.clearPartiali, () -> { ui.schematics.show(); +<<<<<<< HEAD }).tooltip("Schematics"); +======= + + }).tooltip("@schematics").disabled(d -> !state.rules.schematicAllowed); +>>>>>>> fee15caf7aa42f112eebe4c465885b6c37fd51a5 table.button(Icon.tree, Styles.clearPartiali, () -> { ui.research.show(); - }).visible(() -> state.isCampaign()).tooltip("Research"); + }).visible(() -> state.isCampaign()).tooltip("@research"); table.button(Icon.map, Styles.clearPartiali, () -> { ui.planet.show(); - }).visible(() -> state.isCampaign()).tooltip("Planet Map"); + }).visible(() -> state.isCampaign()).tooltip("@planetmap"); table.button(Icon.up, Styles.clearPartiali, () -> { ui.planet.show(state.getSector(), player.team().core()); }).visible(() -> state.isCampaign()) - .disabled(b -> player.team().core() == null || !player.team().core().items.has(player.team().core().block.requirements)).tooltip("Launch Core"); + .disabled(b -> player.team().core() == null || !player.team().core().items.has(player.team().core().block.requirements)).tooltip("@launchcore"); } void pollInput(){ @@ -555,6 +575,8 @@ public class DesktopInput extends InputHandler{ @Override public void updateState(){ + super.updateState(); + if(state.isMenu()){ droppingItem = false; mode = none; @@ -574,7 +596,7 @@ public class DesktopInput extends InputHandler{ //limit speed to minimum formation speed to preserve formation if(unit instanceof Commanderc && ((Commanderc)unit).isCommanding()){ //add a tiny multiplier to let units catch up just in case - baseSpeed = ((Commanderc)unit).minFormationSpeed() * 0.98f; + baseSpeed = ((Commanderc)unit).minFormationSpeed() * 0.95f; } float speed = baseSpeed * Mathf.lerp(1f, unit.type().canBoost ? unit.type().boostMultiplier : 1f, unit.elevation) * strafePenalty; @@ -593,8 +615,8 @@ public class DesktopInput extends InputHandler{ if(aimCursor){ unit.lookAt(mouseAngle); }else{ - if(unit.moving()){ - unit.lookAt(unit.vel().angle()); + if(!movement.isZero()){ + unit.lookAt(unit.vel.isZero() ? movement.angle() : unit.vel.angle()); } } @@ -616,7 +638,6 @@ public class DesktopInput extends InputHandler{ //update payload input if(unit instanceof Payloadc){ - Payloadc pay = (Payloadc)unit; if(Core.input.keyTap(Binding.pickupCargo)){ tryPickupPayload(); diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 3fb7d31065..24ae825bfe 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -14,7 +14,6 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.ArcAnnotate.*; import arc.util.*; -import mindustry.ai.formations.*; import mindustry.ai.formations.patterns.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; @@ -63,13 +62,13 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public boolean isBuilding = true, buildWasAutoPaused = false; public @Nullable UnitType controlledType; - protected @Nullable Schematic lastSchematic; - protected GestureDetector detector; - protected PlaceLine line = new PlaceLine(); - protected BuildPlan resultreq; - protected BuildPlan brequest = new BuildPlan(); - protected Seq lineRequests = new Seq<>(); - protected Seq selectRequests = new Seq<>(); + public @Nullable Schematic lastSchematic; + public GestureDetector detector; + public PlaceLine line = new PlaceLine(); + public BuildPlan resultreq; + public BuildPlan brequest = new BuildPlan(); + public Seq lineRequests = new Seq<>(); + public Seq selectRequests = new Seq<>(); //methods to override @@ -108,6 +107,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, called = Loc.server, forward = true) public static void pickupUnitPayload(Player player, Unit target){ + if(player == null) return; + Unit unit = player.unit(); Payloadc pay = (Payloadc)unit; @@ -120,10 +121,12 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, called = Loc.server, forward = true) public static void pickupBlockPayload(Player player, Building tile){ + if(player == null) return; + Unit unit = player.unit(); Payloadc pay = (Payloadc)unit; - if(tile != null && tile.team() == unit.team && pay.payloads().size < unit.type().payloadCapacity + if(tile != null && tile.team == unit.team && pay.payloads().size < unit.type().payloadCapacity && unit.within(tile, tilesize * tile.block.size * 1.2f)){ //pick up block directly if(tile.block().buildVisibility != BuildVisibility.hidden && tile.block().size <= 2 && tile.canPickup()){ @@ -143,6 +146,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, called = Loc.server, forward = true) public static void dropPayload(Player player, float x, float y){ + if(player == null) return; + Payloadc pay = (Payloadc)player.unit(); //allow a slight margin of error @@ -156,6 +161,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.client, called = Loc.server) public static void dropItem(Player player, float angle){ + if(player == null) return; + if(net.server() && player.unit().stack.amount <= 0){ throw new ValidateException(player, "Player cannot drop an item."); } @@ -179,6 +186,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, forward = true, called = Loc.server) public static void transferInventory(Player player, Building tile){ if(player == null || tile == null) return; + if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, tile) || !netServer.admins.allowAction(player, ActionType.depositItem, tile.tile(), action -> { action.itemAmount = player.unit().stack.amount; @@ -217,6 +225,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, called = Loc.both, forward = true) public static void unitControl(Player player, @Nullable Unit unit){ + if(player == null) return; + //clear player unit when they possess a core if((unit instanceof BlockUnitc && ((BlockUnitc)unit).tile() instanceof CoreBuild)){ Fx.spawn.at(player); @@ -226,10 +236,12 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ player.clearUnit(); player.deathTimer = 61f; + ((CoreBuild)((BlockUnitc)unit).tile()).requestSpawn(player); + }else if(unit == null){ //just clear the unit (is this used?) player.clearUnit(); //make sure it's AI controlled, so players can't overwrite each other - }else if(unit.isAI() && unit.team == player.team() && !unit.deactivated()){ + }else if(unit.isAI() && unit.team == player.team() && !unit.deactivated() && !unit.dead){ player.unit(unit); Time.run(Fx.unitSpirit.lifetime, () -> Fx.unitControl.at(unit.x, unit.y, 0f, unit)); if(!player.dead()){ @@ -257,23 +269,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(commander.isCommanding()){ commander.clearCommand(); }else{ - FormationPattern pattern = new SquareFormation(); - Formation formation = new Formation(new Vec3(player.x, player.y, player.unit().rotation), pattern); - formation.slotAssignmentStrategy = new DistanceAssignmentStrategy(pattern); - - units.clear(); + commander.commandNearby(new SquareFormation()); Fx.commandSend.at(player); - Units.nearby(player.team(), player.x, player.y, 200f, u -> { - if(u.isAI()){ - units.add(u); - } - }); - - units.sort(u -> u.dst2(player.unit())); - units.truncate(player.unit().type().commandLimit); - - commander.command(formation, units); } } @@ -306,7 +304,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } if(controlledType != null && player.dead()){ - Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type() == controlledType && !u.deactivated()); + Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type() == controlledType && !u.deactivated() && !u.dead); if(unit != null){ Call.unitControl(player, unit); @@ -316,7 +314,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public void checkUnit(){ if(controlledType != null){ - Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type() == controlledType && !u.deactivated()); + Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type() == controlledType && !u.deactivated() && !u.dead); if(unit == null && controlledType == UnitTypes.block){ unit = world.buildWorld(player.x, player.y) instanceof ControlBlock ? ((ControlBlock)world.buildWorld(player.x, player.y)).unit() : null; } @@ -376,7 +374,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } public void updateState(){ - + if(state.isMenu()){ + controlledType = null; + } } public void drawBottom(){ @@ -542,11 +542,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(test.get(req)) return req; } - for(BuildPlan req : selectRequests){ - if(test.get(req)) return req; - } - - return null; + return selectRequests.find(test); } protected void drawBreakSelection(int x1, int y1, int x2, int y2){ @@ -877,7 +873,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } Building tile = world.buildWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y); - if(tile instanceof ControlBlock && tile.team() == player.team()){ + if(tile instanceof ControlBlock && tile.team == player.team()){ return ((ControlBlock)tile).unit(); } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 6b4de9b93f..d3ac4711fa 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -31,39 +31,39 @@ public class MobileInput extends InputHandler implements GestureListener{ /** Maximum speed the player can pan. */ private static final float maxPanSpeed = 1.3f; /** Distance to edge of screen to start panning. */ - private final float edgePan = Scl.scl(60f); + public final float edgePan = Scl.scl(60f); //gesture data - private Vec2 vector = new Vec2(), movement = new Vec2(), targetPos = new Vec2(); - private float lastZoom = -1; + public Vec2 vector = new Vec2(), movement = new Vec2(), targetPos = new Vec2(); + public float lastZoom = -1; /** Position where the player started dragging a line. */ - private int lineStartX, lineStartY, lastLineX, lastLineY; + public int lineStartX, lineStartY, lastLineX, lastLineY; /** Animation scale for line. */ - private float lineScale; + public float lineScale; /** Animation data for crosshair. */ - private float crosshairScale; - private Teamc lastTarget; + public float crosshairScale; + public Teamc lastTarget; /** Used for shifting build requests. */ - private float shiftDeltaX, shiftDeltaY; + public float shiftDeltaX, shiftDeltaY; /** Place requests to be removed. */ - private Seq removals = new Seq<>(); + public Seq removals = new Seq<>(); /** Whether or not the player is currently shifting all placed tiles. */ - private boolean selecting; + public boolean selecting; /** Whether the player is currently in line-place mode. */ - private boolean lineMode, schematicMode; + public boolean lineMode, schematicMode; /** Current place mode. */ - private PlaceMode mode = none; + public PlaceMode mode = none; /** Whether no recipe was available when switching to break mode. */ - private Block lastBlock; + public Block lastBlock; /** Last placed request. Used for drawing block overlay. */ - private BuildPlan lastPlaced; + public BuildPlan lastPlaced; /** Down tracking for panning.*/ - private boolean down = false; + public boolean down = false; - private Teamc target, moveTarget; + public Teamc target, moveTarget; //region utility methods @@ -77,7 +77,7 @@ public class MobileInput extends InputHandler implements GestureListener{ }else{ Building tile = world.buildWorld(x, y); - if(tile != null && player.team().isEnemy(tile.team())){ + if(tile != null && player.team().isEnemy(tile.team)){ player.miner().mineTile(null); target = tile; }else if(tile != null && player.unit().type().canHeal && tile.team == player.team() && tile.damaged()){ @@ -555,7 +555,9 @@ public class MobileInput extends InputHandler implements GestureListener{ if(cursor == null || Core.scene.hasMouse(x, y)) return false; Tile linked = cursor.build == null ? cursor : cursor.build.tile(); - checkTargets(worldx, worldy); + if(!player.dead()){ + checkTargets(worldx, worldy); + } //remove if request present if(hasRequest(cursor)){ @@ -850,19 +852,9 @@ public class MobileInput extends InputHandler implements GestureListener{ movement.set(targetPos).sub(player).limit(speed); movement.setAngle(Mathf.slerp(movement.angle(), unit.vel.angle(), 0.05f)); - //pathfind for ground units - if(!flying && !type.canBoost && !(unit instanceof WaterMovec)){ - Tile on = unit.tileOn(); - if(on != null && !on.solid()){ - Tile to = pathfinder.getTargetTile(unit.tileOn(), unit.team, targetPos); - if(to != null){ - movement.set(to).sub(unit).setLength(speed); - } - } - } - if(player.within(targetPos, attractDst)){ movement.setZero(); + unit.vel.approachDelta(Vec2.ZERO, type.speed * type.accel / 2f); } float expansion = 3f; diff --git a/core/src/mindustry/io/JsonIO.java b/core/src/mindustry/io/JsonIO.java index 3629ddebae..a8995103d0 100644 --- a/core/src/mindustry/io/JsonIO.java +++ b/core/src/mindustry/io/JsonIO.java @@ -68,7 +68,7 @@ public class JsonIO{ return json.prettyPrint(in); } - private static void apply(Json json){ + static void apply(Json json){ json.setIgnoreUnknownFields(true); json.setElementType(Rules.class, "spawns", SpawnGroup.class); json.setElementType(Rules.class, "loadout", ItemStack.class); diff --git a/core/src/mindustry/io/SaveFileReader.java b/core/src/mindustry/io/SaveFileReader.java index 07dde7eb8a..793d8b2eb8 100644 --- a/core/src/mindustry/io/SaveFileReader.java +++ b/core/src/mindustry/io/SaveFileReader.java @@ -34,7 +34,7 @@ public abstract class SaveFileReader{ "titan-factory", "legacy-unit-factory", "fortress-factory", "legacy-unit-factory", - "command-center", "legacy-command-center" + "mass-conveyor", "payload-conveyor" ); protected int lastRegionLength; diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java index db2746039e..f5d721f2c5 100644 --- a/core/src/mindustry/io/TypeIO.java +++ b/core/src/mindustry/io/TypeIO.java @@ -92,6 +92,9 @@ public class TypeIO{ write.b((byte)14); write.i(((byte[])object).length); write.b((byte[])object); + }else if(object instanceof UnitCommand){ + write.b((byte)15); + write.b(((UnitCommand)object).ordinal()); }else{ throw new IllegalArgumentException("Unknown object type: " + object.getClass()); } @@ -116,6 +119,7 @@ public class TypeIO{ case 12: return world.build(read.i()); case 13: return LAccess.all[read.s()]; case 14: int blen = read.i(); byte[] bytes = new byte[blen]; read.b(bytes); return bytes; + case 15: return UnitCommand.all[read.b()]; default: throw new IllegalArgumentException("Unknown object type: " + type); } } diff --git a/core/src/mindustry/io/legacy/LegacySaveVersion.java b/core/src/mindustry/io/legacy/LegacySaveVersion.java index 7e78855f7e..74e4a12286 100644 --- a/core/src/mindustry/io/legacy/LegacySaveVersion.java +++ b/core/src/mindustry/io/legacy/LegacySaveVersion.java @@ -74,10 +74,10 @@ public abstract class LegacySaveVersion extends SaveVersion{ tile.setTeam(Team.get(team)); tile.build.rotation = rotation; - if(tile.build.items != null) tile.build.items.read(Reads.get(stream)); - if(tile.build.power != null) tile.build.power.read(Reads.get(stream)); - if(tile.build.liquids != null) tile.build.liquids.read(Reads.get(stream)); - if(tile.build.cons != null) tile.build.cons.read(Reads.get(stream)); + if(tile.build.items != null) tile.build.items.read(Reads.get(stream), true); + if(tile.build.power != null) tile.build.power.read(Reads.get(stream), true); + if(tile.build.liquids != null) tile.build.liquids.read(Reads.get(stream), true); + if(tile.build.cons != null) tile.build.cons.read(Reads.get(stream), true); //read only from subclasses! tile.build.read(Reads.get(in), version); diff --git a/core/src/mindustry/logic/BinaryOp.java b/core/src/mindustry/logic/BinaryOp.java deleted file mode 100644 index 97601a231d..0000000000 --- a/core/src/mindustry/logic/BinaryOp.java +++ /dev/null @@ -1,46 +0,0 @@ -package mindustry.logic; - -import arc.math.*; - -public enum BinaryOp{ - add("+", (a, b) -> a + b), - sub("-", (a, b) -> a - b), - mul("*", (a, b) -> a * b), - div("/", (a, b) -> a / b), - mod("%", (a, b) -> a % b), - equal("==", (a, b) -> Math.abs(a - b) < 0.000001 ? 1 : 0), - notEqual("not", (a, b) -> Math.abs(a - b) < 0.000001 ? 0 : 1), - lessThan("<", (a, b) -> a < b ? 1 : 0), - lessThanEq("<=", (a, b) -> a <= b ? 1 : 0), - greaterThan(">", (a, b) -> a > b ? 1 : 0), - greaterThanEq(">=", (a, b) -> a >= b ? 1 : 0), - pow("^", Math::pow), - shl(">>", (a, b) -> (int)a >> (int)b), - shr("<<", (a, b) -> (int)a << (int)b), - or("or", (a, b) -> (int)a | (int)b), - and("and", (a, b) -> (int)a & (int)b), - xor("xor", (a, b) -> (int)a ^ (int)b), - max("max", Math::max), - min("min", Math::min), - atan2("atan2", (x, y) -> Mathf.atan2((float)x, (float)y) * Mathf.radDeg), - dst("dst", (x, y) -> Mathf.dst((float)x, (float)y)); - - public static final BinaryOp[] all = values(); - - public final OpLambda function; - public final String symbol; - - BinaryOp(String symbol, OpLambda function){ - this.symbol = symbol; - this.function = function; - } - - @Override - public String toString(){ - return symbol; - } - - interface OpLambda{ - double get(double a, double b); - } -} diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index 21a3c95e8b..8ac7481dd0 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -96,7 +96,7 @@ public class LAssembler{ if(c == '"'){ inString = !inString; }else if(c == ' ' && !inString){ - tokens.add(line.substring(lastIdx, i).replace("\\n", "\n")); + tokens.add(line.substring(lastIdx, i)); lastIdx = i + 1; } } @@ -106,6 +106,32 @@ public class LAssembler{ arr = new String[]{line}; } + String type = arr[0]; + + //legacy stuff + if(type.equals("bop")){ + arr[0] = "op"; + + //field order for bop used to be op a, b, result, but now it's op result a b + String res = arr[4]; + arr[4] = arr[3]; + arr[3] = arr[2]; + arr[2] = res; + }else if(type.equals("uop")){ + arr[0] = "op"; + + if(arr[1].equals("negate")){ + arr = new String[]{ + "op", "mul", arr[3], arr[2], "-1" + }; + }else{ + //field order for uop used to be op a, result, but now it's op result a + String res = arr[3]; + arr[3] = arr[2]; + arr[2] = res; + } + } + LStatement st = LogicIO.read(arr); if(st != null){ @@ -121,6 +147,7 @@ public class LAssembler{ } } }catch(Exception parseFailed){ + parseFailed.printStackTrace(); //when parsing fails, add a dummy invalid statement statements.add(new InvalidStatement()); } @@ -135,7 +162,7 @@ public class LAssembler{ //string case if(symbol.startsWith("\"") && symbol.endsWith("\"")){ - return putConst("___" + symbol, symbol.substring(1, symbol.length() - 1)).id; + return putConst("___" + symbol, symbol.substring(1, symbol.length() - 1).replace("\\n", "\n")).id; } try{ diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index 8469f0632f..c00a69b887 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -20,9 +20,8 @@ import mindustry.ui.*; import mindustry.world.blocks.logic.*; public class LCanvas extends Table{ - private static final Color backgroundCol = Pal.darkMetal.cpy().mul(0.1f), gridCol = Pal.darkMetal.cpy().mul(0.5f); - private static Seq postDraw = new Seq<>(); - private Vec2 offset = new Vec2(); + static Seq postDraw = new Seq<>(); + static Seq postDrawPriority = new Seq<>(); DragLayout statements; StatementElem dragging; @@ -91,11 +90,27 @@ public class LCanvas extends Table{ this.statements.layout(); } + @Override + public void act(float delta){ + super.act(delta); + + if(Core.input.isTouched()){ + float y = Core.input.mouseY(); + float dst = Math.min(y - this.y, Core.graphics.getHeight() - y); + if(dst < Scl.scl(100f)){ //scroll margin + int sign = Mathf.sign(Core.graphics.getHeight()/2f - y); + pane.setScrollY(pane.getScrollY() + sign * Scl.scl(15f)); + } + } + } + @Override public void draw(){ postDraw.clear(); + postDrawPriority.clear(); super.draw(); postDraw.each(Runnable::run); + postDrawPriority.each(Runnable::run); } public class DragLayout extends WidgetGroup{ @@ -252,7 +267,7 @@ public class LCanvas extends Table{ return false; } - Vec2 v = localToStageCoordinates(Tmp.v1.set(x, y)); + Vec2 v = localToParentCoordinates(Tmp.v1.set(x, y)); lastx = v.x; lasty = v.y; dragging = StatementElem.this; @@ -263,7 +278,7 @@ public class LCanvas extends Table{ @Override public void touchDragged(InputEvent event, float x, float y, int pointer){ - Vec2 v = localToStageCoordinates(Tmp.v1.set(x, y)); + Vec2 v = localToParentCoordinates(Tmp.v1.set(x, y)); translation.add(v.x - lastx, v.y - lasty); lastx = v.x; @@ -317,16 +332,18 @@ public class LCanvas extends Table{ } public static class JumpButton extends ImageButton{ + Color hoverColor = Pal.place; + Color defaultColor = Color.white; @NonNull Prov to; boolean selecting; float mx, my; + ClickListener listener; - public JumpButton(Color color, @NonNull Prov getter, Cons setter){ + public JumpButton(@NonNull Prov getter, Cons setter){ super(Tex.logicNode, Styles.colori); to = getter; - - getStyle().imageUpColor = color; + addListener(listener = new ClickListener()); addListener(new InputListener(){ @Override @@ -362,6 +379,9 @@ public class LCanvas extends Table{ if(to.get() != null && to.get().parent == null){ setter.get(null); } + + setColor(listener.isOver() ? hoverColor : defaultColor); + getStyle().imageUpColor = this.color; }); } @@ -369,7 +389,7 @@ public class LCanvas extends Table{ public void draw(){ super.draw(); - postDraw.add(() -> { + (listener.isOver() ? postDrawPriority : postDraw).add(() -> { Element hover = to.get() == null && selecting ? hovered() : to.get(); float tx = 0, ty = 0; boolean draw = false; @@ -402,10 +422,12 @@ public class LCanvas extends Table{ } if(draw){ - drawCurve(rx + width/2f, ry + height/2f, tx, ty, color); + drawCurve(rx + width/2f, ry + height/2f, tx, ty); float s = width; + Draw.color(color); Tex.logicNode.draw(tx + s*0.75f, ty - s/2f, -s, s); + Draw.reset(); } }); } @@ -421,7 +443,7 @@ public class LCanvas extends Table{ return (StatementElem)e; } - void drawCurve(float x, float y, float x2, float y2, Color color){ + void drawCurve(float x, float y, float x2, float y2){ Lines.stroke(4f, color); Draw.alpha(parentAlpha); @@ -434,8 +456,6 @@ public class LCanvas extends Table{ x2, y2, Math.max(20, (int)(Mathf.dst(x, y, x2, y2) / 5)) ); - - Draw.reset(); } } } diff --git a/core/src/mindustry/logic/LCategory.java b/core/src/mindustry/logic/LCategory.java index 7689cd7819..b576261f74 100644 --- a/core/src/mindustry/logic/LCategory.java +++ b/core/src/mindustry/logic/LCategory.java @@ -7,7 +7,7 @@ public enum LCategory{ blocks(Pal.accentBack), control(Color.cyan.cpy().shiftSaturation(-0.6f).mul(0.7f)), operations(Pal.place.cpy().shiftSaturation(-0.5f).mul(0.7f)), - io(Pal.remove.cpy().shiftSaturation(-0.5f).mul(0.7f));; + io(Pal.remove.cpy().shiftSaturation(-0.5f).mul(0.7f)); public final Color color; diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index dbdb146513..3b201e4809 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -21,7 +21,8 @@ public class LExecutor{ varTime = 1; public static final int - maxGraphicsBuffer = 512, + maxGraphicsBuffer = 256, + maxDisplayBuffer = 512, maxTextBuffer = 256; public LInstruction[] instructions = {}; @@ -177,9 +178,7 @@ public class LExecutor{ public void run(LExecutor exec){ int address = exec.numi(index); - if(address >= 0 && address < exec.links.length){ - exec.setobj(output, exec.links[address]); - } + exec.setobj(output, address >= 0 && address < exec.links.length ? exec.links[address] : null); } } @@ -379,40 +378,26 @@ public class LExecutor{ } } - public static class BinaryOpI implements LInstruction{ - public BinaryOp op = BinaryOp.add; + public static class OpI implements LInstruction{ + public LogicOp op = LogicOp.add; public int a, b, dest; - public BinaryOpI(BinaryOp op, int a, int b, int dest){ + public OpI(LogicOp op, int a, int b, int dest){ this.op = op; this.a = a; this.b = b; this.dest = dest; } - BinaryOpI(){} + OpI(){} @Override public void run(LExecutor exec){ - exec.setnum(dest, op.function.get(exec.num(a), exec.num(b))); - } - } - - public static class UnaryOpI implements LInstruction{ - public UnaryOp op = UnaryOp.negate; - public int value, dest; - - public UnaryOpI(UnaryOp op, int value, int dest){ - this.op = op; - this.value = value; - this.dest = dest; - } - - UnaryOpI(){} - - @Override - public void run(LExecutor exec){ - exec.setnum(dest, op.function.get(exec.num(value))); + if(op.unary){ + exec.setnum(dest, op.function1.get(exec.num(a))); + }else{ + exec.setnum(dest, op.function2.get(exec.num(a), exec.num(b))); + } } } @@ -478,8 +463,10 @@ public class LExecutor{ Building build = exec.building(target); if(build instanceof LogicDisplayBuild){ LogicDisplayBuild d = (LogicDisplayBuild)build; - for(int i = 0; i < exec.graphicsBuffer.size; i++){ - d.commands.addLast(exec.graphicsBuffer.items[i]); + if(d.commands.size + exec.graphicsBuffer.size < maxDisplayBuffer){ + for(int i = 0; i < exec.graphicsBuffer.size; i++){ + d.commands.addLast(exec.graphicsBuffer.items[i]); + } } exec.graphicsBuffer.clear(); } diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 8afd76c109..1a8abf221b 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1,7 +1,6 @@ package mindustry.logic; import arc.func.*; -import arc.graphics.*; import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; @@ -56,15 +55,23 @@ public class LStatements{ } } - @RegisterStatement("getlink") - public static class GetLinkStatement extends LStatement{ - public String output = "result", address = "0"; + @RegisterStatement("read") + public static class ReadStatement extends LStatement{ + public String output = "result", target = "cell1", address = "0"; @Override public void build(Table table){ + table.add(" read "); + field(table, output, str -> output = str); - table.add(" = link# "); + table.add(" = "); + + fields(table, target, str -> target = str); + + row(table); + + table.add(" at "); field(table, address, str -> address = str); } @@ -76,7 +83,7 @@ public class LStatements{ @Override public LInstruction build(LAssembler builder){ - return new GetLinkI(builder.var(output), builder.var(address)); + return new ReadI(builder.var(target), builder.var(address), builder.var(output)); } } @@ -112,38 +119,6 @@ public class LStatements{ } } - @RegisterStatement("read") - public static class ReadStatement extends LStatement{ - public String output = "result", target = "cell1", address = "0"; - - @Override - public void build(Table table){ - table.add(" read "); - - field(table, output, str -> output = str); - - table.add(" = "); - - fields(table, target, str -> target = str); - - row(table); - - table.add(" at "); - - field(table, address, str -> address = str); - } - - @Override - public LCategory category(){ - return LCategory.io; - } - - @Override - public LInstruction build(LAssembler builder){ - return new ReadI(builder.var(target), builder.var(address), builder.var(output)); - } - } - @RegisterStatement("draw") public static class DrawStatement extends LStatement{ public GraphicsType type = GraphicsType.clear; @@ -253,6 +228,26 @@ public class LStatements{ } } + @RegisterStatement("print") + public static class PrintStatement extends LStatement{ + public String value = "\"frog\""; + + @Override + public void build(Table table){ + field(table, value, str -> value = str).width(0f).growX().padRight(3); + } + + @Override + public LInstruction build(LAssembler builder){ + return new PrintI(builder.var(value)); + } + + @Override + public LCategory category(){ + return LCategory.io; + } + } + @RegisterStatement("drawflush") public static class DrawFlushStatement extends LStatement{ public String target = "display1"; @@ -274,26 +269,6 @@ public class LStatements{ } } - @RegisterStatement("print") - public static class PrintStatement extends LStatement{ - public String value = "\"frog\""; - - @Override - public void build(Table table){ - field(table, value, str -> value = str).width(0f).growX().padRight(3); - } - - @Override - public LInstruction build(LAssembler builder){ - return new PrintI(builder.var(value)); - } - - @Override - public LCategory category(){ - return LCategory.control; - } - } - @RegisterStatement("printflush") public static class PrintFlushStatement extends LStatement{ public String target = "message1"; @@ -315,6 +290,30 @@ public class LStatements{ } } + @RegisterStatement("getlink") + public static class GetLinkStatement extends LStatement{ + public String output = "result", address = "0"; + + @Override + public void build(Table table){ + field(table, output, str -> output = str); + + table.add(" = link# "); + + field(table, address, str -> address = str); + } + + @Override + public LCategory category(){ + return LCategory.blocks; + } + + @Override + public LInstruction build(LAssembler builder){ + return new GetLinkI(builder.var(output), builder.var(address)); + } + } + @RegisterStatement("control") public static class ControlStatement extends LStatement{ public LAccess type = LAccess.enabled; @@ -372,7 +371,7 @@ public class LStatements{ public static class RadarStatement extends LStatement{ public RadarTarget target1 = RadarTarget.enemy, target2 = RadarTarget.any, target3 = RadarTarget.any; public RadarSort sort = RadarSort.distance; - public String radar = "turret1", sortOrder = "0", output = "result"; + public String radar = "turret1", sortOrder = "1", output = "result"; @Override public void build(Table table){ @@ -561,62 +560,51 @@ public class LStatements{ } } - @RegisterStatement("bop") - public static class BinaryOpStatement extends LStatement{ - public BinaryOp op = BinaryOp.add; - public String a = "a", b = "b", dest = "result"; + @RegisterStatement("op") + public static class OperationStatement extends LStatement{ + public LogicOp op = LogicOp.add; + public String dest = "result", a = "a", b = "b"; @Override public void build(Table table){ + rebuild(table); + } + + void rebuild(Table table){ + table.clearChildren(); + field(table, dest, str -> dest = str); table.add(" = "); - row(table); + if(op.unary){ + opButton(table); - field(table, a, str -> a = str); + field(table, a, str -> a = str); + }else{ + row(table); + field(table, a, str -> a = str); + + opButton(table); + + field(table, b, str -> b = str); + } + } + + void opButton(Table table){ table.button(b -> { b.label(() -> op.symbol); - b.clicked(() -> showSelect(b, BinaryOp.all, op, o -> op = o)); + b.clicked(() -> showSelect(b, LogicOp.all, op, o -> { + op = o; + rebuild(table); + })); }, Styles.logict, () -> {}).size(60f, 40f).pad(4f).color(table.color); - - field(table, b, str -> b = str); } @Override public LInstruction build(LAssembler builder){ - return new BinaryOpI(op,builder.var(a), builder.var(b), builder.var(dest)); - } - - @Override - public LCategory category(){ - return LCategory.operations; - } - } - - @RegisterStatement("uop") - public static class UnaryOpStatement extends LStatement{ - public UnaryOp op = UnaryOp.negate; - public String value = "b", dest = "result"; - - @Override - public void build(Table table){ - field(table, dest, str -> dest = str); - - table.add(" = "); - - table.button(b -> { - b.label(() -> op.symbol); - b.clicked(() -> showSelect(b, UnaryOp.all, op, o -> op = o)); - }, Styles.logict, () -> {}).size(50f, 40f).pad(3f).color(table.color); - - field(table, value, str -> value = str); - } - - @Override - public LInstruction build(LAssembler builder){ - return new UnaryOpI(op, builder.var(value), builder.var(dest)); + return new OpI(op,builder.var(a), builder.var(b), builder.var(dest)); } @Override @@ -666,7 +654,7 @@ public class LStatements{ field(table, compare, str -> compare = str); table.add().growX(); - table.add(new JumpButton(Color.white, () -> dest, s -> dest = s)).size(30).right().padLeft(-8); + table.add(new JumpButton(() -> dest, s -> dest = s)).size(30).right().padLeft(-8); } //elements need separate conversion logic diff --git a/core/src/mindustry/logic/LogicDialog.java b/core/src/mindustry/logic/LogicDialog.java index daef141a29..a9f2debfbb 100644 --- a/core/src/mindustry/logic/LogicDialog.java +++ b/core/src/mindustry/logic/LogicDialog.java @@ -36,7 +36,7 @@ public class LogicDialog extends BaseDialog{ t.button("@schematic.copy.import", Icon.download, style, () -> { dialog.hide(); try{ - canvas.load(Core.app.getClipboardText()); + canvas.load(Core.app.getClipboardText().replace("\r\n", "\n")); }catch(Throwable e){ ui.showException(e); } @@ -61,7 +61,12 @@ public class LogicDialog extends BaseDialog{ for(Prov prov : LogicIO.allStatements){ LStatement example = prov.get(); if(example instanceof InvalidStatement) continue; - t.button(example.name(), Styles.cleart, () -> { + + TextButtonStyle style = new TextButtonStyle(Styles.cleart); + style.fontColor = example.category().color; + style.font = Fonts.outline; + + t.button(example.name(), style, () -> { canvas.add(prov.get()); dialog.hide(); }).size(140f, 50f); diff --git a/core/src/mindustry/logic/LogicOp.java b/core/src/mindustry/logic/LogicOp.java new file mode 100644 index 0000000000..616ae5a464 --- /dev/null +++ b/core/src/mindustry/logic/LogicOp.java @@ -0,0 +1,75 @@ +package mindustry.logic; + +import arc.math.*; + +public enum LogicOp{ + add("+", (a, b) -> a + b), + sub("-", (a, b) -> a - b), + mul("*", (a, b) -> a * b), + div("/", (a, b) -> a / b), + mod("%", (a, b) -> a % b), + equal("==", (a, b) -> Math.abs(a - b) < 0.000001 ? 1 : 0), + notEqual("not", (a, b) -> Math.abs(a - b) < 0.000001 ? 0 : 1), + lessThan("<", (a, b) -> a < b ? 1 : 0), + lessThanEq("<=", (a, b) -> a <= b ? 1 : 0), + greaterThan(">", (a, b) -> a > b ? 1 : 0), + greaterThanEq(">=", (a, b) -> a >= b ? 1 : 0), + pow("^", Math::pow), + shl(">>", (a, b) -> (int)a >> (int)b), + shr("<<", (a, b) -> (int)a << (int)b), + or("or", (a, b) -> (int)a | (int)b), + and("and", (a, b) -> (int)a & (int)b), + xor("xor", (a, b) -> (int)a ^ (int)b), + max("max", Math::max), + min("min", Math::min), + atan2("atan2", (x, y) -> Mathf.atan2((float)x, (float)y) * Mathf.radDeg), + dst("dst", (x, y) -> Mathf.dst((float)x, (float)y)), + + not("not", a -> ~(int)(a)), + abs("abs", a -> Math.abs(a)), + log("log", Math::log), + log10("log10", Math::log10), + sin("sin", d -> Math.sin(d * 0.017453292519943295D)), + cos("cos", d -> Math.cos(d * 0.017453292519943295D)), + tan("tan", d -> Math.tan(d * 0.017453292519943295D)), + floor("floor", Math::floor), + ceil("ceil", Math::ceil), + sqrt("sqrt", Math::sqrt), + rand("rand", d -> Mathf.rand.nextDouble() * d), + + ; + + public static final LogicOp[] all = values(); + + public final OpLambda2 function2; + public final OpLambda1 function1; + public final boolean unary; + public final String symbol; + + LogicOp(String symbol, OpLambda2 function){ + this.symbol = symbol; + this.function2 = function; + this.function1 = null; + this.unary = false; + } + + LogicOp(String symbol, OpLambda1 function){ + this.symbol = symbol; + this.function1 = function; + this.function2 = null; + this.unary = true; + } + + @Override + public String toString(){ + return symbol; + } + + interface OpLambda2{ + double get(double a, double b); + } + + interface OpLambda1{ + double get(double a); + } +} diff --git a/core/src/mindustry/logic/UnaryOp.java b/core/src/mindustry/logic/UnaryOp.java deleted file mode 100644 index 80e8fd1ef3..0000000000 --- a/core/src/mindustry/logic/UnaryOp.java +++ /dev/null @@ -1,38 +0,0 @@ -package mindustry.logic; - -import arc.math.*; - -public enum UnaryOp{ - negate("-", a -> -a), - not("not", a -> ~(int)(a)), - abs("abs", Math::abs), - log("log", Math::log), - log10("log10", Math::log10), - sin("sin", d -> Math.sin(d * 0.017453292519943295D)), - cos("cos", d -> Math.cos(d * 0.017453292519943295D)), - tan("tan", d -> Math.tan(d * 0.017453292519943295D)), - floor("floor", Math::floor), - ceil("ceil", Math::ceil), - sqrt("sqrt", Math::sqrt), - rand("rand", d -> Mathf.rand.nextDouble() * d), - ; - - public static final UnaryOp[] all = values(); - - public final UnaryOpLambda function; - public final String symbol; - - UnaryOp(String symbol, UnaryOpLambda function){ - this.symbol = symbol; - this.function = function; - } - - @Override - public String toString(){ - return symbol; - } - - interface UnaryOpLambda{ - double get(double a); - } -} diff --git a/core/src/mindustry/maps/Maps.java b/core/src/mindustry/maps/Maps.java index f36fe9e6cf..137b91bb36 100644 --- a/core/src/mindustry/maps/Maps.java +++ b/core/src/mindustry/maps/Maps.java @@ -32,7 +32,7 @@ public class Maps{ /** List of all built-in maps. Filenames only. */ private static String[] defaultMapNames = {"maze", "fortress", "labyrinth", "islands", "tendrils", "caldera", "wasteland", "shattered", "fork", "triad", "veins", "glacier"}; /** Maps tagged as PvP */ - private static final String[] pvpMaps = {"veins", "glacier"}; + static final String[] pvpMaps = {"veins", "glacier"}; /** All maps stored in an ordered array. */ private Seq maps = new Seq<>(); /** Serializer for meta. */ diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index b3f7036dca..d4a8087e91 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -35,9 +35,9 @@ import java.lang.reflect.*; @SuppressWarnings("unchecked") public class ContentParser{ private static final boolean ignoreUnknownFields = true; - private ObjectMap, ContentType> contentTypes = new ObjectMap<>(); + ObjectMap, ContentType> contentTypes = new ObjectMap<>(); - private ObjectMap, FieldParser> classParsers = new ObjectMap, FieldParser>(){{ + ObjectMap, FieldParser> classParsers = new ObjectMap, FieldParser>(){{ put(Effect.class, (type, data) -> field(Fx.class, data)); put(Schematic.class, (type, data) -> { Object result = fieldOpt(Loadouts.class, data); @@ -105,7 +105,7 @@ public class ContentParser{ private Seq reads = new Seq<>(); private Seq postreads = new Seq<>(); private ObjectSet toBeParsed = new ObjectSet<>(); - private LoadedMod currentMod; + LoadedMod currentMod; private Content currentContent; private Json parser = new Json(){ @@ -480,7 +480,7 @@ public class ContentParser{ return first != null ? first : Vars.content.getByName(type, currentMod.name + "-" + name); } - private T make(Class type){ + T make(Class type){ try{ Constructor cons = type.getDeclaredConstructor(); cons.setAccessible(true); @@ -515,7 +515,7 @@ public class ContentParser{ } } - private Object field(Class type, JsonValue value){ + Object field(Class type, JsonValue value){ return field(type, value.asString()); } @@ -530,7 +530,7 @@ public class ContentParser{ } } - private Object fieldOpt(Class type, JsonValue value){ + Object fieldOpt(Class type, JsonValue value){ try{ return type.getField(value.asString()).get(null); }catch(Exception e){ @@ -538,7 +538,7 @@ public class ContentParser{ } } - private void checkNullFields(Object object){ + void checkNullFields(Object object){ if(object instanceof Number || object instanceof String || toBeParsed.contains(object)) return; parser.getFields(object.getClass()).values().toSeq().each(field -> { @@ -559,7 +559,7 @@ public class ContentParser{ readFields(object, jsonMap); } - private void readFields(Object object, JsonValue jsonMap){ + void readFields(Object object, JsonValue jsonMap){ toBeParsed.remove(object); Class type = object.getClass(); ObjectMap fields = parser.getFields(type); @@ -593,7 +593,7 @@ public class ContentParser{ } /** Tries to resolve a class from a list of potential class names. */ - private Class resolve(String base, String... potentials){ + Class resolve(String base, String... potentials){ if(!base.isEmpty() && Character.isLowerCase(base.charAt(0))) base = Strings.capitalize(base); for(String type : potentials){ diff --git a/core/src/mindustry/mod/ModLoadingMusic.java b/core/src/mindustry/mod/ModLoadingMusic.java new file mode 100644 index 0000000000..8797456a18 --- /dev/null +++ b/core/src/mindustry/mod/ModLoadingMusic.java @@ -0,0 +1,79 @@ +package mindustry.mod; + +import arc.audio.*; +import arc.mock.*; +import arc.util.ArcAnnotate.*; + +public class ModLoadingMusic implements Music{ + public @NonNull Music music = new MockMusic(); + + @Override + public void play(){ + music.play(); + } + + @Override + public void pause(){ + music.pause(); + } + + @Override + public void stop(){ + music.stop(); + } + + @Override + public boolean isPlaying(){ + return music.isPlaying(); + } + + @Override + public boolean isLooping(){ + return music.isLooping(); + } + + @Override + public void setLooping(boolean isLooping){ + music.setLooping(isLooping); + } + + @Override + public float getVolume(){ + return music.getVolume(); + } + + @Override + public void setVolume(float volume){ + music.setVolume(volume); + } + + @Override + public void setPan(float pan, float volume){ + music.setPan(pan, volume); + } + + @Override + public float getPosition(){ + return music.getPosition(); + } + + @Override + public void setPosition(float position){ + music.setPosition(position); + } + + @Override + public void dispose(){ + music.dispose(); + } + + @Override + public void setCompletionListener(OnCompletionListener listener){ + music.setCompletionListener(listener); + } + + @Override + public boolean isDisposed(){ + return music.isDisposed(); + } +} diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index f7893eea1f..2a87330c82 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -39,7 +39,7 @@ public class Mods implements Loadable{ private int totalSprites; private MultiPacker packer; - private Seq mods = new Seq<>(); + Seq mods = new Seq<>(); private ObjectMap, ModMeta> metas = new ObjectMap<>(); private boolean requiresReload, createdAtlas; @@ -454,7 +454,7 @@ public class Mods implements Loadable{ content.setCurrentMod(null); } - Log.debug("Time to initialize modded scripts: @", Time.elapsed()); + Log.info("Time to initialize modded scripts: @", Time.elapsed()); } /** Creates all the content found in mod files. */ @@ -586,58 +586,70 @@ public class Mods implements Loadable{ /** Loads a mod file+meta, but does not add it to the list. * Note that directories can be loaded as mods.*/ private LoadedMod loadMod(Fi sourceFile) throws Exception{ - Fi zip = sourceFile.isDirectory() ? sourceFile : new ZipFi(sourceFile); - if(zip.list().length == 1 && zip.list()[0].isDirectory()){ - zip = zip.list()[0]; - } + Time.mark(); - Fi metaf = zip.child("mod.json").exists() ? zip.child("mod.json") : zip.child("mod.hjson").exists() ? zip.child("mod.hjson") : zip.child("plugin.json"); - if(!metaf.exists()){ - Log.warn("Mod @ doesn't have a 'mod.json'/'mod.hjson'/'plugin.json' file, skipping.", sourceFile); - throw new IllegalArgumentException("Invalid file: No mod.json found."); - } + ZipFi rootZip = null; - ModMeta meta = json.fromJson(ModMeta.class, Jval.read(metaf.readString()).toString(Jformat.plain)); - meta.cleanup(); - String camelized = meta.name.replace(" ", ""); - String mainClass = meta.main == null ? camelized.toLowerCase() + "." + camelized + "Mod" : meta.main; - String baseName = meta.name.toLowerCase().replace(" ", "-"); - - if(mods.contains(m -> m.name.equals(baseName))){ - throw new IllegalArgumentException("A mod with the name '" + baseName + "' is already imported."); - } - - Mod mainMod; - - Fi mainFile = zip; - String[] path = (mainClass.replace('.', '/') + ".class").split("/"); - for(String str : path){ - if(!str.isEmpty()){ - mainFile = mainFile.child(str); - } - } - - //make sure the main class exists before loading it; if it doesn't just don't put it there - if(mainFile.exists()){ - //mobile versions don't support class mods - if(mobile){ - throw new IllegalArgumentException("Java class mods are not supported on mobile."); + try{ + Fi zip = sourceFile.isDirectory() ? sourceFile : (rootZip = new ZipFi(sourceFile)); + if(zip.list().length == 1 && zip.list()[0].isDirectory()){ + zip = zip.list()[0]; } - URLClassLoader classLoader = new URLClassLoader(new URL[]{sourceFile.file().toURI().toURL()}, ClassLoader.getSystemClassLoader()); - Class main = classLoader.loadClass(mainClass); - metas.put(main, meta); - mainMod = (Mod)main.getDeclaredConstructor().newInstance(); - }else{ - mainMod = null; - } + Fi metaf = zip.child("mod.json").exists() ? zip.child("mod.json") : zip.child("mod.hjson").exists() ? zip.child("mod.hjson") : zip.child("plugin.json"); + if(!metaf.exists()){ + Log.warn("Mod @ doesn't have a 'mod.json'/'mod.hjson'/'plugin.json' file, skipping.", sourceFile); + throw new IllegalArgumentException("Invalid file: No mod.json found."); + } - //all plugins are hidden implicitly - if(mainMod instanceof Plugin){ - meta.hidden = true; - } + ModMeta meta = json.fromJson(ModMeta.class, Jval.read(metaf.readString()).toString(Jformat.plain)); + meta.cleanup(); + String camelized = meta.name.replace(" ", ""); + String mainClass = meta.main == null ? camelized.toLowerCase() + "." + camelized + "Mod" : meta.main; + String baseName = meta.name.toLowerCase().replace(" ", "-"); - return new LoadedMod(sourceFile, zip, mainMod, meta); + if(mods.contains(m -> m.name.equals(baseName))){ + throw new IllegalArgumentException("A mod with the name '" + baseName + "' is already imported."); + } + + Mod mainMod; + + Fi mainFile = zip; + String[] path = (mainClass.replace('.', '/') + ".class").split("/"); + for(String str : path){ + if(!str.isEmpty()){ + mainFile = mainFile.child(str); + } + } + + //make sure the main class exists before loading it; if it doesn't just don't put it there + if(mainFile.exists()){ + //mobile versions don't support class mods + if(mobile){ + throw new IllegalArgumentException("Java class mods are not supported on mobile."); + } + + URLClassLoader classLoader = new URLClassLoader(new URL[]{sourceFile.file().toURI().toURL()}, ClassLoader.getSystemClassLoader()); + Class main = classLoader.loadClass(mainClass); + metas.put(main, meta); + mainMod = (Mod)main.getDeclaredConstructor().newInstance(); + }else{ + mainMod = null; + } + + //all plugins are hidden implicitly + if(mainMod instanceof Plugin){ + meta.hidden = true; + } + + Log.info("Loaded mod '@' in @", meta.name, Time.elapsed()); + return new LoadedMod(sourceFile, zip, mainMod, meta); + + }catch(Exception e){ + //delete root zip file so it can be closed on windows + if(rootZip != null) rootZip.delete(); + throw e; + } } /** Represents a mod's state. May be a jar file, folder or zip. */ diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java index 4559bf6d02..d2009187f7 100644 --- a/core/src/mindustry/mod/Scripts.java +++ b/core/src/mindustry/mod/Scripts.java @@ -1,7 +1,10 @@ package mindustry.mod; import arc.*; +import arc.assets.*; +import arc.audio.*; import arc.files.*; +import arc.mock.*; import arc.struct.*; import arc.util.*; import arc.util.Log.*; @@ -23,7 +26,7 @@ public class Scripts implements Disposable{ private final Context context; private final Scriptable scope; private boolean errored; - private LoadedMod currentMod = null; + LoadedMod currentMod = null; public Scripts(){ Time.mark(); @@ -73,7 +76,7 @@ public class Scripts implements Disposable{ Log.log(level, "[@]: @", source, message); } - //utility mod functions + //region utility mod functions public String readString(String path){ return Vars.tree.get(path, true).readString(); @@ -83,6 +86,38 @@ public class Scripts implements Disposable{ return Vars.tree.get(path, true).readBytes(); } + public Sound loadSound(String soundName){ + if(Vars.headless) return new MockSound(); + + String name = "sounds/" + soundName; + String path = Vars.tree.get(name + ".ogg").exists() && !Vars.ios ? name + ".ogg" : name + ".mp3"; + + if(Core.assets.contains(path, Sound.class)) return Core.assets.get(path, Sound.class); + ModLoadingSound sound = new ModLoadingSound(); + AssetDescriptor desc = Core.assets.load(path, Sound.class); + desc.loaded = result -> sound.sound = (Sound)result; + desc.errored = Throwable::printStackTrace; + + return sound; + } + + public Music loadMusic(String soundName){ + if(Vars.headless) return new MockMusic(); + + String name = "music/" + soundName; + String path = Vars.tree.get(name + ".ogg").exists() && !Vars.ios ? name + ".ogg" : name + ".mp3"; + + if(Core.assets.contains(path, Music.class)) return Core.assets.get(path, Music.class); + ModLoadingMusic sound = new ModLoadingMusic(); + AssetDescriptor desc = Core.assets.load(path, Music.class); + desc.loaded = result -> sound.music = (Music)result; + desc.errored = Throwable::printStackTrace; + + return sound; + } + + //endregion + public void run(LoadedMod mod, Fi file){ currentMod = mod; run(file.readString(), file.name(), true); diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index 0f289328d0..25fd12be89 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -5,6 +5,7 @@ import arc.func.*; import arc.struct.*; import arc.util.ArcAnnotate.*; import arc.util.*; +import arc.util.Log.*; import arc.util.pooling.Pool.*; import arc.util.pooling.*; import mindustry.*; @@ -18,13 +19,14 @@ import static mindustry.Vars.*; import static mindustry.game.EventType.*; public class Administration{ - /** All player info. Maps UUIDs to info. This persists throughout restarts. */ + public Seq bannedIPs = new Seq<>(); + public Seq whitelist = new Seq<>(); + public Seq chatFilters = new Seq<>(); + public Seq actionFilters = new Seq<>(); + public Seq subnetBans = new Seq<>(); + + /** All player info. Maps UUIDs to info. This persists throughout restarts. Do not access directly. */ private ObjectMap playerInfo = new ObjectMap<>(); - private Seq bannedIPs = new Seq<>(); - private Seq whitelist = new Seq<>(); - private Seq chatFilters = new Seq<>(); - private Seq actionFilters = new Seq<>(); - private Seq subnetBans = new Seq<>(); private IntIntMap lastPlaced = new IntIntMap(); public Administration(){ @@ -72,12 +74,17 @@ public class Administration{ }); //block interaction rate limit + //TODO when someone disconnects, a different player is mistakenly kicked for spamming actions addActionFilter(action -> { if(action.type != ActionType.breakBlock && action.type != ActionType.placeBlock && - Config.antiSpam.bool() && - //make sure players can configure their own stuff, e.g. in schematics - lastPlaced.get(action.tile.pos(), -1) != action.player.id()){ + Config.antiSpam.bool()){ + + //make sure players can configure their own stuff, e.g. in schematics - but only once. + if(lastPlaced.get(action.tile.pos(), -1) == action.player.id()){ + lastPlaced.remove(action.tile.pos()); + return true; + } Ratekeeper rate = action.player.getInfo().rate; if(rate.allow(Config.interactRateWindow.num() * 1000, Config.interactRateLimit.num())){ @@ -572,7 +579,8 @@ public class Administration{ motd("The message displayed to people on connection.", "off"), autosave("Whether the periodically save the map when playing.", false), autosaveAmount("The maximum amount of autosaves. Older ones get replaced.", 10), - autosaveSpacing("Spacing between autosaves in seconds.", 60 * 5); + autosaveSpacing("Spacing between autosaves in seconds.", 60 * 5), + debug("Enable debug logging", false, () -> Log.setLogLevel(debug() ? LogLevel.debug : LogLevel.info)); public static final Config[] all = values(); @@ -631,6 +639,10 @@ public class Administration{ Core.settings.put(key, value); changed.run(); } + + private static boolean debug(){ + return Config.debug.bool(); + } } public static class PlayerInfo{ diff --git a/core/src/mindustry/net/ArcNetProvider.java b/core/src/mindustry/net/ArcNetProvider.java index eff7c3e95d..ea0146312e 100644 --- a/core/src/mindustry/net/ArcNetProvider.java +++ b/core/src/mindustry/net/ArcNetProvider.java @@ -1,10 +1,10 @@ package mindustry.net; import arc.*; -import arc.struct.*; import arc.func.*; import arc.net.*; import arc.net.FrameworkMessage.*; +import arc.struct.*; import arc.util.*; import arc.util.async.*; import arc.util.pooling.*; @@ -28,7 +28,9 @@ public class ArcNetProvider implements NetProvider{ Thread serverThread; public ArcNetProvider(){ - client = new Client(8192, 4096, new PacketSerializer()); + ArcNet.errorHandler = e -> Log.debug(Strings.getStackTrace(e)); + + client = new Client(8192, 8192, new PacketSerializer()); client.setDiscoveryPacket(packetSupplier); client.addListener(new NetListener(){ @Override @@ -66,7 +68,7 @@ public class ArcNetProvider implements NetProvider{ } }); - server = new Server(4096 * 2, 4096, new PacketSerializer()); + server = new Server(8192, 8192, new PacketSerializer()); server.setMulticast(multicastGroup, multicastPort); server.setDiscoveryHandler((address, handler) -> { ByteBuffer buffer = NetworkIO.writeServerData(); @@ -180,6 +182,7 @@ public class ArcNetProvider implements NetProvider{ Threads.daemon(() -> { try{ DatagramSocket socket = new DatagramSocket(); + long time = Time.millis(); socket.send(new DatagramPacket(new byte[]{-2, 1}, 2, InetAddress.getByName(address), port)); socket.setSoTimeout(2000); @@ -187,7 +190,7 @@ public class ArcNetProvider implements NetProvider{ socket.receive(packet); ByteBuffer buffer = ByteBuffer.wrap(packet.getData()); - Host host = NetworkIO.readServerData(packet.getAddress().getHostAddress(), buffer); + Host host = NetworkIO.readServerData((int)Time.timeSinceMillis(time), packet.getAddress().getHostAddress(), buffer); Core.app.post(() -> valid.get(host)); }catch(Exception e){ @@ -199,6 +202,7 @@ public class ArcNetProvider implements NetProvider{ @Override public void discoverServers(Cons callback, Runnable done){ Seq foundAddresses = new Seq<>(); + long time = Time.millis(); client.discoverHosts(port, multicastGroup, multicastPort, 3000, packet -> { Core.app.post(() -> { try{ @@ -206,7 +210,7 @@ public class ArcNetProvider implements NetProvider{ return; } ByteBuffer buffer = ByteBuffer.wrap(packet.getData()); - Host host = NetworkIO.readServerData(packet.getAddress().getHostAddress(), buffer); + Host host = NetworkIO.readServerData((int)Time.timeSinceMillis(time), packet.getAddress().getHostAddress(), buffer); callback.get(host); foundAddresses.add(packet.getAddress()); }catch(Exception e){ @@ -265,7 +269,7 @@ public class ArcNetProvider implements NetProvider{ return null; } - private void handleException(Throwable e){ + void handleException(Throwable e){ if(e instanceof ArcNetException){ Core.app.post(() -> net.showError(new IOException("mismatch"))); }else if(e instanceof ClosedChannelException){ diff --git a/core/src/mindustry/net/BeControl.java b/core/src/mindustry/net/BeControl.java index e8679b7ffb..aba2cb2e29 100644 --- a/core/src/mindustry/net/BeControl.java +++ b/core/src/mindustry/net/BeControl.java @@ -89,31 +89,38 @@ public class BeControl{ if(!headless){ checkUpdates = false; ui.showCustomConfirm(Core.bundle.format("be.update", "") + " " + updateBuild, "@be.update.confirm", "@ok", "@be.ignore", () -> { - boolean[] cancel = {false}; - float[] progress = {0}; - int[] length = {0}; - Fi file = bebuildDirectory.child("client-be-" + updateBuild + ".jar"); + try{ + boolean[] cancel = {false}; + float[] progress = {0}; + int[] length = {0}; + Fi file = Fi.get(BeControl.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); - BaseDialog dialog = new BaseDialog("@be.updating"); - download(updateUrl, file, i -> length[0] = i, v -> progress[0] = v, () -> cancel[0], () -> { - try{ - Runtime.getRuntime().exec(new String[]{"java", "-DlastBuild=" + Version.build, "-Dberestart", "-jar", file.absolutePath()}); - System.exit(0); - }catch(IOException e){ + BaseDialog dialog = new BaseDialog("@be.updating"); + download(updateUrl, file, i -> length[0] = i, v -> progress[0] = v, () -> cancel[0], () -> { + try{ + Runtime.getRuntime().exec(OS.isMac ? + new String[]{"java", "-XstartOnFirstThread", "-DlastBuild=" + Version.build, "-Dberestart", "-jar", file.absolutePath()} : + new String[]{"java", "-DlastBuild=" + Version.build, "-Dberestart", "-jar", file.absolutePath()} + ); + System.exit(0); + }catch(IOException e){ + ui.showException(e); + } + }, e -> { + dialog.hide(); ui.showException(e); - } - }, e -> { - dialog.hide(); - ui.showException(e); - }); + }); - dialog.cont.add(new Bar(() -> length[0] == 0 ? Core.bundle.get("be.updating") : (int)(progress[0] * length[0]) / 1024/ 1024 + "/" + length[0]/1024/1024 + " MB", () -> Pal.accent, () -> progress[0])).width(400f).height(70f); - dialog.buttons.button("@cancel", Icon.cancel, () -> { - cancel[0] = true; - dialog.hide(); - }).size(210f, 64f); - dialog.setFillParent(false); - dialog.show(); + dialog.cont.add(new Bar(() -> length[0] == 0 ? Core.bundle.get("be.updating") : (int)(progress[0] * length[0]) / 1024/ 1024 + "/" + length[0]/1024/1024 + " MB", () -> Pal.accent, () -> progress[0])).width(400f).height(70f); + dialog.buttons.button("@cancel", Icon.cancel, () -> { + cancel[0] = true; + dialog.hide(); + }).size(210f, 64f); + dialog.setFillParent(false); + dialog.show(); + }catch(Exception e){ + ui.showException(e); + } }, () -> checkUpdates = false); }else{ Log.info("&lcA new update is available: &lyBleeding Edge build @", updateBuild); @@ -132,6 +139,7 @@ public class BeControl{ () -> Core.app.post(() -> { Log.info("&lcSaving..."); SaveIO.save(saveDirectory.child("autosavebe." + saveExtension)); + Log.info("&lcAutosaved."); netServer.kickAll(KickReason.serverRestarting); Threads.sleep(32); diff --git a/core/src/mindustry/net/Host.java b/core/src/mindustry/net/Host.java index cc52f30b86..123fdad341 100644 --- a/core/src/mindustry/net/Host.java +++ b/core/src/mindustry/net/Host.java @@ -16,7 +16,8 @@ public class Host{ public final @Nullable String modeName; public int ping, port = Vars.port; - public Host(String name, String address, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit, String description, String modeName){ + public Host(int ping, String name, String address, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit, String description, String modeName){ + this.ping = ping; this.name = name; this.address = address; this.players = players; diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java index 2cad7d40e8..e11d8f2d00 100644 --- a/core/src/mindustry/net/NetConnection.java +++ b/core/src/mindustry/net/NetConnection.java @@ -21,6 +21,7 @@ public abstract class NetConnection{ public @Nullable Player player; public @Nullable Unitc lastUnit; public Vec2 lastPosition = new Vec2(); + public boolean kicked = false; /** ID of last received client snapshot. */ public int lastReceivedClientSnapshot = -1; @@ -38,6 +39,8 @@ public abstract class NetConnection{ /** Kick with a special, localized reason. Use this if possible. */ public void kick(KickReason reason){ + if(kicked) return; + Log.info("Kicking connection @; Reason: @", address, reason.name()); if((reason == KickReason.kick || reason == KickReason.banned || reason == KickReason.vote)){ @@ -51,6 +54,7 @@ public abstract class NetConnection{ Time.runTask(2f, this::close); netServer.admins.save(); + kicked = true; } /** Kick with an arbitrary reason. */ @@ -60,6 +64,8 @@ public abstract class NetConnection{ /** Kick with an arbitrary reason, and a kick duration in milliseconds. */ public void kick(String reason, int kickDuration){ + if(kicked) return; + Log.info("Kicking connection @; Reason: @", address, reason.replace("\n", " ")); PlayerInfo info = netServer.admins.getInfo(uuid); @@ -71,6 +77,7 @@ public abstract class NetConnection{ Time.runTask(2f, this::close); netServer.admins.save(); + kicked = true; } public boolean isConnected(){ diff --git a/core/src/mindustry/net/NetworkIO.java b/core/src/mindustry/net/NetworkIO.java index 7df5cd46bb..05bd69fe32 100644 --- a/core/src/mindustry/net/NetworkIO.java +++ b/core/src/mindustry/net/NetworkIO.java @@ -88,7 +88,7 @@ public class NetworkIO{ return buffer; } - public static Host readServerData(String hostAddress, ByteBuffer buffer){ + public static Host readServerData(int ping, String hostAddress, ByteBuffer buffer){ String host = readString(buffer); String map = readString(buffer); int players = buffer.getInt(); @@ -100,7 +100,7 @@ public class NetworkIO{ String description = readString(buffer); String modeName = readString(buffer); - return new Host(host, hostAddress, map, wave, players, version, vertype, gamemode, limit, description, modeName.isEmpty() ? null : modeName); + return new Host(ping, host, hostAddress, map, wave, players, version, vertype, gamemode, limit, description, modeName.isEmpty() ? null : modeName); } private static void writeString(ByteBuffer buffer, String string, int maxlen){ diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 129ff06234..e26d185985 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -42,7 +42,7 @@ public class UnitType extends UnlockableContent{ public float speed = 1.1f, boostMultiplier = 1f, rotateSpeed = 5f, baseRotateSpeed = 5f; public float drag = 0.3f, accel = 0.5f, landShake = 0f, rippleScale = 1f, fallSpeed = 0.018f; public float health = 200f, range = -1, armor = 0f; - public float crashDamageMultiplier = 4f; + public float crashDamageMultiplier = 3f; public boolean targetAir = true, targetGround = true; public boolean faceTarget = true, rotateShooting = true, isCounted = true, lowAltitude = false; public boolean canBoost = false; @@ -127,7 +127,7 @@ public class UnitType extends UnlockableContent{ public void display(Unit unit, Table table){ table.table(t -> { t.left(); - t.add(new Image(icon(Cicon.medium))).size(8 * 4); + t.add(new Image(icon(Cicon.medium))).size(8 * 4).scaling(Scaling.fit); t.labelWrap(localizedName).left().width(190f).padLeft(5); }).growX().left(); table.row(); diff --git a/core/src/mindustry/type/Weather.java b/core/src/mindustry/type/Weather.java index 9b1ca3a09f..163fa7f211 100644 --- a/core/src/mindustry/type/Weather.java +++ b/core/src/mindustry/type/Weather.java @@ -3,6 +3,7 @@ package mindustry.type; import arc.func.*; import arc.graphics.g2d.*; import arc.math.*; +import arc.math.geom.*; import arc.util.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; @@ -15,7 +16,7 @@ import static mindustry.Vars.*; public abstract class Weather extends MappableContent{ /** Default duration of this weather event in ticks. */ - public float duration = 15f * Time.toMinutes; + public float duration = 9f * Time.toMinutes; public Attributes attrs = new Attributes(); //internals @@ -110,7 +111,7 @@ public abstract class Weather extends MappableContent{ /** Creates a weather entry with some approximate weather values. */ public WeatherEntry(Weather weather){ - this(weather, weather.duration/2f, weather.duration * 1.5f, weather.duration/2f, weather.duration * 1.5f); + this(weather, weather.duration * 1f, weather.duration * 3f, weather.duration / 2f, weather.duration * 1.5f); } public WeatherEntry(Weather weather, float minFrequency, float maxFrequency, float minDuration, float maxDuration){ @@ -136,6 +137,7 @@ public abstract class Weather extends MappableContent{ Weather weather; float intensity = 1f, opacity = 0f, life, effectTimer; + Vec2 windVector = new Vec2(); void init(Weather weather){ this.weather = weather; diff --git a/core/src/mindustry/ui/CoreItemsDisplay.java b/core/src/mindustry/ui/CoreItemsDisplay.java index f7f5a2bb47..13f91d6108 100644 --- a/core/src/mindustry/ui/CoreItemsDisplay.java +++ b/core/src/mindustry/ui/CoreItemsDisplay.java @@ -28,11 +28,8 @@ public class CoreItemsDisplay extends Table{ update(() -> { CoreBuild core = Vars.player.team().core(); - for(Item item : content.items()){ - if(core != null && core.items.get(item) > 0 && usedItems.add(item)){ - rebuild(); - break; - } + if(content.items().contains(item -> core != null && core.items.get(item) > 0 && usedItems.add(item))){ + rebuild(); } }); diff --git a/core/src/mindustry/ui/dialogs/AboutDialog.java b/core/src/mindustry/ui/dialogs/AboutDialog.java index 1c3d13712c..3ba3b5d7e2 100644 --- a/core/src/mindustry/ui/dialogs/AboutDialog.java +++ b/core/src/mindustry/ui/dialogs/AboutDialog.java @@ -15,8 +15,8 @@ import mindustry.ui.Links.*; import static mindustry.Vars.*; public class AboutDialog extends BaseDialog{ - private Seq contributors = new Seq<>(); - private static ObjectSet bannedItems = ObjectSet.with("google-play", "itch.io", "dev-builds", "f-droid"); + Seq contributors = new Seq<>(); + static ObjectSet bannedItems = ObjectSet.with("google-play", "itch.io", "dev-builds", "f-droid"); public AboutDialog(){ super("@about.button"); diff --git a/core/src/mindustry/ui/dialogs/ColorPicker.java b/core/src/mindustry/ui/dialogs/ColorPicker.java index 811d7be230..80c042e1eb 100644 --- a/core/src/mindustry/ui/dialogs/ColorPicker.java +++ b/core/src/mindustry/ui/dialogs/ColorPicker.java @@ -8,7 +8,7 @@ import mindustry.graphics.*; public class ColorPicker extends BaseDialog{ private Cons cons = c -> {}; - private Color current = new Color(); + Color current = new Color(); public ColorPicker(){ super("@pickcolor"); diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index b6fa18f0c4..639b947994 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -20,7 +20,7 @@ import static mindustry.Vars.*; public class CustomRulesDialog extends BaseDialog{ private Table main; - private Rules rules; + Rules rules; private Prov resetter; private LoadoutDialog loadoutDialog; private BaseDialog banDialog; diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index eebfe47898..2506da87d9 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -56,7 +56,7 @@ public class DatabaseDialog extends BaseDialog{ for(int i = 0; i < array.size; i++){ UnlockableContent unlock = (UnlockableContent)array.get(i); - Image image = unlocked(unlock) ? new Image(unlock.icon(Cicon.medium)) : new Image(Icon.lockOpen, Pal.gray); + Image image = unlocked(unlock) ? new Image(unlock.icon(Cicon.medium)) : new Image(Icon.lock, Pal.gray); list.add(image).size(8*4).pad(3); ClickListener listener = new ClickListener(); image.addListener(listener); diff --git a/core/src/mindustry/ui/dialogs/FileChooser.java b/core/src/mindustry/ui/dialogs/FileChooser.java index be0fd46fe6..78a3c1a459 100644 --- a/core/src/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/mindustry/ui/dialogs/FileChooser.java @@ -17,10 +17,10 @@ import java.util.*; public class FileChooser extends BaseDialog{ private static final Fi homeDirectory = Core.files.absolute(Core.files.getExternalStoragePath()); - private static Fi lastDirectory = homeDirectory; + static Fi lastDirectory = homeDirectory; private Table files; - private Fi directory = lastDirectory; + Fi directory = lastDirectory; private ScrollPane pane; private TextField navigation, filefield; private TextButton ok; @@ -163,7 +163,7 @@ public class FileChooser extends BaseDialog{ return handles; } - private void updateFiles(boolean push){ + void updateFiles(boolean push){ if(push) stack.push(directory); navigation.setText(directory.toString()); diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 9b02b7413e..92776ab729 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -1,6 +1,7 @@ package mindustry.ui.dialogs; import arc.*; +import arc.graphics.*; import arc.input.*; import arc.math.*; import arc.scene.ui.*; @@ -233,6 +234,10 @@ public class JoinDialog extends BaseDialog{ t.add("[lightgray]" + (Core.bundle.format("players" + (host.players == 1 && host.playerLimit <= 0 ? ".single" : ""), (host.players == 0 ? "[lightgray]" : "[accent]") + host.players + (host.playerLimit > 0 ? "[lightgray]/[accent]" + host.playerLimit : "")+ "[lightgray]"))).left(); t.row(); t.add("[lightgray]" + Core.bundle.format("save.map", host.mapname) + "[lightgray] / " + (host.modeName == null ? host.mode.toString() : host.modeName)).width(targetWidth() - 10f).left().get().setEllipsis(true); + if(host.ping > 0){ + t.row(); + t.add(Iconc.chartBar + " " + host.ping + "ms").color(Color.gray).left(); + } }).expand().left().bottom().padLeft(12f).padBottom(8); } @@ -434,9 +439,13 @@ public class JoinDialog extends BaseDialog{ defaultServers.clear(); val.asArray().each(child -> defaultServers.add(child.getString("address", ""))); Log.info("Fetched @ global servers.", defaultServers.size); - }catch(Throwable ignored){} + }catch(Throwable ignored){ + Log.err("Failed to parse community servers."); + } }); - }catch(Throwable ignored){} + }catch(Throwable e){ + Log.err("Failed to fetch community servers."); + } }, t -> {}); } diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 322fa8f365..f674fa5f86 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -3,6 +3,7 @@ package mindustry.ui.dialogs; import arc.*; import arc.Net.*; import arc.files.*; +import arc.func.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.scene.ui.TextButton.*; @@ -106,31 +107,13 @@ public class ModsDialog extends BaseDialog{ Core.settings.put("lastmod", text); ui.loadfrag.show(); - Core.net.httpGet("http://api.github.com/repos/" + text + "/zipball/master", loc -> { - Core.net.httpGet(loc.getHeader("Location"), result -> { - if(result.getStatus() != HttpStatus.OK){ - ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); - ui.loadfrag.hide(); - }else{ - try{ - Fi file = tmpDirectory.child(text.replace("/", "") + ".zip"); - Streams.copy(result.getResultAsStream(), file.write(false)); - mods.importMod(file); - file.delete(); - Core.app.post(() -> { - try{ - setup(); - ui.loadfrag.hide(); - }catch(Throwable e){ - ui.showException(e); - } - }); - }catch(Throwable e){ - modError(e); - } - } - }, t2 -> Core.app.post(() -> modError(t2))); - }, t2 -> Core.app.post(() -> modError(t2))); + // Try to download the 6.0 branch first, but if it doesnt exist try master. + githubImport("6.0", text, e1 -> { + githubImport("master", text, e2 -> { + ui.showErrorMessage(Core.bundle.format("connectfail", e2)); + ui.loadfrag.hide(); + }); + }); }); }).margin(12f); }); @@ -178,8 +161,22 @@ public class ModsDialog extends BaseDialog{ border(Pal.accent); }}).size(h - 8f).padTop(-8f).padLeft(-8f).padRight(8f); - title.add("" + mod.meta.displayName() + "\n[lightgray]v" + mod.meta.version + (mod.enabled() ? "" : "\n" + Core.bundle.get("mod.disabled") + "")) - .wrap().top().width(170f).growX().left(); + title.table(text -> { + text.add("" + mod.meta.displayName() + "\n[lightgray]v" + mod.meta.version + (mod.enabled() ? "" : "\n" + Core.bundle.get("mod.disabled") + "")) + .wrap().top().width(300f).growX().left(); + + text.row(); + if(!mod.isSupported()){ + text.labelWrap(Core.bundle.format("mod.requiresversion", mod.meta.minGameVersion)).growX(); + text.row(); + }else if(mod.hasUnmetDependencies()){ + text.labelWrap(Core.bundle.format("mod.missingdependencies", mod.missingDependencies.toString(", "))).growX(); + t.row(); + }else if(mod.hasContentErrors()){ + text.labelWrap("@mod.erroredcontent").growX(); + text.row(); + } + }).top().growX(); title.add().growX(); }).growX().growY().left(); @@ -210,17 +207,7 @@ public class ModsDialog extends BaseDialog{ } }).growX().right().padRight(-8f).padTop(-8f); - t.row(); - if(!mod.isSupported()){ - t.labelWrap(Core.bundle.format("mod.requiresversion", mod.meta.minGameVersion)).growX(); - t.row(); - }else if(mod.hasUnmetDependencies()){ - t.labelWrap(Core.bundle.format("mod.missingdependencies", mod.missingDependencies.toString(", "))).growX(); - t.row(); - }else if(mod.hasContentErrors()){ - t.labelWrap("@mod.erroredcontent").growX(); - t.row(); - } + }, Styles.clearPartialt, () -> showMod(mod)).size(w, h).growX().pad(4f); table.row(); } @@ -288,8 +275,33 @@ public class ModsDialog extends BaseDialog{ }*/ }).width(400f); - - dialog.show(); } + + private void githubImport(String branch, String repo, Cons err){ + Core.net.httpGet("http://api.github.com/repos/" + repo + "/zipball/" + branch, loc -> { + Core.net.httpGet(loc.getHeader("Location"), result -> { + if(result.getStatus() != HttpStatus.OK){ + err.get(result.getStatus()); + }else{ + try{ + Fi file = tmpDirectory.child(repo.replace("/", "") + ".zip"); + Streams.copy(result.getResultAsStream(), file.write(false)); + mods.importMod(file); + file.delete(); + Core.app.post(() -> { + try{ + setup(); + ui.loadfrag.hide(); + }catch(Throwable e){ + ui.showException(e); + } + }); + }catch(Throwable e){ + modError(e); + } + } + }, t2 -> Core.app.post(() -> modError(t2))); + }, t2 -> Core.app.post(() -> modError(t2))); + } } diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index ae91f18f10..0d5f873562 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -44,16 +44,7 @@ public class PausedDialog extends BaseDialog{ float dw = 220f; cont.defaults().width(dw).height(55).pad(5f); - cont.button("@back", Icon.left, this::hide).colspan(2).width(dw * 2 + 20f); - - cont.row(); - //if(state.isCampaign()){ - // cont.button("@techtree", Icon.tree, ui.tech::show); - //}else{ - // cont.button("@database", Icon.book, ui.database::show); - //} - //TODO remove - cont.button("nothing", Icon.warning, () -> ui.showInfo("no")); + cont.button("@back", Icon.left, this::hide); cont.button("@settings", Icon.settings, ui.settings::show); if(!state.rules.tutorial){ @@ -93,6 +84,18 @@ public class PausedDialog extends BaseDialog{ cont.row(); cont.buttonRow("@load", Icon.download, load::show).disabled(b -> net.active()); + }else if(state.isCampaign()){ + cont.buttonRow("@launchcore", Icon.up, () -> { + hide(); + ui.planet.show(state.getSector(), player.team().core()); + }).disabled(b -> player.team().core() == null || !player.team().core().items.has(player.team().core().block.requirements)); + + cont.row(); + + cont.buttonRow("@planetmap", Icon.map, () -> { + hide(); + ui.planet.show(); + }); }else{ cont.row(); } diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 3eb53717fc..7d03210041 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -30,15 +30,15 @@ import static mindustry.ui.dialogs.PlanetDialog.Mode.*; public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ private final FrameBuffer buffer = new FrameBuffer(2, 2, true); - private final PlanetRenderer planets = renderer.planets; + final PlanetRenderer planets = renderer.planets; private final LaunchLoadoutDialog loadouts = new LaunchLoadoutDialog(); private final Table stable = new Table().background(Styles.black3); private int launchRange; private float zoom = 1f, selectAlpha = 1f; - private @Nullable Sector selected, hovered, launchSector; + @Nullable Sector selected, hovered, launchSector; private CoreBuild launcher; - private Mode mode = look; + Mode mode = look; private boolean launching; public PlanetDialog(){ @@ -291,7 +291,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ } //TODO localize - private void updateSelected(){ + void updateSelected(){ Sector sector = selected; if(sector == null){ diff --git a/core/src/mindustry/ui/dialogs/ResearchDialog.java b/core/src/mindustry/ui/dialogs/ResearchDialog.java index d62fc7a623..8fc2c387c7 100644 --- a/core/src/mindustry/ui/dialogs/ResearchDialog.java +++ b/core/src/mindustry/ui/dialogs/ResearchDialog.java @@ -32,14 +32,14 @@ import java.util.*; import static mindustry.Vars.*; public class ResearchDialog extends BaseDialog{ - private final float nodeSize = Scl.scl(60f); - private ObjectSet nodes = new ObjectSet<>(); - private TechTreeNode root = new TechTreeNode(TechTree.root, null); - private Rect bounds = new Rect(); - private ItemsDisplay itemDisplay; - private View view; + final float nodeSize = Scl.scl(60f); + ObjectSet nodes = new ObjectSet<>(); + TechTreeNode root = new TechTreeNode(TechTree.root, null); + Rect bounds = new Rect(); + ItemsDisplay itemDisplay; + View view; - private ItemSeq items; + ItemSeq items; public ResearchDialog(){ super(""); @@ -134,7 +134,7 @@ public class ResearchDialog extends BaseDialog{ } }); - addListener(new ElementGestureListener(){ + view.addListener(new ElementGestureListener(){ @Override public void zoom(InputEvent event, float initialDistance, float distance){ if(view.lastZoom < 0){ @@ -233,7 +233,7 @@ public class ResearchDialog extends BaseDialog{ } boolean selectable(TechNode node){ - return !node.objectives.contains(i -> !i.complete()); + return node.content.unlocked() || !node.objectives.contains(i -> !i.complete()); } void showToast(String info){ diff --git a/core/src/mindustry/ui/dialogs/SchematicsDialog.java b/core/src/mindustry/ui/dialogs/SchematicsDialog.java index 0510abde3b..f4b2031cd9 100644 --- a/core/src/mindustry/ui/dialogs/SchematicsDialog.java +++ b/core/src/mindustry/ui/dialogs/SchematicsDialog.java @@ -79,7 +79,7 @@ public class SchematicsDialog extends BaseDialog{ t.clear(); int i = 0; - String regex = "[`~!@#$%^&*()-_=+[{]}|;:'\",<.>/?]"; + String regex = "[`~!@#$%^&*()-_=+{}|;:'\",<.>/?]"; String searchString = search.toLowerCase().replaceAll(regex, " "); firstSchematic = null; diff --git a/core/src/mindustry/ui/fragments/BlockConfigFragment.java b/core/src/mindustry/ui/fragments/BlockConfigFragment.java index 41f5d58770..6719add761 100644 --- a/core/src/mindustry/ui/fragments/BlockConfigFragment.java +++ b/core/src/mindustry/ui/fragments/BlockConfigFragment.java @@ -12,8 +12,8 @@ import mindustry.gen.*; import static mindustry.Vars.*; public class BlockConfigFragment extends Fragment{ - private Table table = new Table(); - private Building configTile; + Table table = new Table(); + Building configTile; @Override public void build(Group parent){ diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java index 4569b326cc..73ecb3ffe9 100644 --- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java @@ -31,12 +31,12 @@ public class BlockInventoryFragment extends Fragment{ private static final float holdWithdraw = 20f; private static final float holdShrink = 120f; - private Table table = new Table(); - private Building tile; - private float holdTime = 0f, emptyTime; - private boolean holding; - private float[] shrinkHoldTimes = new float[content.items().size]; - private Item lastItem; + Table table = new Table(); + Building tile; + float holdTime = 0f, emptyTime; + boolean holding; + float[] shrinkHoldTimes = new float[content.items().size]; + Item lastItem; { Events.on(WorldLoadEvent.class, e -> hide()); diff --git a/core/src/mindustry/ui/fragments/ChatFragment.java b/core/src/mindustry/ui/fragments/ChatFragment.java index cbc8bacf39..e07c5dc310 100644 --- a/core/src/mindustry/ui/fragments/ChatFragment.java +++ b/core/src/mindustry/ui/fragments/ChatFragment.java @@ -62,7 +62,7 @@ public class ChatFragment extends Table{ update(() -> { - if(net.active() && input.keyTap(Binding.chat) && (scene.getKeyboardFocus() == chatfield || scene.getKeyboardFocus() == null || ui.minimapfrag.shown())){ + if(net.active() && input.keyTap(Binding.chat) && (scene.getKeyboardFocus() == chatfield || scene.getKeyboardFocus() == null || ui.minimapfrag.shown()) && !ui.scriptfrag.shown()){ toggle(); } diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index d1eae438a2..5102b2ebf4 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -29,7 +29,7 @@ import mindustry.ui.dialogs.*; import static mindustry.Vars.*; public class HudFragment extends Fragment{ - private static final float dsize = 47.2f; + private static final float dsize = 47f; public final PlacementFragment blockfrag = new PlacementFragment(); @@ -122,6 +122,8 @@ public class HudFragment extends Fragment{ }).update(i -> { if(net.active() && mobile){ i.getStyle().imageUp = Icon.chat; + }else if(state.isCampaign()){ + i.getStyle().imageUp = Icon.tree; }else{ i.getStyle().imageUp = Icon.book; } diff --git a/core/src/mindustry/ui/fragments/MinimapFragment.java b/core/src/mindustry/ui/fragments/MinimapFragment.java index 2414a298c0..68ac728af7 100644 --- a/core/src/mindustry/ui/fragments/MinimapFragment.java +++ b/core/src/mindustry/ui/fragments/MinimapFragment.java @@ -16,7 +16,7 @@ import static mindustry.Vars.*; public class MinimapFragment extends Fragment{ private boolean shown; - private float panx, pany, zoom = 1f, lastZoom = -1; + float panx, pany, zoom = 1f, lastZoom = -1; private float baseSize = Scl.scl(5f); private Element elem; diff --git a/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java b/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java index 7e11818548..73861538e3 100644 --- a/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java +++ b/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java @@ -2,7 +2,6 @@ package mindustry.ui.fragments; import arc.*; import arc.Input.*; -import arc.struct.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; @@ -10,8 +9,8 @@ import arc.scene.*; import arc.scene.ui.*; import arc.scene.ui.Label.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; -import mindustry.*; import mindustry.input.*; import mindustry.ui.*; @@ -45,7 +44,7 @@ public class ScriptConsoleFragment extends Table{ font = Fonts.def; visible(() -> { - if(input.keyTap(Binding.console) && (scene.getKeyboardFocus() == chatfield || scene.getKeyboardFocus() == null)){ + if(input.keyTap(Binding.console) && (scene.getKeyboardFocus() == chatfield || scene.getKeyboardFocus() == null) && !ui.chatfrag.shown()){ shown = !shown; if(shown && !open && enableConsole){ toggle(); @@ -96,7 +95,6 @@ public class ScriptConsoleFragment extends Table{ fieldlabel.setStyle(fieldlabel.getStyle()); chatfield = new TextField("", new TextField.TextFieldStyle(scene.getStyle(TextField.TextFieldStyle.class))); - chatfield.setMaxLength(Vars.maxTextLength); chatfield.getStyle().background = null; chatfield.getStyle().font = Fonts.chat; chatfield.getStyle().fontColor = Color.white; @@ -180,7 +178,6 @@ public class ScriptConsoleFragment extends Table{ open = !open; if(mobile){ TextInput input = new TextInput(); - input.maxLength = maxTextLength; input.accepted = text -> { chatfield.setText(text); sendMessage(); @@ -221,6 +218,10 @@ public class ScriptConsoleFragment extends Table{ return open; } + public boolean shown(){ + return shown; + } + public void addMessage(String message){ messages.insert(0, message); } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 5848b92289..9283a41623 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -94,6 +94,10 @@ public class Block extends UnlockableContent{ public boolean absorbLasers = false; /** if false, the status is never drawn */ public boolean enableDrawStatus = true; + /** whether to draw disabled status */ + public boolean drawDisabled = true; + /** whether to automatically reset enabled status after a logic block has not interacted for a while. */ + public boolean autoResetEnabled = true; /** if true, the block stops updating when disabled */ public boolean noUpdateDisabled = false; /** tile entity health */ diff --git a/core/src/mindustry/world/Tile.java b/core/src/mindustry/world/Tile.java index a6a3b8d27d..a464d9174b 100644 --- a/core/src/mindustry/world/Tile.java +++ b/core/src/mindustry/world/Tile.java @@ -150,7 +150,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{ } public Team team(){ - return build == null ? Team.derelict : build.team(); + return build == null ? Team.derelict : build.team; } public void setTeam(Team team){ @@ -182,6 +182,10 @@ public class Tile implements Position, QuadTreeObject, Displayable{ public void setBlock(@NonNull Block type, Team team, int rotation, Prov entityprov){ changing = true; + if(type.isStatic() || this.block.isStatic()){ + recache(); + } + this.block = type; preChanged(); changeEntity(team, entityprov, (byte)Mathf.mod(rotation, 4)); @@ -288,6 +292,11 @@ public class Tile implements Position, QuadTreeObject, Displayable{ Call.removeTile(this); } + /** set()-s this tile, except it's synced across the network */ + public void setNet(Block block){ + Call.setTile(this, block, Team.derelict, 0); + } + /** set()-s this tile, except it's synced across the network */ public void setNet(Block block, Team team, int rotation){ Call.setTile(this, block, team, rotation); diff --git a/core/src/mindustry/world/Tiles.java b/core/src/mindustry/world/Tiles.java index 74c784a850..e525350c0c 100644 --- a/core/src/mindustry/world/Tiles.java +++ b/core/src/mindustry/world/Tiles.java @@ -11,7 +11,7 @@ import java.util.*; public class Tiles implements Iterable{ public final int width, height; - private final Tile[] array; + final Tile[] array; public Tiles(int width, int height){ this.array = new Tile[width * height]; @@ -72,7 +72,7 @@ public class Tiles implements Iterable{ return get(Point2.x(pos), Point2.y(pos)); } - public void each(Cons cons){ + public void eachTile(Cons cons){ for(Tile tile : array){ cons.get(tile); } @@ -87,6 +87,9 @@ public class Tiles implements Iterable{ private class TileIterator implements Iterator{ int index = 0; + TileIterator(){ + } + @Override public boolean hasNext(){ return index < array.length; diff --git a/core/src/mindustry/world/blocks/Autotiler.java b/core/src/mindustry/world/blocks/Autotiler.java index 5990dee006..af3a9ac2cc 100644 --- a/core/src/mindustry/world/blocks/Autotiler.java +++ b/core/src/mindustry/world/blocks/Autotiler.java @@ -147,7 +147,7 @@ public interface Autotiler{ default boolean blends(Tile tile, int rotation, int direction){ Building other = tile.getNearbyEntity(Mathf.mod(rotation - direction, 4)); - return other != null && other.team() == tile.team() && blends(tile, rotation, other.tileX(), other.tileY(), other.rotation, other.block()); + return other != null && other.team == tile.team() && blends(tile, rotation, other.tileX(), other.tileY(), other.rotation, other.block()); } default boolean blendsArmored(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock){ diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index 02a73f2234..d748a947b5 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -31,8 +31,8 @@ public class ForceProjector extends Block{ public float basePowerDraw = 0.2f; public @Load("@-top") TextureRegion topRegion; - private static ForceProjectorEntity paramEntity; - private static final Cons shieldConsumer = trait -> { + static ForceProjectorEntity paramEntity; + static final Cons shieldConsumer = trait -> { if(trait.team() != paramEntity.team && Intersector.isInsideHexagon(paramEntity.x, paramEntity.y, paramEntity.realRadius() * 2f, trait.x(), trait.y())){ trait.absorb(); Fx.absorb.at(trait); @@ -48,6 +48,7 @@ public class ForceProjector extends Block{ hasPower = true; hasLiquids = true; hasItems = true; + //TODO this isn't good enough, shields are still clipped expanded = true; consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.1f)).boost().update(false); } diff --git a/core/src/mindustry/world/blocks/defense/ShockMine.java b/core/src/mindustry/world/blocks/defense/ShockMine.java index 8421fb4257..52c7774be0 100644 --- a/core/src/mindustry/world/blocks/defense/ShockMine.java +++ b/core/src/mindustry/world/blocks/defense/ShockMine.java @@ -43,7 +43,7 @@ public class ShockMine extends Block{ @Override public void unitOn(Unit unit){ - if(unit.team() != team && timer(timerDamage, cooldown)){ + if(enabled && unit.team != team && timer(timerDamage, cooldown)){ for(int i = 0; i < tendrils; i++){ Lightning.create(team, Pal.lancerLaser, damage, x, y, Mathf.random(360f), length); } diff --git a/core/src/mindustry/world/blocks/defense/Wall.java b/core/src/mindustry/world/blocks/defense/Wall.java index 55b896421d..b08c2c500c 100644 --- a/core/src/mindustry/world/blocks/defense/Wall.java +++ b/core/src/mindustry/world/blocks/defense/Wall.java @@ -20,7 +20,7 @@ public class Wall extends Block{ public float lightningDamage = 20f; public int lightningLength = 17; - public float maxDamageDeflect = 10f; + public float chanceDeflect = 10f; public boolean flashWhite; public boolean deflect; @@ -91,14 +91,14 @@ public class Wall extends Block{ //create lightning if necessary if(lightningChance > 0){ if(Mathf.chance(lightningChance)){ - Lightning.create(team(), Pal.surge, lightningDamage, x, y, bullet.rotation() + 180f, lightningLength); + Lightning.create(team, Pal.surge, lightningDamage, x, y, bullet.rotation() + 180f, lightningLength); } } //deflect bullets if necessary if(deflect){ - //doesn't reflect powerful bullets - if(bullet.damage() > maxDamageDeflect) return true; + //bullet reflection chance depends on bullet damage + if(!Mathf.chance(chanceDeflect/bullet.damage())) return true; //translate bullet back to where it was upon collision bullet.trns(-bullet.vel.x, -bullet.vel.y); diff --git a/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java b/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java index acbc23ccf4..8a902510bc 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java @@ -138,13 +138,18 @@ public class ItemTurret extends Turret{ return ammoTypes.get(item) != null && totalAmmo + ammoTypes.get(item).ammoMultiplier <= maxAmmo; } + @Override + public byte version(){ + return 2; + } + @Override public void write(Writes write){ super.write(write); write.b(ammo.size); for(AmmoEntry entry : ammo){ ItemEntry i = (ItemEntry)entry; - write.b(i.item.id); + write.s(i.item.id); write.s(i.amount); } } @@ -152,9 +157,9 @@ public class ItemTurret extends Turret{ @Override public void read(Reads read, byte revision){ super.read(read, revision); - byte amount = read.b(); + int amount = read.ub(); for(int i = 0; i < amount; i++){ - Item item = Vars.content.item(read.b()); + Item item = Vars.content.item(revision < 2 ? read.ub() : read.s()); short a = read.s(); totalAmmo += a; ammo.add(new ItemEntry(item, a)); diff --git a/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java index 3c4bcdb676..59dbc3fbbe 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java @@ -65,7 +65,7 @@ public class LaserTurret extends PowerTurret{ bullet = null; } }else if(reload > 0){ - Liquid liquid = liquids().current(); + Liquid liquid = liquids.current(); float maxUsed = consumes.get(ConsumeType.liquid).amount; float used = (cheating() ? maxUsed * Time.delta : Math.min(liquids.get(liquid), maxUsed * Time.delta)) * liquid.heatCapacity * coolantMultiplier; diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 6a2b5c9729..af49518ac3 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -237,7 +237,7 @@ public abstract class Turret extends Block{ canShoot = unit.isShooting(); }else if(logicControlled()){ //logic behavior canShoot = logicShooting; - }else{ //default AI behavior + }else if(peekAmmo() != null){ //default AI behavior BulletType type = peekAmmo(); float speed = type.speed; //slow bullets never intersect @@ -436,7 +436,7 @@ public abstract class Turret extends Block{ public void read(Reads read, byte revision){ super.read(read, revision); - if(revision == 1){ + if(revision >= 1){ reload = read.f(); rotation = read.f(); } diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index cc9c330b3d..3654f8ba01 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -25,8 +25,8 @@ public class Conveyor extends Block implements Autotiler{ private static final float itemSpace = 0.4f; private static final int capacity = 4; - private final Vec2 tr1 = new Vec2(); - private final Vec2 tr2 = new Vec2(); + final Vec2 tr1 = new Vec2(); + final Vec2 tr2 = new Vec2(); public @Load(value = "@-#1-#2", lengths = {7, 4}) TextureRegion[][] regions; @@ -163,23 +163,22 @@ public class Conveyor extends Block implements Autotiler{ if(front() != null && front() != null){ next = front(); - nextc = next instanceof ConveyorBuild && next.team() == team ? (ConveyorBuild)next : null; + nextc = next instanceof ConveyorBuild && next.team == team ? (ConveyorBuild)next : null; aligned = nextc != null && rotation == next.rotation; } } @Override public void unitOn(Unit unit){ - if(clogHeat > 0.5f){ - return; - } + + if(clogHeat > 0.5f) return; noSleep(); - float mspeed = speed * tilesize / 2.4f; + float mspeed = speed * tilesize * 55f; float centerSpeed = 0.1f; float centerDstScl = 3f; - float tx = Geometry.d4[rotation].x, ty = Geometry.d4[rotation].y; + float tx = Geometry.d4x(rotation), ty = Geometry.d4y(rotation); float centerx = 0f, centery = 0f; diff --git a/core/src/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/mindustry/world/blocks/distribution/ItemBridge.java index fd3ccb3aaf..6ce1107285 100644 --- a/core/src/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/mindustry/world/blocks/distribution/ItemBridge.java @@ -42,6 +42,7 @@ public class ItemBridge extends Block{ unloadable = false; group = BlockGroup.transportation; canOverdrive = false; + noUpdateDisabled = true; //point2 config is relative config(Point2.class, (ItemBridgeBuild tile, Point2 i) -> tile.link = Point2.pack(i.x + tile.tileX(), i.y + tile.tileY())); @@ -341,7 +342,7 @@ public class ItemBridge extends Block{ @Override public boolean acceptLiquid(Building source, Liquid liquid, float amount){ - if(team != source.team() || !hasLiquids) return false; + if(team != source.team || !hasLiquids) return false; Tile other = world.tile(link); @@ -391,7 +392,7 @@ public class ItemBridge extends Block{ @Override public boolean shouldConsume(){ - return linkValid(tile, world.tile(link)); + return linkValid(tile, world.tile(link)) && enabled; } @Override diff --git a/core/src/mindustry/world/blocks/distribution/Junction.java b/core/src/mindustry/world/blocks/distribution/Junction.java index 324cfaf11d..26801e86c2 100644 --- a/core/src/mindustry/world/blocks/distribution/Junction.java +++ b/core/src/mindustry/world/blocks/distribution/Junction.java @@ -19,6 +19,7 @@ public class Junction extends Block{ solid = true; group = BlockGroup.transportation; unloadable = false; + noUpdateDisabled = true; } @Override @@ -49,7 +50,7 @@ public class Junction extends Block{ Building dest = nearby(i); //skip blocks that don't want the item, keep waiting until they do - if(dest == null || !dest.acceptItem(this, item) || dest.team() != team){ + if(dest == null || !dest.acceptItem(this, item) || dest.team != team){ continue; } @@ -73,7 +74,7 @@ public class Junction extends Block{ if(relative == -1 || !buffer.accepts(relative)) return false; Building to = nearby(relative); - return to != null && to.team() == team; + return to != null && to.team == team; } @Override diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index 303c7811e0..4afadbdba8 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -41,6 +41,8 @@ public class MassDriver extends Block{ hasItems = true; hasPower = true; outlineIcon = true; + sync = true; + //point2 is relative config(Point2.class, (MassDriverBuild tile, Point2 point) -> tile.link = Point2.pack(point.x + tile.tileX(), point.y + tile.tileY())); config(Integer.class, (MassDriverBuild tile, Integer point) -> tile.link = point); @@ -221,7 +223,7 @@ public class MassDriver extends Block{ if(link == other.pos()){ configure(-1); return false; - }else if(other.block() instanceof MassDriver && other.dst(tile) <= range && other.team() == team){ + }else if(other.block() instanceof MassDriver && other.dst(tile) <= range && other.team == team){ configure(other.pos()); return false; } @@ -252,7 +254,7 @@ public class MassDriver extends Block{ float angle = tile.angleTo(target); - Bullets.driverBolt.create(this, team(), + Bullets.driverBolt.create(this, team, x + Angles.trnsx(angle, translation), y + Angles.trnsy(angle, translation), angle, -1f, bulletSpeed, bulletLifetime, data); @@ -318,7 +320,7 @@ public class MassDriver extends Block{ super.read(read, revision); link = read.i(); rotation = read.f(); - state = DriverState.values()[read.b()]; + state = DriverState.all[read.b()]; } } @@ -326,6 +328,8 @@ public class MassDriver extends Block{ idle, //nothing is shooting at this mass driver and it does not have any target accepting, //currently getting shot at, unload items shooting, - unloading + unloading; + + public static final DriverState[] all = values(); } } diff --git a/core/src/mindustry/world/blocks/distribution/OverflowGate.java b/core/src/mindustry/world/blocks/distribution/OverflowGate.java index bbd11bd8c3..5f4d66db34 100644 --- a/core/src/mindustry/world/blocks/distribution/OverflowGate.java +++ b/core/src/mindustry/world/blocks/distribution/OverflowGate.java @@ -76,7 +76,7 @@ public class OverflowGate extends Block{ @Override public boolean acceptItem(Building source, Item item){ - return team == source.team() && lastItem == null && items.total() == 0; + return team == source.team && lastItem == null && items.total() == 0; } @Override @@ -91,16 +91,17 @@ public class OverflowGate extends Block{ int from = relativeToEdge(src); if(from == -1) return null; Building to = nearby((from + 2) % 4); - boolean canForward = to != null && to.acceptItem(this, item) && to.team() == team && !(to.block() instanceof OverflowGate); + boolean canForward = to != null && to.acceptItem(this, item) && to.team == team && !(to.block() instanceof OverflowGate); + boolean inv = invert == enabled; - if(!canForward || invert){ + if(!canForward || inv){ Building a = nearby(Mathf.mod(from - 1, 4)); Building b = nearby(Mathf.mod(from + 1, 4)); boolean ac = a != null && a.acceptItem(this, item) && !(a.block() instanceof OverflowGate) && a.team == team; boolean bc = b != null && b.acceptItem(this, item) && !(b.block() instanceof OverflowGate) && b.team == team; if(!ac && !bc){ - return invert && canForward ? to : null; + return inv && canForward ? to : null; } if(ac && !bc){ diff --git a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java index 6c790b322d..15067d3188 100644 --- a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java @@ -17,7 +17,7 @@ import mindustry.world.blocks.production.*; import static mindustry.Vars.*; public class PayloadConveyor extends Block{ - public float moveTime = 70f; + public float moveTime = 60f; public @Load("@-top") TextureRegion topRegion; public @Load("@-edge") TextureRegion edgeRegion; public Interp interp = Interp.pow5; @@ -29,6 +29,7 @@ public class PayloadConveyor extends Block{ rotate = true; update = true; outputsPayload = true; + noUpdateDisabled = true; } @Override @@ -85,7 +86,7 @@ public class PayloadConveyor extends Block{ int ntrns = 1 + size/2; Tile next = tile.getNearby(Geometry.d4(rotation).x * ntrns, Geometry.d4(rotation).y * ntrns); - blocked = (next != null && next.solid()) || (this.next != null && (this.next.rotation + 2)%4 == rotation); + blocked = (next != null && next.solid() && !next.block().outputsPayload) || (this.next != null && (this.next.rotation + 2)%4 == rotation); } @Override @@ -95,7 +96,9 @@ public class PayloadConveyor extends Block{ @Override public void updateTile(){ - progress = Time.time() % moveTime; + if(!enabled) return; + + progress = time() % moveTime; updatePayload(); @@ -184,6 +187,10 @@ public class PayloadConveyor extends Block{ } } + public float time(){ + return Time.time(); + } + @Override public boolean acceptPayload(Building source, Payload payload){ //accepting payloads from units isn't supported @@ -273,7 +280,7 @@ public class PayloadConveyor extends Block{ } public int curStep(){ - return (int)((Time.time()) / moveTime); + return (int)((time()) / moveTime); } public float fract(){ diff --git a/core/src/mindustry/world/blocks/distribution/Router.java b/core/src/mindustry/world/blocks/distribution/Router.java index cc184ac3a9..af3833f34b 100644 --- a/core/src/mindustry/world/blocks/distribution/Router.java +++ b/core/src/mindustry/world/blocks/distribution/Router.java @@ -35,7 +35,7 @@ public class Router extends Block{ time += 1f / speed * delta(); Building target = getTileTarget(lastItem, lastInput, false); - if(target != null && (time >= 1f || !(target.block() instanceof Router))){ + if(target != null && (time >= 1f || !(target.block() instanceof Router || target.block().instantTransfer))){ getTileTarget(lastItem, lastInput, true); target.handleItem(this, lastItem); items.remove(lastItem, 1); @@ -51,7 +51,7 @@ public class Router extends Block{ @Override public boolean acceptItem(Building source, Item item){ - return team == source.team() && lastItem == null && items.total() == 0; + return team == source.team && lastItem == null && items.total() == 0; } @Override @@ -76,7 +76,7 @@ public class Router extends Block{ for(int i = 0; i < proximity.size; i++){ Building other = proximity.get((i + counter) % proximity.size); if(set) rotation = ((byte)((rotation + 1) % proximity.size)); - if(other.tile() == from && from.block() == Blocks.overflowGate) continue; + if(other.tile == from && from.block() == Blocks.overflowGate) continue; if(other.acceptItem(this, item)){ return other; } diff --git a/core/src/mindustry/world/blocks/distribution/Sorter.java b/core/src/mindustry/world/blocks/distribution/Sorter.java index c94f206af4..f5e9d9b5ec 100644 --- a/core/src/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/mindustry/world/blocks/distribution/Sorter.java @@ -76,7 +76,7 @@ public class Sorter extends Block{ public boolean acceptItem(Building source, Item item){ Building to = getTileTarget(item, source, false); - return to != null && to.acceptItem(this, item) && to.team() == team; + return to != null && to.acceptItem(this, item) && to.team == team; } @Override @@ -132,7 +132,7 @@ public class Sorter extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.items(), () -> sortItem, item -> configure(item)); + ItemSelection.buildTable(table, content.items(), () -> sortItem, this::configure); } @Override diff --git a/core/src/mindustry/world/blocks/legacy/LegacyCommandCenter.java b/core/src/mindustry/world/blocks/legacy/LegacyCommandCenter.java deleted file mode 100644 index 2dac9ec300..0000000000 --- a/core/src/mindustry/world/blocks/legacy/LegacyCommandCenter.java +++ /dev/null @@ -1,20 +0,0 @@ -package mindustry.world.blocks.legacy; - -import arc.util.io.*; -import mindustry.gen.*; - -public class LegacyCommandCenter extends LegacyBlock{ - - public LegacyCommandCenter(String name){ - super(name); - update = true; - } - - public class LegacyCommandCenterBuild extends Building{ - @Override - public void read(Reads read, byte revision){ - super.read(read, revision); - read.b(); - } - } -} diff --git a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java index 2335cb157d..060add232a 100644 --- a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java +++ b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java @@ -26,7 +26,7 @@ public class ArmoredConduit extends Conduit{ // draw the cap when a conduit would normally leak Building next = front(); - if(next != null && next.team() == team && next.block().hasLiquids) return; + if(next != null && next.team == team && next.block().hasLiquids) return; Draw.rect(capRegion, x, y, rotdeg()); } diff --git a/core/src/mindustry/world/blocks/liquid/Conduit.java b/core/src/mindustry/world/blocks/liquid/Conduit.java index 60552d6f3c..69cc036a13 100644 --- a/core/src/mindustry/world/blocks/liquid/Conduit.java +++ b/core/src/mindustry/world/blocks/liquid/Conduit.java @@ -35,6 +35,7 @@ public class Conduit extends LiquidBlock implements Autotiler{ solid = false; floating = true; conveyorPlacement = true; + noUpdateDisabled = true; } @Override diff --git a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java index 4d0942afab..b449d721a8 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java @@ -36,6 +36,8 @@ public class LiquidJunction extends LiquidBlock{ @Override public Building getLiquidDestination(Building source, Liquid liquid){ + if(!enabled) return this; + int dir = source.relativeTo(tile.x, tile.y); dir = (dir + 4) % 4; Building next = nearby(dir); diff --git a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java index 42ce949915..6184e179de 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java @@ -7,6 +7,8 @@ public class LiquidRouter extends LiquidBlock{ public LiquidRouter(String name){ super(name); + + noUpdateDisabled = true; } public class LiquidRouterEntity extends LiquidBuild{ diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 2848edbf27..9b5b4a384b 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -17,6 +17,7 @@ import mindustry.logic.LExecutor.*; import mindustry.ui.*; import mindustry.world.*; import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.meta.*; import java.io.*; import java.util.zip.*; @@ -24,7 +25,7 @@ import java.util.zip.*; import static mindustry.Vars.*; public class LogicBlock extends Block{ - public static final int maxInstructions = 2000; + public static final int maxInstructions = 1500; public int maxInstructionScale = 5; public int instructionsPerTick = 1; @@ -113,6 +114,19 @@ public class LogicBlock extends Block{ } } + @Override + public void setStats(){ + super.setStats(); + + stats.add(BlockStat.linkRange, range / 8, StatUnit.blocks); + stats.add(BlockStat.instructions, instructionsPerTick * 60, StatUnit.perSecond); + } + + @Override + public void drawPlace(int x, int y, int rotation, boolean valid){ + Drawf.circles(x*tilesize + offset, y*tilesize + offset, range); + } + @Override public Object pointConfig(Object config, Cons transformer){ if(config instanceof byte[]){ @@ -193,7 +207,6 @@ public class LogicBlock extends Block{ stream.readInt(); } }else{ - for(int i = 0; i < total; i++){ String name = stream.readUTF(); short x = stream.readShort(), y = stream.readShort(); @@ -276,6 +289,7 @@ public class LogicBlock extends Block{ } asm.putConst("@links", executor.links.length); + asm.putConst("@ipt", instructionsPerTick); //store any older variables for(Var var : executor.vars){ @@ -293,6 +307,8 @@ public class LogicBlock extends Block{ } asm.putConst("@this", this); + asm.putConst("@thisx", x); + asm.putConst("@thisy", y); executor.load(asm); }catch(Exception e){ @@ -315,7 +331,9 @@ public class LogicBlock extends Block{ //check for previously invalid links to add after configuration boolean changed = false; - for(LogicLink l : links){ + for(int i = 0; i < links.size; i++){ + LogicLink l = links.get(i); + if(!l.active) continue; boolean valid = validLink(world.build(l.x, l.y)); @@ -323,10 +341,18 @@ public class LogicBlock extends Block{ changed = true; l.valid = valid; if(valid){ + Building lbuild = world.build(l.x, l.y); + //this prevents conflicts l.name = ""; //finds a new matching name after toggling - l.name = findLinkName(world.build(l.x, l.y).block); + l.name = findLinkName(lbuild.block); + + //remove redundant links + links.removeAll(o -> world.build(o.x, o.y) == lbuild && o != l); + + //break to prevent concurrent modification + break; } } } @@ -335,15 +361,17 @@ public class LogicBlock extends Block{ updateCode(); } - accumulator += edelta() * instructionsPerTick; + if(enabled){ + accumulator += edelta() * instructionsPerTick * (consValid() ? 1 : 0); - if(accumulator > maxInstructionScale * instructionsPerTick) accumulator = maxInstructionScale * instructionsPerTick; + if(accumulator > maxInstructionScale * instructionsPerTick) accumulator = maxInstructionScale * instructionsPerTick; - for(int i = 0; i < (int)accumulator; i++){ - if(executor.initialized()){ - executor.runOnce(); + for(int i = 0; i < (int)accumulator; i++){ + if(executor.initialized()){ + executor.runOnce(); + } + accumulator --; } - accumulator --; } } @@ -389,10 +417,7 @@ public class LogicBlock extends Block{ return other != null && other.isValid() && other.team == team && other.within(this, range + other.block.size*tilesize/2f) && !(other instanceof BuildEntity); } - @Override - public void drawSelect(){ - } @Override public void buildConfiguration(Table table){ diff --git a/core/src/mindustry/world/blocks/logic/LogicDisplay.java b/core/src/mindustry/world/blocks/logic/LogicDisplay.java index ee3d53707a..6fe7e23e08 100644 --- a/core/src/mindustry/world/blocks/logic/LogicDisplay.java +++ b/core/src/mindustry/world/blocks/logic/LogicDisplay.java @@ -9,6 +9,7 @@ import arc.util.*; import mindustry.annotations.Annotations.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.world.*; public class LogicDisplay extends Block{ @@ -37,7 +38,7 @@ public class LogicDisplay extends Block{ public FrameBuffer buffer; public float color = Color.whiteFloatBits; public float stroke = 1f; - public LongQueue commands = new LongQueue(); + public LongQueue commands = new LongQueue(LExecutor.maxDisplayBuffer); @Override public void draw(){ diff --git a/core/src/mindustry/world/blocks/logic/SwitchBlock.java b/core/src/mindustry/world/blocks/logic/SwitchBlock.java index 2e18b76b0d..5bb9dbf621 100644 --- a/core/src/mindustry/world/blocks/logic/SwitchBlock.java +++ b/core/src/mindustry/world/blocks/logic/SwitchBlock.java @@ -14,6 +14,8 @@ public class SwitchBlock extends Block{ super(name); configurable = true; update = true; + drawDisabled = false; + autoResetEnabled = false; config(Boolean.class, (SwitchBuild entity, Boolean b) -> entity.enabled = b); } diff --git a/core/src/mindustry/world/blocks/payloads/BlockPayload.java b/core/src/mindustry/world/blocks/payloads/BlockPayload.java index ddc013b4c2..5690cd46d0 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockPayload.java +++ b/core/src/mindustry/world/blocks/payloads/BlockPayload.java @@ -30,7 +30,8 @@ public class BlockPayload implements Payload{ } public void place(Tile tile, int rotation){ - tile.setBlock(entity.block(), entity.team(), rotation, () -> entity); + tile.setBlock(entity.block(), entity.team, rotation, () -> entity); + entity.dropped(); } @Override diff --git a/core/src/mindustry/world/blocks/payloads/UnitPayload.java b/core/src/mindustry/world/blocks/payloads/UnitPayload.java index b71da37ba8..ee912480de 100644 --- a/core/src/mindustry/world/blocks/payloads/UnitPayload.java +++ b/core/src/mindustry/world/blocks/payloads/UnitPayload.java @@ -7,7 +7,6 @@ import mindustry.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.ui.*; -import mindustry.world.blocks.environment.*; public class UnitPayload implements Payload{ public Unit unit; @@ -41,8 +40,6 @@ public class UnitPayload implements Payload{ @Override public boolean dump(){ - Floor floor = unit.floorOn(); - //no client dumping if(Vars.net.client()) return true; diff --git a/core/src/mindustry/world/blocks/power/ImpactReactor.java b/core/src/mindustry/world/blocks/power/ImpactReactor.java index 881d7cbeff..a24fecf2b4 100644 --- a/core/src/mindustry/world/blocks/power/ImpactReactor.java +++ b/core/src/mindustry/world/blocks/power/ImpactReactor.java @@ -64,10 +64,9 @@ public class ImpactReactor extends PowerGenerator{ return new TextureRegion[]{bottomRegion, region}; } - public class FusionReactorBuild extends GeneratorBuild{ + public class ImpactReactorBuild extends GeneratorBuild{ public float warmup; - @Override public void updateTile(){ if(consValid() && power.status >= 0.99f){ diff --git a/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java b/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java index bdb593cb93..2419c9a039 100644 --- a/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java +++ b/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java @@ -113,7 +113,7 @@ public class ItemLiquidGenerator extends PowerGenerator{ } } - totalTime += heat; + totalTime += heat * Time.delta; //liquid takes priority over solids if(hasLiquids && liquid != null && liquids.get(liquid) >= 0.001f){ diff --git a/core/src/mindustry/world/blocks/power/NuclearReactor.java b/core/src/mindustry/world/blocks/power/NuclearReactor.java index d1b88fd76d..18dfd0afca 100644 --- a/core/src/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/mindustry/world/blocks/power/NuclearReactor.java @@ -76,12 +76,14 @@ public class NuclearReactor extends PowerGenerator{ float fullness = (float)fuel / itemCapacity; productionEfficiency = fullness; - if(fuel > 0){ + if(fuel > 0 && enabled){ heat += fullness * heating * Math.min(delta(), 4f); if(timer(timerFuel, itemDuration / timeScale())){ consume(); } + }else{ + productionEfficiency = 0f; } Liquid liquid = cliquid.liquid; diff --git a/core/src/mindustry/world/blocks/power/PowerDiode.java b/core/src/mindustry/world/blocks/power/PowerDiode.java index f4a5f21a89..05a577902a 100644 --- a/core/src/mindustry/world/blocks/power/PowerDiode.java +++ b/core/src/mindustry/world/blocks/power/PowerDiode.java @@ -21,6 +21,7 @@ public class PowerDiode extends Block{ solid = true; insulated = true; group = BlockGroup.power; + noUpdateDisabled = true; } @Override @@ -53,7 +54,7 @@ public class PowerDiode extends Block{ public void updateTile(){ super.updateTile(); - if(front() == null || back() == null || !back().block().hasPower || !front().block().hasPower || back().team() != front().team()) return; + if(front() == null || back() == null || !back().block().hasPower || !front().block().hasPower || back().team != front().team) return; PowerGraph backGraph = back().power.graph; PowerGraph frontGraph = front().power.graph; diff --git a/core/src/mindustry/world/blocks/power/PowerNode.java b/core/src/mindustry/world/blocks/power/PowerNode.java index 57a0f9fa63..0871ef6e87 100644 --- a/core/src/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/mindustry/world/blocks/power/PowerNode.java @@ -68,7 +68,7 @@ public class PowerNode extends PowerBlock{ power.links.add(other.pos()); } - if(other.team() == entity.team()){ + if(other.team == entity.team){ if(!other.power.links.contains(entity.pos())){ other.power.links.add(entity.pos()); @@ -184,7 +184,7 @@ public class PowerNode extends PowerBlock{ protected void getPotentialLinks(Tile tile, Cons others){ Boolf valid = other -> other != null && other.tile() != tile && other.power != null && ((!other.block().outputsPower && other.block().consumesPower) || (other.block().outputsPower && !other.block().consumesPower) || other.block() instanceof PowerNode) && - overlaps(tile.x * tilesize + offset, tile.y * tilesize + offset, other.tile(), laserRange * tilesize) && other.team() == player.team() + overlaps(tile.x * tilesize + offset, tile.y * tilesize + offset, other.tile(), laserRange * tilesize) && other.team == player.team() && !other.proximity().contains(e -> e.tile() == tile) && !graphs.contains(other.power.graph); tempTileEnts.clear(); @@ -235,7 +235,7 @@ public class PowerNode extends PowerBlock{ } public boolean linkValid(Building tile, Building link, boolean checkMaxNodes){ - if(tile == link || link == null || !link.block().hasPower || tile.team() != link.team()) return false; + if(tile == link || link == null || !link.block().hasPower || tile.team != link.team) return false; if(overlaps(tile, link, laserRange * tilesize) || (link.block() instanceof PowerNode && overlaps(link, tile, ((PowerNode)link.block()).laserRange * tilesize))){ if(checkMaxNodes && link.block() instanceof PowerNode){ @@ -306,6 +306,14 @@ public class PowerNode extends PowerBlock{ super.placed(); } + @Override + public void dropped(){ + power.links.clear(); + //create new power graph to manually unlink (this may be redundant) + power.graph = new PowerGraph(); + power.graph.add(this); + } + @Override public void updateTile(){ power.graph.update(); diff --git a/core/src/mindustry/world/blocks/power/SolarGenerator.java b/core/src/mindustry/world/blocks/power/SolarGenerator.java index 8965978f9c..94e94c1c68 100644 --- a/core/src/mindustry/world/blocks/power/SolarGenerator.java +++ b/core/src/mindustry/world/blocks/power/SolarGenerator.java @@ -24,12 +24,12 @@ public class SolarGenerator extends PowerGenerator{ public class SolarGeneratorBuild extends GeneratorBuild{ @Override public void updateTile(){ - productionEfficiency = + productionEfficiency = enabled ? Mathf.maxZero(Attribute.light.env() + (state.rules.solarPowerMultiplier < 0 ? (state.rules.lighting ? 1f - state.rules.ambientLight.a : 1f) : state.rules.solarPowerMultiplier - )); + )) : 0f; } } } diff --git a/core/src/mindustry/world/blocks/production/AttributeSmelter.java b/core/src/mindustry/world/blocks/production/AttributeSmelter.java index 405f830d2d..987b14e63b 100644 --- a/core/src/mindustry/world/blocks/production/AttributeSmelter.java +++ b/core/src/mindustry/world/blocks/production/AttributeSmelter.java @@ -49,10 +49,10 @@ public class AttributeSmelter extends GenericSmelter{ } @Override - public void placed(){ - super.placed(); + public void onProximityUpdate(){ + super.onProximityUpdate(); attrsum = sumAttribute(attribute, tile.x, tile.y); } } -} \ No newline at end of file +} diff --git a/core/src/mindustry/world/blocks/production/Drill.java b/core/src/mindustry/world/blocks/production/Drill.java index cad24f293a..7b86f1d1f5 100644 --- a/core/src/mindustry/world/blocks/production/Drill.java +++ b/core/src/mindustry/world/blocks/production/Drill.java @@ -217,7 +217,7 @@ public class Drill extends Block{ @Override public boolean shouldConsume(){ - return items.total() < itemCapacity; + return items.total() < itemCapacity && enabled; } @Override diff --git a/core/src/mindustry/world/blocks/production/GenericCrafter.java b/core/src/mindustry/world/blocks/production/GenericCrafter.java index 67a9a63116..434c9f4b65 100644 --- a/core/src/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/mindustry/world/blocks/production/GenericCrafter.java @@ -93,7 +93,7 @@ public class GenericCrafter extends Block{ if(outputItem != null && items.get(outputItem.item) >= itemCapacity){ return false; } - return outputLiquid == null || !(liquids.get(outputLiquid.liquid) >= liquidCapacity - 0.001f); + return (outputLiquid == null || !(liquids.get(outputLiquid.liquid) >= liquidCapacity - 0.001f)) && enabled; } @Override diff --git a/core/src/mindustry/world/blocks/production/PayloadAcceptor.java b/core/src/mindustry/world/blocks/production/PayloadAcceptor.java index e11d604c7a..3e365b5fcd 100644 --- a/core/src/mindustry/world/blocks/production/PayloadAcceptor.java +++ b/core/src/mindustry/world/blocks/production/PayloadAcceptor.java @@ -24,6 +24,7 @@ public class PayloadAcceptor extends Block{ super(name); update = true; + sync = true; } public static boolean blends(Building tile, int direction){ diff --git a/core/src/mindustry/world/blocks/production/Pump.java b/core/src/mindustry/world/blocks/production/Pump.java index 7ac6cba155..ac138fc620 100644 --- a/core/src/mindustry/world/blocks/production/Pump.java +++ b/core/src/mindustry/world/blocks/production/Pump.java @@ -108,7 +108,7 @@ public class Pump extends LiquidBlock{ @Override public boolean shouldConsume(){ - return liquidDrop != null && liquids.get(liquidDrop) < liquidCapacity - 0.01f; + return liquidDrop != null && liquids.get(liquidDrop) < liquidCapacity - 0.01f && enabled; } @Override diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index ac8f946d5e..394e0bae5b 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -71,7 +71,7 @@ public class Separator extends Block{ total -= items.get(stack.item); } } - return total < itemCapacity; + return total < itemCapacity && enabled; } @Override diff --git a/core/src/mindustry/world/blocks/production/SolidPump.java b/core/src/mindustry/world/blocks/production/SolidPump.java index 157020c998..ebd0f2d20e 100644 --- a/core/src/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/mindustry/world/blocks/production/SolidPump.java @@ -97,7 +97,7 @@ public class SolidPump extends Pump{ @Override public boolean shouldConsume(){ - return liquids.get(result) < liquidCapacity - 0.01f; + return liquids.get(result) < liquidCapacity - 0.01f && enabled; } @Override diff --git a/core/src/mindustry/world/blocks/sandbox/ItemSource.java b/core/src/mindustry/world/blocks/sandbox/ItemSource.java index 223419bc82..70933f737b 100644 --- a/core/src/mindustry/world/blocks/sandbox/ItemSource.java +++ b/core/src/mindustry/world/blocks/sandbox/ItemSource.java @@ -23,6 +23,7 @@ public class ItemSource extends Block{ group = BlockGroup.transportation; configurable = true; saveConfig = true; + noUpdateDisabled = true; config(Item.class, (ItemSourceBuild tile, Item item) -> tile.outputItem = item); configClear((ItemSourceBuild tile) -> tile.outputItem = null); @@ -69,7 +70,7 @@ public class ItemSource extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.items(), () -> outputItem, item -> configure(item)); + ItemSelection.buildTable(table, content.items(), () -> outputItem, this::configure); } @Override diff --git a/core/src/mindustry/world/blocks/sandbox/ItemVoid.java b/core/src/mindustry/world/blocks/sandbox/ItemVoid.java index ca52e40591..6ba1c9c5a6 100644 --- a/core/src/mindustry/world/blocks/sandbox/ItemVoid.java +++ b/core/src/mindustry/world/blocks/sandbox/ItemVoid.java @@ -17,7 +17,7 @@ public class ItemVoid extends Block{ @Override public boolean acceptItem(Building source, Item item){ - return true; + return enabled; } } } diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java index d079e40d5c..ce5d657527 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java @@ -24,6 +24,7 @@ public class LiquidSource extends Block{ configurable = true; outputsLiquid = true; saveConfig = true; + noUpdateDisabled = true; config(Liquid.class, (LiquidSourceBuild tile, Liquid l) -> tile.source = l); configClear((LiquidSourceBuild tile) -> tile.source = null); @@ -67,7 +68,7 @@ public class LiquidSource extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.liquids(), () -> source, liquid -> configure(liquid)); + ItemSelection.buildTable(table, content.liquids(), () -> source, this::configure); } @Override @@ -86,16 +87,21 @@ public class LiquidSource extends Block{ return source; } + @Override + public byte version(){ + return 1; + } + @Override public void write(Writes write){ super.write(write); - write.b(source == null ? -1 : source.id); + write.s(source == null ? -1 : source.id); } @Override public void read(Reads read, byte revision){ super.read(read, revision); - byte id = read.b(); + int id = revision == 1 ? read.s() : read.b(); source = id == -1 ? null : content.liquid(id); } } diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java index 0b701b75cb..0f49ffd3a7 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java @@ -22,7 +22,7 @@ public class LiquidVoid extends Block{ public class LiquidVoidBuild extends Building{ @Override public boolean acceptLiquid(Building source, Liquid liquid, float amount){ - return true; + return enabled; } @Override diff --git a/core/src/mindustry/world/blocks/sandbox/PowerSource.java b/core/src/mindustry/world/blocks/sandbox/PowerSource.java index 32002747fb..fbc24f5ea7 100644 --- a/core/src/mindustry/world/blocks/sandbox/PowerSource.java +++ b/core/src/mindustry/world/blocks/sandbox/PowerSource.java @@ -14,7 +14,7 @@ public class PowerSource extends PowerNode{ public class PowerSourceBuild extends PowerNodeBuild{ @Override public float getPowerProduction(){ - return 10000f; + return enabled ? 10000f : 0f; } } diff --git a/core/src/mindustry/world/blocks/storage/StorageBlock.java b/core/src/mindustry/world/blocks/storage/StorageBlock.java index 639cb8b51f..0aca99a0b6 100644 --- a/core/src/mindustry/world/blocks/storage/StorageBlock.java +++ b/core/src/mindustry/world/blocks/storage/StorageBlock.java @@ -42,7 +42,7 @@ public abstract class StorageBlock extends Block{ @Override public boolean canPickup(){ - return linkedCore != null; + return linkedCore == null; } } } diff --git a/core/src/mindustry/world/blocks/storage/Unloader.java b/core/src/mindustry/world/blocks/storage/Unloader.java index b7319adea1..1ca83e08d4 100644 --- a/core/src/mindustry/world/blocks/storage/Unloader.java +++ b/core/src/mindustry/world/blocks/storage/Unloader.java @@ -26,6 +26,7 @@ public class Unloader extends Block{ configurable = true; saveConfig = true; itemCapacity = 0; + noUpdateDisabled = true; config(Item.class, (UnloaderBuild tile, Item item) -> tile.sortItem = item); configClear((UnloaderBuild tile) -> tile.sortItem = null); @@ -82,7 +83,7 @@ public class Unloader extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.items(), () -> tile.bc().sortItem, item -> configure(item)); + ItemSelection.buildTable(table, content.items(), () -> sortItem, this::configure); } @Override @@ -106,16 +107,21 @@ public class Unloader extends Block{ return sortItem; } + @Override + public byte version(){ + return 1; + } + @Override public void write(Writes write){ super.write(write); - write.b(sortItem == null ? -1 : sortItem.id); + write.s(sortItem == null ? -1 : sortItem.id); } @Override public void read(Reads read, byte revision){ super.read(read, revision); - byte id = read.b(); + int id = revision == 1 ? read.s() : read.b(); sortItem = id == -1 ? null : content.items().get(id); } } diff --git a/core/src/mindustry/world/blocks/units/CommandCenter.java b/core/src/mindustry/world/blocks/units/CommandCenter.java new file mode 100644 index 0000000000..071bcaf273 --- /dev/null +++ b/core/src/mindustry/world/blocks/units/CommandCenter.java @@ -0,0 +1,98 @@ +package mindustry.world.blocks.units; + +import arc.graphics.*; +import arc.graphics.g2d.*; +import arc.scene.style.*; +import arc.scene.ui.*; +import arc.scene.ui.layout.*; +import arc.struct.*; +import arc.util.*; +import arc.util.io.*; +import mindustry.*; +import mindustry.content.*; +import mindustry.entities.*; +import mindustry.entities.units.*; +import mindustry.gen.*; +import mindustry.graphics.*; +import mindustry.ui.*; +import mindustry.world.*; +import mindustry.world.meta.*; + +public class CommandCenter extends Block{ + public TextureRegionDrawable[] commandRegions = new TextureRegionDrawable[UnitCommand.all.length]; + public Color topColor = Pal.command, bottomColor = Color.valueOf("5e5e5e"); + public Effect effect = Fx.commandSend; + + public CommandCenter(String name){ + super(name); + + flags = EnumSet.of(BlockFlag.rally); + destructible = true; + solid = true; + configurable = true; + + config(UnitCommand.class, (CommandBuild build, UnitCommand command) -> { + build.team.data().command = command; + effect.at(build); + }); + } + + @Override + public void load(){ + super.load(); + + if(Vars.ui != null){ + for(UnitCommand cmd : UnitCommand.all){ + commandRegions[cmd.ordinal()] = Vars.ui.getIcon("command" + Strings.capitalize(cmd.name()), "cancel"); + } + } + } + + public class CommandBuild extends Building{ + + @Override + public Object config(){ + return team.data().command; + } + + @Override + public void draw(){ + super.draw(); + + float size = 6f; + + Draw.color(bottomColor); + Draw.rect(commandRegions[team.data().command.ordinal()].getRegion(), tile.drawx(), tile.drawy() - 1, size, size); + Draw.color(topColor); + Draw.rect(commandRegions[team.data().command.ordinal()].getRegion(), tile.drawx(), tile.drawy(), size, size); + Draw.color(); + } + + @Override + public void buildConfiguration(Table table){ + ButtonGroup group = new ButtonGroup<>(); + Table buttons = new Table(); + + for(UnitCommand cmd : UnitCommand.all){ + buttons.button(commandRegions[cmd.ordinal()], Styles.clearToggleTransi, () -> { + if(team.data().command != cmd) configure(cmd); + }).size(44).group(group).update(b -> b.setChecked(team.data().command == cmd)); + } + table.add(buttons); + table.row(); + table.label(() -> team.data().command.localized()).style(Styles.outlineLabel).center().growX().get().setAlignment(Align.center); + } + + @Override + public void write(Writes write){ + super.write(write); + write.b(team.data().command.ordinal()); + } + + @Override + public void read(Reads read, byte version){ + super.read(read, version); + team.data().command = UnitCommand.all[read.b()]; + } + } +} \ No newline at end of file diff --git a/core/src/mindustry/world/blocks/units/Reconstructor.java b/core/src/mindustry/world/blocks/units/Reconstructor.java index 087b5a19c8..f297ccad57 100644 --- a/core/src/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/mindustry/world/blocks/units/Reconstructor.java @@ -4,6 +4,7 @@ import arc.*; import arc.graphics.g2d.*; import arc.math.*; import arc.util.*; +import arc.util.io.*; import mindustry.*; import mindustry.content.*; import mindustry.entities.*; @@ -187,5 +188,28 @@ public class Reconstructor extends UnitBlock{ UnitType[] r = Structs.find(upgrades, arr -> arr[0] == type); return r == null ? null : r[1]; } + + @Override + public byte version(){ + return 1; + } + + @Override + public void write(Writes write){ + super.write(write); + + write.f(progress); + } + + @Override + public void read(Reads read, byte revision){ + super.read(read, revision); + + if(revision == 1){ + progress = read.f(); + } + + } + } } diff --git a/core/src/mindustry/world/blocks/units/RepairPoint.java b/core/src/mindustry/world/blocks/units/RepairPoint.java index 802776af83..d0670783c8 100644 --- a/core/src/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/mindustry/world/blocks/units/RepairPoint.java @@ -16,7 +16,7 @@ import mindustry.world.meta.*; import static mindustry.Vars.*; public class RepairPoint extends Block{ - private static final Rect rect = new Rect(); + static final Rect rect = new Rect(); public int timerTarget = timers++; @@ -115,7 +115,7 @@ public class RepairPoint extends Block{ @Override public boolean shouldConsume(){ - return target != null; + return target != null && enabled; } } } diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index 1a7f140d63..4cddee5135 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -223,7 +223,7 @@ public class UnitFactory extends UnitBlock{ if(currentPlan != -1 && !Units.canCreate(team, plans[currentPlan].unit)){ return false; } - return super.shouldConsume(); + return enabled; } @Override diff --git a/core/src/mindustry/world/meta/BlockFlag.java b/core/src/mindustry/world/meta/BlockFlag.java index 2308448e45..ddf9fa9ba7 100644 --- a/core/src/mindustry/world/meta/BlockFlag.java +++ b/core/src/mindustry/world/meta/BlockFlag.java @@ -10,7 +10,7 @@ public enum BlockFlag{ turret, /** Repair point. */ repair, - /** Rally point. TODO remove*/ + /** Rally point. */ rally, /** Any block that boosts unit capacity. */ unitModifier; diff --git a/core/src/mindustry/world/meta/BlockStat.java b/core/src/mindustry/world/meta/BlockStat.java index 2a432208a8..11add35e97 100644 --- a/core/src/mindustry/world/meta/BlockStat.java +++ b/core/src/mindustry/world/meta/BlockStat.java @@ -32,6 +32,8 @@ public enum BlockStat{ drillTier(StatCategory.crafting), drillSpeed(StatCategory.crafting), maxUnits(StatCategory.crafting), + linkRange(StatCategory.crafting), + instructions(StatCategory.crafting), speedIncrease(StatCategory.shooting), repairTime(StatCategory.shooting), diff --git a/core/src/mindustry/world/modules/BlockModule.java b/core/src/mindustry/world/modules/BlockModule.java index 974f43656f..fc61966a46 100644 --- a/core/src/mindustry/world/modules/BlockModule.java +++ b/core/src/mindustry/world/modules/BlockModule.java @@ -5,5 +5,12 @@ import arc.util.io.*; /** A class that represents compartmentalized tile entity state. */ public abstract class BlockModule{ public abstract void write(Writes write); - public abstract void read(Reads read); + + public void read(Reads read, boolean legacy){ + read(read); + } + + public void read(Reads read){ + read(read, false); + } } diff --git a/core/src/mindustry/world/modules/ConsumeModule.java b/core/src/mindustry/world/modules/ConsumeModule.java index 4d4fc6e522..027e5595a9 100644 --- a/core/src/mindustry/world/modules/ConsumeModule.java +++ b/core/src/mindustry/world/modules/ConsumeModule.java @@ -63,11 +63,11 @@ public class ConsumeModule extends BlockModule{ } public boolean valid(){ - return valid && entity.shouldConsume(); + return valid && entity.shouldConsume() && entity.enabled; } public boolean optionalValid(){ - return valid() && optionalValid; + return valid() && optionalValid && entity.enabled; } @Override diff --git a/core/src/mindustry/world/modules/ItemModule.java b/core/src/mindustry/world/modules/ItemModule.java index b0bd7e1cde..52fdd63dfd 100644 --- a/core/src/mindustry/world/modules/ItemModule.java +++ b/core/src/mindustry/world/modules/ItemModule.java @@ -276,30 +276,30 @@ public class ItemModule extends BlockModule{ @Override public void write(Writes write){ - byte amount = 0; + int amount = 0; for(int item : items){ if(item > 0) amount++; } - write.b(amount); //amount of items + write.s(amount); //amount of items for(int i = 0; i < items.length; i++){ if(items[i] > 0){ - write.b(i); //item ID + write.s(i); //item ID write.i(items[i]); //item amount } } } @Override - public void read(Reads read){ + public void read(Reads read, boolean legacy){ //just in case, reset items Arrays.fill(items, 0); - byte count = read.b(); + int count = legacy ? read.ub() : read.s(); total = 0; for(int j = 0; j < count; j++){ - int itemid = read.b(); + int itemid = legacy ? read.ub() : read.s(); int itemamount = read.i(); items[content.item(itemid).id] = itemamount; total += itemamount; diff --git a/core/src/mindustry/world/modules/LiquidModule.java b/core/src/mindustry/world/modules/LiquidModule.java index 2d8a34d165..292df3198a 100644 --- a/core/src/mindustry/world/modules/LiquidModule.java +++ b/core/src/mindustry/world/modules/LiquidModule.java @@ -114,29 +114,29 @@ public class LiquidModule extends BlockModule{ @Override public void write(Writes write){ - byte amount = 0; + int amount = 0; for(float liquid : liquids){ if(liquid > 0) amount++; } - write.b(amount); //amount of liquids + write.s(amount); //amount of liquids for(int i = 0; i < liquids.length; i++){ if(liquids[i] > 0){ - write.b(i); //liquid ID - write.f(liquids[i]); //item amount + write.s(i); //liquid ID + write.f(liquids[i]); //liquid amount } } } @Override - public void read(Reads read){ + public void read(Reads read, boolean legacy){ Arrays.fill(liquids, 0); total = 0f; - byte count = read.b(); + int count = legacy ? read.ub() : read.s(); for(int j = 0; j < count; j++){ - int liquidid = read.b(); + int liquidid = legacy ? read.ub() : read.s(); float amount = read.f(); liquids[liquidid] = amount; if(amount > 0){ diff --git a/desktop/src/mindustry/desktop/steam/SNet.java b/desktop/src/mindustry/desktop/steam/SNet.java index 2a038171f7..9cd7c816ee 100644 --- a/desktop/src/mindustry/desktop/steam/SNet.java +++ b/desktop/src/mindustry/desktop/steam/SNet.java @@ -305,6 +305,7 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback, try{ SteamID lobby = smat.getLobbyByIndex(i); Host out = new Host( + -1, //invalid ping smat.getLobbyData(lobby, "name"), "steam:" + lobby.handle(), smat.getLobbyData(lobby, "mapname"), diff --git a/desktop/src/mindustry/desktop/steam/SStats.java b/desktop/src/mindustry/desktop/steam/SStats.java index 71420d8ed7..2ee13bea4e 100644 --- a/desktop/src/mindustry/desktop/steam/SStats.java +++ b/desktop/src/mindustry/desktop/steam/SStats.java @@ -51,7 +51,7 @@ public class SStats implements SteamUserStatsCallback{ this.updated = true; } - private void checkUpdate(){ + void checkUpdate(){ if(campaign()){ SStat.maxUnitActive.max(Groups.unit.count(t -> t.team() == player.team())); @@ -87,11 +87,11 @@ public class SStats implements SteamUserStatsCallback{ }); //TODO achievement invalid - Events.on(ZoneConfigureCompleteEvent.class, e -> { + //Events.on(ZoneConfigureCompleteEvent.class, e -> { //if(!content.sectors().contains(z -> !z.canConfigure())){ // configAllZones.complete(); //} - }); + //}); Events.run(Trigger.newGame, () -> Core.app.post(() -> { if(campaign() && player.core() != null && player.core().items.total() >= 10 * 1000){ diff --git a/gradle.properties b/gradle.properties index 30169cb6ce..ee83875d3c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=0fafa5b7159c2a6c11f03ebd378a47736101b46e +archash=a72f08a6812107fdf4462b7c6955efc19a67715b diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index 3b52af9606..f541ed9cce 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -48,7 +48,7 @@ public class ServerControl implements ApplicationListener{ private Fi currentLogFile; private boolean inExtraRound; private Task lastTask; - private Gamemode lastMode = Gamemode.survival; + private Gamemode lastMode; private @Nullable Map nextMapOverride; private Interval autosaveCount = new Interval(); @@ -64,6 +64,15 @@ public class ServerControl implements ApplicationListener{ "globalrules", "{reactorExplosions: false}" //schematicAllowed: true} //is not working ); + //update log level + Config.debug.set(Config.debug.bool()); + + try{ + lastMode = Gamemode.valueOf(Core.settings.getString("lastServerMode", "survival")); + }catch(Exception e){ //handle enum parse exception + lastMode = Gamemode.survival; + } + Log.setLogger((level, text) -> { String result = "[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr"); System.out.println(result); @@ -159,6 +168,9 @@ public class ServerControl implements ApplicationListener{ + (map.tags.containsKey("author") && !map.tags.get("author").trim().isEmpty() ? " by[accent] " + map.author() + "[white]" : "") + "." + "\nNew game begins in " + roundExtraTime + " seconds."); + state.gameOver = true; + Call.updateGameOver(event.winner); + info("Selected next map to be @.", map.name()); play(true, () -> world.loadMap(map, map.applyRules(lastMode))); @@ -298,6 +310,7 @@ public class ServerControl implements ApplicationListener{ logic.reset(); lastMode = preset; + Core.settings.put("lastServerMode", lastMode.name()); try{ world.loadMap(result, result.applyRules(lastMode)); state.rules = result.applyRules(preset); diff --git a/servers_be.json b/servers_be.json index 88a7504a78..5c007872e5 100644 --- a/servers_be.json +++ b/servers_be.json @@ -7,5 +7,8 @@ }, { "address": "mindustry.pl:6000" + }, + { + "address": "routerchain.ddns.net" } ] diff --git a/tests/src/test/java/SectorTests.java b/tests/src/test/java/SectorTests.java index b299e602f8..4110670eed 100644 --- a/tests/src/test/java/SectorTests.java +++ b/tests/src/test/java/SectorTests.java @@ -92,6 +92,9 @@ public class SectorTests{ //assertTrue(total < 75, "Sector spawns too many enemies at wave " + i + " (" + total + ")"); } + assertEquals(1, Team.sharded.cores().size, "Sector must have one core: " + zone); + assertTrue(Team.sharded.core().items.total() < 1000, "Sector must not have starting resources: " + zone); + assertTrue(hasSpawnPoint, "Sector \"" + zone.name + "\" has no spawn points."); assertTrue(spawner.countSpawns() > 0 || (state.rules.attackMode && state.teams.get(state.rules.waveTeam).hasCore()), "Sector \"" + zone.name + "\" has no enemy spawn points: " + spawner.countSpawns()); })); diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index 391f24c57f..a2e0ca4661 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -382,7 +382,9 @@ public class Generators{ } for(Cicon icon : Cicon.scaled){ - Image scaled = new Image(icon.size, icon.size); + Vec2 size = Scaling.fit.apply(image.width, image.height, icon.size, icon.size); + Image scaled = new Image((int)size.x, (int)size.y); + scaled.drawScaled(image); scaled.save("../ui/unit-" + type.name + "-" + icon.name()); } diff --git a/tools/src/mindustry/tools/ScriptStubGenerator.java b/tools/src/mindustry/tools/ScriptMainGenerator.java similarity index 98% rename from tools/src/mindustry/tools/ScriptStubGenerator.java rename to tools/src/mindustry/tools/ScriptMainGenerator.java index 6a4d90d9b0..06b76360d9 100644 --- a/tools/src/mindustry/tools/ScriptStubGenerator.java +++ b/tools/src/mindustry/tools/ScriptMainGenerator.java @@ -5,6 +5,7 @@ import arc.files.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.graphics.g2d.TextureAtlas.*; +import arc.graphics.gl.*; import arc.math.*; import arc.struct.*; import arc.util.*; @@ -16,14 +17,14 @@ import java.lang.reflect.*; import java.net.*; import java.util.*; -public class ScriptStubGenerator{ +public class ScriptMainGenerator{ public static void main(String[] args) throws Exception{ String base = "mindustry"; Seq blacklist = Seq.with("plugin", "mod", "net", "io", "tools"); Seq nameBlacklist = Seq.with("ClassAccess"); Seq> whitelist = Seq.with(Draw.class, Fill.class, Lines.class, Core.class, TextureAtlas.class, TextureRegion.class, Time.class, System.class, PrintStream.class, - AtlasRegion.class, String.class, Mathf.class, Angles.class, Color.class, Runnable.class, Object.class, Icon.class, Tex.class, + AtlasRegion.class, String.class, Mathf.class, Angles.class, Color.class, Runnable.class, Object.class, Icon.class, Tex.class, Shader.class, Sounds.class, Musics.class, Call.class, Texture.class, TextureData.class, Pixmap.class, I18NBundle.class, Interval.class, DataInput.class, DataOutput.class, DataInputStream.class, DataOutputStream.class, Integer.class, Float.class, Double.class, Long.class, Boolean.class, Short.class, Byte.class, Character.class); Seq nopackage = Seq.with("java.lang", "java");