diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index c2326a4d0a..4b79df9a48 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -13,7 +13,7 @@ jobs: with: java-version: 8 - name: Run unit tests with gradle and Java 8 - run: ./gradlew test + run: ./gradlew compileJava buildJava14: runs-on: ubuntu-latest @@ -25,4 +25,4 @@ jobs: with: java-version: 14 - name: Run unit tests with gradle and Java 14 - run: ./gradlew test + run: ./gradlew compileJava 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/android/build.gradle b/android/build.gradle index 412ed1c441..ef1791a9b6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,7 +8,7 @@ buildscript{ } dependencies{ - //IMPORTANT NOTICE: any version of the plugin after 3.4.1 will break builds for every API level < 24, perhaps even higher. + //IMPORTANT NOTICE: any version of the plugin after 3.4.1 will break builds //it appears abstract methods don't get desugared properly (if at all) classpath 'com.android.tools.build:gradle:3.4.1' } @@ -33,6 +33,8 @@ dependencies{ natives "com.github.Anuken.Arc:natives-android:${getArcHash()}" natives "com.github.Anuken.Arc:natives-freetype-android:${getArcHash()}" natives "com.github.Anuken.Arc:natives-box2d-android:${getArcHash()}" + + if(localArc()) compileOnly fileTree(dir: '../../Arc/backends/backend-android/libs', include: ['*.jar']) } task deploy(type: Copy){ diff --git a/android/src/mindustry/android/AndroidRhinoContext.java b/android/src/mindustry/android/AndroidRhinoContext.java index 513911820d..c4468ecead 100644 --- a/android/src/mindustry/android/AndroidRhinoContext.java +++ b/android/src/mindustry/android/AndroidRhinoContext.java @@ -121,7 +121,7 @@ public class AndroidRhinoContext{ } return loadClass(dex, name); }catch(IOException | ClassNotFoundException e){ - throw new FatalLoadingException(e); + throw new RuntimeException("Failed to define class", e); } } @@ -151,14 +151,6 @@ public class AndroidRhinoContext{ } } - - /** Might be thrown in any Rhino method that loads bytecode if the loading failed. */ - public static class FatalLoadingException extends RuntimeException{ - FatalLoadingException(Throwable t){ - super("Failed to define class", t); - } - } - static class FileAndroidClassLoader extends BaseAndroidClassLoader{ private static int instanceCounter = 0; private final File dexFile; diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java index 3350d0e226..4de2254f7f 100644 --- a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java +++ b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java @@ -285,8 +285,6 @@ public class EntityProcess extends BaseProcessor{ TypeSpec.Builder builder = TypeSpec.classBuilder(name).addModifiers(Modifier.PUBLIC); - if(isFinal && !typeIsBase) builder.addModifiers(Modifier.FINAL); - //add serialize() boolean builder.addMethod(MethodSpec.methodBuilder("serialize").addModifiers(Modifier.PUBLIC).returns(boolean.class).addStatement("return " + ann.serialize()).build()); diff --git a/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java b/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java index 9286bffe85..eca5d84387 100644 --- a/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java +++ b/annotations/src/main/java/mindustry/annotations/misc/LogicStatementProcessor.java @@ -71,26 +71,23 @@ 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("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 ++; } + reader.addStatement("result.afterRead()"); reader.addStatement("return result"); } 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 9146c9160c..20e2b7f0dd 100644 --- a/build.gradle +++ b/build.gradle @@ -180,6 +180,19 @@ allprojects{ } } +//compile with java 8 compatibility for everything except the annotati project +configure(subprojects - project(":annotations")){ + tasks.withType(JavaCompile){ + if(JavaVersion.current() != JavaVersion.VERSION_1_8){ + options.compilerArgs.addAll(['--release', '8']) + } + } + + tasks.withType(Javadoc){ + options.addStringOption('Xdoclint:none', '-quiet') + } +} + project(":desktop"){ apply plugin: "java" @@ -310,6 +323,7 @@ project(":tests"){ workingDir = new File("../core/assets") testLogging { exceptionFormat = 'full' + showStandardStreams = true } } } diff --git a/core/assets-raw/fontgen/config.json b/core/assets-raw/fontgen/config.json index f2421542a9..1c25eac26c 100644 --- a/core/assets-raw/fontgen/config.json +++ b/core/assets-raw/fontgen/config.json @@ -886,20 +886,6 @@ "command-retreat" ] }, - { - "uid": "1bc31b80669cb5edc2ee5d1370554bc9", - "css": "players", - "code": 59483, - "src": "custom_icons", - "selected": true, - "svg": { - "path": "M370.1 55.1Q401.6 23.6 448.8 7.9 496.1-7.9 543.3 7.9 590.6 23.6 622 55.1 653.5 86.6 685 118.1 716.5 149.6 732.3 196.9 748 244.1 732.3 291.3 716.5 338.6 685 370.1 653.5 401.6 653.5 433.1 653.5 464.6 685 496.1 716.5 527.6 748 559.1 779.5 590.6 811 622 842.5 653.5 874 685 905.5 716.5 937 748 968.5 779.5 984.3 826.8 1000 874 984.3 921.3 968.5 968.5 921.3 984.3 874 1000 811 1000 748 1000 685 1000 622 1000 559.1 1000 496.1 1000 433.1 1000 370.1 1000 307.1 1000 244.1 1000 181.1 1000 118.1 1000 70.9 984.3 23.6 968.5 7.9 921.3-7.9 874 7.9 826.8 23.6 779.5 55.1 748 86.6 716.5 118.1 685 149.6 653.5 181.1 622 212.6 590.6 244.1 559.1 275.6 527.6 307.1 496.1 338.6 464.6 338.6 433.1 338.6 401.6 307.1 370.1 275.6 338.6 259.8 291.3 244.1 244.1 259.8 196.9 275.6 149.6 307.1 118.1 338.6 86.6 370.1 55.1", - "width": 992 - }, - "search": [ - "players" - ] - }, { "uid": "2073dbd997e5d8e1ffc1322d13ba5585", "css": "chat", @@ -919,6 +905,34 @@ "css": "zoom", "code": 59415, "src": "fontawesome" + }, + { + "uid": "1bc31b80669cb5edc2ee5d1370554bc9", + "css": "players", + "code": 59483, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M370.1 55.1Q401.6 23.6 448.8 7.9 496.1-7.9 543.3 7.9 590.6 23.6 622 55.1 653.5 86.6 685 118.1 716.5 149.6 732.3 196.9 748 244.1 732.3 291.3 716.5 338.6 685 370.1 653.5 401.6 653.5 433.1 653.5 464.6 685 496.1 716.5 527.6 748 559.1 779.5 590.6 811 622 842.5 653.5 874 685 905.5 716.5 937 748 968.5 779.5 984.3 826.8 1000 874 984.3 921.3 968.5 968.5 921.3 984.3 874 1000 811 1000 748 1000 685 1000 622 1000 559.1 1000 496.1 1000 433.1 1000 370.1 1000 307.1 1000 244.1 1000 181.1 1000 118.1 1000 70.9 984.3 23.6 968.5 7.9 921.3-7.9 874 7.9 826.8 23.6 779.5 55.1 748 86.6 716.5 118.1 685 149.6 653.5 181.1 622 212.6 590.6 244.1 559.1 275.6 527.6 307.1 496.1 338.6 464.6 338.6 433.1 338.6 401.6 307.1 370.1 275.6 338.6 259.8 291.3 244.1 244.1 259.8 196.9 275.6 149.6 307.1 118.1 338.6 86.6 370.1 55.1", + "width": 992 + }, + "search": [ + "players" + ] + }, + { + "uid": "dd1e5d774d1ced68cb7c439d8ed102f5", + "css": "logic", + "code": 59420, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M375 0L250 125H125V250L0 375 125 500 0 625 125 750V875H250L375 1000 500 875 625 1000 750 875H875V750L1000 625 875 500 1000 375 875 250V125H750L625 0 500 125ZM250 250H750V750H250ZM375 375V625H625V375Z", + "width": 1000 + }, + "search": [ + "logic" + ] } ] -} +} \ No newline at end of file diff --git a/core/assets-raw/fontgen/icons/logic.svg b/core/assets-raw/fontgen/icons/logic.svg new file mode 100644 index 0000000000..431ce25d42 --- /dev/null +++ b/core/assets-raw/fontgen/icons/logic.svg @@ -0,0 +1,67 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + 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/extra/message.png b/core/assets-raw/sprites/blocks/extra/message.png deleted file mode 100644 index 60f8659d12..0000000000 Binary files a/core/assets-raw/sprites/blocks/extra/message.png and /dev/null differ 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-display.png b/core/assets-raw/sprites/blocks/logic/logic-display.png index fed3fab176..ffb2404f09 100644 Binary files a/core/assets-raw/sprites/blocks/logic/logic-display.png and b/core/assets-raw/sprites/blocks/logic/logic-display.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/blocks/logic/logic-processor.png b/core/assets-raw/sprites/blocks/logic/logic-processor.png index 7071b2b02c..7746f89935 100644 Binary files a/core/assets-raw/sprites/blocks/logic/logic-processor.png and b/core/assets-raw/sprites/blocks/logic/logic-processor.png differ diff --git a/core/assets-raw/sprites/blocks/logic/memory-cell.png b/core/assets-raw/sprites/blocks/logic/memory-cell.png new file mode 100644 index 0000000000..1ef2998c51 Binary files /dev/null and b/core/assets-raw/sprites/blocks/logic/memory-cell.png differ diff --git a/core/assets-raw/sprites/blocks/logic/message.png b/core/assets-raw/sprites/blocks/logic/message.png new file mode 100644 index 0000000000..00bd9c8b95 Binary files /dev/null and b/core/assets-raw/sprites/blocks/logic/message.png differ diff --git a/core/assets-raw/sprites/blocks/logic/micro-processor.png b/core/assets-raw/sprites/blocks/logic/micro-processor.png index b592ad967f..2b1de7cd5f 100644 Binary files a/core/assets-raw/sprites/blocks/logic/micro-processor.png and b/core/assets-raw/sprites/blocks/logic/micro-processor.png differ diff --git a/core/assets-raw/sprites/blocks/logic/switch-on.png b/core/assets-raw/sprites/blocks/logic/switch-on.png new file mode 100644 index 0000000000..a439bd281d Binary files /dev/null and b/core/assets-raw/sprites/blocks/logic/switch-on.png differ diff --git a/core/assets-raw/sprites/blocks/logic/switch.png b/core/assets-raw/sprites/blocks/logic/switch.png new file mode 100644 index 0000000000..5519fc789c Binary files /dev/null and b/core/assets-raw/sprites/blocks/logic/switch.png differ diff --git a/core/assets-raw/sprites/blocks/props/white-tree-dead-shadow.png b/core/assets-raw/sprites/blocks/props/white-tree-dead-shadow.png new file mode 100644 index 0000000000..f95d982188 Binary files /dev/null and b/core/assets-raw/sprites/blocks/props/white-tree-dead-shadow.png differ diff --git a/core/assets-raw/sprites/blocks/props/white-tree-dead.png b/core/assets-raw/sprites/blocks/props/white-tree-dead.png index 4e7a5c9292..cfb6d65cf1 100644 Binary files a/core/assets-raw/sprites/blocks/props/white-tree-dead.png and b/core/assets-raw/sprites/blocks/props/white-tree-dead.png differ diff --git a/core/assets-raw/sprites/blocks/props/white-tree-shadow.png b/core/assets-raw/sprites/blocks/props/white-tree-shadow.png new file mode 100644 index 0000000000..8ce60aa712 Binary files /dev/null and b/core/assets-raw/sprites/blocks/props/white-tree-shadow.png differ diff --git a/core/assets-raw/sprites/blocks/props/white-tree.png b/core/assets-raw/sprites/blocks/props/white-tree.png index bfc3d3629e..91f17de316 100644 Binary files a/core/assets-raw/sprites/blocks/props/white-tree.png and b/core/assets-raw/sprites/blocks/props/white-tree.png 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 4b8026df80..56f21ac68e 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -575,6 +575,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 @@ -590,6 +592,7 @@ blocks.boosteffect = Boost Effect blocks.maxunits = Max Active Units blocks.health = Health blocks.buildtime = Build Time +blocks.maxconsecutive = Max Consecutive blocks.buildcost = Build Cost blocks.inaccuracy = Inaccuracy blocks.shots = Shots @@ -726,6 +729,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 @@ -738,6 +742,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 @@ -1072,6 +1077,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 @@ -1079,11 +1085,19 @@ 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 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 + team.blue.name = blue team.crux.name = red team.sharded.name = orange 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 new file mode 100644 index 0000000000..a07e8ebf76 --- /dev/null +++ b/core/assets/bundles/bundle_fil.properties @@ -0,0 +1,1246 @@ +credits.text = Created by [royal]Anuken[] - [sky]anukendev@gmail.com[] +credits = Credits +contributors = Mga Tagasalin at Contributor +discord = Sumali sa Mindustry Discord! +link.discord.description = Ang opisyal na Mindustry Discord chatroom. +link.reddit.description = Ang Mindustry subreddit +link.github.description = Game source code +link.changelog.description = Listahan ng mga pagbabagong ginawa +link.dev-builds.description = Unstable development builds +link.trello.description = Opisyal Trello board para sa mga nakalatag na features +link.itch.io.description = itch.io page na may PC download +link.google-play.description = Google Play store listing +link.f-droid.description = F-Droid catalogue listing +link.wiki.description = Opsiyal Mindustry wiki +link.suggestions.description = Magmungkahi ng bagong feature +linkfail = 'Di mabuksan ang link!\nKinopya na sa 'yong clipboard ang URL. +screenshot = Ini-adya na ang screenshot sa {0} +screenshot.invalid = Masiyadong malaki ang mapa; maaaring kulang ang memory para sa screenshot. +gameover = Tapos Na Ang Laro +gameover.pvp = Ang[accent] {0}[] team ay nanalo! +highscore = [accent]Panibagong mataas na Iskor! +copied = Kinopya. + +load.sound = Mga Tunog +load.map = Mga Mapa +load.image = Mga Litrato +load.content = Nilalaman +load.system = System +load.mod = Mga Mod +load.scripts = Mga Iskrip + +be.update = Mayroong baong Bleeding Edge build na makukuha: +be.update.confirm = I-download at i-restart? +be.updating = I-na-update... +be.ignore = Huwag Pansinin +be.noupdates = Walang nahanap na update. +be.check = Tignan kung may mga update. + +schematic = Schematic +schematic.add = I-adya ang Schematic... +schematics = Mga Schematic +schematic.replace = Ang schematic sa parehong pangalan ay mayroon na. Gusto mo bang palitan? +schematic.exists = Ang schematic sa parehong pangalan ay mayroon na. +schematic.import = I-angkat ang Schematic... +schematic.exportfile = Mag-export ng File +schematic.importfile = Mag-angkat ng File +schematic.browseworkshop = Maghanap sa Workshop +schematic.copy = Kopyahin sa Clipboard +schematic.copy.import = I-angkat mula sa Clipboard +schematic.shareworkshop = Ibahagi sa Workshop +schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Baligtarin ang Schematic +schematic.saved = Na-i-adya na ang schematic. +schematic.delete.confirm = Ang schematic na'to ay tuluyang mawawala. +schematic.rename = Palitan Ang Pangalan ng Schematic +schematic.info = {0}x{1}, {2} blocks + +stat.wave = Wave na Nalagpasan:[accent] {0} +stat.enemiesDestroyed = Tinalong Kalaban:[accent] {0} +stat.built = Gusaling Itinayo:[accent] {0} +stat.destroyed = Gusaling Nawasak:[accent] {0} +stat.deconstructed = Gusaling Binuwag/Tinanggal:[accent] {0} +stat.delivered = Mga Yaman na Nahanap: +stat.playtime = Tagal na Nilaro:[accent] {0} +stat.rank = Pinal na Ranggo: [accent]{0} + +globalitems = [accent]Mga Pangkalahatang Bagay +map.delete = Sigurado ka bang buburahin ang mapang "[accent]{0}[]"? +level.highscore = Pinakamataas na Iskor: [accent]{0} +level.select = Mamili ng Lebel +level.mode = Paraan ng Paglalaro: +coreattack = < Ang core ay inaatake! > +nearpoint = [[ [scarlet]UMALIS KAAGAD SA DROP POINT[] ]\nmalapit ka nang mamatay +database = Database ng Core +savegame = I-adya ang Laro +loadgame = Load Game +joingame = Sumali sa Laro +customgame = Kustom na Laro +newgame = Bagong Laro +none = +minimap = Minimap +position = Posisyon +close = Isara +website = Website +quit = Umalis +save.quit = I-adya & Umalis +maps = Mga Mapa +maps.browse = Maghanap ng mga Mapa +continue = Magpatuloy +maps.none = [lightgray]Walang mapang nahanap! +invalid = Hindi Wasto +pickcolor = Pumili ng Kulay +preparingconfig = Inihahanda ang Config +preparingcontent = Inihahanda ang mga Nilalaman +uploadingcontent = Ini-a-upload ang Nilalaman +uploadingpreviewfile = Ini-a-upload ang Preview File +committingchanges = Gumagawa ng mga Pagbabago +done = Tapos Na +feature.unsupported = Hindi suportado ng 'yong device ang feature na'to. + +mods.alphainfo = Tandaan mo na ang mga mod ay nasa 'alpha', at[scarlet] maaaring may depekto pa ang mga 'to[].\nI-ulat ang kahit anong depektong matutuklasan mo sa Mindustry GitHub o Discord. +mods.alpha = [accent](Alpha) +mods = Mga Mod +mods.none = [lightgray]Walang mga mod na nahanap! +mods.guide = Gabay para sa Paggawa ng Mod +mods.report = Mag-ulat ng Depekto +mods.openfolder = Buksan ang Folder +mods.reload = I-reload +mods.reloadexit = Ang laro ay isasara, para mag-reload ng mga mod. +mod.display = [gray]Mod:[orange] {0} +mod.enabled = [lightgray]Gumagana +mod.disabled = [scarlet]Hindi Gumagana +mod.disable = 'Wag Paganahin +mod.content = Nilalaman: +mod.delete.error = 'Di matanggal ang mod. Maaaring ginagamit pa 'to. +mod.requiresversion = [scarlet]Kinakailangan ang minimum bersyon ng laro: [accent]{0} +mod.missingdependencies = [scarlet]Nawawalang mga Dependency: {0} +mod.erroredcontent = [scarlet]Mga Error sa Nilalaman +mod.errors = May mga error na naitala habang ni-lo-load ang nilalaman. +mod.noerrorplay = [scarlet]May mga mod kang may error.[] Maaaring 'wag munang paganahin ang mga apektadong mod o 'di kaya'y ayusin ang mga error bago maglaro. +mod.nowdisabled = [scarlet]Ang mod na '{0}' ay ma kulang na mga dependency:[accent] {1}\n[lightgray]Ang mga ito'y kinakailangang i-download muna.\nAng mod na'to ay kusang 'di papaganahin. +mod.enable = Paganahin +mod.requiresrestart = Ang laro'y magsasaro upang mai-apply ang mga pagbabago sa mod. +mod.reloadrequired = [scarlet]Kinakalingang I-restart +mod.import = I-angkat ang Mod +mod.import.file = I-angkat ang File +mod.import.github = Mag-angkat mula sa GitHub +mod.jarwarn = [scarlet]Ang mga mod na gawa sa JAR ay likas na 'di ligtas laruin.[]\nSiguraduhin mong mapapagkatiwalaan ang 'yong pinagkunan nito! +mod.item.remove = Ang bagay na'to ay parte ng mod na [accent] '{0}'[]. Kung nais mong tanggalin, i-uninstall mo ang mod. +mod.remove.confirm = Ang mod na'to ay mabubura. +mod.author = [lightgray]May-akda:[] {0} +mod.missing = Ang larong 'to ay may nilalaman na mod na in-update kamakailan o binura mo na. Maaaring ma-corrput ang larong 'to. Sigurado ka bang gusto mong i-load 'to?\n[lightgray]Mga Mod:\n{0} +mod.preview.missing = Bago mong ilathala ang mod sa workshop, dapat maglagay ka nang image preview.\nMaglagay ka ng litratong nagngangalang[accent] preview.png[] sa folder ng mod at subukan mo muli. +mod.folder.missing = Tanging mga mod lang nasa loob ng folder ay maaaring ma-ilathala sa workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. +mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game. + +about.button = About +name = Name: +noname = Pick a[accent] player name[] first. +filename = File Name: +unlocked = New content unlocked! +completed = [accent]Completed +techtree = Tech Tree +research.list = [lightgray]Research: +research = Research +researched = [lightgray]{0} researched. +research.progress = {0}% complete +players = {0} players +players.single = {0} player +players.search = search +players.notfound = [gray]no players found +server.closing = [accent]Closing server... +server.kicked.kick = You have been kicked from the server! +server.kicked.whitelist = You are not whitelisted here. +server.kicked.serverClose = Server closed. +server.kicked.vote = You have been vote-kicked. Goodbye. +server.kicked.clientOutdated = Outdated client! Update your game! +server.kicked.serverOutdated = Outdated server! Ask the host to update! +server.kicked.banned = You are banned on this server. +server.kicked.typeMismatch = This server is not compatible with your build type. +server.kicked.playerLimit = This server is full. Wait for an empty slot. +server.kicked.recentKick = You have been kicked recently.\nWait before connecting again. +server.kicked.nameInUse = There is someone with that name\nalready on this server. +server.kicked.nameEmpty = Your chosen name is invalid. +server.kicked.idInUse = You are already on this server! Connecting with two accounts is not permitted. +server.kicked.customClient = This server does not support custom builds. Download an official version. +server.kicked.gameover = Game over! +server.kicked.serverRestarting = The server is restarting. +server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[] +host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery. +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 +host = Host +hosting = [accent]Opening server... +hosts.refresh = Refresh +hosts.discovering = Discovering LAN games +hosts.discovering.any = Discovering games +server.refreshing = Refreshing server +hosts.none = [lightgray]No local games found! +host.invalid = [scarlet]Can't connect to host. + +servers.local = Local Servers +servers.remote = Remote Servers +servers.global = Community Servers + +trace = Trace Player +trace.playername = Player name: [accent]{0} +trace.ip = IP: [accent]{0} +trace.id = Unique ID: [accent]{0} +trace.mobile = Mobile Client: [accent]{0} +trace.modclient = Custom Client: [accent]{0} +invalidid = Invalid client ID! Submit a bug report. +server.bans = Bans +server.bans.none = No banned players found! +server.admins = Admins +server.admins.none = No admins found! +server.add = Add Server +server.delete = Are you sure you want to delete this server? +server.edit = Edit Server +server.outdated = [scarlet]Outdated Server![] +server.outdated.client = [scarlet]Outdated Client![] +server.version = [gray]v{0} {1} +server.custombuild = [accent]Custom Build +confirmban = Are you sure you want to ban "{0}[white]"? +confirmkick = Are you sure you want to kick "{0}[white]"? +confirmvotekick = Are you sure you want to vote-kick "{0}[white]"? +confirmunban = Are you sure you want to unban this player? +confirmadmin = Are you sure you want to make "{0}[white]" an admin? +confirmunadmin = Are you sure you want to remove admin status from "{0}[white]"? +joingame.title = Join Game +joingame.ip = Address: +disconnect = Disconnected. +disconnect.error = Connection error. +disconnect.closed = Connection closed. +disconnect.timeout = Timed out. +disconnect.data = Failed to load world data! +cantconnect = Unable to join game ([accent]{0}[]). +connecting = [accent]Connecting... +connecting.data = [accent]Loading world data... +server.port = Port: +server.addressinuse = Address already in use! +server.invalidport = Invalid port number! +server.error = [scarlet]Error hosting server. +save.new = New Save +save.overwrite = Are you sure you want to overwrite\nthis save slot? +overwrite = Overwrite +save.none = No saves found! +savefail = Failed to save game! +save.delete.confirm = Are you sure you want to delete this save? +save.delete = Delete +save.export = Export Save +save.import.invalid = [accent]This save is invalid! +save.import.fail = [scarlet]Failed to import save: [accent]{0} +save.export.fail = [scarlet]Failed to export save: [accent]{0} +save.import = Import Save +save.newslot = Save name: +save.rename = Rename +save.rename.text = New name: +selectslot = Select a save. +slot = [accent]Slot {0} +editmessage = Edit Message +save.corrupted = Save file corrupted or invalid! +empty = +on = On +off = Off +save.autosave = Autosave: {0} +save.map = Map: {0} +save.wave = Wave {0} +save.mode = Gamemode: {0} +save.date = Last Saved: {0} +save.playtime = Playtime: {0} +warning = Warning. +confirm = Confirm +delete = Delete +view.workshop = View In Workshop +workshop.listing = Edit Workshop Listing +ok = OK +open = Open +customize = Customize Rules +cancel = Cancel +openlink = Open Link +copylink = Copy Link +back = Back +data.export = Export Data +data.import = Import Data +data.openfolder = Open Data Folder +data.exported = Data exported. +data.invalid = This isn't valid game data. +data.import.confirm = Importing external data will overwrite[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately. +quit.confirm = Are you sure you want to quit? +quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[] +loading = [accent]Loading... +reloading = [accent]Reloading Mods... +saving = [accent]Saving... +respawn = [accent][[{0}][] to respawn in core +cancelbuilding = [accent][[{0}][] to clear plan +selectschematic = [accent][[{0}][] to select+copy +pausebuilding = [accent][[{0}][] to pause building +resumebuilding = [scarlet][[{0}][] to resume building +wave = [accent]Wave {0} +wave.waiting = [lightgray]Wave in {0} +wave.waveInProgress = [lightgray]Wave in progress +waiting = [lightgray]Waiting... +waiting.players = Waiting for players... +wave.enemies = [lightgray]{0} Enemies Remaining +wave.enemy = [lightgray]{0} Enemy Remaining +loadimage = Load Image +saveimage = Save Image +unknown = Unknown +custom = Custom +builtin = Built-In +map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone! +map.random = [accent]Random Map +map.nospawn = This map does not have any cores for the player to spawn in! Add a[accent] orange[] core to this map in the editor. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor. +map.invalid = Error loading map: corrupted or invalid map file. +workshop.update = Update Item +workshop.error = Error fetching workshop details: {0} +map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up! +workshop.menu = Select what you would like to do with this item. +workshop.info = Item Info +changelog = Changelog (optional): +eula = Steam EULA +missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked. +publishing = [accent]Publishing... +publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up! +publish.error = Error publishing item: {0} +steam.error = Failed to initialize Steam services.\nError: {0} + +editor.brush = Brush +editor.openin = Open In Editor +editor.oregen = Ore Generation +editor.oregen.info = Ore Generation: +editor.mapinfo = Map Info +editor.author = Author: +editor.description = Description: +editor.nodescription = A map must have a description of at least 4 characters before being published. +editor.waves = Waves: +editor.rules = Rules: +editor.generation = Generation: +editor.ingame = Edit In-Game +editor.publish.workshop = Publish On Workshop +editor.newmap = New Map +workshop = Workshop +waves.title = Waves +waves.remove = Remove +waves.never = +waves.every = every +waves.waves = wave(s) +waves.perspawn = per spawn +waves.shields = shields/wave +waves.to = to +waves.guardian = Guardian +waves.preview = Preview +waves.edit = Edit... +waves.copy = Copy to Clipboard +waves.load = Load from Clipboard +waves.invalid = Invalid waves in clipboard. +waves.copied = Waves copied. +waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout. + +#these are intentionally in lower case +wavemode.counts = counts +wavemode.totals = totals +wavemode.health = health + +editor.default = [lightgray] +details = Details... +edit = Edit... +editor.name = Name: +editor.spawn = Spawn Unit +editor.removeunit = Remove Unit +editor.teams = Teams +editor.errorload = Error loading file. +editor.errorsave = Error saving file. +editor.errorimage = That's an image, not a map.\n\nIf you want to import a 3.5/build 40 map, use the 'Import Legacy Map' button in the editor. +editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported. +editor.errornot = This is not a map file. +editor.errorheader = This map file is either not valid or corrupt. +editor.errorname = Map has no name defined. Are you trying to load a save file? +editor.update = Update +editor.randomize = Randomize +editor.apply = Apply +editor.generate = Generate +editor.resize = Resize +editor.loadmap = Load Map +editor.savemap = Save Map +editor.saved = Saved! +editor.save.noname = Your map does not have a name! Set one in the 'map info' menu. +editor.save.overwrite = Your map overwrites a built-in map! Pick a different name in the 'map info' menu. +editor.import.exists = [scarlet]Unable to import:[] a built-in map named '{0}' already exists! +editor.import = Import... +editor.importmap = Import Map +editor.importmap.description = Import an already existing map +editor.importfile = Import File +editor.importfile.description = Import an external map file +editor.importimage = Import Image File +editor.importimage.description = Import an external map image file +editor.export = Export... +editor.exportfile = Export File +editor.exportfile.description = Export a map file +editor.exportimage = Export Terrain Image +editor.exportimage.description = Export an image file containing only basic terrain +editor.loadimage = Import Terrain +editor.saveimage = Export Terrain +editor.unsaved = [scarlet]You have unsaved changes![]\nAre you sure you want to exit? +editor.resizemap = Resize Map +editor.mapname = Map Name: +editor.overwrite = [accent]Warning!\nThis overwrites an existing map. +editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?\n"[accent]{0}[]" +editor.exists = A map with this name already exists. +editor.selectmap = Select a map to load: + +toolmode.replace = Replace +toolmode.replace.description = Draws only on solid blocks. +toolmode.replaceall = Replace All +toolmode.replaceall.description = Replace all blocks in map. +toolmode.orthogonal = Orthogonal +toolmode.orthogonal.description = Draws only orthogonal lines. +toolmode.square = Square +toolmode.square.description = Square brush. +toolmode.eraseores = Erase Ores +toolmode.eraseores.description = Erase only ores. +toolmode.fillteams = Fill Teams +toolmode.fillteams.description = Fill teams instead of blocks. +toolmode.drawteams = Draw Teams +toolmode.drawteams.description = Draw teams instead of blocks. + +filters.empty = [lightgray]No filters! Add one with the button below. +filter.distort = Distort +filter.noise = Noise +filter.enemyspawn = Enemy Spawn Select +filter.corespawn = Core Select +filter.median = Median +filter.oremedian = Ore Median +filter.blend = Blend +filter.defaultores = Default Ores +filter.ore = Ore +filter.rivernoise = River Noise +filter.mirror = Mirror +filter.clear = Clear +filter.option.ignore = Ignore +filter.scatter = Scatter +filter.terrain = Terrain +filter.option.scale = Scale +filter.option.chance = Chance +filter.option.mag = Magnitude +filter.option.threshold = Threshold +filter.option.circle-scale = Circle Scale +filter.option.octaves = Octaves +filter.option.falloff = Falloff +filter.option.angle = Angle +filter.option.amount = Amount +filter.option.block = Block +filter.option.floor = Floor +filter.option.flooronto = Target Floor +filter.option.wall = Wall +filter.option.ore = Ore +filter.option.floor2 = Secondary Floor +filter.option.threshold2 = Secondary Threshold +filter.option.radius = Radius +filter.option.percentile = Percentile + +width = Width: +height = Height: +menu = Menu +play = Play +campaign = Campaign +load = Load +save = Save +fps = FPS: {0} +ping = Ping: {0}ms +language.restart = Please restart your game for the language settings to take effect. +settings = Settings +tutorial = Tutorial +tutorial.retake = Re-Take Tutorial +editor = Editor +mapeditor = Map Editor + +abandon = Abandon +abandon.text = This zone and all its resources will be lost to the enemy. +locked = Locked +complete = [lightgray]Complete: +requirement.wave = Reach Wave {0} in {1} +requirement.core = Destroy Enemy Core in {0} +requirement.research = Research {0} +resume = Resume Zone:\n[lightgray]{0} +bestwave = [lightgray]Best Wave: {0} +#TODO fix/remove this +launch = < LAUNCH > +launch.text = Launch +launch.title = Launch Successful +launch.next = [lightgray]next opportunity at wave {0} +launch.unable2 = [scarlet]Unable to LAUNCH.[] +launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. +launch.skip.confirm = If you skip now, you will not be able to launch until later waves. +uncover = Uncover +configure = Configure Loadout +#TODO +loadout = Loadout +resources = Resources +bannedblocks = Banned Blocks +addall = Add All +configure.invalid = Amount must be a number between 0 and {0}. +zone.unlocked = [lightgray]{0} unlocked. +zone.requirement.complete = Requirement for {0} completed:[lightgray]\n{1} +zone.resources = [lightgray]Resources Detected: +zone.objective = [lightgray]Objective: [accent]{0} +zone.objective.survival = Survive +zone.objective.attack = Destroy Enemy Core +add = Add... +boss.health = Boss Health + +connectfail = [scarlet]Connection error:\n\n[accent]{0} +error.unreachable = Server unreachable.\nIs the address spelled correctly? +error.invalidaddress = Invalid address. +error.timedout = Timed out!\nMake sure the host has port forwarding set up, and that the address is correct! +error.mismatch = Packet error:\npossible client/server version mismatch.\nMake sure you and the host have the latest version of Mindustry! +error.alreadyconnected = Already connected. +error.mapnotfound = Map file not found! +error.io = Network I/O error. +error.any = Unknown network error. +error.bloom = Failed to initialize bloom.\nYour device may not support it. + +#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway +sector.groundZero.name = Ground Zero +sector.craters.name = The Craters +sector.frozenForest.name = Frozen Forest +sector.ruinousShores.name = Ruinous Shores +sector.stainedMountains.name = Stained Mountains +sector.desolateRift.name = Desolate Rift +sector.nuclearComplex.name = Nuclear Production Complex +sector.overgrowth.name = Overgrowth +sector.tarFields.name = Tar Fields +sector.saltFlats.name = Salt Flats +sector.fungalPass.name = Fungal Pass + +#unused +#sector.impact0078.name = Impact 0078 +#sector.crags.name = Crags + +sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. +sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. +sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. +sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. +sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. +sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. +sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. +sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. +sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. +sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. +sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. + +settings.language = Language +settings.data = Game Data +settings.reset = Reset to Defaults +settings.rebind = Rebind +settings.resetKey = Reset +settings.controls = Controls +settings.game = Game +settings.sound = Sound +settings.graphics = Graphics +settings.cleardata = Clear Game Data... +settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone! +settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit. +paused = [accent]< Paused > +clear = Clear +banned = [scarlet]Banned +unplaceable.sectorcaptured = [scarlet]Requires captured sector +yes = Yes +no = No +info.title = Info +error.title = [scarlet]An error has occured +error.crashtitle = An error has occured +unit.nobuild = [scarlet]Unit can't build +blocks.input = Input +blocks.output = Output +blocks.booster = Booster +blocks.tiles = Required Tiles +blocks.affinities = Affinities +block.unknown = [lightgray]??? +blocks.powercapacity = Power Capacity +blocks.powershot = Power/Shot +blocks.damage = Damage +blocks.targetsair = Targets Air +blocks.targetsground = Targets Ground +blocks.itemsmoved = Move Speed +blocks.launchtime = Time Between Launches +blocks.shootrange = Range +blocks.size = Size +blocks.liquidcapacity = Liquid Capacity +blocks.powerrange = Power Range +blocks.powerconnections = Max Connections +blocks.poweruse = Power Use +blocks.powerdamage = Power/Damage +blocks.itemcapacity = Item Capacity +blocks.basepowergeneration = Base Power Generation +blocks.productiontime = Production Time +blocks.repairtime = Block Full Repair Time +blocks.speedincrease = Speed Increase +blocks.range = Range +blocks.drilltier = Drillables +blocks.drillspeed = Base Drill Speed +blocks.boosteffect = Boost Effect +blocks.maxunits = Max Active Units +blocks.health = Health +blocks.buildtime = Build Time +blocks.buildcost = Build Cost +blocks.inaccuracy = Inaccuracy +blocks.shots = Shots +blocks.reload = Shots/Second +blocks.ammo = Ammo + +bar.drilltierreq = Better Drill Required +bar.noresources = Missing Resources +bar.corereq = Core Base Required +bar.drillspeed = Drill Speed: {0}/s +bar.pumpspeed = Pump Speed: {0}/s +bar.efficiency = Efficiency: {0}% +bar.powerbalance = Power: {0}/s +bar.powerstored = Stored: {0}/{1} +bar.poweramount = Power: {0} +bar.poweroutput = Power Output: {0} +bar.items = Items: {0} +bar.capacity = Capacity: {0} +bar.unitcap = {0} {1}/{2} +bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled] +bar.liquid = Liquid +bar.heat = Heat +bar.power = Power +bar.progress = Build Progress +bar.input = Input +bar.output = Output + +bullet.damage = [stat]{0}[lightgray] damage +bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles +bullet.incendiary = [stat]incendiary +bullet.homing = [stat]homing +bullet.shock = [stat]shock +bullet.frag = [stat]frag +bullet.knockback = [stat]{0}[lightgray] knockback +bullet.freezing = [stat]freezing +bullet.tarred = [stat]tarred +bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier +bullet.reload = [stat]{0}[lightgray]x fire rate + +unit.blocks = blocks +unit.powersecond = power units/second +unit.liquidsecond = liquid units/second +unit.itemssecond = items/second +unit.liquidunits = liquid units +unit.powerunits = power units +unit.degrees = degrees +unit.seconds = seconds +unit.persecond = /sec +unit.timesspeed = x speed +unit.percent = % +unit.items = items +unit.thousands = k +unit.millions = mil +unit.billions = b +category.general = General +category.power = Power +category.liquids = Liquids +category.items = Items +category.crafting = Input/Output +category.shooting = Shooting +category.optional = Optional Enhancements +setting.landscape.name = Lock Landscape +setting.shadows.name = Shadows +setting.blockreplace.name = Automatic Block Suggestions +setting.linear.name = Linear Filtering +setting.hints.name = Hints +setting.flow.name = Display Resource Flow Rate +setting.buildautopause.name = Auto-Pause Building +setting.mapcenter.name = Auto Center Map To Player +setting.animatedwater.name = Animated Fluids +setting.animatedshields.name = Animated Shields +setting.antialias.name = Antialias[lightgray] (requires restart)[] +setting.playerindicators.name = Player Indicators +setting.indicators.name = Enemy Indicators +setting.autotarget.name = Auto-Target +setting.keyboard.name = Mouse+Keyboard Controls +setting.touchscreen.name = Touchscreen Controls +setting.fpscap.name = Max FPS +setting.fpscap.none = None +setting.fpscap.text = {0} FPS +setting.uiscale.name = UI Scaling[lightgray] (restart required)[] +setting.swapdiagonal.name = Always Diagonal Placement +setting.difficulty.training = Training +setting.difficulty.easy = Easy +setting.difficulty.normal = Normal +setting.difficulty.hard = Hard +setting.difficulty.insane = Insane +setting.difficulty.name = Difficulty: +setting.screenshake.name = Screen Shake +setting.effects.name = Display Effects +setting.destroyedblocks.name = Display Destroyed Blocks +setting.blockstatus.name = Display Block Status +setting.conveyorpathfinding.name = Conveyor Placement Pathfinding +setting.sensitivity.name = Controller Sensitivity +setting.saveinterval.name = Save Interval +setting.seconds = {0} seconds +setting.blockselecttimeout.name = Block Select Timeout +setting.milliseconds = {0} milliseconds +setting.fullscreen.name = Fullscreen +setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required) +setting.fps.name = Show FPS & Ping +setting.smoothcamera.name = Smooth Camera +setting.blockselectkeys.name = Show Block Select Keys +setting.vsync.name = VSync +setting.pixelate.name = Pixelate +setting.minimap.name = Show Minimap +setting.coreitems.name = Display Core Items (WIP) +setting.position.name = Show Player Position +setting.musicvol.name = Music Volume +setting.atmosphere.name = Show Planet Atmosphere +setting.ambientvol.name = Ambient Volume +setting.mutemusic.name = Mute Music +setting.sfxvol.name = SFX Volume +setting.mutesound.name = Mute Sound +setting.crashreport.name = Send Anonymous Crash Reports +setting.savecreate.name = Auto-Create Saves +setting.publichost.name = Public Game Visibility +setting.playerlimit.name = Player Limit +setting.chatopacity.name = Chat Opacity +setting.lasersopacity.name = Power Laser Opacity +setting.bridgeopacity.name = Bridge Opacity +setting.playerchat.name = Display Player Bubble Chat +public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. +public.beta = Note that beta versions of the game cannot make public lobbies. +uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds... +uiscale.cancel = Cancel & Exit +setting.bloom.name = Bloom +keybind.title = Rebind Keys +keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only basic movement is supported. +category.general.name = General +category.view.name = View +category.multiplayer.name = Multiplayer +category.blocks.name = Block Select +command.attack = Attack +command.rally = Rally +command.retreat = Retreat +placement.blockselectkeys = \n[lightgray]Key: [{0}, +keybind.respawn.name = Respawn +keybind.control.name = Control Unit +keybind.clear_building.name = Clear Building +keybind.press = Press a key... +keybind.press.axis = Press an axis or key... +keybind.screenshot.name = Map Screenshot +keybind.toggle_power_lines.name = Toggle Power Lasers +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.boost.name = Boost +keybind.schematic_select.name = Select Region +keybind.schematic_menu.name = Schematic Menu +keybind.schematic_flip_x.name = Flip Schematic X +keybind.schematic_flip_y.name = Flip Schematic Y +keybind.category_prev.name = Previous Category +keybind.category_next.name = Next Category +keybind.block_select_left.name = Block Select Left +keybind.block_select_right.name = Block Select Right +keybind.block_select_up.name = Block Select Up +keybind.block_select_down.name = Block Select Down +keybind.block_select_01.name = Category/Block Select 1 +keybind.block_select_02.name = Category/Block Select 2 +keybind.block_select_03.name = Category/Block Select 3 +keybind.block_select_04.name = Category/Block Select 4 +keybind.block_select_05.name = Category/Block Select 5 +keybind.block_select_06.name = Category/Block Select 6 +keybind.block_select_07.name = Category/Block Select 7 +keybind.block_select_08.name = Category/Block Select 8 +keybind.block_select_09.name = Category/Block Select 9 +keybind.block_select_10.name = Category/Block Select 10 +keybind.fullscreen.name = Toggle Fullscreen +keybind.select.name = Select/Shoot +keybind.diagonal_placement.name = Diagonal Placement +keybind.pick.name = Pick Block +keybind.break_block.name = Break Block +keybind.deselect.name = Deselect +keybind.shoot.name = Shoot +keybind.zoom.name = Zoom +keybind.menu.name = Menu +keybind.pause.name = Pause +keybind.pause_building.name = Pause/Resume Building +keybind.minimap.name = Minimap +keybind.chat.name = Chat +keybind.player_list.name = Player List +keybind.console.name = Console +keybind.rotate.name = Rotate +keybind.rotateplaced.name = Rotate Existing (Hold) +keybind.toggle_menus.name = Toggle Menus +keybind.chat_history_prev.name = Chat History Prev +keybind.chat_history_next.name = Chat History Next +keybind.chat_scroll.name = Chat Scroll +keybind.drop_unit.name = Drop Unit +keybind.zoom_minimap.name = Zoom Minimap +mode.help.title = Description of modes +mode.survival.name = Survival +mode.survival.description = The normal mode. Limited resources and automatic incoming waves.\n[gray]Requires enemy spawns in the map to play. +mode.sandbox.name = Sandbox +mode.sandbox.description = Infinite resources and no timer for waves. +mode.editor.name = Editor +mode.pvp.name = PvP +mode.pvp.description = Fight against other players locally.\n[gray]Requires at least 2 differently-colored cores in the map to play. +mode.attack.name = Attack +mode.attack.description = Destroy the enemy's base. \n[gray]Requires a red core in the map to play. +mode.custom = Custom Rules + +rules.infiniteresources = Infinite Resources +rules.reactorexplosions = Reactor Explosions +rules.wavetimer = Wave Timer +rules.waves = Waves +rules.attack = Attack Mode +rules.enemyCheat = Infinite AI (Red Team) Resources +rules.blockhealthmultiplier = Block Health Multiplier +rules.blockdamagemultiplier = Block Damage Multiplier +rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.unitdamagemultiplier = Unit Damage Multiplier +rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles) +rules.wavespacing = Wave Spacing:[lightgray] (sec) +rules.buildcostmultiplier = Build Cost Multiplier +rules.buildspeedmultiplier = Build Speed Multiplier +rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier +rules.waitForWaveToEnd = Waves Wait for Enemies +rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) +rules.unitammo = Units Require Ammo +rules.title.waves = Waves +rules.title.resourcesbuilding = Resources & Building +rules.title.enemy = Enemies +rules.title.unit = Units +rules.title.experimental = Experimental +rules.title.environment = Environment +rules.lighting = Lighting +rules.ambientlight = Ambient Light +rules.solarpowermultiplier = Solar Power Multiplier + +content.item.name = Items +content.liquid.name = Liquids +content.unit.name = Units +content.block.name = Blocks +item.copper.name = Copper +item.lead.name = Lead +item.coal.name = Coal +item.graphite.name = Graphite +item.titanium.name = Titanium +item.thorium.name = Thorium +item.silicon.name = Silicon +item.plastanium.name = Plastanium +item.phase-fabric.name = Phase Fabric +item.surge-alloy.name = Surge Alloy +item.spore-pod.name = Spore Pod +item.sand.name = Sand +item.blast-compound.name = Blast Compound +item.pyratite.name = Pyratite +item.metaglass.name = Metaglass +item.scrap.name = Scrap +liquid.water.name = Water +liquid.slag.name = Slag +liquid.oil.name = Oil +liquid.cryofluid.name = Cryofluid +item.explosiveness = [lightgray]Explosiveness: {0}% +item.flammability = [lightgray]Flammability: {0}% +item.radioactivity = [lightgray]Radioactivity: {0}% +unit.health = [lightgray]Health: {0} +unit.speed = [lightgray]Speed: {0} +unit.weapon = [lightgray]Weapon: {0} +unit.itemcapacity = [lightgray]Item Capacity: {0} +unit.minespeed = [lightgray]Mining Speed: {0}% +unit.minepower = [lightgray]Mining Power: {0} +unit.ability = [lightgray]Ability: {0} +unit.buildspeed = [lightgray]Building Speed: {0}% + +liquid.heatcapacity = [lightgray]Heat Capacity: {0} +liquid.viscosity = [lightgray]Viscosity: {0} +liquid.temperature = [lightgray]Temperature: {0} + +unit.dagger.name = Dagger +unit.mace.name = Mace +unit.fortress.name = Fortress +unit.nova.name = Nova +unit.pulsar.name = Pulsar +unit.quasar.name = Quasar +unit.crawler.name = Crawler +unit.atrax.name = Atrax +unit.spiroct.name = Spiroct +unit.arkyid.name = Arkyid +unit.flare.name = Flare +unit.horizon.name = Horizon +unit.zenith.name = Zenith +unit.antumbra.name = Antumbra +unit.eclipse.name = Eclipse +unit.mono.name = Mono +unit.poly.name = Poly +unit.mega.name = Mega +unit.risso.name = Risso +unit.minke.name = Minke +unit.bryde.name = Bryde +unit.alpha.name = Alpha +unit.beta.name = Beta +unit.gamma.name = Gamma + +block.parallax.name = Parallax +block.cliff.name = Cliff +block.sand-boulder.name = Sand Boulder +block.grass.name = Grass +block.slag.name = Slag +block.salt.name = Salt +block.saltrocks.name = Salt Rocks +block.pebbles.name = Pebbles +block.tendrils.name = Tendrils +block.sandrocks.name = Sand Rocks +block.spore-pine.name = Spore Pine +block.sporerocks.name = Spore Rocks +block.rock.name = Rock +block.snowrock.name = Snow Rock +block.snow-pine.name = Snow Pine +block.shale.name = Shale +block.shale-boulder.name = Shale Boulder +block.moss.name = Moss +block.shrubs.name = Shrubs +block.spore-moss.name = Spore Moss +block.shalerocks.name = Shale Rocks +block.scrap-wall.name = Scrap Wall +block.scrap-wall-large.name = Large Scrap Wall +block.scrap-wall-huge.name = Huge Scrap Wall +block.scrap-wall-gigantic.name = Gigantic Scrap Wall +block.thruster.name = Thruster +block.kiln.name = Kiln +block.graphite-press.name = Graphite Press +block.multi-press.name = Multi-Press +block.constructing = {0} [lightgray](Constructing) +block.spawn.name = Enemy Spawn +block.core-shard.name = Core: Shard +block.core-foundation.name = Core: Foundation +block.core-nucleus.name = Core: Nucleus +block.deepwater.name = Deep Water +block.water.name = Water +block.tainted-water.name = Tainted Water +block.darksand-tainted-water.name = Dark Sand Tainted Water +block.tar.name = Tar +block.stone.name = Stone +block.sand.name = Sand +block.darksand.name = Dark Sand +block.ice.name = Ice +block.snow.name = Snow +block.craters.name = Craters +block.sand-water.name = Sand water +block.darksand-water.name = Dark Sand Water +block.char.name = Char +block.holostone.name = Holo stone +block.ice-snow.name = Ice Snow +block.rocks.name = Rocks +block.icerocks.name = Ice rocks +block.snowrocks.name = Snow Rocks +block.dunerocks.name = Dune Rocks +block.pine.name = Pine +block.white-tree-dead.name = White Tree Dead +block.white-tree.name = White Tree +block.spore-cluster.name = Spore Cluster +block.metal-floor.name = Metal Floor 1 +block.metal-floor-2.name = Metal Floor 2 +block.metal-floor-3.name = Metal Floor 3 +block.metal-floor-5.name = Metal Floor 4 +block.metal-floor-damaged.name = Metal Floor Damaged +block.dark-panel-1.name = Dark Panel 1 +block.dark-panel-2.name = Dark Panel 2 +block.dark-panel-3.name = Dark Panel 3 +block.dark-panel-4.name = Dark Panel 4 +block.dark-panel-5.name = Dark Panel 5 +block.dark-panel-6.name = Dark Panel 6 +block.dark-metal.name = Dark Metal +block.ignarock.name = Igna Rock +block.hotrock.name = Hot Rock +block.magmarock.name = Magma Rock +block.cliffs.name = Cliffs +block.copper-wall.name = Copper Wall +block.copper-wall-large.name = Large Copper Wall +block.titanium-wall.name = Titanium Wall +block.titanium-wall-large.name = Large Titanium Wall +block.plastanium-wall.name = Plastanium Wall +block.plastanium-wall-large.name = Large Plastanium Wall +block.phase-wall.name = Phase Wall +block.phase-wall-large.name = Large Phase Wall +block.thorium-wall.name = Thorium Wall +block.thorium-wall-large.name = Large Thorium Wall +block.door.name = Door +block.door-large.name = Large Door +block.duo.name = Duo +block.scorch.name = Scorch +block.scatter.name = Scatter +block.hail.name = Hail +block.lancer.name = Lancer +block.conveyor.name = Conveyor +block.titanium-conveyor.name = Titanium Conveyor +block.plastanium-conveyor.name = Plastanium Conveyor +block.armored-conveyor.name = Armored Conveyor +block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyor belts. +block.junction.name = Junction +block.router.name = Router +block.distributor.name = Distributor +block.sorter.name = Sorter +block.inverted-sorter.name = Inverted Sorter +block.message.name = Message +block.illuminator.name = Illuminator +block.illuminator.description = A small, compact, configurable light source. Requires power to function. +block.overflow-gate.name = Overflow Gate +block.underflow-gate.name = Underflow Gate +block.silicon-smelter.name = Silicon Smelter +block.phase-weaver.name = Phase Weaver +block.pulverizer.name = Pulverizer +block.cryofluidmixer.name = Cryofluid Mixer +block.melter.name = Melter +block.incinerator.name = Incinerator +block.spore-press.name = Spore Press +block.separator.name = Separator +block.coal-centrifuge.name = Coal Centrifuge +block.power-node.name = Power Node +block.power-node-large.name = Large Power Node +block.surge-tower.name = Surge Tower +block.diode.name = Battery Diode +block.battery.name = Battery +block.battery-large.name = Large Battery +block.combustion-generator.name = Combustion Generator +block.turbine-generator.name = Steam Generator +block.differential-generator.name = Differential Generator +block.impact-reactor.name = Impact Reactor +block.mechanical-drill.name = Mechanical Drill +block.pneumatic-drill.name = Pneumatic Drill +block.laser-drill.name = Laser Drill +block.water-extractor.name = Water Extractor +block.cultivator.name = Cultivator +block.conduit.name = Conduit +block.mechanical-pump.name = Mechanical Pump +block.item-source.name = Item Source +block.item-void.name = Item Void +block.liquid-source.name = Liquid Source +block.liquid-void.name = Liquid Void +block.power-void.name = Power Void +block.power-source.name = Power Infinite +block.unloader.name = Unloader +block.vault.name = Vault +block.wave.name = Wave +block.swarmer.name = Swarmer +block.salvo.name = Salvo +block.ripple.name = Ripple +block.phase-conveyor.name = Phase Conveyor +block.bridge-conveyor.name = Bridge Conveyor +block.plastanium-compressor.name = Plastanium Compressor +block.pyratite-mixer.name = Pyratite Mixer +block.blast-mixer.name = Blast Mixer +block.solar-panel.name = Solar Panel +block.solar-panel-large.name = Large Solar Panel +block.oil-extractor.name = Oil Extractor +block.repair-point.name = Repair Point +block.pulse-conduit.name = Pulse Conduit +block.plated-conduit.name = Plated Conduit +block.phase-conduit.name = Phase Conduit +block.liquid-router.name = Liquid Router +block.liquid-tank.name = Liquid Tank +block.liquid-junction.name = Liquid Junction +block.bridge-conduit.name = Bridge Conduit +block.rotary-pump.name = Rotary Pump +block.thorium-reactor.name = Thorium Reactor +block.mass-driver.name = Mass Driver +block.blast-drill.name = Airblast Drill +block.thermal-pump.name = Thermal Pump +block.thermal-generator.name = Thermal Generator +block.alloy-smelter.name = Alloy Smelter +block.mender.name = Mender +block.mend-projector.name = Mend Projector +block.surge-wall.name = Surge Wall +block.surge-wall-large.name = Large Surge Wall +block.cyclone.name = Cyclone +block.fuse.name = Fuse +block.shock-mine.name = Shock Mine +block.overdrive-projector.name = Overdrive Projector +block.force-projector.name = Force Projector +block.arc.name = Arc +block.rtg-generator.name = RTG Generator +block.spectre.name = Spectre +block.meltdown.name = Meltdown +block.container.name = Container +block.launch-pad.name = Launch Pad +block.launch-pad-large.name = Large Launch Pad +block.segment.name = Segment +block.ground-factory.name = Ground Factory +block.air-factory.name = Air Factory +block.naval-factory.name = Naval Factory +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.payload-conveyor.name = Mass Conveyor +block.payload-router.name = Payload Router +block.disassembler.name = Disassembler +block.silicon-crucible.name = Silicon Crucible +block.overdrive-dome.name = Overdrive Dome +team.blue.name = blue +team.crux.name = red +team.sharded.name = orange +team.orange.name = orange +team.derelict.name = derelict +team.green.name = green +team.purple.name = purple + +tutorial.next = [lightgray] +tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper +tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper +tutorial.drill = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\nYou can also select the drill by tapping [accent][[2][] then [accent][[1][] quickly, regardless of which tab is open.\n[accent]Right-click[] to stop building. +tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement. +tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[] +tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\nUse the scrollwheel to rotate blocks before placing them.\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core. +tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core. +tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base. +tutorial.drillturret = Duo turrets require[accent] copper ammo[] to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1 +tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause. +tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause. +tutorial.unpause = Now press space again to unpause. +tutorial.unpause.mobile = Now press it again to unpause. +tutorial.breaking = Blocks frequently need to be destroyed.\n[accent]Hold down right-click[] to destroy all blocks in a selection.[]\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection. +tutorial.breaking.mobile = Blocks frequently need to be destroyed.\n[accent]Select deconstruction mode[], then tap a block to begin breaking it.\nDestroy an area by holding down your finger for a few seconds[] and dragging in a direction.\nPress the checkmark button to confirm breaking.\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection. +tutorial.withdraw = In some situations, taking items directly from blocks is necessary.\nTo do this, [accent]tap a block[] with items in it, then [accent]tap the item[] in the inventory.\nMultiple items can be withdrawn by [accent]tapping and holding[].\n\n[accent]Withdraw some copper from the core.[] +tutorial.deposit = Deposit items into blocks by dragging from your ship to the destination block.\n\n[accent]Deposit your copper back into the core.[] +tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves.[accent] Click[] to shoot.\nBuild more turrets and drills. Mine more copper. +tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper. +tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese obtained resources can then be used to research new technology.\n\n[accent]Press the launch button. + +item.copper.description = The most basic structural material. Used extensively in all types of blocks. +item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks. +item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage. +item.graphite.description = Mineralized carbon, used for ammunition and electrical components. +item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux. +item.coal.description = Fossilized plant matter, formed long before the seeding event. Used extensively for fuel and resource production. +item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft. +item.thorium.description = A dense, radioactive metal used as structural support and nuclear fuel. +item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals. +item.silicon.description = An extremely useful semiconductor. Applications in solar panels, complex electronics and homing turret ammunition. +item.plastanium.description = A light, ductile material used in advanced aircraft and fragmentation ammunition. +item.phase-fabric.description = A near-weightless substance used in advanced electronics and self-repairing technology. +item.surge-alloy.description = An advanced alloy with unique electrical properties. +item.spore-pod.description = A pod of synthetic spores, synthesized from atmospheric concentrations for industrial purposes. Used for conversion into oil, explosives and fuel. +item.blast-compound.description = An unstable compound used in bombs and explosives. Synthesized from spore pods and other volatile substances. Use as fuel is not advised. +item.pyratite.description = An extremely flammable substance used in incendiary weapons. +liquid.water.description = The most useful liquid. Commonly used for cooling machines and waste processing. +liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon. +liquid.oil.description = A liquid used in advanced material production. Can be converted into coal as fuel, or sprayed and set on fire as a weapon. +liquid.cryofluid.description = An inert, non-corrosive liquid created from water and titanium. Has extremely high heat capacity. Extensively used as coolant. + +block.message.description = Stores a message. Used for communication between allies. +block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite. +block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently. +block.silicon-smelter.description = Reduces sand with pure coal. Produces silicon. +block.kiln.description = Smelts sand and lead into the compound known as metaglass. Requires small amounts of power to run. +block.plastanium-compressor.description = Produces plastanium from oil and titanium. +block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function. +block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy. +block.cryofluidmixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. +block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound. +block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. +block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets. +block.separator.description = Separates slag into its mineral components. Outputs the cooled result. +block.spore-press.description = Compresses spore pods under extreme pressure to synthesize oil. +block.pulverizer.description = Crushes scrap into fine sand. +block.coal-centrifuge.description = Solidifes oil into chunks of coal. +block.incinerator.description = Vaporizes any excess item or liquid it receives. +block.power-void.description = Voids all power inputted into it. Sandbox only. +block.power-source.description = Infinitely outputs power. Sandbox only. +block.item-source.description = Infinitely outputs items. Sandbox only. +block.item-void.description = Destroys any items. Sandbox only. +block.liquid-source.description = Infinitely outputs liquids. Sandbox only. +block.liquid-void.description = Removes any liquids. Sandbox only. +block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves. +block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles. +block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies. +block.titanium-wall-large.description = A moderately strong defensive block.\nProvides moderate protection from enemies.\nSpans multiple tiles. +block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections. +block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles. +block.thorium-wall.description = A strong defensive block.\nDecent protection from enemies. +block.thorium-wall-large.description = A strong defensive block.\nDecent protection from enemies.\nSpans multiple tiles. +block.phase-wall.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact. +block.phase-wall-large.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.\nSpans multiple tiles. +block.surge-wall.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly. +block.surge-wall-large.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly.\nSpans multiple tiles. +block.door.description = A small door. Can be opened or closed by tapping. +block.door-large.description = A large door. Can be opened and closed by tapping.\nSpans multiple tiles. +block.mender.description = Periodically repairs blocks in its vicinity. Keeps defenses repaired in-between waves.\nOptionally uses silicon to boost range and efficiency. +block.mend-projector.description = An upgraded version of the Mender. Repairs blocks in its vicinity.\nOptionally uses phase fabric to boost range and efficiency. +block.overdrive-projector.description = Increases the speed of nearby buildings.\nOptionally uses phase fabric to boost range and efficiency. +block.force-projector.description = Creates a hexagonal force field around itself, protecting buildings and units inside from damage.\nOverheats if too much damage is sustained. Optionally uses coolant to prevent overheating. Phase fabric can be used to increase shield size. +block.shock-mine.description = Damages enemies stepping on the mine. Nearly invisible to the enemy. +block.conveyor.description = Basic item transport block. Moves items forward and automatically deposits them into blocks. Rotatable. +block.titanium-conveyor.description = Advanced item transport block. Moves items faster than standard conveyors. +block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front. +block.junction.description = Acts as a bridge for two crossing conveyor belts. Useful in situations with two different conveyors carrying different materials to different locations. +block.bridge-conveyor.description = Advanced item transport block. Allows transporting items over up to 3 tiles of any terrain or building. +block.phase-conveyor.description = Advanced item transport block. Uses power to teleport items to a connected phase conveyor over several tiles. +block.sorter.description = Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right. +block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead. +block.router.description = Accepts items, then outputs them to up to 3 other directions equally. Useful for splitting the materials from one source to multiple targets.\n\n[scarlet]Never use next to production inputs, as they will get clogged by output.[] +block.distributor.description = An advanced router. Splits items to up to 7 other directions equally. +block.overflow-gate.description = Only outputs to the left and right if the front path is blocked. +block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked. +block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate. +block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. +block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power. +block.thermal-pump.description = The ultimate pump. +block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits. +block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits. +block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. +block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets. +block.liquid-tank.description = Stores a large amount of liquids. Use for creating buffers in situations with non-constant demand of materials or as a safeguard for cooling vital blocks. +block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations. +block.bridge-conduit.description = Advanced liquid transport block. Allows transporting liquids over up to 3 tiles of any terrain or building. +block.phase-conduit.description = Advanced liquid transport block. Uses power to teleport liquids to a connected phase conduit over several tiles. +block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks. +block.power-node-large.description = An advanced power node with greater range. +block.surge-tower.description = An extremely long-range power node with fewer available connections. +block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored. +block.battery.description = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit. +block.battery-large.description = Stores much more power than a regular battery. +block.combustion-generator.description = Generates power by burning flammable materials, such as coal. +block.thermal-generator.description = Generates power when placed in hot locations. +block.turbine-generator.description = An advanced combustion generator. More efficient, but requires additional water for generating steam. +block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite. +block.rtg-generator.description = A simple, reliable generator. Uses the heat of decaying radioactive compounds to produce energy at a slow rate. +block.solar-panel.description = Provides a small amount of power from the sun. +block.solar-panel-large.description = A significantly more efficient version of the standard solar panel. +block.thorium-reactor.description = Generates significant amounts of power from thorium. Requires constant cooling. Will explode violently if insufficient amounts of coolant are supplied. Power output depends on fullness, with base power generated at full capacity. +block.impact-reactor.description = An advanced generator, capable of creating massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process. +block.mechanical-drill.description = A cheap drill. When placed on appropriate tiles, outputs items at a slow pace indefinitely. Only capable of mining basic resources. +block.pneumatic-drill.description = An improved drill, capable of mining titanium. Mines at a faster pace than a mechanical drill. +block.laser-drill.description = Allows drilling even faster through laser technology, but requires power. Capable of mining thorium. +block.blast-drill.description = The ultimate drill. Requires large amounts of power. +block.water-extractor.description = Extracts groundwater. Used in locations with no surface water available. +block.cultivator.description = Cultivates tiny concentrations of spores in the atmosphere into industry-ready pods. +block.oil-extractor.description = Uses large amounts of power, sand and water to drill for oil. +block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen. +block.core-foundation.description = The second version of the core. Better armored. Stores more resources. +block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources. +block.vault.description = Stores a large amount of items of each type. An unloader block can be used to retrieve items from the vault. +block.container.description = Stores a small amount of items of each type. An unloader block can be used to retrieve items from the container. +block.unloader.description = Unloads items from any nearby non-transportation block. The type of item to be unloaded can be changed by tapping. +block.launch-pad.description = Launches batches of items without any need for a core launch. +block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently. +block.duo.description = A small, cheap turret. Useful against ground units. +block.scatter.description = An essential anti-air turret. Sprays clumps of lead, scrap or metaglass flak at enemy units. +block.scorch.description = Burns any ground enemies close to it. Highly effective at close range. +block.hail.description = A small, long-range artillery turret. +block.wave.description = A medium-sized turret. Shoots streams of liquid at enemies. Automatically extinguishes fires when supplied with water. +block.lancer.description = A medium-sized anti-ground laser turret. Charges and fires powerful beams of energy. +block.arc.description = A small close-range electric turret. Fires arcs of electricity at enemies. +block.swarmer.description = A medium-sized missile turret. Attacks both air and ground enemies. Fires homing missiles. +block.salvo.description = A larger, more advanced version of the Duo turret. Fires quick salvos of bullets at the enemy. +block.fuse.description = A large, close-range shrapnel turret. Fires three piercing blasts at nearby enemies. +block.ripple.description = An extremely powerful artillery turret. Shoots clusters of shells at enemies over long distances. +block.cyclone.description = A large anti-air and anti-ground turret. Fires explosive clumps of flak at nearby units. +block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets. +block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate. +block.repair-point.description = Continuously heals the closest damaged unit in its vicinity. +block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. 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 1c724123bc..aeff0d5cb8 100644 --- a/core/assets/bundles/bundle_fr_BE.properties +++ b/core/assets/bundles/bundle_fr_BE.properties @@ -3,7 +3,7 @@ credits = Crédits contributors = Traducteurs et contributeurs discord = Rejoignez le discord de Mindustry ! link.discord.description = Le discord officiel de Mindustry -link.reddit.description = The Mindustry subreddit +link.reddit.description = Le subreddit de Mindustry link.github.description = Code source du jeu link.changelog.description = Liste des mises à jour link.dev-builds.description = Versions instables de développement @@ -12,14 +12,14 @@ link.itch.io.description = Site itch.io avec les versions téléchargeables pour link.google-play.description = Page Google Play du jeu link.f-droid.description = F-Droid catalogue listing link.wiki.description = Wiki officiel de Mindustry -link.suggestions.description = Suggest new features +link.suggestions.description = Suggérer des nouvelles fonctionallitées linkfail = L'ouverture du lien a échoué!\nL'URL a été copiée dans votre presse-papier. screenshot = Capture d'écran enregistrée sur {0} screenshot.invalid = Carte trop grande, potentiellement pas assez de mémoire pour la capture d'écran. gameover = Le base a été détruite. gameover.pvp = L'équipe[accent] {0}[] a gagnée ! highscore = [accent]Nouveau meilleur score ! -copied = Copied. +copied = Copié. load.sound = Son load.map = Maps @@ -29,29 +29,29 @@ load.system = Système load.mod = Mods load.scripts = Scripts -be.update = A new Bleeding Edge build is available: -be.update.confirm = Download it and restart now? -be.updating = Updating... -be.ignore = Ignore -be.noupdates = No updates found. -be.check = Check for updates +be.update = Une nouvelle version est disponible: +be.update.confirm = Voulez vous la télécharger et recommencer maintenant ? +be.updating = Entrain de mettre à jour... +be.ignore = Ignorer +be.noupdates = Aucune mise à jour n'as été trouvée. +be.check = Chercher des mises à jour -schematic = Schematic -schematic.add = Save Schematic... -schematics = Schematics -schematic.replace = A schematic by that name already exists. Replace it? -schematic.exists = A schematic by that name already exists. -schematic.import = Import Schematic... -schematic.exportfile = Export File -schematic.importfile = Import File -schematic.browseworkshop = Browse Workshop -schematic.copy = Copy to Clipboard -schematic.copy.import = Import from Clipboard -schematic.shareworkshop = Share on Workshop -schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic -schematic.saved = Schematic saved. -schematic.delete.confirm = This schematic will be utterly eradicated. -schematic.rename = Rename Schematic +schematic = Schéma +schematic.add = Enregistrer Schéma... +schematics = Schémas +schematic.replace = Un schéma avec ce nom existe déjà. Voulez vous le remplacer ? +schematic.exists = Un schéma avec ce nom existe déjà. +schematic.import = Importer le Schéma... +schematic.exportfile = Exporter Dossier +schematic.importfile = Importer Dossier +schematic.browseworkshop = Parcourir l'Atelier +schematic.copy = Copier dans le presse-papier +schematic.copy.import = Importer du presse-papier +schematic.shareworkshop = Partager sur l'Atelier +schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Retourner Schéma +schematic.saved = Schéma enregistré. +schematic.delete.confirm = Ce Schéma sera totalement éradiqué. +schematic.rename = Renommer Schéma schematic.info = {0}x{1}, {2} blocks stat.wave = Vagues vaincues:[accent] {0} @@ -60,17 +60,17 @@ stat.built = Bâtiments construits:[accent] {0} stat.destroyed = Bâtiments détruits:[accent] {0} stat.deconstructed = Bâtiments déconstruits:[accent] {0} stat.delivered = Ressources transférées: -stat.playtime = Time Played:[accent] {0} +stat.playtime = Temps Joué:[accent] {0} stat.rank = Rang Final: [accent]{0} launcheditems = [accent]Ressources transférées -launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue. +launchinfo = [unlaunched][[LAUNCH] votre core pour obtenir les objets indiqués en bleu. map.delete = Êtes-vous sûr de vouloir supprimer cette carte ?"[accent]{0}[]"? level.highscore = Meilleur score: [accent]{0} level.select = Sélection de niveau level.mode = Mode de jeu: -coreattack = -nearpoint = [[ [scarlet]QUITTEZ LE POINT D'APPARITION ENNEMI IMMÉDIATEMENT[] ]\nannihilation imminente +coreattack = +nearpoint = [[ [scarlet]QUITTEZ LE POINT D'APPARITION ENNEMI IMMÉDIATEMENT[] ]\nextermination imminente database = Base de données savegame = Sauvegarder la partie loadgame = Charger la partie @@ -81,37 +81,37 @@ none = minimap = Minimap position = Position close = Fermer -website = Website +website = Site Web quit = Quitter save.quit = Save & Quit maps = Cartes -maps.browse = Browse Maps -continue = Continue +maps.browse = Feuilleter les maps +continue = Continuer maps.none = [lightgray]Aucune carte trouvée! -invalid = Invalid -pickcolor = Pick Color -preparingconfig = Preparing Config -preparingcontent = Preparing Content -uploadingcontent = Uploading Content -uploadingpreviewfile = Uploading Preview File -committingchanges = Comitting Changes -done = Done -feature.unsupported = Your device does not support this feature. +invalid = Invalide +pickcolor = Choisir Couleur +preparingconfig = Préparation Configuration +preparingcontent = Préparation Contenu +uploadingcontent = Télécharger Contenu +uploadingpreviewfile = Télécharger Aperçu de Dossier +committingchanges = Commettre Changements +done = Fini +feature.unsupported = Votre appareil ne prend pas en charge cette fonctionnalité. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. +mods.alphainfo = Tenez en compte que les mods sont en version alpha et [scarlet] qu'ils peuvent avoir des bugs[].\nVeuillez signaler tout les problèmes que vous encontrez sur le Github de Mindustry ou sur Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [lightgray]No mods found! -mods.guide = Modding Guide -mods.report = Report Bug -mods.openfolder = Open Mod Folder -mods.reload = Reload -mods.reloadexit = The game will now exit, to reload mods. +mods.none = [lightgray]Aucun Mod trouvé ! +mods.guide = Guide de Modding +mods.report = Signaler un Bug +mods.openfolder = Ouvrir Dossier Mod +mods.reload = Relancer +mods.reloadexit = Le jeu va quitter pour relancer les mods. mod.display = [gray]Mod:[orange] {0} -mod.enabled = [lightgray]Enabled -mod.disabled = [scarlet]Disabled -mod.disable = Disable -mod.content = Content: +mod.enabled = [lightgray]Activé +mod.disabled = [scarlet]Désactivé +mod.disable = Désactive +mod.content = Contenu: mod.delete.error = Unable to delete mod. File may be in use. mod.requiresversion = [scarlet]Requires min game version: [accent]{0} mod.missingdependencies = [scarlet]Missing dependencies: {0} @@ -143,7 +143,7 @@ completed = [accent]Terminé techtree = Arbre technologique research.list = [lightgray]Recherche: research = Recherche -researched = [lightgray]{0} recherchée. +researched = [lightgray]{0} recherché. players = {0} joueurs players.single = {0} joueur players.search = search @@ -152,7 +152,7 @@ server.closing = [accent]Fermeture du serveur ... server.kicked.kick = Vous avez été expulsé du serveur ! server.kicked.whitelist = You are not whitelisted here. server.kicked.serverClose = Serveur fermé. -server.kicked.vote = You have been vote-kicked. Goodbye. +server.kicked.vote = Vous avez été expulsé par vote. Au revoir. server.kicked.clientOutdated = Client dépassé! Mettez à jour votre jeu ! server.kicked.serverOutdated = Serveur dépassé! Demandez à l'hôte de le mettre à jour ! server.kicked.banned = Vous êtes banni de ce serveur. @@ -164,37 +164,37 @@ server.kicked.nameEmpty = Votre nom doit contenir au moins une lettre ou un chif server.kicked.idInUse = Vous êtes déjà sur ce serveur ! Se connecter avec deux comptes n'est pas permis ! server.kicked.customClient = Ce serveur ne supporte pas les versions personnalisées (Custom builds). Télécharger une version officielle. server.kicked.gameover = Vous avez perdu ! -server.kicked.serverRestarting = The server is restarting. +server.kicked.serverRestarting = Le serveur est entrain de redémarrer. server.versions = Votre version:[accent] {0}[]\nVersion du serveur:[accent] {1}[] host.info = Le bouton [accent]héberger[] héberge un serveur sur les ports [scarlet]6567[] et [scarlet]6568.[]\nN'importe qui sur le même [lightgray]réseau wifi ou local[] devrait pouvoir voir votre serveur dans sa liste de serveurs.\n\nSi vous voulez que les gens puissent se connecter de n'importe où grâce à l'IP, [accent]rediriger les ports[] est requis.\n\n[lightgray]Note:Si quelqu'un éprouve des difficultés à se connecter à votre partie LAN, assurez-vous que vous avez autorisé Mindustry à accéder à votre réseau local dans les paramètres de votre pare-feu. join.info = Ici, vous pouvez entrer l' [accent]IP d'un serveur[] pour s'y connecter, ou découvrir les serveurs[accent]sur votre réseau local[] pour s'y connecter.\nLes parties multijoueur LAN et WAN sont toutes deux supportées.\n\n[lightgray]Note: Aucune liste globale des serveurs n'est génerée automatiquement: si vous voulez vous connecter à un serveur par IP, vous devrez demander l'IP à l'hébergeur. hostserver = Héberger un serveur -invitefriends = Invite Friends -hostserver.mobile = Héberger\nUne partie +invitefriends = Inviter des amis +hostserver.mobile = Héberger\nune partie host = Héberger hosting = [accent]Ouverture du serveur ... hosts.refresh = Actualiser hosts.discovering = Recherche de parties en LAN -hosts.discovering.any = Discovering games +hosts.discovering.any = Découverte des jeux server.refreshing = Actualisation du serveur hosts.none = [lightgray]Aucun jeu en LAN trouvé ! host.invalid = [scarlet]Impossible de se\nconnecter à l'hôte. -servers.local = Local Servers -servers.remote = Remote Servers -servers.global = Community Servers +servers.local = Serveurs Locaux +servers.remote = Serveurs Distants +servers.global = Serveurs Communautaires trace = Suivre le joueur trace.playername = Nom du joueur: [accent]{0} trace.ip = IP: [accent]{0} trace.id = ID Unique: [accent]{0} -trace.mobile = Mobile Client: [accent]{0} +trace.mobile = Client Mobile: [accent]{0} trace.modclient = Client personnalisé: [accent]{0} invalidid = ID client invalide ! Soumettre un rapport de bug -server.bans = Bannis -server.bans.none = Aucun joueurs bannis trouvés ! +server.bans = Banni +server.bans.none = Aucun joueur banni trouvé ! server.admins = Administrateurs -server.admins.none = Aucun administrateurs trouvé ! +server.admins.none = Aucun administrateur trouvé ! server.add = Ajouter un serveur server.delete = Êtes-vous sûr de vouloir supprimer ce serveur ? server.edit = Modifier le serveur @@ -203,19 +203,19 @@ server.outdated.client = [crimson]Client obsolète ![] server.version = [lightgray]Version: {0} {1} server.custombuild = [accent]Version personnalisée confirmban = Êtes-vous sûr de vouloir bannir ce joueur ? -confirmkick = Êtes-vous sûr de vouloir expulser ce joueur? -confirmvotekick = Are you sure you want to vote-kick this player? +confirmkick = Êtes-vous sûr de vouloir expulser ce joueur ? +confirmvotekick = Êtes-vous sûr de vouloir voter que ce joueur soit banni ? confirmunban = Êtes-vous sûr de vouloir annuler le ban de ce joueur ? confirmadmin = Êtes-vous sûr de vouloir faire de ce joueur un administrateur ? confirmunadmin = Êtes-vous sûr de vouloir supprimer le statut d'administrateur de ce joueur ? joingame.title = Rejoindre une partie joingame.ip = IP: disconnect = Déconnecté. -disconnect.error = Connection error. -disconnect.closed = Connection closed. +disconnect.error = Un problème est survenu lors de la connection. +disconnect.closed = Connection fermée. disconnect.timeout = Timed out. disconnect.data = Les données du monde n'ont pas pu être chargées ! -cantconnect = Unable to join game ([accent]{0}[]). +cantconnect = Impossible de rejoindre le jeu ([accent]{0}[]). connecting = [accent]Connexion... connecting.data = [accent]Chargement des données du monde... server.port = Port: @@ -223,8 +223,8 @@ server.addressinuse = Adresse déjà utilisée ! server.invalidport = Numéro de port incorrect ! server.error = [crimson]Erreur lors de l'hébergement du serveur: [accent]{0} save.new = Nouvelle sauvegarde -save.overwrite = Êtes-vous sûr de vouloir\nécraser cette sauvegarde ? -overwrite = Écraser +save.overwrite = Êtes-vous sûr de vouloir\nrecouvrir cette sauvegarde ? +overwrite = Recouvrir save.none = Aucune sauvegarde trouvée ! savefail = Échec de la sauvegarde ! save.delete.confirm = Êtes-vous sûr de supprimer cette sauvegarde ? @@ -239,7 +239,7 @@ save.rename = Renommer save.rename.text = Nouveau nom: selectslot = Sélectionnez une sauvegarde. slot = [accent]Emplacement {0} -editmessage = Edit Message +editmessage = Modifier le Message save.corrupted = [accent]Fichier de sauvegarde corrompu ou invalide!\nSi vous venez de mettre à jour votre jeu, c'est probablement dû à un changement du format de sauvegarde et [scarlet]non[] un bug. empty = on = Allumer @@ -266,7 +266,7 @@ data.export = Export Data data.import = Import Data data.openfolder = Open Data Folder data.exported = Data exported. -data.invalid = This isn't valid game data. +data.invalid = Ceci ne sont pas des données de jeu valide. data.import.confirm = Importing external data will erase[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately. quit.confirm = Êtes-vous sûr de vouloir quitter? quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[] @@ -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 15bdaa0cf0..5868526b85 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -98,20 +98,20 @@ committingchanges = Membuat Perubahan done = Selesai feature.unsupported = Perangkat Anda tidak mendukung fitur ini. -mods.alphainfo = Perlu diingat bahwa mod masih dalam perkembangan, dan[scarlet] bisa mengalami kerusakan[].\nLapor isu atau masalah di Github atau Discord Mindustry. +mods.alphainfo = Perlu diingat bahwa mod masih dalam perkembangan, dan[scarlet] bisa mengakibatkan kerusakan[].\nLapor isu atau masalah di Github atau Discord Mindustry. mods.alpha = [accent](Alpha) mods = Mod mods.none = [lightgray]Tidak ada mod yang ditemukan! mods.guide = Panduan Modding mods.report = Lapor Kesalahan mods.openfolder = Buka Folder Mod -mods.reload = Reload -mods.reloadexit = The game will now exit, to reload mods. +mods.reload = mengulangi +mods.reloadexit = game akan keluar, untuk mengulang mod. mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Aktif mod.disabled = [scarlet]Nonaktif mod.disable = Aktif -mod.content = Content: +mod.content = konten: mod.delete.error = Tidak bisa menghapus mod. File mungkin sedang digunakan. mod.requiresversion = [scarlet]Versi game minimal yang dibutuhkan: [accent]{0} mod.missingdependencies = [scarlet]Ketergantungan hilang: {0} @@ -125,14 +125,14 @@ mod.reloadrequired = [scarlet]Dibutuhkan untuk memuat ulang mod.import = Impor Mod mod.import.file = Import File mod.import.github = Impor Mod GitHub -mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source! +mod.jarwarn = [scarlet]mod dari JAR sebenarnya tidak aman.[]\nPastikan anda mengimpor mod dari sumber terpercaya! mod.item.remove = Item ini merupakan bagian dari mod[accent] '{0}'[] mod. Untuk dihilangkan, hapus mod ini. mod.remove.confirm = Mod ini akan dihapus. mod.author = [lightgray]Pencipta:[] {0} mod.missing = Simpanan ini mengandung mod yang telah diperbarui atau sudah lama tidak dipasang. Kemungkinan akan terjadi perubahan. Apakah Anda yakin untuk memuatnya?\n[lightgray]Mods:\n{0} -mod.preview.missing = Sebelum menerbitkan mod di dalam workshop, kamu harus memberi foto pratinjau.\nBeri sebuah foto dinamakan[accent] preview.png[] ke dalam folder mod dan ulang kembali. -mod.folder.missing = Hanya mod dengan format folder yang dapat diterbitkan di workshop.\nUntuk mengubah mod menjadi folder, unzip file mod tersebut dan bentuk sebuah folder, kemudian ulang game Anda atau mod Anda.. -mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game. +mod.preview.missing = Sebelum memposting mod di workshop, kamu harus memberi foto pratinjau.\nBeri sebuah foto berformat[accent] preview.png[] ke dalam folder mod dan ulang kembali. +mod.folder.missing = Hanya mod dengan format folder yang dapat diposting di workshop.\nUntuk mengubah mod menjadi folder, ekstrak file mod tersebut dan pastikan berbentuk sebuah folder, kemudian ulang game Anda atau mod Anda.. +mod.scripts.disable = perangkat anda tidak mendukung mod berformat skrip/JS. Anda harus menonaktifkan mod untuk lanjut bermain!. about.button = Tentang name = Nama: @@ -153,13 +153,13 @@ server.kicked.kick = Anda telah dikeluarkan dari server! server.kicked.whitelist = Anda tidak ada di dalam whitelist. server.kicked.serverClose = Server ditutup. server.kicked.vote = Anda dipilih untuk dikeluarkan. Sampai jumpa! -server.kicked.clientOutdated = Client kadaluarsa! Perbarui permainan Anda! -server.kicked.serverOutdated = Server kadaluarsa! Tanya pemilik untuk diperbarui! +server.kicked.clientOutdated = Client kadaluarsa! Perbarui mindustry Anda! +server.kicked.serverOutdated = Server kadaluarsa! Tanya pemilik untuk memperbarui! server.kicked.banned = Anda telah dilarang untuk memasuki server ini. server.kicked.typeMismatch = Server ini tidak cocok dengan versi build Anda. -server.kicked.playerLimit = Server ini penuh. Tunggu untuk slot kosong. -server.kicked.recentKick = Anda baru saja dikeluarkan dari server ini.\nTunggu sebelum masuk lagi. -server.kicked.nameInUse = Sudah ada pemain dengan nama itu \ndi server ini. +server.kicked.playerLimit = Server ini penuh. Tunggu slot kosong. +server.kicked.recentKick = Anda baru saja dikeluarkan dari server ini.\nTunggu sesaat sebelum masuk lagi. +server.kicked.nameInUse = Sudah ada pemain dengan nama tersebut \ndi server ini. server.kicked.nameEmpty = Nama yang dipilih tidak valid. server.kicked.idInUse = Anda telah berada di server ini! Memasuki dengan dua akun tidak diizinkan. server.kicked.customClient = Server ini tidak mendukung versi modifikasi. Download versi resmi. @@ -192,7 +192,7 @@ trace.mobile = Client Mobile: [accent]{0} trace.modclient = Client Modifikasi: [accent]{0} invalidid = Client ID tidak valid! Laporkan masalah. server.bans = Pemain Dilarang Masuk -server.bans.none = Tidak ada pemain yang dilarang masuk! +server.bans.none = Tidak ada pemain yang diberiizin masuk! server.admins = Admin server.admins.none = Tidak ada admin! server.add = Tambahkan Server @@ -257,7 +257,7 @@ view.workshop = Lihat di Workshop workshop.listing = Sunting Daftar Workshop ok = OK open = Buka -customize = Modifikasi +customize = edit cancel = Batal openlink = Buka Tautan copylink = Salin Tautan @@ -273,7 +273,7 @@ quit.confirm.tutorial = Apakah Anda tahu apa yang dilakukan?\nTutorial dapat diu loading = [accent]Memuat... reloading = [accent]Memuat Ulang Mod... saving = [accent]Menyimpan... -respawn = [accent][[{0}][] to respawn in core +respawn = [accent][[{0}][] untuk muncul kembali ke inti cancelbuilding = [accent][[{0}][] untuk menghapus rencana selectschematic = [accent][[{0}][] untuk memilih+salin pausebuilding = [accent][[{0}][] untuk berhenti membangun @@ -441,7 +441,7 @@ width = Lebar: height = Tinggi: menu = Menu play = Bermain -campaign = Operasi +campaign = kampanye load = Memuat save = Simpan fps = FPS: {0} @@ -475,7 +475,7 @@ loadout = Loadout resources = Resources bannedblocks = Balok yang dilarang addall = Tambah Semu -configure.invalid = Jumlah harua berupa angka diantara 0 dan {0}. +configure.invalid = Jumlah harus berupa angka diantara 0 dan {0}. zone.unlocked = [lightgray]{0} terbuka. zone.requirement.complete = Gelombang {0} terselesaikan:\nPersyaratan zona {1} tercapai. zone.resources = Sumber Daya Terdeteksi: @@ -508,8 +508,8 @@ sector.tarFields.name = Tar Fields sector.saltFlats.name = Salt Flats sector.fungalPass.name = Fungal Pass -sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. -sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. +sector.groundZero.description = lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Beberapa sumber daya.\nKumpulkan timah dan tembaga sebanyak yang anda bisa.\nPindah. +sector.frozenForest.description = disini, dekat dengan gunung, spora spora sudah menyebar. Temperatur yang sangat rendah tidak dapat mempertahankan selamanya.\n\nBerusaha untuk kekuatan. Bangun generator pembakaran. Pelajari cara menggunakan mender. sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. @@ -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 6a7fd649e2..cedeaaf039 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -15,7 +15,7 @@ link.wiki.description = 공식 Mindustry 위키 link.suggestions.description = 새로운 기능 제안 linkfail = 링크를 열지 못했습니다!\nURL이 클립보드에 복사되었습니다. screenshot = 스크린 샷이 {0} 에 저장되었습니다. -screenshot.invalid = 맵이 너무 커서 스크린샷을 할 메모리가 부족할 수 있습니다. +screenshot.invalid = 맵이 너무 커서 스크린샷에 사용될 메모리가 부족할 수 있습니다. gameover = 게임 오버 gameover.pvp = [accent]{0}[] 팀이 승리했습니다! highscore = [accent]새로운 최고 점수! @@ -39,7 +39,7 @@ be.check = 업데이트 확인 schematic = 설계도 schematic.add = 설계도 저장하기 schematics = 설계도들 -schematic.replace = 해당 이름의 설계도가 이미 존재합니다. 교체 하시겠습니까? +schematic.replace = 해당 이름의 설계도가 이미 존재합니다. 교체하시겠습니까? schematic.exists = 해당 이름의 설계도가 이미 존재합니다. schematic.import = 설계도 가져오기... schematic.exportfile = 파일 내보내기 @@ -50,15 +50,15 @@ schematic.copy.import = 클립 보드에서 가져오기 schematic.shareworkshop = 창작마당에 공유 schematic.flip = [accent][[{0}][]/[accent][[{1}][]: 설계도 뒤집기 schematic.saved = 설계도 저장됨. -schematic.delete.confirm = 이 설계도는 완전히 삭제 될 것 입니다. +schematic.delete.confirm = 이 설계도는 완전히 삭제될 것입니다. schematic.rename = 설계도 이름 바꾸기 schematic.info = {0}x{1}, {2} 블록 -stat.wave = 패배 한 웨이브:[accent] {0} +stat.wave = 패배한 웨이브:[accent] {0} stat.enemiesDestroyed = 파괴된 적:[accent] {0} -stat.built = 건축 된 건물: [accent]{0} -stat.destroyed = 건물 파괴됨: [accent]{0} -stat.deconstructed = 건물 해체: [accent]{0} +stat.built = 지어진 건물: [accent]{0} +stat.destroyed = 파괴된 건물: [accent]{0} +stat.deconstructed = 해체된 건물: [accent]{0} stat.delivered = 얻은 자원: stat.playtime = 플레이 시간: [accent] {0} stat.rank = 최종 순위: [accent]{0} @@ -70,7 +70,7 @@ level.highscore = 최고 점수: [accent]{0} level.select = 맵 선택 level.mode = 게임 모드: coreattack = < 코어가 공격 받고 있습니다! > -nearpoint = [[ [scarlet]낙하 지점 에서 나가세요[] ]\n적 낙하 시 낙하 지점 내 건물 및 유닛 파괴 +nearpoint = [[ [scarlet]낙하 지점에서 나가세요[] ]\n적 낙하 시 낙하 지점 내 건물 및 유닛 파괴 database = 코어 데이터베이스 savegame = 게임 저장 loadgame = 게임 불러오기 @@ -114,7 +114,7 @@ mod.disable = 비활성화 mod.content = 콘텐츠: mod.delete.error = 모드를 삭제할 수 없습니다. 파일이 사용 중일 수 있습니다. mod.requiresversion = [scarlet]필요한 최소 게임 버전: [accent]{0} -mod.missingdependencies = [scarlet]누락된 종속성: {0} +mod.missingdependencies = [scarlet]누락된 요구 모드: {0} mod.erroredcontent = [scarlet]콘텐츠 오류 mod.errors = 콘텐츠를 로드하는 동안 오류가 발생함. mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화 하거나 플레이 하기 전에 오류를 수정하세요. @@ -125,14 +125,14 @@ mod.reloadrequired = [scarlet]재시작 필요 mod.import = 모드 가져오기 mod.import.file = 파일 가져오기 mod.import.github = Github 에서 모드 가져오기 -mod.jarwarn = [scarlet]JAR 모드는 안전하지 않습니다.[]\n신뢰할 수 있는 소스에서 이 모드를 가져와야 합니다! -mod.item.remove = 이 아이템은[accent] '{0}' 모드의 일부입니다. 이를 제거할려면 해당 모드를 제거하세요. -mod.remove.confirm = 이 모드가 삭제 될 것입니다. +mod.jarwarn = [scarlet]JAR 모드는 안전하지 않습니다.[]\n신뢰할 수 있는 소스에서 얻은 모드만을 사용해야 합니다! +mod.item.remove = 이 아이템은[accent] '{0}' 모드의 일부입니다. 이를 제거하려면 해당 모드를 제거하세요. +mod.remove.confirm = 이 모드가 삭제될 것입니다. mod.author = [lightgray]제작자:[] {0} -mod.missing = 이 저장 파일에는 최근에 업데이트 했거나 더이상 설치되지 않은 모드가 포함되어 있습니다. 저장 파일이 손상될 수 있습니다. 정말로 불러 오시겠습니까?\n[lighthray]모드들:\n{0} +mod.missing = 이 저장 파일에는 최근에 업데이트되었거나 더 이상 설치되지 않은 모드가 포함되어 있습니다. 저장 파일이 손상될 수 있습니다. 정말로 불러 오시겠습니까?\n[lighthray]모드들:\n{0} mod.preview.missing = 창작마당에 모드를 업로드하기 전에 미리보기 이미지를 추가해야합니다.\n[accent]preview.png[] 라는 이름의 미리보기 이미지를 모드 폴더에 넣고 다시 시도하세요. mod.folder.missing = 창작마당에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 모드 파일을 모드 폴더에 압축을 풀고 이전 모드 파일을 삭제 후, 게임을 재시작하거나 모드를 다시 로드하십시오. -mod.scripts.disable = 이 기기는 스크립트가 있는 모드를 지원하지 않습니다. 게임을 플레이 할려면 이 모드를 비활성화 해야 합니다. +mod.scripts.disable = 이 기기는 스크립트가 있는 모드를 지원하지 않습니다. 게임을 플레이하려면 이 모드를 비활성화해야 합니다. about.button = 정보 name = 이름: @@ -153,7 +153,7 @@ server.kicked.kick = 서버에서 추방되었습니다! server.kicked.whitelist = 당신은 이 서버의 화이트리스트에 등록되어 있지 않습니다. server.kicked.serverClose = 서버 닫힘. server.kicked.vote = 당신은 투표로 추방되었습니다. 안녕히 계십시오. -server.kicked.clientOutdated = 구버전 클라이언트 입니다! 게임을 업데이트하세요! +server.kicked.clientOutdated = 구버전 클라이언트입니다! 게임을 업데이트하세요! server.kicked.serverOutdated = 구버전 서버입니다! 호스트에게 업데이트를 요청하세요! server.kicked.banned = 당신은 이 서버에서 차단되었습니다. server.kicked.typeMismatch = 이 서버는 현재 빌드 유형과 호환되지 않습니다. @@ -166,13 +166,13 @@ server.kicked.customClient = 이 서버는 사용자 정의 빌드를 지원하 server.kicked.gameover = 게임 오버! server.kicked.serverRestarting = 서버가 다시 시작되고 있습니다. server.versions = 당신의 버전: [accent] {0}[]\n서버 버전:[accent] {1}[] -host.info = [accent]호스트[] 버튼은 포트[scarlet] 6567[]에서 호스팅합니다.\n같은 [lightgray]Wi-Fi 또는 LAN[]에 있는 모든 사용자들이 자신의 서버 목록에서 서버를 볼 수 있어야 합니다.\n\n사람들이 IP를 통해 어디서나 접속할 수 있게 할려면 [accent]포트 포워딩[]이 필요합니다.\n\n참고: 누군가 LAN 게임에 연결하는데 문제가 있는 경우 방화벽 설정에서 Mindustry 가 LAN에 액세스 할 수 있도록 허용했는지 확인하세요. 공용 네트워크는 가끔씩 서버 검색을 허용하지 않습니다. -join.info = 여기에 연결할 [accent]서버 IP[]를 입력하거나 [accent]LAN[] 또는 [accent]글로벌[] 서버를 검색할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원됩니다.\n\n[lightgray]IP로 서버에 연결할려면 호스트에게 IP를 요청해야 합니다. 호스트 쪽의 장치에서 구글에 "내 IP" 라고 검색하면 쉽게 찾을 수 있습니다. +host.info = [accent]호스트[] 버튼은 포트[scarlet] 6567[]에서 호스팅합니다.\n같은 [lightgray]Wi-Fi 또는 LAN[]에 있는 모든 사용자들이 자신의 서버 목록에서 서버를 볼 수 있어야 합니다.\n\n사람들이 IP를 통해 어디서나 접속할 수 있게 하려면 [accent]포트 포워딩[]이 필요합니다.\n\n참고: 누군가 LAN 게임에 연결하는 데 문제가 있는 경우 방화벽 설정에서 Mindustry가 LAN에 액세스 할 수 있도록 허용했는지 확인하세요. 공용 네트워크는 가끔씩 서버 검색을 허용하지 않습니다. +join.info = 여기에 연결할 [accent]서버 IP[]를 입력하거나 [accent]LAN[] 또는 [accent]글로벌[] 서버를 검색할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원됩니다.\n\n[lightgray]IP로 서버에 연결하려면 호스트에게 IP를 요청해야 합니다. 호스트 쪽의 장치에서 구글에 "내 IP" 라고 검색하면 쉽게 찾을 수 있습니다. hostserver = 멀티플레이 서버 호스트 invitefriends = 친구 초대 hostserver.mobile = 서버\n열기 host = 서버 열기 -hosting = [accent]서버 여는중... +hosting = [accent]서버 여는 중... hosts.refresh = 새로고침 hosts.discovering = LAN 게임 찾는중 hosts.discovering.any = 서버 찾는중 @@ -190,7 +190,7 @@ trace.ip = IP: [accent]{0} trace.id = 고유 ID: [accent]{0} trace.mobile = 모바일 클라이언트: [accent]{0} trace.modclient = 사용자 지정 클라이언트: [accent]{0} -invalidid = 잘못된 클라이언트 ID 입니다! 버그 보고서를 보내주세요. +invalidid = 잘못된 클라이언트 ID입니다! 버그 보고서를 보내주세요. server.bans = 차단 목록 server.bans.none = 차단된 플레이어를 찾을 수 없습니다! server.admins = 관리자들 @@ -224,7 +224,7 @@ server.invalidport = 잘못된 포트 번호입니다! server.error = [scarlet]서버 호스팅 오류. save.new = 새로 저장 save.overwrite = 저장된 슬롯을 덮어 쓰시겠습니까? -overwrite = 덮어 쓰기 +overwrite = 덮어쓰기 save.none = 저장된 파일을 찾을 수 없습니다! savefail = 게임을 저장하지 못했습니다! save.delete.confirm = 이 저장을 삭제 하시겠습니까? @@ -240,7 +240,7 @@ save.rename.text = 새 이름: selectslot = 저장슬롯을 선택하십시오. slot = [accent]슬롯 {0} editmessage = 메세지 편집 -save.corrupted = [accent]저장 파일이 손상되었거나 잘못된 파일입니다! +save.corrupted = [accent]손상되었거나 잘못된 저장 파일입니다! empty = <비어있음> on = 활성화 off = 비활성화 @@ -250,7 +250,7 @@ save.wave = {0} 웨이브 save.mode = 게임모드: {0} save.date = 마지막 저장일: {0} save.playtime = 플레이 시간: {0} -warning = 경고. +warning = 경고 confirm = 확인 delete = 삭제 view.workshop = 창작마당에서 보기 @@ -269,7 +269,7 @@ data.exported = 데이터를 내보냈습니다. data.invalid = 유효한 게임 데이터가 아닙니다. data.import.confirm = 외부 데이터를 가져오면 현재 게임 데이터를 [scarlet]모두[] 덮어쓰게 됩니다.\n[accent]이 작업은 취소할 수 없습니다![]\n\n데이터를 가져오면 게임이 즉시 종료됩니다. quit.confirm = 정말로 종료 하시겠습니까? -quit.confirm.tutorial = 튜토리얼을 종료하시겠습니까?\n튜토리얼은[accent]설정->게임->튜토리얼[]에서 다시 해보실 수 있습니다. +quit.confirm.tutorial = 튜토리얼을 종료하시겠습니까?\n튜토리얼은[accent]설정->게임->튜토리얼[]에서 다시 하실 수 있습니다. loading = [accent]불러오는중... reloading = [accent]모드 새로고침하는중... saving = [accent]저장중... @@ -282,7 +282,7 @@ wave = [accent]{0} 웨이브 wave.waiting = 다음 웨이브까지[lightgray] {0}초 wave.waveInProgress = [lightgray]웨이브 진행중 waiting = [lightgray]대기중... -waiting.players = 다른 플레이어들을 기다리는 중... +waiting.players = 상대 플레이어를 기다리는 중... wave.enemies = [lightgray]적 유닛 {0}명 남음 wave.enemy = [lightgray]{0}명 남음 loadimage = 사진 불러오기 @@ -293,12 +293,12 @@ builtin = 내장 map.delete.confirm = 정말로 이 맵을 삭제하시겠습니까? 이 명령은 취소할 수 없습니다! map.random = [accent]무작위 맵 map.nospawn = 이 맵에 플레이어가 스폰 할 코어가 없습니다! 편집기에서 [accent]orange[] 코어를 맵에 추가하세요. -map.nospawn.pvp = 이 맵에는 플레이어가 스폰할 적 코어가 없습니다! 편집기에서 [royal]orange 팀이 아닌[] 코어를 추가하세요. +map.nospawn.pvp = 이 맵에는 적 플레이어가 스폰할 코어가 없습니다! 편집기에서 [royal]orange 팀이 아닌[] 코어를 추가하세요. map.nospawn.attack = 이 맵에는 플레이어가 공격할 수 있는 적의 코어가 없습니다! 에디터에서 [royal]빨간색[] 코어들을 맵에 추가하세요. -map.invalid = 맵 로드중 오류: 맵 파일이 손상되었거나 잘못된 파일입니다. +map.invalid = 맵 로드 오류: 맵 파일이 손상되었거나 잘못된 파일입니다. workshop.update = 아이템 업데이트 workshop.error = 창작마당 세부 사항을 가져오는 중 오류가 발생했습니다: {0} -map.publish.confirm = 이 지도를 게시 하시겠습니까?\n\n[lightgray]창작마당 EULA에 먼저 동의해야 하며, 그렇지 않으면 맵이 표시되지 않습니다! +map.publish.confirm = 이 맵을 게시하시겠습니까?\n\n[lightgray]창작마당 EULA에 먼저 동의해야 하며, 그렇지 않으면 맵이 표시되지 않습니다! workshop.menu = 이 아이템으로 수행 할 작업을 선택하십시오. workshop.info = 아이템 정보 changelog = 변경점 (선택 사항) : @@ -316,7 +316,7 @@ editor.oregen.info = 광물 무작위 생성: editor.mapinfo = 맵 정보 editor.author = 제작자: editor.description = 설명: -editor.nodescription = 맵을 업로드하려면 최소 4자 이상의 설명이 있어야합니다. +editor.nodescription = 맵을 업로드하려면 최소 4자 이상의 설명이 있어야 합니다. editor.waves = 웨이브: editor.rules = 규칙: editor.generation = 생성: @@ -351,9 +351,9 @@ editor.errorload = 파일을 불러오지 못했습니다. editor.errorsave = 파일을 저장하지 못했습니다. editor.errorimage = 이것은 맵이 아니라 사진입니다.\n\n3.5/build 40 맵을 가져올려면 편집기에서 '예전 맵 가져오기' 버튼을 사용하세요. editor.errorlegacy = 이 맵은 너무 오래되어 더 이상 지원되지 않는 구형 맵 형식을 사용합니다. -editor.errornot = 이건 맵 파일이 아닙니다. +editor.errornot = 맵 파일이 아닙니다. editor.errorheader = 이 맵 파일은 유효하지 않거나 손상되었습니다. -editor.errorname = 맵에 이름이 지정되어 있지 않습니다. 저장 파일을 불러올려고 합니까? +editor.errorname = 맵에 이름이 지정되어 있지 않습니다. 저장 파일을 불러오려 합니까? editor.update = 업데이트 editor.randomize = 무작위 editor.apply = 적용 @@ -388,7 +388,7 @@ editor.exists = 이 이름의 맵이 이미 존재합니다. editor.selectmap = 불러올 맵을 선택하세요: toolmode.replace = 재배치 -toolmode.replace.description = 단단한 블록에만 그립니다 +toolmode.replace.description = 단단한 블록에만 그립니다. toolmode.replaceall = 모두 재배치 toolmode.replaceall.description = 맵에 있는 모든 블록을 재배치합니다. toolmode.orthogonal = 직각 @@ -446,7 +446,7 @@ load = 불러오기 save = 저장 fps = FPS: {0} ping = Ping: {0}ms -language.restart = 언어를 설정을 적용할려면 게임을 다시 시작하세요. +language.restart = 언어 설정을 적용하려면 게임을 다시 시작하세요. settings = 설정 tutorial = 튜토리얼 tutorial.retake = 튜토리얼 다시 시작 @@ -468,7 +468,7 @@ launch.title = 출격 성공 launch.next = [lightgray]다음 출격 기회는 {0} 웨이브에서 나타납니다. launch.unable2 = [scarlet]출격할 수 없습니다.[] launch.confirm = 이것은 당신의 코어에 있는 모든 자원을 출격 시킬 것입니다.\n당신은 이 기지로 다시 돌아올 수 없을 것입니다. -launch.skip.confirm = 지금 건너뛰면 다음 출격 웨이브가 끝날 때 까지 출격할 수 없습니다. +launch.skip.confirm = 지금 건너뛰면 다음 출격 웨이브가 끝날 때까지 출격할 수 없습니다. uncover = 지역 개방 configure = 로드아웃 설정 loadout = Loadout @@ -511,7 +511,7 @@ sector.fungalPass.name = 포자 지대 sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지닌 장소입니다. 적의 위협 수준이 낮으며, 자원이 거의 없습니다.\n가능 한 많은 양의 구리와 납을 수집하세요.\n이동 합시다. sector.frozenForest.description = 이곳에서도, 산에 가까운 곳에 포자가 퍼졌습니다. 추운 온도에서도 포자들을 막을 수 없을 것 같습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배우세요. sector.saltFlats.description = 이 소금 사막은 매우 척박하여 자원이 거의 없습니다.\n하지만 자원이 희소한 이곳에서도 적들의 요새가 발견되었습니다. 그들을 사막의 모래로 만들어버리십시오. -sector.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 다시 점령해 금속유리를 제작하고 물을 끌어올려 포탑과 드릴에 공급하여 더 좋은 효율로 방어선을 강화하십시오. +sector.craters.description = 물이 가득한 이 크레이터에는 옛 전쟁의 유물들이 쌓여있습니다.\n이곳을 다시 점령해 강화 유리를 제작하고 물을 끌어올려 포탑과 드릴에 공급하여 더 좋은 효율로 방어선을 강화하십시오. sector.ruinousShores.description = 이 지역은 과거 해안방어기지로 사용되었습니다.\n그러나 지금은 기본구조물만 남아있으니 이 지역을 어서 신속히 수리하여 외부로 세력을 확장한 뒤, 잃어버린 기술을 다시 회수하십시오. sector.stainedMountains.description = 더 안쪽에는 포자에 오염된 산맥이 있지만, 이 곳은 포자에 오염되지 않았습니다.\n이 지역에서 티타늄을 채굴하고 이것을 어떻게 사용하는지 배우십시오.\n\n적들은 이곳에서 더 강력합니다. 더 강한 유닛들이 나올 때까지 시간을 낭비하지 마십시오. sector.overgrowth.description = 이 곳은 포자들의 근원과 가까이에 있는 과성장 지대입니다. 적이 이 곳에 전초기지를 설립했습니다. 디거를 생산해 적의 코어를 박살 내고 우리가 잃어버린 것들을 되돌려받으십시오! @@ -607,7 +607,7 @@ bullet.incendiary = [stat]방화 bullet.homing = [stat]유도 bullet.shock = [stat]전격 bullet.frag = [stat]파편 -bullet.knockback = [stat]{0}[lightgray] 충격 +bullet.knockback = [stat]{0}[lightgray] 밀어내기 bullet.freezing = [stat]빙결 bullet.tarred = [stat]타르 bullet.multiplier = [stat]{0}[lightgray]x 탄약 배수 @@ -672,7 +672,7 @@ setting.seconds = {0} 초 setting.blockselecttimeout.name = 블록 선택 시간 초과 setting.milliseconds = {0} 밀리 초 setting.fullscreen.name = 전체 화면 -setting.borderlesswindow.name = 테두리 없는 창모드[lightgray] (재시작이 필요할 수 있습니다) +setting.borderlesswindow.name = 테두리 없는 창 모드[lightgray] (재시작이 필요할 수 있습니다) setting.fps.name = FPS와 핑 표시 setting.smoothcamera.name = 부드러운 시점 setting.blockselectkeys.name = 블록 선택 키 표시 @@ -695,10 +695,10 @@ setting.chatopacity.name = 채팅창 투명도 setting.lasersopacity.name = 전력 레이저 투명도 setting.bridgeopacity.name = 터널 투명도 setting.playerchat.name = 채팅 말풍선 표시 -public.confirm = 게임을 공개 표시하시겠습니까?\n[accent]모든 플레이어가 게임에 참여할 수 있습니다.\n[lightgray]설정->게임->멀티플레이 공용 서버로 표시에서 나중에 변경할 수 있습니다.\n\n[sky]번역자 추가[]\n[accent]친구끼리 한다고 이 기능을 활성화 한 뒤에, 친구 외에 다른 플레이어가 들어왔을 때\n해당 플레이어를 차단하는 행위는 비매너를 넘어서는 얌체 행위 그 자체입니다.\n정말로 [scarlet]많은 다른 플레이어들이 오길 원한다[]면 확인하세요. +public.confirm = 게임을 모두에게 공개하시겠습니까?\n[accent]모든 플레이어가 게임에 참여할 수 있습니다.\n[lightgray]설정->게임->멀티플레이 공용 서버로 표시에서 나중에 변경할 수 있습니다.\n\n[sky]번역자 추가[]\n[accent]친구끼리 하려고 이 기능을 활성화 한 뒤에, 친구 외에 다른 플레이어가 들어왔을 때\n해당 플레이어를 차단하는 행위는 비매너를 넘어서는 얌체 행위 그 자체입니다.\n정말로 [scarlet]많은 다른 플레이어들이 오길 원한다[]면 확인하세요. public.beta = 베타 버전의 게임은 공개 서버를 만들 수 없습니다. -uiscale.reset = UI 스케일이 변경되었습니다.\n"확인"버튼을 눌러 스케일을 확인하세요.\n[accent] {0}[][scarlet]초 후에 예전 설정으로 되돌리고 게임을 종료합니다... -uiscale.cancel = 취소후 나가기 +uiscale.reset = UI 스케일이 변경되었습니다.\n"확인"버튼을 눌러 저장하세요.\n[accent] {0}[][scarlet]초 후에 예전 설정으로 되돌리고 게임을 종료합니다... +uiscale.cancel = 취소 후 나가기 setting.bloom.name = 블룸 keybind.title = 조작키 설정 keybinds.mobile = [scarlet]대부분의 키 맵핑은 모바일에서 작동하지 않습니다. 기본 이동만 지원됩니다. @@ -767,14 +767,14 @@ keybind.drop_unit.name = 유닛 떨구기 keybind.zoom_minimap.name = 미니맵 확대 mode.help.title = 모드 설명 mode.survival.name = 생존 -mode.survival.description = 이것은 일반 모드입니다. 제한된 자원과 자동으로 시작되는 웨이브가 있습니다.\n[gray]플레이 할려면 맵에 적의 스폰지점이 필요합니다. +mode.survival.description = 이것은 일반 모드입니다. 제한된 자원과 자동으로 시작되는 웨이브가 있습니다.\n[gray]플레이하려면 맵에 적의 스폰지점이 필요합니다. mode.sandbox.name = 샌드박스 mode.sandbox.description = 무한한 자원과 웨이브 시작 타이머가 없습니다. mode.editor.name = 편집기 mode.pvp.name = PvP -mode.pvp.description = 다른 플레이어와 현장에서 싸우십시오.\n[gray]플레이 할려면 맵에 다른 색상의 코어가 2개 이상 있어야합니다. +mode.pvp.description = 다른 플레이어와 현장에서 싸우십시오.\n[gray]플레이하려면 맵에 다른 색상의 코어가 2개 이상 있어야합니다. mode.attack.name = 공격 -mode.attack.description = 적의 기지를 파괴하세요.\n[gray]플레이 할려면 맵에 빨간색 코어가 필요합니다. +mode.attack.description = 적의 기지를 파괴하세요.\n[gray]플레이하려면 맵에 빨간색 코어가 필요합니다. mode.custom = 사용자 정의 규칙 rules.infiniteresources = 무한 자원 @@ -823,13 +823,13 @@ item.surge-alloy.name = 설금 item.spore-pod.name = 포자 포드 item.sand.name = 모래 item.blast-compound.name = 화합물 -item.pyratite.name = 피라타이트 +item.pyratite.name = 파이라타이트 item.metaglass.name = 금속유리 item.scrap.name = 고철 liquid.water.name = 물 liquid.slag.name = 광재 liquid.oil.name = 기름 -liquid.cryofluid.name = 냉각 유체 +liquid.cryofluid.name = 냉각 item.explosiveness = [lightgray]폭발성: {0} item.flammability = [lightgray]인화성: {0} item.radioactivity = [lightgray]방사능: {0} @@ -903,8 +903,8 @@ block.multi-press.name = 다중 압축기 block.constructing = {0} [lightgray](제작중) block.spawn.name = 적 소환 block.core-shard.name = 코어: 조각 -block.core-foundation.name = 코어: 재단 -block.core-nucleus.name = 코어: 핵 +block.core-foundation.name = 코어: 기반 +block.core-nucleus.name = 코어: 핵심 block.deepwater.name = 깊은 물 block.water.name = 물 block.tainted-water.name = 오염된 물 @@ -917,7 +917,7 @@ block.ice.name = 얼음 block.snow.name = 눈 block.craters.name = 구덩이 block.sand-water.name = 젖은 모래 -block.darksand-water.name = 젖은 검은모래 +block.darksand-water.name = 젖은 검은 모래 block.char.name = 숯 block.holostone.name = 홀로스톤 block.ice-snow.name = 얼음눈 @@ -974,7 +974,7 @@ block.sorter.name = 필터 block.inverted-sorter.name = 반전 필터 block.message.name = 메모 블록 block.illuminator.name = 조명 -block.illuminator.description = 작고, 간단하고, 설정 가능한 광원입니다. 작동 시킬려면 전력이 필요합니다. +block.illuminator.description = 작고, 간단하고, 설정 가능한 광원입니다. 작동하려면 전력이 필요합니다. block.overflow-gate.name = 오버플로 게이트 block.underflow-gate.name = 언더플로 게이트 block.silicon-smelter.name = 실리콘 제련소 @@ -1018,7 +1018,7 @@ block.ripple.name = 립플 block.phase-conveyor.name = 메타 컨베이어 block.bridge-conveyor.name = 다리 컨베이어 block.plastanium-compressor.name = 플라스터늄 압축기 -block.pyratite-mixer.name = 피라타이트 혼합기 +block.pyratite-mixer.name = 라타이트 혼합기 block.blast-mixer.name = 화합물 혼합기 block.solar-panel.name = 태양 전지판 block.solar-panel-large.name = 대형 태양 전지판 @@ -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 = 실리콘 도가니 @@ -1080,18 +1080,18 @@ tutorial.intro = [scarlet]Mindustry 튜토리얼[]을 시작하겠습니다.\n[W tutorial.intro.mobile = [scarlet]Mindustry 튜토리얼[]을 시작하겠습니다.\n화면을 드래그하여 이동이 가능합니다.\n두 손가락을 화면에 누른 후 모으거나 벌려 확대와 축소가 가능합니다.\n[accent]구리[]를 채광하는 것부터 시작합니다. 코어 근처의 구리 광맥을 눌러 이 작업을 시작하세요.\n\n[accent]{0}/{1} 구리 tutorial.drill = 수동으로 채광하는 것은 효율이 낮습니다.\n[accent]드릴[]은 자동으로 드릴 바로 아래에 있는 광물들을 채광합니다.\n드릴 카테고리의 기계식 드릴을 선택하여 구리 광맥위에 설치하세요.\n마우스 오른쪽 버튼으로 취소가 가능합니다. tutorial.drill.mobile = 수동으로 채광하는 것은 효율이 낮습니다.\n[accent]드릴[]은 자동으로 드릴 밑에 있는 광물들을 채광합니다.\n드릴 카테고리의 기계식 드릴을 선택하여 구리 광맥위에 설치하세요.\n취소 버튼을 눌러 건축하기 전의 설계를 취소할 수 있습니다. -tutorial.blockinfo = 각 블록마다 다른 특성을 가지고 있으며, 각 드릴은 특정 광석만 채굴할 수 있습니다.\n블록의 정보와 특성을 확인할려면, [accent]건설 메뉴에서 "?" 버튼을 선택하세요.[]\n\n[accent]지금 기계식 드릴의 정보를 보세요. +tutorial.blockinfo = 각 블록마다 다른 특성을 가지고 있으며, 각 드릴은 특정 광석만 채굴할 수 있습니다.\n블록의 정보와 특성을 확인하려면, [accent]건설 메뉴에서 "?" 버튼을 선택하세요.[]\n\n[accent]지금 기계식 드릴의 정보를 보세요. tutorial.conveyor = [accent]컨베이어[]는 아이템을 코어로 운반하는데 사용됩니다.\n드릴에서 코어까지 컨베이어 경로를 만드세요.\n[accent]마우스를 길게 눌러 경로에 놓습니다.\n대각선으로 배치할 경로를 선택하는 동안 [accent]CTRL[] 키를 누른 상태로 유지하세요.\n스크롤 휠을 사용하여 블록을 배치하기 전에 블록을 회전시킬 수 있습니다.\n[accent]선 도구를 사용하여 컨베이어 2개를 놓은 다음, 아이템을 코어로 넣으세요. tutorial.conveyor.mobile = [accent]컨베이어[]는 아이템을 코어로 운반하는데 사용됩니다.\n드릴에서 코어까지 컨베이어 경로를 만드세요.\n[accent]몇 초 동안 손가락을 누른 상태에서 드래그 하여 경로를 그립니다.\n\n[accent]선 도구로 컨베이어 2개를 놓은 다음 아이템을 코어에 넣으세요. tutorial.turret = 아이템이 코어에 들어간 후에는 건물을 건설하는데 사용할 수 있습니다.\n모든 아이템이 건물에 사용될 수 있는 것은 아닙니다.\n건물에 사용되지 않는 아이템(예: [accent]석탄[] 또는 [accent]광재[])은 코어에 넣을 수 없습니다.\n[lightgray]적[]을 격추하기 위해 방어 건물을 세워야 합니다.\n기지 근처에 [accent]듀오 포탑[]을 건설하세요. tutorial.drillturret = 듀오 포탑은 사격하는데 [accent]구리 탄약[]이 필요합니다.\n포탑 근처에 드릴을 설치하세요.\n구리를 공급하기 위해 컨베이어를 포탑으로 가도록 건설하세요.\n\n[accnet]탄약 운반: 0/1 -tutorial.pause = 전투 중에는 게임을 [accent]일시정지[] 할 수 있습니다.\n일시정지 되는 동안 건설을 대기시킬 수 있습니다.\n\n[accent]일시정지 할려면 스페이스 키를 누르세요. -tutorial.pause.mobile = 싱글 플레이에서는 게임을 [accent]일시정지[]할 수 있습니다.\n일시정지하면 교전과 더불어 건설까지 일시정지됩니다.\n\n[accent]일시정지 할려면 왼쪽 상단에 있는 이 버튼을 누르세요. +tutorial.pause = 전투 중에는 게임을 [accent]일시정지[] 할 수 있습니다.\n일시정지 되는 동안 건설을 대기시킬 수 있습니다.\n\n[accent]일시정지하려면 스페이스 키를 누르세요. +tutorial.pause.mobile = 싱글 플레이에서는 게임을 [accent]일시정지[]할 수 있습니다.\n일시정지하면 교전과 더불어 건설까지 일시정지됩니다.\n\n[accent]일시정지하려면 왼쪽 상단에 있는 이 버튼을 누르세요. tutorial.unpause = 이제 스페이스를 누르면 일시정지가 해제됩니다. tutorial.unpause.mobile = 이제 다시 누르면 일시정지가 해제됩니다. -tutorial.breaking = 블록은 종종 파괴 되어야 합니다.\n선택한 모든 블록을 파괴할려면 [accent]마우스 오른쪽 클릭을 길게 누르세요[].\n\n[accent]영역 선택을 사용하여 코어 왼쪽의 모든 조각벽을 파괴하세요. +tutorial.breaking = 블록은 종종 파괴 되어야 합니다.\n선택한 모든 블록을 파괴하려면 [accent]마우스 오른쪽 클릭을 길게 누르세요[].\n\n[accent]영역 선택을 사용하여 코어 왼쪽의 모든 조각벽을 파괴하세요. tutorial.breaking.mobile = 블록은 종종 파괴 되어야 합니다.\n[accent]삭제 모드[]를 선택한 다음 블록을 탭 하여 파괴할 수 있습니다.\n[accnet]몇 초 동안 손가락을 누르고 원하는 방향으로 드래그[]하여 범위 안에있는 블럭을 파괴하세요.\n그리고 체크 표시 버튼을 눌러 삭제 작업을 할 수 있습니다.\n[accent]영역 선택을 사용하여 코어 왼쪽의 모든 조각 벽을 파괴하세요. -tutorial.withdraw = 경우에 따라 블록에서 아이템을 직접 가져와야 합니다.\n이 작업을 할려면 [accent]아이템이 있는 블록[]을 탭한 다음, 인벤토리에서 [accent]아이템[]을 탭하세요.\n[accent]누른 상태를 유지[]하면 여러개를 꺼낼 수 있습니다.\n\n[accent]코어에서 구리를 빼내세요. +tutorial.withdraw = 경우에 따라 블록에서 아이템을 직접 가져와야 합니다.\n이 작업을 하려면 [accent]아이템이 있는 블록[]을 탭한 다음, 인벤토리에서 [accent]아이템[]을 탭하세요.\n[accent]누른 상태를 유지[]하면 여러개를 꺼낼 수 있습니다.\n\n[accent]코어에서 구리를 빼내세요. tutorial.deposit = 기체에서 목적지 블록으로 드래그하여 아이템을 블록에 넣으세요.\n\n[accent]구리를 다시 코어에 넣으세요[]. tutorial.waves = [lightgray]적[]이 다가옵니다.\n2 웨이브로부터 코어를 방어하세요. [accent]클릭[]하여 사격할 수 있습니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요. tutorial.waves.mobile = [lightgray]적[]이 다가옵니다.\n2 웨이브로부터 코어를 방어하세요. 당신의 기체는 자동으로 적을 향해 사격합니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요. @@ -1122,13 +1122,13 @@ block.message.description = 메세지를 남깁니다. 같은 팀 간의 소통 block.graphite-press.description = 석탄 덩어리를 순수한 흑연으로 압축합니다. block.multi-press.description = 흑연 압축기의 강화 버전. 석탄을 빠르고 효율적으로 처리하기 위해 물과 전력을 사용합니다. block.silicon-smelter.description = 순수한 석탄과 모래로 실리콘을 생산합니다. -block.kiln.description = 모래를 제련하여 강화 유리라고 알려진 화합물로 만듭니다. 작동할려면 소량의 전력이 필요합니다. +block.kiln.description = 모래를 제련하여 강화 유리라고 알려진 화합물로 만듭니다. 작동려면 소량의 전력이 필요합니다. block.plastanium-compressor.description = 석유와 티타늄으로 플라스터늄을 생산합니다. block.phase-weaver.description = 방사성 토륨과 모래에서 메타를 합성합니다. 작동하려면 엄청난 양의 전력이 필요합니다. block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리를 결합하여 설금을 생산합니다. block.cryofluidmixer.description = 물과 미세 티타늄 분말을 냉각수로 혼합합니다. 토륨 원자로 사용에 필수적입니다. -block.blast-mixer.description = 포자 클러스터를 피라타이트와 분쇄하고 혼합하여 화합물을 만듭니다. -block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 피라타이트로 만듭니다. +block.blast-mixer.description = 포자 클러스터를 파이라타이트와 분쇄하고 혼합하여 화합물을 만듭니다. +block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다. block.melter.description = 웨이브 포탑에서 추가 처리 또는 사용을 위해 고철을 광재로 녹입니다. block.separator.description = 광재를 미네랄 성분으로 분리합니다. 그리고 냉각된 결과를 출력합니다. block.spore-press.description = 포자 포드를 극압으로 압축하여 기름을 합성합니다. @@ -1156,7 +1156,7 @@ block.surge-wall-large.description = 내구성이 매우 강한 방어 블록.\n block.door.description = 작은 문. 탭하여 열거나 닫을 수 있습니다. block.door-large.description = 큰 문. 탭하여 열거나 닫을 수 있습니다.\n여러 타일을 차지합니다. block.mender.description = 주변의 블록을 주기적으로 수리합니다. 웨이브 사이의 방어를 유지하게 합니다.\n선택적으로 실리콘을 사용하여 범위와 효율성을 향상시킵니다. -block.mend-projector.description = 멘더의 강화 버전. 주변의 블록을 수리합니다.\n선택적으로 메타를 사용하여 범위와 효율성을 향상시킵니다. +block.mend-projector.description = 소형 수리 프로젝터의 강화 버전. 주변의 블록을 수리합니다.\n선택적으로 메타를 사용하여 범위와 효율성을 향상시킵니다. block.overdrive-projector.description = 주변 건물의 속도를 높입니다.\n선택적으로 메타를 사용하여 범위와 효율성을 높입니다. block.force-projector.description = 건물과 내부의 유닛을 공격으로부터 보호하며, 그 주위에 육각형 역장을 형성합니다.\n너무 많은 손상이 지속되면 과열되며, 선택적으로 냉각수를 사용하여 과열을 방지할 수 있고, 메타는 역장의 크기를 늘리는 데 사용할 수 있습니다. block.shock-mine.description = 지뢰를 밟고 있는 적에게 피해를 입힙니다. 적에게는 거의 보이지 않습니다. @@ -1168,7 +1168,7 @@ block.bridge-conveyor.description = 고급 자원 운송 블록. 지형이나 block.phase-conveyor.description = 고급 자원 운송 블록. 전력을 사용하여 여러 타일을 통해 연결된 컨베이어로 아이템을 순간이동 시킵니다. block.sorter.description = 아이템을 정렬합니다. 아이템이 선택과 일치하면 앞방향으로 통과하며, 그렇지 않을 경우 왼쪽과 오른쪽으로 출력됩니다. block.inverted-sorter.description = 표준 분류기와 같은 아이템을 처리하지만, 대신 선택된 아이템을 측면으로 출력합니다. -block.router.description = 아이템을 받아서 최대 3개의 다른 방향으로 동일하게 출력합니다. 하나의 소스에서 여러 대상으로 재료를 분할하는데 유용합니다.\n\n[scarlet]공장에서 생산된 재료는 출력에 의해 막히게 되므로, 절대로 공장 옆에서 사용하지 마십시오. +block.router.description = 아이템을 받아서 최대 3개의 다른 방향으로 동일하게 출력합니다. 하나의 소스에서 여러 대상으로 재료를 분할하는 데 유용합니다.\n\n[scarlet]공장에서 생산된 재료는 출력에 의해 막히게 되므로, 절대로 공장 옆에서 사용하지 마십시오. block.distributor.description = 고급 분배기. 아이템을 최대 7개의 다른 방향으로 동일하게 분할합니다. block.overflow-gate.description = 전면 경로가 차단 된 경우에만 왼쪽과 오른쪽으로 출력됩니다. block.underflow-gate.description = 오버플로 게이트의 반대. 왼쪽 및 오른쪽 경로가 차단되면 전면으로 출력됩니다. @@ -1187,18 +1187,18 @@ block.phase-conduit.description = 고급 액체 운송 블록. 전력을 사용 block.power-node.description = 연결된 노드에 전력을 전송합니다. 노드는 인접한 블록에서 전력을 공급 받거나 전력을 공급 합니다. block.power-node-large.description = 더 넓은 범위의 고급 전력 노드. block.surge-tower.description = 사용 가능한 연결 수가 적은 장거리 전력 노드. -block.diode.description = 배터리 전력은 이 블록을 통해 한 방향으로만 흐를 수 있지만, 다른 쪽의 전원이 덜 저장된 경우에만 가능합니다. -block.battery.description = 에너지가 넘쳐날 때 완충제로 전력을 저장합니다. 전력에 적자가 발생할때 전력을 출력합니다. +block.diode.description = 배터리 전력은 이 블록을 통해 한 방향으로만 흐를 수 있지만, 출력 방향 배터리의 전력이 더 적은 경우에만 가능합니다. +block.battery.description = 에너지가 넘쳐날 때 완충재로 전력을 저장합니다. 전력에 적자가 발생할 때 전력을 출력합니다. block.battery-large.description = 일반 배터리보다 훨씬 더 많은 전력을 저장합니다. block.combustion-generator.description = 석탄과 같은 가연성 물질을 연소시켜 전력을 생산합니다. block.thermal-generator.description = 열이 있는 곳에 설치하면 전력이 생성됩니다. block.turbine-generator.description = 고급 연소 발전기. 더 효율적이지만 증기를 생성하기 위해 물이 필요합니다. -block.differential-generator.description = 많은 량의 전력을 생성합니다. 냉각수와 불타는 피라타이트의 온도 차이를 이용합니다. -block.rtg-generator.description = 간단하고 안정적인 발전기. 부패하는 방사성 화합물의 열을 이용하여 느린 속도로 전력을 생성합니다. +block.differential-generator.description = 많은 양의 전력을 생성합니다. 냉각수와 불타는 파이라타이트의 온도 차이를 이용합니다. +block.rtg-generator.description = 간단하고 안정적인 발전기. 붕괴하는 방사성 화합물의 열을 이용하여 느린 속도로 전력을 생성합니다. block.solar-panel.description = 태양으로부터 소량의 전력을 생성합니다. block.solar-panel-large.description = 표준 태양 전지판보다 훨씬 더 효율적인 버전. -block.thorium-reactor.description = 토륨으로부터 상당한 양의 전력을 생산합니다. 지속적인 냉각이 필요하며, 충분한 양의 냉각수가 공급되지 않으면 크게 폭발합니다. 전력 출력은 최대 재료 수용용량에 따라 달라집니다. -block.impact-reactor.description = 최고 효율로 대량의 전력을 생산할 수 있는 고급 발전기. 프로세스를 시작할려면 상당한 전력 공급이 필요합니다. +block.thorium-reactor.description = 토륨으로부터 상당한 양의 전력을 생산합니다. 지속적인 냉각이 필요하며, 충분한 양의 냉각수가 공급되지 않으면 크게 폭발합니다. 전력 출력은 토륨의 양에 따라 달라집니다. +block.impact-reactor.description = 최고 효율로 대량의 전력을 생산할 수 있는 고급 발전기. 프로세스를 시작하려면 상당한 전력 공급이 필요합니다. block.mechanical-drill.description = 가격이 싼 드릴. 적절한 타일에 설치하면 아이템을 천천히 느린 속도로 출력합니다. 기본 자원만 채굴할 수 있습니다. block.pneumatic-drill.description = 티타늄을 채광할 수 있는 향상된 드릴. 기계식 드릴보다 더 빠른 속도로 채굴합니다. block.laser-drill.description = 레이저 기술을 통해 더욱 빠르게 드릴링 할 수 있지만 전력이 필요합니다. 토륨 채굴 가능. @@ -1206,12 +1206,12 @@ block.blast-drill.description = 최상위 드릴. 많은 양의 전력이 필요 block.water-extractor.description = 지하수를 추출합니다. 지표수가 없는 곳에서 사용합니다. block.cultivator.description = 대기 중의 작은 농도의 포자를 배양 가능한 포드로 배양합니다. block.oil-extractor.description = 석유를 추출하기 위해 많은 양의 전력과 모래 및 물을 사용합니다. -block.core-shard.description = 코어 캡슐의 첫번째 형태. 일단 파괴되면 해당 지역과의 모든 연결이 끊어집니다. 이런 일이 일어나지 않도록 하십시오. -block.core-foundation.description = 코어의 두번째 버전. 더 나은 방어력과 자원을 저장합니다. +block.core-shard.description = 코어 캡슐의 첫 번째 형태. 파괴되면 해당 지역과의 모든 연결이 끊어집니다. 이런 일이 일어나지 않도록 하십시오. +block.core-foundation.description = 코어의 두 번째 버전. 더 나은 방어력과 자원을 저장합니다. block.core-nucleus.description = 코어 캡슐의 세 번째이자 마지막 형태입니다. 방어력이 매우 높고 대량의 자원을 저장할 수 있습니다. block.vault.description = 각 유형의 많은 양의 자원을 저장합니다. 언로더 블록을 사용하여 창고에서 아이템을 빼낼 수 있습니다. block.container.description = 각 유형의 소량의 자원을 저장합니다. 언로더 블록을 사용하여 컨테이너에서 아이템을 빼낼 수 있습니다. -block.unloader.description = 근처의 비 수송 블록에서 아이템을 빼냅니다. 빼낼 자원 유형을 눌러 변경할 수 있십니다. +block.unloader.description = 근처의 비 수송 블록에서 아이템을 빼냅니다. 눌러서 빼낼 자원을 변경할 수 있십니다. block.launch-pad.description = 코어 출격 없이도 아이템을 묶어 출격시킬 수 있습니다. block.launch-pad-large.description = 출격 패드의 개선된 버전. 더 많은 자원을 저장하며 더 자주 출격합니다. block.duo.description = 작고 저렴한 포탑. 지상 유닛에 유용합니다. @@ -1222,11 +1222,11 @@ block.wave.description = 중형 포탑. 적에게 액체를 발사합니다. 물 block.lancer.description = 중형 대지 레이저 포탑. 강력한 에너지 빔을 충전하여 발사합니다. block.arc.description = 작은 근거리 전격 포탑. 적에게 전격 아크를 발사합니다. block.swarmer.description = 중형 미사일 포탑. 공중과 지상의 적을 모두 공격하며, 유도탄을 발사합니다. -block.salvo.description = 더 큰 고급 듀오 포탑 버전입니다. 적에게 총알을 빠르게 발사합니다. +block.salvo.description = 더 큰 고급 듀오 포탑입니다. 적에게 총알을 빠르게 발사합니다. block.fuse.description = 넓은 근거리 파편 포탑. 근처의 적에게 3개의 관통 총알을 발사합니다. block.ripple.description = 매우 강력한 포병 포탑. 원거리에 있는 적에게 포탄 무리를 쏘세요. block.cyclone.description = 대공 및 대지 포탑. 근처 유닛에게 폭발성 덩어리를 발사합니다. block.spectre.description = 거대한 이중 배럴 대포. 공중 및 지상 목표물에 큰 관통 철갑탄을 발사합니다. block.meltdown.description = 거대한 레이저 대포. 근처의 적에게 지속적인 레이버 빔을 충전하여 발사합니다. 냉각수가 있어야 작동합니다. block.repair-point.description = 주변에서 가장 가까운 유닛들을 지속적으로 치료합니다. -block.segment.description = 오고있는 발사체를 파괴합니다. 레이저는 목표 대상이 아닙니다. +block.segment.description = 날아오는 발사체를 요격합니다. 레이저는 목표 대상이 아닙니다. 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 b724f7df71..2fb9106b6d 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -31,17 +31,17 @@ load.scripts = Скрипты be.update = Доступна новая сборка Bleeding Edge: be.update.confirm = Загрузить её и перезапустить игру сейчас? -be.updating = Обновляется... +be.updating = Обновляется… be.ignore = Игнорировать be.noupdates = Обновления не найдены. be.check = Проверить обновления schematic = Схема -schematic.add = Сохранить схему... +schematic.add = Сохранить схему… schematics = Схемы schematic.replace = Схема с таким названием уже существует. Заменить её? schematic.exists = Схема с таким названием уже существует. -schematic.import = Импортировать схему... +schematic.import = Импортировать схему… schematic.exportfile = Экспортировать файл schematic.importfile = Импортировать файл schematic.browseworkshop = Просмотр Мастерской @@ -63,8 +63,7 @@ stat.delivered = Ресурсов запущено: stat.playtime = Время игры:[accent] {0} stat.rank = Финальный ранг: [accent]{0} -launcheditems = [accent]Запущенные предметы -launchinfo = [unlaunched]Нажмите на кнопку [ЗАПУСК], чтобы получить предметы, которые отмечены синим цветом. +globalitems = [accent]Глобальные предметы map.delete = Вы действительно хотите удалить карту «[accent]{0}[]»? level.highscore = Рекорд: [accent]{0} level.select = Выбор карты @@ -144,6 +143,7 @@ techtree = Дерево\n технологий research.list = [lightgray]Исследуйте: research = Исследовать researched = [lightgray]{0} исследовано. +research.progress = {0}% завершено players = Игроков: {0} players.single = {0} игрок players.search = поиск @@ -271,7 +271,7 @@ data.import.confirm = Импорт внешних данных сотрёт[scar quit.confirm = Вы уверены, что хотите выйти? quit.confirm.tutorial = Вы уверены, что знаете, что делаете?\nОбучение может быть повторно запущено через[accent] Настройки->Игра->Открыть обучение.[] loading = [accent]Загрузка… -reloading = [accent]Перезагрузка модификаций... +reloading = [accent]Перезагрузка модификаций… saving = [accent]Сохранение… respawn = [accent][[{0}][] для возрождения из ядра cancelbuilding = [accent][[{0}][] для очистки плана @@ -304,7 +304,7 @@ workshop.info = Информация о предмете changelog = Список изменений (необязательно): eula = Лицензионное соглашение Steam с конечным пользователем missing = Этот предмет был удалён или перемещён.\n[lightgray]Публикация в Мастерской была автоматически удалена. -publishing = [accent]Отправка... +publishing = [accent]Отправка… publish.confirm = Вы уверены, что хотите опубликовать этот предмет?\n\n[lightgray]Убедитесь, что вы согласны с EULA Мастерской, иначе ваши предметы не будут отображаться! publish.error = Ошибка отправки предмета: {0} steam.error = Не удалось инициализировать сервисы Steam.\nОшибка: {0} @@ -326,7 +326,7 @@ editor.newmap = Новая карта workshop = Мастерская waves.title = Волны waves.remove = Удалить -waves.never = <никогда> +waves.never = ∞ waves.every = каждый waves.waves = волна(ы) waves.perspawn = за появление @@ -340,6 +340,12 @@ waves.load = Загрузить из буфера обмена waves.invalid = Неверные волны в буфере обмена. waves.copied = Волны скопированы. waves.none = Враги не были определены.\nОбратите внимание, что пустые волны будут автоматически заменены обычной волной. + +#these are intentionally in lower case +wavemode.counts = количество единиц +wavemode.totals = всего единиц +wavemode.health = всего здоровья + editor.default = [lightgray]<По умолчанию> details = Подробности… edit = Редактировать… @@ -379,7 +385,7 @@ editor.exportimage = Экспортировать изображение лан editor.exportimage.description = Экспортировать файл изображения, содержащего только базовую местность editor.loadimage = Импортировать\nизображение editor.saveimage = Экспортировать\nизображение -editor.unsaved = [scarlet]У Вас есть несохранённые изменения![]\nВы уверены, что хотите выйти? +editor.unsaved = Вы уверены, что хотите выйти?\n[scarlet]Все несохранённые изменения будут потеряны. editor.resizemap = Изменить размер карты editor.mapname = Название карты: editor.overwrite = [accent]Внимание!\nЭто перезапишет уже существующую карту. @@ -456,10 +462,11 @@ mapeditor = Редактор карт abandon = Покинуть abandon.text = Эта зона и все её ресурсы будут отданы противнику. locked = Заблокировано -complete = [lightgray]Выполнить: +complete = [lightgray]Необходимо: requirement.wave = Достигните {0} волны в зоне {1} requirement.core = Уничтожьте вражеское ядро в зоне {0} requirement.research = Исследуйте {0} +requirement.capture = Захватите {0} resume = Возобновить зону:\n[lightgray]{0} bestwave = [lightgray]Лучшая волна: {0} @@ -636,6 +643,7 @@ unit.percent = % unit.items = предметов unit.thousands = к unit.millions = М +unit.billions = кM category.general = Основные category.power = Энергия category.liquids = Жидкости @@ -986,7 +994,7 @@ block.illuminator.name = Осветитель block.illuminator.description = Маленький, компактный, настраиваемый источник света. Требуется энергия для работы. block.overflow-gate.name = Избыточный затвор block.underflow-gate.name = Избыточный шлюз -block.silicon-smelter.name = Кремниевый плавильный завод +block.silicon-smelter.name = Кремниевая плавильня block.phase-weaver.name = Фазовый ткач block.pulverizer.name = Измельчитель block.cryofluidmixer.name = Мешалка криогенной жидкости @@ -1071,11 +1079,18 @@ 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 = Кремниевый тигель block.overdrive-dome.name = Сверхприводный купол + +block.switch.name = Переключатель +block.micro-processor.name = Микропроцессор +block.logic-processor.name = Логический процессор +block.logic-display.name = Логический дисплей +block.memory-cell.name = Запоминающее устройство + team.blue.name = Синяя team.crux.name = Красная team.sharded.name = Оранжевая @@ -1171,16 +1186,16 @@ block.force-projector.description = Создает вокруг себя шес block.shock-mine.description = Наносит урон врагам, наступающим на мину. Почти невидима для врага. block.conveyor.description = Базовый транспортный блок. Перемещает предметы вперед и автоматически складывает их в блоки. Можно повернуть. block.titanium-conveyor.description = Улучшенный транспортный блок. Перемещает предметы быстрее, чем стандартные конвейеры. -block.plastanium-conveyor.description = Транспортирует предметы пачками.\nПринимает предметы только с начального сегмента, а разгружает с последнего со всех сторон. +block.plastanium-conveyor.description = Транспортирует предметы пачками.\nПринимает предметы только с начального сегмента, а разгружает с последнего со всех сторон.\nИмеет большую пропускную способность по сравнению с остальными логистическими блоками. block.junction.description = Действует как мост для двух пересекающихся конвейерных лент. Полезен в ситуациях, когда два разных конвейера перевозят разные материалы в разные места. block.bridge-conveyor.description = Улучшенный транспортный блок. Позволяет транспортировать предметы над 3 плитками любой местности или здания. block.phase-conveyor.description = Улучшенный транспортный блок. Использует энергию для телепортации предметов на подключенный фазовый конвейер над несколькими плитками. -block.sorter.description = Сортирует предметы. Если предмет соответствует выбору, он может пройти. В противном случае предмет выводится слева и справа. +block.sorter.description = Сортирует предметы. Если предмет соответствует выбору, он может пройти. В противном случае предмет выводится по бокам. block.inverted-sorter.description = Работает с предметами так же, как и стандартный сортировщик, но выводит выбранный предмет по бокам, а не прямо. block.router.description = Принимает предмет в одном направлении и выводит их до 3 других направлений в равной степени. Полезен для разделения материалов из одного источника на несколько целей.\n\n[scarlet]Никогда не используйте рядом с заводами и т.п., так как маршрутизатор будет забит выходными предметами.[] block.distributor.description = Расширенный маршрутизатор. Разделяет предметы до 7 других направлений в равной степени. -block.overflow-gate.description = Выводит предметы влево и вправо, только если передний путь заблокирован. -block.underflow-gate.description = Противоположность избыточного затвора. Выводит предметы вперёд только в том случае, если левый и правый пути заблокированы. +block.overflow-gate.description = Выводит предметы по бокам, только если передний путь заблокирован. +block.underflow-gate.description = Противоположность избыточного затвора. Выводит предметы вперёд только в том случае, если боковые пути заблокированы. block.mass-driver.description = Самый продвинутый транспортный блок. Собирает несколько предметов и затем стреляет ими в другую катапульту на большом расстоянии. Требуется энергия для работы. block.mechanical-pump.description = Дешёвый насос с низкой производительностью, но без энергопотребления. block.rotary-pump.description = Продвинутый насос. Качает больше жидкости, но требуют энергию. @@ -1196,7 +1211,7 @@ block.phase-conduit.description = Расширенный блок транспо block.power-node.description = Передает питание на подключенные узлы. Узел будет получать питание или поставлять питание на любые соседние блоки. block.power-node-large.description = Усовершенствованный силовой узел с большей дальностью. block.surge-tower.description = Силовой узел с очень большим радиусом действия, но меньшим количеством доступных соединений. -block.diode.description = Энергия из аккумуляторов имеет возможность перемещаться через этот блок в одну сторону, если на выходе имеется меньше энергии в запасе, чем на входе. +block.diode.description = Накопленная энергия имеет возможность перемещаться через этот блок в одну сторону, если на выходе имеется меньше энергии в запасе, чем на входе. block.battery.description = Накапливает энергию как буфер во времена избытка энергии. Выводит энергию во времена дефицита. block.battery-large.description = Хранит гораздо больше энергии, чем обычный аккумулятор. block.combustion-generator.description = Вырабатывает энергию путём сжигания легковоспламеняющихся материалов, таких как уголь. 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 fa78384973..9c02b7b8b4 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -63,8 +63,7 @@ stat.delivered = Ресурсів запущено: stat.playtime = Час у грі:[accent] {0} stat.rank = Фінальний рахунок:[accent] {0} -launcheditems = [accent]Запущені предмети -launchinfo = [unlaunched]Натисніть на кнопку [[ЗАПУСК], щоб ваше ядро отримало предмети, які виділені синім кольором. +globalitems = [accent]Глобальні предмети map.delete = Ви впевнені, що хочете видалити мапу «[accent]{0}[]»? level.highscore = Рекорд: [accent]{0} level.select = Вибір мапи @@ -106,7 +105,7 @@ mods.guide = Посібник з модифікацій mods.report = Повідомити про ваду mods.openfolder = Відкрити теку mods.reload = Перезавантажити -mods.reloadexit = The game will now exit, to reload mods. +mods.reloadexit = Гра зараз закриється, щоб перезавантажити модифікації mod.display = [gray]Модифікація:[orange] {0} mod.enabled = [lightgray]Увімкнено mod.disabled = [scarlet]Вимкнено @@ -125,7 +124,7 @@ mod.reloadrequired = [scarlet]Потрібно перезавантаження mod.import = Імпортувати модифікацію mod.import.file = Імпортувати файл mod.import.github = Імпортувати з GitHub -mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source! +mod.jarwarn = [scarlet]JAR-модифікації по своїй суті небезпечні.[]\nПереконайтеся, що ви імпортуєте цю модифікацію з надійного джерела! mod.item.remove = Цей предмет є частиною модифікації [accent] «{0}»[]. Щоб видалити його, видаліть цю модифікацію. mod.remove.confirm = Цю модифікацію буде видалено. mod.author = [lightgray]Автор:[] {0} @@ -144,6 +143,7 @@ techtree = Дерево технологій research.list = [lightgray]Дослідження: research = Дослідження researched = [lightgray]{0} досліджено. +research.progress = {0}% завершено players = Гравців: {0} players.single = {0} гравець на сервері players.search = пошук @@ -273,7 +273,7 @@ quit.confirm.tutorial = Ви впевнені, що знаєте що робит loading = [accent]Завантаження… reloading = [accent]Перезавантаження модифікацій… saving = [accent]Збереження… -respawn = [accent][[{0}][] to respawn in core +respawn = [accent][[{0}][], щоб відродитися в ядрі cancelbuilding = [accent][[{0}][], щоб очистити план selectschematic = [accent][[{0}][], щоб вибрати та скопіювати pausebuilding = [accent][[{0}][], щоб призупинити будування @@ -330,9 +330,9 @@ waves.never = <ніколи> waves.every = кожен waves.waves = хвиля(і) waves.perspawn = за появу -waves.shields = shields/wave +waves.shields = щитів за хвилю waves.to = до -waves.guardian = Guardian +waves.guardian = Вартовий waves.preview = Попередній перегляд waves.edit = Редагувати… waves.copy = Копіювати в буфер обміну @@ -456,14 +456,14 @@ mapeditor = Редактор мап abandon = Покинути abandon.text = Ця зона і всі її ресурси будуть утрачені. locked = Заблоковано -complete = [lightgray]Досягнута: +complete = [lightgray]Необхідно: requirement.wave = Досягніть хвилі {0} у зоні «{1}» requirement.core = Знищте вороже ядро у зоні «{0}» requirement.unlock = Розблокуйте {0} resume = Відновити зону:\n[lightgray]{0} bestwave = [lightgray]Найкраща хвиля: {0} launch = < ЗАПУСК > -launch.text = Launch +launch.text = Запуск launch.title = Запуск вдалий launch.next = [lightgray]наступна можливість буде на {0}-тій хвилі launch.unable2 = [scarlet]ЗАПУСК неможливий.[] @@ -471,8 +471,8 @@ launch.confirm = Це видалить всі ресурси у вашому я launch.skip.confirm = Якщо ви пропустите зараз, ви не зможете не запускати до більш пізніх хвиль. uncover = Розкрити configure = Налаштувати вивантаження -loadout = Loadout -resources = Resources +loadout = Вивантаження +resources = Ресурси bannedblocks = Заборонені блоки addall = Додати все configure.invalid = Кількість повинна бути числом між 0 та {0}. @@ -496,29 +496,29 @@ error.io = Мережева помилка введення-виведення. error.any = Невідома мережева помилка error.bloom = Не вдалося ініціалізувати світіння.\nВаш пристрій, мабуть, не підтримує це. -sector.groundZero.name = Ground Zero -sector.craters.name = The Craters -sector.frozenForest.name = Frozen Forest -sector.ruinousShores.name = Ruinous Shores -sector.stainedMountains.name = Stained Mountains -sector.desolateRift.name = Desolate Rift -sector.nuclearComplex.name = Nuclear Production Complex -sector.overgrowth.name = Overgrowth -sector.tarFields.name = Tar Fields -sector.saltFlats.name = Salt Flats -sector.fungalPass.name = Fungal Pass +sector.groundZero.name = Відправний пункт +sector.craters.name = Кратери +sector.frozenForest.name = Крижаний ліс +sector.ruinousShores.name = Зруйновані береги +sector.stainedMountains.name = Плямисті гори +sector.desolateRift.name = Спустошена ущелина +sector.nuclearComplex.name = Ядерний виробничий комплекс +sector.overgrowth.name = Зарості +sector.tarFields.name = Дьогтьові поля +sector.saltFlats.name = Соляні рівнини +sector.fungalPass.name = Грибний перевал + +sector.groundZero.description = Оптимальне місце для повторних ігор. Низька ворожа загроза. Мало ресурсів.\nЗбирайте якомога більше свинцю та міді.\nНе затримуйтесь і йдіть далі. +sector.frozenForest.description = Спори поширилися навіть тут, ближче до гір. Холодна температура не може стримувати їх завжди.\n\nЗважтесь створити енергію. Побудуйте генератори внутрішнього згорання. Навчіться користуватися регенераторами. +sector.saltFlats.description = На околицях пустелі лежать Соляні рівнини. У цьому місці можна знайти небагато ресурсів.\n\nСаме тут противники спорудили комплекс сховищ ресурсів. Викорініть їхнє ядро. Не залишайте нічого цінного. +sector.craters.description = У цьому кратері накопичилася вода, пережиток старих воєн. Відновіть місцевість. Зберіть пісок. Виплавте метаскло. Качайте воду, щоб охолодити турелі та бури. +sector.ruinousShores.description = Саме берегова лінія є минулим цих відходів. Колись у цьому місці розташувався береговий оборонний масив. Проте залишилося не так багато чого. Тільки основні оборонні споруди залишилися неушкодженими, а все інше перетворилося на брухт.\nПродовжуйте експансію назовні. Повторно розкрийте технології. +sector.stainedMountains.description = Якщо йти далі у вглиб материка, то можна побачити гори, які ще не заражені спорами.\nВидобудьте надлишковий титан у цій місцевості. Дізнайтеся, як використовувати його.\n\nНа жаль, тут більше противників ніж в інших місцевостях. Не дайте їм часу надіслати свої найсильніші одиниці. +sector.overgrowth.description = Ближче до джерела спор є територія, що заросла.\nНе дивуйтеся, що противник встановив тут свій форпост. Побудуйте бойові одиниці під кодовою назвою «Титан». Зруйнуйте її. Поверніть те, що колись належало нам. +sector.tarFields.description = Між горами та пустелею простягається окраїна зони видобутку нафти. Це один з небагатьох районів із корисними для використання запасами смоли.\nНе зважаючи на те, що територія покинута, вона має поблизу небезпечні сили противника. Не варто їх недооцінювати.\n\n[lightgray]Якщо можливо, дослідіть технологію перероблювання нафти. +sector.desolateRift.description = Надзвичайно небезпечна зона. Багато ресурсів, але мало місця. Високий ризик знищення. Евакуюватися потрібно якомога швидше. Не розслабляйтеся між ворожими атаками та знайдіть ахіллесову п’яту супротивника. +sector.nuclearComplex.description = Колишній об’єкт для виробництва та перероблювання торію було зведено до руїн.\n[lightgray]Дослідіть торій та його нескінченну кількість застосувань.\n\n Противник, який постійно шукає нападників, присутній тут у великій кількості, тому не баріться з евакуацією. -sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. -sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. -sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. -sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. -sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. -sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. -sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. -sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. -sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. -sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. -sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. settings.language = Мова settings.data = Ігрові дані @@ -535,7 +535,7 @@ settings.clearall.confirm = [scarlet]УВАГА![]\nЦе очистить усі paused = [accent]< Пауза> clear = Очистити banned = [scarlet]Заблоковано -unplaceable.sectorcaptured = [scarlet]Requires captured sector +unplaceable.sectorcaptured = [scarlet]Вимагає захопленого сектору yes = Так no = Ні info.title = Інформація @@ -581,8 +581,8 @@ blocks.reload = Постріли/секунду blocks.ammo = Боєприпаси bar.drilltierreq = Потребується кращий бур -bar.noresources = Missing Resources -bar.corereq = Core Base Required +bar.noresources = Відсутні ресурси +bar.corereq = Необхідне основне ядро bar.drillspeed = Швидкість буріння: {0} за с. bar.pumpspeed = Швидкість викачування: {0} за с. bar.efficiency = Ефективність: {0}% @@ -593,7 +593,7 @@ bar.poweroutput = Вихідна енергія: {0} bar.items = Предмети: {0} bar.capacity = Місткість: {0} bar.unitcap = {0} {1}/{2} -bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled] +bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[одиниця вимкнена] bar.liquid = Рідина bar.heat = Нагрівання bar.power = Енергія @@ -627,6 +627,7 @@ unit.percent = % unit.items = предм. unit.thousands = тис unit.millions = млн +unit.billions = млрд category.general = Загальне category.power = Енергія category.liquids = Рідини @@ -641,7 +642,7 @@ setting.linear.name = Лінійна фільтрація setting.hints.name = Підказки setting.flow.name = Показувати темп швидкості ресурсів setting.buildautopause.name = Автоматичне призупинення будування -setting.mapcenter.name = Auto Center Map To Player +setting.mapcenter.name = Автоматичне центрування мапи на гравця setting.animatedwater.name = Анімаційні рідини setting.animatedshields.name = Анімаційні щити setting.antialias.name = Згладжування[lightgray] (потребує перезапуску)[] @@ -674,12 +675,12 @@ setting.milliseconds = {0} мілісекунд setting.fullscreen.name = Повноекранний режим setting.borderlesswindow.name = Вікно без полів[lightgray] (може потребувати перезапуску) setting.fps.name = Показувати FPS і затримку до сервера -setting.smoothcamera.name = Smooth Camera +setting.smoothcamera.name = Гладка камера setting.blockselectkeys.name = Показувати клавіші вибору блока setting.vsync.name = Вертикальна синхронізація setting.pixelate.name = Пікселізація setting.minimap.name = Показувати мінімапу -setting.coreitems.name = Display Core Items (WIP) +setting.coreitems.name = Показувати предмети в ядрі (в роботі) setting.position.name = Показувати координати гравця setting.musicvol.name = Гучність музики setting.atmosphere.name = Показувати планетарну атмосферу @@ -705,13 +706,13 @@ keybinds.mobile = [scarlet]Більшість прив’язаних клаві category.general.name = Загальне category.view.name = Перегляд category.multiplayer.name = Мережева гра -category.blocks.name = Block Select +category.blocks.name = Вибір блока command.attack = Атака command.rally = Точка збору command.retreat = Відступити placement.blockselectkeys = \n[lightgray]Ключ: [{0}, -keybind.respawn.name = Respawn -keybind.control.name = Control Unit +keybind.respawn.name = Відродження +keybind.control.name = Контролювання одиниці keybind.clear_building.name = Очистити план будування keybind.press = Натисніть клавішу… keybind.press.axis = Натисніть клавішу… @@ -784,7 +785,7 @@ rules.waves = Хвилі rules.attack = Режим атаки rules.enemyCheat = Нескінченні ресурси для червоної команди ШІ rules.blockhealthmultiplier = Множник здоров’я блоків -rules.blockdamagemultiplier = Block Damage Multiplier +rules.blockdamagemultiplier = Множник шкоди блоків rules.unitbuildspeedmultiplier = Множник швидкості виробництва бойових одиниць rules.unithealthmultiplier = Множник здоров’я бойових одиниць rules.unitdamagemultiplier = Множник шкоди бойових одиниць @@ -795,13 +796,13 @@ rules.buildspeedmultiplier = Множник швидкості будуванн rules.deconstructrefundmultiplier = Множник відшкодування при демонтажі rules.waitForWaveToEnd = Хвилі чекають на завершення попередньої rules.dropzoneradius = Радіус зони висадки:[lightgray] (у плитках) -rules.unitammo = Units Require Ammo +rules.unitammo = Бойові одиниці потребують боєприпасів rules.title.waves = Хвилі rules.title.resourcesbuilding = Ресурси & будування rules.title.enemy = Противники rules.title.unit = Бойові одиниці rules.title.experimental = Експериментальне -rules.title.environment = Environment +rules.title.environment = Середовище rules.lighting = Світлотінь rules.ambientlight = Навколишнє світло rules.solarpowermultiplier = Множник сонячної енергії @@ -841,37 +842,36 @@ unit.minespeed = [lightgray]Швидкість видобутку: {0} % unit.minepower = [lightgray]Потужність видобутку: {0} unit.ability = [lightgray]Здібність: {0} unit.buildspeed = [lightgray]Швидкість будування: {0} % - liquid.heatcapacity = [lightgray]Теплоємність: {0} liquid.viscosity = [lightgray]В’язкість: {0} liquid.temperature = [lightgray]Температура: {0} unit.dagger.name = Кинджал -unit.mace.name = Mace +unit.mace.name = Булава unit.fortress.name = Фортеця -unit.nova.name = Nova -unit.pulsar.name = Pulsar -unit.quasar.name = Quasar +unit.nova.name = Нова +unit.pulsar.name = Пульсар +unit.quasar.name = Квазар unit.crawler.name = Камікадзе -unit.atrax.name = Atrax -unit.spiroct.name = Spiroct -unit.arkyid.name = Arkyid -unit.flare.name = Flare -unit.horizon.name = Horizon -unit.zenith.name = Zenith -unit.antumbra.name = Antumbra -unit.eclipse.name = Eclipse -unit.mono.name = Mono -unit.poly.name = Poly -unit.mega.name = Mega -unit.risso.name = Risso -unit.minke.name = Minke -unit.bryde.name = Bryde -unit.alpha.name = Alpha -unit.beta.name = Beta -unit.gamma.name = Gamma +unit.atrax.name = Атракс +unit.spiroct.name = Павучник +unit.arkyid.name = Аркиїд +unit.flare.name = Фальшфейєр +unit.horizon.name = Горизонт +unit.zenith.name = Зеніт +unit.antumbra.name = Тіньовик +unit.eclipse.name = Затьмарник +unit.mono.name = Єдинак +unit.poly.name = Багацько +unit.mega.name = Мега +unit.risso.name = Грампус +unit.minke.name = Смугач малий +unit.bryde.name = Смугач Брайда +unit.alpha.name = Альфа +unit.beta.name = Бета +unit.gamma.name = Гамма -block.parallax.name = Parallax +block.parallax.name = Паралакс block.cliff.name = Скеля block.sand-boulder.name = Пісочний валун block.grass.name = Трава @@ -1054,19 +1054,19 @@ block.meltdown.name = Розплавлювач block.container.name = Сховище block.launch-pad.name = Стартовий майданчик block.launch-pad-large.name = Великий стартовий майданчик -block.segment.name = Segment -block.ground-factory.name = Ground Factory -block.air-factory.name = Air Factory -block.naval-factory.name = Naval Factory -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-router.name = Payload Router -block.disassembler.name = Disassembler -block.silicon-crucible.name = Silicon Crucible -block.large-overdrive-projector.name = Large Overdrive Projector +block.segment.name = Сегмент +block.ground-factory.name = Наземний завод +block.air-factory.name = Повітряний завод +block.naval-factory.name = Морський завод +block.additive-reconstructor.name = Додавальний реконструктор +block.multiplicative-reconstructor.name = Примножувальний реконструктор +block.exponential-reconstructor.name = Експоненційний реконструктор +block.tetrative-reconstructor.name = Тетративний реконструктор +block.payload-conveyor.name = Вантажний конвеєр +block.payload-router.name = Розвантажувальний маршрутизатор +block.disassembler.name = Розбирач +block.silicon-crucible.name = Кремнієвий тигель +block.large-overdrive-projector.name = Великий прискорювач team.blue.name = Синя team.crux.name = Червона team.sharded.name = Помаранчева @@ -1136,10 +1136,10 @@ block.pulverizer.description = Подрібнює брухт у дрібний block.coal-centrifuge.description = Нафта перетворюється у шматки вугілля. block.incinerator.description = Випаровує будь-який зайвий предмет або рідину, які він отримує. block.power-void.description = Знищує будь-яку енергію, до якої він під’єднаний. Тільки пісочниця. -block.power-source.description = Нескінченно виводить енергію. Тільки пісочниця. -block.item-source.description = Нескінченно виводить предмети. Тільки пісочниця. +block.power-source.description = Постійно створює енергію. Тільки пісочниця. +block.item-source.description = Постійно створює предмети. Тільки пісочниця. block.item-void.description = Знищує будь-які предмети. Тільки пісочниця. -block.liquid-source.description = Нескінченно виводить рідини. Тільки пісочниця. +block.liquid-source.description = Постійно створює рідини. Тільки пісочниця. block.liquid-void.description = Видаляє будь-які рідини. Тільки пісочниця. block.copper-wall.description = Дешевий захисний блок.\nКорисний для захисту ядра та башт у перші кілька хвиль. block.copper-wall-large.description = Дешевий захисний блок.\nКорисний для захисту ядра та башт у перші кілька хвиль.\nЗаймає декілька плиток. @@ -1199,7 +1199,7 @@ block.solar-panel.description = Забезпечує невелику кільк block.solar-panel-large.description = Значно ефективніша версія стандартної сонячної панелі. block.thorium-reactor.description = Виробляє значну кількість енергії з торію. Вимагає постійного охолодження. Сильно вибухне, якщо подаватиметься недостатня кількість теплоносія. Вихідна потужність залежить від заповненості, базова потужність генерується на повній місткості. block.impact-reactor.description = Удосконалений генератор, здатний створювати величезну кількість енергії при максимальній ефективності. Для запуску процесу потрібно значні обсяги енергії. -block.mechanical-drill.description = Недорогий бур. Якщо розмістити на доречних плитках, то буде виводити предмети повільним темпом нескінченно. Придатний лише для базових ресурсів. +block.mechanical-drill.description = Недорогий бур. Якщо розмістити на доречних плитках, то виводитиме предмети постійно, але повільно. Придатний лише для базових ресурсів. block.pneumatic-drill.description = Поліпшений бур, здатний добувати титан. Видобуває швидше, ніж механічний бур. block.laser-drill.description = Дозволяє виконувати буріння ще швидше за допомогою лазерної технології, але вимагає енергії. Придатний до видобутку торію. block.blast-drill.description = Найкращий бур. Потрібна велика кількість енергії. @@ -1215,10 +1215,10 @@ block.unloader.description = Вивантажує предмети з блока block.launch-pad.description = Запускає партії предметів без необхідності запуску ядра. Стартовий майданчик дозволяє вам запускати ресурси кожні n секунд без необхідності завершувати гру. Просто подайте у нього ресурси та забезпечте енергією. block.launch-pad-large.description = Поліпшена версія стартового майданчика. Зберігає більше предметів. Запускається частіше. block.duo.description = Мала і дешева башта. Корисна проти наземних одиниць. -block.scatter.description = Основна протиповітряна башта. Розпилює грудочки свинцю, брухту чи метаскла у противників. +block.scatter.description = Основна протиповітряна башта. Вистрілює грудочки свинцю, брухту чи метаскла у противників. block.scorch.description = Підпалює будь-яких наземних противників поблизу. Високоефективна на близькій відстані. block.hail.description = Невелика артилерійська башта з далеким радіусом дії. -block.wave.description = Башта середнього розміру. Стріляє потоками рідини в противників. Автоматично гасить пожежі при постачанні води. +block.wave.description = Башта середнього розміру. Випускає потоками рідини в противників. Автоматично гасить пожежі при постачанні води. block.lancer.description = Лазерна башта середнього розміру, яка атакує наземних противників. Заряджає і вистрілює потужні пучки енергії. block.arc.description = Невелика електрична башта з малим радіусом дії. Стріляє дугами електрики у противників. block.swarmer.description = Ракетна башта середнього розміру. Атакує як повітряних, так і наземних противників. Запускає ракети, які летять у противників самостійно. @@ -1229,4 +1229,4 @@ block.cyclone.description = Велика протиповітряна та пр block.spectre.description = Масивна двоствольна гармата. Стріляє великими бронебійними кулями в повітряні та наземні цілі. block.meltdown.description = Масивна лазерна гармата. Заряджає і стріляє лазерним променем у найближчих противників. Для роботи потрібен теплоносій. block.repair-point.description = Безперервно ремонтує найближчу пошкоджену бойову одиницю. -block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted. +block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних. 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/fonts/font.woff b/core/assets/fonts/font.woff index a494ce2f71..7960523d0f 100644 Binary files a/core/assets/fonts/font.woff and b/core/assets/fonts/font.woff differ diff --git a/core/assets/fonts/icon.ttf b/core/assets/fonts/icon.ttf index 0cde9685b5..4b61658e65 100644 Binary files a/core/assets/fonts/icon.ttf and b/core/assets/fonts/icon.ttf differ diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index e3f0ff09f8..278b00dc51 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -283,3 +283,7 @@ 63461=logic-processor|block-logic-processor-medium 63460=micro-processor|block-micro-processor-medium 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 83debe54dd..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 3d8073e48e..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" @@ -21,5 +22,15 @@ const extend = function(classType, params){ return new JavaAdapter(classType, params) } +//these are not sctrictly necessary, but are kept for edge cases +const run = method => new java.lang.Runnable(){run: method} +const boolf = method => new Boolf(){get: method} +const boolp = method => new Boolp(){get: method} +const floatf = method => new Floatf(){get: method} +const floatp = method => new Floatp(){get: method} +const cons = method => new Cons(){get: method} +const prov = method => new Prov(){get: method} +const func = method => new Func(){get: method} + const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer})) Call = Packages.mindustry.gen.Call diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js index daeaa17942..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" @@ -23,6 +24,16 @@ const extend = function(classType, params){ return new JavaAdapter(classType, params) } +//these are not sctrictly necessary, but are kept for edge cases +const run = method => new java.lang.Runnable(){run: method} +const boolf = method => new Boolf(){get: method} +const boolp = method => new Boolp(){get: method} +const floatf = method => new Floatf(){get: method} +const floatp = method => new Floatp(){get: method} +const cons = method => new Cons(){get: method} +const prov = method => new Prov(){get: method} +const func = method => new Func(){get: method} + const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer})) Call = Packages.mindustry.gen.Call @@ -30,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) @@ -82,6 +94,7 @@ importPackage(Packages.mindustry.world.blocks.environment) importPackage(Packages.mindustry.world.blocks.experimental) importPackage(Packages.mindustry.world.blocks.legacy) importPackage(Packages.mindustry.world.blocks.liquid) +importPackage(Packages.mindustry.world.blocks.logic) importPackage(Packages.mindustry.world.blocks.payloads) importPackage(Packages.mindustry.world.blocks.power) importPackage(Packages.mindustry.world.blocks.production) @@ -113,14 +126,12 @@ const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent const BuildinghangeEvent = Packages.mindustry.game.EventType.BuildinghangeEvent const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent -const TapConfigEvent = Packages.mindustry.game.EventType.TapConfigEvent -const TapEvent = Packages.mindustry.game.EventType.TapEvent +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 const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent diff --git a/core/assets/sounds/press.ogg b/core/assets/sounds/press.ogg index 419cd38847..7085dc00a0 100644 Binary files a/core/assets/sounds/press.ogg and b/core/assets/sounds/press.ogg differ diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index f790ea4ac8..b93360e858 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 2c57ed0f79..0410a7e3fe 100644 --- a/core/assets/sprites/fallback/sprites.atlas +++ b/core/assets/sprites/fallback/sprites.atlas @@ -6,427 +6,399 @@ filter: nearest,nearest repeat: none white-tree rotate: false - xy: 323, 1720 + xy: 1, 389 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 white-tree-dead rotate: false - xy: 645, 1720 + xy: 1322, 1705 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 -core-nucleus +white-tree-dead-shadow rotate: false - xy: 1873, 364 - size: 160, 160 - orig: 160, 160 + xy: 1, 1677 + size: 353, 348 + orig: 353, 348 + offset: 0, 0 + index: -1 +white-tree-shadow + rotate: false + xy: 1, 1677 + size: 353, 348 + orig: 353, 348 offset: 0, 0 index: -1 exponential-reconstructor rotate: false - xy: 323, 204 + xy: 1387, 479 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 exponential-reconstructor-top rotate: false - xy: 549, 204 + xy: 1387, 253 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-in-7 rotate: false - xy: 775, 10 + xy: 549, 33 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-in-9 rotate: false - xy: 323, 1140 + xy: 613, 835 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 factory-out-7 rotate: false - xy: 1001, 462 + xy: 1613, 963 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-out-9 rotate: false - xy: 613, 1140 + xy: 903, 1125 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 tetrative-reconstructor rotate: false - xy: 1193, 1172 + xy: 1193, 1415 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 tetrative-reconstructor-top rotate: false - xy: 1483, 1172 + xy: 613, 545 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 circle-shadow rotate: false - xy: 323, 1 + xy: 1387, 50 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 antumbra-wreck0 rotate: false - xy: 1437, 446 + xy: 1613, 479 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-wreck1 rotate: false - xy: 1655, 446 + xy: 1831, 479 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-wreck2 rotate: false - xy: 1437, 204 + xy: 1613, 237 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 -block-core-nucleus-full - rotate: false - xy: 1837, 1492 - size: 160, 160 - orig: 160, 160 - offset: 0, 0 - index: -1 block-exponential-reconstructor-full rotate: false - xy: 839, 688 + xy: 1161, 899 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-full - rotate: false - xy: 1873, 526 - size: 160, 160 - orig: 160, 160 - offset: 0, 0 - index: -1 block-tetrative-reconstructor-full rotate: false - xy: 967, 1752 + xy: 1, 99 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-6-0 rotate: false - xy: 526, 10 + xy: 1590, 43 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-1 rotate: false - xy: 1001, 26 + xy: 1784, 43 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-2 rotate: false - xy: 1195, 26 + xy: 775, 97 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-3 rotate: false - xy: 1837, 1848 + xy: 969, 27 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-4 rotate: false - xy: 1837, 1654 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 -cracks-6-5 - rotate: false - xy: 1389, 10 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 -cracks-6-6 - rotate: false - xy: 1583, 10 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 -cracks-6-7 - rotate: false - xy: 1777, 10 + xy: 1163, 27 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-7-0 rotate: false - xy: 323, 656 + xy: 1161, 673 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-1 rotate: false - xy: 549, 656 + xy: 1161, 447 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-2 rotate: false - xy: 1065, 688 + xy: 1161, 221 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-3 rotate: false - xy: 1291, 688 + xy: 1451, 1189 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-4 rotate: false - xy: 775, 462 + xy: 1741, 1253 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-5 rotate: false - xy: 323, 430 + xy: 581, 291 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-6 rotate: false - xy: 549, 430 + xy: 1387, 931 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-7 rotate: false - xy: 775, 236 + xy: 1387, 705 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-8-0 rotate: false - xy: 1773, 1204 + xy: 903, 867 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-1 rotate: false - xy: 1773, 946 + xy: 1193, 1157 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-2 rotate: false - xy: 903, 914 + xy: 903, 609 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-3 rotate: false - xy: 323, 882 + xy: 1483, 1447 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-4 rotate: false - xy: 581, 882 + xy: 1741, 1479 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-5 rotate: false - xy: 1161, 914 + xy: 323, 259 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-6 rotate: false - xy: 1419, 914 + xy: 291, 1 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-7 rotate: false - xy: 1677, 688 + xy: 903, 351 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-9-0 rotate: false - xy: 1257, 1752 + xy: 1644, 1737 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-1 rotate: false - xy: 1547, 1752 + xy: 323, 1387 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-2 rotate: false - xy: 967, 1462 + xy: 323, 1097 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-3 rotate: false - xy: 323, 1430 + xy: 323, 807 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-4 rotate: false - xy: 613, 1430 + xy: 323, 517 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-5 rotate: false - xy: 1257, 1462 + xy: 613, 1415 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-6 rotate: false - xy: 1547, 1462 + xy: 613, 1125 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-7 rotate: false - xy: 903, 1172 + xy: 903, 1415 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 eclipse-wreck0 rotate: false - xy: 1, 1076 + xy: 1, 1033 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-wreck1 rotate: false - xy: 1, 754 + xy: 678, 1705 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-wreck2 rotate: false - xy: 1, 432 + xy: 1, 711 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 unit-antumbra-full rotate: false - xy: 1655, 204 + xy: 1831, 237 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 unit-eclipse-full rotate: false - xy: 1, 110 + xy: 1000, 1705 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 circle rotate: false - xy: 1227, 485 + xy: 1839, 1050 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 antumbra rotate: false - xy: 1001, 220 + xy: 1613, 721 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-cell rotate: false - xy: 1219, 220 + xy: 1831, 721 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 eclipse rotate: false - xy: 1, 1720 + xy: 1, 1355 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-cell rotate: false - xy: 1, 1398 + xy: 356, 1705 size: 320, 320 orig: 320, 320 offset: 0, 0 @@ -439,5634 +411,5410 @@ filter: nearest,nearest repeat: none core-silo rotate: false - xy: 1, 1560 + xy: 713, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 launch-pad rotate: false - xy: 1041, 1414 + xy: 1239, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large rotate: false - xy: 423, 914 + xy: 1657, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 launch-pad-light rotate: false - xy: 1041, 1316 + xy: 1239, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launchpod rotate: false - xy: 853, 218 + xy: 809, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 force-projector rotate: false - xy: 1759, 1622 + xy: 929, 711 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector-top rotate: false - xy: 1857, 1720 + xy: 1027, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 967, 681 + xy: 941, 243 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 1033, 681 + xy: 1007, 309 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -mender - rotate: false - xy: 1913, 46 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -mender-top - rotate: false - xy: 1947, 114 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 overdrive-dome rotate: false - xy: 1433, 1426 + xy: 1741, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-top rotate: false - xy: 1433, 1328 + xy: 1839, 1341 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 1099, 681 + xy: 941, 177 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 1165, 731 + xy: 1007, 243 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-loader rotate: false - xy: 975, 1708 + xy: 749, 1121 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader rotate: false - xy: 1171, 1708 + xy: 423, 195 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -bridge-arrow - rotate: false - xy: 1733, 302 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor - rotate: false - xy: 1733, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-bridge - rotate: false - xy: 1699, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-end - rotate: false - xy: 1665, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -center - rotate: false - xy: 1631, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 armored-conveyor-0-0 rotate: false - xy: 2015, 1162 + xy: 229, 31 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 2015, 1162 + xy: 229, 31 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 1495, 617 + xy: 929, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 1581, 506 + xy: 963, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 1855, 662 + xy: 997, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 1581, 472 + xy: 1031, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 1581, 438 + xy: 1065, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 733, 580 + xy: 1411, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 1893, 692 + xy: 1955, 281 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 1889, 658 + xy: 1955, 247 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 1623, 574 + xy: 2000, 547 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 1657, 574 + xy: 2000, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 1623, 540 + xy: 2000, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 1615, 506 + xy: 2000, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 1691, 574 + xy: 2013, 979 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 1657, 540 + xy: 1913, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 1615, 472 + xy: 1905, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 1649, 506 + xy: 1905, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 1725, 574 + xy: 1905, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 1691, 540 + xy: 1955, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 1615, 438 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-1 - rotate: false - xy: 1733, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-2 - rotate: false - xy: 1767, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-3 - rotate: false - xy: 1826, 404 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-0 - rotate: false - xy: 1826, 370 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-1 - rotate: false - xy: 1801, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-2 - rotate: false - xy: 1801, 302 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-1-3 - rotate: false - xy: 1801, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-0 - rotate: false - xy: 1801, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-1 - rotate: false - xy: 1801, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-2 - rotate: false - xy: 1801, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-2-3 - rotate: false - xy: 1801, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-0 - rotate: false - xy: 1835, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-1 - rotate: false - xy: 1835, 302 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-2 - rotate: false - xy: 1835, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-3-3 - rotate: false - xy: 1835, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-0 - rotate: false - xy: 1835, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-1 - rotate: false - xy: 1835, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-2 - rotate: false - xy: 1835, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-4-3 - rotate: false - xy: 1675, 98 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor - rotate: false - xy: 1989, 462 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-0 - rotate: false - xy: 1962, 428 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-1 - rotate: false - xy: 1962, 394 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-2 - rotate: false - xy: 1996, 428 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-edge - rotate: false - xy: 1996, 394 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plastanium-conveyor-stack - rotate: false - xy: 1971, 360 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cross - rotate: false - xy: 1777, 64 + xy: 2000, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 787, 284 + xy: 751, 393 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -inverted-sorter +mass-driver-base rotate: false - xy: 1437, 848 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -junction - rotate: false - xy: 1903, 318 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -mass-conveyor - rotate: false - xy: 1041, 1218 + xy: 1027, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -mass-conveyor-edge +payload-conveyor rotate: false - xy: 1139, 1218 + xy: 1937, 1341 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -mass-conveyor-top +payload-conveyor-edge rotate: false - xy: 1237, 1218 + 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: 1237, 1218 + xy: 1937, 1243 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -mass-driver-base - rotate: false - xy: 1017, 1120 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -overflow-gate - rotate: false - xy: 1913, 12 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 payload-router rotate: false - xy: 1531, 1426 + xy: 1643, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-edge rotate: false - xy: 1433, 1230 + xy: 1741, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-over rotate: false - xy: 1531, 1328 + xy: 1839, 1145 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -phase-conveyor - rotate: false - xy: 1955, 530 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-arrow - rotate: false - xy: 1955, 496 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-bridge - rotate: false - xy: 1989, 530 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conveyor-end - rotate: false - xy: 1955, 462 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -router - rotate: false - xy: 2015, 54 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 blast-drill rotate: false - xy: 1, 400 + xy: 305, 1437 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 1497, 1916 + xy: 305, 1307 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 1, 270 + xy: 305, 1177 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 1627, 1916 + xy: 305, 1047 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 787, 86 + xy: 677, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 787, 86 + xy: 677, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 1857, 1524 + xy: 1153, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rim rotate: false - xy: 845, 1220 + xy: 929, 613 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 943, 1414 + xy: 1027, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 943, 1316 + xy: 1251, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 967, 747 + xy: 949, 375 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 1033, 747 + xy: 1015, 375 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 1099, 747 + xy: 941, 309 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 oil-extractor rotate: false - xy: 1335, 1414 + xy: 1337, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-liquid rotate: false - xy: 1335, 1316 + xy: 1447, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-rotator rotate: false - xy: 1335, 1218 + xy: 1545, 1301 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-top rotate: false - xy: 1311, 1120 + xy: 1643, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 1429, 615 + xy: 1063, 45 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 1941, 1090 + xy: 1073, 309 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 1969, 1024 + xy: 1073, 243 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 1249, 533 + xy: 1881, 947 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 1117, 335 + xy: 1815, 815 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 1183, 401 + xy: 1881, 881 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 1249, 467 + xy: 1947, 947 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 1649, 438 + xy: 1915, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 1923, 658 + xy: 1949, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 1631, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-liquid - rotate: false - xy: 1699, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -message - rotate: false - xy: 1947, 80 + xy: 1761, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 place-arrow rotate: false - xy: 1531, 1230 + xy: 1937, 1145 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -bridge-conduit - rotate: false - xy: 1699, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-arrow - rotate: false - xy: 1665, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conveyor-arrow - rotate: false - xy: 1665, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-bridge - rotate: false - xy: 1631, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -bridge-conduit-end - rotate: false - xy: 1767, 302 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom - rotate: false - xy: 1699, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-0 - rotate: false - xy: 1665, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-1 - rotate: false - xy: 1767, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-2 - rotate: false - xy: 1733, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-3 - rotate: false - xy: 1733, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-bottom-4 - rotate: false - xy: 1733, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-0 - rotate: false - xy: 1665, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-1 - rotate: false - xy: 1767, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-2 - rotate: false - xy: 1733, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-3 - rotate: false - xy: 1699, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-3 - rotate: false - xy: 1699, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conduit-top-4 - rotate: false - xy: 1767, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-junction - rotate: false - xy: 1903, 216 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-overflow-gate - rotate: false - xy: 1921, 522 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-overflow-gate-top - rotate: false - xy: 1921, 488 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-bottom - rotate: false - xy: 1921, 454 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-liquid - rotate: false - xy: 1928, 420 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-router-top - rotate: false - xy: 1928, 386 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-tank-bottom rotate: false - xy: 1139, 1414 + xy: 537, 594 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-liquid rotate: false - xy: 1139, 1316 + xy: 635, 533 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-top rotate: false - xy: 1237, 1414 + xy: 733, 533 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -mechanical-pump - rotate: false - xy: 1937, 148 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -mechanical-pump-liquid - rotate: false - xy: 1913, 114 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rotary-pump-liquid - rotate: false - xy: 1913, 114 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -thermal-pump-liquid - rotate: false - xy: 1913, 114 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit - rotate: false - xy: 1947, 12 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-arrow - rotate: false - xy: 1929, 564 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-bridge - rotate: false - xy: 1963, 564 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-conduit-end - rotate: false - xy: 1997, 564 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-cap - rotate: false - xy: 1971, 292 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-0 - rotate: false - xy: 1971, 258 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-1 - rotate: false - xy: 1971, 224 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-2 - rotate: false - xy: 1971, 190 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-3 - rotate: false - xy: 1971, 156 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plated-conduit-top-4 - rotate: false - xy: 2005, 360 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-0 - rotate: false - xy: 2005, 224 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-1 - rotate: false - xy: 2005, 190 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-2 - rotate: false - xy: 2005, 156 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulse-conduit-top-4 - rotate: false - xy: 1981, 122 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 rotary-pump rotate: false - xy: 919, 483 + xy: 1139, 150 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 919, 1022 + xy: 1321, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -data-processor-top +hyper-processor rotate: false - xy: 1367, 1622 + xy: 831, 631 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-display rotate: false - xy: 1237, 1316 + xy: 831, 533 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor rotate: false - xy: 853, 152 + xy: 743, 129 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -logic-processor-3 - rotate: false - xy: 943, 1218 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -micro-processor - rotate: false - xy: 1947, 46 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 battery rotate: false - xy: 1649, 472 + xy: 1983, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large rotate: false - xy: 623, 378 + xy: 1867, 1439 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 623, 280 + xy: 663, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-top rotate: false - xy: 1683, 506 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -combustion-generator - rotate: false - xy: 1767, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -combustion-generator-top - rotate: false - xy: 1733, 234 + xy: 1813, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator rotate: false - xy: 1465, 1720 + xy: 733, 827 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-liquid rotate: false - xy: 1367, 1524 + xy: 831, 925 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-top rotate: false - xy: 1465, 1622 + xy: 733, 729 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -diode - rotate: false - xy: 1811, 98 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -diode-arrow - rotate: false - xy: 1777, 30 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -illuminator - rotate: false - xy: 1845, 30 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -illuminator-top - rotate: false - xy: 1395, 882 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 impact-reactor rotate: false - xy: 261, 394 + xy: 747, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-bottom rotate: false - xy: 261, 264 + xy: 877, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-light rotate: false - xy: 261, 134 + xy: 1007, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-0 rotate: false - xy: 261, 4 + xy: 1137, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-1 rotate: false - xy: 455, 1304 + xy: 1267, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-2 rotate: false - xy: 447, 1174 + xy: 1397, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-3 rotate: false - xy: 435, 1044 + xy: 1527, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -power-node - rotate: false - xy: 2005, 326 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 power-node-large rotate: false - xy: 869, 615 + xy: 1073, 177 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -power-source - rotate: false - xy: 2005, 292 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -power-void - rotate: false - xy: 2005, 258 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 rtg-generator rotate: false - xy: 985, 549 + xy: 1139, 84 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -rtg-generator-top - rotate: false - xy: 1981, 20 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 solar-panel-large rotate: false - xy: 1923, 1230 + xy: 1223, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 surge-tower rotate: false - xy: 1051, 153 + xy: 1683, 680 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 1051, 21 + xy: 1749, 944 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-reactor rotate: false - xy: 1017, 1022 + xy: 1223, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-lights rotate: false - xy: 1115, 1022 + xy: 1321, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-top rotate: false - xy: 1213, 1022 + xy: 1223, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 turbine-generator rotate: false - xy: 1265, 599 + xy: 1749, 746 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-cap rotate: false - xy: 1117, 533 + xy: 1749, 680 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-top rotate: false - xy: 1117, 467 + xy: 1749, 614 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-turbine0 rotate: false - xy: 1183, 533 + xy: 1749, 548 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-turbine1 rotate: false - xy: 1117, 401 + xy: 1815, 947 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 alloy-smelter rotate: false - xy: 635, 574 + xy: 1671, 1415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 623, 476 + xy: 1769, 1439 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-mixer rotate: false - xy: 1485, 901 + xy: 1333, 447 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-forge rotate: false - xy: 909, 1806 + xy: 957, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 coal-centrifuge rotate: false - xy: 1371, 747 + xy: 1419, 739 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 737, 614 + xy: 1465, 421 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 803, 614 + xy: 1465, 355 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 787, 548 + xy: 1531, 421 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 787, 482 + xy: 1531, 355 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 787, 416 + xy: 667, 15 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 787, 350 + xy: 685, 393 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 disassembler rotate: false - xy: 1563, 1720 + xy: 831, 827 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-liquid rotate: false - xy: 1465, 1524 + xy: 831, 729 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-spinner rotate: false - xy: 1563, 1622 + xy: 941, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 853, 548 + xy: 677, 195 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -incinerator - rotate: false - xy: 1429, 882 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-source - rotate: false - xy: 1991, 598 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-void - rotate: false - xy: 1903, 352 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 kiln rotate: false - xy: 853, 482 + xy: 743, 261 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 853, 416 + xy: 809, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 853, 416 + xy: 809, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -liquid-source - rotate: false - xy: 1937, 284 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-void - rotate: false - xy: 1937, 250 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -melter - rotate: false - xy: 1913, 80 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 multi-press rotate: false - xy: 1115, 1120 + xy: 1349, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 1165, 665 + xy: 1007, 111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 1231, 665 + xy: 733, 63 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 1297, 665 + xy: 799, 63 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 1363, 681 + xy: 865, 47 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 1363, 615 + xy: 931, 45 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -pulverizer - rotate: false - xy: 2015, 122 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulverizer-rotator - rotate: false - xy: 1981, 88 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 pyratite-mixer rotate: false - xy: 1001, 615 + xy: 1139, 348 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 985, 285 + xy: 1617, 750 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1051, 351 + xy: 1551, 618 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 919, 153 + xy: 1617, 684 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-crucible rotate: false - xy: 1923, 1426 + xy: 1223, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-crucible-top rotate: false - xy: 1923, 1328 + xy: 1321, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 985, 219 + xy: 1551, 552 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 1051, 285 + xy: 1617, 618 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 919, 87 + xy: 1617, 552 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 985, 153 + xy: 1683, 944 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 1051, 219 + xy: 1683, 878 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 919, 21 + xy: 1683, 812 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 985, 87 + xy: 1683, 746 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rock1 rotate: false - xy: 1545, 784 + xy: 1663, 71 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rock2 rotate: false - xy: 1595, 766 + xy: 1713, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -sand-boulder1 - rotate: false - xy: 2015, 20 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 snowrock1 rotate: false - xy: 1795, 734 + xy: 1713, 74 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock2 rotate: false - xy: 1845, 734 + xy: 1763, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 1539, 424 + xy: 1345, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 1581, 582 + xy: 1345, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 1581, 540 + xy: 149, 23 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 container rotate: false - xy: 721, 442 + xy: 1419, 607 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation rotate: false - xy: 131, 350 + xy: 617, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team rotate: false - xy: 131, 220 + xy: 747, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 +core-nucleus + rotate: false + xy: 389, 1887 + size: 160, 160 + orig: 160, 160 + offset: 0, 0 + index: -1 core-nucleus-team rotate: false - xy: 1, 1884 + xy: 1, 1337 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard rotate: false - xy: 1171, 1610 + xy: 423, 97 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team rotate: false - xy: 1171, 1512 + xy: 549, 1084 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 vault rotate: false - xy: 937, 924 + xy: 1321, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 2015, 1196 + xy: 2001, 1799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 1759, 574 + xy: 1847, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 1371, 813 + xy: 1267, 381 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 623, 182 + xy: 761, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 1, 140 + xy: 305, 917 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 hail-heat rotate: false - xy: 1687, 692 + xy: 2007, 863 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 853, 284 + xy: 743, 195 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 meltdown-heat rotate: false - xy: 403, 654 + xy: 1917, 1667 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ripple-heat rotate: false - xy: 1629, 1328 + xy: 1125, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 985, 483 + xy: 1195, 18 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 1051, 549 + xy: 1551, 948 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 919, 351 + xy: 1551, 882 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 1183, 335 + xy: 1881, 815 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 additive-reconstructor rotate: false - xy: 737, 778 + xy: 1377, 1399 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 additive-reconstructor-top rotate: false - xy: 737, 680 + xy: 1475, 1399 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 839, 880 + xy: 1573, 1415 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 command-center rotate: false - xy: 721, 508 + xy: 1419, 673 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 factory-in-3 rotate: false - xy: 1563, 1524 + xy: 1039, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-in-5 rotate: false - xy: 325, 1560 + xy: 1, 365 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-out-3 rotate: false - xy: 1661, 1526 + xy: 1027, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-out-5 rotate: false - xy: 487, 1722 + xy: 1523, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-top-3 rotate: false - xy: 1759, 1720 + xy: 1027, 807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 1759, 1524 + xy: 733, 631 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multiplicative-reconstructor rotate: false - xy: 649, 1884 + xy: 1, 203 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 multiplicative-reconstructor-top rotate: false - xy: 1, 1074 + xy: 1685, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 naval-factory rotate: false - xy: 1213, 1120 + xy: 1337, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rally-point rotate: false - xy: 1067, 615 + xy: 1139, 282 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -repair-point-base - rotate: false - xy: 1981, 54 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 resupply-point rotate: false - xy: 919, 549 + xy: 1139, 216 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -copper-wall - rotate: false - xy: 1675, 64 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 copper-wall-large rotate: false - xy: 721, 376 + xy: 1419, 541 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -door - rotate: false - xy: 1811, 64 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 door-large rotate: false - xy: 787, 218 + xy: 817, 393 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 787, 152 + xy: 677, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -door-open - rotate: false - xy: 1811, 30 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -phase-wall - rotate: false - xy: 1989, 496 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 phase-wall-large rotate: false - xy: 1297, 731 + xy: 941, 111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -plastanium-wall - rotate: false - xy: 1971, 326 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 plastanium-wall-large rotate: false - xy: 1429, 681 + xy: 997, 45 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-gigantic rotate: false - xy: 617, 1466 + xy: 877, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge2 rotate: false - xy: 1825, 1328 + xy: 1223, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 1825, 1230 + xy: 1333, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 1051, 483 + xy: 1551, 816 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 919, 285 + xy: 1617, 882 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 985, 351 + xy: 1551, 750 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 1051, 417 + xy: 1617, 816 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 985, 21 + xy: 1683, 614 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 1133, 599 + xy: 1749, 878 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster rotate: false - xy: 585, 1206 + xy: 1137, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 1199, 599 + xy: 1749, 812 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 1177, 173 + xy: 1829, 378 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 1177, 119 + xy: 1597, 317 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 circle-end rotate: false - xy: 533, 713 + xy: 549, 1182 size: 100, 199 orig: 100, 199 offset: 0, 0 index: -1 error rotate: false - xy: 1375, 17 + xy: 1513, 255 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser-end rotate: false - xy: 1721, 1082 + xy: 603, 229 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 1795, 1156 + xy: 603, 155 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 missile rotate: false - xy: 1441, 229 + xy: 2005, 783 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 1488, 327 + xy: 891, 9 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 parallax-laser-end rotate: false - xy: 1795, 1082 + xy: 603, 81 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 particle rotate: false - xy: 1539, 466 + xy: 1303, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 shell rotate: false - xy: 1531, 77 + xy: 1373, 93 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 1855, 696 + xy: 191, 27 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 alpha-wreck0 rotate: false - xy: 1231, 177 + xy: 1265, 331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck1 rotate: false - xy: 1231, 127 + xy: 1315, 331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck2 rotate: false - xy: 1231, 77 + xy: 1365, 331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 arc rotate: false - xy: 843, 1528 + xy: 107, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arkyid-wreck0 rotate: false - xy: 1237, 1916 + xy: 163, 325 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck1 rotate: false - xy: 1, 530 + xy: 163, 195 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck2 rotate: false - xy: 1367, 1916 + xy: 155, 65 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 atrax-wreck0 rotate: false - xy: 1215, 879 + xy: 1525, 1081 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck1 rotate: false - xy: 1305, 879 + xy: 1431, 1015 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck2 rotate: false - xy: 1027, 813 + xy: 1521, 1015 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 beta-wreck0 rotate: false - xy: 1281, 127 + xy: 1313, 281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck1 rotate: false - xy: 1281, 77 + xy: 1263, 181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck2 rotate: false - xy: 1275, 27 + xy: 1313, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-additive-reconstructor-full rotate: false - xy: 623, 84 + xy: 859, 1317 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-air-factory-full rotate: false - xy: 779, 1660 + xy: 651, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-arc-full rotate: false - xy: 1725, 540 + xy: 1881, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-full rotate: false - xy: 1757, 1916 + xy: 305, 787 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-char-full rotate: false - xy: 1683, 472 + xy: 1983, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 1717, 506 + xy: 1881, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 1793, 574 + xy: 1915, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 1759, 540 + xy: 1387, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 1759, 540 + xy: 1387, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-full rotate: false - xy: 1, 10 + xy: 305, 657 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 +block-core-nucleus-full + rotate: false + xy: 1, 1499 + size: 160, 160 + orig: 160, 160 + offset: 0, 0 + index: -1 block-core-shard-full rotate: false - xy: 779, 1562 + xy: 749, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 1683, 438 + xy: 1387, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 1573, 1016 + xy: 1333, 381 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 1639, 1016 + xy: 1399, 447 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 811, 1806 + xy: 847, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 1717, 472 + xy: 1421, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 1751, 506 + xy: 1421, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-full rotate: false - xy: 1793, 540 + xy: 1455, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 1717, 438 + xy: 1489, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-fuse-full rotate: false - xy: 1007, 1806 + xy: 1055, 1297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-grass-full rotate: false - xy: 1751, 472 + xy: 1455, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ground-factory-full rotate: false - xy: 1105, 1806 + xy: 945, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 1785, 506 + xy: 1523, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 1751, 438 + xy: 1489, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 1785, 472 + xy: 1523, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 1785, 438 + xy: 1557, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 1827, 574 + xy: 1557, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 1827, 540 + xy: 1591, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 1819, 506 + xy: 1625, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-full rotate: false - xy: 1887, 1916 + xy: 293, 527 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 1705, 1016 + xy: 1399, 381 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-laser-drill-full rotate: false - xy: 877, 1708 + xy: 1043, 1199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 1819, 472 + xy: 1939, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-full rotate: false - xy: 877, 1610 + xy: 651, 1121 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 1819, 438 + xy: 1939, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-conveyor-full - rotate: false - xy: 975, 1610 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-icon - rotate: false - xy: 975, 1610 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 block-mass-driver-full rotate: false - xy: 1073, 1708 + xy: 847, 1121 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 1771, 1016 + xy: 1705, 1076 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 163, 1000 + xy: 293, 397 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 1927, 692 + xy: 1939, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 1961, 700 + xy: 1949, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +block-multiplicative-reconstructor-full + rotate: false + xy: 195, 1693 + size: 160, 160 + orig: 160, 160 + offset: 0, 0 + index: -1 block-naval-factory-full rotate: false - xy: 1073, 1610 + xy: 945, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-oil-extractor-full rotate: false - xy: 877, 1512 + xy: 1043, 1101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-ore-coal-full rotate: false - xy: 1995, 700 + xy: 1663, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 1855, 628 + xy: 1697, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 1889, 624 + xy: 1989, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 1923, 624 + xy: 1989, 275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 1588, 404 + xy: 1989, 241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 1588, 370 + xy: 1989, 207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-parallax-full rotate: false - xy: 1563, 950 + 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: 975, 1512 + xy: 423, 489 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon rotate: false - xy: 975, 1512 + xy: 423, 489 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 1622, 404 + xy: 1973, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 1629, 950 + xy: 1771, 1087 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 1656, 404 + xy: 1973, 139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 1695, 950 + xy: 1837, 1079 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 1622, 370 + xy: 1973, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 1690, 404 + xy: 2007, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 1656, 370 + xy: 2007, 139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ripple-full rotate: false - xy: 1073, 1512 + xy: 423, 391 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-rock-full rotate: false - xy: 1481, 275 + xy: 1363, 281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-full rotate: false - xy: 1724, 404 + xy: 2007, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 1690, 370 + xy: 1983, 71 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 1761, 950 + xy: 1903, 1079 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 1758, 404 + xy: 1983, 37 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 1724, 370 + xy: 1983, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 1792, 404 + xy: 1659, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 1551, 884 + xy: 1969, 1079 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 1758, 370 + xy: 1693, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 1792, 370 + xy: 1727, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 1792, 370 + xy: 1727, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-huge-full rotate: false - xy: 1203, 1806 + xy: 423, 293 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge1 rotate: false - xy: 1203, 1806 + xy: 423, 293 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 1617, 884 + xy: 1771, 1021 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 1683, 884 + xy: 1837, 1013 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 1631, 302 + xy: 1795, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 1665, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shalerocks-full - rotate: false - xy: 1631, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shrubs-full - rotate: false - xy: 1699, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-full - rotate: false - xy: 1665, 302 + xy: 1829, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snowrock-full rotate: false - xy: 1481, 225 + xy: 1313, 181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-full - rotate: false - xy: 1631, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-spectre-full rotate: false - xy: 143, 870 + xy: 293, 267 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 1645, 692 + xy: 2007, 905 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-moss-full - rotate: false - xy: 1733, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-spore-press-full rotate: false - xy: 1749, 884 + xy: 1903, 1013 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-sporerocks-full - rotate: false - xy: 1699, 302 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-stone-full - rotate: false - xy: 1665, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-swarmer-full rotate: false - xy: 1837, 1016 + xy: 1969, 1013 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-tendrils-full - rotate: false - xy: 1631, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titanium-conveyor-full - rotate: false - xy: 1767, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-0-0 - rotate: false - xy: 1767, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-turbine-generator-full rotate: false - xy: 1827, 950 + xy: 1419, 937 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 1815, 884 + xy: 1419, 871 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 1903, 1018 + xy: 1419, 805 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bryde-wreck0 rotate: false - xy: 163, 1130 + xy: 163, 1141 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck1 rotate: false - xy: 953, 1904 + xy: 163, 999 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck2 rotate: false - xy: 1, 790 + xy: 163, 857 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 core-foundation-team-crux rotate: false - xy: 131, 90 + xy: 877, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team-sharded rotate: false - xy: 325, 1304 + xy: 1007, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus-team-crux rotate: false - xy: 1, 1722 + xy: 551, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-nucleus-team-sharded rotate: false - xy: 163, 1884 + xy: 1, 1175 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard-team-crux rotate: false - xy: 1301, 1818 + xy: 537, 986 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team-sharded rotate: false - xy: 1399, 1818 + xy: 537, 888 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -cracks-1-0 - rotate: false - xy: 1709, 98 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cracks-1-1 - rotate: false - xy: 1675, 30 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cracks-1-2 - rotate: false - xy: 1709, 64 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cracks-1-3 - rotate: false - xy: 1743, 98 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cracks-1-4 - rotate: false - xy: 1709, 30 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cracks-1-5 - rotate: false - xy: 1743, 64 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cracks-1-6 - rotate: false - xy: 1777, 98 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cracks-1-7 - rotate: false - xy: 1743, 30 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 cracks-2-0 rotate: false - xy: 721, 310 + xy: 1485, 949 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 721, 244 + xy: 1485, 883 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 721, 178 + xy: 1485, 817 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 721, 112 + xy: 1485, 751 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 721, 46 + xy: 1485, 685 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 1881, 884 + xy: 1485, 619 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 1893, 950 + xy: 1485, 553 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 1947, 884 + xy: 1485, 487 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-3-0 rotate: false - xy: 1497, 1818 + xy: 537, 790 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-1 rotate: false - xy: 1595, 1818 + xy: 537, 692 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-2 rotate: false - xy: 1693, 1818 + xy: 647, 1023 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-3 rotate: false - xy: 1791, 1818 + xy: 745, 1023 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-4 rotate: false - xy: 1889, 1818 + xy: 843, 1023 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-5 rotate: false - xy: 1269, 1708 + xy: 635, 925 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-6 rotate: false - xy: 1269, 1610 + xy: 635, 827 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-7 rotate: false - xy: 1269, 1512 + xy: 733, 925 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-4-0 rotate: false - xy: 487, 1466 + xy: 1137, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-1 rotate: false - xy: 649, 1628 + xy: 1267, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-2 rotate: false - xy: 317, 1174 + xy: 1397, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-3 rotate: false - xy: 305, 1044 + xy: 1527, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-4 rotate: false - xy: 293, 914 + xy: 1657, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-5 rotate: false - xy: 273, 784 + xy: 357, 1595 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-6 rotate: false - xy: 273, 654 + xy: 487, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-7 rotate: false - xy: 261, 524 + xy: 617, 1627 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-5-0 rotate: false - xy: 163, 1722 + xy: 1, 1013 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-1 rotate: false - xy: 325, 1884 + xy: 875, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-2 rotate: false - xy: 1, 1398 + xy: 1, 851 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-3 rotate: false - xy: 163, 1560 + xy: 1037, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-4 rotate: false - xy: 325, 1722 + xy: 1, 689 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-5 rotate: false - xy: 487, 1884 + xy: 1199, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-6 rotate: false - xy: 1, 1236 + xy: 1, 527 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-7 rotate: false - xy: 163, 1398 + xy: 1361, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 +cracks-6-5 + rotate: false + xy: 1, 1855 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 +cracks-6-6 + rotate: false + xy: 1, 1661 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 +cracks-6-7 + rotate: false + xy: 195, 1855 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 crawler-wreck0 rotate: false - xy: 1489, 415 + xy: 1363, 131 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck1 rotate: false - xy: 1488, 365 + xy: 1413, 273 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck2 rotate: false - xy: 1341, 217 + xy: 1413, 223 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cyclone rotate: false - xy: 1367, 1720 + xy: 635, 729 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dagger-wreck0 rotate: false - xy: 1381, 167 + xy: 1515, 305 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck1 rotate: false - xy: 1381, 117 + xy: 1463, 255 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck2 rotate: false - xy: 1375, 67 + xy: 1463, 205 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -duo - rotate: false - xy: 1845, 98 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 flare-wreck0 rotate: false - xy: 1425, 51 + xy: 1513, 97 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck1 rotate: false - xy: 1425, 1 + xy: 1941, 731 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck2 rotate: false - xy: 1481, 75 + xy: 1991, 731 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress-wreck0 rotate: false - xy: 521, 467 + xy: 765, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck1 rotate: false - xy: 521, 385 + xy: 435, 991 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck2 rotate: false - xy: 521, 303 + xy: 867, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fuse rotate: false - xy: 1857, 1622 + xy: 635, 631 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 gamma-wreck0 rotate: false - xy: 1373, 499 + xy: 1205, 190 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck1 rotate: false - xy: 1431, 557 + xy: 1205, 132 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck2 rotate: false - xy: 1431, 499 + xy: 733, 5 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 -hail - rotate: false - xy: 1845, 64 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 horizon-wreck0 rotate: false - xy: 1647, 1156 + xy: 759, 459 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck1 rotate: false - xy: 1647, 1082 + xy: 603, 303 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck2 rotate: false - xy: 1721, 1156 + xy: 833, 459 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 1729, 692 + xy: 107, 35 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-blast-compound-medium - rotate: false - xy: 1437, 780 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-blast-compound-xlarge rotate: false - xy: 1531, 315 + xy: 1873, 565 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 1771, 692 + xy: 435, 1503 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-coal-medium - rotate: false - xy: 2013, 884 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-coal-xlarge rotate: false - xy: 1531, 265 + xy: 1900, 515 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 1813, 692 + xy: 1205, 90 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-copper-medium - rotate: false - xy: 1995, 666 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-copper-xlarge rotate: false - xy: 1531, 215 + xy: 1931, 681 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 719, 4 + xy: 1913, 273 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-graphite-medium - rotate: false - xy: 1991, 632 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-graphite-xlarge rotate: false - xy: 1531, 165 + xy: 1981, 681 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 1595, 624 + xy: 1863, 173 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-lead-medium - rotate: false - xy: 1853, 472 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-lead-xlarge rotate: false - xy: 1531, 115 + xy: 1925, 631 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 895, 684 + xy: 2001, 1959 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-metaglass-medium - rotate: false - xy: 1860, 404 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-metaglass-xlarge rotate: false - xy: 1581, 315 + xy: 1975, 631 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 2005, 1530 + xy: 1913, 231 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-phase-fabric-medium - rotate: false - xy: 1869, 336 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-phase-fabric-xlarge rotate: false - xy: 1581, 265 + xy: 1923, 581 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 1645, 650 + xy: 1863, 131 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-plastanium-medium - rotate: false - xy: 1869, 268 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-plastanium-xlarge rotate: false - xy: 1581, 215 + xy: 1973, 581 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 1687, 650 + xy: 2001, 1917 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-pyratite-medium - rotate: false - xy: 1869, 200 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-pyratite-xlarge rotate: false - xy: 1581, 165 + xy: 1950, 531 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 1729, 650 + xy: 1863, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-sand-medium - rotate: false - xy: 1869, 132 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-sand-xlarge rotate: false - xy: 1581, 115 + xy: 1950, 481 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 1771, 650 + xy: 2001, 1875 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-scrap-medium - rotate: false - xy: 1879, 64 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-scrap-xlarge rotate: false - xy: 1575, 65 + xy: 1900, 465 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 1813, 650 + xy: 2001, 1833 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-silicon-medium - rotate: false - xy: 1957, 598 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-silicon-xlarge rotate: false - xy: 1575, 15 + xy: 1887, 415 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 1637, 608 + xy: 2005, 821 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-spore-pod-medium - rotate: false - xy: 1895, 590 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-spore-pod-xlarge rotate: false - xy: 1625, 65 + xy: 1883, 365 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 1679, 608 + xy: 849, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-surge-alloy-medium - rotate: false - xy: 1887, 522 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-surge-alloy-xlarge rotate: false - xy: 1625, 15 + xy: 1950, 431 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 1721, 608 + xy: 1247, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-thorium-medium - rotate: false - xy: 1887, 454 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-thorium-xlarge rotate: false - xy: 1495, 851 + xy: 1829, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 1763, 608 + xy: 1289, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -item-titanium-medium - rotate: false - xy: 1894, 386 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 item-titanium-xlarge rotate: false - xy: 1545, 834 + xy: 1879, 315 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 853, 350 + xy: 677, 129 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 1805, 608 + xy: 1331, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -liquid-cryofluid-medium - rotate: false - xy: 1903, 250 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-cryofluid-xlarge rotate: false - xy: 1695, 834 + xy: 1563, 137 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 1539, 592 + xy: 1261, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -liquid-oil-medium - rotate: false - xy: 1903, 148 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-oil-xlarge rotate: false - xy: 1745, 834 + xy: 1563, 87 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 1539, 550 + xy: 1303, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -liquid-slag-medium - rotate: false - xy: 1937, 318 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-slag-xlarge rotate: false - xy: 1795, 834 + xy: 1613, 267 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 1539, 508 + xy: 1261, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -liquid-water-medium - rotate: false - xy: 1937, 182 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 liquid-water-xlarge rotate: false - xy: 1845, 834 + xy: 1613, 217 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mace-wreck0 rotate: false - xy: 835, 744 + xy: 875, 245 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck1 rotate: false - xy: 901, 792 + xy: 875, 179 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck2 rotate: false - xy: 901, 726 + xy: 875, 113 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 919, 1120 + xy: 929, 515 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mega-wreck0 rotate: false - xy: 635, 876 + xy: 435, 685 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck1 rotate: false - xy: 635, 774 + xy: 969, 1395 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck2 rotate: false - xy: 737, 876 + xy: 1071, 1395 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 meltdown rotate: false - xy: 403, 784 + xy: 1787, 1667 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck0 rotate: false - xy: 391, 264 + xy: 487, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck1 rotate: false - xy: 391, 134 + xy: 617, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck2 rotate: false - xy: 391, 4 + xy: 747, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono-wreck0 rotate: false - xy: 1745, 784 + xy: 1929, 315 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck1 rotate: false - xy: 1795, 784 + xy: 1651, 321 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck2 rotate: false - xy: 1845, 784 + xy: 1701, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-wreck0 rotate: false - xy: 1431, 441 + xy: 1734, 490 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck1 rotate: false - xy: 1372, 383 + xy: 1947, 781 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck2 rotate: false - xy: 1430, 383 + xy: 1792, 490 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 parallax rotate: false - xy: 1231, 731 + xy: 1007, 177 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 poly-wreck0 rotate: false - xy: 1372, 325 + xy: 1655, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck1 rotate: false - xy: 1430, 325 + xy: 1655, 374 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck2 rotate: false - xy: 1249, 294 + xy: 1713, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar-wreck0 rotate: false - xy: 1183, 285 + xy: 1947, 897 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck1 rotate: false - xy: 1249, 352 + xy: 1815, 699 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck2 rotate: false - xy: 1117, 169 + xy: 1881, 765 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 quasar-wreck0 rotate: false - xy: 1409, 1136 + xy: 521, 177 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck1 rotate: false - xy: 1409, 1054 + xy: 521, 95 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck2 rotate: false - xy: 1491, 1148 + xy: 511, 13 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 -repair-point - rotate: false - xy: 2015, 88 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 ripple rotate: false - xy: 1629, 1426 + xy: 1125, 905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck0 rotate: false - xy: 1727, 1328 + xy: 1125, 513 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck1 rotate: false - xy: 1825, 1426 + xy: 1137, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck2 rotate: false - xy: 1727, 1230 + xy: 1235, 1003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 919, 417 + xy: 1129, 18 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 985, 417 + xy: 1617, 948 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 segment rotate: false - xy: 919, 219 + xy: 1551, 684 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spectre rotate: false - xy: 585, 1336 + xy: 1007, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spiroct-wreck0 rotate: false - xy: 1227, 945 + xy: 1543, 1224 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck1 rotate: false - xy: 623, 7 + xy: 1435, 1147 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck2 rotate: false - xy: 1323, 945 + xy: 1531, 1147 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 swarmer rotate: false - xy: 1051, 87 + xy: 1683, 548 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-alpha-full rotate: false - xy: 1945, 734 + xy: 1763, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-arkyid-full rotate: false - xy: 715, 1336 + xy: 1267, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-atrax-full rotate: false - xy: 1117, 813 + xy: 1615, 1076 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 unit-beta-full rotate: false - xy: 1995, 734 + xy: 1763, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-full rotate: false - xy: 1095, 1904 + xy: 163, 715 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 unit-crawler-full rotate: false - xy: 1495, 751 + xy: 1763, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 1545, 734 + xy: 1813, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-full rotate: false - xy: 1595, 716 + xy: 1813, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-full rotate: false - xy: 521, 17 + xy: 1173, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 unit-gamma-full rotate: false - xy: 1365, 267 + xy: 1771, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-horizon-full rotate: false - xy: 1869, 1156 + xy: 593, 7 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 unit-mace-full rotate: false - xy: 1183, 467 + xy: 1815, 881 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-mega-full rotate: false - xy: 635, 672 + xy: 1275, 1395 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 unit-minke-full rotate: false - xy: 715, 1206 + xy: 1397, 1497 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-mono-full rotate: false - xy: 1495, 701 + xy: 1813, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-full rotate: false - xy: 1423, 267 + xy: 1771, 374 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-poly-full rotate: false - xy: 1183, 227 + xy: 1829, 432 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-pulsar-full rotate: false - xy: 1117, 119 + xy: 1616, 502 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 unit-quasar-full rotate: false - xy: 1491, 1066 + xy: 603, 451 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 unit-risso-full rotate: false - xy: 1311, 1022 + xy: 1321, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 unit-spiroct-full rotate: false - xy: 747, 1485 + xy: 1627, 1142 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 unit-zenith-full rotate: false - xy: 577, 1092 + xy: 1527, 1513 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 wave rotate: false - xy: 1117, 269 + xy: 1815, 749 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 zenith-wreck0 rotate: false - xy: 565, 978 + xy: 435, 1269 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck1 rotate: false - xy: 679, 978 + xy: 549, 1383 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck2 rotate: false - xy: 793, 978 + xy: 435, 1155 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 -item-blast-compound - rotate: false - xy: 1437, 814 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-coal - rotate: false - xy: 2013, 918 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-copper - rotate: false - xy: 1961, 666 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-graphite - rotate: false - xy: 1957, 632 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-lead - rotate: false - xy: 1853, 506 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-metaglass - rotate: false - xy: 1853, 438 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-phase-fabric - rotate: false - xy: 1860, 370 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-plastanium - rotate: false - xy: 1869, 302 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-pyratite - rotate: false - xy: 1869, 234 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-sand - rotate: false - xy: 1869, 166 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-scrap - rotate: false - xy: 1879, 98 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-silicon - rotate: false - xy: 1879, 30 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-spore-pod - rotate: false - xy: 1861, 564 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-surge-alloy - rotate: false - xy: 1895, 556 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-thorium - rotate: false - xy: 1887, 488 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -item-titanium - rotate: false - xy: 1894, 420 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-cryofluid - rotate: false - xy: 1903, 284 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-oil - rotate: false - xy: 1903, 182 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-slag - rotate: false - xy: 1937, 352 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -liquid-water - rotate: false - xy: 1937, 216 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 shape-3 rotate: false - xy: 1249, 402 + xy: 1551, 487 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 1175, 69 + xy: 435, 1545 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-cell rotate: false - xy: 1175, 19 + xy: 1881, 715 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 arkyid rotate: false - xy: 1, 660 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array - rotate: false - xy: 1, 660 + xy: 163, 585 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-cell rotate: false - xy: 937, 858 - size: 88, 64 - orig: 88, 64 + xy: 163, 455 + size: 128, 128 + orig: 128, 128 offset: 0, 0 index: -1 arkyid-foot rotate: false - xy: 1869, 1084 + xy: 907, 443 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-joint-base rotate: false - xy: 1943, 1158 + xy: 979, 441 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-leg rotate: false - xy: 1117, 61 + xy: 1205, 306 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 arkyid-leg-base rotate: false - xy: 131, 24 + xy: 1, 11 size: 104, 64 orig: 104, 64 offset: 0, 0 index: -1 atrax rotate: false - xy: 1035, 879 + xy: 1723, 1153 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-base rotate: false - xy: 1419, 916 + xy: 1267, 447 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 atrax-cell rotate: false - xy: 1125, 879 + xy: 1435, 1081 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-foot rotate: false - xy: 2007, 1116 + xy: 1081, 399 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 atrax-leg rotate: false - xy: 1987, 1830 + xy: 1419, 513 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 atrax-leg-base rotate: false - xy: 1331, 89 + xy: 349, 1567 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 beta rotate: false - xy: 1291, 237 + xy: 1263, 281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-cell rotate: false - xy: 1281, 177 + xy: 1263, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 bryde rotate: false - xy: 811, 1904 + xy: 163, 1425 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-cell rotate: false - xy: 1, 932 + xy: 163, 1283 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 +chaos-array + rotate: false + xy: 293, 137 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 chaos-array-base rotate: false - xy: 143, 740 + xy: 285, 7 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-cell rotate: false - xy: 131, 610 + xy: 357, 1725 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-leg rotate: false - xy: 131, 480 + xy: 487, 1757 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 crawler rotate: false - xy: 1325, 27 + xy: 1363, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 1489, 565 + xy: 1363, 181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 1489, 515 + xy: 1263, 131 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 1489, 465 + xy: 1313, 131 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 1391, 217 + xy: 1413, 173 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 1331, 167 + xy: 1413, 123 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 1331, 117 + xy: 1465, 305 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 eradicator rotate: false - xy: 163, 1272 + xy: 1, 77 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-base rotate: false - xy: 325, 1434 + xy: 1847, 1923 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-cell rotate: false - xy: 487, 1596 + xy: 1847, 1797 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-leg rotate: false - xy: 649, 1758 + xy: 195, 1567 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 flare rotate: false - xy: 1481, 125 + xy: 1463, 97 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress rotate: false - xy: 533, 631 + xy: 663, 1415 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 787, 20 + xy: 743, 327 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-cell rotate: false - xy: 521, 549 + xy: 435, 1073 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 553, 916 + xy: 1611, 1014 size: 80, 60 orig: 80, 60 offset: 0, 0 index: -1 gamma rotate: false - xy: 1314, 403 + xy: 1947, 839 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-cell rotate: false - xy: 1373, 557 + xy: 1205, 248 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 horizon rotate: false - xy: 1573, 1156 + xy: 685, 459 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-cell rotate: false - xy: 1573, 1082 + xy: 603, 377 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 mace rotate: false - xy: 853, 86 + xy: 809, 195 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-base rotate: false - xy: 853, 20 + xy: 809, 129 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-cell rotate: false - xy: 1959, 952 + xy: 883, 377 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-leg rotate: false - xy: 835, 810 + xy: 875, 311 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mega rotate: false - xy: 521, 201 + xy: 435, 889 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-cell rotate: false - xy: 521, 99 + xy: 435, 787 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 minke rotate: false - xy: 391, 524 + xy: 1787, 1537 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-cell rotate: false - xy: 391, 394 + xy: 1917, 1537 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono rotate: false - xy: 1645, 784 + xy: 1613, 67 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-cell rotate: false - xy: 1695, 784 + xy: 1933, 365 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova rotate: false - xy: 1117, 3 + xy: 791, 5 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-base rotate: false - xy: 1995, 834 + xy: 1663, 221 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-cell rotate: false - xy: 1373, 441 + xy: 1676, 490 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-leg rotate: false - xy: 1995, 784 + xy: 1663, 171 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 poly rotate: false - xy: 1987, 1858 + xy: 1597, 429 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-cell rotate: false - xy: 1314, 345 + xy: 1597, 371 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 1307, 287 + xy: 1713, 374 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar rotate: false - xy: 835, 694 + xy: 1787, 1837 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-base rotate: false - xy: 1495, 801 + xy: 1663, 121 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulsar-cell rotate: false - xy: 1117, 219 + xy: 1205, 364 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-leg rotate: false - xy: 935, 615 + xy: 1073, 111 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 quasar rotate: false - xy: 1289, 797 + xy: 521, 505 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-base rotate: false - xy: 1955, 1736 + xy: 521, 423 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-cell rotate: false - xy: 1955, 1654 + xy: 521, 341 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-leg rotate: false - xy: 1955, 1572 + xy: 521, 259 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 risso rotate: false - xy: 1629, 1230 + xy: 1125, 709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-cell rotate: false - xy: 1727, 1426 + xy: 1125, 611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 spiroct rotate: false - xy: 1035, 945 + xy: 415, 20 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-cell rotate: false - xy: 1131, 945 + xy: 1447, 1224 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-foot rotate: false - xy: 803, 1758 + xy: 2001, 2001 size: 46, 46 orig: 46, 46 offset: 0, 0 index: -1 spiroct-leg rotate: false - xy: 1955, 1536 + xy: 677, 93 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 spiroct-leg-base rotate: false - xy: 967, 822 + xy: 1787, 1801 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 vanguard rotate: false - xy: 1545, 684 + xy: 1813, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 1495, 651 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -antumbra-missiles - rotate: false - xy: 1225, 27 + xy: 1813, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery rotate: false - xy: 1241, 227 + xy: 1415, 323 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 artillery-mount rotate: false - xy: 1419, 982 + xy: 1051, 441 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 beam-weapon rotate: false - xy: 1207, 797 + xy: 1965, 1455 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 chaos rotate: false - xy: 1315, 461 + xy: 1815, 561 size: 56, 136 orig: 56, 136 offset: 0, 0 index: -1 eradication rotate: false - xy: 1661, 1624 + xy: 929, 809 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 eruption rotate: false - xy: 1431, 159 + xy: 1463, 147 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun rotate: false - xy: 1481, 175 + xy: 1513, 205 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower rotate: false - xy: 1431, 101 + xy: 1513, 147 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-shotgun-weapon rotate: false - xy: 1475, 25 + xy: 1850, 511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon rotate: false - xy: 1525, 25 + xy: 1875, 665 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon-mount rotate: false - xy: 1538, 365 + xy: 1873, 615 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 large-artillery rotate: false - xy: 1595, 816 + xy: 1563, 237 size: 48, 66 orig: 48, 66 offset: 0, 0 index: -1 large-bullet-mount rotate: false - xy: 1491, 967 + xy: 1123, 414 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 large-laser-mount rotate: false - xy: 845, 1318 + 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: 1645, 834 + xy: 1563, 187 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles rotate: false - xy: 1895, 834 + xy: 1613, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-mount rotate: false - xy: 1945, 834 + xy: 1613, 117 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-purple-weapon rotate: false - xy: 1895, 784 + xy: 1751, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon rotate: false - xy: 1945, 784 + xy: 1663, 271 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-basic-weapon rotate: false - xy: 1645, 734 + xy: 1713, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-mount-weapon rotate: false - xy: 1695, 734 + xy: 1713, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-weapon rotate: false - xy: 1745, 734 + xy: 1713, 124 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spiroct-weapon rotate: false - xy: 1895, 726 + xy: 1763, 216 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 weapon rotate: false - xy: 1545, 634 + xy: 1863, 265 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith-missiles rotate: false - xy: 1595, 666 + xy: 1863, 215 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith rotate: false - xy: 691, 1092 + xy: 1641, 1513 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-cell rotate: false - xy: 805, 1092 + xy: 435, 1383 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 sprites3.png -size: 512,256 +size: 2048,256 format: rgba8888 filter: nearest,nearest repeat: none +mender + rotate: false + xy: 647, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +mender-top + rotate: false + xy: 681, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 shock-mine rotate: false - xy: 69, 189 + xy: 885, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -titanium-conveyor-0-1 - rotate: false - xy: 171, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-0-2 - rotate: false - xy: 205, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-0-3 - rotate: false - xy: 35, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-0 - rotate: false - xy: 69, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-1 - rotate: false - xy: 103, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-2 - rotate: false - xy: 137, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-1-3 - rotate: false - xy: 171, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-0 - rotate: false - xy: 205, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-1 - rotate: false - xy: 239, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-2 - rotate: false - xy: 69, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-2-3 - rotate: false - xy: 103, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-0 - rotate: false - xy: 137, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-1 - rotate: false - xy: 171, 121 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-2 - rotate: false - xy: 205, 155 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-3-3 - rotate: false - xy: 239, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-0 - rotate: false - xy: 273, 223 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-1 - rotate: false - xy: 103, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-2 - rotate: false - xy: 137, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -titanium-conveyor-4-3 - rotate: false - xy: 171, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sorter - rotate: false - xy: 1, 87 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -underflow-gate - rotate: false - xy: 273, 189 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -solar-panel +bridge-arrow rotate: false xy: 103, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -sand-boulder2 +bridge-conveyor rotate: false - xy: 1, 223 + xy: 137, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shale-boulder1 +bridge-conveyor-bridge rotate: false - xy: 1, 121 + xy: 1, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shale-boulder2 +bridge-conveyor-end rotate: false - xy: 35, 155 + xy: 35, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -unloader +center rotate: false - xy: 307, 223 + xy: 69, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -unloader-center +conveyor-0-1 rotate: false - xy: 137, 19 + xy: 103, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scorch-heat +conveyor-0-2 rotate: false - xy: 35, 223 + xy: 137, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap-wall2 +conveyor-0-3 rotate: false - xy: 1, 155 + xy: 171, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap-wall3 +conveyor-1-0 rotate: false - xy: 35, 189 + xy: 205, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap-wall4 +conveyor-1-1 rotate: false - xy: 69, 223 + xy: 239, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap-wall5 +conveyor-1-2 rotate: false - xy: 69, 223 + xy: 69, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -surge-wall +conveyor-1-3 rotate: false - xy: 103, 121 + xy: 103, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -thorium-wall +conveyor-2-0 rotate: false - xy: 137, 155 + xy: 137, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -titanium-wall +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 -casing - rotate: false - xy: 497, 239 - size: 8, 16 - orig: 8, 16 - offset: 0, 0 - index: -1 -circle-mid - rotate: false - xy: 333, 4 - size: 1, 199 - orig: 1, 199 - offset: 0, 0 - index: -1 -laser - rotate: false - xy: 197, 9 - size: 4, 48 - orig: 4, 48 - offset: 0, 0 - index: -1 -minelaser - rotate: false - xy: 203, 19 - size: 4, 48 - orig: 4, 48 - offset: 0, 0 - index: -1 -parallax-laser - rotate: false - xy: 209, 19 - size: 4, 48 - orig: 4, 48 - offset: 0, 0 - index: -1 -scale_marker - rotate: false - xy: 507, 251 - size: 4, 4 - orig: 4, 4 - offset: 0, 0 - index: -1 -transfer - rotate: false - xy: 215, 19 - size: 4, 48 - orig: 4, 48 - offset: 0, 0 - index: -1 -transfer-arrow +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 +overflow-gate + rotate: false + xy: 579, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +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 +phase-conduit-arrow + rotate: false + xy: 647, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +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 +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 +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 + size: 8, 16 + orig: 8, 16 + offset: 0, 0 + index: -1 +circle-mid + rotate: false + xy: 1149, 22 + size: 1, 199 + orig: 1, 199 + offset: 0, 0 + index: -1 +laser + rotate: false + xy: 981, 3 + size: 4, 48 + orig: 4, 48 + offset: 0, 0 + index: -1 +minelaser + rotate: false + xy: 987, 11 + size: 4, 48 + orig: 4, 48 + offset: 0, 0 + index: -1 +parallax-laser + rotate: false + xy: 993, 11 + size: 4, 48 + orig: 4, 48 + offset: 0, 0 + index: -1 +scale_marker + rotate: false + xy: 1013, 81 + size: 4, 4 + orig: 4, 4 + offset: 0, 0 + index: -1 +transfer + rotate: false + xy: 999, 11 + size: 4, 48 + orig: 4, 48 + offset: 0, 0 + index: -1 +transfer-arrow + rotate: false + xy: 1021, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 white rotate: false - xy: 239, 124 + 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: 171, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cracks-1-1 + rotate: false + xy: 205, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cracks-1-2 + rotate: false + xy: 239, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cracks-1-3 + rotate: false + xy: 273, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cracks-1-4 + rotate: false + xy: 307, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cracks-1-5 + rotate: false + xy: 341, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cracks-1-6 + rotate: false + xy: 171, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cracks-1-7 + rotate: false + xy: 205, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +duo + rotate: false + xy: 205, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hail + rotate: false + xy: 239, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-blast-compound-medium + rotate: false + xy: 239, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-blast-compound-small rotate: false - xy: 205, 95 + xy: 987, 61 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6078,9 +5826,16 @@ item-blast-compound-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-coal-medium + rotate: false + xy: 307, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-coal-small rotate: false - xy: 239, 129 + xy: 1021, 95 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6092,9 +5847,16 @@ item-coal-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-copper-medium + rotate: false + xy: 375, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-copper-small rotate: false - xy: 273, 163 + xy: 1055, 129 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6106,9 +5868,16 @@ item-copper-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-graphite-medium + rotate: false + xy: 443, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-graphite-small rotate: false - xy: 307, 197 + xy: 1089, 163 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6120,9 +5889,16 @@ item-graphite-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-lead-medium + rotate: false + xy: 307, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-lead-small rotate: false - xy: 341, 231 + xy: 1123, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6134,9 +5910,16 @@ item-lead-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-metaglass-medium + rotate: false + xy: 375, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-metaglass-small rotate: false - xy: 171, 33 + xy: 1157, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6148,9 +5931,16 @@ item-metaglass-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-phase-fabric-medium + rotate: false + xy: 443, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-phase-fabric-small rotate: false - xy: 367, 231 + xy: 1183, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6162,9 +5952,16 @@ item-phase-fabric-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-plastanium-medium + rotate: false + xy: 307, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-plastanium-small rotate: false - xy: 393, 231 + xy: 1209, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6176,9 +5973,16 @@ item-plastanium-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-pyratite-medium + rotate: false + xy: 375, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-pyratite-small rotate: false - xy: 419, 231 + xy: 1235, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -6190,268 +5994,492 @@ item-pyratite-tiny orig: 16, 16 offset: 0, 0 index: -1 +item-sand-medium + rotate: false + xy: 443, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-sand-small rotate: false - xy: 445, 231 + xy: 1261, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 333, 205 + xy: 163, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-scrap-medium + rotate: false + xy: 511, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-scrap-small rotate: false - xy: 471, 231 + xy: 1287, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 351, 213 + xy: 181, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-silicon-medium + rotate: false + xy: 375, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-silicon-small rotate: false - xy: 171, 7 + xy: 1313, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 369, 213 + xy: 199, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-spore-pod-medium + rotate: false + xy: 477, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-spore-pod-small rotate: false - xy: 205, 69 + xy: 1339, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 387, 213 + xy: 217, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-surge-alloy-medium + rotate: false + xy: 545, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-surge-alloy-small rotate: false - xy: 231, 95 + xy: 1365, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 405, 213 + xy: 235, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-thorium-medium + rotate: false + xy: 409, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-thorium-small rotate: false - xy: 231, 69 + xy: 1391, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 423, 213 + xy: 253, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-titanium-medium + rotate: false + xy: 477, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 item-titanium-small rotate: false - xy: 265, 129 + xy: 1417, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 441, 213 + xy: 271, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-cryofluid-medium + rotate: false + xy: 409, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 liquid-cryofluid-small rotate: false - xy: 257, 103 + xy: 1443, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 459, 213 + xy: 289, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-oil-medium + rotate: false + xy: 511, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 liquid-oil-small rotate: false - xy: 257, 77 + xy: 1469, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 477, 213 + xy: 307, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-slag-medium + rotate: false + xy: 545, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 liquid-slag-small rotate: false - xy: 299, 163 + xy: 1495, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 495, 213 + xy: 325, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-water-medium + rotate: false + xy: 477, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 liquid-water-small rotate: false - xy: 291, 137 + xy: 1521, 231 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 283, 111 + xy: 343, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +repair-point + rotate: false + xy: 851, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 scorch rotate: false - xy: 1, 189 + xy: 851, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-0 rotate: false - xy: 69, 155 + xy: 817, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 103, 189 + xy: 851, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 35, 53 + xy: 953, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 69, 87 + xy: 987, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 137, 223 + xy: 885, 155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 1, 53 + xy: 919, 189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 35, 87 + xy: 953, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 69, 121 + xy: 783, 19 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 103, 155 + xy: 817, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 137, 189 + xy: 851, 87 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 171, 223 + xy: 885, 121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 1, 19 + xy: 919, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-blast-compound + rotate: false + xy: 409, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-coal + rotate: false + xy: 273, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-copper + rotate: false + xy: 341, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-graphite + rotate: false + xy: 409, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-lead + rotate: false + xy: 273, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-metaglass + rotate: false + xy: 341, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-phase-fabric + rotate: false + xy: 409, 155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-plastanium + rotate: false + xy: 477, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-pyratite + rotate: false + xy: 341, 53 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-sand + rotate: false + xy: 409, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-scrap + rotate: false + xy: 477, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-silicon + rotate: false + xy: 341, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-spore-pod + rotate: false + xy: 443, 121 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-surge-alloy + rotate: false + xy: 511, 189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-thorium + rotate: false + xy: 375, 19 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-titanium + rotate: false + xy: 443, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-cryofluid + rotate: false + xy: 579, 223 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-oil + rotate: false + xy: 477, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-slag + rotate: false + xy: 511, 87 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-water + rotate: false + xy: 647, 223 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 239, 121 + xy: 1047, 118 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 atrax-joint rotate: false - xy: 171, 59 + xy: 953, 25 size: 26, 26 orig: 26, 26 offset: 0, 0 index: -1 spiroct-joint rotate: false - xy: 35, 121 + xy: 783, 53 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8121,2121 +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: 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: 617, 453 + xy: 1177, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 651, 487 + xy: 1211, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor-icon-editor rotate: false - xy: 685, 521 + 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: 617, 419 + 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: 651, 453 + xy: 1313, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-editor rotate: false - xy: 685, 487 + xy: 1347, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 719, 521 + xy: 1381, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 651, 419 + 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: 685, 453 + xy: 1449, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-icon-editor rotate: false - xy: 719, 487 + 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: 753, 521 + 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: 787, 523 + 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: 685, 419 + xy: 1567, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 719, 453 + xy: 1551, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 753, 487 + xy: 1601, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 787, 489 + 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: 821, 523 + 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: 719, 419 + 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: 753, 453 + 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: 787, 455 + 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: 821, 489 + xy: 1703, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 855, 523 + xy: 1687, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-icon-editor rotate: false - xy: 753, 419 + 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: 787, 421 + 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: 821, 455 + 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: 855, 489 + xy: 1755, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-icon-editor rotate: false - xy: 889, 523 + xy: 1805, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 821, 421 + xy: 1789, 553 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 855, 455 + 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: 889, 489 + 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: 923, 523 + xy: 1873, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 855, 421 + 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: 889, 455 + xy: 1907, 587 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 923, 489 + 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: 957, 523 + 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: 889, 421 + 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: 753, 485 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 tendrils-icon-editor rotate: false - xy: 923, 455 + 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: 957, 489 + 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: 991, 523 + xy: 787, 485 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 923, 421 + 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: 957, 455 + xy: 787, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-editor rotate: false - xy: 991, 489 + 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 @@ -10255,7 +10311,7 @@ alpha-bg index: -1 bar rotate: false - xy: 1659, 374 + xy: 1656, 379 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -10263,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 @@ -10278,7 +10334,7 @@ block-additive-reconstructor-large index: -1 block-additive-reconstructor-medium rotate: false - xy: 1033, 618 + xy: 957, 589 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -10292,7 +10348,7 @@ block-additive-reconstructor-small index: -1 block-additive-reconstructor-tiny rotate: false - xy: 2031, 779 + xy: 301, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10313,21 +10369,21 @@ block-air-factory-large index: -1 block-air-factory-medium rotate: false - xy: 1071, 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: 2031, 761 + xy: 319, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10341,28 +10397,28 @@ block-air-factory-xlarge index: -1 block-alloy-smelter-large rotate: false - xy: 451, 174 + xy: 651, 374 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-alloy-smelter-medium rotate: false - xy: 1105, 647 + xy: 1029, 618 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 1649, 647 + xy: 971, 184 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 2031, 743 + xy: 309, 698 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10376,28 +10432,28 @@ block-alloy-smelter-xlarge index: -1 block-arc-large rotate: false - xy: 501, 224 + xy: 701, 434 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-arc-medium rotate: false - xy: 1139, 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: 2031, 725 + xy: 331, 598 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10411,28 +10467,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 551, 274 + xy: 351, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 1173, 647 + xy: 1105, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 1649, 621 + xy: 703, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 2031, 707 + xy: 1955, 740 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10446,35 +10502,35 @@ block-armored-conveyor-xlarge index: -1 block-battery-large rotate: false - xy: 601, 324 + xy: 451, 124 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-large rotate: false - xy: 651, 374 + xy: 501, 184 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-medium rotate: false - xy: 1207, 647 + xy: 1139, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-large-small rotate: false - xy: 1591, 336 + xy: 729, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-large-tiny rotate: false - xy: 301, 1 + xy: 309, 680 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10488,21 +10544,21 @@ block-battery-large-xlarge index: -1 block-battery-medium rotate: false - xy: 1241, 647 + xy: 1173, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-small rotate: false - xy: 1617, 336 + xy: 755, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-tiny rotate: false - xy: 319, 1 + xy: 331, 580 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10516,28 +10572,28 @@ block-battery-xlarge index: -1 block-blast-drill-large rotate: false - xy: 701, 424 + xy: 601, 274 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-drill-medium rotate: false - xy: 1275, 647 + xy: 1207, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-small rotate: false - xy: 2021, 847 + xy: 781, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-drill-tiny rotate: false - xy: 337, 1 + xy: 1955, 722 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10551,28 +10607,28 @@ block-blast-drill-xlarge index: -1 block-blast-mixer-large rotate: false - xy: 351, 24 + xy: 551, 224 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-mixer-medium rotate: false - xy: 1309, 647 + xy: 1241, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-mixer-small rotate: false - xy: 1678, 718 + xy: 807, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-mixer-tiny rotate: false - xy: 309, 698 + xy: 1955, 704 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10586,28 +10642,28 @@ block-blast-mixer-xlarge index: -1 block-block-forge-large rotate: false - xy: 401, 74 + xy: 543, 182 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-forge-medium rotate: false - xy: 1343, 647 + xy: 1949, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-forge-small rotate: false - xy: 1678, 692 + xy: 833, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-forge-tiny rotate: false - xy: 331, 598 + xy: 1955, 686 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10621,28 +10677,28 @@ block-block-forge-xlarge index: -1 block-block-loader-large rotate: false - xy: 451, 132 + xy: 351, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-loader-medium rotate: false - xy: 1377, 647 + xy: 991, 584 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-loader-small rotate: false - xy: 1704, 718 + xy: 859, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-loader-tiny rotate: false - xy: 132, 10 + xy: 1705, 542 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10656,28 +10712,28 @@ block-block-loader-xlarge index: -1 block-block-unloader-large rotate: false - xy: 451, 90 + xy: 401, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-unloader-medium rotate: false - xy: 1411, 647 + xy: 1025, 584 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-unloader-small rotate: false - xy: 1704, 692 + xy: 885, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-unloader-tiny rotate: false - xy: 1649, 603 + xy: 1705, 524 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10691,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: 1445, 647 + xy: 1489, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conduit-small rotate: false - xy: 1730, 718 + xy: 911, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conduit-tiny rotate: false - xy: 1808, 700 + xy: 1705, 506 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10726,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: 1479, 647 + xy: 1405, 710 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-small rotate: false - xy: 1730, 692 + xy: 937, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conveyor-tiny rotate: false - xy: 1023, 328 + xy: 1727, 651 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10761,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: 1513, 647 + xy: 1063, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-small rotate: false - xy: 1756, 692 + xy: 963, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-char-tiny rotate: false - xy: 1799, 310 + xy: 1727, 633 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10796,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: 1547, 647 + xy: 1097, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliff-small rotate: false - xy: 1782, 692 + xy: 1421, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliff-tiny rotate: false - xy: 309, 680 + xy: 1727, 615 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10831,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: 1067, 613 + xy: 1131, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-small rotate: false - xy: 1678, 666 + xy: 1447, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliffs-tiny rotate: false - xy: 331, 580 + xy: 1727, 597 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10866,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: 1101, 613 + xy: 1165, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-coal-centrifuge-small rotate: false - xy: 1704, 666 + xy: 1473, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-coal-centrifuge-tiny rotate: false - xy: 1023, 310 + xy: 1727, 579 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10901,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: 1135, 613 + xy: 1199, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-combustion-generator-small rotate: false - xy: 1730, 666 + xy: 1499, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-combustion-generator-tiny rotate: false - xy: 1817, 310 + xy: 1727, 561 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10934,6554 +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: 1169, 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: 1756, 666 + xy: 1525, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conduit-tiny +block-command-center-tiny rotate: false - xy: 1835, 310 + 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: 1203, 613 + xy: 1059, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-container-small +block-conduit-small rotate: false - xy: 1782, 666 + xy: 1551, 327 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-container-tiny +block-conduit-tiny rotate: false - xy: 1853, 310 + 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: 1237, 613 + xy: 1093, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conveyor-small +block-container-small rotate: false - xy: 1675, 640 + xy: 1648, 353 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conveyor-tiny +block-container-tiny rotate: false - xy: 1871, 310 + 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: 1271, 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: 1701, 640 + 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: 1889, 310 + 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: 1305, 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: 1727, 640 + 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: 1907, 310 + 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: 1339, 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: 1753, 640 + 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: 1925, 310 + 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: 1373, 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: 1779, 640 + 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: 1943, 310 + 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: 1407, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-core-shard-small - rotate: false - xy: 1675, 614 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-core-shard-tiny - rotate: false - xy: 1961, 310 - 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: 1441, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-craters-small - rotate: false - xy: 1701, 614 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-craters-tiny - rotate: false - xy: 1979, 310 - 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: 493, 174 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cryofluidmixer-medium - rotate: false - xy: 1475, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cryofluidmixer-small - rotate: false - xy: 1727, 614 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cryofluidmixer-tiny - rotate: false - xy: 1997, 310 - 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: 493, 132 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cultivator-medium - rotate: false - xy: 1509, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cultivator-small - rotate: false - xy: 1753, 614 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cultivator-tiny - rotate: false - xy: 2015, 310 - 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: 493, 90 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-cyclone-medium - rotate: false - xy: 1543, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cyclone-small - rotate: false - xy: 1779, 614 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-cyclone-tiny - rotate: false - xy: 1023, 292 - 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: 543, 224 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-metal-medium - rotate: false - xy: 1033, 584 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-metal-small - rotate: false - xy: 1643, 336 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-metal-tiny - rotate: false - xy: 2028, 518 - 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: 535, 182 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-1-medium - rotate: false - xy: 1067, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-1-small - rotate: false - xy: 1679, 588 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-1-tiny - rotate: false - xy: 2028, 500 - 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: 535, 140 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-2-medium - rotate: false - xy: 1101, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-2-small - rotate: false - xy: 1679, 562 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-2-tiny - rotate: false - xy: 2028, 482 - 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: 535, 98 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-3-medium - rotate: false - xy: 1135, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-3-small - rotate: false - xy: 1705, 588 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-3-tiny - rotate: false - xy: 2028, 464 - 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: 593, 274 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-4-medium - rotate: false - xy: 1169, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-4-small - rotate: false - xy: 1679, 536 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-4-tiny - rotate: false - xy: 2028, 446 - 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: 585, 232 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-5-medium - rotate: false - xy: 1203, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-5-small - rotate: false - xy: 1705, 562 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-5-tiny - rotate: false - xy: 2028, 428 - 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: 643, 324 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-dark-panel-6-medium - rotate: false - xy: 1237, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dark-panel-6-small - rotate: false - xy: 1731, 588 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-dark-panel-6-tiny - rotate: false - xy: 2028, 410 - 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: 635, 282 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-medium - rotate: false - xy: 1271, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-small - rotate: false - xy: 1705, 536 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-large - rotate: false - xy: 393, 24 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-medium - rotate: false - xy: 1305, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-small - rotate: false - xy: 1731, 562 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-tainted-water-tiny - rotate: false - xy: 355, 6 - 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: 373, 6 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-water-large - rotate: false - xy: 443, 48 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-darksand-water-medium - rotate: false - xy: 1339, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-water-small - rotate: false - xy: 1757, 588 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-darksand-water-tiny - rotate: false - xy: 391, 6 - 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: 485, 48 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-deepwater-medium - rotate: false - xy: 1373, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-deepwater-small - rotate: false - xy: 1731, 536 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-deepwater-tiny - rotate: false - xy: 409, 6 - 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: 435, 6 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-differential-generator-medium - rotate: false - xy: 1407, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-differential-generator-small - rotate: false - xy: 1757, 562 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-differential-generator-tiny - rotate: false - xy: 1041, 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: 477, 6 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-diode-medium - rotate: false - xy: 1441, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-diode-small - rotate: false - xy: 1757, 536 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-diode-tiny - rotate: false - xy: 1059, 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: 869, 410 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-disassembler-medium - rotate: false - xy: 1475, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-disassembler-small - rotate: false - xy: 1690, 510 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-disassembler-tiny - rotate: false - xy: 1041, 305 - 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: 869, 368 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-distributor-medium - rotate: false - xy: 1509, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-distributor-small - rotate: false - xy: 1690, 484 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-distributor-tiny - rotate: false - xy: 1077, 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: 577, 182 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-large - rotate: false - xy: 577, 140 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-medium - rotate: false - xy: 1543, 579 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-door-large-small - rotate: false - xy: 1716, 510 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-door-large-tiny - rotate: false - xy: 1059, 305 - 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 +block-core-nucleus-medium rotate: false xy: 1979, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-small +block-core-nucleus-small rotate: false - xy: 1690, 458 + xy: 1091, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-tiny +block-core-nucleus-tiny rotate: false - xy: 1095, 323 + xy: 1157, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-xlarge +block-core-nucleus-xlarge rotate: false - xy: 1757, 975 + xy: 1, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dunerocks-large +block-core-shard-large rotate: false - xy: 577, 98 + xy: 827, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dunerocks-medium +block-core-shard-medium rotate: false xy: 2013, 907 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dunerocks-small +block-core-shard-small rotate: false - xy: 1716, 484 + xy: 1117, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dunerocks-tiny +block-core-shard-tiny rotate: false - xy: 1077, 305 + xy: 1175, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dunerocks-xlarge +block-core-shard-xlarge rotate: false - xy: 1807, 975 + xy: 51, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-duo-large +block-craters-large rotate: false - xy: 535, 56 + xy: 743, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-duo-medium +block-craters-medium rotate: false - xy: 1581, 660 + xy: 1983, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-duo-small +block-craters-small rotate: false - xy: 1742, 510 + xy: 1143, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-duo-tiny +block-craters-tiny rotate: false - xy: 1113, 323 + xy: 1193, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-duo-xlarge +block-craters-xlarge rotate: false - xy: 1857, 975 + xy: 51, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-exponential-reconstructor-large +block-cryofluidmixer-large rotate: false - xy: 577, 56 + xy: 785, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-exponential-reconstructor-medium +block-cryofluidmixer-medium rotate: false xy: 881, 560 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-exponential-reconstructor-small +block-cryofluidmixer-small rotate: false - xy: 1690, 432 + xy: 1169, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-exponential-reconstructor-tiny +block-cryofluidmixer-tiny rotate: false - xy: 1095, 305 + xy: 1211, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-exponential-reconstructor-xlarge +block-cryofluidmixer-xlarge rotate: false - xy: 1907, 975 + xy: 857, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-force-projector-large +block-cultivator-large rotate: false - xy: 627, 232 + xy: 827, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-force-projector-medium - rotate: false - xy: 915, 560 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-force-projector-small - rotate: false - xy: 1716, 458 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-force-projector-tiny - rotate: false - xy: 1131, 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: 619, 190 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-fuse-medium - rotate: false - xy: 949, 560 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-fuse-small - rotate: false - xy: 1742, 484 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-fuse-tiny - rotate: false - xy: 1113, 305 - 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: 619, 148 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-graphite-press-medium - rotate: false - xy: 983, 560 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-graphite-press-small - rotate: false - xy: 1716, 432 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-graphite-press-tiny - rotate: false - xy: 1149, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-graphite-press-xlarge - rotate: false - xy: 395, 866 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-grass-large - rotate: false - xy: 619, 106 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-grass-medium +block-cultivator-medium rotate: false xy: 877, 526 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-grass-small +block-cultivator-small rotate: false - xy: 1742, 458 + xy: 1195, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-grass-tiny +block-cultivator-tiny rotate: false - xy: 1131, 305 + xy: 1229, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-grass-xlarge +block-cultivator-xlarge rotate: false - xy: 445, 866 + xy: 907, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ground-factory-large +block-cyclone-large rotate: false - xy: 619, 64 + xy: 493, 100 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ground-factory-medium - rotate: false - xy: 911, 526 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ground-factory-small - rotate: false - xy: 1742, 432 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ground-factory-tiny - rotate: false - xy: 1167, 323 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ground-factory-xlarge - rotate: false - xy: 495, 866 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-hail-large - rotate: false - xy: 677, 282 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-hail-medium +block-cyclone-medium rotate: false xy: 877, 492 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hail-small +block-cyclone-small rotate: false - xy: 1783, 588 + xy: 1221, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hail-tiny +block-cyclone-tiny rotate: false - xy: 1149, 305 + xy: 1247, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hail-xlarge +block-cyclone-xlarge rotate: false - xy: 545, 866 + xy: 957, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-holostone-large +block-dark-metal-large rotate: false - xy: 669, 240 + xy: 451, 82 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-holostone-medium - rotate: false - xy: 911, 492 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-holostone-small - rotate: false - xy: 1783, 562 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-holostone-tiny - rotate: false - xy: 1185, 323 - 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: 519, 6 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-hotrock-medium - rotate: false - xy: 945, 526 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-hotrock-small - rotate: false - xy: 1783, 536 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-hotrock-tiny - rotate: false - xy: 1167, 305 - 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: 561, 14 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-medium +block-dark-metal-medium rotate: false xy: 877, 458 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-small +block-dark-metal-small rotate: false - xy: 1768, 510 + xy: 1247, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ice-snow-large +block-dark-metal-tiny rotate: false - xy: 603, 14 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-snow-medium - rotate: false - xy: 911, 458 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-small - rotate: false - xy: 1768, 484 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ice-snow-tiny - rotate: false - xy: 1203, 323 + xy: 1265, 211 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-snow-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-ice-tiny +block-hyper-processor-large rotate: false - xy: 1185, 305 + 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-ice-xlarge +block-hyper-processor-xlarge rotate: false xy: 101, 478 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-icerocks-large +block-ice-large rotate: false - xy: 661, 190 + xy: 869, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-icerocks-medium +block-ice-medium rotate: false - xy: 945, 492 + xy: 1465, 659 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-icerocks-small +block-ice-small rotate: false - xy: 1768, 458 + xy: 1455, 249 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-icerocks-tiny +block-ice-snow-large rotate: false - xy: 1221, 323 + 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-icerocks-xlarge +block-ice-snow-xlarge rotate: false xy: 101, 428 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ignarock-large +block-ice-tiny rotate: false - xy: 661, 148 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ignarock-medium - rotate: false - xy: 979, 526 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ignarock-small - rotate: false - xy: 1768, 432 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ignarock-tiny - rotate: false - xy: 1203, 305 + xy: 1781, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ignarock-xlarge +block-ice-xlarge rotate: false xy: 101, 378 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-illuminator-large +block-icerocks-large rotate: false - xy: 661, 106 + xy: 861, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-illuminator-medium +block-icerocks-medium rotate: false - xy: 945, 458 + xy: 1297, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-illuminator-small +block-icerocks-small rotate: false - xy: 1690, 406 + xy: 1507, 249 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-illuminator-tiny +block-icerocks-tiny rotate: false - xy: 1239, 323 + xy: 1799, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-illuminator-xlarge +block-icerocks-xlarge rotate: false xy: 101, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-impact-reactor-large +block-ignarock-large rotate: false - xy: 661, 64 + xy: 861, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-impact-reactor-medium +block-ignarock-medium rotate: false - xy: 979, 492 + xy: 1297, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-impact-reactor-small +block-ignarock-small rotate: false - xy: 1716, 406 + xy: 1533, 249 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-impact-reactor-tiny +block-ignarock-tiny rotate: false - xy: 1221, 305 + xy: 1817, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-impact-reactor-xlarge +block-ignarock-xlarge rotate: false xy: 101, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-incinerator-large +block-illuminator-large rotate: false - xy: 645, 22 + xy: 856, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-incinerator-medium +block-illuminator-medium rotate: false - xy: 979, 458 + xy: 1507, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-incinerator-small +block-illuminator-small rotate: false - xy: 1742, 406 + xy: 1559, 249 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-incinerator-tiny +block-illuminator-tiny rotate: false - xy: 1257, 323 + xy: 1835, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-incinerator-xlarge +block-illuminator-xlarge rotate: false xy: 101, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-inverted-sorter-large +block-impact-reactor-large rotate: false - xy: 687, 22 + xy: 853, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-inverted-sorter-medium +block-impact-reactor-medium rotate: false - xy: 911, 424 + xy: 1499, 659 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-inverted-sorter-small +block-impact-reactor-small rotate: false - xy: 1768, 406 + xy: 997, 184 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-inverted-sorter-tiny +block-impact-reactor-tiny rotate: false - xy: 1239, 305 + xy: 1781, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-inverted-sorter-xlarge +block-impact-reactor-xlarge rotate: false xy: 101, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-source-large +block-incinerator-large rotate: false - xy: 711, 240 + xy: 853, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-source-medium +block-incinerator-medium rotate: false - xy: 911, 390 + xy: 1515, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-source-small +block-incinerator-small rotate: false - xy: 1688, 380 + xy: 989, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-source-tiny +block-incinerator-tiny rotate: false - xy: 1275, 323 + xy: 1799, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-source-xlarge +block-incinerator-xlarge rotate: false xy: 101, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-void-large +block-inverted-sorter-large rotate: false - xy: 703, 198 + xy: 577, 98 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-void-medium +block-inverted-sorter-medium rotate: false - xy: 945, 424 + xy: 1519, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-void-small +block-inverted-sorter-small rotate: false - xy: 1714, 380 + xy: 1693, 437 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-void-tiny +block-inverted-sorter-tiny rotate: false - xy: 1257, 305 + xy: 1817, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-void-xlarge +block-inverted-sorter-xlarge rotate: false xy: 101, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-junction-large +block-item-source-large rotate: false - xy: 703, 156 + xy: 577, 56 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-junction-medium +block-item-source-medium rotate: false - xy: 945, 390 + xy: 1523, 795 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-junction-small +block-item-source-small rotate: false - xy: 1740, 380 + xy: 1688, 411 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-junction-tiny +block-item-source-tiny rotate: false - xy: 1293, 323 + xy: 1835, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-junction-xlarge +block-item-source-xlarge rotate: false xy: 101, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-kiln-large +block-item-void-large rotate: false - xy: 703, 114 + xy: 585, 140 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-kiln-medium +block-item-void-medium rotate: false - xy: 979, 424 + xy: 1533, 659 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-kiln-small +block-item-void-small rotate: false - xy: 1766, 380 + xy: 1685, 385 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-kiln-tiny +block-item-void-tiny rotate: false - xy: 1275, 305 + xy: 1853, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-kiln-xlarge +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: 703, 72 + xy: 585, 182 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-lancer-medium +block-junction-medium rotate: false - xy: 979, 390 + xy: 1541, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-lancer-small +block-junction-small rotate: false - xy: 1794, 510 + xy: 1013, 260 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-lancer-tiny +block-junction-tiny rotate: false - xy: 1311, 323 + 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: 745, 198 + xy: 627, 164 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-laser-drill-medium +block-kiln-medium rotate: false - xy: 911, 356 + xy: 1549, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-laser-drill-small +block-kiln-small rotate: false - xy: 1794, 484 + xy: 1039, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-laser-drill-tiny +block-kiln-tiny rotate: false - xy: 1293, 305 + 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: 745, 156 + 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: 745, 114 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-launch-pad-large-medium - rotate: false - xy: 945, 356 + 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: 1794, 458 + 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: 1329, 323 + 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: 979, 356 + 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: 1794, 432 + 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: 1311, 305 + 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: 745, 72 + 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: 1657, 744 + 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: 1794, 406 + 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: 1347, 323 + 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: 729, 30 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-router-medium - rotate: false - xy: 1691, 744 + 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: 1792, 380 + 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: 1329, 305 + 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: 771, 30 + 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: 1615, 702 + 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: 1669, 348 + 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: 1365, 323 + 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: 821, 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: 1615, 668 + 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: 1695, 354 + 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: 1347, 305 + 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: 863, 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: 1783, 828 + 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: 1721, 354 + 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: 1383, 323 + 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: 905, 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: 1817, 828 + 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: 1747, 354 + 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: 1365, 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: 947, 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: 1851, 828 + 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: 1773, 354 + 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: 1401, 323 + 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: 989, 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: 1885, 828 + xy: 1335, 626 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-magmarock-small +block-logic-display-small rotate: false - xy: 1799, 354 + xy: 1299, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-magmarock-tiny +block-logic-display-tiny rotate: false - xy: 1383, 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: 1031, 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: 1919, 828 + 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: 1669, 322 + 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: 1419, 323 + 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: 1073, 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: 1953, 828 + xy: 1403, 642 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-driver-small +block-magmarock-small rotate: false - xy: 1695, 328 + xy: 1351, 242 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-driver-tiny +block-magmarock-tiny rotate: false - xy: 1401, 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: 1115, 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: 1741, 786 + 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: 1721, 328 + 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: 1437, 323 + 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: 1157, 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: 1581, 626 + 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: 1747, 328 + 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: 1419, 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: 1199, 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: 1615, 634 + xy: 1369, 592 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-meltdown-small +block-mechanical-pump-small rotate: false - xy: 1773, 328 + xy: 1429, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-meltdown-tiny +block-mechanical-pump-tiny rotate: false - xy: 1455, 323 + 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: 1241, 933 + xy: 703, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-melter-medium +block-meltdown-medium rotate: false - xy: 1577, 592 + xy: 1331, 558 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-melter-small +block-meltdown-small rotate: false - xy: 1799, 328 + xy: 1455, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-melter-tiny +block-meltdown-tiny rotate: false - xy: 1437, 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-mend-projector-large +block-melter-large rotate: false - xy: 1283, 933 + xy: 745, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mend-projector-medium +block-melter-medium rotate: false - xy: 1577, 558 + xy: 1365, 558 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mend-projector-small +block-melter-small rotate: false - xy: 1818, 380 + xy: 1481, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mend-projector-tiny +block-melter-tiny rotate: false - xy: 1473, 323 + xy: 1907, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mend-projector-xlarge +block-melter-xlarge rotate: false xy: 201, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mender-large +block-memory-cell-large rotate: false - xy: 1325, 933 + xy: 787, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mender-medium +block-memory-cell-medium rotate: false - xy: 2013, 873 + xy: 1403, 574 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mender-small +block-memory-cell-small rotate: false - xy: 1825, 354 + xy: 1507, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mender-tiny +block-memory-cell-tiny rotate: false - xy: 1455, 305 + xy: 1925, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mender-xlarge +block-memory-cell-xlarge rotate: false xy: 151, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-message-large +block-mend-projector-large rotate: false - xy: 1367, 933 + xy: 829, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-message-medium +block-mend-projector-medium rotate: false - xy: 1979, 865 + xy: 1331, 524 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-message-small +block-mend-projector-small rotate: false - xy: 1825, 328 + xy: 1533, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-message-tiny +block-mend-projector-tiny rotate: false - xy: 1491, 323 + xy: 1871, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-message-xlarge +block-mend-projector-xlarge rotate: false xy: 201, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-2-large +block-mender-large rotate: false - xy: 1409, 933 + xy: 879, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-2-medium +block-mender-medium rotate: false - xy: 1987, 831 + xy: 1365, 524 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-2-small +block-mender-small rotate: false - xy: 1808, 666 + xy: 1559, 223 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-2-tiny +block-mender-tiny rotate: false - xy: 1473, 305 + xy: 1889, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-2-xlarge +block-mender-xlarge rotate: false xy: 201, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-3-large +block-message-large rotate: false - xy: 1451, 933 + xy: 879, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-3-medium +block-message-medium rotate: false - xy: 1017, 550 + xy: 1399, 540 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-3-small +block-message-small rotate: false - xy: 1805, 640 + xy: 1714, 411 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-3-tiny +block-message-tiny rotate: false - xy: 1509, 323 + xy: 1907, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-3-xlarge +block-message-xlarge rotate: false xy: 251, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-5-large +block-metal-floor-2-large rotate: false - xy: 1493, 933 + xy: 871, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-5-medium +block-metal-floor-2-medium rotate: false - xy: 1013, 516 + xy: 1399, 506 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-5-small +block-metal-floor-2-small rotate: false - xy: 1805, 614 + xy: 1711, 385 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-5-tiny +block-metal-floor-2-tiny rotate: false - xy: 1491, 305 + xy: 1925, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-5-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-damaged-large +block-metal-floor-3-large rotate: false - xy: 1535, 933 + xy: 435, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-damaged-medium +block-metal-floor-3-medium rotate: false - xy: 1013, 482 + xy: 1437, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-damaged-small +block-metal-floor-3-small rotate: false - xy: 1834, 666 + xy: 1700, 359 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-damaged-tiny +block-metal-floor-3-tiny rotate: false - xy: 1527, 323 + xy: 1889, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-damaged-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-large +block-metal-floor-5-large rotate: false - xy: 1577, 933 + xy: 477, 16 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-medium +block-metal-floor-5-medium rotate: false - xy: 1013, 448 + xy: 1437, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-small +block-metal-floor-5-small rotate: false - xy: 1831, 640 + xy: 1700, 333 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-tiny +block-metal-floor-5-tiny rotate: false - xy: 1509, 305 + xy: 1907, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-xlarge +block-metal-floor-5-xlarge rotate: false xy: 251, 358 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-micro-processor-large +block-metal-floor-damaged-large rotate: false - xy: 1619, 933 + xy: 519, 14 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-micro-processor-medium +block-metal-floor-damaged-medium rotate: false - xy: 1013, 414 + xy: 1471, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-micro-processor-small +block-metal-floor-damaged-small rotate: false - xy: 1860, 666 + xy: 1726, 359 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-micro-processor-tiny +block-metal-floor-damaged-tiny rotate: false - xy: 1545, 323 + xy: 1925, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-micro-processor-xlarge +block-metal-floor-damaged-xlarge rotate: false xy: 251, 308 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-moss-large +block-metal-floor-large rotate: false - xy: 1661, 933 + xy: 561, 14 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-moss-medium +block-metal-floor-medium rotate: false - xy: 1013, 380 + xy: 1471, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-moss-small +block-metal-floor-small rotate: false - xy: 1831, 614 + xy: 1726, 333 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-moss-tiny +block-metal-floor-tiny rotate: false - xy: 1527, 305 + xy: 1907, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-moss-xlarge +block-metal-floor-xlarge rotate: false xy: 251, 258 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multi-press-large +block-micro-processor-large rotate: false - xy: 1703, 933 + xy: 903, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multi-press-medium +block-micro-processor-medium rotate: false - xy: 1013, 346 + xy: 1505, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multi-press-small +block-micro-processor-small rotate: false - xy: 1809, 588 + xy: 1737, 385 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multi-press-tiny +block-micro-processor-tiny rotate: false - xy: 1563, 323 + xy: 1925, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multi-press-xlarge +block-micro-processor-xlarge rotate: false xy: 251, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-large +block-moss-large rotate: false - xy: 1745, 933 + xy: 903, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-medium +block-moss-medium rotate: false - xy: 1051, 545 + xy: 1505, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-small +block-moss-small rotate: false - xy: 1857, 640 + xy: 1752, 359 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-tiny +block-moss-tiny rotate: false - xy: 1545, 305 + xy: 1925, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-xlarge +block-moss-xlarge rotate: false xy: 251, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-naval-factory-large +block-multi-press-large rotate: false - xy: 1787, 933 + xy: 898, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-naval-factory-medium +block-multi-press-medium rotate: false - xy: 1085, 545 + xy: 1539, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-naval-factory-small +block-multi-press-small rotate: false - xy: 1886, 666 + xy: 1752, 333 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-naval-factory-tiny +block-multi-press-tiny rotate: false - xy: 1563, 305 + xy: 1745, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-naval-factory-xlarge +block-multi-press-xlarge rotate: false xy: 251, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-oil-extractor-large +block-multiplicative-reconstructor-large rotate: false - xy: 1829, 933 + xy: 895, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-oil-extractor-medium +block-multiplicative-reconstructor-medium rotate: false - xy: 1119, 545 + xy: 1539, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-oil-extractor-small +block-multiplicative-reconstructor-small rotate: false - xy: 1809, 562 + xy: 1700, 307 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-oil-extractor-tiny +block-multiplicative-reconstructor-tiny rotate: false - xy: 1041, 287 + xy: 1763, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-oil-extractor-xlarge +block-multiplicative-reconstructor-xlarge rotate: false xy: 251, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-coal-large +block-naval-factory-large rotate: false - xy: 1871, 933 + xy: 895, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-coal-medium +block-naval-factory-medium rotate: false - xy: 1153, 545 + xy: 1573, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-coal-small +block-naval-factory-small rotate: false - xy: 1809, 536 + xy: 1726, 307 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-coal-tiny +block-naval-factory-tiny rotate: false - xy: 1059, 287 + xy: 1781, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-coal-xlarge +block-naval-factory-xlarge rotate: false xy: 151, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-copper-large +block-oil-extractor-large rotate: false - xy: 1913, 933 + xy: 921, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-copper-medium +block-oil-extractor-medium rotate: false - xy: 1187, 545 + xy: 1573, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-copper-small +block-oil-extractor-small rotate: false - xy: 1857, 614 + xy: 1752, 307 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-copper-tiny +block-oil-extractor-tiny rotate: false - xy: 1077, 287 + xy: 1799, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-copper-xlarge +block-oil-extractor-xlarge rotate: false xy: 201, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-lead-large +block-ore-coal-large rotate: false - xy: 1955, 933 + xy: 921, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-lead-medium +block-ore-coal-medium rotate: false - xy: 1221, 545 + xy: 1607, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-lead-small +block-ore-coal-small rotate: false - xy: 1835, 588 + xy: 1008, 234 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-lead-tiny +block-ore-coal-tiny rotate: false - xy: 1095, 287 + xy: 1817, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-lead-xlarge +block-ore-coal-xlarge rotate: false xy: 251, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-scrap-large +block-ore-copper-large rotate: false - xy: 845, 891 + xy: 913, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-scrap-medium +block-ore-copper-medium rotate: false - xy: 1255, 545 + xy: 1607, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-scrap-small +block-ore-copper-small rotate: false - xy: 1883, 640 + xy: 1034, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-scrap-tiny +block-ore-copper-tiny rotate: false - xy: 1113, 287 + xy: 1835, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-scrap-xlarge +block-ore-copper-xlarge rotate: false xy: 281, 619 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-thorium-large +block-ore-lead-large rotate: false - xy: 887, 891 + xy: 955, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-thorium-medium +block-ore-lead-medium rotate: false - xy: 1289, 545 + xy: 1641, 625 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-thorium-small +block-ore-lead-small rotate: false - xy: 1912, 666 + xy: 1060, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-thorium-tiny +block-ore-lead-tiny rotate: false - xy: 1131, 287 + xy: 1853, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-thorium-xlarge +block-ore-lead-xlarge rotate: false xy: 281, 569 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-titanium-large +block-ore-scrap-large rotate: false - xy: 929, 891 + xy: 821, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-titanium-medium +block-ore-scrap-medium rotate: false - xy: 1323, 545 + xy: 1641, 591 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-titanium-small +block-ore-scrap-small rotate: false - xy: 1835, 562 + xy: 1086, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-titanium-tiny +block-ore-scrap-tiny rotate: false - xy: 1149, 287 + xy: 1871, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-titanium-xlarge +block-ore-scrap-xlarge rotate: false xy: 301, 519 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-dome-large +block-ore-thorium-large rotate: false - xy: 971, 891 + xy: 863, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-dome-medium +block-ore-thorium-medium rotate: false - xy: 1357, 545 + xy: 1437, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-dome-small +block-ore-thorium-small rotate: false - xy: 1883, 614 + xy: 1112, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-dome-tiny +block-ore-thorium-tiny rotate: false - xy: 1167, 287 + xy: 1889, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-dome-xlarge +block-ore-thorium-xlarge rotate: false xy: 301, 469 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-projector-large +block-ore-titanium-large rotate: false - xy: 1013, 891 + xy: 905, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-projector-medium +block-ore-titanium-medium rotate: false - xy: 1391, 545 + xy: 1471, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-projector-small +block-ore-titanium-small rotate: false - xy: 1861, 588 + xy: 1138, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-projector-tiny +block-ore-titanium-tiny rotate: false - xy: 1185, 287 + xy: 1907, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-projector-xlarge +block-ore-titanium-xlarge rotate: false xy: 301, 419 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overflow-gate-large +block-overdrive-dome-large rotate: false - xy: 1055, 891 + xy: 947, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overflow-gate-medium +block-overdrive-dome-medium rotate: false - xy: 1425, 545 + xy: 1505, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overflow-gate-small +block-overdrive-dome-small rotate: false - xy: 1909, 640 + xy: 1164, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overflow-gate-tiny +block-overdrive-dome-tiny rotate: false - xy: 1203, 287 + xy: 1925, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overflow-gate-xlarge +block-overdrive-dome-xlarge rotate: false xy: 301, 369 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-parallax-large +block-overdrive-projector-large rotate: false - xy: 1097, 891 + xy: 989, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-parallax-medium +block-overdrive-projector-medium rotate: false - xy: 1459, 545 + xy: 1539, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-parallax-small +block-overdrive-projector-small rotate: false - xy: 1938, 666 + xy: 1190, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-parallax-tiny +block-overdrive-projector-tiny rotate: false - xy: 1221, 287 + xy: 1945, 662 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-parallax-xlarge +block-overdrive-projector-xlarge rotate: false xy: 301, 319 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-payload-router-large +block-overflow-gate-large rotate: false - xy: 1139, 891 + xy: 1031, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-payload-router-medium +block-overflow-gate-medium rotate: false - xy: 1493, 545 + xy: 1573, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-payload-router-small +block-overflow-gate-small rotate: false - xy: 1835, 536 + xy: 1216, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-payload-router-tiny +block-overflow-gate-tiny rotate: false - xy: 1239, 287 + xy: 1943, 644 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-payload-router-xlarge +block-overflow-gate-xlarge rotate: false xy: 301, 269 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pebbles-large +block-parallax-large rotate: false - xy: 1181, 891 + xy: 1073, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pebbles-medium +block-parallax-medium rotate: false - xy: 1527, 545 + xy: 1607, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pebbles-small +block-parallax-small rotate: false - xy: 1820, 510 + xy: 1242, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pebbles-tiny +block-parallax-tiny rotate: false - xy: 1257, 287 + xy: 1943, 626 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pebbles-xlarge +block-parallax-xlarge rotate: false xy: 301, 219 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conduit-large +block-payload-conveyor-large rotate: false - xy: 1223, 891 + xy: 1115, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conduit-medium +block-payload-conveyor-medium rotate: false - xy: 1047, 511 + xy: 1641, 557 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conduit-small +block-payload-conveyor-small rotate: false - xy: 1861, 562 + xy: 1268, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conduit-tiny +block-payload-conveyor-tiny rotate: false - xy: 1275, 287 + xy: 1943, 608 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conduit-xlarge +block-payload-conveyor-xlarge rotate: false xy: 301, 169 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conveyor-large +block-payload-router-large rotate: false - xy: 1265, 891 + xy: 1157, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-payload-router-medium rotate: false - xy: 1047, 477 + xy: 1433, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-payload-router-small rotate: false - xy: 1909, 614 + xy: 1294, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-payload-router-tiny rotate: false - xy: 1293, 287 + xy: 1943, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-payload-router-xlarge rotate: false xy: 301, 119 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large +block-pebbles-large rotate: false - xy: 1307, 891 + xy: 1199, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-large +block-pebbles-medium rotate: false - xy: 1349, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-medium - rotate: false - xy: 1081, 511 + xy: 1467, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-large-small +block-pebbles-small rotate: false - xy: 1887, 588 + xy: 1320, 216 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-large-tiny +block-pebbles-tiny rotate: false - xy: 1311, 287 + xy: 1943, 572 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-large-xlarge +block-pebbles-xlarge rotate: false xy: 301, 69 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-medium +block-phase-conduit-large rotate: false - xy: 1047, 443 + xy: 1241, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-conduit-medium + rotate: false + xy: 1501, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-small +block-phase-conduit-small rotate: false - xy: 1935, 640 + xy: 1346, 216 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-tiny +block-phase-conduit-tiny rotate: false - xy: 1329, 287 + xy: 1943, 554 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-xlarge +block-phase-conduit-xlarge rotate: false xy: 301, 19 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-weaver-large +block-phase-conveyor-large rotate: false - xy: 1391, 891 + xy: 1283, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-phase-conveyor-medium rotate: false - xy: 1081, 477 + xy: 1535, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-phase-conveyor-small rotate: false - xy: 1964, 666 + xy: 1372, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-phase-conveyor-tiny rotate: false - xy: 1347, 287 + xy: 1023, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-phase-conveyor-xlarge rotate: false xy: 795, 878 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large +block-phase-wall-large rotate: false - xy: 1433, 891 + xy: 1325, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pine-medium +block-phase-wall-large-large rotate: false - xy: 1115, 511 + 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-pine-small +block-phase-wall-large-small rotate: false - xy: 1820, 484 + xy: 1398, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pine-tiny +block-phase-wall-large-tiny rotate: false - xy: 1365, 287 + xy: 1041, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pine-xlarge +block-phase-wall-large-xlarge rotate: false xy: 309, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-compressor-large +block-phase-wall-medium rotate: false - xy: 1475, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-compressor-medium - rotate: false - xy: 1047, 409 + xy: 1603, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-compressor-small +block-phase-wall-small rotate: false - xy: 1861, 536 + xy: 1424, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-compressor-tiny +block-phase-wall-tiny rotate: false - xy: 1383, 287 + xy: 1059, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-compressor-xlarge +block-phase-wall-xlarge rotate: false xy: 309, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-conveyor-large +block-phase-weaver-large rotate: false - xy: 1517, 891 + xy: 1409, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-conveyor-medium +block-phase-weaver-medium rotate: false - xy: 1081, 443 + xy: 1637, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-conveyor-small +block-phase-weaver-small rotate: false - xy: 1846, 510 + xy: 1450, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-conveyor-tiny +block-phase-weaver-tiny rotate: false - xy: 1401, 287 + xy: 1077, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-conveyor-xlarge +block-phase-weaver-xlarge rotate: false xy: 359, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-large +block-pine-large rotate: false - xy: 1559, 891 + xy: 1451, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-wall-large-large +block-pine-medium rotate: false - xy: 1601, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-medium - rotate: false - xy: 1115, 477 + xy: 1433, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-large-small +block-pine-small rotate: false - xy: 1887, 562 + xy: 1476, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-large-tiny +block-pine-tiny rotate: false - xy: 1419, 287 + xy: 1095, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-large-xlarge +block-pine-xlarge rotate: false xy: 309, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-medium +block-plastanium-compressor-large rotate: false - xy: 1149, 511 + xy: 1493, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-compressor-medium + rotate: false + xy: 1467, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-small +block-plastanium-compressor-small rotate: false - xy: 1935, 614 + xy: 1502, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-tiny +block-plastanium-compressor-tiny rotate: false - xy: 1437, 287 + xy: 1113, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-xlarge +block-plastanium-compressor-xlarge rotate: false xy: 359, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plated-conduit-large +block-plastanium-conveyor-large rotate: false - xy: 1643, 891 + xy: 1535, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plated-conduit-medium +block-plastanium-conveyor-medium rotate: false - xy: 1047, 375 + xy: 1501, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plated-conduit-small +block-plastanium-conveyor-small rotate: false - xy: 1913, 588 + xy: 1528, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plated-conduit-tiny +block-plastanium-conveyor-tiny rotate: false - xy: 1455, 287 + xy: 1131, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plated-conduit-xlarge +block-plastanium-conveyor-xlarge rotate: false xy: 409, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pneumatic-drill-large +block-plastanium-wall-large rotate: false - xy: 1685, 891 + xy: 1577, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pneumatic-drill-medium +block-plastanium-wall-large-large rotate: false - xy: 1081, 409 + 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-pneumatic-drill-small +block-plastanium-wall-large-small rotate: false - xy: 1961, 640 + xy: 1554, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pneumatic-drill-tiny +block-plastanium-wall-large-tiny rotate: false - xy: 1473, 287 + xy: 1149, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pneumatic-drill-xlarge +block-plastanium-wall-large-xlarge rotate: false xy: 359, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-large +block-plastanium-wall-medium rotate: false - xy: 1727, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-large - rotate: false - xy: 1769, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-medium - rotate: false - xy: 1115, 443 + xy: 1569, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-large-small +block-plastanium-wall-small rotate: false - xy: 1990, 666 + xy: 1580, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-large-tiny +block-plastanium-wall-tiny rotate: false - xy: 1491, 287 + xy: 1167, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-large-xlarge +block-plastanium-wall-xlarge rotate: false xy: 409, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-medium +block-plated-conduit-large rotate: false - xy: 1149, 477 + xy: 1661, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plated-conduit-medium + rotate: false + xy: 1603, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-small +block-plated-conduit-small rotate: false - xy: 1820, 458 + xy: 1527, 832 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-tiny +block-plated-conduit-tiny rotate: false - xy: 1509, 287 + xy: 1185, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-xlarge +block-plated-conduit-xlarge rotate: false xy: 459, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-source-large +block-pneumatic-drill-large rotate: false - xy: 1811, 891 + xy: 1703, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-source-medium +block-pneumatic-drill-medium rotate: false - xy: 1183, 511 + xy: 1637, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-source-small +block-pneumatic-drill-small rotate: false - xy: 1846, 484 + xy: 1553, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-source-tiny +block-pneumatic-drill-tiny rotate: false - xy: 1527, 287 + xy: 1203, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-source-xlarge +block-pneumatic-drill-xlarge rotate: false xy: 409, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-void-large +block-power-node-large rotate: false - xy: 1853, 891 + xy: 1745, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-void-medium +block-power-node-large-large rotate: false - xy: 1081, 375 + 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-void-small +block-power-node-large-small rotate: false - xy: 1887, 536 + xy: 1579, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-void-tiny +block-power-node-large-tiny rotate: false - xy: 1545, 287 + xy: 1221, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-void-xlarge +block-power-node-large-xlarge rotate: false xy: 459, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulse-conduit-large +block-power-node-medium rotate: false - xy: 1895, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pulse-conduit-medium - rotate: false - xy: 1115, 409 + xy: 940, 216 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulse-conduit-small +block-power-node-small rotate: false - xy: 1872, 510 + xy: 1605, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulse-conduit-tiny +block-power-node-tiny rotate: false - xy: 1563, 287 + xy: 1239, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulse-conduit-xlarge +block-power-node-xlarge rotate: false xy: 509, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulverizer-large +block-power-source-large rotate: false - xy: 1937, 891 + xy: 1829, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulverizer-medium +block-power-source-medium rotate: false - xy: 1149, 443 + xy: 937, 182 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulverizer-small +block-power-source-small rotate: false - xy: 1913, 562 + xy: 1631, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulverizer-tiny +block-power-source-tiny rotate: false - xy: 719, 322 + xy: 1257, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulverizer-xlarge +block-power-source-xlarge rotate: false xy: 459, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pyratite-mixer-large +block-power-void-large rotate: false - xy: 859, 849 + xy: 1871, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pyratite-mixer-medium +block-power-void-medium rotate: false - xy: 1183, 477 + xy: 1671, 523 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pyratite-mixer-small +block-power-void-small rotate: false - xy: 1961, 614 + xy: 1657, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pyratite-mixer-tiny +block-power-void-tiny rotate: false - xy: 719, 304 + xy: 1275, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pyratite-mixer-xlarge +block-power-void-xlarge rotate: false xy: 509, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-repair-point-large +block-pulse-conduit-large rotate: false - xy: 859, 807 + xy: 1913, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-repair-point-medium +block-pulse-conduit-medium rotate: false - xy: 1217, 511 + xy: 1671, 489 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-repair-point-small +block-pulse-conduit-small rotate: false - xy: 1939, 588 + xy: 1683, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-repair-point-tiny +block-pulse-conduit-tiny rotate: false - xy: 719, 286 + xy: 1293, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-repair-point-xlarge +block-pulse-conduit-xlarge rotate: false xy: 559, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-resupply-point-large +block-pulverizer-large rotate: false - xy: 901, 849 + xy: 1955, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-resupply-point-medium +block-pulverizer-medium rotate: false - xy: 1115, 375 + xy: 945, 513 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-resupply-point-small +block-pulverizer-small rotate: false - xy: 1987, 640 + xy: 1709, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-resupply-point-tiny +block-pulverizer-tiny rotate: false - xy: 737, 313 + xy: 1023, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-resupply-point-xlarge +block-pulverizer-xlarge rotate: false xy: 509, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ripple-large +block-pyratite-mixer-large rotate: false - xy: 859, 765 + xy: 845, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ripple-medium +block-pyratite-mixer-medium rotate: false - xy: 1149, 409 + xy: 945, 479 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ripple-small +block-pyratite-mixer-small rotate: false - xy: 1820, 432 + xy: 1735, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ripple-tiny +block-pyratite-mixer-tiny rotate: false - xy: 737, 295 + xy: 1041, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ripple-xlarge +block-pyratite-mixer-xlarge rotate: false xy: 559, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rock-large +block-repair-point-large rotate: false - xy: 943, 849 + xy: 887, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rock-medium +block-repair-point-medium rotate: false - xy: 1183, 443 + xy: 945, 445 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rock-small +block-repair-point-small rotate: false - xy: 1820, 406 + xy: 1761, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rock-tiny +block-repair-point-tiny rotate: false - xy: 755, 298 + xy: 1059, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rock-xlarge +block-repair-point-xlarge rotate: false xy: 609, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rocks-large +block-resupply-point-large rotate: false - xy: 901, 807 + xy: 929, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rocks-medium +block-resupply-point-medium rotate: false - xy: 1217, 477 + xy: 945, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rocks-small +block-resupply-point-small rotate: false - xy: 1846, 458 + xy: 1787, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rocks-tiny +block-resupply-point-tiny rotate: false - xy: 773, 298 + xy: 1077, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rocks-xlarge +block-resupply-point-xlarge rotate: false xy: 559, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rotary-pump-large +block-ripple-large rotate: false - xy: 859, 723 + xy: 971, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rotary-pump-medium +block-ripple-medium rotate: false - xy: 1251, 511 + xy: 945, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rotary-pump-small +block-ripple-small rotate: false - xy: 1872, 484 + xy: 1813, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rotary-pump-tiny +block-ripple-tiny rotate: false - xy: 791, 298 + xy: 1095, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rotary-pump-xlarge +block-ripple-xlarge rotate: false xy: 609, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-router-large +block-rock-large rotate: false - xy: 985, 849 + xy: 1013, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-router-medium +block-rock-medium rotate: false - xy: 1149, 375 + xy: 945, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-router-small +block-rock-small rotate: false - xy: 1913, 536 + xy: 1839, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-router-tiny +block-rock-tiny rotate: false - xy: 809, 298 + xy: 1113, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-router-xlarge +block-rock-xlarge rotate: false xy: 659, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rtg-generator-large +block-rocks-large rotate: false - xy: 943, 807 + xy: 1055, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rtg-generator-medium +block-rocks-medium rotate: false - xy: 1183, 409 + xy: 945, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rtg-generator-small +block-rocks-small rotate: false - xy: 1898, 510 + xy: 1865, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rtg-generator-tiny +block-rocks-tiny rotate: false - xy: 827, 298 + xy: 1131, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rtg-generator-xlarge +block-rocks-xlarge rotate: false xy: 609, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salt-large +block-rotary-pump-large rotate: false - xy: 901, 765 + xy: 1097, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salt-medium +block-rotary-pump-medium rotate: false - xy: 1217, 443 + xy: 979, 516 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salt-small +block-rotary-pump-small rotate: false - xy: 1939, 562 + xy: 1891, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salt-tiny +block-rotary-pump-tiny rotate: false - xy: 845, 298 + xy: 1149, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salt-xlarge +block-rotary-pump-xlarge rotate: false xy: 659, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-saltrocks-large +block-router-large rotate: false - xy: 859, 681 + xy: 1139, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-saltrocks-medium +block-router-medium rotate: false - xy: 1251, 477 + xy: 1013, 516 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-saltrocks-small +block-router-small rotate: false - xy: 1987, 614 + xy: 1917, 836 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-saltrocks-tiny +block-router-tiny rotate: false - xy: 863, 298 + xy: 1167, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-saltrocks-xlarge +block-router-xlarge rotate: false xy: 709, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salvo-large +block-rtg-generator-large rotate: false - xy: 1027, 849 + xy: 1181, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salvo-medium +block-rtg-generator-medium rotate: false - xy: 1285, 511 + xy: 979, 482 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salvo-small +block-rtg-generator-small rotate: false - xy: 1965, 588 + xy: 1557, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salvo-tiny +block-rtg-generator-tiny rotate: false - xy: 645, 4 + xy: 1185, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salvo-xlarge +block-rtg-generator-xlarge rotate: false xy: 659, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-boulder-large +block-salt-large rotate: false - xy: 985, 807 + xy: 1223, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-boulder-medium +block-salt-medium rotate: false - xy: 1183, 375 + xy: 979, 448 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-boulder-small +block-salt-small rotate: false - xy: 1846, 432 + xy: 1583, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-boulder-tiny +block-salt-tiny rotate: false - xy: 663, 4 + xy: 1203, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-boulder-xlarge +block-salt-xlarge rotate: false xy: 709, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-large +block-saltrocks-large rotate: false - xy: 943, 765 + xy: 1265, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-medium +block-saltrocks-medium rotate: false - xy: 1217, 409 + xy: 1013, 482 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-small +block-saltrocks-small rotate: false - xy: 1872, 458 + xy: 1609, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-tiny +block-saltrocks-tiny rotate: false - xy: 681, 4 + xy: 1221, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-water-large - rotate: false - xy: 901, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-water-medium - rotate: false - xy: 1251, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-water-small - rotate: false - xy: 1898, 484 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-water-tiny - rotate: false - xy: 699, 4 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-water-xlarge +block-saltrocks-xlarge rotate: false xy: 709, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-xlarge +block-salvo-large + rotate: false + xy: 1307, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-salvo-medium + rotate: false + xy: 979, 414 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-salvo-small + rotate: false + xy: 1635, 810 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-salvo-tiny + rotate: false + xy: 1239, 175 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-salvo-xlarge rotate: false xy: 759, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sandrocks-large +block-sand-boulder-large rotate: false - xy: 1069, 849 + xy: 1349, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sandrocks-medium +block-sand-boulder-medium rotate: false - xy: 1285, 477 + xy: 1013, 448 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sandrocks-small +block-sand-boulder-small rotate: false - xy: 1939, 536 + xy: 1661, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sandrocks-tiny +block-sand-boulder-tiny rotate: false - xy: 1799, 292 + xy: 1257, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sandrocks-xlarge +block-sand-boulder-xlarge rotate: false xy: 759, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scatter-large +block-sand-large rotate: false - xy: 1027, 807 + xy: 1391, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scatter-medium +block-sand-medium rotate: false - xy: 1319, 511 + xy: 979, 380 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scatter-small +block-sand-small rotate: false - xy: 1924, 510 + xy: 1687, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scatter-tiny +block-sand-tiny rotate: false - xy: 1817, 292 + xy: 1275, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scatter-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-scorch-large - rotate: false - xy: 985, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scorch-medium - rotate: false - xy: 1217, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scorch-small - rotate: false - xy: 1965, 562 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scorch-tiny - rotate: false - xy: 1835, 292 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scorch-xlarge +block-sand-xlarge rotate: false xy: 809, 828 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-large +block-sandrocks-large rotate: false - xy: 943, 723 + xy: 1475, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-medium +block-sandrocks-medium rotate: false - xy: 1251, 409 + xy: 979, 346 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-small +block-sandrocks-small rotate: false - xy: 1846, 406 + xy: 1739, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-tiny +block-sandrocks-tiny rotate: false - xy: 1853, 292 + xy: 1973, 813 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-xlarge +block-sandrocks-xlarge rotate: false xy: 809, 778 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-huge-large +block-scatter-large rotate: false - xy: 901, 681 + xy: 1517, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-huge-medium +block-scatter-medium rotate: false - xy: 1285, 443 + xy: 1013, 380 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-huge-small +block-scatter-small rotate: false - xy: 1844, 380 + xy: 1765, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-huge-tiny +block-scatter-tiny rotate: false - xy: 1871, 292 + xy: 1991, 813 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-huge-xlarge +block-scatter-xlarge rotate: false xy: 809, 728 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-large +block-scorch-large rotate: false - xy: 1111, 849 + xy: 1559, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-large-large +block-scorch-medium rotate: false - xy: 1069, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-medium - rotate: false - xy: 1319, 477 + xy: 979, 312 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-large-small +block-scorch-small rotate: false - xy: 1872, 432 + xy: 1791, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-large-tiny +block-scorch-tiny rotate: false - xy: 1889, 292 + xy: 1977, 795 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-large-xlarge +block-scorch-xlarge rotate: false xy: 809, 678 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-medium +block-scrap-wall-gigantic-large rotate: false - xy: 1353, 511 + xy: 1601, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-medium + rotate: false + xy: 1013, 346 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-small +block-scrap-wall-gigantic-small rotate: false - xy: 1898, 458 + xy: 1817, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-tiny +block-scrap-wall-gigantic-tiny rotate: false - xy: 1907, 292 + xy: 1995, 795 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-xlarge +block-scrap-wall-gigantic-xlarge rotate: false xy: 331, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-segment-large +block-scrap-wall-huge-large rotate: false - xy: 1027, 765 + xy: 1643, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-segment-medium +block-scrap-wall-huge-medium rotate: false - xy: 1251, 375 + xy: 1013, 312 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-segment-small +block-scrap-wall-huge-small rotate: false - xy: 1924, 484 + xy: 1843, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-segment-tiny +block-scrap-wall-huge-tiny rotate: false - xy: 1925, 292 + xy: 2013, 800 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-segment-xlarge +block-scrap-wall-huge-xlarge rotate: false xy: 331, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-separator-large +block-scrap-wall-large rotate: false - xy: 985, 723 + xy: 1685, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-separator-medium +block-scrap-wall-large-large rotate: false - xy: 1285, 409 + 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-separator-small +block-scrap-wall-large-small rotate: false - xy: 1965, 536 + xy: 1869, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-separator-tiny +block-scrap-wall-large-tiny rotate: false - xy: 1943, 292 + xy: 2031, 800 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-separator-xlarge +block-scrap-wall-large-xlarge rotate: false xy: 381, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-boulder-large +block-scrap-wall-medium rotate: false - xy: 943, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shale-boulder-medium - rotate: false - xy: 1319, 443 + xy: 1081, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-boulder-small +block-scrap-wall-small rotate: false - xy: 1950, 510 + xy: 1895, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-boulder-tiny +block-scrap-wall-tiny rotate: false - xy: 1961, 292 + xy: 1973, 740 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-boulder-xlarge +block-scrap-wall-xlarge rotate: false xy: 381, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-large +block-segment-large rotate: false - xy: 1153, 849 + xy: 1769, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-medium +block-segment-medium rotate: false - xy: 1353, 477 + xy: 1047, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-small +block-segment-small rotate: false - xy: 1872, 406 + xy: 1921, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-tiny +block-segment-tiny rotate: false - xy: 1979, 292 + xy: 1973, 722 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-xlarge +block-segment-xlarge rotate: false xy: 431, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shalerocks-large +block-separator-large rotate: false - xy: 1111, 807 + xy: 1811, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shalerocks-medium +block-separator-medium rotate: false - xy: 1387, 511 + xy: 1115, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shalerocks-small +block-separator-small rotate: false - xy: 1870, 380 + xy: 1587, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shalerocks-tiny +block-separator-tiny rotate: false - xy: 1997, 292 + xy: 1973, 704 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shalerocks-xlarge +block-separator-xlarge rotate: false xy: 431, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shock-mine-large +block-shale-boulder-large rotate: false - xy: 1069, 765 + xy: 1853, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shock-mine-medium +block-shale-boulder-medium rotate: false - xy: 1285, 375 + xy: 1047, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shock-mine-small +block-shale-boulder-small rotate: false - xy: 1851, 354 + xy: 1613, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shock-mine-tiny +block-shale-boulder-tiny rotate: false - xy: 2015, 292 + xy: 1973, 686 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shock-mine-xlarge +block-shale-boulder-xlarge rotate: false xy: 481, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shrubs-large +block-shale-large rotate: false - xy: 1027, 723 + xy: 1895, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shrubs-medium +block-shale-medium rotate: false - xy: 1319, 409 + xy: 1081, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shrubs-small +block-shale-small rotate: false - xy: 1898, 432 + xy: 1639, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shrubs-tiny +block-shale-tiny rotate: false - xy: 1581, 318 + xy: 1963, 668 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shrubs-xlarge +block-shale-xlarge rotate: false xy: 481, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-crucible-large +block-shalerocks-large rotate: false - xy: 985, 681 + xy: 1937, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-crucible-medium +block-shalerocks-medium rotate: false - xy: 1353, 443 + xy: 1149, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-crucible-small +block-shalerocks-small rotate: false - xy: 1924, 458 + xy: 1665, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-crucible-tiny +block-shalerocks-tiny rotate: false - xy: 1599, 318 + xy: 1981, 668 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-crucible-xlarge +block-shalerocks-xlarge rotate: false xy: 531, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-smelter-large +block-shock-mine-large rotate: false - xy: 1195, 849 + xy: 859, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-smelter-medium +block-shock-mine-medium rotate: false - xy: 1387, 477 + xy: 1047, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-smelter-small +block-shock-mine-small rotate: false - xy: 1950, 484 + xy: 1691, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-smelter-tiny +block-shock-mine-tiny rotate: false - xy: 1581, 300 + xy: 1727, 543 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-smelter-xlarge +block-shock-mine-xlarge rotate: false xy: 531, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-slag-large +block-shrubs-large rotate: false - xy: 1153, 807 + xy: 859, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-slag-medium +block-shrubs-medium rotate: false - xy: 1421, 511 + xy: 1081, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-slag-small +block-shrubs-small rotate: false - xy: 1851, 328 + xy: 1717, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-slag-tiny +block-shrubs-tiny rotate: false - xy: 1617, 318 + xy: 1723, 525 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-slag-xlarge +block-shrubs-xlarge rotate: false xy: 581, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-large +block-silicon-crucible-large rotate: false - xy: 1111, 765 + xy: 901, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-medium +block-silicon-crucible-medium rotate: false - xy: 1319, 375 + xy: 1115, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-large +block-silicon-crucible-small rotate: false - xy: 1069, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-pine-medium - rotate: false - xy: 1353, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-pine-small - rotate: false - xy: 1898, 406 + xy: 1743, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-pine-tiny +block-silicon-crucible-tiny rotate: false - xy: 1599, 300 + xy: 1723, 507 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-pine-xlarge +block-silicon-crucible-xlarge rotate: false xy: 581, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-small +block-silicon-smelter-large rotate: false - xy: 1896, 380 + xy: 859, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-silicon-smelter-medium + rotate: false + xy: 1183, 511 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-silicon-smelter-small + rotate: false + xy: 1769, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-tiny +block-silicon-smelter-tiny rotate: false - xy: 1635, 318 + xy: 1745, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-xlarge +block-silicon-smelter-xlarge rotate: false xy: 631, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrock-large +block-slag-large rotate: false - xy: 1027, 681 + xy: 943, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrock-medium +block-slag-medium rotate: false - xy: 1387, 443 + xy: 1047, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrock-small +block-slag-small rotate: false - xy: 1877, 354 + xy: 1795, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrock-tiny +block-slag-tiny rotate: false - xy: 1617, 300 + xy: 1763, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrock-xlarge +block-slag-xlarge rotate: false xy: 631, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-large +block-snow-large rotate: false - xy: 1237, 849 + xy: 901, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrocks-medium +block-snow-medium rotate: false - xy: 1421, 477 + xy: 1081, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrocks-small +block-snow-pine-large rotate: false - xy: 1924, 432 + 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-snowrocks-tiny +block-snow-pine-tiny rotate: false - xy: 1635, 300 + xy: 1781, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrocks-xlarge +block-snow-pine-xlarge rotate: false xy: 681, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-large +block-snow-small rotate: false - xy: 1195, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-large - rotate: false - xy: 1153, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-medium - rotate: false - xy: 1455, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-solar-panel-large-small - rotate: false - xy: 1950, 458 + xy: 1847, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-large-tiny +block-snow-tiny rotate: false - xy: 1581, 282 + xy: 1799, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-large-xlarge +block-snow-xlarge rotate: false xy: 681, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-medium +block-snowrock-large rotate: false - xy: 1353, 375 + xy: 985, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snowrock-medium + rotate: false + xy: 1149, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-small +block-snowrock-small rotate: false - xy: 1877, 328 + xy: 1873, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-tiny +block-snowrock-tiny rotate: false - xy: 1599, 282 + xy: 1817, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-xlarge +block-snowrock-xlarge rotate: false xy: 731, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sorter-large +block-snowrocks-large rotate: false - xy: 1111, 723 + xy: 943, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sorter-medium +block-snowrocks-medium rotate: false - xy: 1387, 409 + xy: 1217, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sorter-small +block-snowrocks-small rotate: false - xy: 1924, 406 + xy: 1899, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sorter-tiny +block-snowrocks-tiny rotate: false - xy: 1617, 282 + xy: 1835, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sorter-xlarge +block-snowrocks-xlarge rotate: false xy: 731, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spawn-large +block-solar-panel-large rotate: false - xy: 1069, 681 + xy: 901, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spawn-medium +block-solar-panel-large-large rotate: false - xy: 1421, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spawn-small - rotate: false - xy: 1922, 380 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spawn-tiny - rotate: false - xy: 1635, 282 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spawn-xlarge - rotate: false - xy: 781, 628 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spectre-large - rotate: false - xy: 1279, 849 + xy: 859, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spectre-medium - rotate: false - xy: 1455, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spectre-small - rotate: false - xy: 1903, 354 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spectre-tiny - rotate: false - xy: 1591, 540 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spectre-xlarge - rotate: false - xy: 831, 628 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spore-cluster-large - rotate: false - xy: 1237, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spore-cluster-medium - rotate: false - xy: 1489, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spore-cluster-small - rotate: false - xy: 1950, 432 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spore-cluster-tiny - rotate: false - xy: 2028, 392 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spore-cluster-xlarge - rotate: false - xy: 781, 578 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spore-moss-large - rotate: false - xy: 1195, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spore-moss-medium - rotate: false - xy: 1387, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spore-moss-small - rotate: false - xy: 1903, 328 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spore-moss-tiny - rotate: false - xy: 755, 280 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spore-moss-xlarge - rotate: false - xy: 831, 578 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spore-pine-large - rotate: false - xy: 1153, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spore-pine-medium - rotate: false - xy: 1421, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spore-pine-small - rotate: false - xy: 1950, 406 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spore-pine-tiny - rotate: false - xy: 773, 280 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spore-pine-xlarge - rotate: false - xy: 351, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-spore-press-large - rotate: false - xy: 1111, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spore-press-medium - rotate: false - xy: 1455, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spore-press-small - rotate: false - xy: 1948, 380 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spore-press-tiny - rotate: false - xy: 791, 280 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spore-press-xlarge - rotate: false - xy: 351, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sporerocks-large - rotate: false - xy: 1321, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sporerocks-medium - rotate: false - xy: 1489, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sporerocks-small - rotate: false - xy: 1929, 354 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sporerocks-tiny - rotate: false - xy: 809, 280 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sporerocks-xlarge - rotate: false - xy: 401, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-stone-large - rotate: false - xy: 1279, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-stone-medium - rotate: false - xy: 1523, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-stone-small - rotate: false - xy: 1929, 328 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-stone-tiny - rotate: false - xy: 827, 280 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-stone-xlarge - rotate: false - xy: 351, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-tower-large - rotate: false - xy: 1237, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-tower-medium - rotate: false - xy: 1421, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-tower-small - rotate: false - xy: 1991, 588 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-tower-tiny - rotate: false - xy: 845, 280 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-tower-xlarge - rotate: false - xy: 401, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-wall-large - rotate: false - xy: 1195, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-large - rotate: false - xy: 1153, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-medium - rotate: false - xy: 1455, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-wall-large-small - rotate: false - xy: 1991, 562 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-wall-large-tiny - rotate: false - xy: 863, 280 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-wall-large-xlarge - rotate: false - xy: 451, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-wall-medium - rotate: false - xy: 1489, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-wall-small - rotate: false - xy: 1991, 536 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-wall-tiny - rotate: false - xy: 753, 262 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-wall-xlarge - rotate: false - xy: 351, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-swarmer-large - rotate: false - xy: 1363, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-swarmer-medium - rotate: false - xy: 1523, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-swarmer-small - rotate: false - xy: 1976, 510 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-swarmer-tiny - rotate: false - xy: 753, 244 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-swarmer-xlarge - rotate: false - xy: 401, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tainted-water-large - rotate: false - xy: 1321, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tainted-water-medium - rotate: false - xy: 1455, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tainted-water-small - rotate: false - xy: 1976, 484 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tainted-water-tiny - rotate: false - xy: 771, 262 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tainted-water-xlarge - rotate: false - xy: 451, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tar-large - rotate: false - xy: 1279, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tar-medium - rotate: false - xy: 1489, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tar-small - rotate: false - xy: 1976, 458 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tar-tiny - rotate: false - xy: 789, 262 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tar-xlarge - rotate: false - xy: 501, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tendrils-large - rotate: false - xy: 1237, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tendrils-medium - rotate: false - xy: 1523, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tendrils-small - rotate: false - xy: 1976, 432 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tendrils-tiny - rotate: false - xy: 771, 244 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tendrils-xlarge - rotate: false - xy: 351, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-large - rotate: false - xy: 1195, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-medium - rotate: false - xy: 1489, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-small - rotate: false - xy: 1976, 406 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-tiny - rotate: false - xy: 807, 262 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-xlarge - rotate: false - xy: 401, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thermal-generator-large - rotate: false - xy: 1405, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thermal-generator-medium - rotate: false - xy: 1523, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thermal-generator-small - rotate: false - xy: 1974, 380 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thermal-generator-tiny - rotate: false - xy: 789, 244 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thermal-generator-xlarge - rotate: false - xy: 451, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thermal-pump-large - rotate: false - xy: 1363, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thermal-pump-medium - rotate: false - xy: 1523, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thermal-pump-small - rotate: false - xy: 1955, 354 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thermal-pump-tiny - rotate: false - xy: 825, 262 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thermal-pump-xlarge - rotate: false - xy: 501, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thorium-reactor-large - rotate: false - xy: 1321, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thorium-reactor-medium +block-solar-panel-large-medium rotate: false xy: 1047, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-reactor-small +block-solar-panel-large-small rotate: false - xy: 1955, 328 + xy: 1925, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-reactor-tiny +block-solar-panel-large-tiny rotate: false - xy: 843, 262 + xy: 1853, 536 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-reactor-xlarge +block-solar-panel-large-xlarge rotate: false - xy: 551, 566 + xy: 781, 628 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-large +block-solar-panel-medium rotate: false - xy: 1279, 723 + xy: 1081, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-solar-panel-small + rotate: false + xy: 1617, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-solar-panel-tiny + rotate: false + xy: 1871, 536 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-solar-panel-xlarge + rotate: false + xy: 831, 628 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sorter-large + rotate: false + xy: 1027, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-sorter-medium rotate: false - xy: 1237, 681 + xy: 1115, 409 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sorter-small + rotate: false + xy: 1643, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sorter-tiny + rotate: false + xy: 1889, 536 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sorter-xlarge + rotate: false + xy: 781, 578 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spawn-large + rotate: false + xy: 985, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-medium +block-spawn-medium + rotate: false + xy: 1149, 443 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spawn-small + rotate: false + xy: 1669, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spawn-tiny + rotate: false + xy: 1907, 536 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spawn-xlarge + rotate: false + xy: 831, 578 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spectre-large + rotate: false + xy: 943, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spectre-medium + rotate: false + xy: 1183, 477 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spectre-small + rotate: false + xy: 1617, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spectre-tiny + rotate: false + xy: 1925, 536 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spectre-xlarge + rotate: false + xy: 351, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spore-cluster-large + rotate: false + xy: 901, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spore-cluster-medium + rotate: false + xy: 1251, 511 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spore-cluster-small + rotate: false + xy: 1643, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spore-cluster-tiny + rotate: false + xy: 1943, 536 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spore-cluster-xlarge + rotate: false + xy: 351, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spore-moss-large + rotate: false + xy: 1069, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spore-moss-medium rotate: false xy: 1081, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-spore-moss-small rotate: false - xy: 1981, 354 + xy: 1669, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-spore-moss-tiny rotate: false - xy: 807, 244 + xy: 1741, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-spore-moss-xlarge rotate: false - xy: 351, 316 + xy: 401, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium +block-spore-pine-large + rotate: false + xy: 1027, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spore-pine-medium + rotate: false + xy: 1115, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spore-pine-small + rotate: false + xy: 1695, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spore-pine-tiny + rotate: false + xy: 1759, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spore-pine-xlarge + rotate: false + xy: 351, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spore-press-large + rotate: false + xy: 985, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spore-press-medium + rotate: false + xy: 1149, 409 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spore-press-small + rotate: false + xy: 1721, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spore-press-tiny + rotate: false + xy: 1777, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spore-press-xlarge + rotate: false + xy: 401, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sporerocks-large + rotate: false + xy: 943, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sporerocks-medium + rotate: false + xy: 1183, 443 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sporerocks-small + rotate: false + xy: 1695, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sporerocks-tiny + rotate: false + xy: 1795, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sporerocks-xlarge + rotate: false + xy: 451, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-stone-large + rotate: false + xy: 901, 681 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-stone-medium + rotate: false + xy: 1217, 477 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-stone-small + rotate: false + xy: 1747, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-stone-tiny + rotate: false + xy: 1813, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-stone-xlarge + rotate: false + xy: 351, 416 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-surge-tower-large + rotate: false + 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-tower-small + rotate: false + xy: 1721, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-surge-tower-tiny + rotate: false + xy: 1831, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-surge-tower-xlarge + rotate: false + xy: 401, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-surge-wall-large + rotate: false + xy: 1069, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-wall-large-large + rotate: false + 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-thorium-wall-small +block-surge-wall-large-small rotate: false - xy: 1981, 328 + xy: 1773, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-tiny +block-surge-wall-large-tiny rotate: false - xy: 861, 262 + xy: 1849, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-xlarge +block-surge-wall-large-xlarge rotate: false - xy: 401, 366 + xy: 451, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thruster-large +block-surge-wall-medium rotate: false - xy: 1447, 849 + xy: 1149, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-surge-wall-small + rotate: false + xy: 1747, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-surge-wall-tiny + rotate: false + xy: 1867, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-surge-wall-xlarge + rotate: false + xy: 501, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-swarmer-large + rotate: false + xy: 985, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium +block-swarmer-medium + rotate: false + xy: 1183, 409 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-swarmer-small + rotate: false + xy: 1799, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-swarmer-tiny + rotate: false + xy: 1885, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-swarmer-xlarge + rotate: false + xy: 351, 366 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-switch-large + rotate: false + xy: 943, 681 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-switch-medium + rotate: false + xy: 1217, 443 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-switch-small + rotate: false + xy: 1773, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-switch-tiny + rotate: false + xy: 1903, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-switch-xlarge + rotate: false + xy: 401, 416 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tainted-water-large + rotate: false + xy: 1153, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tainted-water-medium + rotate: false + xy: 1251, 477 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tainted-water-small + rotate: false + xy: 1825, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tainted-water-tiny + rotate: false + xy: 1921, 518 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tainted-water-xlarge + rotate: false + xy: 451, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tar-large + rotate: false + xy: 1111, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tar-medium rotate: false xy: 1149, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thruster-small +block-tar-small rotate: false - xy: 2016, 666 + xy: 1799, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thruster-tiny +block-tar-tiny rotate: false - xy: 825, 244 + xy: 1939, 518 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thruster-xlarge +block-tar-xlarge + rotate: false + xy: 501, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tendrils-large + rotate: false + xy: 1069, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tendrils-medium + rotate: false + xy: 1183, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tendrils-small + rotate: false + xy: 1851, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tendrils-tiny + rotate: false + xy: 1741, 500 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tendrils-xlarge + rotate: false + xy: 551, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-large + rotate: false + xy: 1027, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-medium + rotate: false + xy: 1217, 409 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-small + rotate: false + xy: 1825, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-tiny + rotate: false + xy: 1759, 500 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-xlarge + rotate: false + xy: 351, 316 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thermal-generator-large + rotate: false + xy: 985, 681 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thermal-generator-medium + rotate: false + xy: 1251, 443 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thermal-generator-small + rotate: false + xy: 1877, 758 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thermal-generator-tiny + rotate: false + xy: 1777, 500 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thermal-generator-xlarge + rotate: false + xy: 401, 366 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thermal-pump-large + rotate: false + xy: 1195, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thermal-pump-medium + rotate: false + xy: 1285, 477 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thermal-pump-small + rotate: false + xy: 1851, 732 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thermal-pump-tiny + rotate: false + xy: 1795, 500 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thermal-pump-xlarge rotate: false xy: 451, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-conveyor-large +block-thorium-reactor-large rotate: false - xy: 1405, 807 + xy: 1153, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-conveyor-medium +block-thorium-reactor-medium rotate: false xy: 1183, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-thorium-reactor-small rotate: false - xy: 2013, 640 + xy: 1903, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-thorium-reactor-tiny rotate: false - xy: 843, 244 + xy: 1813, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-thorium-reactor-xlarge rotate: false xy: 501, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-thorium-wall-large rotate: false - xy: 1363, 765 + xy: 1111, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-large +block-thorium-wall-large-large rotate: false - xy: 1321, 723 + xy: 1069, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-medium +block-thorium-wall-large-medium rotate: false - xy: 1217, 341 + xy: 1217, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-large-small +block-thorium-wall-large-small rotate: false - xy: 2013, 614 + xy: 1877, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-large-tiny +block-thorium-wall-large-tiny rotate: false - xy: 861, 244 + xy: 1831, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-large-xlarge +block-thorium-wall-large-xlarge rotate: false xy: 551, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-medium +block-thorium-wall-medium rotate: false - xy: 1251, 341 + xy: 1251, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-small +block-thorium-wall-small rotate: false - xy: 2017, 588 + xy: 1903, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-tiny +block-thorium-wall-tiny rotate: false - xy: 787, 226 + xy: 1849, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-xlarge +block-thorium-wall-xlarge rotate: false xy: 601, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-turbine-generator-large +block-thruster-large rotate: false - xy: 1279, 681 + xy: 1027, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-turbine-generator-medium +block-thruster-medium rotate: false - xy: 1285, 341 + xy: 1285, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-turbine-generator-small +block-thruster-small rotate: false - xy: 2017, 562 + xy: 1929, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-turbine-generator-tiny +block-thruster-tiny rotate: false - xy: 787, 208 + xy: 1867, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-turbine-generator-xlarge +block-thruster-xlarge rotate: false xy: 351, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-underflow-gate-large +block-titanium-conveyor-large rotate: false - xy: 1489, 849 + xy: 1237, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-underflow-gate-medium +block-titanium-conveyor-medium rotate: false - xy: 1319, 341 + xy: 1217, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-underflow-gate-small +block-titanium-conveyor-small rotate: false - xy: 2017, 536 + xy: 1929, 732 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-underflow-gate-tiny +block-titanium-conveyor-tiny rotate: false - xy: 805, 226 + xy: 1885, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-underflow-gate-xlarge +block-titanium-conveyor-xlarge rotate: false xy: 401, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-unloader-large +block-titanium-wall-large rotate: false - xy: 1447, 807 + xy: 1195, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-unloader-medium +block-titanium-wall-large-large rotate: false - xy: 1353, 341 + 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-unloader-small +block-titanium-wall-large-small rotate: false - xy: 2002, 510 + xy: 1643, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-unloader-tiny +block-titanium-wall-large-tiny rotate: false - xy: 787, 190 + xy: 1903, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-unloader-xlarge +block-titanium-wall-large-xlarge rotate: false xy: 451, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-vault-large +block-titanium-wall-medium rotate: false - xy: 1405, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-vault-medium - rotate: false - xy: 1387, 341 + xy: 1285, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-titanium-wall-small rotate: false - xy: 2002, 484 + xy: 1669, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-titanium-wall-tiny rotate: false - xy: 823, 226 + xy: 1921, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-titanium-wall-xlarge rotate: false xy: 501, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large +block-turbine-generator-large rotate: false - xy: 1363, 723 + xy: 1111, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-extractor-medium +block-turbine-generator-medium rotate: false - xy: 1421, 341 + xy: 1251, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-extractor-small +block-turbine-generator-small rotate: false - xy: 2002, 458 + xy: 1695, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-extractor-tiny +block-turbine-generator-tiny rotate: false - xy: 805, 208 + xy: 1939, 500 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-extractor-xlarge +block-turbine-generator-xlarge rotate: false xy: 551, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-large +block-underflow-gate-large rotate: false - xy: 1321, 681 + xy: 1069, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-medium +block-underflow-gate-medium rotate: false - xy: 1455, 341 + xy: 1285, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-small +block-underflow-gate-small rotate: false - xy: 2002, 432 + xy: 1721, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-tiny +block-underflow-gate-tiny rotate: false - xy: 787, 172 + xy: 1311, 193 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-xlarge +block-underflow-gate-xlarge rotate: false xy: 601, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-wave-large +block-unloader-large rotate: false - xy: 1531, 849 + xy: 1279, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wave-medium +block-unloader-medium rotate: false - xy: 1489, 341 + xy: 1285, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-unloader-small rotate: false - xy: 2002, 406 + xy: 1747, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-unloader-tiny rotate: false - xy: 841, 226 + xy: 1311, 175 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-unloader-xlarge rotate: false xy: 651, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large +block-vault-large rotate: false - xy: 1489, 807 + xy: 1237, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-dead-medium +block-vault-medium rotate: false - xy: 1523, 341 + xy: 1047, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-dead-small +block-vault-small rotate: false - xy: 2000, 380 + xy: 1773, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-dead-tiny +block-vault-tiny rotate: false - xy: 823, 208 + xy: 1329, 198 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-dead-xlarge +block-vault-xlarge rotate: false xy: 351, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-large +block-water-extractor-large rotate: false - xy: 1447, 765 + xy: 1195, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-medium +block-water-extractor-medium rotate: false - xy: 1725, 744 + xy: 1081, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-small +block-water-extractor-small rotate: false - xy: 2007, 354 + xy: 1799, 706 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-tiny +block-water-extractor-tiny rotate: false - xy: 805, 190 + xy: 1347, 198 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-xlarge +block-water-extractor-xlarge rotate: false xy: 401, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-water-large + rotate: false + xy: 1153, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-medium + rotate: false + xy: 1115, 307 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-small + rotate: false + xy: 1825, 706 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-tiny + rotate: false + xy: 1329, 180 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-xlarge + rotate: false + xy: 451, 316 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-wave-large + rotate: false + xy: 1111, 681 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-wave-medium + rotate: false + xy: 1149, 307 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-wave-small + rotate: false + xy: 1851, 706 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-wave-tiny + rotate: false + xy: 1347, 180 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +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: 881, 594 + xy: 1911, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17489,7 +17685,7 @@ button index: -1 button-disabled rotate: false - xy: 729, 1 + xy: 435, 3 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17497,7 +17693,7 @@ button-disabled index: -1 button-down rotate: false - xy: 767, 1 + xy: 1321, 694 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17505,7 +17701,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 805, 1 + xy: 1405, 744 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17513,7 +17709,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 1657, 778 + xy: 1447, 778 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17521,7 +17717,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 1615, 736 + xy: 1489, 829 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17529,7 +17725,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 1573, 694 + xy: 1531, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17537,7 +17733,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 1783, 862 + xy: 1359, 694 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17545,7 +17741,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 1741, 820 + xy: 1569, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17553,7 +17749,7 @@ button-over index: -1 button-red rotate: false - xy: 1695, 778 + xy: 1607, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17561,7 +17757,7 @@ button-red index: -1 button-right rotate: false - xy: 1897, 862 + xy: 1721, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17569,7 +17765,7 @@ button-right index: -1 button-right-down rotate: false - xy: 1821, 862 + xy: 1645, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17577,7 +17773,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 1859, 862 + xy: 1683, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17585,7 +17781,7 @@ button-right-over index: -1 button-select rotate: false - xy: 2007, 328 + xy: 1929, 706 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -17593,7 +17789,7 @@ button-select index: -1 button-square rotate: false - xy: 881, 623 + xy: 1835, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17601,7 +17797,7 @@ button-square index: -1 button-square-down rotate: false - xy: 1935, 862 + xy: 1759, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17609,7 +17805,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 881, 652 + xy: 1797, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17617,7 +17813,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 919, 652 + xy: 1873, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17625,42 +17821,42 @@ button-trans index: -1 check-disabled rotate: false - xy: 1615, 600 + xy: 1251, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1611, 566 + xy: 1285, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1759, 752 + xy: 1319, 490 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1775, 786 + xy: 1353, 490 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 1809, 794 + xy: 1319, 456 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 1843, 794 + xy: 1319, 422 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -17695,7 +17891,7 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 919, 623 + xy: 881, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17710,7 +17906,7 @@ info-banner index: -1 inventory rotate: false - xy: 685, 332 + xy: 1669, 664 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -17718,147 +17914,147 @@ inventory index: -1 item-blast-compound-icon rotate: false - xy: 1877, 794 + xy: 1353, 456 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-icon rotate: false - xy: 1911, 794 + xy: 1319, 388 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-icon rotate: false - xy: 1945, 794 + xy: 1353, 422 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-icon rotate: false - xy: 1793, 752 + xy: 1319, 354 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-icon rotate: false - xy: 1827, 760 + xy: 1353, 388 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-icon rotate: false - xy: 1861, 760 + xy: 1319, 320 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-icon rotate: false - xy: 1895, 760 + xy: 1353, 354 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-icon rotate: false - xy: 1929, 760 + xy: 1353, 320 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-icon rotate: false - xy: 1963, 760 + xy: 1387, 472 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-icon rotate: false - xy: 1979, 794 + xy: 1387, 438 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-icon rotate: false - xy: 1997, 760 + xy: 1387, 404 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-icon rotate: false - xy: 1611, 532 + xy: 1387, 370 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-icon rotate: false - xy: 1759, 718 + xy: 1387, 336 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-icon rotate: false - xy: 1793, 718 + xy: 1421, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-icon rotate: false - xy: 1827, 726 + xy: 1421, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-icon rotate: false - xy: 1861, 726 + xy: 1455, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-icon rotate: false - xy: 1895, 726 + xy: 1421, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-icon rotate: false - xy: 1929, 726 + xy: 1455, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-icon rotate: false - xy: 1963, 726 + xy: 1489, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-icon rotate: false - xy: 1997, 726 + xy: 1421, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-node rotate: false - xy: 1827, 692 + xy: 1455, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -17879,7 +18075,7 @@ nomap index: -1 pane rotate: false - xy: 919, 594 + xy: 919, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17887,7 +18083,7 @@ pane index: -1 pane-2 rotate: false - xy: 957, 652 + xy: 881, 623 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17895,7 +18091,7 @@ pane-2 index: -1 scroll rotate: false - xy: 737, 331 + xy: 1721, 669 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -17918,49 +18114,49 @@ scroll-knob-horizontal-black index: -1 scroll-knob-vertical-black rotate: false - xy: 711, 340 + xy: 1695, 664 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 1653, 294 + 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: 1756, 734 + xy: 685, 280 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 1659, 492 + xy: 1591, 347 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 1659, 452 + xy: 974, 210 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 1659, 412 + xy: 1625, 381 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -17974,7 +18170,7 @@ slider-vertical index: -1 underline rotate: false - xy: 1033, 652 + xy: 957, 623 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17982,7 +18178,7 @@ underline index: -1 underline-2 rotate: false - xy: 957, 623 + xy: 881, 594 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17990,7 +18186,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 995, 652 + xy: 957, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17998,7 +18194,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 957, 594 + xy: 919, 623 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18006,7 +18202,7 @@ underline-red index: -1 underline-white rotate: false - xy: 995, 623 + xy: 995, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18014,847 +18210,847 @@ underline-white index: -1 unit-alpha-large rotate: false - xy: 1405, 723 + xy: 1237, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-alpha-medium rotate: false - xy: 1861, 692 + xy: 1489, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-alpha-small rotate: false - xy: 763, 342 + xy: 1747, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-alpha-tiny rotate: false - xy: 787, 154 + xy: 1401, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-alpha-xlarge rotate: false - xy: 451, 316 + xy: 651, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-antumbra-large rotate: false - xy: 1363, 681 - 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: 1895, 692 - 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: 789, 342 - 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: 859, 226 - 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: 501, 366 - 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: 1573, 849 + xy: 1195, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-arkyid-medium rotate: false - xy: 1929, 692 + xy: 1523, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-arkyid-small rotate: false - xy: 815, 342 + xy: 1773, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-arkyid-tiny rotate: false - xy: 841, 208 + xy: 963, 164 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-arkyid-xlarge rotate: false - xy: 551, 416 + xy: 701, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-atrax-large rotate: false - xy: 1531, 807 - 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: 1963, 692 - 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: 841, 342 - 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: 823, 190 - 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: 601, 466 - 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: 1489, 765 + xy: 1153, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-beta-medium rotate: false - xy: 1997, 692 + xy: 1455, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-beta-small rotate: false - xy: 867, 342 + xy: 1799, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-beta-tiny rotate: false - xy: 805, 172 + xy: 981, 166 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-beta-xlarge rotate: false - xy: 651, 516 + xy: 401, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-large rotate: false - xy: 1447, 723 + xy: 1363, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-bryde-medium rotate: false - xy: 2013, 797 + xy: 1489, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-bryde-small rotate: false - xy: 763, 316 + xy: 1825, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-bryde-tiny rotate: false - xy: 787, 136 + xy: 999, 166 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-bryde-xlarge rotate: false - xy: 701, 566 + xy: 451, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-crawler-large rotate: false - xy: 1405, 681 + xy: 1321, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-crawler-medium rotate: false - xy: 1645, 566 + xy: 1523, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-crawler-small rotate: false - xy: 789, 316 + xy: 1851, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-crawler-tiny rotate: false - xy: 859, 208 + xy: 963, 146 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-crawler-xlarge rotate: false - xy: 351, 166 + xy: 501, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-large rotate: false - xy: 1615, 849 + xy: 1279, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-dagger-medium rotate: false - xy: 1645, 532 + xy: 1557, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-dagger-small rotate: false - xy: 815, 316 + xy: 1877, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-dagger-tiny rotate: false - xy: 841, 190 + xy: 981, 148 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-dagger-xlarge rotate: false - xy: 401, 216 + xy: 551, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eclipse-large rotate: false - xy: 1573, 807 + xy: 1237, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-eclipse-medium rotate: false - xy: 1557, 511 + xy: 1489, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-eclipse-small rotate: false - xy: 841, 316 + xy: 1903, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-eclipse-tiny rotate: false - xy: 823, 172 + xy: 963, 128 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-eclipse-xlarge rotate: false - xy: 451, 266 + xy: 601, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-large rotate: false - xy: 1531, 765 + xy: 1195, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-flare-medium rotate: false - xy: 1557, 477 + xy: 1523, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-flare-small rotate: false - xy: 867, 316 + xy: 1929, 680 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-flare-tiny rotate: false - xy: 805, 154 + xy: 999, 148 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-flare-xlarge rotate: false - xy: 501, 316 + xy: 651, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-large rotate: false - xy: 1489, 723 - 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: 1557, 443 - 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: 893, 330 - 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: 787, 118 - 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: 551, 366 - 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: 1447, 681 + xy: 1363, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-gamma-medium rotate: false - xy: 1557, 409 + xy: 1557, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-gamma-small rotate: false - xy: 919, 330 + xy: 1675, 638 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-gamma-tiny rotate: false - xy: 859, 190 + xy: 981, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-gamma-xlarge rotate: false - xy: 601, 416 + xy: 351, 130 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-horizon-large rotate: false - xy: 1657, 849 + xy: 1321, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-horizon-medium rotate: false - xy: 1557, 375 + xy: 1591, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-horizon-small rotate: false - xy: 945, 330 + xy: 1675, 612 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-horizon-tiny rotate: false - xy: 841, 172 + xy: 963, 110 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-horizon-xlarge rotate: false - xy: 651, 466 + xy: 401, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mace-large rotate: false - xy: 1615, 807 + xy: 1279, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mace-medium rotate: false - xy: 1557, 341 + xy: 1523, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mace-small rotate: false - xy: 971, 330 + xy: 1675, 586 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mace-tiny rotate: false - xy: 823, 154 + xy: 999, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mace-xlarge rotate: false - xy: 701, 516 + xy: 451, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mega-large rotate: false - xy: 1573, 765 + xy: 1237, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mega-medium rotate: false - xy: 1591, 498 + xy: 1557, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mega-small rotate: false - xy: 893, 304 + xy: 1675, 560 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mega-tiny rotate: false - xy: 805, 136 + xy: 981, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mega-xlarge rotate: false - xy: 351, 116 + xy: 501, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-minke-large rotate: false - xy: 1531, 723 + xy: 1405, 815 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-minke-medium rotate: false - xy: 1591, 464 + xy: 1591, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-minke-small rotate: false - xy: 919, 304 + xy: 1701, 638 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-minke-tiny rotate: false - xy: 787, 100 + xy: 963, 92 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-minke-xlarge rotate: false - xy: 401, 166 + xy: 551, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mono-large rotate: false - xy: 1489, 681 + xy: 1447, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mono-medium rotate: false - xy: 1625, 498 + xy: 1625, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mono-small rotate: false - xy: 945, 304 + xy: 1701, 612 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mono-tiny rotate: false - xy: 859, 172 + xy: 963, 74 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mono-xlarge rotate: false - xy: 451, 216 + xy: 601, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-large rotate: false - xy: 1699, 849 + xy: 1363, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-nova-medium rotate: false - xy: 1591, 430 + xy: 1557, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-nova-small rotate: false - xy: 971, 304 + xy: 1701, 586 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-nova-tiny rotate: false - xy: 841, 154 + xy: 999, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-nova-xlarge rotate: false - xy: 501, 266 + xy: 651, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-poly-large rotate: false - xy: 1657, 807 + xy: 1321, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-poly-medium rotate: false - xy: 1625, 464 + xy: 1591, 387 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-poly-small rotate: false - xy: 997, 320 + xy: 1701, 560 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-poly-tiny rotate: false - xy: 823, 136 + xy: 981, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-poly-xlarge rotate: false - xy: 551, 316 + xy: 701, 476 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-pulsar-large rotate: false - xy: 1615, 765 - 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: 1591, 396 - 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: 997, 294 - 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: 805, 118 - 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: 601, 366 - 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: 1573, 723 + xy: 1405, 773 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-quasar-medium rotate: false - xy: 1625, 430 + xy: 974, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-quasar-small rotate: false - xy: 1695, 302 + xy: 1947, 810 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-quasar-tiny rotate: false - xy: 787, 82 + xy: 999, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-quasar-xlarge rotate: false - xy: 651, 416 + xy: 401, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-risso-large rotate: false - xy: 1531, 681 + xy: 1447, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-risso-medium rotate: false - xy: 1591, 362 + xy: 1625, 421 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-risso-small rotate: false - xy: 1721, 302 + xy: 1951, 784 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-risso-tiny rotate: false - xy: 859, 154 + xy: 981, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-risso-xlarge rotate: false - xy: 701, 466 + xy: 451, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-spiroct-large rotate: false - xy: 1741, 849 - 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: 1625, 396 - 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: 1747, 302 - 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: 841, 136 - 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: 351, 66 - 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: 1699, 807 + xy: 1363, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-zenith-medium rotate: false - xy: 1625, 362 + xy: 1659, 455 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-zenith-small rotate: false - xy: 1773, 302 + xy: 1955, 758 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-zenith-tiny rotate: false - xy: 823, 118 + xy: 999, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-zenith-xlarge rotate: false - xy: 401, 116 + xy: 551, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-pane rotate: false - xy: 995, 594 + xy: 1033, 652 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18862,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: 1649, 673 + 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 c45cbd7ea0..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 8e8fd49150..7c70122b86 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 483eeaf629..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 cd72cd4ae5..6b322823fc 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 a916939232..e257c15017 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 594121076c..8017c11998 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 559bbb63e7..c4932f28b0 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -6,6440 +6,6468 @@ filter: nearest,nearest repeat: none core-silo rotate: false - xy: 1097, 563 + xy: 1735, 999 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 launch-pad rotate: false - xy: 2431, 747 + xy: 3995, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large rotate: false - xy: 3121, 1273 + xy: 2351, 756 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 launch-pad-light rotate: false - xy: 2529, 747 + xy: 2513, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launchpod rotate: false - xy: 3569, 572 + xy: 3675, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 force-projector rotate: false - xy: 1941, 735 + xy: 3211, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector-top rotate: false - xy: 1941, 637 + xy: 3309, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 3361, 405 + xy: 3147, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 3427, 396 + xy: 3213, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender rotate: false - xy: 2635, 153 + xy: 1987, 183 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 2646, 119 + xy: 1953, 115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-dome rotate: false - xy: 2235, 489 + xy: 3167, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-top rotate: false - xy: 2333, 489 + xy: 3199, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 3501, 506 + xy: 3279, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 3567, 506 + xy: 3345, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 2778, 213 + xy: 2191, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-loader rotate: false - xy: 2755, 845 + xy: 2189, 520 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader rotate: false - xy: 3771, 1195 + xy: 2287, 462 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 3448, 226 + xy: 3599, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 3516, 272 + xy: 3769, 131 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 3550, 306 + xy: 3803, 133 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 3516, 238 + xy: 1689, 248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 3550, 272 + xy: 1723, 248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 269, 1 + xy: 3989, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 269, 1 + xy: 3989, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 303, 1 + xy: 3989, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 337, 1 + xy: 3989, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 371, 1 + xy: 3989, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 405, 1 + xy: 3981, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 439, 1 + xy: 4057, 471 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 473, 1 + xy: 1651, 244 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 4061, 2015 + xy: 3939, 86 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 3252, 417 + xy: 3089, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 4061, 1981 + xy: 3123, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 4061, 1947 + xy: 3157, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 4061, 1913 + xy: 3191, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 4061, 1879 + xy: 3225, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 4061, 1845 + xy: 3259, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 4061, 1811 + xy: 3293, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 4063, 1777 + xy: 3327, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 4063, 1743 + xy: 3361, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 4063, 1709 + xy: 3395, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 4063, 1675 + xy: 3085, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 4063, 1641 + xy: 3085, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 3686, 238 + xy: 1749, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 3414, 192 + xy: 1749, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 3448, 192 + xy: 1757, 248 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 3482, 204 + xy: 1791, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 3516, 204 + xy: 1791, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 3550, 204 + xy: 1783, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 3584, 204 + xy: 1783, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 3618, 204 + xy: 1783, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 3652, 204 + xy: 1783, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 3686, 204 + xy: 1783, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 3380, 167 + xy: 1783, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 3414, 158 + xy: 1783, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 3448, 158 + xy: 1817, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 3482, 170 + xy: 1817, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 3516, 170 + xy: 1817, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 3550, 170 + xy: 1817, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 3584, 170 + xy: 1817, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 3618, 170 + xy: 1817, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 3652, 170 + xy: 1817, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor rotate: false - xy: 2888, 285 + xy: 2089, 152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 2922, 285 + xy: 2123, 186 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 2956, 285 + xy: 1987, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 2990, 269 + xy: 2021, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 2652, 311 + xy: 2055, 84 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 2686, 311 + xy: 2089, 118 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 2850, 149 + xy: 2429, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 2884, 149 + xy: 2361, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 2918, 149 + xy: 2395, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 2952, 149 + xy: 2429, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 2822, 111 + xy: 2395, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 2822, 77 + xy: 2429, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 2856, 115 + xy: 2429, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 2856, 81 + xy: 2463, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 2890, 115 + xy: 2497, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 2890, 81 + xy: 2463, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 2924, 115 + xy: 2531, 68 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 2924, 81 + xy: 2497, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 2958, 115 + xy: 2531, 34 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 2958, 81 + xy: 2565, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 2982, 201 + xy: 2599, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 2986, 167 + xy: 2633, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 3016, 201 + xy: 3837, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 3020, 167 + xy: 3833, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 2992, 133 + xy: 3871, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 3720, 272 + xy: 3561, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 3775, 603 + xy: 3691, 733 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 3822, 305 + xy: 3731, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 3992, 203 + xy: 1851, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -mass-conveyor - rotate: false - xy: 2627, 649 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-edge - rotate: false - xy: 2725, 649 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-top - rotate: false - xy: 2823, 649 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -payload-router-top - rotate: false - xy: 2823, 649 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 mass-driver-base rotate: false - xy: 2333, 587 + xy: 3101, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 2820, 319 + xy: 2055, 186 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +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: 2431, 453 + xy: 3591, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-edge rotate: false - xy: 2529, 453 + xy: 3689, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-over rotate: false - xy: 2627, 453 + xy: 3787, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 2990, 303 + xy: 2089, 186 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 2642, 207 + xy: 1953, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 2652, 85 + xy: 1987, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 2820, 285 + xy: 2021, 115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 2752, 247 + xy: 2191, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 2754, 107 + xy: 2225, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 3026, 99 + xy: 3905, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blast-drill rotate: false - xy: 1561, 1143 + xy: 3495, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 1821, 1403 + xy: 3625, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 1821, 1273 + xy: 3755, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 1691, 1143 + xy: 3885, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 3979, 801 + xy: 3889, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 3979, 801 + xy: 3889, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 2235, 783 + xy: 3701, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rim rotate: false - xy: 2235, 685 + xy: 2577, 104 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 2333, 783 + xy: 3799, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 2333, 685 + xy: 3897, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 3361, 471 + xy: 2949, 594 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 3435, 528 + xy: 3015, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 3427, 462 + xy: 3081, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 oil-extractor rotate: false - xy: 2529, 551 + xy: 2775, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-liquid rotate: false - xy: 2627, 551 + xy: 2873, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-rotator rotate: false - xy: 2725, 551 + xy: 2971, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-top rotate: false - xy: 2823, 551 + xy: 3069, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 3625, 374 + xy: 3939, 609 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 3691, 374 + xy: 4005, 609 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 3765, 471 + xy: 2975, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 1994, 291 + xy: 3735, 403 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 2060, 291 + xy: 3801, 469 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 2126, 288 + xy: 3801, 403 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 1928, 241 + xy: 3867, 477 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 3244, 349 + xy: 3187, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 927, 4 + xy: 3998, 417 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 3380, 337 + xy: 3175, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 3652, 306 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -message - rotate: false - xy: 2752, 315 + xy: 1715, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 place-arrow rotate: false - xy: 2725, 453 + xy: 3885, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 3482, 306 + xy: 3633, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 3482, 272 + xy: 3667, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 3482, 272 + xy: 3667, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 3516, 306 + xy: 3701, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 3482, 238 + xy: 3735, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 3584, 272 + xy: 1715, 146 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 3618, 306 + xy: 1715, 112 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 3584, 238 + xy: 1715, 78 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 3618, 272 + xy: 1715, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 3618, 272 + xy: 1715, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 3618, 272 + xy: 1715, 44 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 3618, 238 + xy: 1749, 214 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 3652, 272 + xy: 1749, 180 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 3686, 306 + xy: 1749, 146 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 3652, 238 + xy: 1749, 112 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 3652, 238 + xy: 1749, 112 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 3686, 272 + xy: 1749, 78 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 4026, 203 + xy: 1885, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 3788, 135 + xy: 1851, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 3822, 135 + xy: 1885, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 3856, 135 + xy: 1885, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 3890, 135 + xy: 1919, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 3924, 135 + xy: 1919, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-bottom rotate: false - xy: 2627, 747 + xy: 2611, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-liquid rotate: false - xy: 2725, 747 + xy: 2709, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-top rotate: false - xy: 2823, 747 + xy: 2807, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 4060, 203 + xy: 1987, 217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump-liquid rotate: false - xy: 4060, 169 + xy: 2021, 217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-liquid rotate: false - xy: 4060, 169 + xy: 2021, 217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-pump-liquid rotate: false - xy: 4060, 169 + xy: 2021, 217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 2854, 319 + xy: 1953, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 2888, 319 + xy: 1987, 115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 2922, 319 + xy: 2021, 149 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 2956, 319 + xy: 2055, 152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 2650, 243 + xy: 2021, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 2684, 277 + xy: 2055, 50 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 2684, 243 + xy: 2089, 84 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 2676, 209 + xy: 2123, 118 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 2710, 209 + xy: 2089, 50 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 2676, 175 + xy: 2123, 84 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 2686, 107 + xy: 2021, 13 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 2720, 107 + xy: 2055, 16 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 2686, 73 + xy: 2089, 16 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 2720, 73 + xy: 2123, 16 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 3823, 405 + xy: 3371, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 3117, 649 + xy: 2581, 575 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -data-processor-top +hyper-processor rotate: false - xy: 1877, 931 + xy: 3603, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-display rotate: false - xy: 2431, 649 + xy: 2905, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor rotate: false - xy: 3635, 572 + xy: 3741, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -logic-processor-3 +memory-cell rotate: false - xy: 2529, 649 - size: 96, 96 - orig: 96, 96 + 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: 2786, 315 + 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: 4063, 1607 + xy: 3119, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large rotate: false - xy: 3673, 1045 + xy: 2189, 618 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 509, 695 + xy: 2087, 484 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-top rotate: false - xy: 3286, 401 + xy: 3119, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 3584, 306 + xy: 1715, 214 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 3550, 238 + xy: 1715, 180 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator rotate: false - xy: 1975, 931 + xy: 2479, 200 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-liquid rotate: false - xy: 1811, 817 + xy: 2479, 102 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-top rotate: false - xy: 1909, 833 + xy: 2525, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 diode rotate: false - xy: 3720, 238 + xy: 3527, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 3720, 204 + xy: 3595, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 3788, 305 + xy: 3629, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 3754, 237 + xy: 3697, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 impact-reactor rotate: false - xy: 2861, 1403 + xy: 3695, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-bottom rotate: false - xy: 2861, 1273 + xy: 3825, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-light rotate: false - xy: 2731, 1143 + xy: 3825, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-0 rotate: false - xy: 2991, 1403 + xy: 3955, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-1 rotate: false - xy: 2991, 1273 + xy: 3955, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-2 rotate: false - xy: 2861, 1143 + xy: 2059, 778 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-3 rotate: false - xy: 3121, 1403 + xy: 2221, 814 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 power-node rotate: false - xy: 2710, 175 + xy: 2123, 50 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 3831, 471 + xy: 3041, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source rotate: false - xy: 2680, 141 + xy: 1953, 13 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 2714, 141 + xy: 1987, 13 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 3889, 405 + xy: 3009, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 2786, 247 + xy: 2225, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 2778, 179 + xy: 2225, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large rotate: false - xy: 3117, 747 + xy: 2679, 771 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 surge-tower rotate: false - xy: 1928, 439 + xy: 3899, 543 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 1994, 489 + xy: 3471, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-reactor rotate: false - xy: 3117, 551 + xy: 2679, 673 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-lights rotate: false - xy: 3117, 453 + xy: 2777, 771 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-top rotate: false - xy: 3147, 845 + xy: 2581, 477 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 turbine-generator rotate: false - xy: 2060, 489 + xy: 3537, 403 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-cap rotate: false - xy: 2060, 423 + xy: 3603, 469 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-top rotate: false - xy: 2060, 357 + xy: 3603, 403 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-turbine0 rotate: false - xy: 2126, 486 + xy: 3669, 469 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-turbine1 rotate: false - xy: 2126, 420 + xy: 3669, 403 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 alloy-smelter rotate: false - xy: 3477, 1045 + xy: 2189, 716 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 3575, 1045 + xy: 2091, 582 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-mixer rotate: false - xy: 3445, 726 + xy: 2677, 366 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-forge rotate: false - xy: 2265, 881 + xy: 1493, 253 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 coal-centrifuge rotate: false - xy: 3737, 902 + xy: 2949, 660 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 3781, 735 + xy: 3361, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 3847, 735 + xy: 3345, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 3913, 735 + xy: 3427, 733 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 3775, 669 + xy: 3493, 733 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 3841, 669 + xy: 3559, 733 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 3907, 669 + xy: 3625, 733 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 disassembler rotate: false - xy: 2007, 833 + xy: 2623, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-liquid rotate: false - xy: 2105, 844 + xy: 2721, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-spinner rotate: false - xy: 2979, 963 + xy: 2819, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 3973, 669 + xy: 4021, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 incinerator rotate: false - xy: 3788, 271 + xy: 3663, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 3890, 169 + xy: 2089, 220 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 3958, 169 + xy: 1885, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln rotate: false - xy: 3973, 603 + xy: 3411, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 3371, 603 + xy: 3477, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 3371, 603 + xy: 3477, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 4026, 135 + xy: 1919, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 4060, 305 + xy: 1919, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 4060, 135 + xy: 1953, 183 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press rotate: false - xy: 2137, 552 + xy: 2579, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 3493, 440 + xy: 3543, 601 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 3559, 440 + xy: 3609, 601 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 3625, 440 + xy: 3675, 601 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 3691, 440 + xy: 3741, 601 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 3493, 374 + xy: 3807, 609 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 2718, 277 + xy: 2157, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 2718, 243 + xy: 2157, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 3963, 471 + xy: 3173, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 861, 22 + xy: 3339, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1796, 486 + xy: 3437, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 1796, 420 + xy: 3405, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-crucible rotate: false - xy: 3019, 551 + xy: 2581, 771 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-crucible-top rotate: false - xy: 3019, 453 + xy: 2581, 673 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 1796, 354 + xy: 3405, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 1796, 288 + xy: 3503, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 1862, 486 + xy: 3569, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 1862, 420 + xy: 3635, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 1862, 354 + xy: 3701, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 1862, 288 + xy: 3767, 535 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 1928, 505 + xy: 3833, 543 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rock1 rotate: false - xy: 2285, 165 + xy: 3439, 175 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rock2 rotate: false - xy: 2335, 165 + xy: 3489, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-boulder1 rotate: false - xy: 2820, 251 + xy: 2157, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 2854, 251 + xy: 2191, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 2744, 175 + xy: 2191, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 2748, 141 + xy: 2225, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snowrock1 rotate: false - xy: 2542, 187 + xy: 3689, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock2 rotate: false - xy: 2435, 137 + xy: 3739, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 2530, 45 + xy: 3707, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 2604, 95 + xy: 3989, 370 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 2572, 53 + xy: 3989, 328 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 white-tree rotate: false - xy: 1, 761 + xy: 1, 411 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 white-tree-dead rotate: false - xy: 323, 1083 + xy: 1322, 1727 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 +white-tree-dead-shadow + rotate: false + xy: 1, 1699 + size: 353, 348 + orig: 353, 348 + offset: 0, 0 + index: -1 +white-tree-shadow + rotate: false + xy: 1, 1699 + size: 353, 348 + orig: 353, 348 + offset: 0, 0 + index: -1 container rotate: false - xy: 3869, 933 + xy: 3031, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation rotate: false - xy: 2341, 1403 + xy: 2375, 886 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team rotate: false - xy: 2341, 1273 + xy: 3045, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus rotate: false - xy: 1161, 887 + xy: 1573, 999 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-nucleus-team rotate: false - xy: 1323, 887 + xy: 1573, 837 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard rotate: false - xy: 3771, 1097 + xy: 2385, 462 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team rotate: false - xy: 3869, 1195 + xy: 2283, 364 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 unloader rotate: false - xy: 2992, 65 + xy: 3939, 52 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 3026, 65 + xy: 3973, 52 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault rotate: false - xy: 3273, 947 + xy: 2777, 673 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 1711, 749 + xy: 1949, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 3320, 401 + xy: 3153, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 3445, 660 + xy: 2675, 300 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 2469, 943 + xy: 2087, 386 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 1951, 1403 + xy: 2525, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 hail-heat rotate: false - xy: 829, 547 + xy: 4049, 889 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 3503, 572 + xy: 3609, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 meltdown-heat rotate: false - xy: 3121, 1143 + xy: 1065, 531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ripple-heat rotate: false - xy: 2921, 747 + xy: 3265, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 4021, 405 + xy: 3075, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 3757, 339 + xy: 3075, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 3823, 339 + xy: 3141, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-heat rotate: false - xy: 2922, 251 + xy: 2157, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 2060, 225 + xy: 3933, 477 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 additive-reconstructor rotate: false - xy: 3183, 1045 + xy: 1989, 539 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 additive-reconstructor-top rotate: false - xy: 3281, 1045 + xy: 1989, 441 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 3379, 1045 + xy: 2091, 680 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 command-center rotate: false - xy: 3803, 933 + xy: 2965, 726 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 exponential-reconstructor rotate: false - xy: 935, 985 + xy: 1129, 791 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 exponential-reconstructor-top rotate: false - xy: 1193, 1049 + xy: 775, 243 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-in-3 rotate: false - xy: 3077, 943 + xy: 2917, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-in-5 rotate: false - xy: 1148, 239 + xy: 2059, 1070 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-in-7 rotate: false - xy: 903, 759 + xy: 743, 17 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-in-9 rotate: false - xy: 2127, 1759 + xy: 323, 1409 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 factory-out-3 rotate: false - xy: 1843, 719 + xy: 3015, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-out-5 rotate: false - xy: 1310, 239 + xy: 2221, 1232 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-out-7 rotate: false - xy: 871, 533 + xy: 839, 469 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-out-9 rotate: false - xy: 2417, 1759 + xy: 323, 1119 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 factory-top-3 rotate: false - xy: 1843, 621 + xy: 3113, 1065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 2039, 637 + xy: 3505, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multiplicative-reconstructor rotate: false - xy: 1472, 239 + xy: 2059, 908 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 multiplicative-reconstructor-top rotate: false - xy: 1634, 239 + xy: 2221, 1070 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 naval-factory rotate: false - xy: 2431, 551 + xy: 2677, 869 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rally-point rotate: false - xy: 4029, 471 + xy: 3239, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-base rotate: false - xy: 2786, 281 + xy: 2157, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point rotate: false - xy: 3757, 405 + xy: 3305, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 tetrative-reconstructor rotate: false - xy: 2707, 1759 + xy: 323, 829 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 tetrative-reconstructor-top rotate: false - xy: 2997, 1759 + xy: 323, 539 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 copper-wall rotate: false - xy: 3686, 170 + xy: 4007, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 3935, 933 + xy: 3097, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door rotate: false - xy: 3720, 170 + xy: 3561, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large rotate: false - xy: 3841, 603 + xy: 3757, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 3907, 603 + xy: 3823, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-open rotate: false - xy: 3720, 136 + xy: 3629, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 2854, 285 + xy: 2055, 118 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 3699, 506 + xy: 3477, 601 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 2650, 277 + xy: 2123, 152 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 3559, 374 + xy: 3873, 609 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-gigantic rotate: false - xy: 3511, 1143 + xy: 1261, 271 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge2 rotate: false - xy: 3019, 747 + xy: 3853, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 3019, 649 + xy: 3951, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 3955, 339 + xy: 3207, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 4021, 339 + xy: 3207, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 663, 22 + xy: 3273, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 729, 22 + xy: 3273, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 2956, 251 + xy: 2191, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 2990, 235 + xy: 2225, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 2744, 209 + xy: 2157, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 2744, 209 + xy: 2157, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 2914, 183 + xy: 2395, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 1928, 373 + xy: 3965, 543 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 2948, 183 + xy: 2395, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 1994, 423 + xy: 3471, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster rotate: false - xy: 3641, 1143 + xy: 1187, 11 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-wall rotate: false - xy: 2992, 99 + xy: 3905, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 1994, 357 + xy: 3537, 469 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 2598, 341 + xy: 2981, 152 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 2714, 399 + xy: 2981, 98 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 4087, 761 + xy: 1979, 343 size: 8, 16 orig: 8, 16 offset: 0, 0 index: -1 circle-end rotate: false - xy: 2163, 942 + xy: 1683, 510 size: 100, 199 orig: 100, 199 offset: 0, 0 index: -1 circle-mid rotate: false - xy: 4094, 270 + xy: 4094, 1845 size: 1, 199 orig: 1, 199 offset: 0, 0 index: -1 circle-shadow rotate: false - xy: 727, 88 + xy: 2252, 1556 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 error rotate: false - xy: 2952, 353 + xy: 3389, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser rotate: false - xy: 607, 743 + xy: 1125, 481 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 laser-end rotate: false - xy: 3297, 725 + xy: 2875, 652 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser rotate: false - xy: 607, 693 + xy: 4091, 881 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 3371, 743 + xy: 2873, 578 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 missile rotate: false - xy: 2614, 57 + xy: 1651, 278 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 2446, 7 + xy: 4057, 505 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 parallax-laser rotate: false - xy: 639, 1033 + xy: 4091, 455 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 parallax-laser-end rotate: false - xy: 3297, 651 + xy: 1875, 359 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 particle rotate: false - xy: 2562, 95 + xy: 3665, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 scale_marker rotate: false - xy: 3511, 786 + xy: 1, 1 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 shell rotate: false - xy: 2484, 7 + xy: 1949, 395 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 2522, 7 + xy: 3749, 165 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 transfer rotate: false - xy: 929, 1097 + xy: 317, 361 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 3026, 133 + xy: 3871, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 3422, 400 + xy: 3015, 721 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 alpha-wreck0 rotate: false - xy: 2818, 403 + xy: 1497, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck1 rotate: false - xy: 2868, 403 + xy: 1547, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck2 rotate: false - xy: 2918, 403 + xy: 3039, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 antumbra-wreck0 rotate: false - xy: 509, 389 + xy: 1355, 985 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-wreck1 rotate: false - xy: 509, 147 + xy: 1355, 743 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-wreck2 rotate: false - xy: 291, 35 + xy: 1613, 1485 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 arc rotate: false - xy: 1711, 783 + xy: 3989, 294 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arkyid-wreck0 rotate: false - xy: 1561, 1273 + xy: 3964, 1789 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck1 rotate: false - xy: 1691, 1403 + xy: 3235, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck2 rotate: false - xy: 1691, 1273 + xy: 3365, 1435 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 atrax-wreck0 rotate: false - xy: 3647, 902 + xy: 4007, 1591 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck1 rotate: false - xy: 4003, 1531 + xy: 1785, 379 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck2 rotate: false - xy: 4003, 1465 + xy: 2875, 726 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 beta-wreck0 rotate: false - xy: 3245, 893 + xy: 3089, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck1 rotate: false - xy: 2250, 265 + xy: 3139, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck2 rotate: false - xy: 2300, 265 + xy: 3089, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-additive-reconstructor-full rotate: false - xy: 2567, 943 + xy: 1989, 343 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-air-factory-full rotate: false - xy: 2665, 943 + xy: 2087, 288 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-arc-full rotate: false - xy: 3252, 383 + xy: 3153, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-full rotate: false - xy: 1951, 1273 + xy: 2525, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-char-full rotate: false - xy: 3244, 315 + xy: 3187, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 3244, 281 + xy: 3221, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 3244, 247 + xy: 3221, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 3286, 367 + xy: 3255, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 3286, 367 + xy: 3255, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-full rotate: false - xy: 1821, 1143 + xy: 2655, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-core-nucleus-full rotate: false - xy: 1, 19 + xy: 1573, 1323 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 block-core-shard-full rotate: false - xy: 2763, 943 + xy: 1493, 449 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 3320, 367 + xy: 3255, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 3517, 836 + xy: 2675, 234 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 3583, 836 + xy: 2675, 168 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 2861, 943 + xy: 1493, 351 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-dark-metal-full rotate: false - xy: 3354, 371 + xy: 3289, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 3388, 371 + xy: 3289, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-full rotate: false - xy: 3278, 333 + xy: 3323, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 3278, 299 + xy: 3323, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-exponential-reconstructor-full rotate: false - xy: 1193, 1275 + xy: 1129, 1243 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 block-fuse-full rotate: false - xy: 2363, 881 + xy: 1447, 155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-grass-full rotate: false - xy: 3312, 333 + xy: 3357, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ground-factory-full rotate: false - xy: 2461, 845 + xy: 1447, 57 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 3278, 265 + xy: 3357, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 3312, 299 + xy: 3391, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 3312, 265 + xy: 3391, 89 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 3422, 362 + xy: 4023, 294 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 3456, 362 + xy: 4023, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 3278, 231 + xy: 4023, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 3312, 231 + xy: 4023, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-full rotate: false - xy: 2081, 1403 + xy: 2655, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 3649, 836 + xy: 2675, 102 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-laser-drill-full rotate: false - xy: 2559, 845 + xy: 1545, 155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 3244, 213 + xy: 4023, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-full rotate: false - xy: 2657, 845 + xy: 1545, 57 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 3278, 197 + xy: 4015, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-conveyor-full - rotate: false - xy: 2853, 845 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -mass-conveyor-icon - rotate: false - xy: 2853, 845 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 block-mass-driver-full rotate: false - xy: 930, 38 + xy: 2185, 422 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 3517, 770 + xy: 2745, 432 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 2081, 1273 + xy: 2785, 1293 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 3312, 197 + xy: 3999, 451 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 961, 4 + xy: 3973, 86 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-multiplicative-reconstructor-full rotate: false - xy: 3841, 1435 + xy: 1573, 1161 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 block-naval-factory-full rotate: false - xy: 1028, 38 + xy: 2185, 324 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-oil-extractor-full rotate: false - xy: 1126, 15 + xy: 2185, 226 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-ore-coal-full rotate: false - xy: 995, 4 + xy: 4007, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 1029, 4 + xy: 3429, 141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 1063, 4 + xy: 3425, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 2560, 11 + xy: 3425, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 2594, 19 + xy: 4049, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 2628, 23 + xy: 4041, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-parallax-full rotate: false - xy: 3583, 770 + 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: 1224, 15 + xy: 2287, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon rotate: false - xy: 1224, 15 + xy: 2287, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 3490, 340 + xy: 3085, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 3649, 770 + xy: 2741, 300 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 3524, 340 + xy: 3119, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 3511, 704 + xy: 2741, 234 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 3558, 340 + xy: 3153, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 3592, 340 + xy: 3187, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 3626, 340 + xy: 3221, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ripple-full rotate: false - xy: 1322, 15 + xy: 2385, 658 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-rock-full rotate: false - xy: 2350, 265 + xy: 3139, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-full rotate: false - xy: 3660, 340 + xy: 3255, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 3694, 340 + xy: 3289, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 3577, 704 + xy: 2741, 168 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 3346, 333 + xy: 3323, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 3346, 299 + xy: 3357, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 3346, 265 + xy: 3391, 55 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 3643, 704 + xy: 2741, 102 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 3346, 231 + xy: 3107, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 3346, 197 + xy: 3141, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 3346, 197 + xy: 3141, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-huge-full rotate: false - xy: 1420, 15 + xy: 2385, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge1 rotate: false - xy: 1420, 15 + xy: 2385, 560 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 3511, 638 + xy: 2777, 530 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 3577, 638 + xy: 2843, 512 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 3380, 303 + xy: 3209, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 3380, 269 + xy: 3243, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-full rotate: false - xy: 3380, 235 + xy: 3277, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 3380, 201 + xy: 3311, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-full rotate: false - xy: 3414, 328 + xy: 3345, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snowrock-full rotate: false - xy: 2400, 265 + xy: 3189, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrocks-full rotate: false - xy: 3414, 294 + xy: 3379, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spectre-full rotate: false - xy: 1951, 1143 + xy: 2785, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 2235, 123 + xy: 3939, 120 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 3448, 328 + xy: 3425, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-full rotate: false - xy: 3643, 638 + xy: 2909, 512 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sporerocks-full rotate: false - xy: 3414, 260 + xy: 3413, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 3448, 294 + xy: 3447, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 3715, 836 + xy: 2811, 446 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 3414, 226 + xy: 3531, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tetrative-reconstructor-full rotate: false - xy: 645, 1437 + xy: 1, 121 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 block-titanium-conveyor-full rotate: false - xy: 3448, 260 + xy: 3565, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 3448, 260 + xy: 3565, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-turbine-generator-full rotate: false - xy: 3715, 770 + xy: 2877, 446 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 3709, 704 + xy: 2943, 446 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 3709, 638 + xy: 1591, 531 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bryde-wreck0 rotate: false - xy: 3841, 1293 + xy: 2537, 1423 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck1 rotate: false - xy: 1419, 1359 + xy: 2679, 1423 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck2 rotate: false - xy: 1419, 1217 + xy: 2821, 1423 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 core-foundation-team-crux rotate: false - xy: 2211, 1143 + xy: 3045, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team-sharded rotate: false - xy: 2471, 1403 + xy: 3175, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus-team-crux rotate: false - xy: 1129, 725 + xy: 1735, 1323 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-nucleus-team-sharded rotate: false - xy: 1291, 725 + xy: 1735, 1161 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard-team-crux rotate: false - xy: 3869, 1097 + xy: 2283, 266 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team-sharded rotate: false - xy: 3967, 1109 + xy: 2381, 364 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-1-0 rotate: false - xy: 3482, 136 + xy: 4041, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 3516, 136 + xy: 3459, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 3550, 136 + xy: 3459, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 3584, 136 + xy: 3459, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 3618, 136 + xy: 3493, 115 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 3652, 136 + xy: 3493, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 3686, 136 + xy: 3493, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 3720, 306 + xy: 3527, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 4001, 945 + xy: 3163, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 3803, 867 + xy: 3229, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 3869, 867 + xy: 3295, 721 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 3935, 867 + xy: 3015, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 4001, 879 + xy: 3081, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 3781, 801 + xy: 3147, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 3847, 801 + xy: 3213, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 3913, 801 + xy: 3279, 655 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-3-0 rotate: false - xy: 3771, 999 + xy: 2381, 266 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-1 rotate: false - xy: 3869, 999 + xy: 2283, 168 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-2 rotate: false - xy: 3967, 1011 + xy: 2381, 168 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-3 rotate: false - xy: 1485, 915 + xy: 2481, 788 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-4 rotate: false - xy: 1583, 915 + xy: 2483, 690 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-5 rotate: false - xy: 1681, 915 + xy: 2483, 592 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-6 rotate: false - xy: 1615, 817 + xy: 2483, 494 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-7 rotate: false - xy: 1713, 817 + xy: 2483, 396 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-4-0 rotate: false - xy: 2471, 1273 + xy: 3175, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-1 rotate: false - xy: 2341, 1143 + xy: 3305, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-2 rotate: false - xy: 2601, 1403 + xy: 3305, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-3 rotate: false - xy: 2601, 1273 + xy: 3435, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-4 rotate: false - xy: 2471, 1143 + xy: 3435, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-5 rotate: false - xy: 2731, 1403 + xy: 3565, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-6 rotate: false - xy: 2731, 1273 + xy: 3565, 1175 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-7 rotate: false - xy: 2601, 1143 + xy: 3695, 1305 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-5-0 rotate: false - xy: 1259, 563 + xy: 1735, 837 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-1 rotate: false - xy: 1148, 401 + xy: 1897, 1355 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-2 rotate: false - xy: 1310, 401 + xy: 1897, 1193 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-3 rotate: false - xy: 1421, 563 + xy: 1897, 1031 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-4 rotate: false - xy: 1453, 725 + xy: 1897, 869 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-5 rotate: false - xy: 1472, 401 + xy: 2059, 1394 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-6 rotate: false - xy: 1583, 563 + xy: 2059, 1232 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-7 rotate: false - xy: 1634, 401 + xy: 2221, 1394 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-6-0 rotate: false - xy: 945, 136 + xy: 2455, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-1 rotate: false - xy: 3287, 1597 + xy: 2649, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-2 rotate: false - xy: 3481, 1597 + xy: 2843, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-3 rotate: false - xy: 3675, 1597 + xy: 3037, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-4 rotate: false - xy: 3869, 1597 + xy: 3231, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-5 rotate: false - xy: 3259, 1403 + xy: 3425, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-6 rotate: false - xy: 3453, 1403 + xy: 3619, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-7 rotate: false - xy: 3647, 1403 + xy: 3813, 1565 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-7-0 rotate: false - xy: 1451, 1533 + xy: 1387, 1501 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-1 rotate: false - xy: 1677, 1533 + xy: 871, 727 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-2 rotate: false - xy: 1903, 1533 + xy: 1129, 1017 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-3 rotate: false - xy: 2129, 1533 + xy: 613, 469 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-4 rotate: false - xy: 2355, 1533 + xy: 323, 313 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-5 rotate: false - xy: 2581, 1533 + xy: 291, 87 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-6 rotate: false - xy: 2807, 1533 + xy: 549, 243 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-7 rotate: false - xy: 3033, 1533 + xy: 517, 17 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-8-0 rotate: false - xy: 3287, 1791 + xy: 613, 1469 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-1 rotate: false - xy: 3545, 1791 + xy: 613, 1211 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-2 rotate: false - xy: 3803, 1791 + xy: 871, 1469 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-3 rotate: false - xy: 645, 889 + xy: 613, 953 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-4 rotate: false - xy: 613, 631 + xy: 871, 1211 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-5 rotate: false - xy: 935, 1469 + xy: 1129, 1469 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-6 rotate: false - xy: 935, 1211 + xy: 613, 695 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-7 rotate: false - xy: 1193, 1501 + xy: 871, 953 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-9-0 rotate: false - xy: 967, 1759 + xy: 1644, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-1 rotate: false - xy: 1, 471 + xy: 1934, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-2 rotate: false - xy: 323, 793 + xy: 2224, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-3 rotate: false - xy: 645, 1147 + xy: 2514, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-4 rotate: false - xy: 1257, 1759 + xy: 2804, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-5 rotate: false - xy: 1, 181 + xy: 3094, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-6 rotate: false - xy: 1547, 1759 + xy: 3384, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-7 rotate: false - xy: 1837, 1759 + xy: 3674, 1759 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 crawler-wreck0 rotate: false - xy: 2450, 237 + xy: 3239, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck1 rotate: false - xy: 2500, 237 + xy: 3289, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck2 rotate: false - xy: 2550, 237 + xy: 3239, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cyclone rotate: false - xy: 1779, 915 + xy: 2479, 298 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dagger-wreck0 rotate: false - xy: 2802, 353 + xy: 3339, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck1 rotate: false - xy: 2852, 353 + xy: 3389, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck2 rotate: false - xy: 2902, 353 + xy: 3339, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 duo rotate: false - xy: 3754, 305 + xy: 3595, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 eclipse-wreck0 rotate: false - xy: 323, 1727 + xy: 1, 1055 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-wreck1 rotate: false - xy: 1, 1083 + xy: 678, 1727 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-wreck2 rotate: false - xy: 323, 1405 + xy: 1, 733 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 flare-wreck0 rotate: false - xy: 4045, 829 + xy: 3489, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck1 rotate: false - xy: 4045, 779 + xy: 3539, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck2 rotate: false - xy: 3052, 295 + xy: 3539, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress-wreck0 rotate: false - xy: 2265, 979 + xy: 1325, 547 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck1 rotate: false - xy: 2367, 1061 + xy: 1427, 547 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck2 rotate: false - xy: 2367, 979 + xy: 1391, 465 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fuse rotate: false - xy: 2039, 735 + xy: 3407, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 gamma-wreck0 rotate: false - xy: 2192, 293 + xy: 2807, 112 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck1 rotate: false - xy: 2308, 431 + xy: 2865, 322 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck2 rotate: false - xy: 2250, 373 + xy: 2865, 264 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 hail rotate: false - xy: 3754, 271 + xy: 3663, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 horizon-wreck0 rotate: false - xy: 3297, 873 + xy: 3791, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck1 rotate: false - xy: 3297, 799 + xy: 3865, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck2 rotate: false - xy: 3371, 817 + xy: 3939, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 2192, 510 + xy: 2981, 6 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 3788, 237 + xy: 3731, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 1419, 1049 + xy: 1657, 571 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-blast-compound-tiny rotate: false - xy: 1, 1 + xy: 1857, 361 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-blast-compound-xlarge rotate: false - xy: 1885, 191 + xy: 3639, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 3168, 411 + xy: 3023, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-medium rotate: false - xy: 3856, 305 + xy: 3527, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 1445, 1049 + xy: 3463, 149 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-coal-tiny rotate: false - xy: 2428, 69 + xy: 2843, 578 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 1935, 191 + xy: 3689, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 4045, 737 + xy: 3489, 149 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-medium rotate: false - xy: 3788, 203 + xy: 3595, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 613, 1057 + xy: 1657, 545 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 19, 1 + xy: 499, 69 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 1885, 141 + xy: 3689, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 1796, 246 + xy: 3065, 5 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-medium rotate: false - xy: 3856, 271 + xy: 3663, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 967, 1733 + xy: 4071, 717 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 37, 1 + xy: 3871, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 1935, 141 + xy: 3739, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 1885, 99 + xy: 289, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 3788, 169 + xy: 3731, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 903, 1121 + xy: 4071, 691 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 55, 1 + xy: 499, 51 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 1985, 175 + xy: 3739, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 2278, 23 + xy: 331, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 3856, 237 + xy: 3803, 99 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 871, 863 + xy: 4071, 665 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 73, 1 + xy: 1643, 226 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 2035, 175 + xy: 3789, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 1838, 246 + xy: 373, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 3924, 305 + xy: 3765, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 1161, 1185 + xy: 4071, 639 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 91, 1 + xy: 1661, 226 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 1985, 125 + xy: 3789, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 2320, 23 + xy: 415, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 3856, 203 + xy: 3799, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 1129, 959 + xy: 4071, 613 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 109, 1 + xy: 499, 33 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 2035, 125 + xy: 3439, 225 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 1880, 246 + xy: 457, 45 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 3924, 271 + xy: 2027, 744 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 1097, 733 + xy: 1657, 519 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 127, 1 + xy: 1679, 226 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 2085, 173 + xy: 3489, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 2362, 23 + xy: 287, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 3856, 169 + xy: 2611, 70 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 1097, 537 + xy: 291, 385 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 145, 1 + xy: 1697, 230 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 2135, 173 + xy: 3539, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 2478, 87 + xy: 329, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 3924, 237 + xy: 2089, 254 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 1451, 1507 + xy: 517, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 2594, 1 + xy: 2351, 926 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 2085, 123 + xy: 3589, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 3210, 409 + xy: 371, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 3992, 305 + xy: 2055, 220 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 323, 767 + xy: 1644, 1733 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 2612, 1 + xy: 1107, 321 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 2135, 123 + xy: 3639, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 3202, 367 + xy: 413, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 3958, 237 + xy: 1825, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 2431, 855 + xy: 1387, 1475 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 2959, 1023 + xy: 549, 471 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 1928, 91 + xy: 3689, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 3202, 325 + xy: 455, 3 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 4026, 305 + xy: 1893, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 2073, 937 + xy: 1831, 1491 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 3781, 884 + xy: 4033, 467 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 1928, 41 + xy: 3739, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 3202, 283 + xy: 1929, 259 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 3958, 203 + xy: 1851, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 4003, 1439 + xy: 871, 701 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 2113, 619 + xy: 1763, 338 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 1978, 75 + xy: 3789, 253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 3202, 241 + xy: 1971, 251 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 4026, 271 + xy: 1851, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 4065, 1181 + xy: 1097, 927 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 2424, 319 + xy: 2027, 851 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 2028, 75 + xy: 3839, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 3437, 594 + xy: 3543, 667 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 2404, 23 + xy: 2013, 251 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-medium rotate: false - xy: 3992, 169 + xy: 1851, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 2203, 866 + xy: 1001, 247 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 1978, 7 + xy: 2061, 760 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 1978, 25 + xy: 3889, 311 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 2446, 45 + xy: 3539, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 3754, 135 + xy: 1885, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 1561, 889 + xy: 2189, 882 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 2192, 492 + xy: 1825, 289 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 2028, 25 + xy: 3939, 362 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 2488, 45 + xy: 3581, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 3992, 135 + xy: 1919, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1097, 12 + xy: 3964, 1763 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 2128, 5 + xy: 2157, 270 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 2078, 5 + xy: 3939, 312 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 2520, 87 + xy: 3623, 161 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 4060, 237 + xy: 1953, 217 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 3728, 348 + xy: 1529, 603 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 2642, 189 + xy: 2259, 208 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 2128, 23 + xy: 3839, 235 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mace-wreck0 rotate: false - xy: 3965, 537 + xy: 2811, 380 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck1 rotate: false - xy: 4031, 537 + xy: 2877, 380 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck2 rotate: false - xy: 3369, 537 + xy: 2943, 380 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 2235, 587 + xy: 3003, 967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mega-wreck0 rotate: false - xy: 2673, 1041 + xy: 1887, 535 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck1 rotate: false - xy: 2775, 1041 + xy: 1785, 445 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck2 rotate: false - xy: 2877, 1041 + xy: 1887, 433 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 meltdown rotate: false - xy: 2991, 1143 + xy: 1097, 661 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck0 rotate: false - xy: 3381, 1273 + xy: 1131, 401 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck1 rotate: false - xy: 3381, 1143 + xy: 1261, 401 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck2 rotate: false - xy: 3511, 1273 + xy: 1131, 271 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono-wreck0 rotate: false - xy: 2228, 73 + xy: 3139, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck1 rotate: false - xy: 2228, 23 + xy: 3189, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck2 rotate: false - xy: 2192, 243 + xy: 3239, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-wreck0 rotate: false - xy: 2308, 373 + xy: 2923, 264 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck1 rotate: false - xy: 2308, 315 + xy: 2865, 148 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck2 rotate: false - xy: 2366, 373 + xy: 2923, 206 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 parallax rotate: false - xy: 3633, 506 + xy: 3411, 589 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 poly-wreck0 rotate: false - xy: 2482, 395 + xy: 2923, 90 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck1 rotate: false - xy: 2424, 337 + xy: 2807, 54 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck2 rotate: false - xy: 2540, 395 + xy: 2865, 32 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar-wreck0 rotate: false - xy: 663, 97 + xy: 1065, 481 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck1 rotate: false - xy: 1485, 1025 + xy: 229, 71 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck2 rotate: false - xy: 1805, 571 + xy: 2287, 764 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 quasar-wreck0 rotate: false - xy: 1846, 15 + xy: 3389, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck1 rotate: false - xy: 3215, 763 + xy: 3471, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck2 rotate: false - xy: 3215, 681 + xy: 3553, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 repair-point rotate: false - xy: 2752, 281 + xy: 2191, 192 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple rotate: false - xy: 2823, 453 + xy: 3983, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck0 rotate: false - xy: 2921, 453 + xy: 3559, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck1 rotate: false - xy: 2951, 845 + xy: 3657, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck2 rotate: false - xy: 3049, 845 + xy: 3755, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 3955, 405 + xy: 3009, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 3889, 339 + xy: 3141, 391 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch rotate: false - xy: 2888, 251 + xy: 2225, 158 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 segment rotate: false - xy: 795, 22 + xy: 3339, 457 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spectre rotate: false - xy: 3641, 1273 + xy: 1187, 141 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spiroct-wreck0 rotate: false - xy: 3467, 968 + xy: 2875, 792 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck1 rotate: false - xy: 3563, 968 + xy: 2581, 400 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck2 rotate: false - xy: 3659, 968 + xy: 2679, 498 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 splash-0 rotate: false - xy: 2782, 145 + xy: 2259, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 2788, 111 + xy: 2293, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 2880, 183 + xy: 2327, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 2948, 217 + xy: 2361, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 2788, 77 + xy: 2259, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 2812, 213 + xy: 2293, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 2812, 179 + xy: 2327, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 2816, 145 + xy: 2259, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 2846, 217 + xy: 2293, 66 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 2880, 217 + xy: 2327, 100 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 2846, 183 + xy: 2361, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 2914, 217 + xy: 2293, 32 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 swarmer rotate: false - xy: 1928, 307 + xy: 4031, 543 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-alpha-full rotate: false - xy: 2535, 137 + xy: 1979, 293 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-antumbra-full rotate: false - xy: 727, 291 + xy: 1831, 1517 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 unit-arkyid-full rotate: false - xy: 1561, 1013 + xy: 1317, 141 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-atrax-full rotate: false - xy: 1941, 571 + xy: 2971, 803 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 unit-beta-full rotate: false - xy: 2592, 187 + xy: 2029, 293 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-full rotate: false - xy: 1419, 1075 + xy: 2963, 1423 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 unit-crawler-full rotate: false - xy: 2585, 137 + xy: 3889, 211 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 2278, 115 + xy: 3939, 212 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eclipse-full rotate: false - xy: 645, 1727 + xy: 1000, 1727 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 unit-flare-full rotate: false - xy: 2328, 115 + xy: 3839, 185 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-full rotate: false - xy: 2979, 1061 + xy: 1391, 281 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 unit-gamma-full rotate: false - xy: 2598, 395 + xy: 2981, 322 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-horizon-full rotate: false - xy: 3371, 669 + xy: 1689, 282 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 unit-mace-full rotate: false - xy: 2126, 354 + xy: 3735, 469 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-mega-full rotate: false - xy: 3081, 1041 + xy: 1989, 637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 unit-minke-full rotate: false - xy: 1691, 1013 + xy: 1317, 11 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-mono-full rotate: false - xy: 2278, 65 + xy: 3789, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-full rotate: false - xy: 2540, 337 + xy: 2981, 264 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-poly-full rotate: false - xy: 2656, 395 + xy: 2981, 206 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-pulsar-full rotate: false - xy: 1865, 571 + xy: 1591, 266 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 unit-quasar-full rotate: false - xy: 3215, 599 + xy: 3635, 799 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 unit-risso-full rotate: false - xy: 3175, 943 + xy: 2679, 575 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 unit-spiroct-full rotate: false - xy: 3371, 891 + xy: 2777, 596 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 unit-zenith-full rotate: false - xy: 3983, 1321 + xy: 1, 7 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 wave rotate: false - xy: 1994, 225 + xy: 3867, 411 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 zenith-wreck0 rotate: false - xy: 1821, 1029 + xy: 1341, 629 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck1 rotate: false - xy: 1935, 1029 + xy: 1455, 629 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck2 rotate: false - xy: 2049, 1029 + xy: 1569, 597 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 3754, 203 + xy: 3697, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 3822, 271 + xy: 3481, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 3754, 169 + xy: 3561, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 3822, 237 + xy: 3629, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 3890, 305 + xy: 3697, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 3822, 203 + xy: 3769, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 3890, 271 + xy: 3837, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 3822, 169 + xy: 3765, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 3890, 237 + xy: 3799, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 3958, 305 + xy: 2577, 70 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 3890, 203 + xy: 2055, 254 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 3958, 271 + xy: 2123, 254 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 3924, 203 + xy: 2123, 220 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 3992, 271 + xy: 1859, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 3924, 169 + xy: 1851, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 3992, 237 + xy: 1885, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 4026, 237 + xy: 1885, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 4026, 169 + xy: 1851, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 3958, 135 + xy: 1919, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 4060, 271 + xy: 1919, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 3286, 448 + xy: 4094, 2046 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 circle rotate: false - xy: 945, 330 + xy: 2049, 1556 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 shape-3 rotate: false - xy: 2126, 223 + xy: 3933, 412 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 2652, 345 + xy: 2981, 48 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-cell rotate: false - xy: 2768, 403 + xy: 1447, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 antumbra rotate: false - xy: 291, 519 + xy: 969, 1 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-cell rotate: false - xy: 291, 277 + xy: 1355, 1227 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 arkyid rotate: false - xy: 1561, 1403 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array - rotate: false - xy: 1561, 1403 + xy: 3964, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-cell rotate: false - xy: 2073, 963 - size: 88, 64 - orig: 88, 64 + xy: 3105, 1435 + size: 128, 128 + orig: 128, 128 offset: 0, 0 index: -1 arkyid-foot rotate: false - xy: 3297, 579 + xy: 4013, 809 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-joint-base rotate: false - xy: 3289, 507 + xy: 1785, 307 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-leg rotate: false - xy: 4039, 677 + xy: 3999, 485 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 arkyid-leg-base rotate: false - xy: 163, 1 + xy: 1001, 273 size: 104, 64 orig: 104, 64 offset: 0, 0 index: -1 atrax rotate: false - xy: 3467, 902 + xy: 4007, 1723 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-base rotate: false - xy: 3771, 1337 + xy: 2679, 432 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 atrax-cell rotate: false - xy: 3557, 902 + xy: 4007, 1657 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-foot rotate: false - xy: 829, 589 + xy: 1597, 15 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 atrax-joint rotate: false - xy: 3259, 1731 + xy: 432, 1699 size: 26, 26 orig: 26, 26 offset: 0, 0 index: -1 atrax-leg rotate: false - xy: 1485, 887 + xy: 356, 1699 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 atrax-leg-base rotate: false - xy: 1523, 887 + xy: 394, 1699 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 beta rotate: false - xy: 3068, 403 + xy: 3089, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-cell rotate: false - xy: 3118, 403 + xy: 3039, 233 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 bryde rotate: false - xy: 1601, 97 + xy: 2383, 1288 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-cell rotate: false - xy: 1743, 97 + xy: 2383, 1146 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 +chaos-array + rotate: false + xy: 2915, 1293 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 chaos-array-base rotate: false - xy: 2211, 1403 + xy: 2915, 1163 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-cell rotate: false - xy: 2211, 1273 + xy: 2383, 1016 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-leg rotate: false - xy: 2081, 1143 + xy: 1001, 339 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 crawler rotate: false - xy: 2450, 287 + xy: 3139, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 2500, 287 + xy: 3189, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 2550, 287 + xy: 3239, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 2600, 291 + xy: 3189, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 2600, 241 + xy: 3289, 291 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 2702, 345 + xy: 3339, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 2752, 349 + xy: 3289, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 eclipse rotate: false - xy: 1, 1727 + xy: 1, 1377 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-cell rotate: false - xy: 1, 1405 + xy: 356, 1727 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eradicator rotate: false - xy: 509, 21 + xy: 2221, 944 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-base rotate: false - xy: 1139, 113 + xy: 1573, 711 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-cell rotate: false - xy: 1293, 113 + xy: 1727, 711 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 eradicator-leg rotate: false - xy: 1447, 113 + xy: 2383, 1430 size: 152, 124 orig: 152, 124 offset: 0, 0 index: -1 flare rotate: false - xy: 3152, 353 + xy: 3489, 341 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress rotate: false - xy: 727, 549 + xy: 1785, 629 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 3979, 735 + xy: 3955, 741 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-cell rotate: false - xy: 2265, 1061 + xy: 1785, 547 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 509, 633 + xy: 4015, 1447 size: 80, 60 orig: 80, 60 offset: 0, 0 index: -1 gamma rotate: false - xy: 4039, 619 + xy: 229, 13 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-cell rotate: false - xy: 2250, 431 + xy: 2807, 170 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 horizon rotate: false - xy: 3215, 525 + xy: 2505, 893 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-cell rotate: false - xy: 3215, 451 + xy: 3717, 807 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 mace rotate: false - xy: 3701, 572 + xy: 3807, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-base rotate: false - xy: 3767, 537 + xy: 3873, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-cell rotate: false - xy: 3833, 537 + xy: 3939, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-leg rotate: false - xy: 3899, 537 + xy: 4005, 675 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mega rotate: false - xy: 2469, 1041 + xy: 1391, 363 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-cell rotate: false - xy: 2571, 1041 + xy: 1887, 637 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 minke rotate: false - xy: 3251, 1273 + xy: 1897, 739 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-cell rotate: false - xy: 3251, 1143 + xy: 1195, 531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono rotate: false - xy: 2185, 173 + xy: 3039, 183 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-cell rotate: false - xy: 2185, 123 + xy: 3089, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova rotate: false - xy: 2366, 431 + xy: 2923, 322 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-base rotate: false - xy: 2342, 215 + xy: 3389, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-cell rotate: false - xy: 2250, 315 + xy: 2865, 206 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-leg rotate: false - xy: 2392, 215 + xy: 3035, 133 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 poly rotate: false - xy: 2366, 315 + xy: 2923, 148 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-cell rotate: false - xy: 2424, 395 + xy: 2865, 90 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 2482, 337 + xy: 2923, 32 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar rotate: false - xy: 1745, 573 + xy: 1529, 547 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-base rotate: false - xy: 2235, 165 + xy: 3035, 83 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulsar-cell rotate: false - xy: 2203, 892 + xy: 549, 489 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-leg rotate: false - xy: 3897, 471 + xy: 3107, 523 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 quasar rotate: false - xy: 2031, 555 + xy: 3061, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-base rotate: false - xy: 1600, 15 + xy: 3143, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-cell rotate: false - xy: 1682, 15 + xy: 3225, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-leg rotate: false - xy: 1764, 15 + xy: 3307, 787 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 risso rotate: false - xy: 2921, 649 + xy: 3363, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-cell rotate: false - xy: 2921, 551 + xy: 3461, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 spiroct rotate: false - xy: 1615, 740 + xy: 1689, 433 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-cell rotate: false - xy: 3371, 968 + xy: 1689, 356 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-foot rotate: false - xy: 3245, 845 + xy: 4049, 931 size: 46, 46 orig: 46, 46 offset: 0, 0 index: -1 spiroct-joint rotate: false - xy: 2754, 73 + xy: 2259, 134 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spiroct-leg rotate: false - xy: 1928, 5 + xy: 3789, 217 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 spiroct-leg-base rotate: false - xy: 3771, 1301 + xy: 3031, 47 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 vanguard rotate: false - xy: 2378, 115 + xy: 3889, 161 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 2328, 65 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -antumbra-missiles - rotate: false - xy: 2968, 403 + xy: 3939, 162 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery rotate: false - xy: 3018, 395 + xy: 3039, 283 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 artillery-mount rotate: false - xy: 3289, 435 + xy: 1857, 287 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 beam-weapon rotate: false - xy: 1518, 31 + xy: 4015, 1509 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 chaos rotate: false - xy: 2192, 351 + xy: 2807, 228 size: 56, 136 orig: 56, 136 offset: 0, 0 index: -1 eradication rotate: false - xy: 1745, 623 + xy: 1591, 316 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 eruption rotate: false - xy: 3002, 337 + xy: 3439, 333 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun rotate: false - xy: 3052, 345 + xy: 3389, 241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower rotate: false - xy: 3102, 345 + xy: 3439, 275 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-shotgun-weapon rotate: false - xy: 3102, 295 + xy: 3589, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon rotate: false - xy: 3152, 303 + xy: 3589, 303 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon-mount rotate: false - xy: 3152, 253 + xy: 3639, 353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 large-artillery rotate: false - xy: 2078, 55 + xy: 3839, 285 size: 48, 66 orig: 48, 66 offset: 0, 0 index: -1 large-bullet-mount rotate: false - xy: 3445, 792 + xy: 1643, 127 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 large-laser-mount rotate: false - xy: 2137, 650 + 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: 2128, 73 + xy: 3889, 361 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles rotate: false - xy: 2178, 73 + xy: 3889, 261 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-mount rotate: false - xy: 2178, 23 + xy: 3939, 262 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-purple-weapon rotate: false - xy: 2242, 215 + xy: 3289, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon rotate: false - xy: 2292, 215 + xy: 3339, 191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-basic-weapon rotate: false - xy: 2385, 165 + xy: 3539, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-mount-weapon rotate: false - xy: 2442, 187 + xy: 3589, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-weapon rotate: false - xy: 2492, 187 + xy: 3639, 203 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spiroct-weapon rotate: false - xy: 2485, 129 + xy: 1929, 301 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 weapon rotate: false - xy: 2378, 65 + xy: 3839, 135 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith-missiles rotate: false - xy: 2428, 87 + xy: 3889, 111 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith rotate: false - xy: 3983, 1207 + xy: 1227, 677 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-cell rotate: false - xy: 163, 67 + xy: 115, 7 size: 112, 112 orig: 112, 112 offset: 0, 0 @@ -8137,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 @@ -8172,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 @@ -8200,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 @@ -8235,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 @@ -8256,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 @@ -8319,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 @@ -8354,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 @@ -8494,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 @@ -8508,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 @@ -9355,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 @@ -9369,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 @@ -9397,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 @@ -9467,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 @@ -9530,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 @@ -9551,35 +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: 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: 1251, 125 + xy: 1629, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 1285, 159 + xy: 1663, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor-icon-editor rotate: false - xy: 1285, 125 + xy: 1663, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9621,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, 159 + 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: 1319, 125 + xy: 1697, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-editor rotate: false - xy: 1353, 159 + xy: 1731, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 1353, 125 + xy: 1731, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 1387, 159 + 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 @@ -9698,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: 1387, 125 + xy: 1765, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-icon-editor rotate: false - xy: 1421, 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: 1455, 159 + 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: 1421, 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: 1455, 125 + xy: 1833, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 1489, 141 + xy: 1867, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 1523, 141 + xy: 1867, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 1557, 141 + 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: 1591, 149 + 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, 91 + 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: 1085, 57 + 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, 91 + 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: 1119, 57 + xy: 1119, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 1153, 91 + xy: 1153, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-icon-editor rotate: false - xy: 1153, 57 + 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, 91 + xy: 1221, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9901,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: 1187, 57 + 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, 91 + xy: 1289, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-icon-editor rotate: false - xy: 1221, 57 + xy: 1323, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 1255, 91 + xy: 1357, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 1255, 57 + 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, 91 + xy: 1425, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9992,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: 1289, 57 + xy: 1459, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 1323, 91 + 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: 1323, 57 + xy: 1527, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 1357, 91 + xy: 1561, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -10041,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 @@ -10055,49 +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: 1357, 57 + 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, 91 + 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: 1663, 23 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 tendrils-icon-editor rotate: false - xy: 1391, 57 + xy: 1697, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -10111,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: 1425, 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 @@ -10153,63 +10209,63 @@ thruster-icon-editor index: -1 titanium-conveyor-icon-editor rotate: false - xy: 1425, 57 + xy: 1765, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 1459, 91 + 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: 1459, 57 + xy: 1833, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-editor rotate: false - xy: 1493, 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 @@ -10236,14 +10292,14 @@ filter: nearest,nearest repeat: none alpha-bg rotate: false - xy: 1, 13 + xy: 1, 16 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 bar rotate: false - xy: 3261, 152 + xy: 3212, 225 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -10251,7 +10307,7 @@ bar index: -1 bar-top rotate: false - xy: 3232, 152 + xy: 3183, 230 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -10259,7217 +10315,7357 @@ bar-top index: -1 block-additive-reconstructor-large rotate: false - xy: 909, 368 + xy: 3454, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-additive-reconstructor-medium rotate: false - xy: 821, 429 + xy: 1091, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-additive-reconstructor-small rotate: false - xy: 781, 175 + xy: 4033, 387 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-additive-reconstructor-tiny rotate: false - xy: 257, 25 + xy: 309, 186 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-additive-reconstructor-xlarge rotate: false - xy: 131, 93 + xy: 131, 96 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-air-factory-large rotate: false - xy: 859, 268 + xy: 3496, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-air-factory-medium rotate: false - xy: 1747, 221 + xy: 1125, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-air-factory-small rotate: false - xy: 1377, 174 + xy: 781, 178 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-air-factory-tiny rotate: false - xy: 859, 166 + xy: 3285, 359 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-air-factory-xlarge rotate: false - xy: 771, 413 + xy: 771, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-alloy-smelter-large rotate: false - xy: 909, 326 + xy: 3538, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-alloy-smelter-medium rotate: false - xy: 1785, 250 + xy: 1159, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 3290, 164 + xy: 1254, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 4040, 308 + xy: 2859, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-alloy-smelter-xlarge rotate: false - xy: 259, 304 + xy: 259, 307 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-arc-large rotate: false - xy: 951, 368 + xy: 231, 4 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-arc-medium rotate: false - xy: 1819, 250 + xy: 1193, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 3316, 164 + xy: 1280, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 3951, 120 + xy: 309, 168 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-arc-xlarge rotate: false - xy: 131, 43 + xy: 131, 46 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-armored-conveyor-large rotate: false - xy: 859, 226 + xy: 3580, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 1853, 250 + xy: 1227, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 3342, 164 + xy: 1306, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 309, 163 + xy: 2877, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-armored-conveyor-xlarge rotate: false - xy: 181, 93 + xy: 181, 96 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-battery-large rotate: false - xy: 951, 326 + xy: 845, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-large rotate: false - xy: 993, 368 + xy: 887, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-medium rotate: false - xy: 1887, 250 + xy: 1261, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-large-small rotate: false - xy: 3368, 164 + xy: 1332, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-large-tiny rotate: false - xy: 257, 7 + xy: 2895, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-battery-large-xlarge rotate: false - xy: 259, 254 + xy: 259, 257 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-battery-medium rotate: false - xy: 1921, 250 + xy: 1295, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-small rotate: false - xy: 3394, 164 + xy: 1358, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-tiny rotate: false - xy: 877, 166 + xy: 2913, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-battery-xlarge rotate: false - xy: 181, 43 + xy: 181, 46 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-blast-drill-large rotate: false - xy: 859, 184 + xy: 929, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-drill-medium rotate: false - xy: 1955, 250 + xy: 1329, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-small rotate: false - xy: 3420, 164 + xy: 1384, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-drill-tiny rotate: false - xy: 3969, 120 + xy: 2931, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-blast-drill-xlarge rotate: false - xy: 259, 204 + xy: 259, 207 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-blast-mixer-large rotate: false - xy: 993, 326 + xy: 971, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-mixer-medium rotate: false - xy: 1989, 250 + xy: 1363, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-mixer-small rotate: false - xy: 3446, 164 + xy: 1410, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-mixer-tiny rotate: false - xy: 3987, 120 + xy: 2949, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-blast-mixer-xlarge rotate: false - xy: 259, 154 + xy: 259, 157 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-block-forge-large rotate: false - xy: 1035, 368 + xy: 1013, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-forge-medium rotate: false - xy: 2023, 250 + xy: 1397, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-forge-small rotate: false - xy: 3472, 164 + xy: 1436, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-forge-tiny rotate: false - xy: 4005, 120 + xy: 2967, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-block-forge-xlarge rotate: false - xy: 857, 460 + xy: 857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-block-loader-large rotate: false - xy: 1035, 326 + xy: 1055, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-loader-medium rotate: false - xy: 2057, 250 + xy: 1431, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-loader-small rotate: false - xy: 3498, 164 + xy: 1462, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-loader-tiny rotate: false - xy: 4023, 120 + xy: 2985, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-block-loader-xlarge rotate: false - xy: 907, 460 + xy: 907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-block-unloader-large rotate: false - xy: 1077, 368 + xy: 1097, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-block-unloader-medium rotate: false - xy: 2091, 250 + xy: 1465, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-block-unloader-small rotate: false - xy: 3524, 164 + xy: 1488, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-block-unloader-tiny rotate: false - xy: 3275, 78 + xy: 3003, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-block-unloader-xlarge rotate: false - xy: 957, 460 + xy: 957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-bridge-conduit-large rotate: false - xy: 1077, 326 + xy: 1139, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conduit-medium rotate: false - xy: 2125, 250 + xy: 1499, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conduit-small rotate: false - xy: 3550, 164 + xy: 1514, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conduit-tiny rotate: false - xy: 881, 148 + xy: 3021, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-bridge-conduit-xlarge rotate: false - xy: 1007, 460 + xy: 1007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-bridge-conveyor-large rotate: false - xy: 1119, 368 + xy: 1181, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conveyor-medium rotate: false - xy: 2159, 250 + xy: 1533, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-small rotate: false - xy: 3576, 164 + xy: 1540, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conveyor-tiny rotate: false - xy: 881, 130 + xy: 3039, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-bridge-conveyor-xlarge rotate: false - xy: 1057, 460 + xy: 1057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-char-large rotate: false - xy: 1119, 326 + xy: 1223, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-char-medium rotate: false - xy: 2193, 250 + xy: 1567, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-small rotate: false - xy: 3602, 164 + xy: 1566, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-char-tiny rotate: false - xy: 881, 112 + xy: 3057, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-char-xlarge rotate: false - xy: 1107, 460 + xy: 1107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-cliff-large rotate: false - xy: 1161, 368 + xy: 1265, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliff-medium rotate: false - xy: 2227, 250 + xy: 1601, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliff-small rotate: false - xy: 3628, 164 + xy: 1592, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliff-tiny rotate: false - xy: 881, 94 + xy: 3075, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-cliff-xlarge rotate: false - xy: 1157, 460 + xy: 1157, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-cliffs-large rotate: false - xy: 1161, 326 + xy: 1307, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliffs-medium rotate: false - xy: 2261, 250 + xy: 1635, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-small rotate: false - xy: 3654, 164 + xy: 1618, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliffs-tiny rotate: false - xy: 881, 76 + xy: 3093, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-cliffs-xlarge rotate: false - xy: 1207, 460 + xy: 1207, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-coal-centrifuge-large rotate: false - xy: 1203, 368 + xy: 1349, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-coal-centrifuge-medium rotate: false - xy: 2295, 250 + xy: 1669, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-coal-centrifuge-small rotate: false - xy: 3680, 164 + xy: 1644, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-coal-centrifuge-tiny rotate: false - xy: 881, 58 + xy: 3111, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-coal-centrifuge-xlarge rotate: false - xy: 1257, 460 + xy: 1257, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-combustion-generator-large rotate: false - xy: 1203, 326 + xy: 1391, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-combustion-generator-medium rotate: false - xy: 2329, 250 + xy: 1703, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-combustion-generator-small rotate: false - xy: 3706, 164 + xy: 1670, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-combustion-generator-tiny rotate: false - xy: 881, 40 + xy: 3129, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-combustion-generator-xlarge rotate: false - xy: 1307, 460 + xy: 1307, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-command-center-large + rotate: false + xy: 1433, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-command-center-medium + rotate: false + xy: 1737, 169 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-command-center-small + rotate: false + xy: 1696, 41 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-command-center-tiny + rotate: false + xy: 2376, 40 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-command-center-xlarge + rotate: false + xy: 1357, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-conduit-large rotate: false - xy: 1245, 368 + xy: 1475, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-conduit-medium rotate: false - xy: 2363, 250 + xy: 1771, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-small rotate: false - xy: 3732, 164 + xy: 1722, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-conduit-tiny rotate: false - xy: 881, 22 + xy: 2859, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-conduit-xlarge rotate: false - xy: 1357, 460 + xy: 1407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-container-large rotate: false - xy: 1245, 326 + xy: 1517, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-container-medium rotate: false - xy: 2397, 250 + xy: 1805, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-container-small rotate: false - xy: 3758, 164 + xy: 1748, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-container-tiny rotate: false - xy: 899, 148 + xy: 2877, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-container-xlarge rotate: false - xy: 1407, 460 + xy: 1457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-conveyor-large rotate: false - xy: 1287, 368 + xy: 1559, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-conveyor-medium rotate: false - xy: 2431, 250 + xy: 1839, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-small rotate: false - xy: 3784, 164 + xy: 1774, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-conveyor-tiny rotate: false - xy: 899, 130 + xy: 2895, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-conveyor-xlarge rotate: false - xy: 1457, 460 + xy: 1507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-copper-wall-large rotate: false - xy: 1287, 326 + xy: 1601, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-copper-wall-large-large rotate: false - xy: 1329, 368 + xy: 1643, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-copper-wall-large-medium rotate: false - xy: 2465, 250 + xy: 1873, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-large-small rotate: false - xy: 3810, 164 + xy: 1800, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-copper-wall-large-tiny rotate: false - xy: 899, 112 + xy: 2913, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-copper-wall-large-xlarge rotate: false - xy: 1507, 460 + xy: 1557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-copper-wall-medium rotate: false - xy: 2499, 250 + xy: 1907, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-small rotate: false - xy: 3836, 164 + xy: 1826, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-copper-wall-tiny rotate: false - xy: 899, 94 + xy: 2931, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-copper-wall-xlarge rotate: false - xy: 1557, 460 + xy: 1607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-core-foundation-large rotate: false - xy: 1329, 326 + xy: 1685, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-foundation-medium rotate: false - xy: 2533, 250 + xy: 1941, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-small rotate: false - xy: 3862, 164 + xy: 1852, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-foundation-tiny rotate: false - xy: 917, 148 + xy: 2949, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-core-foundation-xlarge rotate: false - xy: 1607, 460 + xy: 1657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-core-nucleus-large rotate: false - xy: 1371, 368 + xy: 1727, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-nucleus-medium rotate: false - xy: 2567, 250 + xy: 1975, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-nucleus-small rotate: false - xy: 3888, 164 + xy: 1878, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-nucleus-tiny rotate: false - xy: 917, 130 + xy: 2967, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-core-nucleus-xlarge rotate: false - xy: 1657, 460 + xy: 1707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-core-shard-large rotate: false - xy: 1371, 326 + xy: 1769, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-shard-medium rotate: false - xy: 2601, 250 + xy: 2009, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-shard-small rotate: false - xy: 3914, 164 + xy: 1904, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-shard-tiny rotate: false - xy: 917, 112 + xy: 2985, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-core-shard-xlarge rotate: false - xy: 1707, 460 + xy: 1757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-craters-large rotate: false - xy: 1413, 368 + xy: 1811, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-craters-medium rotate: false - xy: 2635, 250 + xy: 2043, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-craters-small rotate: false - xy: 3940, 164 + xy: 1930, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-craters-tiny rotate: false - xy: 917, 94 + xy: 3003, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-craters-xlarge rotate: false - xy: 1757, 460 + xy: 1807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-cryofluidmixer-large rotate: false - xy: 1413, 326 + xy: 1853, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cryofluidmixer-medium rotate: false - xy: 2669, 250 + xy: 2077, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-small rotate: false - xy: 3966, 164 + xy: 1956, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cryofluidmixer-tiny rotate: false - xy: 899, 76 + xy: 3021, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-cryofluidmixer-xlarge rotate: false - xy: 1807, 460 + xy: 1857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-cultivator-large rotate: false - xy: 1455, 368 + xy: 1895, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cultivator-medium rotate: false - xy: 2703, 250 + xy: 2111, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cultivator-small rotate: false - xy: 3992, 164 + xy: 1982, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cultivator-tiny rotate: false - xy: 935, 148 + xy: 3039, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-cultivator-xlarge rotate: false - xy: 1857, 460 + xy: 1907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-cyclone-large rotate: false - xy: 1455, 326 + xy: 1937, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cyclone-medium rotate: false - xy: 2737, 250 + xy: 2145, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cyclone-small rotate: false - xy: 1403, 166 + xy: 2008, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cyclone-tiny rotate: false - xy: 935, 130 + xy: 3057, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-cyclone-xlarge rotate: false - xy: 1907, 460 + xy: 1957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dark-metal-large rotate: false - xy: 1497, 368 + xy: 1979, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-metal-medium rotate: false - xy: 2771, 250 + xy: 2179, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-metal-small rotate: false - xy: 1429, 166 + xy: 2034, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-metal-tiny rotate: false - xy: 935, 112 + xy: 3075, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dark-metal-xlarge rotate: false - xy: 1957, 460 + xy: 2007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dark-panel-1-large rotate: false - xy: 1497, 326 + xy: 2021, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-1-medium rotate: false - xy: 2805, 250 + xy: 2213, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-1-small rotate: false - xy: 1455, 166 + xy: 2060, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-1-tiny rotate: false - xy: 935, 94 + xy: 3093, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dark-panel-1-xlarge rotate: false - xy: 2007, 460 + xy: 2057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dark-panel-2-large rotate: false - xy: 1539, 368 + xy: 2063, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-2-medium rotate: false - xy: 2839, 250 + xy: 2247, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-2-small rotate: false - xy: 1481, 166 + xy: 2086, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-2-tiny rotate: false - xy: 899, 58 + xy: 3111, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dark-panel-2-xlarge rotate: false - xy: 2057, 460 + xy: 2107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dark-panel-3-large rotate: false - xy: 1539, 326 + xy: 2105, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-3-medium rotate: false - xy: 2873, 250 + xy: 2281, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-3-small rotate: false - xy: 1507, 166 + xy: 2112, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-3-tiny rotate: false - xy: 917, 76 + xy: 3129, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dark-panel-3-xlarge rotate: false - xy: 2107, 460 + xy: 2157, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dark-panel-4-large rotate: false - xy: 1581, 368 + xy: 2147, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-4-medium rotate: false - xy: 2907, 250 + xy: 2315, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-4-small rotate: false - xy: 1533, 166 + xy: 2138, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-4-tiny rotate: false - xy: 953, 148 + xy: 2394, 39 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dark-panel-4-xlarge rotate: false - xy: 2157, 460 + xy: 2207, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dark-panel-5-large rotate: false - xy: 1581, 326 + xy: 2189, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-5-medium rotate: false - xy: 2941, 250 + xy: 3622, 363 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-5-small rotate: false - xy: 1559, 166 + xy: 2164, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-5-tiny rotate: false - xy: 953, 130 + xy: 2412, 39 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dark-panel-5-xlarge rotate: false - xy: 2207, 460 + xy: 2257, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dark-panel-6-large rotate: false - xy: 1623, 368 + xy: 2231, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-6-medium rotate: false - xy: 2975, 250 + xy: 2349, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-6-small rotate: false - xy: 1585, 166 + xy: 2190, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-6-tiny rotate: false - xy: 953, 112 + xy: 2365, 22 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dark-panel-6-xlarge rotate: false - xy: 2257, 460 + xy: 2307, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-darksand-large rotate: false - xy: 1623, 326 + xy: 2273, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-medium rotate: false - xy: 3009, 266 + xy: 2383, 180 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-small rotate: false - xy: 1611, 166 + xy: 2216, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-tainted-water-large rotate: false - xy: 1665, 368 + xy: 2315, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-tainted-water-medium rotate: false - xy: 3043, 266 + xy: 2417, 182 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-tainted-water-small rotate: false - xy: 1637, 166 + xy: 2242, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-tainted-water-tiny rotate: false - xy: 953, 94 + xy: 2365, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-darksand-tainted-water-xlarge rotate: false - xy: 2307, 460 + xy: 2357, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-darksand-tiny rotate: false - xy: 899, 40 + xy: 2383, 21 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-darksand-water-large rotate: false - xy: 1665, 326 + xy: 2357, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-water-medium rotate: false - xy: 3088, 292 + xy: 2451, 182 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-water-small rotate: false - xy: 1663, 166 + xy: 2440, 122 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-water-tiny rotate: false - xy: 917, 58 + xy: 2401, 21 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-darksand-water-xlarge rotate: false - xy: 2357, 460 + xy: 2407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-darksand-xlarge rotate: false - xy: 2407, 460 + xy: 2457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-deepwater-large rotate: false - xy: 1707, 368 + xy: 2399, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-deepwater-medium rotate: false - xy: 3122, 292 + xy: 3217, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-deepwater-small rotate: false - xy: 1689, 166 + xy: 2440, 96 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-deepwater-tiny rotate: false - xy: 935, 76 + xy: 2383, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-deepwater-xlarge rotate: false - xy: 2457, 460 + xy: 2507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-differential-generator-large rotate: false - xy: 1707, 326 + xy: 2441, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-differential-generator-medium rotate: false - xy: 3156, 292 + xy: 3251, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-differential-generator-small rotate: false - xy: 1715, 166 + xy: 881, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-differential-generator-tiny rotate: false - xy: 971, 148 + xy: 2401, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-differential-generator-xlarge rotate: false - xy: 2507, 460 + xy: 2557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-diode-large rotate: false - xy: 1749, 368 + xy: 2483, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-diode-medium rotate: false - xy: 3190, 292 + xy: 3659, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-diode-small rotate: false - xy: 1741, 161 + xy: 907, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-diode-tiny rotate: false - xy: 971, 130 + xy: 2419, 21 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-diode-xlarge rotate: false - xy: 2557, 460 + xy: 2607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-disassembler-large rotate: false - xy: 1749, 326 + xy: 2525, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-disassembler-medium rotate: false - xy: 3224, 292 + xy: 3693, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-disassembler-small rotate: false - xy: 1377, 148 + xy: 933, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-disassembler-tiny rotate: false - xy: 971, 112 + xy: 2419, 3 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-disassembler-xlarge rotate: false - xy: 2607, 460 + xy: 2657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-distributor-large rotate: false - xy: 1791, 368 + xy: 2567, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-distributor-medium rotate: false - xy: 3258, 292 + xy: 3727, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-distributor-small rotate: false - xy: 1403, 140 + xy: 959, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-distributor-tiny rotate: false - xy: 971, 94 + xy: 3147, 160 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-distributor-xlarge rotate: false - xy: 2657, 460 + xy: 2707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-door-large rotate: false - xy: 1791, 326 + xy: 2609, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-door-large-large rotate: false - xy: 1833, 368 + xy: 2651, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-door-large-medium rotate: false - xy: 3292, 292 + xy: 3761, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-door-large-small rotate: false - xy: 1429, 140 + xy: 985, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-door-large-tiny rotate: false - xy: 899, 22 + xy: 3165, 160 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-door-large-xlarge rotate: false - xy: 2707, 460 + xy: 2757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-door-medium rotate: false - xy: 3326, 292 + xy: 3795, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-door-small rotate: false - xy: 1455, 140 + xy: 1011, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-door-tiny rotate: false - xy: 917, 40 + xy: 3147, 142 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-door-xlarge rotate: false - xy: 2757, 460 + xy: 2807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-dunerocks-large rotate: false - xy: 1833, 326 + xy: 2693, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dunerocks-medium rotate: false - xy: 3360, 292 + xy: 3829, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-small rotate: false - xy: 1481, 140 + xy: 1037, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dunerocks-tiny rotate: false - xy: 935, 58 + xy: 3165, 142 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-dunerocks-xlarge rotate: false - xy: 2807, 460 + xy: 2857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-duo-large rotate: false - xy: 1875, 368 + xy: 2735, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-duo-medium rotate: false - xy: 3394, 292 + xy: 3863, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-small rotate: false - xy: 1507, 140 + xy: 1063, 12 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-duo-tiny rotate: false - xy: 953, 76 + xy: 3183, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-duo-xlarge rotate: false - xy: 2857, 460 + xy: 2907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-exponential-reconstructor-large rotate: false - xy: 1875, 326 + xy: 2777, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-exponential-reconstructor-medium rotate: false - xy: 3428, 292 + xy: 3897, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-exponential-reconstructor-small rotate: false - xy: 1533, 140 + xy: 1089, 16 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-exponential-reconstructor-tiny rotate: false - xy: 989, 148 + xy: 2807, 149 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-exponential-reconstructor-xlarge rotate: false - xy: 2907, 460 + xy: 2957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-force-projector-large rotate: false - xy: 1917, 368 + xy: 2819, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-force-projector-medium rotate: false - xy: 3462, 292 + xy: 3931, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-force-projector-small rotate: false - xy: 1559, 140 + xy: 2466, 122 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-force-projector-tiny rotate: false - xy: 989, 130 + xy: 2825, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-force-projector-xlarge rotate: false - xy: 2957, 460 + xy: 3007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-fuse-large rotate: false - xy: 1917, 326 + xy: 2861, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-fuse-medium rotate: false - xy: 3496, 292 + xy: 3965, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-fuse-small rotate: false - xy: 1585, 140 + xy: 2466, 96 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-fuse-tiny rotate: false - xy: 989, 112 + xy: 3201, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-fuse-xlarge rotate: false - xy: 3007, 460 + xy: 3057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-graphite-press-large rotate: false - xy: 1959, 368 + xy: 2903, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-graphite-press-medium rotate: false - xy: 3530, 292 + xy: 3999, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-graphite-press-small rotate: false - xy: 1611, 140 + xy: 2377, 58 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-graphite-press-tiny rotate: false - xy: 989, 94 + xy: 3219, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-graphite-press-xlarge rotate: false - xy: 3057, 460 + xy: 3107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-grass-large rotate: false - xy: 1959, 326 + xy: 2945, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-grass-medium rotate: false - xy: 3564, 292 + xy: 2875, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-grass-small rotate: false - xy: 1637, 140 + xy: 2403, 57 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-grass-tiny rotate: false - xy: 917, 22 + xy: 3237, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-grass-xlarge rotate: false - xy: 3107, 460 + xy: 3157, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ground-factory-large rotate: false - xy: 2001, 368 + xy: 2987, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ground-factory-medium rotate: false - xy: 3598, 292 + xy: 2909, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ground-factory-small rotate: false - xy: 1663, 140 + xy: 2440, 70 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ground-factory-tiny rotate: false - xy: 935, 40 + xy: 3183, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ground-factory-xlarge rotate: false - xy: 3157, 460 + xy: 3207, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-hail-large rotate: false - xy: 2001, 326 + xy: 3029, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-hail-medium rotate: false - xy: 3632, 292 + xy: 2943, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hail-small rotate: false - xy: 1689, 140 + xy: 2466, 70 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-hail-tiny rotate: false - xy: 953, 58 + xy: 3201, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-hail-xlarge rotate: false - xy: 3207, 460 + xy: 3257, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-holostone-large rotate: false - xy: 2043, 368 + xy: 3071, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-holostone-medium rotate: false - xy: 3666, 292 + xy: 2977, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-small rotate: false - xy: 1715, 140 + xy: 1115, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-holostone-tiny rotate: false - xy: 971, 76 + xy: 3219, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-holostone-xlarge rotate: false - xy: 3257, 460 + xy: 3307, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-hotrock-large rotate: false - xy: 2043, 326 + xy: 3113, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-hotrock-medium rotate: false - xy: 3700, 292 + xy: 3011, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-small rotate: false - xy: 1741, 135 + xy: 1141, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-hotrock-tiny rotate: false - xy: 1007, 148 + xy: 3237, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-hotrock-xlarge rotate: false - xy: 3307, 460 + xy: 3357, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-hyper-processor-large + rotate: false + 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-hyper-processor-xlarge + rotate: false + xy: 3407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ice-large rotate: false - xy: 2085, 368 + xy: 3197, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ice-medium rotate: false - xy: 3734, 292 + xy: 3079, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-small rotate: false - xy: 1767, 156 + xy: 1193, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ice-snow-large rotate: false - xy: 2085, 326 + xy: 859, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ice-snow-medium rotate: false - xy: 3768, 292 + xy: 3113, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-small rotate: false - xy: 1793, 156 + xy: 3651, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ice-snow-tiny rotate: false - xy: 1007, 130 + xy: 3255, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ice-snow-xlarge rotate: false - xy: 3357, 460 + xy: 3457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ice-tiny rotate: false - xy: 1007, 112 + xy: 2563, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ice-xlarge rotate: false - xy: 3407, 460 + xy: 3507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-icerocks-large rotate: false - xy: 2127, 368 + xy: 859, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-icerocks-medium rotate: false - xy: 3802, 292 + xy: 3147, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-small rotate: false - xy: 1819, 156 + xy: 3677, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-icerocks-tiny rotate: false - xy: 1007, 94 + xy: 2581, 202 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icerocks-xlarge rotate: false - xy: 3457, 460 + xy: 3557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ignarock-large rotate: false - xy: 2127, 326 + xy: 901, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ignarock-medium rotate: false - xy: 3836, 292 + xy: 3181, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-small rotate: false - xy: 1845, 156 + xy: 3703, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ignarock-tiny rotate: false - xy: 935, 22 + xy: 2563, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ignarock-xlarge rotate: false - xy: 3507, 460 + xy: 3607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-illuminator-large rotate: false - xy: 2169, 368 + xy: 859, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-illuminator-medium rotate: false - xy: 3870, 292 + xy: 3215, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-illuminator-small rotate: false - xy: 1871, 156 + xy: 3729, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-illuminator-tiny rotate: false - xy: 953, 40 + xy: 2581, 184 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-illuminator-xlarge rotate: false - xy: 3557, 460 + xy: 3657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-impact-reactor-large rotate: false - xy: 2169, 326 + xy: 901, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-impact-reactor-medium rotate: false - xy: 3904, 292 + xy: 3656, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-small rotate: false - xy: 1897, 156 + xy: 3755, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-impact-reactor-tiny rotate: false - xy: 971, 58 + xy: 2599, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-impact-reactor-xlarge rotate: false - xy: 3607, 460 + xy: 3707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-incinerator-large rotate: false - xy: 2211, 368 + xy: 943, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-incinerator-medium rotate: false - xy: 3938, 292 + xy: 3690, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-incinerator-small rotate: false - xy: 1923, 156 + xy: 3781, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-incinerator-tiny rotate: false - xy: 989, 76 + xy: 2617, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-incinerator-xlarge rotate: false - xy: 3657, 460 + xy: 3757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-inverted-sorter-large rotate: false - xy: 2211, 326 + xy: 859, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-inverted-sorter-medium rotate: false - xy: 3972, 292 + xy: 3724, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-inverted-sorter-small rotate: false - xy: 1949, 156 + xy: 3807, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-inverted-sorter-tiny rotate: false - xy: 1025, 148 + xy: 2635, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-inverted-sorter-xlarge rotate: false - xy: 3707, 460 + xy: 3807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-item-source-large rotate: false - xy: 2253, 368 + xy: 901, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-item-source-medium rotate: false - xy: 4006, 292 + xy: 3758, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-source-small rotate: false - xy: 1975, 156 + xy: 3833, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-item-source-tiny rotate: false - xy: 1025, 130 + xy: 2653, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-item-source-xlarge rotate: false - xy: 3757, 460 + xy: 3857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-item-void-large rotate: false - xy: 2253, 326 + xy: 943, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-item-void-medium rotate: false - xy: 1405, 192 + xy: 3792, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-void-small rotate: false - xy: 2001, 156 + xy: 3859, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-item-void-tiny rotate: false - xy: 1025, 112 + xy: 2671, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-item-void-xlarge rotate: false - xy: 3807, 460 + xy: 3907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-junction-large rotate: false - xy: 2295, 368 + xy: 985, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-junction-medium rotate: false - xy: 1439, 192 + xy: 3826, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-junction-small rotate: false - xy: 2027, 156 + xy: 3885, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-junction-tiny rotate: false - xy: 1025, 94 + xy: 2581, 166 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-junction-xlarge rotate: false - xy: 3857, 460 + xy: 3957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-kiln-large rotate: false - xy: 2295, 326 + xy: 901, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-kiln-medium rotate: false - xy: 1473, 192 + xy: 3860, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-kiln-small rotate: false - xy: 2053, 156 + xy: 3911, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-kiln-tiny rotate: false - xy: 953, 22 + xy: 2599, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-kiln-xlarge rotate: false - xy: 3907, 460 + xy: 4007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-lancer-large rotate: false - xy: 2337, 368 + xy: 943, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-lancer-medium rotate: false - xy: 1507, 192 + xy: 3894, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-lancer-small rotate: false - xy: 2079, 156 + xy: 3937, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-lancer-tiny rotate: false - xy: 971, 40 + xy: 2617, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-lancer-xlarge rotate: false - xy: 3957, 460 + xy: 345, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-laser-drill-large rotate: false - xy: 2337, 326 + xy: 985, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-laser-drill-medium rotate: false - xy: 1541, 192 + xy: 3928, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-laser-drill-small rotate: false - xy: 2105, 156 + xy: 3963, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-laser-drill-tiny rotate: false - xy: 989, 58 + xy: 2635, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-laser-drill-xlarge rotate: false - xy: 4007, 460 + xy: 395, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-launch-pad-large rotate: false - xy: 2379, 368 + xy: 1027, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-launch-pad-large-large rotate: false - xy: 2379, 326 + xy: 943, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-launch-pad-large-medium rotate: false - xy: 1575, 192 + xy: 3962, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-launch-pad-large-small rotate: false - xy: 2131, 156 + xy: 3989, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-launch-pad-large-tiny rotate: false - xy: 1007, 76 + xy: 2653, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-launch-pad-large-xlarge rotate: false - xy: 345, 351 + xy: 445, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-launch-pad-medium rotate: false - xy: 1609, 192 + xy: 3996, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-launch-pad-small rotate: false - xy: 2157, 156 + xy: 4015, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-launch-pad-tiny rotate: false - xy: 1043, 148 + xy: 2671, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-launch-pad-xlarge rotate: false - xy: 395, 351 + xy: 495, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-liquid-junction-large rotate: false - xy: 2421, 368 + xy: 985, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-junction-medium rotate: false - xy: 1643, 192 + xy: 2383, 146 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-junction-small rotate: false - xy: 2183, 156 + xy: 4059, 371 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-junction-tiny rotate: false - xy: 1043, 130 + xy: 2570, 148 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-liquid-junction-xlarge rotate: false - xy: 445, 351 + xy: 545, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-liquid-router-large rotate: false - xy: 2421, 326 + xy: 1027, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-router-medium rotate: false - xy: 1677, 192 + xy: 2417, 148 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-router-small rotate: false - xy: 2209, 156 + xy: 4033, 361 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-router-tiny rotate: false - xy: 1043, 112 + xy: 2570, 130 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-liquid-router-xlarge rotate: false - xy: 495, 351 + xy: 595, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-liquid-source-large rotate: false - xy: 2463, 368 + xy: 1069, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-source-medium rotate: false - xy: 1711, 192 + xy: 2451, 148 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-source-small rotate: false - xy: 2235, 156 + xy: 4059, 345 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-source-tiny rotate: false - xy: 1043, 94 + xy: 2570, 112 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-liquid-source-xlarge rotate: false - xy: 545, 351 + xy: 645, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-liquid-tank-large rotate: false - xy: 2463, 326 + xy: 985, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-tank-medium rotate: false - xy: 1745, 187 + xy: 2497, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-small rotate: false - xy: 2261, 156 + xy: 4041, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-tank-tiny rotate: false - xy: 971, 22 + xy: 2570, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-liquid-tank-xlarge rotate: false - xy: 595, 351 + xy: 695, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-liquid-void-large rotate: false - xy: 2505, 368 + xy: 1027, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-void-medium rotate: false - xy: 1781, 216 + xy: 3454, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-void-small rotate: false - xy: 2287, 156 + xy: 4067, 319 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-void-tiny rotate: false - xy: 989, 40 + xy: 2570, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-liquid-void-xlarge rotate: false - xy: 645, 351 + xy: 231, 96 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-logic-display-large rotate: false - xy: 2505, 326 + xy: 1069, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-logic-display-medium rotate: false - xy: 1815, 216 + xy: 3488, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-logic-display-small rotate: false - xy: 2313, 156 + xy: 2275, 48 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-logic-display-tiny rotate: false - xy: 1007, 58 + xy: 2570, 58 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-logic-display-xlarge rotate: false - xy: 695, 351 + xy: 231, 46 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-logic-processor-large rotate: false - xy: 2547, 368 + xy: 1111, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-logic-processor-medium rotate: false - xy: 1849, 216 + xy: 3522, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-logic-processor-small rotate: false - xy: 2339, 156 + xy: 2301, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-logic-processor-tiny rotate: false - xy: 1025, 76 + xy: 2570, 40 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-logic-processor-xlarge rotate: false - xy: 231, 93 + xy: 745, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-magmarock-large rotate: false - xy: 2547, 326 + xy: 1027, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-magmarock-medium rotate: false - xy: 1883, 216 + xy: 3556, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-magmarock-small rotate: false - xy: 2365, 156 + xy: 2327, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-magmarock-tiny rotate: false - xy: 1061, 148 + xy: 2588, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-magmarock-xlarge rotate: false - xy: 231, 43 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-mass-conveyor-large - rotate: false - xy: 2589, 368 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mass-conveyor-medium - rotate: false - xy: 1917, 216 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mass-conveyor-small - rotate: false - xy: 2391, 156 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mass-conveyor-tiny - rotate: false - xy: 1061, 130 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mass-conveyor-xlarge - rotate: false - xy: 745, 351 + xy: 281, 107 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-mass-driver-large rotate: false - xy: 2589, 326 + xy: 1069, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mass-driver-medium rotate: false - xy: 1951, 216 + xy: 2531, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mass-driver-small rotate: false - xy: 2417, 156 + xy: 1221, 14 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mass-driver-tiny rotate: false - xy: 1061, 112 + xy: 2588, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-mass-driver-xlarge rotate: false - xy: 281, 104 + xy: 281, 57 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-mechanical-drill-large rotate: false - xy: 2631, 368 + xy: 1111, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mechanical-drill-medium rotate: false - xy: 1985, 216 + xy: 2565, 220 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mechanical-drill-small rotate: false - xy: 2443, 156 + xy: 1247, 14 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mechanical-drill-tiny rotate: false - xy: 1061, 94 + xy: 2588, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-mechanical-drill-xlarge rotate: false - xy: 281, 54 + xy: 795, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-mechanical-pump-large rotate: false - xy: 2631, 326 + xy: 1153, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mechanical-pump-medium rotate: false - xy: 2019, 216 + xy: 2599, 224 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mechanical-pump-small rotate: false - xy: 2469, 156 + xy: 1273, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mechanical-pump-tiny rotate: false - xy: 989, 22 + xy: 2606, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-mechanical-pump-xlarge rotate: false - xy: 795, 363 + xy: 309, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-meltdown-large rotate: false - xy: 2673, 368 + xy: 1069, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-meltdown-medium rotate: false - xy: 2053, 216 + xy: 2633, 224 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-meltdown-small rotate: false - xy: 2495, 156 + xy: 1299, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-meltdown-tiny rotate: false - xy: 1007, 40 + xy: 2606, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-meltdown-xlarge rotate: false - xy: 309, 301 + xy: 309, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-melter-large rotate: false - xy: 2673, 326 + xy: 1111, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-melter-medium rotate: false - xy: 2087, 216 + xy: 2667, 224 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-melter-small rotate: false - xy: 2521, 156 + xy: 1325, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-melter-tiny rotate: false - xy: 1025, 58 + xy: 2606, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-melter-xlarge rotate: false - xy: 309, 251 + xy: 359, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-memory-cell-large + rotate: false + xy: 1153, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-memory-cell-medium + rotate: false + xy: 2707, 260 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-memory-cell-small + rotate: false + xy: 1351, 15 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-memory-cell-tiny + rotate: false + xy: 2588, 90 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-memory-cell-xlarge + rotate: false + xy: 309, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-mend-projector-large rotate: false - xy: 2715, 368 + xy: 1195, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mend-projector-medium rotate: false - xy: 2121, 216 + xy: 2701, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mend-projector-small rotate: false - xy: 2547, 156 + xy: 1377, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mend-projector-tiny rotate: false - xy: 1043, 76 + xy: 2624, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-mend-projector-xlarge rotate: false - xy: 359, 301 + xy: 359, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-mender-large rotate: false - xy: 2715, 326 + xy: 1111, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mender-medium rotate: false - xy: 2155, 216 + xy: 2741, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mender-small rotate: false - xy: 2573, 156 + xy: 1403, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mender-tiny rotate: false - xy: 1079, 148 + xy: 2624, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-mender-xlarge rotate: false - xy: 309, 201 + xy: 409, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-message-large rotate: false - xy: 2757, 368 + xy: 1153, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-message-medium rotate: false - xy: 2189, 216 + xy: 2735, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-message-small rotate: false - xy: 2599, 156 + xy: 1429, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-message-tiny rotate: false - xy: 1079, 130 + xy: 2624, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-message-xlarge rotate: false - xy: 359, 251 + xy: 359, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-metal-floor-2-large rotate: false - xy: 2757, 326 + xy: 1195, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-2-medium rotate: false - xy: 2223, 216 + xy: 2775, 266 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-2-small rotate: false - xy: 2625, 156 + xy: 1455, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-2-tiny rotate: false - xy: 1079, 112 + xy: 2588, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-metal-floor-2-xlarge rotate: false - xy: 409, 301 + xy: 409, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-metal-floor-3-large rotate: false - xy: 2799, 368 + xy: 1237, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-3-medium rotate: false - xy: 2257, 216 + xy: 2809, 266 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-3-small rotate: false - xy: 2651, 156 + xy: 1481, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-3-tiny rotate: false - xy: 1079, 94 + xy: 2606, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-metal-floor-3-xlarge rotate: false - xy: 359, 201 + xy: 459, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-metal-floor-5-large rotate: false - xy: 2799, 326 + xy: 1153, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-5-medium rotate: false - xy: 2291, 216 + xy: 2843, 266 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-5-small rotate: false - xy: 2677, 156 + xy: 1507, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-5-tiny rotate: false - xy: 1007, 22 + xy: 2642, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-metal-floor-5-xlarge rotate: false - xy: 409, 251 + xy: 409, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-metal-floor-damaged-large rotate: false - xy: 2841, 368 + xy: 1195, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-damaged-medium rotate: false - xy: 2325, 216 + xy: 2877, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-damaged-small rotate: false - xy: 2703, 156 + xy: 1533, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-damaged-tiny rotate: false - xy: 1025, 40 + xy: 2642, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-metal-floor-damaged-xlarge rotate: false - xy: 459, 301 + xy: 459, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-metal-floor-large rotate: false - xy: 2841, 326 + xy: 1237, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-medium rotate: false - xy: 2359, 216 + xy: 2911, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-small rotate: false - xy: 2729, 156 + xy: 1559, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-tiny rotate: false - xy: 1043, 58 + xy: 2642, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-metal-floor-xlarge rotate: false - xy: 409, 201 + xy: 509, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-micro-processor-large rotate: false - xy: 2883, 368 + xy: 1279, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-micro-processor-medium rotate: false - xy: 2393, 216 + xy: 2945, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-micro-processor-small rotate: false - xy: 2755, 156 + xy: 1585, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-micro-processor-tiny rotate: false - xy: 1061, 76 + xy: 2588, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-micro-processor-xlarge rotate: false - xy: 459, 251 + xy: 459, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-moss-large rotate: false - xy: 2883, 326 + xy: 1195, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-moss-medium rotate: false - xy: 2427, 216 + xy: 2979, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-small rotate: false - xy: 2781, 156 + xy: 1611, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-moss-tiny rotate: false - xy: 1097, 148 + xy: 2606, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-moss-xlarge rotate: false - xy: 509, 301 + xy: 509, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-multi-press-large rotate: false - xy: 2925, 368 + xy: 1237, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-multi-press-medium rotate: false - xy: 2461, 216 + xy: 3013, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-multi-press-small rotate: false - xy: 2807, 156 + xy: 1637, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-multi-press-tiny rotate: false - xy: 1097, 130 + xy: 2624, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-multi-press-xlarge rotate: false - xy: 459, 201 + xy: 559, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-multiplicative-reconstructor-large rotate: false - xy: 2925, 326 + xy: 1279, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-multiplicative-reconstructor-medium rotate: false - xy: 2495, 216 + xy: 3047, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-multiplicative-reconstructor-small rotate: false - xy: 2833, 156 + xy: 1663, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-multiplicative-reconstructor-tiny rotate: false - xy: 1097, 112 + xy: 2660, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-multiplicative-reconstructor-xlarge rotate: false - xy: 509, 251 + xy: 509, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-naval-factory-large rotate: false - xy: 2967, 368 + xy: 1321, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-naval-factory-medium rotate: false - xy: 2529, 216 + xy: 3081, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-naval-factory-small rotate: false - xy: 2859, 156 + xy: 1689, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-naval-factory-tiny rotate: false - xy: 1097, 94 + xy: 2660, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-naval-factory-xlarge rotate: false - xy: 559, 301 + xy: 559, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-oil-extractor-large rotate: false - xy: 2967, 326 + xy: 1237, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-oil-extractor-medium rotate: false - xy: 2563, 216 + xy: 3115, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-oil-extractor-small rotate: false - xy: 2885, 156 + xy: 1715, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-oil-extractor-tiny rotate: false - xy: 1025, 22 + xy: 2660, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-oil-extractor-xlarge rotate: false - xy: 509, 201 + xy: 609, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ore-coal-large rotate: false - xy: 3009, 368 + xy: 1279, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ore-coal-medium rotate: false - xy: 2597, 216 + xy: 3149, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-coal-small rotate: false - xy: 2911, 156 + xy: 1741, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ore-coal-tiny rotate: false - xy: 1043, 40 + xy: 2606, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ore-coal-xlarge rotate: false - xy: 559, 251 + xy: 559, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ore-copper-large rotate: false - xy: 3009, 326 + xy: 1321, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ore-copper-medium rotate: false - xy: 2631, 216 + xy: 2877, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-small rotate: false - xy: 2937, 156 + xy: 1767, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ore-copper-tiny rotate: false - xy: 1061, 58 + xy: 2624, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ore-copper-xlarge rotate: false - xy: 609, 301 + xy: 609, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ore-lead-large rotate: false - xy: 3051, 368 + xy: 1363, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ore-lead-medium rotate: false - xy: 2665, 216 + xy: 2911, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-small rotate: false - xy: 2963, 156 + xy: 1793, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ore-lead-tiny rotate: false - xy: 1079, 76 + xy: 2642, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ore-lead-xlarge rotate: false - xy: 559, 201 + xy: 659, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ore-scrap-large rotate: false - xy: 3051, 326 + xy: 1279, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ore-scrap-medium rotate: false - xy: 2699, 216 + xy: 2945, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-small rotate: false - xy: 1767, 130 + xy: 1819, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ore-scrap-tiny rotate: false - xy: 1115, 148 + xy: 2624, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ore-scrap-xlarge rotate: false - xy: 609, 251 + xy: 609, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ore-thorium-large rotate: false - xy: 3093, 368 + xy: 1321, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ore-thorium-medium rotate: false - xy: 2733, 216 + xy: 2979, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-small rotate: false - xy: 1793, 130 + xy: 1845, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ore-thorium-tiny rotate: false - xy: 1115, 130 + xy: 2642, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ore-thorium-xlarge rotate: false - xy: 659, 301 + xy: 659, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ore-titanium-large rotate: false - xy: 3093, 326 + xy: 1363, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ore-titanium-medium rotate: false - xy: 2767, 216 + xy: 3013, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-small rotate: false - xy: 1819, 130 + xy: 1871, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ore-titanium-tiny rotate: false - xy: 1115, 112 + xy: 2660, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ore-titanium-xlarge rotate: false - xy: 609, 201 + xy: 709, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-overdrive-dome-large rotate: false - xy: 3135, 368 + xy: 1405, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-overdrive-dome-medium rotate: false - xy: 2801, 216 + xy: 3047, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-overdrive-dome-small rotate: false - xy: 1845, 130 + xy: 1897, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-overdrive-dome-tiny rotate: false - xy: 1115, 94 + xy: 2642, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-overdrive-dome-xlarge rotate: false - xy: 659, 251 + xy: 659, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-overdrive-projector-large rotate: false - xy: 3135, 326 + xy: 1321, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-overdrive-projector-medium rotate: false - xy: 2835, 216 + xy: 3081, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-overdrive-projector-small rotate: false - xy: 1871, 130 + xy: 1923, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-overdrive-projector-tiny rotate: false - xy: 1043, 22 + xy: 2660, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-overdrive-projector-xlarge rotate: false - xy: 709, 301 + xy: 709, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-overflow-gate-large rotate: false - xy: 3177, 368 + xy: 1363, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-overflow-gate-medium rotate: false - xy: 2869, 216 + xy: 3115, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-overflow-gate-small rotate: false - xy: 1897, 130 + xy: 1949, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-overflow-gate-tiny rotate: false - xy: 1061, 40 + xy: 2660, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-overflow-gate-xlarge rotate: false - xy: 659, 201 + xy: 709, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-parallax-large rotate: false - xy: 3177, 326 + xy: 1405, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-parallax-medium rotate: false - xy: 2903, 216 + xy: 3149, 240 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-parallax-small rotate: false - xy: 1923, 130 + xy: 1975, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-parallax-tiny rotate: false - xy: 1079, 58 + xy: 2588, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-parallax-xlarge rotate: false - xy: 709, 251 + xy: 759, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-payload-conveyor-large + rotate: false + xy: 1447, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-payload-conveyor-medium + rotate: false + xy: 881, 140 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-payload-conveyor-small + rotate: false + xy: 2001, 15 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-payload-conveyor-tiny + rotate: false + xy: 2606, 36 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-payload-conveyor-xlarge + rotate: false + xy: 759, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-payload-router-large rotate: false - xy: 3219, 368 + xy: 1363, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-payload-router-medium rotate: false - xy: 2937, 216 + xy: 915, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-payload-router-small rotate: false - xy: 1949, 130 + xy: 2027, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-payload-router-tiny rotate: false - xy: 1097, 76 + xy: 2624, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-payload-router-xlarge rotate: false - xy: 709, 201 + xy: 759, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-pebbles-large rotate: false - xy: 3219, 326 + xy: 1405, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-pebbles-medium rotate: false - xy: 2971, 216 + xy: 881, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pebbles-small rotate: false - xy: 1975, 130 + xy: 2053, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-pebbles-tiny rotate: false - xy: 1133, 148 + xy: 2642, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-pebbles-xlarge rotate: false - xy: 759, 301 + xy: 809, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-phase-conduit-large rotate: false - xy: 3261, 368 + xy: 1447, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-phase-conduit-medium rotate: false - xy: 1779, 182 + xy: 949, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-conduit-small rotate: false - xy: 2001, 130 + xy: 2079, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-phase-conduit-tiny rotate: false - xy: 1133, 130 + xy: 2660, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-phase-conduit-xlarge rotate: false - xy: 759, 251 + xy: 809, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-phase-conveyor-large rotate: false - xy: 3261, 326 + xy: 1489, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-phase-conveyor-medium rotate: false - xy: 1813, 182 + xy: 881, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-conveyor-small rotate: false - xy: 2027, 130 + xy: 2105, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-phase-conveyor-tiny rotate: false - xy: 1133, 112 + xy: 2678, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-phase-conveyor-xlarge rotate: false - xy: 759, 201 + xy: 809, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-phase-wall-large rotate: false - xy: 3303, 368 + xy: 1405, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-phase-wall-large-large rotate: false - xy: 3303, 326 + xy: 1447, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-phase-wall-large-medium rotate: false - xy: 1847, 182 + xy: 915, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-wall-large-small rotate: false - xy: 2053, 130 + xy: 2131, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-phase-wall-large-tiny rotate: false - xy: 1133, 94 + xy: 2678, 126 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-phase-wall-large-xlarge rotate: false - xy: 809, 313 + xy: 809, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-phase-wall-medium rotate: false - xy: 1881, 182 + xy: 983, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-wall-small rotate: false - xy: 2079, 130 + xy: 2157, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-phase-wall-tiny rotate: false - xy: 1061, 22 + xy: 2678, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-phase-wall-xlarge rotate: false - xy: 809, 263 + xy: 281, 7 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-phase-weaver-large rotate: false - xy: 3345, 368 + xy: 1489, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-phase-weaver-medium rotate: false - xy: 1915, 182 + xy: 881, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-small rotate: false - xy: 2105, 130 + xy: 2183, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-phase-weaver-tiny rotate: false - xy: 1079, 40 + xy: 2678, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-phase-weaver-xlarge rotate: false - xy: 809, 213 + xy: 331, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-pine-large rotate: false - xy: 3345, 326 + xy: 1531, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-pine-medium rotate: false - xy: 1949, 182 + xy: 915, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pine-small rotate: false - xy: 2131, 130 + xy: 2209, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-pine-tiny rotate: false - xy: 1097, 58 + xy: 2678, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-pine-xlarge rotate: false - xy: 809, 163 + xy: 331, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-plastanium-compressor-large rotate: false - xy: 3387, 368 + xy: 1447, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-plastanium-compressor-medium rotate: false - xy: 1983, 182 + xy: 949, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-plastanium-compressor-small rotate: false - xy: 2157, 130 + xy: 2235, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-plastanium-compressor-tiny rotate: false - xy: 1115, 76 + xy: 2678, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-plastanium-compressor-xlarge rotate: false - xy: 281, 4 + xy: 381, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-plastanium-conveyor-large rotate: false - xy: 3387, 326 + xy: 1489, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-plastanium-conveyor-medium rotate: false - xy: 2017, 182 + xy: 1017, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-plastanium-conveyor-small rotate: false - xy: 2183, 130 + xy: 2261, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-plastanium-conveyor-tiny rotate: false - xy: 1151, 148 + xy: 2678, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-plastanium-conveyor-xlarge rotate: false - xy: 331, 151 + xy: 331, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-plastanium-wall-large rotate: false - xy: 3429, 368 + xy: 1531, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-plastanium-wall-large-large rotate: false - xy: 3429, 326 + xy: 1573, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-plastanium-wall-large-medium rotate: false - xy: 2051, 182 + xy: 915, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-plastanium-wall-large-small rotate: false - xy: 2209, 130 + xy: 2287, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-plastanium-wall-large-tiny rotate: false - xy: 1151, 130 + xy: 2570, 22 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-plastanium-wall-large-xlarge rotate: false - xy: 331, 101 + xy: 381, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-plastanium-wall-medium rotate: false - xy: 2085, 182 + xy: 949, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-plastanium-wall-small rotate: false - xy: 2235, 130 + xy: 2313, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-plastanium-wall-tiny rotate: false - xy: 1151, 112 + xy: 2588, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-plastanium-wall-xlarge rotate: false - xy: 381, 151 + xy: 431, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-plated-conduit-large rotate: false - xy: 3471, 368 + xy: 1489, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-plated-conduit-medium rotate: false - xy: 2119, 182 + xy: 983, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-plated-conduit-small rotate: false - xy: 2261, 130 + xy: 2339, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-plated-conduit-tiny rotate: false - xy: 1151, 94 + xy: 2606, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-plated-conduit-xlarge rotate: false - xy: 331, 51 + xy: 381, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-pneumatic-drill-large rotate: false - xy: 3471, 326 + xy: 1531, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-pneumatic-drill-medium rotate: false - xy: 2153, 182 + xy: 1051, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-small rotate: false - xy: 2287, 130 + xy: 3251, 317 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-pneumatic-drill-tiny rotate: false - xy: 1079, 22 + xy: 2624, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-pneumatic-drill-xlarge rotate: false - xy: 381, 101 + xy: 431, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-power-node-large rotate: false - xy: 3513, 368 + xy: 1573, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-power-node-large-large rotate: false - xy: 3513, 326 + xy: 1615, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-power-node-large-medium rotate: false - xy: 2187, 182 + xy: 949, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-node-large-small rotate: false - xy: 2313, 130 + xy: 3249, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-power-node-large-tiny rotate: false - xy: 1097, 40 + xy: 2642, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-power-node-large-xlarge rotate: false - xy: 431, 151 + xy: 481, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-power-node-medium rotate: false - xy: 2221, 182 + xy: 983, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-node-small rotate: false - xy: 2339, 130 + xy: 3245, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-power-node-tiny rotate: false - xy: 1115, 58 + xy: 2660, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-power-node-xlarge rotate: false - xy: 381, 51 + xy: 431, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-power-source-large rotate: false - xy: 3555, 368 + xy: 1531, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-power-source-medium rotate: false - xy: 2255, 182 + xy: 1017, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-source-small rotate: false - xy: 2365, 130 + xy: 3277, 317 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-power-source-tiny rotate: false - xy: 1133, 76 + xy: 2678, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-power-source-xlarge rotate: false - xy: 431, 101 + xy: 481, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-power-void-large rotate: false - xy: 3555, 326 + xy: 1573, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-power-void-medium rotate: false - xy: 2289, 182 + xy: 983, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-void-small rotate: false - xy: 2391, 130 + xy: 3275, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-power-void-tiny rotate: false - xy: 1169, 148 + xy: 3273, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-power-void-xlarge rotate: false - xy: 481, 151 + xy: 531, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-pulse-conduit-large rotate: false - xy: 3597, 368 + xy: 1615, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-pulse-conduit-medium rotate: false - xy: 2323, 182 + xy: 1017, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulse-conduit-small rotate: false - xy: 2417, 130 + xy: 3271, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-pulse-conduit-tiny rotate: false - xy: 1169, 130 + xy: 3291, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-pulse-conduit-xlarge rotate: false - xy: 431, 51 + xy: 481, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-pulverizer-large rotate: false - xy: 3597, 326 + xy: 1657, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-pulverizer-medium rotate: false - xy: 2357, 182 + xy: 1051, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-small rotate: false - xy: 2443, 130 + xy: 2769, 234 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-pulverizer-tiny rotate: false - xy: 1169, 112 + xy: 3309, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-pulverizer-xlarge rotate: false - xy: 481, 101 + xy: 531, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-pyratite-mixer-large rotate: false - xy: 3639, 368 + xy: 1573, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-pyratite-mixer-medium rotate: false - xy: 2391, 182 + xy: 1017, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pyratite-mixer-small rotate: false - xy: 2469, 130 + xy: 2795, 240 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-pyratite-mixer-tiny rotate: false - xy: 1169, 94 + xy: 3327, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-pyratite-mixer-xlarge rotate: false - xy: 531, 151 + xy: 581, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-repair-point-large rotate: false - xy: 3639, 326 + xy: 1615, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-repair-point-medium rotate: false - xy: 2425, 182 + xy: 1051, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-small rotate: false - xy: 2495, 130 + xy: 2821, 240 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-repair-point-tiny rotate: false - xy: 1097, 22 + xy: 3345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-repair-point-xlarge rotate: false - xy: 481, 51 + xy: 531, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-resupply-point-large rotate: false - xy: 3681, 368 + xy: 1657, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-resupply-point-medium rotate: false - xy: 2459, 182 + xy: 1051, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-resupply-point-small rotate: false - xy: 2521, 130 + xy: 2847, 240 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-resupply-point-tiny rotate: false - xy: 1115, 40 + xy: 3363, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-resupply-point-xlarge rotate: false - xy: 531, 101 + xy: 581, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-ripple-large rotate: false - xy: 3681, 326 + xy: 1699, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ripple-medium rotate: false - xy: 2493, 182 + xy: 1085, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ripple-small rotate: false - xy: 2547, 130 + xy: 2769, 208 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ripple-tiny rotate: false - xy: 1133, 58 + xy: 3381, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-ripple-xlarge rotate: false - xy: 581, 151 + xy: 631, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rock-large rotate: false - xy: 3723, 368 + xy: 1615, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-rock-medium rotate: false - xy: 2527, 182 + xy: 1085, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rock-small rotate: false - xy: 2573, 130 + xy: 2795, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-rock-tiny rotate: false - xy: 1151, 76 + xy: 3273, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-rock-xlarge rotate: false - xy: 531, 51 + xy: 581, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-large rotate: false - xy: 3723, 326 + xy: 1657, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-rocks-medium rotate: false - xy: 2561, 182 + xy: 1119, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rocks-small rotate: false - xy: 2599, 130 + xy: 2821, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-rocks-tiny rotate: false - xy: 1187, 148 + xy: 3291, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-rocks-xlarge rotate: false - xy: 581, 101 + xy: 631, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rotary-pump-large rotate: false - xy: 3765, 368 + xy: 1699, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-rotary-pump-medium rotate: false - xy: 2595, 182 + xy: 1085, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rotary-pump-small rotate: false - xy: 2625, 130 + xy: 2847, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-rotary-pump-tiny rotate: false - xy: 1187, 130 + xy: 3309, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-rotary-pump-xlarge rotate: false - xy: 631, 151 + xy: 681, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-router-large rotate: false - xy: 3765, 326 + xy: 1741, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-router-medium rotate: false - xy: 2629, 182 + xy: 1119, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-router-small rotate: false - xy: 2651, 130 + xy: 2873, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-router-tiny rotate: false - xy: 1187, 112 + xy: 3327, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-router-xlarge rotate: false - xy: 581, 51 + xy: 631, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rtg-generator-large rotate: false - xy: 3807, 368 + xy: 1657, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-rtg-generator-medium rotate: false - xy: 2663, 182 + xy: 1153, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rtg-generator-small rotate: false - xy: 2677, 130 + xy: 2899, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-rtg-generator-tiny rotate: false - xy: 1187, 94 + xy: 3345, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-rtg-generator-xlarge rotate: false - xy: 631, 101 + xy: 681, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-salt-large rotate: false - xy: 3807, 326 + xy: 1699, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-salt-medium rotate: false - xy: 2697, 182 + xy: 1119, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salt-small rotate: false - xy: 2703, 130 + xy: 2925, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-salt-tiny rotate: false - xy: 1115, 22 + xy: 3363, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-salt-xlarge rotate: false - xy: 681, 151 + xy: 731, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-saltrocks-large rotate: false - xy: 3849, 368 + xy: 1741, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-saltrocks-medium rotate: false - xy: 2731, 182 + xy: 1153, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-small rotate: false - xy: 2729, 130 + xy: 2951, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-saltrocks-tiny rotate: false - xy: 1133, 40 + xy: 3381, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-saltrocks-xlarge rotate: false - xy: 631, 51 + xy: 681, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-salvo-large rotate: false - xy: 3849, 326 + xy: 1783, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-salvo-medium rotate: false - xy: 2765, 182 + xy: 1187, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-small rotate: false - xy: 2755, 130 + xy: 2977, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-salvo-tiny rotate: false - xy: 1151, 58 + xy: 2781, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-salvo-xlarge rotate: false - xy: 681, 101 + xy: 731, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-sand-boulder-large rotate: false - xy: 3891, 368 + xy: 1699, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-sand-boulder-medium rotate: false - xy: 2799, 182 + xy: 1153, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-boulder-small rotate: false - xy: 2781, 130 + xy: 3003, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sand-boulder-tiny rotate: false - xy: 1169, 76 + xy: 3303, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sand-boulder-xlarge rotate: false - xy: 731, 151 + xy: 731, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-sand-large rotate: false - xy: 3891, 326 + xy: 1741, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-sand-medium rotate: false - xy: 2833, 182 + xy: 1187, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-small rotate: false - xy: 2807, 130 + xy: 3029, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sand-tiny rotate: false - xy: 1205, 148 + xy: 3327, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sand-water-large rotate: false - xy: 3933, 368 + xy: 1783, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-sand-water-medium rotate: false - xy: 2867, 182 + xy: 1221, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-water-small rotate: false - xy: 2833, 130 + xy: 3055, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sand-water-tiny rotate: false - xy: 1205, 130 + xy: 3345, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sand-water-xlarge rotate: false - xy: 681, 51 + xy: 331, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-sand-xlarge rotate: false - xy: 731, 101 + xy: 381, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-sandrocks-large rotate: false - xy: 3933, 326 + xy: 1825, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-sandrocks-medium rotate: false - xy: 2901, 182 + xy: 1187, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-small rotate: false - xy: 2859, 130 + xy: 3081, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sandrocks-tiny rotate: false - xy: 1205, 112 + xy: 3363, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sandrocks-xlarge rotate: false - xy: 731, 51 + xy: 431, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-scatter-large rotate: false - xy: 3975, 368 + xy: 1741, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-scatter-medium rotate: false - xy: 2935, 182 + xy: 1221, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-small rotate: false - xy: 2885, 130 + xy: 3107, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scatter-tiny rotate: false - xy: 1205, 94 + xy: 3381, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scatter-xlarge rotate: false - xy: 331, 1 + xy: 481, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-scorch-large rotate: false - xy: 3975, 326 + xy: 1783, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-scorch-medium rotate: false - xy: 2969, 182 + xy: 1255, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scorch-small rotate: false - xy: 2911, 130 + xy: 3133, 214 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scorch-tiny rotate: false - xy: 1133, 22 + xy: 3399, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scorch-xlarge rotate: false - xy: 381, 1 + xy: 531, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-scrap-wall-gigantic-large rotate: false - xy: 4017, 368 + xy: 1825, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-scrap-wall-gigantic-medium rotate: false - xy: 3009, 232 + xy: 1221, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-gigantic-small rotate: false - xy: 2937, 130 + xy: 2795, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-gigantic-tiny rotate: false - xy: 1151, 40 + xy: 3417, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-gigantic-xlarge rotate: false - xy: 431, 1 + xy: 581, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-scrap-wall-huge-large rotate: false - xy: 4017, 326 + xy: 1867, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-scrap-wall-huge-medium rotate: false - xy: 3043, 232 + xy: 1255, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-huge-small rotate: false - xy: 2963, 130 + xy: 2821, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-huge-tiny rotate: false - xy: 1169, 58 + xy: 3435, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-huge-xlarge rotate: false - xy: 481, 1 + xy: 631, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-scrap-wall-large rotate: false - xy: 131, 1 + xy: 1783, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-scrap-wall-large-large rotate: false - xy: 173, 1 + xy: 1825, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-scrap-wall-large-medium rotate: false - xy: 3077, 258 + xy: 1289, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-large-small rotate: false - xy: 3290, 138 + xy: 2847, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-large-tiny rotate: false - xy: 1187, 76 + xy: 3321, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-large-xlarge rotate: false - xy: 531, 1 + xy: 681, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-scrap-wall-medium rotate: false - xy: 3111, 258 + xy: 1255, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-small rotate: false - xy: 3316, 138 + xy: 2873, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-tiny rotate: false - xy: 1223, 148 + xy: 3339, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-xlarge rotate: false - xy: 581, 1 + xy: 731, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-segment-large rotate: false - xy: 215, 1 + xy: 1867, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-segment-medium rotate: false - xy: 3145, 258 + xy: 1289, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-segment-small rotate: false - xy: 3342, 138 + xy: 2899, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-segment-tiny rotate: false - xy: 1223, 130 + xy: 3357, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-segment-xlarge rotate: false - xy: 631, 1 + xy: 781, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-separator-large rotate: false - xy: 909, 284 + xy: 1909, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-separator-medium rotate: false - xy: 3179, 258 + xy: 1323, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-separator-small rotate: false - xy: 3368, 138 + xy: 2925, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-separator-tiny rotate: false - xy: 1223, 112 + xy: 3375, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-separator-xlarge rotate: false - xy: 681, 1 + xy: 781, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-shale-boulder-large rotate: false - xy: 951, 284 + xy: 1825, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-shale-boulder-medium rotate: false - xy: 3213, 258 + xy: 1289, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-boulder-small rotate: false - xy: 3394, 138 + xy: 2951, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shale-boulder-tiny rotate: false - xy: 1223, 94 + xy: 3393, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shale-boulder-xlarge rotate: false - xy: 731, 1 + xy: 781, 16 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-shale-large rotate: false - xy: 993, 284 + xy: 1867, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-shale-medium rotate: false - xy: 3247, 258 + xy: 1323, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-small rotate: false - xy: 3420, 138 + xy: 2977, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shale-tiny rotate: false - xy: 1151, 22 + xy: 3411, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shale-xlarge rotate: false - xy: 781, 113 + xy: 831, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-shalerocks-large rotate: false - xy: 1035, 284 + xy: 1909, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-shalerocks-medium rotate: false - xy: 3281, 258 + xy: 1357, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-small rotate: false - xy: 3446, 138 + xy: 3003, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shalerocks-tiny rotate: false - xy: 1169, 40 + xy: 3429, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shalerocks-xlarge rotate: false - xy: 781, 63 + xy: 831, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-shock-mine-large rotate: false - xy: 1077, 284 + xy: 1951, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-shock-mine-medium rotate: false - xy: 3315, 258 + xy: 1323, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shock-mine-small rotate: false - xy: 3472, 138 + xy: 3029, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shock-mine-tiny rotate: false - xy: 1187, 58 + xy: 3327, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shock-mine-xlarge rotate: false - xy: 781, 13 + xy: 831, 16 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-shrubs-large rotate: false - xy: 1119, 284 + xy: 1867, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-shrubs-medium rotate: false - xy: 3349, 258 + xy: 1357, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-small rotate: false - xy: 3498, 138 + xy: 3055, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shrubs-tiny rotate: false - xy: 1205, 76 + xy: 3327, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shrubs-xlarge rotate: false - xy: 831, 113 + xy: 859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-silicon-crucible-large rotate: false - xy: 1161, 284 + xy: 1909, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-silicon-crucible-medium rotate: false - xy: 3383, 258 + xy: 1391, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-silicon-crucible-small rotate: false - xy: 3524, 138 + xy: 3081, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-silicon-crucible-tiny rotate: false - xy: 1241, 148 + xy: 3345, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-silicon-crucible-xlarge rotate: false - xy: 831, 63 + xy: 909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-silicon-smelter-large rotate: false - xy: 1203, 284 + xy: 1951, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-silicon-smelter-medium rotate: false - xy: 3417, 258 + xy: 1357, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-silicon-smelter-small rotate: false - xy: 3550, 138 + xy: 3107, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-silicon-smelter-tiny rotate: false - xy: 1241, 130 + xy: 3345, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-silicon-smelter-xlarge rotate: false - xy: 831, 13 + xy: 959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-slag-large rotate: false - xy: 1245, 284 + xy: 1993, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-slag-medium rotate: false - xy: 3451, 258 + xy: 1391, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-slag-small rotate: false - xy: 3576, 138 + xy: 3133, 188 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-slag-tiny rotate: false - xy: 1241, 112 + xy: 3363, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-slag-xlarge rotate: false - xy: 859, 410 + xy: 1009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snow-large rotate: false - xy: 1287, 284 + xy: 1909, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-snow-medium rotate: false - xy: 3485, 258 + xy: 1425, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-pine-large rotate: false - xy: 1329, 284 + xy: 1951, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-snow-pine-medium rotate: false - xy: 3519, 258 + xy: 1391, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-pine-small rotate: false - xy: 3602, 138 + xy: 3241, 237 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-snow-pine-tiny rotate: false - xy: 1241, 94 + xy: 3381, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-snow-pine-xlarge rotate: false - xy: 909, 410 + xy: 1059, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snow-small rotate: false - xy: 3628, 138 + xy: 3267, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-snow-tiny rotate: false - xy: 1169, 22 + xy: 3399, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-snow-xlarge rotate: false - xy: 959, 410 + xy: 1109, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrock-large rotate: false - xy: 1371, 284 + xy: 1993, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-snowrock-medium rotate: false - xy: 3553, 258 + xy: 1425, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snowrock-small rotate: false - xy: 3654, 138 + xy: 3241, 211 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-snowrock-tiny rotate: false - xy: 1187, 40 + xy: 3363, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-snowrock-xlarge rotate: false - xy: 1009, 410 + xy: 1159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrocks-large rotate: false - xy: 1413, 284 + xy: 2035, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-snowrocks-medium rotate: false - xy: 3587, 258 + xy: 1459, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snowrocks-small rotate: false - xy: 3680, 138 + xy: 3267, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-snowrocks-tiny rotate: false - xy: 1205, 58 + xy: 3349, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-snowrocks-xlarge rotate: false - xy: 1059, 410 + xy: 1209, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-solar-panel-large rotate: false - xy: 1455, 284 + xy: 1951, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-solar-panel-large-large rotate: false - xy: 1497, 284 + xy: 1993, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-solar-panel-large-medium rotate: false - xy: 3621, 258 + xy: 1425, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-large-small rotate: false - xy: 3706, 138 + xy: 3297, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-solar-panel-large-tiny rotate: false - xy: 1223, 76 + xy: 3417, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-solar-panel-large-xlarge rotate: false - xy: 1109, 410 + xy: 1259, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-solar-panel-medium rotate: false - xy: 3655, 258 + xy: 1459, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-small rotate: false - xy: 3732, 138 + xy: 3293, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-solar-panel-tiny rotate: false - xy: 1259, 148 + xy: 3381, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-solar-panel-xlarge rotate: false - xy: 1159, 410 + xy: 1309, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-sorter-large rotate: false - xy: 1539, 284 + xy: 2035, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-sorter-medium rotate: false - xy: 3689, 258 + xy: 1493, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sorter-small rotate: false - xy: 3758, 138 + xy: 3293, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sorter-tiny rotate: false - xy: 1259, 130 + xy: 3399, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sorter-xlarge rotate: false - xy: 1209, 410 + xy: 1359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-spawn-large rotate: false - xy: 1581, 284 + xy: 2077, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spawn-medium rotate: false - xy: 3723, 258 + xy: 1459, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spawn-small rotate: false - xy: 3784, 138 + xy: 3301, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spawn-tiny rotate: false - xy: 1259, 112 + xy: 3367, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spawn-xlarge rotate: false - xy: 1259, 410 + xy: 1409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-spectre-large rotate: false - xy: 1623, 284 + xy: 1993, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spectre-medium rotate: false - xy: 3757, 258 + xy: 1493, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spectre-small rotate: false - xy: 3810, 138 + xy: 2599, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spectre-tiny rotate: false - xy: 1259, 94 + xy: 3417, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spectre-xlarge rotate: false - xy: 1309, 410 + xy: 1459, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-spore-cluster-large rotate: false - xy: 1665, 284 + xy: 2035, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-cluster-medium rotate: false - xy: 3791, 258 + xy: 1527, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-cluster-small rotate: false - xy: 3836, 138 + xy: 2625, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-cluster-tiny rotate: false - xy: 1187, 22 + xy: 3385, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-cluster-xlarge rotate: false - xy: 1359, 410 + xy: 1509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-spore-moss-large rotate: false - xy: 1707, 284 + xy: 2077, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-medium rotate: false - xy: 3825, 258 + xy: 1493, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-moss-small rotate: false - xy: 3862, 138 + xy: 2651, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-moss-tiny rotate: false - xy: 1205, 40 + xy: 3403, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-moss-xlarge rotate: false - xy: 1409, 410 + xy: 1559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-spore-pine-large rotate: false - xy: 1749, 284 + xy: 2119, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-pine-medium rotate: false - xy: 3859, 258 + xy: 1527, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-pine-small rotate: false - xy: 3888, 138 + xy: 2677, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-pine-tiny rotate: false - xy: 1223, 58 + xy: 3421, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-pine-xlarge rotate: false - xy: 1459, 410 + xy: 1609, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-spore-press-large rotate: false - xy: 1791, 284 + xy: 2035, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-press-medium rotate: false - xy: 3893, 258 + xy: 1561, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-small rotate: false - xy: 3914, 138 + xy: 2703, 200 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-press-tiny rotate: false - xy: 1241, 76 + xy: 3435, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-press-xlarge rotate: false - xy: 1509, 410 + xy: 1659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-sporerocks-large rotate: false - xy: 1833, 284 + xy: 2077, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-sporerocks-medium rotate: false - xy: 3927, 258 + xy: 1527, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sporerocks-small rotate: false - xy: 3940, 138 + xy: 2729, 200 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sporerocks-tiny rotate: false - xy: 1277, 148 + xy: 3435, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sporerocks-xlarge rotate: false - xy: 1559, 410 + xy: 1709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-stone-large rotate: false - xy: 1875, 284 + xy: 2119, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-stone-medium rotate: false - xy: 3961, 258 + xy: 1561, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-small rotate: false - xy: 3966, 138 + xy: 3319, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-stone-tiny rotate: false - xy: 1277, 130 + xy: 3439, 273 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-stone-xlarge rotate: false - xy: 1609, 410 + xy: 1759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-surge-tower-large rotate: false - xy: 1917, 284 + xy: 2161, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-surge-tower-medium rotate: false - xy: 3995, 258 + xy: 1595, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-surge-tower-small rotate: false - xy: 3992, 138 + xy: 3319, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-surge-tower-tiny rotate: false - xy: 1277, 112 + xy: 3371, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-surge-tower-xlarge rotate: false - xy: 1659, 410 + xy: 1809, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-surge-wall-large rotate: false - xy: 1959, 284 + xy: 2077, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-surge-wall-large-large rotate: false - xy: 2001, 284 + xy: 2119, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-surge-wall-large-medium rotate: false - xy: 3077, 224 + xy: 1561, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-surge-wall-large-small rotate: false - xy: 2989, 138 + xy: 3323, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-surge-wall-large-tiny rotate: false - xy: 1277, 94 + xy: 3371, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-surge-wall-large-xlarge rotate: false - xy: 1709, 410 + xy: 1859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-surge-wall-medium rotate: false - xy: 3111, 224 + xy: 1595, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-surge-wall-small rotate: false - xy: 3015, 138 + xy: 2485, 190 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-surge-wall-tiny rotate: false - xy: 1205, 22 + xy: 3389, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-surge-wall-xlarge rotate: false - xy: 1759, 410 + xy: 1909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-swarmer-large rotate: false - xy: 2043, 284 + xy: 2161, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-swarmer-medium rotate: false - xy: 3145, 224 + xy: 1629, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-swarmer-small rotate: false - xy: 3041, 138 + xy: 2485, 164 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-swarmer-tiny rotate: false - xy: 1223, 40 + xy: 3371, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-swarmer-xlarge rotate: false - xy: 1809, 410 + xy: 1959, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-switch-large + rotate: false + xy: 2203, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-switch-medium + rotate: false + xy: 1595, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-switch-small + rotate: false + xy: 2511, 193 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-switch-tiny + rotate: false + xy: 3407, 255 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-switch-xlarge + rotate: false + xy: 2009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-tainted-water-large rotate: false - xy: 2085, 284 + xy: 2119, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-tainted-water-medium rotate: false - xy: 3179, 224 + xy: 1629, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tainted-water-small rotate: false - xy: 3067, 130 + xy: 2537, 193 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-tainted-water-tiny rotate: false - xy: 1241, 58 + xy: 3389, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-tainted-water-xlarge rotate: false - xy: 1859, 410 + xy: 2059, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-tar-large rotate: false - xy: 2127, 284 + xy: 2161, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-tar-medium rotate: false - xy: 3213, 224 + xy: 1663, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tar-small rotate: false - xy: 3093, 130 + xy: 2511, 167 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-tar-tiny rotate: false - xy: 1259, 76 + xy: 3425, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-tar-xlarge rotate: false - xy: 1909, 410 + xy: 2109, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-tendrils-large rotate: false - xy: 2169, 284 + xy: 2203, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-tendrils-medium rotate: false - xy: 3247, 224 + xy: 1629, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tendrils-small rotate: false - xy: 4058, 281 + xy: 2537, 167 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-tendrils-tiny rotate: false - xy: 1295, 148 + xy: 3407, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-tendrils-xlarge rotate: false - xy: 1959, 410 + xy: 2159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-tetrative-reconstructor-large rotate: false - xy: 2211, 284 + xy: 2245, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-tetrative-reconstructor-medium rotate: false - xy: 3281, 224 + xy: 1663, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tetrative-reconstructor-small rotate: false - xy: 4058, 255 + xy: 3345, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-tetrative-reconstructor-tiny rotate: false - xy: 1295, 130 + xy: 3389, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-tetrative-reconstructor-xlarge rotate: false - xy: 2009, 410 + xy: 2209, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-thermal-generator-large rotate: false - xy: 2253, 284 + xy: 2161, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-thermal-generator-medium rotate: false - xy: 3315, 224 + xy: 1697, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thermal-generator-small rotate: false - xy: 4058, 229 + xy: 3345, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-thermal-generator-tiny rotate: false - xy: 1295, 112 + xy: 3425, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-thermal-generator-xlarge rotate: false - xy: 2059, 410 + xy: 2259, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-thermal-pump-large rotate: false - xy: 2295, 284 + xy: 2203, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-thermal-pump-medium rotate: false - xy: 3349, 224 + xy: 1663, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thermal-pump-small rotate: false - xy: 2989, 112 + xy: 2492, 138 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-thermal-pump-tiny rotate: false - xy: 1295, 94 + xy: 3407, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-thermal-pump-xlarge rotate: false - xy: 2109, 410 + xy: 2309, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-thorium-reactor-large rotate: false - xy: 2337, 284 + xy: 2245, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-thorium-reactor-medium rotate: false - xy: 3383, 224 + xy: 1697, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thorium-reactor-small rotate: false - xy: 3015, 112 + xy: 2492, 112 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-thorium-reactor-tiny rotate: false - xy: 1223, 22 + xy: 3425, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-thorium-reactor-xlarge rotate: false - xy: 2159, 410 + xy: 2359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-thorium-wall-large rotate: false - xy: 2379, 284 + xy: 2287, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-thorium-wall-large-large rotate: false - xy: 2421, 284 + xy: 2203, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-thorium-wall-large-medium rotate: false - xy: 3417, 224 + xy: 1731, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thorium-wall-large-small rotate: false - xy: 3041, 112 + xy: 2492, 86 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-thorium-wall-large-tiny rotate: false - xy: 1241, 40 + xy: 3443, 255 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-thorium-wall-large-xlarge rotate: false - xy: 2209, 410 + xy: 2409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-thorium-wall-medium rotate: false - xy: 3451, 224 + xy: 1697, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thorium-wall-small rotate: false - xy: 3067, 104 + xy: 2518, 141 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-thorium-wall-tiny rotate: false - xy: 1259, 58 + xy: 3443, 237 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-thorium-wall-xlarge rotate: false - xy: 2259, 410 + xy: 2459, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-thruster-large rotate: false - xy: 2463, 284 + xy: 2245, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-thruster-medium rotate: false - xy: 3485, 224 + xy: 1731, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-thruster-small rotate: false - xy: 3093, 104 + xy: 2518, 115 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-thruster-tiny rotate: false - xy: 1277, 76 + xy: 3443, 219 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-thruster-xlarge rotate: false - xy: 2309, 410 + xy: 2509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-titanium-conveyor-large rotate: false - xy: 2505, 284 + xy: 2287, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-titanium-conveyor-medium rotate: false - xy: 3519, 224 + xy: 1765, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-conveyor-small rotate: false - xy: 4018, 164 + xy: 2518, 89 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-titanium-conveyor-tiny rotate: false - xy: 1313, 148 + xy: 3393, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-titanium-conveyor-xlarge rotate: false - xy: 2359, 410 + xy: 2559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-titanium-wall-large rotate: false - xy: 2547, 284 + xy: 2329, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-titanium-wall-large-large rotate: false - xy: 2589, 284 + xy: 2245, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-titanium-wall-large-medium rotate: false - xy: 3553, 224 + xy: 1731, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-wall-large-small rotate: false - xy: 4018, 138 + xy: 2544, 141 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-titanium-wall-large-tiny rotate: false - xy: 1313, 130 + xy: 3393, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-titanium-wall-large-xlarge rotate: false - xy: 2409, 410 + xy: 2609, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-titanium-wall-medium rotate: false - xy: 3587, 224 + xy: 1765, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-wall-small rotate: false - xy: 3119, 124 + xy: 2544, 115 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-titanium-wall-tiny rotate: false - xy: 1313, 112 + xy: 3411, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-titanium-wall-xlarge rotate: false - xy: 2459, 410 + xy: 2659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-turbine-generator-large rotate: false - xy: 2631, 284 + xy: 2287, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-turbine-generator-medium rotate: false - xy: 3621, 224 + xy: 1799, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-turbine-generator-small rotate: false - xy: 3145, 124 + xy: 2544, 89 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-turbine-generator-tiny rotate: false - xy: 1313, 94 + xy: 3393, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-turbine-generator-xlarge rotate: false - xy: 2509, 410 + xy: 2709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-underflow-gate-large rotate: false - xy: 2673, 284 + xy: 2329, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-underflow-gate-medium rotate: false - xy: 3655, 224 + xy: 1765, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-underflow-gate-small rotate: false - xy: 3171, 124 + xy: 2492, 60 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-underflow-gate-tiny rotate: false - xy: 1241, 22 + xy: 3411, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-underflow-gate-xlarge rotate: false - xy: 2559, 410 + xy: 2759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-unloader-large rotate: false - xy: 2715, 284 + xy: 2371, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-unloader-medium rotate: false - xy: 3689, 224 + xy: 1799, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-unloader-small rotate: false - xy: 3197, 124 + xy: 2518, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-unloader-tiny rotate: false - xy: 1259, 40 + xy: 3429, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-unloader-xlarge rotate: false - xy: 2609, 410 + xy: 2809, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-vault-large rotate: false - xy: 2757, 284 + xy: 2287, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-vault-medium rotate: false - xy: 3723, 224 + xy: 1833, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-vault-small rotate: false - xy: 3119, 98 + xy: 2544, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-vault-tiny rotate: false - xy: 1277, 58 + xy: 3393, 147 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-vault-xlarge rotate: false - xy: 2659, 410 + xy: 2859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-water-extractor-large rotate: false - xy: 2799, 284 + xy: 2329, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-water-extractor-medium rotate: false - xy: 3757, 224 + xy: 1799, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-water-extractor-small rotate: false - xy: 3145, 98 + xy: 2518, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-water-extractor-tiny rotate: false - xy: 1295, 76 + xy: 3411, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-water-extractor-xlarge rotate: false - xy: 2709, 410 + xy: 2909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-water-large rotate: false - xy: 2841, 284 + xy: 2371, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-water-medium rotate: false - xy: 3791, 224 + xy: 1833, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-water-small rotate: false - xy: 3171, 98 + xy: 2544, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-water-tiny rotate: false - xy: 1331, 148 + xy: 3429, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-water-xlarge rotate: false - xy: 2759, 410 + xy: 2959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-wave-large rotate: false - xy: 2883, 284 + xy: 2413, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-wave-medium rotate: false - xy: 3825, 224 + xy: 1867, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-wave-small rotate: false - xy: 3197, 98 + xy: 3159, 204 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-wave-tiny rotate: false - xy: 1331, 130 + xy: 3411, 147 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-wave-xlarge rotate: false - xy: 2809, 410 + xy: 3009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-white-tree-dead-large rotate: false - xy: 2925, 284 + xy: 2329, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-white-tree-dead-medium rotate: false - xy: 3859, 224 + xy: 1833, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-white-tree-dead-small rotate: false - xy: 3223, 124 + xy: 3185, 204 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-white-tree-dead-tiny rotate: false - xy: 1331, 112 + xy: 3429, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-white-tree-dead-xlarge rotate: false - xy: 2859, 410 + xy: 3059, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-white-tree-large rotate: false - xy: 2967, 284 + xy: 2371, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-white-tree-medium rotate: false - xy: 3893, 224 + xy: 1867, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-white-tree-small rotate: false - xy: 3223, 98 + xy: 3211, 199 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-white-tree-tiny rotate: false - xy: 1331, 94 + xy: 3429, 147 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-white-tree-xlarge rotate: false - xy: 2909, 410 + xy: 3109, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 button rotate: false - xy: 1557, 226 + xy: 3027, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17477,7 +17673,7 @@ button index: -1 button-disabled rotate: false - xy: 4057, 481 + xy: 4057, 484 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17485,7 +17681,7 @@ button-disabled index: -1 button-down rotate: false - xy: 4059, 452 + xy: 4059, 455 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17493,7 +17689,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 4059, 423 + xy: 4059, 426 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17501,7 +17697,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 4059, 394 + xy: 4059, 397 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17509,7 +17705,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 4059, 365 + xy: 2413, 216 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17517,7 +17713,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 4059, 336 + xy: 2749, 300 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17525,7 +17721,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 4059, 307 + xy: 2581, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17533,7 +17729,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 1405, 255 + xy: 2875, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17541,7 +17737,7 @@ button-over index: -1 button-red rotate: false - xy: 1405, 226 + xy: 2451, 216 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17549,7 +17745,7 @@ button-red index: -1 button-right rotate: false - xy: 1481, 255 + xy: 2913, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17557,7 +17753,7 @@ button-right index: -1 button-right-down rotate: false - xy: 1443, 255 + xy: 2787, 300 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17565,7 +17761,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 1443, 226 + xy: 2619, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17573,7 +17769,7 @@ button-right-over index: -1 button-select rotate: false - xy: 3249, 126 + xy: 3159, 178 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -17581,7 +17777,7 @@ button-select index: -1 button-square rotate: false - xy: 1519, 226 + xy: 2951, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17589,7 +17785,7 @@ button-square index: -1 button-square-down rotate: false - xy: 1481, 226 + xy: 2825, 300 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17597,7 +17793,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 1519, 255 + xy: 2657, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17605,7 +17801,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 1557, 255 + xy: 2989, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17613,77 +17809,77 @@ button-trans index: -1 check-disabled rotate: false - xy: 3927, 224 + xy: 1901, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 3961, 224 + xy: 1867, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 3995, 224 + xy: 1901, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 901, 166 + xy: 1935, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 935, 166 + xy: 1901, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 969, 166 + xy: 1935, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 771, 401 + xy: 771, 404 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 crater rotate: false - xy: 309, 181 + xy: 3239, 393 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 cursor rotate: false - xy: 3119, 150 + xy: 2749, 294 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 discord-banner rotate: false - xy: 771, 463 + xy: 771, 466 size: 84, 45 orig: 84, 45 offset: 0, 0 index: -1 flat-down-base rotate: false - xy: 1595, 255 + xy: 3065, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17691,14 +17887,14 @@ flat-down-base index: -1 info-banner rotate: false - xy: 259, 354 + xy: 259, 357 size: 84, 45 orig: 84, 45 offset: 0, 0 index: -1 inventory rotate: false - xy: 3249, 84 + xy: 3185, 162 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -17706,168 +17902,168 @@ inventory index: -1 item-blast-compound-icon rotate: false - xy: 1003, 166 + xy: 1969, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-icon rotate: false - xy: 1037, 166 + xy: 1935, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-icon rotate: false - xy: 1071, 166 + xy: 1969, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-icon rotate: false - xy: 1105, 166 + xy: 2003, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-icon rotate: false - xy: 1139, 166 + xy: 1969, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-icon rotate: false - xy: 1173, 166 + xy: 2003, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-icon rotate: false - xy: 1207, 166 + xy: 2037, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-icon rotate: false - xy: 1241, 166 + xy: 2003, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-icon rotate: false - xy: 1275, 166 + xy: 2037, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-icon rotate: false - xy: 1309, 166 + xy: 2071, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-icon rotate: false - xy: 1343, 166 + xy: 2037, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-icon rotate: false - xy: 3005, 198 + xy: 2071, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-icon rotate: false - xy: 3039, 198 + xy: 2105, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-icon rotate: false - xy: 3073, 190 + xy: 2071, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-icon rotate: false - xy: 3107, 190 + xy: 2105, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-icon rotate: false - xy: 3141, 190 + xy: 2139, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-icon rotate: false - xy: 3175, 190 + xy: 2105, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-icon rotate: false - xy: 3209, 190 + xy: 2139, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-icon rotate: false - xy: 3243, 190 + xy: 2173, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-icon rotate: false - xy: 3277, 190 + xy: 2139, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-node rotate: false - xy: 3311, 190 + xy: 2173, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logo rotate: false - xy: 1, 401 + xy: 1, 404 size: 768, 107 orig: 768, 107 offset: 0, 0 index: -1 nomap rotate: false - xy: 1, 143 + xy: 1, 146 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 pane rotate: false - xy: 1633, 255 + xy: 3141, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17875,7 +18071,7 @@ pane index: -1 pane-2 rotate: false - xy: 1595, 226 + xy: 3103, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17883,7 +18079,7 @@ pane-2 index: -1 scroll rotate: false - xy: 3301, 101 + xy: 3237, 174 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -17891,7 +18087,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 3051, 300 + xy: 3622, 397 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -17899,70 +18095,70 @@ scroll-horizontal index: -1 scroll-knob-horizontal-black rotate: false - xy: 3009, 300 + xy: 859, 177 size: 40, 24 orig: 40, 24 offset: 0, 0 index: -1 scroll-knob-vertical-black rotate: false - xy: 3275, 96 + xy: 3211, 157 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 845, 387 + xy: 3461, 241 size: 12, 40 orig: 12, 40 offset: 0, 0 index: -1 selection rotate: false - xy: 859, 163 + xy: 821, 463 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 259, 144 + xy: 3656, 387 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 3139, 150 + xy: 3183, 268 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 3170, 150 + xy: 3590, 331 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 3201, 150 + xy: 3214, 263 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-vertical rotate: false - xy: 309, 351 + xy: 309, 354 size: 8, 1 orig: 8, 1 offset: 0, 0 index: -1 underline rotate: false - xy: 1709, 226 + xy: 1015, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17970,7 +18166,7 @@ underline index: -1 underline-2 rotate: false - xy: 1633, 226 + xy: 3179, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17978,7 +18174,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 1671, 255 + xy: 901, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17986,7 +18182,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 1671, 226 + xy: 939, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17994,7 +18190,7 @@ underline-red index: -1 underline-white rotate: false - xy: 1709, 255 + xy: 977, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18002,847 +18198,847 @@ underline-white index: -1 unit-alpha-large rotate: false - xy: 901, 242 + xy: 2413, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-alpha-medium rotate: false - xy: 3345, 190 + xy: 2207, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-alpha-small rotate: false - xy: 3327, 112 + xy: 3237, 148 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-alpha-tiny rotate: false - xy: 1259, 22 + xy: 3447, 201 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-alpha-xlarge rotate: false - xy: 2959, 410 + xy: 3159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-antumbra-large rotate: false - xy: 901, 200 - 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: 3379, 190 - 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: 3353, 112 - 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: 1277, 40 - 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: 3009, 410 - 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: 943, 242 + xy: 2455, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-arkyid-medium rotate: false - xy: 3413, 190 + xy: 2173, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-arkyid-small rotate: false - xy: 3379, 112 + xy: 3263, 185 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-arkyid-tiny rotate: false - xy: 1295, 58 + xy: 3447, 183 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-arkyid-xlarge rotate: false - xy: 3059, 410 + xy: 3209, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-atrax-large rotate: false - xy: 943, 200 - 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: 3447, 190 - 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: 3405, 112 - 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: 1313, 76 - 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: 3109, 410 - 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: 985, 242 + xy: 2413, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-beta-medium rotate: false - xy: 3481, 190 + xy: 2207, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-beta-small rotate: false - xy: 3431, 112 + xy: 3289, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-beta-tiny rotate: false - xy: 1349, 148 + xy: 3447, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-beta-xlarge rotate: false - xy: 3159, 410 + xy: 3309, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-large rotate: false - xy: 985, 200 + xy: 2455, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-bryde-medium rotate: false - xy: 3515, 190 + xy: 2241, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-bryde-small rotate: false - xy: 3457, 112 + xy: 3315, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-bryde-tiny rotate: false - xy: 1349, 130 + xy: 3447, 147 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-bryde-xlarge rotate: false - xy: 3209, 410 + xy: 3359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-crawler-large rotate: false - xy: 1027, 242 + xy: 2497, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-crawler-medium rotate: false - xy: 3549, 190 + xy: 2207, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-crawler-small rotate: false - xy: 3483, 112 + xy: 3341, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-crawler-tiny rotate: false - xy: 1349, 112 + xy: 3453, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-crawler-xlarge rotate: false - xy: 3259, 410 + xy: 3409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-large rotate: false - xy: 1027, 200 + xy: 2455, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-dagger-medium rotate: false - xy: 3583, 190 + xy: 2241, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-dagger-small rotate: false - xy: 3509, 112 + xy: 3289, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-dagger-tiny rotate: false - xy: 1349, 94 + xy: 3453, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-dagger-xlarge rotate: false - xy: 3309, 410 + xy: 3459, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eclipse-large rotate: false - xy: 1069, 242 + xy: 2497, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-eclipse-medium rotate: false - xy: 3617, 190 + xy: 2275, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-eclipse-small rotate: false - xy: 3535, 112 + xy: 3315, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-eclipse-tiny rotate: false - xy: 1277, 22 + xy: 3471, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-eclipse-xlarge rotate: false - xy: 3359, 410 + xy: 3509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-large rotate: false - xy: 1069, 200 + xy: 2539, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-flare-medium rotate: false - xy: 3651, 190 + xy: 2241, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-flare-small rotate: false - xy: 3561, 112 + xy: 3341, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-flare-tiny rotate: false - xy: 1295, 40 + xy: 3471, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-flare-xlarge rotate: false - xy: 3409, 410 + xy: 3559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-large rotate: false - xy: 1111, 242 - 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: 3685, 190 - 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: 3587, 112 - 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: 1313, 58 - 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: 3459, 410 - 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: 1111, 200 + xy: 2539, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-gamma-medium rotate: false - xy: 3719, 190 + xy: 2309, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-gamma-small rotate: false - xy: 3613, 112 + xy: 3289, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-gamma-tiny rotate: false - xy: 1331, 76 + xy: 3489, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-gamma-xlarge rotate: false - xy: 3509, 410 + xy: 3659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-horizon-large rotate: false - xy: 1153, 242 + xy: 2581, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-horizon-medium rotate: false - xy: 3753, 190 + xy: 2275, 74 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-horizon-small rotate: false - xy: 3639, 112 + xy: 3315, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-horizon-tiny rotate: false - xy: 1295, 22 + xy: 3489, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-horizon-xlarge rotate: false - xy: 3559, 410 + xy: 3709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mace-large rotate: false - xy: 1153, 200 + xy: 2581, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mace-medium rotate: false - xy: 3787, 190 + xy: 2309, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mace-small rotate: false - xy: 3665, 112 + xy: 3341, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mace-tiny rotate: false - xy: 1313, 40 + xy: 3507, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mace-xlarge rotate: false - xy: 3609, 410 + xy: 3759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mega-large rotate: false - xy: 1195, 242 + xy: 2623, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mega-medium rotate: false - xy: 3821, 190 + xy: 2343, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mega-small rotate: false - xy: 3691, 112 + xy: 3367, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mega-tiny rotate: false - xy: 1331, 58 + xy: 3507, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mega-xlarge rotate: false - xy: 3659, 410 + xy: 3809, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-minke-large rotate: false - xy: 1195, 200 + xy: 2623, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-minke-medium rotate: false - xy: 3855, 190 + xy: 2343, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-minke-small rotate: false - xy: 3717, 112 + xy: 3367, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-minke-tiny rotate: false - xy: 1349, 76 + xy: 3525, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-minke-xlarge rotate: false - xy: 3709, 410 + xy: 3859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mono-large rotate: false - xy: 1237, 242 + xy: 2665, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mono-medium rotate: false - xy: 3889, 190 + xy: 2377, 112 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mono-small rotate: false - xy: 3743, 112 + xy: 3367, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mono-tiny rotate: false - xy: 1313, 22 + xy: 3525, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mono-xlarge rotate: false - xy: 3759, 410 + xy: 3909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-large rotate: false - xy: 1237, 200 + xy: 2665, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-nova-medium rotate: false - xy: 3923, 190 + xy: 2309, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-nova-small rotate: false - xy: 3769, 112 + xy: 2703, 174 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-nova-tiny rotate: false - xy: 1331, 40 + xy: 3543, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-nova-xlarge rotate: false - xy: 3809, 410 + xy: 3959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-poly-large rotate: false - xy: 1279, 242 + xy: 2707, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-poly-medium rotate: false - xy: 3957, 190 + xy: 2343, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-poly-small rotate: false - xy: 3795, 112 + xy: 2729, 174 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-poly-tiny rotate: false - xy: 1349, 58 + xy: 3543, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-poly-xlarge rotate: false - xy: 3859, 410 + xy: 4009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-pulsar-large rotate: false - xy: 1279, 200 - 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: 3991, 190 - 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: 3821, 112 - 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: 1331, 22 - 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: 3909, 410 - 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: 1321, 242 + xy: 2749, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-quasar-medium rotate: false - xy: 3003, 164 + xy: 1119, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-quasar-small rotate: false - xy: 3847, 112 + xy: 2755, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-quasar-tiny rotate: false - xy: 1349, 40 + xy: 3561, 319 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-quasar-xlarge rotate: false - xy: 3959, 410 + xy: 3259, 377 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-risso-large rotate: false - xy: 1321, 200 + xy: 2791, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-risso-medium rotate: false - xy: 3037, 164 + xy: 1153, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-risso-small rotate: false - xy: 3873, 112 + xy: 2781, 162 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-risso-tiny rotate: false - xy: 1349, 22 + xy: 3561, 301 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-risso-xlarge rotate: false - xy: 4009, 410 + xy: 3309, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-spiroct-large rotate: false - xy: 1363, 242 - 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: 3071, 156 - 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: 3899, 112 - 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: 3327, 94 - 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: 859, 360 - 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: 1363, 200 + xy: 2833, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-zenith-medium rotate: false - xy: 3105, 156 + xy: 1187, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-zenith-small rotate: false - xy: 3925, 112 + xy: 2833, 162 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-zenith-tiny rotate: false - xy: 3345, 94 + xy: 3457, 283 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-zenith-xlarge rotate: false - xy: 859, 310 + xy: 3359, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-pane rotate: false - xy: 1747, 255 + xy: 1053, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18850,14 +19046,14 @@ white-pane index: -1 whiteui rotate: false - xy: 1767, 182 + xy: 845, 366 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 4029, 229 + 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 b163e6076d..56013f318c 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 f2d62c3ad1..88622e74d9 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 c3009b673b..1f61b9736f 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 49b9b1cbb9..9044fadaff 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 9f2039284b..4ac1b4d8f8 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -5,11 +5,13 @@ import arc.func.*; import arc.math.*; import arc.struct.*; import arc.util.*; +import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.game.EventType.*; import mindustry.game.*; import mindustry.gen.*; +import mindustry.type.*; import mindustry.world.*; import static mindustry.Vars.*; @@ -97,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); @@ -127,14 +129,18 @@ public class WaveSpawner{ } private void spawnEffect(Unit unit){ - Fx.unitSpawn.at(unit.x(), unit.y(), 0f, unit); - Time.run(30f, () -> { - unit.add(); - Fx.spawn.at(unit); - }); + Call.spawnEffect(unit.x, unit.y, unit.type()); + Time.run(30f, unit::add); } private interface SpawnConsumer{ void accept(float x, float y, boolean shockwave); } + + @Remote(called = Loc.server, unreliable = true) + public static void spawnEffect(float x, float y, UnitType type){ + Fx.unitSpawn.at(x, y, 0f, type); + + Time.run(30f, () -> Fx.spawn.at(x, y)); + } } diff --git a/core/src/mindustry/ai/formations/FormationMember.java b/core/src/mindustry/ai/formations/FormationMember.java index 7668f3aee6..2fdf259f62 100644 --- a/core/src/mindustry/ai/formations/FormationMember.java +++ b/core/src/mindustry/ai/formations/FormationMember.java @@ -11,4 +11,6 @@ import arc.math.geom.*; public interface FormationMember{ /** Returns the target location of this formation member. */ Vec3 formationPos(); + + float formationSize(); } diff --git a/core/src/mindustry/ai/formations/FormationPattern.java b/core/src/mindustry/ai/formations/FormationPattern.java index 02f6754421..5fe84bcda9 100644 --- a/core/src/mindustry/ai/formations/FormationPattern.java +++ b/core/src/mindustry/ai/formations/FormationPattern.java @@ -12,6 +12,8 @@ import arc.math.geom.*; */ public abstract class FormationPattern{ public int slots; + /** Spacing between members. */ + public float spacing = 20f; /** Returns the location of the given slot index. */ public abstract Vec3 calculateSlotLocation(Vec3 out, int slot); diff --git a/core/src/mindustry/ai/formations/patterns/ArrowFormation.java b/core/src/mindustry/ai/formations/patterns/ArrowFormation.java new file mode 100644 index 0000000000..e3db12d2fe --- /dev/null +++ b/core/src/mindustry/ai/formations/patterns/ArrowFormation.java @@ -0,0 +1,26 @@ +package mindustry.ai.formations.patterns; + +import arc.math.geom.*; +import mindustry.ai.formations.*; + +public class ArrowFormation extends FormationPattern{ + //total triangular numbers + private static final int totalTris = 30; + //triangular number table + private static final int[] triTable = new int[totalTris]; + + //calculat triangular numbers + static{ + int sum = 0; + for(int i = 0; i < totalTris; i++){ + triTable[i] = sum; + sum += (i + 1); + } + } + + @Override + public Vec3 calculateSlotLocation(Vec3 out, int slot){ + //TODO + return out; + } +} diff --git a/core/src/mindustry/ai/formations/patterns/SquareFormation.java b/core/src/mindustry/ai/formations/patterns/SquareFormation.java index 9f4b271df6..9d7ddab549 100644 --- a/core/src/mindustry/ai/formations/patterns/SquareFormation.java +++ b/core/src/mindustry/ai/formations/patterns/SquareFormation.java @@ -5,7 +5,6 @@ import arc.math.geom.*; import mindustry.ai.formations.*; public class SquareFormation extends FormationPattern{ - public float spacing = 20; @Override public Vec3 calculateSlotLocation(Vec3 out, int slot){ diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java index a606592b26..149f4ef6d0 100644 --- a/core/src/mindustry/ai/types/BuilderAI.java +++ b/core/src/mindustry/ai/types/BuilderAI.java @@ -1,9 +1,6 @@ package mindustry.ai.types; -import arc.math.*; -import arc.math.geom.*; import arc.struct.*; -import arc.util.*; import mindustry.entities.units.*; import mindustry.game.Teams.*; import mindustry.gen.*; @@ -22,6 +19,8 @@ public class BuilderAI extends AIController{ builder.lookAt(builder.vel().angle()); } + builder.updateBuilding(true); + //approach request if building if(builder.buildPlan() != null){ BuildPlan req = builder.buildPlan(); @@ -63,19 +62,4 @@ public class BuilderAI extends AIController{ } } } - - protected void moveTo(Position target, float circleLength){ - vec.set(target).sub(unit); - - float length = circleLength <= 0.001f ? 1f : Mathf.clamp((unit.dst(target) - circleLength) / 100f, -1f, 1f); - - vec.setLength(unit.type().speed * Time.delta * length); - if(length < -0.5f){ - vec.rotate(180f); - }else if(length < 0){ - vec.setZero(); - } - - unit.moveAt(vec); - } } diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java index 2a09c1403c..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,14 +20,23 @@ 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(unit.range() * 0.8f); + moveTo(target, unit.range() * 0.8f); unit.lookAt(target); }else{ 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 @@ -44,41 +55,6 @@ public class FlyingAI extends AIController{ //TODO clean up - protected void circle(float circleLength){ - circle(circleLength, unit.type().speed); - } - - protected void circle(float circleLength, float speed){ - if(target == null) return; - - vec.set(target).sub(unit); - - if(vec.len() < circleLength){ - vec.rotate((circleLength - vec.len()) / circleLength * 180f); - } - - vec.setLength(speed * Time.delta); - - unit.moveAt(vec); - } - - protected void moveTo(float circleLength){ - if(target == null) return; - - vec.set(target).sub(unit); - - float length = circleLength <= 0.001f ? 1f : Mathf.clamp((unit.dst(target) - circleLength) / 100f, -1f, 1f); - - vec.setLength(unit.type().speed * Time.delta * length); - if(length < -0.5f){ - vec.rotate(180f); - }else if(length < 0){ - vec.setZero(); - } - - unit.moveAt(vec); - } - protected void attack(float circleLength){ vec.set(target).sub(unit); diff --git a/core/src/mindustry/ai/types/FormationAI.java b/core/src/mindustry/ai/types/FormationAI.java index 884dc2150c..9ef064cfe1 100644 --- a/core/src/mindustry/ai/types/FormationAI.java +++ b/core/src/mindustry/ai/types/FormationAI.java @@ -60,6 +60,15 @@ public class FormationAI extends AIController implements FormationMember{ } } + @Override + public float formationSize(){ + if(unit instanceof Commanderc && ((Commanderc)unit).isCommanding()){ + //TODO return formation size + //eturn ((Commanderc)unit).formation(). + } + return unit.hitSize * 1.7f; + } + @Override public boolean isBeingControlled(Unit player){ return leader == player; diff --git a/core/src/mindustry/ai/types/GroundAI.java b/core/src/mindustry/ai/types/GroundAI.java index 4378133ef3..d7b112554e 100644 --- a/core/src/mindustry/ai/types/GroundAI.java +++ b/core/src/mindustry/ai/types/GroundAI.java @@ -1,37 +1,53 @@ 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 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)){ + target = 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); } } - boolean rotate = false, shoot = false; + if(unit.type().canBoost){ + unit.elevation = Mathf.approachDelta(unit.elevation, 0f, 0.08f); + } if(!Units.invalidateTarget(target, unit, unit.range())){ - rotate = true; - shoot = unit.within(target, unit.range()); - if(unit.type().hasWeapons()){ unit.aimLook(Predict.intercept(unit, target, unit.type().weapons.first().bullet.speed)); } @@ -39,13 +55,26 @@ public class GroundAI extends AIController{ unit.lookAt(unit.vel().angle()); } - unit.controlWeapons(rotate, shoot); + //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/MinerAI.java b/core/src/mindustry/ai/types/MinerAI.java new file mode 100644 index 0000000000..5077ad77a1 --- /dev/null +++ b/core/src/mindustry/ai/types/MinerAI.java @@ -0,0 +1,88 @@ +package mindustry.ai.types; + +import mindustry.content.*; +import mindustry.entities.units.*; +import mindustry.gen.*; +import mindustry.type.*; +import mindustry.world.*; + +import static mindustry.Vars.*; + +public class MinerAI extends AIController{ + boolean mining = true; + Item targetItem; + Tile ore; + + @Override + protected void updateMovement(){ + if(unit.moving()){ + unit.lookAt(unit.vel.angle()); + } + + if(unit.isFlying()){ + unit.wobble(); + } + + Building core = unit.closestCore(); + + if(!(unit instanceof Minerc) || core == null) return; + + Minerc miner = (Minerc)unit; + + if(miner.mineTile() != null && !miner.mineTile().within(unit, unit.type().range)){ + miner.mineTile(null); + } + + if(mining){ + targetItem = unit.team.data().mineItems.min(i -> indexer.hasOre(i) && miner.canMine(i), i -> core.items.get(i)); + + //core full of the target item, do nothing + if(targetItem != null && core.acceptStack(targetItem, 1, unit) == 0){ + unit.clearItem(); + return; + } + + //if inventory is full, drop it off. + if(unit.stack.amount >= unit.type().itemCapacity || (targetItem != null && !unit.acceptsItem(targetItem))){ + mining = false; + }else{ + if(retarget() && targetItem != null){ + ore = indexer.findClosestOre(unit.x, unit.y, targetItem); + } + + if(ore != null){ + moveTo(ore, unit.type().range / 1.5f); + + if(unit.within(ore, unit.type().range)){ + miner.mineTile(ore); + } + + if(ore.block() != Blocks.air){ + mining = false; + } + } + } + }else{ + if(unit.stack.amount == 0){ + mining = true; + return; + } + + if(unit.within(core, unit.type().range)){ + if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){ + Call.transferItemTo(unit.stack.item, unit.stack.amount, unit.x, unit.y, core); + } + + unit.clearItem(); + mining = true; + } + + circle(core, unit.type().range / 1.8f); + } + } + + @Override + protected void updateTargeting(){ + } + +} 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 46946fd3de..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.*; @@ -68,6 +67,8 @@ public class PhysicsProcess implements AsyncProcess{ PhysicRef ref = entity.physref(); if(ref.wasGround != grounded){ + if(ref.body.getFixtureList().isEmpty()) continue; + //set correct filter ref.body.getFixtureList().first().setFilterData(grounded ? ground : flying); ref.wasGround = grounded; @@ -96,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 4c0ffa7268..2b4da903c4 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -49,7 +49,7 @@ public class Blocks implements ContentList{ melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge, //sandbox - powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, message, illuminator, + powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, illuminator, //defense copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge, @@ -77,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 - microProcessor, logicProcessor, logicDisplay, + message, switchBlock, microProcessor, logicProcessor, hyperProcessor, logicDisplay, memoryCell, //campaign launchPad, launchPadLarge, @@ -138,7 +139,7 @@ public class Blocks implements ContentList{ speedMultiplier = 0.2f; variants = 0; liquidDrop = Liquids.water; - liquidMultiplier = 2f; + liquidMultiplier = 1.5f; isLiquid = true; status = StatusEffects.wet; statusDuration = 120f; @@ -269,7 +270,7 @@ public class Blocks implements ContentList{ }}; grass = new Floor("grass"){{ - + attributes.set(Attribute.water, 0.1f); }}; salt = new Floor("salt"){{ @@ -893,10 +894,10 @@ public class Blocks implements ContentList{ requirements(Category.effect, with(Items.lead, 25, Items.silicon, 12)); hasShadow = false; health = 40; - damage = 11; + damage = 23; tileDamage = 7f; length = 10; - tendrils = 5; + tendrils = 4; }}; //endregion @@ -907,6 +908,7 @@ public class Blocks implements ContentList{ health = 45; speed = 0.03f; displayedSpeed = 4.2f; + buildCostMultiplier = 2f; }}; titaniumConveyor = new Conveyor("titanium-conveyor"){{ @@ -994,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 @@ -1309,18 +1313,18 @@ public class Blocks implements ContentList{ itemCapacity = 9000; size = 4; - unitCapModifier = 16; + unitCapModifier = 14; }}; coreNucleus = new CoreBlock("core-nucleus"){{ - requirements(Category.effect, with(Items.copper, 1000, Items.lead, 1000)); + requirements(Category.effect, with(Items.copper, 8000, Items.lead, 8000, Items.silicon, 5000, Items.thorium, 4000)); unitType = UnitTypes.gamma; health = 4000; itemCapacity = 13000; size = 5; - unitCapModifier = 24; + unitCapModifier = 20; }}; vault = new StorageBlock("vault"){{ @@ -1337,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 @@ -1451,7 +1455,7 @@ public class Blocks implements ContentList{ recoilAmount = 2f; reloadTime = 90f; cooldown = 0.03f; - powerUse = 2.5f; + powerUse = 6f; shootShake = 2f; shootEffect = Fx.lancerLaserShoot; smokeEffect = Fx.none; @@ -1484,7 +1488,7 @@ public class Blocks implements ContentList{ reloadTime = 35f; shootCone = 40f; rotatespeed = 8f; - powerUse = 1.5f; + powerUse = 4f; targetAir = false; range = 90f; shootEffect = Fx.lightningShoot; @@ -1500,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; @@ -1554,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; }}; @@ -1697,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; @@ -1709,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)), @@ -1719,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)), }; @@ -1767,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; @@ -1779,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; @@ -1847,10 +1858,6 @@ public class Blocks implements ContentList{ alwaysUnlocked = true; }}; - message = new MessageBlock("message"){{ - requirements(Category.effect, with(Items.graphite, 5)); - }}; - illuminator = new LightBlock("illuminator"){{ requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 12, Items.silicon, 8)); brightness = 0.67f; @@ -1864,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 @@ -1891,32 +1897,59 @@ public class Blocks implements ContentList{ //endregion campaign //region logic + message = new MessageBlock("message"){{ + requirements(Category.logic, with(Items.graphite, 5)); + }}; + + switchBlock = new SwitchBlock("switch"){{ + requirements(Category.logic, with(Items.graphite, 5)); + }}; + microProcessor = new LogicBlock("micro-processor"){{ - requirements(Category.effect, with(Items.copper, 30, Items.lead, 50, Items.silicon, 30)); + requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 50)); instructionsPerTick = 2; - memory = 32; size = 1; }}; logicProcessor = new LogicBlock("logic-processor"){{ - requirements(Category.effect, with(Items.copper, 200, Items.lead, 120, Items.silicon, 100, Items.metaglass, 50)); + requirements(Category.logic, with(Items.lead, 320, Items.silicon, 100, Items.graphite, 60, Items.thorium, 50)); instructionsPerTick = 5; - memory = 128; + + range = 8 * 20; size = 2; }}; - logicDisplay = new LogicDisplay("logic-display"){{ - requirements(Category.effect, with(Items.copper, 200, Items.lead, 120, Items.silicon, 100, Items.metaglass, 50)); + hyperProcessor = new LogicBlock("hyper-processor"){{ + requirements(Category.logic, with(Items.lead, 450, Items.silicon, 150, Items.thorium, 75, Items.surgealloy, 50)); - displaySize = 64; + 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)); + + displaySize = 80; + + size = 3; + }}; + + memoryCell = new MemoryBlock("memory-cell"){{ + requirements(Category.logic, with(Items.graphite, 40, Items.silicon, 40)); + + memoryCapacity = 64; + }}; + //endregion //region experimental diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index e4e02792ea..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(2.7f, 10){{ + missileExplosive = new MissileBulletType(3.7f, 10){{ width = 8f; height = 8f; shrinkY = 0f; @@ -248,7 +248,6 @@ public class Bullets implements ContentList{ splashDamageRadius = 30f; splashDamage = 30f; ammoMultiplier = 4f; - lifetime = 100f; hitEffect = Fx.blastExplosion; despawnEffect = Fx.blastExplosion; @@ -256,7 +255,7 @@ public class Bullets implements ContentList{ statusDuration = 60f; }}; - missileIncendiary = new MissileBulletType(2.9f, 12){{ + missileIncendiary = new MissileBulletType(3.7f, 12){{ frontColor = Pal.lightishOrange; backColor = Pal.lightOrange; width = 7f; @@ -266,23 +265,21 @@ public class Bullets implements ContentList{ homingPower = 0.08f; splashDamageRadius = 20f; splashDamage = 20f; - lifetime = 100f; hitEffect = Fx.blastExplosion; status = StatusEffects.burning; }}; - missileSurge = new MissileBulletType(4.4f, 20){{ + missileSurge = new MissileBulletType(3.7f, 20){{ width = 8f; height = 8f; shrinkY = 0f; drag = -0.01f; splashDamageRadius = 28f; splashDamage = 40f; - lifetime = 100f; 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 b1d620141d..0c7a05c557 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -26,15 +26,17 @@ public class Fx{ none = new Effect(0, 0f, e -> {}), unitSpawn = new Effect(30f, e -> { - if(!(e.data instanceof Unit)) return; + if(!(e.data instanceof UnitType)) return; alpha(e.fin()); float scl = 1f + e.fout() * 2f; - Unit unit = e.data(); - rect(unit.type().region, e.x, e.y, - unit.type().region.getWidth() * Draw.scl * scl, unit.type().region.getHeight() * Draw.scl * scl, 180f); + UnitType unit = e.data(); + TextureRegion region = unit.icon(Cicon.full); + + rect(region, e.x, e.y, + region.getWidth() * Draw.scl * scl, region.getHeight() * Draw.scl * scl, 180f); }), @@ -102,7 +104,7 @@ public class Fx{ Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interp.pow3) .add(Tmp.v2.sub(e.x, e.y).nor().rotate90(1).scl(Mathf.randomSeedRange(e.id, 1f) * e.fslope() * 10f)); float x = Tmp.v1.x, y = Tmp.v1.y; - float size = Math.min(0.8f + e.rotation / 5f, 2); + float size = 1f; stroke(e.fslope() * 2f * size, Pal.accent); Lines.circle(x, y, e.fslope() * 2f * size); @@ -369,7 +371,7 @@ public class Fx{ hitLiquid = new Effect(16, e -> { color(e.color); - randLenVectors(e.id, 5, e.fin() * 15f, e.rotation + 180f, 60f, (x, y) -> { + randLenVectors(e.id, 5, e.fin() * 15f, e.rotation, 60f, (x, y) -> { Fill.circle(e.x + x, e.y + y, e.fout() * 2f); }); @@ -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); @@ -670,6 +695,12 @@ public class Fx{ }), + sporeSlowed = new Effect(40f, e -> { + color(Pal.spore); + + Fill.circle(e.x, e.y, e.fslope() * 1.1f); + }), + oily = new Effect(42f, e -> { color(Liquids.oil.color); diff --git a/core/src/mindustry/content/StatusEffects.java b/core/src/mindustry/content/StatusEffects.java index 8e6585f446..65814e5cb1 100644 --- a/core/src/mindustry/content/StatusEffects.java +++ b/core/src/mindustry/content/StatusEffects.java @@ -9,7 +9,7 @@ import mindustry.type.StatusEffect; import static mindustry.Vars.*; public class StatusEffects implements ContentList{ - public static StatusEffect none, burning, freezing, wet, melting, sapped, tarred, overdrive, overclock, shielded, shocked, blasted, corroded, boss; + public static StatusEffect none, burning, freezing, wet, melting, sapped, tarred, overdrive, overclock, shielded, shocked, blasted, corroded, boss, sporeSlowed; @Override public void load(){ @@ -17,7 +17,7 @@ public class StatusEffects implements ContentList{ none = new StatusEffect("none"); burning = new StatusEffect("burning"){{ - damage = 0.08f; //over 10 seconds, this would be 48 damage + damage = 0.12f; //over 8 seconds, this would be 60 damage effect = Fx.burning; init(() -> { @@ -82,6 +82,12 @@ public class StatusEffects implements ContentList{ effectChance = 0.1f; }}; + sporeSlowed = new StatusEffect("spore-slowed"){{ + speedMultiplier = 0.8f; + effect = Fx.sapped; + effectChance = 0.04f; + }}; + tarred = new StatusEffect("tarred"){{ speedMultiplier = 0.6f; effect = Fx.oily; diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index 2a92e9ad0f..e7d21444a0 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, () -> { @@ -544,7 +567,7 @@ public class TechTree implements ContentList{ } public static class TechNode{ - private static TechNode context; + static TechNode context; /** Depth in tech tree. */ public int depth; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 697dde82b3..fb1ffcaea3 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; @@ -42,7 +42,7 @@ public class UnitTypes implements ContentList{ public static @EntityDef({Unitc.class, Builderc.class, Minerc.class, Payloadc.class}) UnitType mega; //air + building + mining - public static @EntityDef({Unitc.class, Builderc.class, Minerc.class, Trailc.class}) UnitType alpha, beta, gamma; + public static @EntityDef({Unitc.class, Builderc.class, Minerc.class}) UnitType alpha, beta, gamma; //water public static @EntityDef({Unitc.class, WaterMovec.class, Commanderc.class}) UnitType risso, minke, bryde; @@ -165,7 +165,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 +173,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 +193,7 @@ public class UnitTypes implements ContentList{ bullet = new LightningBulletType(){{ lightningColor = hitColor = Pal.heal; - damage = 11f; + damage = 15f; lightningLength = 7; lightningLengthRand = 7; shootEffect = Fx.shootHeal; @@ -206,7 +206,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 +219,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 +230,7 @@ public class UnitTypes implements ContentList{ shootSound = Sounds.laser; bullet = new LaserBulletType(){{ - damage = 27f; + damage = 30f; recoil = 1f; sideAngle = 45f; sideWidth = 1f; @@ -316,7 +316,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 +352,7 @@ public class UnitTypes implements ContentList{ despawnEffect = Fx.none; width = 0.54f; lifetime = 35f; - knockback = -1.2f; + knockback = -1.24f; }}; }}); @@ -365,62 +365,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 = 7600; + 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 +495,7 @@ public class UnitTypes implements ContentList{ }}; horizon = new UnitType("horizon"){{ - health = 300; + health = 350; speed = 2f; accel = 0.08f; drag = 0.016f; @@ -457,19 +504,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 +530,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,7 +580,7 @@ public class UnitTypes implements ContentList{ rotateSpeed = 1.9f; flying = true; lowAltitude = true; - health = 9000; + health = 7000; armor = 9f; engineOffset = 21; engineSize = 5.3f; @@ -544,10 +591,10 @@ public class UnitTypes implements ContentList{ 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 +628,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 +660,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 +679,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 +696,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; }}); }}; @@ -687,13 +726,17 @@ public class UnitTypes implements ContentList{ //region air support mono = new UnitType("mono"){{ + defaultController = MinerAI::new; + flying = true; - drag = 0.05f; - accel = 0.15f; - speed = 2f; + drag = 0.06f; + accel = 0.12f; + speed = 1.1f; health = 100; engineSize = 1.8f; engineOffset = 5.7f; + itemCapacity = 30; + range = 50f; mineTier = 1; mineSpeed = 2.5f; @@ -704,7 +747,7 @@ public class UnitTypes implements ContentList{ flying = true; drag = 0.05f; - speed = 2f; + speed = 1.9f; rotateSpeed = 15f; accel = 0.1f; range = 70f; @@ -723,7 +766,7 @@ public class UnitTypes implements ContentList{ weapons.add(new Weapon("heal-weapon-mount"){{ y = -2.5f; x = 3.5f; - reload = 34f; + reload = 30f; ejectEffect = Fx.none; recoil = 2f; shootSound = Sounds.pew; @@ -732,11 +775,11 @@ public class UnitTypes implements ContentList{ inaccuracy = 15f; alternate = true; - bullet = new MissileBulletType(4f, 10){{ + bullet = new MissileBulletType(4f, 12){{ homingPower = 0.08f; weaveMag = 4; weaveScale = 4; - lifetime = 50f; + lifetime = 56f; keepVelocity = false; shootEffect = Fx.shootHeal; smokeEffect = Fx.hitLaser; @@ -997,7 +1040,7 @@ public class UnitTypes implements ContentList{ lifetime = 60f; shootEffect = Fx.shootSmall; smokeEffect = Fx.shootSmallSmoke; - tileDamageMultiplier = 0.95f; + tileDamageMultiplier = 0.09f; }}; }}); }}; @@ -1088,6 +1131,7 @@ public class UnitTypes implements ContentList{ hitsize = 0f; health = 1; rotateSpeed = 360f; + itemCapacity = 0; } @Override diff --git a/core/src/mindustry/content/Weathers.java b/core/src/mindustry/content/Weathers.java index 86d6575c35..56f39995a8 100644 --- a/core/src/mindustry/content/Weathers.java +++ b/core/src/mindustry/content/Weathers.java @@ -255,6 +255,8 @@ public class Weathers implements ContentList{ { attrs.set(Attribute.spores, 0.5f); attrs.set(Attribute.light, -0.1f); + status = StatusEffects.sporeSlowed; + statusGround = false; } @Override diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index a147e6e79e..aa5fe5ba44 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -167,6 +167,10 @@ public class ContentLoader{ } public void handleContent(Content content){ + if(content instanceof Item && content.id > 255){ + throw new IllegalArgumentException("You may not have more than 255 different items total. Remove some mods."); + } + this.lastAdded = content; contentMap[content.getContentType().ordinal()].add(content); } @@ -243,11 +247,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 +259,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 +267,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 +275,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 2b3c81d5a8..46e79e64cd 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -94,7 +94,6 @@ public class Control implements ApplicationListener, Loadable{ tutorial.reset(); hiscore = false; - saves.resetSave(); }); @@ -114,9 +113,13 @@ public class Control implements ApplicationListener, Loadable{ Call.gameOver(event.winner); }); + //add player when world loads regardless + Events.on(WorldLoadEvent.class, e -> { + player.add(); + }); + //autohost for pvp maps Events.on(WorldLoadEvent.class, event -> app.post(() -> { - player.add(); if(state.rules.pvp && !net.active()){ try{ net.host(port); @@ -152,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){ @@ -257,7 +254,7 @@ public class Control implements ApplicationListener, Loadable{ } //TODO move - public void handleLaunch(CoreEntity tile){ + public void handleLaunch(CoreBuild tile){ LaunchCorec ent = LaunchCore.create(); ent.set(tile); ent.block(Blocks.coreShard); diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 180e34f8b4..d70776a006 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -89,7 +89,7 @@ public class Logic implements ApplicationListener{ Events.on(WorldLoadEvent.class, e -> { if(state.isCampaign()){ long seconds = state.rules.sector.getSecondsPassed(); - CoreEntity core = state.rules.defaultTeam.core(); + CoreBuild core = state.rules.defaultTeam.core(); //apply fractional damage based on how many turns have passed for this sector float turnsPassed = seconds / (turnDuration / 60f); @@ -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); @@ -331,7 +340,9 @@ public class Logic implements ApplicationListener{ } if(!state.isPaused()){ - state.secinfo.update(); + if(state.isCampaign()){ + state.secinfo.update(); + } if(state.isCampaign()){ universe.update(); diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index cfa908ca59..ecdf57fc91 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -345,6 +345,7 @@ public class NetClient implements ApplicationListener{ Groups.clear(); netClient.removed.clear(); logic.reset(); + netClient.connecting = true; net.setClientLoaded(false); @@ -365,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); } @@ -436,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; @@ -553,10 +558,26 @@ public class NetClient implements ApplicationListener{ void sync(){ if(timer.get(0, playerSyncTime)){ BuildPlan[] requests = null; - if(player.isBuilder() && control.input.isBuilding){ + if(player.isBuilder()){ //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); @@ -565,7 +586,7 @@ public class NetClient implements ApplicationListener{ Unit unit = player.dead() ? Nulls.unit : player.unit(); - Call.clientShapshot(lastSent++, + Call.clientSnapshot(lastSent++, player.dead(), unit.x, unit.y, player.unit().aimX(), player.unit().aimY(), @@ -573,7 +594,7 @@ public class NetClient implements ApplicationListener{ unit instanceof Mechc ? ((Mechc)unit).baseRotation() : 0, unit.vel.x, unit.vel.y, player.miner().mineTile(), - player.boosting, player.shooting, ui.chatfrag.shown(), + player.boosting, player.shooting, ui.chatfrag.shown(), control.input.isBuilding, requests, Core.camera.position.x, Core.camera.position.y, Core.camera.width * viewScale, Core.camera.height * viewScale); diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index 30aad59fe4..2eb71814f9 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -6,8 +6,8 @@ import arc.graphics.*; import arc.math.*; import arc.math.geom.*; import arc.struct.*; -import arc.util.ArcAnnotate.*; import arc.util.*; +import arc.util.ArcAnnotate.*; import arc.util.CommandHandler.*; import arc.util.io.*; import arc.util.serialization.*; @@ -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(); @@ -332,6 +333,8 @@ public class NetServer implements ApplicationListener{ Call.sendMessage(Strings.format("[lightgray]A player has voted on kicking[orange] @[].[accent] (@/@)\n[lightgray]Type[orange] /vote [] to agree.", target.name, votes, votesRequired())); + + checkPass(); } boolean checkPass(){ @@ -524,9 +527,13 @@ 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 clientShapshot( + public static void clientSnapshot( Player player, int snapshotID, boolean dead, @@ -535,13 +542,23 @@ public class NetServer implements ApplicationListener{ float rotation, float baseRotation, float xVelocity, float yVelocity, Tile mining, - boolean boosting, boolean shooting, boolean chatting, + boolean boosting, boolean shooting, boolean chatting, boolean building, @Nullable BuildPlan[] requests, float viewX, float viewY, float viewWidth, float viewHeight ){ 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; @@ -556,6 +573,10 @@ public class NetServer implements ApplicationListener{ shooting = false; } + if(!player.dead() && (player.unit().type().flying || !player.unit().type().canBoost)){ + boosting = false; + } + //TODO these need to be assigned elsewhere player.mouseX = pointerX; player.mouseY = pointerY; @@ -568,6 +589,7 @@ public class NetServer implements ApplicationListener{ if(player.isBuilder()){ player.builder().clearBuilding(); + player.builder().updateBuilding(building); } if(player.isMiner()){ @@ -605,9 +627,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 = 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){ @@ -671,8 +696,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; } @@ -706,13 +731,15 @@ public class NetServer implements ApplicationListener{ @Remote(targets = Loc.client) public static void connectConfirm(Player player){ + player.add(); + if(player.con == null || player.con.hasConnected) return; - player.add(); player.con.hasConnected = true; + if(Config.showConnectMessages.bool()){ Call.sendMessage("[accent]" + player.name + "[accent] has connected."); - Log.info("&lm[@] &y@ has connected. ", player.uuid(), player.name); + Log.info("&lm[@] &y@ has connected.", player.uuid(), player.name); } if(!Config.motd.string().equalsIgnoreCase("off")){ @@ -723,7 +750,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){ @@ -778,11 +805,11 @@ public class NetServer implements ApplicationListener{ syncStream.reset(); short sent = 0; - for(Building entity : Groups.tile){ + for(Building entity : Groups.build){ if(!entity.block().sync) continue; sent ++; - dataStream.writeInt(entity.tile().pos()); + dataStream.writeInt(entity.pos()); entity.writeAll(Writes.get(dataStream)); if(syncStream.size() > maxSnapshotSize){ @@ -803,11 +830,11 @@ public class NetServer implements ApplicationListener{ public void writeEntitySnapshot(Player player) throws IOException{ syncStream.reset(); - Seq cores = state.teams.cores(player.team()); + Seq cores = state.teams.cores(player.team()); dataStream.writeByte(cores.size); - for(CoreEntity entity : cores){ + for(CoreBuild entity : cores){ dataStream.writeInt(entity.tile().pos()); entity.items.write(Writes.get(dataStream)); } @@ -816,7 +843,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 de85c7ad3b..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); } @@ -286,6 +293,7 @@ public class UI implements ApplicationListener, Loadable{ public void showInfoFade(String info){ Table table = new Table(); + table.touchable = Touchable.disabled; table.setFillParent(true); table.actions(Actions.fadeOut(7f, Interp.fade), Actions.remove()); table.top().add(info).style(Styles.outlineLabel).padTop(10); @@ -481,10 +489,11 @@ public class UI implements ApplicationListener, Loadable{ public void announce(String text){ Table t = new Table(); + t.touchable = Touchable.disabled; t.background(Styles.black3).margin(8f) .add(text).style(Styles.outlineLabel); t.update(() -> t.setPosition(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, Align.center)); - t.actions(Actions.fadeOut(3, Interp.pow4In)); + t.actions(Actions.fadeOut(3, Interp.pow4In), Actions.remove()); Core.scene.add(t); } 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 09262a9d74..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; @@ -221,41 +221,45 @@ public class MapGenerateDialog extends BaseDialog{ for(GenerateFilter filter : filters){ //main container - filterTable.table(Tex.button, c -> { + filterTable.table(Tex.pane, c -> { + c.margin(0); + //icons to perform actions - c.table(t -> { - t.top(); - t.add(filter.name()).padTop(5).color(Pal.accent).growX().left(); + c.table(Tex.whiteui, t -> { + t.setColor(Pal.gray); - t.row(); + t.top().left(); + t.add(filter.name()).left().padLeft(6).width(100f).wrap(); - t.table(b -> { - ImageButtonStyle style = Styles.cleari; - b.defaults().size(50f); - b.button(Icon.refresh, style, () -> { - filter.randomize(); - update(); - }); + t.add().growX(); - b.button(Icon.upOpen, style, () -> { - int idx = filters.indexOf(filter); - filters.swap(idx, Math.max(0, idx - 1)); - rebuildFilters(); - update(); - }); - b.button(Icon.downOpen, style, () -> { - int idx = filters.indexOf(filter); - filters.swap(idx, Math.min(filters.size - 1, idx + 1)); - rebuildFilters(); - update(); - }); - b.button(Icon.trash, style, () -> { - filters.remove(filter); - rebuildFilters(); - update(); - }); + ImageButtonStyle style = Styles.geni; + t.defaults().size(42f); + + t.button(Icon.refresh, style, () -> { + filter.randomize(); + update(); }); - }).fillX(); + + t.button(Icon.upOpen, style, () -> { + int idx = filters.indexOf(filter); + filters.swap(idx, Math.max(0, idx - 1)); + rebuildFilters(); + update(); + }); + t.button(Icon.downOpen, style, () -> { + int idx = filters.indexOf(filter); + filters.swap(idx, Math.min(filters.size - 1, idx + 1)); + rebuildFilters(); + update(); + }); + t.button(Icon.cancel, style, () -> { + filters.remove(filter); + rebuildFilters(); + update(); + }); + }).growX(); + c.row(); //all the options c.table(f -> { @@ -269,7 +273,7 @@ public class MapGenerateDialog extends BaseDialog{ }).growX().left(); f.row(); } - }).grow().left().pad(2).top(); + }).grow().left().pad(6).top(); }).width(280f).pad(3).top().left().fillY(); if(++i % cols == 0){ filterTable.row(); @@ -404,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 45dfa8d73a..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; @@ -213,9 +213,9 @@ public class MapView extends Element implements GestureListener{ y = (y - getHeight() / 2 + sclheight / 2 - offsety * zoom) / sclheight * editor.height(); if(editor.drawBlock.size % 2 == 0 && tool != EditorTool.eraser){ - return Tmp.g1.set((int)(x - 0.5f), (int)(y - 0.5f)); + return Tmp.p1.set((int)(x - 0.5f), (int)(y - 0.5f)); }else{ - return Tmp.g1.set((int)x, (int)y); + return Tmp.p1.set((int)x, (int)y); } } 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/GroupDefs.java b/core/src/mindustry/entities/GroupDefs.java index 3d2dcc1580..60bdbb5fd3 100644 --- a/core/src/mindustry/entities/GroupDefs.java +++ b/core/src/mindustry/entities/GroupDefs.java @@ -8,7 +8,7 @@ class GroupDefs{ @GroupDef(value = Playerc.class, mapping = true) G player; @GroupDef(value = Bulletc.class, spatial = true, collide = true) G bullet; @GroupDef(value = Unitc.class, spatial = true, mapping = true) G unit; - @GroupDef(value = Buildingc.class) G tile; + @GroupDef(value = Buildingc.class) G build; @GroupDef(value = Syncc.class, mapping = true) G sync; @GroupDef(value = Drawc.class) G draw; @GroupDef(value = WeatherStatec.class) G weather; diff --git a/core/src/mindustry/entities/Puddles.java b/core/src/mindustry/entities/Puddles.java index 3b9f02c75c..461e486001 100644 --- a/core/src/mindustry/entities/Puddles.java +++ b/core/src/mindustry/entities/Puddles.java @@ -83,7 +83,7 @@ public class Puddles{ (liquid.flammability > 0.3f && dest.temperature > 0.7f)){ //flammable liquid + hot liquid Fires.create(tile); if(Mathf.chance(0.006 * amount)){ - Call.createBullet(Bullets.fireball, Team.derelict, x, y, Mathf.random(360f), -1f, 1f, 1f); + Bullets.fireball.createNet(Team.derelict, x, y, Mathf.random(360f), -1f, 1f, 1f); } }else if(dest.temperature > 0.7f && liquid.temperature < 0.55f){ //cold liquid poured onto hot Puddle if(Mathf.chance(0.5f * amount)){ diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index d32030775f..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) @@ -36,7 +45,7 @@ public class Units{ public static int getCap(Team team){ //wave team has no cap - if((team == state.rules.waveTeam && state.rules.waves) || (state.isCampaign() && team == state.rules.waveTeam)){ + if((team == state.rules.waveTeam && !state.rules.pvp) || (state.isCampaign() && team == state.rules.waveTeam)){ return Integer.MAX_VALUE; } return state.rules.unitCap + indexer.getExtraUnits(team); 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 74f188f042..481731f7b3 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -54,7 +54,7 @@ public abstract class BulletType extends Content{ /** Status effect applied on hit. */ public StatusEffect status = StatusEffects.none; /** Intensity of applied status effect in terms of duration. */ - public float statusDuration = 60 * 10f; + public float statusDuration = 60 * 8f; /** Whether this bullet type collides with tiles. */ public boolean collidesTiles = true; /** Whether this bullet type collides with tiles that are of the same team. */ @@ -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,13 +265,13 @@ 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; } public void createNet(Team team, float x, float y, float angle, float damage, float velocityScl, float lifetimeScl){ - Call.createBullet(this, team, x, y, damage, angle, velocityScl, lifetimeScl); + Call.createBullet(this, team, x, y, angle, damage, velocityScl, lifetimeScl); } @Remote(called = Loc.server, unreliable = true) diff --git a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java index 34dd5d2c67..1962b97615 100644 --- a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java +++ b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java @@ -67,7 +67,7 @@ public class ContinuousLaserBulletType extends BulletType{ for(int i = 0; i < tscales.length; i++){ Tmp.v1.trns(b.rotation() + 180f, (lenscales[i] - 1f) * 35f); Lines.stroke((9f + Mathf.absin(Time.time(), 0.8f, 1.5f)) * b.fout() * strokes[s] * tscales[i]); - Lines.lineAngle(b.x + Tmp.v1.x, b.y + Tmp.v1.y, b.rotation(), baseLen * lenscales[i], CapStyle.none); + Lines.lineAngle(b.x + Tmp.v1.x, b.y + Tmp.v1.y, b.rotation(), baseLen * lenscales[i], false); } } 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/bullet/LaserBulletType.java b/core/src/mindustry/entities/bullet/LaserBulletType.java index 571a78826d..821129f51d 100644 --- a/core/src/mindustry/entities/bullet/LaserBulletType.java +++ b/core/src/mindustry/entities/bullet/LaserBulletType.java @@ -78,7 +78,7 @@ public class LaserBulletType extends BulletType{ for(Color color : colors){ Draw.color(color); Lines.stroke((cwidth *= lengthFalloff) * b.fout()); - Lines.lineAngle(b.x, b.y, b.rotation(), baseLen, CapStyle.none); + Lines.lineAngle(b.x, b.y, b.rotation(), baseLen, false); Tmp.v1.trns(b.rotation(), baseLen); Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, Lines.getStroke() * 1.22f, cwidth * 2f + width / 2f, b.rotation()); diff --git a/core/src/mindustry/entities/bullet/LiquidBulletType.java b/core/src/mindustry/entities/bullet/LiquidBulletType.java index 155ed32973..45ae536668 100644 --- a/core/src/mindustry/entities/bullet/LiquidBulletType.java +++ b/core/src/mindustry/entities/bullet/LiquidBulletType.java @@ -25,7 +25,7 @@ public class LiquidBulletType extends BulletType{ } lifetime = 74f; - statusDuration = 90f; + statusDuration = 60f * 2f; despawnEffect = Fx.none; hitEffect = Fx.hitLiquid; smokeEffect = Fx.none; @@ -69,7 +69,7 @@ public class LiquidBulletType extends BulletType{ super.despawned(b); //don't create liquids when the projectile despawns - hitEffect.at(b.x, b.y, liquid.color); + hitEffect.at(b.x, b.y, b.rotation(), liquid.color); } @Override diff --git a/core/src/mindustry/entities/bullet/MissileBulletType.java b/core/src/mindustry/entities/bullet/MissileBulletType.java index a3670ac3c0..274a806f5e 100644 --- a/core/src/mindustry/entities/bullet/MissileBulletType.java +++ b/core/src/mindustry/entities/bullet/MissileBulletType.java @@ -15,6 +15,7 @@ public class MissileBulletType extends BasicBulletType{ height = 8f; hitSound = Sounds.explosion; trailChance = 0.2f; + lifetime = 49f; } public MissileBulletType(float speed, float damage){ 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 694686a2e1..241179e7ae 100644 --- a/core/src/mindustry/entities/comp/BuilderComp.java +++ b/core/src/mindustry/entities/comp/BuilderComp.java @@ -29,13 +29,7 @@ abstract class BuilderComp implements Unitc{ @Import float x, y, rotation; @SyncLocal Queue plans = new Queue<>(); - transient boolean updateBuilding = true; - - @Override - public void controller(UnitController next){ - //reset building state so AI controlled units will always start off building - updateBuilding = true; - } + @SyncLocal transient boolean updateBuilding = true; @Override public void update(){ @@ -85,12 +79,12 @@ abstract class BuilderComp implements Unitc{ boolean hasAll = infinite || !Structs.contains(current.block.requirements, i -> core != null && !core.items.has(i.item)); if(hasAll){ - Build.beginPlace(current.block, team(), current.x, current.y, current.rotation); + Call.beginPlace(current.block, team(), current.x, current.y, current.rotation); }else{ current.stuck = true; } }else if(!current.initialized && current.breaking && Build.validBreak(team(), current.x, current.y)){ - Build.beginBreak(team(), current.x, current.y); + Call.beginBreak(team(), current.x, current.y); }else{ plans.removeFirst(); return; diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index b3aebb9adc..f77183dba4 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -39,9 +39,9 @@ import static mindustry.Vars.*; @EntityDef(value = {Buildingc.class}, isFinal = false, genio = false, serialize = false) @Component(base = true) -abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Senseable{ +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; @@ -330,15 +331,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 +410,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 +431,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 +510,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 +565,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 +583,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 +616,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 +624,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 +650,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 +754,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); @@ -843,8 +856,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } } - /** Called when the block is tapped.*/ - public void tapped(Player player){ + /** Called when the block is tapped by the local player. */ + public void tapped(){ } @@ -871,7 +884,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 +900,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); } @@ -1070,6 +1084,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, return true; } + public boolean canPickup(){ + return true; + } + public void removeFromProximity(){ onProximityRemoved(); tmpTiles.clear(); @@ -1168,15 +1186,23 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } @Override - public double sense(LSensor sensor){ - if(sensor == LSensor.health) return health; - if(sensor == LSensor.efficiency) return efficiency(); - if(sensor == LSensor.totalItems && items != null) return items.total(); - if(sensor == LSensor.totalLiquids && liquids != null) return liquids.total(); - if(sensor == LSensor.totalPower && power != null) return power.status * (block.consumes.getPower().buffered ? block.consumes.getPower().capacity : 1f); - if(sensor == LSensor.powerNetIn && power != null) return power.graph.getPowerProduced(); - if(sensor == LSensor.powerNetOut && power != null) return power.graph.getPowerNeeded(); - if(sensor == LSensor.powerNetStored && power != null) return power.graph.getLastPowerStored(); + public double sense(LAccess sensor){ + if(sensor == LAccess.x) return x; + if(sensor == LAccess.y) return y; + if(sensor == LAccess.team) return team.id; + if(sensor == LAccess.health) return health; + if(sensor == LAccess.efficiency) return efficiency(); + if(sensor == LAccess.rotation) return rotation; + if(sensor == LAccess.totalItems && items != null) return items.total(); + if(sensor == LAccess.totalLiquids && liquids != null) return liquids.total(); + if(sensor == LAccess.totalPower && power != null && block.consumes.hasPower()) return power.status * (block.consumes.getPower().buffered ? block.consumes.getPower().capacity : 1f); + if(sensor == LAccess.itemCapacity) return block.itemCapacity; + if(sensor == LAccess.liquidCapacity) return block.liquidCapacity; + if(sensor == LAccess.powerCapacity) return block.consumes.hasPower() ? block.consumes.getPower().capacity : 0f; + if(sensor == LAccess.powerNetIn && power != null) return power.graph.getPowerProduced(); + if(sensor == LAccess.powerNetOut && power != null) return power.graph.getPowerNeeded(); + if(sensor == LAccess.powerNetStored && power != null) return power.graph.getLastPowerStored(); + if(sensor == LAccess.powerNetCapacity && power != null) return power.graph.getBatteryCapacity(); return 0; } @@ -1187,6 +1213,14 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, return 0; } + @Override + public void control(LAccess type, double p1, double p2, double p3, double p4){ + if(type == LAccess.enabled){ + enabled = !Mathf.zero((float)p1); + enabledControlTime = timeToUncontrol; + } + } + @Override public void remove(){ if(sound != null){ @@ -1211,6 +1245,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 5462014a16..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,11 +15,14 @@ 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; transient @Nullable Formation formation; transient Seq controlling = new Seq<>(); + /** minimum speed of any unit in the formation. */ + transient float minFormationSpeed; @Override public void update(){ @@ -42,21 +48,51 @@ 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(); + float spacing = hitSize() * 1.7f; + minFormationSpeed = type().speed; + controlling.addAll(units); for(Unit unit : units){ - unit.controller(new FormationAI(base(), formation)); + FormationAI ai; + unit.controller(ai = new FormationAI(base(), formation)); + spacing = Math.max(spacing, ai.formationSize()); + minFormationSpeed = Math.min(minFormationSpeed, unit.type().speed); } this.formation = formation; + //update formation spacing based on max size + formation.pattern.spacing = spacing; + members.clear(); for(Unitc u : units){ members.add((FormationAI)u.controller()); } - //TODO doesn't handle units that don't fit a formation formation.addMembers(members); } 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/HealthComp.java b/core/src/mindustry/entities/comp/HealthComp.java index 609f3da46f..ca65ea8115 100644 --- a/core/src/mindustry/entities/comp/HealthComp.java +++ b/core/src/mindustry/entities/comp/HealthComp.java @@ -6,7 +6,7 @@ import mindustry.annotations.Annotations.*; import mindustry.gen.*; @Component -abstract class HealthComp implements Entityc{ +abstract class HealthComp implements Entityc, Posc{ static final float hitDuration = 9f; float health; 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/MinerComp.java b/core/src/mindustry/entities/comp/MinerComp.java index 12711abe2e..1ec4794ca2 100644 --- a/core/src/mindustry/entities/comp/MinerComp.java +++ b/core/src/mindustry/entities/comp/MinerComp.java @@ -40,19 +40,19 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{ public void update(){ Building core = closestCore(); - if(core != null && mineTile != null && mineTile.drop() != null && !acceptsItem(mineTile.drop()) && within(core, mineTransferRange)){ + if(core != null && mineTile != null && mineTile.drop() != null && !acceptsItem(mineTile.drop()) && within(core, mineTransferRange) && !offloadImmediately()){ int accepted = core.acceptStack(item(), stack().amount, this); if(accepted > 0){ Call.transferItemTo(item(), accepted, mineTile.worldx() + Mathf.range(tilesize / 2f), - mineTile.worldy() + Mathf.range(tilesize / 2f), core.tile()); + mineTile.worldy() + Mathf.range(tilesize / 2f), core); clearItem(); } } if(mineTile == null || core == null || mineTile.block() != Blocks.air || dst(mineTile.worldx(), mineTile.worldy()) > miningRange || (((Object)this) instanceof Builderc && ((Builderc)(Object)this).activelyBuilding()) - || mineTile.drop() == null || !acceptsItem(mineTile.drop()) || !canMine(mineTile.drop())){ + || mineTile.drop() == null || !canMine(mineTile.drop())){ mineTile = null; mineTimer = 0f; }else{ @@ -60,25 +60,30 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{ rotation(Mathf.slerpDelta(rotation(), angleTo(mineTile.worldx(), mineTile.worldy()), 0.4f)); mineTimer += Time.delta *type.mineSpeed; + if(Mathf.chance(0.06 * Time.delta)){ + Fx.pulverizeSmall.at(mineTile.worldx() + Mathf.range(tilesize / 2f), mineTile.worldy() + Mathf.range(tilesize / 2f), 0f, item.color); + } + if(mineTimer >= 50f + item.hardness*10f){ mineTimer = 0; if(within(core, mineTransferRange) && core.acceptStack(item, 1, this) == 1 && offloadImmediately()){ Call.transferItemTo(item, 1, mineTile.worldx() + Mathf.range(tilesize / 2f), - mineTile.worldy() + Mathf.range(tilesize / 2f), core.tile()); + mineTile.worldy() + Mathf.range(tilesize / 2f), core); }else if(acceptsItem(item)){ //this is clientside, since items are synced anyway InputHandler.transferItemToUnit(item, mineTile.worldx() + Mathf.range(tilesize / 2f), mineTile.worldy() + Mathf.range(tilesize / 2f), this); + }else{ + mineTile = null; + mineTimer = 0f; } } - if(Mathf.chance(0.06 * Time.delta)){ - Fx.pulverizeSmall.at(mineTile.worldx() + Mathf.range(tilesize / 2f), mineTile.worldy() + Mathf.range(tilesize / 2f), 0f, item.color); - } + } } diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index b3e14d5f6e..b715d4d7c4 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -6,6 +6,7 @@ import arc.util.*; import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; +import mindustry.entities.*; import mindustry.gen.*; import mindustry.world.*; import mindustry.world.blocks.payloads.*; @@ -69,17 +70,22 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc{ boolean dropUnit(UnitPayload payload){ Unit u = payload.unit; + Fx.unitDrop.at(this); //can't drop ground units - if((tileOn() == null || tileOn().solid()) && u.elevation < 0.1f){ + if(((tileOn() == null || tileOn().solid()) && u.elevation < 0.1f) || (!floorOn().isLiquid && u instanceof WaterMovec)){ return false; } + //clients do not drop payloads + if(Vars.net.client()) return true; + u.set(this); u.trns(Tmp.v1.rnd(Mathf.random(2f))); u.rotation(rotation); + //reset the ID to a new value to make sure it's synced + u.id = EntityGroup.nextId(); u.add(); - Fx.unitDrop.at(u); return true; } @@ -89,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/PlayerComp.java b/core/src/mindustry/entities/comp/PlayerComp.java index a259585805..ce0f36d908 100644 --- a/core/src/mindustry/entities/comp/PlayerComp.java +++ b/core/src/mindustry/entities/comp/PlayerComp.java @@ -54,11 +54,13 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra return unit instanceof Minerc; } - public @Nullable CoreEntity closestCore(){ + public @Nullable + CoreBuild closestCore(){ return state.teams.closestCore(x, y, team); } - public @Nullable CoreEntity core(){ + public @Nullable + CoreBuild core(){ return team.core(); } @@ -104,7 +106,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra clearUnit(); } - CoreEntity core = closestCore(); + CoreBuild core = closestCore(); if(!dead()){ set(unit); diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index c10880a813..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; @@ -70,9 +71,16 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I } @Override - public double sense(LSensor sensor){ - if(sensor == LSensor.totalItems) return stack().amount; - if(sensor == LSensor.health) return health; + public double sense(LAccess sensor){ + if(sensor == LAccess.totalItems) return stack().amount; + if(sensor == LAccess.rotation) return rotation; + if(sensor == LAccess.health) return health; + if(sensor == LAccess.x) return x; + if(sensor == LAccess.y) return y; + if(sensor == LAccess.team) return team.id; + if(sensor == LAccess.shooting) return isShooting() ? 1 : 0; + if(sensor == LAccess.shootX) return aimX(); + if(sensor == LAccess.shootY) return aimY(); return 0; } @@ -216,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)); @@ -268,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(); } } @@ -282,6 +290,11 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I controller.updateUnit(); } + //clear controller when it becomes invalid + if(!controller.isValidController()){ + resetController(); + } + //do not control anything when deactivated if(deactivated){ controlWeapons(false, false); @@ -302,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; @@ -377,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 176c9dee09..92d3fffbf1 100644 --- a/core/src/mindustry/entities/comp/WaterMoveComp.java +++ b/core/src/mindustry/entities/comp/WaterMoveComp.java @@ -10,6 +10,7 @@ import mindustry.entities.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; +import mindustry.world.*; import mindustry.world.blocks.environment.*; import static mindustry.Vars.*; @@ -35,6 +36,20 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{ } } + @Override + @Replace + public void lookAt(float angle){ + if(onLiquid()){ + rotation = Angles.moveToward(rotation, angle, type.rotateSpeed * Time.delta); + } + } + + @Override + @Replace + public boolean canShoot(){ + return onLiquid(); + } + @Override public void add(){ tleft.clear(); @@ -47,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); @@ -79,5 +94,10 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{ Floor on = isFlying() ? Blocks.air.asFloor() : floorOn(); return on.isDeep() ? 1.3f : 1f; } + + public boolean onLiquid(){ + Tile tile = tileOn(); + return tile != null && tile.floor().isLiquid; + } } diff --git a/core/src/mindustry/entities/comp/WeaponsComp.java b/core/src/mindustry/entities/comp/WeaponsComp.java index d464a7024f..5665bee7db 100644 --- a/core/src/mindustry/entities/comp/WeaponsComp.java +++ b/core/src/mindustry/entities/comp/WeaponsComp.java @@ -76,9 +76,15 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc{ aimY = y; } + boolean canShoot(){ + return true; + } + /** Update shooting and rotation for this unit. */ @Override public void update(){ + boolean can = canShoot(); + for(WeaponMount mount : mounts){ Weapon weapon = mount.weapon; mount.reload = Math.max(mount.reload - Time.delta * reloadMultiplier, 0); @@ -91,7 +97,7 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc{ } //rotate if applicable - if(weapon.rotate && (mount.rotate || mount.shoot)){ + if(weapon.rotate && (mount.rotate || mount.shoot) && can){ float axisX = this.x + Angles.trnsx(rotation - 90, weapon.x, weapon.y), axisY = this.y + Angles.trnsy(rotation - 90, weapon.x, weapon.y); @@ -104,9 +110,11 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc{ //shoot if applicable if(mount.shoot && //must be shooting + 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 5bbd462d42..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,45 @@ 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); + } + + protected void circle(Position target, float circleLength, float speed){ + if(target == null) return; + + vec.set(target).sub(unit); + + if(vec.len() < circleLength){ + vec.rotate((circleLength - vec.len()) / circleLength * 180f); + } + + vec.setLength(speed * Time.delta); + + unit.moveAt(vec); + } + + protected void moveTo(Position target, float circleLength){ + if(target == null) return; + + vec.set(target).sub(unit); + + float length = circleLength <= 0.001f ? 1f : Mathf.clamp((unit.dst(target) - circleLength) / 100f, -1f, 1f); + + vec.setLength(unit.type().speed * Time.delta * length); + if(length < -0.5f){ + vec.rotate(180f); + }else if(length < 0){ + vec.setZero(); + } + + unit.moveAt(vec); + } + @Override public void unit(Unit unit){ if(this.unit == unit) return; diff --git a/core/src/mindustry/entities/units/BuildPlan.java b/core/src/mindustry/entities/units/BuildPlan.java index 588c549a2c..e8dba045d7 100644 --- a/core/src/mindustry/entities/units/BuildPlan.java +++ b/core/src/mindustry/entities/units/BuildPlan.java @@ -53,7 +53,8 @@ public class BuildPlan{ } - public static Object pointConfig(Object config, Cons cons){ + /** Transforms the internal position of this config using the specified function, and return the result. */ + public static Object pointConfig(Block block, Object config, Cons cons){ if(config instanceof Point2){ config = ((Point2)config).cpy(); cons.get((Point2)config); @@ -65,14 +66,15 @@ public class BuildPlan{ cons.get(result[i++]); } config = result; + }else if(block != null){ + config = block.pointConfig(config, cons); } return config; } - /** If this requests's config is a Point2 or an array of Point2s, this returns a copy of them for transformation. - * Otherwise does nothing. */ + /** Transforms the internal position of this config using the specified function. */ public void pointConfig(Cons cons){ - this.config = pointConfig(this.config, cons); + this.config = pointConfig(block, this.config, cons); } public BuildPlan copy(){ diff --git a/core/src/mindustry/entities/units/UnitCommand.java b/core/src/mindustry/entities/units/UnitCommand.java index dada524b84..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; + 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 e3915e4b45..3dcfe0aca2 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -5,6 +5,7 @@ import mindustry.core.GameState.*; import mindustry.ctype.*; import mindustry.entities.units.*; import mindustry.gen.*; +import mindustry.net.*; import mindustry.type.*; import mindustry.world.*; @@ -29,7 +30,12 @@ public class EventType{ openWiki, teamCoreDamage, socketConfigChanged, - update + update, + draw, + preDraw, + postDraw, + uiDrawBegin, + uiDrawEnd } public static class WinEvent{} @@ -87,6 +93,14 @@ public class EventType{ } } + public static class ClientPreConnectEvent{ + public final Host host; + + public ClientPreConnectEvent(Host host){ + this.host = host; + } + } + public static class PlayerChatEvent{ public final Player player; public final String message; @@ -97,27 +111,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; @@ -157,24 +150,13 @@ public class EventType{ } } - /** Called when the player taps a block. */ - public static class TapEvent{ - public final Building tile; - public final Player player; - - public TapEvent(Building tile, Player player){ - this.tile = tile; - this.player = player; - } - } - - /** Called when the player sets a specific block. */ - public static class TapConfigEvent{ + /** Called when the configures sets a specific block. */ + public static class ConfigEvent{ public final Building tile; public final Player player; public final Object value; - public TapConfigEvent(Building tile, Player player, Object value){ + public ConfigEvent(Building tile, Player player, Object value){ this.tile = tile; this.player = player; this.value = value; diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index 83b0c67e6a..2b0c2bac28 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -38,6 +38,10 @@ public class Rules{ public boolean canGameOver = true; /** Whether reactors can explode and damage other blocks. */ public boolean reactorExplosions = true; + /** Whether friendly explosions can occur and set fire/damage other blocks. */ + public boolean damageExplosions = true; + /** Whether fire is enabled. */ + public boolean fire = true; /** Whether units use and require ammo. */ public boolean unitAmmo = false; /** How fast unit pads build units. */ @@ -92,6 +96,8 @@ public class Rules{ public Team defaultTeam = Team.sharded; /** team of the enemy in waves/sectors */ public Team waveTeam = Team.crux; + /** name of the custom mode that this ruleset describes, or null. */ + public @Nullable String modeName; /** special tags for additional info */ public StringMap tags = new StringMap(); 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/Schematics.java b/core/src/mindustry/game/Schematics.java index 95cbece27f..3c8063d1ac 100644 --- a/core/src/mindustry/game/Schematics.java +++ b/core/src/mindustry/game/Schematics.java @@ -583,7 +583,7 @@ public class Schematics implements Loadable{ int ox = schem.width/2, oy = schem.height/2; schem.tiles.each(req -> { - req.config = BuildPlan.pointConfig(req.config, p -> { + req.config = BuildPlan.pointConfig(req.block, req.config, p -> { int cx = p.x, cy = p.y; int lx = cx; diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java index c9afbb75e2..7b585890c3 100644 --- a/core/src/mindustry/game/SectorInfo.java +++ b/core/src/mindustry/game/SectorInfo.java @@ -64,7 +64,7 @@ public class SectorInfo{ //update core items coreItems.clear(); - CoreEntity entity = state.rules.defaultTeam.core(); + CoreBuild entity = state.rules.defaultTeam.core(); if(entity != null){ ItemModule items = entity.items; @@ -97,7 +97,7 @@ public class SectorInfo{ updateCoreDeltas(); } - CoreEntity ent = state.rules.defaultTeam.core(); + CoreBuild ent = state.rules.defaultTeam.core(); //refresh throughput if(time.get(refreshPeriod)){ @@ -141,7 +141,7 @@ public class SectorInfo{ } private void updateCoreDeltas(){ - CoreEntity ent = state.rules.defaultTeam.core(); + CoreBuild ent = state.rules.defaultTeam.core(); for(int i = 0; i < lastCoreItems.length; i++){ lastCoreItems[i] = ent == null ? 0 : ent.items.get(i); } diff --git a/core/src/mindustry/game/Team.java b/core/src/mindustry/game/Team.java index df124f40fd..3028edf3f4 100644 --- a/core/src/mindustry/game/Team.java +++ b/core/src/mindustry/game/Team.java @@ -91,7 +91,7 @@ public class Team implements Comparable{ return state.teams.get(this); } - public @Nullable CoreEntity core(){ + public @Nullable CoreBuild core(){ return data().core(); } @@ -103,7 +103,7 @@ public class Team implements Comparable{ return state.teams.areEnemies(this, other); } - public Seq cores(){ + public Seq cores(){ return state.teams.cores(this); } diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java index 592aa9d444..e513c31fc6 100644 --- a/core/src/mindustry/game/Teams.java +++ b/core/src/mindustry/game/Teams.java @@ -5,7 +5,10 @@ import arc.math.geom.*; import arc.struct.*; import arc.util.ArcAnnotate.*; import mindustry.ai.*; +import mindustry.content.*; +import mindustry.entities.units.*; import mindustry.gen.*; +import mindustry.type.*; import mindustry.world.blocks.storage.CoreBlock.*; import static mindustry.Vars.*; @@ -21,15 +24,15 @@ public class Teams{ active.add(get(Team.crux)); } - public @Nullable CoreEntity closestEnemyCore(float x, float y, Team team){ + public @Nullable CoreBuild closestEnemyCore(float x, float y, Team team){ for(Team enemy : team.enemies()){ - CoreEntity tile = Geometry.findClosest(x, y, enemy.cores()); + CoreBuild tile = Geometry.findClosest(x, y, enemy.cores()); if(tile != null) return tile; } return null; } - public @Nullable CoreEntity closestCore(float x, float y, Team team){ + public @Nullable CoreBuild closestCore(float x, float y, Team team){ return Geometry.findClosest(x, y, get(team).cores); } @@ -37,10 +40,10 @@ public class Teams{ return get(team).enemies; } - public boolean eachEnemyCore(Team team, Boolf ret){ + public boolean eachEnemyCore(Team team, Boolf ret){ for(TeamData data : active){ if(areEnemies(team, data.team)){ - for(CoreEntity tile : data.cores){ + for(CoreBuild tile : data.cores){ if(ret.get(tile)){ return true; } @@ -68,12 +71,12 @@ public class Teams{ return map[team.id]; } - public Seq playerCores(){ + public Seq playerCores(){ return get(state.rules.defaultTeam).cores; } /** Do not modify! */ - public Seq cores(Team team){ + public Seq cores(Team team){ return get(team).cores; } @@ -98,8 +101,8 @@ public class Teams{ return active; } - public void registerCore(CoreEntity core){ - TeamData data = get(core.team()); + public void registerCore(CoreBuild core){ + TeamData data = get(core.team); //add core if not present if(!data.cores.contains(core)){ data.cores.add(core); @@ -113,8 +116,8 @@ public class Teams{ } } - public void unregisterCore(CoreEntity entity){ - TeamData data = get(entity.team()); + public void unregisterCore(CoreBuild entity){ + TeamData data = get(entity.team); //remove core data.cores.remove(entity); //unregister in active list @@ -143,11 +146,17 @@ public class Teams{ } public class TeamData{ - public final Seq cores = new Seq<>(); + public final Seq cores = new Seq<>(); public final Team team; public final BaseAI ai; + public Team[] enemies = {}; + /** Planned blocks for drones. This is usually only blocks that have been broken. */ public Queue blocks = new Queue<>(); + /** The current command for units to follow. */ + public UnitCommand command = UnitCommand.attack; + /** Target items to mine. */ + public Seq mineItems = Seq.with(Items.copper, Items.lead, Items.titanium, Items.thorium); public TeamData(Team team){ this.team = team; @@ -166,13 +175,13 @@ public class Teams{ return cores.isEmpty(); } - public @Nullable CoreEntity core(){ + public @Nullable CoreBuild core(){ return cores.isEmpty() ? null : cores.first(); } /** @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/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/Drawf.java b/core/src/mindustry/graphics/Drawf.java index 0a5bbb39c0..4b4a00e47d 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -157,7 +157,7 @@ public class Drawf{ Lines.stroke(12f * scale); Lines.precise(true); - Lines.line(line, x + Tmp.v1.x, y + Tmp.v1.y, x2 - Tmp.v1.x, y2 - Tmp.v1.y, CapStyle.none, 0f); + Lines.line(line, x + Tmp.v1.x, y + Tmp.v1.y, x2 - Tmp.v1.x, y2 - Tmp.v1.y, false, 0f); Lines.precise(false); Lines.stroke(1f); 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/LoadRenderer.java b/core/src/mindustry/graphics/LoadRenderer.java index 9dcb08fa5e..295205a13d 100644 --- a/core/src/mindustry/graphics/LoadRenderer.java +++ b/core/src/mindustry/graphics/LoadRenderer.java @@ -464,7 +464,7 @@ public class LoadRenderer implements Disposable{ Font font = assets.get("tech"); font.setColor(Pal.accent); Draw.color(Color.black); - font.draw(red + "[[[[ " +key + " ]]\n\n"+orange+"<" + Version.modifier + " " + (Version.build == 0 ? " [init]" : Version.build == -1 ? " custom" : " " + Version.build) + ">", w/2f, h/2f + 110*s, Align.center); + font.draw(red + "[[[[ " + key + " ]]\n"+orange+"<" + Version.modifier + " " + (Version.build == 0 ? " [init]" : Version.build == -1 ? " custom" : " " + Version.build) + ">", w/2f, h/2f + 110*s, Align.center); } Lines.precise(false); diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java index cbb388543d..133d8898b0 100644 --- a/core/src/mindustry/graphics/OverlayRenderer.java +++ b/core/src/mindustry/graphics/OverlayRenderer.java @@ -42,10 +42,10 @@ public class OverlayRenderer{ if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f) .setCenter(Core.camera.position.x, Core.camera.position.y).contains(player.x, player.y)){ - Tmp.v1.set(player.x, player.y).sub(player).setLength(indicatorLength); + Tmp.v1.set(player).sub(Vars.player).setLength(indicatorLength); - Lines.stroke(2f, player.team().color); - Lines.lineAngle(player.x + Tmp.v1.x, player.y + Tmp.v1.y, Tmp.v1.angle(), 4f); + Lines.stroke(2f, Vars.player.team().color); + Lines.lineAngle(Vars.player.x + Tmp.v1.x, Vars.player.y + Tmp.v1.y, Tmp.v1.angle(), 4f); Draw.reset(); } } @@ -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 84121a9893..052cd14326 100644 --- a/core/src/mindustry/graphics/Pal.java +++ b/core/src/mindustry/graphics/Pal.java @@ -9,6 +9,10 @@ public class Pal{ command = Color.valueOf("eab678"), sap = Color.valueOf("665c9f"), + sapBullet = Color.valueOf("bf92f9"), + sapBulletBack = Color.valueOf("6d56bf"), + + spore = Color.valueOf("7457ce"), shield = Color.valueOf("ffd37f").a(0.7f), shieldIn = Color.black.cpy().a(0f), 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 5af981fb9f..1903d21c40 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -13,7 +13,6 @@ import arc.scene.ui.layout.*; import arc.util.ArcAnnotate.*; import arc.util.*; import mindustry.*; -import mindustry.entities.*; import mindustry.entities.units.*; import mindustry.game.EventType.*; import mindustry.game.*; @@ -28,24 +27,33 @@ 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; @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(() -> { @@ -78,15 +86,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 @@ -133,14 +132,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 @@ -177,27 +174,40 @@ public class DesktopInput extends InputHandler{ public void update(){ super.update(); - if(net.active() && Core.input.keyTap(Binding.player_list)){ + if(net.active() && Core.input.keyTap(Binding.player_list) && (scene.getKeyboardFocus() == null || scene.getKeyboardFocus().isDescendantOf(ui.listfrag.content))){ 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) ? 3f : 8f; - 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); } - shouldShoot = true; + if(panCam){ + 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; + } + + shouldShoot = !scene.hasMouse(); if(!scene.hasMouse()){ if(Core.input.keyDown(Binding.control) && Core.input.keyTap(Binding.select)){ @@ -556,6 +566,8 @@ public class DesktopInput extends InputHandler{ @Override public void updateState(){ + super.updateState(); + if(state.isMenu()){ droppingItem = false; mode = none; @@ -567,10 +579,18 @@ public class DesktopInput extends InputHandler{ protected void updateMovement(Unit unit){ boolean omni = !(unit instanceof WaterMovec); - boolean legs = unit.isGrounded(); + boolean ground = unit.isGrounded(); - float strafePenalty = legs ? 1f : Mathf.lerp(1f, unit.type().strafePenalty, Angles.angleDist(unit.vel().angle(), unit.rotation()) / 180f); - float speed = unit.type().speed * Mathf.lerp(1f, unit.type().canBoost ? unit.type().boostMultiplier : 1f, unit.elevation) * strafePenalty; + float strafePenalty = ground ? 1f : Mathf.lerp(1f, unit.type().strafePenalty, Angles.angleDist(unit.vel().angle(), unit.rotation()) / 180f); + float baseSpeed = unit.type().speed; + + //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.95f; + } + + float speed = baseSpeed * Mathf.lerp(1f, unit.type().canBoost ? unit.type().boostMultiplier : 1f, unit.elevation) * strafePenalty; float xa = Core.input.axis(Binding.move_x); float ya = Core.input.axis(Binding.move_y); boolean boosted = (unit instanceof Mechc && unit.isFlying()); @@ -586,8 +606,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()); } } @@ -595,8 +615,8 @@ public class DesktopInput extends InputHandler{ unit.moveAt(movement); }else{ unit.moveAt(Tmp.v2.trns(unit.rotation, movement.len())); - if(!movement.isZero() && legs){ - unit.vel.rotateTo(movement.angle(), unit.type().rotateSpeed * Time.delta); + if(!movement.isZero() && ground){ + unit.vel.rotateTo(movement.angle(), unit.type().rotateSpeed); } } @@ -609,24 +629,13 @@ public class DesktopInput extends InputHandler{ //update payload input if(unit instanceof Payloadc){ - Payloadc pay = (Payloadc)unit; - if(Core.input.keyTap(Binding.pickupCargo) && pay.payloads().size < unit.type().payloadCapacity){ - Unit target = Units.closest(player.team(), pay.x(), pay.y(), unit.type().hitsize * 2.5f, u -> u.isAI() && u.isGrounded() && u.mass() < unit.mass() && u.within(unit, u.hitSize + unit.hitSize * 1.2f)); - if(target != null){ - Call.pickupUnitPayload(player, target); - }else if(!pay.hasPayload()){ - Building tile = world.buildWorld(pay.x(), pay.y()); - - if(tile != null && tile.team() == unit.team){ - Call.pickupBlockPayload(player, tile); - } - } + if(Core.input.keyTap(Binding.pickupCargo)){ + tryPickupPayload(); } if(Core.input.keyTap(Binding.dropCargo)){ - Call.dropPayload(player, player.x, player.y); - pay.dropLastPayload(); + tryDropPayload(); } } diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index b261f72382..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 @@ -86,12 +85,12 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } @Remote(called = Loc.server, unreliable = true) - public static void transferItemTo(Item item, int amount, float x, float y, Tile tile){ - if(tile == null || tile.build == null || tile.build.items == null) return; + public static void transferItemTo(Item item, int amount, float x, float y, Building build){ + if(build == null || build.items == null) return; for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){ - Time.run(i * 3, () -> createItemTransfer(item, amount, x, y, tile, () -> {})); + Time.run(i * 3, () -> createItemTransfer(item, amount, x, y, build, () -> {})); } - tile.build.items.add(item, amount); + build.items.add(item, amount); } public static void createItemTransfer(Item item, int amount, float x, float y, Position to, Runnable done){ @@ -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,13 +121,15 @@ 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){ + if(tile.block().buildVisibility != BuildVisibility.hidden && tile.block().size <= 2 && tile.canPickup()){ pay.pickup(tile); }else{ //pick up block payload Payload current = tile.getPayload(); @@ -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; @@ -206,35 +214,34 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ ); } - @Remote(targets = Loc.both, called = Loc.server, forward = true) - public static void tileTapped(Player player, Building tile){ - if(tile == null || player == null) return; - if(net.server() && (!Units.canInteract(player, tile) || - !netServer.admins.allowAction(player, ActionType.tapTile, tile.tile(), action -> {}))) throw new ValidateException(player, "Player cannot tap a tile."); - tile.tapped(player); - Core.app.post(() -> Events.fire(new TapEvent(tile, player))); - } - @Remote(targets = Loc.both, called = Loc.both, forward = true) public static void tileConfig(Player player, Building tile, @Nullable Object value){ if(tile == null) return; if(net.server() && (!Units.canInteract(player, tile) || !netServer.admins.allowAction(player, ActionType.configure, tile.tile(), action -> action.config = value))) throw new ValidateException(player, "Player cannot configure a tile."); tile.configured(player, value); - Core.app.post(() -> Events.fire(new TapConfigEvent(tile, player, value))); + Core.app.post(() -> Events.fire(new ConfigEvent(tile, player, value))); } - @Remote(targets = Loc.both, called = Loc.server, forward = true) + @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 CoreEntity)){ + if((unit instanceof BlockUnitc && ((BlockUnitc)unit).tile() instanceof CoreBuild)){ Fx.spawn.at(player); + if(net.client()){ + control.input.controlledType = null; + } + player.clearUnit(); - player.deathTimer(60f); //for instant respawn + 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()){ @@ -243,44 +250,28 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } - @Remote(targets = Loc.both, called = Loc.server, forward = true) + @Remote(targets = Loc.both, called = Loc.both, forward = true) public static void unitClear(Player player){ //no free core teleports? - if(!player.dead() && player.unit().spawnedByCore) return; + if(player == null || !player.dead() && player.unit().spawnedByCore) return; Fx.spawn.at(player); player.clearUnit(); - player.deathTimer(60f); //for instant respawn + player.deathTimer = 61f; //for instant respawn } @Remote(targets = Loc.both, called = Loc.server, forward = true) public static void unitCommand(Player player){ - if(player.dead() || !(player.unit() instanceof Commanderc)) return; + if(player == null || player.dead() || !(player.unit() instanceof Commanderc)) return; Commanderc commander = (Commanderc)player.unit(); if(commander.isCommanding()){ commander.clearCommand(); }else{ - SquareFormation 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); - - if(units.any()) pattern.spacing = units.max(u -> u.hitSize).hitSize * 2f; - - commander.command(formation, units); } } @@ -313,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); @@ -323,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; } @@ -338,6 +329,34 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } + public void tryPickupPayload(){ + Unit unit = player.unit(); + if(!(unit instanceof Payloadc)) return; + Payloadc pay = (Payloadc)unit; + + if(pay.payloads().size >= unit.type().payloadCapacity) return; + + Unit target = Units.closest(player.team(), pay.x(), pay.y(), unit.type().hitsize * 2.5f, u -> u.isAI() && u.isGrounded() && u.mass() < unit.mass() && u.within(unit, u.hitSize + unit.hitSize * 1.2f)); + if(target != null){ + Call.pickupUnitPayload(player, target); + }else if(!pay.hasPayload()){ + Building tile = world.buildWorld(pay.x(), pay.y()); + + if(tile != null && tile.team == unit.team){ + Call.pickupBlockPayload(player, tile); + } + } + } + + public void tryDropPayload(){ + Unit unit = player.unit(); + if(!(unit instanceof Payloadc)) return; + Payloadc pay = (Payloadc)unit; + + Call.dropPayload(player, player.x, player.y); + pay.dropLastPayload(); + } + public float getMouseX(){ return Core.input.mouseX(); } @@ -355,7 +374,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } public void updateState(){ - + if(state.isMenu()){ + controlledType = null; + } } public void drawBottom(){ @@ -521,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){ @@ -748,7 +765,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ //call tapped event if(!consumed && tile.interactable(player.team())){ - Call.tileTapped(player, tile); + tile.tapped(); } //consume tap event if necessary @@ -846,7 +863,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } public @Nullable Unit selectedUnit(){ - Unit unit = Units.closest(player.team(), Core.input.mouseWorld().x, Core.input.mouseWorld().y, 40f, u -> u.isAI() && !u.deactivated); + Unit unit = Units.closest(player.team(), Core.input.mouseWorld().x, Core.input.mouseWorld().y, 40f, u -> u.isAI() && !u.deactivated()); if(unit != null){ unit.hitbox(Tmp.r1); Tmp.r1.grow(6f); @@ -856,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(); } @@ -903,7 +920,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } public boolean canShoot(){ - return block == null && !Core.scene.hasMouse() && !onConfigurable() && !isDroppingItem() && !(player.builder().updateBuilding() && player.builder().isBuilding()); + return block == null && !onConfigurable() && !isDroppingItem() && !(player.builder().updateBuilding() && player.builder().isBuilding()) && + !(player.unit() instanceof Mechc && player.unit().isFlying()); } public boolean onConfigurable(){ @@ -1076,192 +1094,4 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public int x, y, rotation; public boolean last; } - - //TODO implement all of this! - /* - protected void updateKeyboard(){ - Tile tile = world.tileWorld(x, y); - boolean canMove = !Core.scene.hasKeyboard() || ui.minimapfrag.shown(); - - isBoosting = Core.input.keyDown(Binding.dash) && !mech.flying; - - //if player is in solid block - if(tile != null && tile.solid()){ - isBoosting = true; - } - - float speed = isBoosting && !mech.flying ? mech.boostSpeed : mech.speed; - - if(mech.flying){ - //prevent strafing backwards, have a penalty for doing so - float penalty = 0.2f; //when going 180 degrees backwards, reduce speed to 0.2x - speed *= Mathf.lerp(1f, penalty, Angles.angleDist(rotation, velocity.angle()) / 180f); - } - - movement.setZero(); - - float xa = Core.input.axis(Binding.move_x); - float ya = Core.input.axis(Binding.move_y); - if(!(Core.scene.getKeyboardFocus() instanceof TextField)){ - movement.y += ya * speed; - movement.x += xa * speed; - } - - if(Core.input.keyDown(Binding.mouse_move)){ - movement.x += Mathf.clamp((Core.input.mouseX() - Core.graphics.getWidth() / 2f) * 0.005f, -1, 1) * speed; - movement.y += Mathf.clamp((Core.input.mouseY() - Core.graphics.getHeight() / 2f) * 0.005f, -1, 1) * speed; - } - - Vec2 vec = Core.input.mouseWorld(control.input.getMouseX(), control.input.getMouseY()); - pointerX = vec.x; - pointerY = vec.y; - updateShooting(); - - movement.limit(speed).scl(Time.delta()); - - if(canMove){ - velocity.add(movement.x, movement.y); - }else{ - isShooting = false; - } - float prex = x, prey = y; - updateVelocityStatus(); - moved = dst(prex, prey) > 0.001f; - - if(canMove){ - float baseLerp = mech.getRotationAlpha(this); - if(!isShooting() || !mech.faceTarget){ - if(!movement.isZero()){ - rotation = Mathf.slerpDelta(rotation, mech.flying ? velocity.angle() : movement.angle(), 0.13f * baseLerp); - } - }else{ - float angle = control.input.mouseAngle(x, y); - this.rotation = Mathf.slerpDelta(this.rotation, angle, 0.1f * baseLerp); - } - } - } - - protected void updateShooting(){ - if(!state.isEditor() && isShooting() && mech.canShoot(this)){ - weapons.update(this); - //if(!mech.turnCursor){ - //shoot forward ignoring cursor - //mech.weapon.update(this, x + Angles.trnsx(rotation, mech.weapon.targetDistance), y + Angles.trnsy(rotation, mech.weapon.targetDistance)); - //}else{ - //mech.weapon.update(this, pointerX, pointerY); - //} - } - } - - protected void updateTouch(){ - if(Units.invalidateTarget(target, this) && - !(target instanceof Building && ((Building)target).damaged() && target.isValid() && target.team() == team && mech.canHeal && dst(target) < mech.range && !(((Building)target).block instanceof BuildBlock))){ - target = null; - } - - if(state.isEditor()){ - target = null; - } - - float targetX = Core.camera.position.x, targetY = Core.camera.position.y; - float attractDst = 15f; - float speed = isBoosting && !mech.flying ? mech.boostSpeed : mech.speed; - - if(moveTarget != null && !moveTarget.dead()){ - targetX = moveTarget.getX(); - targetY = moveTarget.getY(); - boolean tapping = moveTarget instanceof Building && moveTarget.team() == team; - attractDst = 0f; - - if(tapping){ - velocity.setAngle(angleTo(moveTarget)); - } - - if(dst(moveTarget) <= 2f * Time.delta()){ - if(tapping && !dead()){ - Tile tile = ((Building)moveTarget).tile; - tile.tapped(this); - } - - moveTarget = null; - } - }else{ - moveTarget = null; - } - - movement.set((targetX - x) / Time.delta(), (targetY - y) / Time.delta()).limit(speed); - movement.setAngle(Mathf.slerp(movement.angle(), velocity.angle(), 0.05f)); - - if(dst(targetX, targetY) < attractDst){ - movement.setZero(); - } - - float expansion = 3f; - - hitbox(rect); - rect.x -= expansion; - rect.y -= expansion; - rect.width += expansion * 2f; - rect.height += expansion * 2f; - - isBoosting = collisions.overlapsTile(rect) || dst(targetX, targetY) > 85f; - - velocity.add(movement.scl(Time.delta())); - - if(velocity.len() <= 0.2f && mech.flying){ - rotation += Mathf.sin(Time.time() + id * 99, 10f, 1f); - }else if(target == null){ - rotation = Mathf.slerpDelta(rotation, velocity.angle(), velocity.len() / 10f); - } - - float lx = x, ly = y; - updateVelocityStatus(); - moved = dst(lx, ly) > 0.001f; - - if(mech.flying){ - //hovering effect - x += Mathf.sin(Time.time() + id * 999, 25f, 0.08f); - y += Mathf.cos(Time.time() + id * 999, 25f, 0.08f); - } - - //update shooting if not building, not mining and there's ammo left - if(!isBuilding() && mineTile() == null){ - - //autofire - if(target == null){ - isShooting = false; - if(Core.settings.getBool("autotarget")){ - target = Units.closestTarget(team, x, y, mech.range, u -> u.team() != Team.derelict, u -> u.team() != Team.derelict); - - if(mech.canHeal && target == null){ - target = Geometry.findClosest(x, y, indexer.getDamaged(Team.sharded)); - if(target != null && dst(target) > mech.range){ - target = null; - }else if(target != null){ - target = ((Tile)target).entity; - } - } - - if(target != null){ - mineTile(null); - } - } - }else if(target.isValid() || (target instanceof Building && ((Building)target).damaged() && target.team() == team && mech.canHeal && dst(target) < mech.range)){ - //rotate toward and shoot the target - if(mech.faceTarget){ - rotation = Mathf.slerpDelta(rotation, angleTo(target), 0.2f); - } - - Vec2 intercept = Predict.intercept(this, target, getWeapon().bullet.speed); - - pointerX = intercept.x; - pointerY = intercept.y; - - updateShooting(); - isShooting = true; - } - - } - } - */ } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index cc6a3e6fff..556d862965 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()){ @@ -532,10 +532,10 @@ public class MobileInput extends InputHandler implements GestureListener{ lineMode = true; if(mode == breaking){ - Fx.tapBlock.at(cursor.worldx(), cursor.worldy(), 1f); + if(!state.isPaused()) Fx.tapBlock.at(cursor.worldx(), cursor.worldy(), 1f); }else if(block != null){ updateLine(lineStartX, lineStartY, cursor.x, cursor.y); - Fx.tapBlock.at(cursor.worldx() + block.offset, cursor.worldy() + block.offset, block.size); + if(!state.isPaused()) Fx.tapBlock.at(cursor.worldx() + block.offset, cursor.worldy() + block.offset, block.size); } } @@ -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)){ @@ -572,9 +574,18 @@ public class MobileInput extends InputHandler implements GestureListener{ } //apply command on double tap - if(count == 2 && Mathf.within(worldx, worldy, player.unit().x, player.unit().y, player.unit().hitSize * 2f) && - player.unit() instanceof Commanderc){ - Call.unitCommand(player); + if(count == 2 && Mathf.within(worldx, worldy, player.unit().x, player.unit().y, player.unit().hitSize * 2f)){ + if(player.unit() instanceof Commanderc){ + Call.unitCommand(player); + } + + if(player.unit() instanceof Payloadc){ + if(((Payloadc)player.unit()).hasPayload()){ + tryDropPayload(); + }else{ + tryPickupPayload(); + } + } } } @@ -785,6 +796,8 @@ public class MobileInput extends InputHandler implements GestureListener{ Rect rect = Tmp.r3; UnitType type = unit.type(); + if(type == null) return; + boolean flying = type.flying; boolean omni = !(unit instanceof WaterMovec); boolean legs = unit.isGrounded(); @@ -803,7 +816,16 @@ public class MobileInput extends InputHandler implements GestureListener{ targetPos.set(Core.camera.position); float attractDst = 15f; float strafePenalty = legs ? 1f : Mathf.lerp(1f, type.strafePenalty, Angles.angleDist(unit.vel.angle(), unit.rotation) / 180f); - float speed = type.speed * Mathf.lerp(1f, type.canBoost ? type.boostMultiplier : 1f, unit.elevation) * strafePenalty; + + float baseSpeed = unit.type().speed; + + //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; + } + + float speed = baseSpeed * Mathf.lerp(1f, type.canBoost ? type.boostMultiplier : 1f, unit.elevation) * strafePenalty; float range = unit.hasWeapons() ? unit.range() : 0f; float bulletSpeed = unit.hasWeapons() ? type.weapons.first().bullet.speed : 0f; float mouseAngle = unit.angleTo(unit.aimX(), unit.aimY()); @@ -830,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; @@ -895,7 +907,7 @@ public class MobileInput extends InputHandler implements GestureListener{ player.mouseX = intercept.x; player.mouseY = intercept.y; - player.shooting = true; + player.shooting = !boosted; unit.aim(player.mouseX, player.mouseY); } 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 857551860f..793d8b2eb8 100644 --- a/core/src/mindustry/io/SaveFileReader.java +++ b/core/src/mindustry/io/SaveFileReader.java @@ -34,9 +34,11 @@ 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; + protected void region(String name, DataInput stream, CounterInputStream counter, IORunner cons) throws IOException{ counter.resetCount(); int length; @@ -90,6 +92,7 @@ public abstract class SaveFileReader{ /** Reads a chunk of some length. Use the runner for reading to catch more descriptive errors. */ public int readChunk(DataInput input, boolean isShort, IORunner runner) throws IOException{ int length = isShort ? input.readUnsignedShort() : input.readInt(); + lastRegionLength = length; runner.accept(input); return length; } diff --git a/core/src/mindustry/io/SaveVersion.java b/core/src/mindustry/io/SaveVersion.java index 0f7206f500..c3f83b30d8 100644 --- a/core/src/mindustry/io/SaveVersion.java +++ b/core/src/mindustry/io/SaveVersion.java @@ -331,6 +331,11 @@ public abstract class SaveVersion extends SaveFileReader{ for(int j = 0; j < amount; j++){ readChunk(stream, true, in -> { byte typeid = in.readByte(); + if(EntityMapping.map(typeid) == null){ + in.skipBytes(lastRegionLength - 1); + return; + } + Entityc entity = (Entityc)EntityMapping.map(typeid).get(); entity.read(Reads.get(in)); entity.add(); diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java index e7291c7df8..f5d721f2c5 100644 --- a/core/src/mindustry/io/TypeIO.java +++ b/core/src/mindustry/io/TypeIO.java @@ -49,7 +49,6 @@ public class TypeIO{ }else if(object instanceof String){ write.b((byte)4); writeString(write, (String)object); - writeString(write, (String)object); }else if(object instanceof Content){ Content map = (Content)object; write.b((byte)5); @@ -86,9 +85,16 @@ public class TypeIO{ }else if(object instanceof Building){ write.b((byte)12); write.i(((Building)object).pos()); - }else if(object instanceof LSensor){ + }else if(object instanceof LAccess){ write.b((byte)13); - write.s(((LSensor)object).ordinal()); + write.s(((LAccess)object).ordinal()); + }else if(object instanceof byte[]){ + 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()); } @@ -111,7 +117,9 @@ public class TypeIO{ case 10: return read.bool(); case 11: return read.d(); case 12: return world.build(read.i()); - case 13: return LSensor.all[read.s()]; + 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); } } @@ -303,7 +311,7 @@ public class TypeIO{ //make sure player exists if(player == null) return prev; return player; - }else if(type == 1){ + }else if(type == 1){ //formation controller int id = read.i(); return prev instanceof FormationAI ? prev : new FormationAI(Groups.unit.getByID(id), null); }else{ diff --git a/core/src/mindustry/logic/BinaryOp.java b/core/src/mindustry/logic/BinaryOp.java deleted file mode 100644 index 6ceeae492c..0000000000 --- a/core/src/mindustry/logic/BinaryOp.java +++ /dev/null @@ -1,42 +0,0 @@ -package mindustry.logic; - -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), - 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", Math::atan2); - - 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/ConditionOp.java b/core/src/mindustry/logic/ConditionOp.java new file mode 100644 index 0000000000..c85bc6f37a --- /dev/null +++ b/core/src/mindustry/logic/ConditionOp.java @@ -0,0 +1,29 @@ +package mindustry.logic; + +public enum ConditionOp{ + equal("==", (a, b) -> Math.abs(a - b) < 0.000001), + notEqual("not", (a, b) -> Math.abs(a - b) >= 0.000001), + lessThan("<", (a, b) -> a < b), + lessThanEq("<=", (a, b) -> a <= b), + greaterThan(">", (a, b) -> a > b), + greaterThanEq(">=", (a, b) -> a >= b); + + public static final ConditionOp[] all = values(); + + public final CondOpLambda function; + public final String symbol; + + ConditionOp(String symbol, CondOpLambda function){ + this.symbol = symbol; + this.function = function; + } + + @Override + public String toString(){ + return symbol; + } + + interface CondOpLambda{ + boolean get(double a, double b); + } +} diff --git a/core/src/mindustry/logic/Controllable.java b/core/src/mindustry/logic/Controllable.java new file mode 100644 index 0000000000..31baf31a1e --- /dev/null +++ b/core/src/mindustry/logic/Controllable.java @@ -0,0 +1,6 @@ +package mindustry.logic; + +/** An object that can be controlled with logic. */ +public interface Controllable{ + void control(LAccess type, double p1, double p2, double p3, double p4); +} diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java new file mode 100644 index 0000000000..2128028153 --- /dev/null +++ b/core/src/mindustry/logic/LAccess.java @@ -0,0 +1,41 @@ +package mindustry.logic; + +import arc.struct.*; + +/** Setter/getter enum for logic-controlled objects. */ +public enum LAccess{ + totalItems, + totalLiquids, + totalPower, + itemCapacity, + liquidCapacity, + powerCapacity, + powerNetStored, + powerNetCapacity, + powerNetIn, + powerNetOut, + health, + heat, + efficiency, + rotation, + x, + y, + shootX, + shootY, + shooting, + team, + + //values with parameters are considered controllable + enabled("to"), //"to" is standard for single parameter access + shoot("x", "y", "shoot"),; + + public final String[] parameters; + + public static final LAccess[] all = values(); + public static final LAccess[] senseable = Seq.select(all, t -> t.parameters.length <= 1).toArray(LAccess.class); + public static final LAccess[] controls = Seq.select(all, t -> t.parameters.length > 0).toArray(LAccess.class); + + LAccess(String... parameters){ + this.parameters = parameters; + } +} diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index b85b110f46..8ac7481dd0 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -6,7 +6,9 @@ import arc.util.ArcAnnotate.*; import mindustry.*; import mindustry.gen.*; import mindustry.logic.LExecutor.*; +import mindustry.logic.LStatements.*; import mindustry.type.*; +import mindustry.world.blocks.logic.*; /** "Compiles" a sequence of statements into instructions. */ public class LAssembler{ @@ -39,15 +41,15 @@ public class LAssembler{ //store sensor constants - for(LSensor sensor : LSensor.all){ + for(LAccess sensor : LAccess.all){ putConst("@" + sensor.name(), sensor); } } - public static LAssembler assemble(String data){ + public static LAssembler assemble(String data, int maxInstructions){ LAssembler asm = new LAssembler(); - Seq st = read(data); + Seq st = read(data, maxInstructions); asm.instructions = st.map(l -> l.build(asm)).filter(l -> l != null).toArray(LInstruction.class); return asm; @@ -64,22 +66,90 @@ public class LAssembler{ } public static Seq read(String data){ + return read(data, LogicBlock.maxInstructions); + } + + public static Seq read(String data, int max){ + //empty data check + if(data == null || data.isEmpty()) return new Seq<>(); + Seq statements = new Seq<>(); String[] lines = data.split("[;\n]+"); + int index = 0; for(String line : lines){ //comments - //if(line.startsWith("#")) continue; + if(line.startsWith("#")) continue; - String[] tokens = line.split(" "); - LStatement st = LogicIO.read(tokens); - if(st != null){ - statements.add(st); - }else{ - //attempt parsing using custom parser if a match is found - this is for mods - String first = tokens[0]; - if(customParsers.containsKey(first)){ - statements.add(customParsers.get(first).get(tokens)); + if(index++ > max) break; + + try{ + String[] arr; + + //yes, I am aware that this can be split with regex, but that's slow and even more incomprehensible + if(line.contains(" ")){ + Seq tokens = new Seq<>(); + boolean inString = false; + int lastIdx = 0; + + for(int i = 0; i < line.length() + 1; i++){ + char c = i == line.length() ? ' ' : line.charAt(i); + if(c == '"'){ + inString = !inString; + }else if(c == ' ' && !inString){ + tokens.add(line.substring(lastIdx, i)); + lastIdx = i + 1; + } + } + + arr = tokens.toArray(String.class); + }else{ + 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){ + statements.add(st); + }else{ + //attempt parsing using custom parser if a match is found - this is for mods + String first = arr[0]; + if(customParsers.containsKey(first)){ + statements.add(customParsers.get(first).get(arr)); + }else{ + //unparseable statement + statements.add(new InvalidStatement()); + } + } + }catch(Exception parseFailed){ + parseFailed.printStackTrace(); + //when parsing fails, add a dummy invalid statement + statements.add(new InvalidStatement()); } } return statements; @@ -92,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 53183e7e12..c00a69b887 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -16,78 +16,52 @@ import arc.util.*; import arc.util.ArcAnnotate.*; import mindustry.gen.*; import mindustry.graphics.*; -import mindustry.logic.LStatements.*; import mindustry.ui.*; -import mindustry.ui.dialogs.*; +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<>(); - private DragLayout statements; - private StatementElem dragging; + DragLayout statements; + StatementElem dragging; + ScrollPane pane; + float targetWidth; public LCanvas(){ - //left(); + rebuild(); + } + + /** @return if statement elements should have rows. */ + public static boolean useRows(){ + return Core.graphics.getWidth() < Scl.scl(900f) * 1.2f; + } + + public void rebuild(){ + targetWidth = useRows() ? 400f : 900f; + float s = pane != null ? pane.getScrollPercentY() : 0f; + String toLoad = statements != null ? save() : null; + + clear(); statements = new DragLayout(); - ScrollPane pane = pane(statements).grow().get(); + pane = pane(t -> { + t.center(); + t.add(statements).pad(2f).center().width(targetWidth); + }).grow().get(); pane.setClip(false); pane.setFlickScroll(false); - row(); + //load old scroll percent + Core.app.post(() -> { + pane.setScrollPercentY(s); + pane.updateVisualScroll(); + }); - button("@add", Icon.add, Styles.cleart, () -> { - BaseDialog dialog = new BaseDialog("@add"); - dialog.cont.pane(t -> { - t.background(Tex.button); - int i = 0; - for(Prov prov : LogicIO.allStatements){ - LStatement example = prov.get(); - t.button(example.name(), Styles.cleart, () -> { - add(prov.get()); - dialog.hide(); - }).size(140f, 50f); - if(++i % 2 == 0) t.row(); - } - }); - dialog.addCloseButton(); - dialog.show(); - }).height(50f).left().width(400f).marginLeft(10f); - - add(new PrintStatement()); - add(new SetStatement()); - add(new JumpStatement()); - add(new EnableStatement()); - add(new BinaryOpStatement()); - } - - private void drawGrid(){ - Draw.color(backgroundCol); - - Fill.crect(x, y, width, height); - - Draw.color(gridCol); - - float spacing = Scl.scl(50f); - int xbars = (int)(width / spacing) + 2, ybars = (int)(width / spacing) + 2; - float ox = offset.x % spacing, oy = offset.y % spacing; - - Lines.stroke(Scl.scl(3f)); - - for(int i = 0; i < xbars; i++){ - float cx = x + width/2f + (i - xbars/2) * spacing + ox; - Lines.line(cx, y, cx, y + height); + if(toLoad != null){ + load(toLoad); } - - for(int i = 0; i < ybars; i++){ - float cy = y + height/2f + (i - ybars/2) * spacing + oy; - Lines.line(0, cy, x + width, cy); - } - - Draw.reset(); } void add(LStatement statement){ @@ -102,34 +76,45 @@ public class LCanvas extends Table{ } void load(String asm){ - statements.clearChildren(); - try{ - Seq statements = LAssembler.read(asm); - for(LStatement st : statements){ - add(st); - } + Seq statements = LAssembler.read(asm); + statements.truncate(LogicBlock.maxInstructions); + this.statements.clearChildren(); + for(LStatement st : statements){ + add(st); + } - for(LStatement st : statements){ - st.setupUI(); - } - }catch(Exception e){ - //ignore errors reading asm - e.printStackTrace(); + for(LStatement st : statements){ + st.setupUI(); } 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{ - float margin = 4f; - float space = 10f, prefWidth, prefHeight; + float space = Scl.scl(10f), prefWidth, prefHeight; Seq seq = new Seq<>(); int insertPosition = 0; @@ -142,10 +127,10 @@ public class LCanvas extends Table{ float cy = 0; seq.clear(); - float totalHeight = getChildren().sumf(e -> e.getHeight() + space) + margin*2f; + float totalHeight = getChildren().sumf(e -> e.getHeight() + space); height = prefHeight = totalHeight; - width = prefWidth = 400f; + width = prefWidth = Scl.scl(targetWidth); //layout everything normally for(int i = 0; i < getChildren().size; i++){ @@ -154,8 +139,8 @@ public class LCanvas extends Table{ //ignore the dragged element if(dragging == e) continue; - e.setSize(width - margin * 2f, e.getPrefHeight()); - e.setPosition(x + margin, height- margin - cy, Align.topLeft); + e.setSize(width, e.getPrefHeight()); + e.setPosition(0, height - cy, Align.topLeft); cy += e.getPrefHeight() + space; seq.add(e); @@ -205,10 +190,10 @@ public class LCanvas extends Table{ //draw selection box indicating placement position if(dragging != null && insertPosition <= seq.size){ float shiftAmount = dragging.getHeight(); - float lastX = x + margin; - float lastY = insertPosition == 0 ? height + y - margin : seq.get(insertPosition - 1).y + y - space; + float lastX = x; + float lastY = insertPosition == 0 ? height + y : seq.get(insertPosition - 1).y + y - space; - Tex.pane.draw(lastX, lastY - shiftAmount, width - margin*2f, dragging.getHeight()); + Tex.pane.draw(lastX, lastY - shiftAmount, width, dragging.getHeight()); } super.draw(); @@ -261,7 +246,11 @@ public class LCanvas extends Table{ t.add(st.name()).style(Styles.outlineLabel).color(color).padRight(8); t.add().growX(); - t.button(Icon.cancel, Styles.onlyi, () -> { + + t.button(Icon.copy, Styles.logici, () -> { + }).padRight(6).get().tapped(() -> copy()); + + t.button(Icon.cancel, Styles.logici, () -> { remove(); dragging = null; statements.layout(); @@ -272,7 +261,13 @@ public class LCanvas extends Table{ @Override public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){ - Vec2 v = localToStageCoordinates(Tmp.v1.set(x, y)); + + if(button == KeyCode.mouseMiddle){ + copy(); + return false; + } + + Vec2 v = localToParentCoordinates(Tmp.v1.set(x, y)); lastx = v.x; lasty = v.y; dragging = StatementElem.this; @@ -283,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; @@ -311,6 +306,18 @@ public class LCanvas extends Table{ marginBottom(7); } + void copy(){ + LStatement copy = st.copy(); + if(copy != null){ + StatementElem s = new StatementElem(copy); + + statements.addChildAfter(StatementElem.this,s); + statements.layout(); + copy.elem = s; + copy.setupUI(); + } + } + @Override public void draw(){ float pad = 5f; @@ -325,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 @@ -370,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; }); } @@ -377,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; @@ -410,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(); } }); } @@ -429,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); @@ -442,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 562d899f4c..b576261f74 100644 --- a/core/src/mindustry/logic/LCategory.java +++ b/core/src/mindustry/logic/LCategory.java @@ -7,11 +7,11 @@ 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; LCategory(Color color){ this.color = color; } -} +} \ No newline at end of file diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 20bf8c904e..3b201e4809 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -5,10 +5,14 @@ import arc.util.ArcAnnotate.*; import arc.util.*; import mindustry.*; import mindustry.ctype.*; +import mindustry.entities.*; +import mindustry.game.*; import mindustry.gen.*; import mindustry.world.blocks.logic.LogicDisplay.*; +import mindustry.world.blocks.logic.MemoryBlock.*; +import mindustry.world.blocks.logic.MessageBlock.*; -import static mindustry.world.blocks.logic.LogicDisplay.*; +import static mindustry.Vars.*; public class LExecutor{ //special variables @@ -16,10 +20,17 @@ public class LExecutor{ varCounter = 0, varTime = 1; - public double[] memory = {}; + public static final int + maxGraphicsBuffer = 256, + maxDisplayBuffer = 512, + maxTextBuffer = 256; + public LInstruction[] instructions = {}; public Var[] vars = {}; + public LongSeq graphicsBuffer = new LongSeq(); + public StringBuilder textBuffer = new StringBuilder(); + public Building[] links = {}; public boolean initialized(){ return instructions != null && vars != null && instructions.length > 0; @@ -38,8 +49,8 @@ public class LExecutor{ } } - public void load(String data){ - load(LAssembler.assemble(data)); + public void load(String data, int maxInstructions){ + load(LAssembler.assemble(data, maxInstructions)); } /** Loads with a specified assembler. Resets all variables. */ @@ -65,31 +76,31 @@ public class LExecutor{ //region utility - @Nullable Building building(int index){ + public @Nullable Building building(int index){ Object o = vars[index].objval; return vars[index].isobj && o instanceof Building ? (Building)o : null; } - @Nullable Object obj(int index){ + public @Nullable Object obj(int index){ Object o = vars[index].objval; return vars[index].isobj ? o : null; } - boolean bool(int index){ + public boolean bool(int index){ Var v = vars[index]; return v.isobj ? v.objval != null : Math.abs(v.numval) >= 0.00001; } - double num(int index){ + public double num(int index){ Var v = vars[index]; - return v.isobj ? 0 : v.numval; + return v.isobj ? v.objval != null ? 1 : 0 : v.numval; } - int numi(int index){ + public int numi(int index){ return (int)num(index); } - void setnum(int index, double value){ + public void setnum(int index, double value){ Var v = vars[index]; if(v.constant) return; v.numval = value; @@ -97,7 +108,7 @@ public class LExecutor{ v.isobj = false; } - void setobj(int index, Object value){ + public void setobj(int index, Object value){ Var v = vars[index]; if(v.constant) return; v.objval = value; @@ -125,30 +136,59 @@ public class LExecutor{ void run(LExecutor exec); } - /** Enables/disables a building. */ - public static class EnableI implements LInstruction{ - public int target, value; + /** Controls a building's state. */ + public static class ControlI implements LInstruction{ + public int target; + public LAccess type = LAccess.enabled; + public int p1, p2, p3, p4; - public EnableI(int target, int value){ + public ControlI(LAccess type, int target, int p1, int p2, int p3, int p4){ + this.type = type; this.target = target; - this.value = value; + this.p1 = p1; + this.p2 = p2; + this.p3 = p3; + this.p4 = p4; } - EnableI(){} + ControlI(){} @Override public void run(LExecutor exec){ - Building b = exec.building(target); - if(b != null) b.enabled = exec.bool(value); + Object obj = exec.obj(target); + if(obj instanceof Controllable){ + Controllable cont = (Controllable)obj; + cont.control(type, exec.num(p1), exec.num(p2), exec.num(p3), exec.num(p4)); + } + } + } + + public static class GetLinkI implements LInstruction{ + public int output, index; + + public GetLinkI(int output, int index){ + this.index = index; + this.output = output; + } + + public GetLinkI(){ + } + + @Override + public void run(LExecutor exec){ + int address = exec.numi(index); + + exec.setobj(output, address >= 0 && address < exec.links.length ? exec.links[address] : null); } } public static class ReadI implements LInstruction{ - public int from, to; + public int target, position, output; - public ReadI(int from, int to){ - this.from = from; - this.to = to; + public ReadI(int target, int position, int output){ + this.target = target; + this.position = position; + this.output = output; } public ReadI(){ @@ -156,18 +196,24 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - int address = exec.numi(from); + int address = exec.numi(position); + Building from = exec.building(target); - exec.setnum(to,address < 0 || address >= exec.memory.length ? 0 : exec.memory[address]); + if(from instanceof MemoryBuild){ + MemoryBuild mem = (MemoryBuild)from; + + exec.setnum(output, address < 0 || address >= mem.memory.length ? 0 : mem.memory[address]); + } } } public static class WriteI implements LInstruction{ - public int from, to; + public int target, position, value; - public WriteI(int from, int to){ - this.from = from; - this.to = to; + public WriteI(int target, int position, int value){ + this.target = target; + this.position = position; + this.value = value; } public WriteI(){ @@ -175,10 +221,16 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - int address = exec.numi(to); + int address = exec.numi(position); + Building from = exec.building(target); + + if(from instanceof MemoryBuild){ + MemoryBuild mem = (MemoryBuild)from; + + if(address >= 0 && address < mem.memory.length){ + mem.memory[address] = exec.num(value); + } - if(address >= 0 && address < exec.memory.length){ - exec.memory[address] = exec.num(from); } } } @@ -205,8 +257,8 @@ public class LExecutor{ if(target instanceof Senseable){ if(sense instanceof Content){ output = ((Senseable)target).sense(((Content)sense)); - }else if(sense instanceof LSensor){ - output = ((Senseable)target).sense(((LSensor)sense)); + }else if(sense instanceof LAccess){ + output = ((Senseable)target).sense(((LAccess)sense)); } } @@ -215,6 +267,89 @@ public class LExecutor{ } } + public static class RadarI implements LInstruction{ + public RadarTarget target1 = RadarTarget.enemy, target2 = RadarTarget.any, target3 = RadarTarget.any; + public RadarSort sort = RadarSort.distance; + public int radar, sortOrder, output; + + //radar instructions are special in that they cache their output and only change it at fixed intervals. + //this prevents lag from spam of radar instructions + public Healthc lastTarget; + public Interval timer = new Interval(); + + static float bestValue = 0f; + static Unit best = null; + + public RadarI(RadarTarget target1, RadarTarget target2, RadarTarget target3, RadarSort sort, int radar, int sortOrder, int output){ + this.target1 = target1; + this.target2 = target2; + this.target3 = target3; + this.sort = sort; + this.radar = radar; + this.sortOrder = sortOrder; + this.output = output; + } + + public RadarI(){ + } + + @Override + public void run(LExecutor exec){ + Building target = exec.building(radar); + + int sortDir = exec.bool(sortOrder) ? 1 : -1; + + if(target instanceof Ranged){ + float range = ((Ranged)target).range(); + + Healthc targeted; + + if(timer.get(30f)){ + //if any of the targets involve enemies + boolean enemies = target1 == RadarTarget.enemy || target2 == RadarTarget.enemy || target3 == RadarTarget.enemy; + + best = null; + bestValue = 0; + + if(enemies){ + for(Team enemy : state.teams.enemiesOf(target.team)){ + find(target, range, sortDir, enemy); + } + }else{ + find(target, range, sortDir, target.team); + } + + lastTarget = targeted = best; + }else{ + targeted = lastTarget; + } + + exec.setobj(output, targeted); + }else{ + exec.setobj(output, null); + } + } + + void find(Building b, float range, int sortDir, Team team){ + Units.nearby(team, b.x, b.y, range, u -> { + if(!u.within(b, range)) return; + + boolean valid = + target1.func.get(b.team, u) && + target2.func.get(b.team, u) && + target3.func.get(b.team, u); + + if(!valid) return; + + float val = sort.func.get(b, u) * sortDir; + if(val > bestValue || best == null){ + bestValue = val; + best = u; + } + }); + } + } + public static class SetI implements LInstruction{ public int from, to; @@ -243,40 +378,26 @@ public class LExecutor{ } } - public static class BinaryOpI implements LInstruction{ - public BinaryOp op; + 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; - 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))); + } } } @@ -288,12 +409,17 @@ public class LExecutor{ } } - public static class DisplayI implements LInstruction{ + public static class NoopI implements LInstruction{ + @Override + public void run(LExecutor exec){} + } + + public static class DrawI implements LInstruction{ public byte type; public int target; - public int x, y, p1, p2, p3; + public int x, y, p1, p2, p3, p4; - public DisplayI(byte type, int target, int x, int y, int p1, int p2, int p3){ + public DrawI(byte type, int target, int x, int y, int p1, int p2, int p3, int p4){ this.type = type; this.target = target; this.x = x; @@ -301,9 +427,10 @@ public class LExecutor{ this.p1 = p1; this.p2 = p2; this.p3 = p3; + this.p4 = p4; } - public DisplayI(){ + public DrawI(){ } @Override @@ -311,102 +438,122 @@ public class LExecutor{ //graphics on headless servers are useless. if(Vars.headless) return; - if(type == commandFlush){ - Building build = exec.building(target); - if(build instanceof LogicDisplayEntity){ - //flush is a special command - LogicDisplayEntity d = (LogicDisplayEntity)build; + //add graphics calls, cap graphics buffer size + if(exec.graphicsBuffer.size < maxGraphicsBuffer){ + exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), exec.numi(p1), exec.numi(p2), exec.numi(p3), exec.numi(p4))); + } + } + } + + public static class DrawFlushI implements LInstruction{ + public int target; + + public DrawFlushI(int target){ + this.target = target; + } + + public DrawFlushI(){ + } + + @Override + public void run(LExecutor exec){ + //graphics on headless servers are useless. + if(Vars.headless) return; + + Building build = exec.building(target); + if(build instanceof LogicDisplayBuild){ + LogicDisplayBuild d = (LogicDisplayBuild)build; + 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(); - } - - }else{ - //add graphics calls, cap graphics buffer size - if(exec.graphicsBuffer.size < 1024){ - exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), exec.numi(p1), exec.numi(p2), exec.numi(p3))); } + exec.graphicsBuffer.clear(); } } } public static class PrintI implements LInstruction{ - private static final StringBuilder out = new StringBuilder(); + public int value; - public int value, target; - - public PrintI(int value, int target){ + public PrintI(int value){ this.value = value; - this.target = target; } PrintI(){} @Override public void run(LExecutor exec){ - Building b = exec.building(target); - if(b == null) return; + if(exec.textBuffer.length() >= maxTextBuffer) return; //this should avoid any garbage allocation Var v = exec.vars[value]; if(v.isobj && value != 0){ - if(v.objval instanceof String){ - b.handleString(v.objval); - }else if(v.objval == null){ - b.handleString("null"); - }else{ - b.handleString("[object]"); - } + String strValue = v.objval instanceof String ? (String)v.objval : v.objval == null ? "null" : + v.objval instanceof Content ? "[content]" : + v.objval instanceof Building ? "[building]" : + v.objval instanceof Unit ? "[unit]" : + "[object]"; + + exec.textBuffer.append(strValue); }else{ - out.setLength(0); //display integer version when possible if(Math.abs(v.numval - (long)v.numval) < 0.000001){ - out.append((long)v.numval); + exec.textBuffer.append((long)v.numval); }else{ - out.append(v.numval); + exec.textBuffer.append(v.numval); } - b.handleString(out); + } + } + } + + public static class PrintFlushI implements LInstruction{ + public int target; + + public PrintFlushI(int target){ + this.target = target; + } + + public PrintFlushI(){ + } + + @Override + public void run(LExecutor exec){ + + Building build = exec.building(target); + if(build instanceof MessageBuild){ + MessageBuild d = (MessageBuild)build; + + d.message.setLength(0); + d.message.append(exec.textBuffer, 0, Math.min(exec.textBuffer.length(), maxTextBuffer)); + + exec.textBuffer.setLength(0); } } } public static class JumpI implements LInstruction{ - public int cond, to; + public ConditionOp op = ConditionOp.notEqual; + public int value, compare, address; - public JumpI(int cond, int to){ - this.cond = cond; - this.to = to; + public JumpI(ConditionOp op, int value, int compare, int address){ + this.op = op; + this.value = value; + this.compare = compare; + this.address = address; } - JumpI(){} + public JumpI(){ + } @Override public void run(LExecutor exec){ - if(to != -1 && exec.bool(cond)){ - exec.vars[varCounter].numval = to; + if(address != -1 && op.function.get(exec.num(value), exec.num(compare))){ + exec.vars[varCounter].numval = address; } } } - public static class GetBuildI implements LInstruction{ - public int dest; - public int x, y; - - public GetBuildI(int dest, int x, int y){ - this.dest = dest; - this.x = x; - this.y = y; - } - - GetBuildI(){} - - @Override - public void run(LExecutor exec){ - exec.setobj(dest, Vars.world.build(exec.numi(x), exec.numi(y))); - } - } - //endregion } diff --git a/core/src/mindustry/logic/LSensor.java b/core/src/mindustry/logic/LSensor.java deleted file mode 100644 index 2551ad1254..0000000000 --- a/core/src/mindustry/logic/LSensor.java +++ /dev/null @@ -1,15 +0,0 @@ -package mindustry.logic; - -public enum LSensor{ - totalItems, - totalLiquids, - totalPower, - powerNetStored, - powerNetIn, - powerNetOut, - health, - heat, - efficiency; - - public static final LSensor[] all = values(); -} diff --git a/core/src/mindustry/logic/LStatement.java b/core/src/mindustry/logic/LStatement.java index 36508ee21e..f7e39c6088 100644 --- a/core/src/mindustry/logic/LStatement.java +++ b/core/src/mindustry/logic/LStatement.java @@ -7,6 +7,7 @@ import arc.scene.*; import arc.scene.actions.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; import arc.util.ArcAnnotate.*; import mindustry.gen.*; @@ -24,6 +25,13 @@ public abstract class LStatement{ public abstract LCategory category(); public abstract LInstruction build(LAssembler builder); + public LStatement copy(){ + StringBuilder build = new StringBuilder(); + write(build); + Seq read = LAssembler.read(build.toString()); + return read.size == 0 ? null : read.first(); + } + //protected methods are only for internal UI layout utilities protected Cell field(Table table, String value, Cons setter){ @@ -40,6 +48,12 @@ public abstract class LStatement{ field(table, value, setter).width(85f); } + protected void row(Table table){ + if(LCanvas.useRows()){ + table.row(); + } + } + protected void showSelect(Button b, T[] values, T current, Cons getter, int cols, Cons sizer){ showSelectTable(b, (t, hide) -> { ButtonGroup