diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 50fa001df5..419e88052a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -13,11 +13,13 @@ assignees: '' **Issue**: *Explain your issue in detail.* -**Steps to reproduce**: *How you happened across the issue, and what you were doing at the time.* +**Steps to reproduce**: *How you happened across the issue, and what exactly you did to make the bug happen.* -**Link to mod(s) used, if applicable**: *The mod repositories or zip files that are related to the issue.* +**Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.* -**Crash report, if applicable**: *The contents of relevant crash report files.* +**Save file**: *The save file you were playing on when the bug happened, if applicable.* + +**Crash report**: *The contents of relevant crash report files. REQUIRED if you are reporting a crash.* --- diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe38a3a925..58eed0c4fd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -68,3 +68,6 @@ If something needs to be encapsulated in the future, IntelliJ can handle it with #### Do not create methods unless necessary. Unless a block of code is very large or used in more than 1-2 places, don't split it up into a separate method. Making unnecessary methods only creates confusion, and may slightly decrease performance. + +## Other Notes +If you would like your name to appear in the game's credits, add it to the [list of contributors](https://github.com/Anuken/Mindustry/blob/master/core/assets/contributors) as part of your PR. diff --git a/README.md b/README.md index 7f0e6208bc..8006e6e11a 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ See [CONTRIBUTING](CONTRIBUTING.md). ### Building -Bleeding-edge live builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases). Old builds might still be on [jenkins](https://jenkins.hellomouse.net/job/mindustry/). +Bleeding-edge builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases). If you'd rather compile on your own, follow these instructions. First, make sure you have [JDK 14](https://adoptopenjdk.net/) installed. Open a terminal in the root directory, `cd` to the Mindustry folder and run the following commands: @@ -39,9 +39,10 @@ Server builds are bundled with each released build (in Releases). If you'd rathe #### Android 1. Install the Android SDK [here.](https://developer.android.com/studio#downloads) Make sure you're downloading the "Command line tools only", as Android Studio is not required. -2. Create a file named `local.properties` inside the Mindustry directory, with its contents looking like this: `sdk.dir=`. For example, if you're on Windows and installed the tools to C:\\tools, your local.properties would contain `sdk.dir=C:\\tools` (*note the double backslashes are required instead of single ones!*). +2. Set the `ANDROID_HOME` environment variable to point to your unzipped Android SDK directory. 3. Run `gradlew android:assembleDebug` (or `./gradlew` if on linux/mac). This will create an unsigned APK in `android/build/outputs/apk`. -4. (Optional) To debug the application on a connected phone, do `gradlew android:installDebug android:run`. It is **highly recommended** to use IntelliJ for this instead. + +To debug the application on a connected phone, run `gradlew android:installDebug android:run`. ##### Troubleshooting diff --git a/android/src/mindustry/android/AndroidRhinoContext.java b/android/src/mindustry/android/AndroidRhinoContext.java index c4468ecead..d3e80c7427 100644 --- a/android/src/mindustry/android/AndroidRhinoContext.java +++ b/android/src/mindustry/android/AndroidRhinoContext.java @@ -41,6 +41,11 @@ public class AndroidRhinoContext{ public Object getDynamicSecurityDomain(Object o){ return null; } + + @Override + public Object callWithDomain(Object o, Context context, Callable callable, Scriptable scriptable, Scriptable scriptable1, Object[] objects){ + return null; + } }); AndroidContextFactory factory; diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java b/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java index 341b26df3a..05872c155b 100644 --- a/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java +++ b/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java @@ -147,6 +147,12 @@ public class EntityIO{ io(field.type, ""); + //just assign the two values so jumping does not occur on de-possession + if(sf){ + st(field.name + lastSuf + " = this." + field.name); + st(field.name + targetSuf + " = this." + field.name); + } + econt(); } } diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java index 4de2254f7f..8516e03b05 100644 --- a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java +++ b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java @@ -468,6 +468,17 @@ public class EntityProcess extends BaseProcessor{ mbuilder.addStatement("$L = $L", field.name(), field.name() + EntityIO.targetSuf); } } + + //SPECIAL CASE: method to snap to current position so interpolation doesn't go wild + if(first.name().equals("snapInterpolation")){ + mbuilder.addStatement("updateSpacing = 16"); + mbuilder.addStatement("lastUpdated = $T.millis()", Time.class); + for(Svar field : syncedFields){ + //reset last+current state to target position + mbuilder.addStatement("$L = $L", field.name() + EntityIO.lastSuf, field.name()); + mbuilder.addStatement("$L = $L", field.name() + EntityIO.targetSuf, field.name()); + } + } } for(Smethod elem : entry.value){ @@ -631,10 +642,10 @@ public class EntityProcess extends BaseProcessor{ //build mapping class for sync IDs TypeSpec.Builder idBuilder = TypeSpec.classBuilder("EntityMapping").addModifiers(Modifier.PUBLIC) - .addField(FieldSpec.builder(TypeName.get(Prov[].class), "idMap", Modifier.PRIVATE, Modifier.STATIC).initializer("new Prov[256]").build()) + .addField(FieldSpec.builder(TypeName.get(Prov[].class), "idMap", Modifier.PUBLIC, Modifier.STATIC).initializer("new Prov[256]").build()) .addField(FieldSpec.builder(ParameterizedTypeName.get(ClassName.get(ObjectMap.class), tname(String.class), tname(Prov.class)), - "nameMap", Modifier.PRIVATE, Modifier.STATIC).initializer("new ObjectMap<>()").build()) + "nameMap", Modifier.PUBLIC, Modifier.STATIC).initializer("new ObjectMap<>()").build()) .addMethod(MethodSpec.methodBuilder("map").addModifiers(Modifier.PUBLIC, Modifier.STATIC) .returns(TypeName.get(Prov.class)).addParameter(int.class, "id").addStatement("return idMap[id]").build()) .addMethod(MethodSpec.methodBuilder("map").addModifiers(Modifier.PUBLIC, Modifier.STATIC) diff --git a/annotations/src/main/resources/classids.properties b/annotations/src/main/resources/classids.properties index 288f09bdbe..11943b3c8e 100644 --- a/annotations/src/main/resources/classids.properties +++ b/annotations/src/main/resources/classids.properties @@ -16,6 +16,7 @@ mindustry.entities.comp.PlayerComp=12 mindustry.entities.comp.PuddleComp=13 mindustry.type.Weather.WeatherStateComp=14 mindustry.world.blocks.campaign.LaunchPad.LaunchPayloadComp=15 +mindustry.world.blocks.defense.ForceProjector.ForceDrawComp=22 mono=16 nova=17 poly=18 diff --git a/annotations/src/main/resources/revisions/Bullet/0.json b/annotations/src/main/resources/revisions/Bullet/0.json index f9e8a830d5..df860d9a0f 100644 --- a/annotations/src/main/resources/revisions/Bullet/0.json +++ b/annotations/src/main/resources/revisions/Bullet/0.json @@ -1 +1 @@ -{fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:mindustry.gen.Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:fdata,type:float,size:4},{name:lifetime,type:float,size:4},{name:owner,type:mindustry.gen.Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{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/Bullet/1.json b/annotations/src/main/resources/revisions/Bullet/1.json deleted file mode 100644 index bdb86498f2..0000000000 --- a/annotations/src/main/resources/revisions/Bullet/1.json +++ /dev/null @@ -1 +0,0 @@ -{version:1,fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{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/Bullet/2.json b/annotations/src/main/resources/revisions/Bullet/2.json deleted file mode 100644 index b28c91f9a7..0000000000 --- a/annotations/src/main/resources/revisions/Bullet/2.json +++ /dev/null @@ -1 +0,0 @@ -{version:2,fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:mindustry.gen.Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{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/Bullet/3.json b/annotations/src/main/resources/revisions/Bullet/3.json deleted file mode 100644 index 012dbdff7e..0000000000 --- a/annotations/src/main/resources/revisions/Bullet/3.json +++ /dev/null @@ -1 +0,0 @@ -{version:3,fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{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/Bullet/4.json b/annotations/src/main/resources/revisions/Bullet/4.json deleted file mode 100644 index 9f4b9aa7fa..0000000000 --- a/annotations/src/main/resources/revisions/Bullet/4.json +++ /dev/null @@ -1 +0,0 @@ -{version:4,fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{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/Bullet/5.json b/annotations/src/main/resources/revisions/Bullet/5.json deleted file mode 100644 index f6224ade39..0000000000 --- a/annotations/src/main/resources/revisions/Bullet/5.json +++ /dev/null @@ -1 +0,0 @@ -{version:5,fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{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/ForceDraw/0.json b/annotations/src/main/resources/revisions/ForceDraw/0.json new file mode 100644 index 0000000000..9a76fbe28e --- /dev/null +++ b/annotations/src/main/resources/revisions/ForceDraw/0.json @@ -0,0 +1 @@ +{fields:[{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 20e2b7f0dd..ce7c8060b2 100644 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,7 @@ allprojects{ if(!project.hasProperty("versionType")) versionType = 'official' appName = 'Mindustry' steamworksVersion = '891ed912791e01fe9ee6237a6497e5212b85c256' - rhinoVersion = 'eeb327d141146663ff3924bd20d2a5da8a6439cc' + rhinoVersion = 'bf4150f7add42d26c98e33c24acfd94fa87be2e1' loadVersionProps = { return new Properties().with{p -> p.load(file('../core/assets/version.properties').newReader()); return p } diff --git a/core/assets-raw/sprites/blocks/environment/ignarock1.png b/core/assets-raw/sprites/blocks/environment/basalt1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/ignarock1.png rename to core/assets-raw/sprites/blocks/environment/basalt1.png diff --git a/core/assets-raw/sprites/blocks/environment/ignarock2.png b/core/assets-raw/sprites/blocks/environment/basalt2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/ignarock2.png rename to core/assets-raw/sprites/blocks/environment/basalt2.png diff --git a/core/assets-raw/sprites/blocks/environment/ignarock3.png b/core/assets-raw/sprites/blocks/environment/basalt3.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/ignarock3.png rename to core/assets-raw/sprites/blocks/environment/basalt3.png diff --git a/core/assets-raw/sprites/blocks/environment/dacite-wall-large.png b/core/assets-raw/sprites/blocks/environment/dacite-wall-large.png new file mode 100644 index 0000000000..93e88e2888 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dacite-wall-large.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dacite-wall1.png b/core/assets-raw/sprites/blocks/environment/dacite-wall1.png new file mode 100644 index 0000000000..3f0f70e0a2 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dacite-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dacite-wall2.png b/core/assets-raw/sprites/blocks/environment/dacite-wall2.png new file mode 100644 index 0000000000..07dd33ae40 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dacite-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dacite1.png b/core/assets-raw/sprites/blocks/environment/dacite1.png new file mode 100644 index 0000000000..07a7a19ece Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dacite1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dacite2.png b/core/assets-raw/sprites/blocks/environment/dacite2.png new file mode 100644 index 0000000000..f4e2ebe0d9 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dacite2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dacite3.png b/core/assets-raw/sprites/blocks/environment/dacite3.png new file mode 100644 index 0000000000..1580a22f07 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dacite3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dirt-wall-large.png b/core/assets-raw/sprites/blocks/environment/dirt-wall-large.png new file mode 100644 index 0000000000..649410e18a Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dirt-wall-large.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dirt-wall1.png b/core/assets-raw/sprites/blocks/environment/dirt-wall1.png new file mode 100644 index 0000000000..6250affd44 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dirt-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dirt-wall2.png b/core/assets-raw/sprites/blocks/environment/dirt-wall2.png new file mode 100644 index 0000000000..4840a10535 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dirt-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dirt1.png b/core/assets-raw/sprites/blocks/environment/dirt1.png new file mode 100644 index 0000000000..1f2b788140 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dirt1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dirt2.png b/core/assets-raw/sprites/blocks/environment/dirt2.png new file mode 100644 index 0000000000..40e84864b8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dirt2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dirt3.png b/core/assets-raw/sprites/blocks/environment/dirt3.png new file mode 100644 index 0000000000..0bf0e1c7e8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/dirt3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/dunerocks-large.png b/core/assets-raw/sprites/blocks/environment/dune-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/dunerocks-large.png rename to core/assets-raw/sprites/blocks/environment/dune-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/dunerocks1.png b/core/assets-raw/sprites/blocks/environment/dune-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/dunerocks1.png rename to core/assets-raw/sprites/blocks/environment/dune-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/dunerocks2.png b/core/assets-raw/sprites/blocks/environment/dune-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/dunerocks2.png rename to core/assets-raw/sprites/blocks/environment/dune-wall2.png diff --git a/core/assets-raw/sprites/blocks/environment/holostone1.png b/core/assets-raw/sprites/blocks/environment/holostone1.png deleted file mode 100644 index 4f25d079a3..0000000000 Binary files a/core/assets-raw/sprites/blocks/environment/holostone1.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/environment/holostone2.png b/core/assets-raw/sprites/blocks/environment/holostone2.png deleted file mode 100644 index e226a0497b..0000000000 Binary files a/core/assets-raw/sprites/blocks/environment/holostone2.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/environment/holostone3.png b/core/assets-raw/sprites/blocks/environment/holostone3.png deleted file mode 100644 index c11a6ce03e..0000000000 Binary files a/core/assets-raw/sprites/blocks/environment/holostone3.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/environment/icerocks-large.png b/core/assets-raw/sprites/blocks/environment/ice-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/icerocks-large.png rename to core/assets-raw/sprites/blocks/environment/ice-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/icerocks1.png b/core/assets-raw/sprites/blocks/environment/ice-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/icerocks1.png rename to core/assets-raw/sprites/blocks/environment/ice-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/icerocks2.png b/core/assets-raw/sprites/blocks/environment/ice-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/icerocks2.png rename to core/assets-raw/sprites/blocks/environment/ice-wall2.png diff --git a/core/assets-raw/sprites/blocks/environment/saltrocks-large.png b/core/assets-raw/sprites/blocks/environment/salt-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/saltrocks-large.png rename to core/assets-raw/sprites/blocks/environment/salt-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/saltrocks1.png b/core/assets-raw/sprites/blocks/environment/salt-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/saltrocks1.png rename to core/assets-raw/sprites/blocks/environment/salt-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/saltrocks2.png b/core/assets-raw/sprites/blocks/environment/salt-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/saltrocks2.png rename to core/assets-raw/sprites/blocks/environment/salt-wall2.png diff --git a/core/assets-raw/sprites/blocks/environment/sandrocks-large.png b/core/assets-raw/sprites/blocks/environment/sand-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sandrocks-large.png rename to core/assets-raw/sprites/blocks/environment/sand-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/sandrocks1.png b/core/assets-raw/sprites/blocks/environment/sand-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sandrocks1.png rename to core/assets-raw/sprites/blocks/environment/sand-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/sandrocks2.png b/core/assets-raw/sprites/blocks/environment/sand-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sandrocks2.png rename to core/assets-raw/sprites/blocks/environment/sand-wall2.png diff --git a/core/assets-raw/sprites/blocks/environment/shalerocks-large.png b/core/assets-raw/sprites/blocks/environment/shale-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/shalerocks-large.png rename to core/assets-raw/sprites/blocks/environment/shale-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/shalerocks1.png b/core/assets-raw/sprites/blocks/environment/shale-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/shalerocks1.png rename to core/assets-raw/sprites/blocks/environment/shale-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/shalerocks2.png b/core/assets-raw/sprites/blocks/environment/shale-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/shalerocks2.png rename to core/assets-raw/sprites/blocks/environment/shale-wall2.png diff --git a/core/assets-raw/sprites/blocks/environment/snowrocks-large.png b/core/assets-raw/sprites/blocks/environment/snow-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/snowrocks-large.png rename to core/assets-raw/sprites/blocks/environment/snow-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/snowrocks1.png b/core/assets-raw/sprites/blocks/environment/snow-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/snowrocks1.png rename to core/assets-raw/sprites/blocks/environment/snow-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/snowrocks2.png b/core/assets-raw/sprites/blocks/environment/snow-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/snowrocks2.png rename to core/assets-raw/sprites/blocks/environment/snow-wall2.png diff --git a/core/assets-raw/sprites/blocks/environment/sporerocks-large.png b/core/assets-raw/sprites/blocks/environment/spore-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sporerocks-large.png rename to core/assets-raw/sprites/blocks/environment/spore-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/sporerocks1.png b/core/assets-raw/sprites/blocks/environment/spore-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sporerocks1.png rename to core/assets-raw/sprites/blocks/environment/spore-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/sporerocks2.png b/core/assets-raw/sprites/blocks/environment/spore-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/sporerocks2.png rename to core/assets-raw/sprites/blocks/environment/spore-wall2.png diff --git a/core/assets-raw/sprites/blocks/environment/rocks-large.png b/core/assets-raw/sprites/blocks/environment/stone-wall-large.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/rocks-large.png rename to core/assets-raw/sprites/blocks/environment/stone-wall-large.png diff --git a/core/assets-raw/sprites/blocks/environment/rocks1.png b/core/assets-raw/sprites/blocks/environment/stone-wall1.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/rocks1.png rename to core/assets-raw/sprites/blocks/environment/stone-wall1.png diff --git a/core/assets-raw/sprites/blocks/environment/rocks2.png b/core/assets-raw/sprites/blocks/environment/stone-wall2.png similarity index 100% rename from core/assets-raw/sprites/blocks/environment/rocks2.png rename to core/assets-raw/sprites/blocks/environment/stone-wall2.png diff --git a/core/assets-raw/sprites/blocks/power/turbine-generator-cap.png b/core/assets-raw/sprites/blocks/power/steam-generator-cap.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/turbine-generator-cap.png rename to core/assets-raw/sprites/blocks/power/steam-generator-cap.png diff --git a/core/assets-raw/sprites/blocks/power/turbine-generator-liquid.png b/core/assets-raw/sprites/blocks/power/steam-generator-liquid.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/turbine-generator-liquid.png rename to core/assets-raw/sprites/blocks/power/steam-generator-liquid.png diff --git a/core/assets-raw/sprites/blocks/power/turbine-generator-top.png b/core/assets-raw/sprites/blocks/power/steam-generator-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/turbine-generator-top.png rename to core/assets-raw/sprites/blocks/power/steam-generator-top.png diff --git a/core/assets-raw/sprites/blocks/power/turbine-generator-turbine0.png b/core/assets-raw/sprites/blocks/power/steam-generator-turbine0.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/turbine-generator-turbine0.png rename to core/assets-raw/sprites/blocks/power/steam-generator-turbine0.png diff --git a/core/assets-raw/sprites/blocks/power/turbine-generator-turbine1.png b/core/assets-raw/sprites/blocks/power/steam-generator-turbine1.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/turbine-generator-turbine1.png rename to core/assets-raw/sprites/blocks/power/steam-generator-turbine1.png diff --git a/core/assets-raw/sprites/blocks/power/turbine-generator.png b/core/assets-raw/sprites/blocks/power/steam-generator.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/turbine-generator.png rename to core/assets-raw/sprites/blocks/power/steam-generator.png diff --git a/core/assets-raw/sprites/blocks/props/rock1.png b/core/assets-raw/sprites/blocks/props/boulder1.png similarity index 100% rename from core/assets-raw/sprites/blocks/props/rock1.png rename to core/assets-raw/sprites/blocks/props/boulder1.png diff --git a/core/assets-raw/sprites/blocks/props/rock2.png b/core/assets-raw/sprites/blocks/props/boulder2.png similarity index 100% rename from core/assets-raw/sprites/blocks/props/rock2.png rename to core/assets-raw/sprites/blocks/props/boulder2.png diff --git a/core/assets-raw/sprites/blocks/props/dacite-boulder1.png b/core/assets-raw/sprites/blocks/props/dacite-boulder1.png new file mode 100644 index 0000000000..ffddeef34b Binary files /dev/null and b/core/assets-raw/sprites/blocks/props/dacite-boulder1.png differ diff --git a/core/assets-raw/sprites/blocks/props/dacite-boulder2.png b/core/assets-raw/sprites/blocks/props/dacite-boulder2.png new file mode 100644 index 0000000000..aa258941cd Binary files /dev/null and b/core/assets-raw/sprites/blocks/props/dacite-boulder2.png differ diff --git a/core/assets-raw/sprites/blocks/props/snowrock1.png b/core/assets-raw/sprites/blocks/props/snow-boulder1.png similarity index 100% rename from core/assets-raw/sprites/blocks/props/snowrock1.png rename to core/assets-raw/sprites/blocks/props/snow-boulder1.png diff --git a/core/assets-raw/sprites/blocks/props/snowrock2.png b/core/assets-raw/sprites/blocks/props/snow-boulder2.png similarity index 100% rename from core/assets-raw/sprites/blocks/props/snowrock2.png rename to core/assets-raw/sprites/blocks/props/snow-boulder2.png diff --git a/core/assets-raw/sprites/blocks/units/command-center.png b/core/assets-raw/sprites/blocks/units/command-center.png index 1a829c1cfd..ac9aa45594 100644 Binary files a/core/assets-raw/sprites/blocks/units/command-center.png and b/core/assets-raw/sprites/blocks/units/command-center.png differ diff --git a/core/assets-raw/sprites/units/bryde.png b/core/assets-raw/sprites/units/bryde.png index b362cb5f17..5191b39b4a 100644 Binary files a/core/assets-raw/sprites/units/bryde.png and b/core/assets-raw/sprites/units/bryde.png differ diff --git a/core/assets-raw/sprites/units/chaos-array-cell.png b/core/assets-raw/sprites/units/chaos-array-cell.png deleted file mode 100644 index 2b55fff00e..0000000000 Binary files a/core/assets-raw/sprites/units/chaos-array-cell.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/chaos-array.png b/core/assets-raw/sprites/units/chaos-array.png deleted file mode 100644 index 78c84e44c6..0000000000 Binary files a/core/assets-raw/sprites/units/chaos-array.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/eradicator-base.png b/core/assets-raw/sprites/units/eradicator-base.png deleted file mode 100644 index 57b1c796ba..0000000000 Binary files a/core/assets-raw/sprites/units/eradicator-base.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/eradicator-cell.png b/core/assets-raw/sprites/units/eradicator-cell.png deleted file mode 100644 index c527cdd01a..0000000000 Binary files a/core/assets-raw/sprites/units/eradicator-cell.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/eradicator-leg.png b/core/assets-raw/sprites/units/eradicator-leg.png deleted file mode 100644 index aeeaaf98f3..0000000000 Binary files a/core/assets-raw/sprites/units/eradicator-leg.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/eradicator.png b/core/assets-raw/sprites/units/eradicator.png deleted file mode 100644 index 1203ed33b3..0000000000 Binary files a/core/assets-raw/sprites/units/eradicator.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/reign-base.png b/core/assets-raw/sprites/units/reign-base.png new file mode 100644 index 0000000000..6d47effdc9 Binary files /dev/null and b/core/assets-raw/sprites/units/reign-base.png differ diff --git a/core/assets-raw/sprites/units/reign-cell.png b/core/assets-raw/sprites/units/reign-cell.png new file mode 100644 index 0000000000..28aea20f24 Binary files /dev/null and b/core/assets-raw/sprites/units/reign-cell.png differ diff --git a/core/assets-raw/sprites/units/reign-leg.png b/core/assets-raw/sprites/units/reign-leg.png new file mode 100644 index 0000000000..f4c8c27e6a Binary files /dev/null and b/core/assets-raw/sprites/units/reign-leg.png differ diff --git a/core/assets-raw/sprites/units/reign.png b/core/assets-raw/sprites/units/reign.png new file mode 100644 index 0000000000..6a3d838582 Binary files /dev/null and b/core/assets-raw/sprites/units/reign.png differ diff --git a/core/assets-raw/sprites/units/chaos-array-base.png b/core/assets-raw/sprites/units/scepter-base.png similarity index 100% rename from core/assets-raw/sprites/units/chaos-array-base.png rename to core/assets-raw/sprites/units/scepter-base.png diff --git a/core/assets-raw/sprites/units/scepter-cell.png b/core/assets-raw/sprites/units/scepter-cell.png new file mode 100644 index 0000000000..86aec9412d Binary files /dev/null and b/core/assets-raw/sprites/units/scepter-cell.png differ diff --git a/core/assets-raw/sprites/units/chaos-array-leg.png b/core/assets-raw/sprites/units/scepter-leg.png similarity index 100% rename from core/assets-raw/sprites/units/chaos-array-leg.png rename to core/assets-raw/sprites/units/scepter-leg.png diff --git a/core/assets-raw/sprites/units/scepter.png b/core/assets-raw/sprites/units/scepter.png new file mode 100644 index 0000000000..5d1ae6f59b Binary files /dev/null and b/core/assets-raw/sprites/units/scepter.png differ diff --git a/core/assets-raw/sprites/units/toxopid-cannon.png b/core/assets-raw/sprites/units/toxopid-cannon.png new file mode 100644 index 0000000000..535ef3b5d7 Binary files /dev/null and b/core/assets-raw/sprites/units/toxopid-cannon.png differ diff --git a/core/assets-raw/sprites/units/toxopid-cell.png b/core/assets-raw/sprites/units/toxopid-cell.png new file mode 100644 index 0000000000..b58dba388d Binary files /dev/null and b/core/assets-raw/sprites/units/toxopid-cell.png differ diff --git a/core/assets-raw/sprites/units/toxopid-foot.png b/core/assets-raw/sprites/units/toxopid-foot.png new file mode 100644 index 0000000000..fffa78f2a6 Binary files /dev/null and b/core/assets-raw/sprites/units/toxopid-foot.png differ diff --git a/core/assets-raw/sprites/units/toxopid-joint-base.png b/core/assets-raw/sprites/units/toxopid-joint-base.png new file mode 100644 index 0000000000..921a27e55c Binary files /dev/null and b/core/assets-raw/sprites/units/toxopid-joint-base.png differ diff --git a/core/assets-raw/sprites/units/toxopid-leg-base.png b/core/assets-raw/sprites/units/toxopid-leg-base.png new file mode 100644 index 0000000000..8684da9f26 Binary files /dev/null and b/core/assets-raw/sprites/units/toxopid-leg-base.png differ diff --git a/core/assets-raw/sprites/units/toxopid-leg.png b/core/assets-raw/sprites/units/toxopid-leg.png new file mode 100644 index 0000000000..c8b18eb794 Binary files /dev/null and b/core/assets-raw/sprites/units/toxopid-leg.png differ diff --git a/core/assets-raw/sprites/units/toxopid.png b/core/assets-raw/sprites/units/toxopid.png new file mode 100644 index 0000000000..a84e453f40 Binary files /dev/null and b/core/assets-raw/sprites/units/toxopid.png differ diff --git a/core/assets-raw/sprites/units/weapons/chaos.png b/core/assets-raw/sprites/units/weapons/chaos.png deleted file mode 100644 index 442d5b0417..0000000000 Binary files a/core/assets-raw/sprites/units/weapons/chaos.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/weapons/eradication.png b/core/assets-raw/sprites/units/weapons/eradication.png deleted file mode 100644 index 231158b058..0000000000 Binary files a/core/assets-raw/sprites/units/weapons/eradication.png and /dev/null differ diff --git a/core/assets-raw/sprites/units/weapons/reign-weapon.png b/core/assets-raw/sprites/units/weapons/reign-weapon.png new file mode 100644 index 0000000000..bfe5c921fd Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/reign-weapon.png differ diff --git a/core/assets-raw/sprites/units/weapons/scepter-weapon.png b/core/assets-raw/sprites/units/weapons/scepter-weapon.png new file mode 100644 index 0000000000..07ff2b1629 Binary files /dev/null and b/core/assets-raw/sprites/units/weapons/scepter-weapon.png differ diff --git a/core/assets/baseparts/1591385575600.msch b/core/assets/baseparts/1591385575600.msch index a086e7d8a2..597351c682 100644 Binary files a/core/assets/baseparts/1591385575600.msch and b/core/assets/baseparts/1591385575600.msch differ diff --git a/core/assets/baseparts/1599594352859.msch b/core/assets/baseparts/1599594352859.msch new file mode 100644 index 0000000000..3b73103fa9 Binary files /dev/null and b/core/assets/baseparts/1599594352859.msch differ diff --git a/core/assets/baseparts/4125616123544.msch b/core/assets/baseparts/4125616123544.msch new file mode 100644 index 0000000000..7e1ee81811 Binary files /dev/null and b/core/assets/baseparts/4125616123544.msch differ diff --git a/core/assets/baseparts/752911659508695080.msch b/core/assets/baseparts/752911659508695080.msch new file mode 100644 index 0000000000..9f1e10578e --- /dev/null +++ b/core/assets/baseparts/752911659508695080.msch @@ -0,0 +1,2 @@ +mschxœE’}r›@ ŵ|Ã.0ÉôÜ%ôÄ޺Llpא4éiz47Cß[eÚa˜Z==ieËé�dóxñò°N>|ý¼ZÞð5†NúÃ2ž‡ƒŸ×0}ÛN^Úóôc›ŽÃmÙÂ!֬ãÐÁæÚàG�ŸӔqJµ•qÌõ៩Œ¸·ÒÒ\ö©–ù•ßKÅõ¯¦õYZîך· ±.{˶¦~[ö:dÜÖ9ïSjeè+WxðÀÁ Dѻh¥wçÐñU„°êà-éY‹â�Àõ-è:Gtñ:µ)„¿h.2Ø8Xÿ¨ÂÿoDt‚“EÎÿˆ6ϚT:ÃÁˆÆA·\8÷ÅÞ`äÒ#` \ No newline at end of file diff --git a/core/assets/baseparts/752926963076694047.msch b/core/assets/baseparts/752926963076694047.msch new file mode 100644 index 0000000000..6e26296729 Binary files /dev/null and b/core/assets/baseparts/752926963076694047.msch differ diff --git a/core/assets/baseparts/752927009641857205.msch b/core/assets/baseparts/752927009641857205.msch new file mode 100644 index 0000000000..7943fb1481 Binary files /dev/null and b/core/assets/baseparts/752927009641857205.msch differ diff --git a/core/assets/baseparts/752930133874049034.msch b/core/assets/baseparts/752930133874049034.msch new file mode 100644 index 0000000000..93941bdff3 Binary files /dev/null and b/core/assets/baseparts/752930133874049034.msch differ diff --git a/core/assets/baseparts/752930845685448825.msch b/core/assets/baseparts/752930845685448825.msch new file mode 100644 index 0000000000..594f46b9ee --- /dev/null +++ b/core/assets/baseparts/752930845685448825.msch @@ -0,0 +1,4 @@ +mschxœ-ÎMnÄ `þÒÉbÔt5»ŠI\‰$# j�?~qƒ¢ð32Mt3äö´1}þp垗T¾Vþæ½q¤ؖÔ;W +õ8á´æÖk~žý¨tí|nIzæµæRèþ›$4ó_¯iAbjGIu~¥� M¹ó6·ã¬ ÑC~dÉ€¹΂SFÌ0À’A‰ˆX4 2�“2úp +²FD<"FÐçåÚ8ÁéeÀÓ^³H^ AG +ؠâȸ°ŠSþkA‰àS«8Å+A‰dÝÈˌ£}Â)*o \ No newline at end of file diff --git a/core/assets/baseparts/752932257538506823.msch b/core/assets/baseparts/752932257538506823.msch new file mode 100644 index 0000000000..097246d11c Binary files /dev/null and b/core/assets/baseparts/752932257538506823.msch differ diff --git a/core/assets/baseparts/752937073991745554.msch b/core/assets/baseparts/752937073991745554.msch new file mode 100644 index 0000000000..fe8d7ccc9c --- /dev/null +++ b/core/assets/baseparts/752937073991745554.msch @@ -0,0 +1 @@ +mschxœ-Ík à)[‹¶úËSôPHI$¡mB©‰·w×5°ùL´¸70«_"ú=øZc™¼·è¶¾ãg+¸-1¼üš‚ÏÓ\RÎhÿA¸9íµ¤çQ)çR�˴oG ÀƒÐ#´¢ƒ¢EÐåïģ$¢8¢¡åAÃÐжÂIh…N8 ½à„‹p®5\ÄÆrƒ¡;K½ê ø¥% \ No newline at end of file diff --git a/core/assets/baseparts/752937145978716332.msch b/core/assets/baseparts/752937145978716332.msch new file mode 100644 index 0000000000..c3b5dbb923 Binary files /dev/null and b/core/assets/baseparts/752937145978716332.msch differ diff --git a/core/assets/baseparts/752937230456193185.msch b/core/assets/baseparts/752937230456193185.msch new file mode 100644 index 0000000000..558a0a3c63 --- /dev/null +++ b/core/assets/baseparts/752937230456193185.msch @@ -0,0 +1 @@ +mschxœMIƒ0 —„"qhû�Üú¡,‰É8¢ϯӃǣYlL˜®Æ˜OåXÂÆ5¼G<®¨,�¿*1é!xi“%Wî–إ9+—pMãY8}bÍ)îa•¼ïv°ÉÆA�‹-»æS%/­�Ù7ÁރŒáîo­ëƒÁr€ äm;s þ¦ë&Á÷.Œ›ø^±'� \ No newline at end of file diff --git a/core/assets/baseparts/752939992300388483.msch b/core/assets/baseparts/752939992300388483.msch new file mode 100644 index 0000000000..6d4d56c904 --- /dev/null +++ b/core/assets/baseparts/752939992300388483.msch @@ -0,0 +1 @@ +mschxœ=‘ nƒ0E›} !]U½—èMœÄJ‘À¦ÆnÕÛ×׊@_~ü瑁Þ)K(5jÑÔo«uzµ?ڭ³2¾¦úf?}+ouóô¦ûèlðÚQq³æ&Oƒî:=>´Ñn¯6›�•WeôLù¢Í]3 î¡GÏÛÿo¶ÙànšŠ«òqÓ_jý§v‹šÇ5,+}®$>‚„ˆ!Iò*%!#Þa«xóیx͜v"¡K4%t =L¡g\äH(1v=‡ž£™Cϡ€ôÓKL/¡WÐ+4+èô°†Þ`zƒé ôz‹f ½…ÞvÐ\ÌbìÓÐ{è=š=ôúð}ÀôÓ†9�H”|XF'F‚žψÄ+GAçxüt/Ÿ”t‰#â¹ð?1"¬è�ÅÜV9� \ No newline at end of file diff --git a/core/assets/baseparts/752941306489077823.msch b/core/assets/baseparts/752941306489077823.msch new file mode 100644 index 0000000000..d98f3b2a11 --- /dev/null +++ b/core/assets/baseparts/752941306489077823.msch @@ -0,0 +1 @@ +mschxœ-‹Kƒ0 D'Ÿ†ЮÚ]Á™�E¬lB@D�_!ËcûÍÁÀWšŸ|�$N㺜,c]wè6Î3×ϋ�‘L…êĂ×vHæao6âJB¥ÐA¿’ ׆…5ЊN‡[­Uæaœúšñ- ¾xۇî—˜o‚]þ¡&þ \ No newline at end of file diff --git a/core/assets/baseparts/752942460573057196.msch b/core/assets/baseparts/752942460573057196.msch new file mode 100644 index 0000000000..6f81df2b4e Binary files /dev/null and b/core/assets/baseparts/752942460573057196.msch differ diff --git a/core/assets/baseparts/752944648628076745.msch b/core/assets/baseparts/752944648628076745.msch new file mode 100644 index 0000000000..090ffe0155 --- /dev/null +++ b/core/assets/baseparts/752944648628076745.msch @@ -0,0 +1,2 @@ +mschxœMŽan„ …Š®ºmMÿöŠètC‚`ºí‰{Š]:àŸ& ïñ˜=Þ¤Óázh·ª`öÝÒWiS‡Oa!Ìw)(úŽA/ѼzcÿÉyw”6͢Ö`¬å^)ÜHE'¾]¼¶j!ƒùL7Â{4Q;“6µx÷E?ܡ>ñL{y¢œ_‰½ú̇±†“êØȖðÁ…¶$ʎ†ˆ¶êj7CÃn‹6ÿŠŽõѳ!Ot-G+ĉæë oíÀè†.?ó£dò —̏œkr/‰Ô8N4@Ϩƒd41úSq± c% +ÆÄɏM \ No newline at end of file diff --git a/core/assets/baseparts/752955880965799966.msch b/core/assets/baseparts/752955880965799966.msch new file mode 100644 index 0000000000..4cda9322ea Binary files /dev/null and b/core/assets/baseparts/752955880965799966.msch differ diff --git a/core/assets/baseparts/752961534690328648.msch b/core/assets/baseparts/752961534690328648.msch new file mode 100644 index 0000000000..15dbc9618c Binary files /dev/null and b/core/assets/baseparts/752961534690328648.msch differ diff --git a/core/assets/baseparts/752961607314702336.msch b/core/assets/baseparts/752961607314702336.msch new file mode 100644 index 0000000000..f7ea7664db Binary files /dev/null and b/core/assets/baseparts/752961607314702336.msch differ diff --git a/core/assets/baseparts/752965444419453010.msch b/core/assets/baseparts/752965444419453010.msch new file mode 100644 index 0000000000..008b1f015b Binary files /dev/null and b/core/assets/baseparts/752965444419453010.msch differ diff --git a/core/assets/baseparts/752967201597947924.msch b/core/assets/baseparts/752967201597947924.msch new file mode 100644 index 0000000000..76607f758f Binary files /dev/null and b/core/assets/baseparts/752967201597947924.msch differ diff --git a/core/assets/baseparts/752980871690059906.msch b/core/assets/baseparts/752980871690059906.msch new file mode 100644 index 0000000000..360d04733b Binary files /dev/null and b/core/assets/baseparts/752980871690059906.msch differ diff --git a/core/assets/baseparts/752982341865046126.msch b/core/assets/baseparts/752982341865046126.msch new file mode 100644 index 0000000000..360d04733b Binary files /dev/null and b/core/assets/baseparts/752982341865046126.msch differ diff --git a/core/assets/baseparts/752995421667721307.msch b/core/assets/baseparts/752995421667721307.msch new file mode 100644 index 0000000000..bd3313b2c3 Binary files /dev/null and b/core/assets/baseparts/752995421667721307.msch differ diff --git a/core/assets/baseparts/753005578997071974.msch b/core/assets/baseparts/753005578997071974.msch new file mode 100644 index 0000000000..747c61f453 Binary files /dev/null and b/core/assets/baseparts/753005578997071974.msch differ diff --git a/core/assets/baseparts/753035709576642631.msch b/core/assets/baseparts/753035709576642631.msch new file mode 100644 index 0000000000..c1955436b5 Binary files /dev/null and b/core/assets/baseparts/753035709576642631.msch differ diff --git a/core/assets/baseparts/753035713162903572.msch b/core/assets/baseparts/753035713162903572.msch new file mode 100644 index 0000000000..4d262d3fa3 --- /dev/null +++ b/core/assets/baseparts/753035713162903572.msch @@ -0,0 +1,2 @@ +mschxœ%ŠQ +à Dgu…BIz…^ÀC-fiMDÍý«É|̃7†#ð!Y±„3 ý»KL�Á“ø”C¯,=¿՘ޱköí¼jP¬¿*eƗª­xá=E“dØÎÚ{ÞLØç<5ý�pþ \ No newline at end of file diff --git a/core/assets/baseparts/753043453876895784.msch b/core/assets/baseparts/753043453876895784.msch new file mode 100644 index 0000000000..013e2b4e23 Binary files /dev/null and b/core/assets/baseparts/753043453876895784.msch differ diff --git a/core/assets/baseparts/753059583450415175.msch b/core/assets/baseparts/753059583450415175.msch new file mode 100644 index 0000000000..a3ed4cf154 --- /dev/null +++ b/core/assets/baseparts/753059583450415175.msch @@ -0,0 +1,5 @@ +mschxœ%‘Ar£0E?<5»Yy9Ypˆlr�œ€تØ)l\B)çò éO/ÐCݿ¿º%üÅ>C~¯ÿ^ïá˜bXχÿé<ÇËçõpŠ—izªÐ\R¸Ëü�ûûy\Âð§i˜ÆøЦKoR°Q\Ãí"ÊE-Ñ?Æâ¾R�iŽè¨îqþ۾¾ÏÜæS@ó6�K¶£¼ȇÖ¥Í`QB�C~�À*r…SŠJQ+ÅNË[XK9 åÆÉâa¬aj`Œä2î +˜RP{*À +Y­è ñڄQRïžÎ^MJÍyæ,3ôò°žîC¾®pë7؄ªz+ª԰b‘Ãxé°ԜH2فCղ³ۀT6ƒØQ¹£ щ·4¼y¶+—PÅ~Zì<ï—-¶:S«òNï S«Nƒ½ӳ¯B`éÑÃy³þH +뷜Ðój¥$Þ�fŽ•{Ú1ØòaþˆAFä +§� Ê¥J* ֊F!£ýÆzEò \ No newline at end of file diff --git a/core/assets/baseparts/753087301323718736.msch b/core/assets/baseparts/753087301323718736.msch new file mode 100644 index 0000000000..59390e07c6 --- /dev/null +++ b/core/assets/baseparts/753087301323718736.msch @@ -0,0 +1,2 @@ +mschxœ5�ANÃ0E¿k; i¡ªX±f畸7àVh¤$®ìR‰Û3“‘’?ï͗¢Á:·ƅðü¶L+…Ó%S)áõôç[ +ïôEëH|Fÿ�ãå<])l=T%å+e4cZoô›2†…Æs\§1Îá3OóŒ=חPÒO À ¿ØÁJx™ù1; ¯…Z[ŽÑrËɚQ'-Ë&‹JÂql²V٨lTީlU¶*÷ò‡N©ò¸‡eôÆò´­{]÷BÀ rø§FèQé Ç/'PoU�®[9ᨇEþ̃'† \ No newline at end of file diff --git a/core/assets/baseparts/753087303836106812.msch b/core/assets/baseparts/753087303836106812.msch new file mode 100644 index 0000000000..ee1626b42b --- /dev/null +++ b/core/assets/baseparts/753087303836106812.msch @@ -0,0 +1,2 @@ +mschxœ5�Ûnƒ0DÇØ–[ó֯à!U‘­„LDH¤ü}÷Ò"¡£vgŒqÆ9 åie|~¯Kæñòõ˜§ãà}¼ò癪?õ¼å¿·írð:>¶ç>3>ët,óxݗÛ ÀE^”°‡€€' +RDWQU�„$£AŒ¤>L‘*‹ Û)ÿÍAM�ŠèHŽQ+N°¦Ú'Eëè½|’¶¤™•ŒQÆm¯Ö=;½®“‘‘‘),š<š<š<šüœ�fB`?Öø�´j*Lu®:W½«Þû¿„AÕ/¥J® \ No newline at end of file diff --git a/core/assets/baseparts/753087308881985706.msch b/core/assets/baseparts/753087308881985706.msch new file mode 100644 index 0000000000..893d913288 --- /dev/null +++ b/core/assets/baseparts/753087308881985706.msch @@ -0,0 +1 @@ +mschxœM�ÍNÃ0„ÇMú#*$npàŽ,• /¤fSYJìʱ)¼=»�û³gfgq‡ƒ‚MÃLx|§iôKÇ"¥ê¯ùFåùõítz鱏•f¿äVáx*O_µ ¡æ‚ûÚÊ9&òJT‘BžÏm©1§êñš¨ÍC�Á”8Mܸؔ }È链9²?OÃRÿlà‰:8£ a`4ÃAFXF-Ž‚a›EÍ/ì »¬lö¦ãk�p'ÔZ%skVàdƒ“q ᵝü¯á2ËpâõÒb[°¾hÎYéÜñ¤RŒ^p�Îb7» \ No newline at end of file diff --git a/core/assets/baseparts/753232120369119314.msch b/core/assets/baseparts/753232120369119314.msch new file mode 100644 index 0000000000..f68d33fae5 Binary files /dev/null and b/core/assets/baseparts/753232120369119314.msch differ diff --git a/core/assets/baseparts/753389428575043614.msch b/core/assets/baseparts/753389428575043614.msch new file mode 100644 index 0000000000..f33e2db052 Binary files /dev/null and b/core/assets/baseparts/753389428575043614.msch differ diff --git a/core/assets/baseparts/753644716297289769.msch b/core/assets/baseparts/753644716297289769.msch new file mode 100644 index 0000000000..eba46613ca --- /dev/null +++ b/core/assets/baseparts/753644716297289769.msch @@ -0,0 +1,2 @@ +mschxœ5N[n! ØgU”Ÿ~ö\!wA„VH, `“öêIӭ�U0x<ö02öØ ´AOïE‡³:睉A�²KÉÛò†C +vžtuF�³óÇêªnž /ö'fKô:«¤ƒõŠª/‹ÃUW›•ý®Y›Jš­™}uÍõ®¤˜­Jٖ‚ƒ‰Ú+cCÍîs毯%Êd=™�|&KU㕉«vR%ÎÙXô%fVlÏTˆg꭫ø ‡RôxžR‚Cˆµ)W‰|±�Yì¡ uZ@2{*[žIt٥cƉ,z‚r èX9P†tlèdž*Ùñ^[ªZ4‚ [�œv,‡å±üQü.�g¾-wÊwªo‚¥ä¸'‡ C¿ÂÍ?EŒgš \ No newline at end of file diff --git a/core/assets/baseparts/753646105383927950.msch b/core/assets/baseparts/753646105383927950.msch new file mode 100644 index 0000000000..500ab29da2 --- /dev/null +++ b/core/assets/baseparts/753646105383927950.msch @@ -0,0 +1,2 @@ +mschxœ%LÑ‚0 ¼1@P >øf ~…à l ÛÌ(AÿÞ{i¯éÝ …Ü[G8?™¬{�¿ݻ®+Ñn–)úp´‡ˆÓÄäÌÖ8½e‘¿hߞVgyÌ+NóŒë\¿.<oFòí^Ö8’á°Qp‘F­�¡.dÍ2h�JTý©†ÒÈ:Q �ö]˓–òRZ”ÝR& d¡ +ñe´ \ No newline at end of file diff --git a/core/assets/baseparts/753938078997151744.msch b/core/assets/baseparts/753938078997151744.msch new file mode 100644 index 0000000000..6a666a246c Binary files /dev/null and b/core/assets/baseparts/753938078997151744.msch differ diff --git a/core/assets/baseparts/core1.msch b/core/assets/baseparts/core1.msch index 43439698d7..a9df583d3b 100644 Binary files a/core/assets/baseparts/core1.msch and b/core/assets/baseparts/core1.msch differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index f1f995f72e..0e94bdea57 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -20,6 +20,7 @@ gameover = Game Over gameover.pvp = The[accent] {0}[] team is victorious! highscore = [accent]New highscore! copied = Copied. +indevpopup = [accent]v6[] is currently in [accent]pre-alpha[].\n[lightgray]This means:[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work\n- Many units are unfinished\n- The campaign is completely unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. load.sound = Sounds load.map = Maps @@ -113,6 +114,7 @@ mod.disable = Disable mod.content = Content: mod.delete.error = Unable to delete mod. File may be in use. mod.requiresversion = [scarlet]Requires min game version: [accent]{0} +mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105) mod.missingdependencies = [scarlet]Missing dependencies: {0} mod.erroredcontent = [scarlet]Content Errors mod.errors = Errors have occurred loading content. @@ -507,6 +509,13 @@ error.io = Network I/O error. error.any = Unknown network error. error.bloom = Failed to initialize bloom.\nYour device may not support it. +sectors.unexplored = [lightgray]Unexplored +sectors.resources = Resources: +sectors.production = Production: +sectors.stored = Stored: +sectors.resume = Resume +sectors.launch = Launch + #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 @@ -643,6 +652,7 @@ unit.powerunits = power units unit.degrees = degrees unit.seconds = seconds unit.persecond = /sec +unit.perminute = /min unit.timesspeed = x speed unit.percent = % unit.items = items @@ -827,6 +837,8 @@ rules.title.unit = Units rules.title.experimental = Experimental rules.title.environment = Environment rules.lighting = Lighting +rules.fire = Fire +rules.explosions = Block/Unit Explosion Damage rules.ambientlight = Ambient Light rules.solarpowermultiplier = Solar Power Multiplier @@ -880,6 +892,7 @@ unit.crawler.name = Crawler unit.atrax.name = Atrax unit.spiroct.name = Spiroct unit.arkyid.name = Arkyid +unit.toxopid.name = Toxopid unit.flare.name = Flare unit.horizon.name = Horizon unit.zenith.name = Zenith @@ -894,6 +907,8 @@ unit.bryde.name = Bryde unit.alpha.name = Alpha unit.beta.name = Beta unit.gamma.name = Gamma +unit.scepter.name = Scepter +unit.reign.name = Reign block.parallax.name = Parallax block.cliff.name = Cliff @@ -901,21 +916,21 @@ block.sand-boulder.name = Sand Boulder block.grass.name = Grass block.slag.name = Slag block.salt.name = Salt -block.saltrocks.name = Salt Rocks +block.salt-wall.name = Salt Wall block.pebbles.name = Pebbles block.tendrils.name = Tendrils -block.sandrocks.name = Sand Rocks +block.sand-wall.name = Sand Wall block.spore-pine.name = Spore Pine -block.sporerocks.name = Spore Rocks -block.rock.name = Rock -block.snowrock.name = Snow Rock +block.spore-wall.name = Spore Wall +block.boulder.name = Boulder +block.snow-boulder.name = Snow Boulder 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.shale-wall.name = Shale Wall block.scrap-wall.name = Scrap Wall block.scrap-wall-large.name = Large Scrap Wall block.scrap-wall-huge.name = Huge Scrap Wall @@ -943,13 +958,16 @@ 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.dacite.name = Dacite +block.dacite-wall.name = Dacite Wall 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.stone-wall.name = Stone Wall +block.ice-wall.name = Ice Wall +block.snow-wall.name = Snow Wall +block.dune-wall.name = Dune Wall block.pine.name = Pine +block.dirt.name = Dirt +block.dirt-wall.name = Dirt Wall block.white-tree-dead.name = White Tree Dead block.white-tree.name = White Tree block.spore-cluster.name = Spore Cluster @@ -965,7 +983,7 @@ 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.basalt.name = Basalt block.hotrock.name = Hot Rock block.magmarock.name = Magma Rock block.cliffs.name = Cliffs @@ -1017,7 +1035,7 @@ 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.steam-generator.name = Steam Generator block.differential-generator.name = Differential Generator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mechanical Drill @@ -1225,7 +1243,7 @@ block.battery.description = Stores power as a buffer in times of surplus energy. 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.steam-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. diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 906aa492cd..9545684502 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -993,7 +993,7 @@ block.diode.name = Дыёд block.battery.name = Акумулятар block.battery-large.name = Вялікі акумулятар block.combustion-generator.name = Генератар ўнутранага згарання -block.turbine-generator.name = Паравы генератар +block.steam-generator.name = Паравы генератар block.differential-generator.name = Дыферэнцыяльны генератар block.impact-reactor.name = Імпульсны рэактар block.mechanical-drill.name = Механічны бур @@ -1192,7 +1192,7 @@ block.battery.description = Назапашвае энергію як буфер block.battery-large.description = Захоўвае значна больш энергіі, чым звычайны акумулятар. block.combustion-generator.description = вырабленай энергіі шляхам спальвання лёгкаўзгаральных матэрыялаў, такіх як вугаль. block.thermal-generator.description = Генеруе энергію, калі знаходзіцца ў гарачых месцах. -block.turbine-generator.description = Удасканалены генератар згарання. Больш эфектыўны, але дадаткова патрабуе ваду для выпрацоўкі пары. +block.steam-generator.description = Удасканалены генератар згарання. Больш эфектыўны, але дадаткова патрабуе ваду для выпрацоўкі пары. block.differential-generator.description = Генеруе вялікая колькасць энергіі. Выкарыстоўвае розніцу тэмператур паміж крыягеннай вадкасцю і падпаленым пиротитом. block.rtg-generator.description = Просты, надзейны генератар. Выкарыстоўвае цяпло распадаюцца радыеактыўных злучэнняў для вытворчасці энергіі з нізкай хуткасцю. block.solar-panel.description = Забяспечвае невялікая колькасць энергіі ад сонца. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 18d6b667e3..d9501d6497 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -993,7 +993,7 @@ block.diode.name = Bateriová dioda block.battery.name = Baterie block.battery-large.name = Velká baterie block.combustion-generator.name = Spalovací generátor -block.turbine-generator.name = Turbínový generátor +block.steam-generator.name = Turbínový generátor block.differential-generator.name = Rozdílový Generator block.impact-reactor.name = Rázový reaktor block.mechanical-drill.name = Mechanický vrt @@ -1192,7 +1192,7 @@ block.battery.description = Ukládá energii v případě nadbytku v síti a pos block.battery-large.description = Ukládá více energie, než základní baterie. block.combustion-generator.description = Generuje energii spalováním hořlaných materiálů, jako je například uhlí. block.thermal-generator.description = Pokud je umístěn na teplotně aktivní místo (jako je magmatický kámen), dokáže z tepla generovat energii. -block.turbine-generator.description = Pokročilý spalovací generátor. Efektivnější, ale vyžaduje dodatečný přísun vody pro produkci páry. +block.steam-generator.description = Pokročilý spalovací generátor. Efektivnější, ale vyžaduje dodatečný přísun vody pro produkci páry. block.differential-generator.description = Generuje velké množství energie. Využívá teplotního rozdílu mezi chladící kapalinou a hořícím pyratitem. block.rtg-generator.description = Radioizotopní termoenergetický generátor (RTG) je jednoduchý, spolehlivý generátor. Využívá tepla z rozpadu radioaktivních složek ke generování menších dávek energie. block.solar-panel.description = Základní solární panel pro generování malého množství energie ze Slunce. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index f448bcafaf..e563cba321 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -993,7 +993,7 @@ 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.steam-generator.name = Steam Generator block.differential-generator.name = Differential Generator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mechanical Drill @@ -1192,7 +1192,7 @@ block.battery.description = Stores power as a buffer in times of surplus energy. 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.steam-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. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 881ffe40be..96b20f1b85 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -993,7 +993,7 @@ block.diode.name = Batterie-Diode block.battery.name = Batterie block.battery-large.name = Große Batterie block.combustion-generator.name = Verbrennungsgenerator -block.turbine-generator.name = Turbinengenerator +block.steam-generator.name = Turbinengenerator block.differential-generator.name = Differentialgenerator block.impact-reactor.name = Schlaggenerator block.mechanical-drill.name = Mechanischer Bohrer @@ -1192,7 +1192,7 @@ block.battery.description = Speichert Strom, solange ein Überschuss besteht, un block.battery-large.description = Speichert sehr viel mehr Strom als eine normale Batterie. block.combustion-generator.description = Generiert Strom, indem Öl oder entzündliche Materialien verbrannt werden. block.thermal-generator.description = Erzeugt große Mengen Strom aus Lava. -block.turbine-generator.description = Effizienter als ein Verbrennungsgenerator, benötigt jedoch zusätzlich Wasser. +block.steam-generator.description = Effizienter als ein Verbrennungsgenerator, benötigt jedoch zusätzlich Wasser. block.differential-generator.description = Erzeugt große Mengen an Energie. Nutzt den Temperaturunterschied zwischen Kryofluid und brennendem Pyratit. block.rtg-generator.description = Ein Radioisotopengenerator, der keine Kühlung benötigt, aber weniger Strom als ein Thorium-Reaktor liefert. block.solar-panel.description = Erzeugt kleine Mengen an Strom aus Sonnenenergie. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 9fad522899..b173b210a5 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -993,7 +993,7 @@ block.diode.name = Diodo de batería block.battery.name = Batería block.battery-large.name = Batería Grande block.combustion-generator.name = Generador de Combustión -block.turbine-generator.name = Turbina +block.steam-generator.name = Turbina block.differential-generator.name = Generador Diferencial block.impact-reactor.name = Reactor de Impacto block.mechanical-drill.name = Taladro mecánico @@ -1192,7 +1192,7 @@ block.battery.description = Guarda energía cuando hay abundancia y proporciona block.battery-large.description = Almacena mucha más energía que una batería normal. block.combustion-generator.description = Genera energía quemando aceite o materiales inflamables. block.thermal-generator.description = Genera una gran cantidad de energía con la lava. -block.turbine-generator.description = Más eficiente que un generador de combustión, pero requiere agua adicional. +block.steam-generator.description = Más eficiente que un generador de combustión, pero requiere agua adicional. block.differential-generator.description = Genera grandes cantidades de energía. Utiliza la diferencia de temperatura entre el fluído criogenico y la quema de piratita. block.rtg-generator.description = Un generador radioisótropo termoeléctrico que no necesita enfriamiento, pero proporciona menos energía que un reactor de torio. block.solar-panel.description = Proporciona una pequeña cantidad de energía procedente del sol. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index ea08f62c6d..2a4cdf1727 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = Aku block.battery-large.name = Suur aku block.combustion-generator.name = Põlemisgeneraator -block.turbine-generator.name = Aurugeneraator +block.steam-generator.name = Aurugeneraator block.differential-generator.name = Diferentseeriv generaator block.impact-reactor.name = Impulssreaktor block.mechanical-drill.name = Harilik puur @@ -1192,7 +1192,7 @@ block.battery.description = Salvestab energiat puhvrina positiivse energiabilans block.battery-large.description = Salvestab rohkem energiat kui tavaline aku. block.combustion-generator.description = Toodab energiat süttivate materjalide, näiteks söe, põletamisel. block.thermal-generator.description = Toodab energiat kuumades piirkondades. -block.turbine-generator.description = Täiustatud põlemisgeneraator. Tõhusam kui põlemisgeneraator, kuid vajab auru tootmiseks lisanduvat vett. +block.steam-generator.description = Täiustatud põlemisgeneraator. Tõhusam kui põlemisgeneraator, kuid vajab auru tootmiseks lisanduvat vett. block.differential-generator.description = Tekitab suurel hulgal energiat. Kasutab ära krüovedeliku ja põleva püratiidi temperatuuride erinevust. block.rtg-generator.description = Töökindel generaator, mis kasutab radioaktiivsete ühendite lagunemisel eralduvat soojust, et toota sellest aeglasel kiirusel energiat. block.solar-panel.description = Toodab vähesel määral energiat päikesekiirgusest. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 1c115f90ad..4d14fb5eb9 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = Bateria block.battery-large.name = Bateria handia block.combustion-generator.name = Errekuntza sorgailua -block.turbine-generator.name = Lurrin sorgailua +block.steam-generator.name = Lurrin sorgailua block.differential-generator.name = Sorgailu diferentziala block.impact-reactor.name = Talkazko erreaktorea block.mechanical-drill.name = Zulagailu mekanikoa @@ -1192,7 +1192,7 @@ block.battery.description = Energia biltegiratu dezake gehiegi dagoenean tarteka block.battery-large.description = Bateria arrunt batek baino energia gehiago biltegiratu dezake. block.combustion-generator.description = Energia sortzen du gai erregarriak errez, esaterako ikatza. block.thermal-generator.description = Energia sortzen du toki beroetan jarrita. -block.turbine-generator.description = Errekuntza sorgailu aurreratu bat. Eraginkorragoa. baina ur gehiago behar du lurrina sortzeko. +block.steam-generator.description = Errekuntza sorgailu aurreratu bat. Eraginkorragoa. baina ur gehiago behar du lurrina sortzeko. block.differential-generator.description = Energia kopuru handia sortzen du. Krio-isurkaria eta piratita goriaren arteko tenperatura diferentzia erabiltzen du. block.rtg-generator.description = Sorgailu sinple eta fidagarria. Konposatu erradioaktiboen hirotzearen beroa erabiltzen du geldiro energia sortzeko. block.solar-panel.description = Eguzkiaren energia kopuru txiki bat ematen du. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 93cf3feaaf..cd63bdf61f 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = Akku block.battery-large.name = Suuri akku block.combustion-generator.name = Combustion Generator -block.turbine-generator.name = Höyrygeneraattori +block.steam-generator.name = Höyrygeneraattori block.differential-generator.name = Differential Generator block.impact-reactor.name = Törmäysreaktori block.mechanical-drill.name = Mechanical Drill @@ -1192,7 +1192,7 @@ block.battery.description = Stores power as a buffer in times of surplus energy. 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.steam-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. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index a07e8ebf76..03fa670b73 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1007,7 +1007,7 @@ 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.steam-generator.name = Steam Generator block.differential-generator.name = Differential Generator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mechanical Drill @@ -1206,7 +1206,7 @@ block.battery.description = Stores power as a buffer in times of surplus energy. 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.steam-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. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index cd79e0ab9c..e6fef061b4 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -993,7 +993,7 @@ block.diode.name = Diode block.battery.name = Batterie block.battery-large.name = Grande Batterie block.combustion-generator.name = Générateur à Combustion -block.turbine-generator.name = Générateur à Turbine +block.steam-generator.name = Générateur à Turbine block.differential-generator.name = Générateur Différentiel block.impact-reactor.name = Réacteur à Impact block.mechanical-drill.name = Foreuse Mécanique @@ -1192,7 +1192,7 @@ block.battery.description = Stocke le surplus d'énergie et le redistribue en ca block.battery-large.description = Stocke bien plus d'énergie qu'une batterie normale. block.combustion-generator.description = Génère de l'énergie en brûlant du charbon ou d'autres matériaux inflammables. block.thermal-generator.description = Génère une grande quantité d'énergie à partir de zones de chaleur. -block.turbine-generator.description = Plus efficace qu'un générateur à combustion, mais requiert de l'eau. +block.steam-generator.description = Plus efficace qu'un générateur à combustion, mais requiert de l'eau. block.differential-generator.description = Génère de grandes quantités d'énergie en utilisant la différence de température entre le liquide cryogénique et la pyratite brûlante. block.rtg-generator.description = Un générateur thermo-électrique à radioisotope qui ne demande pas de refroidissement mais produit moins d'énergie qu'un réacteur à Thorium. block.solar-panel.description = Génère une faible quantité d'énergie grâce aux rayons du soleil. diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties index aeff0d5cb8..254437cdc8 100644 --- a/core/assets/bundles/bundle_fr_BE.properties +++ b/core/assets/bundles/bundle_fr_BE.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = Batterie block.battery-large.name = Batterie large block.combustion-generator.name = Générateur à combustion -block.turbine-generator.name = Générateur à turbine +block.steam-generator.name = Générateur à turbine block.differential-generator.name = Générateur différentiel block.impact-reactor.name = Réacteur à impact block.mechanical-drill.name = Foreuse mécanique @@ -1192,7 +1192,7 @@ block.battery.description = Stocke l’énergie chaque fois qu’il ya abondance block.battery-large.description = Stocke beaucoup plus d'énergie qu'une batterie ordinaire. block.combustion-generator.description = Génère de l'énergie en brûlant du pétrole ou des matériaux inflammables. block.thermal-generator.description = Génère une grande quantité d'énergie grâce à la lave. -block.turbine-generator.description = Plus efficace qu'un générateur de combustion, mais nécessite de l'eau supplémentaire. +block.steam-generator.description = Plus efficace qu'un générateur de combustion, mais nécessite de l'eau supplémentaire. block.differential-generator.description = Génère de grandes quantités d'énergie. Utilise la différence de température entre le cryofluide et la pyratite en combustion. block.rtg-generator.description = Générateur thermoélectrique à radio-isotopes ne nécessitant pas de refroidissement mais fournissant moins d'énergie qu'un réacteur à thorium. block.solar-panel.description = Fournit une petite quantité d'énergie grâce au soleil. diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 6c8e0bd47d..160ed3b0f8 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -993,7 +993,7 @@ 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.steam-generator.name = Steam Generator block.differential-generator.name = Differential Generator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mechanical Drill @@ -1192,7 +1192,7 @@ block.battery.description = Stores power as a buffer in times of surplus energy. 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.steam-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. diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index 5868526b85..0ed35ef42c 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -993,7 +993,7 @@ block.diode.name = Dioda Baterai block.battery.name = Baterai block.battery-large.name = Baterai Besar block.combustion-generator.name = Generator Pembakar -block.turbine-generator.name = Generator Turbin +block.steam-generator.name = Generator Turbin block.differential-generator.name = Generator Majemuk block.impact-reactor.name = Reaktor Tumbukan block.mechanical-drill.name = Bor Mekanik @@ -1192,7 +1192,7 @@ block.battery.description = Menyimpan tenaga jika ada kelimpahan dan memberikan block.battery-large.description = Menyimpan lebih banyak tenaga daripada baterai biasa. block.combustion-generator.description = Menghasilkan tenaga dengan membakar minyak atau bahan bakar. block.thermal-generator.description = Menghasilkan tenaga disaat ditaruh di lokasi yang panas. -block.turbine-generator.description = Lebih efisien daripada generator pembakar, tetapi membutuhkan tambahan air. +block.steam-generator.description = Lebih efisien daripada generator pembakar, tetapi membutuhkan tambahan air. block.differential-generator.description = Menghasilkan banyak sekali tenaga. Memanfaatkan perbedaan suhu dingin cairan pendingin dan suhu panas pyratite. block.rtg-generator.description = Generator yang tidak membutuhkan pendiginan tetapi lebih memberi sedikit tenaga daripada reaktor thorium. block.solar-panel.description = Menghasilkan jumlah tenaga kecil dari matahari. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 93e2de29d2..01e9038170 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -993,7 +993,7 @@ block.diode.name = Diodo block.battery.name = Batteria block.battery-large.name = Batteria Grande block.combustion-generator.name = Generatore a Combustibile -block.turbine-generator.name = Turbina a Vapore +block.steam-generator.name = Turbina a Vapore block.differential-generator.name = Generatore Differenziale block.impact-reactor.name = Reattore ad Impatto block.mechanical-drill.name = Trivella Meccanica @@ -1192,7 +1192,7 @@ block.battery.description = Accumula energia ogni volta che c'è abbondanza e fo block.battery-large.description = Immagazzina molta più energia di una normale batteria. block.combustion-generator.description = Genera energia bruciando combustibile. block.thermal-generator.description = Genera una grande quantità di energia dalla lava. -block.turbine-generator.description = Più efficiente di un generatore a combustione, ma richiede l'aggiunta di acqua. +block.steam-generator.description = Più efficiente di un generatore a combustione, ma richiede l'aggiunta di acqua. block.differential-generator.description = Genera grandi quantità di energia. Utilizza la differenza di temperatura tra criofluido e pirite in combustione. block.rtg-generator.description = Un generatore che sfrutta il calore del decadimento di materiale radioattivo per produrre energia.\nNon richiede raffreddamento ma fornisce meno energia di un reattore al torio. block.solar-panel.description = Fornisce una piccola quantità di energia dal sole. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 933ae1992a..a73493be30 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -993,7 +993,7 @@ block.diode.name = バッテリーダイオード block.battery.name = バッテリー block.battery-large.name = 大型バッテリー block.combustion-generator.name = 火力発電機 -block.turbine-generator.name = タービン発電機 +block.steam-generator.name = タービン発電機 block.differential-generator.name = 差動発電機 block.impact-reactor.name = インパクトリアクター block.mechanical-drill.name = 機械ドリル @@ -1192,7 +1192,7 @@ block.battery.description = 余分な電力の充電して、貯めておくこ block.battery-large.description = 通常のバッテリーよりもたくさんの電力を溜めておくことができます。 block.combustion-generator.description = 石油や可燃性の物質を燃やして発電します。 block.thermal-generator.description = 溶岩から大量の電力を発電します。 -block.turbine-generator.description = 水を使って火力発電機より効率的に発電します。 +block.steam-generator.description = 水を使って火力発電機より効率的に発電します。 block.differential-generator.description = 大量の電力を生成します。冷却水と燃焼したピラタイトの温度差を利用します。 block.rtg-generator.description = トリウムリアクターよりも発電量は少ないですが、冷却を必要としない放射性同位体熱発電機(RTG)です。 block.solar-panel.description = 太陽光から少量の電力を発電します。 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index cedeaaf039..22edb927f1 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -993,7 +993,7 @@ block.diode.name = 배터리 다이오드 block.battery.name = 배터리 block.battery-large.name = 대형 배터리 block.combustion-generator.name = 연소 발전기 -block.turbine-generator.name = 증기 발전기 +block.steam-generator.name = 증기 발전기 block.differential-generator.name = 차동 발잔기 block.impact-reactor.name = 임팩트 원자로 block.mechanical-drill.name = 기계식 드릴 @@ -1192,7 +1192,7 @@ block.battery.description = 에너지가 넘쳐날 때 완충재로 전력을 block.battery-large.description = 일반 배터리보다 훨씬 더 많은 전력을 저장합니다. block.combustion-generator.description = 석탄과 같은 가연성 물질을 연소시켜 전력을 생산합니다. block.thermal-generator.description = 열이 있는 곳에 설치하면 전력이 생성됩니다. -block.turbine-generator.description = 고급 연소 발전기. 더 효율적이지만 증기를 생성하기 위해 물이 필요합니다. +block.steam-generator.description = 고급 연소 발전기. 더 효율적이지만 증기를 생성하기 위해 물이 필요합니다. block.differential-generator.description = 많은 양의 전력을 생성합니다. 냉각수와 불타는 파이라타이트의 온도 차이를 이용합니다. block.rtg-generator.description = 간단하고 안정적인 발전기. 붕괴하는 방사성 화합물의 열을 이용하여 느린 속도로 전력을 생성합니다. block.solar-panel.description = 태양으로부터 소량의 전력을 생성합니다. diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 8316b54c06..5541eadcbf 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -993,7 +993,7 @@ block.diode.name = Baterijos Diodas block.battery.name = Baterija block.battery-large.name = Didelė Baterija block.combustion-generator.name = Vidaus Degimo Generatorius -block.turbine-generator.name = Garų Generatorius +block.steam-generator.name = Garų Generatorius block.differential-generator.name = Diferencialinis Generatorius block.impact-reactor.name = Smūginis Reaktorius block.mechanical-drill.name = Mechaninis Grąžtas @@ -1192,7 +1192,7 @@ block.battery.description = Laiko enegiją kaip buferis, kai reikalinga papildom block.battery-large.description = Laiko daugiau energijos negu paprasta baterija. block.combustion-generator.description = Gamina energiją degindamas degias medžiagas kaip anglis. block.thermal-generator.description = Gamina energiją, kai pastatytas karštose vietose. -block.turbine-generator.description = Pažangesnis vidaus degimo generatorius. Efektyvesnis, bet papildomai reikalauja vandens sukurti garams. +block.steam-generator.description = Pažangesnis vidaus degimo generatorius. Efektyvesnis, bet papildomai reikalauja vandens sukurti garams. block.differential-generator.description = Gamina didelį kiekį energijos. Pasitelkia temperatūrų skirtumą tarp krio skysčio ir degančio piratito. block.rtg-generator.description = Paprastas, patikimas generatorius. Naudoja yrančių junginių karštį energijos gamybai. block.solar-panel.description = Suteikia mažą kiekį energijos iš saulės. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 88fba3f8f5..4313b466d5 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -993,7 +993,7 @@ block.diode.name = Batterij Diode block.battery.name = Batterij block.battery-large.name = Grote Batterij block.combustion-generator.name = Fossiele Generator -block.turbine-generator.name = Turbine Generator +block.steam-generator.name = Turbine Generator block.differential-generator.name = Verschiltemperatuurgenerator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mechanische Boor @@ -1192,7 +1192,7 @@ block.battery.description = Stores power whenever there is an abundance and prov block.battery-large.description = Stores much more power than a regular battery. block.combustion-generator.description = Generates power by burning oil or flammable materials. block.thermal-generator.description = Generates power when placed in hot locations. -block.turbine-generator.description = More efficient than a combustion generator, but requires additional water. +block.steam-generator.description = More efficient than a combustion generator, but requires additional water. block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite. block.rtg-generator.description = A radioisotope thermoelectric generator which does not require cooling but provides less power than a thorium reactor. block.solar-panel.description = Genereert een klein beetje zonne-energie. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index e643b1d553..b4cd5a3b2a 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -993,7 +993,7 @@ 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 = Turbine Generator +block.steam-generator.name = Turbine Generator block.differential-generator.name = Differential Generator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mechanical Drill @@ -1192,7 +1192,7 @@ block.battery.description = Stores power whenever there is an abundance and prov block.battery-large.description = Stores much more power than a regular battery. block.combustion-generator.description = Generates power by burning oil or flammable materials. block.thermal-generator.description = Generates power when placed in hot locations. -block.turbine-generator.description = More efficient than a combustion generator, but requires additional water. +block.steam-generator.description = More efficient than a combustion generator, but requires additional water. block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite. block.rtg-generator.description = A radioisotope thermoelectric generator which does not require cooling but provides less power than a thorium reactor. block.solar-panel.description = Provides a small amount of power from the sun. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index a8d15895b9..be0c9c14d8 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -994,7 +994,7 @@ block.diode.name = Dioda baterii block.battery.name = Bateria block.battery-large.name = Duża Bateria block.combustion-generator.name = Generator Spalinowy -block.turbine-generator.name = Generator Parowy +block.steam-generator.name = Generator Parowy block.differential-generator.name = Generator Różnicowy block.impact-reactor.name = Reaktor Uderzeniowy block.mechanical-drill.name = Wiertło Mechaniczne @@ -1193,7 +1193,7 @@ block.battery.description = Przechowuje energię przy nadwyżce produkcji oraz d block.battery-large.description = Przechowuje o wiele wiecej prądu niż standardowa bateria. block.combustion-generator.description = Wytwarza energię poprzez spalanie łatwopalnych materiałów. block.thermal-generator.description = Generuje prąd kiedy jest postawiony na źródłach ciepła. -block.turbine-generator.description = Zaawansowana wersja Generatora Spalinowego. Jest wydajniejszy niż Generator Spalinowy, ale wymaga wody do generowania pary. +block.steam-generator.description = Zaawansowana wersja Generatora Spalinowego. Jest wydajniejszy niż Generator Spalinowy, ale wymaga wody do generowania pary. block.differential-generator.description = Generuje duże ilości prądu. Wykorzystuje różnice temperatur pomiędzy Lodocieczą a spalanym Piratianem. block.rtg-generator.description = Prosty, niezawodny generator. Wykorzystuje ciepło powstałe z rozpadu izotopów promieniotwórczych. Nie wymaga chłodzenia, ale produkuje mniej energii od reaktora torowego. block.solar-panel.description = Wytwarza małe ilości prądu wykorzystując energię słoneczną. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 64d54a3d5d..20b03d870f 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -993,7 +993,7 @@ block.diode.name = Diodo block.battery.name = Bateria block.battery-large.name = Bateria grande block.combustion-generator.name = Gerador à combustão -block.turbine-generator.name = Gerador à vapor +block.steam-generator.name = Gerador à vapor block.differential-generator.name = Gerador diferencial block.impact-reactor.name = Reator De impacto block.mechanical-drill.name = Broca Mecânica @@ -1192,7 +1192,7 @@ block.battery.description = Armazena energia em tempos de energia excedente. Lib block.battery-large.description = Guarda muito mais energia que uma bateria comum. block.combustion-generator.description = Gera energia queimando materiais inflamáveis, como carvão. block.thermal-generator.description = Gera energia quando colocado em lugares quentes. -block.turbine-generator.description = Mais eficiente que o gerador à combustão, mas requer água adicional para a geração de vapor. +block.steam-generator.description = Mais eficiente que o gerador à combustão, mas requer água adicional para a geração de vapor. block.differential-generator.description = Gera grandes quantidades de energia. Utiliza a diferença de temperatura entre o Fluido Criogênico e a Piratita. block.rtg-generator.description = Um Gerador termoelétrico de radioisótopos que não precisa de refriamento mas dá muito menos energia que o reator de tório. block.solar-panel.description = Gera pequenas quantidades de energia do sol. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index c665535ba8..6863e838d1 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = Bateria block.battery-large.name = Bateria Grande block.combustion-generator.name = Gerador a combustão -block.turbine-generator.name = Gerador de Turbina +block.steam-generator.name = Gerador de Turbina block.differential-generator.name = Gerador diferencial block.impact-reactor.name = Reator De Impacto block.mechanical-drill.name = Broca Mecânica @@ -1192,7 +1192,7 @@ block.battery.description = Armazena energia em tempos de energia excedente. Lib block.battery-large.description = Guarda muito mais energia que uma beteria comum. block.combustion-generator.description = Gera energia usando combustível ou petróleo. block.thermal-generator.description = Gera uma quantidade grande de energia usando lava. -block.turbine-generator.description = Mais eficiente que o gerador de Combustão, Mas requer agua adicional. +block.steam-generator.description = Mais eficiente que o gerador de Combustão, Mas requer agua adicional. block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite. block.rtg-generator.description = Um Gerador termoelétrico de radioisótopos Que não precisa de refriamento Mas da muito menos energia que o reator de torio. block.solar-panel.description = Gera pequenas quantidades de energia do sol. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 724dc3c775..c36872eb99 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -20,6 +20,7 @@ gameover = Игра окончена gameover.pvp = [accent]{0}[] команда победила! highscore = [accent]Новый рекорд! copied = Скопировано. +indevpopup = [accent]v6[] находится на стадии [accent]pre-alpha[].\n[lightgray]Это означает следующее:[]\n- Отсутствие контента.\n- Большинство [scarlet]ИИ единиц[] не работает.\n- Множество единиц [scarlet]отсутствует[] или не готово.\n- Кампания не завершена.\n- Всё, что вы видите, может быть изменено или удалено.\n\nСообщайте о багах и вылетах на [accent]Github[]. load.sound = Звуки load.map = Карты @@ -1010,7 +1011,7 @@ block.diode.name = Диод block.battery.name = Аккумулятор block.battery-large.name = Большой аккумулятор block.combustion-generator.name = Генератор внутреннего сгорания -block.turbine-generator.name = Паровой генератор +block.steam-generator.name = Паровой генератор block.differential-generator.name = Дифференциальный генератор block.impact-reactor.name = Импульсный реактор block.mechanical-drill.name = Механический бур @@ -1216,7 +1217,7 @@ block.battery.description = Накапливает энергию как буф block.battery-large.description = Хранит гораздо больше энергии, чем обычный аккумулятор. block.combustion-generator.description = Вырабатывает энергию путём сжигания легковоспламеняющихся материалов, таких как уголь. block.thermal-generator.description = Генерирует энергию, когда находится в горячих местах. -block.turbine-generator.description = Усовершенствованный генератор сгорания. Более эффективен, но дополнительно требует воду для выработки пара. +block.steam-generator.description = Усовершенствованный генератор сгорания. Более эффективен, но дополнительно требует воду для выработки пара. block.differential-generator.description = Генерирует большое количество энергии. Использует разницу температур между криогенной жидкостью и горящим пиротитом. block.rtg-generator.description = Простой, надежный генератор. Использует тепло распадающихся радиоактивных соединений для производства энергии с низкой скоростью. block.solar-panel.description = Обеспечивает небольшое количество энергии от солнца. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index bbe0f390c6..d6f7460f0d 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = Batteri block.battery-large.name = Stort Batteri block.combustion-generator.name = Combustion Generator -block.turbine-generator.name = Ånggenerator +block.steam-generator.name = Ånggenerator block.differential-generator.name = Differential Generator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mekanisk Borr @@ -1192,7 +1192,7 @@ block.battery.description = Stores power as a buffer in times of surplus energy. 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.steam-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. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 8fcf97cb03..dc649c6fe2 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -993,7 +993,7 @@ block.diode.name = ไดโอดแบตเตอรี่ block.battery.name = แบตเตอรี่ block.battery-large.name = แบตเตอรี่ขนาดใหญ่ block.combustion-generator.name = เครื่องกำเนิดไฟฟ้าโดยการสันดาป -block.turbine-generator.name = เครื่องกำเนิดไฟฟ้าไอน้ำ +block.steam-generator.name = เครื่องกำเนิดไฟฟ้าไอน้ำ block.differential-generator.name = เครื่องกำเนิดไฟฟ้าดิฟเฟอเร่นเตอร์ block.impact-reactor.name = เตาปฏิกรณ์อัดกระแทก block.mechanical-drill.name = เครื่องขุดเชิงกล @@ -1192,7 +1192,7 @@ block.battery.description = เก็บพลังงานเป็นบั block.battery-large.description = เก็บพลังงานได้เยอะกว่าแบตเตอรี่ธรรมดา. block.combustion-generator.description = ผลิตพลังงานโดยการวัสดุติดไฟ เช่นถ่านหิน. block.thermal-generator.description = ผลิตพลังงานเมื่อวานในที่ร้อน (บนหินร้อนหรือหินแม็คม่า) -block.turbine-generator.description = เครื่องกำเนิดไฟฟ้าเผาไหม้ขั้นสูง. ประสิทธิภาพสูงกว่า แต่ต้องใช้น้ำด้วยเพื่อผลิตไอน้ำ. +block.steam-generator.description = เครื่องกำเนิดไฟฟ้าเผาไหม้ขั้นสูง. ประสิทธิภาพสูงกว่า แต่ต้องใช้น้ำด้วยเพื่อผลิตไอน้ำ. block.differential-generator.description = ผลิตไฟฟ้าจำนวนมาก. ใช้ความต่างของอุณหภูมิระหว่างไครโยฟลูอิดและไพไรต์ที่กำลังไหม้. block.rtg-generator.description = เครื่องกำเนิดไฟฟ้าที่ใช้ง่ายและไว้ใจได้. ใช้ความร้อนจากการสลายของสารกัมมัตภาพรังสีเพื่อใช้ผลิตพลังงานอย่างช้าๆ. block.solar-panel.description = ให้พลังงานจากแสงอาทิตย์จำนวนน้อย. diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 006ef4ae92..d5bb1dd197 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = batarya block.battery-large.name = buyuk batarya block.combustion-generator.name = sicaklik jenaratoru -block.turbine-generator.name = termal jenaratoru +block.steam-generator.name = termal jenaratoru block.differential-generator.name = Differential Generator block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mekanikal Kazici @@ -1192,7 +1192,7 @@ block.battery.description = Stores power whenever there is an abundance and prov block.battery-large.description = Stores much more power than a regular battery. block.combustion-generator.description = Generates power by burning oil or flammable materials. block.thermal-generator.description = Generates a large amount of power from lava. -block.turbine-generator.description = More efficient than a combustion generator, but requires additional water. +block.steam-generator.description = More efficient than a combustion generator, but requires additional water. block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite. block.rtg-generator.description = A radioisotope thermoelectric generator which does not require cooling but provides less power than a thorium reactor. block.solar-panel.description = Provides a small amount of power from the sun. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 15788e2753..914c5f53a2 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -993,7 +993,7 @@ block.diode.name = Battery Diode block.battery.name = Batarya block.battery-large.name = Büyük Batarya block.combustion-generator.name = Termik Jeneratör -block.turbine-generator.name = Buhar Jeneratörü +block.steam-generator.name = Buhar Jeneratörü block.differential-generator.name = Diferansiyel Jeneratörü block.impact-reactor.name = Patlama Reaktörü block.mechanical-drill.name = Mekanik Matkap @@ -1192,7 +1192,7 @@ block.battery.description = Enerji fazlasını yedek olarak saklar. Enerji açı block.battery-large.description = Sıradan bataryadan çok daha fazla enerji depolar. block.combustion-generator.description = Kömür gibi yanıcı materyalleri yakarak enerji üretir. block.thermal-generator.description = Sıcak bölgelere konulduğunda enerji üretir. -block.turbine-generator.description = Daha gelişmiş bir termik jeneratör. Daha verimlidir, ama buhar üretebilmek için suya ihtiyaç duyar. +block.steam-generator.description = Daha gelişmiş bir termik jeneratör. Daha verimlidir, ama buhar üretebilmek için suya ihtiyaç duyar. block.differential-generator.description = Çok miktarda enerji üretir. Kriyosıvı ve yanan pirratit arasındaki sıcaklık farkından yararlanır. block.rtg-generator.description = Basit, güvenilir bir reaktör. Bozunan radyoaktif materyallerin ısısını kullanır. block.solar-panel.description = Güneşten küçük miktarda enerji üretir. diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 9c02b7b8b4..82b70a15eb 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -20,6 +20,7 @@ gameover = Гра завершена gameover.pvp = [accent]{0}[] команда перемогла! highscore = [accent]Новий рекорд! copied = Скопійовано. +indevpopup = Наразі [accent]6.0[] знаходиться у стадії [accent]pre-alpha[].\n[lightgray]Це означає наступне:[]\n- Не вистачає наповнення гри;\n- Більшість [scarlet]ШІ бойових одиниць[] не працює;\n- Багато одиниць [scarlet]відсутні[] або незавершені;\n- Кампанія повністю не є завершеною;\n- Усе, що ви бачите, може змінитися або видалитися.\n\nПовідомляйте про вади або збої на [accent]Github[], а про помилки в перекладі в Discord. load.sound = Звуки load.map = Мапи @@ -993,7 +994,7 @@ block.diode.name = Діод block.battery.name = Акумулятор block.battery-large.name = Великий акумулятор block.combustion-generator.name = Генератор згорання -block.turbine-generator.name = Паровий генератор +block.steam-generator.name = Паровий генератор block.differential-generator.name = Диференційний генератор block.impact-reactor.name = Імпульсний реактор block.mechanical-drill.name = Механічний бур @@ -1192,7 +1193,7 @@ block.battery.description = Зберігає енергію як буфер в block.battery-large.description = Зберігає набагато більше енергії, ніж звичайний акумулятор. block.combustion-generator.description = Виробляє енергію, спалюючи легкозаймисті матеріали, такі як вугілля. block.thermal-generator.description = Генерує енергію при розміщенні в спекотних місцях. -block.turbine-generator.description = Удосконалений генератор згоряння. Більш ефективний, але потребує додаткової води для отримання пари. +block.steam-generator.description = Удосконалений генератор згоряння. Більш ефективний, але потребує додаткової води для отримання пари. block.differential-generator.description = Удосконалений генератор згоряння. Використовує різницю температур між кріогенною рідиною і піротитом, що горить. block.rtg-generator.description = Простий і надійний генератор. Використовує тепло радіоактивних сполук, які розкладаються, для отримання енергії з повільною швидкістю. block.solar-panel.description = Забезпечує невелику кількість енергії від сонця. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 13cf2709e2..f3b85a3464 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -993,7 +993,7 @@ block.diode.name = 二极管 block.battery.name = 电池 block.battery-large.name = 大型电池 block.combustion-generator.name = 火力发电机 -block.turbine-generator.name = 涡轮发电机 +block.steam-generator.name = 涡轮发电机 block.differential-generator.name = 温差发电机 block.impact-reactor.name = 冲击反应堆 block.mechanical-drill.name = 机械钻头 @@ -1192,7 +1192,7 @@ block.battery.description = 存储能量作为缓冲,在发电量不足时提 block.battery-large.description = 比普通电池容量更大。 block.combustion-generator.description = 燃烧煤等材料发电。 block.thermal-generator.description = 放置在炽热的地形上能够发电。 -block.turbine-generator.description = 先进的火力发电机,效率更高,但需要水来产生蒸汽。 +block.steam-generator.description = 先进的火力发电机,效率更高,但需要水来产生蒸汽。 block.differential-generator.description = 利用低温流体与燃烧的硫之间的温差产生大量能量。 block.rtg-generator.description = 一种简单可靠的发电机。利用放射性化合物的衰变产生的热量,以缓慢的速度产生能量。 block.solar-panel.description = 普通太阳能板,提供少量电力。 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index ea90067971..cf729a4a7f 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -993,7 +993,7 @@ block.diode.name = 二極體 block.battery.name = 電池 block.battery-large.name = 大型電池 block.combustion-generator.name = 燃燒發電機 -block.turbine-generator.name = 渦輪發電機 +block.steam-generator.name = 渦輪發電機 block.differential-generator.name = 差動發電機 block.impact-reactor.name = 衝擊反應堆 block.mechanical-drill.name = 機械鑽頭 @@ -1192,7 +1192,7 @@ block.battery.description = 有能量剩餘時存儲電力並在能量短缺時 block.battery-large.description = 比普通電池存儲更多的能量。 block.combustion-generator.description = 透過燃燒原油或可燃物品以產生能量。 block.thermal-generator.description = 放置在熱的位置時會產生能量。 -block.turbine-generator.description = 比燃燒發電機更有效率,但需要水才能運作。 +block.steam-generator.description = 比燃燒發電機更有效率,但需要水才能運作。 block.differential-generator.description = 利用冷卻液和燃燒火焰彈之間的溫差產生大量的能量。 block.rtg-generator.description = 一種簡單、可靠的發電機,使用放射性化合物衰變所產生的熱產生少量能量。不需要冷卻,但產生的能量比釷反應堆少。 block.solar-panel.description = 透過太陽產生少量的能量。 diff --git a/core/assets/contributors b/core/assets/contributors index ed908aac6f..926b3d17d4 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -89,4 +89,5 @@ Daniel Dusek DeltaNedas GioIacca9 SnakkiZXZ -Summet +sk772 +Summet \ No newline at end of file diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 278b00dc51..34b7b46d8c 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -134,7 +134,7 @@ 63610=battery-large|block-battery-large-medium 63609=combustion-generator|block-combustion-generator-medium 63608=thermal-generator|block-thermal-generator-medium -63607=turbine-generator|block-turbine-generator-medium +63607=steam-generator|block-steam-generator-medium 63606=differential-generator|block-differential-generator-medium 63605=rtg-generator|block-rtg-generator-medium 63604=solar-panel|block-solar-panel-medium @@ -287,3 +287,26 @@ 63457=memory-cell|block-memory-cell-medium 63456=payload-conveyor|block-payload-conveyor-medium 63455=hyper-processor|block-hyper-processor-medium +63454=toxopid|unit-toxopid-medium +63453=vestige|unit-vestige-medium +63452=cataclyst|unit-cataclyst-medium +63451=scepter|unit-scepter-medium +63450=reign|unit-reign-medium +63449=dirt|block-dirt-medium +63448=dirtwall|block-dirtwall-medium +63447=stone-wall|block-stone-wall-medium +63446=spore-wall|block-spore-wall-medium +63445=ice-wall|block-ice-wall-medium +63444=snow-wall|block-snow-wall-medium +63443=dune-wall|block-dune-wall-medium +63442=sand-wall|block-sand-wall-medium +63441=salt-wall|block-salt-wall-medium +63440=shale-wall|block-shale-wall-medium +63439=dirt-wall|block-dirt-wall-medium +63438=holostone-wall|block-holostone-wall-medium +63437=basalt|block-basalt-medium +63436=dacite|block-dacite-medium +63435=boulder|block-boulder-medium +63434=snow-boulder|block-snow-boulder-medium +63433=dacite-wall|block-dacite-wall-medium +63432=dacite-boulder|block-dacite-boulder-medium diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav index 2415d16ae4..c154c2e4db 100644 Binary files a/core/assets/maps/fungalPass.msav and b/core/assets/maps/fungalPass.msav differ diff --git a/core/assets/planets/serpulo.dat b/core/assets/planets/serpulo.dat index d31bf6c11c..3a1465dfde 100644 Binary files a/core/assets/planets/serpulo.dat and b/core/assets/planets/serpulo.dat differ diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js index 04ebb37a27..5377350e3d 100755 --- a/core/assets/scripts/global.js +++ b/core/assets/scripts/global.js @@ -79,6 +79,7 @@ importPackage(Packages.mindustry.maps) importPackage(Packages.mindustry.maps.filters) importPackage(Packages.mindustry.maps.generators) importPackage(Packages.mindustry.maps.planet) +importPackage(Packages.mindustry.net) importPackage(Packages.mindustry.type) importPackage(Packages.mindustry.ui) importPackage(Packages.mindustry.ui.dialogs) @@ -124,7 +125,7 @@ const BlockBuildBeginEvent = Packages.mindustry.game.EventType.BlockBuildBeginEv const ResearchEvent = Packages.mindustry.game.EventType.ResearchEvent const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent -const BuildinghangeEvent = Packages.mindustry.game.EventType.BuildinghangeEvent +const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent const DepositEvent = Packages.mindustry.game.EventType.DepositEvent diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index ea02d69e0d..17de082513 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 0410a7e3fe..6986f163f0 100644 --- a/core/assets/sprites/fallback/sprites.atlas +++ b/core/assets/sprites/fallback/sprites.atlas @@ -88,13 +88,6 @@ tetrative-reconstructor-top orig: 288, 288 offset: 0, 0 index: -1 -circle-shadow - rotate: false - xy: 1387, 50 - size: 201, 201 - orig: 201, 201 - offset: 0, 0 - index: -1 antumbra-wreck0 rotate: false xy: 1613, 479 @@ -130,41 +123,6 @@ block-tetrative-reconstructor-full orig: 288, 288 offset: 0, 0 index: -1 -cracks-6-0 - rotate: false - xy: 1590, 43 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 -cracks-6-1 - rotate: false - xy: 1784, 43 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 -cracks-6-2 - rotate: false - xy: 775, 97 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 -cracks-6-3 - rotate: false - xy: 969, 27 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 -cracks-6-4 - rotate: false - xy: 1163, 27 - size: 192, 192 - orig: 192, 192 - offset: 0, 0 - index: -1 cracks-7-0 rotate: false xy: 1161, 673 @@ -354,6 +312,27 @@ eclipse-wreck2 orig: 320, 320 offset: 0, 0 index: -1 +reign-wreck0 + rotate: false + xy: 1603, 95 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 +reign-wreck1 + rotate: false + xy: 1819, 95 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 +reign-wreck2 + rotate: false + xy: 807, 209 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 unit-antumbra-full rotate: false xy: 1831, 237 @@ -368,9 +347,16 @@ unit-eclipse-full orig: 320, 320 offset: 0, 0 index: -1 +unit-reign-full + rotate: false + xy: 775, 67 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 circle rotate: false - xy: 1839, 1050 + xy: 991, 6 size: 201, 201 orig: 201, 201 offset: 0, 0 @@ -403,6 +389,27 @@ eclipse-cell orig: 320, 320 offset: 0, 0 index: -1 +reign + rotate: false + xy: 1387, 111 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 +toxopid-cannon + rotate: false + xy: 1839, 1031 + size: 206, 220 + orig: 206, 220 + offset: 0, 0 + index: -1 +toxopid-leg-base + rotate: false + xy: 1, 33 + size: 270, 64 + orig: 270, 64 + offset: 0, 0 + index: -1 sprites2.png size: 2048,2048 @@ -411,6079 +418,6247 @@ filter: nearest,nearest repeat: none core-silo rotate: false - xy: 713, 1887 + xy: 1810, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 launch-pad rotate: false - xy: 1239, 1199 + xy: 1135, 881 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large rotate: false - xy: 1657, 1627 + xy: 487, 141 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 launch-pad-light rotate: false - xy: 1239, 1101 + xy: 1237, 1253 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launchpod rotate: false - xy: 809, 261 + xy: 1673, 238 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 force-projector rotate: false - xy: 929, 711 + xy: 1139, 387 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector-top rotate: false - xy: 1027, 709 + xy: 1139, 289 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 941, 243 + xy: 1871, 277 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 1007, 309 + xy: 1871, 211 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-dome rotate: false - xy: 1741, 1317 + xy: 1331, 959 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-top rotate: false - xy: 1839, 1341 + xy: 1429, 959 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 941, 177 + xy: 1871, 145 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 1007, 243 + xy: 1855, 759 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-loader rotate: false - xy: 749, 1121 + xy: 845, 579 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader rotate: false - xy: 423, 195 + xy: 943, 579 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -armored-conveyor-0-0 - rotate: false - xy: 229, 31 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-armored-conveyor-full - rotate: false - xy: 229, 31 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-0-1 - rotate: false - xy: 929, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-0-2 - rotate: false - xy: 963, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-0-3 - rotate: false - xy: 997, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-1-0 - rotate: false - xy: 1031, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-1-1 - rotate: false - xy: 1065, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-1-2 - rotate: false - xy: 1411, 89 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-1-3 - rotate: false - xy: 1955, 281 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-2-0 - rotate: false - xy: 1955, 247 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-2-1 - rotate: false - xy: 2000, 547 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-2-2 - rotate: false - xy: 2000, 513 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-2-3 - rotate: false - xy: 2000, 479 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-3-0 - rotate: false - xy: 2000, 445 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-3-1 - rotate: false - xy: 2013, 979 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-3-2 - rotate: false - xy: 1913, 197 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-3-3 - rotate: false - xy: 1905, 163 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-4-0 - rotate: false - xy: 1905, 129 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-4-1 - rotate: false - xy: 1905, 95 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-4-2 - rotate: false - xy: 1955, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -armored-conveyor-4-3 - rotate: false - xy: 2000, 411 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 distributor rotate: false - xy: 751, 393 + xy: 1629, 423 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver-base rotate: false - xy: 1027, 513 + xy: 1433, 1155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-conveyor rotate: false - xy: 1937, 1341 + xy: 1527, 959 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-conveyor-edge rotate: false - xy: 1839, 1243 + xy: 1233, 861 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-conveyor-top rotate: false - xy: 1937, 1243 + xy: 1331, 861 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-top rotate: false - xy: 1937, 1243 + xy: 1331, 861 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router rotate: false - xy: 1643, 1219 + xy: 1429, 861 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-edge rotate: false - xy: 1741, 1219 + xy: 1527, 861 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-over rotate: false - xy: 1839, 1145 + xy: 1629, 1219 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-drill rotate: false - xy: 305, 1437 + xy: 349, 1107 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 305, 1307 + xy: 487, 1311 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 305, 1177 + xy: 479, 1181 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 305, 1047 + xy: 479, 1051 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 677, 261 + xy: 1607, 357 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -turbine-generator-liquid +steam-generator-liquid rotate: false - xy: 677, 261 + xy: 1607, 357 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 1153, 1297 + xy: 1139, 1273 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rim rotate: false - xy: 929, 613 + xy: 1139, 1175 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 1027, 611 + xy: 1139, 1077 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 1251, 1297 + xy: 1135, 979 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 949, 375 + xy: 1827, 475 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 1015, 375 + xy: 1827, 409 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 941, 309 + xy: 1827, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 oil-extractor rotate: false - xy: 1337, 1101 + xy: 1335, 1057 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-liquid rotate: false - xy: 1447, 1301 + xy: 1433, 1057 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-rotator rotate: false - xy: 1545, 1301 + xy: 1531, 1057 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-top rotate: false - xy: 1643, 1317 + xy: 1233, 959 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 1063, 45 + xy: 1893, 429 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 1073, 309 + xy: 1893, 363 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 1073, 243 + xy: 1959, 495 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -water-extractor - rotate: false - xy: 1881, 947 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -water-extractor-liquid - rotate: false - xy: 1815, 815 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -water-extractor-rotator - rotate: false - xy: 1881, 881 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -water-extractor-top - rotate: false - xy: 1947, 947 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -block-border - rotate: false - xy: 1915, 61 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-middle - rotate: false - xy: 1949, 61 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-select - rotate: false - xy: 1761, 32 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 place-arrow rotate: false - xy: 1937, 1145 + xy: 1629, 1121 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-bottom rotate: false - xy: 537, 594 + xy: 1335, 1253 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-liquid rotate: false - xy: 635, 533 + xy: 1237, 1155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-top rotate: false - xy: 733, 533 + xy: 1433, 1253 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 1139, 150 + xy: 1937, 99 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 1321, 807 + xy: 1237, 567 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 hyper-processor rotate: false - xy: 831, 631 + xy: 1041, 1273 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-display rotate: false - xy: 831, 533 + xy: 1335, 1155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor rotate: false - xy: 743, 129 + xy: 1605, 159 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -battery - rotate: false - xy: 1983, 377 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 battery-large rotate: false - xy: 1867, 1439 + xy: 747, 328 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 663, 1317 + xy: 747, 230 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -battery-top - rotate: false - xy: 1813, 44 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 differential-generator rotate: false - xy: 733, 827 + xy: 1041, 289 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-liquid rotate: false - xy: 831, 925 + xy: 1041, 191 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-top rotate: false - xy: 733, 729 + xy: 1041, 93 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 impact-reactor rotate: false - xy: 747, 1627 + xy: 1421, 1465 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-bottom rotate: false - xy: 877, 1627 + xy: 1551, 1465 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-light rotate: false - xy: 1007, 1627 + xy: 1681, 1465 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-0 rotate: false - xy: 1137, 1627 + xy: 1811, 1465 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-1 rotate: false - xy: 1267, 1627 + xy: 487, 531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-2 rotate: false - xy: 1397, 1627 + xy: 487, 401 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-3 rotate: false - xy: 1527, 1627 + xy: 487, 271 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 1073, 177 + xy: 1959, 429 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 1139, 84 + xy: 1671, 106 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 solar-panel-large rotate: false - xy: 1223, 709 + xy: 1433, 763 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -surge-tower - rotate: false - xy: 1683, 680 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -thermal-generator - rotate: false - xy: 1749, 944 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 thorium-reactor rotate: false - xy: 1223, 611 + xy: 1335, 665 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-lights rotate: false - xy: 1321, 709 + xy: 1237, 469 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-top rotate: false - xy: 1223, 513 + xy: 1335, 567 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -turbine-generator - rotate: false - xy: 1749, 746 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-cap - rotate: false - xy: 1749, 680 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-top - rotate: false - xy: 1749, 614 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-turbine0 - rotate: false - xy: 1749, 548 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-turbine1 - rotate: false - xy: 1815, 947 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 alloy-smelter rotate: false - xy: 1671, 1415 + xy: 747, 524 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 1769, 1439 + xy: 747, 426 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-mixer rotate: false - xy: 1333, 447 + xy: 1778, 673 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-forge rotate: false - xy: 957, 1297 + xy: 1941, 1529 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 coal-centrifuge rotate: false - xy: 1419, 739 + xy: 1475, 324 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 1465, 421 + xy: 1539, 192 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 1465, 355 + xy: 1539, 126 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 1531, 421 + xy: 1563, 456 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 1531, 355 + xy: 1575, 60 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 667, 15 + xy: 1629, 489 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 685, 393 + xy: 1695, 502 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 disassembler rotate: false - xy: 831, 827 + xy: 1037, 975 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-liquid rotate: false - xy: 831, 729 + xy: 1037, 877 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-spinner rotate: false - xy: 941, 1003 + xy: 1121, 779 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 677, 195 + xy: 1761, 409 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln rotate: false - xy: 743, 261 + xy: 1695, 370 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 809, 327 + xy: 1673, 304 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 809, 327 + xy: 1673, 304 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 multi-press rotate: false - xy: 1349, 1297 + xy: 1531, 1155 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 1007, 111 + xy: 1921, 693 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 733, 63 + xy: 1844, 627 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 799, 63 + xy: 1844, 561 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 865, 47 + xy: 1910, 627 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 931, 45 + xy: 1910, 561 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 1139, 348 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -separator - rotate: false - xy: 1617, 750 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -separator-liquid - rotate: false - xy: 1551, 618 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -separator-spinner - rotate: false - xy: 1617, 684 + xy: 1937, 297 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-crucible rotate: false - xy: 1223, 807 + xy: 1335, 763 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-crucible-top rotate: false - xy: 1321, 905 + xy: 1237, 665 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -silicon-smelter - rotate: false - xy: 1551, 552 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -spore-press - rotate: false - xy: 1617, 618 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -spore-press-frame0 - rotate: false - xy: 1617, 552 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -spore-press-frame1 - rotate: false - xy: 1683, 944 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -spore-press-frame2 - rotate: false - xy: 1683, 878 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -spore-press-liquid - rotate: false - xy: 1683, 812 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -spore-press-top - rotate: false - xy: 1683, 746 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -rock1 - rotate: false - xy: 1663, 71 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -rock2 - rotate: false - xy: 1713, 274 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -snowrock1 - rotate: false - xy: 1713, 74 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -snowrock2 - rotate: false - xy: 1763, 274 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -spore-cluster1 - rotate: false - xy: 1345, 47 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -spore-cluster2 - rotate: false - xy: 1345, 5 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -spore-cluster3 - rotate: false - xy: 149, 23 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 container rotate: false - xy: 1419, 607 + xy: 1407, 215 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation rotate: false - xy: 617, 1757 + xy: 465, 661 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team rotate: false - xy: 747, 1757 + xy: 901, 1583 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus rotate: false - xy: 389, 1887 + xy: 1, 158 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-nucleus-team rotate: false - xy: 1, 1337 + xy: 1324, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard rotate: false - xy: 423, 97 + xy: 943, 481 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team rotate: false - xy: 549, 1084 + xy: 943, 383 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 vault rotate: false - xy: 1321, 513 + xy: 1237, 371 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -arc-heat - rotate: false - xy: 2001, 1799 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-1 - rotate: false - xy: 1847, 44 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-2 rotate: false - xy: 1267, 381 + xy: 1778, 607 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 761, 1317 + xy: 747, 132 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 305, 917 + xy: 349, 977 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -hail-heat - rotate: false - xy: 2007, 863 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 lancer-heat rotate: false - xy: 743, 195 + xy: 1607, 225 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 meltdown-heat rotate: false - xy: 1917, 1667 + xy: 595, 791 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ripple-heat rotate: false - xy: 1125, 807 + xy: 1625, 925 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 1195, 18 + xy: 1803, 79 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 1551, 948 + xy: 1869, 79 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 1551, 882 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -wave-liquid - rotate: false - xy: 1881, 815 + xy: 1935, 33 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 additive-reconstructor rotate: false - xy: 1377, 1399 + xy: 841, 1069 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 additive-reconstructor-top rotate: false - xy: 1475, 1399 + xy: 841, 971 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 1573, 1415 + xy: 747, 622 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 command-center rotate: false - xy: 1419, 673 + xy: 1409, 281 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 factory-in-3 rotate: false - xy: 1039, 1003 + xy: 1139, 681 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-in-5 rotate: false - xy: 1, 365 + xy: 173, 584 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-out-3 rotate: false - xy: 1027, 905 + xy: 1139, 583 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-out-5 rotate: false - xy: 1523, 1887 + xy: 163, 422 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-top-3 rotate: false - xy: 1027, 807 + xy: 1139, 485 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 733, 631 + xy: 1139, 93 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multiplicative-reconstructor rotate: false - xy: 1, 203 + xy: 163, 260 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 multiplicative-reconstructor-top rotate: false - xy: 1685, 1887 + xy: 163, 98 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 naval-factory rotate: false - xy: 1337, 1199 + xy: 1237, 1057 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rally-point rotate: false - xy: 1139, 282 + xy: 1937, 231 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 resupply-point rotate: false - xy: 1139, 216 + xy: 1937, 165 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 1419, 541 + xy: 1475, 258 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large rotate: false - xy: 817, 393 + xy: 1695, 436 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 677, 327 + xy: 1761, 475 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 941, 111 + xy: 1855, 693 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 997, 45 + xy: 1893, 495 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-gigantic rotate: false - xy: 877, 1497 + xy: 629, 1441 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge2 rotate: false - xy: 1223, 905 + xy: 1723, 811 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 1333, 1003 + xy: 1237, 763 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 1551, 816 + xy: 1976, 627 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 1617, 882 + xy: 1976, 561 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 1551, 750 + xy: 1707, 13 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 1617, 816 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -surge-wall-large - rotate: false - xy: 1683, 614 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -thorium-wall-large - rotate: false - xy: 1749, 878 + xy: 1773, 13 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster rotate: false - xy: 1137, 1497 + xy: 609, 921 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -titanium-wall-large - rotate: false - xy: 1749, 812 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -bullet - rotate: false - xy: 1829, 378 - size: 52, 52 - orig: 52, 52 - offset: 0, 0 - index: -1 -bullet-back - rotate: false - xy: 1597, 317 - size: 52, 52 - orig: 52, 52 - offset: 0, 0 - index: -1 circle-end rotate: false - xy: 549, 1182 + xy: 725, 720 size: 100, 199 orig: 100, 199 offset: 0, 0 index: -1 -error +circle-shadow rotate: false - xy: 1513, 255 - size: 48, 48 - orig: 48, 48 + xy: 1, 1846 + size: 201, 201 + orig: 201, 201 offset: 0, 0 index: -1 laser-end rotate: false - xy: 603, 229 + xy: 1237, 66 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 603, 155 + xy: 1335, 339 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 -missile - rotate: false - xy: 2005, 783 - size: 36, 36 - orig: 36, 36 - offset: 0, 0 - index: -1 -missile-back - rotate: false - xy: 891, 9 - size: 36, 36 - orig: 36, 36 - offset: 0, 0 - index: -1 parallax-laser-end rotate: false - xy: 603, 81 + xy: 1333, 265 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 -particle - rotate: false - xy: 1303, 5 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -shell - rotate: false - xy: 1373, 93 - size: 36, 36 - orig: 36, 36 - offset: 0, 0 - index: -1 -shell-back - rotate: false - xy: 191, 27 - size: 36, 36 - orig: 36, 36 - offset: 0, 0 - index: -1 -alpha-wreck0 - rotate: false - xy: 1265, 331 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -alpha-wreck1 - rotate: false - xy: 1315, 331 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -alpha-wreck2 - rotate: false - xy: 1365, 331 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -arc - rotate: false - xy: 107, 1 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 arkyid-wreck0 rotate: false - xy: 163, 325 + xy: 499, 1441 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck1 rotate: false - xy: 163, 195 + xy: 357, 1367 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck2 rotate: false - xy: 155, 65 + xy: 349, 1237 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 atrax-wreck0 rotate: false - xy: 1525, 1081 + xy: 1531, 729 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck1 rotate: false - xy: 1431, 1015 + xy: 1531, 663 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck2 rotate: false - xy: 1521, 1015 + xy: 1529, 597 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 -beta-wreck0 - rotate: false - xy: 1313, 281 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -beta-wreck1 - rotate: false - xy: 1263, 181 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -beta-wreck2 - rotate: false - xy: 1313, 231 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-additive-reconstructor-full rotate: false - xy: 859, 1317 + xy: 747, 34 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-air-factory-full rotate: false - xy: 651, 1219 + xy: 1911, 1367 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-arc-full - rotate: false - xy: 1881, 55 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-blast-drill-full rotate: false - xy: 305, 787 + xy: 335, 847 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -block-char-full - rotate: false - xy: 1983, 343 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-cliffs-full - rotate: false - xy: 1881, 21 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-conduit-full - rotate: false - xy: 1915, 27 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-conveyor-full - rotate: false - xy: 1387, 55 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -conveyor-0-0 - rotate: false - xy: 1387, 55 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-core-foundation-full rotate: false - xy: 305, 657 + xy: 335, 717 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-core-nucleus-full rotate: false - xy: 1, 1499 + xy: 1, 482 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 block-core-shard-full rotate: false - xy: 749, 1219 + xy: 1907, 1269 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-craters-full - rotate: false - xy: 1387, 21 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-cryofluidmixer-full rotate: false - xy: 1333, 381 + xy: 1778, 541 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 1399, 447 + xy: 1899, 957 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 847, 1219 + xy: 1941, 1627 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-dark-metal-full - rotate: false - xy: 1421, 55 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-darksand-full - rotate: false - xy: 1421, 21 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-dunerocks-full - rotate: false - xy: 1455, 63 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-duo-full - rotate: false - xy: 1489, 63 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-fuse-full rotate: false - xy: 1055, 1297 + xy: 943, 1171 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-grass-full - rotate: false - xy: 1455, 29 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-ground-factory-full rotate: false - xy: 945, 1199 + xy: 841, 873 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-hail-full - rotate: false - xy: 1523, 63 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-holostone-full - rotate: false - xy: 1489, 29 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-hotrock-full - rotate: false - xy: 1523, 29 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-full - rotate: false - xy: 1557, 53 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-full - rotate: false - xy: 1557, 19 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-icerocks-full - rotate: false - xy: 1591, 33 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ignarock-full - rotate: false - xy: 1625, 33 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-impact-reactor-full rotate: false - xy: 293, 527 + xy: 335, 587 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 1399, 381 + xy: 1895, 891 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-laser-drill-full rotate: false - xy: 1043, 1199 + xy: 827, 775 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-liquid-router-full - rotate: false - xy: 1939, 163 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-liquid-tank-full rotate: false - xy: 651, 1121 + xy: 845, 677 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-magmarock-full - rotate: false - xy: 1939, 129 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-mass-driver-full rotate: false - xy: 847, 1121 + xy: 845, 481 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 1705, 1076 + xy: 1895, 825 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 293, 397 + xy: 479, 921 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -block-metal-floor-damaged-full - rotate: false - xy: 1939, 95 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-moss-full - rotate: false - xy: 1949, 27 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-multiplicative-reconstructor-full rotate: false - xy: 195, 1693 + xy: 1, 320 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 block-naval-factory-full rotate: false - xy: 945, 1101 + xy: 845, 383 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-oil-extractor-full rotate: false - xy: 1043, 1101 + xy: 845, 285 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-ore-coal-full - rotate: false - xy: 1663, 37 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-copper-full - rotate: false - xy: 1697, 37 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-lead-full - rotate: false - xy: 1989, 309 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-scrap-full - rotate: false - xy: 1989, 275 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-thorium-full - rotate: false - xy: 1989, 241 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-titanium-full - rotate: false - xy: 1989, 207 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-parallax-full rotate: false - xy: 1693, 1010 + xy: 1311, 53 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-payload-conveyor-full rotate: false - xy: 435, 587 + xy: 845, 187 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-conveyor-icon rotate: false - xy: 435, 587 + xy: 845, 187 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-payload-router-full rotate: false - xy: 423, 489 + xy: 845, 89 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon rotate: false - xy: 423, 489 + xy: 845, 89 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-pebbles-full - rotate: false - xy: 1973, 173 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-phase-weaver-full rotate: false - xy: 1771, 1087 + xy: 1377, 53 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-plated-conduit-full - rotate: false - xy: 1973, 139 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-pneumatic-drill-full rotate: false - xy: 1837, 1079 + xy: 1965, 957 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-pulse-conduit-full - rotate: false - xy: 1973, 105 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pulverizer-full - rotate: false - xy: 2007, 173 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-repair-point-full - rotate: false - xy: 2007, 139 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-ripple-full rotate: false - xy: 423, 391 + xy: 925, 775 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-rock-full - rotate: false - xy: 1363, 281 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-rocks-full - rotate: false - xy: 2007, 105 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-saltrocks-full - rotate: false - xy: 1983, 71 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-salvo-full rotate: false - xy: 1903, 1079 + xy: 1961, 891 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-sand-boulder-full - rotate: false - xy: 1983, 37 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-full - rotate: false - xy: 1983, 3 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sandrocks-full - rotate: false - xy: 1659, 3 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-scatter-full rotate: false - xy: 1969, 1079 + xy: 1961, 825 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-scorch-full - rotate: false - xy: 1693, 3 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-full - rotate: false - xy: 1727, 3 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -scrap-wall1 - rotate: false - xy: 1727, 3 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 block-scrap-wall-huge-full rotate: false - xy: 423, 293 + xy: 943, 677 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge1 rotate: false - xy: 423, 293 + xy: 943, 677 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 1771, 1021 + xy: 1619, 555 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 1837, 1013 + xy: 1409, 347 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-shale-boulder-full - rotate: false - xy: 1795, 10 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shale-full - rotate: false - xy: 1829, 10 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrock-full - rotate: false - xy: 1313, 181 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-spectre-full rotate: false - xy: 293, 267 + xy: 465, 791 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -block-spore-cluster-full - rotate: false - xy: 2007, 905 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 block-spore-press-full rotate: false - xy: 1903, 1013 + xy: 1433, 522 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +block-steam-generator-full + rotate: false + xy: 1431, 456 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 1969, 1013 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -block-turbine-generator-full - rotate: false - xy: 1419, 937 + xy: 1499, 522 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 1419, 871 + xy: 1497, 456 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 1419, 805 + xy: 1475, 390 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bryde-wreck0 rotate: false - xy: 163, 1141 + xy: 509, 1713 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck1 rotate: false - xy: 163, 999 + xy: 651, 1713 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck2 rotate: false - xy: 163, 857 + xy: 793, 1713 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 core-foundation-team-crux rotate: false - xy: 877, 1757 + xy: 1031, 1615 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team-sharded rotate: false - xy: 1007, 1757 + xy: 1161, 1615 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus-team-crux rotate: false - xy: 551, 1887 + xy: 1486, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-nucleus-team-sharded rotate: false - xy: 1, 1175 + xy: 1648, 1887 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard-team-crux rotate: false - xy: 537, 986 + xy: 943, 285 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team-sharded rotate: false - xy: 537, 888 + xy: 943, 187 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 1485, 949 + xy: 1473, 192 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 1485, 883 + xy: 1407, 149 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 1485, 817 + xy: 1473, 126 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 1485, 751 + xy: 1443, 60 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 1485, 685 + xy: 1509, 60 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 1485, 619 + xy: 1541, 390 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 1485, 553 + xy: 1541, 324 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 1485, 487 + xy: 1541, 258 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-3-0 rotate: false - xy: 537, 790 + xy: 943, 89 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-1 rotate: false - xy: 537, 692 + xy: 943, 1073 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-2 rotate: false - xy: 647, 1023 + xy: 939, 975 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-3 rotate: false - xy: 745, 1023 + xy: 939, 877 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-4 rotate: false - xy: 843, 1023 + xy: 1023, 779 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-5 rotate: false - xy: 635, 925 + xy: 1041, 681 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-6 rotate: false - xy: 635, 827 + xy: 1041, 583 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-7 rotate: false - xy: 733, 925 + xy: 1041, 485 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-4-0 rotate: false - xy: 1137, 1757 + xy: 1291, 1595 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-1 rotate: false - xy: 1267, 1757 + xy: 1421, 1595 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-2 rotate: false - xy: 1397, 1757 + xy: 1551, 1595 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-3 rotate: false - xy: 1527, 1757 + xy: 1681, 1595 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-4 rotate: false - xy: 1657, 1757 + xy: 1811, 1595 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-5 rotate: false - xy: 357, 1595 + xy: 1031, 1485 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-6 rotate: false - xy: 487, 1627 + xy: 1161, 1485 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-7 rotate: false - xy: 617, 1627 + xy: 1291, 1465 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-5-0 rotate: false - xy: 1, 1013 + xy: 980, 1745 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-1 rotate: false - xy: 875, 1887 + xy: 1142, 1745 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-2 rotate: false - xy: 1, 851 + xy: 1304, 1725 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-3 rotate: false - xy: 1037, 1887 + xy: 1466, 1725 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-4 rotate: false - xy: 1, 689 + xy: 1628, 1725 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-5 rotate: false - xy: 1199, 1887 + xy: 1790, 1725 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-6 rotate: false - xy: 1, 527 + xy: 173, 908 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-7 rotate: false - xy: 1361, 1887 + xy: 173, 746 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 +cracks-6-0 + rotate: false + xy: 1, 1652 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 +cracks-6-1 + rotate: false + xy: 204, 1855 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 +cracks-6-2 + rotate: false + xy: 1, 1458 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 +cracks-6-3 + rotate: false + xy: 398, 1855 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 +cracks-6-4 + rotate: false + xy: 1, 1264 + size: 192, 192 + orig: 192, 192 + offset: 0, 0 + index: -1 cracks-6-5 rotate: false - xy: 1, 1855 + xy: 592, 1855 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-6 rotate: false - xy: 1, 1661 + xy: 1, 1070 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-7 rotate: false - xy: 195, 1855 + xy: 786, 1855 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 -crawler-wreck0 - rotate: false - xy: 1363, 131 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -crawler-wreck1 - rotate: false - xy: 1413, 273 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -crawler-wreck2 - rotate: false - xy: 1413, 223 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 cyclone rotate: false - xy: 635, 729 + xy: 1041, 387 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dagger-wreck0 - rotate: false - xy: 1515, 305 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -dagger-wreck1 - rotate: false - xy: 1463, 255 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -dagger-wreck2 - rotate: false - xy: 1463, 205 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -flare-wreck0 - rotate: false - xy: 1513, 97 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -flare-wreck1 - rotate: false - xy: 1941, 731 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -flare-wreck2 - rotate: false - xy: 1991, 731 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 fortress-wreck0 rotate: false - xy: 765, 1415 + xy: 1703, 1317 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck1 rotate: false - xy: 435, 991 + xy: 1805, 1301 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck2 rotate: false - xy: 867, 1415 + xy: 759, 1371 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fuse rotate: false - xy: 635, 631 + xy: 1139, 191 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -gamma-wreck0 - rotate: false - xy: 1205, 190 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -gamma-wreck1 - rotate: false - xy: 1205, 132 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -gamma-wreck2 - rotate: false - xy: 733, 5 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 horizon-wreck0 rotate: false - xy: 759, 459 + xy: 1825, 981 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck1 rotate: false - xy: 603, 303 + xy: 1821, 907 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck2 rotate: false - xy: 833, 459 + xy: 1821, 833 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 -item-blast-compound-large - rotate: false - xy: 107, 35 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-blast-compound-xlarge - rotate: false - xy: 1873, 565 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-coal-large - rotate: false - xy: 435, 1503 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-coal-xlarge - rotate: false - xy: 1900, 515 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-copper-large - rotate: false - xy: 1205, 90 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-copper-xlarge - rotate: false - xy: 1931, 681 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-graphite-large - rotate: false - xy: 1913, 273 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-graphite-xlarge - rotate: false - xy: 1981, 681 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-lead-large - rotate: false - xy: 1863, 173 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-lead-xlarge - rotate: false - xy: 1925, 631 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-metaglass-large - rotate: false - xy: 2001, 1959 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-metaglass-xlarge - rotate: false - xy: 1975, 631 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-phase-fabric-large - rotate: false - xy: 1913, 231 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-phase-fabric-xlarge - rotate: false - xy: 1923, 581 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-plastanium-large - rotate: false - xy: 1863, 131 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-plastanium-xlarge - rotate: false - xy: 1973, 581 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-pyratite-large - rotate: false - xy: 2001, 1917 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-pyratite-xlarge - rotate: false - xy: 1950, 531 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-sand-large - rotate: false - xy: 1863, 89 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-sand-xlarge - rotate: false - xy: 1950, 481 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-scrap-large - rotate: false - xy: 2001, 1875 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-scrap-xlarge - rotate: false - xy: 1900, 465 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-silicon-large - rotate: false - xy: 2001, 1833 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-silicon-xlarge - rotate: false - xy: 1887, 415 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-spore-pod-large - rotate: false - xy: 2005, 821 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-spore-pod-xlarge - rotate: false - xy: 1883, 365 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-surge-alloy-large - rotate: false - xy: 849, 5 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-surge-alloy-xlarge - rotate: false - xy: 1950, 431 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-thorium-large - rotate: false - xy: 1247, 89 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-thorium-xlarge - rotate: false - xy: 1829, 328 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -item-titanium-large - rotate: false - xy: 1289, 89 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -item-titanium-xlarge - rotate: false - xy: 1879, 315 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 lancer rotate: false - xy: 677, 129 + xy: 1761, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -liquid-cryofluid-large - rotate: false - xy: 1331, 89 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -liquid-cryofluid-xlarge - rotate: false - xy: 1563, 137 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -liquid-oil-large - rotate: false - xy: 1261, 47 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -liquid-oil-xlarge - rotate: false - xy: 1563, 87 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -liquid-slag-large - rotate: false - xy: 1303, 47 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -liquid-slag-xlarge - rotate: false - xy: 1613, 267 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -liquid-water-large - rotate: false - xy: 1261, 5 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -liquid-water-xlarge - rotate: false - xy: 1613, 217 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 mace-wreck0 rotate: false - xy: 875, 245 + xy: 1805, 277 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck1 rotate: false - xy: 875, 179 + xy: 1805, 211 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck2 rotate: false - xy: 875, 113 + xy: 1805, 145 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 929, 515 + xy: 1531, 1253 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mega-wreck0 rotate: false - xy: 435, 685 + xy: 739, 1167 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck1 rotate: false - xy: 969, 1395 + xy: 739, 1065 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck2 rotate: false - xy: 1071, 1395 + xy: 739, 963 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 meltdown rotate: false - xy: 1787, 1667 + xy: 487, 11 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck0 rotate: false - xy: 487, 1497 + xy: 617, 401 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck1 rotate: false - xy: 617, 1497 + xy: 617, 271 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck2 rotate: false - xy: 747, 1497 + xy: 617, 141 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -mono-wreck0 - rotate: false - xy: 1929, 315 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -mono-wreck1 - rotate: false - xy: 1651, 321 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -mono-wreck2 - rotate: false - xy: 1701, 324 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -nova-wreck0 - rotate: false - xy: 1734, 490 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -nova-wreck1 - rotate: false - xy: 1947, 781 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -nova-wreck2 - rotate: false - xy: 1792, 490 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 parallax rotate: false - xy: 1007, 177 + xy: 1921, 759 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -poly-wreck0 - rotate: false - xy: 1655, 432 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -poly-wreck1 - rotate: false - xy: 1655, 374 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -poly-wreck2 - rotate: false - xy: 1713, 432 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -pulsar-wreck0 - rotate: false - xy: 1947, 897 - size: 58, 48 - orig: 58, 48 - offset: 0, 0 - index: -1 -pulsar-wreck1 - rotate: false - xy: 1815, 699 - size: 58, 48 - orig: 58, 48 - offset: 0, 0 - index: -1 -pulsar-wreck2 - rotate: false - xy: 1881, 765 - size: 58, 48 - orig: 58, 48 - offset: 0, 0 - index: -1 quasar-wreck0 rotate: false - xy: 521, 177 + xy: 1907, 1105 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck1 rotate: false - xy: 521, 95 + xy: 845, 7 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck2 rotate: false - xy: 511, 13 + xy: 927, 7 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 ripple rotate: false - xy: 1125, 905 + xy: 1629, 1023 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck0 rotate: false - xy: 1125, 513 + xy: 1727, 1105 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck1 rotate: false - xy: 1137, 1003 + xy: 1727, 1007 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck2 rotate: false - xy: 1235, 1003 + xy: 1723, 909 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 1129, 18 + xy: 1737, 79 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 1617, 948 + xy: 1641, 40 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +scepter-wreck0 + rotate: false + xy: 980, 1907 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 +scepter-wreck1 + rotate: false + xy: 1, 786 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 +scepter-wreck2 + rotate: false + xy: 1152, 1907 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 segment rotate: false - xy: 1551, 684 + xy: 1839, 13 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spectre rotate: false - xy: 1007, 1497 + xy: 609, 1051 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spiroct-wreck0 rotate: false - xy: 1543, 1224 + xy: 1237, 294 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck1 rotate: false - xy: 1435, 1147 + xy: 1335, 413 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck2 rotate: false - xy: 1531, 1147 + xy: 1237, 217 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 -swarmer +toxopid-wreck0 rotate: false - xy: 1683, 548 - size: 64, 64 - orig: 64, 64 + xy: 325, 200 + size: 160, 190 + orig: 160, 190 offset: 0, 0 index: -1 -unit-alpha-full +toxopid-wreck1 rotate: false - xy: 1763, 166 - size: 48, 48 - orig: 48, 48 + xy: 325, 8 + size: 160, 190 + orig: 160, 190 + offset: 0, 0 + index: -1 +toxopid-wreck2 + rotate: false + xy: 195, 1654 + size: 160, 190 + orig: 160, 190 offset: 0, 0 index: -1 unit-arkyid-full rotate: false - xy: 1267, 1497 + xy: 759, 1453 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-atrax-full rotate: false - xy: 1615, 1076 + xy: 1621, 761 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 -unit-beta-full - rotate: false - xy: 1763, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 unit-bryde-full rotate: false - xy: 163, 715 + xy: 499, 1571 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 -unit-crawler-full - rotate: false - xy: 1763, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -unit-dagger-full - rotate: false - xy: 1813, 278 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -unit-flare-full - rotate: false - xy: 1813, 228 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 unit-fortress-full rotate: false - xy: 1173, 1415 + xy: 849, 1269 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 -unit-gamma-full - rotate: false - xy: 1771, 432 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 unit-horizon-full rotate: false - xy: 593, 7 + xy: 1333, 191 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 -unit-mace-full - rotate: false - xy: 1815, 881 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 unit-mega-full rotate: false - xy: 1275, 1395 + xy: 841, 1167 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 unit-minke-full rotate: false - xy: 1397, 1497 + xy: 889, 1453 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -unit-mono-full - rotate: false - xy: 1813, 178 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -unit-nova-full - rotate: false - xy: 1771, 374 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -unit-poly-full - rotate: false - xy: 1829, 432 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -unit-pulsar-full - rotate: false - xy: 1616, 502 - size: 58, 48 - orig: 58, 48 - offset: 0, 0 - index: -1 unit-quasar-full rotate: false - xy: 603, 451 + xy: 1907, 1023 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 unit-risso-full rotate: false - xy: 1321, 611 + xy: 1433, 665 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +unit-scepter-full + rotate: false + xy: 1, 644 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 unit-spiroct-full rotate: false - xy: 1627, 1142 + xy: 1237, 140 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 +unit-toxopid-full + rotate: false + xy: 195, 1462 + size: 160, 190 + orig: 160, 190 + offset: 0, 0 + index: -1 unit-zenith-full rotate: false - xy: 1527, 1513 + xy: 1019, 1371 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 -wave - rotate: false - xy: 1815, 749 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 zenith-wreck0 rotate: false - xy: 435, 1269 + xy: 1361, 1351 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck1 rotate: false - xy: 549, 1383 + xy: 1475, 1351 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck2 rotate: false - xy: 435, 1155 + xy: 1589, 1351 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 -shape-3 - rotate: false - xy: 1551, 487 - size: 63, 63 - orig: 63, 63 - offset: 0, 0 - index: -1 -alpha - rotate: false - xy: 435, 1545 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -alpha-cell - rotate: false - xy: 1881, 715 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 arkyid rotate: false - xy: 163, 585 + xy: 641, 1583 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-cell rotate: false - xy: 163, 455 + xy: 771, 1583 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-foot rotate: false - xy: 907, 443 + xy: 1333, 119 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-joint-base rotate: false - xy: 979, 441 + xy: 1711, 739 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 -arkyid-leg - rotate: false - xy: 1205, 306 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 arkyid-leg-base rotate: false - xy: 1, 11 + xy: 1703, 1399 size: 104, 64 orig: 104, 64 offset: 0, 0 index: -1 atrax rotate: false - xy: 1723, 1153 + xy: 1531, 795 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-base rotate: false - xy: 1267, 447 + xy: 257, 32 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 atrax-cell rotate: false - xy: 1435, 1081 + xy: 1133, 27 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 -atrax-foot - rotate: false - xy: 1081, 399 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -atrax-leg - rotate: false - xy: 1419, 513 - size: 36, 26 - orig: 36, 26 - offset: 0, 0 - index: -1 -atrax-leg-base - rotate: false - xy: 349, 1567 - size: 36, 26 - orig: 36, 26 - offset: 0, 0 - index: -1 -beta - rotate: false - xy: 1263, 281 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -beta-cell - rotate: false - xy: 1263, 231 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 bryde rotate: false - xy: 163, 1425 + xy: 357, 1639 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-cell rotate: false - xy: 163, 1283 + xy: 357, 1497 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: 285, 7 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array-cell - rotate: false - xy: 357, 1725 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array-leg - rotate: false - xy: 487, 1757 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -crawler - rotate: false - xy: 1363, 231 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -crawler-base - rotate: false - xy: 1363, 181 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -crawler-cell - rotate: false - xy: 1263, 131 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -crawler-leg - rotate: false - xy: 1313, 131 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -dagger - rotate: false - xy: 1413, 173 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -dagger-base - rotate: false - xy: 1413, 123 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -dagger-leg - rotate: false - xy: 1465, 305 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -eradicator - rotate: false - xy: 1, 77 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 -eradicator-base - rotate: false - xy: 1847, 1923 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 -eradicator-cell - rotate: false - xy: 1847, 1797 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 -eradicator-leg - rotate: false - xy: 195, 1567 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 -flare - rotate: false - xy: 1463, 97 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 fortress rotate: false - xy: 663, 1415 + xy: 1809, 1383 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 743, 327 + xy: 1607, 291 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-cell rotate: false - xy: 435, 1073 + xy: 155, 16 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 1611, 1014 + xy: 1941, 1467 size: 80, 60 orig: 80, 60 offset: 0, 0 index: -1 -gamma - rotate: false - xy: 1947, 839 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -gamma-cell - rotate: false - xy: 1205, 248 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 horizon rotate: false - xy: 685, 459 + xy: 1972, 1975 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-cell rotate: false - xy: 603, 377 + xy: 1972, 1901 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 mace rotate: false - xy: 809, 195 + xy: 1739, 277 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-base rotate: false - xy: 809, 129 + xy: 1739, 211 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-cell rotate: false - xy: 883, 377 + xy: 1673, 172 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-leg rotate: false - xy: 875, 311 + xy: 1739, 145 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mega rotate: false - xy: 435, 889 + xy: 861, 1351 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-cell rotate: false - xy: 435, 787 + xy: 747, 1269 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 minke rotate: false - xy: 1787, 1537 + xy: 595, 661 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-cell rotate: false - xy: 1917, 1537 + xy: 617, 531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -mono - rotate: false - xy: 1613, 67 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -mono-cell - rotate: false - xy: 1933, 365 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -nova - rotate: false - xy: 791, 5 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -nova-base - rotate: false - xy: 1663, 221 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -nova-cell - rotate: false - xy: 1676, 490 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -nova-leg - rotate: false - xy: 1663, 171 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -poly - rotate: false - xy: 1597, 429 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -poly-cell - rotate: false - xy: 1597, 371 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -power-cell - rotate: false - xy: 1713, 374 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -pulsar - rotate: false - xy: 1787, 1837 - size: 58, 48 - orig: 58, 48 - offset: 0, 0 - index: -1 -pulsar-base - rotate: false - xy: 1663, 121 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -pulsar-cell - rotate: false - xy: 1205, 364 - size: 58, 48 - orig: 58, 48 - offset: 0, 0 - index: -1 pulsar-leg rotate: false - xy: 1073, 111 + xy: 1959, 363 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 quasar rotate: false - xy: 521, 505 + xy: 951, 1269 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-base rotate: false - xy: 521, 423 + xy: 1825, 1137 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-cell rotate: false - xy: 521, 341 + xy: 1907, 1187 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-leg rotate: false - xy: 521, 259 + xy: 1825, 1055 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 +reign-base + rotate: false + xy: 1, 32 + size: 152, 124 + orig: 152, 124 + offset: 0, 0 + index: -1 +reign-cell + rotate: false + xy: 195, 1336 + size: 152, 124 + orig: 152, 124 + offset: 0, 0 + index: -1 +reign-leg + rotate: false + xy: 195, 1210 + size: 152, 124 + orig: 152, 124 + offset: 0, 0 + index: -1 risso rotate: false - xy: 1125, 709 + xy: 1625, 827 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-cell rotate: false - xy: 1125, 611 + xy: 1727, 1203 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +scepter + rotate: false + xy: 1, 928 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 +scepter-base + rotate: false + xy: 617, 11 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +scepter-cell + rotate: false + xy: 617, 1311 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +scepter-leg + rotate: false + xy: 609, 1181 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 spiroct rotate: false - xy: 415, 20 + xy: 1335, 490 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-cell rotate: false - xy: 1447, 1224 + xy: 1433, 588 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 -spiroct-foot +toxopid rotate: false - xy: 2001, 2001 - size: 46, 46 - orig: 46, 46 + xy: 325, 392 + size: 160, 190 + orig: 160, 190 offset: 0, 0 index: -1 -spiroct-leg +toxopid-cell rotate: false - xy: 677, 93 - size: 48, 34 - orig: 48, 34 + xy: 195, 1084 + size: 152, 124 + orig: 152, 124 offset: 0, 0 index: -1 -spiroct-leg-base +toxopid-foot rotate: false - xy: 1787, 1801 - size: 48, 34 - orig: 48, 34 + xy: 1041, 1 + size: 90, 90 + orig: 90, 90 offset: 0, 0 index: -1 -vanguard +toxopid-joint-base rotate: false - xy: 1813, 128 - size: 48, 48 - orig: 48, 48 + xy: 1783, 739 + size: 70, 70 + orig: 70, 70 offset: 0, 0 index: -1 -vanguard-cell +toxopid-leg rotate: false - xy: 1813, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -artillery - rotate: false - xy: 1415, 323 - size: 48, 56 - orig: 48, 56 + xy: 357, 1781 + size: 150, 72 + orig: 150, 72 offset: 0, 0 index: -1 artillery-mount rotate: false - xy: 1051, 441 + xy: 1706, 667 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 beam-weapon rotate: false - xy: 1965, 1455 + xy: 1825, 1219 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 -chaos - rotate: false - xy: 1815, 561 - size: 56, 136 - orig: 56, 136 - offset: 0, 0 - index: -1 -eradication - rotate: false - xy: 929, 809 - size: 96, 192 - orig: 96, 192 - offset: 0, 0 - index: -1 -eruption - rotate: false - xy: 1463, 147 - size: 48, 56 - orig: 48, 56 - offset: 0, 0 - index: -1 -flakgun - rotate: false - xy: 1513, 205 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -flamethrower - rotate: false - xy: 1513, 147 - size: 48, 56 - orig: 48, 56 - offset: 0, 0 - index: -1 -heal-shotgun-weapon - rotate: false - xy: 1850, 511 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -heal-weapon - rotate: false - xy: 1875, 665 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -heal-weapon-mount - rotate: false - xy: 1873, 615 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -large-artillery - rotate: false - xy: 1563, 237 - size: 48, 66 - orig: 48, 66 - offset: 0, 0 - index: -1 large-bullet-mount rotate: false - xy: 1123, 414 + xy: 1952, 1788 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 large-laser-mount rotate: false - xy: 1141, 1103 + xy: 1041, 1079 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 large-purple-mount rotate: false - xy: 1195, 414 + xy: 1706, 568 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 -large-weapon +reign-weapon rotate: false - xy: 1563, 187 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -missiles - rotate: false - xy: 1613, 167 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -missiles-mount - rotate: false - xy: 1613, 117 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -mount-purple-weapon - rotate: false - xy: 1751, 324 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -mount-weapon - rotate: false - xy: 1663, 271 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -small-basic-weapon - rotate: false - xy: 1713, 224 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -small-mount-weapon - rotate: false - xy: 1713, 174 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -small-weapon - rotate: false - xy: 1713, 124 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -spiroct-weapon - rotate: false - xy: 1763, 216 - size: 48, 56 - orig: 48, 56 - offset: 0, 0 - index: -1 -weapon - rotate: false - xy: 1863, 265 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -zenith-missiles - rotate: false - xy: 1863, 215 - size: 48, 48 - orig: 48, 48 + xy: 1621, 621 + size: 83, 138 + orig: 83, 138 offset: 0, 0 index: -1 zenith rotate: false - xy: 1641, 1513 + xy: 1133, 1371 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-cell rotate: false - xy: 435, 1383 + xy: 1247, 1351 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 sprites3.png -size: 2048,256 +size: 2048,512 format: rgba8888 filter: nearest,nearest repeat: none mender rotate: false - xy: 647, 189 + xy: 889, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 681, 223 + xy: 889, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 885, 189 + xy: 1127, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 103, 223 + xy: 1591, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 137, 223 + xy: 1455, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 1, 53 + xy: 1489, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 35, 87 + xy: 1523, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 69, 121 + xy: 1557, 235 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-0-0 + rotate: false + xy: 935, 279 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-armored-conveyor-full + rotate: false + xy: 935, 279 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-0-1 + rotate: false + xy: 969, 279 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-0-2 + rotate: false + xy: 1003, 279 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-0-3 + rotate: false + xy: 599, 205 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-1-0 + rotate: false + xy: 1377, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-1-1 + rotate: false + xy: 1411, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-1-2 + rotate: false + xy: 1445, 371 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-1-3 + rotate: false + xy: 1479, 371 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-2-0 + rotate: false + xy: 1513, 371 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-2-1 + rotate: false + xy: 1547, 371 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-2-2 + rotate: false + xy: 1581, 371 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-2-3 + rotate: false + xy: 1615, 371 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-3-0 + rotate: false + xy: 1649, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-3-1 + rotate: false + xy: 1683, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-3-2 + rotate: false + xy: 1717, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-3-3 + rotate: false + xy: 1751, 379 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-4-0 + rotate: false + xy: 1785, 379 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-4-1 + rotate: false + xy: 1819, 379 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-4-2 + rotate: false + xy: 1853, 379 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +armored-conveyor-4-3 + rotate: false + xy: 1887, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 103, 87 + xy: 1693, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 137, 121 + xy: 1727, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 171, 155 + xy: 1727, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 205, 189 + xy: 1727, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 239, 223 + xy: 1727, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 69, 19 + xy: 1761, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 103, 53 + xy: 1761, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 137, 87 + xy: 1795, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 171, 121 + xy: 1761, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 205, 155 + xy: 1795, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 239, 189 + xy: 1829, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 273, 223 + xy: 1761, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 103, 19 + xy: 1795, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 137, 53 + xy: 1829, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 171, 87 + xy: 1863, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 205, 121 + xy: 1795, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 239, 155 + xy: 1829, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 273, 189 + xy: 1863, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 307, 223 + xy: 1829, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor rotate: false - xy: 715, 189 + xy: 957, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 749, 223 + xy: 957, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 579, 19 + xy: 973, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 613, 53 + xy: 991, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 647, 87 + xy: 991, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 681, 121 + xy: 991, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 953, 155 + xy: 1229, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 987, 189 + xy: 1263, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 1021, 223 + xy: 1297, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 851, 19 + xy: 1331, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 885, 53 + xy: 1229, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 919, 87 + xy: 1263, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 953, 121 + xy: 1297, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 987, 155 + xy: 1331, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 1021, 189 + xy: 1263, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 1055, 223 + xy: 1297, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 885, 19 + xy: 1331, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 919, 53 + xy: 1297, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 953, 87 + xy: 1331, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 987, 121 + xy: 1331, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 1021, 155 + xy: 1365, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 1055, 189 + xy: 1365, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 1089, 223 + xy: 1365, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 919, 19 + xy: 1365, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 953, 53 + xy: 1365, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 239, 87 + xy: 1183, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 375, 189 + xy: 1523, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 545, 189 + xy: 753, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 579, 87 + xy: 905, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 545, 19 + xy: 923, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 579, 53 + xy: 939, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 613, 87 + xy: 957, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 647, 121 + xy: 957, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 715, 53 + xy: 1211, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 749, 19 + xy: 1127, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 1055, 155 + xy: 1727, 171 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +water-extractor + rotate: false + xy: 67, 117 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor-liquid + rotate: false + xy: 133, 183 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor-rotator + rotate: false + xy: 199, 249 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +water-extractor-top + rotate: false + xy: 265, 315 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +block-border + rotate: false + xy: 583, 69 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-middle + rotate: false + xy: 1173, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-select + rotate: false + xy: 1421, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 103, 121 + xy: 1659, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 1, 87 + xy: 1557, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 35, 121 + xy: 1591, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 35, 121 + xy: 1591, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 69, 155 + xy: 1591, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 103, 189 + xy: 1421, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 171, 223 + xy: 1625, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 1, 19 + xy: 1625, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 35, 53 + xy: 1625, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 69, 87 + xy: 1659, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 69, 87 + xy: 1659, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 69, 87 + xy: 1659, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 137, 155 + xy: 1693, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 171, 189 + xy: 1659, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 205, 223 + xy: 1693, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 35, 19 + xy: 1659, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 35, 19 + xy: 1659, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 69, 53 + xy: 1693, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 443, 53 + xy: 787, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 545, 155 + xy: 787, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 579, 189 + xy: 803, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 613, 223 + xy: 821, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 443, 19 + xy: 821, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 477, 53 + xy: 821, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 511, 53 + xy: 855, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump-liquid rotate: false - xy: 545, 87 + xy: 855, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-liquid rotate: false - xy: 545, 87 + xy: 855, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-pump-liquid rotate: false - xy: 545, 87 + xy: 855, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 613, 121 + xy: 923, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 647, 155 + xy: 923, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 681, 189 + xy: 923, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 715, 223 + xy: 923, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 749, 189 + xy: 991, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 783, 223 + xy: 1007, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 613, 19 + xy: 1025, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 647, 53 + xy: 1025, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 681, 87 + xy: 1025, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 715, 121 + xy: 1025, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 647, 19 + xy: 1059, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 681, 53 + xy: 1059, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 715, 87 + xy: 1059, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 749, 121 + xy: 1059, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 memory-cell rotate: false - xy: 613, 155 + xy: 889, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 511, 19 + xy: 889, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor rotate: false - xy: 545, 53 + xy: 889, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch rotate: false - xy: 851, 53 + xy: 1263, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch-on rotate: false - xy: 885, 87 + xy: 1297, 151 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +battery + rotate: false + xy: 1387, 341 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +battery-top + rotate: false + xy: 1387, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 103, 155 + xy: 1591, 235 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 137, 189 + xy: 1625, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode rotate: false - xy: 273, 121 + xy: 1217, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 307, 155 + xy: 1251, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 273, 87 + xy: 1421, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 307, 121 + xy: 1455, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node rotate: false - xy: 749, 155 + xy: 1025, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-source rotate: false - xy: 783, 189 + xy: 1041, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 817, 223 + xy: 1059, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 749, 87 + xy: 1245, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 919, 223 + xy: 1161, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +steam-generator + rotate: false + xy: 1, 183 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-cap + rotate: false + xy: 67, 249 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-top + rotate: false + xy: 133, 315 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-turbine0 + rotate: false + xy: 199, 381 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-turbine1 + rotate: false + xy: 265, 447 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +surge-tower + rotate: false + xy: 1, 117 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +thermal-generator + rotate: false + xy: 199, 315 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 incinerator rotate: false - xy: 341, 155 + xy: 1489, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 409, 87 + xy: 719, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 511, 155 + xy: 753, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 579, 155 + xy: 837, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 613, 189 + xy: 855, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 579, 121 + xy: 871, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 783, 155 + xy: 1075, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 817, 189 + xy: 1109, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +separator + rotate: false + xy: 1, 447 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +separator-liquid + rotate: false + xy: 1, 381 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +separator-spinner + rotate: false + xy: 67, 447 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +silicon-smelter + rotate: false + xy: 1, 315 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-press + rotate: false + xy: 67, 381 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-press-frame0 + rotate: false + xy: 133, 447 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-press-frame1 + rotate: false + xy: 1, 249 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-press-frame2 + rotate: false + xy: 67, 315 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-press-liquid + rotate: false + xy: 133, 381 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-press-top + rotate: false + xy: 199, 447 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +boulder1 + rotate: false + xy: 1849, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +boulder2 + rotate: false + xy: 1899, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dacite-boulder1 + rotate: false + xy: 183, 83 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dacite-boulder2 + rotate: false + xy: 182, 33 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 sand-boulder1 rotate: false - xy: 783, 121 + xy: 1279, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 817, 155 + xy: 1313, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 817, 121 + xy: 1093, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 851, 155 + xy: 1127, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +snow-boulder1 + rotate: false + xy: 565, 239 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +snow-boulder2 + rotate: false + xy: 549, 189 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +spore-cluster1 + rotate: false + xy: 1335, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +spore-cluster2 + rotate: false + xy: 1345, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +spore-cluster3 + rotate: false + xy: 631, 271 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 unloader rotate: false - xy: 1089, 189 + xy: 1761, 175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 1123, 223 + xy: 1795, 175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +arc-heat + rotate: false + xy: 901, 279 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-1 + rotate: false + xy: 599, 171 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hail-heat + rotate: false + xy: 1125, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 scorch-heat rotate: false - xy: 885, 223 + xy: 1093, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +wave-liquid + rotate: false + xy: 397, 447 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 repair-point-base rotate: false - xy: 681, 19 + xy: 1177, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall rotate: false - xy: 137, 19 + xy: 1863, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door rotate: false - xy: 341, 189 + xy: 1285, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-open rotate: false - xy: 375, 223 + xy: 1319, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 681, 155 + xy: 957, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 715, 155 + xy: 991, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 715, 19 + xy: 1093, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 749, 53 + xy: 1093, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 783, 87 + xy: 1093, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 783, 87 + xy: 1093, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 817, 19 + xy: 1229, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +surge-wall-large + rotate: false + xy: 67, 183 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 thorium-wall rotate: false - xy: 919, 121 + xy: 1195, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +thorium-wall-large + rotate: false + xy: 265, 381 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 titanium-wall rotate: false - xy: 987, 87 + xy: 1659, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +titanium-wall-large + rotate: false + xy: 331, 447 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +bullet + rotate: false + xy: 1623, 459 + size: 52, 52 + orig: 52, 52 + offset: 0, 0 + index: -1 +bullet-back + rotate: false + xy: 1677, 459 + size: 52, 52 + orig: 52, 52 + offset: 0, 0 + index: -1 casing rotate: false - xy: 361, 1 + xy: 1377, 303 size: 8, 16 orig: 8, 16 offset: 0, 0 index: -1 circle-mid rotate: false - xy: 1149, 22 + xy: 1399, 4 size: 1, 199 orig: 1, 199 offset: 0, 0 index: -1 +error + rotate: false + xy: 391, 331 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 laser rotate: false - xy: 981, 3 + xy: 193, 133 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser rotate: false - xy: 987, 11 + xy: 259, 199 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 +missile + rotate: false + xy: 749, 275 + size: 36, 36 + orig: 36, 36 + offset: 0, 0 + index: -1 +missile-back + rotate: false + xy: 787, 275 + size: 36, 36 + orig: 36, 36 + offset: 0, 0 + index: -1 parallax-laser rotate: false - xy: 993, 11 + xy: 325, 265 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 +particle + rotate: false + xy: 1303, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 scale_marker rotate: false - xy: 1013, 81 + xy: 1381, 213 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 +shell + rotate: false + xy: 825, 275 + size: 36, 36 + orig: 36, 36 + offset: 0, 0 + index: -1 +shell-back + rotate: false + xy: 863, 275 + size: 36, 36 + orig: 36, 36 + offset: 0, 0 + index: -1 transfer rotate: false - xy: 999, 11 + xy: 1931, 245 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 1021, 121 + xy: 1693, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 1021, 90 + xy: 1949, 458 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 -block-shalerocks-full +alpha-wreck0 rotate: false - xy: 1, 223 + xy: 1831, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +alpha-wreck1 + rotate: false + xy: 1881, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +alpha-wreck2 + rotate: false + xy: 1931, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +arc + rotate: false + xy: 1355, 421 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +beta-wreck0 + rotate: false + xy: 1549, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +beta-wreck1 + rotate: false + xy: 1599, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +beta-wreck2 + rotate: false + xy: 1649, 409 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-arc-full + rotate: false + xy: 583, 137 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-basalt-full + rotate: false + xy: 583, 103 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-boulder-full + rotate: false + xy: 1699, 409 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-char-full + rotate: false + xy: 583, 35 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-cliffs-full + rotate: false + xy: 583, 1 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-conduit-full + rotate: false + xy: 617, 137 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-conveyor-full + rotate: false + xy: 617, 103 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +conveyor-0-0 + rotate: false + xy: 617, 103 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-craters-full + rotate: false + xy: 617, 69 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dacite-boulder-full + rotate: false + xy: 1749, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dacite-full + rotate: false + xy: 617, 35 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dacite-wall-full + rotate: false + xy: 617, 1 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-metal-full + rotate: false + xy: 673, 251 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-full + rotate: false + xy: 707, 251 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dirt-full + rotate: false + xy: 741, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dirt-wall-full + rotate: false + xy: 775, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dune-wall-full + rotate: false + xy: 809, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-duo-full + rotate: false + xy: 843, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-grass-full + rotate: false + xy: 877, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hail-full + rotate: false + xy: 911, 245 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-hotrock-full + rotate: false + xy: 945, 245 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-full + rotate: false + xy: 979, 245 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-snow-full + rotate: false + xy: 1013, 245 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-wall-full + rotate: false + xy: 1037, 279 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-liquid-router-full + rotate: false + xy: 1071, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-magmarock-full + rotate: false + xy: 1105, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-full + rotate: false + xy: 1139, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-moss-full + rotate: false + xy: 1207, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-coal-full + rotate: false + xy: 1241, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-copper-full + rotate: false + xy: 1275, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-lead-full + rotate: false + xy: 1309, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-scrap-full + rotate: false + xy: 1343, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-thorium-full + rotate: false + xy: 1047, 245 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-titanium-full + rotate: false + xy: 1081, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pebbles-full + rotate: false + xy: 1115, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plated-conduit-full + rotate: false + xy: 1149, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pulse-conduit-full + rotate: false + xy: 1183, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pulverizer-full + rotate: false + xy: 1217, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-repair-point-full + rotate: false + xy: 1251, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-salt-wall-full + rotate: false + xy: 1285, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-boulder-full + rotate: false + xy: 1319, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-full + rotate: false + xy: 1353, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-wall-full + rotate: false + xy: 1387, 273 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scorch-full + rotate: false + xy: 1387, 239 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scrap-wall-full + rotate: false + xy: 1421, 337 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +scrap-wall1 + rotate: false + xy: 1421, 337 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shale-boulder-full + rotate: false + xy: 1455, 337 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shale-full + rotate: false + xy: 1421, 269 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shale-wall-full + rotate: false + xy: 1455, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 1, 189 + xy: 1489, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +block-snow-boulder-full + rotate: false + xy: 1799, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 block-snow-full rotate: false - xy: 35, 223 + xy: 1455, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrocks-full +block-snow-wall-full rotate: false - xy: 1, 155 + xy: 1489, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +block-spore-cluster-full + rotate: false + xy: 1083, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 block-spore-moss-full rotate: false - xy: 35, 189 + xy: 1523, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sporerocks-full +block-spore-wall-full rotate: false - xy: 69, 223 + xy: 1489, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 1, 121 + xy: 1523, 303 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-stone-wall-full + rotate: false + xy: 1557, 337 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 35, 155 + xy: 1523, 269 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-conveyor-full rotate: false - xy: 69, 189 + xy: 1557, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 69, 189 + xy: 1557, 303 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-0 rotate: false - xy: 171, 53 + xy: 1863, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 205, 87 + xy: 1897, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 239, 121 + xy: 1897, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 273, 155 + xy: 1897, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 307, 189 + xy: 1897, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 341, 223 + xy: 1081, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 171, 19 + xy: 1115, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 205, 53 + xy: 1149, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +crawler-wreck0 + rotate: false + xy: 331, 281 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +crawler-wreck1 + rotate: false + xy: 1949, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +crawler-wreck2 + rotate: false + xy: 1999, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dagger-wreck0 + rotate: false + xy: 283, 99 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dagger-wreck1 + rotate: false + xy: 283, 49 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dagger-wreck2 + rotate: false + xy: 381, 281 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 duo rotate: false - xy: 205, 19 + xy: 1353, 219 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +flare-wreck0 + rotate: false + xy: 605, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +flare-wreck1 + rotate: false + xy: 655, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +flare-wreck2 + rotate: false + xy: 705, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +gamma-wreck0 + rotate: false + xy: 579, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +gamma-wreck1 + rotate: false + xy: 637, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +gamma-wreck2 + rotate: false + xy: 695, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 hail rotate: false - xy: 239, 53 + xy: 1387, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +item-blast-compound-large + rotate: false + xy: 1167, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-blast-compound-medium rotate: false - xy: 239, 19 + xy: 1591, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 987, 61 + xy: 1829, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-blast-compound-tiny rotate: false - xy: 1, 1 + xy: 2031, 495 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-blast-compound-xlarge + rotate: false + xy: 905, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-coal-large + rotate: false + xy: 1209, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-coal-medium rotate: false - xy: 307, 87 + xy: 1659, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 1021, 95 + xy: 1855, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-coal-tiny rotate: false - xy: 19, 1 + xy: 2031, 477 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-coal-xlarge + rotate: false + xy: 955, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-copper-large + rotate: false + xy: 1251, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-copper-medium rotate: false - xy: 375, 155 + xy: 1727, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 1055, 129 + xy: 1881, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 37, 1 + xy: 2031, 459 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-copper-xlarge + rotate: false + xy: 1005, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-graphite-large + rotate: false + xy: 1293, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-graphite-medium rotate: false - xy: 443, 223 + xy: 1795, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 1089, 163 + xy: 1907, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 55, 1 + xy: 563, 13 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-graphite-xlarge + rotate: false + xy: 1055, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-lead-large + rotate: false + xy: 631, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-lead-medium rotate: false - xy: 307, 53 + xy: 1863, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 1123, 197 + xy: 433, 5 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 73, 1 + xy: 1931, 367 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-lead-xlarge + rotate: false + xy: 1105, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-metaglass-large + rotate: false + xy: 673, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-metaglass-medium rotate: false - xy: 375, 121 + xy: 633, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 1157, 231 + xy: 459, 5 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 91, 1 + xy: 2027, 387 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-metaglass-xlarge + rotate: false + xy: 1155, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-phase-fabric-large + rotate: false + xy: 715, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-phase-fabric-medium rotate: false - xy: 443, 189 + xy: 651, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 1183, 231 + xy: 485, 5 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 109, 1 + xy: 1855, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-phase-fabric-xlarge + rotate: false + xy: 1205, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-plastanium-large + rotate: false + xy: 757, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-plastanium-medium rotate: false - xy: 307, 19 + xy: 651, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 1209, 231 + xy: 511, 5 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 127, 1 + xy: 1931, 349 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-plastanium-xlarge + rotate: false + xy: 1255, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-pyratite-large + rotate: false + xy: 799, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-pyratite-medium rotate: false - xy: 375, 87 + xy: 667, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 1235, 231 + xy: 537, 5 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 145, 1 + xy: 1949, 361 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-pyratite-xlarge + rotate: false + xy: 1305, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-sand-large + rotate: false + xy: 841, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-sand-medium rotate: false - xy: 443, 155 + xy: 685, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 1261, 231 + xy: 1949, 379 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 163, 1 + xy: 1873, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-sand-xlarge + rotate: false + xy: 491, 339 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-scrap-large + rotate: false + xy: 883, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-scrap-medium rotate: false - xy: 511, 223 + xy: 685, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 1287, 231 + xy: 1975, 379 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 181, 1 + xy: 1931, 331 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-scrap-xlarge + rotate: false + xy: 315, 215 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-silicon-large + rotate: false + xy: 925, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-silicon-medium rotate: false - xy: 375, 53 + xy: 701, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 1313, 231 + xy: 2001, 379 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 199, 1 + xy: 1949, 343 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-silicon-xlarge + rotate: false + xy: 299, 165 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-spore-pod-large + rotate: false + xy: 967, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-spore-pod-medium rotate: false - xy: 477, 155 + xy: 719, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 1339, 231 + xy: 121, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 217, 1 + xy: 1967, 361 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-spore-pod-xlarge + rotate: false + xy: 365, 231 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-surge-alloy-large + rotate: false + xy: 1009, 313 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-surge-alloy-medium rotate: false - xy: 545, 223 + xy: 719, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1365, 231 + xy: 147, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 235, 1 + xy: 1891, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-surge-alloy-xlarge + rotate: false + xy: 349, 165 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-thorium-large + rotate: false + xy: 1051, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-thorium-medium rotate: false - xy: 409, 53 + xy: 753, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 1391, 231 + xy: 173, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 253, 1 + xy: 1931, 313 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-thorium-xlarge + rotate: false + xy: 333, 115 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +item-titanium-large + rotate: false + xy: 1093, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 item-titanium-medium rotate: false - xy: 477, 121 + xy: 753, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 1417, 231 + xy: 199, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 271, 1 + xy: 1949, 325 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +item-titanium-xlarge + rotate: false + xy: 333, 65 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +liquid-cryofluid-large + rotate: false + xy: 1135, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 liquid-cryofluid-medium rotate: false - xy: 409, 19 + xy: 787, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 1443, 231 + xy: 615, 245 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 289, 1 + xy: 1967, 343 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-cryofluid-xlarge + rotate: false + xy: 333, 15 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +liquid-oil-large + rotate: false + xy: 1177, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 liquid-oil-medium rotate: false - xy: 511, 121 + xy: 787, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 1469, 231 + xy: 641, 245 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 307, 1 + xy: 1985, 361 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-oil-xlarge + rotate: false + xy: 415, 231 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +liquid-slag-large + rotate: false + xy: 1219, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 liquid-slag-medium rotate: false - xy: 545, 121 + xy: 821, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1495, 231 + xy: 633, 219 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 325, 1 + xy: 1909, 165 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-slag-xlarge + rotate: false + xy: 431, 281 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +liquid-water-large + rotate: false + xy: 1261, 321 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 liquid-water-medium rotate: false - xy: 477, 19 + xy: 855, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 1521, 231 + xy: 1829, 157 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 343, 1 + xy: 1931, 295 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 +liquid-water-xlarge + rotate: false + xy: 481, 289 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +mono-wreck0 + rotate: false + xy: 433, 81 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +mono-wreck1 + rotate: false + xy: 433, 31 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +mono-wreck2 + rotate: false + xy: 499, 181 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +nova-wreck0 + rotate: false + xy: 869, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +nova-wreck1 + rotate: false + xy: 927, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +nova-wreck2 + rotate: false + xy: 985, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +poly-wreck0 + rotate: false + xy: 1159, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +poly-wreck1 + rotate: false + xy: 1217, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +poly-wreck2 + rotate: false + xy: 1275, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +pulsar-wreck0 + rotate: false + xy: 133, 133 + size: 58, 48 + orig: 58, 48 + offset: 0, 0 + index: -1 +pulsar-wreck1 + rotate: false + xy: 199, 199 + size: 58, 48 + orig: 58, 48 + offset: 0, 0 + index: -1 +pulsar-wreck2 + rotate: false + xy: 265, 265 + size: 58, 48 + orig: 58, 48 + offset: 0, 0 + index: -1 repair-point rotate: false - xy: 851, 223 + xy: 1143, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scorch rotate: false - xy: 851, 189 + xy: 1347, 185 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-0 rotate: false - xy: 817, 87 + xy: 1195, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 851, 121 + xy: 1127, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 953, 189 + xy: 1161, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 987, 223 + xy: 1195, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 885, 155 + xy: 1161, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 919, 189 + xy: 1195, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 953, 223 + xy: 1229, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 783, 19 + xy: 1127, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 817, 53 + xy: 1161, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 851, 87 + xy: 1195, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 885, 121 + xy: 1229, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 919, 155 + xy: 1263, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +swarmer + rotate: false + xy: 133, 249 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +unit-alpha-full + rotate: false + xy: 581, 289 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +unit-beta-full + rotate: false + xy: 591, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +unit-crawler-full + rotate: false + xy: 641, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +unit-dagger-full + rotate: false + xy: 691, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +unit-flare-full + rotate: false + xy: 741, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +unit-gamma-full + rotate: false + xy: 1449, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +unit-mace-full + rotate: false + xy: 1, 51 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +unit-mono-full + rotate: false + xy: 791, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +unit-nova-full + rotate: false + xy: 1507, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +unit-poly-full + rotate: false + xy: 1565, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +unit-pulsar-full + rotate: false + xy: 331, 331 + size: 58, 48 + orig: 58, 48 + offset: 0, 0 + index: -1 +wave + rotate: false + xy: 331, 381 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 item-blast-compound rotate: false - xy: 409, 223 + xy: 1557, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 273, 53 + xy: 1625, 201 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 341, 121 + xy: 1693, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 409, 189 + xy: 1761, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 273, 19 + xy: 1829, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 341, 87 + xy: 1897, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 409, 155 + xy: 651, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 477, 223 + xy: 651, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 341, 53 + xy: 651, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 409, 121 + xy: 685, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 477, 189 + xy: 685, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 341, 19 + xy: 685, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 443, 121 + xy: 719, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 511, 189 + xy: 719, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 375, 19 + xy: 735, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 443, 87 + xy: 753, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 579, 223 + xy: 769, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 477, 87 + xy: 787, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 511, 87 + xy: 821, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 647, 223 + xy: 855, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 1047, 118 + xy: 330, 46 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 +shape-3 + rotate: false + xy: 67, 52 + size: 63, 63 + orig: 63, 63 + offset: 0, 0 + index: -1 +alpha + rotate: false + xy: 1731, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +alpha-cell + rotate: false + xy: 1781, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +arkyid-leg + rotate: false + xy: 397, 389 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +atrax-foot + rotate: false + xy: 1041, 363 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 atrax-joint rotate: false - xy: 953, 25 + xy: 1921, 385 size: 26, 26 orig: 26, 26 offset: 0, 0 index: -1 +atrax-leg + rotate: false + xy: 673, 285 + size: 36, 26 + orig: 36, 26 + offset: 0, 0 + index: -1 +atrax-leg-base + rotate: false + xy: 711, 285 + size: 36, 26 + orig: 36, 26 + offset: 0, 0 + index: -1 +beta + rotate: false + xy: 1449, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +beta-cell + rotate: false + xy: 1499, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +crawler + rotate: false + xy: 133, 83 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +crawler-base + rotate: false + xy: 132, 33 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +crawler-cell + rotate: false + xy: 199, 149 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +crawler-leg + rotate: false + xy: 265, 215 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dagger + rotate: false + xy: 249, 149 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dagger-base + rotate: false + xy: 233, 99 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dagger-leg + rotate: false + xy: 233, 49 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +flare + rotate: false + xy: 555, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +gamma + rotate: false + xy: 463, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +gamma-cell + rotate: false + xy: 521, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +mono + rotate: false + xy: 449, 181 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +mono-cell + rotate: false + xy: 433, 131 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +nova + rotate: false + xy: 753, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +nova-base + rotate: false + xy: 483, 31 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +nova-cell + rotate: false + xy: 811, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +nova-leg + rotate: false + xy: 533, 131 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +poly + rotate: false + xy: 1043, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +poly-cell + rotate: false + xy: 1101, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +power-cell + rotate: false + xy: 1333, 455 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +pulsar + rotate: false + xy: 1, 1 + size: 58, 48 + orig: 58, 48 + offset: 0, 0 + index: -1 +pulsar-base + rotate: false + xy: 533, 81 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +pulsar-cell + rotate: false + xy: 61, 1 + size: 58, 48 + orig: 58, 48 + offset: 0, 0 + index: -1 +spiroct-foot + rotate: false + xy: 282, 1 + size: 46, 46 + orig: 46, 46 + offset: 0, 0 + index: -1 spiroct-joint rotate: false - xy: 783, 53 + xy: 1161, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +spiroct-leg + rotate: false + xy: 383, 11 + size: 48, 34 + orig: 48, 34 + offset: 0, 0 + index: -1 +spiroct-leg-base + rotate: false + xy: 232, 13 + size: 48, 34 + orig: 48, 34 + offset: 0, 0 + index: -1 +vanguard + rotate: false + xy: 841, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +vanguard-cell + rotate: false + xy: 891, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +artillery + rotate: false + xy: 1981, 455 + size: 48, 56 + orig: 48, 56 + offset: 0, 0 + index: -1 +eruption + rotate: false + xy: 455, 389 + size: 48, 56 + orig: 48, 56 + offset: 0, 0 + index: -1 +flakgun + rotate: false + xy: 441, 339 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +flamethrower + rotate: false + xy: 505, 397 + size: 48, 56 + orig: 48, 56 + offset: 0, 0 + index: -1 +heal-shotgun-weapon + rotate: false + xy: 755, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +heal-weapon + rotate: false + xy: 805, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +heal-weapon-mount + rotate: false + xy: 855, 405 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +large-artillery + rotate: false + xy: 383, 97 + size: 48, 66 + orig: 48, 66 + offset: 0, 0 + index: -1 +large-weapon + rotate: false + xy: 383, 47 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +missiles + rotate: false + xy: 399, 181 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +missiles-mount + rotate: false + xy: 465, 231 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +mount-purple-weapon + rotate: false + xy: 483, 131 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +mount-weapon + rotate: false + xy: 483, 81 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +scepter-weapon + rotate: false + xy: 1391, 409 + size: 56, 102 + orig: 56, 102 + offset: 0, 0 + index: -1 +small-basic-weapon + rotate: false + xy: 533, 31 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +small-mount-weapon + rotate: false + xy: 531, 289 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +small-weapon + rotate: false + xy: 515, 239 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +spiroct-weapon + rotate: false + xy: 541, 339 + size: 48, 56 + orig: 48, 56 + offset: 0, 0 + index: -1 +weapon + rotate: false + xy: 941, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +zenith-missiles + rotate: false + xy: 991, 355 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 sprites4.png size: 2048,1024 @@ -6776,237 +6951,314 @@ size: 2048,512 format: rgba8888 filter: nearest,nearest repeat: none -char1 - rotate: false - xy: 1281, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -char2 - rotate: false - xy: 1315, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -char3 - rotate: false - xy: 1349, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cliff - rotate: false - xy: 1383, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cliffs1 - rotate: false - xy: 1417, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -coal1 - rotate: false - xy: 1451, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -coal2 - rotate: false - xy: 1485, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -coal3 - rotate: false - xy: 1519, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -copper1 - rotate: false - xy: 1553, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -copper2 - rotate: false - xy: 1587, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -copper3 - rotate: false - xy: 1621, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters1 - rotate: false - xy: 1655, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters2 - rotate: false - xy: 1689, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters3 - rotate: false - xy: 1723, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters4 - rotate: false - xy: 1757, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters5 - rotate: false - xy: 1791, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters6 - rotate: false - xy: 1825, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-metal-large - rotate: false - xy: 687, 329 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -dark-metal1 - rotate: false - xy: 1859, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-metal2 - rotate: false - xy: 1893, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-1 - rotate: false - xy: 1927, 459 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-1-edge +basalt-edge rotate: false xy: 1, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dark-panel-2 +basalt1 rotate: false - xy: 1961, 459 + xy: 835, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -dark-panel-2-edge +basalt2 + rotate: false + xy: 1165, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +basalt3 + rotate: false + xy: 869, 327 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +char1 + rotate: false + xy: 1199, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +char2 + rotate: false + xy: 903, 327 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +char3 + rotate: false + xy: 1233, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cliff + rotate: false + xy: 937, 327 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cliffs1 + rotate: false + xy: 1267, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +coal1 + rotate: false + xy: 971, 327 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +coal2 + rotate: false + xy: 1301, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +coal3 + rotate: false + xy: 1005, 327 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper1 + rotate: false + xy: 1335, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper2 + rotate: false + xy: 1369, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper3 + rotate: false + xy: 1403, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters1 + rotate: false + xy: 1437, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters2 + rotate: false + xy: 1471, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters3 + rotate: false + xy: 1505, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters4 + rotate: false + xy: 1539, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters5 + rotate: false + xy: 1573, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters6 + rotate: false + xy: 1607, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite-edge rotate: false xy: 1, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dark-panel-3 +dacite-wall-large rotate: false - xy: 1995, 459 + xy: 785, 427 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +dacite-wall1 + rotate: false + xy: 1743, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -dark-panel-3-edge +dacite-wall2 + rotate: false + xy: 1777, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite1 + rotate: false + xy: 1641, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite2 + rotate: false + xy: 1675, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite3 + rotate: false + xy: 1709, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-metal-large + rotate: false + xy: 491, 35 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +dark-metal1 + rotate: false + xy: 1811, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-metal2 + rotate: false + xy: 1845, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-1 + rotate: false + xy: 1879, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-1-edge rotate: false xy: 99, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dark-panel-4 +dark-panel-2 rotate: false - xy: 753, 361 + xy: 1913, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -dark-panel-4-edge +dark-panel-2-edge rotate: false xy: 1, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dark-panel-5 +dark-panel-3 rotate: false - xy: 753, 327 + xy: 1947, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -dark-panel-5-edge +dark-panel-3-edge rotate: false xy: 99, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dark-panel-6 +dark-panel-4 rotate: false - xy: 753, 293 + xy: 1981, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -dark-panel-6-edge +dark-panel-4-edge rotate: false xy: 197, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -darksand-edge +dark-panel-5 + rotate: false + xy: 2015, 459 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-5-edge rotate: false xy: 1, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +dark-panel-6 + rotate: false + xy: 491, 1 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-6-edge + rotate: false + xy: 99, 199 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +darksand-edge + rotate: false + xy: 197, 297 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 darksand-tainted-water rotate: false xy: 525, 1 @@ -7016,7 +7268,7 @@ darksand-tainted-water index: -1 darksand-tainted-water-edge rotate: false - xy: 99, 199 + xy: 295, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -7030,1113 +7282,1106 @@ darksand-tainted-water1 index: -1 darksand-tainted-water2 rotate: false - xy: 753, 259 + xy: 753, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water3 rotate: false - xy: 689, 179 + xy: 787, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water rotate: false - xy: 689, 145 + xy: 787, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-edge rotate: false - xy: 197, 297 + xy: 1, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 darksand-water1 rotate: false - xy: 737, 225 + xy: 1049, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water2 rotate: false - xy: 1181, 409 + xy: 1099, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water3 rotate: false - xy: 1215, 409 + xy: 835, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand1 rotate: false - xy: 491, 1 + xy: 557, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand2 rotate: false - xy: 557, 67 + xy: 655, 165 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand3 rotate: false - xy: 655, 165 + xy: 753, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater rotate: false - xy: 1249, 409 + xy: 869, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-edge - rotate: false - xy: 295, 395 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -dunerocks-large - rotate: false - xy: 785, 427 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -dunerocks1 - rotate: false - xy: 1283, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dunerocks2 - rotate: false - xy: 1317, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -edge - rotate: false - xy: 1351, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -edge-stencil - rotate: false - xy: 1, 3 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -edgier - rotate: false - xy: 1385, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -grass-edge rotate: false xy: 99, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -grass1 - rotate: false - xy: 1419, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -grass2 - rotate: false - xy: 1453, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -grass3 - rotate: false - xy: 1487, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone-edge +dirt-edge rotate: false xy: 197, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -holostone1 - rotate: false - xy: 1521, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone2 - rotate: false - xy: 1555, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone3 - rotate: false - xy: 1589, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -hotrock1 - rotate: false - xy: 1623, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -hotrock2 - rotate: false - xy: 1657, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -hotrock3 - rotate: false - xy: 1691, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice-edge - rotate: false - xy: 295, 297 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -ice-snow-edge - rotate: false - xy: 393, 395 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -ice-snow1 - rotate: false - xy: 1827, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice-snow2 - rotate: false - xy: 1861, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice-snow3 - rotate: false - xy: 1895, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice1 - rotate: false - xy: 1725, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice2 - rotate: false - xy: 1759, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice3 - rotate: false - xy: 1793, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icerocks-large - rotate: false - xy: 491, 35 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -icerocks1 - rotate: false - xy: 1929, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icerocks2 - rotate: false - xy: 1963, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ignarock-edge - rotate: false - xy: 99, 3 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -ignarock1 - rotate: false - xy: 1997, 425 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ignarock2 - rotate: false - xy: 771, 225 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ignarock3 - rotate: false - xy: 1283, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -lead1 - rotate: false - xy: 1317, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -lead2 - rotate: false - xy: 1351, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -lead3 - rotate: false - xy: 1385, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -magmarock1 - rotate: false - xy: 1419, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -magmarock2 - rotate: false - xy: 1453, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -magmarock3 - rotate: false - xy: 1487, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor - rotate: false - xy: 1521, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-2 - rotate: false - xy: 1555, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-2-edge - rotate: false - xy: 197, 101 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -metal-floor-3 - rotate: false - xy: 1589, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-3-edge - rotate: false - xy: 295, 199 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -metal-floor-5 - rotate: false - xy: 1623, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-5-edge - rotate: false - xy: 393, 297 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -metal-floor-damaged-edge - rotate: false - xy: 491, 395 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -metal-floor-damaged1 - rotate: false - xy: 1657, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-damaged2 - rotate: false - xy: 1691, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-damaged3 - rotate: false - xy: 1725, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-edge - rotate: false - xy: 197, 3 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -moss-edge - rotate: false - xy: 295, 101 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -moss1 - rotate: false - xy: 1759, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -moss2 - rotate: false - xy: 1793, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -moss3 - rotate: false - xy: 1827, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-coal1 - rotate: false - xy: 1861, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-coal2 - rotate: false - xy: 1895, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-coal3 - rotate: false - xy: 1929, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-copper1 - rotate: false - xy: 1963, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-copper2 - rotate: false - xy: 1997, 391 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-copper3 - rotate: false - xy: 723, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-lead1 - rotate: false - xy: 723, 145 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-lead2 - rotate: false - xy: 757, 191 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-lead3 - rotate: false - xy: 757, 157 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-scrap1 - rotate: false - xy: 689, 111 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-scrap2 - rotate: false - xy: 723, 111 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-scrap3 - rotate: false - xy: 757, 123 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-thorium1 - rotate: false - xy: 791, 191 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-thorium2 - rotate: false - xy: 791, 157 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-thorium3 - rotate: false - xy: 791, 123 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-titanium1 - rotate: false - xy: 757, 89 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-titanium2 - rotate: false - xy: 791, 89 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ore-titanium3 - rotate: false - xy: 591, 99 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pebbles1 - rotate: false - xy: 591, 65 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pebbles2 - rotate: false - xy: 625, 97 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pebbles3 - rotate: false - xy: 625, 63 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pine - rotate: false - xy: 687, 213 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -rocks-large +dirt-wall-large rotate: false xy: 589, 133 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -rocks1 +dirt-wall1 rotate: false - xy: 659, 77 + xy: 1005, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -rocks2 +dirt-wall2 rotate: false - xy: 693, 77 + xy: 1039, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -salt +dirt1 rotate: false - xy: 659, 43 + xy: 903, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -salt-edge +dirt2 + rotate: false + xy: 937, 293 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dirt3 + rotate: false + xy: 971, 293 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dune-wall-large + rotate: false + xy: 687, 231 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +dune-wall1 + rotate: false + xy: 821, 259 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dune-wall2 + rotate: false + xy: 855, 259 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +edge + rotate: false + xy: 889, 259 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +edge-stencil + rotate: false + xy: 295, 297 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +edgier + rotate: false + xy: 923, 259 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +grass-edge + rotate: false + xy: 393, 395 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +grass1 + rotate: false + xy: 957, 259 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +grass2 + rotate: false + xy: 991, 259 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +grass3 + rotate: false + xy: 1165, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hotrock1 + rotate: false + xy: 1199, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hotrock2 + rotate: false + xy: 1233, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hotrock3 + rotate: false + xy: 1267, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-edge + rotate: false + xy: 99, 3 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +ice-snow-edge + rotate: false + xy: 197, 101 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +ice-snow1 + rotate: false + xy: 1403, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-snow2 + rotate: false + xy: 1437, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-snow3 + rotate: false + xy: 1471, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-wall-large + rotate: false + xy: 785, 361 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +ice-wall1 + rotate: false + xy: 1505, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-wall2 + rotate: false + xy: 1539, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice1 + rotate: false + xy: 1301, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice2 + rotate: false + xy: 1335, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice3 + rotate: false + xy: 1369, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead1 + rotate: false + xy: 1573, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead2 + rotate: false + xy: 1607, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead3 + rotate: false + xy: 1641, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +magmarock1 + rotate: false + xy: 1675, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +magmarock2 + rotate: false + xy: 1709, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +magmarock3 + rotate: false + xy: 1743, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor + rotate: false + xy: 1777, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-2 + rotate: false + xy: 1811, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-2-edge + rotate: false + xy: 295, 199 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +metal-floor-3 + rotate: false + xy: 1845, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-3-edge + rotate: false + xy: 393, 297 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +metal-floor-5 + rotate: false + xy: 1879, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-5-edge + rotate: false + xy: 491, 395 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +metal-floor-damaged-edge + rotate: false + xy: 197, 3 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +metal-floor-damaged1 + rotate: false + xy: 1913, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-damaged2 + rotate: false + xy: 1947, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-damaged3 + rotate: false + xy: 1981, 425 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-edge + rotate: false + xy: 295, 101 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +moss-edge rotate: false xy: 393, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -saltrocks-large +moss1 rotate: false - xy: 687, 263 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -saltrocks1 - rotate: false - xy: 693, 43 + xy: 2015, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -saltrocks2 +moss2 rotate: false - xy: 727, 55 + xy: 1083, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -sand-edge +moss3 + rotate: false + xy: 1073, 309 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-coal1 + rotate: false + xy: 1039, 275 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-coal2 + rotate: false + xy: 1073, 275 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-coal3 + rotate: false + xy: 821, 225 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-copper1 + rotate: false + xy: 855, 225 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-copper2 + rotate: false + xy: 889, 225 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-copper3 + rotate: false + xy: 923, 225 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-lead1 + rotate: false + xy: 957, 225 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-lead2 + rotate: false + xy: 991, 225 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-lead3 + rotate: false + xy: 787, 209 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-scrap1 + rotate: false + xy: 1025, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-scrap2 + rotate: false + xy: 1059, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-scrap3 + rotate: false + xy: 821, 191 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-thorium1 + rotate: false + xy: 855, 191 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-thorium2 + rotate: false + xy: 889, 191 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-thorium3 + rotate: false + xy: 923, 191 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-titanium1 + rotate: false + xy: 957, 191 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-titanium2 + rotate: false + xy: 991, 191 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ore-titanium3 + rotate: false + xy: 1025, 207 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pebbles1 + rotate: false + xy: 1059, 207 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pebbles2 + rotate: false + xy: 1025, 173 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pebbles3 + rotate: false + xy: 1059, 173 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +pine + rotate: false + xy: 785, 311 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +salt + rotate: false + xy: 1093, 241 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +salt-edge rotate: false xy: 491, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -sand-water - rotate: false - xy: 761, 21 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand-water-edge - rotate: false - xy: 589, 395 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -sand-water1 - rotate: false - xy: 795, 21 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand-water2 - rotate: false - xy: 787, 393 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand-water3 - rotate: false - xy: 787, 359 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand1 - rotate: false - xy: 761, 55 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand2 - rotate: false - xy: 795, 55 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sand3 - rotate: false - xy: 727, 21 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sandrocks-large +salt-wall-large rotate: false xy: 851, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -sandrocks1 +salt-wall1 rotate: false - xy: 821, 393 + xy: 1093, 207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -sandrocks2 +salt-wall2 rotate: false - xy: 787, 325 + xy: 1093, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap1 +sand-edge rotate: false - xy: 855, 393 + xy: 589, 395 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +sand-wall-large + rotate: false + xy: 851, 361 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +sand-wall1 + rotate: false + xy: 1127, 207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap2 +sand-wall2 rotate: false - xy: 821, 359 + xy: 1127, 173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -scrap3 +sand-water rotate: false - xy: 787, 291 + xy: 591, 99 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shale-edge +sand-water-edge rotate: false xy: 295, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -shale1 +sand-water1 rotate: false - xy: 889, 393 + xy: 591, 65 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shale2 +sand-water2 rotate: false - xy: 821, 325 + xy: 625, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shale3 +sand-water3 rotate: false - xy: 855, 359 + xy: 625, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shalerocks-large +sand1 rotate: false - xy: 917, 427 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -shalerocks1 - rotate: false - xy: 923, 393 + xy: 1107, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shalerocks2 +sand2 rotate: false - xy: 821, 291 + xy: 1107, 275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shrubs-large +sand3 rotate: false - xy: 983, 427 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -shrubs1 - rotate: false - xy: 855, 325 + xy: 1127, 241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shrubs2 +scrap1 rotate: false - xy: 889, 359 + xy: 659, 97 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -slag +scrap2 rotate: false - xy: 957, 393 + xy: 659, 63 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -slag-edge +scrap3 + rotate: false + xy: 689, 197 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale-edge rotate: false xy: 393, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -snow-edge +shale-wall-large + rotate: false + xy: 917, 427 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +shale-wall1 + rotate: false + xy: 757, 175 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale-wall2 + rotate: false + xy: 757, 141 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale1 + rotate: false + xy: 689, 163 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale2 + rotate: false + xy: 723, 195 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale3 + rotate: false + xy: 723, 161 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shrubs-large + rotate: false + xy: 917, 361 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +shrubs1 + rotate: false + xy: 791, 157 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shrubs2 + rotate: false + xy: 825, 157 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +slag + rotate: false + xy: 859, 157 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +slag-edge rotate: false xy: 491, 199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -snow-pine - rotate: false - xy: 1181, 443 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -snow1 - rotate: false - xy: 855, 291 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -snow2 - rotate: false - xy: 889, 325 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -snow3 - rotate: false - xy: 923, 359 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -snowrocks-large - rotate: false - xy: 1049, 427 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -snowrocks1 - rotate: false - xy: 991, 393 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -snowrocks2 - rotate: false - xy: 889, 291 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -spawn - rotate: false - xy: 923, 325 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -spore-moss-edge +snow-edge rotate: false xy: 589, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -spore-moss1 +snow-pine rotate: false - xy: 957, 359 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -spore-moss2 - rotate: false - xy: 1025, 393 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -spore-moss3 - rotate: false - xy: 923, 291 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -spore-pine - rotate: false - xy: 1231, 443 + xy: 1049, 377 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -sporerocks-large +snow-wall-large rotate: false - xy: 1115, 427 + xy: 983, 427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -sporerocks1 +snow-wall1 rotate: false - xy: 957, 325 + xy: 791, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -sporerocks2 +snow-wall2 rotate: false - xy: 991, 359 + xy: 825, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -stone-edge +snow1 + rotate: false + xy: 893, 157 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +snow2 + rotate: false + xy: 927, 157 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +snow3 + rotate: false + xy: 961, 157 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +spawn + rotate: false + xy: 859, 123 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +spore-moss-edge rotate: false xy: 687, 395 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -stone1 +spore-moss1 rotate: false - xy: 1059, 393 + xy: 893, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -stone2 +spore-moss2 rotate: false - xy: 957, 291 + xy: 927, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -stone3 +spore-moss3 rotate: false - xy: 991, 325 + xy: 961, 123 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -tainted-water +spore-pine rotate: false - xy: 1025, 359 + xy: 1115, 443 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +spore-wall-large + rotate: false + xy: 983, 361 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +spore-wall1 + rotate: false + xy: 995, 139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -tainted-water-edge +spore-wall2 + rotate: false + xy: 1029, 139 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +stone-edge rotate: false xy: 393, 3 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -tar +stone-wall-large rotate: false - xy: 1093, 393 + xy: 1049, 427 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +stone-wall1 + rotate: false + xy: 995, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -tar-edge +stone-wall2 + rotate: false + xy: 1029, 105 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +stone1 + rotate: false + xy: 1063, 139 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +stone2 + rotate: false + xy: 1097, 139 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +stone3 + rotate: false + xy: 1131, 139 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +tainted-water + rotate: false + xy: 1063, 105 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +tainted-water-edge rotate: false xy: 491, 101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +tar + rotate: false + xy: 1097, 105 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +tar-edge + rotate: false + xy: 589, 199 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 tendrils1 rotate: false - xy: 991, 291 + xy: 1131, 105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils2 rotate: false - xy: 1025, 325 + xy: 1133, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils3 rotate: false - xy: 1059, 359 + xy: 1167, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 1127, 393 + xy: 1201, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 1025, 291 + xy: 1235, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 1059, 325 + xy: 1269, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 1093, 359 + xy: 1303, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 1059, 291 + xy: 1337, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 1093, 325 + xy: 1371, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water rotate: false - xy: 1127, 359 + xy: 1405, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-edge rotate: false - xy: 589, 199 + xy: 687, 297 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -8149,2149 +8394,2198 @@ filter: nearest,nearest repeat: none additive-reconstructor-icon-editor rotate: false - xy: 485, 627 + xy: 485, 617 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory-icon-editor rotate: false - xy: 613, 755 + xy: 613, 745 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-icon-editor rotate: false - xy: 1555, 917 + xy: 1555, 907 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-icon-editor rotate: false - xy: 327, 103 + xy: 375, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-icon-editor rotate: false - xy: 375, 203 + xy: 131, 3 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +basalt-icon-editor + rotate: false + xy: 165, 3 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-basalt1 + rotate: false + xy: 165, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-icon-editor rotate: false - xy: 131, 13 + xy: 587, 353 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large-icon-editor rotate: false - xy: 1653, 917 + xy: 1653, 907 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-drill-icon-editor rotate: false - xy: 1, 15 + xy: 1, 5 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-mixer-icon-editor rotate: false - xy: 1103, 721 + xy: 1103, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border-editor rotate: false - xy: 165, 13 + xy: 587, 319 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-forge-icon-editor rotate: false - xy: 1751, 917 + xy: 1751, 907 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-loader-icon-editor rotate: false - xy: 1849, 917 + xy: 1849, 907 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader-icon-editor rotate: false - xy: 1947, 917 + xy: 1947, 907 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +boulder-icon-editor + rotate: false + xy: 325, 177 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 bridge-conduit-icon-editor rotate: false - xy: 587, 363 + xy: 587, 285 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-icon-editor rotate: false - xy: 587, 329 + xy: 521, 221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char-icon-editor rotate: false - xy: 587, 295 + xy: 555, 221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char1 rotate: false - xy: 587, 295 + xy: 555, 221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear-editor rotate: false - xy: 2045, 1012 + xy: 2045, 1002 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 cliff-icon-editor rotate: false - xy: 521, 231 + xy: 649, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliffs-icon-editor rotate: false - xy: 555, 231 + xy: 683, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal-centrifuge-icon-editor rotate: false - xy: 1169, 721 + xy: 1169, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 combustion-generator-icon-editor rotate: false - xy: 649, 589 + xy: 1961, 709 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 command-center-icon-editor rotate: false - xy: 1235, 721 + xy: 1235, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 conduit-icon-editor rotate: false - xy: 683, 589 + xy: 1961, 675 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 container-icon-editor rotate: false - xy: 1301, 721 + xy: 1301, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 conveyor-icon-editor rotate: false - xy: 1961, 719 + xy: 1961, 641 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-icon-editor rotate: false - xy: 1961, 685 + xy: 1961, 607 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large-icon-editor rotate: false - xy: 1367, 721 + xy: 1367, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation-icon-editor rotate: false - xy: 323, 433 + xy: 323, 423 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus-icon-editor rotate: false - xy: 323, 563 + xy: 323, 553 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard-icon-editor rotate: false - xy: 227, 273 + xy: 227, 263 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 craters-icon-editor rotate: false - xy: 1961, 651 + xy: 1989, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters1 rotate: false - xy: 1961, 651 + xy: 1989, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cryofluidmixer-icon-editor rotate: false - xy: 1433, 721 + xy: 1433, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-icon-editor rotate: false - xy: 1499, 721 + xy: 1499, 711 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cyclone-icon-editor rotate: false - xy: 227, 175 + xy: 227, 165 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +dacite-boulder-icon-editor + rotate: false + xy: 1985, 857 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dacite-icon-editor + rotate: false + xy: 1989, 747 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dacite1 + rotate: false + xy: 1989, 747 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite-wall-icon-editor + rotate: false + xy: 1995, 713 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 dark-metal-icon-editor rotate: false - xy: 1961, 617 + xy: 1995, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1-icon-editor rotate: false - xy: 1989, 791 + xy: 1995, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-1 rotate: false - xy: 1989, 791 + xy: 1995, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-2-icon-editor rotate: false - xy: 1989, 757 + xy: 1995, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-2 rotate: false - xy: 1989, 757 + xy: 1995, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-3-icon-editor rotate: false - xy: 1995, 723 + xy: 409, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-3 rotate: false - xy: 1995, 723 + xy: 409, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-4-icon-editor rotate: false - xy: 1995, 689 + xy: 443, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-4 rotate: false - xy: 1995, 689 + xy: 443, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-5-icon-editor rotate: false - xy: 1995, 655 + xy: 477, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-5 rotate: false - xy: 1995, 655 + xy: 477, 191 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-6-icon-editor rotate: false - xy: 1995, 621 + xy: 511, 187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-6 rotate: false - xy: 1995, 621 + xy: 511, 187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-icon-editor rotate: false - xy: 409, 201 + xy: 545, 187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand1 rotate: false - xy: 409, 201 + xy: 545, 187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water-icon-editor rotate: false - xy: 443, 201 + xy: 633, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-icon-editor rotate: false - xy: 477, 201 + xy: 667, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-icon-editor rotate: false - xy: 511, 197 + xy: 717, 595 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-deepwater rotate: false - xy: 511, 197 + xy: 717, 595 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator-icon-editor rotate: false - xy: 131, 47 + xy: 131, 37 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 diode-icon-editor rotate: false - xy: 545, 197 + xy: 765, 645 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dirt-icon-editor + rotate: false + xy: 799, 645 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dirt1 + rotate: false + xy: 799, 645 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dirt-wall-icon-editor + rotate: false + xy: 833, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 disassembler-icon-editor rotate: false - xy: 229, 77 + xy: 229, 67 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 distributor-icon-editor rotate: false - xy: 551, 463 + xy: 551, 453 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-icon-editor rotate: false - xy: 633, 555 + xy: 867, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large-icon-editor rotate: false - xy: 1593, 753 + xy: 1593, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -dunerocks-icon-editor +dune-wall-icon-editor rotate: false - xy: 667, 555 + xy: 901, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo-icon-editor rotate: false - xy: 717, 605 + xy: 935, 645 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-basalt2 + rotate: false + xy: 969, 645 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-basalt3 + rotate: false + xy: 1003, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char2 rotate: false - xy: 765, 655 + xy: 1037, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char3 rotate: false - xy: 799, 655 + xy: 765, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters2 rotate: false - xy: 833, 655 + xy: 799, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters3 rotate: false - xy: 867, 655 + xy: 833, 611 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dacite2 + rotate: false + xy: 867, 611 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dacite3 + rotate: false + xy: 901, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water1 rotate: false - xy: 969, 655 + xy: 1003, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water2 rotate: false - xy: 1003, 655 + xy: 1037, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water3 rotate: false - xy: 1037, 655 + xy: 701, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water1 rotate: false - xy: 765, 621 + xy: 633, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water2 rotate: false - xy: 799, 621 + xy: 667, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water3 rotate: false - xy: 833, 621 + xy: 701, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand2 rotate: false - xy: 901, 655 + xy: 935, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand3 rotate: false - xy: 935, 655 + xy: 969, 611 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dirt2 + rotate: false + xy: 617, 477 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dirt3 + rotate: false + xy: 617, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass1 rotate: false - xy: 867, 621 + xy: 651, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-icon-editor rotate: false - xy: 867, 621 + xy: 651, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass2 rotate: false - xy: 901, 621 + xy: 617, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass3 rotate: false - xy: 935, 621 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-holostone1 - rotate: false - xy: 969, 621 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone-icon-editor - rotate: false - xy: 969, 621 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-holostone2 - rotate: false - xy: 1003, 621 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-holostone3 - rotate: false - xy: 1037, 621 + xy: 651, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock1 rotate: false - xy: 361, 103 + xy: 685, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock-icon-editor rotate: false - xy: 361, 103 + xy: 685, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock2 rotate: false - xy: 701, 555 + xy: 651, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock3 rotate: false - xy: 633, 521 + xy: 685, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow1 rotate: false - xy: 617, 453 + xy: 719, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow-icon-editor rotate: false - xy: 617, 453 + xy: 719, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow2 rotate: false - xy: 651, 487 + xy: 621, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow3 rotate: false - xy: 617, 419 + xy: 621, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice1 rotate: false - xy: 667, 521 + xy: 685, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-icon-editor rotate: false - xy: 667, 521 + xy: 685, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice2 rotate: false - xy: 701, 521 + xy: 719, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice3 rotate: false - xy: 617, 487 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-ignarock1 - rotate: false - xy: 651, 453 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ignarock-icon-editor - rotate: false - xy: 651, 453 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-ignarock2 - rotate: false - xy: 685, 487 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-ignarock3 - rotate: false - xy: 651, 419 + xy: 719, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock1 rotate: false - xy: 685, 453 + xy: 655, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock-icon-editor rotate: false - xy: 685, 453 + xy: 655, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock2 rotate: false - xy: 685, 419 + xy: 621, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock3 rotate: false - xy: 719, 487 + xy: 655, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor rotate: false - xy: 719, 453 + xy: 689, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-icon-editor rotate: false - xy: 719, 453 + xy: 689, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-2 rotate: false - xy: 719, 419 + xy: 655, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-icon-editor rotate: false - xy: 719, 419 + xy: 655, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-3 rotate: false - xy: 621, 385 + xy: 689, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-icon-editor rotate: false - xy: 621, 385 + xy: 689, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-5 rotate: false - xy: 621, 351 + xy: 689, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-icon-editor rotate: false - xy: 621, 351 + xy: 689, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged1 rotate: false - xy: 655, 385 + xy: 723, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged-icon-editor rotate: false - xy: 655, 385 + xy: 723, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged2 rotate: false - xy: 621, 317 + xy: 723, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged3 rotate: false - xy: 655, 351 + xy: 723, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss1 rotate: false - xy: 689, 385 + xy: 621, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss-icon-editor rotate: false - xy: 689, 385 + xy: 621, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss2 rotate: false - xy: 655, 317 + xy: 655, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss3 rotate: false - xy: 689, 351 + xy: 689, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal1 rotate: false - xy: 689, 317 + xy: 723, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal2 rotate: false - xy: 723, 385 + xy: 579, 187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal3 rotate: false - xy: 723, 351 + xy: 361, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper1 rotate: false - xy: 723, 317 + xy: 361, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper2 rotate: false - xy: 621, 283 + xy: 1995, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper3 rotate: false - xy: 655, 283 + xy: 1071, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead1 rotate: false - xy: 689, 283 + xy: 1105, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead2 rotate: false - xy: 723, 283 + xy: 1139, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead3 rotate: false - xy: 579, 197 + xy: 1173, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap1 rotate: false - xy: 361, 69 + xy: 1207, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap2 rotate: false - xy: 361, 35 + xy: 1241, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap3 rotate: false - xy: 361, 1 + xy: 1275, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium1 rotate: false - xy: 1995, 587 + xy: 1309, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium2 rotate: false - xy: 1071, 621 + xy: 1343, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium3 rotate: false - xy: 1105, 621 + xy: 1377, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium1 rotate: false - xy: 1139, 621 + xy: 1411, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium2 rotate: false - xy: 1173, 621 + xy: 1445, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium3 rotate: false - xy: 1207, 621 + xy: 1479, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles1 rotate: false - xy: 1241, 621 + xy: 1513, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles2 rotate: false - xy: 1275, 621 + xy: 751, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles3 rotate: false - xy: 1309, 621 + xy: 785, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-salt rotate: false - xy: 1343, 621 + xy: 819, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-icon-editor rotate: false - xy: 1343, 621 + xy: 819, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water1 rotate: false - xy: 1479, 621 + xy: 955, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water2 rotate: false - xy: 1513, 621 + xy: 989, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water3 rotate: false - xy: 751, 587 + xy: 1023, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand1 rotate: false - xy: 1377, 621 + xy: 853, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-icon-editor rotate: false - xy: 1377, 621 + xy: 853, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand2 rotate: false - xy: 1411, 621 + xy: 887, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand3 rotate: false - xy: 1445, 621 + xy: 921, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale1 rotate: false - xy: 785, 587 + xy: 1057, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-icon-editor rotate: false - xy: 785, 587 + xy: 1057, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale2 rotate: false - xy: 819, 587 + xy: 1091, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale3 rotate: false - xy: 853, 587 + xy: 1125, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-slag rotate: false - xy: 887, 587 + xy: 1159, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag-icon-editor rotate: false - xy: 887, 587 + xy: 1159, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow1 rotate: false - xy: 921, 587 + xy: 1193, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow2 rotate: false - xy: 955, 587 + xy: 1227, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow3 rotate: false - xy: 989, 587 + xy: 1261, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spawn rotate: false - xy: 1023, 587 + xy: 1295, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss1 rotate: false - xy: 1057, 587 + xy: 1329, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-icon-editor rotate: false - xy: 1057, 587 + xy: 1329, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss2 rotate: false - xy: 1091, 587 + xy: 1363, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss3 rotate: false - xy: 1125, 587 + xy: 1397, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone1 rotate: false - xy: 1159, 587 + xy: 1431, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-icon-editor rotate: false - xy: 1159, 587 + xy: 1431, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone2 rotate: false - xy: 1193, 587 + xy: 1465, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone3 rotate: false - xy: 1227, 587 + xy: 1499, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tainted-water rotate: false - xy: 1261, 587 + xy: 735, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-icon-editor rotate: false - xy: 1261, 587 + xy: 735, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tar rotate: false - xy: 1295, 587 + xy: 769, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-icon-editor rotate: false - xy: 1295, 587 + xy: 769, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils1 rotate: false - xy: 1329, 587 + xy: 803, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils2 rotate: false - xy: 1363, 587 + xy: 837, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils3 rotate: false - xy: 1397, 587 + xy: 871, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-water rotate: false - xy: 1431, 587 + xy: 905, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-icon-editor rotate: false - xy: 1431, 587 + xy: 905, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 exponential-reconstructor-icon-editor rotate: false - xy: 1, 145 + xy: 1, 135 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 force-projector-icon-editor rotate: false - xy: 485, 529 + xy: 485, 519 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 fuse-icon-editor rotate: false - xy: 711, 755 + xy: 711, 745 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press-icon-editor rotate: false - xy: 1659, 753 + xy: 1659, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ground-factory-icon-editor rotate: false - xy: 809, 787 + xy: 809, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 hail-icon-editor rotate: false - xy: 1465, 587 + xy: 939, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hyper-processor-icon-editor rotate: false - xy: 907, 787 + xy: 907, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -icerocks-icon-editor +ice-wall-icon-editor rotate: false - xy: 1499, 587 + xy: 973, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-icon-editor rotate: false - xy: 735, 553 + xy: 1007, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 impact-reactor-icon-editor rotate: false - xy: 775, 885 + xy: 775, 875 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 incinerator-icon-editor rotate: false - xy: 769, 553 + xy: 1041, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter-icon-editor rotate: false - xy: 803, 553 + xy: 1075, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source-icon-editor rotate: false - xy: 837, 553 + xy: 1109, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void-icon-editor rotate: false - xy: 871, 553 + xy: 1143, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction-icon-editor rotate: false - xy: 905, 553 + xy: 1177, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln-icon-editor rotate: false - xy: 1725, 753 + xy: 1725, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 lancer-icon-editor rotate: false - xy: 1791, 753 + xy: 1791, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill-icon-editor rotate: false - xy: 1005, 787 + xy: 1005, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-icon-editor rotate: false - xy: 1103, 787 + xy: 1103, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large-icon-editor rotate: false - xy: 905, 885 + xy: 905, 875 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 liquid-junction-icon-editor rotate: false - xy: 939, 553 + xy: 1211, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-icon-editor rotate: false - xy: 973, 553 + xy: 1245, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source-icon-editor rotate: false - xy: 1007, 553 + xy: 1279, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-icon-editor rotate: false - xy: 1201, 787 + xy: 1201, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-void-icon-editor rotate: false - xy: 1041, 553 + xy: 1313, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-display-icon-editor rotate: false - xy: 1299, 787 + xy: 1299, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor-icon-editor rotate: false - xy: 1857, 753 + xy: 1857, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver-icon-editor rotate: false - xy: 1397, 787 + xy: 1397, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill-icon-editor rotate: false - xy: 1923, 753 + xy: 1923, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-pump-icon-editor rotate: false - xy: 1075, 553 + xy: 1347, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 meltdown-icon-editor rotate: false - xy: 1035, 885 + xy: 1035, 875 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 melter-icon-editor rotate: false - xy: 1109, 553 + xy: 1381, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 memory-cell-icon-editor rotate: false - xy: 1143, 553 + xy: 1415, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mend-projector-icon-editor rotate: false - xy: 1103, 655 + xy: 1103, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender-icon-editor rotate: false - xy: 1177, 553 + xy: 1449, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 1211, 553 + xy: 1483, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor-icon-editor rotate: false - xy: 1245, 553 + xy: 1533, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press-icon-editor rotate: false - xy: 453, 431 + xy: 453, 421 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multiplicative-reconstructor-icon-editor rotate: false - xy: 613, 853 + xy: 613, 843 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 naval-factory-icon-editor rotate: false - xy: 1495, 787 + xy: 1495, 777 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-icon-editor rotate: false - xy: 1593, 819 + xy: 1593, 809 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-icon-editor rotate: false - xy: 1691, 819 + xy: 1691, 809 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector-icon-editor rotate: false - xy: 1169, 655 + xy: 1169, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overflow-gate-icon-editor rotate: false - xy: 1279, 553 + xy: 1517, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 parallax-icon-editor rotate: false - xy: 1235, 655 + xy: 1235, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 payload-conveyor-icon-editor rotate: false - xy: 1789, 819 + xy: 1789, 809 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon-editor rotate: false - xy: 1887, 819 + xy: 1887, 809 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pebbles-icon-editor rotate: false - xy: 1313, 553 + xy: 1567, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-editor rotate: false - xy: 1347, 553 + xy: 1551, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 1381, 553 + xy: 1601, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 1415, 553 + xy: 1585, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large-icon-editor rotate: false - xy: 1301, 655 + xy: 1301, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-icon-editor rotate: false - xy: 1367, 655 + xy: 1367, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pine-icon-editor rotate: false - xy: 325, 187 + xy: 583, 533 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 plastanium-compressor-icon-editor rotate: false - xy: 1433, 655 + xy: 1433, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-conveyor-icon-editor rotate: false - xy: 1449, 553 + xy: 1635, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-icon-editor rotate: false - xy: 1483, 553 + xy: 1619, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large-icon-editor rotate: false - xy: 1499, 655 + xy: 1499, 645 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plated-conduit-icon-editor rotate: false - xy: 1533, 587 + xy: 1669, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pneumatic-drill-icon-editor rotate: false - xy: 1565, 687 + xy: 1565, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-node-icon-editor rotate: false - xy: 1517, 553 + xy: 1653, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large-icon-editor rotate: false - xy: 1631, 687 + xy: 1631, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source-icon-editor rotate: false - xy: 1567, 587 + xy: 1703, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 1551, 553 + xy: 1687, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 1601, 587 + xy: 1737, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 1585, 553 + xy: 1721, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer-icon-editor rotate: false - xy: 1697, 687 + xy: 1697, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-icon-editor rotate: false - xy: 1635, 587 + xy: 1771, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point-icon-editor rotate: false - xy: 1763, 687 + xy: 1763, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ripple-icon-editor rotate: false - xy: 325, 335 + xy: 325, 325 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -rock-icon-editor - rotate: false - xy: 1985, 867 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -rocks-icon-editor - rotate: false - xy: 1619, 553 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 rotary-pump-icon-editor rotate: false - xy: 1829, 687 + xy: 1829, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 router-icon-editor rotate: false - xy: 1669, 587 + xy: 1755, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-icon-editor rotate: false - xy: 1895, 687 + xy: 1895, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -saltrocks-icon-editor +salt-wall-icon-editor rotate: false - xy: 1653, 553 + xy: 1805, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salvo-icon-editor rotate: false - xy: 551, 397 + xy: 551, 387 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sand-boulder-icon-editor rotate: false - xy: 1703, 587 + xy: 1789, 543 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-wall-icon-editor + rotate: false + xy: 1839, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 1687, 553 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sandrocks-icon-editor - rotate: false - xy: 1737, 587 + xy: 1823, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scatter-icon-editor rotate: false - xy: 521, 331 + xy: 521, 321 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-icon-editor rotate: false - xy: 1721, 553 + xy: 1873, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-gigantic-icon-editor rotate: false - xy: 1165, 885 + xy: 1165, 875 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge-icon-editor rotate: false - xy: 325, 237 + xy: 325, 227 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-icon-editor rotate: false - xy: 1771, 587 + xy: 1857, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-large-icon-editor rotate: false - xy: 521, 265 + xy: 521, 255 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 segment-icon-editor rotate: false - xy: 1565, 621 + xy: 1565, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-icon-editor rotate: false - xy: 1631, 621 + xy: 1631, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shale-boulder-icon-editor rotate: false - xy: 1755, 553 + xy: 1907, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shalerocks-icon-editor +shale-wall-icon-editor rotate: false - xy: 1805, 587 + xy: 1891, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 1789, 553 + xy: 1925, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 1839, 587 + xy: 753, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 silicon-crucible-icon-editor rotate: false - xy: 423, 333 + xy: 423, 323 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter-icon-editor rotate: false - xy: 1697, 621 + xy: 1697, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +snow-boulder-icon-editor + rotate: false + xy: 715, 629 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 snow-icon-editor rotate: false - xy: 1823, 553 + xy: 753, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-pine-icon-editor rotate: false - xy: 583, 543 + xy: 327, 127 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -snowrock-icon-editor +snow-wall-icon-editor rotate: false - xy: 715, 639 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -snowrocks-icon-editor - rotate: false - xy: 1873, 587 + xy: 787, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 1857, 553 + xy: 753, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large-icon-editor rotate: false - xy: 423, 235 + xy: 423, 225 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sorter-icon-editor rotate: false - xy: 1907, 587 + xy: 787, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 1891, 553 + xy: 821, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spectre-icon-editor rotate: false - xy: 1295, 885 + xy: 1295, 875 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spore-cluster-icon-editor rotate: false - xy: 1985, 825 + xy: 1985, 815 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-pine-icon-editor rotate: false - xy: 327, 137 + xy: 327, 77 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-press-icon-editor rotate: false - xy: 1763, 621 + xy: 1763, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -sporerocks-icon-editor +spore-wall-icon-editor rotate: false - xy: 1925, 553 + xy: 787, 441 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +steam-generator-icon-editor + rotate: false + xy: 1829, 611 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +stone-wall-icon-editor + rotate: false + xy: 821, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-tower-icon-editor rotate: false - xy: 1829, 621 + xy: 1895, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-icon-editor rotate: false - xy: 753, 519 + xy: 855, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large-icon-editor rotate: false - xy: 1895, 621 + xy: 229, 1 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 swarmer-icon-editor rotate: false - xy: 229, 11 + xy: 295, 1 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 switch-icon-editor rotate: false - xy: 753, 485 + xy: 821, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils-icon-editor rotate: false - xy: 787, 519 + xy: 855, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tetrative-reconstructor-icon-editor rotate: false - xy: 323, 725 + xy: 323, 715 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 thermal-generator-icon-editor rotate: false - xy: 295, 11 + xy: 583, 649 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump-icon-editor rotate: false - xy: 809, 689 + xy: 809, 679 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-icon-editor rotate: false - xy: 907, 689 + xy: 907, 679 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-wall-icon-editor rotate: false - xy: 753, 451 + xy: 889, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large-icon-editor rotate: false - xy: 583, 659 + xy: 583, 583 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster-icon-editor rotate: false - xy: 1425, 885 + xy: 1425, 875 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-conveyor-icon-editor rotate: false - xy: 787, 485 + xy: 855, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 821, 519 + xy: 889, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large-icon-editor rotate: false - xy: 583, 593 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-icon-editor - rotate: false - xy: 649, 689 + xy: 649, 679 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 underflow-gate-icon-editor rotate: false - xy: 787, 451 + xy: 923, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-editor rotate: false - xy: 821, 485 + xy: 889, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault-icon-editor rotate: false - xy: 1005, 689 + xy: 1005, 679 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 water-extractor-icon-editor rotate: false - xy: 649, 623 + xy: 649, 613 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-icon-editor rotate: false - xy: 715, 689 + xy: 715, 679 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 white-tree-dead-icon-editor rotate: false - xy: 1, 693 + xy: 1, 683 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 white-tree-icon-editor rotate: false - xy: 1, 371 + xy: 1, 361 size: 320, 320 orig: 320, 320 offset: 0, 0 @@ -10311,7 +10605,7 @@ alpha-bg index: -1 bar rotate: false - xy: 1656, 379 + xy: 1284, 212 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -10319,7 +10613,7 @@ bar index: -1 bar-top rotate: false - xy: 1659, 417 + xy: 1217, 178 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -10334,14 +10628,14 @@ block-additive-reconstructor-large index: -1 block-additive-reconstructor-medium rotate: false - xy: 957, 589 + xy: 954, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-additive-reconstructor-small rotate: false - xy: 781, 690 + xy: 2023, 771 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -10369,14 +10663,14 @@ block-air-factory-large index: -1 block-air-factory-medium rotate: false - xy: 995, 618 + xy: 988, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-air-factory-small rotate: false - xy: 1013, 286 + xy: 1071, 145 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -10397,28 +10691,28 @@ block-air-factory-xlarge index: -1 block-alloy-smelter-large rotate: false - xy: 651, 374 + xy: 551, 247 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-alloy-smelter-medium rotate: false - xy: 1029, 618 + xy: 1022, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 971, 184 + xy: 1097, 145 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 309, 698 + xy: 337, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10432,28 +10726,28 @@ block-alloy-smelter-xlarge index: -1 block-arc-large rotate: false - xy: 701, 434 + xy: 651, 341 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-arc-medium rotate: false - xy: 1071, 647 + xy: 1056, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 1622, 355 + xy: 1071, 119 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 331, 598 + xy: 131, 540 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10467,28 +10761,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 351, 47 + xy: 401, 34 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 1105, 647 + xy: 1090, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 703, 6 + xy: 1123, 145 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 1955, 740 + xy: 309, 698 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10500,7184 +10794,7324 @@ block-armored-conveyor-xlarge orig: 48, 48 offset: 0, 0 index: -1 -block-battery-large +block-basalt-large rotate: false - xy: 451, 124 + xy: 501, 134 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-battery-large-large +block-basalt-medium rotate: false - xy: 501, 184 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-battery-large-medium - rotate: false - xy: 1139, 647 + xy: 1124, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-battery-large-small +block-basalt-small rotate: false - xy: 729, 6 + xy: 1097, 119 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-battery-large-tiny +block-basalt-tiny rotate: false - xy: 309, 680 + xy: 331, 598 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-battery-large-xlarge +block-basalt-xlarge rotate: false xy: 51, 478 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-battery-medium +block-battery-large rotate: false - xy: 1173, 647 + xy: 451, 74 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-battery-large-large + rotate: false + xy: 701, 374 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-battery-large-medium + rotate: false + xy: 1158, 647 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-battery-small +block-battery-large-small rotate: false - xy: 755, 6 + xy: 1149, 145 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-battery-tiny +block-battery-large-tiny rotate: false - xy: 331, 580 + xy: 1443, 611 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-battery-xlarge +block-battery-large-xlarge rotate: false xy: 131, 558 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-blast-drill-large +block-battery-medium rotate: false - xy: 601, 274 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-blast-drill-medium - rotate: false - xy: 1207, 647 + xy: 881, 576 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-blast-drill-small +block-battery-small rotate: false - xy: 781, 6 + xy: 1123, 119 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-blast-drill-tiny +block-battery-tiny rotate: false - xy: 1955, 722 + xy: 1319, 590 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-blast-drill-xlarge +block-battery-xlarge rotate: false xy: 181, 608 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-blast-mixer-large +block-blast-drill-large rotate: false - xy: 551, 224 + xy: 443, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-blast-mixer-medium +block-blast-drill-medium rotate: false - xy: 1241, 647 + xy: 877, 542 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-blast-mixer-small +block-blast-drill-small rotate: false - xy: 807, 6 + xy: 1149, 119 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-blast-mixer-tiny +block-blast-drill-tiny rotate: false - xy: 1955, 704 + xy: 309, 680 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-blast-mixer-xlarge +block-blast-drill-xlarge rotate: false xy: 259, 769 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-block-forge-large +block-blast-mixer-large rotate: false - xy: 543, 182 + xy: 601, 274 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-block-forge-medium +block-blast-mixer-medium rotate: false - xy: 1949, 857 + xy: 877, 508 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-block-forge-small +block-blast-mixer-small rotate: false - xy: 833, 6 + xy: 1535, 596 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-block-forge-tiny +block-blast-mixer-tiny rotate: false - xy: 1955, 686 + xy: 331, 580 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-block-forge-xlarge +block-blast-mixer-xlarge rotate: false xy: 1, 378 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-block-loader-large +block-block-forge-large rotate: false - xy: 351, 5 + xy: 651, 299 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-block-loader-medium +block-block-forge-medium rotate: false - xy: 991, 584 + xy: 877, 474 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-block-loader-small +block-block-forge-small rotate: false - xy: 859, 6 + xy: 1597, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-block-loader-tiny +block-block-forge-tiny rotate: false - xy: 1705, 542 + xy: 1443, 593 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-block-loader-xlarge +block-block-forge-xlarge rotate: false xy: 51, 428 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-block-unloader-large +block-block-loader-large rotate: false - xy: 401, 74 + xy: 693, 332 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-block-unloader-medium +block-block-loader-medium rotate: false - xy: 1025, 584 + xy: 877, 440 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-block-unloader-small +block-block-loader-small rotate: false - xy: 885, 6 + xy: 1623, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-block-unloader-tiny +block-block-loader-tiny rotate: false - xy: 1705, 524 + xy: 1004, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-block-unloader-xlarge +block-block-loader-xlarge rotate: false xy: 181, 558 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-bridge-conduit-large +block-block-unloader-large rotate: false - xy: 393, 32 + xy: 693, 290 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-bridge-conduit-medium +block-block-unloader-medium rotate: false - xy: 1489, 795 + xy: 919, 605 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-bridge-conduit-small +block-block-unloader-small rotate: false - xy: 911, 6 + xy: 1649, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-bridge-conduit-tiny +block-block-unloader-tiny rotate: false - xy: 1705, 506 + xy: 1022, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-bridge-conduit-xlarge +block-block-unloader-xlarge rotate: false xy: 259, 719 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-bridge-conveyor-large +block-boulder-large rotate: false - xy: 501, 142 + xy: 551, 205 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-bridge-conveyor-medium +block-boulder-medium rotate: false - xy: 1405, 710 + xy: 1615, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-bridge-conveyor-small +block-boulder-small rotate: false - xy: 937, 6 + xy: 1675, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-bridge-conveyor-tiny +block-boulder-tiny rotate: false - xy: 1727, 651 + xy: 1040, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-bridge-conveyor-xlarge +block-boulder-xlarge rotate: false xy: 1, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-char-large +block-bridge-conduit-large rotate: false - xy: 543, 140 + xy: 593, 232 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-char-medium +block-bridge-conduit-medium rotate: false - xy: 1063, 613 + xy: 1649, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-char-small +block-bridge-conduit-small rotate: false - xy: 963, 6 + xy: 1701, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-char-tiny +block-bridge-conduit-tiny rotate: false - xy: 1727, 633 + xy: 355, 7 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-char-xlarge +block-bridge-conduit-xlarge rotate: false xy: 51, 378 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cliff-large +block-bridge-conveyor-large rotate: false - xy: 701, 392 + xy: 593, 190 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cliff-medium +block-bridge-conveyor-medium rotate: false - xy: 1097, 613 + xy: 1683, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cliff-small +block-bridge-conveyor-small rotate: false - xy: 1421, 327 + xy: 1727, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cliff-tiny +block-bridge-conveyor-tiny rotate: false - xy: 1727, 615 + xy: 373, 7 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cliff-xlarge +block-bridge-conveyor-xlarge rotate: false xy: 259, 669 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cliffs-large +block-char-large rotate: false - xy: 751, 536 + xy: 546, 163 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cliffs-medium +block-char-medium rotate: false - xy: 1131, 613 + xy: 1717, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cliffs-small +block-char-small rotate: false - xy: 1447, 327 + xy: 1753, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cliffs-tiny +block-char-tiny rotate: false - xy: 1727, 597 + xy: 2025, 889 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cliffs-xlarge +block-char-xlarge rotate: false xy: 1, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-coal-centrifuge-large +block-cliff-large rotate: false - xy: 751, 494 + xy: 543, 121 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-coal-centrifuge-medium +block-cliff-medium rotate: false - xy: 1165, 613 + xy: 1751, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-coal-centrifuge-small +block-cliff-small rotate: false - xy: 1473, 327 + xy: 1779, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-coal-centrifuge-tiny +block-cliff-tiny rotate: false - xy: 1727, 579 + xy: 2025, 871 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-coal-centrifuge-xlarge +block-cliff-xlarge rotate: false xy: 51, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-combustion-generator-large +block-cliffs-large rotate: false - xy: 793, 536 + xy: 501, 92 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-combustion-generator-medium +block-cliffs-medium rotate: false - xy: 1199, 613 + xy: 1785, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-combustion-generator-small +block-cliffs-small rotate: false - xy: 1499, 327 + xy: 1805, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-combustion-generator-tiny +block-cliffs-tiny rotate: false - xy: 1727, 561 + xy: 2025, 853 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-combustion-generator-xlarge +block-cliffs-xlarge rotate: false xy: 1, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-command-center-large +block-coal-centrifuge-large rotate: false - xy: 793, 494 + xy: 543, 79 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-command-center-medium +block-coal-centrifuge-medium rotate: false - xy: 1233, 613 + xy: 1819, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-command-center-small +block-coal-centrifuge-small rotate: false - xy: 1525, 327 + xy: 1831, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-command-center-tiny +block-coal-centrifuge-tiny rotate: false - xy: 1031, 211 + xy: 2025, 835 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-command-center-xlarge +block-coal-centrifuge-xlarge rotate: false xy: 51, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conduit-large +block-combustion-generator-large rotate: false - xy: 835, 536 + xy: 588, 148 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conduit-medium +block-combustion-generator-medium rotate: false - xy: 1059, 579 + xy: 1853, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conduit-small +block-combustion-generator-small rotate: false - xy: 1551, 327 + xy: 1857, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conduit-tiny +block-combustion-generator-tiny rotate: false - xy: 1049, 211 + xy: 2025, 817 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conduit-xlarge +block-combustion-generator-xlarge rotate: false xy: 1, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-container-large +block-command-center-large rotate: false - xy: 835, 494 + xy: 585, 106 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-container-medium +block-command-center-medium rotate: false - xy: 1093, 579 + xy: 1887, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-container-small +block-command-center-small rotate: false - xy: 1648, 353 + xy: 1883, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-container-tiny +block-command-center-tiny rotate: false - xy: 1067, 211 + xy: 2025, 799 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-container-xlarge +block-command-center-xlarge rotate: false xy: 51, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conveyor-large +block-conduit-large rotate: false - xy: 751, 452 + xy: 585, 64 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conveyor-medium +block-conduit-medium rotate: false - xy: 1127, 579 + xy: 1921, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conveyor-small +block-conduit-small rotate: false - xy: 1387, 310 + xy: 1909, 637 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conveyor-tiny +block-conduit-tiny rotate: false - xy: 1085, 211 + xy: 1177, 86 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conveyor-xlarge +block-conduit-xlarge rotate: false xy: 1, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-large +block-container-large rotate: false - xy: 793, 452 + xy: 643, 257 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-copper-wall-large-large +block-container-medium 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 + xy: 661, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-large-small +block-container-small rotate: false - xy: 2017, 818 + xy: 1566, 609 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-large-tiny +block-container-tiny rotate: false - xy: 1103, 211 + xy: 1177, 68 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-large-xlarge +block-container-xlarge rotate: false xy: 51, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-medium +block-conveyor-large rotate: false - xy: 1195, 579 + xy: 635, 215 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-conveyor-medium + rotate: false + xy: 915, 571 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-small +block-conveyor-small rotate: false - xy: 1039, 281 + xy: 1183, 156 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-tiny +block-conveyor-tiny rotate: false - xy: 1121, 211 + xy: 1177, 50 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-xlarge +block-conveyor-xlarge rotate: false xy: 1, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-foundation-large +block-copper-wall-large rotate: false - xy: 743, 410 + xy: 685, 248 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-foundation-medium +block-copper-wall-large-large rotate: false - xy: 1229, 579 + xy: 635, 173 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-copper-wall-large-medium + rotate: false + xy: 911, 537 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-foundation-small +block-copper-wall-large-small rotate: false - xy: 1065, 281 + xy: 1175, 130 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-foundation-tiny +block-copper-wall-large-tiny rotate: false - xy: 1139, 211 + xy: 1177, 32 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-foundation-xlarge +block-copper-wall-large-xlarge rotate: false xy: 51, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-nucleus-large +block-copper-wall-medium rotate: false - xy: 785, 410 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-core-nucleus-medium - rotate: false - xy: 1979, 899 + xy: 911, 503 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-nucleus-small +block-copper-wall-small rotate: false - xy: 1091, 281 + xy: 1209, 152 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-nucleus-tiny +block-copper-wall-tiny rotate: false - xy: 1157, 211 + xy: 1177, 14 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-nucleus-xlarge +block-copper-wall-xlarge rotate: false xy: 1, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-shard-large +block-core-foundation-large rotate: false - xy: 827, 410 + xy: 677, 206 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-shard-medium +block-core-foundation-medium rotate: false - xy: 2013, 907 + xy: 911, 469 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-shard-small +block-core-foundation-small rotate: false - xy: 1117, 281 + xy: 1201, 126 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-shard-tiny +block-core-foundation-tiny rotate: false - xy: 1175, 211 + xy: 1195, 82 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-shard-xlarge +block-core-foundation-xlarge rotate: false xy: 51, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-craters-large +block-core-nucleus-large rotate: false - xy: 743, 368 + xy: 677, 164 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-craters-medium +block-core-nucleus-medium rotate: false - xy: 1983, 865 + xy: 911, 435 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-craters-small +block-core-nucleus-small rotate: false - xy: 1143, 281 + xy: 1175, 104 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-craters-tiny +block-core-nucleus-tiny rotate: false - xy: 1193, 211 + xy: 1195, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-craters-xlarge +block-core-nucleus-xlarge rotate: false xy: 51, 28 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cryofluidmixer-large +block-core-shard-large rotate: false - xy: 785, 368 + xy: 630, 131 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cryofluidmixer-medium +block-core-shard-medium rotate: false - xy: 881, 560 + xy: 1957, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cryofluidmixer-small +block-core-shard-small rotate: false - xy: 1169, 281 + xy: 1201, 100 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cryofluidmixer-tiny +block-core-shard-tiny rotate: false - xy: 1211, 211 + xy: 1213, 82 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cryofluidmixer-xlarge +block-core-shard-xlarge rotate: false xy: 857, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cultivator-large +block-craters-large rotate: false - xy: 827, 368 + xy: 627, 89 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cultivator-medium +block-craters-medium rotate: false - xy: 877, 526 + xy: 1957, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cultivator-small +block-craters-small rotate: false - xy: 1195, 281 + xy: 1235, 152 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cultivator-tiny +block-craters-tiny rotate: false - xy: 1229, 211 + xy: 1213, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cultivator-xlarge +block-craters-xlarge rotate: false xy: 907, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cyclone-large +block-cryofluidmixer-large rotate: false - xy: 493, 100 + xy: 672, 122 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cyclone-medium +block-cryofluidmixer-medium rotate: false - xy: 877, 492 + xy: 1955, 789 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cyclone-small +block-cryofluidmixer-small rotate: false - xy: 1221, 281 + xy: 1227, 126 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cyclone-tiny +block-cryofluidmixer-tiny rotate: false - xy: 1247, 211 + xy: 1195, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cyclone-xlarge +block-cryofluidmixer-xlarge rotate: false xy: 957, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-metal-large +block-cultivator-large rotate: false - xy: 451, 82 + xy: 669, 80 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-metal-medium +block-cultivator-medium rotate: false - xy: 877, 458 + xy: 527, 3 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-metal-small +block-cultivator-small rotate: false - xy: 1247, 281 + xy: 1227, 100 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-metal-tiny +block-cultivator-tiny rotate: false - xy: 1265, 211 + xy: 1195, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-metal-xlarge +block-cultivator-xlarge rotate: false xy: 1007, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-1-large +block-cyclone-large rotate: false - xy: 535, 98 + xy: 627, 47 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-1-medium +block-cyclone-medium rotate: false - xy: 915, 547 + xy: 1979, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-1-small +block-cyclone-small rotate: false - xy: 1273, 281 + xy: 1071, 93 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-1-tiny +block-cyclone-tiny rotate: false - xy: 1283, 211 + xy: 1231, 82 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-1-xlarge +block-cyclone-xlarge rotate: false xy: 1057, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-2-large +block-dacite-boulder-large rotate: false - xy: 493, 58 + xy: 669, 38 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-2-medium +block-dacite-boulder-medium rotate: false - xy: 911, 513 + xy: 2013, 907 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-2-small +block-dacite-boulder-small rotate: false - xy: 1299, 281 + xy: 1097, 93 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-2-tiny +block-dacite-boulder-tiny rotate: false - xy: 1301, 211 + xy: 1231, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-2-xlarge +block-dacite-boulder-xlarge rotate: false xy: 1107, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-3-large +block-dacite-large rotate: false - xy: 535, 56 + xy: 751, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-3-medium +block-dacite-medium rotate: false - xy: 911, 479 + xy: 1611, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-3-small +block-dacite-small rotate: false - xy: 1325, 294 + xy: 1123, 93 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-3-tiny +block-dacite-tiny rotate: false - xy: 1747, 662 + xy: 1213, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-3-xlarge +block-dacite-wall-large + rotate: false + xy: 751, 494 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dacite-wall-medium + rotate: false + xy: 1645, 765 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dacite-wall-small + rotate: false + xy: 1149, 93 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dacite-wall-tiny + rotate: false + xy: 1213, 28 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dacite-wall-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 +block-dacite-xlarge rotate: false xy: 1207, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-5-large +block-dark-metal-large rotate: false - xy: 651, 332 + xy: 793, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-5-medium +block-dark-metal-medium rotate: false - xy: 911, 411 + xy: 1679, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-5-small +block-dark-metal-small rotate: false - xy: 1325, 268 + xy: 1073, 67 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-5-tiny +block-dark-metal-tiny rotate: false - xy: 1783, 662 + xy: 1249, 82 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-5-xlarge +block-dark-metal-xlarge rotate: false xy: 1257, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-6-large +block-dark-panel-1-large rotate: false - xy: 693, 308 + xy: 751, 452 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-6-medium +block-dark-panel-1-medium rotate: false - xy: 911, 377 + xy: 1713, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-6-small +block-dark-panel-1-small rotate: false - xy: 1351, 268 + xy: 1073, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-6-tiny +block-dark-panel-1-tiny rotate: false - xy: 1801, 662 + xy: 1249, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-6-xlarge +block-dark-panel-1-xlarge rotate: false xy: 1307, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-large +block-dark-panel-2-large rotate: false - xy: 735, 326 + xy: 793, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-darksand-medium +block-dark-panel-2-medium rotate: false - xy: 957, 555 + xy: 1747, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-darksand-small +block-dark-panel-2-small rotate: false - xy: 1377, 284 + xy: 1099, 67 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-darksand-tainted-water-large +block-dark-panel-2-tiny 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 + xy: 1231, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-darksand-tainted-water-xlarge +block-dark-panel-2-xlarge rotate: false xy: 1357, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-tiny +block-dark-panel-3-large 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 + xy: 835, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-darksand-water-medium +block-dark-panel-3-medium rotate: false - xy: 1025, 550 + xy: 1781, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-darksand-water-small +block-dark-panel-3-small rotate: false - xy: 1693, 463 + xy: 1099, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-darksand-water-tiny +block-dark-panel-3-tiny rotate: false - xy: 1855, 662 + xy: 1231, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-darksand-water-xlarge +block-dark-panel-3-xlarge rotate: false xy: 1407, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-xlarge +block-dark-panel-4-large + rotate: false + xy: 793, 452 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dark-panel-4-medium + rotate: false + xy: 1815, 765 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dark-panel-4-small + rotate: false + xy: 1125, 67 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dark-panel-4-tiny + rotate: false + xy: 1249, 46 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-panel-4-xlarge rotate: false xy: 1457, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-deepwater-large +block-dark-panel-5-large rotate: false - xy: 735, 284 + xy: 835, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-deepwater-medium +block-dark-panel-5-medium rotate: false - xy: 1059, 545 + xy: 1849, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-deepwater-small +block-dark-panel-5-small rotate: false - xy: 1674, 353 + xy: 1125, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-deepwater-tiny +block-dark-panel-5-tiny rotate: false - xy: 1873, 662 + xy: 1249, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-deepwater-xlarge +block-dark-panel-5-xlarge rotate: false xy: 1507, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-differential-generator-large +block-dark-panel-6-large rotate: false - xy: 777, 284 + xy: 835, 452 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-differential-generator-medium +block-dark-panel-6-medium rotate: false - xy: 1093, 545 + xy: 1883, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-differential-generator-small +block-dark-panel-6-small rotate: false - xy: 1622, 329 + xy: 1151, 67 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-differential-generator-tiny +block-dark-panel-6-tiny rotate: false - xy: 1891, 662 + xy: 1195, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-differential-generator-xlarge +block-dark-panel-6-xlarge rotate: false xy: 1557, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-diode-large +block-darksand-large rotate: false - xy: 819, 284 + xy: 751, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-diode-medium +block-darksand-medium rotate: false - xy: 1127, 545 + xy: 1917, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-diode-small +block-darksand-small rotate: false - xy: 1648, 327 + xy: 1151, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-diode-tiny +block-darksand-tainted-water-large rotate: false - xy: 1909, 662 + xy: 793, 410 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-medium + rotate: false + xy: 1951, 755 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-small + rotate: false + xy: 1073, 15 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-tiny + rotate: false + xy: 1213, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-diode-xlarge +block-darksand-tainted-water-xlarge rotate: false xy: 1607, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-disassembler-large +block-darksand-tiny 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 + xy: 1231, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-disassembler-xlarge +block-darksand-water-large + rotate: false + xy: 835, 410 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-darksand-water-medium + rotate: false + xy: 1991, 865 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-water-small + rotate: false + xy: 1099, 15 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-water-tiny + rotate: false + xy: 1249, 10 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-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 +block-darksand-xlarge rotate: false xy: 1707, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-door-large +block-deepwater-large rotate: false - xy: 601, 232 + xy: 743, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-door-large-large +block-deepwater-medium 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 + xy: 1991, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-large-small +block-deepwater-small rotate: false - xy: 1403, 258 + xy: 1125, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-large-tiny +block-deepwater-tiny rotate: false - xy: 1763, 644 + xy: 1267, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-large-xlarge +block-deepwater-xlarge rotate: false xy: 1757, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-door-medium +block-differential-generator-large rotate: false - xy: 1485, 761 + xy: 785, 368 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-differential-generator-medium + rotate: false + xy: 1573, 743 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-small +block-differential-generator-small rotate: false - xy: 1429, 301 + xy: 1151, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-tiny +block-differential-generator-tiny rotate: false - xy: 1745, 626 + xy: 1285, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-xlarge +block-differential-generator-xlarge rotate: false xy: 1807, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dunerocks-large +block-diode-large rotate: false - xy: 688, 266 + xy: 827, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dunerocks-medium +block-diode-medium rotate: false - xy: 603, 4 + xy: 1607, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dunerocks-small +block-diode-small rotate: false - xy: 1429, 275 + xy: 695, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dunerocks-tiny +block-diode-tiny rotate: false - xy: 1763, 626 + xy: 1267, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dunerocks-xlarge +block-diode-xlarge rotate: false xy: 1857, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-duo-large +block-dirt-large rotate: false - xy: 685, 224 + xy: 735, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-duo-medium +block-dirt-medium rotate: false - xy: 1397, 676 + xy: 1641, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-duo-small +block-dirt-small rotate: false - xy: 1455, 301 + xy: 721, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-duo-tiny +block-dirt-tiny rotate: false - xy: 1781, 644 + xy: 1267, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-duo-xlarge +block-dirt-wall-large + rotate: false + xy: 777, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-dirt-wall-medium + rotate: false + xy: 1675, 731 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dirt-wall-small + rotate: false + xy: 747, 6 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-dirt-wall-tiny + rotate: false + xy: 1303, 64 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dirt-wall-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 +block-dirt-xlarge rotate: false xy: 1957, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-force-projector-large +block-disassembler-large rotate: false - xy: 730, 242 + xy: 819, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-force-projector-medium +block-disassembler-medium rotate: false - xy: 1263, 579 + xy: 1709, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-force-projector-small +block-disassembler-small rotate: false - xy: 1481, 301 + xy: 773, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-force-projector-tiny +block-disassembler-tiny rotate: false - xy: 1763, 608 + xy: 1285, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-force-projector-xlarge +block-disassembler-xlarge rotate: false xy: 345, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-fuse-large +block-distributor-large rotate: false - xy: 772, 242 + xy: 735, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-fuse-medium +block-distributor-medium rotate: false - xy: 1263, 545 + xy: 1743, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-fuse-small +block-distributor-small rotate: false - xy: 1481, 275 + xy: 799, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-fuse-tiny +block-distributor-tiny rotate: false - xy: 1781, 626 + xy: 1285, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-fuse-xlarge +block-distributor-xlarge rotate: false xy: 395, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-graphite-press-large +block-door-large rotate: false - xy: 814, 242 + xy: 777, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-graphite-press-medium +block-door-large-large rotate: false - xy: 1275, 647 + xy: 819, 284 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-medium + rotate: false + xy: 1777, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-graphite-press-small +block-door-large-small rotate: false - xy: 1507, 301 + xy: 825, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-graphite-press-tiny +block-door-large-tiny rotate: false - xy: 1799, 644 + xy: 1267, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-graphite-press-xlarge +block-door-large-xlarge rotate: false xy: 445, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-grass-large +block-door-medium rotate: false - xy: 727, 200 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-grass-medium - rotate: false - xy: 1983, 831 + xy: 1811, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-grass-small +block-door-small rotate: false - xy: 1507, 275 + xy: 851, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-grass-tiny +block-door-tiny rotate: false - xy: 1745, 590 + xy: 1321, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-grass-xlarge +block-door-xlarge rotate: false xy: 495, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ground-factory-large +block-dune-wall-large rotate: false - xy: 769, 200 + xy: 727, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ground-factory-medium +block-dune-wall-medium rotate: false - xy: 1431, 676 + xy: 1845, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ground-factory-small +block-dune-wall-small rotate: false - xy: 1533, 301 + xy: 877, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ground-factory-tiny +block-dune-wall-tiny rotate: false - xy: 1763, 590 + xy: 1339, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ground-factory-xlarge +block-dune-wall-xlarge rotate: false xy: 545, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hail-large +block-duo-large rotate: false - xy: 811, 200 + xy: 769, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hail-medium +block-duo-medium rotate: false - xy: 1439, 710 + xy: 1879, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hail-small +block-duo-small rotate: false - xy: 1533, 275 + xy: 903, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hail-tiny +block-duo-tiny rotate: false - xy: 1781, 608 + xy: 1303, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hail-xlarge +block-duo-xlarge rotate: false xy: 595, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-holostone-large +block-exponential-reconstructor-large rotate: false - xy: 727, 158 + xy: 811, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-holostone-medium +block-exponential-reconstructor-medium rotate: false - xy: 1447, 744 + xy: 1913, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-holostone-small +block-exponential-reconstructor-small rotate: false - xy: 1559, 301 + xy: 929, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-holostone-tiny +block-exponential-reconstructor-tiny rotate: false - xy: 1799, 626 + xy: 1303, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-holostone-xlarge +block-exponential-reconstructor-xlarge rotate: false xy: 645, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hotrock-large +block-force-projector-large rotate: false - xy: 769, 158 + xy: 719, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hotrock-medium +block-force-projector-medium rotate: false - xy: 1481, 727 + xy: 1947, 721 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hotrock-small +block-force-projector-small rotate: false - xy: 1559, 275 + xy: 955, 6 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hotrock-tiny +block-force-projector-tiny rotate: false - xy: 1817, 644 + xy: 1285, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hotrock-xlarge +block-force-projector-xlarge rotate: false xy: 695, 866 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hyper-processor-large +block-fuse-large rotate: false - xy: 811, 158 + xy: 761, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hyper-processor-medium +block-fuse-medium rotate: false - xy: 1473, 693 + xy: 1195, 658 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hyper-processor-small +block-fuse-small rotate: false - xy: 1429, 249 + xy: 1935, 627 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hyper-processor-tiny +block-fuse-tiny rotate: false - xy: 1745, 572 + xy: 1321, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hyper-processor-xlarge +block-fuse-xlarge rotate: false xy: 101, 478 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-large +block-graphite-press-large rotate: false - xy: 869, 410 + xy: 803, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ice-medium +block-graphite-press-medium rotate: false - xy: 1465, 659 + xy: 911, 401 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-small +block-graphite-press-small rotate: false - xy: 1455, 249 + xy: 1961, 627 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ice-snow-large +block-graphite-press-tiny rotate: false - xy: 869, 368 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-snow-medium - rotate: false - xy: 1301, 613 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-small - rotate: false - xy: 1481, 249 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ice-snow-tiny - rotate: false - xy: 1763, 572 + xy: 1321, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-snow-xlarge +block-graphite-press-xlarge rotate: false xy: 101, 428 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-tiny +block-grass-large rotate: false - xy: 1781, 590 + xy: 719, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-grass-medium + rotate: false + xy: 954, 613 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-grass-small + rotate: false + xy: 1561, 583 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-grass-tiny + rotate: false + xy: 1303, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-xlarge +block-grass-xlarge rotate: false xy: 101, 378 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-icerocks-large +block-ground-factory-large rotate: false - xy: 861, 326 + xy: 761, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-icerocks-medium +block-ground-factory-medium rotate: false - xy: 1297, 579 + xy: 988, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-icerocks-small +block-ground-factory-small rotate: false - xy: 1507, 249 + xy: 1253, 126 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-icerocks-tiny +block-ground-factory-tiny rotate: false - xy: 1799, 608 + xy: 1339, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-icerocks-xlarge +block-ground-factory-xlarge rotate: false xy: 101, 328 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ignarock-large +block-hail-large rotate: false - xy: 861, 284 + xy: 803, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ignarock-medium +block-hail-medium rotate: false - xy: 1297, 545 + xy: 1022, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ignarock-small +block-hail-small rotate: false - xy: 1533, 249 + xy: 1253, 100 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ignarock-tiny +block-hail-tiny rotate: false - xy: 1817, 626 + xy: 1357, 49 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ignarock-xlarge +block-hail-xlarge rotate: false xy: 101, 278 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-illuminator-large +block-hotrock-large rotate: false - xy: 856, 242 + xy: 714, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-illuminator-medium +block-hotrock-medium rotate: false - xy: 1507, 693 + xy: 1056, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-illuminator-small +block-hotrock-small rotate: false - xy: 1559, 249 + xy: 1251, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-illuminator-tiny +block-hotrock-tiny rotate: false - xy: 1835, 644 + xy: 1339, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-illuminator-xlarge +block-hotrock-xlarge rotate: false xy: 101, 228 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-impact-reactor-large +block-hyper-processor-large rotate: false - xy: 853, 200 + xy: 756, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-impact-reactor-medium +block-hyper-processor-medium rotate: false - xy: 1499, 659 + xy: 1090, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-impact-reactor-small +block-hyper-processor-small rotate: false - xy: 997, 184 + xy: 1277, 186 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-impact-reactor-tiny +block-hyper-processor-tiny rotate: false - xy: 1781, 572 + xy: 1321, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-impact-reactor-xlarge +block-hyper-processor-xlarge rotate: false xy: 101, 178 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-incinerator-large +block-ice-large rotate: false - xy: 853, 158 + xy: 798, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-incinerator-medium +block-ice-medium rotate: false - xy: 1515, 727 + xy: 1124, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-incinerator-small +block-ice-small rotate: false - xy: 989, 6 + xy: 1303, 186 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-incinerator-tiny - rotate: false - xy: 1799, 590 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-incinerator-xlarge - rotate: false - xy: 101, 128 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-inverted-sorter-large - rotate: false - xy: 577, 98 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-inverted-sorter-medium - rotate: false - xy: 1519, 761 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-inverted-sorter-small - rotate: false - xy: 1693, 437 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-inverted-sorter-tiny - rotate: false - xy: 1817, 608 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-inverted-sorter-xlarge - rotate: false - xy: 101, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-item-source-large - rotate: false - xy: 577, 56 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-item-source-medium - rotate: false - xy: 1523, 795 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-item-source-small - rotate: false - xy: 1688, 411 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-item-source-tiny - rotate: false - xy: 1835, 626 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-item-source-xlarge - rotate: false - xy: 101, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-item-void-large - rotate: false - xy: 585, 140 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-item-void-medium - rotate: false - xy: 1533, 659 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-item-void-small - rotate: false - xy: 1685, 385 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-item-void-tiny - rotate: false - xy: 1853, 644 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-item-void-xlarge - rotate: false - xy: 231, 608 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-junction-large - rotate: false - xy: 585, 182 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-junction-medium - rotate: false - xy: 1541, 693 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-junction-small - rotate: false - xy: 1013, 260 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-junction-tiny - rotate: false - xy: 1799, 572 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-junction-xlarge - rotate: false - xy: 231, 558 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-kiln-large - rotate: false - xy: 627, 164 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-kiln-medium - rotate: false - xy: 1549, 727 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-kiln-small - rotate: false - xy: 1039, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-kiln-tiny - rotate: false - xy: 1817, 590 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-kiln-xlarge - rotate: false - xy: 745, 866 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-lancer-large - rotate: false - xy: 627, 122 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-lancer-medium - rotate: false - xy: 1553, 761 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-lancer-small - rotate: false - xy: 1065, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-lancer-tiny - rotate: false - xy: 1835, 608 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-lancer-xlarge - rotate: false - xy: 151, 508 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-laser-drill-large - rotate: false - 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-laser-drill-small - rotate: false - xy: 1091, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-laser-drill-tiny - rotate: false - xy: 1853, 626 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-laser-drill-xlarge - rotate: false - xy: 151, 458 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-launch-pad-large - rotate: false - xy: 669, 140 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-launch-pad-large-large - rotate: false - 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-launch-pad-large-small - rotate: false - xy: 1117, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-launch-pad-large-tiny - rotate: false - xy: 1871, 644 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-launch-pad-large-xlarge - rotate: false - xy: 201, 508 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-launch-pad-medium - rotate: false - xy: 1583, 727 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-launch-pad-small - rotate: false - xy: 1143, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-launch-pad-tiny - rotate: false - xy: 1817, 572 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-launch-pad-xlarge - rotate: false - xy: 151, 408 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-junction-large - rotate: false - xy: 669, 98 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-junction-medium - rotate: false - xy: 1601, 659 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-junction-small - rotate: false - xy: 1169, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-junction-tiny - rotate: false - xy: 1835, 590 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-junction-xlarge - rotate: false - xy: 201, 458 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-router-large - rotate: false - xy: 661, 56 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-router-medium - rotate: false - xy: 1609, 693 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-router-small - rotate: false - xy: 1195, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-router-tiny - rotate: false - xy: 1853, 608 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-router-xlarge - rotate: false - xy: 151, 358 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-source-large - rotate: false - xy: 711, 116 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-source-medium - rotate: false - xy: 1635, 659 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-source-small - rotate: false - xy: 1221, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-source-tiny - rotate: false - xy: 1871, 626 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-source-xlarge - rotate: false - xy: 201, 408 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-tank-large - rotate: false - xy: 753, 116 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-tank-medium - rotate: false - xy: 1321, 660 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-tank-small - rotate: false - xy: 1247, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-tank-tiny - rotate: false - xy: 1889, 644 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-tank-xlarge - rotate: false - xy: 151, 308 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-void-large - rotate: false - xy: 795, 116 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-void-medium - rotate: false - xy: 1355, 660 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-void-small - rotate: false - xy: 1273, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-void-tiny - rotate: false - xy: 1835, 572 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-void-xlarge - rotate: false - xy: 201, 358 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-logic-display-large - rotate: false - xy: 837, 116 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-logic-display-medium - rotate: false - xy: 1335, 626 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-logic-display-small - rotate: false - xy: 1299, 255 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-logic-display-tiny - rotate: false - xy: 1853, 590 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-logic-display-xlarge - rotate: false - xy: 151, 258 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-logic-processor-large - rotate: false - xy: 661, 14 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-logic-processor-medium - rotate: false - xy: 1369, 626 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-logic-processor-small - rotate: false - xy: 1325, 242 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-logic-processor-tiny - rotate: false - xy: 1871, 608 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-logic-processor-xlarge - rotate: false - xy: 201, 308 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-magmarock-large +block-ice-snow-large rotate: false xy: 711, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-magmarock-medium +block-ice-snow-medium rotate: false - xy: 1403, 642 + xy: 1158, 613 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-magmarock-small +block-ice-snow-small rotate: false - xy: 1351, 242 + xy: 1313, 224 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-magmarock-tiny +block-ice-snow-tiny rotate: false - xy: 1889, 626 + xy: 1357, 31 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-magmarock-xlarge +block-ice-snow-xlarge rotate: false - xy: 151, 208 + xy: 101, 128 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-driver-large +block-ice-tiny + rotate: false + xy: 1375, 49 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ice-wall-large rotate: false xy: 753, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-driver-medium +block-ice-wall-medium rotate: false - xy: 1403, 608 + xy: 1192, 624 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-driver-small +block-ice-wall-small rotate: false - xy: 1377, 232 + xy: 1339, 634 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-driver-tiny +block-ice-wall-tiny rotate: false - xy: 1907, 644 + xy: 1339, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-driver-xlarge +block-ice-wall-xlarge rotate: false - xy: 201, 258 + xy: 101, 78 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-drill-large +block-ice-xlarge + rotate: false + xy: 101, 28 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-illuminator-large rotate: false xy: 795, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-drill-medium +block-illuminator-medium rotate: false - xy: 1335, 592 + xy: 1192, 590 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-drill-small +block-illuminator-small rotate: false - xy: 1403, 232 + xy: 1592, 609 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-drill-tiny +block-illuminator-tiny rotate: false - xy: 1853, 572 + xy: 1357, 13 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-drill-xlarge +block-illuminator-xlarge rotate: false - xy: 151, 158 + xy: 231, 608 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-pump-large +block-impact-reactor-large + rotate: false + xy: 711, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-impact-reactor-medium + rotate: false + xy: 1991, 797 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-impact-reactor-small + rotate: false + xy: 1587, 583 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-impact-reactor-tiny + rotate: false + xy: 1375, 31 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-impact-reactor-xlarge + rotate: false + xy: 231, 558 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-incinerator-large + rotate: false + xy: 753, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-incinerator-medium + rotate: false + xy: 1363, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-incinerator-small + rotate: false + xy: 1618, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-incinerator-tiny + rotate: false + xy: 1375, 13 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-incinerator-xlarge + rotate: false + xy: 745, 866 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-inverted-sorter-large + rotate: false + xy: 795, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-inverted-sorter-medium + rotate: false + xy: 1397, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-inverted-sorter-small + rotate: false + xy: 1644, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-inverted-sorter-tiny + rotate: false + xy: 2029, 583 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-inverted-sorter-xlarge + rotate: false + xy: 151, 508 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-item-source-large + rotate: false + xy: 493, 50 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-item-source-medium + rotate: false + xy: 1431, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-item-source-small + rotate: false + xy: 1670, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-item-source-tiny + rotate: false + xy: 2029, 565 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-item-source-xlarge + rotate: false + xy: 151, 458 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-item-void-large + rotate: false + xy: 535, 37 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-item-void-medium + rotate: false + xy: 1465, 702 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-item-void-small + rotate: false + xy: 1696, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-item-void-tiny + rotate: false + xy: 1639, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-item-void-xlarge + rotate: false + xy: 201, 508 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-junction-large + rotate: false + xy: 577, 22 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-junction-medium + rotate: false + xy: 1499, 702 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-junction-small + rotate: false + xy: 1722, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-junction-tiny + rotate: false + xy: 1657, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-junction-xlarge + rotate: false + xy: 151, 408 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-kiln-large + rotate: false + xy: 619, 5 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-kiln-medium + rotate: false + xy: 1533, 702 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-kiln-small + rotate: false + xy: 1748, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-kiln-tiny + rotate: false + xy: 1675, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-kiln-xlarge + rotate: false + xy: 201, 458 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-lancer-large + rotate: false + xy: 485, 8 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-lancer-medium + rotate: false + xy: 1567, 709 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-lancer-small + rotate: false + xy: 1774, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-lancer-tiny + rotate: false + xy: 1693, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-lancer-xlarge + rotate: false + xy: 151, 358 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-laser-drill-large + rotate: false + xy: 869, 368 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-laser-drill-medium + rotate: false + xy: 1601, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-laser-drill-small + rotate: false + xy: 1800, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-laser-drill-tiny + rotate: false + xy: 1711, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-laser-drill-xlarge + rotate: false + xy: 201, 408 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-launch-pad-large + rotate: false + xy: 861, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-launch-pad-large-large + rotate: false + xy: 861, 284 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-launch-pad-large-medium + rotate: false + xy: 1635, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-launch-pad-large-small + rotate: false + xy: 1826, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-launch-pad-large-tiny + rotate: false + xy: 1729, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-launch-pad-large-xlarge + rotate: false + xy: 151, 308 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-launch-pad-medium + rotate: false + xy: 1669, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-launch-pad-small + rotate: false + xy: 1852, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-launch-pad-tiny + rotate: false + xy: 1747, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-launch-pad-xlarge + rotate: false + xy: 201, 358 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-liquid-junction-large + rotate: false + xy: 853, 242 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-liquid-junction-medium + rotate: false + xy: 1703, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-liquid-junction-small + rotate: false + xy: 1878, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-liquid-junction-tiny + rotate: false + xy: 1765, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-liquid-junction-xlarge + rotate: false + xy: 151, 258 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-liquid-router-large + rotate: false + xy: 845, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-liquid-router-medium + rotate: false + xy: 1737, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-liquid-router-small + rotate: false + xy: 1904, 611 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-liquid-router-tiny + rotate: false + xy: 1783, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-liquid-router-xlarge + rotate: false + xy: 201, 308 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-liquid-source-large + rotate: false + xy: 845, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-liquid-source-medium + rotate: false + xy: 1771, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-liquid-source-small + rotate: false + xy: 1930, 601 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-liquid-source-tiny + rotate: false + xy: 1801, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-liquid-source-xlarge + rotate: false + xy: 151, 208 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-liquid-tank-large + rotate: false + xy: 840, 116 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-liquid-tank-medium + rotate: false + xy: 1805, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-liquid-tank-small + rotate: false + xy: 1956, 601 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-liquid-tank-tiny + rotate: false + xy: 1819, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-liquid-tank-xlarge + rotate: false + xy: 201, 258 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-liquid-void-large rotate: false xy: 837, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-pump-medium +block-liquid-void-medium rotate: false - xy: 1369, 592 + xy: 1839, 697 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-pump-small +block-liquid-void-small rotate: false - xy: 1429, 223 + xy: 1339, 608 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-pump-tiny +block-liquid-void-tiny rotate: false - xy: 1871, 590 + xy: 1837, 567 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-pump-xlarge +block-liquid-void-xlarge + rotate: false + xy: 151, 158 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-logic-display-large + rotate: false + xy: 837, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-logic-display-medium + rotate: false + xy: 1873, 697 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-logic-display-small + rotate: false + xy: 1365, 603 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-logic-display-tiny + rotate: false + xy: 1855, 567 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-logic-display-xlarge rotate: false xy: 201, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-meltdown-large - rotate: false - xy: 703, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-meltdown-medium - rotate: false - xy: 1331, 558 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-meltdown-small - rotate: false - xy: 1455, 223 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-meltdown-tiny - rotate: false - xy: 1889, 608 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-meltdown-xlarge - rotate: false - xy: 151, 108 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-melter-large - rotate: false - xy: 745, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-melter-medium - rotate: false - xy: 1365, 558 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-melter-small - rotate: false - xy: 1481, 223 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-melter-tiny - rotate: false - xy: 1907, 626 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-melter-xlarge - rotate: false - xy: 201, 158 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-memory-cell-large - rotate: false - xy: 787, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-memory-cell-medium - rotate: false - xy: 1403, 574 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-memory-cell-small - rotate: false - xy: 1507, 223 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-memory-cell-tiny - rotate: false - xy: 1925, 644 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-memory-cell-xlarge - rotate: false - xy: 151, 58 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-mend-projector-large - rotate: false - xy: 829, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mend-projector-medium - rotate: false - xy: 1331, 524 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mend-projector-small - rotate: false - xy: 1533, 223 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mend-projector-tiny - rotate: false - xy: 1871, 572 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mend-projector-xlarge - rotate: false - xy: 201, 108 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-mender-large - rotate: false - xy: 879, 116 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mender-medium - rotate: false - xy: 1365, 524 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mender-small - rotate: false - xy: 1559, 223 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mender-tiny - rotate: false - xy: 1889, 590 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mender-xlarge - rotate: false - xy: 201, 58 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-message-large - rotate: false - xy: 879, 74 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-message-medium - rotate: false - xy: 1399, 540 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-message-small - rotate: false - xy: 1714, 411 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-message-tiny - rotate: false - xy: 1907, 608 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-message-xlarge - rotate: false - xy: 251, 508 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-2-large - rotate: false - xy: 871, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-2-medium - rotate: false - xy: 1399, 506 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-2-small - rotate: false - xy: 1711, 385 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-2-tiny - rotate: false - xy: 1925, 626 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-2-xlarge - rotate: false - xy: 251, 458 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-3-large - rotate: false - xy: 435, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-3-medium - rotate: false - xy: 1437, 625 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-3-small - rotate: false - xy: 1700, 359 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-3-tiny - rotate: false - xy: 1889, 572 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-3-xlarge - rotate: false - xy: 251, 408 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-5-large - rotate: false - xy: 477, 16 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-5-medium - rotate: false - xy: 1437, 591 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-5-small - rotate: false - xy: 1700, 333 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-5-tiny - rotate: false - xy: 1907, 590 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-5-xlarge - rotate: false - xy: 251, 358 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-large - rotate: false - xy: 519, 14 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-medium - rotate: false - xy: 1471, 625 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-small - rotate: false - xy: 1726, 359 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-tiny - rotate: false - xy: 1925, 608 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-xlarge - rotate: false - xy: 251, 308 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-large - rotate: false - xy: 561, 14 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-medium - rotate: false - xy: 1471, 591 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-small - rotate: false - xy: 1726, 333 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-tiny - rotate: false - xy: 1907, 572 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-xlarge - rotate: false - xy: 251, 258 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-micro-processor-large +block-logic-processor-large rotate: false xy: 903, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-micro-processor-medium +block-logic-processor-medium rotate: false - xy: 1505, 625 + xy: 1907, 697 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-micro-processor-small +block-logic-processor-small rotate: false - xy: 1737, 385 + xy: 1391, 603 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-micro-processor-tiny +block-logic-processor-tiny rotate: false - xy: 1925, 590 + xy: 1873, 567 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-micro-processor-xlarge +block-logic-processor-xlarge rotate: false - xy: 251, 208 + xy: 151, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-moss-large +block-magmarock-large rotate: false xy: 903, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-moss-medium +block-magmarock-medium rotate: false - xy: 1505, 591 + xy: 1567, 675 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-moss-small +block-magmarock-small rotate: false - xy: 1752, 359 + xy: 1417, 603 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-moss-tiny +block-magmarock-tiny rotate: false - xy: 1925, 572 + xy: 1891, 567 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-moss-xlarge +block-magmarock-xlarge rotate: false - xy: 251, 158 + xy: 201, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multi-press-large +block-mass-driver-large rotate: false - xy: 898, 242 + xy: 895, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multi-press-medium +block-mass-driver-medium rotate: false - xy: 1539, 625 + xy: 1601, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multi-press-small +block-mass-driver-small rotate: false - xy: 1752, 333 + xy: 1613, 583 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multi-press-tiny +block-mass-driver-tiny rotate: false - xy: 1745, 554 + xy: 1393, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multi-press-xlarge +block-mass-driver-xlarge rotate: false - xy: 251, 108 + xy: 151, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-large +block-mechanical-drill-large rotate: false - xy: 895, 200 + xy: 887, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-medium +block-mechanical-drill-medium rotate: false - xy: 1539, 591 + xy: 1635, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-small +block-mechanical-drill-small rotate: false - xy: 1700, 307 + xy: 1639, 585 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-tiny +block-mechanical-drill-tiny rotate: false - xy: 1763, 554 + xy: 1411, 28 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multiplicative-reconstructor-xlarge +block-mechanical-drill-xlarge rotate: false - xy: 251, 58 + xy: 201, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-naval-factory-large +block-mechanical-pump-large rotate: false - xy: 895, 158 + xy: 887, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-naval-factory-medium +block-mechanical-pump-medium rotate: false - xy: 1573, 625 + xy: 1669, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-naval-factory-small +block-mechanical-pump-small rotate: false - xy: 1726, 307 + xy: 1665, 585 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-naval-factory-tiny +block-mechanical-pump-tiny rotate: false - xy: 1781, 554 + xy: 1393, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-naval-factory-xlarge +block-mechanical-pump-xlarge rotate: false - xy: 151, 8 + xy: 201, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-oil-extractor-large +block-meltdown-large rotate: false - xy: 921, 116 + xy: 882, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-oil-extractor-medium +block-meltdown-medium rotate: false - xy: 1573, 591 + xy: 1703, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-oil-extractor-small +block-meltdown-small rotate: false - xy: 1752, 307 + xy: 1691, 585 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-oil-extractor-tiny +block-meltdown-tiny rotate: false - xy: 1799, 554 + xy: 1411, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-oil-extractor-xlarge +block-meltdown-xlarge rotate: false - xy: 201, 8 + xy: 251, 508 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-coal-large +block-melter-large + rotate: false + xy: 879, 74 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-melter-medium + rotate: false + xy: 1737, 663 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-melter-small + rotate: false + xy: 1717, 585 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-melter-tiny + rotate: false + xy: 1429, 20 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-melter-xlarge + rotate: false + xy: 251, 458 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-memory-cell-large + rotate: false + xy: 879, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-memory-cell-medium + rotate: false + xy: 1771, 663 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-memory-cell-small + rotate: false + xy: 1743, 585 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-memory-cell-tiny + rotate: false + xy: 1429, 2 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-memory-cell-xlarge + rotate: false + xy: 251, 408 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-mend-projector-large + rotate: false + xy: 937, 242 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-mend-projector-medium + rotate: false + xy: 1805, 663 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-mend-projector-small + rotate: false + xy: 1769, 585 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-mend-projector-tiny + rotate: false + xy: 1447, 13 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-mend-projector-xlarge + rotate: false + xy: 251, 358 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-mender-large + rotate: false + xy: 929, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-mender-medium + rotate: false + xy: 1839, 663 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-mender-small + rotate: false + xy: 1795, 585 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-mender-tiny + rotate: false + xy: 1465, 13 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-mender-xlarge + rotate: false + xy: 251, 308 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-message-large + rotate: false + xy: 929, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-message-medium + rotate: false + xy: 1873, 663 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-message-small + rotate: false + xy: 1821, 585 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-message-tiny + rotate: false + xy: 1461, 582 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-message-xlarge + rotate: false + xy: 251, 258 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-2-large + rotate: false + xy: 924, 116 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-2-medium + rotate: false + xy: 1907, 663 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-2-small + rotate: false + xy: 1847, 585 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-2-tiny + rotate: false + xy: 1479, 582 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-2-xlarge + rotate: false + xy: 251, 208 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-3-large rotate: false xy: 921, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-coal-medium +block-metal-floor-3-medium rotate: false - xy: 1607, 625 + xy: 1941, 687 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-coal-small +block-metal-floor-3-small rotate: false - xy: 1008, 234 + xy: 1873, 585 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-coal-tiny +block-metal-floor-3-tiny rotate: false - xy: 1817, 554 + xy: 1497, 582 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-coal-xlarge +block-metal-floor-3-xlarge + rotate: false + xy: 251, 158 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-5-large + rotate: false + xy: 921, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-5-medium + rotate: false + xy: 1941, 653 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-5-small + rotate: false + xy: 1899, 585 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-5-tiny + rotate: false + xy: 1515, 582 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-5-xlarge + rotate: false + xy: 251, 108 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-large + rotate: false + xy: 971, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-medium + rotate: false + xy: 1229, 658 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-small + rotate: false + xy: 1925, 575 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-tiny + rotate: false + xy: 1533, 578 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-xlarge + rotate: false + xy: 251, 58 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-large + rotate: false + xy: 971, 158 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-medium + rotate: false + xy: 1226, 624 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-small + rotate: false + xy: 1951, 575 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-tiny + rotate: false + xy: 1449, 564 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-xlarge + rotate: false + xy: 151, 8 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-micro-processor-large + rotate: false + xy: 966, 116 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-micro-processor-medium + rotate: false + xy: 1226, 590 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-micro-processor-small + rotate: false + xy: 1982, 601 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-micro-processor-tiny + rotate: false + xy: 1449, 546 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-micro-processor-xlarge + rotate: false + xy: 201, 8 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-moss-large + rotate: false + xy: 963, 74 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-moss-medium + rotate: false + xy: 1263, 660 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-moss-small + rotate: false + xy: 1977, 575 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-moss-tiny + rotate: false + xy: 1467, 564 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-moss-xlarge rotate: false xy: 251, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-copper-large +block-multi-press-large rotate: false - xy: 913, 32 + xy: 963, 32 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-copper-medium +block-multi-press-medium rotate: false - xy: 1607, 591 + xy: 1297, 660 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-copper-small +block-multi-press-small rotate: false - xy: 1034, 229 + xy: 2008, 601 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-copper-tiny +block-multi-press-tiny rotate: false - xy: 1835, 554 + xy: 1485, 564 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-copper-xlarge +block-multi-press-xlarge rotate: false xy: 281, 619 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-lead-large - rotate: false - xy: 955, 32 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-lead-medium - rotate: false - xy: 1641, 625 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-lead-small - rotate: false - xy: 1060, 229 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-lead-tiny - rotate: false - xy: 1853, 554 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-lead-xlarge - rotate: false - xy: 281, 569 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ore-scrap-large +block-multiplicative-reconstructor-large rotate: false xy: 821, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-scrap-medium +block-multiplicative-reconstructor-medium rotate: false - xy: 1641, 591 + xy: 1331, 660 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-scrap-small +block-multiplicative-reconstructor-small rotate: false - xy: 1086, 229 + xy: 2003, 575 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-scrap-tiny +block-multiplicative-reconstructor-tiny rotate: false - xy: 1871, 554 + xy: 1449, 528 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-scrap-xlarge +block-multiplicative-reconstructor-xlarge rotate: false - xy: 301, 519 + xy: 281, 569 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-thorium-large +block-naval-factory-large rotate: false xy: 863, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-thorium-medium +block-naval-factory-medium rotate: false - xy: 1437, 557 + xy: 1365, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-thorium-small +block-naval-factory-small rotate: false - xy: 1112, 229 + xy: 1339, 582 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-thorium-tiny +block-naval-factory-tiny rotate: false - xy: 1889, 554 + xy: 1467, 546 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-thorium-xlarge +block-naval-factory-xlarge rotate: false - xy: 301, 469 + xy: 301, 519 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ore-titanium-large +block-oil-extractor-large rotate: false xy: 905, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ore-titanium-medium +block-oil-extractor-medium rotate: false - xy: 1471, 557 + xy: 1399, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-titanium-small +block-oil-extractor-small rotate: false - xy: 1138, 229 + xy: 1293, 556 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ore-titanium-tiny +block-oil-extractor-tiny rotate: false - xy: 1907, 554 + xy: 1485, 546 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ore-titanium-xlarge +block-oil-extractor-xlarge rotate: false - xy: 301, 419 + xy: 301, 469 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-dome-large +block-ore-coal-large rotate: false xy: 947, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-dome-medium +block-ore-coal-medium rotate: false - xy: 1505, 557 + xy: 1433, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-dome-small +block-ore-coal-small rotate: false - xy: 1164, 229 + xy: 1365, 577 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-dome-tiny +block-ore-coal-tiny rotate: false - xy: 1925, 554 + xy: 1503, 564 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-dome-xlarge +block-ore-coal-xlarge rotate: false - xy: 301, 369 + xy: 301, 419 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-projector-large +block-ore-copper-large rotate: false xy: 989, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-projector-medium +block-ore-copper-medium rotate: false - xy: 1539, 557 + xy: 1467, 668 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-projector-small +block-ore-copper-small rotate: false - xy: 1190, 229 + xy: 1391, 577 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-projector-tiny +block-ore-copper-tiny rotate: false - xy: 1945, 662 + xy: 1449, 510 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-projector-xlarge +block-ore-copper-xlarge rotate: false - xy: 301, 319 + xy: 301, 369 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overflow-gate-large +block-ore-lead-large rotate: false xy: 1031, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overflow-gate-medium +block-ore-lead-medium rotate: false - xy: 1573, 557 + xy: 1501, 668 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overflow-gate-small +block-ore-lead-small rotate: false - xy: 1216, 229 + xy: 1417, 577 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overflow-gate-tiny +block-ore-lead-tiny rotate: false - xy: 1943, 644 + xy: 1467, 528 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overflow-gate-xlarge +block-ore-lead-xlarge rotate: false - xy: 301, 269 + xy: 301, 319 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-parallax-large +block-ore-scrap-large rotate: false xy: 1073, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-parallax-medium +block-ore-scrap-medium rotate: false - xy: 1607, 557 + xy: 953, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-parallax-small +block-ore-scrap-small rotate: false - xy: 1242, 229 + xy: 1319, 556 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-parallax-tiny +block-ore-scrap-tiny rotate: false - xy: 1943, 626 + xy: 1485, 528 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-parallax-xlarge +block-ore-scrap-xlarge rotate: false - xy: 301, 219 + xy: 301, 269 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-payload-conveyor-large +block-ore-thorium-large rotate: false xy: 1115, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-payload-conveyor-medium +block-ore-thorium-medium rotate: false - xy: 1641, 557 + xy: 987, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-payload-conveyor-small +block-ore-thorium-small rotate: false - xy: 1268, 229 + xy: 1319, 530 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-payload-conveyor-tiny +block-ore-thorium-tiny rotate: false - xy: 1943, 608 + xy: 1503, 546 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-payload-conveyor-xlarge +block-ore-thorium-xlarge rotate: false - xy: 301, 169 + xy: 301, 219 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-payload-router-large +block-ore-titanium-large rotate: false xy: 1157, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-payload-router-medium +block-ore-titanium-medium rotate: false - xy: 1433, 523 + xy: 1021, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-payload-router-small +block-ore-titanium-small rotate: false - xy: 1294, 229 + xy: 1319, 504 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-payload-router-tiny +block-ore-titanium-tiny rotate: false - xy: 1943, 590 + xy: 1449, 492 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-payload-router-xlarge +block-ore-titanium-xlarge rotate: false - xy: 301, 119 + xy: 301, 169 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pebbles-large +block-overdrive-dome-large rotate: false xy: 1199, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pebbles-medium +block-overdrive-dome-medium rotate: false - xy: 1467, 523 + xy: 1055, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pebbles-small +block-overdrive-dome-small rotate: false - xy: 1320, 216 + xy: 1319, 478 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pebbles-tiny +block-overdrive-dome-tiny rotate: false - xy: 1943, 572 + xy: 1467, 510 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pebbles-xlarge +block-overdrive-dome-xlarge rotate: false - xy: 301, 69 + xy: 301, 119 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conduit-large +block-overdrive-projector-large rotate: false xy: 1241, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conduit-medium +block-overdrive-projector-medium rotate: false - xy: 1501, 523 + xy: 1089, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conduit-small +block-overdrive-projector-small rotate: false - xy: 1346, 216 + xy: 1319, 452 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conduit-tiny +block-overdrive-projector-tiny rotate: false - xy: 1943, 554 + xy: 1485, 510 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conduit-xlarge +block-overdrive-projector-xlarge rotate: false - xy: 301, 19 + xy: 301, 69 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conveyor-large +block-overflow-gate-large rotate: false xy: 1283, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-overflow-gate-medium rotate: false - xy: 1535, 523 + xy: 1123, 579 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-overflow-gate-small rotate: false - xy: 1372, 206 + xy: 1319, 426 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-overflow-gate-tiny rotate: false - xy: 1023, 193 + xy: 1503, 528 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-overflow-gate-xlarge rotate: false - xy: 795, 878 + xy: 301, 19 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large +block-parallax-large rotate: false xy: 1325, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-large +block-parallax-medium + rotate: false + xy: 1157, 579 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-parallax-small + rotate: false + xy: 1319, 400 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-parallax-tiny + rotate: false + xy: 1449, 474 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-parallax-xlarge + rotate: false + xy: 795, 878 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-payload-conveyor-large rotate: false xy: 1367, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-medium +block-payload-conveyor-medium rotate: false - xy: 1569, 523 + xy: 1191, 556 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-large-small +block-payload-conveyor-small rotate: false - xy: 1398, 206 + xy: 1319, 374 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-large-tiny +block-payload-conveyor-tiny rotate: false - xy: 1041, 193 + xy: 1467, 492 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-large-xlarge +block-payload-conveyor-xlarge rotate: false xy: 309, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-medium - rotate: false - xy: 1603, 523 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-phase-wall-small - rotate: false - xy: 1424, 197 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-phase-wall-tiny - rotate: false - xy: 1059, 193 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-phase-wall-xlarge - rotate: false - xy: 309, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-phase-weaver-large +block-payload-router-large rotate: false xy: 1409, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-payload-router-medium rotate: false - xy: 1637, 523 + xy: 1225, 556 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-payload-router-small rotate: false - xy: 1450, 197 + xy: 1319, 348 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-payload-router-tiny rotate: false - xy: 1077, 193 + xy: 1485, 492 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-payload-router-xlarge rotate: false - xy: 359, 816 + xy: 309, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large +block-pebbles-large rotate: false xy: 1451, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pine-medium +block-pebbles-medium rotate: false - xy: 1433, 489 + xy: 1989, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pine-small +block-pebbles-small rotate: false - xy: 1476, 197 + xy: 1319, 322 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pine-tiny +block-pebbles-tiny rotate: false - xy: 1095, 193 + xy: 1503, 510 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pine-xlarge +block-pebbles-xlarge rotate: false - xy: 309, 716 + xy: 359, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-compressor-large +block-phase-conduit-large rotate: false xy: 1493, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-compressor-medium +block-phase-conduit-medium rotate: false - xy: 1467, 489 + xy: 1975, 687 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-compressor-small +block-phase-conduit-small rotate: false - xy: 1502, 197 + xy: 1319, 296 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-compressor-tiny +block-phase-conduit-tiny rotate: false - xy: 1113, 193 + xy: 1449, 456 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-compressor-xlarge +block-phase-conduit-xlarge rotate: false - xy: 359, 766 + xy: 309, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-conveyor-large +block-phase-conveyor-large rotate: false xy: 1535, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-conveyor-medium +block-phase-conveyor-medium rotate: false - xy: 1501, 489 + xy: 1975, 653 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-conveyor-small +block-phase-conveyor-small rotate: false - xy: 1528, 197 + xy: 1319, 270 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-conveyor-tiny +block-phase-conveyor-tiny rotate: false - xy: 1131, 193 + xy: 1467, 474 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-conveyor-xlarge +block-phase-conveyor-xlarge rotate: false - xy: 409, 816 + xy: 359, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-large +block-phase-wall-large rotate: false xy: 1577, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-wall-large-large +block-phase-wall-large-large rotate: false xy: 1619, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-wall-large-medium +block-phase-wall-large-medium rotate: false - xy: 1535, 489 + xy: 1981, 721 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-large-small +block-phase-wall-large-small rotate: false - xy: 1554, 197 + xy: 1345, 551 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-large-tiny +block-phase-wall-large-tiny rotate: false - xy: 1149, 193 + xy: 1485, 474 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-large-xlarge +block-phase-wall-large-xlarge + rotate: false + xy: 409, 816 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-wall-medium + rotate: false + xy: 2015, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-wall-small + rotate: false + xy: 1345, 525 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-wall-tiny + rotate: false + xy: 1503, 492 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-wall-xlarge rotate: false xy: 359, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-medium - rotate: false - xy: 1569, 489 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-plastanium-wall-small - rotate: false - xy: 1580, 197 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-plastanium-wall-tiny - rotate: false - xy: 1167, 193 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-plastanium-wall-xlarge - rotate: false - xy: 409, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-plated-conduit-large +block-phase-weaver-large rotate: false xy: 1661, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plated-conduit-medium +block-phase-weaver-medium rotate: false - xy: 1603, 489 + xy: 2015, 695 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plated-conduit-small +block-phase-weaver-small rotate: false - xy: 1527, 832 + xy: 1371, 551 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plated-conduit-tiny +block-phase-weaver-tiny rotate: false - xy: 1185, 193 + xy: 1449, 438 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plated-conduit-xlarge +block-phase-weaver-xlarge rotate: false - xy: 459, 816 + xy: 409, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pneumatic-drill-large +block-pine-large rotate: false xy: 1703, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pneumatic-drill-medium +block-pine-medium rotate: false - xy: 1637, 489 + xy: 2009, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pneumatic-drill-small +block-pine-small rotate: false - xy: 1553, 836 + xy: 1345, 499 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pneumatic-drill-tiny +block-pine-tiny rotate: false - xy: 1203, 193 + xy: 1467, 456 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pneumatic-drill-xlarge +block-pine-xlarge rotate: false - xy: 409, 716 + xy: 459, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-large +block-plastanium-compressor-large rotate: false xy: 1745, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-node-large-large +block-plastanium-compressor-medium + rotate: false + xy: 2009, 627 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-compressor-small + rotate: false + xy: 1371, 525 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-compressor-tiny + rotate: false + xy: 1485, 456 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-compressor-xlarge + rotate: false + xy: 409, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-large rotate: false xy: 1787, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-node-large-medium +block-plastanium-conveyor-medium rotate: false - xy: 940, 250 + xy: 1008, 124 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-large-small +block-plastanium-conveyor-small rotate: false - xy: 1579, 836 + xy: 1397, 551 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-large-tiny +block-plastanium-conveyor-tiny rotate: false - xy: 1221, 193 + xy: 1503, 474 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-large-xlarge +block-plastanium-conveyor-xlarge rotate: false xy: 459, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-medium - rotate: false - xy: 940, 216 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-power-node-small - rotate: false - xy: 1605, 836 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-power-node-tiny - rotate: false - xy: 1239, 193 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-power-node-xlarge - rotate: false - xy: 509, 816 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-power-source-large +block-plastanium-wall-large rotate: false xy: 1829, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-source-medium - rotate: false - xy: 937, 182 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-power-source-small - rotate: false - xy: 1631, 836 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-power-source-tiny - rotate: false - xy: 1257, 193 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-power-source-xlarge - rotate: false - xy: 459, 716 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-power-void-large +block-plastanium-wall-large-large rotate: false xy: 1871, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-void-medium +block-plastanium-wall-large-medium rotate: false - xy: 1671, 523 + xy: 1008, 90 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-void-small +block-plastanium-wall-large-small rotate: false - xy: 1657, 836 + xy: 1345, 473 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-void-tiny +block-plastanium-wall-large-tiny rotate: false - xy: 1275, 193 + xy: 1449, 420 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-void-xlarge +block-plastanium-wall-large-xlarge rotate: false - xy: 509, 766 + xy: 509, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulse-conduit-large +block-plastanium-wall-medium + rotate: false + xy: 1005, 56 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-wall-small + rotate: false + xy: 1371, 499 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-wall-tiny + rotate: false + xy: 1467, 438 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-wall-xlarge + rotate: false + xy: 459, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plated-conduit-large rotate: false xy: 1913, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulse-conduit-medium +block-plated-conduit-medium rotate: false - xy: 1671, 489 + xy: 1005, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulse-conduit-small +block-plated-conduit-small rotate: false - xy: 1683, 836 + xy: 1397, 525 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulse-conduit-tiny +block-plated-conduit-tiny rotate: false - xy: 1293, 193 + xy: 1485, 438 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulse-conduit-xlarge +block-plated-conduit-xlarge rotate: false - xy: 559, 816 + xy: 509, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulverizer-large +block-pneumatic-drill-large rotate: false xy: 1955, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulverizer-medium +block-pneumatic-drill-medium rotate: false - xy: 945, 513 + xy: 1467, 634 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulverizer-small +block-pneumatic-drill-small rotate: false - xy: 1709, 836 + xy: 1345, 447 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulverizer-tiny +block-pneumatic-drill-tiny rotate: false - xy: 1023, 175 + xy: 1503, 456 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulverizer-xlarge +block-pneumatic-drill-xlarge rotate: false - xy: 509, 716 + xy: 559, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pyratite-mixer-large +block-power-node-large rotate: false xy: 845, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pyratite-mixer-medium - rotate: false - xy: 945, 479 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pyratite-mixer-small - rotate: false - xy: 1735, 836 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-pyratite-mixer-tiny - rotate: false - xy: 1041, 175 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-pyratite-mixer-xlarge - rotate: false - xy: 559, 766 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-repair-point-large +block-power-node-large-large rotate: false xy: 887, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-repair-point-medium +block-power-node-large-medium rotate: false - xy: 945, 445 + xy: 1501, 634 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-repair-point-small +block-power-node-large-small rotate: false - xy: 1761, 836 + xy: 1371, 473 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-repair-point-tiny +block-power-node-large-tiny rotate: false - xy: 1059, 175 + xy: 1449, 402 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-repair-point-xlarge +block-power-node-large-xlarge rotate: false - xy: 609, 816 + xy: 509, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-resupply-point-large +block-power-node-medium + rotate: false + xy: 945, 537 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-node-small + rotate: false + xy: 1397, 499 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-node-tiny + rotate: false + xy: 1467, 420 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-node-xlarge + rotate: false + xy: 559, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-source-large rotate: false xy: 929, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-resupply-point-medium +block-power-source-medium rotate: false - xy: 945, 411 + xy: 945, 503 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-resupply-point-small +block-power-source-small rotate: false - xy: 1787, 836 + xy: 1345, 421 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-resupply-point-tiny +block-power-source-tiny rotate: false - xy: 1077, 175 + xy: 1485, 420 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-resupply-point-xlarge +block-power-source-xlarge rotate: false - xy: 559, 716 + xy: 609, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ripple-large +block-power-void-large rotate: false xy: 971, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ripple-medium +block-power-void-medium rotate: false - xy: 945, 377 + xy: 945, 469 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ripple-small +block-power-void-small rotate: false - xy: 1813, 836 + xy: 1371, 447 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ripple-tiny +block-power-void-tiny rotate: false - xy: 1095, 175 + xy: 1503, 438 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ripple-xlarge +block-power-void-xlarge rotate: false - xy: 609, 766 + xy: 559, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rock-large +block-pulse-conduit-large rotate: false xy: 1013, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rock-medium +block-pulse-conduit-medium rotate: false - xy: 945, 343 + xy: 945, 435 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rock-small +block-pulse-conduit-small rotate: false - xy: 1839, 836 + xy: 1397, 473 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rock-tiny +block-pulse-conduit-tiny rotate: false - xy: 1113, 175 + xy: 1449, 384 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rock-xlarge +block-pulse-conduit-xlarge rotate: false - xy: 659, 816 + xy: 609, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rocks-large +block-pulverizer-large rotate: false xy: 1055, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rocks-medium +block-pulverizer-medium rotate: false - xy: 945, 309 + xy: 945, 401 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rocks-small +block-pulverizer-small rotate: false - xy: 1865, 836 + xy: 1345, 395 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rocks-tiny +block-pulverizer-tiny rotate: false - xy: 1131, 175 + xy: 1467, 402 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rocks-xlarge +block-pulverizer-xlarge rotate: false - xy: 609, 716 + xy: 659, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rotary-pump-large +block-pyratite-mixer-large rotate: false xy: 1097, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rotary-pump-medium +block-pyratite-mixer-medium rotate: false - xy: 979, 516 + xy: 979, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rotary-pump-small +block-pyratite-mixer-small rotate: false - xy: 1891, 836 + xy: 1371, 421 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rotary-pump-tiny +block-pyratite-mixer-tiny rotate: false - xy: 1149, 175 + xy: 1485, 402 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rotary-pump-xlarge +block-pyratite-mixer-xlarge rotate: false - xy: 659, 766 + xy: 609, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-router-large +block-repair-point-large rotate: false xy: 1139, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-router-medium +block-repair-point-medium rotate: false - xy: 1013, 516 + xy: 1013, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-router-small +block-repair-point-small rotate: false - xy: 1917, 836 + xy: 1397, 447 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-router-tiny +block-repair-point-tiny rotate: false - xy: 1167, 175 + xy: 1503, 420 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-router-xlarge +block-repair-point-xlarge rotate: false - xy: 709, 816 + xy: 659, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rtg-generator-large +block-resupply-point-large rotate: false xy: 1181, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rtg-generator-medium +block-resupply-point-medium rotate: false - xy: 979, 482 + xy: 979, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rtg-generator-small +block-resupply-point-small rotate: false - xy: 1557, 810 + xy: 1345, 369 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rtg-generator-tiny +block-resupply-point-tiny rotate: false - xy: 1185, 175 + xy: 1449, 366 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rtg-generator-xlarge +block-resupply-point-xlarge rotate: false - xy: 659, 716 + xy: 709, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salt-large +block-ripple-large rotate: false xy: 1223, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salt-medium +block-ripple-medium rotate: false - xy: 979, 448 + xy: 1013, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salt-small +block-ripple-small rotate: false - xy: 1583, 810 + xy: 1371, 395 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salt-tiny +block-ripple-tiny rotate: false - xy: 1203, 175 + xy: 1467, 384 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salt-xlarge +block-ripple-xlarge rotate: false - xy: 709, 766 + xy: 659, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-saltrocks-large +block-rotary-pump-large rotate: false xy: 1265, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-saltrocks-medium +block-rotary-pump-medium rotate: false - xy: 1013, 482 + xy: 1047, 545 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-saltrocks-small +block-rotary-pump-small rotate: false - xy: 1609, 810 + xy: 1397, 421 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-saltrocks-tiny +block-rotary-pump-tiny rotate: false - xy: 1221, 175 + xy: 1485, 384 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-saltrocks-xlarge +block-rotary-pump-xlarge rotate: false - xy: 709, 716 + xy: 709, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salvo-large +block-router-large rotate: false xy: 1307, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salvo-medium +block-router-medium rotate: false - xy: 979, 414 + xy: 979, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salvo-small +block-router-small rotate: false - xy: 1635, 810 + xy: 1345, 343 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salvo-tiny +block-router-tiny rotate: false - xy: 1239, 175 + xy: 1503, 402 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salvo-xlarge +block-router-xlarge rotate: false - xy: 759, 816 + xy: 709, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-boulder-large +block-rtg-generator-large rotate: false xy: 1349, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-boulder-medium +block-rtg-generator-medium rotate: false - xy: 1013, 448 + xy: 1013, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-boulder-small +block-rtg-generator-small rotate: false - xy: 1661, 810 + xy: 1371, 369 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-boulder-tiny +block-rtg-generator-tiny rotate: false - xy: 1257, 175 + xy: 1449, 348 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-boulder-xlarge +block-rtg-generator-xlarge rotate: false - xy: 759, 766 + xy: 759, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-large +block-salt-large rotate: false xy: 1391, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-medium - rotate: false - xy: 979, 380 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-small - rotate: false - xy: 1687, 810 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-tiny - rotate: false - xy: 1275, 175 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -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-sand-xlarge - rotate: false - xy: 809, 828 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sandrocks-large - rotate: false - xy: 1475, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sandrocks-medium - rotate: false - xy: 979, 346 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sandrocks-small - rotate: false - xy: 1739, 810 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sandrocks-tiny - rotate: false - xy: 1973, 813 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sandrocks-xlarge - rotate: false - xy: 809, 778 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scatter-large - rotate: false - xy: 1517, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scatter-medium - rotate: false - xy: 1013, 380 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scatter-small - rotate: false - xy: 1765, 810 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scatter-tiny - rotate: false - xy: 1991, 813 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scatter-xlarge - rotate: false - xy: 809, 728 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scorch-large - rotate: false - xy: 1559, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scorch-medium - rotate: false - xy: 979, 312 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scorch-small - rotate: false - xy: 1791, 810 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scorch-tiny - rotate: false - xy: 1977, 795 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scorch-xlarge - rotate: false - xy: 809, 678 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-large - rotate: false - 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-gigantic-small - rotate: false - xy: 1817, 810 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-tiny - rotate: false - xy: 1995, 795 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-gigantic-xlarge - rotate: false - xy: 331, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-large - rotate: false - xy: 1643, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-medium - rotate: false - xy: 1013, 312 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-small - rotate: false - xy: 1843, 810 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-tiny - rotate: false - xy: 2013, 800 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-huge-xlarge - rotate: false - xy: 331, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-large - rotate: false - xy: 1685, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-large - rotate: false - xy: 1727, 891 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-medium +block-salt-medium rotate: false xy: 1047, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-large-small +block-salt-small rotate: false - xy: 1869, 810 + xy: 1397, 395 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-large-tiny +block-salt-tiny rotate: false - xy: 2031, 800 + xy: 1467, 366 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-large-xlarge +block-salt-wall-large rotate: false - xy: 381, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-scrap-wall-medium - rotate: false - xy: 1081, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-small - rotate: false - xy: 1895, 810 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-tiny - rotate: false - xy: 1973, 740 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-xlarge - rotate: false - xy: 381, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-segment-large - rotate: false - xy: 1769, 891 + xy: 1433, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-segment-medium +block-salt-wall-medium + rotate: false + xy: 1081, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-salt-wall-small + rotate: false + xy: 1345, 317 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-salt-wall-tiny + rotate: false + xy: 1485, 366 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-salt-wall-xlarge + rotate: false + xy: 759, 766 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-salt-xlarge + rotate: false + xy: 759, 716 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-salvo-large + rotate: false + xy: 1475, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-salvo-medium + rotate: false + xy: 979, 443 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-salvo-small + rotate: false + xy: 1371, 343 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-salvo-tiny + rotate: false + xy: 1503, 384 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-salvo-xlarge + rotate: false + xy: 809, 828 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sand-boulder-large + rotate: false + xy: 1517, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-boulder-medium + rotate: false + xy: 1013, 443 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-boulder-small + rotate: false + xy: 1397, 369 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-boulder-tiny + rotate: false + xy: 1449, 330 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-boulder-xlarge + rotate: false + xy: 809, 778 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sand-large + rotate: false + xy: 1559, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-medium rotate: false xy: 1047, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-segment-small +block-sand-small rotate: false - xy: 1921, 810 + xy: 1345, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-segment-tiny +block-sand-tiny rotate: false - xy: 1973, 722 + xy: 1467, 348 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-segment-xlarge +block-sand-wall-large rotate: false - xy: 431, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-separator-large - rotate: false - xy: 1811, 891 + xy: 1601, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-separator-medium +block-sand-wall-medium rotate: false - xy: 1115, 511 + xy: 1081, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-separator-small +block-sand-wall-small rotate: false - xy: 1587, 784 + xy: 1371, 317 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-separator-tiny +block-sand-wall-tiny rotate: false - xy: 1973, 704 + xy: 1485, 348 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-separator-xlarge +block-sand-wall-xlarge rotate: false - xy: 431, 616 + xy: 809, 728 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-boulder-large +block-sand-water-large rotate: false - xy: 1853, 891 + xy: 1643, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-boulder-medium +block-sand-water-medium + rotate: false + xy: 1115, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-water-small + rotate: false + xy: 1397, 343 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-water-tiny + rotate: false + xy: 1503, 366 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-water-xlarge + rotate: false + xy: 809, 678 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sand-xlarge + rotate: false + xy: 331, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scatter-large + rotate: false + xy: 1685, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scatter-medium + rotate: false + xy: 979, 409 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scatter-small + rotate: false + xy: 1371, 291 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scatter-tiny + rotate: false + xy: 1449, 312 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scatter-xlarge + rotate: false + xy: 331, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scorch-large + rotate: false + xy: 1727, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scorch-medium + rotate: false + xy: 1013, 409 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scorch-small + rotate: false + xy: 1397, 317 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scorch-tiny + rotate: false + xy: 1467, 330 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scorch-xlarge + rotate: false + xy: 381, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-large + rotate: false + xy: 1769, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-gigantic-medium rotate: false xy: 1047, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-boulder-small +block-scrap-wall-gigantic-small rotate: false - xy: 1613, 784 + xy: 1397, 291 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-boulder-tiny +block-scrap-wall-gigantic-tiny rotate: false - xy: 1973, 686 + xy: 1485, 330 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-boulder-xlarge +block-scrap-wall-gigantic-xlarge rotate: false - xy: 481, 666 + xy: 381, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-large +block-scrap-wall-huge-large rotate: false - xy: 1895, 891 + xy: 1811, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-medium +block-scrap-wall-huge-medium rotate: false xy: 1081, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-small +block-scrap-wall-huge-small rotate: false - xy: 1639, 784 + xy: 1345, 265 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-tiny +block-scrap-wall-huge-tiny rotate: false - xy: 1963, 668 + xy: 1503, 348 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-xlarge +block-scrap-wall-huge-xlarge rotate: false - xy: 481, 616 + xy: 431, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shalerocks-large +block-scrap-wall-large + rotate: false + xy: 1853, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-large + rotate: false + xy: 1895, 891 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-medium + rotate: false + xy: 1115, 511 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scrap-wall-large-small + rotate: false + xy: 1371, 265 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scrap-wall-large-tiny + rotate: false + xy: 1449, 294 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scrap-wall-large-xlarge + rotate: false + xy: 431, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-scrap-wall-medium + rotate: false + xy: 1149, 545 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-scrap-wall-small + rotate: false + xy: 1397, 265 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-scrap-wall-tiny + rotate: false + xy: 1467, 312 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-scrap-wall-xlarge + rotate: false + xy: 481, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-segment-large rotate: false xy: 1937, 891 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shalerocks-medium - rotate: false - xy: 1149, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-shalerocks-small - rotate: false - xy: 1665, 784 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-shalerocks-tiny - rotate: false - xy: 1981, 668 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-shalerocks-xlarge - rotate: false - xy: 531, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-shock-mine-large - rotate: false - xy: 859, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shock-mine-medium +block-segment-medium rotate: false xy: 1047, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shock-mine-small +block-segment-small rotate: false - xy: 1691, 784 + xy: 1423, 551 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shock-mine-tiny +block-segment-tiny rotate: false - xy: 1727, 543 + xy: 1485, 312 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shock-mine-xlarge +block-segment-xlarge rotate: false - xy: 531, 616 + xy: 481, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shrubs-large +block-separator-large rotate: false - xy: 859, 807 + xy: 859, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shrubs-medium +block-separator-medium rotate: false xy: 1081, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shrubs-small +block-separator-small rotate: false - xy: 1717, 784 + xy: 1423, 525 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shrubs-tiny +block-separator-tiny rotate: false - xy: 1723, 525 + xy: 1503, 330 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shrubs-xlarge +block-separator-xlarge rotate: false - xy: 581, 666 + xy: 531, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-crucible-large +block-shale-boulder-large rotate: false - xy: 901, 849 + xy: 859, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-crucible-medium +block-shale-boulder-medium rotate: false xy: 1115, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-crucible-small +block-shale-boulder-small rotate: false - xy: 1743, 784 + xy: 1423, 499 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-crucible-tiny +block-shale-boulder-tiny rotate: false - xy: 1723, 507 + xy: 1449, 276 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-crucible-xlarge +block-shale-boulder-xlarge rotate: false - xy: 581, 616 + xy: 531, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-smelter-large +block-shale-large + rotate: false + xy: 901, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-shale-medium + rotate: false + xy: 1149, 511 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shale-small + rotate: false + xy: 1423, 473 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-shale-tiny + rotate: false + xy: 1467, 294 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-shale-wall-large rotate: false 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-silicon-smelter-tiny - rotate: false - xy: 1745, 536 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-silicon-smelter-xlarge - rotate: false - xy: 631, 666 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-slag-large - rotate: false - xy: 943, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-slag-medium - rotate: false - xy: 1047, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-slag-small - rotate: false - xy: 1795, 784 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-slag-tiny - rotate: false - xy: 1763, 536 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-slag-xlarge - rotate: false - xy: 631, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snow-large - rotate: false - xy: 901, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-medium +block-shale-wall-medium rotate: false xy: 1081, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-large +block-shale-wall-small rotate: false - xy: 859, 723 + xy: 1423, 447 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-shale-wall-tiny + rotate: false + xy: 1485, 294 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-shale-wall-xlarge + rotate: false + xy: 581, 666 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shale-xlarge + rotate: false + xy: 581, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shock-mine-large + rotate: false + xy: 943, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-pine-medium +block-shock-mine-medium rotate: false xy: 1115, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-small +block-shock-mine-small rotate: false - xy: 1821, 784 + xy: 1423, 421 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-pine-tiny +block-shock-mine-tiny rotate: false - xy: 1781, 536 + xy: 1503, 312 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-pine-xlarge +block-shock-mine-xlarge rotate: false - xy: 681, 666 + xy: 631, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-small +block-shrubs-large rotate: false - xy: 1847, 784 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snow-tiny - rotate: false - xy: 1799, 536 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snow-xlarge - rotate: false - xy: 681, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snowrock-large - rotate: false - xy: 985, 849 + xy: 901, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrock-medium +block-shrubs-medium rotate: false xy: 1149, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrock-small +block-shrubs-small rotate: false - xy: 1873, 784 + xy: 1423, 395 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrock-tiny +block-shrubs-tiny rotate: false - xy: 1817, 536 + xy: 1467, 276 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrock-xlarge +block-shrubs-xlarge rotate: false - xy: 731, 666 + xy: 631, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-large +block-silicon-crucible-large rotate: false - xy: 943, 807 + xy: 859, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrocks-medium - rotate: false - xy: 1217, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrocks-small - rotate: false - xy: 1899, 784 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snowrocks-tiny - rotate: false - xy: 1835, 536 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snowrocks-xlarge - rotate: false - xy: 731, 616 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-solar-panel-large - rotate: false - xy: 901, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-large - rotate: false - xy: 859, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-medium - rotate: false - xy: 1047, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-solar-panel-large-small - rotate: false - xy: 1925, 784 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-solar-panel-large-tiny - rotate: false - xy: 1853, 536 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-solar-panel-large-xlarge - rotate: false - xy: 781, 628 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-solar-panel-medium - rotate: false - 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-sorter-medium +block-silicon-crucible-medium rotate: false xy: 1115, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sorter-small +block-silicon-crucible-small rotate: false - xy: 1643, 758 + xy: 1423, 369 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sorter-tiny +block-silicon-crucible-tiny rotate: false - xy: 1889, 536 + xy: 1485, 276 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sorter-xlarge +block-silicon-crucible-xlarge rotate: false - xy: 781, 578 + xy: 681, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spawn-large +block-silicon-smelter-large rotate: false - xy: 985, 807 + xy: 985, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spawn-medium +block-silicon-smelter-medium rotate: false xy: 1149, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spawn-small +block-silicon-smelter-small rotate: false - xy: 1669, 758 + xy: 1423, 343 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spawn-tiny +block-silicon-smelter-tiny rotate: false - xy: 1907, 536 + xy: 1503, 294 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spawn-xlarge +block-silicon-smelter-xlarge rotate: false - xy: 831, 578 + xy: 681, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spectre-large +block-slag-large rotate: false - xy: 943, 765 + xy: 943, 807 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-spore-moss-small - rotate: false - xy: 1669, 732 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-spore-moss-tiny - rotate: false - xy: 1741, 518 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-spore-moss-xlarge - rotate: false - xy: 401, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -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 +block-slag-medium rotate: false xy: 1149, 409 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-press-small +block-slag-small rotate: false - xy: 1721, 758 + xy: 1423, 317 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-press-tiny +block-slag-tiny rotate: false - xy: 1777, 518 + xy: 1503, 276 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-press-xlarge +block-slag-xlarge rotate: false - xy: 401, 516 + xy: 731, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sporerocks-large +block-snow-boulder-large + rotate: false + xy: 901, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-boulder-medium + rotate: false + xy: 1183, 522 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-boulder-small + rotate: false + xy: 1423, 291 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-boulder-tiny + rotate: false + xy: 1469, 258 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-boulder-xlarge + rotate: false + xy: 731, 616 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snow-large + rotate: false + xy: 859, 681 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-medium + rotate: false + xy: 1183, 488 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-large + rotate: false + xy: 1027, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-pine-medium + rotate: false + xy: 1217, 522 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-small + rotate: false + xy: 1423, 265 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-pine-tiny + rotate: false + xy: 1469, 240 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-pine-xlarge + rotate: false + xy: 781, 628 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snow-small + rotate: false + xy: 1339, 239 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-tiny + rotate: false + xy: 1487, 258 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-wall-large + rotate: false + xy: 985, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-wall-medium + rotate: false + xy: 1183, 454 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-wall-small + rotate: false + xy: 1365, 239 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-wall-tiny + rotate: false + xy: 1469, 222 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-wall-xlarge + rotate: false + xy: 831, 628 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snow-xlarge + rotate: false + xy: 781, 578 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-solar-panel-large + rotate: false + xy: 943, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-large + rotate: false + xy: 901, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-medium + rotate: false + xy: 1217, 488 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-solar-panel-large-small + rotate: false + xy: 1391, 239 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-solar-panel-large-tiny + rotate: false + xy: 1487, 240 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-solar-panel-large-xlarge + rotate: false + xy: 831, 578 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-solar-panel-medium + rotate: false + xy: 1183, 420 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-solar-panel-small + rotate: false + xy: 1417, 239 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-solar-panel-tiny + rotate: false + xy: 1487, 222 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-solar-panel-xlarge + rotate: false + xy: 351, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sorter-large + rotate: false + xy: 1069, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sorter-medium + rotate: false + xy: 1217, 454 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sorter-small + rotate: false + xy: 1339, 213 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sorter-tiny + rotate: false + xy: 1505, 258 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sorter-xlarge + rotate: false + xy: 351, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spawn-large + rotate: false + xy: 1027, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spawn-medium + rotate: false + xy: 1217, 420 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spawn-small + rotate: false + xy: 1365, 213 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spawn-tiny + rotate: false + xy: 1505, 240 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spawn-xlarge + rotate: false + xy: 401, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spectre-large + rotate: false + xy: 985, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spectre-medium + rotate: false + xy: 1183, 386 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spectre-small + rotate: false + xy: 1391, 213 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spectre-tiny + rotate: false + xy: 1505, 222 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spectre-xlarge + rotate: false + xy: 351, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spore-cluster-large rotate: false xy: 943, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sporerocks-medium +block-spore-cluster-medium rotate: false - xy: 1183, 443 + xy: 1217, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sporerocks-small +block-spore-cluster-small rotate: false - xy: 1695, 732 + xy: 1417, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sporerocks-tiny +block-spore-cluster-tiny rotate: false - xy: 1795, 518 + xy: 1485, 204 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sporerocks-xlarge +block-spore-cluster-xlarge rotate: false - xy: 451, 566 + xy: 401, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-stone-large +block-spore-moss-large rotate: false xy: 901, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-stone-medium +block-spore-moss-medium rotate: false - xy: 1217, 477 + xy: 1251, 522 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-stone-small +block-spore-moss-small rotate: false - xy: 1747, 758 + xy: 1329, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-stone-tiny +block-spore-moss-tiny rotate: false - xy: 1813, 518 + xy: 1503, 204 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-stone-xlarge +block-spore-moss-xlarge rotate: false - xy: 351, 416 + xy: 451, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-tower-large +block-spore-pine-large rotate: false xy: 1111, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-tower-medium +block-spore-pine-medium rotate: false - xy: 1285, 511 + xy: 1251, 488 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-tower-small +block-spore-pine-small rotate: false - xy: 1721, 732 + xy: 1355, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-tower-tiny +block-spore-pine-tiny rotate: false - xy: 1831, 518 + xy: 1521, 560 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-tower-xlarge +block-spore-pine-xlarge rotate: false - xy: 401, 466 + xy: 351, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-large +block-spore-press-large rotate: false xy: 1069, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-wall-large-large +block-spore-press-medium + rotate: false + xy: 1251, 454 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-spore-press-small + rotate: false + xy: 1381, 187 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-spore-press-tiny + rotate: false + xy: 1521, 542 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-spore-press-xlarge + rotate: false + xy: 401, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-spore-wall-large rotate: false xy: 1027, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-wall-large-medium +block-spore-wall-medium rotate: false - xy: 1115, 341 + xy: 1251, 420 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-large-small +block-spore-wall-small rotate: false - xy: 1773, 758 + xy: 1407, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-large-tiny +block-spore-wall-tiny rotate: false - xy: 1849, 518 + xy: 1521, 524 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-large-xlarge +block-spore-wall-xlarge rotate: false xy: 451, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-medium - rotate: false - 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 +block-steam-generator-large rotate: false xy: 985, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-swarmer-medium +block-steam-generator-medium rotate: false - xy: 1183, 409 + xy: 1251, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-swarmer-small +block-steam-generator-small rotate: false - xy: 1799, 758 + xy: 1433, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-swarmer-tiny +block-steam-generator-tiny rotate: false - xy: 1885, 518 + xy: 1521, 506 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-swarmer-xlarge +block-steam-generator-xlarge rotate: false - xy: 351, 366 + xy: 501, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-switch-large +block-stone-large rotate: false xy: 943, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-switch-medium +block-stone-medium rotate: false - xy: 1217, 443 + xy: 1259, 556 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-switch-small +block-stone-small rotate: false - xy: 1773, 732 + xy: 1443, 239 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-switch-tiny +block-stone-tiny rotate: false - xy: 1903, 518 + xy: 1521, 488 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 +block-stone-wall-large rotate: false xy: 1153, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tainted-water-medium +block-stone-wall-medium rotate: false - xy: 1251, 477 + xy: 979, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tainted-water-small +block-stone-wall-small rotate: false - xy: 1825, 758 + xy: 1443, 213 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tainted-water-tiny +block-stone-wall-tiny rotate: false - xy: 1921, 518 + xy: 1521, 470 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tainted-water-xlarge +block-stone-wall-xlarge rotate: false - xy: 451, 466 + xy: 351, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tar-large +block-stone-xlarge + rotate: false + xy: 401, 416 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-surge-tower-large rotate: false xy: 1111, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tar-medium +block-surge-tower-medium rotate: false - xy: 1149, 341 + xy: 1013, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tar-small +block-surge-tower-small rotate: false - xy: 1799, 732 + xy: 1459, 187 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tar-tiny +block-surge-tower-tiny rotate: false - xy: 1939, 518 + xy: 1521, 452 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tar-xlarge +block-surge-tower-xlarge rotate: false - xy: 501, 516 + xy: 451, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tendrils-large +block-surge-wall-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 +block-surge-wall-large-large rotate: false xy: 1027, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tetrative-reconstructor-medium +block-surge-wall-large-medium rotate: false - xy: 1217, 409 + xy: 1047, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tetrative-reconstructor-small +block-surge-wall-large-small rotate: false - xy: 1825, 732 + xy: 1260, 632 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tetrative-reconstructor-tiny +block-surge-wall-large-tiny rotate: false - xy: 1759, 500 + xy: 1521, 434 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tetrative-reconstructor-xlarge +block-surge-wall-large-xlarge rotate: false - xy: 351, 316 + xy: 501, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-generator-large +block-surge-wall-medium + rotate: false + xy: 1081, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-surge-wall-small + rotate: false + xy: 1260, 606 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-surge-wall-tiny + rotate: false + xy: 1521, 416 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-surge-wall-xlarge + rotate: false + xy: 551, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-swarmer-large rotate: false xy: 985, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-generator-medium +block-swarmer-medium rotate: false - xy: 1251, 443 + xy: 1115, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-generator-small +block-swarmer-small rotate: false - xy: 1877, 758 + xy: 1286, 634 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-generator-tiny +block-swarmer-tiny rotate: false - xy: 1777, 500 + xy: 1521, 398 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-generator-xlarge +block-swarmer-xlarge rotate: false - xy: 401, 366 + xy: 351, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-pump-large +block-switch-large rotate: false xy: 1195, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-pump-medium +block-switch-medium rotate: false - xy: 1285, 477 + xy: 1149, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-pump-small +block-switch-small rotate: false - xy: 1851, 732 + xy: 1312, 634 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-pump-tiny +block-switch-tiny rotate: false - xy: 1795, 500 + xy: 1521, 380 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-pump-xlarge +block-switch-xlarge rotate: false - xy: 451, 416 + xy: 401, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-reactor-large +block-tainted-water-large rotate: false xy: 1153, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-reactor-medium +block-tainted-water-medium rotate: false - xy: 1183, 341 + xy: 945, 367 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-reactor-small +block-tainted-water-small rotate: false - xy: 1903, 758 + xy: 1286, 608 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-reactor-tiny +block-tainted-water-tiny rotate: false - xy: 1813, 500 + xy: 1521, 362 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-reactor-xlarge +block-tainted-water-xlarge rotate: false - xy: 501, 466 + xy: 451, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-large +block-tar-large rotate: false xy: 1111, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-tar-medium + rotate: false + xy: 945, 333 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tar-small + rotate: false + xy: 1293, 582 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tar-tiny + rotate: false + xy: 1521, 344 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tar-xlarge + rotate: false + xy: 501, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tendrils-large rotate: false xy: 1069, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-medium +block-tendrils-medium rotate: false - xy: 1217, 375 + xy: 979, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-tendrils-small rotate: false - xy: 1877, 732 + xy: 1312, 608 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-tendrils-tiny rotate: false - xy: 1831, 500 + xy: 1521, 326 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-tendrils-xlarge rotate: false xy: 551, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium - rotate: false - xy: 1251, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thorium-wall-small - rotate: false - xy: 1903, 732 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thorium-wall-tiny - rotate: false - xy: 1849, 500 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thorium-wall-xlarge - rotate: false - xy: 601, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thruster-large +block-tetrative-reconstructor-large rotate: false xy: 1027, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium +block-tetrative-reconstructor-medium rotate: false - xy: 1285, 443 + xy: 1013, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thruster-small +block-tetrative-reconstructor-small rotate: false - xy: 1929, 758 + xy: 1261, 160 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thruster-tiny +block-tetrative-reconstructor-tiny rotate: false - xy: 1867, 500 + xy: 1521, 308 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thruster-xlarge +block-tetrative-reconstructor-xlarge rotate: false - xy: 351, 266 + xy: 601, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-conveyor-large +block-thermal-generator-large rotate: false xy: 1237, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-conveyor-medium +block-thermal-generator-medium rotate: false - xy: 1217, 341 + xy: 945, 299 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-thermal-generator-small rotate: false - xy: 1929, 732 + xy: 1287, 160 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-thermal-generator-tiny rotate: false - xy: 1885, 500 + xy: 1521, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-thermal-generator-xlarge rotate: false - xy: 401, 316 + xy: 351, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-thermal-pump-large rotate: false xy: 1195, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-large +block-thermal-pump-medium + rotate: false + xy: 979, 307 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thermal-pump-small + rotate: false + xy: 1279, 134 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thermal-pump-tiny + rotate: false + xy: 1539, 560 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thermal-pump-xlarge + rotate: false + xy: 401, 316 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thorium-reactor-large rotate: false xy: 1153, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-medium +block-thorium-reactor-medium rotate: false - xy: 1251, 375 + xy: 1013, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-large-small +block-thorium-reactor-small rotate: false - xy: 1643, 706 + xy: 1279, 108 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-large-tiny +block-thorium-reactor-tiny rotate: false - xy: 1903, 500 + xy: 1539, 542 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-large-xlarge +block-thorium-reactor-xlarge rotate: false xy: 451, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-medium - rotate: false - xy: 1285, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titanium-wall-small - rotate: false - xy: 1669, 706 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-titanium-wall-tiny - rotate: false - xy: 1921, 500 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-titanium-wall-xlarge - rotate: false - xy: 501, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-turbine-generator-large +block-thorium-wall-large rotate: false xy: 1111, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-turbine-generator-medium - rotate: false - xy: 1251, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-turbine-generator-small - rotate: false - xy: 1695, 706 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-turbine-generator-tiny - rotate: false - xy: 1939, 500 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-turbine-generator-xlarge - rotate: false - xy: 551, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-underflow-gate-large +block-thorium-wall-large-large rotate: false xy: 1069, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-underflow-gate-medium +block-thorium-wall-large-medium rotate: false - xy: 1285, 375 + xy: 1047, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-underflow-gate-small +block-thorium-wall-large-small rotate: false - xy: 1721, 706 + xy: 1313, 160 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-underflow-gate-tiny +block-thorium-wall-large-tiny rotate: false - xy: 1311, 193 + xy: 1539, 524 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-underflow-gate-xlarge +block-thorium-wall-large-xlarge rotate: false - xy: 601, 516 + xy: 501, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-unloader-large - rotate: false - xy: 1279, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-unloader-medium - rotate: false - xy: 1285, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-unloader-small - rotate: false - xy: 1747, 706 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-unloader-tiny - rotate: false - xy: 1311, 175 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-unloader-xlarge - rotate: false - xy: 651, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-vault-large - rotate: false - xy: 1237, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-vault-medium +block-thorium-wall-medium rotate: false xy: 1047, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-thorium-wall-small rotate: false - xy: 1773, 706 + xy: 1305, 134 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-thorium-wall-tiny rotate: false - xy: 1329, 198 + xy: 1539, 506 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-thorium-wall-xlarge rotate: false - xy: 351, 216 + xy: 551, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large +block-thruster-large rotate: false - xy: 1195, 765 + xy: 1279, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-extractor-medium +block-thruster-medium + rotate: false + xy: 1081, 341 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thruster-small + rotate: false + xy: 1305, 108 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thruster-tiny + rotate: false + xy: 1539, 488 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thruster-xlarge + rotate: false + xy: 601, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-conveyor-large + rotate: false + xy: 1237, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-conveyor-medium rotate: false xy: 1081, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-extractor-small +block-titanium-conveyor-small rotate: false - xy: 1799, 706 + xy: 1339, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-extractor-tiny +block-titanium-conveyor-tiny rotate: false - xy: 1347, 198 + xy: 1539, 470 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-extractor-xlarge +block-titanium-conveyor-xlarge rotate: false - xy: 401, 266 + xy: 651, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-large +block-titanium-wall-large + rotate: false + xy: 1195, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-large rotate: false xy: 1153, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-medium +block-titanium-wall-large-medium + rotate: false + xy: 1115, 341 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-wall-large-small + rotate: false + xy: 1365, 161 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-titanium-wall-large-tiny + rotate: false + xy: 1539, 452 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-titanium-wall-large-xlarge + rotate: false + xy: 351, 216 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-wall-medium rotate: false xy: 1115, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-small +block-titanium-wall-small rotate: false - xy: 1825, 706 + xy: 1391, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-tiny +block-titanium-wall-tiny rotate: false - xy: 1329, 180 + xy: 1539, 434 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-xlarge +block-titanium-wall-xlarge rotate: false - xy: 451, 316 + xy: 401, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-wave-large +block-underflow-gate-large rotate: false xy: 1111, 681 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wave-medium +block-underflow-gate-medium rotate: false - xy: 1149, 307 + xy: 1149, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-underflow-gate-small rotate: false - xy: 1851, 706 + xy: 1417, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-underflow-gate-tiny rotate: false - xy: 1347, 180 + xy: 1539, 416 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-underflow-gate-xlarge rotate: false - xy: 501, 366 + xy: 451, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large +block-unloader-large rotate: false xy: 1321, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-dead-medium +block-unloader-medium rotate: false - xy: 1183, 307 + xy: 1183, 352 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-dead-small +block-unloader-small rotate: false - xy: 1877, 706 + xy: 1443, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-dead-tiny +block-unloader-tiny rotate: false - xy: 1365, 188 + xy: 1539, 398 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-dead-xlarge +block-unloader-xlarge rotate: false - xy: 551, 416 + xy: 501, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-large +block-vault-large rotate: false xy: 1279, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-medium +block-vault-medium rotate: false - xy: 1217, 307 + xy: 1149, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-small +block-vault-small rotate: false - xy: 1903, 706 + xy: 1469, 161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-tiny +block-vault-tiny rotate: false - xy: 1383, 188 + xy: 1539, 380 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-xlarge +block-vault-xlarge + rotate: false + xy: 551, 416 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-water-extractor-large + rotate: false + xy: 1237, 765 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-extractor-medium + rotate: false + xy: 1183, 318 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-extractor-small + rotate: false + xy: 1279, 82 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-extractor-tiny + rotate: false + xy: 1539, 362 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-extractor-xlarge rotate: false xy: 601, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-water-large + rotate: false + xy: 1195, 723 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-medium + rotate: false + xy: 1217, 352 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-small + rotate: false + xy: 1305, 82 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-tiny + rotate: false + xy: 1539, 344 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-xlarge + rotate: false + xy: 651, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-wave-large + rotate: false + xy: 1153, 681 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-wave-medium + rotate: false + xy: 1217, 318 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-wave-small + rotate: false + xy: 1331, 134 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-wave-tiny + rotate: false + xy: 1539, 326 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-wave-xlarge + rotate: false + xy: 701, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-dead-large + rotate: false + xy: 1363, 849 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-dead-medium + rotate: false + xy: 1251, 352 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-dead-small + rotate: false + xy: 1331, 108 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-dead-tiny + rotate: false + xy: 1539, 308 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-dead-xlarge + rotate: false + xy: 351, 166 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-large + rotate: false + xy: 1321, 807 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-medium + rotate: false + xy: 1251, 318 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-small + rotate: false + xy: 1331, 82 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-tiny + rotate: false + xy: 1539, 290 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-xlarge + rotate: false + xy: 401, 216 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 button rotate: false - xy: 1911, 862 + xy: 1805, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17685,7 +18119,7 @@ button index: -1 button-disabled rotate: false - xy: 435, 3 + xy: 1615, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17693,7 +18127,7 @@ button-disabled index: -1 button-down rotate: false - xy: 1321, 694 + xy: 1447, 736 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17701,7 +18135,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 1405, 744 + xy: 443, 3 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17709,7 +18143,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 1447, 778 + xy: 1573, 777 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17717,7 +18151,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 1489, 829 + xy: 1615, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17725,7 +18159,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 1531, 862 + xy: 1653, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17733,7 +18167,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 1359, 694 + xy: 1485, 736 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17741,7 +18175,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 1569, 862 + xy: 1653, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17749,7 +18183,7 @@ button-over index: -1 button-red rotate: false - xy: 1607, 862 + xy: 1691, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17757,7 +18191,7 @@ button-red index: -1 button-right rotate: false - xy: 1721, 862 + xy: 1729, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17765,7 +18199,7 @@ button-right index: -1 button-right-down rotate: false - xy: 1645, 862 + xy: 1523, 736 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17773,7 +18207,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 1683, 862 + xy: 1691, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17781,7 +18215,7 @@ button-right-over index: -1 button-select rotate: false - xy: 1929, 706 + xy: 1357, 135 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -17789,7 +18223,7 @@ button-select index: -1 button-square rotate: false - xy: 1835, 862 + xy: 1767, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17797,7 +18231,7 @@ button-square index: -1 button-square-down rotate: false - xy: 1759, 862 + xy: 1729, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17805,7 +18239,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 1797, 862 + xy: 1767, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17813,7 +18247,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 1873, 862 + xy: 1805, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17821,63 +18255,63 @@ button-trans index: -1 check-disabled rotate: false - xy: 1251, 307 + xy: 979, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1285, 307 + xy: 1013, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1319, 490 + xy: 1047, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1353, 490 + xy: 1081, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 1319, 456 + xy: 1115, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 1319, 422 + xy: 1149, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 771, 916 + xy: 795, 866 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 crater rotate: false - xy: 131, 538 + xy: 1319, 250 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 cursor rotate: false - xy: 877, 452 + xy: 743, 410 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -17891,7 +18325,7 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 881, 652 + xy: 1843, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17906,7 +18340,7 @@ info-banner index: -1 inventory rotate: false - xy: 1669, 664 + xy: 1357, 93 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -17914,147 +18348,147 @@ inventory index: -1 item-blast-compound-icon rotate: false - xy: 1353, 456 + xy: 1183, 284 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-icon rotate: false - xy: 1319, 388 + xy: 1217, 284 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-icon rotate: false - xy: 1353, 422 + xy: 1251, 284 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-icon rotate: false - xy: 1319, 354 + xy: 1183, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-icon rotate: false - xy: 1353, 388 + xy: 1217, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-icon rotate: false - xy: 1319, 320 + xy: 1251, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-icon rotate: false - xy: 1353, 354 + xy: 1285, 522 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-icon rotate: false - xy: 1353, 320 + xy: 1285, 488 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-icon rotate: false - xy: 1387, 472 + xy: 1285, 454 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-icon rotate: false - xy: 1387, 438 + xy: 1285, 420 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-icon rotate: false - xy: 1387, 404 + xy: 1285, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-icon rotate: false - xy: 1387, 370 + xy: 1285, 352 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-icon rotate: false - xy: 1387, 336 + xy: 1285, 318 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-icon rotate: false - xy: 1421, 455 + xy: 1285, 284 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-icon rotate: false - xy: 1421, 421 + xy: 1285, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-icon rotate: false - xy: 1455, 455 + xy: 1039, 56 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-icon rotate: false - xy: 1421, 387 + xy: 1039, 22 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-icon rotate: false - xy: 1455, 421 + xy: 1365, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-icon rotate: false - xy: 1489, 455 + xy: 1399, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-icon rotate: false - xy: 1421, 353 + xy: 1433, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-node rotate: false - xy: 1455, 387 + xy: 1467, 600 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -18075,7 +18509,7 @@ nomap index: -1 pane rotate: false - xy: 919, 652 + xy: 1881, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18083,7 +18517,7 @@ pane index: -1 pane-2 rotate: false - xy: 881, 623 + xy: 1843, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18091,7 +18525,7 @@ pane-2 index: -1 scroll rotate: false - xy: 1721, 669 + xy: 1409, 124 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -18114,49 +18548,49 @@ scroll-knob-horizontal-black index: -1 scroll-knob-vertical-black rotate: false - xy: 1695, 664 + xy: 1383, 119 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 997, 34 + xy: 1557, 415 size: 12, 40 orig: 12, 40 offset: 0, 0 index: -1 selection rotate: false - xy: 643, 313 + xy: 543, 173 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 685, 280 + xy: 543, 163 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 1591, 347 + xy: 1535, 662 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 974, 210 + xy: 1535, 622 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 1625, 381 + xy: 1566, 635 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -18170,7 +18604,7 @@ slider-vertical index: -1 underline rotate: false - xy: 957, 623 + xy: 1317, 694 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18178,7 +18612,7 @@ underline index: -1 underline-2 rotate: false - xy: 881, 594 + xy: 1881, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18186,7 +18620,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 957, 652 + xy: 1919, 862 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18194,7 +18628,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 919, 623 + xy: 1919, 833 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18202,7 +18636,7 @@ underline-red index: -1 underline-white rotate: false - xy: 995, 652 + xy: 1279, 694 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18210,42 +18644,42 @@ underline-white index: -1 unit-alpha-large rotate: false - xy: 1237, 765 + xy: 1279, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-alpha-medium rotate: false - xy: 1489, 421 + xy: 1501, 600 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-alpha-small rotate: false - xy: 1747, 680 + xy: 1383, 93 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-alpha-tiny rotate: false - xy: 1401, 188 + xy: 1557, 565 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-alpha-xlarge rotate: false - xy: 651, 516 + xy: 451, 266 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-antumbra-large rotate: false - xy: 919, 581 + xy: 881, 639 size: 36, 40 orig: 36, 40 offset: 0, 0 @@ -18259,308 +18693,308 @@ unit-antumbra-medium index: -1 unit-antumbra-small rotate: false - xy: 637, 12 + xy: 981, 6 size: 21, 24 orig: 21, 24 offset: 0, 0 index: -1 unit-antumbra-tiny rotate: false - xy: 603, 38 + xy: 1393, 49 size: 14, 16 orig: 14, 16 offset: 0, 0 index: -1 unit-antumbra-xlarge rotate: false - xy: 601, 316 + xy: 501, 176 size: 43, 48 orig: 43, 48 offset: 0, 0 index: -1 unit-arkyid-large rotate: false - xy: 1195, 723 + xy: 1237, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-arkyid-medium rotate: false - xy: 1523, 455 + xy: 1013, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-arkyid-small rotate: false - xy: 1773, 680 + xy: 1409, 98 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-arkyid-tiny rotate: false - xy: 963, 164 + xy: 1557, 547 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-arkyid-xlarge rotate: false - xy: 701, 566 + xy: 501, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-atrax-large rotate: false - xy: 393, 1 + xy: 1195, 692 size: 40, 29 orig: 40, 29 offset: 0, 0 index: -1 unit-atrax-medium rotate: false - xy: 945, 284 + xy: 877, 415 size: 32, 23 orig: 32, 23 offset: 0, 0 index: -1 unit-atrax-small rotate: false - xy: 937, 163 + xy: 1435, 142 size: 24, 17 orig: 24, 17 offset: 0, 0 index: -1 unit-atrax-tiny rotate: false - xy: 1643, 693 + xy: 1013, 158 size: 16, 11 orig: 16, 11 offset: 0, 0 index: -1 unit-atrax-xlarge rotate: false - xy: 351, 180 + xy: 551, 380 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 unit-beta-large rotate: false - xy: 1153, 681 + xy: 1405, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-beta-medium rotate: false - xy: 1455, 353 + xy: 1013, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-beta-small rotate: false - xy: 1799, 680 + xy: 1435, 116 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-beta-tiny rotate: false - xy: 981, 166 + xy: 1575, 565 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-beta-xlarge rotate: false - xy: 401, 216 + xy: 601, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-large rotate: false - xy: 1363, 849 + xy: 1363, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-bryde-medium rotate: false - xy: 1489, 387 + xy: 1047, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-bryde-small rotate: false - xy: 1825, 680 + xy: 1461, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-bryde-tiny rotate: false - xy: 999, 166 + xy: 1557, 529 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-bryde-xlarge rotate: false - xy: 451, 266 + xy: 651, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-crawler-large rotate: false - xy: 1321, 807 + xy: 1321, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-crawler-medium rotate: false - xy: 1523, 421 + xy: 1013, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-crawler-small rotate: false - xy: 1851, 680 + xy: 1461, 109 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-crawler-tiny rotate: false - xy: 963, 146 + xy: 1575, 547 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-crawler-xlarge rotate: false - xy: 501, 316 + xy: 701, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-large rotate: false - xy: 1279, 765 + xy: 1279, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-dagger-medium rotate: false - xy: 1557, 455 + xy: 1081, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-dagger-small rotate: false - xy: 1877, 680 + xy: 1435, 90 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-dagger-tiny rotate: false - xy: 981, 148 + xy: 1593, 565 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-dagger-xlarge rotate: false - xy: 551, 366 + xy: 351, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eclipse-large rotate: false - xy: 1237, 723 + xy: 1447, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-eclipse-medium rotate: false - xy: 1489, 353 + xy: 1047, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-eclipse-small rotate: false - xy: 1903, 680 + xy: 1461, 83 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-eclipse-tiny rotate: false - xy: 963, 128 + xy: 1557, 511 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-eclipse-xlarge rotate: false - xy: 601, 416 + xy: 401, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-flare-large rotate: false - xy: 1195, 681 + xy: 1405, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-flare-medium rotate: false - xy: 1523, 387 + xy: 1115, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-flare-small rotate: false - xy: 1929, 680 + xy: 1409, 72 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-flare-tiny rotate: false - xy: 999, 148 + xy: 1575, 529 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-flare-xlarge rotate: false - xy: 651, 466 + xy: 451, 216 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-large rotate: false - xy: 1405, 857 + xy: 1363, 773 size: 40, 32 orig: 40, 32 offset: 0, 0 @@ -18574,483 +19008,588 @@ unit-fortress-medium index: -1 unit-fortress-small rotate: false - xy: 1587, 763 + xy: 561, 1 size: 24, 19 orig: 24, 19 offset: 0, 0 index: -1 unit-fortress-tiny rotate: false - xy: 1437, 662 + xy: 1483, 1 size: 16, 12 orig: 16, 12 offset: 0, 0 index: -1 unit-fortress-xlarge rotate: false - xy: 701, 526 + xy: 501, 276 size: 48, 38 orig: 48, 38 offset: 0, 0 index: -1 unit-gamma-large rotate: false - xy: 1363, 807 + xy: 1321, 723 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-gamma-medium rotate: false - xy: 1557, 421 + xy: 1149, 239 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-gamma-small rotate: false - xy: 1675, 638 + xy: 1435, 64 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-gamma-tiny rotate: false - xy: 981, 130 + xy: 1593, 547 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-gamma-xlarge rotate: false - xy: 351, 130 + xy: 551, 330 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-horizon-large rotate: false - xy: 1321, 765 + xy: 1489, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-horizon-medium rotate: false - xy: 1591, 455 + xy: 1081, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-horizon-small rotate: false - xy: 1675, 612 + xy: 1461, 57 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-horizon-tiny rotate: false - xy: 963, 110 + xy: 1611, 565 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-horizon-xlarge rotate: false - xy: 401, 166 + xy: 601, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mace-large rotate: false - xy: 1279, 723 + xy: 1447, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mace-medium rotate: false - xy: 1523, 353 + xy: 1047, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mace-small rotate: false - xy: 1675, 586 + xy: 1357, 67 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mace-tiny rotate: false - xy: 999, 130 + xy: 1557, 493 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mace-xlarge rotate: false - xy: 451, 216 + xy: 651, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mega-large rotate: false - xy: 1237, 681 + xy: 1363, 731 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mega-medium rotate: false - xy: 1557, 387 + xy: 1115, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mega-small rotate: false - xy: 1675, 560 + xy: 1383, 67 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mega-tiny rotate: false - xy: 981, 112 + xy: 1575, 511 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mega-xlarge rotate: false - xy: 501, 266 + xy: 701, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-minke-large rotate: false - xy: 1405, 815 + xy: 1405, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-minke-medium rotate: false - xy: 1591, 421 + xy: 1081, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-minke-small rotate: false - xy: 1701, 638 + xy: 1409, 46 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-minke-tiny rotate: false - xy: 963, 92 + xy: 1593, 529 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-minke-xlarge rotate: false - xy: 551, 316 + xy: 351, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-mono-large rotate: false - xy: 1447, 849 + xy: 1531, 849 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-mono-medium rotate: false - xy: 1625, 455 + xy: 1149, 205 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mono-small rotate: false - xy: 1701, 612 + xy: 1435, 38 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mono-tiny rotate: false - xy: 963, 74 + xy: 1611, 547 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mono-xlarge rotate: false - xy: 601, 366 + xy: 401, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-large rotate: false - xy: 1363, 765 + xy: 1489, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-nova-medium rotate: false - xy: 1557, 353 + xy: 1183, 216 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-nova-small rotate: false - xy: 1701, 586 + xy: 1461, 31 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-nova-tiny rotate: false - xy: 999, 112 + xy: 1557, 475 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-nova-xlarge rotate: false - xy: 651, 416 + xy: 451, 166 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-poly-large rotate: false - xy: 1321, 723 + xy: 1447, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-poly-medium rotate: false - xy: 1591, 387 + xy: 1115, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-poly-small rotate: false - xy: 1701, 560 + xy: 1487, 135 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-poly-tiny rotate: false - xy: 981, 94 + xy: 1575, 493 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-poly-xlarge rotate: false - xy: 701, 476 + xy: 501, 226 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-pulsar-large rotate: false - xy: 1279, 688 + xy: 1573, 856 size: 40, 33 orig: 40, 33 offset: 0, 0 index: -1 unit-pulsar-medium rotate: false - xy: 979, 284 + xy: 911, 373 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 unit-pulsar-small rotate: false - xy: 1943, 836 + xy: 587, 1 size: 24, 19 orig: 24, 19 offset: 0, 0 index: -1 unit-pulsar-tiny rotate: false - xy: 1557, 795 + xy: 945, 284 size: 16, 13 orig: 16, 13 offset: 0, 0 index: -1 unit-pulsar-xlarge rotate: false - xy: 351, 89 + xy: 551, 289 size: 48, 39 orig: 48, 39 offset: 0, 0 index: -1 unit-quasar-large rotate: false - xy: 1405, 773 + xy: 1531, 807 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-quasar-medium rotate: false - xy: 974, 250 + xy: 1217, 216 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-quasar-small rotate: false - xy: 1947, 810 + xy: 1487, 109 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-quasar-tiny rotate: false - xy: 999, 94 + xy: 1593, 511 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-quasar-xlarge rotate: false - xy: 401, 116 + xy: 601, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +unit-reign-large + rotate: false + xy: 1237, 695 + size: 40, 26 + orig: 40, 26 + offset: 0, 0 + index: -1 +unit-reign-medium + rotate: false + xy: 114, 6 + size: 31, 20 + orig: 31, 20 + offset: 0, 0 + index: -1 +unit-reign-small + rotate: false + xy: 1042, 91 + size: 24, 15 + orig: 24, 15 + offset: 0, 0 + index: -1 +unit-reign-tiny + rotate: false + xy: 771, 916 + size: 15, 10 + orig: 15, 10 + offset: 0, 0 + index: -1 +unit-reign-xlarge + rotate: false + xy: 651, 383 + size: 48, 31 + orig: 48, 31 + offset: 0, 0 + index: -1 unit-risso-large rotate: false - xy: 1447, 807 + xy: 1489, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-risso-medium rotate: false - xy: 1625, 421 + xy: 1149, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-risso-small rotate: false - xy: 1951, 784 + xy: 1487, 83 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-risso-tiny rotate: false - xy: 981, 76 + xy: 1611, 529 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-risso-xlarge rotate: false - xy: 451, 166 + xy: 701, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +unit-scepter-large + rotate: false + xy: 1405, 731 + size: 40, 32 + orig: 40, 32 + offset: 0, 0 + index: -1 +unit-scepter-medium + rotate: false + xy: 979, 245 + size: 32, 26 + orig: 32, 26 + offset: 0, 0 + index: -1 +unit-scepter-small + rotate: false + xy: 1487, 62 + size: 24, 19 + orig: 24, 19 + offset: 0, 0 + index: -1 +unit-scepter-tiny + rotate: false + xy: 1260, 591 + size: 16, 13 + orig: 16, 13 + offset: 0, 0 + index: -1 +unit-scepter-xlarge + rotate: false + xy: 351, 25 + size: 48, 39 + orig: 48, 39 + offset: 0, 0 + index: -1 unit-spiroct-large rotate: false - xy: 1489, 858 + xy: 401, 1 size: 40, 31 orig: 40, 31 offset: 0, 0 index: -1 unit-spiroct-medium rotate: false - xy: 114, 1 + xy: 1251, 223 size: 31, 25 orig: 31, 25 offset: 0, 0 index: -1 unit-spiroct-small rotate: false - xy: 1005, 213 + xy: 1487, 41 size: 24, 19 orig: 24, 19 offset: 0, 0 index: -1 unit-spiroct-tiny rotate: false - xy: 1705, 492 + xy: 1501, 1 size: 15, 12 orig: 15, 12 offset: 0, 0 index: -1 unit-spiroct-xlarge rotate: false - xy: 501, 226 + xy: 401, 76 size: 48, 38 orig: 48, 38 offset: 0, 0 index: -1 +unit-toxopid-large + rotate: false + xy: 919, 639 + size: 33, 40 + orig: 33, 40 + offset: 0, 0 + index: -1 +unit-toxopid-medium + rotate: false + xy: 781, 682 + size: 26, 32 + orig: 26, 32 + offset: 0, 0 + index: -1 +unit-toxopid-small + rotate: false + xy: 1987, 627 + size: 20, 24 + orig: 20, 24 + offset: 0, 0 + index: -1 +unit-toxopid-tiny + rotate: false + xy: 2034, 609 + size: 13, 16 + orig: 13, 16 + offset: 0, 0 + index: -1 +unit-toxopid-xlarge + rotate: false + xy: 1573, 806 + size: 40, 48 + orig: 40, 48 + offset: 0, 0 + index: -1 unit-zenith-large rotate: false - xy: 1363, 723 + xy: 1531, 765 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-zenith-medium rotate: false - xy: 1659, 455 + xy: 1183, 182 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-zenith-small rotate: false - xy: 1955, 758 + xy: 1487, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-zenith-tiny rotate: false - xy: 999, 76 + xy: 1557, 457 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-zenith-xlarge rotate: false - xy: 551, 266 + xy: 451, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-pane rotate: false - xy: 1033, 652 + xy: 881, 610 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19058,14 +19597,14 @@ white-pane index: -1 whiteui rotate: false - xy: 1034, 255 + xy: 546, 221 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 2017, 844 + xy: 1042, 108 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 612311a8eb..f899d82f7f 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 a3a75a8797..eb90163f97 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 eaa96bce0f..9636f9e2a8 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 7319551a32..06aff32753 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/sprites5.png b/core/assets/sprites/fallback/sprites5.png index ce24c31d04..02fc8892a4 100644 Binary files a/core/assets/sprites/fallback/sprites5.png and b/core/assets/sprites/fallback/sprites5.png differ diff --git a/core/assets/sprites/fallback/sprites6.png b/core/assets/sprites/fallback/sprites6.png index 61522803dc..51a4eeefe2 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 0a1ad63aaf..b618d04a0c 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 c4932f28b0..b862e214ce 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -1,6473 +1,6648 @@ sprites.png -size: 4096,2048 +size: 4096,4096 format: rgba8888 filter: nearest,nearest repeat: none core-silo rotate: false - xy: 1735, 999 + xy: 1379, 2661 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 launch-pad rotate: false - xy: 3995, 1077 + xy: 681, 1995 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large rotate: false - xy: 2351, 756 + xy: 445, 1189 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 launch-pad-light rotate: false - xy: 2513, 967 + xy: 779, 1997 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launchpod rotate: false - xy: 3675, 667 + xy: 607, 725 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 force-projector rotate: false - xy: 3211, 1077 + xy: 779, 2387 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 force-projector-top rotate: false - xy: 3309, 1077 + xy: 583, 2191 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mend-projector rotate: false - xy: 3147, 589 + xy: 607, 461 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 3213, 589 + xy: 673, 413 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender rotate: false - xy: 1987, 183 + xy: 3871, 2937 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 1953, 115 + xy: 3905, 2937 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-dome rotate: false - xy: 3167, 869 + xy: 673, 1407 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-top rotate: false - xy: 3199, 967 + xy: 673, 1309 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector rotate: false - xy: 3279, 589 + xy: 739, 413 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 3345, 589 + xy: 607, 395 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shock-mine rotate: false - xy: 2191, 22 + xy: 1007, 153 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-loader rotate: false - xy: 2189, 520 + xy: 3271, 3321 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader rotate: false - xy: 2287, 462 + xy: 1985, 2967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 3599, 127 + xy: 3879, 3175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 3769, 131 + xy: 3905, 3141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 3803, 133 + xy: 3871, 3073 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 1689, 248 + xy: 3905, 3107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 1723, 248 + xy: 3939, 3141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 3989, 260 + xy: 3343, 3773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 3989, 260 + xy: 3343, 3773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 3989, 226 + xy: 849, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 3989, 192 + xy: 971, 1309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 3989, 158 + xy: 1013, 1351 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 3981, 124 + xy: 1055, 1393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 4057, 471 + xy: 1097, 1435 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 1651, 244 + xy: 3811, 3198 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 3939, 86 + xy: 1149, 2484 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 3089, 157 + xy: 971, 1275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 3123, 157 + xy: 971, 1241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 3157, 157 + xy: 971, 1207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 3191, 157 + xy: 971, 1173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 3225, 157 + xy: 3845, 3198 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 3259, 157 + xy: 2279, 2501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 3293, 157 + xy: 883, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 3327, 157 + xy: 871, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 3361, 157 + xy: 871, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 3395, 157 + xy: 871, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 3085, 123 + xy: 871, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 3085, 89 + xy: 917, 1127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 1749, 44 + xy: 3981, 3189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 1749, 10 + xy: 4015, 3189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 1757, 248 + xy: 4049, 3189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 1791, 273 + xy: 3981, 3155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 1791, 239 + xy: 4015, 3155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 1783, 205 + xy: 4049, 3155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 1783, 171 + xy: 3973, 3121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 1783, 137 + xy: 3973, 3087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 1783, 103 + xy: 4007, 3121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 1783, 69 + xy: 3973, 3053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 1783, 35 + xy: 4007, 3087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 1783, 1 + xy: 4041, 3121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 1817, 205 + xy: 3973, 3019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 1817, 171 + xy: 4007, 3053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 1817, 137 + xy: 4041, 3087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 1817, 103 + xy: 3973, 2985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 1817, 69 + xy: 4007, 3019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 1817, 35 + xy: 4041, 3053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 1817, 1 + xy: 4007, 2985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor rotate: false - xy: 2089, 152 + xy: 1011, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 2123, 186 + xy: 973, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 1987, 47 + xy: 1007, 731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 2021, 81 + xy: 973, 697 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 2055, 84 + xy: 1007, 697 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 2089, 118 + xy: 973, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 2429, 134 + xy: 1358, 1801 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 2361, 32 + xy: 1358, 1767 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 2395, 66 + xy: 1324, 1733 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 2429, 100 + xy: 1358, 1733 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 2395, 32 + xy: 1392, 1765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 2429, 66 + xy: 1426, 1765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 2429, 32 + xy: 1460, 1765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 2463, 68 + xy: 1494, 1765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 2497, 68 + xy: 1528, 1765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 2463, 34 + xy: 1562, 1765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 2531, 68 + xy: 1392, 1731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 2497, 34 + xy: 1426, 1731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 2531, 34 + xy: 1460, 1731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 2565, 36 + xy: 1494, 1731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 2599, 36 + xy: 1528, 1731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 2633, 36 + xy: 1562, 1731 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 3837, 67 + xy: 1290, 1705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 3833, 33 + xy: 1256, 1701 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 3871, 77 + xy: 1253, 1667 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cross rotate: false - xy: 3561, 93 + xy: 2187, 2333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor rotate: false - xy: 3691, 733 + xy: 739, 941 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 3731, 93 + xy: 2241, 2231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 1851, 117 + xy: 1015, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mass-driver-base rotate: false - xy: 3101, 967 + xy: 779, 1801 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 2055, 186 + xy: 4007, 2917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 payload-conveyor rotate: false - xy: 3297, 979 + xy: 673, 1211 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-conveyor-edge rotate: false - xy: 3395, 979 + xy: 877, 2297 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-conveyor-top rotate: false - xy: 3493, 979 + xy: 877, 2199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-top rotate: false - xy: 3493, 979 + xy: 877, 2199 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router rotate: false - xy: 3591, 979 + xy: 877, 2101 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-edge rotate: false - xy: 3689, 979 + xy: 877, 2003 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-over rotate: false - xy: 3787, 979 + xy: 877, 1905 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 2089, 186 + xy: 1157, 1401 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 1953, 47 + xy: 1157, 1367 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1987, 81 + xy: 1123, 1333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 2021, 115 + xy: 1157, 1333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 2191, 158 + xy: 1007, 357 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 2225, 22 + xy: 1007, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 underflow-gate rotate: false - xy: 3905, 43 + xy: 1253, 1565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blast-drill rotate: false - xy: 3495, 1435 + xy: 453, 2359 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 3625, 1435 + xy: 453, 2229 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 3755, 1435 + xy: 453, 2099 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 3885, 1435 + xy: 453, 1969 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 3889, 741 + xy: 739, 875 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -turbine-generator-liquid +steam-generator-liquid rotate: false - xy: 3889, 741 + xy: 739, 875 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 3701, 1077 + xy: 583, 1995 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rim rotate: false - xy: 2577, 104 + xy: 681, 2093 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 3799, 1077 + xy: 779, 2095 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 3897, 1077 + xy: 583, 1897 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill rotate: false - xy: 2949, 594 + xy: 607, 527 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 3015, 589 + xy: 673, 479 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 3081, 589 + xy: 739, 479 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 oil-extractor rotate: false - xy: 2775, 869 + xy: 779, 1703 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-liquid rotate: false - xy: 2873, 869 + xy: 681, 1603 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-rotator rotate: false - xy: 2971, 869 + xy: 779, 1605 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-top rotate: false - xy: 3069, 869 + xy: 673, 1505 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pneumatic-drill rotate: false - xy: 3939, 609 + xy: 607, 197 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 4005, 609 + xy: 519, 131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 2975, 523 + xy: 585, 131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 3735, 403 + xy: 2087, 2489 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 3801, 469 + xy: 2055, 2423 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 3801, 403 + xy: 2055, 2357 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 3867, 477 + xy: 2055, 2291 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 3187, 123 + xy: 913, 923 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 3998, 417 + xy: 905, 753 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 3175, 21 + xy: 939, 447 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 1715, 10 + xy: 3871, 2971 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 place-arrow rotate: false - xy: 3885, 979 + xy: 877, 1807 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 3633, 127 + xy: 3913, 3175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-arrow rotate: false - xy: 3667, 127 + xy: 3947, 3175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 3667, 127 + xy: 3947, 3175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 3701, 127 + xy: 3871, 3141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 3735, 127 + xy: 3871, 3107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 1715, 146 + xy: 3939, 3107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 1715, 112 + xy: 3871, 3005 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 1715, 78 + xy: 3905, 3039 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 1715, 44 + xy: 3939, 3073 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 1715, 44 + xy: 3939, 3073 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 1715, 44 + xy: 3939, 3073 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 1749, 214 + xy: 3905, 3005 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 1749, 180 + xy: 3939, 3039 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 1749, 146 + xy: 3905, 2971 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 1749, 112 + xy: 3939, 3005 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 1749, 112 + xy: 3939, 3005 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 1749, 78 + xy: 3939, 2971 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 1885, 117 + xy: 1089, 1359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 1851, 15 + xy: 1123, 1367 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 1885, 49 + xy: 905, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 1885, 15 + xy: 939, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 1919, 219 + xy: 917, 175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 1919, 185 + xy: 951, 175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-bottom rotate: false - xy: 2611, 967 + xy: 583, 1799 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-liquid rotate: false - xy: 2709, 967 + xy: 681, 1897 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-tank-top rotate: false - xy: 2807, 967 + xy: 779, 1899 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 1987, 217 + xy: 973, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump-liquid rotate: false - xy: 2021, 217 + xy: 973, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-liquid rotate: false - xy: 2021, 217 + xy: 973, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-pump-liquid rotate: false - xy: 2021, 217 + xy: 973, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 1953, 81 + xy: 4041, 2917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-arrow rotate: false - xy: 1987, 115 + xy: 2271, 2459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 2021, 149 + xy: 2271, 2425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 2055, 152 + xy: 2271, 2391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 2021, 47 + xy: 973, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 2055, 50 + xy: 1007, 629 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 2089, 84 + xy: 973, 595 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 2123, 118 + xy: 1007, 595 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 2089, 50 + xy: 973, 561 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 2123, 84 + xy: 1007, 561 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 2021, 13 + xy: 1007, 493 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 2055, 16 + xy: 973, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 2089, 16 + xy: 1007, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 2123, 16 + xy: 973, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 3371, 523 + xy: 783, 149 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 2581, 575 + xy: 1073, 1889 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 hyper-processor rotate: false - xy: 3603, 1077 + xy: 681, 2191 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-display rotate: false - xy: 2905, 967 + xy: 583, 1701 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor rotate: false - xy: 3741, 667 + xy: 673, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 memory-cell rotate: false - xy: 1953, 149 + xy: 973, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 1987, 149 + xy: 3939, 2937 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor rotate: false - xy: 2021, 183 + xy: 3973, 2917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch rotate: false - xy: 2327, 32 + xy: 1290, 1739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 switch-on rotate: false - xy: 2361, 66 + xy: 1324, 1801 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery rotate: false - xy: 3119, 123 + xy: 913, 1093 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large rotate: false - xy: 2189, 618 + xy: 433, 623 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-large-top rotate: false - xy: 2087, 484 + xy: 433, 525 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 battery-top rotate: false - xy: 3119, 89 + xy: 913, 1059 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 1715, 214 + xy: 3871, 3039 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 1715, 180 + xy: 3905, 3073 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator rotate: false - xy: 2479, 200 + xy: 1695, 2337 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-liquid rotate: false - xy: 2479, 102 + xy: 1793, 2369 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 differential-generator-top rotate: false - xy: 2525, 1065 + xy: 1891, 2369 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 diode rotate: false - xy: 3527, 59 + xy: 2221, 2333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode-arrow rotate: false - xy: 3595, 93 + xy: 2186, 2299 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 3629, 59 + xy: 2255, 2333 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 3697, 93 + xy: 2254, 2299 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 impact-reactor rotate: false - xy: 3695, 1175 + xy: 3141, 3319 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-bottom rotate: false - xy: 3825, 1305 + xy: 2213, 3182 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-light rotate: false - xy: 3825, 1175 + xy: 2343, 3182 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-0 rotate: false - xy: 3955, 1305 + xy: 2473, 3182 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-1 rotate: false - xy: 3955, 1175 + xy: 453, 1579 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-2 rotate: false - xy: 2059, 778 + xy: 445, 1449 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 impact-reactor-plasma-3 rotate: false - xy: 2221, 814 + xy: 445, 1319 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 power-node rotate: false - xy: 2123, 50 + xy: 973, 527 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 3041, 523 + xy: 607, 65 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source rotate: false - xy: 1953, 13 + xy: 1007, 527 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1987, 13 + xy: 973, 493 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 3009, 457 + xy: 805, 83 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 2225, 192 + xy: 973, 323 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 2225, 56 + xy: 1007, 119 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large rotate: false - xy: 2679, 771 + xy: 975, 1791 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +steam-generator + rotate: false + xy: 2063, 2687 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-cap + rotate: false + xy: 1955, 2621 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-top + rotate: false + xy: 2021, 2621 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-turbine0 + rotate: false + xy: 1955, 2555 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +steam-generator-turbine1 + rotate: false + xy: 2021, 2555 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 surge-tower rotate: false - xy: 3899, 543 + xy: 1955, 2489 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 3471, 457 + xy: 1989, 2357 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-reactor rotate: false - xy: 2679, 673 + xy: 975, 1693 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-lights rotate: false - xy: 2777, 771 + xy: 1073, 1791 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-top rotate: false - xy: 2581, 477 + xy: 1073, 1693 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -turbine-generator - rotate: false - xy: 3537, 403 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-cap - rotate: false - xy: 3603, 469 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-top - rotate: false - xy: 3603, 403 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-turbine0 - rotate: false - xy: 3669, 469 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-turbine1 - rotate: false - xy: 3669, 403 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 alloy-smelter rotate: false - xy: 2189, 716 + xy: 433, 819 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-top rotate: false - xy: 2091, 582 + xy: 433, 721 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-mixer rotate: false - xy: 2677, 366 + xy: 3315, 3123 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-forge rotate: false - xy: 1493, 253 + xy: 1857, 2467 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 coal-centrifuge rotate: false - xy: 2949, 660 + xy: 1539, 1981 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 3361, 721 + xy: 739, 1073 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 3345, 655 + xy: 607, 1055 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 3427, 733 + xy: 673, 1007 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 3493, 733 + xy: 739, 1007 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 3559, 733 + xy: 607, 989 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 3625, 733 + xy: 673, 941 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 disassembler rotate: false - xy: 2623, 1065 + xy: 1793, 2271 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-liquid rotate: false - xy: 2721, 1065 + xy: 1891, 2271 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 disassembler-spinner rotate: false - xy: 2819, 1065 + xy: 1793, 2889 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press rotate: false - xy: 4021, 743 + xy: 673, 809 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 incinerator rotate: false - xy: 3663, 59 + xy: 2241, 2265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 2089, 220 + xy: 981, 935 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 1885, 185 + xy: 981, 799 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln rotate: false - xy: 3411, 655 + xy: 739, 809 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 3477, 667 + xy: 607, 791 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 3477, 667 + xy: 607, 791 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 1919, 83 + xy: 939, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 1919, 49 + xy: 939, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 1953, 183 + xy: 973, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press rotate: false - xy: 2579, 869 + xy: 583, 1603 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 phase-weaver rotate: false - xy: 3543, 601 + xy: 607, 329 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 3609, 601 + xy: 673, 281 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 3675, 601 + xy: 739, 281 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 3741, 601 + xy: 607, 263 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 3807, 609 + xy: 673, 215 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 2157, 192 + xy: 1007, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 2157, 158 + xy: 973, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer rotate: false - xy: 3173, 523 + xy: 717, 149 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 3339, 391 + xy: 1865, 2757 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 3437, 523 + xy: 1865, 2691 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-spinner rotate: false - xy: 3405, 457 + xy: 1941, 2819 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-crucible rotate: false - xy: 2581, 771 + xy: 975, 1889 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-crucible-top rotate: false - xy: 2581, 673 + xy: 1073, 1987 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 3405, 391 + xy: 2007, 2819 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 3503, 535 + xy: 2073, 2819 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 3569, 535 + xy: 1931, 2753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 3635, 535 + xy: 1997, 2753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 3701, 535 + xy: 2063, 2753 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 3767, 535 + xy: 1931, 2687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 3833, 543 + xy: 1997, 2687 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -rock1 +boulder1 rotate: false - xy: 3439, 175 + xy: 2107, 2241 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -rock2 +boulder2 rotate: false - xy: 3489, 191 + xy: 2157, 2242 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dacite-boulder1 + rotate: false + xy: 771, 1303 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dacite-boulder2 + rotate: false + xy: 771, 1253 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-boulder1 rotate: false - xy: 2157, 90 + xy: 1007, 323 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder2 rotate: false - xy: 2191, 124 + xy: 973, 289 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder1 rotate: false - xy: 2191, 56 + xy: 985, 187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder2 rotate: false - xy: 2225, 90 + xy: 1019, 187 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -snowrock1 +snow-boulder1 rotate: false - xy: 3689, 203 + xy: 855, 393 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -snowrock2 +snow-boulder2 rotate: false - xy: 3739, 203 + xy: 855, 343 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster1 rotate: false - xy: 3707, 161 + xy: 1013, 1385 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster2 rotate: false - xy: 3989, 370 + xy: 1055, 1427 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-cluster3 rotate: false - xy: 3989, 328 + xy: 1097, 1469 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 white-tree rotate: false - xy: 1, 411 + xy: 1, 2459 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 white-tree-dead rotate: false - xy: 1322, 1727 + xy: 1322, 3775 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 white-tree-dead-shadow rotate: false - xy: 1, 1699 + xy: 1, 3747 size: 353, 348 orig: 353, 348 offset: 0, 0 index: -1 white-tree-shadow rotate: false - xy: 1, 1699 + xy: 1, 3747 size: 353, 348 orig: 353, 348 offset: 0, 0 index: -1 container rotate: false - xy: 3031, 721 + xy: 1605, 2115 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation rotate: false - xy: 2375, 886 + xy: 1207, 2551 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team rotate: false - xy: 3045, 1293 + xy: 1337, 2531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus rotate: false - xy: 1573, 999 + xy: 3309, 3611 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-nucleus-team rotate: false - xy: 1573, 837 + xy: 3471, 3611 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard rotate: false - xy: 2385, 462 + xy: 2083, 2967 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team rotate: false - xy: 2283, 364 + xy: 1107, 2379 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 unloader rotate: false - xy: 3939, 52 + xy: 1324, 1699 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 3973, 52 + xy: 1358, 1699 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault rotate: false - xy: 2777, 673 + xy: 1073, 1595 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-heat rotate: false - xy: 1949, 361 + xy: 805, 215 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-1 rotate: false - xy: 3153, 123 + xy: 913, 1025 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-2 rotate: false - xy: 2675, 300 + xy: 1407, 2113 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-3 rotate: false - xy: 2087, 386 + xy: 433, 427 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-4 rotate: false - xy: 2525, 1293 + xy: 453, 1839 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 hail-heat rotate: false - xy: 4049, 889 + xy: 2237, 2493 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 3609, 667 + xy: 739, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 meltdown-heat rotate: false - xy: 1065, 531 + xy: 2733, 3191 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 ripple-heat rotate: false - xy: 3265, 869 + xy: 877, 1611 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo-heat rotate: false - xy: 3075, 457 + xy: 805, 17 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 3075, 391 + xy: 1407, 1849 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 3141, 457 + xy: 1473, 1849 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-heat rotate: false - xy: 2157, 56 + xy: 973, 255 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 3933, 477 + xy: 2121, 2357 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 additive-reconstructor rotate: false - xy: 1989, 539 + xy: 1009, 2379 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 additive-reconstructor-top rotate: false - xy: 1989, 441 + xy: 433, 1015 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory rotate: false - xy: 2091, 680 + xy: 433, 917 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 command-center rotate: false - xy: 2965, 726 + xy: 1539, 1915 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 exponential-reconstructor rotate: false - xy: 1129, 791 + xy: 807, 3097 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 exponential-reconstructor-top rotate: false - xy: 775, 243 + xy: 1033, 3323 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-in-3 rotate: false - xy: 2917, 1065 + xy: 583, 2387 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-in-5 rotate: false - xy: 2059, 1070 + xy: 2879, 3451 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-in-7 rotate: false - xy: 743, 17 + xy: 807, 2871 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-in-9 rotate: false - xy: 323, 1409 + xy: 2804, 3807 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 factory-out-3 rotate: false - xy: 3015, 1065 + xy: 681, 2387 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 factory-out-5 rotate: false - xy: 2221, 1232 + xy: 3041, 3451 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 factory-out-7 rotate: false - xy: 839, 469 + xy: 1033, 3097 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 factory-out-9 rotate: false - xy: 323, 1119 + xy: 1, 719 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 factory-top-3 rotate: false - xy: 3113, 1065 + xy: 583, 2289 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 ground-factory rotate: false - xy: 3505, 1077 + xy: 583, 2093 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multiplicative-reconstructor rotate: false - xy: 2059, 908 + xy: 2051, 3261 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 multiplicative-reconstructor-top rotate: false - xy: 2221, 1070 + xy: 3203, 3449 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 naval-factory rotate: false - xy: 2677, 869 + xy: 681, 1701 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 rally-point rotate: false - xy: 3239, 523 + xy: 673, 65 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-base rotate: false - xy: 2157, 124 + xy: 973, 357 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point rotate: false - xy: 3305, 523 + xy: 739, 83 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 tetrative-reconstructor rotate: false - xy: 323, 829 + xy: 3094, 3807 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 tetrative-reconstructor-top rotate: false - xy: 323, 539 + xy: 1, 429 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 copper-wall rotate: false - xy: 4007, 56 + xy: 4041, 3019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large rotate: false - xy: 3097, 721 + xy: 1605, 2049 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door rotate: false - xy: 3561, 59 + xy: 2220, 2299 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large rotate: false - xy: 3757, 741 + xy: 607, 923 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 3823, 741 + xy: 673, 875 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-open rotate: false - xy: 3629, 93 + xy: 2207, 2265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 2055, 118 + xy: 977, 765 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 3477, 601 + xy: 739, 347 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 2123, 152 + xy: 1007, 663 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large rotate: false - xy: 3873, 609 + xy: 739, 215 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-gigantic rotate: false - xy: 1261, 271 + xy: 3527, 3321 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge2 rotate: false - xy: 3853, 881 + xy: 975, 1987 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge3 rotate: false - xy: 3951, 881 + xy: 1073, 2085 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-large1 rotate: false - xy: 3207, 457 + xy: 1605, 1851 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 3207, 391 + xy: 1639, 3017 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 3273, 457 + xy: 1705, 3017 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 3273, 391 + xy: 1771, 3017 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall2 rotate: false - xy: 2191, 90 + xy: 1007, 255 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 2225, 124 + xy: 973, 221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 2157, 22 + xy: 1007, 221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 2157, 22 + xy: 1007, 221 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 2395, 134 + xy: 1290, 1773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large rotate: false - xy: 3965, 543 + xy: 2021, 2489 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 2395, 100 + xy: 1324, 1767 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 3471, 391 + xy: 1989, 2291 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster rotate: false - xy: 1187, 11 + xy: 3513, 3191 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-wall rotate: false - xy: 3905, 77 + xy: 1253, 1633 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large rotate: false - xy: 3537, 469 + xy: 2087, 2621 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bullet rotate: false - xy: 2981, 152 + xy: 1639, 3095 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 2981, 98 + xy: 805, 807 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 1979, 343 + xy: 3981, 3225 size: 8, 16 orig: 8, 16 offset: 0, 0 index: -1 circle-end rotate: false - xy: 1683, 510 + xy: 3787, 3314 size: 100, 199 orig: 100, 199 offset: 0, 0 index: -1 circle-mid rotate: false - xy: 4094, 1845 + xy: 4075, 2954 size: 1, 199 orig: 1, 199 offset: 0, 0 index: -1 circle-shadow rotate: false - xy: 2252, 1556 + xy: 2330, 3604 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 error rotate: false - xy: 3389, 291 + xy: 821, 1255 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser rotate: false - xy: 1125, 481 + xy: 1401, 1851 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 laser-end rotate: false - xy: 2875, 652 + xy: 1261, 2023 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 minelaser rotate: false - xy: 4091, 881 + xy: 601, 1137 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 minelaser-end rotate: false - xy: 2873, 578 + xy: 1261, 1949 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 missile rotate: false - xy: 1651, 278 + xy: 569, 223 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 missile-back rotate: false - xy: 4057, 505 + xy: 217, 133 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 parallax-laser rotate: false - xy: 4091, 455 + xy: 3642, 3981 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 parallax-laser-end rotate: false - xy: 1875, 359 + xy: 1261, 1875 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 particle rotate: false - xy: 3665, 161 + xy: 971, 1343 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 scale_marker rotate: false - xy: 1, 1 + xy: 1201, 2578 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 shell rotate: false - xy: 1949, 395 + xy: 3773, 3194 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shell-back rotate: false - xy: 3749, 165 + xy: 1111, 2480 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 transfer rotate: false - xy: 317, 361 + xy: 1695, 3483 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 3871, 43 + xy: 1253, 1599 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white rotate: false - xy: 3015, 721 + xy: 1251, 3092 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 alpha-wreck0 rotate: false - xy: 1497, 7 + xy: 805, 707 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck1 rotate: false - xy: 1547, 7 + xy: 805, 657 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-wreck2 rotate: false - xy: 3039, 341 + xy: 805, 607 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 antumbra-wreck0 rotate: false - xy: 1355, 985 + xy: 1259, 3065 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-wreck1 rotate: false - xy: 1355, 743 + xy: 1251, 2823 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-wreck2 rotate: false - xy: 1613, 1485 + xy: 1485, 3533 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 arc rotate: false - xy: 3989, 294 + xy: 3309, 3773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arkyid-wreck0 rotate: false - xy: 3964, 1789 + xy: 347, 1 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck1 rotate: false - xy: 3235, 1435 + xy: 389, 131 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-wreck2 rotate: false - xy: 3365, 1435 + xy: 477, 1 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 atrax-wreck0 rotate: false - xy: 4007, 1591 + xy: 1171, 2069 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck1 rotate: false - xy: 1785, 379 + xy: 1171, 2003 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-wreck2 rotate: false - xy: 2875, 726 + xy: 1171, 1937 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 beta-wreck0 rotate: false - xy: 3089, 291 + xy: 805, 399 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck1 rotate: false - xy: 3139, 341 + xy: 805, 349 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-wreck2 rotate: false - xy: 3089, 241 + xy: 805, 299 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-additive-reconstructor-full rotate: false - xy: 1989, 343 + xy: 2733, 3093 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-air-factory-full rotate: false - xy: 2087, 288 + xy: 2831, 3093 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-arc-full rotate: false - xy: 3153, 89 + xy: 913, 991 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-basalt-full + rotate: false + xy: 913, 957 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-full rotate: false - xy: 2525, 1163 + xy: 453, 1709 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 +block-boulder-full + rotate: false + xy: 805, 249 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 block-char-full rotate: false - xy: 3187, 89 + xy: 913, 889 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 3221, 123 + xy: 913, 855 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-full rotate: false - xy: 3221, 89 + xy: 951, 1127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-full rotate: false - xy: 3255, 123 + xy: 947, 1093 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 3255, 123 + xy: 947, 1093 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-full rotate: false - xy: 2655, 1293 + xy: 401, 273 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-core-nucleus-full rotate: false - xy: 1573, 1323 + xy: 1889, 3281 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 block-core-shard-full rotate: false - xy: 1493, 449 + xy: 2929, 3093 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-craters-full rotate: false - xy: 3255, 89 + xy: 947, 1059 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-full rotate: false - xy: 2675, 234 + xy: 1407, 2047 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 2675, 168 + xy: 1473, 2113 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cyclone-full rotate: false - xy: 1493, 351 + xy: 1857, 2565 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +block-dacite-boulder-full + rotate: false + xy: 519, 211 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dacite-full + rotate: false + xy: 947, 1025 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dacite-wall-full + rotate: false + xy: 947, 991 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 block-dark-metal-full rotate: false - xy: 3289, 123 + xy: 947, 957 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 3289, 89 + xy: 947, 923 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dunerocks-full +block-dirt-full rotate: false - xy: 3323, 123 + xy: 947, 889 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dirt-wall-full + rotate: false + xy: 947, 855 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-dune-wall-full + rotate: false + xy: 3879, 3209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 3323, 89 + xy: 3913, 3209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-exponential-reconstructor-full rotate: false - xy: 1129, 1243 + xy: 323, 2489 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 block-fuse-full rotate: false - xy: 1447, 155 + xy: 575, 1481 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-grass-full rotate: false - xy: 3357, 123 + xy: 3947, 3209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ground-factory-full rotate: false - xy: 1447, 57 + xy: 575, 1383 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 3357, 89 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-holostone-full - rotate: false - xy: 3391, 123 + xy: 905, 117 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 3391, 89 + xy: 905, 83 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 4023, 294 + xy: 905, 49 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 4023, 260 + xy: 905, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-icerocks-full +block-ice-wall-full rotate: false - xy: 4023, 226 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ignarock-full - rotate: false - xy: 4023, 192 + xy: 913, 821 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-full rotate: false - xy: 2655, 1163 + xy: 549, 2585 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 2675, 102 + xy: 1407, 1981 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-laser-drill-full rotate: false - xy: 1545, 155 + xy: 575, 1285 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 4023, 158 + xy: 947, 821 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-full rotate: false - xy: 1545, 57 + xy: 575, 1187 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 4015, 124 + xy: 909, 787 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mass-driver-full rotate: false - xy: 2185, 422 + xy: 1889, 3183 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-mechanical-drill-full rotate: false - xy: 2745, 432 + xy: 1473, 2047 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 2785, 1293 + xy: 679, 2599 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 3999, 451 + xy: 943, 787 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 3973, 86 + xy: 939, 753 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-multiplicative-reconstructor-full rotate: false - xy: 1573, 1161 + xy: 3900, 3509 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 block-naval-factory-full rotate: false - xy: 2185, 324 + xy: 1887, 3085 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-oil-extractor-full rotate: false - xy: 2185, 226 + xy: 1987, 3163 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-ore-coal-full rotate: false - xy: 4007, 90 + xy: 905, 719 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-full rotate: false - xy: 3429, 141 + xy: 939, 719 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-full rotate: false - xy: 3425, 107 + xy: 905, 685 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-full rotate: false - xy: 3425, 73 + xy: 939, 685 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-full rotate: false - xy: 4049, 124 + xy: 905, 651 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-full rotate: false - xy: 4041, 90 + xy: 939, 651 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-parallax-full rotate: false - xy: 2743, 366 + xy: 1407, 1915 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-payload-conveyor-full rotate: false - xy: 2287, 658 + xy: 2085, 3163 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-conveyor-icon rotate: false - xy: 2287, 658 + xy: 2085, 3163 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-payload-router-full rotate: false - xy: 2287, 560 + xy: 1985, 3065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon rotate: false - xy: 2287, 560 + xy: 1985, 3065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 3085, 55 + xy: 905, 617 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-weaver-full rotate: false - xy: 2741, 300 + xy: 1473, 1981 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-plated-conduit-full rotate: false - xy: 3119, 55 + xy: 939, 617 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pneumatic-drill-full rotate: false - xy: 2741, 234 + xy: 1473, 1915 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 3153, 55 + xy: 905, 583 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 3187, 55 + xy: 939, 583 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-repair-point-full rotate: false - xy: 3221, 55 + xy: 905, 549 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ripple-full rotate: false - xy: 2385, 658 + xy: 2083, 3065 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -block-rock-full +block-salt-wall-full rotate: false - xy: 3139, 291 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-rocks-full - rotate: false - xy: 3255, 55 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-saltrocks-full - rotate: false - xy: 3289, 55 + xy: 939, 549 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-full rotate: false - xy: 2741, 168 + xy: 607, 1121 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-sand-boulder-full rotate: false - xy: 3323, 55 + xy: 905, 515 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 3357, 55 + xy: 939, 515 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sandrocks-full +block-sand-wall-full rotate: false - xy: 3391, 55 + xy: 905, 481 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-full rotate: false - xy: 2741, 102 + xy: 3381, 3093 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-scorch-full rotate: false - xy: 3107, 21 + xy: 939, 481 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 3141, 21 + xy: 905, 447 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 3141, 21 + xy: 905, 447 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-huge-full rotate: false - xy: 2385, 560 + xy: 1887, 2987 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-huge1 rotate: false - xy: 2385, 560 + xy: 1887, 2987 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-scrap-wall-large-full rotate: false - xy: 2777, 530 + xy: 3447, 3093 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 2843, 512 + xy: 3315, 3057 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-shale-boulder-full rotate: false - xy: 3209, 21 + xy: 905, 413 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 3243, 21 + xy: 939, 413 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shalerocks-full +block-shale-wall-full rotate: false - xy: 3277, 21 + xy: 905, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 3311, 21 + xy: 939, 379 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-full +block-snow-boulder-full rotate: false - xy: 3345, 21 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrock-full - rotate: false - xy: 3189, 341 + xy: 3579, 2961 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-full +block-snow-full rotate: false - xy: 3379, 21 + xy: 905, 345 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-wall-full + rotate: false + xy: 939, 345 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spectre-full rotate: false - xy: 2785, 1163 + xy: 809, 2599 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 3939, 120 + xy: 2195, 2493 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 3425, 39 + xy: 905, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-full rotate: false - xy: 2909, 512 + xy: 3381, 3027 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -block-sporerocks-full +block-spore-wall-full rotate: false - xy: 3413, 5 + xy: 939, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +block-steam-generator-full + rotate: false + xy: 3447, 3027 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 block-stone-full rotate: false - xy: 3447, 5 + xy: 905, 277 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-stone-wall-full + rotate: false + xy: 939, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-swarmer-full rotate: false - xy: 2811, 446 + xy: 3513, 2995 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-tendrils-full rotate: false - xy: 3531, 127 + xy: 905, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tetrative-reconstructor-full rotate: false - xy: 1, 121 + xy: 1, 2169 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 block-titanium-conveyor-full rotate: false - xy: 3565, 127 + xy: 939, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 3565, 127 + xy: 939, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-turbine-generator-full - rotate: false - xy: 2877, 446 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 block-water-extractor-full rotate: false - xy: 2943, 446 + xy: 1539, 2113 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 1591, 531 + xy: 1539, 2047 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 bryde-wreck0 rotate: false - xy: 2537, 1423 + xy: 291, 687 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck1 rotate: false - xy: 2679, 1423 + xy: 291, 545 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-wreck2 rotate: false - xy: 2821, 1423 + xy: 291, 403 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 core-foundation-team-crux rotate: false - xy: 3045, 1163 + xy: 1467, 2531 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-foundation-team-sharded rotate: false - xy: 3175, 1305 + xy: 1597, 2533 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus-team-crux rotate: false - xy: 1735, 1323 + xy: 1477, 2987 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-nucleus-team-sharded rotate: false - xy: 1735, 1161 + xy: 1469, 2825 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard-team-crux rotate: false - xy: 2283, 266 + xy: 1205, 2453 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 core-shard-team-sharded rotate: false - xy: 2381, 364 + xy: 1205, 2355 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-1-0 rotate: false - xy: 4041, 56 + xy: 4041, 2985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 3459, 107 + xy: 3973, 2951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 3459, 73 + xy: 4007, 2951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 3459, 39 + xy: 4041, 2951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 3493, 115 + xy: 4062, 3637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 3493, 81 + xy: 4062, 3603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 3493, 47 + xy: 4062, 3569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 3527, 93 + xy: 4062, 3535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-2-0 rotate: false - xy: 3163, 721 + xy: 1605, 1983 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 3229, 721 + xy: 1605, 1917 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 3295, 721 + xy: 1335, 1835 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 3015, 655 + xy: 3027, 3048 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 3081, 655 + xy: 3093, 3046 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 3147, 655 + xy: 3159, 3046 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 3213, 655 + xy: 3225, 3046 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 3279, 655 + xy: 673, 1073 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-3-0 rotate: false - xy: 2381, 266 + xy: 1303, 2433 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-1 rotate: false - xy: 2283, 168 + xy: 1401, 2433 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-2 rotate: false - xy: 2381, 168 + xy: 1499, 2433 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-3 rotate: false - xy: 2481, 788 + xy: 1597, 2435 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-4 rotate: false - xy: 2483, 690 + xy: 1695, 2435 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-5 rotate: false - xy: 2483, 592 + xy: 1303, 2335 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-6 rotate: false - xy: 2483, 494 + xy: 1401, 2335 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-3-7 rotate: false - xy: 2483, 396 + xy: 1499, 2335 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 cracks-4-0 rotate: false - xy: 3175, 1175 + xy: 1727, 2533 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-1 rotate: false - xy: 3305, 1305 + xy: 2231, 3312 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-2 rotate: false - xy: 3305, 1175 + xy: 2361, 3312 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-3 rotate: false - xy: 3435, 1305 + xy: 2491, 3312 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-4 rotate: false - xy: 3435, 1175 + xy: 2621, 3321 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-5 rotate: false - xy: 3565, 1305 + xy: 2751, 3321 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-6 rotate: false - xy: 3565, 1175 + xy: 2881, 3321 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-4-7 rotate: false - xy: 3695, 1305 + xy: 3011, 3321 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 cracks-5-0 rotate: false - xy: 1735, 837 + xy: 1541, 2663 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-1 rotate: false - xy: 1897, 1355 + xy: 1631, 2825 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-2 rotate: false - xy: 1897, 1193 + xy: 1703, 2663 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-3 rotate: false - xy: 1897, 1031 + xy: 2069, 3423 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-4 rotate: false - xy: 1897, 869 + xy: 2231, 3442 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-5 rotate: false - xy: 2059, 1394 + xy: 2393, 3442 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-6 rotate: false - xy: 2059, 1232 + xy: 2555, 3451 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-5-7 rotate: false - xy: 2221, 1394 + xy: 2717, 3451 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 cracks-6-0 rotate: false - xy: 2455, 1565 + xy: 2533, 3613 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-1 rotate: false - xy: 2649, 1565 + xy: 2727, 3613 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-2 rotate: false - xy: 2843, 1565 + xy: 2921, 3613 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-3 rotate: false - xy: 3037, 1565 + xy: 3115, 3613 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-4 rotate: false - xy: 3231, 1565 + xy: 1703, 3471 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-5 rotate: false - xy: 3425, 1565 + xy: 1695, 3277 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-6 rotate: false - xy: 3619, 1565 + xy: 1693, 3083 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-6-7 rotate: false - xy: 3813, 1565 + xy: 1013, 2661 size: 192, 192 orig: 192, 192 offset: 0, 0 index: -1 cracks-7-0 rotate: false - xy: 1387, 1501 + xy: 581, 3549 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-1 rotate: false - xy: 871, 727 + xy: 807, 3549 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-2 rotate: false - xy: 1129, 1017 + xy: 581, 3323 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-3 rotate: false - xy: 613, 469 + xy: 1033, 3549 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-4 rotate: false - xy: 323, 313 + xy: 581, 3097 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-5 rotate: false - xy: 291, 87 + xy: 807, 3323 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-6 rotate: false - xy: 549, 243 + xy: 1259, 3549 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-7-7 rotate: false - xy: 517, 17 + xy: 581, 2871 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 cracks-8-0 rotate: false - xy: 613, 1469 + xy: 1, 171 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-1 rotate: false - xy: 613, 1211 + xy: 3384, 3773 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-2 rotate: false - xy: 871, 1469 + xy: 3656, 3839 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-3 rotate: false - xy: 613, 953 + xy: 3642, 3581 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-4 rotate: false - xy: 871, 1211 + xy: 323, 3489 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-5 rotate: false - xy: 1129, 1469 + xy: 323, 3231 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-6 rotate: false - xy: 613, 695 + xy: 323, 2973 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-8-7 rotate: false - xy: 871, 953 + xy: 323, 2715 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 cracks-9-0 rotate: false - xy: 1644, 1759 + xy: 1644, 3807 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-1 rotate: false - xy: 1934, 1759 + xy: 1, 1879 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-2 rotate: false - xy: 2224, 1759 + xy: 1934, 3807 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-3 rotate: false - xy: 2514, 1759 + xy: 1, 1589 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-4 rotate: false - xy: 2804, 1759 + xy: 2224, 3807 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-5 rotate: false - xy: 3094, 1759 + xy: 1, 1299 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-6 rotate: false - xy: 3384, 1759 + xy: 2514, 3807 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 cracks-9-7 rotate: false - xy: 3674, 1759 + xy: 1, 1009 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 crawler-wreck0 rotate: false - xy: 3239, 291 + xy: 771, 1453 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck1 rotate: false - xy: 3289, 341 + xy: 771, 1403 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-wreck2 rotate: false - xy: 3239, 241 + xy: 771, 1353 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cyclone rotate: false - xy: 2479, 298 + xy: 1597, 2337 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 dagger-wreck0 rotate: false - xy: 3339, 291 + xy: 821, 1405 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck1 rotate: false - xy: 3389, 341 + xy: 821, 1355 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-wreck2 rotate: false - xy: 3339, 241 + xy: 821, 1305 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 duo rotate: false - xy: 3595, 59 + xy: 2207, 2231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 eclipse-wreck0 rotate: false - xy: 1, 1055 + xy: 1, 3103 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-wreck1 rotate: false - xy: 678, 1727 + xy: 678, 3775 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-wreck2 rotate: false - xy: 1, 733 + xy: 1, 2781 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 flare-wreck0 rotate: false - xy: 3489, 291 + xy: 2179, 2685 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck1 rotate: false - xy: 3539, 353 + xy: 2153, 2635 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flare-wreck2 rotate: false - xy: 3539, 303 + xy: 2153, 2585 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress-wreck0 rotate: false - xy: 1325, 547 + xy: 3889, 3345 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck1 rotate: false - xy: 1427, 547 + xy: 3773, 3232 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-wreck2 rotate: false - xy: 1391, 465 + xy: 3991, 3427 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fuse rotate: false - xy: 3407, 1077 + xy: 681, 2289 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 gamma-wreck0 rotate: false - xy: 2807, 112 + xy: 531, 1015 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck1 rotate: false - xy: 2865, 322 + xy: 531, 957 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-wreck2 rotate: false - xy: 2865, 264 + xy: 531, 899 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 hail rotate: false - xy: 3663, 93 + xy: 2207, 2197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 horizon-wreck0 rotate: false - xy: 3791, 807 + xy: 1423, 2179 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck1 rotate: false - xy: 3865, 807 + xy: 1497, 2179 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-wreck2 rotate: false - xy: 3939, 807 + xy: 1261, 2097 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 2981, 6 + xy: 2187, 2451 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 3731, 59 + xy: 2275, 2265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 1657, 571 + xy: 259, 403 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-blast-compound-tiny rotate: false - xy: 1857, 361 + xy: 2051, 3425 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-blast-compound-xlarge rotate: false - xy: 3639, 303 + xy: 2203, 2535 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 3023, 5 + xy: 2187, 2409 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-medium rotate: false - xy: 3527, 25 + xy: 2275, 2197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 3463, 149 + xy: 4062, 3509 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-coal-tiny rotate: false - xy: 2843, 578 + xy: 2213, 3405 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 3689, 353 + xy: 2229, 2735 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 3489, 149 + xy: 2229, 2451 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-medium rotate: false - xy: 3595, 25 + xy: 2309, 2265 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 1657, 545 + xy: 569, 197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 499, 69 + xy: 673, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 3689, 303 + xy: 2229, 2685 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 3065, 5 + xy: 2187, 2367 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-medium rotate: false - xy: 3663, 25 + xy: 2309, 2197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 4071, 717 + xy: 1644, 3781 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 3871, 117 + xy: 717, 131 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 3739, 353 + xy: 2253, 2635 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 289, 45 + xy: 2229, 2409 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 3731, 25 + xy: 1005, 1275 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 4071, 691 + xy: 1207, 2829 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 499, 51 + xy: 1233, 2837 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 3739, 303 + xy: 2253, 2585 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 331, 45 + xy: 2229, 2367 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 3803, 99 + xy: 1005, 1207 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 4071, 665 + xy: 323, 2463 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 1643, 226 + xy: 2213, 3387 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 3789, 353 + xy: 2253, 2535 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 373, 45 + xy: 975, 1553 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 3765, 63 + xy: 985, 1139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 4071, 639 + xy: 3527, 3585 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 1661, 226 + xy: 691, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 3789, 303 + xy: 1401, 1799 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 415, 45 + xy: 1017, 1553 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 3799, 63 + xy: 985, 1105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 4071, 613 + xy: 3271, 3423 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 499, 33 + xy: 2213, 3369 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 3439, 225 + xy: 1451, 1799 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 457, 45 + xy: 1059, 1553 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 2027, 744 + xy: 981, 1071 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 1657, 519 + xy: 877, 2459 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 1679, 226 + xy: 2213, 3351 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 3489, 241 + xy: 1501, 1799 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 287, 3 + xy: 1101, 1553 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 2611, 70 + xy: 1015, 1071 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 291, 385 + xy: 2183, 3235 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 1697, 230 + xy: 2213, 3333 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 3539, 253 + xy: 1551, 1799 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 329, 3 + xy: 971, 1511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 2089, 254 + xy: 1015, 1037 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 517, 287 + xy: 1865, 2665 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 2351, 926 + xy: 2213, 3315 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 3589, 253 + xy: 2107, 2191 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 371, 3 + xy: 971, 1469 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 2055, 220 + xy: 1015, 1003 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 1644, 1733 + xy: 575, 1161 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 1107, 321 + xy: 899, 191 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 3639, 253 + xy: 2157, 2192 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 413, 3 + xy: 1013, 1511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 1825, 253 + xy: 981, 901 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 1387, 1475 + xy: 2129, 2693 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 549, 471 + xy: 583, 2485 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 3689, 253 + xy: 877, 1561 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 455, 3 + xy: 971, 1427 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 1893, 253 + xy: 981, 867 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1831, 1491 + xy: 1639, 2991 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 4033, 467 + xy: 601, 2485 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 3739, 253 + xy: 871, 1511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 1929, 259 + xy: 1013, 1469 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 1851, 185 + xy: 981, 833 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 871, 701 + xy: 394, 3749 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 1763, 338 + xy: 619, 2485 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-thorium-xlarge rotate: false - xy: 3789, 253 + xy: 871, 1461 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-titanium-large rotate: false - xy: 1971, 251 + xy: 1055, 1511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 1851, 151 + xy: 1015, 833 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 1097, 927 + xy: 39, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 2027, 851 + xy: 637, 2485 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 3839, 353 + xy: 871, 1411 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer rotate: false - xy: 3543, 667 + xy: 673, 743 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 liquid-cryofluid-large rotate: false - xy: 2013, 251 + xy: 971, 1385 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-medium rotate: false - xy: 1851, 83 + xy: 1089, 1393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 1001, 247 + xy: 1143, 1569 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 2061, 760 + xy: 1897, 3647 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 3889, 311 + xy: 871, 1243 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 3539, 161 + xy: 1013, 1427 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 1885, 83 + xy: 1123, 1401 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 2189, 882 + xy: 1392, 1705 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 1825, 289 + xy: 2127, 3586 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 3939, 362 + xy: 821, 1205 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 3581, 161 + xy: 1055, 1469 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 1919, 117 + xy: 939, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 3964, 1763 + xy: 651, 2531 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 2157, 270 + xy: 1337, 2663 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 3939, 312 + xy: 817, 1155 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 3623, 161 + xy: 1097, 1511 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 1953, 217 + xy: 973, 141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 1529, 603 + xy: 1670, 3781 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 2259, 208 + xy: 1987, 3263 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 3839, 235 + xy: 871, 1193 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mace-wreck0 rotate: false - xy: 2811, 380 + xy: 607, 593 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck1 rotate: false - xy: 2877, 380 + xy: 673, 545 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-wreck2 rotate: false - xy: 2943, 380 + xy: 739, 545 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver rotate: false - xy: 3003, 967 + xy: 681, 1799 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mega-wreck0 rotate: false - xy: 1887, 535 + xy: 3991, 3223 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck1 rotate: false - xy: 1785, 445 + xy: 907, 2497 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-wreck2 rotate: false - xy: 1887, 433 + xy: 1009, 2559 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 meltdown rotate: false - xy: 1097, 661 + xy: 2603, 3182 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck0 rotate: false - xy: 1131, 401 + xy: 3123, 3189 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck1 rotate: false - xy: 1261, 401 + xy: 3253, 3189 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-wreck2 rotate: false - xy: 1131, 271 + xy: 3383, 3289 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono-wreck0 rotate: false - xy: 3139, 191 + xy: 863, 943 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck1 rotate: false - xy: 3189, 191 + xy: 863, 893 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-wreck2 rotate: false - xy: 3239, 191 + xy: 863, 843 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-wreck0 rotate: false - xy: 2923, 264 + xy: 531, 725 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck1 rotate: false - xy: 2865, 148 + xy: 531, 667 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-wreck2 rotate: false - xy: 2923, 206 + xy: 531, 609 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 parallax rotate: false - xy: 3411, 589 + xy: 673, 347 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 poly-wreck0 rotate: false - xy: 2923, 90 + xy: 531, 435 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck1 rotate: false - xy: 2807, 54 + xy: 531, 377 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-wreck2 rotate: false - xy: 2865, 32 + xy: 531, 319 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar-wreck0 rotate: false - xy: 1065, 481 + xy: 3579, 3011 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck1 rotate: false - xy: 229, 71 + xy: 607, 15 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-wreck2 rotate: false - xy: 2287, 764 + xy: 667, 15 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 quasar-wreck0 rotate: false - xy: 3389, 799 + xy: 1349, 2253 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck1 rotate: false - xy: 3471, 799 + xy: 1431, 2253 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-wreck2 rotate: false - xy: 3553, 799 + xy: 1513, 2253 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 +reign-wreck0 + rotate: false + xy: 581, 2729 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 +reign-wreck1 + rotate: false + xy: 1477, 3149 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 +reign-wreck2 + rotate: false + xy: 797, 2729 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 repair-point rotate: false - xy: 2191, 192 + xy: 1007, 391 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple rotate: false - xy: 3983, 979 + xy: 877, 1709 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck0 rotate: false - xy: 3559, 881 + xy: 975, 2183 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck1 rotate: false - xy: 3657, 881 + xy: 975, 2085 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-wreck2 rotate: false - xy: 3755, 881 + xy: 1073, 2183 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 salvo rotate: false - xy: 3009, 391 + xy: 739, 17 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter rotate: false - xy: 3141, 391 + xy: 1539, 1849 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +scepter-wreck0 + rotate: false + xy: 3914, 3813 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 +scepter-wreck1 + rotate: false + xy: 3900, 3671 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 +scepter-wreck2 + rotate: false + xy: 1207, 2681 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 scorch rotate: false - xy: 2225, 158 + xy: 1007, 289 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 segment rotate: false - xy: 3339, 457 + xy: 1875, 2823 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spectre rotate: false - xy: 1187, 141 + xy: 3657, 3321 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spiroct-wreck0 rotate: false - xy: 2875, 792 + xy: 3123, 3112 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck1 rotate: false - xy: 2581, 400 + xy: 3219, 3112 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-wreck2 rotate: false - xy: 2679, 498 + xy: 1171, 2278 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 splash-0 rotate: false - xy: 2259, 100 + xy: 1007, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-1 rotate: false - xy: 2293, 134 + xy: 1041, 153 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-10 rotate: false - xy: 2327, 66 + xy: 1290, 1841 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-11 rotate: false - xy: 2361, 100 + xy: 1290, 1807 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-2 rotate: false - xy: 2259, 66 + xy: 1041, 119 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-3 rotate: false - xy: 2293, 100 + xy: 1041, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-4 rotate: false - xy: 2327, 134 + xy: 1041, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-5 rotate: false - xy: 2259, 32 + xy: 1041, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-6 rotate: false - xy: 2293, 66 + xy: 1256, 1837 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-7 rotate: false - xy: 2327, 100 + xy: 1256, 1803 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-8 rotate: false - xy: 2361, 134 + xy: 1256, 1769 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 splash-9 rotate: false - xy: 2293, 32 + xy: 1256, 1735 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 swarmer rotate: false - xy: 4031, 543 + xy: 1989, 2423 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +toxopid-wreck0 + rotate: false + xy: 291, 2267 + size: 160, 190 + orig: 160, 190 + offset: 0, 0 + index: -1 +toxopid-wreck1 + rotate: false + xy: 291, 2075 + size: 160, 190 + orig: 160, 190 + offset: 0, 0 + index: -1 +toxopid-wreck2 + rotate: false + xy: 291, 1883 + size: 160, 190 + orig: 160, 190 + offset: 0, 0 + index: -1 unit-alpha-full rotate: false - xy: 1979, 293 + xy: 855, 235 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-antumbra-full rotate: false - xy: 1831, 1517 + xy: 1477, 3291 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 unit-arkyid-full rotate: false - xy: 1317, 141 + xy: 3643, 3191 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-atrax-full rotate: false - xy: 2971, 803 + xy: 1171, 1871 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 unit-beta-full rotate: false - xy: 2029, 293 + xy: 849, 185 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-full rotate: false - xy: 2963, 1423 + xy: 259, 261 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 unit-crawler-full rotate: false - xy: 3889, 211 + xy: 921, 1511 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 3939, 212 + xy: 921, 1461 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-eclipse-full rotate: false - xy: 1000, 1727 + xy: 1000, 3775 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 unit-flare-full rotate: false - xy: 3839, 185 + xy: 921, 1411 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-fortress-full rotate: false - xy: 1391, 281 + xy: 1009, 2477 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 unit-gamma-full rotate: false - xy: 2981, 322 + xy: 805, 977 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-horizon-full rotate: false - xy: 1689, 282 + xy: 2147, 2893 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 unit-mace-full rotate: false - xy: 3735, 469 + xy: 2087, 2555 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-mega-full rotate: false - xy: 1989, 637 + xy: 907, 2395 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 unit-minke-full rotate: false - xy: 1317, 11 + xy: 3513, 3061 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 unit-mono-full rotate: false - xy: 3789, 167 + xy: 921, 1361 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-nova-full rotate: false - xy: 2981, 264 + xy: 805, 919 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-poly-full rotate: false - xy: 2981, 206 + xy: 805, 861 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 unit-pulsar-full rotate: false - xy: 1591, 266 + xy: 1989, 2241 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 unit-quasar-full rotate: false - xy: 3635, 799 + xy: 1267, 2171 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 +unit-reign-full + rotate: false + xy: 1703, 3665 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 unit-risso-full rotate: false - xy: 2679, 575 + xy: 975, 1595 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +unit-scepter-full + rotate: false + xy: 1897, 3443 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 unit-spiroct-full rotate: false - xy: 2777, 596 + xy: 1171, 2201 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 +unit-toxopid-full + rotate: false + xy: 291, 1691 + size: 160, 190 + orig: 160, 190 + offset: 0, 0 + index: -1 unit-zenith-full rotate: false - xy: 1, 7 + xy: 3643, 3077 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 wave rotate: false - xy: 3867, 411 + xy: 2121, 2423 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 zenith-wreck0 rotate: false - xy: 1341, 629 + xy: 3757, 2963 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck1 rotate: false - xy: 1455, 629 + xy: 679, 2485 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-wreck2 rotate: false - xy: 1569, 597 + xy: 793, 2485 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 3697, 59 + xy: 2241, 2197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 3481, 5 + xy: 2275, 2231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 3561, 25 + xy: 2288, 2299 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 3629, 25 + xy: 2309, 2231 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 3697, 25 + xy: 1005, 1309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 3769, 97 + xy: 1005, 1241 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 3837, 101 + xy: 1005, 1173 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 3765, 29 + xy: 1019, 1139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 3799, 29 + xy: 1019, 1105 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 2577, 70 + xy: 981, 1037 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 2055, 254 + xy: 981, 1003 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 2123, 254 + xy: 981, 969 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 2123, 220 + xy: 1015, 969 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 1859, 253 + xy: 1015, 935 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 1851, 219 + xy: 1015, 901 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 1885, 219 + xy: 1015, 867 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 1885, 151 + xy: 1055, 1359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 1851, 49 + xy: 1131, 1435 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 1919, 151 + xy: 939, 141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 1919, 15 + xy: 939, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blank rotate: false - xy: 4094, 2046 + xy: 1111, 2477 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 circle rotate: false - xy: 2049, 1556 + xy: 2127, 3604 size: 201, 201 orig: 201, 201 offset: 0, 0 index: -1 shape-3 rotate: false - xy: 3933, 412 + xy: 2121, 2292 size: 63, 63 orig: 63, 63 offset: 0, 0 index: -1 alpha rotate: false - xy: 2981, 48 + xy: 1837, 3033 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-cell rotate: false - xy: 1447, 7 + xy: 805, 757 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 antumbra rotate: false - xy: 969, 1 + xy: 1259, 3307 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 antumbra-cell rotate: false - xy: 1355, 1227 + xy: 1033, 2855 size: 216, 240 orig: 216, 240 offset: 0, 0 index: -1 arkyid rotate: false - xy: 3964, 1919 + xy: 259, 131 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-cell rotate: false - xy: 3105, 1435 + xy: 217, 1 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 arkyid-foot rotate: false - xy: 4013, 809 + xy: 673, 1139 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-joint-base rotate: false - xy: 1785, 307 + xy: 745, 1139 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 arkyid-leg rotate: false - xy: 3999, 485 + xy: 517, 1131 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 arkyid-leg-base rotate: false - xy: 1001, 273 + xy: 3787, 3515 size: 104, 64 orig: 104, 64 offset: 0, 0 index: -1 atrax rotate: false - xy: 4007, 1723 + xy: 1111, 2518 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-base rotate: false - xy: 2679, 432 + xy: 939, 2663 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 atrax-cell rotate: false - xy: 4007, 1657 + xy: 1171, 2135 size: 88, 64 orig: 88, 64 offset: 0, 0 index: -1 atrax-foot rotate: false - xy: 1597, 15 + xy: 2153, 2493 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 atrax-joint rotate: false - xy: 432, 1699 + xy: 651, 2557 size: 26, 26 orig: 26, 26 offset: 0, 0 index: -1 atrax-leg rotate: false - xy: 356, 1699 + xy: 356, 3747 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 atrax-leg-base rotate: false - xy: 394, 1699 + xy: 1, 1 size: 36, 26 orig: 36, 26 offset: 0, 0 index: -1 beta rotate: false - xy: 3089, 341 + xy: 805, 499 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 beta-cell rotate: false - xy: 3039, 233 + xy: 805, 449 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 bryde rotate: false - xy: 2383, 1288 + xy: 291, 971 size: 140, 140 orig: 140, 140 offset: 0, 0 index: -1 bryde-cell rotate: false - xy: 2383, 1146 + xy: 291, 829 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: 2915, 1163 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array-cell - rotate: false - xy: 2383, 1016 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -chaos-array-leg - rotate: false - xy: 1001, 339 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 crawler rotate: false - xy: 3139, 241 + xy: 2129, 2769 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 3189, 291 + xy: 2129, 2719 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-cell rotate: false - xy: 3239, 341 + xy: 771, 1553 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 3189, 241 + xy: 771, 1503 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 3289, 291 + xy: 821, 1555 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 3339, 341 + xy: 821, 1505 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 3289, 241 + xy: 821, 1455 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 eclipse rotate: false - xy: 1, 1377 + xy: 1, 3425 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 eclipse-cell rotate: false - xy: 356, 1727 + xy: 356, 3775 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 -eradicator - rotate: false - xy: 2221, 944 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 -eradicator-base - rotate: false - xy: 1573, 711 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 -eradicator-cell - rotate: false - xy: 1727, 711 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 -eradicator-leg - rotate: false - xy: 2383, 1430 - size: 152, 124 - orig: 152, 124 - offset: 0, 0 - index: -1 flare rotate: false - xy: 3489, 341 + xy: 2179, 2735 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress rotate: false - xy: 1785, 629 + xy: 549, 2503 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 3955, 741 + xy: 607, 857 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-cell rotate: false - xy: 1785, 547 + xy: 3889, 3427 size: 100, 80 orig: 100, 80 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 4015, 1447 + xy: 1793, 2827 size: 80, 60 orig: 80, 60 offset: 0, 0 index: -1 gamma rotate: false - xy: 229, 13 + xy: 2049, 2233 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 gamma-cell rotate: false - xy: 2807, 170 + xy: 531, 1073 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 horizon rotate: false - xy: 2505, 893 + xy: 443, 1113 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 horizon-cell rotate: false - xy: 3717, 807 + xy: 1349, 2179 size: 72, 72 orig: 72, 72 offset: 0, 0 index: -1 mace rotate: false - xy: 3807, 675 + xy: 739, 677 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-base rotate: false - xy: 3873, 675 + xy: 607, 659 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-cell rotate: false - xy: 3939, 675 + xy: 673, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mace-leg rotate: false - xy: 4005, 675 + xy: 739, 611 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mega rotate: false - xy: 1391, 363 + xy: 3991, 3325 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 mega-cell rotate: false - xy: 1887, 637 + xy: 3889, 3243 size: 100, 100 orig: 100, 100 offset: 0, 0 index: -1 minke rotate: false - xy: 1897, 739 + xy: 2863, 3191 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 minke-cell rotate: false - xy: 1195, 531 + xy: 2993, 3191 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 mono rotate: false - xy: 3039, 183 + xy: 863, 1043 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mono-cell rotate: false - xy: 3089, 191 + xy: 863, 993 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova rotate: false - xy: 2923, 322 + xy: 531, 841 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-base rotate: false - xy: 3389, 191 + xy: 855, 693 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 nova-cell rotate: false - xy: 2865, 206 + xy: 531, 783 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 nova-leg rotate: false - xy: 3035, 133 + xy: 855, 643 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 poly rotate: false - xy: 2923, 148 + xy: 531, 551 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 poly-cell rotate: false - xy: 2865, 90 + xy: 531, 493 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 2923, 32 + xy: 531, 261 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 pulsar rotate: false - xy: 1529, 547 + xy: 1793, 2483 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-base rotate: false - xy: 3035, 83 + xy: 855, 593 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulsar-cell rotate: false - xy: 549, 489 + xy: 939, 2613 size: 58, 48 orig: 58, 48 offset: 0, 0 index: -1 pulsar-leg rotate: false - xy: 3107, 523 + xy: 651, 131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 quasar rotate: false - xy: 3061, 787 + xy: 1983, 2885 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-base rotate: false - xy: 3143, 787 + xy: 2065, 2885 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-cell rotate: false - xy: 3225, 787 + xy: 1171, 1567 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 quasar-leg rotate: false - xy: 3307, 787 + xy: 1267, 2253 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 +reign + rotate: false + xy: 1, 29 + size: 214, 140 + orig: 214, 140 + offset: 0, 0 + index: -1 +reign-base + rotate: false + xy: 291, 1565 + size: 152, 124 + orig: 152, 124 + offset: 0, 0 + index: -1 +reign-cell + rotate: false + xy: 291, 1439 + size: 152, 124 + orig: 152, 124 + offset: 0, 0 + index: -1 +reign-leg + rotate: false + xy: 291, 1313 + size: 152, 124 + orig: 152, 124 + offset: 0, 0 + index: -1 risso rotate: false - xy: 3363, 881 + xy: 975, 2281 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 risso-cell rotate: false - xy: 3461, 881 + xy: 1073, 2281 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +scepter + rotate: false + xy: 3914, 3955 + size: 170, 140 + orig: 170, 140 + offset: 0, 0 + index: -1 +scepter-base + rotate: false + xy: 3383, 3159 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +scepter-cell + rotate: false + xy: 3527, 3451 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +scepter-leg + rotate: false + xy: 3657, 3451 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 spiroct rotate: false - xy: 1689, 433 + xy: 1111, 2584 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-cell rotate: false - xy: 1689, 356 + xy: 3027, 3114 size: 94, 75 orig: 94, 75 offset: 0, 0 index: -1 spiroct-foot rotate: false - xy: 4049, 931 + xy: 927, 1563 size: 46, 46 orig: 46, 46 offset: 0, 0 index: -1 spiroct-joint rotate: false - xy: 2259, 134 + xy: 1007, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spiroct-leg rotate: false - xy: 3789, 217 + xy: 771, 1217 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 spiroct-leg-base rotate: false - xy: 3031, 47 + xy: 1837, 2997 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 +toxopid + rotate: false + xy: 3365, 3419 + size: 160, 190 + orig: 160, 190 + offset: 0, 0 + index: -1 +toxopid-cannon + rotate: false + xy: 1919, 3585 + size: 206, 220 + orig: 206, 220 + offset: 0, 0 + index: -1 +toxopid-cell + rotate: false + xy: 291, 1187 + size: 152, 124 + orig: 152, 124 + offset: 0, 0 + index: -1 +toxopid-foot + rotate: false + xy: 1891, 2895 + size: 90, 90 + orig: 90, 90 + offset: 0, 0 + index: -1 +toxopid-joint-base + rotate: false + xy: 1335, 1901 + size: 70, 70 + orig: 70, 70 + offset: 0, 0 + index: -1 +toxopid-leg + rotate: false + xy: 291, 1113 + size: 150, 72 + orig: 150, 72 + offset: 0, 0 + index: -1 +toxopid-leg-base + rotate: false + xy: 3384, 4031 + size: 270, 64 + orig: 270, 64 + offset: 0, 0 + index: -1 vanguard rotate: false - xy: 3889, 161 + xy: 921, 1311 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vanguard-cell rotate: false - xy: 3939, 162 + xy: 921, 1261 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery rotate: false - xy: 3039, 283 + xy: 805, 549 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 artillery-mount rotate: false - xy: 1857, 287 + xy: 1571, 2181 size: 70, 70 orig: 70, 70 offset: 0, 0 index: -1 beam-weapon rotate: false - xy: 4015, 1509 + xy: 1171, 1649 size: 80, 80 orig: 80, 80 offset: 0, 0 index: -1 -chaos - rotate: false - xy: 2807, 228 - size: 56, 136 - orig: 56, 136 - offset: 0, 0 - index: -1 -eradication - rotate: false - xy: 1591, 316 - size: 96, 192 - orig: 96, 192 - offset: 0, 0 - index: -1 eruption rotate: false - xy: 3439, 333 + xy: 2139, 2827 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun rotate: false - xy: 3389, 241 + xy: 2189, 2843 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower rotate: false - xy: 3439, 275 + xy: 2189, 2785 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-shotgun-weapon rotate: false - xy: 3589, 353 + xy: 2153, 2535 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon rotate: false - xy: 3589, 303 + xy: 2203, 2635 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 heal-weapon-mount rotate: false - xy: 3639, 353 + xy: 2203, 2585 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 large-artillery rotate: false - xy: 3839, 285 + xy: 871, 1343 size: 48, 66 orig: 48, 66 offset: 0, 0 index: -1 large-bullet-mount rotate: false - xy: 1643, 127 + xy: 1335, 2072 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 large-laser-mount rotate: false - xy: 2577, 202 + xy: 779, 2193 size: 96, 192 orig: 96, 192 offset: 0, 0 index: -1 large-purple-mount rotate: false - xy: 1643, 28 + xy: 1335, 1973 size: 70, 97 orig: 70, 97 offset: 0, 0 index: -1 large-weapon rotate: false - xy: 3889, 361 + xy: 871, 1293 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles rotate: false - xy: 3889, 261 + xy: 867, 1143 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-mount rotate: false - xy: 3939, 262 + xy: 863, 1093 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-purple-weapon rotate: false - xy: 3289, 191 + xy: 859, 793 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mount-weapon rotate: false - xy: 3339, 191 + xy: 855, 743 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +reign-weapon + rotate: false + xy: 1171, 1731 + size: 83, 138 + orig: 83, 138 + offset: 0, 0 + index: -1 +scepter-weapon + rotate: false + xy: 805, 1035 + size: 56, 102 + orig: 56, 102 + offset: 0, 0 + index: -1 small-basic-weapon rotate: false - xy: 3539, 203 + xy: 855, 543 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-mount-weapon rotate: false - xy: 3589, 203 + xy: 855, 493 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 small-weapon rotate: false - xy: 3639, 203 + xy: 855, 443 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spiroct-weapon rotate: false - xy: 1929, 301 + xy: 855, 285 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 weapon rotate: false - xy: 3839, 135 + xy: 921, 1211 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith-missiles rotate: false - xy: 3889, 111 + xy: 921, 1161 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 zenith rotate: false - xy: 1227, 677 + xy: 3643, 2963 size: 112, 112 orig: 112, 112 offset: 0, 0 index: -1 zenith-cell rotate: false - xy: 115, 7 + xy: 3757, 3077 size: 112, 112 orig: 112, 112 offset: 0, 0 @@ -6764,863 +6939,933 @@ size: 4096,256 format: rgba8888 filter: nearest,nearest repeat: none -char1 - rotate: false - xy: 2311, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -char2 - rotate: false - xy: 101, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -char3 - rotate: false - xy: 2345, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cliff - rotate: false - xy: 135, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -cliffs1 - rotate: false - xy: 2379, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -coal1 - rotate: false - xy: 169, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -coal2 - rotate: false - xy: 2413, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -coal3 - rotate: false - xy: 203, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -copper1 - rotate: false - xy: 2447, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -copper2 - rotate: false - xy: 237, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -copper3 - rotate: false - xy: 2481, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters1 - rotate: false - xy: 271, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters2 - rotate: false - xy: 2515, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters3 - rotate: false - xy: 305, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters4 - rotate: false - xy: 2549, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters5 - rotate: false - xy: 339, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -craters6 - rotate: false - xy: 2583, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-metal-large - rotate: false - xy: 1569, 83 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -dark-metal1 - rotate: false - xy: 373, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-metal2 - rotate: false - xy: 2617, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-1 - rotate: false - xy: 407, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-1-edge +basalt-edge rotate: false xy: 1, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dark-panel-2 +basalt1 rotate: false - xy: 2651, 213 + xy: 51, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -dark-panel-2-edge +basalt2 + rotate: false + xy: 1717, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +basalt3 + rotate: false + xy: 2063, 163 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +char1 + rotate: false + xy: 2113, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +char2 + rotate: false + xy: 85, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +char3 + rotate: false + xy: 1751, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cliff + rotate: false + xy: 2063, 129 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +cliffs1 + rotate: false + xy: 2147, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +coal1 + rotate: false + xy: 119, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +coal2 + rotate: false + xy: 1785, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +coal3 + rotate: false + xy: 2181, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper1 + rotate: false + xy: 153, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper2 + rotate: false + xy: 1819, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +copper3 + rotate: false + xy: 2215, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters1 + rotate: false + xy: 187, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters2 + rotate: false + xy: 1853, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters3 + rotate: false + xy: 2249, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters4 + rotate: false + xy: 221, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters5 + rotate: false + xy: 1887, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +craters6 + rotate: false + xy: 2283, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite-edge rotate: false xy: 1, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -dark-panel-3 - rotate: false - xy: 441, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-3-edge - rotate: false - xy: 99, 149 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -dark-panel-4 - rotate: false - xy: 2685, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-4-edge - rotate: false - xy: 99, 51 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -dark-panel-5 - rotate: false - xy: 475, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-5-edge - rotate: false - xy: 197, 149 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -dark-panel-6 - rotate: false - xy: 2719, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -dark-panel-6-edge - rotate: false - xy: 197, 51 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -darksand-edge - rotate: false - xy: 295, 149 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -darksand-tainted-water - rotate: false - xy: 2787, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand-tainted-water-edge - rotate: false - xy: 295, 51 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -darksand-tainted-water1 - rotate: false - xy: 577, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand-tainted-water2 - rotate: false - xy: 2821, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand-tainted-water3 - rotate: false - xy: 611, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand-water - rotate: false - xy: 2855, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand-water-edge - rotate: false - xy: 393, 149 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -darksand-water1 - rotate: false - xy: 645, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand-water2 - rotate: false - xy: 2889, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand-water3 - rotate: false - xy: 679, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand1 - rotate: false - xy: 509, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand2 - rotate: false - xy: 2753, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -darksand3 - rotate: false - xy: 543, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -deepwater - rotate: false - xy: 2923, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -deepwater-edge - rotate: false - xy: 393, 51 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -dunerocks-large +dacite-wall-large rotate: false xy: 1667, 181 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -dunerocks1 +dacite-wall1 rotate: false - xy: 713, 17 + xy: 289, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -dunerocks2 +dacite-wall2 rotate: false - xy: 2957, 213 + xy: 1955, 81 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -edge +dacite1 rotate: false - xy: 747, 17 + xy: 255, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -edge-stencil +dacite2 + rotate: false + xy: 1921, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite3 + rotate: false + xy: 2317, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-metal-large + rotate: false + xy: 1667, 115 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +dark-metal1 + rotate: false + xy: 2351, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-metal2 + rotate: false + xy: 323, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-1 + rotate: false + xy: 1989, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-1-edge + rotate: false + xy: 99, 149 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +dark-panel-2 + rotate: false + xy: 2385, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-2-edge + rotate: false + xy: 99, 51 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +dark-panel-3 + rotate: false + xy: 357, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-3-edge + rotate: false + xy: 197, 149 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +dark-panel-4 + rotate: false + xy: 2023, 81 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-4-edge + rotate: false + xy: 197, 51 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +dark-panel-5 + rotate: false + xy: 2419, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-5-edge + rotate: false + xy: 295, 149 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +dark-panel-6 + rotate: false + xy: 391, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dark-panel-6-edge + rotate: false + xy: 295, 51 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +darksand-edge + rotate: false + xy: 393, 149 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +darksand-tainted-water + rotate: false + xy: 459, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand-tainted-water-edge + rotate: false + xy: 393, 51 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +darksand-tainted-water1 + rotate: false + xy: 2521, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand-tainted-water2 + rotate: false + xy: 493, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand-tainted-water3 + rotate: false + xy: 2555, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand-water + rotate: false + xy: 527, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand-water-edge rotate: false xy: 491, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -edgier +darksand-water1 rotate: false - xy: 2991, 213 + xy: 2589, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -grass-edge +darksand-water2 + rotate: false + xy: 561, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand-water3 + rotate: false + xy: 2623, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand1 + rotate: false + xy: 2453, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand2 + rotate: false + xy: 425, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +darksand3 + rotate: false + xy: 2487, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +deepwater + rotate: false + xy: 595, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +deepwater-edge rotate: false xy: 491, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -grass1 - rotate: false - xy: 781, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -grass2 - rotate: false - xy: 3025, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -grass3 - rotate: false - xy: 815, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone-edge +dirt-edge rotate: false xy: 589, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -holostone1 - rotate: false - xy: 3059, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone2 - rotate: false - xy: 849, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone3 - rotate: false - xy: 3093, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -hotrock1 - rotate: false - xy: 883, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -hotrock2 - rotate: false - xy: 3127, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -hotrock3 - rotate: false - xy: 917, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice-edge - rotate: false - xy: 589, 51 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -ice-snow-edge - rotate: false - xy: 687, 149 - size: 96, 96 - orig: 96, 96 - offset: 0, 0 - index: -1 -ice-snow1 - rotate: false - xy: 985, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice-snow2 - rotate: false - xy: 3229, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice-snow3 - rotate: false - xy: 1019, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice1 - rotate: false - xy: 3161, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice2 - rotate: false - xy: 951, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ice3 - rotate: false - xy: 3195, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icerocks-large +dirt-wall-large rotate: false xy: 1733, 181 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -icerocks1 +dirt-wall1 rotate: false - xy: 3263, 213 + xy: 663, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -icerocks2 +dirt-wall2 rotate: false - xy: 1053, 17 + xy: 2725, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -ignarock-edge +dirt1 + rotate: false + xy: 2657, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dirt2 + rotate: false + xy: 629, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dirt3 + rotate: false + xy: 2691, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dune-wall-large + rotate: false + xy: 1733, 115 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +dune-wall1 + rotate: false + xy: 697, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dune-wall2 + rotate: false + xy: 2759, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +edge + rotate: false + xy: 731, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +edge-stencil + rotate: false + xy: 589, 51 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +edgier + rotate: false + xy: 2793, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +grass-edge + rotate: false + xy: 687, 149 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 +grass1 + rotate: false + xy: 765, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +grass2 + rotate: false + xy: 2827, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +grass3 + rotate: false + xy: 799, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hotrock1 + rotate: false + xy: 2861, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hotrock2 + rotate: false + xy: 833, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +hotrock3 + rotate: false + xy: 2895, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-edge rotate: false xy: 687, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -ignarock1 - rotate: false - xy: 3297, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ignarock2 - rotate: false - xy: 1087, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ignarock3 - rotate: false - xy: 3331, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -lead1 - rotate: false - xy: 1121, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -lead2 - rotate: false - xy: 3365, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -lead3 - rotate: false - xy: 1155, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -magmarock1 - rotate: false - xy: 3399, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -magmarock2 - rotate: false - xy: 1189, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -magmarock3 - rotate: false - xy: 3433, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor - rotate: false - xy: 1223, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-2 - rotate: false - xy: 3467, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-2-edge +ice-snow-edge rotate: false xy: 785, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -metal-floor-3 +ice-snow1 rotate: false - xy: 1257, 17 + xy: 2963, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -metal-floor-3-edge +ice-snow2 + rotate: false + xy: 935, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-snow3 + rotate: false + xy: 2997, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-wall-large + rotate: false + xy: 1799, 181 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +ice-wall1 + rotate: false + xy: 969, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice-wall2 + rotate: false + xy: 3031, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice1 + rotate: false + xy: 867, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice2 + rotate: false + xy: 2929, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +ice3 + rotate: false + xy: 901, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead1 + rotate: false + xy: 1003, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead2 + rotate: false + xy: 3065, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +lead3 + rotate: false + xy: 1037, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +magmarock1 + rotate: false + xy: 3099, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +magmarock2 + rotate: false + xy: 1071, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +magmarock3 + rotate: false + xy: 3133, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor + rotate: false + xy: 1105, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-2 + rotate: false + xy: 3167, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-2-edge rotate: false xy: 785, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -metal-floor-5 +metal-floor-3 rotate: false - xy: 3501, 213 + xy: 1139, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -metal-floor-5-edge +metal-floor-3-edge rotate: false xy: 883, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -metal-floor-damaged-edge +metal-floor-5 + rotate: false + xy: 3201, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-5-edge rotate: false xy: 883, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -metal-floor-damaged1 - rotate: false - xy: 1291, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-damaged2 - rotate: false - xy: 3535, 213 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-damaged3 - rotate: false - xy: 1325, 17 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -metal-floor-edge +metal-floor-damaged-edge rotate: false xy: 981, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -moss-edge +metal-floor-damaged1 + rotate: false + xy: 1173, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-damaged2 + rotate: false + xy: 3235, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-damaged3 + rotate: false + xy: 1207, 17 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +metal-floor-edge rotate: false xy: 981, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +moss-edge + rotate: false + xy: 1079, 149 + size: 96, 96 + orig: 96, 96 + offset: 0, 0 + index: -1 moss1 rotate: false - xy: 3569, 213 + xy: 3269, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss2 rotate: false - xy: 1359, 17 + xy: 1241, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss3 rotate: false - xy: 3603, 213 + xy: 3303, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal1 rotate: false - xy: 1393, 17 + xy: 1275, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal2 rotate: false - xy: 3637, 213 + xy: 3337, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-coal3 rotate: false - xy: 1427, 17 + xy: 1309, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper1 rotate: false - xy: 3671, 213 + xy: 3371, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper2 rotate: false - xy: 1461, 17 + xy: 1343, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-copper3 rotate: false - xy: 3705, 213 + xy: 3405, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead1 rotate: false - xy: 1495, 17 + xy: 1377, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead2 rotate: false - xy: 3739, 213 + xy: 3439, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-lead3 rotate: false - xy: 1529, 17 + xy: 1411, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap1 rotate: false - xy: 3773, 213 + xy: 3473, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap2 rotate: false - xy: 3807, 213 + xy: 1445, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-scrap3 rotate: false - xy: 3841, 213 + xy: 3507, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium1 rotate: false - xy: 3875, 213 + xy: 1479, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium2 rotate: false - xy: 3909, 213 + xy: 3541, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-thorium3 rotate: false - xy: 3943, 213 + xy: 1513, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium1 rotate: false - xy: 3977, 213 + xy: 3575, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium2 rotate: false - xy: 4011, 213 + xy: 1547, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ore-titanium3 rotate: false - xy: 4045, 213 + xy: 3609, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles1 rotate: false - xy: 1569, 49 + xy: 1581, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles2 rotate: false - xy: 1635, 115 + xy: 3643, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles3 rotate: false - xy: 1603, 49 + xy: 1615, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -7632,499 +7877,499 @@ pine orig: 48, 48 offset: 0, 0 index: -1 -rocks-large - rotate: false - xy: 1799, 181 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -rocks1 - rotate: false - xy: 1563, 15 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -rocks2 - rotate: false - xy: 1597, 15 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 salt rotate: false - xy: 2261, 163 + xy: 3677, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-edge rotate: false - xy: 1079, 149 + xy: 1079, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -saltrocks-large +salt-wall-large rotate: false - xy: 1865, 181 + xy: 1799, 115 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -saltrocks1 +salt-wall1 rotate: false - xy: 2311, 179 + xy: 3711, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -saltrocks2 +salt-wall2 rotate: false - xy: 2345, 179 + xy: 3745, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-edge rotate: false - xy: 1079, 51 + xy: 1177, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +sand-wall-large + rotate: false + xy: 1865, 181 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +sand-wall1 + rotate: false + xy: 3881, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-wall2 + rotate: false + xy: 3915, 213 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 sand-water rotate: false - xy: 2481, 179 + xy: 3949, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-edge rotate: false - xy: 1177, 149 + xy: 1177, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sand-water1 rotate: false - xy: 2515, 179 + xy: 3983, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water2 rotate: false - xy: 2549, 179 + xy: 4017, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water3 rotate: false - xy: 2583, 179 + xy: 4051, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand1 rotate: false - xy: 2379, 179 + xy: 3779, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand2 rotate: false - xy: 2413, 179 + xy: 3813, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand3 rotate: false - xy: 2447, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sandrocks-large - rotate: false - xy: 1931, 181 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -sandrocks1 - rotate: false - xy: 2617, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sandrocks2 - rotate: false - xy: 2651, 179 + xy: 3847, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap1 rotate: false - xy: 2685, 179 + xy: 1649, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap2 rotate: false - xy: 2719, 179 + xy: 1683, 31 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap3 rotate: false - xy: 2753, 179 + xy: 1717, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-edge rotate: false - xy: 1177, 51 + xy: 1275, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +shale-wall-large + rotate: false + xy: 1865, 115 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +shale-wall1 + rotate: false + xy: 1853, 47 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +shale-wall2 + rotate: false + xy: 1887, 47 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 shale1 rotate: false - xy: 2787, 179 + xy: 1751, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale2 rotate: false - xy: 2821, 179 + xy: 1785, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale3 rotate: false - xy: 2855, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -shalerocks-large - rotate: false - xy: 1997, 181 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -shalerocks1 - rotate: false - xy: 2889, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -shalerocks2 - rotate: false - xy: 2923, 179 + xy: 1819, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-large rotate: false - xy: 2063, 181 + xy: 1931, 181 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shrubs1 rotate: false - xy: 2957, 179 + xy: 1921, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs2 rotate: false - xy: 2991, 179 + xy: 1955, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag rotate: false - xy: 3025, 179 + xy: 1989, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag-edge rotate: false - xy: 1275, 149 + xy: 1275, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 snow-edge rotate: false - xy: 1275, 51 + xy: 1373, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 snow-pine rotate: false - xy: 2261, 197 + xy: 1667, 65 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +snow-wall-large + rotate: false + xy: 1931, 115 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +snow-wall1 + rotate: false + xy: 2131, 179 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +snow-wall2 + rotate: false + xy: 2131, 145 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 snow1 rotate: false - xy: 3059, 179 + xy: 2023, 47 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow2 rotate: false - xy: 3093, 179 + xy: 2097, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow3 rotate: false - xy: 3127, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -snowrocks-large - rotate: false - xy: 2129, 181 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -snowrocks1 - rotate: false - xy: 3161, 179 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -snowrocks2 - rotate: false - xy: 3195, 179 + xy: 2097, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn rotate: false - xy: 3229, 179 + xy: 2165, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-edge rotate: false - xy: 1373, 149 + xy: 1373, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 spore-moss1 rotate: false - xy: 3263, 179 + xy: 2165, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss2 rotate: false - xy: 3297, 179 + xy: 2199, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss3 rotate: false - xy: 3331, 179 + xy: 2199, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-pine rotate: false - xy: 51, 1 + xy: 2063, 197 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -sporerocks-large +spore-wall-large rotate: false - xy: 2195, 181 + xy: 1997, 181 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -sporerocks1 +spore-wall1 rotate: false - xy: 3365, 179 + xy: 2233, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -sporerocks2 +spore-wall2 rotate: false - xy: 3399, 179 + xy: 2233, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-edge rotate: false - xy: 1373, 51 + xy: 1471, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +stone-wall-large + rotate: false + xy: 1997, 115 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +stone-wall1 + rotate: false + xy: 2301, 145 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +stone-wall2 + rotate: false + xy: 2335, 179 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 stone1 rotate: false - xy: 3433, 179 + xy: 2267, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone2 rotate: false - xy: 3467, 179 + xy: 2267, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone3 rotate: false - xy: 3501, 179 + xy: 2301, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water rotate: false - xy: 3535, 179 + xy: 2335, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-edge rotate: false - xy: 1471, 149 + xy: 1471, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 tar rotate: false - xy: 3569, 179 + xy: 2369, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-edge rotate: false - xy: 1471, 51 + xy: 1569, 149 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 tendrils1 rotate: false - xy: 3603, 179 + xy: 2369, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils2 rotate: false - xy: 3637, 179 + xy: 2403, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils3 rotate: false - xy: 3671, 179 + xy: 2403, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 3705, 179 + xy: 2437, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 3739, 179 + xy: 2437, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 3773, 179 + xy: 2471, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 3807, 179 + xy: 2471, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 3841, 179 + xy: 2505, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 3875, 179 + xy: 2505, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water rotate: false - xy: 3909, 179 + xy: 2539, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-edge rotate: false - xy: 1569, 149 + xy: 1569, 51 size: 96, 96 orig: 96, 96 offset: 0, 0 @@ -8137,2149 +8382,2198 @@ filter: nearest,nearest repeat: none additive-reconstructor-icon-editor rotate: false - xy: 1973, 389 + xy: 1973, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 air-factory-icon-editor rotate: false - xy: 2071, 389 + xy: 2071, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 alloy-smelter-icon-editor rotate: false - xy: 2169, 389 + xy: 2169, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 arc-icon-editor rotate: false - xy: 1085, 227 + xy: 1127, 247 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-icon-editor rotate: false - xy: 3897, 355 + xy: 3905, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +basalt-icon-editor + rotate: false + xy: 3939, 375 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-basalt1 + rotate: false + xy: 3939, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-icon-editor rotate: false - xy: 1119, 227 + xy: 3973, 375 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large-icon-editor rotate: false - xy: 2267, 389 + xy: 2267, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 blast-drill-icon-editor rotate: false - xy: 163, 35 + xy: 163, 55 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-mixer-icon-editor rotate: false - xy: 4031, 421 + xy: 4031, 441 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border-editor rotate: false - xy: 3931, 355 + xy: 163, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-forge-icon-editor rotate: false - xy: 2365, 389 + xy: 2365, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-loader-icon-editor rotate: false - xy: 2463, 389 + xy: 2463, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 block-unloader-icon-editor rotate: false - xy: 2561, 389 + xy: 2561, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +boulder-icon-editor + rotate: false + xy: 935, 231 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 bridge-conduit-icon-editor rotate: false - xy: 3965, 355 + xy: 197, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-icon-editor rotate: false - xy: 163, 1 + xy: 231, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char-icon-editor rotate: false - xy: 197, 1 + xy: 265, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char1 rotate: false - xy: 197, 1 + xy: 265, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear-editor rotate: false - xy: 645, 194 + xy: 645, 214 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 cliff-icon-editor rotate: false - xy: 231, 1 + xy: 299, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliffs-icon-editor rotate: false - xy: 265, 1 + xy: 333, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal-centrifuge-icon-editor rotate: false - xy: 4031, 355 + xy: 4031, 375 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 combustion-generator-icon-editor rotate: false - xy: 299, 1 + xy: 367, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 command-center-icon-editor rotate: false - xy: 553, 1 + xy: 553, 21 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 conduit-icon-editor rotate: false - xy: 333, 1 + xy: 401, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 container-icon-editor rotate: false - xy: 651, 33 + xy: 651, 53 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 conveyor-icon-editor rotate: false - xy: 367, 1 + xy: 435, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-icon-editor rotate: false - xy: 401, 1 + xy: 469, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large-icon-editor rotate: false - xy: 717, 33 + xy: 717, 53 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 core-foundation-icon-editor rotate: false - xy: 1323, 357 + xy: 1323, 377 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 core-nucleus-icon-editor rotate: false - xy: 1, 3 + xy: 1, 23 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 core-shard-icon-editor rotate: false - xy: 2659, 389 + xy: 2659, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 craters-icon-editor rotate: false - xy: 435, 1 + xy: 503, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters1 rotate: false - xy: 435, 1 + xy: 503, 21 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cryofluidmixer-icon-editor rotate: false - xy: 783, 33 + xy: 783, 53 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-icon-editor rotate: false - xy: 849, 33 + xy: 849, 53 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cyclone-icon-editor rotate: false - xy: 2757, 389 + xy: 2757, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 +dacite-boulder-icon-editor + rotate: false + xy: 3755, 359 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +dacite-icon-editor + rotate: false + xy: 915, 85 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dacite1 + rotate: false + xy: 915, 85 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dacite-wall-icon-editor + rotate: false + xy: 915, 51 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 dark-metal-icon-editor rotate: false - xy: 469, 1 + xy: 945, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1-icon-editor rotate: false - xy: 503, 1 + xy: 945, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-1 rotate: false - xy: 503, 1 + xy: 945, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-2-icon-editor rotate: false - xy: 915, 65 + xy: 979, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-2 rotate: false - xy: 915, 65 + xy: 979, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-3-icon-editor rotate: false - xy: 915, 31 + xy: 945, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-3 rotate: false - xy: 915, 31 + xy: 945, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-4-icon-editor rotate: false - xy: 945, 177 + xy: 979, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-4 rotate: false - xy: 945, 177 + xy: 979, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-5-icon-editor rotate: false - xy: 945, 143 + xy: 1013, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-5 rotate: false - xy: 945, 143 + xy: 1013, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-6-icon-editor rotate: false - xy: 979, 177 + xy: 979, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-dark-panel-6 rotate: false - xy: 979, 177 + xy: 979, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-icon-editor rotate: false - xy: 945, 109 + xy: 1013, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand1 rotate: false - xy: 945, 109 + xy: 1013, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water-icon-editor rotate: false - xy: 979, 143 + xy: 1047, 197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-icon-editor rotate: false - xy: 1013, 177 + xy: 1013, 129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-icon-editor rotate: false - xy: 979, 109 + xy: 1047, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-deepwater rotate: false - xy: 979, 109 + xy: 1047, 163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator-icon-editor rotate: false - xy: 2855, 389 + xy: 2855, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 diode-icon-editor rotate: false - xy: 1013, 143 + xy: 1047, 129 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dirt-icon-editor + rotate: false + xy: 949, 95 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dirt1 + rotate: false + xy: 949, 95 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +dirt-wall-icon-editor + rotate: false + xy: 949, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 disassembler-icon-editor rotate: false - xy: 2953, 389 + xy: 2953, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 distributor-icon-editor rotate: false - xy: 1357, 193 + xy: 1357, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-icon-editor rotate: false - xy: 1047, 177 + xy: 983, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large-icon-editor rotate: false - xy: 1423, 193 + xy: 1423, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -dunerocks-icon-editor +dune-wall-icon-editor rotate: false - xy: 1013, 109 + xy: 983, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo-icon-editor rotate: false - xy: 1047, 143 + xy: 1017, 95 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-basalt2 + rotate: false + xy: 1017, 61 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-basalt3 + rotate: false + xy: 1051, 95 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char2 rotate: false - xy: 1047, 109 + xy: 1051, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char3 rotate: false - xy: 949, 75 + xy: 3755, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters2 rotate: false - xy: 949, 41 + xy: 3789, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters3 rotate: false - xy: 983, 75 + xy: 3823, 325 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dacite2 + rotate: false + xy: 3857, 325 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dacite3 + rotate: false + xy: 3905, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water1 rotate: false - xy: 1017, 41 + xy: 949, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water2 rotate: false - xy: 1051, 75 + xy: 983, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-tainted-water3 rotate: false - xy: 1051, 41 + xy: 1017, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water1 rotate: false - xy: 3755, 305 + xy: 1051, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water2 rotate: false - xy: 3789, 305 + xy: 4007, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand-water3 rotate: false - xy: 3823, 305 + xy: 4041, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand2 rotate: false - xy: 983, 41 + xy: 3939, 341 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand3 rotate: false - xy: 1017, 75 + xy: 3973, 341 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dirt2 + rotate: false + xy: 1085, 205 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +editor-dirt3 + rotate: false + xy: 1081, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass1 rotate: false - xy: 3857, 313 + xy: 1081, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-icon-editor rotate: false - xy: 3857, 313 + xy: 1081, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass2 rotate: false - xy: 1085, 193 + xy: 1085, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass3 rotate: false - xy: 1119, 193 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-holostone1 - rotate: false - xy: 1081, 159 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -holostone-icon-editor - rotate: false - xy: 1081, 159 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-holostone2 - rotate: false - xy: 1081, 125 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-holostone3 - rotate: false - xy: 1115, 159 + xy: 1085, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock1 rotate: false - xy: 1115, 125 + xy: 1085, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock-icon-editor rotate: false - xy: 1115, 125 + xy: 1085, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock2 rotate: false - xy: 1153, 193 + xy: 1127, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock3 rotate: false - xy: 1149, 159 + xy: 1161, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow1 rotate: false - xy: 1221, 193 + xy: 1297, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow-icon-editor rotate: false - xy: 1221, 193 + xy: 1297, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow2 rotate: false - xy: 1183, 125 + xy: 1085, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow3 rotate: false - xy: 1217, 159 + xy: 1945, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice1 rotate: false - xy: 1187, 193 + xy: 1195, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-icon-editor rotate: false - xy: 1187, 193 + xy: 1195, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice2 rotate: false - xy: 1149, 125 + xy: 1229, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice3 rotate: false - xy: 1183, 159 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-ignarock1 - rotate: false - xy: 1255, 193 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -ignarock-icon-editor - rotate: false - xy: 1255, 193 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-ignarock2 - rotate: false - xy: 1217, 125 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -editor-ignarock3 - rotate: false - xy: 1251, 159 + xy: 1263, 213 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock1 rotate: false - xy: 1289, 193 + xy: 1979, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock-icon-editor rotate: false - xy: 1289, 193 + xy: 1979, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock2 rotate: false - xy: 1323, 193 + xy: 2013, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock3 rotate: false - xy: 1251, 125 + xy: 2047, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor rotate: false - xy: 1285, 159 + xy: 2081, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-icon-editor rotate: false - xy: 1285, 159 + xy: 2081, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-2 rotate: false - xy: 1285, 125 + xy: 2115, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-icon-editor rotate: false - xy: 1285, 125 + xy: 2115, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-3 rotate: false - xy: 1319, 159 + xy: 2149, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-icon-editor rotate: false - xy: 1319, 159 + xy: 2149, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-5 rotate: false - xy: 1319, 125 + xy: 2183, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-icon-editor rotate: false - xy: 1319, 125 + xy: 2183, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged1 rotate: false - xy: 1353, 159 + xy: 2217, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged-icon-editor rotate: false - xy: 1353, 159 + xy: 2217, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged2 rotate: false - xy: 1353, 125 + xy: 2251, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged3 rotate: false - xy: 1387, 159 + xy: 2285, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss1 rotate: false - xy: 1387, 125 + xy: 2319, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss-icon-editor rotate: false - xy: 1387, 125 + xy: 2319, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss2 rotate: false - xy: 1421, 159 + xy: 2353, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss3 rotate: false - xy: 1421, 125 + xy: 2387, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal1 rotate: false - xy: 1455, 159 + xy: 2421, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal2 rotate: false - xy: 1455, 125 + xy: 2455, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal3 rotate: false - xy: 1489, 159 + xy: 2489, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper1 rotate: false - xy: 1489, 125 + xy: 2523, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper2 rotate: false - xy: 1523, 159 + xy: 2557, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper3 rotate: false - xy: 1523, 125 + xy: 2591, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead1 rotate: false - xy: 1557, 159 + xy: 2625, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead2 rotate: false - xy: 1557, 125 + xy: 2659, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead3 rotate: false - xy: 1591, 159 + xy: 2693, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap1 rotate: false - xy: 1591, 125 + xy: 2727, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap2 rotate: false - xy: 1625, 159 + xy: 2761, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap3 rotate: false - xy: 1625, 125 + xy: 2795, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium1 rotate: false - xy: 1659, 159 + xy: 2829, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium2 rotate: false - xy: 1659, 125 + xy: 2863, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium3 rotate: false - xy: 1693, 159 + xy: 2897, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium1 rotate: false - xy: 1693, 125 + xy: 2931, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium2 rotate: false - xy: 1727, 159 + xy: 2965, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium3 rotate: false - xy: 1727, 125 + xy: 2999, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles1 rotate: false - xy: 1761, 159 + xy: 3033, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles2 rotate: false - xy: 1761, 125 + xy: 3067, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles3 rotate: false - xy: 1795, 159 + xy: 3101, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-salt rotate: false - xy: 1795, 125 + xy: 3135, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-icon-editor rotate: false - xy: 1795, 125 + xy: 3135, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water1 rotate: false - xy: 1863, 125 + xy: 3271, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water2 rotate: false - xy: 1897, 159 + xy: 3305, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water3 rotate: false - xy: 1897, 125 + xy: 3339, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand1 rotate: false - xy: 1829, 159 + xy: 3169, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-icon-editor rotate: false - xy: 1829, 159 + xy: 3169, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand2 rotate: false - xy: 1829, 125 + xy: 3203, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand3 rotate: false - xy: 1863, 159 + xy: 3237, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale1 rotate: false - xy: 1931, 159 + xy: 3373, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-icon-editor rotate: false - xy: 1931, 159 + xy: 3373, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale2 rotate: false - xy: 1931, 125 + xy: 3407, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale3 rotate: false - xy: 1085, 91 + xy: 3441, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-slag rotate: false - xy: 1085, 57 + xy: 3475, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 slag-icon-editor rotate: false - xy: 1085, 57 + xy: 3475, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow1 rotate: false - xy: 1119, 91 + xy: 3509, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow2 rotate: false - xy: 1119, 57 + xy: 3543, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow3 rotate: false - xy: 1153, 91 + xy: 3577, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spawn rotate: false - xy: 1153, 57 + xy: 3611, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss1 rotate: false - xy: 1187, 91 + xy: 3645, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-icon-editor rotate: false - xy: 1187, 91 + xy: 3645, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss2 rotate: false - xy: 1187, 57 + xy: 3679, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss3 rotate: false - xy: 1221, 91 + xy: 3713, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone1 rotate: false - xy: 1221, 57 + xy: 3747, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-icon-editor rotate: false - xy: 1221, 57 + xy: 3747, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone2 rotate: false - xy: 1255, 91 + xy: 3781, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone3 rotate: false - xy: 1255, 57 + xy: 3815, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tainted-water rotate: false - xy: 1289, 91 + xy: 3849, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-icon-editor rotate: false - xy: 1289, 91 + xy: 3849, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tar rotate: false - xy: 1289, 57 + xy: 3883, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-icon-editor rotate: false - xy: 1289, 57 + xy: 3883, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils1 rotate: false - xy: 1323, 91 + xy: 3917, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils2 rotate: false - xy: 1323, 57 + xy: 3951, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils3 rotate: false - xy: 1357, 91 + xy: 3985, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-water rotate: false - xy: 1357, 57 + xy: 4019, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-icon-editor rotate: false - xy: 1357, 57 + xy: 4019, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 exponential-reconstructor-icon-editor rotate: false - xy: 935, 261 + xy: 935, 281 size: 224, 224 orig: 224, 224 offset: 0, 0 index: -1 force-projector-icon-editor rotate: false - xy: 3051, 389 + xy: 3051, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 fuse-icon-editor rotate: false - xy: 3149, 389 + xy: 3149, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 graphite-press-icon-editor rotate: false - xy: 1489, 193 + xy: 1489, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ground-factory-icon-editor rotate: false - xy: 3247, 389 + xy: 3247, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 hail-icon-editor rotate: false - xy: 1391, 91 + xy: 4053, 307 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hyper-processor-icon-editor rotate: false - xy: 3345, 389 + xy: 3345, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -icerocks-icon-editor +ice-wall-icon-editor rotate: false - xy: 1391, 57 + xy: 3917, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-icon-editor rotate: false - xy: 1425, 91 + xy: 3951, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 impact-reactor-icon-editor rotate: false - xy: 293, 35 + xy: 293, 55 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 incinerator-icon-editor rotate: false - xy: 1425, 57 + xy: 3985, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter-icon-editor rotate: false - xy: 1459, 91 + xy: 4019, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source-icon-editor rotate: false - xy: 1459, 57 + xy: 4053, 273 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void-icon-editor rotate: false - xy: 1493, 91 + xy: 1115, 171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction-icon-editor rotate: false - xy: 1493, 57 + xy: 1115, 137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln-icon-editor rotate: false - xy: 1555, 193 + xy: 1555, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 lancer-icon-editor rotate: false - xy: 1621, 193 + xy: 1621, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 laser-drill-icon-editor rotate: false - xy: 3443, 389 + xy: 3443, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-icon-editor rotate: false - xy: 3541, 389 + xy: 3541, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 launch-pad-large-icon-editor rotate: false - xy: 1453, 357 + xy: 1453, 377 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 liquid-junction-icon-editor rotate: false - xy: 1527, 91 + xy: 1119, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-icon-editor rotate: false - xy: 1527, 57 + xy: 1119, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source-icon-editor rotate: false - xy: 1561, 91 + xy: 1119, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-icon-editor rotate: false - xy: 3639, 389 + xy: 3639, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 liquid-void-icon-editor rotate: false - xy: 1561, 57 + xy: 1119, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-display-icon-editor rotate: false - xy: 3737, 389 + xy: 3737, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 logic-processor-icon-editor rotate: false - xy: 1687, 193 + xy: 1687, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mass-driver-icon-editor rotate: false - xy: 3835, 389 + xy: 3835, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 mechanical-drill-icon-editor rotate: false - xy: 1753, 193 + xy: 1753, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-pump-icon-editor rotate: false - xy: 1595, 91 + xy: 1149, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 meltdown-icon-editor rotate: false - xy: 423, 35 + xy: 423, 55 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 melter-icon-editor rotate: false - xy: 1595, 57 + xy: 1149, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 memory-cell-icon-editor rotate: false - xy: 1629, 91 + xy: 1183, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mend-projector-icon-editor rotate: false - xy: 1819, 193 + xy: 1819, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mender-icon-editor rotate: false - xy: 1629, 57 + xy: 1183, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 1663, 91 + xy: 1217, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 micro-processor-icon-editor rotate: false - xy: 1663, 57 + xy: 1217, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press-icon-editor rotate: false - xy: 3933, 389 + xy: 3933, 409 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 multiplicative-reconstructor-icon-editor rotate: false - xy: 1161, 325 + xy: 1161, 345 size: 160, 160 orig: 160, 160 offset: 0, 0 index: -1 naval-factory-icon-editor rotate: false - xy: 553, 67 + xy: 553, 87 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 oil-extractor-icon-editor rotate: false - xy: 651, 99 + xy: 651, 119 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-dome-icon-editor rotate: false - xy: 749, 99 + xy: 749, 119 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 overdrive-projector-icon-editor rotate: false - xy: 1885, 193 + xy: 1885, 213 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overflow-gate-icon-editor rotate: false - xy: 1697, 91 + xy: 1251, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 parallax-icon-editor rotate: false - xy: 1973, 323 + xy: 1973, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 payload-conveyor-icon-editor rotate: false - xy: 847, 99 + xy: 847, 119 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 payload-router-icon-editor rotate: false - xy: 1161, 227 + xy: 1161, 247 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 pebbles-icon-editor rotate: false - xy: 1697, 57 + xy: 1251, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-editor rotate: false - xy: 1731, 91 + xy: 1285, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 1731, 57 + xy: 1285, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 1765, 91 + xy: 1153, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large-icon-editor rotate: false - xy: 2039, 323 + xy: 2039, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-icon-editor rotate: false - xy: 2105, 323 + xy: 2105, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pine-icon-editor rotate: false - xy: 935, 211 + xy: 985, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 plastanium-compressor-icon-editor rotate: false - xy: 2171, 323 + xy: 2171, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-conveyor-icon-editor rotate: false - xy: 1765, 57 + xy: 1153, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-icon-editor rotate: false - xy: 1799, 91 + xy: 1187, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall-large-icon-editor rotate: false - xy: 2237, 323 + xy: 2237, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plated-conduit-icon-editor rotate: false - xy: 1799, 57 + xy: 1153, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pneumatic-drill-icon-editor rotate: false - xy: 2303, 323 + xy: 2303, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-node-icon-editor rotate: false - xy: 1833, 91 + xy: 1187, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large-icon-editor rotate: false - xy: 2369, 323 + xy: 2369, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-source-icon-editor rotate: false - xy: 1833, 57 + xy: 1221, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 1867, 91 + xy: 1153, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 1867, 57 + xy: 1187, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 1901, 91 + xy: 1221, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer-icon-editor rotate: false - xy: 2435, 323 + xy: 2435, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 repair-point-icon-editor rotate: false - xy: 1901, 57 + xy: 1255, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 resupply-point-icon-editor rotate: false - xy: 2501, 323 + xy: 2501, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 ripple-icon-editor rotate: false - xy: 1259, 227 + xy: 1259, 247 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 -rock-icon-editor - rotate: false - xy: 3755, 339 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -rocks-icon-editor - rotate: false - xy: 1935, 91 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 rotary-pump-icon-editor rotate: false - xy: 2567, 323 + xy: 2567, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 router-icon-editor rotate: false - xy: 1935, 57 + xy: 1187, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-icon-editor rotate: false - xy: 2633, 323 + xy: 2633, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -saltrocks-icon-editor +salt-wall-icon-editor rotate: false - xy: 1085, 23 + xy: 1221, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salvo-icon-editor rotate: false - xy: 2699, 323 + xy: 2699, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 sand-boulder-icon-editor rotate: false - xy: 1119, 23 + xy: 1255, 77 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +sand-wall-icon-editor + rotate: false + xy: 1221, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 1153, 23 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -sandrocks-icon-editor - rotate: false - xy: 1187, 23 + xy: 1255, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scatter-icon-editor rotate: false - xy: 2765, 323 + xy: 2765, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scorch-icon-editor rotate: false - xy: 1221, 23 + xy: 1255, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-gigantic-icon-editor rotate: false - xy: 1583, 357 + xy: 1583, 377 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 scrap-wall-huge-icon-editor rotate: false - xy: 1357, 259 + xy: 1357, 279 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 scrap-wall-icon-editor rotate: false - xy: 1255, 23 + xy: 1289, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-large-icon-editor rotate: false - xy: 2831, 323 + xy: 2831, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 segment-icon-editor rotate: false - xy: 2897, 323 + xy: 2897, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-icon-editor rotate: false - xy: 2963, 323 + xy: 2963, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 shale-boulder-icon-editor rotate: false - xy: 1289, 23 + xy: 1289, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -shalerocks-icon-editor +shale-wall-icon-editor rotate: false - xy: 1323, 23 + xy: 1289, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 1357, 23 + xy: 1289, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 1391, 23 + xy: 1319, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 silicon-crucible-icon-editor rotate: false - xy: 1455, 259 + xy: 1455, 279 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 silicon-smelter-icon-editor rotate: false - xy: 3029, 323 + xy: 3029, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +snow-boulder-icon-editor + rotate: false + xy: 3805, 359 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 snow-icon-editor rotate: false - xy: 1425, 23 + xy: 1319, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-pine-icon-editor rotate: false - xy: 985, 211 + xy: 1035, 231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -snowrock-icon-editor +snow-wall-icon-editor rotate: false - xy: 3805, 339 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -snowrocks-icon-editor - rotate: false - xy: 1459, 23 + xy: 1353, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 1493, 23 + xy: 1353, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large-icon-editor rotate: false - xy: 1553, 259 + xy: 1553, 279 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 sorter-icon-editor rotate: false - xy: 1527, 23 + xy: 1323, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 1561, 23 + xy: 1387, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spectre-icon-editor rotate: false - xy: 1713, 357 + xy: 1713, 377 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 spore-cluster-icon-editor rotate: false - xy: 3855, 347 + xy: 1085, 239 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 spore-pine-icon-editor rotate: false - xy: 1035, 211 + xy: 3855, 359 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-press-icon-editor rotate: false - xy: 3095, 323 + xy: 3095, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -sporerocks-icon-editor +spore-wall-icon-editor rotate: false - xy: 1595, 23 + xy: 1323, 77 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +steam-generator-icon-editor + rotate: false + xy: 3161, 343 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +stone-wall-icon-editor + rotate: false + xy: 1387, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-tower-icon-editor rotate: false - xy: 3161, 323 + xy: 3227, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-icon-editor rotate: false - xy: 1629, 23 + xy: 1357, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large-icon-editor rotate: false - xy: 3227, 323 + xy: 3293, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 swarmer-icon-editor rotate: false - xy: 3293, 323 + xy: 3359, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 switch-icon-editor rotate: false - xy: 1663, 23 + xy: 1421, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils-icon-editor rotate: false - xy: 1697, 23 + xy: 1323, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tetrative-reconstructor-icon-editor rotate: false - xy: 645, 197 + xy: 645, 217 size: 288, 288 orig: 288, 288 offset: 0, 0 index: -1 thermal-generator-icon-editor rotate: false - xy: 3359, 323 + xy: 3425, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-pump-icon-editor rotate: false - xy: 1651, 259 + xy: 1651, 279 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-reactor-icon-editor rotate: false - xy: 1749, 259 + xy: 1749, 279 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 thorium-wall-icon-editor rotate: false - xy: 1731, 23 + xy: 1357, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large-icon-editor rotate: false - xy: 3425, 323 + xy: 3491, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thruster-icon-editor rotate: false - xy: 1843, 357 + xy: 1843, 377 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 titanium-conveyor-icon-editor rotate: false - xy: 1765, 23 + xy: 1421, 145 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 1799, 23 + xy: 1391, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large-icon-editor rotate: false - xy: 3491, 323 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-icon-editor - rotate: false - xy: 3557, 323 + xy: 3557, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 underflow-gate-icon-editor rotate: false - xy: 1833, 23 + xy: 1455, 179 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-editor rotate: false - xy: 1867, 23 + xy: 1323, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault-icon-editor rotate: false - xy: 1847, 259 + xy: 1847, 279 size: 96, 96 orig: 96, 96 offset: 0, 0 index: -1 water-extractor-icon-editor rotate: false - xy: 3623, 323 + xy: 3623, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave-icon-editor rotate: false - xy: 3689, 323 + xy: 3689, 343 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 white-tree-dead-icon-editor rotate: false - xy: 1, 165 + xy: 1, 185 size: 320, 320 orig: 320, 320 offset: 0, 0 index: -1 white-tree-icon-editor rotate: false - xy: 323, 165 + xy: 323, 185 size: 320, 320 orig: 320, 320 offset: 0, 0 @@ -10299,7 +10593,7 @@ alpha-bg index: -1 bar rotate: false - xy: 3212, 225 + xy: 2343, 103 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -10307,7 +10601,7 @@ bar index: -1 bar-top rotate: false - xy: 3183, 230 + xy: 2275, 63 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -10315,28 +10609,28 @@ bar-top index: -1 block-additive-reconstructor-large rotate: false - xy: 3454, 371 + xy: 131, 4 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-additive-reconstructor-medium rotate: false - xy: 1091, 169 + xy: 1014, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-additive-reconstructor-small rotate: false - xy: 4033, 387 + xy: 3483, 351 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-additive-reconstructor-tiny rotate: false - xy: 309, 186 + xy: 2309, 89 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10350,28 +10644,28 @@ block-additive-reconstructor-xlarge index: -1 block-air-factory-large rotate: false - xy: 3496, 371 + xy: 173, 4 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-air-factory-medium rotate: false - xy: 1125, 169 + xy: 1048, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-air-factory-small rotate: false - xy: 781, 178 + xy: 2240, 41 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-air-factory-tiny rotate: false - xy: 3285, 359 + xy: 2899, 311 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10385,28 +10679,28 @@ block-air-factory-xlarge index: -1 block-alloy-smelter-large rotate: false - xy: 3538, 371 + xy: 215, 4 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-alloy-smelter-medium rotate: false - xy: 1159, 169 + xy: 1082, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 1254, 41 + xy: 2583, 96 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 2859, 170 + xy: 2528, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10420,28 +10714,28 @@ block-alloy-smelter-xlarge index: -1 block-arc-large rotate: false - xy: 231, 4 + xy: 845, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-arc-medium rotate: false - xy: 1193, 169 + xy: 1116, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 1280, 41 + xy: 1050, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 309, 168 + xy: 2745, 208 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10455,28 +10749,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 3580, 371 + xy: 887, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 1227, 169 + xy: 1150, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 1306, 41 + xy: 1076, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 2877, 170 + xy: 2707, 235 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10488,4801 +10782,4906 @@ block-armored-conveyor-xlarge orig: 48, 48 offset: 0, 0 index: -1 -block-battery-large - rotate: false - xy: 845, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-battery-large-large - rotate: false - xy: 887, 371 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-battery-large-medium - rotate: false - xy: 1261, 169 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-battery-large-small - rotate: false - xy: 1332, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-battery-large-tiny - rotate: false - xy: 2895, 170 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-battery-large-xlarge - rotate: false - xy: 259, 257 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-battery-medium - rotate: false - xy: 1295, 169 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-battery-small - rotate: false - xy: 1358, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-battery-tiny - rotate: false - xy: 2913, 170 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-battery-xlarge - rotate: false - xy: 181, 46 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-blast-drill-large +block-basalt-large rotate: false xy: 929, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-blast-drill-medium +block-basalt-medium rotate: false - xy: 1329, 169 + xy: 1184, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-blast-drill-small +block-basalt-small rotate: false - xy: 1384, 41 + xy: 1102, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-blast-drill-tiny +block-basalt-tiny rotate: false - xy: 2931, 170 + xy: 309, 160 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-blast-drill-xlarge +block-basalt-xlarge rotate: false - xy: 259, 207 + xy: 259, 257 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-blast-mixer-large +block-battery-large rotate: false xy: 971, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-blast-mixer-medium - rotate: false - xy: 1363, 169 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-blast-mixer-small - rotate: false - xy: 1410, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-blast-mixer-tiny - rotate: false - xy: 2949, 170 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-blast-mixer-xlarge - rotate: false - xy: 259, 157 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-block-forge-large +block-battery-large-large rotate: false xy: 1013, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-block-forge-medium +block-battery-large-medium rotate: false - xy: 1397, 169 + xy: 1218, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-block-forge-small +block-battery-large-small rotate: false - xy: 1436, 41 + xy: 1128, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-block-forge-tiny +block-battery-large-tiny rotate: false - xy: 2967, 170 + xy: 257, 2 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-block-forge-xlarge +block-battery-large-xlarge rotate: false - xy: 857, 463 + xy: 181, 46 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-block-loader-large +block-battery-medium + rotate: false + xy: 1252, 169 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-battery-small + rotate: false + xy: 1154, 7 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-battery-tiny + rotate: false + xy: 2893, 293 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-battery-xlarge + rotate: false + xy: 259, 207 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-blast-drill-large rotate: false xy: 1055, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-block-loader-medium +block-blast-drill-medium rotate: false - xy: 1431, 169 + xy: 1286, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-block-loader-small +block-blast-drill-small rotate: false - xy: 1462, 41 + xy: 1180, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-block-loader-tiny +block-blast-drill-tiny rotate: false - xy: 2985, 170 + xy: 2745, 190 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-block-loader-xlarge +block-blast-drill-xlarge rotate: false - xy: 907, 463 + xy: 259, 157 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-block-unloader-large +block-blast-mixer-large rotate: false xy: 1097, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-block-unloader-medium +block-blast-mixer-medium rotate: false - xy: 1465, 169 + xy: 1320, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-block-unloader-small +block-blast-mixer-small rotate: false - xy: 1488, 41 + xy: 1206, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-block-unloader-tiny +block-blast-mixer-tiny rotate: false - xy: 3003, 170 + xy: 2911, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-block-unloader-xlarge +block-blast-mixer-xlarge rotate: false - xy: 957, 463 + xy: 857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-bridge-conduit-large +block-block-forge-large rotate: false xy: 1139, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-bridge-conduit-medium +block-block-forge-medium rotate: false - xy: 1499, 169 + xy: 1354, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-bridge-conduit-small +block-block-forge-small rotate: false - xy: 1514, 41 + xy: 1232, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-bridge-conduit-tiny +block-block-forge-tiny rotate: false - xy: 3021, 170 + xy: 2929, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-bridge-conduit-xlarge +block-block-forge-xlarge rotate: false - xy: 1007, 463 + xy: 907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-bridge-conveyor-large +block-block-loader-large rotate: false xy: 1181, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-bridge-conveyor-medium +block-block-loader-medium rotate: false - xy: 1533, 169 + xy: 1388, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-bridge-conveyor-small +block-block-loader-small rotate: false - xy: 1540, 41 + xy: 1258, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-bridge-conveyor-tiny +block-block-loader-tiny rotate: false - xy: 3039, 170 + xy: 2947, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-bridge-conveyor-xlarge +block-block-loader-xlarge rotate: false - xy: 1057, 463 + xy: 957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-char-large +block-block-unloader-large rotate: false xy: 1223, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-char-medium +block-block-unloader-medium rotate: false - xy: 1567, 169 + xy: 1422, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-char-small +block-block-unloader-small rotate: false - xy: 1566, 41 + xy: 1284, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-char-tiny +block-block-unloader-tiny rotate: false - xy: 3057, 170 + xy: 2965, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-char-xlarge +block-block-unloader-xlarge rotate: false - xy: 1107, 463 + xy: 1007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cliff-large +block-boulder-large rotate: false xy: 1265, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cliff-medium +block-boulder-medium rotate: false - xy: 1601, 169 + xy: 1456, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cliff-small +block-boulder-small rotate: false - xy: 1592, 41 + xy: 1310, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cliff-tiny +block-boulder-tiny rotate: false - xy: 3075, 170 + xy: 2983, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cliff-xlarge +block-boulder-xlarge rotate: false - xy: 1157, 463 + xy: 1057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cliffs-large +block-bridge-conduit-large rotate: false xy: 1307, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cliffs-medium +block-bridge-conduit-medium rotate: false - xy: 1635, 169 + xy: 1490, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cliffs-small +block-bridge-conduit-small rotate: false - xy: 1618, 41 + xy: 1336, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cliffs-tiny +block-bridge-conduit-tiny rotate: false - xy: 3093, 170 + xy: 3001, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cliffs-xlarge +block-bridge-conduit-xlarge rotate: false - xy: 1207, 463 + xy: 1107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-coal-centrifuge-large +block-bridge-conveyor-large rotate: false xy: 1349, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-coal-centrifuge-medium +block-bridge-conveyor-medium rotate: false - xy: 1669, 169 + xy: 1524, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-coal-centrifuge-small +block-bridge-conveyor-small rotate: false - xy: 1644, 41 + xy: 1362, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-coal-centrifuge-tiny +block-bridge-conveyor-tiny rotate: false - xy: 3111, 170 + xy: 3019, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-coal-centrifuge-xlarge +block-bridge-conveyor-xlarge rotate: false - xy: 1257, 463 + xy: 1157, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-combustion-generator-large +block-char-large rotate: false xy: 1391, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-combustion-generator-medium +block-char-medium rotate: false - xy: 1703, 169 + xy: 1558, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-combustion-generator-small +block-char-small rotate: false - xy: 1670, 41 + xy: 1388, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-combustion-generator-tiny +block-char-tiny rotate: false - xy: 3129, 170 + xy: 3037, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-combustion-generator-xlarge +block-char-xlarge rotate: false - xy: 1307, 463 + xy: 1207, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-command-center-large +block-cliff-large rotate: false xy: 1433, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-command-center-medium +block-cliff-medium rotate: false - xy: 1737, 169 + xy: 1592, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-command-center-small +block-cliff-small rotate: false - xy: 1696, 41 + xy: 1414, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-command-center-tiny +block-cliff-tiny rotate: false - xy: 2376, 40 + xy: 3055, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-command-center-xlarge +block-cliff-xlarge rotate: false - xy: 1357, 463 + xy: 1257, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conduit-large +block-cliffs-large rotate: false xy: 1475, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conduit-medium +block-cliffs-medium rotate: false - xy: 1771, 169 + xy: 1626, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conduit-small +block-cliffs-small rotate: false - xy: 1722, 41 + xy: 1440, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conduit-tiny +block-cliffs-tiny rotate: false - xy: 2859, 152 + xy: 3073, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conduit-xlarge +block-cliffs-xlarge rotate: false - xy: 1407, 463 + xy: 1307, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-container-large +block-coal-centrifuge-large rotate: false xy: 1517, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-container-medium +block-coal-centrifuge-medium rotate: false - xy: 1805, 169 + xy: 1660, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-container-small +block-coal-centrifuge-small rotate: false - xy: 1748, 41 + xy: 1466, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-container-tiny +block-coal-centrifuge-tiny rotate: false - xy: 2877, 152 + xy: 3091, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-container-xlarge +block-coal-centrifuge-xlarge rotate: false - xy: 1457, 463 + xy: 1357, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-conveyor-large +block-combustion-generator-large rotate: false xy: 1559, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-conveyor-medium +block-combustion-generator-medium rotate: false - xy: 1839, 169 + xy: 1694, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-conveyor-small +block-combustion-generator-small rotate: false - xy: 1774, 41 + xy: 1492, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-conveyor-tiny +block-combustion-generator-tiny rotate: false - xy: 2895, 152 + xy: 3109, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-conveyor-xlarge +block-combustion-generator-xlarge rotate: false - xy: 1507, 463 + xy: 1407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-large +block-command-center-large rotate: false xy: 1601, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-copper-wall-large-large +block-command-center-medium + rotate: false + xy: 1728, 169 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-command-center-small + rotate: false + xy: 1518, 7 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-command-center-tiny + rotate: false + xy: 3127, 290 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-command-center-xlarge + rotate: false + xy: 1457, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-conduit-large rotate: false xy: 1643, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-copper-wall-large-medium +block-conduit-medium rotate: false - xy: 1873, 169 + xy: 1762, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-copper-wall-large-small +block-conduit-small rotate: false - xy: 1800, 41 + xy: 1544, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-copper-wall-large-tiny +block-conduit-tiny rotate: false - xy: 2913, 152 + xy: 3145, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-copper-wall-large-xlarge +block-conduit-xlarge rotate: false - xy: 1557, 463 + xy: 1507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-copper-wall-medium - rotate: false - xy: 1907, 169 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-copper-wall-small - rotate: false - xy: 1826, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-copper-wall-tiny - rotate: false - xy: 2931, 152 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-copper-wall-xlarge - rotate: false - xy: 1607, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-core-foundation-large +block-container-large rotate: false xy: 1685, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-foundation-medium +block-container-medium rotate: false - xy: 1941, 169 + xy: 1796, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-foundation-small +block-container-small rotate: false - xy: 1852, 41 + xy: 1570, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-foundation-tiny +block-container-tiny rotate: false - xy: 2949, 152 + xy: 3163, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-foundation-xlarge +block-container-xlarge rotate: false - xy: 1657, 463 + xy: 1557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-nucleus-large +block-conveyor-large rotate: false xy: 1727, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-nucleus-medium +block-conveyor-medium rotate: false - xy: 1975, 169 + xy: 1830, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-core-nucleus-small +block-conveyor-small rotate: false - xy: 1878, 41 + xy: 1596, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-core-nucleus-tiny +block-conveyor-tiny rotate: false - xy: 2967, 152 + xy: 3181, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-core-nucleus-xlarge +block-conveyor-xlarge rotate: false - xy: 1707, 463 + xy: 1607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-core-shard-large +block-copper-wall-large rotate: false xy: 1769, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-core-shard-medium - rotate: false - xy: 2009, 169 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-core-shard-small - rotate: false - xy: 1904, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-core-shard-tiny - rotate: false - xy: 2985, 152 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-core-shard-xlarge - rotate: false - xy: 1757, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-craters-large +block-copper-wall-large-large rotate: false xy: 1811, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-craters-medium +block-copper-wall-large-medium rotate: false - xy: 2043, 169 + xy: 1864, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-craters-small +block-copper-wall-large-small rotate: false - xy: 1930, 41 + xy: 1622, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-craters-tiny +block-copper-wall-large-tiny rotate: false - xy: 3003, 152 + xy: 3199, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-craters-xlarge +block-copper-wall-large-xlarge rotate: false - xy: 1807, 463 + xy: 1657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cryofluidmixer-large +block-copper-wall-medium + rotate: false + xy: 1898, 169 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-copper-wall-small + rotate: false + xy: 1648, 7 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-copper-wall-tiny + rotate: false + xy: 3217, 290 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-copper-wall-xlarge + rotate: false + xy: 1707, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-core-foundation-large rotate: false xy: 1853, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cryofluidmixer-medium +block-core-foundation-medium rotate: false - xy: 2077, 169 + xy: 1932, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cryofluidmixer-small +block-core-foundation-small rotate: false - xy: 1956, 41 + xy: 1674, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cryofluidmixer-tiny +block-core-foundation-tiny rotate: false - xy: 3021, 152 + xy: 3235, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cryofluidmixer-xlarge +block-core-foundation-xlarge rotate: false - xy: 1857, 463 + xy: 1757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cultivator-large +block-core-nucleus-large rotate: false xy: 1895, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cultivator-medium +block-core-nucleus-medium rotate: false - xy: 2111, 169 + xy: 1966, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cultivator-small +block-core-nucleus-small rotate: false - xy: 1982, 41 + xy: 1700, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cultivator-tiny +block-core-nucleus-tiny rotate: false - xy: 3039, 152 + xy: 3253, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cultivator-xlarge +block-core-nucleus-xlarge rotate: false - xy: 1907, 463 + xy: 1807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-cyclone-large +block-core-shard-large rotate: false xy: 1937, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-cyclone-medium +block-core-shard-medium rotate: false - xy: 2145, 169 + xy: 2000, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-cyclone-small +block-core-shard-small rotate: false - xy: 2008, 41 + xy: 1726, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-cyclone-tiny +block-core-shard-tiny rotate: false - xy: 3057, 152 + xy: 3271, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-cyclone-xlarge +block-core-shard-xlarge rotate: false - xy: 1957, 463 + xy: 1857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-metal-large +block-craters-large rotate: false xy: 1979, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-metal-medium +block-craters-medium rotate: false - xy: 2179, 169 + xy: 2034, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-metal-small +block-craters-small rotate: false - xy: 2034, 41 + xy: 1752, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-metal-tiny +block-craters-tiny rotate: false - xy: 3075, 152 + xy: 3289, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-metal-xlarge +block-craters-xlarge rotate: false - xy: 2007, 463 + xy: 1907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-1-large +block-cryofluidmixer-large rotate: false xy: 2021, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-1-medium +block-cryofluidmixer-medium rotate: false - xy: 2213, 169 + xy: 2068, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-1-small +block-cryofluidmixer-small rotate: false - xy: 2060, 41 + xy: 1778, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-1-tiny +block-cryofluidmixer-tiny rotate: false - xy: 3093, 152 + xy: 3307, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-1-xlarge +block-cryofluidmixer-xlarge rotate: false - xy: 2057, 463 + xy: 1957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-2-large +block-cultivator-large rotate: false xy: 2063, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-2-medium +block-cultivator-medium rotate: false - xy: 2247, 169 + xy: 2102, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-2-small +block-cultivator-small rotate: false - xy: 2086, 41 + xy: 1804, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-2-tiny +block-cultivator-tiny rotate: false - xy: 3111, 152 + xy: 3325, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-2-xlarge +block-cultivator-xlarge rotate: false - xy: 2107, 463 + xy: 2007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-3-large +block-cyclone-large rotate: false xy: 2105, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-3-medium +block-cyclone-medium rotate: false - xy: 2281, 169 + xy: 2136, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-3-small +block-cyclone-small rotate: false - xy: 2112, 41 + xy: 1830, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-3-tiny +block-cyclone-tiny rotate: false - xy: 3129, 152 + xy: 3343, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-3-xlarge +block-cyclone-xlarge rotate: false - xy: 2157, 463 + xy: 2057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-4-large +block-dacite-boulder-large rotate: false xy: 2147, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-4-medium +block-dacite-boulder-medium rotate: false - xy: 2315, 169 + xy: 2170, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-4-small +block-dacite-boulder-small rotate: false - xy: 2138, 41 + xy: 1856, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-4-tiny +block-dacite-boulder-tiny rotate: false - xy: 2394, 39 + xy: 3361, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-4-xlarge +block-dacite-boulder-xlarge rotate: false - xy: 2207, 463 + xy: 2107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dark-panel-5-large +block-dacite-large rotate: false xy: 2189, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-5-medium +block-dacite-medium rotate: false - xy: 3622, 363 + xy: 2204, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-5-small +block-dacite-small rotate: false - xy: 2164, 41 + xy: 1882, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-5-tiny +block-dacite-tiny rotate: false - xy: 2412, 39 + xy: 3379, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-5-xlarge - rotate: false - xy: 2257, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-dark-panel-6-large +block-dacite-wall-large rotate: false xy: 2231, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dark-panel-6-medium +block-dacite-wall-medium rotate: false - xy: 2349, 169 + xy: 2238, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dark-panel-6-small +block-dacite-wall-small rotate: false - xy: 2190, 41 + xy: 1908, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dark-panel-6-tiny +block-dacite-wall-tiny rotate: false - xy: 2365, 22 + xy: 3397, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dark-panel-6-xlarge +block-dacite-wall-xlarge rotate: false - xy: 2307, 463 + xy: 2157, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-large +block-dacite-xlarge + rotate: false + xy: 2207, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-metal-large rotate: false xy: 2273, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-darksand-medium +block-dark-metal-medium rotate: false - xy: 2383, 180 + xy: 2272, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-darksand-small +block-dark-metal-small rotate: false - xy: 2216, 41 + xy: 1934, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-darksand-tainted-water-large +block-dark-metal-tiny + rotate: false + xy: 3415, 290 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-dark-metal-xlarge + rotate: false + xy: 2257, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dark-panel-1-large rotate: false xy: 2315, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-darksand-tainted-water-medium +block-dark-panel-1-medium rotate: false - xy: 2417, 182 + xy: 2306, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-darksand-tainted-water-small +block-dark-panel-1-small rotate: false - xy: 2242, 41 + xy: 1960, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-darksand-tainted-water-tiny +block-dark-panel-1-tiny rotate: false - xy: 2365, 4 + xy: 3433, 290 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-darksand-tainted-water-xlarge +block-dark-panel-1-xlarge rotate: false - xy: 2357, 463 + xy: 2307, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-tiny - rotate: false - xy: 2383, 21 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-darksand-water-large +block-dark-panel-2-large rotate: false xy: 2357, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-darksand-water-medium +block-dark-panel-2-medium rotate: false - xy: 2451, 182 + xy: 2340, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-darksand-water-small +block-dark-panel-2-small rotate: false - xy: 2440, 122 + xy: 1986, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-darksand-water-tiny +block-dark-panel-2-tiny rotate: false - xy: 2401, 21 + xy: 2763, 180 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-darksand-water-xlarge +block-dark-panel-2-xlarge rotate: false - xy: 2407, 463 + xy: 2357, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-darksand-xlarge - rotate: false - xy: 2457, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-deepwater-large +block-dark-panel-3-large rotate: false xy: 2399, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-deepwater-medium +block-dark-panel-3-medium rotate: false - xy: 3217, 337 + xy: 2374, 169 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-deepwater-small +block-dark-panel-3-small rotate: false - xy: 2440, 96 + xy: 2012, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-deepwater-tiny +block-dark-panel-3-tiny rotate: false - xy: 2383, 3 + xy: 2745, 172 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-deepwater-xlarge +block-dark-panel-3-xlarge rotate: false - xy: 2507, 463 + xy: 2407, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-differential-generator-large +block-dark-panel-4-large rotate: false xy: 2441, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-differential-generator-medium +block-dark-panel-4-medium rotate: false - xy: 3251, 343 + xy: 3449, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-differential-generator-small +block-dark-panel-4-small rotate: false - xy: 881, 12 + xy: 2038, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-differential-generator-tiny +block-dark-panel-4-tiny rotate: false - xy: 2401, 3 + xy: 2763, 162 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-differential-generator-xlarge +block-dark-panel-4-xlarge rotate: false - xy: 2557, 463 + xy: 2457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-diode-large +block-dark-panel-5-large rotate: false xy: 2483, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-diode-medium +block-dark-panel-5-medium rotate: false - xy: 3659, 379 + xy: 3759, 346 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-diode-small +block-dark-panel-5-small rotate: false - xy: 907, 12 + xy: 2064, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-diode-tiny +block-dark-panel-5-tiny rotate: false - xy: 2419, 21 + xy: 2745, 154 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-diode-xlarge +block-dark-panel-5-xlarge rotate: false - xy: 2607, 463 + xy: 2507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-disassembler-large +block-dark-panel-6-large rotate: false xy: 2525, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-disassembler-medium +block-dark-panel-6-medium rotate: false - xy: 3693, 379 + xy: 2917, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-disassembler-small +block-dark-panel-6-small rotate: false - xy: 933, 12 + xy: 2090, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-disassembler-tiny +block-dark-panel-6-tiny rotate: false - xy: 2419, 3 + xy: 2763, 144 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-disassembler-xlarge +block-dark-panel-6-xlarge rotate: false - xy: 2657, 463 + xy: 2557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-distributor-large +block-darksand-large rotate: false xy: 2567, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-distributor-medium +block-darksand-medium rotate: false - xy: 3727, 379 + xy: 2951, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-distributor-small +block-darksand-small rotate: false - xy: 959, 12 + xy: 2116, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-distributor-tiny - rotate: false - xy: 3147, 160 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-distributor-xlarge - rotate: false - xy: 2707, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-door-large +block-darksand-tainted-water-large rotate: false xy: 2609, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-door-large-large +block-darksand-tainted-water-medium + rotate: false + xy: 2985, 308 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-small + rotate: false + xy: 2142, 7 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-tiny + rotate: false + xy: 2745, 136 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-tainted-water-xlarge + rotate: false + xy: 2607, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-darksand-tiny + rotate: false + xy: 2763, 126 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-darksand-water-large rotate: false xy: 2651, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-door-large-medium +block-darksand-water-medium rotate: false - xy: 3761, 379 + xy: 3019, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-large-small +block-darksand-water-small rotate: false - xy: 985, 12 + xy: 2372, 103 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-large-tiny +block-darksand-water-tiny rotate: false - xy: 3165, 160 + xy: 2745, 118 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-large-xlarge +block-darksand-water-xlarge rotate: false - xy: 2757, 463 + xy: 2657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-door-medium +block-darksand-xlarge rotate: false - xy: 3795, 379 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-door-small - rotate: false - xy: 1011, 12 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-door-tiny - rotate: false - xy: 3147, 142 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-door-xlarge - rotate: false - xy: 2807, 463 + xy: 2707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dunerocks-large +block-deepwater-large rotate: false xy: 2693, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dunerocks-medium +block-deepwater-medium rotate: false - xy: 3829, 379 + xy: 3053, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dunerocks-small +block-deepwater-small rotate: false - xy: 1037, 12 + xy: 3889, 346 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dunerocks-tiny +block-deepwater-tiny rotate: false - xy: 3165, 142 + xy: 2763, 108 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dunerocks-xlarge +block-deepwater-xlarge rotate: false - xy: 2857, 463 + xy: 2757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-duo-large +block-differential-generator-large rotate: false xy: 2735, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-duo-medium +block-differential-generator-medium rotate: false - xy: 3863, 379 + xy: 3087, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-duo-small +block-differential-generator-small rotate: false - xy: 1063, 12 + xy: 3915, 347 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-duo-tiny +block-differential-generator-tiny rotate: false - xy: 3183, 144 + xy: 2745, 100 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-duo-xlarge +block-differential-generator-xlarge rotate: false - xy: 2907, 463 + xy: 2807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-exponential-reconstructor-large +block-diode-large rotate: false xy: 2777, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-exponential-reconstructor-medium +block-diode-medium rotate: false - xy: 3897, 379 + xy: 3121, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-exponential-reconstructor-small +block-diode-small rotate: false - xy: 1089, 16 + xy: 2408, 120 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-exponential-reconstructor-tiny +block-diode-tiny rotate: false - xy: 2807, 149 + xy: 2763, 90 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-exponential-reconstructor-xlarge +block-diode-xlarge rotate: false - xy: 2957, 463 + xy: 2857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-force-projector-large +block-dirt-large rotate: false xy: 2819, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-force-projector-medium +block-dirt-medium rotate: false - xy: 3931, 379 + xy: 3155, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-force-projector-small +block-dirt-small rotate: false - xy: 2466, 122 + xy: 2434, 120 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-force-projector-tiny +block-dirt-tiny rotate: false - xy: 2825, 144 + xy: 2745, 82 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-force-projector-xlarge - rotate: false - xy: 3007, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-fuse-large +block-dirt-wall-large rotate: false xy: 2861, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-fuse-medium +block-dirt-wall-medium rotate: false - xy: 3965, 379 + xy: 3189, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-fuse-small +block-dirt-wall-small rotate: false - xy: 2466, 96 + xy: 2460, 120 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-fuse-tiny +block-dirt-wall-tiny rotate: false - xy: 3201, 139 + xy: 2763, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-fuse-xlarge +block-dirt-wall-xlarge rotate: false - xy: 3057, 463 + xy: 2907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-graphite-press-large +block-dirt-xlarge + rotate: false + xy: 2957, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-disassembler-large rotate: false xy: 2903, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-graphite-press-medium +block-disassembler-medium rotate: false - xy: 3999, 379 + xy: 3223, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-graphite-press-small +block-disassembler-small rotate: false - xy: 2377, 58 + xy: 2486, 123 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-graphite-press-tiny +block-disassembler-tiny rotate: false - xy: 3219, 139 + xy: 2745, 64 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-graphite-press-xlarge +block-disassembler-xlarge rotate: false - xy: 3107, 463 + xy: 3007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-grass-large +block-distributor-large rotate: false xy: 2945, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-grass-medium +block-distributor-medium rotate: false - xy: 2875, 308 + xy: 3257, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-grass-small +block-distributor-small rotate: false - xy: 2403, 57 + xy: 3757, 320 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-grass-tiny +block-distributor-tiny rotate: false - xy: 3237, 130 + xy: 2763, 54 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-grass-xlarge +block-distributor-xlarge rotate: false - xy: 3157, 463 + xy: 3057, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ground-factory-large +block-door-large rotate: false xy: 2987, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ground-factory-medium - rotate: false - xy: 2909, 308 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ground-factory-small - rotate: false - xy: 2440, 70 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ground-factory-tiny - rotate: false - xy: 3183, 126 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ground-factory-xlarge - rotate: false - xy: 3207, 463 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-hail-large +block-door-large-large rotate: false xy: 3029, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hail-medium +block-door-large-medium rotate: false - xy: 2943, 308 + xy: 3291, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hail-small +block-door-large-small rotate: false - xy: 2466, 70 + xy: 3889, 320 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hail-tiny +block-door-large-tiny rotate: false - xy: 3201, 121 + xy: 2745, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hail-xlarge +block-door-large-xlarge rotate: false - xy: 3257, 463 + xy: 3107, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-holostone-large +block-door-medium + rotate: false + xy: 3325, 308 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-door-small + rotate: false + xy: 3915, 321 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-door-tiny + rotate: false + xy: 2745, 28 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-door-xlarge + rotate: false + xy: 3157, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-dune-wall-large rotate: false xy: 3071, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-holostone-medium +block-dune-wall-medium rotate: false - xy: 2977, 308 + xy: 3359, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-holostone-small +block-dune-wall-small rotate: false - xy: 1115, 7 + xy: 2266, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-holostone-tiny +block-dune-wall-tiny rotate: false - xy: 3219, 121 + xy: 2763, 36 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-holostone-xlarge +block-dune-wall-xlarge rotate: false - xy: 3307, 463 + xy: 3207, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hotrock-large +block-duo-large rotate: false xy: 3113, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hotrock-medium +block-duo-medium rotate: false - xy: 3011, 308 + xy: 3393, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hotrock-small +block-duo-small rotate: false - xy: 1141, 7 + xy: 3509, 337 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hotrock-tiny +block-duo-tiny rotate: false - xy: 3237, 112 + xy: 2763, 18 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hotrock-xlarge +block-duo-xlarge rotate: false - xy: 3357, 463 + xy: 3257, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hyper-processor-large +block-exponential-reconstructor-large rotate: false xy: 3155, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hyper-processor-medium +block-exponential-reconstructor-medium rotate: false - xy: 3045, 308 + xy: 3427, 308 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hyper-processor-small +block-exponential-reconstructor-small rotate: false - xy: 1167, 7 + xy: 3535, 337 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hyper-processor-tiny +block-exponential-reconstructor-tiny rotate: false - xy: 3255, 127 + xy: 2745, 10 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hyper-processor-xlarge +block-exponential-reconstructor-xlarge rotate: false - xy: 3407, 463 + xy: 3307, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-large +block-force-projector-large rotate: false xy: 3197, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ice-medium +block-force-projector-medium rotate: false - xy: 3079, 308 + xy: 3461, 309 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-small +block-force-projector-small rotate: false - xy: 1193, 7 + xy: 3561, 337 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ice-snow-large +block-force-projector-tiny rotate: false - xy: 859, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-snow-medium - rotate: false - xy: 3113, 308 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-small - rotate: false - xy: 3651, 319 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ice-snow-tiny - rotate: false - xy: 3255, 109 + xy: 2667, 6 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-snow-xlarge +block-force-projector-xlarge + rotate: false + xy: 3357, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-fuse-large + rotate: false + xy: 3239, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-fuse-medium + rotate: false + xy: 2825, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-fuse-small + rotate: false + xy: 3587, 337 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-fuse-tiny + rotate: false + xy: 2685, 6 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-fuse-xlarge + rotate: false + xy: 3407, 463 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-graphite-press-large + rotate: false + xy: 3281, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-graphite-press-medium + rotate: false + xy: 2859, 287 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-graphite-press-small + rotate: false + xy: 3613, 337 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-graphite-press-tiny + rotate: false + xy: 2703, 6 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-graphite-press-xlarge rotate: false xy: 3457, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-tiny +block-grass-large rotate: false - xy: 2563, 201 + xy: 3323, 371 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-grass-medium + rotate: false + xy: 2413, 180 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-grass-small + rotate: false + xy: 2292, 37 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-grass-tiny + rotate: false + xy: 2721, 6 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-xlarge +block-grass-xlarge rotate: false xy: 3507, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-icerocks-large +block-ground-factory-large rotate: false - xy: 859, 287 + xy: 3365, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-icerocks-medium +block-ground-factory-medium rotate: false - xy: 3147, 308 + xy: 3793, 339 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-icerocks-small +block-ground-factory-small rotate: false - xy: 3677, 319 + xy: 2304, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-icerocks-tiny +block-ground-factory-tiny rotate: false - xy: 2581, 202 + xy: 2899, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-icerocks-xlarge +block-ground-factory-xlarge rotate: false xy: 3557, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ignarock-large +block-hail-large rotate: false - xy: 901, 329 + xy: 3407, 371 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ignarock-medium +block-hail-medium rotate: false - xy: 3181, 308 + xy: 3659, 338 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ignarock-small +block-hail-small rotate: false - xy: 3703, 319 + xy: 3495, 311 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ignarock-tiny +block-hail-tiny rotate: false - xy: 2563, 183 + xy: 2899, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ignarock-xlarge +block-hail-xlarge rotate: false xy: 3607, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-illuminator-large +block-hotrock-large rotate: false - xy: 859, 245 + xy: 859, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-illuminator-medium +block-hotrock-medium rotate: false - xy: 3215, 303 + xy: 3693, 329 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-illuminator-small +block-hotrock-small rotate: false - xy: 3729, 319 + xy: 3521, 311 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-illuminator-tiny +block-hotrock-tiny rotate: false - xy: 2581, 184 + xy: 2917, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-illuminator-xlarge +block-hotrock-xlarge rotate: false xy: 3657, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-impact-reactor-large +block-hyper-processor-large rotate: false - xy: 901, 287 + xy: 859, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-impact-reactor-medium +block-hyper-processor-medium rotate: false - xy: 3656, 345 + xy: 2447, 180 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-impact-reactor-small +block-hyper-processor-small rotate: false - xy: 3755, 319 + xy: 3547, 311 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-impact-reactor-tiny +block-hyper-processor-tiny rotate: false - xy: 2599, 180 + xy: 2899, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-impact-reactor-xlarge +block-hyper-processor-xlarge rotate: false xy: 3707, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-incinerator-large +block-ice-large rotate: false - xy: 943, 329 + xy: 901, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-incinerator-medium +block-ice-medium rotate: false - xy: 3690, 345 + xy: 2481, 183 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-incinerator-small +block-ice-small rotate: false - xy: 3781, 319 + xy: 3573, 311 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-incinerator-tiny +block-ice-snow-large rotate: false - xy: 2617, 180 + xy: 859, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-snow-medium + rotate: false + xy: 2515, 185 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-snow-small + rotate: false + xy: 3599, 311 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-snow-tiny + rotate: false + xy: 2917, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-incinerator-xlarge +block-ice-snow-xlarge rotate: false xy: 3757, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-inverted-sorter-large +block-ice-tiny rotate: false - xy: 859, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-inverted-sorter-medium - rotate: false - xy: 3724, 345 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-inverted-sorter-small - rotate: false - xy: 3807, 319 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-inverted-sorter-tiny - rotate: false - xy: 2635, 180 + xy: 2935, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-inverted-sorter-xlarge +block-ice-wall-large + rotate: false + xy: 901, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-wall-medium + rotate: false + xy: 2549, 191 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-wall-small + rotate: false + xy: 3625, 311 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-wall-tiny + rotate: false + xy: 2899, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ice-wall-xlarge rotate: false xy: 3807, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-source-large - rotate: false - xy: 901, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-item-source-medium - rotate: false - xy: 3758, 345 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-item-source-small - rotate: false - xy: 3833, 319 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-item-source-tiny - rotate: false - xy: 2653, 180 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-item-source-xlarge +block-ice-xlarge rotate: false xy: 3857, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-void-large +block-illuminator-large rotate: false - xy: 943, 287 + xy: 943, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-void-medium +block-illuminator-medium rotate: false - xy: 3792, 345 + xy: 2695, 253 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-void-small +block-illuminator-small rotate: false - xy: 3859, 319 + xy: 3651, 312 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-void-tiny +block-illuminator-tiny rotate: false - xy: 2671, 180 + xy: 2917, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-void-xlarge +block-illuminator-xlarge rotate: false xy: 3907, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-junction-large +block-impact-reactor-large rotate: false - xy: 985, 329 + xy: 859, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-junction-medium +block-impact-reactor-medium rotate: false - xy: 3826, 345 + xy: 2729, 260 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-junction-small +block-impact-reactor-small rotate: false - xy: 3885, 319 + xy: 2318, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-junction-tiny +block-impact-reactor-tiny rotate: false - xy: 2581, 166 + xy: 2935, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-junction-xlarge +block-impact-reactor-xlarge rotate: false xy: 3957, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-kiln-large +block-incinerator-large rotate: false - xy: 901, 203 + xy: 901, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-kiln-medium +block-incinerator-medium rotate: false - xy: 3860, 345 + xy: 2763, 266 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-kiln-small +block-incinerator-small rotate: false - xy: 3911, 319 + xy: 2330, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-kiln-tiny +block-incinerator-tiny rotate: false - xy: 2599, 162 + xy: 2953, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-kiln-xlarge +block-incinerator-xlarge rotate: false xy: 4007, 463 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-lancer-large +block-inverted-sorter-large rotate: false - xy: 943, 245 + xy: 943, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-lancer-medium +block-inverted-sorter-medium rotate: false - xy: 3894, 345 + xy: 2729, 226 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-lancer-small +block-inverted-sorter-small rotate: false - xy: 3937, 319 + xy: 2344, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-lancer-tiny +block-inverted-sorter-tiny rotate: false - xy: 2617, 162 + xy: 2899, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-lancer-xlarge +block-inverted-sorter-xlarge rotate: false xy: 345, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-laser-drill-large +block-item-source-large rotate: false - xy: 985, 287 + xy: 985, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-laser-drill-medium +block-item-source-medium rotate: false - xy: 3928, 345 + xy: 2763, 232 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-laser-drill-small +block-item-source-small rotate: false - xy: 3963, 319 + xy: 2356, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-laser-drill-tiny +block-item-source-tiny rotate: false - xy: 2635, 162 + xy: 2917, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-laser-drill-xlarge +block-item-source-xlarge rotate: false xy: 395, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-large +block-item-void-large rotate: false - xy: 1027, 329 + xy: 901, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-launch-pad-large-large - rotate: false - xy: 943, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-launch-pad-large-medium - rotate: false - xy: 3962, 345 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-launch-pad-large-small - rotate: false - xy: 3989, 319 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-launch-pad-large-tiny - rotate: false - xy: 2653, 162 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-launch-pad-large-xlarge - rotate: false - xy: 445, 354 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-launch-pad-medium - rotate: false - xy: 3996, 345 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-launch-pad-small - rotate: false - xy: 4015, 319 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-launch-pad-tiny - rotate: false - xy: 2671, 162 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-launch-pad-xlarge - rotate: false - xy: 495, 354 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-junction-large - rotate: false - xy: 985, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-junction-medium - rotate: false - xy: 2383, 146 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-junction-small - rotate: false - xy: 4059, 371 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-junction-tiny - rotate: false - xy: 2570, 148 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-junction-xlarge - rotate: false - xy: 545, 354 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-router-large - rotate: false - xy: 1027, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-router-medium - rotate: false - xy: 2417, 148 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-router-small - rotate: false - xy: 4033, 361 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-router-tiny - rotate: false - xy: 2570, 130 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-router-xlarge - rotate: false - xy: 595, 354 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-source-large - rotate: false - xy: 1069, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-source-medium - rotate: false - xy: 2451, 148 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-source-small - rotate: false - xy: 4059, 345 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-source-tiny - rotate: false - xy: 2570, 112 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-source-xlarge - rotate: false - xy: 645, 354 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-tank-large - rotate: false - xy: 985, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-tank-medium - rotate: false - xy: 2497, 219 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-tank-small - rotate: false - xy: 4041, 319 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-tank-tiny - rotate: false - xy: 2570, 94 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-tank-xlarge - rotate: false - xy: 695, 354 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-liquid-void-large - rotate: false - xy: 1027, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-void-medium - rotate: false - xy: 3454, 337 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-liquid-void-small - rotate: false - xy: 4067, 319 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-liquid-void-tiny - rotate: false - xy: 2570, 76 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-liquid-void-xlarge - rotate: false - xy: 231, 96 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-logic-display-large - rotate: false - xy: 1069, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-logic-display-medium - rotate: false - xy: 3488, 337 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-logic-display-small - rotate: false - xy: 2275, 48 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-logic-display-tiny - rotate: false - xy: 2570, 58 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-logic-display-xlarge - rotate: false - xy: 231, 46 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-logic-processor-large - rotate: false - xy: 1111, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-logic-processor-medium - rotate: false - xy: 3522, 337 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-logic-processor-small - rotate: false - xy: 2301, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-logic-processor-tiny - rotate: false - xy: 2570, 40 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-logic-processor-xlarge - rotate: false - xy: 745, 354 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-magmarock-large - rotate: false - xy: 1027, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-magmarock-medium - rotate: false - xy: 3556, 337 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-magmarock-small - rotate: false - xy: 2327, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-magmarock-tiny - rotate: false - xy: 2588, 144 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-magmarock-xlarge - rotate: false - xy: 281, 107 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-mass-driver-large - rotate: false - xy: 1069, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mass-driver-medium - rotate: false - xy: 2531, 219 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mass-driver-small - rotate: false - xy: 1221, 14 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mass-driver-tiny - rotate: false - xy: 2588, 126 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mass-driver-xlarge - rotate: false - xy: 281, 57 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-mechanical-drill-large - rotate: false - xy: 1111, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mechanical-drill-medium - rotate: false - xy: 2565, 220 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mechanical-drill-small - rotate: false - xy: 1247, 14 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mechanical-drill-tiny - rotate: false - xy: 2588, 108 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mechanical-drill-xlarge - rotate: false - xy: 795, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-mechanical-pump-large - rotate: false - xy: 1153, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mechanical-pump-medium - rotate: false - xy: 2599, 224 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mechanical-pump-small - rotate: false - xy: 1273, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mechanical-pump-tiny - rotate: false - xy: 2606, 144 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mechanical-pump-xlarge - rotate: false - xy: 309, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-meltdown-large - rotate: false - xy: 1069, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-meltdown-medium - rotate: false - xy: 2633, 224 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-meltdown-small - rotate: false - xy: 1299, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-meltdown-tiny - rotate: false - xy: 2606, 126 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-meltdown-xlarge - rotate: false - xy: 309, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-melter-large - rotate: false - xy: 1111, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-melter-medium - rotate: false - xy: 2667, 224 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-melter-small - rotate: false - xy: 1325, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-melter-tiny - rotate: false - xy: 2606, 108 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-melter-xlarge - rotate: false - 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: 1195, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mend-projector-medium - rotate: false - xy: 2701, 226 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mend-projector-small - rotate: false - xy: 1377, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mend-projector-tiny - rotate: false - xy: 2624, 144 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mend-projector-xlarge - rotate: false - xy: 359, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-mender-large - rotate: false - xy: 1111, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-mender-medium - rotate: false - xy: 2741, 260 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-mender-small - rotate: false - xy: 1403, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-mender-tiny - rotate: false - xy: 2624, 126 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-mender-xlarge - rotate: false - xy: 409, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-message-large - rotate: false - xy: 1153, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-message-medium - rotate: false - xy: 2735, 226 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-message-small - rotate: false - xy: 1429, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-message-tiny - rotate: false - xy: 2624, 108 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-message-xlarge - rotate: false - xy: 359, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-2-large - rotate: false - xy: 1195, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-2-medium - rotate: false - xy: 2775, 266 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-2-small - rotate: false - xy: 1455, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-2-tiny - rotate: false - xy: 2588, 72 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-2-xlarge - rotate: false - xy: 409, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-3-large - rotate: false - xy: 1237, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-3-medium - rotate: false - xy: 2809, 266 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-3-small - rotate: false - xy: 1481, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-3-tiny - rotate: false - xy: 2606, 90 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-3-xlarge - rotate: false - xy: 459, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-5-large - rotate: false - xy: 1153, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-5-medium - rotate: false - xy: 2843, 266 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-5-small - rotate: false - xy: 1507, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-5-tiny - rotate: false - xy: 2642, 144 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-5-xlarge - rotate: false - xy: 409, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-large - rotate: false - xy: 1195, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-medium - rotate: false - xy: 2877, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-small - rotate: false - xy: 1533, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-tiny - rotate: false - xy: 2642, 126 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-damaged-xlarge - rotate: false - xy: 459, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-metal-floor-large - rotate: false - xy: 1237, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-metal-floor-medium - rotate: false - xy: 2911, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-metal-floor-small - rotate: false - xy: 1559, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-metal-floor-tiny - rotate: false - xy: 2642, 108 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-metal-floor-xlarge - rotate: false - xy: 509, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-micro-processor-large - rotate: false - xy: 1279, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-micro-processor-medium - rotate: false - xy: 2945, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-micro-processor-small - rotate: false - xy: 1585, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-micro-processor-tiny - rotate: false - xy: 2588, 54 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-micro-processor-xlarge - rotate: false - xy: 459, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-moss-large - rotate: false - xy: 1195, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-moss-medium - rotate: false - xy: 2979, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-moss-small - rotate: false - xy: 1611, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-moss-tiny - rotate: false - xy: 2606, 72 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-moss-xlarge - rotate: false - xy: 509, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-multi-press-large - rotate: false - xy: 1237, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-multi-press-medium - rotate: false - xy: 3013, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-multi-press-small - rotate: false - xy: 1637, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-multi-press-tiny - rotate: false - xy: 2624, 90 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-multi-press-xlarge - rotate: false - xy: 559, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-multiplicative-reconstructor-large - rotate: false - xy: 1279, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-multiplicative-reconstructor-medium - rotate: false - xy: 3047, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-multiplicative-reconstructor-small - rotate: false - xy: 1663, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-multiplicative-reconstructor-tiny - rotate: false - xy: 2660, 144 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-multiplicative-reconstructor-xlarge - rotate: false - xy: 509, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-naval-factory-large - rotate: false - xy: 1321, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-naval-factory-medium - rotate: false - xy: 3081, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-naval-factory-small - rotate: false - xy: 1689, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-naval-factory-tiny - rotate: false - xy: 2660, 126 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-naval-factory-xlarge - rotate: false - xy: 559, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-oil-extractor-large - rotate: false - xy: 1237, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-oil-extractor-medium - rotate: false - xy: 3115, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-oil-extractor-small - rotate: false - xy: 1715, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-oil-extractor-tiny - rotate: false - xy: 2660, 108 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-oil-extractor-xlarge - rotate: false - xy: 609, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ore-coal-large - rotate: false - xy: 1279, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-coal-medium - rotate: false - xy: 3149, 274 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-coal-small - rotate: false - xy: 1741, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-coal-tiny - rotate: false - xy: 2606, 54 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-coal-xlarge - rotate: false - xy: 559, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ore-copper-large - rotate: false - xy: 1321, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-copper-medium - rotate: false - xy: 2877, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-copper-small - rotate: false - xy: 1767, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-copper-tiny - rotate: false - xy: 2624, 72 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-copper-xlarge - rotate: false - xy: 609, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ore-lead-large - rotate: false - xy: 1363, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-lead-medium - rotate: false - xy: 2911, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-lead-small - rotate: false - xy: 1793, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-lead-tiny - rotate: false - xy: 2642, 90 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-lead-xlarge - rotate: false - xy: 659, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ore-scrap-large - rotate: false - xy: 1279, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-scrap-medium - rotate: false - xy: 2945, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-scrap-small - rotate: false - xy: 1819, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-scrap-tiny - rotate: false - xy: 2624, 54 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-scrap-xlarge - rotate: false - xy: 609, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ore-thorium-large - rotate: false - xy: 1321, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-thorium-medium - rotate: false - xy: 2979, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-thorium-small - rotate: false - xy: 1845, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-thorium-tiny - rotate: false - xy: 2642, 72 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-thorium-xlarge - rotate: false - xy: 659, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-ore-titanium-large - rotate: false - xy: 1363, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-titanium-medium - rotate: false - xy: 3013, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-titanium-small - rotate: false - xy: 1871, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-titanium-tiny - rotate: false - xy: 2660, 90 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-titanium-xlarge - rotate: false - xy: 709, 304 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-overdrive-dome-large - rotate: false - xy: 1405, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-overdrive-dome-medium - rotate: false - xy: 3047, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-overdrive-dome-small - rotate: false - xy: 1897, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-overdrive-dome-tiny - rotate: false - xy: 2642, 54 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-overdrive-dome-xlarge - rotate: false - xy: 659, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-overdrive-projector-large - rotate: false - xy: 1321, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-overdrive-projector-medium - rotate: false - xy: 3081, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-overdrive-projector-small - rotate: false - xy: 1923, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-overdrive-projector-tiny - rotate: false - xy: 2660, 72 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-overdrive-projector-xlarge - rotate: false - xy: 709, 254 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-overflow-gate-large - rotate: false - xy: 1363, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-overflow-gate-medium - rotate: false - xy: 3115, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-overflow-gate-small - rotate: false - xy: 1949, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-overflow-gate-tiny - rotate: false - xy: 2660, 54 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-overflow-gate-xlarge - rotate: false - xy: 709, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-parallax-large - rotate: false - xy: 1405, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-parallax-medium - rotate: false - xy: 3149, 240 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-parallax-small - rotate: false - xy: 1975, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-parallax-tiny - rotate: false - xy: 2588, 36 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-parallax-xlarge - rotate: false - 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 +block-item-void-medium rotate: false xy: 881, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-payload-conveyor-small +block-item-void-small rotate: false - xy: 2001, 15 + xy: 2370, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-payload-conveyor-tiny +block-item-void-tiny rotate: false - xy: 2606, 36 + xy: 2935, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-payload-conveyor-xlarge +block-item-void-xlarge rotate: false - xy: 759, 254 + xy: 445, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-payload-router-large +block-junction-large rotate: false - xy: 1363, 203 + xy: 943, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-payload-router-medium - rotate: false - xy: 915, 140 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-payload-router-small - rotate: false - xy: 2027, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-payload-router-tiny - rotate: false - xy: 2624, 36 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-payload-router-xlarge - rotate: false - xy: 759, 204 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-pebbles-large - rotate: false - xy: 1405, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pebbles-medium +block-junction-medium rotate: false xy: 881, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pebbles-small +block-junction-small rotate: false - xy: 2053, 15 + xy: 2382, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pebbles-tiny +block-junction-tiny rotate: false - xy: 2642, 36 + xy: 2953, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pebbles-xlarge +block-junction-xlarge rotate: false - xy: 809, 316 + xy: 495, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conduit-large +block-kiln-large rotate: false - xy: 1447, 287 + xy: 985, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conduit-medium +block-kiln-medium rotate: false - xy: 949, 140 + xy: 915, 140 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conduit-small +block-kiln-small rotate: false - xy: 2079, 15 + xy: 2396, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conduit-tiny +block-kiln-tiny rotate: false - xy: 2660, 36 + xy: 2971, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conduit-xlarge +block-kiln-xlarge rotate: false - xy: 809, 266 + xy: 545, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conveyor-large +block-lancer-large rotate: false - xy: 1489, 329 + xy: 1027, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-lancer-medium rotate: false xy: 881, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-lancer-small rotate: false - xy: 2105, 15 + xy: 2408, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-lancer-tiny rotate: false - xy: 2678, 144 + xy: 2917, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-lancer-xlarge rotate: false - xy: 809, 216 + xy: 595, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large +block-laser-drill-large rotate: false - xy: 1405, 203 + xy: 943, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-large - rotate: false - xy: 1447, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-medium +block-laser-drill-medium rotate: false xy: 915, 106 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-large-small +block-laser-drill-small rotate: false - xy: 2131, 15 + xy: 2422, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-large-tiny +block-laser-drill-tiny rotate: false - xy: 2678, 126 + xy: 2935, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-large-xlarge +block-laser-drill-xlarge rotate: false - xy: 809, 166 + xy: 645, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-medium +block-launch-pad-large rotate: false - xy: 983, 140 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-phase-wall-small - rotate: false - xy: 2157, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-phase-wall-tiny - rotate: false - xy: 2678, 108 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-phase-wall-xlarge - rotate: false - xy: 281, 7 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-phase-weaver-large - rotate: false - xy: 1489, 287 + xy: 985, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-launch-pad-large-large + rotate: false + xy: 1027, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-launch-pad-large-medium rotate: false xy: 881, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-launch-pad-large-small rotate: false - xy: 2183, 15 + xy: 2434, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-launch-pad-large-tiny rotate: false - xy: 2678, 90 + xy: 2953, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-launch-pad-large-xlarge rotate: false - xy: 331, 154 + xy: 695, 354 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large - rotate: false - xy: 1531, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pine-medium +block-launch-pad-medium rotate: false xy: 915, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pine-small +block-launch-pad-small rotate: false - xy: 2209, 15 + xy: 2448, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pine-tiny +block-launch-pad-tiny rotate: false - xy: 2678, 72 + xy: 2971, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pine-xlarge +block-launch-pad-xlarge rotate: false - xy: 331, 104 + xy: 231, 96 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-compressor-large +block-liquid-junction-large rotate: false - xy: 1447, 203 + xy: 1069, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-compressor-medium - rotate: false - xy: 949, 106 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-plastanium-compressor-small - rotate: false - xy: 2235, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-plastanium-compressor-tiny - rotate: false - xy: 2678, 54 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-plastanium-compressor-xlarge - rotate: false - xy: 381, 154 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-large - rotate: false - xy: 1489, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-medium - rotate: false - xy: 1017, 140 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-small - rotate: false - xy: 2261, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-tiny - rotate: false - xy: 2678, 36 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-plastanium-conveyor-xlarge - rotate: false - xy: 331, 54 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-plastanium-wall-large - rotate: false - xy: 1531, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-large - rotate: false - xy: 1573, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-medium +block-liquid-junction-medium rotate: false xy: 915, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-large-small +block-liquid-junction-small rotate: false - xy: 2287, 15 + xy: 2460, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-large-tiny +block-liquid-junction-tiny rotate: false - xy: 2570, 22 + xy: 2989, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-large-xlarge +block-liquid-junction-xlarge rotate: false - xy: 381, 104 + xy: 231, 46 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-medium +block-liquid-router-large + rotate: false + xy: 985, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-liquid-router-medium + rotate: false + xy: 949, 140 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-liquid-router-small + rotate: false + xy: 2474, 37 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-liquid-router-tiny + rotate: false + xy: 2935, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-liquid-router-xlarge + rotate: false + xy: 745, 354 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-liquid-source-large + rotate: false + xy: 1027, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-liquid-source-medium + rotate: false + xy: 949, 106 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-liquid-source-small + rotate: false + xy: 2486, 63 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-liquid-source-tiny + rotate: false + xy: 2953, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-liquid-source-xlarge + rotate: false + xy: 281, 107 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-liquid-tank-large + rotate: false + xy: 1069, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-liquid-tank-medium rotate: false xy: 949, 72 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-small +block-liquid-tank-small rotate: false - xy: 2313, 15 + xy: 2500, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-tiny +block-liquid-tank-tiny rotate: false - xy: 2588, 18 + xy: 2971, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-xlarge +block-liquid-tank-xlarge rotate: false - xy: 431, 154 + xy: 281, 57 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plated-conduit-large +block-liquid-void-large rotate: false - xy: 1489, 203 + xy: 1111, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plated-conduit-medium - rotate: false - xy: 983, 106 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-plated-conduit-small - rotate: false - xy: 2339, 15 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-plated-conduit-tiny - rotate: false - xy: 2606, 18 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-plated-conduit-xlarge - rotate: false - xy: 381, 54 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-pneumatic-drill-large - rotate: false - xy: 1531, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pneumatic-drill-medium - rotate: false - xy: 1051, 140 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-pneumatic-drill-small - rotate: false - xy: 3251, 317 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-pneumatic-drill-tiny - rotate: false - xy: 2624, 18 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-pneumatic-drill-xlarge - rotate: false - xy: 431, 104 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-power-node-large - rotate: false - xy: 1573, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-large - rotate: false - xy: 1615, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-medium +block-liquid-void-medium rotate: false xy: 949, 38 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-large-small +block-liquid-void-small rotate: false - xy: 3249, 291 + xy: 2512, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-large-tiny +block-liquid-void-tiny rotate: false - xy: 2642, 18 + xy: 2989, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-large-xlarge +block-liquid-void-xlarge rotate: false - xy: 481, 154 + xy: 795, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-medium +block-logic-display-large rotate: false - xy: 983, 72 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-power-node-small - rotate: false - xy: 3245, 265 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-power-node-tiny - rotate: false - xy: 2660, 18 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-power-node-xlarge - rotate: false - xy: 431, 54 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-power-source-large - rotate: false - xy: 1531, 203 + xy: 1027, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-source-medium +block-logic-display-medium rotate: false - xy: 1017, 106 + xy: 881, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-source-small +block-logic-display-small rotate: false - xy: 3277, 317 + xy: 2538, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-source-tiny +block-logic-display-tiny rotate: false - xy: 2678, 18 + xy: 3007, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-source-xlarge +block-logic-display-xlarge rotate: false - xy: 481, 104 + xy: 309, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-void-large +block-logic-processor-large rotate: false - xy: 1573, 245 + xy: 1069, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-void-medium +block-logic-processor-medium rotate: false - xy: 983, 38 + xy: 915, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-void-small +block-logic-processor-small rotate: false - xy: 3275, 291 + xy: 2526, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-void-tiny +block-logic-processor-tiny rotate: false - xy: 3273, 117 + xy: 2953, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-void-xlarge +block-logic-processor-xlarge rotate: false - xy: 531, 154 + xy: 309, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulse-conduit-large +block-magmarock-large rotate: false - xy: 1615, 287 + xy: 1111, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulse-conduit-medium +block-magmarock-medium rotate: false - xy: 1017, 72 + xy: 949, 4 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulse-conduit-small +block-magmarock-small rotate: false - xy: 3271, 265 + xy: 2564, 63 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulse-conduit-tiny +block-magmarock-tiny rotate: false - xy: 3291, 117 + xy: 2971, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulse-conduit-xlarge +block-magmarock-xlarge rotate: false - xy: 481, 54 + xy: 359, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulverizer-large +block-mass-driver-large rotate: false - xy: 1657, 329 + xy: 1153, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulverizer-medium +block-mass-driver-medium rotate: false - xy: 1051, 106 + xy: 2408, 146 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulverizer-small +block-mass-driver-small rotate: false - xy: 2769, 234 + xy: 2552, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulverizer-tiny +block-mass-driver-tiny rotate: false - xy: 3309, 117 + xy: 2989, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulverizer-xlarge +block-mass-driver-xlarge rotate: false - xy: 531, 104 + xy: 309, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pyratite-mixer-large +block-mechanical-drill-large rotate: false - xy: 1573, 203 + xy: 1069, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pyratite-mixer-medium +block-mechanical-drill-medium rotate: false - xy: 1017, 38 + xy: 2442, 146 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pyratite-mixer-small +block-mechanical-drill-small rotate: false - xy: 2795, 240 + xy: 2590, 70 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pyratite-mixer-tiny +block-mechanical-drill-tiny rotate: false - xy: 3327, 117 + xy: 3007, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pyratite-mixer-xlarge +block-mechanical-drill-xlarge rotate: false - xy: 581, 154 + xy: 359, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-repair-point-large +block-mechanical-pump-large rotate: false - xy: 1615, 245 + xy: 1111, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-repair-point-medium +block-mechanical-pump-medium rotate: false - xy: 1051, 72 + xy: 2549, 157 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-repair-point-small +block-mechanical-pump-small rotate: false - xy: 2821, 240 + xy: 2578, 37 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-repair-point-tiny +block-mechanical-pump-tiny rotate: false - xy: 3345, 117 + xy: 3025, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-repair-point-xlarge +block-mechanical-pump-xlarge rotate: false - xy: 531, 54 + xy: 409, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-resupply-point-large +block-meltdown-large rotate: false - xy: 1657, 287 + xy: 1153, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-resupply-point-medium +block-meltdown-medium rotate: false - xy: 1051, 38 + xy: 2515, 151 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-resupply-point-small +block-meltdown-small rotate: false - xy: 2847, 240 + xy: 2609, 96 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-resupply-point-tiny +block-meltdown-tiny rotate: false - xy: 3363, 117 + xy: 2971, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-resupply-point-xlarge +block-meltdown-xlarge rotate: false - xy: 581, 104 + xy: 359, 204 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ripple-large +block-melter-large rotate: false - xy: 1699, 329 + xy: 1195, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ripple-medium +block-melter-medium + rotate: false + xy: 2481, 149 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-melter-small + rotate: false + xy: 2616, 70 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-melter-tiny + rotate: false + xy: 2989, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-melter-xlarge + rotate: false + xy: 409, 254 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-memory-cell-large + rotate: false + xy: 1111, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-memory-cell-medium + rotate: false + xy: 2797, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-memory-cell-small + rotate: false + xy: 2604, 44 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-memory-cell-tiny + rotate: false + xy: 3007, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-memory-cell-xlarge + rotate: false + xy: 459, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-mend-projector-large + rotate: false + xy: 1153, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-mend-projector-medium + rotate: false + xy: 2831, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-mend-projector-small + rotate: false + xy: 2630, 44 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-mend-projector-tiny + rotate: false + xy: 3025, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-mend-projector-xlarge + rotate: false + xy: 409, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-mender-large + rotate: false + xy: 1195, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-mender-medium + rotate: false + xy: 2865, 253 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-mender-small + rotate: false + xy: 3783, 313 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-mender-tiny + rotate: false + xy: 3043, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-mender-xlarge + rotate: false + xy: 459, 254 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-message-large + rotate: false + xy: 1237, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-message-medium + rotate: false + xy: 2797, 219 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-message-small + rotate: false + xy: 3941, 337 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-message-tiny + rotate: false + xy: 2989, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-message-xlarge + rotate: false + xy: 509, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-2-large + rotate: false + xy: 1153, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-2-medium + rotate: false + xy: 2831, 219 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-2-small + rotate: false + xy: 3967, 337 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-2-tiny + rotate: false + xy: 3007, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-2-xlarge + rotate: false + xy: 459, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-3-large + rotate: false + xy: 1195, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-3-medium + rotate: false + xy: 2865, 219 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-3-small + rotate: false + xy: 3993, 337 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-3-tiny + rotate: false + xy: 3025, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-3-xlarge + rotate: false + xy: 509, 254 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-5-large + rotate: false + xy: 1237, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-5-medium + rotate: false + xy: 2763, 198 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-5-small + rotate: false + xy: 4019, 337 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-5-tiny + rotate: false + xy: 3043, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-5-xlarge + rotate: false + xy: 559, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-large + rotate: false + xy: 1279, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-medium + rotate: false + xy: 2797, 185 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-small + rotate: false + xy: 3941, 311 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-tiny + rotate: false + xy: 3061, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-damaged-xlarge + rotate: false + xy: 509, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-metal-floor-large + rotate: false + xy: 1195, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-metal-floor-medium + rotate: false + xy: 2831, 185 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-metal-floor-small + rotate: false + xy: 3967, 311 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-metal-floor-tiny + rotate: false + xy: 3007, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-metal-floor-xlarge + rotate: false + xy: 559, 254 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-micro-processor-large + rotate: false + xy: 1237, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-micro-processor-medium + rotate: false + xy: 2865, 185 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-micro-processor-small + rotate: false + xy: 3993, 311 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-micro-processor-tiny + rotate: false + xy: 3025, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-micro-processor-xlarge + rotate: false + xy: 609, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-moss-large + rotate: false + xy: 1279, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-moss-medium + rotate: false + xy: 2549, 123 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-moss-small + rotate: false + xy: 4019, 311 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-moss-tiny + rotate: false + xy: 3043, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-moss-xlarge + rotate: false + xy: 559, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-multi-press-large + rotate: false + xy: 1321, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-multi-press-medium + rotate: false + xy: 2515, 117 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-multi-press-small + rotate: false + xy: 4045, 329 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-multi-press-tiny + rotate: false + xy: 3061, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-multi-press-xlarge + rotate: false + xy: 609, 254 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-multiplicative-reconstructor-large + rotate: false + xy: 1237, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-multiplicative-reconstructor-medium + rotate: false + xy: 2549, 89 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-multiplicative-reconstructor-small + rotate: false + xy: 4071, 329 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-multiplicative-reconstructor-tiny + rotate: false + xy: 3079, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-multiplicative-reconstructor-xlarge + rotate: false + xy: 659, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-naval-factory-large + rotate: false + xy: 1279, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-naval-factory-medium + rotate: false + xy: 983, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-naval-factory-small + rotate: false + xy: 4045, 303 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-naval-factory-tiny + rotate: false + xy: 3025, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-naval-factory-xlarge + rotate: false + xy: 609, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-oil-extractor-large + rotate: false + xy: 1321, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-oil-extractor-medium + rotate: false + xy: 1017, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-oil-extractor-small + rotate: false + xy: 4071, 303 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-oil-extractor-tiny + rotate: false + xy: 3043, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-oil-extractor-xlarge + rotate: false + xy: 659, 254 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ore-coal-large + rotate: false + xy: 1363, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ore-coal-medium + rotate: false + xy: 983, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-coal-small + rotate: false + xy: 3915, 295 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ore-coal-tiny + rotate: false + xy: 3061, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ore-coal-xlarge + rotate: false + xy: 709, 304 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ore-copper-large + rotate: false + xy: 1279, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ore-copper-medium + rotate: false + xy: 1051, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-copper-small + rotate: false + xy: 3941, 285 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ore-copper-tiny + rotate: false + xy: 3079, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ore-copper-xlarge + rotate: false + xy: 659, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ore-lead-large + rotate: false + xy: 1321, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ore-lead-medium + rotate: false + xy: 983, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-lead-small + rotate: false + xy: 3967, 285 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ore-lead-tiny + rotate: false + xy: 3097, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ore-lead-xlarge + rotate: false + xy: 709, 254 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ore-scrap-large + rotate: false + xy: 1363, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ore-scrap-medium + rotate: false + xy: 1017, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ore-scrap-small + rotate: false + xy: 3993, 285 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ore-scrap-tiny + rotate: false + xy: 3043, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ore-scrap-xlarge + rotate: false + xy: 709, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ore-thorium-large + rotate: false + xy: 1405, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ore-thorium-medium rotate: false xy: 1085, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ripple-small +block-ore-thorium-small rotate: false - xy: 2769, 208 + xy: 4019, 285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ripple-tiny +block-ore-thorium-tiny rotate: false - xy: 3381, 117 + xy: 3061, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ripple-xlarge +block-ore-thorium-xlarge rotate: false - xy: 631, 154 + xy: 759, 304 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rock-large +block-ore-titanium-large rotate: false - xy: 1615, 203 + xy: 1321, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rock-medium +block-ore-titanium-medium rotate: false - xy: 1085, 101 + xy: 983, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rock-small +block-ore-titanium-small rotate: false - xy: 2795, 214 + xy: 4045, 277 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rock-tiny +block-ore-titanium-tiny rotate: false - xy: 3273, 99 + xy: 3079, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rock-xlarge +block-ore-titanium-xlarge rotate: false - xy: 581, 54 + xy: 759, 254 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rocks-large +block-overdrive-dome-large rotate: false - xy: 1657, 245 + xy: 1363, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rocks-medium +block-overdrive-dome-medium + rotate: false + xy: 1017, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-overdrive-dome-small + rotate: false + xy: 4071, 277 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-overdrive-dome-tiny + rotate: false + xy: 3097, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-overdrive-dome-xlarge + rotate: false + xy: 759, 204 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-overdrive-projector-large + rotate: false + xy: 1405, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-overdrive-projector-medium + rotate: false + xy: 1051, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-overdrive-projector-small + rotate: false + xy: 2173, 14 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-overdrive-projector-tiny + rotate: false + xy: 3115, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-overdrive-projector-xlarge + rotate: false + xy: 809, 316 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-overflow-gate-large + rotate: false + xy: 1447, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-overflow-gate-medium rotate: false xy: 1119, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rocks-small +block-overflow-gate-small rotate: false - xy: 2821, 214 + xy: 2199, 14 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rocks-tiny +block-overflow-gate-tiny rotate: false - xy: 3291, 99 + xy: 3061, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rocks-xlarge +block-overflow-gate-xlarge + rotate: false + xy: 809, 266 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-parallax-large + rotate: false + xy: 1363, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-parallax-medium + rotate: false + xy: 1017, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-parallax-small + rotate: false + xy: 2225, 14 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-parallax-tiny + rotate: false + xy: 3079, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-parallax-xlarge + rotate: false + xy: 809, 216 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-payload-conveyor-large + rotate: false + xy: 1405, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-payload-conveyor-medium + rotate: false + xy: 1051, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-payload-conveyor-small + rotate: false + xy: 2251, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-payload-conveyor-tiny + rotate: false + xy: 3097, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-payload-conveyor-xlarge + rotate: false + xy: 809, 166 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-payload-router-large + rotate: false + xy: 1447, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-payload-router-medium + rotate: false + xy: 1085, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-payload-router-small + rotate: false + xy: 2277, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-payload-router-tiny + rotate: false + xy: 3115, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-payload-router-xlarge + rotate: false + xy: 281, 7 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pebbles-large + rotate: false + xy: 1489, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pebbles-medium + rotate: false + xy: 1153, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pebbles-small + rotate: false + xy: 2303, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pebbles-tiny + rotate: false + xy: 3133, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pebbles-xlarge + rotate: false + xy: 331, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-conduit-large + rotate: false + xy: 1405, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-conduit-medium + rotate: false + xy: 1051, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-conduit-small + rotate: false + xy: 2329, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-conduit-tiny + rotate: false + xy: 3079, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-conduit-xlarge + rotate: false + xy: 331, 104 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-conveyor-large + rotate: false + xy: 1447, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-conveyor-medium + rotate: false + xy: 1085, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-conveyor-small + rotate: false + xy: 2355, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-conveyor-tiny + rotate: false + xy: 3097, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-conveyor-xlarge + rotate: false + xy: 381, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-wall-large + rotate: false + xy: 1489, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-large + rotate: false + xy: 1531, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-medium + rotate: false + xy: 1119, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-wall-large-small + rotate: false + xy: 2381, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-wall-large-tiny + rotate: false + xy: 3115, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-wall-large-xlarge + rotate: false + xy: 331, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-wall-medium + rotate: false + xy: 1187, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-wall-small + rotate: false + xy: 2407, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-wall-tiny + rotate: false + xy: 3133, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-wall-xlarge + rotate: false + xy: 381, 104 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-phase-weaver-large + rotate: false + xy: 1447, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-weaver-medium + rotate: false + xy: 1085, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-phase-weaver-small + rotate: false + xy: 2433, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-phase-weaver-tiny + rotate: false + xy: 3151, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-phase-weaver-xlarge + rotate: false + xy: 431, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pine-large + rotate: false + xy: 1489, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pine-medium + rotate: false + xy: 1119, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pine-small + rotate: false + xy: 2459, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pine-tiny + rotate: false + xy: 3097, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pine-xlarge + rotate: false + xy: 381, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-compressor-large + rotate: false + xy: 1531, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-compressor-medium + rotate: false + xy: 1153, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-compressor-small + rotate: false + xy: 2485, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-compressor-tiny + rotate: false + xy: 3115, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-compressor-xlarge + rotate: false + xy: 431, 104 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-large + rotate: false + xy: 1573, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-medium + rotate: false + xy: 1221, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-small + rotate: false + xy: 2511, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-tiny + rotate: false + xy: 3133, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-conveyor-xlarge + rotate: false + xy: 481, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-wall-large + rotate: false + xy: 1489, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-large + rotate: false + xy: 1531, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-medium + rotate: false + xy: 1119, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-small + rotate: false + xy: 2537, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-tiny + rotate: false + xy: 3151, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-xlarge + rotate: false + xy: 431, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plastanium-wall-medium + rotate: false + xy: 1153, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plastanium-wall-small + rotate: false + xy: 2563, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plastanium-wall-tiny + rotate: false + xy: 3169, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plastanium-wall-xlarge + rotate: false + xy: 481, 104 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-plated-conduit-large + rotate: false + xy: 1573, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plated-conduit-medium + rotate: false + xy: 1187, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-plated-conduit-small + rotate: false + xy: 2589, 11 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-plated-conduit-tiny + rotate: false + xy: 3115, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-plated-conduit-xlarge + rotate: false + xy: 531, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pneumatic-drill-large + rotate: false + xy: 1615, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pneumatic-drill-medium + rotate: false + xy: 1255, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pneumatic-drill-small + rotate: false + xy: 2615, 18 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pneumatic-drill-tiny + rotate: false + xy: 3133, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pneumatic-drill-xlarge + rotate: false + xy: 481, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-node-large + rotate: false + xy: 1531, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-large + rotate: false + xy: 1573, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-medium + rotate: false + xy: 1153, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-node-large-small + rotate: false + xy: 2641, 18 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-node-large-tiny + rotate: false + xy: 3151, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-node-large-xlarge + rotate: false + xy: 531, 104 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-node-medium + rotate: false + xy: 1187, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-node-small + rotate: false + xy: 2398, 94 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-node-tiny + rotate: false + xy: 3169, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-node-xlarge + rotate: false + xy: 581, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-source-large + rotate: false + xy: 1615, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-source-medium + rotate: false + xy: 1221, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-source-small + rotate: false + xy: 2424, 94 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-source-tiny + rotate: false + xy: 3187, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-source-xlarge + rotate: false + xy: 531, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-power-void-large + rotate: false + xy: 1657, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-void-medium + rotate: false + xy: 1289, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-power-void-small + rotate: false + xy: 2450, 94 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-power-void-tiny + rotate: false + xy: 3133, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-power-void-xlarge + rotate: false + xy: 581, 104 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pulse-conduit-large + rotate: false + xy: 1573, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pulse-conduit-medium + rotate: false + xy: 1187, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pulse-conduit-small + rotate: false + xy: 2476, 94 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pulse-conduit-tiny + rotate: false + xy: 3151, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pulse-conduit-xlarge + rotate: false + xy: 631, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pulverizer-large + rotate: false + xy: 1615, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pulverizer-medium + rotate: false + xy: 1221, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pulverizer-small + rotate: false + xy: 2502, 91 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pulverizer-tiny + rotate: false + xy: 3169, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pulverizer-xlarge + rotate: false + xy: 581, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-pyratite-mixer-large + rotate: false + xy: 1657, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pyratite-mixer-medium + rotate: false + xy: 1255, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-pyratite-mixer-small + rotate: false + xy: 2577, 228 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-pyratite-mixer-tiny + rotate: false + xy: 3187, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-pyratite-mixer-xlarge rotate: false xy: 631, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-repair-point-large + rotate: false + xy: 1699, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-repair-point-medium + rotate: false + xy: 1323, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-repair-point-small + rotate: false + xy: 2603, 232 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-repair-point-tiny + rotate: false + xy: 3205, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-repair-point-xlarge + rotate: false + xy: 681, 154 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-resupply-point-large + rotate: false + xy: 1615, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-resupply-point-medium + rotate: false + xy: 1221, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-resupply-point-small + rotate: false + xy: 2629, 232 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-resupply-point-tiny + rotate: false + xy: 3151, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-resupply-point-xlarge + rotate: false + xy: 631, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-ripple-large + rotate: false + xy: 1657, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ripple-medium + rotate: false + xy: 1255, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ripple-small + rotate: false + xy: 2655, 232 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ripple-tiny + rotate: false + xy: 3169, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-ripple-xlarge + rotate: false + xy: 681, 104 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 block-rotary-pump-large rotate: false xy: 1699, 287 @@ -15292,28 +15691,28 @@ block-rotary-pump-large index: -1 block-rotary-pump-medium rotate: false - xy: 1085, 67 + xy: 1289, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rotary-pump-small rotate: false - xy: 2847, 214 + xy: 2583, 202 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-rotary-pump-tiny rotate: false - xy: 3309, 99 + xy: 3187, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-rotary-pump-xlarge rotate: false - xy: 681, 154 + xy: 731, 154 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15327,28 +15726,28 @@ block-router-large index: -1 block-router-medium rotate: false - xy: 1119, 101 + xy: 1357, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-router-small rotate: false - xy: 2873, 214 + xy: 2609, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-router-tiny rotate: false - xy: 3327, 99 + xy: 3205, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-router-xlarge rotate: false - xy: 631, 54 + xy: 681, 54 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15362,28 +15761,28 @@ block-rtg-generator-large index: -1 block-rtg-generator-medium rotate: false - xy: 1153, 135 + xy: 1255, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-rtg-generator-small rotate: false - xy: 2899, 214 + xy: 2635, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-rtg-generator-tiny rotate: false - xy: 3345, 99 + xy: 3223, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-rtg-generator-xlarge rotate: false - xy: 681, 104 + xy: 731, 104 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15397,63 +15796,63 @@ block-salt-large index: -1 block-salt-medium rotate: false - xy: 1119, 67 + xy: 1289, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salt-small rotate: false - xy: 2925, 214 + xy: 2661, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-salt-tiny rotate: false - xy: 3363, 99 + xy: 3169, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salt-xlarge - rotate: false - xy: 731, 154 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-saltrocks-large +block-salt-wall-large rotate: false xy: 1741, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-saltrocks-medium +block-salt-wall-medium rotate: false - xy: 1153, 101 + xy: 1323, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-saltrocks-small +block-salt-wall-small rotate: false - xy: 2951, 214 + xy: 2612, 180 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-saltrocks-tiny +block-salt-wall-tiny rotate: false - xy: 3381, 99 + xy: 3187, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-saltrocks-xlarge +block-salt-wall-xlarge rotate: false - xy: 681, 54 + xy: 731, 54 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-salt-xlarge + rotate: false + xy: 331, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15467,28 +15866,28 @@ block-salvo-large index: -1 block-salvo-medium rotate: false - xy: 1187, 135 + xy: 1391, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-salvo-small rotate: false - xy: 2977, 214 + xy: 2612, 154 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-salvo-tiny rotate: false - xy: 2781, 144 + xy: 3205, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-salvo-xlarge rotate: false - xy: 731, 104 + xy: 381, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15502,28 +15901,28 @@ block-sand-boulder-large index: -1 block-sand-boulder-medium rotate: false - xy: 1153, 67 + xy: 1289, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-boulder-small rotate: false - xy: 3003, 214 + xy: 2638, 180 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sand-boulder-tiny rotate: false - xy: 3303, 319 + xy: 3223, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sand-boulder-xlarge rotate: false - xy: 731, 54 + xy: 431, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15537,98 +15936,98 @@ block-sand-large index: -1 block-sand-medium rotate: false - xy: 1187, 101 + xy: 1323, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-small rotate: false - xy: 3029, 214 + xy: 2612, 128 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sand-tiny rotate: false - xy: 3327, 345 + xy: 3241, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-water-large +block-sand-wall-large rotate: false xy: 1783, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-water-medium +block-sand-wall-medium rotate: false - xy: 1221, 135 + xy: 1357, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-water-small +block-sand-wall-small rotate: false - xy: 3055, 214 + xy: 2638, 154 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-water-tiny +block-sand-wall-tiny rotate: false - xy: 3345, 345 + xy: 3187, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-water-xlarge +block-sand-wall-xlarge rotate: false - xy: 331, 4 + xy: 481, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-xlarge - rotate: false - xy: 381, 4 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-sandrocks-large +block-sand-water-large rotate: false xy: 1825, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sandrocks-medium +block-sand-water-medium rotate: false - xy: 1187, 67 + xy: 1425, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sandrocks-small +block-sand-water-small rotate: false - xy: 3081, 214 + xy: 2638, 128 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sandrocks-tiny +block-sand-water-tiny rotate: false - xy: 3363, 345 + xy: 3205, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sandrocks-xlarge +block-sand-water-xlarge rotate: false - xy: 431, 4 + xy: 531, 4 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-sand-xlarge + rotate: false + xy: 581, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15642,28 +16041,28 @@ block-scatter-large index: -1 block-scatter-medium rotate: false - xy: 1221, 101 + xy: 1323, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scatter-small rotate: false - xy: 3107, 214 + xy: 2664, 180 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scatter-tiny rotate: false - xy: 3381, 345 + xy: 3223, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scatter-xlarge rotate: false - xy: 481, 4 + xy: 631, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15677,28 +16076,28 @@ block-scorch-large index: -1 block-scorch-medium rotate: false - xy: 1255, 135 + xy: 1357, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scorch-small rotate: false - xy: 3133, 214 + xy: 2664, 154 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scorch-tiny rotate: false - xy: 3399, 345 + xy: 3241, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scorch-xlarge rotate: false - xy: 531, 4 + xy: 681, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15712,28 +16111,28 @@ block-scrap-wall-gigantic-large index: -1 block-scrap-wall-gigantic-medium rotate: false - xy: 1221, 67 + xy: 1391, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-gigantic-small rotate: false - xy: 2795, 188 + xy: 2664, 128 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-gigantic-tiny rotate: false - xy: 3417, 345 + xy: 3259, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-gigantic-xlarge rotate: false - xy: 581, 4 + xy: 731, 4 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15747,28 +16146,28 @@ block-scrap-wall-huge-large index: -1 block-scrap-wall-huge-medium rotate: false - xy: 1255, 101 + xy: 1459, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-huge-small rotate: false - xy: 2821, 188 + xy: 2635, 102 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-huge-tiny rotate: false - xy: 3435, 345 + xy: 3205, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-huge-xlarge rotate: false - xy: 631, 4 + xy: 781, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15789,56 +16188,56 @@ block-scrap-wall-large-large index: -1 block-scrap-wall-large-medium rotate: false - xy: 1289, 135 + xy: 1357, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-large-small rotate: false - xy: 2847, 188 + xy: 2661, 102 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-large-tiny rotate: false - xy: 3321, 327 + xy: 3223, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-large-xlarge rotate: false - xy: 681, 4 + xy: 781, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-scrap-wall-medium rotate: false - xy: 1255, 67 + xy: 1391, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-small rotate: false - xy: 2873, 188 + xy: 2642, 76 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-scrap-wall-tiny rotate: false - xy: 3339, 327 + xy: 3241, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-scrap-wall-xlarge rotate: false - xy: 731, 4 + xy: 781, 16 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15852,28 +16251,28 @@ block-segment-large index: -1 block-segment-medium rotate: false - xy: 1289, 101 + xy: 1425, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-segment-small rotate: false - xy: 2899, 188 + xy: 2668, 76 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-segment-tiny rotate: false - xy: 3357, 327 + xy: 3259, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-segment-xlarge rotate: false - xy: 781, 116 + xy: 831, 116 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15887,28 +16286,28 @@ block-separator-large index: -1 block-separator-medium rotate: false - xy: 1323, 135 + xy: 1493, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-separator-small rotate: false - xy: 2925, 188 + xy: 2656, 50 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-separator-tiny rotate: false - xy: 3375, 327 + xy: 3277, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-separator-xlarge rotate: false - xy: 781, 66 + xy: 831, 66 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15922,28 +16321,28 @@ block-shale-boulder-large index: -1 block-shale-boulder-medium rotate: false - xy: 1289, 67 + xy: 1391, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-boulder-small rotate: false - xy: 2951, 188 + xy: 2682, 50 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shale-boulder-tiny rotate: false - xy: 3393, 327 + xy: 3223, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shale-boulder-xlarge rotate: false - xy: 781, 16 + xy: 831, 16 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -15957,63 +16356,63 @@ block-shale-large index: -1 block-shale-medium rotate: false - xy: 1323, 101 + xy: 1425, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-small rotate: false - xy: 2977, 188 + xy: 2667, 24 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shale-tiny rotate: false - xy: 3411, 327 + xy: 3241, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-xlarge - rotate: false - xy: 831, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-shalerocks-large +block-shale-wall-large rotate: false xy: 1909, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shalerocks-medium +block-shale-wall-medium rotate: false - xy: 1357, 135 + xy: 1459, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shalerocks-small +block-shale-wall-small rotate: false - xy: 3003, 188 + xy: 2693, 24 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shalerocks-tiny +block-shale-wall-tiny rotate: false - xy: 3429, 327 + xy: 3259, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shalerocks-xlarge +block-shale-wall-xlarge rotate: false - xy: 831, 66 + xy: 859, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-shale-xlarge + rotate: false + xy: 909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16027,28 +16426,28 @@ block-shock-mine-large index: -1 block-shock-mine-medium rotate: false - xy: 1323, 67 + xy: 1527, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shock-mine-small rotate: false - xy: 3029, 188 + xy: 2687, 102 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shock-mine-tiny rotate: false - xy: 3327, 309 + xy: 3277, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shock-mine-xlarge rotate: false - xy: 831, 16 + xy: 959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16062,28 +16461,28 @@ block-shrubs-large index: -1 block-shrubs-medium rotate: false - xy: 1357, 101 + xy: 1425, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-small rotate: false - xy: 3055, 188 + xy: 2694, 76 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-shrubs-tiny rotate: false - xy: 3327, 291 + xy: 3295, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-shrubs-xlarge rotate: false - xy: 859, 413 + xy: 1009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16097,28 +16496,28 @@ block-silicon-crucible-large index: -1 block-silicon-crucible-medium rotate: false - xy: 1391, 135 + xy: 1459, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-silicon-crucible-small rotate: false - xy: 3081, 188 + xy: 2708, 50 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-silicon-crucible-tiny rotate: false - xy: 3345, 309 + xy: 3241, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-silicon-crucible-xlarge rotate: false - xy: 909, 413 + xy: 1059, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16132,28 +16531,28 @@ block-silicon-smelter-large index: -1 block-silicon-smelter-medium rotate: false - xy: 1357, 67 + xy: 1493, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-silicon-smelter-small rotate: false - xy: 3107, 188 + xy: 2719, 24 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-silicon-smelter-tiny rotate: false - xy: 3345, 291 + xy: 3259, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-silicon-smelter-xlarge rotate: false - xy: 959, 413 + xy: 1109, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16167,168 +16566,168 @@ block-slag-large index: -1 block-slag-medium rotate: false - xy: 1391, 101 + xy: 1561, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-slag-small rotate: false - xy: 3133, 188 + xy: 3809, 307 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-slag-tiny rotate: false - xy: 3363, 309 + xy: 3277, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-slag-xlarge rotate: false - xy: 1009, 413 + xy: 1159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-large +block-snow-boulder-large rotate: false xy: 1909, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-medium +block-snow-boulder-medium rotate: false - xy: 1425, 135 + xy: 1459, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-large +block-snow-boulder-small + rotate: false + xy: 3835, 306 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-boulder-tiny + rotate: false + xy: 3295, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-boulder-xlarge + rotate: false + xy: 1209, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snow-large rotate: false xy: 1951, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-pine-medium +block-snow-medium rotate: false - xy: 1391, 67 + xy: 1493, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-small - rotate: false - xy: 3241, 237 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snow-pine-tiny - rotate: false - xy: 3381, 309 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snow-pine-xlarge - rotate: false - xy: 1059, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snow-small - rotate: false - xy: 3267, 239 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-snow-tiny - rotate: false - xy: 3399, 309 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-snow-xlarge - rotate: false - xy: 1109, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-snowrock-large +block-snow-pine-large rotate: false xy: 1993, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrock-medium +block-snow-pine-medium rotate: false - xy: 1425, 101 + xy: 1527, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrock-small +block-snow-pine-small rotate: false - xy: 3241, 211 + xy: 3861, 306 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrock-tiny +block-snow-pine-tiny rotate: false - xy: 3363, 291 + xy: 3313, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrock-xlarge +block-snow-pine-xlarge rotate: false - xy: 1159, 413 + xy: 1259, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-large +block-snow-small + rotate: false + xy: 3887, 294 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-snow-tiny + rotate: false + xy: 3259, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-snow-wall-large rotate: false xy: 2035, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrocks-medium +block-snow-wall-medium rotate: false - xy: 1459, 135 + xy: 1595, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrocks-small +block-snow-wall-small rotate: false - xy: 3267, 213 + xy: 3495, 285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrocks-tiny +block-snow-wall-tiny rotate: false - xy: 3349, 273 + xy: 3277, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrocks-xlarge +block-snow-wall-xlarge rotate: false - xy: 1209, 413 + xy: 1309, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-snow-xlarge + rotate: false + xy: 1359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16349,56 +16748,56 @@ block-solar-panel-large-large index: -1 block-solar-panel-large-medium rotate: false - xy: 1425, 67 + xy: 1493, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-large-small rotate: false - xy: 3297, 265 + xy: 3521, 285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-solar-panel-large-tiny rotate: false - xy: 3417, 309 + xy: 3295, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-solar-panel-large-xlarge rotate: false - xy: 1259, 413 + xy: 1409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-solar-panel-medium rotate: false - xy: 1459, 101 + xy: 1527, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-small rotate: false - xy: 3293, 239 + xy: 3547, 285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-solar-panel-tiny rotate: false - xy: 3381, 291 + xy: 3313, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-solar-panel-xlarge rotate: false - xy: 1309, 413 + xy: 1459, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16412,28 +16811,28 @@ block-sorter-large index: -1 block-sorter-medium rotate: false - xy: 1493, 135 + xy: 1561, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sorter-small rotate: false - xy: 3293, 213 + xy: 3573, 285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-sorter-tiny rotate: false - xy: 3399, 291 + xy: 3331, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-sorter-xlarge rotate: false - xy: 1359, 413 + xy: 1509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16447,28 +16846,28 @@ block-spawn-large index: -1 block-spawn-medium rotate: false - xy: 1459, 67 + xy: 1629, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spawn-small rotate: false - xy: 3301, 291 + xy: 3599, 285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spawn-tiny rotate: false - xy: 3367, 273 + xy: 3277, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spawn-xlarge rotate: false - xy: 1409, 413 + xy: 1559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16482,28 +16881,28 @@ block-spectre-large index: -1 block-spectre-medium rotate: false - xy: 1493, 101 + xy: 1527, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spectre-small rotate: false - xy: 2599, 198 + xy: 3625, 285 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spectre-tiny rotate: false - xy: 3417, 291 + xy: 3295, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spectre-xlarge rotate: false - xy: 1459, 413 + xy: 1609, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16517,28 +16916,28 @@ block-spore-cluster-large index: -1 block-spore-cluster-medium rotate: false - xy: 1527, 135 + xy: 1561, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-cluster-small rotate: false - xy: 2625, 198 + xy: 3651, 286 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-cluster-tiny rotate: false - xy: 3385, 273 + xy: 3313, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-cluster-xlarge rotate: false - xy: 1509, 413 + xy: 1659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16552,28 +16951,28 @@ block-spore-moss-large index: -1 block-spore-moss-medium rotate: false - xy: 1493, 67 + xy: 1595, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-moss-small rotate: false - xy: 2651, 198 + xy: 3677, 303 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-moss-tiny rotate: false - xy: 3403, 273 + xy: 3331, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-moss-xlarge rotate: false - xy: 1559, 413 + xy: 1709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16587,28 +16986,28 @@ block-spore-pine-large index: -1 block-spore-pine-medium rotate: false - xy: 1527, 101 + xy: 1663, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-pine-small rotate: false - xy: 2677, 198 + xy: 3703, 303 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-pine-tiny rotate: false - xy: 3421, 273 + xy: 3349, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-pine-xlarge rotate: false - xy: 1609, 413 + xy: 1759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -16622,984 +17021,1019 @@ block-spore-press-large index: -1 block-spore-press-medium rotate: false - xy: 1561, 135 + xy: 1561, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-press-small rotate: false - xy: 2703, 200 + xy: 3729, 303 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-spore-press-tiny rotate: false - xy: 3435, 309 + xy: 3295, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-spore-press-xlarge rotate: false - xy: 1659, 413 + xy: 1809, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sporerocks-large +block-spore-wall-large rotate: false xy: 2077, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sporerocks-medium - rotate: false - xy: 1527, 67 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sporerocks-small - rotate: false - xy: 2729, 200 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sporerocks-tiny - rotate: false - xy: 3435, 291 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sporerocks-xlarge - rotate: false - xy: 1709, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-stone-large - rotate: false - xy: 2119, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-stone-medium - rotate: false - xy: 1561, 101 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-stone-small - rotate: false - xy: 3319, 239 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-stone-tiny - rotate: false - xy: 3439, 273 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-stone-xlarge - rotate: false - xy: 1759, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-tower-large - rotate: false - xy: 2161, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-tower-medium - rotate: false - xy: 1595, 135 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-tower-small - rotate: false - xy: 3319, 213 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-tower-tiny - rotate: false - xy: 3371, 255 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-tower-xlarge - rotate: false - xy: 1809, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-wall-large - rotate: false - xy: 2077, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-large - rotate: false - xy: 2119, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-medium - rotate: false - xy: 1561, 67 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-wall-large-small - rotate: false - xy: 3323, 265 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-wall-large-tiny - rotate: false - xy: 3371, 237 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-wall-large-xlarge - rotate: false - xy: 1859, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-surge-wall-medium - rotate: false - xy: 1595, 101 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-surge-wall-small - rotate: false - xy: 2485, 190 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-surge-wall-tiny - rotate: false - xy: 3389, 255 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-surge-wall-xlarge - rotate: false - xy: 1909, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-swarmer-large - rotate: false - xy: 2161, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-swarmer-medium - rotate: false - xy: 1629, 135 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-swarmer-small - rotate: false - xy: 2485, 164 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-swarmer-tiny - rotate: false - xy: 3371, 219 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-swarmer-xlarge - rotate: false - 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 +block-spore-wall-medium rotate: false xy: 1595, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-switch-small +block-spore-wall-small rotate: false - xy: 2511, 193 + xy: 3677, 277 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-switch-tiny +block-spore-wall-tiny rotate: false - xy: 3407, 255 + xy: 3313, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-switch-xlarge +block-spore-wall-xlarge rotate: false - xy: 2009, 413 + xy: 1859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tainted-water-large +block-steam-generator-large rotate: false - xy: 2119, 203 + xy: 2119, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tainted-water-medium +block-steam-generator-medium rotate: false xy: 1629, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tainted-water-small +block-steam-generator-small rotate: false - xy: 2537, 193 + xy: 3703, 277 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tainted-water-tiny +block-steam-generator-tiny rotate: false - xy: 3389, 237 + xy: 3331, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tainted-water-xlarge +block-steam-generator-xlarge rotate: false - xy: 2059, 413 + xy: 1909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tar-large +block-stone-large rotate: false - xy: 2161, 245 + xy: 2161, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tar-medium - rotate: false - xy: 1663, 135 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tar-small - rotate: false - xy: 2511, 167 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tar-tiny - rotate: false - xy: 3425, 255 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tar-xlarge - rotate: false - xy: 2109, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tendrils-large - rotate: false - xy: 2203, 287 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tendrils-medium - rotate: false - xy: 1629, 67 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tendrils-small - rotate: false - xy: 2537, 167 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tendrils-tiny - rotate: false - xy: 3407, 237 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tendrils-xlarge - rotate: false - xy: 2159, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-large - rotate: false - xy: 2245, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-medium - rotate: false - xy: 1663, 101 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-small - rotate: false - xy: 3345, 239 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-tiny - rotate: false - xy: 3389, 219 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-tetrative-reconstructor-xlarge - rotate: false - xy: 2209, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thermal-generator-large - rotate: false - xy: 2161, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thermal-generator-medium +block-stone-medium rotate: false xy: 1697, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-generator-small +block-stone-small rotate: false - xy: 3345, 213 + xy: 3729, 277 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-generator-tiny +block-stone-tiny rotate: false - xy: 3425, 237 + xy: 3349, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-generator-xlarge +block-stone-wall-large rotate: false - xy: 2259, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thermal-pump-large - rotate: false - xy: 2203, 245 + xy: 2077, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-pump-medium +block-stone-wall-medium rotate: false - xy: 1663, 67 + xy: 1595, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-pump-small +block-stone-wall-small rotate: false - xy: 2492, 138 + xy: 3755, 294 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-pump-tiny +block-stone-wall-tiny rotate: false - xy: 3407, 219 + xy: 3367, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-pump-xlarge +block-stone-wall-xlarge rotate: false - xy: 2309, 413 + xy: 1959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-reactor-large +block-stone-xlarge rotate: false - xy: 2245, 287 + xy: 2009, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-surge-tower-large + rotate: false + xy: 2119, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-reactor-medium +block-surge-tower-medium rotate: false - xy: 1697, 101 + xy: 1629, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-reactor-small +block-surge-tower-small rotate: false - xy: 2492, 112 + xy: 3755, 268 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-reactor-tiny +block-surge-tower-tiny rotate: false - xy: 3425, 219 + xy: 3313, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-reactor-xlarge +block-surge-tower-xlarge rotate: false - xy: 2359, 413 + xy: 2059, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-large +block-surge-wall-large rotate: false - xy: 2287, 329 + xy: 2161, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-surge-wall-large-large rotate: false - xy: 2203, 203 + xy: 2203, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-medium +block-surge-wall-large-medium + rotate: false + xy: 1663, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-surge-wall-large-small + rotate: false + xy: 3781, 287 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-surge-wall-large-tiny + rotate: false + xy: 3331, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-surge-wall-large-xlarge + rotate: false + xy: 2109, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-surge-wall-medium rotate: false xy: 1731, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-surge-wall-small rotate: false - xy: 2492, 86 + xy: 3781, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-surge-wall-tiny rotate: false - xy: 3443, 255 + xy: 3349, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-surge-wall-xlarge rotate: false - xy: 2409, 413 + xy: 2159, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium +block-swarmer-large rotate: false - xy: 1697, 67 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thorium-wall-small - rotate: false - xy: 2518, 141 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thorium-wall-tiny - rotate: false - xy: 3443, 237 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thorium-wall-xlarge - rotate: false - xy: 2459, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-thruster-large - rotate: false - xy: 2245, 245 + xy: 2119, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium +block-swarmer-medium rotate: false - xy: 1731, 101 + xy: 1629, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thruster-small +block-swarmer-small rotate: false - xy: 2518, 115 + xy: 3807, 281 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thruster-tiny +block-swarmer-tiny rotate: false - xy: 3443, 219 + xy: 3367, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thruster-xlarge +block-swarmer-xlarge rotate: false - xy: 2509, 413 + xy: 2209, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-conveyor-large +block-switch-large rotate: false - xy: 2287, 287 + xy: 2161, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-conveyor-medium +block-switch-medium + rotate: false + xy: 1663, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-switch-small + rotate: false + xy: 3833, 280 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-switch-tiny + rotate: false + xy: 3385, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-switch-xlarge + rotate: false + xy: 2259, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tainted-water-large + rotate: false + xy: 2203, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tainted-water-medium + rotate: false + xy: 1697, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tainted-water-small + rotate: false + xy: 3859, 280 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tainted-water-tiny + rotate: false + xy: 3331, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tainted-water-xlarge + rotate: false + xy: 2309, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-tar-large + rotate: false + xy: 2245, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tar-medium rotate: false xy: 1765, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-tar-small rotate: false - xy: 2518, 89 + xy: 3807, 255 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-tar-tiny rotate: false - xy: 3393, 201 + xy: 3349, 218 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-tar-xlarge rotate: false - xy: 2559, 413 + xy: 2359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-tendrils-large rotate: false - xy: 2329, 329 + xy: 2161, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-large +block-tendrils-medium rotate: false - xy: 2245, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-wall-large-medium - rotate: false - xy: 1731, 67 + xy: 1663, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-large-small +block-tendrils-small rotate: false - xy: 2544, 141 + xy: 3833, 254 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-large-tiny +block-tendrils-tiny rotate: false - xy: 3393, 183 + xy: 3367, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-large-xlarge +block-tendrils-xlarge rotate: false - xy: 2609, 413 + xy: 2409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-medium +block-tetrative-reconstructor-large rotate: false - xy: 1765, 101 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titanium-wall-small - rotate: false - xy: 2544, 115 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-titanium-wall-tiny - rotate: false - xy: 3411, 201 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-titanium-wall-xlarge - rotate: false - xy: 2659, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-turbine-generator-large - rotate: false - xy: 2287, 245 + xy: 2203, 245 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-turbine-generator-medium +block-tetrative-reconstructor-medium + rotate: false + xy: 1697, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-small + rotate: false + xy: 3859, 254 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-tiny + rotate: false + xy: 3385, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-tetrative-reconstructor-xlarge + rotate: false + xy: 2459, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thermal-generator-large + rotate: false + xy: 2245, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thermal-generator-medium + rotate: false + xy: 1731, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thermal-generator-small + rotate: false + xy: 3885, 268 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thermal-generator-tiny + rotate: false + xy: 3403, 272 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thermal-generator-xlarge + rotate: false + xy: 2509, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thermal-pump-large + rotate: false + xy: 2287, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thermal-pump-medium rotate: false xy: 1799, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-turbine-generator-small +block-thermal-pump-small rotate: false - xy: 2544, 89 + xy: 3885, 242 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-turbine-generator-tiny +block-thermal-pump-tiny rotate: false - xy: 3393, 165 + xy: 3349, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-turbine-generator-xlarge +block-thermal-pump-xlarge + rotate: false + xy: 2559, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thorium-reactor-large + rotate: false + xy: 2203, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-reactor-medium + rotate: false + xy: 1697, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thorium-reactor-small + rotate: false + xy: 3651, 260 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thorium-reactor-tiny + rotate: false + xy: 3367, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thorium-reactor-xlarge + rotate: false + xy: 2609, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thorium-wall-large + rotate: false + xy: 2245, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-large + rotate: false + xy: 2287, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-medium + rotate: false + xy: 1731, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thorium-wall-large-small + rotate: false + xy: 3677, 251 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thorium-wall-large-tiny + rotate: false + xy: 3385, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thorium-wall-large-xlarge + rotate: false + xy: 2659, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-thorium-wall-medium + rotate: false + xy: 1765, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-thorium-wall-small + rotate: false + xy: 3703, 251 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-thorium-wall-tiny + rotate: false + xy: 3403, 254 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-thorium-wall-xlarge rotate: false xy: 2709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-underflow-gate-large +block-thruster-large rotate: false - xy: 2329, 287 + xy: 2329, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-underflow-gate-medium - rotate: false - xy: 1765, 67 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-underflow-gate-small - rotate: false - xy: 2492, 60 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-underflow-gate-tiny - rotate: false - xy: 3411, 183 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-underflow-gate-xlarge - rotate: false - xy: 2759, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-unloader-large - rotate: false - xy: 2371, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-unloader-medium - rotate: false - xy: 1799, 101 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-unloader-small - rotate: false - xy: 2518, 63 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-unloader-tiny - rotate: false - xy: 3429, 201 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-unloader-xlarge - rotate: false - xy: 2809, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-vault-large - rotate: false - xy: 2287, 203 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-vault-medium +block-thruster-medium rotate: false xy: 1833, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-thruster-small rotate: false - xy: 2544, 63 + xy: 3729, 251 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-thruster-tiny rotate: false - xy: 3393, 147 + xy: 3421, 272 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-thruster-xlarge + rotate: false + xy: 2759, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-conveyor-large + rotate: false + xy: 2245, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-conveyor-medium + rotate: false + xy: 1731, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-conveyor-small + rotate: false + xy: 3755, 242 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-titanium-conveyor-tiny + rotate: false + xy: 3367, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-titanium-conveyor-xlarge + rotate: false + xy: 2809, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-wall-large + rotate: false + xy: 2287, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-large + rotate: false + xy: 2329, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-medium + rotate: false + xy: 1765, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-wall-large-small + rotate: false + xy: 3781, 235 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-titanium-wall-large-tiny + rotate: false + xy: 3385, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-titanium-wall-large-xlarge rotate: false xy: 2859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large +block-titanium-wall-medium rotate: false - xy: 2329, 245 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-water-extractor-medium - rotate: false - xy: 1799, 67 + xy: 1799, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-extractor-small +block-titanium-wall-small rotate: false - xy: 2518, 37 + xy: 3807, 229 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-extractor-tiny +block-titanium-wall-tiny rotate: false - xy: 3411, 165 + xy: 3403, 236 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-extractor-xlarge +block-titanium-wall-xlarge rotate: false xy: 2909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-large +block-underflow-gate-large rotate: false - xy: 2371, 287 + xy: 2371, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-medium - rotate: false - xy: 1833, 101 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-water-small - rotate: false - xy: 2544, 37 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-water-tiny - rotate: false - xy: 3429, 183 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-water-xlarge - rotate: false - xy: 2959, 413 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-wave-large - rotate: false - xy: 2413, 329 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-wave-medium +block-underflow-gate-medium rotate: false xy: 1867, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-underflow-gate-small rotate: false - xy: 3159, 204 + xy: 3833, 228 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-underflow-gate-tiny rotate: false - xy: 3411, 147 + xy: 3421, 254 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-underflow-gate-xlarge + rotate: false + xy: 2959, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-unloader-large + rotate: false + xy: 2287, 203 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-unloader-medium + rotate: false + xy: 1765, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-unloader-small + rotate: false + xy: 3859, 228 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-unloader-tiny + rotate: false + xy: 3385, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-unloader-xlarge rotate: false xy: 3009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large +block-vault-large + rotate: false + xy: 2329, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-vault-medium + rotate: false + xy: 1799, 67 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-vault-small + rotate: false + xy: 3885, 216 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-vault-tiny + rotate: false + xy: 3403, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-vault-xlarge + rotate: false + xy: 3059, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-water-extractor-large + rotate: false + xy: 2371, 287 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-extractor-medium + rotate: false + xy: 1833, 101 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-extractor-small + rotate: false + xy: 3911, 268 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-extractor-tiny + rotate: false + xy: 3421, 236 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-extractor-xlarge + rotate: false + xy: 3109, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-water-large + rotate: false + xy: 2413, 329 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-medium + rotate: false + xy: 1901, 135 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-small + rotate: false + xy: 3911, 242 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-tiny + rotate: false + xy: 3403, 200 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-xlarge + rotate: false + xy: 3159, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-wave-large rotate: false xy: 2329, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 +block-wave-medium + rotate: false + xy: 1799, 33 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-wave-small + rotate: false + xy: 3911, 216 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-wave-tiny + rotate: false + xy: 3421, 218 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-wave-xlarge + rotate: false + xy: 3209, 413 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-dead-large + rotate: false + xy: 2371, 245 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 block-white-tree-dead-medium rotate: false xy: 1833, 67 @@ -17609,28 +18043,28 @@ block-white-tree-dead-medium index: -1 block-white-tree-dead-small rotate: false - xy: 3185, 204 + xy: 3937, 259 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-white-tree-dead-tiny rotate: false - xy: 3429, 165 + xy: 3421, 200 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-white-tree-dead-xlarge rotate: false - xy: 3059, 413 + xy: 3259, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-white-tree-large rotate: false - xy: 2371, 245 + xy: 2413, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -17644,28 +18078,28 @@ block-white-tree-medium index: -1 block-white-tree-small rotate: false - xy: 3211, 199 + xy: 3963, 259 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-white-tree-tiny rotate: false - xy: 3429, 147 + xy: 2899, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-white-tree-xlarge rotate: false - xy: 3109, 413 + xy: 3309, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 button rotate: false - xy: 3027, 342 + xy: 3145, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17705,7 +18139,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 2413, 216 + xy: 2539, 225 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17713,7 +18147,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 2749, 300 + xy: 2581, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17721,7 +18155,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 2581, 258 + xy: 2749, 300 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17729,7 +18163,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 2875, 342 + xy: 2917, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17737,7 +18171,7 @@ button-over index: -1 button-red rotate: false - xy: 2451, 216 + xy: 2619, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17745,7 +18179,7 @@ button-red index: -1 button-right rotate: false - xy: 2913, 342 + xy: 2657, 258 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17761,7 +18195,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 2619, 258 + xy: 2955, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17769,7 +18203,7 @@ button-right-over index: -1 button-select rotate: false - xy: 3159, 178 + xy: 3937, 233 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -17777,7 +18211,7 @@ button-select index: -1 button-square rotate: false - xy: 2951, 342 + xy: 3069, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17785,7 +18219,7 @@ button-square index: -1 button-square-down rotate: false - xy: 2825, 300 + xy: 2993, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17793,7 +18227,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 2657, 258 + xy: 3031, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17801,7 +18235,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 2989, 342 + xy: 3107, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17809,63 +18243,63 @@ button-trans index: -1 check-disabled rotate: false - xy: 1901, 135 + xy: 1935, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1867, 67 + xy: 1833, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1901, 101 + xy: 1867, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1935, 135 + xy: 1901, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 1901, 67 + xy: 1969, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 1935, 101 + xy: 1867, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 771, 404 + xy: 795, 354 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 crater rotate: false - xy: 3239, 393 + xy: 3639, 343 size: 18, 18 orig: 18, 18 offset: 0, 0 index: -1 cursor rotate: false - xy: 2749, 294 + xy: 2893, 287 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -17879,7 +18313,7 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 3065, 342 + xy: 3183, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -17894,7 +18328,7 @@ info-banner index: -1 inventory rotate: false - xy: 3185, 162 + xy: 3989, 243 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -17902,42 +18336,42 @@ inventory index: -1 item-blast-compound-icon rotate: false - xy: 1969, 135 + xy: 1901, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-icon rotate: false - xy: 1935, 67 + xy: 1935, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-icon rotate: false - xy: 1969, 101 + xy: 2003, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-icon rotate: false - xy: 2003, 135 + xy: 1901, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-icon rotate: false - xy: 1969, 67 + xy: 1935, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-icon rotate: false - xy: 2003, 101 + xy: 1969, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -17951,98 +18385,98 @@ item-phase-fabric-icon index: -1 item-plastanium-icon rotate: false - xy: 2003, 67 + xy: 1935, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-icon rotate: false - xy: 2037, 101 + xy: 1969, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-icon rotate: false - xy: 2071, 135 + xy: 2003, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-icon rotate: false - xy: 2037, 67 + xy: 2071, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-icon rotate: false - xy: 2071, 101 + xy: 1969, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-icon rotate: false - xy: 2105, 135 + xy: 2003, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-icon rotate: false - xy: 2071, 67 + xy: 2037, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-icon rotate: false - xy: 2105, 101 + xy: 2105, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-icon rotate: false - xy: 2139, 135 + xy: 2003, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-icon rotate: false - xy: 2105, 67 + xy: 2037, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-icon rotate: false - xy: 2139, 101 + xy: 2071, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-icon rotate: false - xy: 2173, 135 + xy: 2139, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-icon rotate: false - xy: 2139, 67 + xy: 2037, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 logic-node rotate: false - xy: 2173, 101 + xy: 2071, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -18063,7 +18497,7 @@ nomap index: -1 pane rotate: false - xy: 3141, 342 + xy: 3259, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18071,7 +18505,7 @@ pane index: -1 pane-2 rotate: false - xy: 3103, 342 + xy: 3221, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18079,7 +18513,7 @@ pane-2 index: -1 scroll rotate: false - xy: 3237, 174 + xy: 3963, 222 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -18087,7 +18521,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 3622, 397 + xy: 977, 177 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -18102,14 +18536,14 @@ scroll-knob-horizontal-black index: -1 scroll-knob-vertical-black rotate: false - xy: 3211, 157 + xy: 4015, 243 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 3461, 241 + xy: 2781, 138 size: 12, 40 orig: 12, 40 offset: 0, 0 @@ -18123,28 +18557,28 @@ selection index: -1 slider rotate: false - xy: 3656, 387 + xy: 2512, 139 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 3183, 268 + xy: 2377, 129 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 3590, 331 + xy: 3827, 333 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 3214, 263 + xy: 3858, 332 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -18158,7 +18592,7 @@ slider-vertical index: -1 underline rotate: false - xy: 1015, 174 + xy: 901, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18166,7 +18600,7 @@ underline index: -1 underline-2 rotate: false - xy: 3179, 342 + xy: 3297, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18174,7 +18608,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 901, 174 + xy: 3335, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18182,7 +18616,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 939, 174 + xy: 3373, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18190,7 +18624,7 @@ underline-red index: -1 underline-white rotate: false - xy: 977, 174 + xy: 3411, 342 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -18198,35 +18632,35 @@ underline-white index: -1 unit-alpha-large rotate: false - xy: 2413, 287 + xy: 2455, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-alpha-medium rotate: false - xy: 2207, 135 + xy: 2105, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-alpha-small rotate: false - xy: 3237, 148 + xy: 3937, 207 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-alpha-tiny rotate: false - xy: 3447, 201 + xy: 2917, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-alpha-xlarge rotate: false - xy: 3159, 413 + xy: 3359, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18240,203 +18674,203 @@ unit-antumbra-large index: -1 unit-antumbra-medium rotate: false - xy: 3621, 329 + xy: 3727, 329 size: 28, 32 orig: 28, 32 offset: 0, 0 index: -1 unit-antumbra-small rotate: false - xy: 2353, 41 + xy: 257, 20 size: 21, 24 orig: 21, 24 offset: 0, 0 index: -1 unit-antumbra-tiny rotate: false - xy: 2843, 144 + xy: 2781, 180 size: 14, 16 orig: 14, 16 offset: 0, 0 index: -1 unit-antumbra-xlarge rotate: false - xy: 3409, 363 + xy: 4009, 363 size: 43, 48 orig: 43, 48 offset: 0, 0 index: -1 unit-arkyid-large rotate: false - xy: 2455, 329 + xy: 2371, 203 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-arkyid-medium rotate: false - xy: 2173, 67 + xy: 2173, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-arkyid-small rotate: false - xy: 3263, 185 + xy: 4041, 251 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-arkyid-tiny rotate: false - xy: 3447, 183 + xy: 2935, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-arkyid-xlarge rotate: false - xy: 3209, 413 + xy: 3409, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-atrax-large rotate: false - xy: 2371, 214 + xy: 2413, 256 size: 40, 29 orig: 40, 29 offset: 0, 0 index: -1 unit-atrax-medium rotate: false - xy: 1085, 42 + xy: 983, 8 size: 32, 23 orig: 32, 23 offset: 0, 0 index: -1 unit-atrax-small rotate: false - xy: 3263, 166 + xy: 3989, 224 size: 24, 17 orig: 24, 17 offset: 0, 0 index: -1 unit-atrax-tiny rotate: false - xy: 2563, 170 + xy: 2797, 287 size: 16, 11 orig: 16, 11 offset: 0, 0 index: -1 unit-atrax-xlarge rotate: false - xy: 3259, 427 + xy: 3459, 427 size: 48, 34 orig: 48, 34 offset: 0, 0 index: -1 unit-beta-large rotate: false - xy: 2413, 245 + xy: 2455, 287 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-beta-medium rotate: false - xy: 2207, 101 + xy: 2071, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-beta-small rotate: false - xy: 3289, 187 + xy: 4067, 251 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-beta-tiny rotate: false - xy: 3447, 165 + xy: 2953, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-beta-xlarge rotate: false - xy: 3309, 413 + xy: 3509, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-bryde-large rotate: false - xy: 2455, 287 + xy: 2497, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-bryde-medium rotate: false - xy: 2241, 135 + xy: 2105, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-bryde-small rotate: false - xy: 3315, 187 + xy: 4015, 217 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-bryde-tiny rotate: false - xy: 3447, 147 + xy: 2971, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-bryde-xlarge rotate: false - xy: 3359, 413 + xy: 3559, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-crawler-large rotate: false - xy: 2497, 329 + xy: 2413, 214 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-crawler-medium rotate: false - xy: 2207, 67 + xy: 2139, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-crawler-small rotate: false - xy: 3341, 187 + xy: 4041, 225 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-crawler-tiny rotate: false - xy: 3453, 319 + xy: 2989, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-crawler-xlarge rotate: false - xy: 3409, 413 + xy: 3609, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18450,28 +18884,28 @@ unit-dagger-large index: -1 unit-dagger-medium rotate: false - xy: 2241, 101 + xy: 2207, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-dagger-small rotate: false - xy: 3289, 161 + xy: 4067, 225 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-dagger-tiny rotate: false - xy: 3453, 301 + xy: 3007, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-dagger-xlarge rotate: false - xy: 3459, 413 + xy: 3659, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18485,28 +18919,28 @@ unit-eclipse-large index: -1 unit-eclipse-medium rotate: false - xy: 2275, 135 + xy: 2105, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-eclipse-small rotate: false - xy: 3315, 161 + xy: 3963, 196 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-eclipse-tiny rotate: false - xy: 3471, 319 + xy: 3025, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-eclipse-xlarge rotate: false - xy: 3509, 413 + xy: 3709, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18520,28 +18954,28 @@ unit-flare-large index: -1 unit-flare-medium rotate: false - xy: 2241, 67 + xy: 2139, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-flare-small rotate: false - xy: 3341, 161 + xy: 3989, 198 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-flare-tiny rotate: false - xy: 3471, 301 + xy: 3043, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-flare-xlarge rotate: false - xy: 3559, 413 + xy: 3759, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18555,28 +18989,28 @@ unit-fortress-large index: -1 unit-fortress-medium rotate: false - xy: 2275, 108 + xy: 2173, 108 size: 32, 25 orig: 32, 25 offset: 0, 0 index: -1 unit-fortress-small rotate: false - xy: 3263, 145 + xy: 4015, 196 size: 24, 19 orig: 24, 19 offset: 0, 0 index: -1 unit-fortress-tiny rotate: false - xy: 1273, 1 + xy: 2327, 89 size: 16, 12 orig: 16, 12 offset: 0, 0 index: -1 unit-fortress-xlarge rotate: false - xy: 3609, 423 + xy: 3809, 423 size: 48, 38 orig: 48, 38 offset: 0, 0 @@ -18590,28 +19024,28 @@ unit-gamma-large index: -1 unit-gamma-medium rotate: false - xy: 2309, 135 + xy: 2241, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-gamma-small rotate: false - xy: 3289, 135 + xy: 4041, 199 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-gamma-tiny rotate: false - xy: 3489, 319 + xy: 3061, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-gamma-xlarge rotate: false - xy: 3659, 413 + xy: 3859, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18625,28 +19059,28 @@ unit-horizon-large index: -1 unit-horizon-medium rotate: false - xy: 2275, 74 + xy: 2139, 33 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-horizon-small rotate: false - xy: 3315, 135 + xy: 4067, 199 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-horizon-tiny rotate: false - xy: 3489, 301 + xy: 3079, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-horizon-xlarge rotate: false - xy: 3709, 413 + xy: 3909, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18660,28 +19094,28 @@ unit-mace-large index: -1 unit-mace-medium rotate: false - xy: 2309, 101 + xy: 2173, 74 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mace-small rotate: false - xy: 3341, 135 + xy: 3989, 172 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mace-tiny rotate: false - xy: 3507, 319 + xy: 3097, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mace-xlarge rotate: false - xy: 3759, 413 + xy: 3959, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18695,28 +19129,28 @@ unit-mega-large index: -1 unit-mega-medium rotate: false - xy: 2343, 135 + xy: 2207, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mega-small rotate: false - xy: 3367, 187 + xy: 4015, 170 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mega-tiny rotate: false - xy: 3507, 301 + xy: 3115, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mega-xlarge rotate: false - xy: 3809, 413 + xy: 4009, 413 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18730,28 +19164,28 @@ unit-minke-large index: -1 unit-minke-medium rotate: false - xy: 2343, 101 + xy: 2275, 135 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-minke-small rotate: false - xy: 3367, 161 + xy: 4041, 173 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-minke-tiny rotate: false - xy: 3525, 319 + xy: 3133, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-minke-xlarge rotate: false - xy: 3859, 413 + xy: 3459, 377 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18765,28 +19199,28 @@ unit-mono-large index: -1 unit-mono-medium rotate: false - xy: 2377, 112 + xy: 2173, 40 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-mono-small rotate: false - xy: 3367, 135 + xy: 4067, 173 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-mono-tiny rotate: false - xy: 3525, 301 + xy: 3151, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-mono-xlarge rotate: false - xy: 3909, 413 + xy: 3509, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18800,28 +19234,28 @@ unit-nova-large index: -1 unit-nova-medium rotate: false - xy: 2309, 67 + xy: 2207, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-nova-small rotate: false - xy: 2703, 174 + xy: 4041, 147 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-nova-tiny rotate: false - xy: 3543, 319 + xy: 3169, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-nova-xlarge rotate: false - xy: 3959, 413 + xy: 3559, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18835,28 +19269,28 @@ unit-poly-large index: -1 unit-poly-medium rotate: false - xy: 2343, 67 + xy: 2241, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-poly-small rotate: false - xy: 2729, 174 + xy: 4067, 147 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-poly-tiny rotate: false - xy: 3543, 301 + xy: 3187, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-poly-xlarge rotate: false - xy: 4009, 413 + xy: 3609, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -18870,14 +19304,14 @@ unit-pulsar-large index: -1 unit-pulsar-medium rotate: false - xy: 2377, 84 + xy: 2309, 141 size: 32, 26 orig: 32, 26 offset: 0, 0 index: -1 unit-pulsar-small rotate: false - xy: 2755, 187 + xy: 2681, 232 size: 24, 19 orig: 24, 19 offset: 0, 0 @@ -18891,7 +19325,7 @@ unit-pulsar-tiny index: -1 unit-pulsar-xlarge rotate: false - xy: 131, 5 + xy: 3659, 372 size: 48, 39 orig: 48, 39 offset: 0, 0 @@ -18905,32 +19339,67 @@ unit-quasar-large index: -1 unit-quasar-medium rotate: false - xy: 1119, 33 + xy: 2241, 67 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-quasar-small rotate: false - xy: 2755, 161 + xy: 2687, 206 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-quasar-tiny rotate: false - xy: 3561, 319 + xy: 3205, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-quasar-xlarge rotate: false - xy: 3259, 377 + xy: 3709, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +unit-reign-large + rotate: false + xy: 2455, 217 + size: 40, 26 + orig: 40, 26 + offset: 0, 0 + index: -1 +unit-reign-medium + rotate: false + xy: 1017, 11 + size: 31, 20 + orig: 31, 20 + offset: 0, 0 + index: -1 +unit-reign-small + rotate: false + xy: 2583, 185 + size: 24, 15 + orig: 24, 15 + offset: 0, 0 + index: -1 +unit-reign-tiny + rotate: false + xy: 771, 404 + size: 15, 10 + orig: 15, 10 + offset: 0, 0 + index: -1 +unit-reign-xlarge + rotate: false + xy: 3759, 380 + size: 48, 31 + orig: 48, 31 + offset: 0, 0 + index: -1 unit-risso-large rotate: false xy: 2791, 329 @@ -18940,32 +19409,67 @@ unit-risso-large index: -1 unit-risso-medium rotate: false - xy: 1153, 33 + xy: 2275, 101 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-risso-small rotate: false - xy: 2781, 162 + xy: 2690, 180 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-risso-tiny rotate: false - xy: 3561, 301 + xy: 3223, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-risso-xlarge rotate: false - xy: 3309, 363 + xy: 3809, 373 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +unit-scepter-large + rotate: false + xy: 2497, 219 + size: 40, 32 + orig: 40, 32 + offset: 0, 0 + index: -1 +unit-scepter-medium + rotate: false + xy: 2343, 141 + size: 32, 26 + orig: 32, 26 + offset: 0, 0 + index: -1 +unit-scepter-small + rotate: false + xy: 2690, 159 + size: 24, 19 + orig: 24, 19 + offset: 0, 0 + index: -1 +unit-scepter-tiny + rotate: false + xy: 19, 1 + size: 16, 13 + orig: 16, 13 + offset: 0, 0 + index: -1 +unit-scepter-xlarge + rotate: false + xy: 3859, 372 + size: 48, 39 + orig: 48, 39 + offset: 0, 0 + index: -1 unit-spiroct-large rotate: false xy: 2539, 254 @@ -18975,70 +19479,105 @@ unit-spiroct-large index: -1 unit-spiroct-medium rotate: false - xy: 1221, 40 + xy: 2207, 40 size: 31, 25 orig: 31, 25 offset: 0, 0 index: -1 unit-spiroct-small rotate: false - xy: 2807, 167 + xy: 2690, 138 size: 24, 19 orig: 24, 19 offset: 0, 0 index: -1 unit-spiroct-tiny rotate: false - xy: 1291, 1 + xy: 2345, 89 size: 15, 12 orig: 15, 12 offset: 0, 0 index: -1 unit-spiroct-xlarge rotate: false - xy: 181, 6 + xy: 3909, 373 size: 48, 38 orig: 48, 38 offset: 0, 0 index: -1 +unit-toxopid-large + rotate: false + xy: 4054, 355 + size: 33, 40 + orig: 33, 40 + offset: 0, 0 + index: -1 +unit-toxopid-medium + rotate: false + xy: 781, 170 + size: 26, 32 + orig: 26, 32 + offset: 0, 0 + index: -1 +unit-toxopid-small + rotate: false + xy: 309, 178 + size: 20, 24 + orig: 20, 24 + offset: 0, 0 + index: -1 +unit-toxopid-tiny + rotate: false + xy: 3259, 182 + size: 13, 16 + orig: 13, 16 + offset: 0, 0 + index: -1 +unit-toxopid-xlarge + rotate: false + xy: 2833, 321 + size: 40, 48 + orig: 40, 48 + offset: 0, 0 + index: -1 unit-zenith-large rotate: false - xy: 2833, 329 + xy: 2875, 329 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 unit-zenith-medium rotate: false - xy: 1187, 33 + xy: 2309, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unit-zenith-small rotate: false - xy: 2833, 162 + xy: 3461, 283 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 unit-zenith-tiny rotate: false - xy: 3457, 283 + xy: 3241, 182 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 unit-zenith-xlarge rotate: false - xy: 3359, 363 + xy: 3959, 363 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-pane rotate: false - xy: 1053, 174 + xy: 939, 174 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19053,7 +19592,7 @@ whiteui index: -1 window-empty rotate: false - xy: 2411, 83 + xy: 2583, 122 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 bc3ae33db7..cb283ac218 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 dad64fba80..5ead94a44d 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/assets/sprites/sprites3.png b/core/assets/sprites/sprites3.png index a51d8709a2..5bc2e4c6a7 100644 Binary files a/core/assets/sprites/sprites3.png and b/core/assets/sprites/sprites3.png differ diff --git a/core/assets/sprites/sprites4.png b/core/assets/sprites/sprites4.png index 70f9cea236..8e9a3665a5 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 181928f70c..e98962419a 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index d875c76833..34ad2f6daa 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -37,7 +37,7 @@ public class Vars implements Loadable{ /** Whether the logger is loaded. */ public static boolean loadedLogger = false, loadedFileLogger = false; /** Maximum extra padding around deployment schematics. */ - public static final int maxLoadoutSchematicPad = 4; + public static final int maxLoadoutSchematicPad = 5; /** Maximum schematic size.*/ public static final int maxSchematicSize = 32; /** All schematic base64 starts with this string.*/ @@ -78,6 +78,8 @@ public class Vars implements Loadable{ public static final float miningRange = 70f; /** range for building */ public static final float buildingRange = 220f; + /** range for moving items */ + public static final float itemTransferRange = 220f; /** duration of time between turns in ticks */ public static final float turnDuration = 20 * Time.toMinutes; /** turns needed to destroy a sector completely */ @@ -199,8 +201,7 @@ public class Vars implements Loadable{ public static NetServer netServer; public static NetClient netClient; - public static - Player player; + public static Player player; @Override public void loadAsync(){ diff --git a/core/src/mindustry/ai/BaseRegistry.java b/core/src/mindustry/ai/BaseRegistry.java index 98e4744da0..bc470b9096 100644 --- a/core/src/mindustry/ai/BaseRegistry.java +++ b/core/src/mindustry/ai/BaseRegistry.java @@ -92,7 +92,7 @@ public class BaseRegistry{ } } - cores.sort(Structs.comps(Structs.comparingFloat(b -> b.core.health), Structs.comparingFloat(b -> b.tier))); + cores.sort(b -> b.tier); parts.sort(); reqParts.each((key, arr) -> arr.sort()); } diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index 26ec43e74b..05d7b69273 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -37,7 +37,7 @@ public class BlockIndexer{ /** All ores available on this map. */ private ObjectSet allOres = new ObjectSet<>(); /** Stores teams that are present here as tiles. */ - private Seq activeTeams = new Seq<>(); + private Seq activeTeams = new Seq<>(Team.class); /** Maps teams to a map of flagged tiles by flag. */ private TileArray[][] flagMap = new TileArray[Team.all.length][BlockFlag.all.length]; /** Max units by team. */ @@ -52,7 +52,7 @@ public class BlockIndexer{ private Seq breturnArray = new Seq<>(); public BlockIndexer(){ - Events.on(BuildinghangeEvent.class, event -> { + Events.on(TileChangeEvent.class, event -> { if(typeMap.get(event.tile.pos()) != null){ TileIndex index = typeMap.get(event.tile.pos()); for(BlockFlag flag : index.flags){ @@ -73,6 +73,7 @@ public class BlockIndexer{ damagedTiles = new BuildingArray[Team.all.length]; flagMap = new TileArray[Team.all.length][BlockFlag.all.length]; unitCaps = new int[Team.all.length]; + activeTeams = new Seq<>(Team.class); for(int i = 0; i < flagMap.length; i++){ for(int j = 0; j < BlockFlag.all.length; j++){ @@ -147,7 +148,7 @@ public class BlockIndexer{ BuildingArray set = damagedTiles[team.id]; for(Building build : set){ - if((!build.isValid() || build.team != team || !build.damaged()) || build.block instanceof BuildBlock){ + if((!build.isValid() || build.team != team || !build.damaged()) || build.block instanceof ConstructBlock){ breturnArray.add(build); } } @@ -220,7 +221,10 @@ public class BlockIndexer{ } public Building findEnemyTile(Team team, float x, float y, float range, Boolf pred){ - for(Team enemy : team.enemies()){ + for(int i = 0; i < activeTeams.size; i++){ + Team enemy = activeTeams.items[i]; + + if(enemy == team) continue; Building entity = indexer.findTile(enemy, x, y, range, pred, true); if(entity != null){ @@ -251,15 +255,15 @@ 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); if(ndst < range2 && (closest == null || //this one is closer, and it is at least of equal priority - (ndst < dst && (!usePriority || closest.block().priority.ordinal() <= e.block().priority.ordinal())) || + (ndst < dst && (!usePriority || closest.block.priority.ordinal() <= e.block.priority.ordinal())) || //priority is used, and new block has higher priority regardless of range - (usePriority && closest.block().priority.ordinal() < e.block().priority.ordinal()))){ + (usePriority && closest.block.priority.ordinal() < e.block.priority.ordinal()))){ dst = ndst; closest = e; } diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java index 222cc7df74..280106eaa8 100644 --- a/core/src/mindustry/ai/Pathfinder.java +++ b/core/src/mindustry/ai/Pathfinder.java @@ -23,52 +23,107 @@ public class Pathfinder implements Runnable{ private static final int impassable = -1; private static final int fieldTimeout = 1000 * 60 * 2; + public static final int + fieldCore = 0, + fieldRally = 1; + + public static final Seq> fieldTypes = Seq.with( + EnemyCoreField::new, + RallyField::new + ); + + public static final int + costGround = 0, + costLegs = 1, + costWater = 2; + + public static final Seq costTypes = Seq.with( + //ground + (team, tile) -> (PathTile.team(tile) == team.id || PathTile.team(tile) == 0) && PathTile.solid(tile) ? impassable : 1 + + PathTile.health(tile) * 5 + + (PathTile.nearSolid(tile) ? 2 : 0) + + (PathTile.nearLiquid(tile) ? 6 : 0) + + (PathTile.deep(tile) ? 70 : 0), + + //legs + (team, tile) -> PathTile.legSolid(tile) ? impassable : 1 + + (PathTile.solid(tile) ? 5 : 0), + + //water + (team, tile) -> PathTile.solid(tile) || !PathTile.liquid(tile) ? 200 : 2 + //TODO cannot go through blocks - pathfinding isn't great + (PathTile.nearGround(tile) || PathTile.nearSolid(tile) ? 14 : 0) + + (PathTile.deep(tile) ? -1 : 0) + ); + + //maps team, cost, type to flow field + Flowfield[][][] cache; + /** tile data, see PathTileStruct */ - private int[][] tiles; + int[][] tiles; /** unordered array of path data for iteration only. DO NOT iterate or access this in the main thread. */ - private Seq threadList = new Seq<>(), mainList = new Seq<>(); - /** Maps team ID and target to to a flowfield.*/ - private ObjectMap[] fieldMap = new ObjectMap[Team.all.length]; - /** Used field maps. */ - private ObjectSet[] fieldMapUsed = new ObjectSet[Team.all.length]; + Seq threadList = new Seq<>(), mainList = new Seq<>(); /** handles task scheduling on the update thread. */ - private TaskQueue queue = new TaskQueue(); - /** Stores path target for a position. Main thread only.*/ - private ObjectMap targetCache = new ObjectMap<>(); + TaskQueue queue = new TaskQueue(); /** Current pathfinding thread */ - private @Nullable Thread thread; - private IntSeq tmpArray = new IntSeq(); + @Nullable Thread thread; + IntSeq tmpArray = new IntSeq(); public Pathfinder(){ + clearCache(); + Events.on(WorldLoadEvent.class, event -> { stop(); //reset and update internal tile array tiles = new int[world.width()][world.height()]; - fieldMap = new ObjectMap[Team.all.length]; - fieldMapUsed = new ObjectSet[Team.all.length]; - targetCache = new ObjectMap<>(); threadList = new Seq<>(); mainList = new Seq<>(); + clearCache(); for(Tile tile : world.tiles){ tiles[tile.x][tile.y] = packTile(tile); } //special preset which may help speed things up; this is optional - preloadPath(state.rules.waveTeam, FlagTarget.enemyCores); + preloadPath(getField(state.rules.waveTeam, costGround, fieldCore)); start(); }); Events.on(ResetEvent.class, event -> stop()); - Events.on(BuildinghangeEvent.class, event -> updateTile(event.tile)); + Events.on(TileChangeEvent.class, event -> updateTile(event.tile)); + } + + private void clearCache(){ + cache = new Flowfield[256][5][5]; } /** Packs a tile into its internal representation. */ private int packTile(Tile tile){ - return PathTile.get(tile.cost, (byte)tile.getTeamID(), !tile.solid() && tile.floor().drownTime <= 0f, !tile.solid() && tile.floor().isLiquid); + //TODO nearGround is just the inverse of nearLiquid? + boolean nearLiquid = false, nearSolid = false, nearGround = false; + + for(int i = 0; i < 4; i++){ + Tile other = tile.getNearby(i); + if(other != null){ + if(other.floor().isLiquid) nearLiquid = true; + if(other.solid()) nearSolid = true; + if(!other.floor().isLiquid) nearGround = true; + } + } + + return PathTile.get( + tile.build == null ? 0 : Math.min((int)(tile.build.health / 40), 127), + tile.getTeamID(), + tile.solid(), + tile.floor().isLiquid, + tile.staticDarkness() >= 2, + nearLiquid, + nearGround, + nearSolid, + tile.floor().isDeep() + ); } /** Starts or restarts the pathfinding thread. */ @@ -104,7 +159,7 @@ public class Pathfinder implements Runnable{ if(path != null){ synchronized(path.targets){ path.targets.clear(); - path.target.getPositions(path.team, path.targets); + path.getPositions(path.targets); } } } @@ -131,18 +186,19 @@ public class Pathfinder implements Runnable{ updateFrontier(data, maxUpdate / threadList.size); //remove flowfields that have 'timed out' so they can be garbage collected and no longer waste space - if(data.target.refreshRate() > 0 && Time.timeSinceMillis(data.lastUpdateTime) > fieldTimeout){ + if(data.refreshRate > 0 && Time.timeSinceMillis(data.lastUpdateTime) > fieldTimeout){ //make sure it doesn't get removed twice data.lastUpdateTime = Time.millis(); Team team = data.team; Core.app.post(() -> { + //TODO ????? //remove its used state - if(fieldMap[team.id] != null){ - fieldMap[team.id].remove(data.target); - fieldMapUsed[team.id].remove(data.target); - } + //if(fieldMap[team.id] != null){ + // fieldMap[team.id].remove(data.target); + // fieldMapUsed[team.id].remove(data.target); + //} //remove from main thread list mainList.remove(data); }); @@ -167,51 +223,49 @@ public class Pathfinder implements Runnable{ } } - public @Nullable Tile getTargetTile(Tile tile, Team team, Position target){ - return getTargetTile(tile, team, getTarget(target)); + public Flowfield getField(Team team, int costType, int fieldType){ + if(cache[team.id][costType][fieldType] == null){ + Flowfield field = fieldTypes.get(fieldType).get(); + field.team = team; + field.cost = costTypes.get(costType); + field.targets.clear(); + field.getPositions(field.targets); + + cache[team.id][costType][fieldType] = field; + queue.post(() -> registerPath(field)); + } + return cache[team.id][costType][fieldType]; } /** Gets next tile to travel to. Main thread only. */ - public @Nullable Tile getTargetTile(Tile tile, Team team, PathTarget target){ + public @Nullable Tile getTargetTile(Tile tile, Flowfield path){ if(tile == null) return null; - if(fieldMap[team.id] == null){ - fieldMap[team.id] = new ObjectMap<>(); - fieldMapUsed[team.id] = new ObjectSet<>(); - } - - Flowfield data = fieldMap[team.id].get(target); - - if(data == null){ - //if this combination is not found, create it on request - if(fieldMapUsed[team.id].add(target)){ - //grab targets since this is run on main thread - IntSeq targets = target.getPositions(team, new IntSeq()); - queue.post(() -> createPath(team, target, targets)); - } + //uninitialized flowfields are not applicable + if(!path.initialized){ return tile; } //if refresh rate is positive, queue a refresh - if(target.refreshRate() > 0 && Time.timeSinceMillis(data.lastUpdateTime) > target.refreshRate()){ - data.lastUpdateTime = Time.millis(); + if(path.refreshRate > 0 && Time.timeSinceMillis(path.lastUpdateTime) > path.refreshRate){ + path.lastUpdateTime = Time.millis(); tmpArray.clear(); - data.target.getPositions(data.team, tmpArray); + path.getPositions(tmpArray); - synchronized(data.targets){ + synchronized(path.targets){ //make sure the position actually changed - if(!(data.targets.size == 1 && tmpArray.size == 1 && data.targets.first() == tmpArray.first())){ - data.targets.clear(); - data.target.getPositions(data.team, data.targets); + if(!(path.targets.size == 1 && tmpArray.size == 1 && path.targets.first() == tmpArray.first())){ + path.targets.clear(); + path.getPositions(path.targets); //queue an update - queue.post(() -> updateTargets(data)); + queue.post(() -> updateTargets(path)); } } } - int[][] values = data.weights; + int[][] values = path.weights; int value = values[tile.x][tile.y]; Tile current = null; @@ -222,8 +276,8 @@ public class Pathfinder implements Runnable{ Tile other = world.tile(dx, dy); if(other == null) continue; - if(values[dx][dy] < value && (current == null || values[dx][dy] < tl) && !other.solid() && other.floor().drownTime <= 0 && - !(point.x != 0 && point.y != 0 && (world.solid(tile.x + point.x, tile.y) || world.solid(tile.x, tile.y + point.y)))){ //diagonal corner trap + if(values[dx][dy] < value && (current == null || values[dx][dy] < tl) && path.passable(dx, dy) && + !(point.x != 0 && point.y != 0 && (!path.passable(tile.x + point.x, tile.y) || !path.passable(tile.x, tile.y + point.y)))){ //diagonal corner trap current = other; tl = values[dx][dy]; } @@ -234,16 +288,6 @@ public class Pathfinder implements Runnable{ return current; } - private PathTarget getTarget(Position position){ - return targetCache.get(position, () -> new PositionTarget(position)); - } - - /** @return whether a tile can be passed through by this team. Pathfinding thread only. */ - private boolean passable(int x, int y, Team team){ - int tile = tiles[x][y]; - return PathTile.passable(tile) || (PathTile.team(tile) != team.id && PathTile.team(tile) != (int)Team.derelict.id); - } - /** * Clears the frontier, increments the search and sets up all flow sources. * This only occurs for active teams. @@ -259,10 +303,8 @@ public class Pathfinder implements Runnable{ return; } - //assign impassability to the tile - if(!passable(x, y, path.team)){ - path.weights[x][y] = impassable; - } + //update cost of the tile TODO maybe only update the cost when it's not passable + path.weights[x][y] = path.cost.getCost(path.team, tiles[x][y]); //clear frontier to prevent contamination path.frontier.clear(); @@ -289,34 +331,33 @@ public class Pathfinder implements Runnable{ } } - private void preloadPath(Team team, PathTarget target){ - updateFrontier(createPath(team, target, target.getPositions(team, new IntSeq())), -1); + private void preloadPath(Flowfield path){ + path.targets.clear(); + path.getPositions(path.targets); + registerPath(path); + updateFrontier(path, -1); } /** + * TODO wrong docs * Created a new flowfield that aims to get to a certain target for a certain team. * Pathfinding thread only. */ - private Flowfield createPath(Team team, PathTarget target, IntSeq targets){ - Flowfield path = new Flowfield(team, target, world.width(), world.height()); + private void registerPath(Flowfield path){ path.lastUpdateTime = Time.millis(); + path.setup(tiles.length, tiles[0].length); threadList.add(path); //add to main thread's list of paths Core.app.post(() -> { mainList.add(path); - if(fieldMap[team.id] != null){ - fieldMap[team.id].put(target, path); - } + //TODO + //if(fieldMap[team.id] != null){ + // fieldMap[team.id].put(target, path); + //} }); - //grab targets from passed array - synchronized(path.targets){ - path.targets.clear(); - path.targets.addAll(targets); - } - //fill with impassables by default for(int x = 0; x < world.width(); x++){ for(int y = 0; y < world.height(); y++){ @@ -330,8 +371,6 @@ public class Pathfinder implements Runnable{ path.weights[Point2.x(pos)][Point2.y(pos)] = 0; path.frontier.addFirst(pos); } - - return path; } /** Update the frontier for a path. Pathfinding thread only. */ @@ -353,12 +392,14 @@ public class Pathfinder implements Runnable{ for(Point2 point : Geometry.d4){ int dx = tile.x + point.x, dy = tile.y + point.y; - Tile other = world.tile(dx, dy); - if(other != null && (path.weights[dx][dy] > cost + other.cost || path.searches[dx][dy] < path.search) && passable(dx, dy, path.team)){ - if(other.cost < 0) throw new IllegalArgumentException("Tile cost cannot be negative! " + other); + if(dx < 0 || dy < 0 || dx >= tiles.length || dy >= tiles[0].length) continue; + + int otherCost = path.cost.getCost(path.team, tiles[dx][dy]); + + if((path.weights[dx][dy] > cost + otherCost || path.searches[dx][dy] < path.search) && otherCost != impassable){ path.frontier.addFirst(Point2.pack(dx, dy)); - path.weights[dx][dy] = cost + other.cost; + path.weights[dx][dy] = cost + otherCost; path.searches[dx][dy] = (short)path.search; } } @@ -366,9 +407,9 @@ public class Pathfinder implements Runnable{ } } - /** A path target defines a set of targets for a path. */ - public enum FlagTarget implements PathTarget{ - enemyCores((team, out) -> { + public static class EnemyCoreField extends Flowfield{ + @Override + protected void getPositions(IntSeq out){ for(Tile other : indexer.getEnemy(team, BlockFlag.core)){ out.add(other.pos()); } @@ -379,98 +420,99 @@ public class Pathfinder implements Runnable{ out.add(other.pos()); } } - }), - rallyPoints((team, out) -> { - for(Tile other : indexer.getAllied(team, BlockFlag.rally)){ - out.add(other.pos()); - } - }); - - public static final FlagTarget[] all = values(); - - private final Cons2 targeter; - - FlagTarget(Cons2 targeter){ - this.targeter = targeter; - } - - @Override - public IntSeq getPositions(Team team, IntSeq out){ - targeter.get(team, out); - return out; - } - - @Override - public int refreshRate(){ - return 0; } } - public static class PositionTarget implements PathTarget{ + public static class RallyField extends Flowfield{ + @Override + protected void getPositions(IntSeq out){ + for(Tile other : indexer.getAllied(team, BlockFlag.rally)){ + out.add(other.pos()); + } + } + } + + public static class PositionTarget extends Flowfield{ public final Position position; public PositionTarget(Position position){ this.position = position; + this.refreshRate = 900; } @Override - public IntSeq getPositions(Team team, IntSeq out){ + public void getPositions(IntSeq out){ out.add(Point2.pack(world.toTile(position.getX()), world.toTile(position.getY()))); - return out; } - @Override - public int refreshRate(){ - return 900; - } } - public interface PathTarget{ - /** Gets targets to pathfind towards. This must run on the main thread. */ - IntSeq getPositions(Team team, IntSeq out); + /** + * Data for a flow field to some set of destinations. + * Concrete subclasses must specify a way to fetch costs and destinations. + * */ + static abstract class Flowfield{ /** Refresh rate in milliseconds. Return any number <= 0 to disable. */ - int refreshRate(); - } + protected int refreshRate; + /** Team this path is for. Set before using. */ + protected Team team = Team.derelict; + /** Function for calculating path cost. Set before using. */ + protected PathCost cost = costTypes.get(costGround); - /** Data for a specific flow field to some set of destinations. */ - static class Flowfield{ - /** Team this path is for. */ - final Team team; - /** Flag that is being targeted. */ - final PathTarget target; /** costs of getting to a specific tile */ - final int[][] weights; + int[][] weights; /** search IDs of each position - the highest, most recent search is prioritized and overwritten */ - final int[][] searches; + int[][] searches; /** search frontier, these are Pos objects */ - final IntQueue frontier = new IntQueue(); + IntQueue frontier = new IntQueue(); /** all target positions; these positions have a cost of 0, and must be synchronized on! */ - final IntSeq targets = new IntSeq(); + IntSeq targets = new IntSeq(); /** current search ID */ int search = 1; /** last updated time */ long lastUpdateTime; + /** whether this flow field is ready to be used */ + boolean initialized; - Flowfield(Team team, PathTarget target, int width, int height){ - this.team = team; - this.target = target; - + void setup(int width, int height){ this.weights = new int[width][height]; this.searches = new int[width][height]; this.frontier.ensureCapacity((width + height) * 3); + this.initialized = true; } + + protected boolean passable(int x, int y){ + return cost.getCost(team, pathfinder.tiles[x][y]) != impassable; + } + + /** Gets targets to pathfind towards. This must run on the main thread. */ + protected abstract void getPositions(IntSeq out); + } + + interface PathCost{ + int getCost(Team traversing, int tile); } /** Holds a copy of tile data for a specific tile position. */ @Struct class PathTileStruct{ - //traversal cost - short cost; + //scaled block health + @StructField(8) int health; //team of block, if applicable (0 by default) - byte team; - //whether it's viable to pass this block - boolean passable; - //whether it's viable to pass this block through water - boolean passableWater; + @StructField(8) int team; + //general solid state + boolean solid; + //whether this block is a liquid that boats can move on + boolean liquid; + //whether this block is solid for leg units that can move over some solid blocks + boolean legSolid; + //whether this block is near liquids + boolean nearLiquid; + //whether this block is near a solid floor tile + boolean nearGround; + //whether this block is near a solid object + boolean nearSolid; + //whether this block is deep / drownable + boolean deep; } } diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java index 4ac1b4d8f8..417909a92b 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -3,6 +3,7 @@ package mindustry.ai; import arc.*; import arc.func.*; import arc.math.*; +import arc.math.geom.*; import arc.struct.*; import arc.util.*; import mindustry.annotations.Annotations.*; @@ -17,10 +18,11 @@ import mindustry.world.*; import static mindustry.Vars.*; public class WaveSpawner{ - private static final float margin = 40f, coreMargin = tilesize * 3; //how far away from the edge flying units spawn + private static final float margin = 40f, coreMargin = tilesize * 2f, maxSteps = 30; private Seq spawns = new Seq<>(); private boolean spawning = false; + private boolean any = false; public WaveSpawner(){ Events.on(WorldLoadEvent.class, e -> reset()); @@ -91,8 +93,34 @@ public class WaveSpawner{ if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam) && !state.teams.playerCores().isEmpty()){ Building firstCore = state.teams.playerCores().first(); for(Building core : state.rules.waveTeam.cores()){ - Tmp.v1.set(firstCore).sub(core).limit(coreMargin + core.block().size * tilesize); - cons.accept(core.x + Tmp.v1.x, core.y + Tmp.v1.y, false); + Tmp.v1.set(firstCore).sub(core).limit(coreMargin + core.block.size * tilesize /2f * Mathf.sqrt2); + + boolean valid = false; + int steps = 0; + + //keep moving forward until the max step amount is reached + while(steps++ < maxSteps){ + int tx = world.toTile(core.x + Tmp.v1.x), ty = world.toTile(core.y + Tmp.v1.y); + any = false; + Geometry.circle(tx, ty, world.width(), world.height(), 3, (x, y) -> { + if(world.solid(x, y)){ + any = true; + } + }); + + //nothing is in the way, spawn it + if(!any){ + valid = true; + break; + }else{ + //make the vector longer + Tmp.v1.setLength(Tmp.v1.len() + tilesize*1.1f); + } + } + + if(valid){ + cons.accept(core.x + Tmp.v1.x, core.y + Tmp.v1.y, false); + } } } } diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java index 149f4ef6d0..d5953dfedc 100644 --- a/core/src/mindustry/ai/types/BuilderAI.java +++ b/core/src/mindustry/ai/types/BuilderAI.java @@ -1,15 +1,20 @@ package mindustry.ai.types; import arc.struct.*; +import arc.util.ArcAnnotate.*; +import mindustry.entities.*; import mindustry.entities.units.*; import mindustry.game.Teams.*; import mindustry.gen.*; import mindustry.world.*; -import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.blocks.ConstructBlock.*; import static mindustry.Vars.*; public class BuilderAI extends AIController{ + float buildRadius = 700; + boolean found = false; + @Nullable Builderc following; @Override public void updateUnit(){ @@ -21,12 +26,27 @@ public class BuilderAI extends AIController{ builder.updateBuilding(true); - //approach request if building + if(following != null){ + //try to follow and mimic someone + + //validate follower + if(!following.isValid() || !following.activelyBuilding()){ + following = null; + builder.plans().clear(); + return; + } + + //set to follower's first build plan, whatever that is + builder.plans().clear(); + builder.plans().addFirst(following.buildPlan()); + } + if(builder.buildPlan() != null){ + //approach request if building BuildPlan req = builder.buildPlan(); boolean valid = - (req.tile().build instanceof BuildEntity && req.tile().bc().cblock == req.block) || + (req.tile().build instanceof ConstructBuild && req.tile().bc().cblock == req.block) || (req.breaking ? Build.validBreak(unit.team(), req.x, req.y) : Build.validPlace(req.block, unit.team(), req.x, req.y, req.rotation)); @@ -39,8 +59,35 @@ public class BuilderAI extends AIController{ builder.plans().removeFirst(); } }else{ + + //follow someone and help them build + if(timer.get(timerTarget2, 60f)){ + found = false; + + Units.nearby(unit.team, unit.x, unit.y, buildRadius, u -> { + if(found) return; + + if(u instanceof Builderc && u != unit && ((Builderc)u).activelyBuilding()){ + Builderc b = (Builderc)u; + BuildPlan plan = b.buildPlan(); + + Building build = world.build(plan.x, plan.y); + if(build instanceof ConstructBuild){ + ConstructBuild cons = (ConstructBuild)build; + float dist = Math.min(cons.dst(unit) - buildingRange, 0); + + //make sure you can reach the request in time + if(dist / unit.type().speed < cons.buildCost * 0.9f){ + following = b; + found = true; + } + } + } + }); + } + //find new request - if(!unit.team().data().blocks.isEmpty()){ + if(!unit.team().data().blocks.isEmpty() && following == null){ Queue blocks = unit.team().data().blocks; BlockPlan block = blocks.first(); @@ -49,17 +96,14 @@ public class BuilderAI extends AIController{ blocks.removeFirst(); }else if(Build.validPlace(content.block(block.block), unit.team(), block.x, block.y, block.rotation)){ //it's valid. //add build request. - BuildPlan req = new BuildPlan(block.x, block.y, block.rotation, content.block(block.block)); - if(block.config != null){ - req.configure(block.config); - } - builder.addBuild(req); + builder.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config)); }else{ //shift head of queue to tail, try something else next time blocks.removeFirst(); blocks.addLast(block); } } + } } } diff --git a/core/src/mindustry/ai/types/FormationAI.java b/core/src/mindustry/ai/types/FormationAI.java index 9ef064cfe1..0a5bdbb25b 100644 --- a/core/src/mindustry/ai/types/FormationAI.java +++ b/core/src/mindustry/ai/types/FormationAI.java @@ -47,7 +47,8 @@ public class FormationAI extends AIController implements FormationMember{ Vec2 realtarget = vec.set(target); if(unit.isGrounded() && Vars.world.raycast(unit.tileX(), unit.tileY(), leader.tileX(), leader.tileY(), Vars.world::solid)){ - realtarget.set(Vars.pathfinder.getTargetTile(unit.tileOn(), unit.team, leader)); + //TODO pathfind + //realtarget.set(Vars.pathfinder.getTargetTile(unit.tileOn(), unit.team, leader)); } unit.moveAt(realtarget.sub(unit).limit(unit.type().speed)); diff --git a/core/src/mindustry/ai/types/GroundAI.java b/core/src/mindustry/ai/types/GroundAI.java index 888d8a3418..ebf36d1ff4 100644 --- a/core/src/mindustry/ai/types/GroundAI.java +++ b/core/src/mindustry/ai/types/GroundAI.java @@ -1,10 +1,9 @@ package mindustry.ai.types; import arc.math.*; -import mindustry.ai.Pathfinder.*; +import mindustry.ai.*; import mindustry.entities.*; import mindustry.entities.units.*; -import mindustry.game.*; import mindustry.gen.*; import mindustry.world.*; import mindustry.world.meta.*; @@ -35,23 +34,24 @@ public class GroundAI extends AIController{ if(spawner != null && unit.within(spawner, state.rules.dropZoneRadius + 120f)) move = false; } - if(move) moveToCore(FlagTarget.enemyCores); + if(move) moveTo(Pathfinder.fieldCore); } if(command() == UnitCommand.rally){ Teamc target = targetFlag(unit.x, unit.y, BlockFlag.rally, false); if(target != null && !unit.within(target, 70f)){ - moveToCore(FlagTarget.rallyPoints); + moveTo(Pathfinder.fieldRally); } } - if(unit.type().canBoost){ + if(unit.type().canBoost && !unit.onSolid()){ unit.elevation = Mathf.approachDelta(unit.elevation, 0f, 0.08f); } if(!Units.invalidateTarget(target, unit, unit.range())){ if(unit.type().hasWeapons()){ + //TODO certain units should not look at the target, e.g. ships unit.aimLook(Predict.intercept(unit, target, unit.type().weapons.first().bullet.speed)); } }else if(unit.moving()){ @@ -74,40 +74,17 @@ public class GroundAI extends AIController{ }*/ } - protected void moveToCore(FlagTarget path){ - Tile tile = unit.tileOn(); - if(tile == null) return; - Tile targetTile = pathfinder.getTargetTile(tile, unit.team, path); - - if(tile == targetTile) return; - - unit.moveAt(vec.trns(unit.angleTo(targetTile), unit.type().speed)); - } - - protected void moveAwayFromCore(){ - Team enemy = null; - for(Team team : unit.team().enemies()){ - if(team.active()){ - enemy = team; - break; - } - } - - if(enemy == null){ - for(Team team : unit.team().enemies()){ - enemy = team; - break; - } - } - - if(enemy == null) return; + protected void moveTo(int pathType){ + int costType = + unit instanceof Legsc ? Pathfinder.costLegs : + unit instanceof WaterMovec ? Pathfinder.costWater : + Pathfinder.costGround; Tile tile = unit.tileOn(); if(tile == null) return; - Tile targetTile = pathfinder.getTargetTile(tile, enemy, FlagTarget.enemyCores); - Building core = unit.closestCore(); + Tile targetTile = pathfinder.getTargetTile(tile, pathfinder.getField(unit.team, costType, pathType)); - if(tile == targetTile || core == null || unit.within(core, 120f)) return; + if(tile == targetTile || (costType == Pathfinder.costWater && !targetTile.floor().isLiquid)) return; unit.moveAt(vec.trns(unit.angleTo(targetTile), unit.type().speed)); } diff --git a/core/src/mindustry/ai/types/MinerAI.java b/core/src/mindustry/ai/types/MinerAI.java index 5077ad77a1..120c4d05f8 100644 --- a/core/src/mindustry/ai/types/MinerAI.java +++ b/core/src/mindustry/ai/types/MinerAI.java @@ -39,6 +39,7 @@ public class MinerAI extends AIController{ //core full of the target item, do nothing if(targetItem != null && core.acceptStack(targetItem, 1, unit) == 0){ unit.clearItem(); + miner.mineTile(null); return; } @@ -63,6 +64,8 @@ public class MinerAI extends AIController{ } } }else{ + miner.mineTile(null); + if(unit.stack.amount == 0){ mining = true; return; diff --git a/core/src/mindustry/ai/types/SuicideAI.java b/core/src/mindustry/ai/types/SuicideAI.java index 275bc68204..388c87f272 100644 --- a/core/src/mindustry/ai/types/SuicideAI.java +++ b/core/src/mindustry/ai/types/SuicideAI.java @@ -1,10 +1,12 @@ package mindustry.ai.types; import mindustry.*; -import mindustry.ai.Pathfinder.*; +import mindustry.ai.*; import mindustry.entities.*; +import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.world.*; +import mindustry.world.meta.*; public class SuicideAI extends GroundAI{ static boolean blockedByBlock; @@ -27,7 +29,7 @@ public class SuicideAI extends GroundAI{ if(!Units.invalidateTarget(target, unit, unit.range())){ rotate = true; shoot = unit.within(target, unit.type().weapons.first().bullet.range() + - (target instanceof Building ? ((Building)target).block().size * Vars.tilesize / 2f : ((Hitboxc)target).hitSize() / 2f)); + (target instanceof Building ? ((Building)target).block.size * Vars.tilesize / 2f : ((Hitboxc)target).hitSize() / 2f)); if(unit.type().hasWeapons()){ unit.aimLook(Predict.intercept(unit, target, unit.type().weapons.first().bullet.speed)); @@ -58,8 +60,14 @@ public class SuicideAI extends GroundAI{ } }else{ - if(core != null){ - moveToCore(FlagTarget.enemyCores); + if(command() == UnitCommand.rally){ + Teamc target = targetFlag(unit.x, unit.y, BlockFlag.rally, false); + + if(target != null && !unit.within(target, 70f)){ + moveTo(Pathfinder.fieldRally); + } + }else if(command() == UnitCommand.attack && core != null){ + moveTo(Pathfinder.fieldCore); } if(unit.moving()) unit.lookAt(unit.vel().angle()); diff --git a/core/src/mindustry/async/PhysicsProcess.java b/core/src/mindustry/async/PhysicsProcess.java index 5e8b1be923..0f49176c57 100644 --- a/core/src/mindustry/async/PhysicsProcess.java +++ b/core/src/mindustry/async/PhysicsProcess.java @@ -43,6 +43,7 @@ public class PhysicsProcess implements AsyncProcess{ //find entities without bodies and assign them for(Physicsc entity : group){ boolean grounded = entity.isGrounded(); + int bits = grounded ? flying.maskBits : ground.maskBits; if(entity.physref() == null){ //add bodies to entities that have none @@ -66,12 +67,9 @@ public class PhysicsProcess implements AsyncProcess{ //save last position PhysicRef ref = entity.physref(); - if(ref.wasGround != grounded){ - if(ref.body.getFixtureList().isEmpty()) continue; - + if(ref.body.getFixtureList().any() && ref.body.getFixtureList().first().getFilterData().categoryBits != bits){ //set correct filter ref.body.getFixtureList().first().setFilterData(grounded ? ground : flying); - ref.wasGround = grounded; } ref.velocity.set(entity.deltaX(), entity.deltaY()); @@ -143,10 +141,9 @@ public class PhysicsProcess implements AsyncProcess{ } public static class PhysicRef{ - Physicsc entity; - Body body; - boolean wasGround = true; - Vec2 lastPosition = new Vec2(), delta = new Vec2(), velocity = new Vec2(), lastVelocity = new Vec2(), position = new Vec2(); + public Physicsc entity; + public Body body; + public Vec2 lastPosition = new Vec2(), delta = new Vec2(), velocity = new Vec2(), lastVelocity = new Vec2(), position = new Vec2(); public PhysicRef(Physicsc entity, Body body){ this.entity = entity; diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 2b4da903c4..3298961b11 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -34,10 +34,10 @@ public class Blocks implements ContentList{ public static Block //environment - air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, ice, snow, darksandTaintedWater, - holostone, rocks, sporerocks, icerocks, cliffs, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, - iceSnow, sandWater, darksandWater, duneRocks, sandRocks, moss, sporeMoss, shale, shaleRocks, shaleBoulder, sandBoulder, grass, salt, - metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, ignarock, magmarock, hotrock, snowrocks, rock, snowrock, saltRocks, + air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, ice, snow, darksandTaintedWater, + dacite, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, cliffs, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, + iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, grass, salt, + metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, basalt, magmarock, hotrock, snowWall, boulder, snowBoulder, saltWall, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, pebbles, tendrils, @@ -64,7 +64,7 @@ public class Blocks implements ContentList{ mechanicalPump, rotaryPump, thermalPump, conduit, pulseConduit, platedConduit, liquidRouter, liquidTank, liquidJunction, bridgeConduit, phaseConduit, //power - combustionGenerator, thermalGenerator, turbineGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor, + combustionGenerator, thermalGenerator, steamGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor, impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, diode, //production @@ -101,13 +101,12 @@ public class Blocks implements ContentList{ hasShadow = false; } - public void drawBase(Tile tile){} - public void load(){} - public void init(){} - public boolean isHidden(){ - return true; - } + @Override public void drawBase(Tile tile){} + @Override public void load(){} + @Override public void init(){} + @Override public boolean isHidden(){ return true; } + @Override public TextureRegion[] variantRegions(){ if(variantRegions == null){ variantRegions = new TextureRegion[]{Core.atlas.find("clear")}; @@ -131,8 +130,8 @@ public class Blocks implements ContentList{ //Registers build blocks //no reference is needed here since they can be looked up by name later - for(int i = 1; i <= BuildBlock.maxSize; i++){ - new BuildBlock(i); + for(int i = 1; i <= ConstructBlock.maxSize; i++){ + new ConstructBlock(i); } deepwater = new Floor("deepwater"){{ @@ -211,9 +210,7 @@ public class Blocks implements ContentList{ cacheLayer = CacheLayer.slag; }}; - stone = new Floor("stone"){{ - - }}; + stone = new Floor("stone"); craters = new Floor("craters"){{ variants = 3; @@ -224,14 +221,14 @@ public class Blocks implements ContentList{ blendGroup = stone; }}; - ignarock = new Floor("ignarock"){{ - attributes.set(Attribute.water, -0.1f); + basalt = new Floor("basalt"){{ + attributes.set(Attribute.water, -0.25f); }}; hotrock = new Floor("hotrock"){{ attributes.set(Attribute.heat, 0.5f); - attributes.set(Attribute.water, -0.2f); - blendGroup = ignarock; + attributes.set(Attribute.water, -0.5f); + blendGroup = basalt; emitLight = true; lightRadius = 30f; @@ -240,9 +237,9 @@ public class Blocks implements ContentList{ magmarock = new Floor("magmarock"){{ attributes.set(Attribute.heat, 0.75f); - attributes.set(Attribute.water, -0.5f); + attributes.set(Attribute.water, -0.75f); updateEffect = Fx.magmasmoke; - blendGroup = ignarock; + blendGroup = basalt; emitLight = true; lightRadius = 60f; @@ -261,13 +258,13 @@ public class Blocks implements ContentList{ attributes.set(Attribute.oil, 1.5f); }}; + dirt = new Floor("dirt"); + ((ShallowLiquid)darksandTaintedWater).set(Blocks.taintedWater, Blocks.darksand); ((ShallowLiquid)sandWater).set(Blocks.water, Blocks.sand); ((ShallowLiquid)darksandWater).set(Blocks.water, Blocks.darksand); - holostone = new Floor("holostone"){{ - - }}; + dacite = new Floor("dacite"); grass = new Floor("grass"){{ attributes.set(Attribute.water, 0.1f); @@ -300,41 +297,49 @@ public class Blocks implements ContentList{ fillsTile = false; }}; - rocks = new StaticWall("rocks"){{ + stoneWall = new StaticWall("stone-wall"){{ variants = 2; }}; - sporerocks = new StaticWall("sporerocks"){{ + sporeWall = new StaticWall("spore-wall"){{ variants = 2; }}; - rock = new Rock("rock"){{ + boulder = new Boulder("boulder"){{ variants = 2; }}; - snowrock = new Rock("snowrock"){{ + snowBoulder = new Boulder("snow-boulder"){{ variants = 2; }}; - icerocks = new StaticWall("icerocks"){{ + dirtWall = new StaticWall("dirt-wall"){{ + variants = 2; + }}; + + daciteWall = new StaticWall("dacite-wall"){{ + variants = 2; + }}; + + iceWall = new StaticWall("ice-wall"){{ variants = 2; iceSnow.asFloor().wall = this; }}; - snowrocks = new StaticWall("snowrocks"){{ + snowWall = new StaticWall("snow-wall"){{ variants = 2; }}; - duneRocks = new StaticWall("dunerocks"){{ + duneWall = new StaticWall("dune-wall"){{ + variants = 2; + basalt.asFloor().wall = this; + }}; + + sandWall = new StaticWall("sand-wall"){{ variants = 2; }}; - sandRocks = new StaticWall("sandrocks"){{ - variants = 2; - }}; - - saltRocks = new StaticWall("saltrocks"){{ - }}; + saltWall = new StaticWall("salt-wall"); sporePine = new StaticTree("spore-pine"){{ variants = 0; @@ -348,17 +353,13 @@ public class Blocks implements ContentList{ variants = 0; }}; - shrubs = new StaticWall("shrubs"){{ + shrubs = new StaticWall("shrubs"); - }}; + whiteTreeDead = new TreeBlock("white-tree-dead"); - whiteTreeDead = new TreeBlock("white-tree-dead"){{ - }}; + whiteTree = new TreeBlock("white-tree"); - whiteTree = new TreeBlock("white-tree"){{ - }}; - - sporeCluster = new Rock("spore-cluster"){{ + sporeCluster = new Boulder("spore-cluster"){{ variants = 3; }}; @@ -367,15 +368,19 @@ public class Blocks implements ContentList{ attributes.set(Attribute.oil, 1f); }}; - shaleRocks = new StaticWall("shalerocks"){{ + shaleWall = new StaticWall("shale-wall"){{ variants = 2; }}; - shaleBoulder = new Rock("shale-boulder"){{ + shaleBoulder = new Boulder("shale-boulder"){{ variants = 2; }}; - sandBoulder = new Rock("sand-boulder"){{ + sandBoulder = new Boulder("sand-boulder"){{ + variants = 2; + }}; + + daciteBoulder = new Boulder("dacite-boulder"){{ variants = 2; }}; @@ -388,7 +393,7 @@ public class Blocks implements ContentList{ sporeMoss = new Floor("spore-moss"){{ variants = 3; attributes.set(Attribute.spores, 0.3f); - wall = sporerocks; + wall = sporeWall; }}; metalFloor = new Floor("metal-floor"){{ @@ -507,7 +512,7 @@ public class Blocks implements ContentList{ siliconCrucible = new AttributeSmelter("silicon-crucible"){{ requirements(Category.crafting, with(Items.titanium, 120, Items.metaglass, 80, Items.plastanium, 35, Items.silicon, 60)); craftEffect = Fx.smeltsmoke; - outputItem = new ItemStack(Items.silicon, 6); + outputItem = new ItemStack(Items.silicon, 8); craftTime = 90f; size = 3; hasPower = true; @@ -516,7 +521,7 @@ public class Blocks implements ContentList{ itemCapacity = 30; boostScale = 0.15f; - consumes.items(new ItemStack(Items.coal, 3), new ItemStack(Items.sand, 6), new ItemStack(Items.pyratite, 1)); + consumes.items(new ItemStack(Items.coal, 4), new ItemStack(Items.sand, 6), new ItemStack(Items.pyratite, 1)); consumes.power(4f); }}; @@ -767,14 +772,14 @@ public class Blocks implements ContentList{ phaseWall = new Wall("phase-wall"){{ requirements(Category.defense, with(Items.phasefabric, 6)); health = 150 * wallHealthMultiplier; - flashWhite = deflect = true; + flashHit = deflect = true; }}; phaseWallLarge = new Wall("phase-wall-large"){{ requirements(Category.defense, ItemStack.mult(phaseWall.requirements, 4)); health = 150 * 4 * wallHealthMultiplier; size = 2; - flashWhite = deflect = true; + flashHit = deflect = true; }}; surgeWall = new Wall("surge-wall"){{ @@ -1086,14 +1091,14 @@ public class Blocks implements ContentList{ powerNode = new PowerNode("power-node"){{ requirements(Category.power, with(Items.copper, 1, Items.lead, 3)); - maxNodes = 20; + maxNodes = 10; laserRange = 6; }}; powerNodeLarge = new PowerNode("power-node-large"){{ requirements(Category.power, with(Items.titanium, 5, Items.lead, 10, Items.silicon, 3)); size = 2; - maxNodes = 30; + maxNodes = 15; laserRange = 9.5f; }}; @@ -1132,9 +1137,9 @@ public class Blocks implements ContentList{ size = 2; }}; - turbineGenerator = new BurnerGenerator("turbine-generator"){{ + steamGenerator = new BurnerGenerator("steam-generator"){{ requirements(Category.power, with(Items.copper, 35, Items.graphite, 25, Items.lead, 40, Items.silicon, 30)); - powerProduction = 6f; + powerProduction = 5.5f; itemDuration = 90f; consumes.liquid(Liquids.water, 0.05f); hasLiquids = true; @@ -1143,21 +1148,21 @@ public class Blocks implements ContentList{ differentialGenerator = new SingleTypeGenerator("differential-generator"){{ requirements(Category.power, with(Items.copper, 70, Items.titanium, 50, Items.lead, 100, Items.silicon, 65, Items.metaglass, 50)); - powerProduction = 17f; - itemDuration = 200f; + powerProduction = 18f; + itemDuration = 220f; hasLiquids = true; hasItems = true; size = 3; consumes.item(Items.pyratite).optional(true, false); - consumes.liquid(Liquids.cryofluid, 0.14f); + consumes.liquid(Liquids.cryofluid, 0.1f); }}; rtgGenerator = new DecayGenerator("rtg-generator"){{ requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phasefabric, 25, Items.plastanium, 75, Items.thorium, 50)); size = 2; - powerProduction = 4f; - itemDuration = 500f; + powerProduction = 4.5f; + itemDuration = 60 * 15f; }}; solarPanel = new SolarGenerator("solar-panel"){{ @@ -1176,7 +1181,7 @@ public class Blocks implements ContentList{ size = 3; health = 700; itemDuration = 360f; - powerProduction = 14f; + powerProduction = 15f; consumes.item(Items.thorium); heating = 0.02f; consumes.liquid(Liquids.cryofluid, heating / coolantPower).update(false); @@ -1504,14 +1509,14 @@ public class Blocks implements ContentList{ hasPower = true; size = 2; - force = 3f; + force = 4.5f; scaledForce = 5.5f; - range = 170f; - damage = 0.08f; + range = 110f; + damage = 0.1f; health = 160 * size * size; rotateSpeed = 10; - consumes.powerCond(3f, (TractorBeamEntity e) -> e.target != null); + consumes.powerCond(3f, (TractorBeamBuild e) -> e.target != null); }}; swarmer = new ItemTurret("swarmer"){{ @@ -1558,14 +1563,15 @@ public class Blocks implements ContentList{ }}; segment = new PointDefenseTurret("segment"){{ - requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 25)); + requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 40)); + range = 140f; hasPower = true; consumes.power(3f); size = 2; shootLength = 5f; - bulletDamage = 12f; - reloadTime = 20f; + bulletDamage = 25f; + reloadTime = 10f; health = 190 * size * size; }}; @@ -1609,6 +1615,7 @@ public class Blocks implements ContentList{ reloadTime = 60f; ammoEjectBack = 5f; ammoUseEffect = Fx.shellEjectBig; + ammoPerShot = 2; cooldown = 0.03f; velocityInaccuracy = 0.2f; restitution = 0.02f; @@ -1685,7 +1692,7 @@ public class Blocks implements ContentList{ activeSoundVolume = 2f; shootType = new ContinuousLaserBulletType(70){{ - length = 220f; + length = 200f; hitEffect = Fx.hitMeltdown; drawSize = 420f; @@ -1731,7 +1738,7 @@ public class Blocks implements ContentList{ navalFactory = new UnitFactory("naval-factory"){{ 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)), + new UnitPlan(UnitTypes.risso, 60f * 45f, with(Items.silicon, 20, Items.metaglass, 35)), }; size = 3; requiresWater = true; @@ -1758,11 +1765,11 @@ public class Blocks implements ContentList{ }}; multiplicativeReconstructor = new Reconstructor("multiplicative-reconstructor"){{ - requirements(Category.units, with(Items.lead, 650, Items.silicon, 350, Items.titanium, 350, Items.thorium, 650)); + requirements(Category.units, with(Items.lead, 650, Items.silicon, 450, Items.titanium, 350, Items.thorium, 650)); size = 5; consumes.power(6f); - consumes.items(with(Items.silicon, 130, Items.titanium, 80, Items.metaglass, 30)); + consumes.items(with(Items.silicon, 130, Items.titanium, 80, Items.metaglass, 40)); constructTime = 60f * 30f; @@ -1777,11 +1784,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, 450)); + requirements(Category.units, with(Items.lead, 2000, Items.silicon, 1000, Items.titanium, 2000, Items.thorium, 750, Items.plastanium, 450, Items.phasefabric, 600)); size = 7; consumes.power(13f); - consumes.items(with(Items.silicon, 450, Items.titanium, 550, Items.plastanium, 550)); + consumes.items(with(Items.silicon, 850, Items.titanium, 750, Items.plastanium, 650)); consumes.liquid(Liquids.cryofluid, 1f); constructTime = 60f * 60f * 1.5f; @@ -1790,15 +1797,16 @@ public class Blocks implements ContentList{ upgrades = new UnitType[][]{ {UnitTypes.zenith, UnitTypes.antumbra}, {UnitTypes.spiroct, UnitTypes.arkyid}, + {UnitTypes.fortress, UnitTypes.scepter}, }; }}; tetrativeReconstructor = new Reconstructor("tetrative-reconstructor"){{ - requirements(Category.units, with(Items.lead, 4000, Items.silicon, 1500, Items.thorium, 500, Items.plastanium, 450, Items.phasefabric, 600, Items.surgealloy, 500)); + requirements(Category.units, with(Items.lead, 4000, Items.silicon, 3000, Items.thorium, 1000, Items.plastanium, 600, Items.phasefabric, 600, Items.surgealloy, 800)); size = 9; consumes.power(25f); - consumes.items(with(Items.silicon, 350, Items.plastanium, 550, Items.surgealloy, 350, Items.phasefabric, 150)); + consumes.items(with(Items.silicon, 1000, Items.plastanium, 600, Items.surgealloy, 500, Items.phasefabric, 350)); consumes.liquid(Liquids.cryofluid, 3f); constructTime = 60f * 60f * 4; @@ -1806,6 +1814,8 @@ public class Blocks implements ContentList{ upgrades = new UnitType[][]{ {UnitTypes.antumbra, UnitTypes.eclipse}, + {UnitTypes.arkyid, UnitTypes.toxopid}, + {UnitTypes.scepter, UnitTypes.reign}, }; }}; @@ -1916,9 +1926,9 @@ public class Blocks implements ContentList{ logicProcessor = new LogicBlock("logic-processor"){{ requirements(Category.logic, with(Items.lead, 320, Items.silicon, 100, Items.graphite, 60, Items.thorium, 50)); - instructionsPerTick = 5; + instructionsPerTick = 8; - range = 8 * 20; + range = 8 * 22; size = 2; }}; @@ -1931,7 +1941,7 @@ public class Blocks implements ContentList{ instructionsPerTick = 25; - range = 8 * 40; + range = 8 * 42; size = 3; }}; diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index cc6e1f10a0..7408f35da7 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -199,7 +199,7 @@ public class Bullets implements ContentList{ hitEffect = Fx.flakExplosion; splashDamage = 18f; splashDamageRadius = 16f; - fragBullet = flakGlassFrag; + fragBullet = fragGlassFrag; fragBullets = 3; explodeRange = 20f; collidesGround = true; @@ -275,7 +275,7 @@ public class Bullets implements ContentList{ shrinkY = 0f; drag = -0.01f; splashDamageRadius = 28f; - splashDamage = 40f; + splashDamage = 35f; hitEffect = Fx.blastExplosion; despawnEffect = Fx.blastExplosion; lightning = 2; diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 0c7a05c557..f09b85b887 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -52,10 +52,11 @@ public class Fx{ if(!(e.data instanceof Unit)) return; Unit select = e.data(); + boolean block = select instanceof BlockUnitc; mixcol(Pal.accent, 1f); alpha(e.fout()); - rect(select.type().icon(Cicon.full), select.x, select.y, select.rotation - 90f); + rect(block ? ((BlockUnitc)select).tile().block.icon(Cicon.full) : select.type().icon(Cicon.full), select.x, select.y, block ? 0f : select.rotation - 90f); alpha(1f); Lines.stroke(e.fslope() * 1f); Lines.square(select.x, select.y, e.fout() * select.hitSize * 2f, 45); @@ -900,7 +901,7 @@ public class Fx{ }), - shootSmallFlame = new Effect(32f, e -> { + shootSmallFlame = new Effect(32f, 80f, e -> { color(Pal.lightFlame, Pal.darkFlame, Color.gray, e.fin()); randLenVectors(e.id, 8, e.finpow() * 60f, e.rotation, 10f, (x, y) -> { @@ -909,7 +910,7 @@ public class Fx{ }), - shootPyraFlame = new Effect(33f, e -> { + shootPyraFlame = new Effect(33f, 80f, e -> { color(Pal.lightPyraFlame, Pal.darkPyraFlame, Color.gray, e.fin()); randLenVectors(e.id, 10, e.finpow() * 70f, e.rotation, 10f, (x, y) -> { @@ -918,7 +919,7 @@ public class Fx{ }), - shootLiquid = new Effect(40f, e -> { + shootLiquid = new Effect(40f, 80f, e -> { color(e.color, Color.white, e.fout() / 6f + Mathf.randomSeedRange(e.id, 0.1f)); randLenVectors(e.id, 6, e.finpow() * 60f, e.rotation, 11f, (x, y) -> { diff --git a/core/src/mindustry/content/Items.java b/core/src/mindustry/content/Items.java index 285cc0a558..e16784a61b 100644 --- a/core/src/mindustry/content/Items.java +++ b/core/src/mindustry/content/Items.java @@ -84,7 +84,7 @@ public class Items implements ContentList{ }}; pyratite = new Item("pyratite", Color.valueOf("ffaa5f")){{ - flammability = 1.5f; + flammability = 1.4f; explosiveness = 0.4f; }}; } diff --git a/core/src/mindustry/content/StatusEffects.java b/core/src/mindustry/content/StatusEffects.java index 65814e5cb1..06480d9dd6 100644 --- a/core/src/mindustry/content/StatusEffects.java +++ b/core/src/mindustry/content/StatusEffects.java @@ -121,13 +121,14 @@ public class StatusEffects implements ContentList{ boss = new StatusEffect("boss"){{ permanent = true; + damageMultiplier = 1.5f; + armorMultiplier = 1.5f; }}; shocked = new StatusEffect("shocked"); blasted = new StatusEffect("blasted"); - //no effects, just small amounts of damage. corroded = new StatusEffect("corroded"){{ damage = 0.1f; }}; diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index 38e67d0b4e..c86b14a996 100644 --- a/core/src/mindustry/content/TechTree.java +++ b/core/src/mindustry/content/TechTree.java @@ -261,7 +261,7 @@ public class TechTree implements ContentList{ }); }); - node(turbineGenerator, () -> { + node(steamGenerator, () -> { node(thermalGenerator, () -> { node(differentialGenerator, () -> { node(thoriumReactor, () -> { @@ -366,7 +366,11 @@ public class TechTree implements ContentList{ node(dagger, () -> { node(mace, () -> { node(fortress, () -> { + node(scepter, () -> { + node(reign, () -> { + }); + }); }); }); @@ -381,7 +385,11 @@ public class TechTree implements ContentList{ node(crawler, () -> { node(atrax, () -> { node(spiroct, () -> { + node(arkyid, () -> { + node(toxopid, () -> { + }); + }); }); }); }); @@ -490,7 +498,7 @@ public class TechTree implements ContentList{ new SectorComplete(frozenForest), new Research(pneumaticDrill), new Research(powerNode), - new Research(turbineGenerator) + new Research(steamGenerator) ), () -> { node(fungalPass, Seq.with( new SectorComplete(stainedMountains), diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 10f19cad4b..51b6631034 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -15,13 +15,10 @@ public class UnitTypes implements ContentList{ //region definitions //ground - public static @EntityDef({Unitc.class, Mechc.class}) UnitType mace, dagger, crawler, fortress, vestige, cataclyst; - - //ground + builder - public static @EntityDef({Unitc.class, Mechc.class, Builderc.class}) UnitType nova; + public static @EntityDef({Unitc.class, Mechc.class}) UnitType mace, dagger, crawler, fortress, scepter, reign; //ground + builder + miner + commander - public static @EntityDef({Unitc.class, Mechc.class, Builderc.class, Minerc.class, Commanderc.class}) UnitType pulsar, quasar; + public static @EntityDef({Unitc.class, Mechc.class, Builderc.class, Minerc.class, Commanderc.class}) UnitType nova, pulsar, quasar; //legs public static @EntityDef({Unitc.class, Legsc.class}) UnitType atrax; @@ -130,6 +127,116 @@ public class UnitTypes implements ContentList{ }}); }}; + scepter = new UnitType("scepter"){{ + speed = 0.35f; + hitsize = 20f; + rotateSpeed = 2.1f; + targetAir = false; + health = 9000; + armor = 11f; + mechLegMoveScl = 1.3f; + canDrown = false; + + weapons.add( + new Weapon("scepter-weapon"){{ + y = 1f; + x = 16f; + shootY = 8f; + reload = 50f; + recoil = 5f; + shake = 2f; + ejectEffect = Fx.shellEjectBig; + shootSound = Sounds.artillery; + shots = 3; + inaccuracy = 3f; + shotDelay = 4f; + + bullet = new BasicBulletType(7f, 45){{ + width = 11f; + height = 20f; + lifetime = 25f; + shootEffect = Fx.shootBig; + lightning = 2; + lightningLength = 6; + lightningColor = Pal.surge; + //standard bullet damage is far too much for lightning + lightningDamage = 25; + }}; + }}, + + new Weapon("mount-weapon"){{ + reload = 13f; + x = 8.5f; + y = 6f; + rotate = true; + ejectEffect = Fx.shellEjectSmall; + bullet = Bullets.standardCopper; + }}, + new Weapon("mount-weapon"){{ + reload = 16f; + x = 8.5f; + y = -7f; + rotate = true; + ejectEffect = Fx.shellEjectSmall; + bullet = Bullets.standardCopper; + }} + + ); + }}; + + reign = new UnitType("reign"){{ + speed = 0.35f; + hitsize = 26f; + rotateSpeed = 1.65f; + targetAir = false; + health = 24000; + armor = 14f; + mechLegMoveScl = 1.75f; + canDrown = false; + + weapons.add( + new Weapon("reign-weapon"){{ + y = 1f; + x = 21.5f; + shootY = 11f; + reload = 9f; + recoil = 5f; + shake = 4f; + ejectEffect = Fx.shellEjectBig; + shootSound = Sounds.artillery; + + bullet = new BasicBulletType(13f, 55){{ + pierce = true; + width = 14f; + height = 33f; + lifetime = 15f; + shootEffect = Fx.shootBig; + fragVelocityMin = 0.4f; + + hitEffect = Fx.blastExplosion; + splashDamage = 18f; + splashDamageRadius = 30f; + + fragBullets = 2; + fragLifeMin = 0f; + fragCone = 30f; + + fragBullet = new BasicBulletType(9f, 15){{ + width = 10f; + height = 10f; + pierce = true; + + lifetime = 20f; + hitEffect = Fx.flakExplosion; + splashDamage = 15f; + splashDamageRadius = 15f; + }}; + }}; + }} + + ); + }}; + //endregion //region ground support @@ -142,6 +249,7 @@ public class UnitTypes implements ContentList{ health = 110f; buildSpeed = 0.8f; armor = 1f; + commandLimit = 8; abilities.add(new HealFieldAbility(10f, 60f * 4, 60f)); @@ -169,7 +277,7 @@ public class UnitTypes implements ContentList{ mineTier = 2; mineSpeed = 5f; - commandLimit = 8; + commandLimit = 15; abilities.add(new ShieldFieldAbility(20f, 40f, 60f * 5, 60f)); @@ -210,6 +318,8 @@ public class UnitTypes implements ContentList{ armor = 9f; landShake = 2f; + commandLimit = 24; + speed = 0.4f; hitsize = 10f; @@ -217,7 +327,7 @@ public class UnitTypes implements ContentList{ mineSpeed = 7f; drawShields = false; - abilities.add(new ForceFieldAbility(60f, 0.2f, 300f, 60f * 7)); + abilities.add(new ForceFieldAbility(60f, 0.3f, 400f, 60f * 6)); weapons.add(new Weapon("beam-weapon"){{ shake = 2f; @@ -228,7 +338,7 @@ public class UnitTypes implements ContentList{ shootSound = Sounds.laser; bullet = new LaserBulletType(){{ - damage = 30f; + damage = 40f; recoil = 1f; sideAngle = 45f; sideWidth = 1f; @@ -309,7 +419,6 @@ public class UnitTypes implements ContentList{ }}; spiroct = new UnitType("spiroct"){{ - itemCapacity = 200; speed = 0.4f; drag = 0.4f; hitsize = 12f; @@ -381,6 +490,8 @@ public class UnitTypes implements ContentList{ health = 8000; armor = 6f; + rotateSpeed = 2.7f; + legCount = 6; legMoveSpace = 1f; legPairOffset = 3; @@ -389,7 +500,7 @@ public class UnitTypes implements ContentList{ legBaseOffset = 10f; landShake = 1f; legSpeed = 0.1f; - legLengthScl = 1f; + legLengthScl = 0.96f; rippleScale = 2f; legSpeed = 0.2f; @@ -398,11 +509,11 @@ public class UnitTypes implements ContentList{ hovering = true; allowLegStep = true; - visualElevation = 0.4f; + visualElevation = 0.65f; groundLayer = Layer.legUnit; BulletType sapper = new SapBulletType(){{ - sapStrength = 0.8f; + sapStrength = 0.83f; length = 55f; damage = 34; shootEffect = Fx.shootSmall; @@ -453,10 +564,10 @@ public class UnitTypes implements ContentList{ knockback = 0.8f; lifetime = 70f; width = height = 19f; - collidesTiles = false; + collidesTiles = true; ammoMultiplier = 4f; splashDamageRadius = 95f; - splashDamage = 55f; + splashDamage = 65f; backColor = Pal.sapBulletBack; frontColor = lightningColor = Pal.sapBullet; lightning = 3; @@ -470,6 +581,124 @@ public class UnitTypes implements ContentList{ }}); }}; + toxopid = new UnitType("toxopid"){{ + drag = 0.1f; + speed = 0.5f; + hitsize = 21f; + health = 23000; + armor = 14f; + + rotateSpeed = 1.9f; + + legCount = 8; + legMoveSpace = 0.8f; + legPairOffset = 3; + legLength = 75f; + legExtension = -20; + legBaseOffset = 8f; + landShake = 1f; + legSpeed = 0.1f; + legLengthScl = 0.93f; + rippleScale = 3f; + legSpeed = 0.19f; + + legSplashDamage = 80; + legSplashRange = 60; + + hovering = true; + allowLegStep = true; + visualElevation = 0.95f; + groundLayer = Layer.legUnit; + + weapons.add( + new Weapon("large-purple-mount"){{ + y = -5f; + x = 11f; + shootY = 7f; + reload = 30; + shake = 4f; + rotateSpeed = 2f; + ejectEffect = Fx.shellEjectSmall; + shootSound = Sounds.shootBig; + rotate = true; + occlusion = 12f; + recoil = 3f; + shots = 2; + spacing = 17f; + + bullet = new ShrapnelBulletType(){{ + length = 90f; + damage = 110f; + width = 25f; + serrationLenScl = 7f; + serrationSpaceOffset = 60f; + serrationFadeOffset = 0f; + serrations = 10; + serrationWidth = 6f; + fromColor = Pal.sapBullet; + toColor = Pal.sapBulletBack; + shootEffect = smokeEffect = Fx.sparkShoot; + }}; + }}); + + weapons.add(new Weapon("toxopid-cannon"){{ + y = -14f; + x = 0f; + shootY = 22f; + mirror = false; + reload = 210; + shake = 10f; + recoil = 10f; + rotateSpeed = 1f; + ejectEffect = Fx.shellEjectBig; + shootSound = Sounds.shootBig; + rotate = true; + occlusion = 30f; + + bullet = new ArtilleryBulletType(3f, 50){{ + hitEffect = Fx.sapExplosion; + knockback = 0.8f; + lifetime = 80f; + width = height = 25f; + collidesTiles = collides = true; + ammoMultiplier = 4f; + splashDamageRadius = 95f; + splashDamage = 90f; + backColor = Pal.sapBulletBack; + frontColor = lightningColor = Pal.sapBullet; + lightning = 5; + lightningLength = 20; + smokeEffect = Fx.shootBigSmoke2; + hitShake = 10f; + + status = StatusEffects.sapped; + statusDuration = 60f * 10; + + fragLifeMin = 0.3f; + fragBullets = 9; + + fragBullet = new ArtilleryBulletType(2.3f, 30){{ + hitEffect = Fx.sapExplosion; + knockback = 0.8f; + lifetime = 90f; + width = height = 20f; + collidesTiles = false; + splashDamageRadius = 80f; + splashDamage = 45f; + backColor = Pal.sapBulletBack; + frontColor = lightningColor = Pal.sapBullet; + lightning = 2; + lightningLength = 5; + smokeEffect = Fx.shootBigSmoke2; + hitShake = 5f; + + status = StatusEffects.sapped; + statusDuration = 60f * 10; + }}; + }}; + }}); + }}; + //endregion //region air attack @@ -482,6 +711,8 @@ public class UnitTypes implements ContentList{ faceTarget = false; engineOffset = 5.5f; range = 140f; + crashDamageMultiplier = 4f; + weapons.add(new Weapon(){{ y = 0f; x = 2f; @@ -651,7 +882,7 @@ public class UnitTypes implements ContentList{ rotateSpeed = 1f; flying = true; lowAltitude = true; - health = 18000; + health = 20000; engineOffset = 38; engineSize = 7.3f; hitsize = 58f; @@ -735,6 +966,7 @@ public class UnitTypes implements ContentList{ engineOffset = 5.7f; itemCapacity = 30; range = 50f; + isCounted = false; mineTier = 1; mineSpeed = 2.5f; @@ -755,6 +987,7 @@ public class UnitTypes implements ContentList{ engineOffset = 6.5f; hitsize = 8f; lowAltitude = true; + isCounted = false; mineTier = 2; mineSpeed = 3.5f; @@ -801,7 +1034,8 @@ public class UnitTypes implements ContentList{ rotateShooting = false; hitsize = 15f; engineSize = 3f; - payloadCapacity = 4; + payloadCapacity = 4 * (8 * 8); + buildSpeed = 2.5f; weapons.add( new Weapon("heal-weapon-mount"){{ @@ -832,6 +1066,7 @@ public class UnitTypes implements ContentList{ rotateSpeed = 3.3f; immunities = ObjectSet.with(StatusEffects.wet); trailLength = 20; + rotateShooting = false; armor = 2f; @@ -887,6 +1122,7 @@ public class UnitTypes implements ContentList{ trailX = 5.5f; trailY = -4f; trailScl = 1.9f; + rotateShooting = false; abilities.add(new StatusFieldAbility(StatusEffects.overclock, 60f * 6, 60f * 6f, 60f)); @@ -923,6 +1159,7 @@ public class UnitTypes implements ContentList{ hitsize = 14f; armor = 6f; immunities = ObjectSet.with(StatusEffects.wet); + rotateShooting = false; trailLength = 22; trailX = 7f; diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 46e79e64cd..9e11cb91f0 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -182,7 +182,7 @@ public class Control implements ApplicationListener, Loadable{ app.post(() -> ui.hudfrag.showLand()); renderer.zoomIn(Fx.coreLand.lifetime); - app.post(() -> Fx.coreLand.at(core.getX(), core.getY(), 0, core.block())); + app.post(() -> Fx.coreLand.at(core.getX(), core.getY(), 0, core.block)); Time.run(Fx.coreLand.lifetime, () -> { Fx.launch.at(core); Effect.shake(5f, 5f, core); @@ -428,19 +428,12 @@ public class Control implements ApplicationListener, Loadable{ //just a regular reminder if(!OS.prop("user.name").equals("anuke") && !OS.hasEnv("iknowwhatimdoing")){ app.post(() -> app.post(() -> { - ui.showStartupInfo("[accent]v6[] is currently in [accent]pre-alpha[].\n" + - "[lightgray]This means:[]\n" + - "- Content is missing\n" + - "- [scarlet]Mobile[] is not supported.\n" + - "- Most [scarlet]Unit AI[] does not work\n" + - "- Many units are [scarlet]missing[] or unfinished\n" + - "- The campaign is completely unfinished\n" + - "- Everything you see is subject to change or removal." + - "\n\nReport bugs or crashes on [accent]Github[]."); + ui.showStartupInfo("@indevpopup"); })); } - //play tutorial on stop + //play tutorial on start + //TODO no tutorial right now if(!settings.getBool("playedtutorial", false)){ //Core.app.post(() -> Core.app.post(this::playTutorial)); } diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index d70776a006..976d80da9f 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -15,7 +15,7 @@ import mindustry.type.*; import mindustry.type.Weather.*; import mindustry.world.*; import mindustry.world.blocks.*; -import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.blocks.ConstructBlock.*; import mindustry.world.blocks.storage.CoreBlock.*; import java.util.*; @@ -41,9 +41,9 @@ public class Logic implements ApplicationListener{ //skip null entities or un-rebuildables, for obvious reasons; also skip client since they can't modify these requests if(tile.build == null || !tile.block().rebuildable || net.client()) return; - if(block instanceof BuildBlock){ + if(block instanceof ConstructBlock){ - BuildEntity entity = tile.bc(); + ConstructBuild entity = tile.bc(); //update block to reflect the fact that something was being constructed if(entity.cblock != null && entity.cblock.synthetic()){ @@ -187,7 +187,7 @@ public class Logic implements ApplicationListener{ //campaign maps do not have a 'win' state! if(state.isCampaign()){ //gameover only when cores are dead - if(!state.rules.attackMode && state.teams.playerCores().size == 0 && !state.gameOver){ + if(state.teams.playerCores().size == 0 && !state.gameOver){ state.gameOver = true; Events.fire(new GameOverEvent(state.rules.waveTeam)); } diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index ecdf57fc91..c98f8953cf 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -585,8 +585,11 @@ public class NetClient implements ApplicationListener{ } Unit unit = player.dead() ? Nulls.unit : player.unit(); + int uid = player.dead() ? -1 : unit.id; - Call.clientSnapshot(lastSent++, + Call.clientSnapshot( + lastSent++, + uid, player.dead(), unit.x, unit.y, player.unit().aimX(), player.unit().aimY(), @@ -597,7 +600,8 @@ public class NetClient implements ApplicationListener{ 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); + Core.camera.width * viewScale, Core.camera.height * viewScale + ); } if(timer.get(1, 60)){ diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index ba03907038..6174798e96 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -174,7 +174,7 @@ public class NetServer implements ApplicationListener{ return; } - boolean preventDuplicates = headless && netServer.admins.getStrict(); + boolean preventDuplicates = headless && netServer.admins.isStrict(); if(preventDuplicates){ if(Groups.player.contains(p -> p.name.trim().equalsIgnoreCase(packet.name.trim()))){ @@ -485,7 +485,7 @@ public class NetServer implements ApplicationListener{ data.stream = new ByteArrayInputStream(stream.toByteArray()); player.con.sendStream(data); - Log.debug("Packed @ compressed bytes of world data.", stream.size()); + Log.debug("Packed @ bytes of world data.", stream.size()); } public void addPacketHandler(String type, Cons2 handler){ @@ -539,6 +539,7 @@ public class NetServer implements ApplicationListener{ public static void clientSnapshot( Player player, int snapshotID, + int unitID, boolean dead, float x, float y, float pointerX, float pointerY, @@ -562,7 +563,7 @@ public class NetServer implements ApplicationListener{ if(invalid(rotation)) rotation = 0f; if(invalid(baseRotation)) baseRotation = 0f; - boolean verifyPosition = !player.dead() && netServer.admins.getStrict() && headless; + boolean verifyPosition = netServer.admins.isStrict() && headless; if(con.lastReceivedClientTime == 0) con.lastReceivedClientTime = Time.millis() - 16; @@ -580,7 +581,6 @@ public class NetServer implements ApplicationListener{ boosting = false; } - //TODO these need to be assigned elsewhere player.mouseX = pointerX; player.mouseY = pointerY; player.typing = chatting; @@ -635,41 +635,37 @@ public class NetServer implements ApplicationListener{ 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){ - con.lastUnit = unit; - con.lastPosition.set(unit); - } - - //if the player think they're dead their position should be ignored - if(dead){ - x = unit.x; - y = unit.y; - } - - vector.set(x, y).sub(con.lastPosition); - vector.limit(maxMove); - - float prevx = unit.x, prevy = unit.y; - unit.set(con.lastPosition); - if(!unit.isFlying()){ - unit.move(vector.x, vector.y); - }else{ - unit.trns(vector.x, vector.y); - } - - //set last position after movement - con.lastPosition.set(unit); + //ignore the position if the player thinks they're dead, or the unit is wrong + boolean ignorePosition = dead || unit.id != unitID; float newx = unit.x, newy = unit.y; - if(!verifyPosition){ - unit.set(prevx, prevy); - newx = x; - newy = y; - }else if(!Mathf.within(x, y, newx, newy, correctDist) && !dead){ - Call.setPosition(player.con, newx, newy); //teleport and correct position when necessary + if(!ignorePosition){ + unit.vel.set(xVelocity, yVelocity).limit(maxSpeed); + + vector.set(x, y).sub(unit); + vector.limit(maxMove); + + float prevx = unit.x, prevy = unit.y; + //unit.set(con.lastPosition); + if(!unit.isFlying()){ + unit.move(vector.x, vector.y); + }else{ + unit.trns(vector.x, vector.y); + } + + newx = unit.x; + newy = unit.y; + + if(!verifyPosition){ + unit.set(prevx, prevy); + newx = x; + newy = y; + }else if(!Mathf.within(x, y, newx, newy, correctDist)){ + Call.setPosition(player.con, newx, newy); //teleport and correct position when necessary + } } //write sync data to the buffer @@ -813,7 +809,7 @@ public class NetServer implements ApplicationListener{ short sent = 0; for(Building entity : Groups.build){ - if(!entity.block().sync) continue; + if(!entity.block.sync) continue; sent ++; dataStream.writeInt(entity.pos()); @@ -842,7 +838,7 @@ public class NetServer implements ApplicationListener{ dataStream.writeByte(cores.size); for(CoreBuild entity : cores){ - dataStream.writeInt(entity.tile().pos()); + dataStream.writeInt(entity.tile.pos()); entity.items.write(Writes.get(dataStream)); } diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index e04aef622d..d694b07834 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -271,7 +271,7 @@ public class Renderer implements ApplicationListener{ float fract = landTime / Fx.coreLand.lifetime; Building entity = player.closestCore(); - TextureRegion reg = entity.block().icon(Cicon.full); + TextureRegion reg = entity.block.icon(Cicon.full); float scl = Scl.scl(4f) / camerascale; float s = reg.getWidth() * Draw.scl * scl * 4f * fract; diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java index 9dea5f0e35..2ec1b4dec6 100644 --- a/core/src/mindustry/core/World.java +++ b/core/src/mindustry/core/World.java @@ -105,7 +105,9 @@ public class World{ public Tile tileBuilding(int x, int y){ Tile tile = tiles.get(x, y); if(tile == null) return null; - if(tile.build != null) return tile.build.tile(); + if(tile.build != null){ + return tile.build.tile(); + } return tile; } @@ -185,16 +187,12 @@ public class World{ continue; } - tile.updateOcclusion(); - if(tile.build != null){ tile.build.updateProximity(); } } - if(!headless){ - addDarkness(tiles); - } + addDarkness(tiles); Groups.resize(-finalWorldBounds, -finalWorldBounds, tiles.width * tilesize + finalWorldBounds * 2, tiles.height * tilesize + finalWorldBounds * 2); @@ -317,7 +315,7 @@ public class World{ public void notifyChanged(Tile tile){ if(!generating){ - Core.app.post(() -> Events.fire(new BuildinghangeEvent(tile))); + Core.app.post(() -> Events.fire(new TileChangeEvent(tile))); } } diff --git a/core/src/mindustry/editor/EditorTile.java b/core/src/mindustry/editor/EditorTile.java index 3ad8cf49d8..feb53f2f09 100644 --- a/core/src/mindustry/editor/EditorTile.java +++ b/core/src/mindustry/editor/EditorTile.java @@ -39,13 +39,6 @@ public class EditorTile extends Tile{ super.setFloor(type); } - @Override - public void updateOcclusion(){ - super.updateOcclusion(); - - ui.editor.editor.renderer().updatePoint(x, y); - } - @Override public void setBlock(Block type, Team team, int rotation){ if(state.isGame()){ @@ -85,8 +78,12 @@ public class EditorTile extends Tile{ } @Override - protected void preChanged(){ - super.preChanged(); + protected void fireChanged(){ + if(state.isGame()){ + super.fireChanged(); + }else{ + ui.editor.editor.renderer().updatePoint(x, y); + } } @Override diff --git a/core/src/mindustry/editor/EditorTool.java b/core/src/mindustry/editor/EditorTool.java index 47053049e2..b3a84f538e 100644 --- a/core/src/mindustry/editor/EditorTool.java +++ b/core/src/mindustry/editor/EditorTool.java @@ -1,6 +1,7 @@ package mindustry.editor; import arc.func.*; +import arc.input.*; import arc.math.*; import arc.math.geom.*; import arc.struct.*; @@ -10,8 +11,8 @@ import mindustry.game.*; import mindustry.world.*; public enum EditorTool{ - zoom, - pick{ + zoom(KeyCode.v), + pick(KeyCode.i){ public void touched(MapEditor editor, int x, int y){ if(!Structs.inBounds(x, y, editor.width(), editor.height())) return; @@ -19,7 +20,7 @@ public enum EditorTool{ editor.drawBlock = tile.block() == Blocks.air ? tile.overlay() == Blocks.air ? tile.floor() : tile.overlay() : tile.block(); } }, - line("replace", "orthogonal"){ + line(KeyCode.l, "replace", "orthogonal"){ @Override public void touchedLine(MapEditor editor, int x1, int y1, int x2, int y2){ @@ -43,7 +44,7 @@ public enum EditorTool{ }); } }, - pencil("replace", "square", "drawteams"){ + pencil(KeyCode.b, "replace", "square", "drawteams"){ { edit = true; draggable = true; @@ -67,7 +68,7 @@ public enum EditorTool{ } }, - eraser("eraseores"){ + eraser(KeyCode.e, "eraseores"){ { edit = true; draggable = true; @@ -86,7 +87,7 @@ public enum EditorTool{ }); } }, - fill("replaceall", "fillteams"){ + fill(KeyCode.g, "replaceall", "fillteams"){ { edit = true; } @@ -205,7 +206,7 @@ public enum EditorTool{ } } }, - spray("replace"){ + spray(KeyCode.r, "replace"){ final double chance = 0.012; { @@ -231,8 +232,12 @@ public enum EditorTool{ } }; + public static final EditorTool[] all = values(); + /** All the internal alternate placement modes of this tool. */ public final String[] altModes; + /** Key to activate this tool. */ + public KeyCode key = KeyCode.unset; /** The current alternate placement mode. -1 is the standard mode, no changes.*/ public int mode = -1; /** Whether this tool causes canvas changes when touched.*/ @@ -244,10 +249,20 @@ public enum EditorTool{ this(new String[]{}); } + EditorTool(KeyCode code){ + this(new String[]{}); + this.key = code; + } + EditorTool(String... altModes){ this.altModes = altModes; } + EditorTool(KeyCode code, String... altModes){ + this.altModes = altModes; + this.key = code; + } + public void touched(MapEditor editor, int x, int y){} public void touchedLine(MapEditor editor, int x1, int y1, int x2, int y2){} diff --git a/core/src/mindustry/editor/MapEditor.java b/core/src/mindustry/editor/MapEditor.java index a41856aaf1..bbef2125ed 100644 --- a/core/src/mindustry/editor/MapEditor.java +++ b/core/src/mindustry/editor/MapEditor.java @@ -126,7 +126,7 @@ public class MapEditor{ x = Mathf.clamp(x, (drawBlock.size - 1) / 2, width() - drawBlock.size / 2 - 1); y = Mathf.clamp(y, (drawBlock.size - 1) / 2, height() - drawBlock.size / 2 - 1); if(!hasOverlap(x, y)){ - tile(x, y).setBlock(drawBlock, drawTeam, 0); + tile(x, y).setBlock(drawBlock, drawTeam, rotation); } }else{ boolean isFloor = drawBlock.isFloor() && drawBlock != Blocks.air; diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index 1805df28d0..f765a959af 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -576,22 +576,20 @@ public class MapEditorDialog extends Dialog implements Disposable{ if(Core.input.ctrl()){ //alt mode select - for(int i = 0; i < view.getTool().altModes.length + 1; i++){ - if(Core.input.keyTap(KeyCode.valueOf("num" + (i + 1)))){ - view.getTool().mode = i - 1; + for(int i = 0; i < view.getTool().altModes.length; i++){ + if(i + 1 < KeyCode.numbers.length && Core.input.keyTap(KeyCode.numbers[i + 1])){ + view.getTool().mode = i; } } }else{ - //tool select - for(int i = 0; i < EditorTool.values().length; i++){ - if(Core.input.keyTap(KeyCode.valueOf("num" + (i + 1)))){ - view.setTool(EditorTool.values()[i]); + for(EditorTool tool : EditorTool.all){ + if(Core.input.keyTap(tool.key)){ + view.setTool(tool); break; } } } - if(Core.input.keyTap(KeyCode.escape)){ if(!menu.isShown()){ menu.show(); @@ -619,7 +617,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ for(int x = 0; x < editor.width(); x++){ for(int y = 0; y < editor.height(); y++){ Tile tile = editor.tile(x, y); - if(tile.block().breakable && tile.block() instanceof Rock){ + if(tile.block().breakable && tile.block() instanceof Boulder){ tile.setBlock(Blocks.air); editor.renderer().updatePoint(x, y); } diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java index c2869a664c..7f540750d9 100644 --- a/core/src/mindustry/editor/MapGenerateDialog.java +++ b/core/src/mindustry/editor/MapGenerateDialog.java @@ -348,6 +348,7 @@ public class MapGenerateDialog extends BaseDialog{ result = executor.submit(() -> { try{ + world.setGenerating(true); generating = true; if(!filters.isEmpty()){ @@ -400,7 +401,7 @@ public class MapGenerateDialog extends BaseDialog{ generating = false; e.printStackTrace(); } - return null; + world.setGenerating(false); }); } diff --git a/core/src/mindustry/editor/MapRenderer.java b/core/src/mindustry/editor/MapRenderer.java index 04bca65167..f926da9903 100644 --- a/core/src/mindustry/editor/MapRenderer.java +++ b/core/src/mindustry/editor/MapRenderer.java @@ -110,18 +110,13 @@ public class MapRenderer implements Disposable{ if(wall != Blocks.air && wall.synthetic()){ region = !Core.atlas.isFound(wall.editorIcon()) || !center ? Core.atlas.find("clear-editor") : wall.editorIcon(); - if(wall.rotate){ - mesh.draw(idxWall, region, - wx * tilesize + wall.offset, wy * tilesize + wall.offset, - region.getWidth() * Draw.scl, region.getHeight() * Draw.scl, tile.build == null ? 0 : tile.build.rotdeg() - 90); - }else{ - float width = region.getWidth() * Draw.scl, height = region.getHeight() * Draw.scl; + float width = region.getWidth() * Draw.scl, height = region.getHeight() * Draw.scl; - mesh.draw(idxWall, region, - wx * tilesize + wall.offset + (tilesize - width) / 2f, - wy * tilesize + wall.offset + (tilesize - height) / 2f, - width, height); - } + mesh.draw(idxWall, region, + wx * tilesize + wall.offset + (tilesize - width) / 2f, + wy * tilesize + wall.offset + (tilesize - height) / 2f, + width, height, + tile.build == null || !wall.rotate ? 0 : tile.build.rotdeg() - 90); }else{ region = floor.editorVariantRegions()[Mathf.randomSeed(idxWall, 0, floor.editorVariantRegions().length - 1)]; diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index b6a2a94440..5ff4bee8a6 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -20,6 +20,7 @@ import static mindustry.Vars.*; /** Utility class for damaging in an area. */ public class Damage{ + private static Tile furthest; private static Rect rect = new Rect(); private static Rect hitrect = new Rect(); private static Vec2 tr = new Vec2(); @@ -76,6 +77,23 @@ public class Damage{ } } + /** Collides a bullet with blocks in a laser, taking into account absorption blocks. Resulting length is stored in the bullet's fdata. */ + public static float collideLaser(Bullet b, float length){ + Tmp.v1.trns(b.rotation(), length); + + furthest = null; + + world.raycast(b.tileX(), b.tileY(), world.toTile(b.x + Tmp.v1.x), world.toTile(b.y + Tmp.v1.y), + (x, y) -> (furthest = world.tile(x, y)) != null && furthest.team() != b.team && furthest.block().absorbLasers); + + float resultLength = furthest != null ? Math.max(6f, b.dst(furthest.worldx(), furthest.worldy())) : length; + + Damage.collideLine(b, b.team, b.type.hitEffect, b.x, b.y, b.rotation(), resultLength); + b.fdata = furthest != null ? resultLength : length; + + return resultLength; + } + public static void collideLine(Bullet hitter, Team team, Effect effect, float x, float y, float angle, float length){ collideLine(hitter, team, effect, x, y, angle, length, false); } diff --git a/core/src/mindustry/entities/Effect.java b/core/src/mindustry/entities/Effect.java index 7950c5375c..62ebe99d32 100644 --- a/core/src/mindustry/entities/Effect.java +++ b/core/src/mindustry/entities/Effect.java @@ -40,7 +40,7 @@ public class Effect{ } public Effect(float life, Cons renderer){ - this(life, 28f, renderer); + this(life, 32f, renderer); } public Effect ground(){ @@ -89,6 +89,7 @@ public class Effect{ public void render(int id, Color color, float life, float rotation, float x, float y, Object data){ container.set(id, color, life, lifetime, rotation, x, y, data); Draw.z(ground ? Layer.debris : Layer.effect); + Draw.reset(); renderer.get(container); Draw.reset(); } diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 23e3c56db4..6460e9ce8d 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -99,7 +99,7 @@ public class Units{ nearby(x, y, width, height, unit -> { if(boolResult) return; - if(unit.isGrounded() == ground){ + if((unit.isGrounded() && !unit.type().hovering) == ground){ unit.hitbox(hitrect); if(hitrect.overlaps(x, y, width, height)){ @@ -251,9 +251,20 @@ public class Units{ /** Iterates over all units that are enemies of this team. */ public static void nearbyEnemies(Team team, float x, float y, float width, float height, Cons cons){ - for(Team enemy : state.teams.enemiesOf(team)){ - nearby(enemy, x, y, width, height, cons); + if(team.active()){ + for(Team enemy : state.teams.enemiesOf(team)){ + nearby(enemy, x, y, width, height, cons); + } + }else{ + //inactive teams have no cache, check everything + //TODO cache all teams with units OR blocks + for(Team other : Team.all){ + if(other != team && teamIndex.count(other) > 0){ + nearby(other, x, y, width, height, cons); + } + } } + } /** Iterates over all units that are enemies of this team. */ diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 481731f7b3..908621e508 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -74,7 +74,7 @@ public abstract class BulletType extends Content{ public float fragCone = 360f; public int fragBullets = 9; - public float fragVelocityMin = 0.2f, fragVelocityMax = 1f; + public float fragVelocityMin = 0.2f, fragVelocityMax = 1f, fragLifeMin = 1f, fragLifeMax = 1f; public BulletType fragBullet = null; public Color hitColor = Color.white; @@ -149,7 +149,7 @@ public abstract class BulletType extends Content{ for(int i = 0; i < fragBullets; i++){ float len = Mathf.random(1f, 7f); float a = b.rotation() + Mathf.range(fragCone/2); - fragBullet.create(b, x + Angles.trnsx(a, len), y + Angles.trnsy(a, len), a, Mathf.random(fragVelocityMin, fragVelocityMax)); + fragBullet.create(b, x + Angles.trnsx(a, len), y + Angles.trnsy(a, len), a, Mathf.random(fragVelocityMin, fragVelocityMax), Mathf.random(fragLifeMin, fragLifeMax)); } } @@ -247,6 +247,10 @@ public abstract class BulletType extends Content{ return create(parent.owner(), parent.team, x, y, angle); } + public Bullet create(Bullet parent, float x, float y, float angle, float velocityScl, float lifeScale){ + return create(parent.owner(), parent.team, x, y, angle, velocityScl, lifeScale); + } + public Bullet create(Bullet parent, float x, float y, float angle, float velocityScl){ return create(parent.owner(), parent.team, x, y, angle, velocityScl); } diff --git a/core/src/mindustry/entities/bullet/HealBulletType.java b/core/src/mindustry/entities/bullet/HealBulletType.java index 4d363dc611..fa3e27c63c 100644 --- a/core/src/mindustry/entities/bullet/HealBulletType.java +++ b/core/src/mindustry/entities/bullet/HealBulletType.java @@ -46,8 +46,8 @@ public class HealBulletType extends BulletType{ public void hitTile(Bullet b, Building tile){ super.hit(b); - if(tile.team == b.team && !(tile.block() instanceof BuildBlock)){ - Fx.healBlockFull.at(tile.x, tile.y, tile.block().size, Pal.heal); + if(tile.team == b.team && !(tile.block instanceof ConstructBlock)){ + 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 821129f51d..5fd96f6cc6 100644 --- a/core/src/mindustry/entities/bullet/LaserBulletType.java +++ b/core/src/mindustry/entities/bullet/LaserBulletType.java @@ -10,8 +10,6 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.world.*; -import static mindustry.Vars.world; - public class LaserBulletType extends BulletType{ protected static Tile furthest; @@ -49,24 +47,13 @@ public class LaserBulletType extends BulletType{ @Override public void init(Bullet b){ - Tmp.v1.trns(b.rotation(), length); - - furthest = null; - - world.raycast(b.tileX(), b.tileY(), world.toTile(b.x + Tmp.v1.x), world.toTile(b.y + Tmp.v1.y), - (x, y) -> (furthest = world.tile(x, y)) != null && furthest.team() != b.team && furthest.block().absorbLasers); - - float resultLength = furthest != null ? Math.max(6f, b.dst(furthest.worldx(), furthest.worldy())) : length; - - Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), resultLength); - if(furthest != null) b.data(resultLength); - + float resultLength = Damage.collideLaser(b, length); laserEffect.at(b.x, b.y, b.rotation(), resultLength * 0.75f); } @Override public void draw(Bullet b){ - float realLength = b.data() == null ? length : (Float)b.data(); + float realLength = b.fdata; float f = Mathf.curve(b.fin(), 0f, 0.2f); float baseLen = realLength * f; diff --git a/core/src/mindustry/entities/bullet/LiquidBulletType.java b/core/src/mindustry/entities/bullet/LiquidBulletType.java index 45ae536668..22d5c22d42 100644 --- a/core/src/mindustry/entities/bullet/LiquidBulletType.java +++ b/core/src/mindustry/entities/bullet/LiquidBulletType.java @@ -24,6 +24,7 @@ public class LiquidBulletType extends BulletType{ this.status = liquid.effect; } + ammoMultiplier = 1f; lifetime = 74f; statusDuration = 60f * 2f; despawnEffect = Fx.none; diff --git a/core/src/mindustry/entities/bullet/ShrapnelBulletType.java b/core/src/mindustry/entities/bullet/ShrapnelBulletType.java index 8f26efeaae..a6a9ca6be0 100644 --- a/core/src/mindustry/entities/bullet/ShrapnelBulletType.java +++ b/core/src/mindustry/entities/bullet/ShrapnelBulletType.java @@ -15,7 +15,7 @@ public class ShrapnelBulletType extends BulletType{ public Color fromColor = Color.white, toColor = Pal.lancerLaser; public int serrations = 7; - public float serrationLenScl = 10f, serrationWidth = 4f, serrationSpacing = 8f, serrationSpaceOffset = 80f; + public float serrationLenScl = 10f, serrationWidth = 4f, serrationSpacing = 8f, serrationSpaceOffset = 80f, serrationFadeOffset = 0.5f; public ShrapnelBulletType(){ speed = 0.01f; @@ -24,23 +24,31 @@ public class ShrapnelBulletType extends BulletType{ lifetime = 10f; despawnEffect = Fx.none; pierce = true; + keepVelocity = false; } @Override public void init(Bullet b){ - Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), length); + Damage.collideLaser(b, length); + } + + @Override + public float range(){ + return length; } @Override public void draw(Bullet b){ + float realLength = b.fdata; + Draw.color(fromColor, toColor, b.fin()); - for(int i = 0; i < serrations; i++){ + for(int i = 0; i < (int)(serrations * realLength / length); i++){ Tmp.v1.trns(b.rotation(), i * serrationSpacing); - float sl = Mathf.clamp(b.fout() - 0.5f) * (serrationSpaceOffset - i * serrationLenScl); + float sl = Mathf.clamp(b.fout() - serrationFadeOffset) * (serrationSpaceOffset - i * serrationLenScl); Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, serrationWidth, sl, b.rotation() + 90); Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, serrationWidth, sl, b.rotation() - 90); } - Drawf.tri(b.x, b.y, width * b.fout(), (length + 50), b.rotation()); + Drawf.tri(b.x, b.y, width * b.fout(), (realLength + 50), b.rotation()); Drawf.tri(b.x, b.y, width * b.fout(), 10f, b.rotation() + 180f); Draw.reset(); } diff --git a/core/src/mindustry/entities/comp/BlockUnitComp.java b/core/src/mindustry/entities/comp/BlockUnitComp.java index 39bfb85b97..d0ec5b9a32 100644 --- a/core/src/mindustry/entities/comp/BlockUnitComp.java +++ b/core/src/mindustry/entities/comp/BlockUnitComp.java @@ -18,9 +18,9 @@ abstract class BlockUnitComp implements Unitc{ this.tile = tile; //sets up block stats - maxHealth(tile.block().health); + maxHealth(tile.block.health); health(tile.health()); - hitSize(tile.block().size * tilesize * 0.7f); + hitSize(tile.block.size * tilesize * 0.7f); set(tile); } diff --git a/core/src/mindustry/entities/comp/BuilderComp.java b/core/src/mindustry/entities/comp/BuilderComp.java index 6565ed573d..815f81773f 100644 --- a/core/src/mindustry/entities/comp/BuilderComp.java +++ b/core/src/mindustry/entities/comp/BuilderComp.java @@ -16,7 +16,7 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.world.*; import mindustry.world.blocks.*; -import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.blocks.ConstructBlock.*; import java.util.*; @@ -74,7 +74,7 @@ abstract class BuilderComp implements Unitc{ rotation = Mathf.slerpDelta(rotation, angleTo(tile), 0.4f); } - if(!(tile.block() instanceof BuildBlock)){ + if(!(tile.block() instanceof ConstructBlock)){ if(!current.initialized && !current.breaking && Build.validPlace(current.block, team(), current.x, current.y, current.rotation)){ boolean hasAll = infinite || !Structs.contains(current.block.requirements, i -> core != null && !core.items.has(i.item)); @@ -94,27 +94,23 @@ abstract class BuilderComp implements Unitc{ return; } - if(tile.build instanceof BuildEntity && !current.initialized){ + if(tile.build instanceof ConstructBuild && !current.initialized){ Core.app.post(() -> Events.fire(new BuildSelectEvent(tile, team(), (Builderc)this, current.breaking))); current.initialized = true; } //if there is no core to build with or no build entity, stop building! - if((core == null && !infinite) || !(tile.build instanceof BuildEntity)){ + if((core == null && !infinite) || !(tile.build instanceof ConstructBuild)){ return; } //otherwise, update it. - BuildEntity entity = tile.bc(); + ConstructBuild entity = tile.bc(); if(current.breaking){ entity.deconstruct(base(), core, 1f / entity.buildCost * Time.delta * type().buildSpeed * state.rules.buildSpeedMultiplier); }else{ - if(entity.construct(base(), core, 1f / entity.buildCost * Time.delta * type().buildSpeed * state.rules.buildSpeedMultiplier, current.hasConfig)){ - if(current.hasConfig){ - Call.tileConfig(null, tile.build, current.config); - } - } + entity.construct(base(), core, 1f / entity.buildCost * Time.delta * type().buildSpeed * state.rules.buildSpeedMultiplier, current.config); } current.stuck = Mathf.equal(current.progress, entity.progress); @@ -183,8 +179,8 @@ abstract class BuilderComp implements Unitc{ plans.remove(replace); } Tile tile = world.tile(place.x, place.y); - if(tile != null && tile.build instanceof BuildEntity){ - place.progress = tile.bc().progress; + if(tile != null && tile.build instanceof ConstructBuild){ + place.progress = tile.bc().progress; } if(tail){ plans.addLast(place); diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index e498ab4701..54a7b8569f 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -76,6 +76,12 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, public Building init(Tile tile, Team team, boolean shouldAdd, int rotation){ if(!initialized){ create(tile.block(), team); + }else{ + if(block.hasPower){ + //reinit power graph + power.graph = new PowerGraph(); + power.graph.add(base()); + } } this.rotation = rotation; this.tile = tile; @@ -697,6 +703,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, other.build.power.links.removeValue(pos()); } } + power.links.clear(); } public Seq getPowerConnections(Seq out){ @@ -812,10 +819,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, /** Called after the block is placed by this client. */ @CallSuper - public void playerPlaced(){ - if(block.saveConfig && block.lastConfig != null){ - configure(block.lastConfig); - } + public void playerPlaced(Object config){ + } /** Called after the block is placed by anyone. */ @@ -831,7 +836,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, if(other != null && other.block instanceof PowerNode && ((PowerNode)other.block).linkValid(other, base()) && !PowerNode.insulated(other, base()) && !other.proximity().contains(this.base()) && !(block.outputsPower && proximity.contains(p -> p.power != null && p.power.graph == other.power.graph))){ - tempTiles.add(other.tile()); + tempTiles.add(other.tile); } }); tempTiles.sort(Structs.comparingFloat(t -> t.dst2(tile))); @@ -856,7 +861,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } /** Called when arbitrary configuration is applied to a tile. */ - public void configured(@Nullable Player player, @Nullable Object value){ + public void configured(@Nullable Unit builder, @Nullable Object value){ //null is of type void.class; anonymous classes use their superclass. Class type = value == null ? void.class : value.getClass().isAnonymousClass() ? value.getClass().getSuperclass() : value.getClass(); @@ -967,7 +972,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, table.row(); table.table(this::displayConsumption).growX(); - boolean displayFlow = (block.category == Category.distribution || block.category == Category.liquid) && Core.settings.getBool("flow"); + boolean displayFlow = (block.category == Category.distribution || block.category == Category.liquid) && Core.settings.getBool("flow") && block.displayFlow; if(displayFlow){ String ps = " " + StatUnit.perSecond.localized(); @@ -1005,9 +1010,21 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, if(liquids != null){ table.row(); table.table(l -> { - l.left(); - l.image(() -> liquids.current().icon(Cicon.small)).padRight(3f); - l.label(() -> liquids.getFlowRate() < 0 ? "..." : Strings.fixed(liquids.getFlowRate(), 2) + ps).color(Color.lightGray); + boolean[] had = {false}; + + Runnable rebuild = () -> { + l.clearChildren(); + l.left(); + l.image(() -> liquids.current().icon(Cicon.small)).padRight(3f); + l.label(() -> liquids.getFlowRate() < 0 ? "..." : Strings.fixed(liquids.getFlowRate(), 2) + ps).color(Color.lightGray); + }; + + l.update(() -> { + if(!had[0] && liquids.hadFlow()){ + had[0] = true; + rebuild.run(); + } + }); }).left(); } } @@ -1200,6 +1217,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, if(sensor == LAccess.y) return y; if(sensor == LAccess.team) return team.id; if(sensor == LAccess.health) return health; + if(sensor == LAccess.maxHealth) return maxHealth(); if(sensor == LAccess.efficiency) return efficiency(); if(sensor == LAccess.rotation) return rotation; if(sensor == LAccess.totalItems && items != null) return items.total(); @@ -1208,13 +1226,20 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, 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.powerNetIn && power != null) return power.graph.getLastScaledPowerIn() * 60; + if(sensor == LAccess.powerNetOut && power != null) return power.graph.getLastScaledPowerOut() * 60; if(sensor == LAccess.powerNetStored && power != null) return power.graph.getLastPowerStored(); - if(sensor == LAccess.powerNetCapacity && power != null) return power.graph.getBatteryCapacity(); + if(sensor == LAccess.powerNetCapacity && power != null) return power.graph.getLastCapacity(); return 0; } + @Override + public Object senseObject(LAccess sensor){ + if(sensor == LAccess.type) return block; + + return noSensed; + } + @Override public double sense(Content content){ if(content instanceof Item && items != null) return items.get((Item)content); diff --git a/core/src/mindustry/entities/comp/BulletComp.java b/core/src/mindustry/entities/comp/BulletComp.java index c94216c923..2f46261be8 100644 --- a/core/src/mindustry/entities/comp/BulletComp.java +++ b/core/src/mindustry/entities/comp/BulletComp.java @@ -25,11 +25,20 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw Object data; BulletType type; float damage; + float fdata; @Override public void getCollisions(Cons consumer){ - for(Team team : team.enemies()){ - consumer.get(teamIndex.tree(team)); + if(team.active()){ + for(Team team : team.enemies()){ + consumer.get(teamIndex.tree(team)); + } + }else{ + for(Team other : Team.all){ + if(other != team && teamIndex.count(other) > 0){ + consumer.get(teamIndex.tree(other)); + } + } } } diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java index ece772c0d0..68c0de5f00 100644 --- a/core/src/mindustry/entities/comp/LegsComp.java +++ b/core/src/mindustry/entities/comp/LegsComp.java @@ -31,29 +31,41 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{ } @Override - public void update(){ - if(Mathf.dst(deltaX(), deltaY()) > 0.001f){ - baseRotation = Mathf.slerpDelta(baseRotation, Mathf.angle(deltaX(), deltaY()), 0.1f); - } + public void add(){ + resetLegs(); + } + public void resetLegs(){ float rot = baseRotation; int count = type.legCount; float legLength = type.legLength; + this.legs = new Leg[count]; + + float spacing = 360f / count; + + for(int i = 0; i < legs.length; i++){ + Leg l = new Leg(); + + l.joint.trns(i * spacing + rot, legLength/2f + type.legBaseOffset).add(x, y); + l.base.trns(i * spacing + rot, legLength + type.legBaseOffset).add(x, y); + + legs[i] = l; + } + } + + @Override + public void update(){ + if(Mathf.dst(deltaX(), deltaY()) > 0.001f){ + baseRotation = Angles.moveToward(baseRotation, Mathf.angle(deltaX(), deltaY()), type.rotateSpeed); + } + + float rot = baseRotation; + float legLength = type.legLength; + //set up initial leg positions if(legs.length != type.legCount){ - this.legs = new Leg[count]; - - float spacing = 360f / count; - - for(int i = 0; i < legs.length; i++){ - Leg l = new Leg(); - - l.joint.trns(i * spacing + rot, legLength/2f + type.legBaseOffset).add(x, y); - l.base.trns(i * spacing + rot, legLength + type.legBaseOffset).add(x, y); - - legs[i] = l; - } + resetLegs(); } float moveSpeed = type.legSpeed; diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index b715d4d7c4..52dc2bb0b5 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -8,16 +8,34 @@ import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.gen.*; +import mindustry.type.*; import mindustry.world.*; import mindustry.world.blocks.payloads.*; /** An entity that holds a payload. */ @Component -abstract class PayloadComp implements Posc, Rotc, Hitboxc{ +abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ @Import float x, y, rotation; + @Import UnitType type; Seq payloads = new Seq<>(); + float payloadUsed(){ + return payloads.sumf(p -> p.size() * p.size()); + } + + boolean canPickup(Unit unit){ + return payloadUsed() + unit.hitSize * unit.hitSize <= type.payloadCapacity; + } + + boolean canPickup(Building build){ + return payloadUsed() + build.block.size * build.block.size * Vars.tilesize * Vars.tilesize <= type.payloadCapacity; + } + + boolean canPickupPayload(Payload pay){ + return payloadUsed() + pay.size()*pay.size() <= type.payloadCapacity; + } + boolean hasPayload(){ return payloads.size > 0; } @@ -33,7 +51,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc{ } void pickup(Building tile){ - tile.tile().remove(); + tile.tile.remove(); payloads.add(new BlockPayload(tile)); Fx.unitPickup.at(tile); } @@ -70,13 +88,14 @@ 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) || (!floorOn().isLiquid && u instanceof WaterMovec)){ return false; } + Fx.unitDrop.at(this); + //clients do not drop payloads if(Vars.net.client()) return true; @@ -93,9 +112,9 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc{ /** @return whether the tile has been successfully placed. */ boolean dropBlock(BlockPayload payload){ Building tile = payload.entity; - int tx = Vars.world.toTile(x - tile.block().offset), ty = Vars.world.toTile(y - tile.block().offset); + 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 ce0f36d908..8b35ac83d8 100644 --- a/core/src/mindustry/entities/comp/PlayerComp.java +++ b/core/src/mindustry/entities/comp/PlayerComp.java @@ -34,10 +34,12 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra @Import float x, y; @NonNull @ReadOnly Unit unit = Nulls.unit; + transient private Unit lastReadUnit = Nulls.unit; transient @Nullable NetConnection con; @ReadOnly Team team = Team.sharded; - @SyncLocal boolean admin, typing, shooting, boosting; + @SyncLocal boolean typing, shooting, boosting; + boolean admin; @SyncLocal float mouseX, mouseY; String name = "noname"; Color color = new Color(); @@ -54,13 +56,11 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra return unit instanceof Minerc; } - public @Nullable - CoreBuild closestCore(){ + public @Nullable CoreBuild closestCore(){ return state.teams.closestCore(x, y, team); } - public @Nullable - CoreBuild core(){ + public @Nullable CoreBuild core(){ return team.core(); } @@ -93,6 +93,12 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra @Override public void afterSync(){ + //simulate a unit change after sync + Unit set = unit; + unit = lastReadUnit; + unit(set); + lastReadUnit = unit; + unit.aim(mouseX, mouseY); //this is only necessary when the thing being controlled isn't synced unit.controlWeapons(shooting, shooting); @@ -165,6 +171,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra public void unit(Unit unit){ if(unit == null) throw new IllegalArgumentException("Unit cannot be null. Use clearUnit() instead."); if(this.unit == unit) return; + if(this.unit != Nulls.unit){ //un-control the old unit this.unit.controller(this.unit.type().createController()); @@ -173,6 +180,11 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra if(unit != Nulls.unit){ unit.team(team); unit.controller(this); + + //this player just became remote, snap the interpolation so it doesn't go wild + if(unit.isRemote()){ + unit.snapInterpolation(); + } } Events.fire(new UnitChangeEvent(base(), unit)); diff --git a/core/src/mindustry/entities/comp/PosComp.java b/core/src/mindustry/entities/comp/PosComp.java index e004b6db89..d43d097bac 100644 --- a/core/src/mindustry/entities/comp/PosComp.java +++ b/core/src/mindustry/entities/comp/PosComp.java @@ -45,11 +45,16 @@ abstract class PosComp implements Position{ return tile == null || tile.block() != Blocks.air ? (Floor)Blocks.air : tile.floor(); } - Block blockOn(){ + Block blockOn(){ Tile tile = tileOn(); return tile == null ? Blocks.air : tile.block(); } + boolean onSolid(){ + Tile tile = tileOn(); + return tile != null && tile.solid(); + } + @Nullable Tile tileOn(){ return world.tileWorld(x, y); } diff --git a/core/src/mindustry/entities/comp/StatusComp.java b/core/src/mindustry/entities/comp/StatusComp.java index bf61535026..cde001fab6 100644 --- a/core/src/mindustry/entities/comp/StatusComp.java +++ b/core/src/mindustry/entities/comp/StatusComp.java @@ -22,6 +22,8 @@ abstract class StatusComp implements Posc, Flyingc{ @ReadOnly transient float speedMultiplier = 1, damageMultiplier = 1, armorMultiplier = 1, reloadMultiplier = 1; + @Import UnitType type; + /** @return damage taken based on status armor multipliers */ float getShieldDamage(float amount){ return amount * Mathf.clamp(1f - armorMultiplier / 100f); @@ -102,7 +104,7 @@ abstract class StatusComp implements Posc, Flyingc{ @Override public void update(){ Floor floor = floorOn(); - if(isGrounded()){ + if(isGrounded() && !type.hovering){ //apply effect apply(floor.status, floor.statusDuration); } diff --git a/core/src/mindustry/entities/comp/SyncComp.java b/core/src/mindustry/entities/comp/SyncComp.java index 0fd3d06cae..8875df0967 100644 --- a/core/src/mindustry/entities/comp/SyncComp.java +++ b/core/src/mindustry/entities/comp/SyncComp.java @@ -13,6 +13,7 @@ abstract class SyncComp implements Entityc{ //all these method bodies are internally generated void snapSync(){} + void snapInterpolation(){} void readSync(Reads read){} void writeSync(Writes write){} void readSyncManual(FloatBuffer buffer){} diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index 53b53b4182..8e8f575f98 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -75,6 +75,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(sensor == LAccess.totalItems) return stack().amount; if(sensor == LAccess.rotation) return rotation; if(sensor == LAccess.health) return health; + if(sensor == LAccess.maxHealth) return maxHealth; if(sensor == LAccess.x) return x; if(sensor == LAccess.y) return y; if(sensor == LAccess.team) return team.id; @@ -84,12 +85,25 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I return 0; } + @Override + public Object senseObject(LAccess sensor){ + if(sensor == LAccess.type) return type; + + return noSensed; + } + @Override public double sense(Content content){ if(content == stack().item) return stack().amount; return 0; } + @Override + @Replace + public boolean canDrown(){ + return isGrounded() && !hovering && type.canDrown && !(this instanceof WaterMovec); + } + @Override public int itemCapacity(){ return type.itemCapacity; @@ -233,7 +247,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I } //simulate falling down - if(dead){ + if(dead || health <= 0){ //less drag when dead drag = 0.01f; diff --git a/core/src/mindustry/entities/comp/WaterMoveComp.java b/core/src/mindustry/entities/comp/WaterMoveComp.java index 92d3fffbf1..9671d694ea 100644 --- a/core/src/mindustry/entities/comp/WaterMoveComp.java +++ b/core/src/mindustry/entities/comp/WaterMoveComp.java @@ -83,12 +83,6 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{ } } - @Replace - @Override - public boolean canDrown(){ - return false; - } - @Replace public float floorSpeedMultiplier(){ Floor on = isFlying() ? Blocks.air.asFloor() : floorOn(); diff --git a/core/src/mindustry/entities/units/AIController.java b/core/src/mindustry/entities/units/AIController.java index aa95959e60..98f20b45f7 100644 --- a/core/src/mindustry/entities/units/AIController.java +++ b/core/src/mindustry/entities/units/AIController.java @@ -16,6 +16,7 @@ import static mindustry.Vars.*; public class AIController implements UnitController{ protected static final Vec2 vec = new Vec2(); protected static final int timerTarget = 0; + protected static final int timerTarget2 = 1; protected Unit unit; protected Interval timer = new Interval(4); @@ -27,6 +28,7 @@ public class AIController implements UnitController{ { timer.reset(0, Mathf.random(40f)); + timer.reset(1, Mathf.random(60f)); } @Override diff --git a/core/src/mindustry/entities/units/BuildPlan.java b/core/src/mindustry/entities/units/BuildPlan.java index e8dba045d7..fb4a7a2816 100644 --- a/core/src/mindustry/entities/units/BuildPlan.java +++ b/core/src/mindustry/entities/units/BuildPlan.java @@ -16,8 +16,6 @@ public class BuildPlan{ public @Nullable Block block; /** Whether this is a break request.*/ public boolean breaking; - /** Whether this request comes with a config int. If yes, any blocks placed with this request will not call playerPlaced.*/ - public boolean hasConfig; /** Config int. Not used unless hasConfig is true.*/ public Object config; /** Original position, only used in schematics.*/ @@ -40,6 +38,16 @@ public class BuildPlan{ this.breaking = false; } + /** This creates a build request with a config. */ + public BuildPlan(int x, int y, int rotation, Block block, Object config){ + this.x = x; + this.y = y; + this.rotation = rotation; + this.block = block; + this.breaking = false; + this.config = config; + } + /** This creates a remove request. */ public BuildPlan(int x, int y){ this.x = x; @@ -84,7 +92,6 @@ public class BuildPlan{ copy.rotation = rotation; copy.block = block; copy.breaking = breaking; - copy.hasConfig = hasConfig; copy.config = config; copy.originalX = originalX; copy.originalY = originalY; @@ -127,12 +134,6 @@ public class BuildPlan{ return y*tilesize + block.offset; } - public BuildPlan configure(Object config){ - this.config = config; - this.hasConfig = true; - return this; - } - public @Nullable Tile tile(){ return world.tile(x, y); } diff --git a/core/src/mindustry/game/DefaultWaves.java b/core/src/mindustry/game/DefaultWaves.java index 6abdc46eb5..07269df4c1 100644 --- a/core/src/mindustry/game/DefaultWaves.java +++ b/core/src/mindustry/game/DefaultWaves.java @@ -163,14 +163,14 @@ public class DefaultWaves{ spacing = 3; }}, - new SpawnGroup(UnitTypes.vestige){{ + new SpawnGroup(UnitTypes.scepter){{ begin = 41; unitAmount = 1; unitScaling = 1; spacing = 30; }}, - new SpawnGroup(UnitTypes.cataclyst){{ + new SpawnGroup(UnitTypes.reign){{ begin = 81; unitAmount = 1; unitScaling = 1; diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 531ca72cf2..98622b4bc5 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -170,11 +170,10 @@ public class EventType{ } } - /** Called from the logic thread. Do not access graphics here! */ - public static class BuildinghangeEvent{ + public static class TileChangeEvent{ public final Tile tile; - public BuildinghangeEvent(Tile tile){ + public TileChangeEvent(Tile tile){ this.tile = tile; } } @@ -225,12 +224,14 @@ public class EventType{ public final Team team; public final @Nullable Unit unit; public final boolean breaking; + public final @Nullable Object config; - public BlockBuildEndEvent(Tile tile, @Nullable Unit unit, Team team, boolean breaking){ + public BlockBuildEndEvent(Tile tile, @Nullable Unit unit, Team team, boolean breaking, @Nullable Object config){ this.tile = tile; this.team = team; this.unit = unit; this.breaking = breaking; + this.config = config; } } diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index 2b0c2bac28..824671dd8c 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -89,9 +89,6 @@ public class Rules{ public boolean enemyLights = true; /** Ambient light color, used when lighting is enabled. */ public Color ambientLight = new Color(0.01f, 0.01f, 0.04f, 0.99f); - /** Multiplier for solar panel power output. - negative = use ambient light if lighting is enabled. */ - public float solarPowerMultiplier = -1f; /** team of the player by default */ public Team defaultTeam = Team.sharded; /** team of the enemy in waves/sectors */ diff --git a/core/src/mindustry/game/Schematic.java b/core/src/mindustry/game/Schematic.java index 01088826bb..334d96cc08 100644 --- a/core/src/mindustry/game/Schematic.java +++ b/core/src/mindustry/game/Schematic.java @@ -12,7 +12,6 @@ import mindustry.world.*; import mindustry.world.blocks.power.*; import mindustry.world.blocks.storage.*; import mindustry.world.consumers.*; -import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -43,8 +42,6 @@ public class Schematic implements Publishable, Comparable{ IntIntMap amounts = new IntIntMap(); tiles.each(t -> { - if(t.block.buildVisibility == BuildVisibility.hidden) return; - for(ItemStack stack : t.block.requirements){ amounts.increment(stack.item.id, stack.amount); } diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java index 3c8063d1ac..672f0a23b5 100644 --- a/core/src/mindustry/game/Schematics.java +++ b/core/src/mindustry/game/Schematics.java @@ -28,6 +28,7 @@ import mindustry.io.*; import mindustry.world.*; import mindustry.world.blocks.*; import mindustry.world.blocks.distribution.*; +import mindustry.world.blocks.legacy.*; import mindustry.world.blocks.power.*; import mindustry.world.blocks.production.*; import mindustry.world.blocks.sandbox.*; @@ -247,7 +248,7 @@ public class Schematics implements Loadable{ Draw.rect(Tmp.tr1, buffer.getWidth()/2f, buffer.getHeight()/2f, buffer.getWidth(), -buffer.getHeight()); Draw.color(); - Seq requests = schematic.tiles.map(t -> new BuildPlan(t.x, t.y, t.rotation, t.block).configure(t.config)); + Seq requests = schematic.tiles.map(t -> new BuildPlan(t.x, t.y, t.rotation, t.block, t.config)); Draw.flush(); //scale each request to fit schematic @@ -278,7 +279,7 @@ public class Schematics implements Loadable{ /** Creates an array of build requests from a schematic's data, centered on the provided x+y coordinates. */ public Seq toRequests(Schematic schem, int x, int y){ - return schem.tiles.map(t -> new BuildPlan(t.x + x - schem.width/2, t.y + y - schem.height/2, t.rotation, t.block).original(t.x, t.y, schem.width, schem.height).configure(t.config)) + return schem.tiles.map(t -> new BuildPlan(t.x + x - schem.width/2, t.y + y - schem.height/2, t.rotation, t.block, t.config).original(t.x, t.y, schem.width, schem.height)) .removeAll(s -> !s.block.isVisible() || !s.block.unlockedNow()); } @@ -346,9 +347,9 @@ public class Schematics implements Loadable{ for(int cy = y; cy <= y2; cy++){ Building linked = world.build(cx, cy); - if(linked != null &&linked.block().isVisible() && !(linked.block() instanceof BuildBlock)){ - int top = linked.block().size/2; - int bot = linked.block().size % 2 == 1 ? -linked.block().size/2 : -(linked.block().size - 1)/2; + if(linked != null && linked.block.isVisible() && !(linked.block instanceof ConstructBlock)){ + int top = linked.block.size/2; + int bot = linked.block.size % 2 == 1 ? -linked.block.size/2 : -(linked.block.size - 1)/2; minx = Math.min(linked.tileX() + bot, minx); miny = Math.min(linked.tileY() + bot, miny); maxx = Math.max(linked.tileX() + top, maxx); @@ -374,11 +375,11 @@ public class Schematics implements Loadable{ for(int cy = oy; cy <= oy2; cy++){ Building tile = world.build(cx, cy); - if(tile != null && !counted.contains(tile.pos()) && !(tile.block() instanceof BuildBlock) - && (tile.block().isVisible() || (tile.block() instanceof CoreBlock))){ + if(tile != null && !counted.contains(tile.pos()) && !(tile.block instanceof ConstructBlock) + && (tile.block.isVisible() || (tile.block instanceof CoreBlock))){ Object config = tile.config(); - tiles.add(new Stile(tile.block(), tile.tileX() + offsetX, tile.tileY() + offsetY, config, (byte)tile.rotation)); + tiles.add(new Stile(tile.block, tile.tileX() + offsetX, tile.tileY() + offsetY, config, (byte)tile.rotation)); counted.add(tile.pos()); } } @@ -486,8 +487,9 @@ public class Schematics implements Loadable{ IntMap blocks = new IntMap<>(); byte length = stream.readByte(); for(int i = 0; i < length; i++){ - Block block = Vars.content.getByName(ContentType.block, stream.readUTF()); - blocks.put(i, block == null ? Blocks.air : block); + String name = stream.readUTF(); + Block block = Vars.content.getByName(ContentType.block, SaveFileReader.fallback.get(name, name)); + blocks.put(i, block == null || block instanceof LegacyBlock ? Blocks.air : block); } int total = stream.readInt(); diff --git a/core/src/mindustry/game/Tutorial.java b/core/src/mindustry/game/Tutorial.java index bfa18e8e50..e0f73248ed 100644 --- a/core/src/mindustry/game/Tutorial.java +++ b/core/src/mindustry/game/Tutorial.java @@ -250,7 +250,7 @@ public class Tutorial{ Building core = state.teams.playerCores().first(); for(int i = 0; i < blocksToBreak; i++){ - if(world.tile(core.tile().x + blockOffset, core.tile().y + i).block() == Blocks.scrapWall){ + if(world.tile(core.tile.x + blockOffset, core.tile.y + i).block() == Blocks.scrapWall){ return false; } } diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 08b13bf9b8..99996f09eb 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -82,7 +82,7 @@ public class BlockRenderer implements Disposable{ dark.end(); }); - Events.on(BuildinghangeEvent.class, event -> { + Events.on(TileChangeEvent.class, event -> { shadowEvents.add(event.tile); int avgx = (int)(camera.position.x / tilesize); @@ -192,7 +192,9 @@ public class BlockRenderer implements Disposable{ Tile tile = world.rawTile(x, y); Block block = tile.block(); //link to center - if(tile.build != null) tile = tile.build.tile(); + if(tile.build != null){ + tile = tile.build.tile; + } if(block != Blocks.air && block.cacheLayer == CacheLayer.normal && (tile.build == null || !processedEntities.contains(tile.build.id()))){ if(block.expanded || !expanded){ @@ -207,8 +209,8 @@ public class BlockRenderer implements Disposable{ if(tile.build != null && tile.build.power != null && tile.build.power.links.size > 0){ for(Building other : tile.build.getPowerConnections(outArray2)){ - if(other.block() instanceof PowerNode){ //TODO need a generic way to render connections! - tileview.add(other.tile()); + if(other.block instanceof PowerNode){ //TODO need a generic way to render connections! + tileview.add(other.tile); } } } diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index 4b4a00e47d..a9b9556f81 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -187,7 +187,7 @@ public class Drawf{ Draw.color(Pal.accent); Draw.alpha(speed); - Lines.lineAngleCenter(t.x + Mathf.sin(time, 20f, Vars.tilesize / 2f * t.block().size - 2f), t.y, 90, t.block().size * Vars.tilesize - 4f); + Lines.lineAngleCenter(t.x + Mathf.sin(time, 20f, Vars.tilesize / 2f * t.block.size - 2f), t.y, 90, t.block.size * Vars.tilesize - 4f); Draw.reset(); } diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java index 43c45ad221..268c4a9a88 100644 --- a/core/src/mindustry/graphics/FloorRenderer.java +++ b/core/src/mindustry/graphics/FloorRenderer.java @@ -228,7 +228,7 @@ public class FloorRenderer implements Disposable{ int chunksx = Mathf.ceil((float)(world.width()) / chunksize), chunksy = Mathf.ceil((float)(world.height()) / chunksize); cache = new Chunk[chunksx][chunksy]; - cbatch = new MultiCacheBatch(chunksize * chunksize * 5); + cbatch = new MultiCacheBatch(chunksize * chunksize * 6); Time.mark(); diff --git a/core/src/mindustry/graphics/MenuRenderer.java b/core/src/mindustry/graphics/MenuRenderer.java index bc72220c77..de2667ee0f 100644 --- a/core/src/mindustry/graphics/MenuRenderer.java +++ b/core/src/mindustry/graphics/MenuRenderer.java @@ -50,21 +50,21 @@ public class MenuRenderer implements Disposable{ Simplex s3 = new Simplex(offset + 2); RidgedPerlin rid = new RidgedPerlin(1 + offset, 1); Block[] selected = Structs.select( - new Block[]{Blocks.sand, Blocks.sandRocks}, - new Block[]{Blocks.shale, Blocks.shaleRocks}, - new Block[]{Blocks.ice, Blocks.icerocks}, - new Block[]{Blocks.sand, Blocks.sandRocks}, - new Block[]{Blocks.shale, Blocks.shaleRocks}, - new Block[]{Blocks.ice, Blocks.icerocks}, + new Block[]{Blocks.sand, Blocks.sandWall}, + new Block[]{Blocks.shale, Blocks.shaleWall}, + new Block[]{Blocks.ice, Blocks.iceWall}, + new Block[]{Blocks.sand, Blocks.sandWall}, + new Block[]{Blocks.shale, Blocks.shaleWall}, + new Block[]{Blocks.ice, Blocks.iceWall}, new Block[]{Blocks.moss, Blocks.sporePine} ); Block[] selected2 = Structs.select( - new Block[]{Blocks.ignarock, Blocks.duneRocks}, - new Block[]{Blocks.ignarock, Blocks.duneRocks}, - new Block[]{Blocks.stone, Blocks.rocks}, - new Block[]{Blocks.stone, Blocks.rocks}, - new Block[]{Blocks.moss, Blocks.sporerocks}, - new Block[]{Blocks.salt, Blocks.saltRocks} + new Block[]{Blocks.basalt, Blocks.duneWall}, + new Block[]{Blocks.basalt, Blocks.duneWall}, + new Block[]{Blocks.stone, Blocks.stoneWall}, + new Block[]{Blocks.stone, Blocks.stoneWall}, + new Block[]{Blocks.moss, Blocks.sporeWall}, + new Block[]{Blocks.salt, Blocks.saltWall} ); Block ore1 = ores.random(); @@ -113,7 +113,7 @@ public class MenuRenderer implements Disposable{ if(heat > base){ ore = Blocks.air; wall = Blocks.air; - floor = Blocks.ignarock; + floor = Blocks.basalt; if(heat > base + 0.1){ floor = Blocks.hotrock; @@ -146,7 +146,7 @@ public class MenuRenderer implements Disposable{ floor = Mathf.chance(0.2) ? Blocks.sporeMoss : Blocks.moss; if(wall != Blocks.air){ - wall = Blocks.sporerocks; + wall = Blocks.sporeWall; } } } diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java index e0cd9c7a50..3b3482e410 100644 --- a/core/src/mindustry/graphics/MinimapRenderer.java +++ b/core/src/mindustry/graphics/MinimapRenderer.java @@ -36,7 +36,11 @@ public class MinimapRenderer implements Disposable{ }); //make sure to call on the graphics thread - Events.on(BuildinghangeEvent.class, event -> Core.app.post(() -> update(event.tile))); + Events.on(TileChangeEvent.class, event -> { + if(!ui.editor.isShown()){ + update(event.tile); + } + }); } public Pixmap getPixmap(){ diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java index 133d8898b0..ea988e5e78 100644 --- a/core/src/mindustry/graphics/OverlayRenderer.java +++ b/core/src/mindustry/graphics/OverlayRenderer.java @@ -82,7 +82,7 @@ public class OverlayRenderer{ if(select instanceof BlockUnitc){ //special selection for block "units" - Fill.square(select.x, select.y, ((BlockUnitc)select).tile().block().size * tilesize/2f); + Fill.square(select.x, select.y, ((BlockUnitc)select).tile().block.size * tilesize/2f); }else{ Draw.rect(select.type().icon(Cicon.full), select.x(), select.y(), select.rotation() - 90); } @@ -132,23 +132,25 @@ public class OverlayRenderer{ //draw selected block if(input.block == null && !Core.scene.hasMouse()){ Vec2 vec = Core.input.mouseWorld(input.getMouseX(), input.getMouseY()); - Building tile = world.buildWorld(vec.x, vec.y); + Building build = world.buildWorld(vec.x, vec.y); - if(tile != null && tile.team == player.team()){ - tile.drawSelect(); - if(!tile.enabled && tile.block.drawDisabled){ - tile.drawDisabled(); + if(build != null && build.team == player.team()){ + build.drawSelect(); + if(!build.enabled && build.block.drawDisabled){ + build.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); + if(Core.input.keyDown(Binding.rotateplaced) && build.block.rotate && build.block.quickRotate && build.interactable(player.team())){ + control.input.drawArrow(build.block, build.tileX(), build.tileY(), build.rotation, true); Draw.color(Pal.accent, 0.3f + Mathf.absin(4f, 0.2f)); - Fill.square(tile.x, tile.y, tile.block().size * tilesize/2f); + Fill.square(build.x, build.y, build.block.size * tilesize/2f); Draw.color(); } } } + input.drawOverSelect(); + //draw selection overlay when dropping item if(input.isDroppingItem()){ Vec2 v = Core.input.mouseWorld(input.getMouseX(), input.getMouseY()); @@ -159,11 +161,11 @@ public class OverlayRenderer{ Draw.reset(); Building tile = world.buildWorld(v.x, v.y); - if(tile != null && tile.interactable(player.team()) && tile.acceptStack(player.unit().item(), player.unit().stack.amount, player.unit()) > 0){ + if(tile != null && tile.interactable(player.team()) && tile.acceptStack(player.unit().item(), player.unit().stack.amount, player.unit()) > 0 && player.within(tile, itemTransferRange)){ Lines.stroke(3f, Pal.gray); - Lines.square(tile.x, tile.y, tile.block().size * tilesize / 2f + 3 + Mathf.absin(Time.time(), 5f, 1f)); + Lines.square(tile.x, tile.y, tile.block.size * tilesize / 2f + 3 + Mathf.absin(Time.time(), 5f, 1f)); Lines.stroke(1f, Pal.place); - Lines.square(tile.x, tile.y, tile.block().size * tilesize / 2f + 2 + Mathf.absin(Time.time(), 5f, 1f)); + Lines.square(tile.x, tile.y, tile.block.size * tilesize / 2f + 2 + Mathf.absin(Time.time(), 5f, 1f)); Draw.reset(); } diff --git a/core/src/mindustry/graphics/g3d/PlanetRenderer.java b/core/src/mindustry/graphics/g3d/PlanetRenderer.java index 18611b463b..e0e76c0cee 100644 --- a/core/src/mindustry/graphics/g3d/PlanetRenderer.java +++ b/core/src/mindustry/graphics/g3d/PlanetRenderer.java @@ -37,7 +37,7 @@ public class PlanetRenderer implements Disposable{ /** Camera used for rendering. */ public Camera3D cam = new Camera3D(); /** Raw vertex batch. */ - public final VertexBatch3D batch = new VertexBatch3D(10000, false, true, 0); + public final VertexBatch3D batch = new VertexBatch3D(20000, false, true, 0); public float zoom = 1f; diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 9b02aba3be..6cea6e1dcb 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -31,7 +31,7 @@ public class DesktopInput extends InputHandler{ /** Current cursor type. */ public Cursor cursorType = SystemCursor.arrow; /** Position where the player started dragging a line. */ - public int selectX, selectY, schemX, schemY; + public int selectX = -1, selectY = -1, schemX = -1, schemY = -1; /** Last known line positions.*/ public int lastLineX, lastLineY, schematicX, schematicY; /** Whether selecting mode is active. */ @@ -48,7 +48,7 @@ public class DesktopInput extends InputHandler{ @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.visible(() -> Core.settings.getBool("hints") && ui.hudfrag.shown() && !player.dead() && !player.unit().spawnedByCore() && !(Core.settings.getBool("hints") && lastSchematic != null && !selectRequests.isEmpty())); t.bottom(); t.table(Styles.black6, b -> { b.defaults().left(); @@ -75,13 +75,13 @@ public class DesktopInput extends InputHandler{ }); group.fill(t -> { - t.visible(() -> Core.settings.getBool("hints") && lastSchematic != null && !selectRequests.isEmpty()); + t.visible(() -> lastSchematic != null && !selectRequests.isEmpty()); t.bottom(); t.table(Styles.black6, b -> { b.defaults().left(); - b.label( () -> Core.bundle.format("schematic.flip", - Core.keybinds.get(Binding.schematic_flip_x).key.toString(), - Core.keybinds.get(Binding.schematic_flip_y).key.toString())).style(Styles.outlineLabel); + b.label(() -> Core.bundle.format("schematic.flip", + Core.keybinds.get(Binding.schematic_flip_x).key.toString(), + Core.keybinds.get(Binding.schematic_flip_y).key.toString())).style(Styles.outlineLabel).visible(() -> Core.settings.getBool("hints")); b.row(); b.table(a -> { a.button("@schematic.add", Icon.save, this::showSchematicSave).colspan(2).size(250f, 50f).disabled(f -> lastSchematic == null || lastSchematic.file != null); @@ -98,10 +98,10 @@ public class DesktopInput extends InputHandler{ //draw break selection if(mode == breaking){ - drawBreakSelection(selectX, selectY, cursorX, cursorY); + drawBreakSelection(selectX, selectY, cursorX, cursorY, !Core.input.keyDown(Binding.schematic_select) ? maxLength : Vars.maxSchematicSize); } - if(Core.input.keyDown(Binding.schematic_select) && !Core.scene.hasKeyboard()){ + if(Core.input.keyDown(Binding.schematic_select) && !Core.scene.hasKeyboard() && mode != breaking){ drawSelection(schemX, schemY, cursorX, cursorY, Vars.maxSchematicSize); } @@ -306,7 +306,7 @@ public class DesktopInput extends InputHandler{ cursorType = ui.unloadCursor; } - if(cursor.build != null && cursor.interactable(player.team()) && !isPlacing() && Math.abs(Core.input.axisTap(Binding.rotate)) > 0 && Core.input.keyDown(Binding.rotateplaced) && cursor.block().rotate){ + if(cursor.build != null && cursor.interactable(player.team()) && !isPlacing() && Math.abs(Core.input.axisTap(Binding.rotate)) > 0 && Core.input.keyDown(Binding.rotateplaced) && cursor.block().rotate && cursor.block().quickRotate){ Call.rotateBlock(player, cursor.build, Core.input.axisTap(Binding.rotate) > 0); } } @@ -340,8 +340,6 @@ public class DesktopInput extends InputHandler{ table.row(); table.left().margin(0f).defaults().size(48f).left(); - //TODO localize these - table.button(Icon.paste, Styles.clearPartiali, () -> { ui.schematics.show(); }).tooltip("@schematics"); @@ -356,8 +354,7 @@ public class DesktopInput extends InputHandler{ table.button(Icon.up, Styles.clearPartiali, () -> { ui.planet.show(state.getSector(), player.team().core()); - }).visible(() -> state.isCampaign()) - .disabled(b -> player.team().core() == null || !player.team().core().items.has(player.team().core().block.requirements)).tooltip("@launchcore"); + }).visible(() -> state.isCampaign()).tooltip("@launchcore").disabled(b -> player.team().core() == null); } void pollInput(){ @@ -394,7 +391,7 @@ public class DesktopInput extends InputHandler{ player.builder().clearBuilding(); } - if(Core.input.keyTap(Binding.schematic_select) && !Core.scene.hasKeyboard()){ + if(Core.input.keyTap(Binding.schematic_select) && !Core.scene.hasKeyboard() && mode != breaking){ schemX = rawCursorX; schemY = rawCursorY; } @@ -413,12 +410,14 @@ public class DesktopInput extends InputHandler{ selectRequests.clear(); } - if(Core.input.keyRelease(Binding.schematic_select) && !Core.scene.hasKeyboard()){ + if(Core.input.keyRelease(Binding.schematic_select) && !Core.scene.hasKeyboard() && selectX == -1 && selectY == -1 && schemX != -1 && schemY != -1){ lastSchematic = schematics.create(schemX, schemY, rawCursorX, rawCursorY); useSchematic(lastSchematic); if(selectRequests.isEmpty()){ lastSchematic = null; } + schemX = -1; + schemY = -1; } if(!selectRequests.isEmpty()){ @@ -497,6 +496,8 @@ public class DesktopInput extends InputHandler{ mode = breaking; selectX = tileX(Core.input.mouseX()); selectY = tileY(Core.input.mouseY()); + schemX = rawCursorX; + schemY = rawCursorY; } if(Core.input.keyDown(Binding.select) && mode == none && !isPlacing() && deleting){ @@ -517,6 +518,12 @@ public class DesktopInput extends InputHandler{ overrideLineRotation = false; } + if(Core.input.keyRelease(Binding.break_block) && Core.input.keyDown(Binding.schematic_select) && mode == breaking){ + lastSchematic = schematics.create(schemX, schemY, rawCursorX, rawCursorY); + schemX = -1; + schemY = -1; + } + if(Core.input.keyRelease(Binding.break_block) || Core.input.keyRelease(Binding.select)){ if(mode == placing && block != null){ //touch up while placing, place everything in selection @@ -524,8 +531,14 @@ public class DesktopInput extends InputHandler{ lineRequests.clear(); Events.fire(new LineConfirmEvent()); }else if(mode == breaking){ //touch up while breaking, break everything in selection - removeSelection(selectX, selectY, cursorX, cursorY); + removeSelection(selectX, selectY, cursorX, cursorY, !Core.input.keyDown(Binding.schematic_select) ? maxLength : Vars.maxSchematicSize); + if(lastSchematic != null){ + useSchematic(lastSchematic); + lastSchematic = null; + } } + selectX = -1; + selectY = -1; tryDropItems(selected == null ? null : selected.build, Core.input.mouseWorld().x, Core.input.mouseWorld().y); diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 24ae825bfe..bb0cdc0a32 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -31,7 +31,7 @@ import mindustry.type.*; import mindustry.ui.fragments.*; import mindustry.world.*; import mindustry.world.blocks.*; -import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.blocks.ConstructBlock.*; import mindustry.world.blocks.payloads.*; import mindustry.world.blocks.power.*; import mindustry.world.blocks.storage.CoreBlock.*; @@ -105,58 +105,107 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ player.builder().removeBuild(x, y, breaking); } - @Remote(targets = Loc.both, called = Loc.server, forward = true) - public static void pickupUnitPayload(Player player, Unit target){ + @Remote(targets = Loc.both, called = Loc.server) + public static void requestUnitPayload(Player player, Unit target){ if(player == null) return; Unit unit = player.unit(); Payloadc pay = (Payloadc)unit; - if(target.isAI() && target.isGrounded() && pay.payloads().size < unit.type().payloadCapacity - && target.mass() < unit.mass() - && target.within(unit, unit.type().hitsize * 1.5f + target.type().hitsize)){ - pay.pickup(target); + if(target.isAI() && target.isGrounded() && pay.canPickup(target) + && target.within(unit, unit.type().hitsize * 2f + target.type().hitsize * 2f)){ + Call.pickedUnitPayload(player, target); } } - @Remote(targets = Loc.both, called = Loc.server, forward = true) - public static void pickupBlockPayload(Player player, Building tile){ + @Remote(targets = Loc.both, called = Loc.server) + public static void requestBlockPayload(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 - && unit.within(tile, tilesize * tile.block.size * 1.2f)){ + if(tile != null && tile.team == unit.team + && unit.within(tile, tilesize * tile.block.size * 1.2f + tilesize * 5f)){ //pick up block directly - if(tile.block().buildVisibility != BuildVisibility.hidden && tile.block().size <= 2 && tile.canPickup()){ - pay.pickup(tile); + if(tile.block.buildVisibility != BuildVisibility.hidden && tile.canPickup() && pay.canPickup(tile)){ + Call.pickedBlockPayload(player, tile, true); }else{ //pick up block payload Payload current = tile.getPayload(); - if(current != null && current.canBeTaken(pay)){ - Payload taken = tile.takePayload(); - if(taken != null){ - pay.addPayload(taken); - Fx.unitPickup.at(tile); - } + if(current != null && pay.canPickupPayload(current)){ + Call.pickedBlockPayload(player, tile, false); } } } } - @Remote(targets = Loc.both, called = Loc.server, forward = true) - public static void dropPayload(Player player, float x, float y){ + @Remote(targets = Loc.server, called = Loc.server) + public static void pickedUnitPayload(Player player, Unit target){ + if(player == null || target == null || !(player.unit() instanceof Payloadc)){ + if(target != null){ + target.remove(); + } + return; + } + + ((Payloadc)player.unit()).pickup(target); + } + + @Remote(targets = Loc.server, called = Loc.server) + public static void pickedBlockPayload(Player player, Building tile, boolean onGround){ + if(player == null || tile == null || !(player.unit() instanceof Payloadc)){ + if(tile != null && onGround){ + Fx.unitPickup.at(tile); + tile.tile.remove(); + } + return; + } + + Unit unit = player.unit(); + Payloadc pay = (Payloadc)unit; + + if(onGround){ + if(tile.block.buildVisibility != BuildVisibility.hidden && tile.canPickup() && pay.canPickup(tile)){ + pay.pickup(tile); + }else{ + Fx.unitPickup.at(tile); + tile.tile.remove(); + } + }else{ + Payload current = tile.getPayload(); + if(current != null && pay.canPickupPayload(current)){ + Payload taken = tile.takePayload(); + if(taken != null){ + pay.addPayload(taken); + Fx.unitPickup.at(tile); + } + } + } + } + + @Remote(targets = Loc.both, called = Loc.server) + public static void requestDropPayload(Player player, float x, float y){ + if(player == null || net.client()) return; + + Payloadc pay = (Payloadc)player.unit(); + + //apply margin of error + Tmp.v1.set(x, y).sub(pay).limit(tilesize * 4f).add(pay); + float cx = Tmp.v1.x, cy = Tmp.v1.y; + + Call.payloadDropped(player, cx, cy); + } + + @Remote(called = Loc.server, targets = Loc.server) + public static void payloadDropped(Player player, float x, float y){ if(player == null) return; Payloadc pay = (Payloadc)player.unit(); - //allow a slight margin of error - if(pay.within(x, y, tilesize * 2f)){ - float prevx = pay.x(), prevy = pay.y(); - pay.set(x, y); - pay.dropLastPayload(); - pay.set(prevx, prevy); - } + float prevx = pay.x(), prevy = pay.y(); + pay.set(x, y); + pay.dropLastPayload(); + pay.set(prevx, prevy); } @Remote(targets = Loc.client, called = Loc.server) @@ -173,6 +222,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, called = Loc.server, forward = true, unreliable = true) public static void rotateBlock(Player player, Building tile, boolean direction){ + if(tile == null) return; + if(net.server() && (!Units.canInteract(player, tile) || !netServer.admins.allowAction(player, ActionType.rotate, tile.tile(), action -> action.rotation = Mathf.mod(tile.rotation + Mathf.sign(direction), 4)))){ throw new ValidateException(player, "Player cannot rotate a block."); @@ -185,10 +236,10 @@ 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(player == null || tile == null || !player.within(tile, buildingRange)) return; if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, tile) || - !netServer.admins.allowAction(player, ActionType.depositItem, tile.tile(), action -> { + !netServer.admins.allowAction(player, ActionType.depositItem, tile.tile, action -> { action.itemAmount = player.unit().stack.amount; action.item = player.unit().item(); }))){ @@ -215,11 +266,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } @Remote(targets = Loc.both, called = Loc.both, forward = true) - public static void tileConfig(Player player, Building tile, @Nullable Object value){ + public static void tileConfig(@Nullable 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); + !netServer.admins.allowAction(player, ActionType.configure, tile.tile, action -> action.config = value))) throw new ValidateException(player, "Player cannot configure a tile."); + tile.configured(player == null || player.dead() ? null : player.unit(), value); Core.app.post(() -> Events.fire(new ConfigEvent(tile, player, value))); } @@ -242,7 +293,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ 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() && !unit.dead){ - player.unit(unit); + if(!net.client()){ + player.unit(unit); + } + Time.run(Fx.unitSpirit.lifetime, () -> Fx.unitControl.at(unit.x, unit.y, 0f, unit)); if(!player.dead()){ Fx.unitSpirit.at(player.x, player.y, 0f, unit); @@ -334,16 +388,14 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ 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)); + Unit target = Units.closest(player.team(), pay.x(), pay.y(), unit.type().hitsize * 2.5f, u -> u.isAI() && u.isGrounded() && pay.canPickup(u) && u.within(unit, u.hitSize + unit.hitSize * 1.2f)); if(target != null){ - Call.pickupUnitPayload(player, target); - }else if(!pay.hasPayload()){ + Call.requestUnitPayload(player, target); + }else{ Building tile = world.buildWorld(pay.x(), pay.y()); if(tile != null && tile.team == unit.team){ - Call.pickupBlockPayload(player, tile); + Call.requestBlockPayload(player, tile); } } } @@ -351,10 +403,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ 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(); + Call.requestDropPayload(player, player.x, player.y); } public float getMouseX(){ @@ -387,6 +437,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } + public void drawOverSelect(){ + + } + public void drawSelected(int x, int y, Block block, Color color){ Drawf.selected(x, y, block, color); } @@ -401,7 +455,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public boolean requestMatches(BuildPlan request){ Tile tile = world.tile(request.x, request.y); - return tile != null && tile.block() instanceof BuildBlock && tile.bc().cblock == request.block; + return tile != null && tile.block() instanceof ConstructBlock && tile.bc().cblock == request.block; } public void drawBreaking(int x, int y){ @@ -545,7 +599,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ return selectRequests.find(test); } - protected void drawBreakSelection(int x1, int y1, int x2, int y2){ + protected void drawBreakSelection(int x1, int y1, int x2, int y2, int maxLength){ NormalizeDrawResult result = Placement.normalizeDrawArea(Blocks.air, x1, y1, x2, y2, false, maxLength, 1f); NormalizeResult dresult = Placement.normalizeArea(x1, y1, x2, y2, rotation, false, maxLength); @@ -592,6 +646,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ Lines.rect(result.x, result.y, result.x2 - result.x, result.y2 - result.y); } + protected void drawBreakSelection(int x1, int y1, int x2, int y2){ + drawBreakSelection(x1, y1, x2, y2, maxLength); + } + protected void drawSelection(int x1, int y1, int x2, int y2, int maxLength){ NormalizeDrawResult result = Placement.normalizeDrawArea(Blocks.air, x1, y1, x2, y2, false, maxLength, 1f); @@ -638,13 +696,6 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ protected void drawRequest(BuildPlan request){ request.block.drawRequest(request, allRequests(), validPlace(request.x, request.y, request.block, request.rotation)); - - if(request.block.saveConfig && request.block.lastConfig != null && !request.hasConfig){ - Object conf = request.config; - request.config = request.block.lastConfig; - request.block.drawRequestConfig(request, allRequests()); - request.config = conf; - } } /** Draws a placement icon for a specific block. */ @@ -659,8 +710,18 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ removeSelection(x1, y1, x2, y2, false); } + /** Remove everything from the queue in a selection. */ + protected void removeSelection(int x1, int y1, int x2, int y2, int maxLength){ + removeSelection(x1, y1, x2, y2, false, maxLength); + } + /** Remove everything from the queue in a selection. */ protected void removeSelection(int x1, int y1, int x2, int y2, boolean flush){ + removeSelection(x1, y1, x2, y2, false, maxLength); + } + + /** Remove everything from the queue in a selection. */ + protected void removeSelection(int x1, int y1, int x2, int y2, boolean flush, int maxLength){ NormalizeResult result = Placement.normalizeArea(x1, y1, x2, y2, rotation, false, maxLength); for(int x = 0; x <= Math.abs(result.x2 - result.x); x++){ for(int y = 0; y <= Math.abs(result.y2 - result.y); y++){ @@ -713,7 +774,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ lineRequests.clear(); iterateLine(x1, y1, x2, y2, l -> { rotation = l.rotation; - BuildPlan req = new BuildPlan(l.x, l.y, l.rotation, block); + BuildPlan req = new BuildPlan(l.x, l.y, l.rotation, block, block.nextConfig()); req.animScale = 1f; lineRequests.add(req); }); @@ -742,7 +803,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ boolean consumed = false, showedInventory = false; //check if tapped block is configurable - if(tile.block().configurable && tile.interactable(player.team())){ + if(tile.block.configurable && tile.interactable(player.team())){ consumed = true; if(((!frag.config.isShown() && tile.shouldShowConfigure(player)) //if the config fragment is hidden, show //alternatively, the current selected block can 'agree' to switch config tiles @@ -769,10 +830,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } //consume tap event if necessary - if(tile.interactable(player.team()) && tile.block().consumesTap){ + if(tile.interactable(player.team()) && tile.block.consumesTap){ consumed = true; - }else if(tile.interactable(player.team()) && tile.block().synthetic() && !consumed){ - if(tile.block().hasItems && tile.items.total() > 0){ + }else if(tile.interactable(player.team()) && tile.block.synthetic() && !consumed){ + if(tile.block.hasItems && tile.items.total() > 0){ frag.inv.showFor(tile); consumed = true; showedInventory = true; @@ -942,7 +1003,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ ItemStack stack = player.unit().stack; - if(tile != null && tile.acceptStack(stack.item, stack.amount, player.unit()) > 0 && tile.interactable(player.team()) && tile.block().hasItems && player.unit().stack().amount > 0 && tile.interactable(player.team())){ + if(tile != null && tile.acceptStack(stack.item, stack.amount, player.unit()) > 0 && tile.interactable(player.team()) && tile.block.hasItems && player.unit().stack().amount > 0 && tile.interactable(player.team())){ Call.transferInventory(player, tile); }else{ Call.dropItem(player.angleTo(x, y)); @@ -986,13 +1047,12 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(req != null){ player.builder().plans().remove(req); } - player.builder().addBuild(new BuildPlan(x, y, rotation, block)); + player.builder().addBuild(new BuildPlan(x, y, rotation, block, block.nextConfig())); } public void breakBlock(int x, int y){ Tile tile = world.tile(x, y); - //TODO hacky - if(tile != null && tile.build != null) tile = tile.build.tile(); + if(tile != null && tile.build != null) tile = tile.build.tile; player.builder().addBuild(new BuildPlan(tile.x, tile.y)); } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 556d862965..28ffb9e1b6 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -277,7 +277,7 @@ public class MobileInput extends InputHandler implements GestureListener{ public void drawBottom(){ Lines.stroke(1f); - //draw removals + //draw requests about to be removed for(BuildPlan request : removals){ Tile tile = request.tile(); @@ -292,6 +292,43 @@ public class MobileInput extends InputHandler implements GestureListener{ } } + Draw.mixcol(); + Draw.color(Pal.accent); + + //Draw lines + if(lineMode){ + int tileX = tileX(Core.input.mouseX()); + int tileY = tileY(Core.input.mouseY()); + + if(mode == placing && block != null){ + //draw placing + for(int i = 0; i < lineRequests.size; i++){ + BuildPlan request = lineRequests.get(i); + if(i == lineRequests.size - 1 && request.block.rotate){ + drawArrow(block, request.x, request.y, request.rotation); + } + request.block.drawRequest(request, allRequests(), validPlace(request.x, request.y, request.block, request.rotation) && getRequest(request.x, request.y, request.block.size, null) == null); + drawSelected(request.x, request.y, request.block, Pal.accent); + } + }else if(mode == breaking){ + drawBreakSelection(lineStartX, lineStartY, tileX, tileY); + } + } + + Draw.reset(); + } + + @Override + public void drawTop(){ + + //draw schematic selection + if(mode == schematicSelect){ + drawSelection(lineStartX, lineStartY, lastLineX, lastLineY, Vars.maxSchematicSize); + } + } + + @Override + public void drawOverSelect(){ //draw list of requests for(BuildPlan request : selectRequests){ Tile tile = request.tile(); @@ -322,29 +359,6 @@ public class MobileInput extends InputHandler implements GestureListener{ } } - Draw.mixcol(); - Draw.color(Pal.accent); - - //Draw lines - if(lineMode){ - int tileX = tileX(Core.input.mouseX()); - int tileY = tileY(Core.input.mouseY()); - - if(mode == placing && block != null){ - //draw placing - for(int i = 0; i < lineRequests.size; i++){ - BuildPlan request = lineRequests.get(i); - if(i == lineRequests.size - 1 && request.block.rotate){ - drawArrow(block, request.x, request.y, request.rotation); - } - request.block.drawRequest(request, allRequests(), validPlace(request.x, request.y, request.block, request.rotation) && getRequest(request.x, request.y, request.block.size, null) == null); - drawSelected(request.x, request.y, request.block, Pal.accent); - } - }else if(mode == breaking){ - drawBreakSelection(lineStartX, lineStartY, tileX, tileY); - } - } - //draw targeting crosshair if(target != null && !state.isEditor()){ if(target != lastTarget){ @@ -366,15 +380,6 @@ public class MobileInput extends InputHandler implements GestureListener{ Draw.reset(); } - @Override - public void drawTop(){ - - //draw schematic selection - if(mode == schematicSelect){ - drawSelection(lineStartX, lineStartY, lastLineX, lastLineY, Vars.maxSchematicSize); - } - } - @Override protected void drawRequest(BuildPlan request){ if(request.tile() == null) return; @@ -553,7 +558,7 @@ public class MobileInput extends InputHandler implements GestureListener{ //ignore off-screen taps if(cursor == null || Core.scene.hasMouse(x, y)) return false; - Tile linked = cursor.build == null ? cursor : cursor.build.tile(); + Tile linked = cursor.build == null ? cursor : cursor.build.tile; if(!player.dead()){ checkTargets(worldx, worldy); @@ -564,7 +569,7 @@ public class MobileInput extends InputHandler implements GestureListener{ removeRequest(getRequest(cursor)); }else if(mode == placing && isPlacing() && validPlace(cursor.x, cursor.y, block, rotation) && !checkOverlapPlacement(cursor.x, cursor.y, block)){ //add to selection queue if it's a valid place position - selectRequests.add(lastPlaced = new BuildPlan(cursor.x, cursor.y, rotation, block)); + selectRequests.add(lastPlaced = new BuildPlan(cursor.x, cursor.y, rotation, block, block.nextConfig())); }else if(mode == breaking && validBreak(linked.x,linked.y) && !hasRequest(linked)){ //add to selection queue if it's a valid BREAK position selectRequests.add(new BuildPlan(linked.x, linked.y)); diff --git a/core/src/mindustry/io/SaveFileReader.java b/core/src/mindustry/io/SaveFileReader.java index 793d8b2eb8..42ff593a20 100644 --- a/core/src/mindustry/io/SaveFileReader.java +++ b/core/src/mindustry/io/SaveFileReader.java @@ -8,11 +8,7 @@ import mindustry.world.*; import java.io.*; public abstract class SaveFileReader{ - protected final ReusableByteOutStream byteOutput = new ReusableByteOutStream(); - protected final DataOutputStream dataBytes = new DataOutputStream(byteOutput); - protected final ReusableByteOutStream byteOutputSmall = new ReusableByteOutStream(); - protected final DataOutputStream dataBytesSmall = new DataOutputStream(byteOutputSmall); - protected final ObjectMap fallback = ObjectMap.of( + public static final ObjectMap fallback = ObjectMap.of( "dart-mech-pad", "legacy-mech-pad", "dart-ship-pad", "legacy-mech-pad", "javelin-ship-pad", "legacy-mech-pad", @@ -34,9 +30,32 @@ public abstract class SaveFileReader{ "titan-factory", "legacy-unit-factory", "fortress-factory", "legacy-unit-factory", - "mass-conveyor", "payload-conveyor" + "mass-conveyor", "payload-conveyor", + "vestige", "scepter", + "turbine-generator", "steam-generator", + + "rocks", "stone-wall", + "sporerocks", "spore-wall", + "icerocks", "ice-wall", + "dunerocks", "dune-wall", + "sandrocks", "sand-wall", + "shalerocks", "shale-wall", + "snowrocks", "snow-wall", + "saltrocks", "salt-wall", + "dirtwall", "dirt-wall", + + "ignarock", "basalt", + "holostone", "dacite", + "holostone-wall", "dacite-wall", + "rock", "boulder", + "snowrock", "snow-boulder" ); + protected final ReusableByteOutStream byteOutput = new ReusableByteOutStream(); + protected final DataOutputStream dataBytes = new DataOutputStream(byteOutput); + protected final ReusableByteOutStream byteOutputSmall = new ReusableByteOutStream(); + protected final DataOutputStream dataBytesSmall = new DataOutputStream(byteOutputSmall); + protected int lastRegionLength; protected void region(String name, DataInput stream, CounterInputStream counter, IORunner cons) throws IOException{ diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java index f5d721f2c5..733bb27c28 100644 --- a/core/src/mindustry/io/TypeIO.java +++ b/core/src/mindustry/io/TypeIO.java @@ -231,7 +231,7 @@ public class TypeIO{ if(!request.breaking){ write.s(request.block.id); write.b((byte)request.rotation); - write.b(request.hasConfig ? (byte)1 : 0); + write.b(1); //always has config writeObject(write, request.config); } } @@ -254,8 +254,9 @@ public class TypeIO{ boolean hasConfig = read.b() == 1; Object config = readObject(read); currentRequest = new BuildPlan(Point2.x(position), Point2.y(position), rotation, content.block(block)); + //should always happen, but is kept for legacy reasons just in case if(hasConfig){ - currentRequest.configure(config); + currentRequest.config = config; } } diff --git a/core/src/mindustry/io/legacy/LegacyIO.java b/core/src/mindustry/io/legacy/LegacyIO.java index 1d0a790159..545487d8ca 100644 --- a/core/src/mindustry/io/legacy/LegacyIO.java +++ b/core/src/mindustry/io/legacy/LegacyIO.java @@ -10,8 +10,8 @@ public class LegacyIO{ /** Maps old unit names to new ones. */ public static final StringMap unitMap = StringMap.of( "titan", "mace", - "chaos-array", "vestige", - "eradicator", "cataclyst", + "chaos-array", "scepter", + "eradicator", "reign", "eruptor", "atrax", "wraith", "flare", "ghoul", "horizon", diff --git a/core/src/mindustry/io/legacy/LegacySaveVersion.java b/core/src/mindustry/io/legacy/LegacySaveVersion.java index 74e4a12286..cd8302d16d 100644 --- a/core/src/mindustry/io/legacy/LegacySaveVersion.java +++ b/core/src/mindustry/io/legacy/LegacySaveVersion.java @@ -54,7 +54,7 @@ public abstract class LegacySaveVersion extends SaveVersion{ if(block == null) block = Blocks.air; //occupied by multiblock part - boolean occupied = tile.build != null && !tile.isCenter() && (tile.build.block() == block || block == Blocks.air); + boolean occupied = tile.build != null && !tile.isCenter() && (tile.build.block == block || block == Blocks.air); //do not override occupied cells if(!occupied){ diff --git a/core/src/mindustry/logic/ConditionOp.java b/core/src/mindustry/logic/ConditionOp.java index c85bc6f37a..2661509c7e 100644 --- a/core/src/mindustry/logic/ConditionOp.java +++ b/core/src/mindustry/logic/ConditionOp.java @@ -1,8 +1,8 @@ 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), + equal("==", (a, b) -> Math.abs(a - b) < 0.000001, (a, b) -> a == b), + notEqual("not", (a, b) -> Math.abs(a - b) >= 0.000001, (a, b) -> a != b), lessThan("<", (a, b) -> a < b), lessThanEq("<=", (a, b) -> a <= b), greaterThan(">", (a, b) -> a > b), @@ -10,12 +10,18 @@ public enum ConditionOp{ public static final ConditionOp[] all = values(); + public final CondObjOpLambda objFunction; public final CondOpLambda function; public final String symbol; ConditionOp(String symbol, CondOpLambda function){ + this(symbol, function, null); + } + + ConditionOp(String symbol, CondOpLambda function, CondObjOpLambda objFunction){ this.symbol = symbol; this.function = function; + this.objFunction = objFunction; } @Override @@ -23,6 +29,10 @@ public enum ConditionOp{ return symbol; } + interface CondObjOpLambda{ + boolean get(Object a, Object b); + } + interface CondOpLambda{ boolean get(double a, double b); } diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java index 2128028153..30eacf2402 100644 --- a/core/src/mindustry/logic/LAccess.java +++ b/core/src/mindustry/logic/LAccess.java @@ -15,6 +15,7 @@ public enum LAccess{ powerNetIn, powerNetOut, health, + maxHealth, heat, efficiency, rotation, @@ -24,6 +25,7 @@ public enum LAccess{ shootY, shooting, team, + type, //values with parameters are considered controllable enabled("to"), //"to" is standard for single parameter access diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index 8ac7481dd0..7ca74ca83c 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -8,7 +8,7 @@ import mindustry.gen.*; import mindustry.logic.LExecutor.*; import mindustry.logic.LStatements.*; import mindustry.type.*; -import mindustry.world.blocks.logic.*; +import mindustry.world.*; /** "Compiles" a sequence of statements into instructions. */ public class LAssembler{ @@ -39,6 +39,12 @@ public class LAssembler{ putConst("@" + liquid.name, liquid); } + for(Block block : Vars.content.blocks()){ + if(block.synthetic()){ + putConst("@" + block.name, block); + } + } + //store sensor constants for(LAccess sensor : LAccess.all){ @@ -66,7 +72,7 @@ public class LAssembler{ } public static Seq read(String data){ - return read(data, LogicBlock.maxInstructions); + return read(data, LExecutor.maxInstructions); } public static Seq read(String data, int max){ @@ -82,6 +88,8 @@ public class LAssembler{ if(index++ > max) break; + line = line.replace("\t", "").trim(); + try{ String[] arr; diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index c00a69b887..d626f95388 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -17,18 +17,20 @@ import arc.util.ArcAnnotate.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.ui.*; -import mindustry.world.blocks.logic.*; public class LCanvas extends Table{ - static Seq postDraw = new Seq<>(); - static Seq postDrawPriority = new Seq<>(); + //ew static variables + static LCanvas canvas; DragLayout statements; StatementElem dragging; ScrollPane pane; + Group jumps; float targetWidth; public LCanvas(){ + canvas = this; + rebuild(); } @@ -45,12 +47,16 @@ public class LCanvas extends Table{ clear(); statements = new DragLayout(); + jumps = new WidgetGroup(); pane = pane(t -> { t.center(); t.add(statements).pad(2f).center().width(targetWidth); + t.addChild(jumps); + + jumps.cullable = false; }).grow().get(); - pane.setClip(false); + //pane.setClip(false); pane.setFlickScroll(false); //load old scroll percent @@ -76,8 +82,10 @@ public class LCanvas extends Table{ } void load(String asm){ + jumps.clear(); + Seq statements = LAssembler.read(asm); - statements.truncate(LogicBlock.maxInstructions); + statements.truncate(LExecutor.maxInstructions); this.statements.clearChildren(); for(LStatement st : statements){ add(st); @@ -104,19 +112,11 @@ public class LCanvas extends Table{ } } - @Override - public void draw(){ - postDraw.clear(); - postDrawPriority.clear(); - super.draw(); - postDraw.each(Runnable::run); - postDrawPriority.each(Runnable::run); - } - public class DragLayout extends WidgetGroup{ float space = Scl.scl(10f), prefWidth, prefHeight; Seq seq = new Seq<>(); int insertPosition = 0; + boolean invalidated; { setTransform(true); @@ -124,6 +124,7 @@ public class LCanvas extends Table{ @Override public void layout(){ + invalidated = true; float cy = 0; seq.clear(); @@ -171,6 +172,10 @@ public class LCanvas extends Table{ } invalidateHierarchy(); + + if(parent != null && parent instanceof Table){ + setCullingArea(parent.getCullingArea()); + } } @Override @@ -196,7 +201,16 @@ public class LCanvas extends Table{ Tex.pane.draw(lastX, lastY - shiftAmount, width, dragging.getHeight()); } + if(invalidated){ + children.each(c -> c.cullable = false); + } + super.draw(); + + if(invalidated){ + children.each(c -> c.cullable = true); + invalidated = false; + } } void finishLayout(){ @@ -338,6 +352,9 @@ public class LCanvas extends Table{ boolean selecting; float mx, my; ClickListener listener; + StatementElem hovered; + + JumpCurve curve; public JumpButton(@NonNull Prov getter, Cons setter){ super(Tex.logicNode, Styles.colori); @@ -383,53 +400,26 @@ public class LCanvas extends Table{ setColor(listener.isOver() ? hoverColor : defaultColor); getStyle().imageUpColor = this.color; }); + + curve = new JumpCurve(this); } @Override - public void draw(){ - super.draw(); + public void act(float delta){ + super.act(delta); - (listener.isOver() ? postDrawPriority : postDraw).add(() -> { - Element hover = to.get() == null && selecting ? hovered() : to.get(); - float tx = 0, ty = 0; - boolean draw = false; - //capture coordinates for use in lambda - float rx = x + translation.x, ry = y + translation.y; + hovered = hovered(); + } - Element p = parent; - while(p != null){ - rx += p.x + p.translation.x; - ry += p.y + p.translation.y; - p = p.parent; - } + @Override + protected void setScene(Scene stage){ + super.setScene(stage); - if(hover != null){ - tx = hover.getX(Align.right) + hover.translation.x; - ty = hover.getY(Align.right) + hover.translation.y; - - Element op = hover.parent; - while(op != null){ - tx += op.x + op.translation.x; - ty += op.y + op.translation.y; - op = op.parent; - } - - draw = true; - }else if(selecting){ - tx = rx + mx; - ty = ry + my; - draw = true; - } - - if(draw){ - 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(); - } - }); + if(stage == null){ + curve.remove(); + }else{ + canvas.jumps.addChild(curve); + } } StatementElem hovered(){ @@ -442,9 +432,60 @@ public class LCanvas extends Table{ if(e == null || isDescendantOf(e)) return null; return (StatementElem)e; } + } + + public static class JumpCurve extends Element{ + JumpButton button; + + public JumpCurve(JumpButton button){ + this.button = button; + } + + @Override + public void act(float delta){ + super.act(delta); + + if(button.listener.isOver()){ + toFront(); + } + } + + @Override + public void draw(){ + Element hover = button.to.get() == null && button.selecting ? button.hovered : button.to.get(); + boolean draw = false; + Vec2 t = Tmp.v1, r = Tmp.v2; + + Group desc = canvas.pane; + + button.localToAscendantCoordinates(desc, r.set(0, 0)); + + if(hover != null){ + hover.localToAscendantCoordinates(desc, t.set(hover.getWidth(), hover.getHeight()/2f)); + + draw = true; + }else if(button.selecting){ + t.set(r).add(button.mx, button.my); + draw = true; + } + + float offset = canvas.pane.getVisualScrollY() - canvas.pane.getMaxY(); + + t.y += offset; + r.y += offset; + + if(draw){ + drawCurve(r.x + button.getWidth()/2f, r.y + button.getHeight()/2f, t.x, t.y); + + float s = button.getWidth(); + Draw.color(button.color); + Tex.logicNode.draw(t.x + s*0.75f, t.y - s/2f, -s, s); + Draw.reset(); + } + } void drawCurve(float x, float y, float x2, float y2){ - Lines.stroke(4f, color); + Lines.stroke(4f, button.color); Draw.alpha(parentAlpha); float dist = 100f; @@ -454,7 +495,7 @@ public class LCanvas extends Table{ x + dist, y, x2 + dist, y2, x2, y2, - Math.max(20, (int)(Mathf.dst(x, y, x2, y2) / 5)) + Math.max(20, (int)(Mathf.dst(x, y, x2, y2) / 6)) ); } } diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 3b201e4809..4e2010409a 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -3,6 +3,7 @@ package mindustry.logic; import arc.struct.*; import arc.util.ArcAnnotate.*; import arc.util.*; +import arc.util.noise.*; import mindustry.*; import mindustry.ctype.*; import mindustry.entities.*; @@ -15,6 +16,11 @@ import mindustry.world.blocks.logic.MessageBlock.*; import static mindustry.Vars.*; public class LExecutor{ + public static final int maxInstructions = 1000; + + //for noise operations + public static final Simplex noise = new Simplex(); + //special variables public static final int varCounter = 0, @@ -42,7 +48,8 @@ public class LExecutor{ vars[varTime].numval = Time.millis(); //reset to start - if(vars[varCounter].numval >= instructions.length) vars[varCounter].numval = 0; + if(vars[varCounter].numval >= instructions.length + || vars[varCounter].numval < 0) vars[varCounter].numval = 0; if(vars[varCounter].numval < instructions.length){ instructions[(int)(vars[varCounter].numval++)].run(this); @@ -252,18 +259,24 @@ public class LExecutor{ Object target = exec.obj(from); Object sense = exec.obj(type); - double output = 0; - if(target instanceof Senseable){ + Senseable se = (Senseable)target; if(sense instanceof Content){ - output = ((Senseable)target).sense(((Content)sense)); + exec.setnum(to, se.sense(((Content)sense))); }else if(sense instanceof LAccess){ - output = ((Senseable)target).sense(((LAccess)sense)); + Object objOut = se.senseObject((LAccess)sense); + + if(objOut == Senseable.noSensed){ + //numeric output + exec.setnum(to, se.sense((LAccess)sense)); + }else{ + //object output + exec.setobj(to, objOut); + } } + }else{ + exec.setnum(to, 0); } - - exec.setnum(to, output); - } } @@ -396,7 +409,17 @@ public class LExecutor{ 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))); + Var va = exec.vars[a]; + Var vb = exec.vars[b]; + + if(op.objFunction2 != null && (va.isobj || vb.isobj)){ + //use object function if provided, and one of the variables is an object + exec.setnum(dest, op.objFunction2.get(exec.obj(a), exec.obj(b))); + }else{ + //otherwise use the numeric function + exec.setnum(dest, op.function2.get(exec.num(a), exec.num(b))); + } + } } } @@ -490,7 +513,9 @@ public class LExecutor{ //this should avoid any garbage allocation Var v = exec.vars[value]; if(v.isobj && value != 0){ - String strValue = v.objval instanceof String ? (String)v.objval : v.objval == null ? "null" : + String strValue = + v.objval == null ? "null" : + v.objval instanceof String ? (String)v.objval : v.objval instanceof Content ? "[content]" : v.objval instanceof Building ? "[building]" : v.objval instanceof Unit ? "[unit]" : @@ -549,8 +574,21 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - if(address != -1 && op.function.get(exec.num(value), exec.num(compare))){ - exec.vars[varCounter].numval = address; + if(address != -1){ + Var va = exec.vars[value]; + Var vb = exec.vars[compare]; + boolean cmp = false; + + if(op.objFunction != null && (va.isobj || vb.isobj)){ + //use object function if provided, and one of the variables is an object + cmp = op.objFunction.get(exec.obj(value), exec.obj(compare)); + }else{ + cmp = op.function.get(exec.num(value), exec.num(compare)); + } + + if(cmp){ + exec.vars[varCounter].numval = address; + } } } } diff --git a/core/src/mindustry/logic/LStatement.java b/core/src/mindustry/logic/LStatement.java index f7e39c6088..cbe5029d94 100644 --- a/core/src/mindustry/logic/LStatement.java +++ b/core/src/mindustry/logic/LStatement.java @@ -93,7 +93,13 @@ public abstract class LStatement{ Core.scene.add(t); t.update(() -> { - if(b.parent == null) return; + if(b.parent == null || !b.isDescendantOf(Core.scene.root)){ + Core.app.post(() -> { + hitter.remove(); + t.remove(); + }); + return; + } b.localToStageCoordinates(Tmp.v1.set(b.getWidth()/2f, b.getHeight()/2f)); t.setPosition(Tmp.v1.x, Tmp.v1.y, Align.center); diff --git a/core/src/mindustry/logic/LogicDialog.java b/core/src/mindustry/logic/LogicDialog.java index a9f2debfbb..fb97e5c4bc 100644 --- a/core/src/mindustry/logic/LogicDialog.java +++ b/core/src/mindustry/logic/LogicDialog.java @@ -7,7 +7,6 @@ import mindustry.gen.*; import mindustry.logic.LStatements.*; import mindustry.ui.*; import mindustry.ui.dialogs.*; -import mindustry.world.blocks.logic.*; import static mindustry.Vars.*; @@ -21,6 +20,7 @@ public class LogicDialog extends BaseDialog{ clearChildren(); canvas = new LCanvas(); + shouldPause = true; addCloseButton(); buttons.getCells().first().width(170f); @@ -75,7 +75,7 @@ public class LogicDialog extends BaseDialog{ }); dialog.addCloseButton(); dialog.show(); - }).width(170f).disabled(t -> canvas.statements.getChildren().size >= LogicBlock.maxInstructions); + }).width(170f).disabled(t -> canvas.statements.getChildren().size >= LExecutor.maxInstructions); add(canvas).grow(); diff --git a/core/src/mindustry/logic/LogicOp.java b/core/src/mindustry/logic/LogicOp.java index 616ae5a464..126f5bd607 100644 --- a/core/src/mindustry/logic/LogicOp.java +++ b/core/src/mindustry/logic/LogicOp.java @@ -8,24 +8,25 @@ public enum LogicOp{ mul("*", (a, b) -> a * b), div("/", (a, b) -> a / b), mod("%", (a, b) -> a % b), - equal("==", (a, b) -> Math.abs(a - b) < 0.000001 ? 1 : 0), - notEqual("not", (a, b) -> Math.abs(a - b) < 0.000001 ? 0 : 1), + equal("==", (a, b) -> Math.abs(a - b) < 0.000001 ? 1 : 0, (a, b) -> a == b ? 1 : 0), + notEqual("not", (a, b) -> Math.abs(a - b) < 0.000001 ? 0 : 1, (a, b) -> a != b ? 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), + shl(">>", (a, b) -> (long)a >> (long)b), + shr("<<", (a, b) -> (long)a << (long)b), + or("or", (a, b) -> (long)a | (long)b), + and("and", (a, b) -> (long)a & (long)b), + xor("xor", (a, b) -> (long)a ^ (long)b), max("max", Math::max), min("min", Math::min), atan2("atan2", (x, y) -> Mathf.atan2((float)x, (float)y) * Mathf.radDeg), dst("dst", (x, y) -> Mathf.dst((float)x, (float)y)), + noise("noise", LExecutor.noise::rawNoise2D), - not("not", a -> ~(int)(a)), + not("not", a -> ~(long)(a)), abs("abs", a -> Math.abs(a)), log("log", Math::log), log10("log10", Math::log10), @@ -41,16 +42,22 @@ public enum LogicOp{ public static final LogicOp[] all = values(); + public final OpObjLambda2 objFunction2; public final OpLambda2 function2; public final OpLambda1 function1; public final boolean unary; public final String symbol; LogicOp(String symbol, OpLambda2 function){ + this(symbol, function, null); + } + + LogicOp(String symbol, OpLambda2 function, OpObjLambda2 objFunction){ this.symbol = symbol; this.function2 = function; this.function1 = null; this.unary = false; + this.objFunction2 = objFunction; } LogicOp(String symbol, OpLambda1 function){ @@ -58,6 +65,7 @@ public enum LogicOp{ this.function1 = function; this.function2 = null; this.unary = true; + this.objFunction2 = null; } @Override @@ -65,6 +73,10 @@ public enum LogicOp{ return symbol; } + interface OpObjLambda2{ + double get(Object a, Object b); + } + interface OpLambda2{ double get(double a, double b); } diff --git a/core/src/mindustry/logic/Senseable.java b/core/src/mindustry/logic/Senseable.java index 3f9e3798a4..6ae99afbfa 100644 --- a/core/src/mindustry/logic/Senseable.java +++ b/core/src/mindustry/logic/Senseable.java @@ -3,6 +3,12 @@ package mindustry.logic; import mindustry.ctype.*; public interface Senseable{ + Object noSensed = new Object(); + double sense(LAccess sensor); double sense(Content content); + + default Object senseObject(LAccess sensor){ + return noSensed; + } } diff --git a/core/src/mindustry/maps/Maps.java b/core/src/mindustry/maps/Maps.java index 137b91bb36..44f8c8db6f 100644 --- a/core/src/mindustry/maps/Maps.java +++ b/core/src/mindustry/maps/Maps.java @@ -292,25 +292,29 @@ public class Maps{ if(str == null || str.isEmpty()){ //create default filters list Seq filters = Seq.with( - new ScatterFilter(){{ - flooronto = Blocks.stone; - block = Blocks.rock; - }}, - new ScatterFilter(){{ - flooronto = Blocks.shale; - block = Blocks.shaleBoulder; - }}, new ScatterFilter(){{ flooronto = Blocks.snow; - block = Blocks.snowrock; + block = Blocks.snowBoulder; }}, new ScatterFilter(){{ flooronto = Blocks.ice; - block = Blocks.snowrock; + block = Blocks.snowBoulder; }}, new ScatterFilter(){{ flooronto = Blocks.sand; block = Blocks.sandBoulder; + }}, + new ScatterFilter(){{ + flooronto = Blocks.dacite; + block = Blocks.daciteBoulder; + }}, + new ScatterFilter(){{ + flooronto = Blocks.stone; + block = Blocks.boulder; + }}, + new ScatterFilter(){{ + flooronto = Blocks.shale; + block = Blocks.shaleBoulder; }} ); diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index da946ea686..5f4e267d74 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -35,7 +35,8 @@ public class SectorDamage{ if(core != null && !frontier.isEmpty()){ for(Tile spawner : frontier){ //find path from spawn to core - Seq path = Astar.pathfind(spawner, core.tile, t -> t.cost, t -> !(t.block().isStatic() && t.solid())); + //TODO this is broken + Seq path = Astar.pathfind(spawner, core.tile, SectorDamage::cost, t -> !(t.block().isStatic() && t.solid())); int amount = (int)(path.size * fraction); for(int i = 0; i < amount; i++){ Tile t = path.get(i); @@ -104,8 +105,12 @@ public class SectorDamage{ } } } + } - - + static float cost(Tile tile){ + return 1f + + (tile.block().isStatic() && tile.solid() ? 200f : 0f) + + (tile.build != null ? tile.build.health / 40f : 0f) + + (tile.floor().isLiquid ? 10f : 0f); } } diff --git a/core/src/mindustry/maps/filters/NoiseFilter.java b/core/src/mindustry/maps/filters/NoiseFilter.java index 8635966486..1feba11ad1 100644 --- a/core/src/mindustry/maps/filters/NoiseFilter.java +++ b/core/src/mindustry/maps/filters/NoiseFilter.java @@ -11,7 +11,7 @@ import static mindustry.maps.filters.FilterOption.wallsOnly; public class NoiseFilter extends GenerateFilter{ float scl = 40, threshold = 0.5f, octaves = 3f, falloff = 0.5f; - Block floor = Blocks.stone, block = Blocks.rocks; + Block floor = Blocks.stone, block = Blocks.stoneWall; @Override public FilterOption[] options(){ diff --git a/core/src/mindustry/maps/filters/RiverNoiseFilter.java b/core/src/mindustry/maps/filters/RiverNoiseFilter.java index 79755e1e8e..0a462548cc 100644 --- a/core/src/mindustry/maps/filters/RiverNoiseFilter.java +++ b/core/src/mindustry/maps/filters/RiverNoiseFilter.java @@ -11,7 +11,7 @@ import static mindustry.maps.filters.FilterOption.wallsOnly; public class RiverNoiseFilter extends GenerateFilter{ float scl = 40, threshold = 0f, threshold2 = 0.1f; - Block floor = Blocks.water, floor2 = Blocks.deepwater, block = Blocks.sandRocks; + Block floor = Blocks.water, floor2 = Blocks.deepwater, block = Blocks.sandWall; @Override public FilterOption[] options(){ diff --git a/core/src/mindustry/maps/filters/TerrainFilter.java b/core/src/mindustry/maps/filters/TerrainFilter.java index d525f74d14..f6dcaeaf27 100644 --- a/core/src/mindustry/maps/filters/TerrainFilter.java +++ b/core/src/mindustry/maps/filters/TerrainFilter.java @@ -12,7 +12,7 @@ import static mindustry.maps.filters.FilterOption.wallsOnly; public class TerrainFilter extends GenerateFilter{ float scl = 40, threshold = 0.9f, octaves = 3f, falloff = 0.5f, magnitude = 1f, circleScl = 2.1f; - Block floor = Blocks.stone, block = Blocks.rocks; + Block floor = Blocks.stone, block = Blocks.stoneWall; @Override public FilterOption[] options(){ diff --git a/core/src/mindustry/maps/generators/BaseGenerator.java b/core/src/mindustry/maps/generators/BaseGenerator.java index 74672f2fb0..7a752a453a 100644 --- a/core/src/mindustry/maps/generators/BaseGenerator.java +++ b/core/src/mindustry/maps/generators/BaseGenerator.java @@ -15,6 +15,7 @@ import mindustry.world.blocks.defense.*; import mindustry.world.blocks.environment.*; import mindustry.world.blocks.power.*; import mindustry.world.blocks.production.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -26,9 +27,10 @@ public class BaseGenerator{ private Tiles tiles; private Team team; private ObjectMap ores = new ObjectMap<>(); + private ObjectMap oreFloors = new ObjectMap<>(); private Seq cores; - public void generate(Tiles tiles, Seq cores, Tile spawn, Team team, Sector sector){ + public void generate(Tiles tiles, Seq cores, Tile spawn, Team team, Sector sector, float difficulty){ this.tiles = tiles; this.team = team; this.cores = cores; @@ -41,16 +43,24 @@ public class BaseGenerator{ for(Block block : content.blocks()){ if(block instanceof OreBlock && block.asFloor().itemDrop != null){ ores.put(block.asFloor().itemDrop, (OreBlock)block); + }else if(block.isFloor() && block.asFloor().itemDrop != null && !oreFloors.containsKey(block.asFloor().itemDrop)){ + oreFloors.put(block.asFloor().itemDrop, block.asFloor()); } } //TODO limit base size float costBudget = 1000; - Seq wallsSmall = content.blocks().select(b -> b instanceof Wall && b.size == 1); - Seq wallsLarge = content.blocks().select(b -> b instanceof Wall && b.size == 2); + Seq wallsSmall = content.blocks().select(b -> b instanceof Wall && b.size == 1 && b.buildVisibility == BuildVisibility.shown && !(b instanceof Door)); + Seq wallsLarge = content.blocks().select(b -> b instanceof Wall && b.size == 2 && b.buildVisibility == BuildVisibility.shown && !(b instanceof Door)); - float bracket = 0.1f; + //sort by cost for correct fraction + wallsSmall.sort(b -> b.buildCost); + wallsLarge.sort(b -> b.buildCost); + + //TODO proper difficulty selection + float bracket = difficulty; + float bracketRange = 0.2f; int wallAngle = 70; //180 for full coverage double resourceChance = 0.5; double nonResourceChance = 0.0005; @@ -65,7 +75,7 @@ public class BaseGenerator{ //fill core with every type of item (even non-material) Building entity = tile.build; for(Item item : content.items()){ - entity.items.add(item, entity.block().itemCapacity); + entity.items.add(item, entity.block.itemCapacity); } } @@ -73,13 +83,22 @@ public class BaseGenerator{ pass(tile -> { if(!tile.block().alwaysReplace) return; - if((tile.drop() != null || (tile.floor().liquidDrop != null && Mathf.chance(nonResourceChance * 2))) && Mathf.chance(resourceChance)){ + if(((tile.overlay().asFloor().itemDrop != null || (tile.drop() != null && Mathf.chance(nonResourceChance))) + || (tile.floor().liquidDrop != null && Mathf.chance(nonResourceChance * 2))) && Mathf.chance(resourceChance)){ Seq parts = bases.forResource(tile.drop() != null ? tile.drop() : tile.floor().liquidDrop); if(!parts.isEmpty()){ - tryPlace(parts.random(), tile.x, tile.y); + tryPlace(parts.getFrac(bracket + Mathf.range(bracketRange)), tile.x, tile.y); } }else if(Mathf.chance(nonResourceChance)){ - tryPlace(bases.parts.random(), tile.x, tile.y); + tryPlace(bases.parts.getFrac(bracket + Mathf.range(bracketRange)), tile.x, tile.y); + } + }); + + //replace walls with the correct type (disabled) + if(false) + pass(tile -> { + if(tile.block() instanceof Wall && tile.team() == team && tile.block() != wall && tile.block() != wallLarge){ + tile.setBlock(tile.block().size == 2 ? wallLarge : wall, team); } }); @@ -87,6 +106,7 @@ public class BaseGenerator{ //small walls pass(tile -> { + if(tile.block().alwaysReplace){ boolean any = false; @@ -163,19 +183,20 @@ public class BaseGenerator{ } if(part.required instanceof Item){ + Item item = (Item)part.required; for(Stile tile : result.tiles){ if(tile.block instanceof Drill){ tile.block.iterateTaken(tile.x + cx, tile.y + cy, (ex, ey) -> { if(!tiles.getn(ex, ey).floor().isLiquid){ - tiles.getn(ex, ey).setOverlay(ores.get((Item)part.required)); + set(tiles.getn(ex, ey), item); } Tile rand = tiles.getc(ex + Mathf.range(1), ey + Mathf.range(1)); if(!rand.floor().isLiquid){ //random ores nearby to make it look more natural - rand.setOverlay(ores.get((Item)part.required)); + set(rand, item); } }); } @@ -184,24 +205,43 @@ public class BaseGenerator{ Schematics.place(result, cx + result.width/2, cy + result.height/2, team); - return true; - } + //fill drills with items after placing + if(part.required instanceof Item){ + Item item = (Item)part.required; + for(Stile tile : result.tiles){ + if(tile.block instanceof Drill){ - boolean isTaken(Block block, int x, int y){ - if(block.isMultiblock()){ - int offsetx = -(block.size - 1) / 2; - int offsety = -(block.size - 1) / 2; + Building build = world.tile(tile.x + cx, tile.y + cy).build; - for(int dx = 0; dx < block.size; dx++){ - for(int dy = 0; dy < block.size; dy++){ - if(overlaps(dx + offsetx + x, dy + offsety + y)){ - return true; + if(build != null){ + build.items.add(item, build.block.itemCapacity); } } } + } - }else{ - return overlaps(x, y); + return true; + } + + void set(Tile tile, Item item){ + if(ores.containsKey(item)){ + tile.setOverlay(ores.get(item)); + }else if(oreFloors.containsKey(item)){ + tile.setFloor(oreFloors.get(item)); + } + } + + boolean isTaken(Block block, int x, int y){ + int offsetx = -(block.size - 1) / 2; + int offsety = -(block.size - 1) / 2; + int pad = 1; + + for(int dx = -pad; dx < block.size + pad; dx++){ + for(int dy = -pad; dy < block.size + pad; dy++){ + if(overlaps(dx + offsetx + x, dy + offsety + y)){ + return true; + } + } } return false; diff --git a/core/src/mindustry/maps/generators/BasicGenerator.java b/core/src/mindustry/maps/generators/BasicGenerator.java index d7db4d12ff..542f84cf29 100644 --- a/core/src/mindustry/maps/generators/BasicGenerator.java +++ b/core/src/mindustry/maps/generators/BasicGenerator.java @@ -39,63 +39,6 @@ public abstract class BasicGenerator implements WorldGenerator{ } - //for visual testing only - public void cliffs2(){ - for(Tile tile : tiles){ - tile.setBlock(Blocks.air); - tile.cost = tile.floor().isLiquid ? 0 : (byte)(noise(tile.x, tile.y, 4, 0.5f, 90f, 1) * 5); - } - - for(Tile tile : tiles){ - if(tile.floor().isLiquid) continue; - - int rotation = 0; - for(int i = 0; i < 8; i++){ - Tile other = tiles.get(tile.x + Geometry.d8[i].x, tile.y + Geometry.d8[i].y); - if(other != null && other.cost < tile.cost){ //down slope - rotation |= (1 << i); - } - } - - tile.data = (byte)rotation; - } - - for(Tile tile : tiles){ - if(tile.data != 0){ - int rotation = tile.data; - tile.setBlock(Blocks.cliff); - tile.setOverlay(Blocks.air); - tile.data = (byte)rotation; - } - } - } - - public void cliffs(){ - for(Tile tile : tiles){ - if(!tile.block().isStatic()) continue; - - int rotation = 0; - for(int i = 0; i < 8; i++){ - Tile other = tiles.get(tile.x + Geometry.d8[i].x, tile.y + Geometry.d8[i].y); - if(other != null && !other.block().isStatic()){ - rotation |= (1 << i); - } - } - - if(rotation != 0){ - tile.setBlock(Blocks.cliff); - } - - tile.data = (byte)rotation; - } - - for(Tile tile : tiles){ - if(tile.block() != Blocks.cliff && tile.block().isStatic()){ - tile.setBlock(Blocks.air); - } - } - } - public void median(int radius){ median(radius, 0.5); } @@ -331,18 +274,20 @@ public abstract class BasicGenerator implements WorldGenerator{ } public void inverseFloodFill(Tile start){ + GridBits used = new GridBits(tiles.width, tiles.height); + IntSeq arr = new IntSeq(); arr.add(start.pos()); while(!arr.isEmpty()){ int i = arr.pop(); int x = Point2.x(i), y = Point2.y(i); - tiles.getn(x, y).cost = 2; + used.set(x, y); for(Point2 point : Geometry.d4){ int newx = x + point.x, newy = y + point.y; if(tiles.in(newx, newy)){ Tile child = tiles.getn(newx, newy); - if(child.block() == Blocks.air && child.cost != 2){ - child.cost = 2; + if(child.block() == Blocks.air && !used.get(child.x, child.y)){ + used.set(child.x, child.y); arr.add(child.pos()); } } @@ -350,7 +295,7 @@ public abstract class BasicGenerator implements WorldGenerator{ } for(Tile tile : tiles){ - if(tile.cost != 2 && tile.block() == Blocks.air){ + if(!used.get(tile.x, tile.y) && tile.block() == Blocks.air){ tile.setBlock(tile.floor().wall); } } diff --git a/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java b/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java index a8dccace17..4e15baf9e1 100644 --- a/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/SerpuloPlanetGenerator.java @@ -27,10 +27,10 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{ {Blocks.water, Blocks.darksandWater, Blocks.darksand, Blocks.darksand, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.darksandTaintedWater, Blocks.stone, Blocks.stone, Blocks.stone}, {Blocks.water, Blocks.darksandWater, Blocks.darksand, Blocks.sand, Blocks.salt, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.darksandTaintedWater, Blocks.stone, Blocks.stone, Blocks.stone}, {Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.salt, Blocks.salt, Blocks.salt, Blocks.sand, Blocks.stone, Blocks.stone, Blocks.stone, Blocks.snow, Blocks.iceSnow, Blocks.ice}, - {Blocks.deepwater, Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.salt, Blocks.sand, Blocks.sand, Blocks.ignarock, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice}, + {Blocks.deepwater, Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.salt, Blocks.sand, Blocks.sand, Blocks.basalt, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice}, {Blocks.deepwater, Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.moss, Blocks.iceSnow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.snow, Blocks.ice}, {Blocks.deepwater, Blocks.sandWater, Blocks.sand, Blocks.sand, Blocks.moss, Blocks.moss, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.snow, Blocks.ice}, - {Blocks.taintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.darksand, Blocks.ignarock, Blocks.moss, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.snow, Blocks.ice, Blocks.ice}, + {Blocks.taintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.darksand, Blocks.basalt, Blocks.moss, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.snow, Blocks.ice, Blocks.ice}, {Blocks.darksandWater, Blocks.darksand, Blocks.darksand, Blocks.darksand, Blocks.moss, Blocks.sporeMoss, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice}, {Blocks.darksandWater, Blocks.darksand, Blocks.darksand, Blocks.sporeMoss, Blocks.ice, Blocks.ice, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice}, {Blocks.taintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.sporeMoss, Blocks.sporeMoss, Blocks.ice, Blocks.ice, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice}, @@ -284,20 +284,25 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{ float difficulty = sector.baseCoverage; if(sector.hasEnemyBase()){ - basegen.generate(tiles, enemies.map(r -> tiles.getn(r.x, r.y)), tiles.get(spawn.x, spawn.y), state.rules.waveTeam, sector); + basegen.generate(tiles, enemies.map(r -> tiles.getn(r.x, r.y)), tiles.get(spawn.x, spawn.y), state.rules.waveTeam, sector, difficulty); state.rules.attackMode = true; }else{ - state.rules.winWave = 15 * (int)Math.max(difficulty, 1); + state.rules.winWave = 15 * (int)Math.max(difficulty * 5, 1); } state.rules.waves = true; + //TODO better waves + state.rules.spawns = defaultWaves.get(); + + float waveScaling = 1f + difficulty*2; + //scale up the spawning base on difficulty (this is just for testing) for(SpawnGroup group : state.rules.spawns){ - group.unitAmount *= difficulty; + group.unitAmount *= waveScaling; if(group.unitScaling != SpawnGroup.never){ - group.unitScaling *= difficulty; + group.unitScaling /= waveScaling; } } } diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index d4a8087e91..b63a0b17dc 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -241,8 +241,8 @@ public class ContentParser{ readFields(block, value, true); - if(block.size > BuildBlock.maxSize){ - throw new IllegalArgumentException("Blocks cannot be larger than " + BuildBlock.maxSize); + if(block.size > ConstructBlock.maxSize){ + throw new IllegalArgumentException("Blocks cannot be larger than " + ConstructBlock.maxSize); } //add research tech node diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 2a87330c82..6fb8b32f4f 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -425,6 +425,7 @@ public class Mods implements Loadable{ /** This must be run on the main thread! */ public void loadScripts(){ Time.mark(); + boolean[] any = {false}; try{ eachEnabled(mod -> { @@ -438,6 +439,7 @@ public class Mods implements Loadable{ if(scripts == null){ scripts = platform.createScripts(); } + any[0] = true; scripts.run(mod, main); }catch(Throwable e){ Core.app.post(() -> { @@ -454,7 +456,9 @@ public class Mods implements Loadable{ content.setCurrentMod(null); } - Log.info("Time to initialize modded scripts: @", Time.elapsed()); + if(any[0]){ + Log.info("Time to initialize modded scripts: @", Time.elapsed()); + } } /** Creates all the content found in mod files. */ @@ -703,14 +707,49 @@ public class Mods implements Loadable{ /** @return whether this mod is supported by the game verison */ public boolean isSupported(){ - if(Version.build <= 0 || meta.minGameVersion == null) return true; - if(meta.minGameVersion.contains(".")){ - String[] split = meta.minGameVersion.split("\\."); + if(isOutdated()) return false; + + int major = getMinMajor(), minor = getMinMinor(); + + if(Version.build <= 0) return true; + + return Version.build >= major && Version.revision >= minor; + } + + /** @return whether this mod is outdated, e.g. not compatible with v6. */ + public boolean isOutdated(){ + //must be at least 105 to indicate v6 compat + return getMinMajor() < 105; + } + + public int getMinMajor(){ + int major = 0; + + String ver = meta.minGameVersion == null ? "0" : meta.minGameVersion; + + if(ver.contains(".")){ + String[] split = ver.split("\\."); if(split.length == 2){ - return Version.build >= Strings.parseInt(split[0], 0) && Version.revision >= Strings.parseInt(split[1], 0); + major = Strings.parseInt(split[0], 0); + } + }else{ + major = Strings.parseInt(ver, 0); + } + + return major; + } + + public int getMinMinor(){ + String ver = meta.minGameVersion == null ? "0" : meta.minGameVersion; + + if(ver.contains(".")){ + String[] split = ver.split("\\."); + if(split.length == 2){ + return Strings.parseInt(split[1], 0); } } - return Version.build >= Strings.parseInt(meta.minGameVersion, 0); + + return 0; } @Override @@ -788,7 +827,7 @@ public class Mods implements Loadable{ /** Mod metadata information.*/ public static class ModMeta{ - public String name, displayName, author, description, version, main, minGameVersion; + public String name, displayName, author, description, version, main, minGameVersion = "0"; public Seq dependencies = Seq.with(); /** Hidden mods are only server-side or client-side, and do not support adding new content. */ public boolean hidden; diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java index d2009187f7..14a9e4326f 100644 --- a/core/src/mindustry/mod/Scripts.java +++ b/core/src/mindustry/mod/Scripts.java @@ -22,7 +22,7 @@ public class Scripts implements Disposable{ private final Seq blacklist = Seq.with(".net.", "java.net", "files", "reflect", "javax", "rhino", "file", "channels", "jdk", "runtime", "util.os", "rmi", "security", "org.", "sun.", "beans", "sql", "http", "exec", "compiler", "process", "system", ".awt", "socket", "classloader", "oracle", "invoke", "java.util.function", "java.util.stream", "org."); - private final Seq whitelist = Seq.with("mindustry.net", "netserver", "netclient", "com.sun.proxy.$proxy", "mindustry.gen.", "mindustry.logic."); + private final Seq whitelist = Seq.with("mindustry.net", "netserver", "netclient", "com.sun.proxy.$proxy", "mindustry.gen.", "mindustry.logic.", "mindustry.async."); private final Context context; private final Scriptable scope; private boolean errored; diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index 25fd12be89..fde1a9c4fc 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -27,21 +27,10 @@ public class Administration{ /** All player info. Maps UUIDs to info. This persists throughout restarts. Do not access directly. */ private ObjectMap playerInfo = new ObjectMap<>(); - private IntIntMap lastPlaced = new IntIntMap(); public Administration(){ load(); - Events.on(ResetEvent.class, e -> lastPlaced = new IntIntMap()); - - //keep track of who placed what on the server - Events.on(BlockBuildEndEvent.class, e -> { - //players should be able to configure their own tiles - if(net.server() && e.unit != null && e.unit.isPlayer()){ - lastPlaced.put(e.tile.pos(), e.unit.getPlayer().id()); - } - }); - //anti-spam addChatFilter((player, message) -> { long resetTime = Config.messageRateLimit.num() * 1000; @@ -80,19 +69,13 @@ public class Administration{ action.type != ActionType.placeBlock && Config.antiSpam.bool()){ - //make sure players can configure their own stuff, e.g. in schematics - but only once. - if(lastPlaced.get(action.tile.pos(), -1) == action.player.id()){ - lastPlaced.remove(action.tile.pos()); - return true; - } - Ratekeeper rate = action.player.getInfo().rate; if(rate.allow(Config.interactRateWindow.num() * 1000, Config.interactRateLimit.num())){ return true; }else{ if(rate.occurences > Config.interactRateKick.num()){ action.player.kick("You are interacting with too many blocks.", 1000 * 30); - }else{ + }else if(action.player.getInfo().messageTimer.get(60f * 2f)){ action.player.sendMessage("[scarlet]You are interacting with blocks too quickly."); } @@ -168,7 +151,7 @@ public class Administration{ Core.settings.put("playerlimit", limit); } - public boolean getStrict(){ + public boolean isStrict(){ return Config.strict.bool(); } @@ -660,6 +643,7 @@ public class Administration{ public transient String lastSentMessage; public transient int messageInfractions; public transient Ratekeeper rate = new Ratekeeper(); + public transient Interval messageTimer = new Interval(); PlayerInfo(String id){ this.id = id; diff --git a/core/src/mindustry/net/BeControl.java b/core/src/mindustry/net/BeControl.java index aba2cb2e29..a30308ed52 100644 --- a/core/src/mindustry/net/BeControl.java +++ b/core/src/mindustry/net/BeControl.java @@ -44,6 +44,17 @@ public class BeControl{ } }, updateInterval, updateInterval); } + + if(System.getProperties().contains("becopy")){ + try{ + Fi dest = Fi.get(System.getProperty("becopy")); + Fi self = Fi.get(BeControl.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); + + self.copyTo(dest); + }catch(Throwable e){ + e.printStackTrace(); + } + } } /** asynchronously checks for updates. */ @@ -68,13 +79,7 @@ public class BeControl{ }else{ Core.app.post(() -> done.get(false)); } - }, error -> Core.app.post(() -> { - if(!headless){ - ui.showException(error); - }else{ - error.printStackTrace(); - } - })); + }, error -> {}); //ignore errors } /** @return whether a new update is available */ @@ -93,14 +98,17 @@ public class BeControl{ boolean[] cancel = {false}; float[] progress = {0}; int[] length = {0}; - Fi file = Fi.get(BeControl.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); + Fi file = bebuildDirectory.child("client-be-" + updateBuild + ".jar"); + Fi fileDest = System.getProperties().contains("becopy") ? + Fi.get(System.getProperty("becopy")) : + Fi.get(BeControl.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); BaseDialog dialog = new BaseDialog("@be.updating"); download(updateUrl, file, i -> length[0] = i, v -> progress[0] = v, () -> cancel[0], () -> { try{ Runtime.getRuntime().exec(OS.isMac ? - new String[]{"java", "-XstartOnFirstThread", "-DlastBuild=" + Version.build, "-Dberestart", "-jar", file.absolutePath()} : - new String[]{"java", "-DlastBuild=" + Version.build, "-Dberestart", "-jar", file.absolutePath()} + new String[]{"java", "-XstartOnFirstThread", "-DlastBuild=" + Version.build, "-Dberestart", "-Dbecopy=" + fileDest.absolutePath(), "-jar", file.absolutePath()} : + new String[]{"java", "-DlastBuild=" + Version.build, "-Dberestart", "-Dbecopy=" + fileDest.absolutePath(), "-jar", file.absolutePath()} ); System.exit(0); }catch(IOException e){ diff --git a/core/src/mindustry/net/Net.java b/core/src/mindustry/net/Net.java index 8993b84f83..3170a92617 100644 --- a/core/src/mindustry/net/Net.java +++ b/core/src/mindustry/net/Net.java @@ -152,7 +152,9 @@ public class Net{ } public void disconnect(){ - Log.info("Disconnecting."); + if(active && !server){ + Log.info("Disconnecting."); + } provider.disconnectClient(); server = false; active = false; diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java index e11d8f2d00..07de024e7f 100644 --- a/core/src/mindustry/net/NetConnection.java +++ b/core/src/mindustry/net/NetConnection.java @@ -1,6 +1,5 @@ package mindustry.net; -import arc.math.geom.*; import arc.struct.*; import arc.util.ArcAnnotate.*; import arc.util.*; @@ -12,15 +11,13 @@ import mindustry.net.Packets.*; import java.io.*; -import static mindustry.Vars.netServer; +import static mindustry.Vars.*; public abstract class NetConnection{ public final String address; public String uuid = "AAAAAAAA", usid = uuid; public boolean mobile, modclient; public @Nullable Player player; - public @Nullable Unitc lastUnit; - public Vec2 lastPosition = new Vec2(); public boolean kicked = false; /** ID of last received client snapshot. */ diff --git a/core/src/mindustry/type/ItemSeq.java b/core/src/mindustry/type/ItemSeq.java index af8436bf44..018d77a10f 100644 --- a/core/src/mindustry/type/ItemSeq.java +++ b/core/src/mindustry/type/ItemSeq.java @@ -11,8 +11,6 @@ import mindustry.world.modules.ItemModule.*; import java.util.*; public class ItemSeq implements Iterable, Serializable{ - private final static ItemStack tmp = new ItemStack(); - protected final int[] values; public int total; diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index e217b3431e..570671de4f 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -205,7 +205,7 @@ public class Planet extends UnlockableContent{ sum += 2f; } - sector.baseCoverage = sum; + sector.baseCoverage = Mathf.clamp(sum / 5f); } } diff --git a/core/src/mindustry/type/Sector.java b/core/src/mindustry/type/Sector.java index bf20d55b3f..856dd2219d 100644 --- a/core/src/mindustry/type/Sector.java +++ b/core/src/mindustry/type/Sector.java @@ -32,6 +32,7 @@ public class Sector{ public @Nullable SaveSlot save; public @Nullable SectorPreset preset; + /** Number 0-1 indicating the difficulty based on nearby bases. */ public float baseCoverage; //TODO implement a dynamic launch period @@ -390,6 +391,8 @@ public class Sector{ /** Has an enemy base. */ base, /** Has spore weather. */ - spores + spores, + /** Path from core to spawns requires traversing water. */ + navalPath } } diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index e26d185985..973fd13c6f 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -49,7 +49,7 @@ public class UnitType extends UnlockableContent{ public boolean destructibleWreck = true; public float groundLayer = Layer.groundUnit; public float sway = 1f; - public int payloadCapacity = 1; + public float payloadCapacity = 8; public int commandLimit = 24; public float visualElevation = -1f; public boolean allowLegStep = false; @@ -62,12 +62,14 @@ public class UnitType extends UnlockableContent{ public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f; public float legSplashDamage = 0f, legSplashRange = 5; public boolean flipBackLegs = true; + public float mechLegMoveScl = 1f; - public int itemCapacity = 30; + public int itemCapacity = -1; public int ammoCapacity = 220; public int mineTier = -1; public float buildSpeed = 1f, mineSpeed = 1f; + public boolean canDrown = true; public float engineOffset = 5f, engineSize = 2.5f; public float strafePenalty = 0.5f; public float hitsize = 6f; @@ -110,6 +112,17 @@ public class UnitType extends UnlockableContent{ return unit; } + public Unit spawn(Team team, float x, float y){ + Unit out = create(team); + out.set(x, y); + out.add(); + return out; + } + + public Unit spawn(float x, float y){ + return spawn(state.rules.defaultTeam, x, y); + } + public boolean hasWeapons(){ return weapons.size > 0; } @@ -183,6 +196,10 @@ public class UnitType extends UnlockableContent{ singleTarget = weapons.size <= 1; + if(itemCapacity < 0){ + itemCapacity = Math.max(Mathf.round(hitsize * 7, 20), 20); + } + //set up default range if(range < 0){ range = Float.MAX_VALUE; @@ -254,25 +271,25 @@ public class UnitType extends UnlockableContent{ //region drawing public void draw(Unit unit){ - Mechc legs = unit instanceof Mechc ? (Mechc)unit : null; - float z = unit.elevation > 0.5f ? (lowAltitude ? Layer.flyingUnitLow : Layer.flyingUnit) : groundLayer; + Mechc mech = unit instanceof Mechc ? (Mechc)unit : null; + float z = unit.elevation > 0.5f ? (lowAltitude ? Layer.flyingUnitLow : Layer.flyingUnit) : groundLayer + Mathf.clamp(hitsize/4000f, 0, 0.01f); if(unit.controller().isBeingControlled(player.unit())){ drawControl(unit); } - if(unit.isFlying()){ + if(unit.isFlying() || visualElevation > 0){ Draw.z(Math.min(Layer.darkness, z - 1f)); drawShadow(unit); } Draw.z(z - 0.02f); - if(legs != null){ - drawMech((Unit & Mechc)legs); + if(mech != null){ + drawMech((Unit & Mechc)mech); - float ft = Mathf.sin(legs.walkTime(), 3f, 3f); - legOffset.trns(legs.baseRotation(), 0f, Mathf.lerp(ft * 0.18f * sway, 0f, unit.elevation)); + float ft = Mathf.sin(mech.walkTime(), 3f * mechLegMoveScl, 3f); + legOffset.trns(mech.baseRotation(), 0f, Mathf.lerp(ft * 0.18f * sway, 0f, unit.elevation)); unit.trns(legOffset.x, legOffset.y); } @@ -300,7 +317,7 @@ public class UnitType extends UnlockableContent{ drawShield(unit); } - if(legs != null){ + if(mech != null){ unit.trns(-legOffset.x, -legOffset.y); } @@ -478,7 +495,7 @@ public class UnitType extends UnlockableContent{ } public void drawLegs(T unit){ - //Draw.z(Layer.groundUnit - 0.02f); + applyColor(unit); Leg[] legs = unit.legs(); @@ -494,8 +511,9 @@ public class UnitType extends UnlockableContent{ Draw.rect(baseRegion, unit.x, unit.y, rotation); } - //TODO figure out layering - for(int i = 0; i < legs.length; i++){ + //legs are drawn front first + for(int j = legs.length - 1; j >= 0; j--){ + int i = (j % 2 == 0 ? j/2 : legs.length - 1 - j/2); Leg leg = legs[i]; float angle = unit.legAngle(rotation, i); boolean flip = i >= legs.length/2f; @@ -539,7 +557,7 @@ public class UnitType extends UnlockableContent{ Draw.mixcol(Color.white, unit.hitTime); float e = unit.elevation; - float sin = Mathf.lerp(Mathf.sin(unit.walkTime(), 3f, 1f), 0f, e); + float sin = Mathf.lerp(Mathf.sin(unit.walkTime(), 3f * mechLegMoveScl, 1f), 0f, e); float ft = sin*(2.5f + (unit.hitSize-8f)/2f); float boostTrns = e * 2f; @@ -570,6 +588,7 @@ public class UnitType extends UnlockableContent{ } public void applyColor(Unit unit){ + Draw.color(); Draw.mixcol(Color.white, unit.hitTime); if(unit.drownTime > 0 && unit.floorOn().isDeep()){ Draw.mixcol(unit.floorOn().mapColor, unit.drownTime * 0.8f); diff --git a/core/src/mindustry/ui/Bar.java b/core/src/mindustry/ui/Bar.java index 5cc23d27ca..7c54dac2da 100644 --- a/core/src/mindustry/ui/Bar.java +++ b/core/src/mindustry/ui/Bar.java @@ -63,7 +63,7 @@ public class Bar extends Element{ if(fraction == null) return; float computed = Mathf.clamp(fraction.get()); - if(!Mathf.equal(lastValue, computed)){ + if(lastValue > computed){ blink = 1f; lastValue = computed; } diff --git a/core/src/mindustry/ui/CoreItemsDisplay.java b/core/src/mindustry/ui/CoreItemsDisplay.java index 13f91d6108..140723bb0b 100644 --- a/core/src/mindustry/ui/CoreItemsDisplay.java +++ b/core/src/mindustry/ui/CoreItemsDisplay.java @@ -11,6 +11,7 @@ import static mindustry.Vars.*; public class CoreItemsDisplay extends Table{ private final ObjectSet usedItems = new ObjectSet<>(); + private CoreBuild core; public CoreItemsDisplay(){ rebuild(); @@ -26,7 +27,7 @@ public class CoreItemsDisplay extends Table{ margin(4); update(() -> { - CoreBuild core = Vars.player.team().core(); + core = Vars.player.team().core(); if(content.items().contains(item -> core != null && core.items.get(item) > 0 && usedItems.add(item))){ rebuild(); @@ -35,11 +36,10 @@ public class CoreItemsDisplay extends Table{ int i = 0; - CoreBuild core = Vars.player.team().core(); for(Item item : content.items()){ if(usedItems.contains(item)){ image(item.icon(Cicon.small)).padRight(3); - label(() -> core == null ? "0" : UI.formatAmount(core.items.get(item))).padRight(3); + label(() -> core == null ? "0" : UI.formatAmount(core.items.get(item))).padRight(3).left(); if(++i % 4 == 0){ row(); diff --git a/core/src/mindustry/ui/ItemImage.java b/core/src/mindustry/ui/ItemImage.java index aed8997f5f..6cb705185d 100644 --- a/core/src/mindustry/ui/ItemImage.java +++ b/core/src/mindustry/ui/ItemImage.java @@ -10,8 +10,12 @@ public class ItemImage extends Stack{ public ItemImage(TextureRegion region, int amount){ Table t = new Table().left().bottom(); t.add(amount + "").name("item-label"); + t.pack(); - add(new Image(region)); + add(new Table(o -> { + o.left(); + o.add(new Image(region)).size(32f); + })); add(t); } diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index fb2291218f..54be2f89ec 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -143,6 +143,7 @@ public class CustomRulesDialog extends BaseDialog{ main.button("@configure", () -> loadoutDialog.show(Blocks.coreShard.itemCapacity, rules.loadout, + i -> true, () -> rules.loadout.clear().add(new ItemStack(Items.copper, 100)), () -> {}, () -> {} )).left().width(300f); @@ -162,7 +163,8 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200)); title("@rules.title.environment"); - number("@rules.solarpowermultiplier", f -> rules.solarPowerMultiplier = f, () -> rules.solarPowerMultiplier); + check("@rules.explosions", b -> rules.damageExplosions = b, () -> rules.damageExplosions); + check("@rules.fire", b -> rules.fire = b, () -> rules.fire); check("@rules.lighting", b -> rules.lighting = b, () -> rules.lighting); main.button(b -> { diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index 2506da87d9..8b4f378902 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -1,12 +1,13 @@ package mindustry.ui.dialogs; import arc.*; -import arc.input.*; -import arc.struct.*; import arc.graphics.*; +import arc.input.*; +import arc.math.*; import arc.scene.event.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; import mindustry.*; import mindustry.ctype.*; @@ -14,7 +15,7 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.ui.*; -import static mindustry.Vars.ui; +import static mindustry.Vars.*; public class DatabaseDialog extends BaseDialog{ @@ -49,8 +50,7 @@ public class DatabaseDialog extends BaseDialog{ table.table(list -> { list.left(); - int maxWidth = Core.graphics.isPortrait() ? 7 : 13; - + int cols = Mathf.clamp((Core.graphics.getWidth() - 30) / (32 + 10), 1, 18); int count = 0; for(int i = 0; i < array.size; i++){ @@ -77,7 +77,7 @@ public class DatabaseDialog extends BaseDialog{ image.addListener(new Tooltip(t -> t.background(Tex.button).add(unlock.localizedName))); } - if((++count) % maxWidth == 0){ + if((++count) % cols == 0){ list.row(); } } diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 92776ab729..b59f32e995 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -262,14 +262,10 @@ public class JoinDialog extends BaseDialog{ cont.clear(); cont.table(t -> { t.add("@name").padRight(10); - if(!steam){ - t.field(Core.settings.getString("name"), text -> { - player.name(text); - Core.settings.put("name", text); - }).grow().pad(8).addInputDialog(maxNameLength); - }else{ - t.add(player.name).update(l -> l.setColor(player.color())).grow().pad(8); - } + t.field(Core.settings.getString("name"), text -> { + player.name(text); + Core.settings.put("name", text); + }).grow().pad(8).addInputDialog(maxNameLength); ImageButton button = t.button(Tex.whiteui, Styles.clearFulli, 40, () -> { new PaletteDialog().show(color -> { diff --git a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java index aacfb4a2dd..9634777ab9 100644 --- a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java @@ -5,6 +5,7 @@ import arc.func.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; +import mindustry.ctype.*; import mindustry.game.*; import mindustry.gen.*; import mindustry.type.*; @@ -71,7 +72,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ Runnable rebuildItems = () -> rebuild.get(items); buttons.button("@resources", Icon.terrain, () -> { - loadout.show(core.itemCapacity, stacks, stacks::clear, () -> {}, () -> { + loadout.show(core.itemCapacity, stacks, UnlockableContent::unlocked, stacks::clear, () -> {}, () -> { universe.updateLaunchResources(stacks); update.run(); rebuildItems.run(); diff --git a/core/src/mindustry/ui/dialogs/LoadoutDialog.java b/core/src/mindustry/ui/dialogs/LoadoutDialog.java index e2543903ed..eb0182ee2a 100644 --- a/core/src/mindustry/ui/dialogs/LoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadoutDialog.java @@ -1,9 +1,10 @@ package mindustry.ui.dialogs; import arc.*; -import arc.struct.*; +import arc.func.*; import arc.input.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; import mindustry.gen.*; import mindustry.type.*; @@ -17,6 +18,7 @@ public class LoadoutDialog extends BaseDialog{ private Runnable updater; private Seq stacks = new Seq<>(); private Seq originalStacks = new Seq<>(); + private Boolf validator = i -> true; private Table items; private int capacity; @@ -51,13 +53,14 @@ public class LoadoutDialog extends BaseDialog{ }).size(210f, 64f); } - public void show(int capacity, Seq stacks, Runnable reseter, Runnable updater, Runnable hider){ + public void show(int capacity, Seq stacks, Boolf validator, Runnable reseter, Runnable updater, Runnable hider){ this.originalStacks = stacks; - reseed(); + this.validator = validator; this.resetter = reseter; this.updater = updater; this.capacity = capacity; this.hider = hider; + reseed(); show(); } @@ -106,7 +109,7 @@ public class LoadoutDialog extends BaseDialog{ private void reseed(){ this.stacks = originalStacks.map(ItemStack::copy); - this.stacks.addAll(content.items().select(i -> !stacks.contains(stack -> stack.item == i)).map(i -> new ItemStack(i, 0))); + this.stacks.addAll(content.items().select(i -> validator.get(i) && !stacks.contains(stack -> stack.item == i)).map(i -> new ItemStack(i, 0))); this.stacks.sort(Structs.comparingInt(s -> s.item.id)); } diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index f674fa5f86..4695091886 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -162,11 +162,17 @@ public class ModsDialog extends BaseDialog{ }}).size(h - 8f).padTop(-8f).padLeft(-8f).padRight(8f); title.table(text -> { - text.add("" + mod.meta.displayName() + "\n[lightgray]v" + mod.meta.version + (mod.enabled() ? "" : "\n" + Core.bundle.get("mod.disabled") + "")) + boolean hideDisabled = !mod.isSupported() || mod.hasUnmetDependencies() || mod.hasContentErrors(); + + text.add("" + mod.meta.displayName() + "\n[lightgray]v" + mod.meta.version + (mod.enabled() || hideDisabled ? "" : "\n" + Core.bundle.get("mod.disabled") + "")) .wrap().top().width(300f).growX().left(); text.row(); - if(!mod.isSupported()){ + + if(mod.isOutdated()){ + text.labelWrap("@mod.outdated").growX(); + text.row(); + }else if(!mod.isSupported()){ text.labelWrap(Core.bundle.format("mod.requiresversion", mod.meta.minGameVersion)).growX(); text.row(); }else if(mod.hasUnmetDependencies()){ diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index 0d5f873562..3b0f56906c 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -88,7 +88,7 @@ public class PausedDialog extends BaseDialog{ cont.buttonRow("@launchcore", Icon.up, () -> { hide(); ui.planet.show(state.getSector(), player.team().core()); - }).disabled(b -> player.team().core() == null || !player.team().core().items.has(player.team().core().block.requirements)); + }).disabled(b -> player.team().core() == null); cont.row(); diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 7d03210041..3462891f6a 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -94,6 +94,8 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ } public void show(Sector sector, CoreBuild launcher){ + if(launcher == null) return; + this.launcher = launcher; selected = null; hovered = null; @@ -127,10 +129,11 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ //draw all sector stuff for(Sector sec : planet.sectors){ + if(selectAlpha > 0.01f){ if(canLaunch(sec) || sec.unlocked()){ if(sec.baseCoverage > 0){ - planets.fill(sec, Tmp.c1.set(Team.crux.color).a(0.1f * sec.baseCoverage * selectAlpha), -0.002f); + planets.fill(sec, Tmp.c1.set(Team.crux.color).a(0.5f * sec.baseCoverage * selectAlpha), -0.002f); } Color color = @@ -290,7 +293,6 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ selectAlpha = Mathf.lerpDelta(selectAlpha, Mathf.num(planets.zoom < 1.9f), 0.1f); } - //TODO localize void updateSelected(){ Sector sector = selected; @@ -305,16 +307,21 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ stable.add("[accent]" + (sector.preset == null ? sector.id : sector.preset.localizedName)).row(); stable.image().color(Pal.accent).fillX().height(3f).pad(3f).row(); - stable.add(sector.save != null ? sector.save.getPlayTime() : "[lightgray]Unexplored").row(); + stable.add(sector.save != null ? sector.save.getPlayTime() : "@sectors.unexplored").row(); + if(sector.hasWaves() || sector.hasEnemyBase()){ + stable.add("[accent]Difficulty: " + (int)(sector.baseCoverage * 10)).row(); + } if(sector.hasBase() && sector.hasWaves()){ + //TODO localize when finalized + //these mechanics are likely to change and as such are not added to the bundle stable.add("[scarlet]Under attack!"); stable.row(); stable.add("[accent]" + Mathf.ceil(sectorDestructionTurns - (sector.getSecondsPassed() * 60) / turnDuration) + " turn(s)\nuntil destruction"); stable.row(); } - stable.add("Resources:").row(); + stable.add("@sectors.resources").row(); stable.table(t -> { t.left(); int idx = 0; @@ -327,7 +334,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ //production if(sector.hasBase() && sector.save.meta.hasProduction){ - stable.add("Production:").row(); + stable.add("@sectors.production").row(); stable.table(t -> { t.left(); @@ -335,7 +342,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ int total = (int)(stat.mean * 60); if(total > 1){ t.image(item.icon(Cicon.small)).padRight(3); - t.add(UI.formatAmount(total) + " /min").color(Color.lightGray); + t.add(UI.formatAmount(total) + " " + Core.bundle.get("unit.perminute")).color(Color.lightGray); t.row(); } }); @@ -344,7 +351,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ //stored resources if(sector.hasBase() && sector.save.meta.secinfo.coreItems.size > 0){ - stable.add("Stored:").row(); + stable.add("@sectors.stored").row(); stable.table(t -> { t.left(); @@ -367,7 +374,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ stable.row(); if((sector.hasBase() && mode == look) || canLaunch(sector) || (sector.preset != null && sector.preset.alwaysUnlocked)){ - stable.button(sector.hasBase() ? "Resume" : "Launch", Styles.transt, () -> { + stable.button(sector.hasBase() ? "@sectors.resume" : "@sectors.launch", Styles.transt, () -> { boolean shouldHide = true; diff --git a/core/src/mindustry/ui/dialogs/ResearchDialog.java b/core/src/mindustry/ui/dialogs/ResearchDialog.java index 8fc2c387c7..d2bd13c101 100644 --- a/core/src/mindustry/ui/dialogs/ResearchDialog.java +++ b/core/src/mindustry/ui/dialogs/ResearchDialog.java @@ -134,7 +134,9 @@ public class ResearchDialog extends BaseDialog{ } }); - view.addListener(new ElementGestureListener(){ + touchable = Touchable.enabled; + + addCaptureListener(new ElementGestureListener(){ @Override public void zoom(InputEvent event, float initialDistance, float distance){ if(view.lastZoom < 0){ diff --git a/core/src/mindustry/ui/fragments/BlockConfigFragment.java b/core/src/mindustry/ui/fragments/BlockConfigFragment.java index 6719add761..853c10025e 100644 --- a/core/src/mindustry/ui/fragments/BlockConfigFragment.java +++ b/core/src/mindustry/ui/fragments/BlockConfigFragment.java @@ -61,7 +61,7 @@ public class BlockConfigFragment extends Fragment{ } table.setOrigin(Align.center); - if(configTile == null || configTile.block() == Blocks.air || !configTile.isValid()){ + if(configTile == null || configTile.block == Blocks.air || !configTile.isValid()){ hideConfig(); }else{ configTile.updateTableAlign(table); diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java index 73ecb3ffe9..515a7ef05c 100644 --- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java @@ -44,10 +44,12 @@ public class BlockInventoryFragment extends Fragment{ @Remote(called = Loc.server, targets = Loc.both, forward = true) public static void requestItem(Player player, Building tile, Item item, int amount){ - if(player == null || tile == null || !tile.interactable(player.team())) return; - amount = Mathf.clamp(amount, 0, player.unit().itemCapacity()); + if(player == null || tile == null || !tile.interactable(player.team()) || !player.within(tile, buildingRange)) return; + amount = Math.min(player.unit().maxAccepted(item), amount); int fa = amount; + if(amount == 0) return; + if(net.server() && (!Units.canInteract(player, tile) || !netServer.admins.allowAction(player, ActionType.withdrawItem, tile.tile(), action -> { action.item = item; @@ -77,7 +79,7 @@ public class BlockInventoryFragment extends Fragment{ return; } this.tile = t; - if(tile == null || !tile.block().isAccessible() || tile.items.total() == 0) + if(tile == null || !tile.block.isAccessible() || tile.items.total() == 0) return; rebuild(true); } @@ -106,7 +108,7 @@ public class BlockInventoryFragment extends Fragment{ table.touchable = Touchable.enabled; table.update(() -> { - if(state.isMenu() || tile == null || !tile.isValid() || !tile.block().isAccessible() || emptyTime >= holdShrink){ + if(state.isMenu() || tile == null || !tile.isValid() || !tile.block.isAccessible() || emptyTime >= holdShrink){ hide(); }else{ if(tile.items.total() == 0){ @@ -129,7 +131,7 @@ public class BlockInventoryFragment extends Fragment{ } updateTablePosition(); - if(tile.block().hasItems){ + if(tile.block.hasItems){ boolean dirty = false; if(shrinkHoldTimes.length != content.items().size) shrinkHoldTimes = new float[content.items().size]; @@ -155,7 +157,7 @@ public class BlockInventoryFragment extends Fragment{ table.margin(4f); table.defaults().size(8 * 5).pad(4f); - if(tile.block().hasItems){ + if(tile.block.hasItems){ for(int i = 0; i < content.items().size; i++){ Item item = content.item(i); @@ -163,7 +165,7 @@ public class BlockInventoryFragment extends Fragment{ container.add(i); - Boolp canPick = () -> player.unit().acceptsItem(item) && !state.isPaused(); + Boolp canPick = () -> player.unit().acceptsItem(item) && !state.isPaused() && player.within(tile, itemTransferRange); HandCursorListener l = new HandCursorListener(); l.setEnabled(canPick); @@ -231,7 +233,7 @@ public class BlockInventoryFragment extends Fragment{ } private void updateTablePosition(){ - Vec2 v = Core.input.mouseScreen(tile.x + tile.block().size * tilesize / 2f, tile.y + tile.block().size * tilesize / 2f); + Vec2 v = Core.input.mouseScreen(tile.x + tile.block.size * tilesize / 2f, tile.y + tile.block.size * tilesize / 2f); table.pack(); table.setPosition(v.x, v.y, Align.topLeft); } diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index 5102b2ebf4..a2adb4a41d 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -219,7 +219,7 @@ public class HudFragment extends Fragment{ //core items parent.fill(t -> { t.top().add(coreItems); - t.visible(() -> Core.settings.getBool("coreitems") && !mobile && !state.isPaused()); + t.visible(() -> Core.settings.getBool("coreitems") && !mobile && !state.isPaused() && shown); }); //spawner warning diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index 572fa1e628..66a96e0ffe 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -23,7 +23,7 @@ import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; import mindustry.world.blocks.*; -import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.blocks.ConstructBlock.*; import static mindustry.Vars.*; @@ -95,7 +95,7 @@ public class PlacementFragment extends Fragment{ if(Core.input.keyDown(Binding.pick) && player.isBuilder()){ //mouse eyedropper select Building tile = world.buildWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y); - Block tryRecipe = tile == null ? null : tile.block() instanceof BuildBlock ? ((BuildEntity)tile).cblock : tile.block; + Block tryRecipe = tile == null ? null : tile.block instanceof ConstructBlock ? ((ConstructBuild)tile).cblock : tile.block; Object tryConfig = tile == null ? null : tile.config(); for(BuildPlan req : player.builder().plans()){ diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 9283a41623..67d3b7d67a 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -56,6 +56,8 @@ public class Block extends UnlockableContent{ public final BlockBars bars = new BlockBars(); public final Consumers consumes = new Consumers(); + /** whether to display flow rate */ + public boolean displayFlow = true; /** whether this block is visible in the editor */ public boolean inEditor = true; /** the last configuration value applied to this block. */ @@ -193,8 +195,10 @@ public class Block extends UnlockableContent{ public float buildCostMultiplier = 1f; /** Whether this block has instant transfer.*/ public boolean instantTransfer = false; + /** Whether you can rotate this block with Keybind rotateplaced + Scroll Wheel. */ + public boolean quickRotate = true; - protected Prov entityType = null; //initialized later + public Prov buildType = null; //initialized later public ObjectMap, Cons2> configurations = new ObjectMap<>(); protected TextureRegion[] generatedIcons; @@ -215,7 +219,7 @@ public class Block extends UnlockableContent{ public Block(String name){ super(name); - initEntity(); + initBuilding(); } public void drawBase(Tile tile){ @@ -372,6 +376,13 @@ public class Block extends UnlockableContent{ return this; } + public Object nextConfig(){ + if(saveConfig && lastConfig != null){ + return lastConfig; + } + return null; + } + public void drawRequest(BuildPlan req, Eachable list, boolean valid){ Draw.reset(); Draw.mixcol(!valid ? Pal.breakInvalid : Color.white, (!valid ? 0.4f : 0.24f) + Mathf.absin(Time.globalTime(), 6f, 0.28f)); @@ -387,7 +398,7 @@ public class Block extends UnlockableContent{ TextureRegion reg = getRequestRegion(req, list); Draw.rect(reg, req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90); - if(req.hasConfig){ + if(req.config != null){ drawRequestConfig(req, list); } } @@ -490,8 +501,8 @@ public class Block extends UnlockableContent{ return destructible || update; } - public final Building newEntity(){ - return entityType.get(); + public final Building newBuilding(){ + return buildType.get(); } public Rect bounds(int x, int y, Rect rect){ @@ -567,7 +578,7 @@ public class Block extends UnlockableContent{ Arrays.sort(requirements, Structs.comparingInt(i -> i.item.id)); } - protected void initEntity(){ + protected void initBuilding(){ //attempt to find the first declared class and use it as the entity type try{ Class current = getClass(); @@ -576,13 +587,13 @@ public class Block extends UnlockableContent{ current = current.getSuperclass(); } - while(entityType == null && Block.class.isAssignableFrom(current)){ + while(buildType == null && Block.class.isAssignableFrom(current)){ //first class that is subclass of Building Class type = Structs.find(current.getDeclaredClasses(), t -> Building.class.isAssignableFrom(t) && !t.isInterface()); if(type != null){ //these are inner classes, so they have an implicit parameter generated Constructor cons = (Constructor)type.getDeclaredConstructor(type.getDeclaringClass()); - entityType = () -> { + buildType = () -> { try{ return cons.newInstance(this); }catch(Exception e){ @@ -598,9 +609,9 @@ public class Block extends UnlockableContent{ }catch(Throwable ignored){ } - if(entityType == null){ + if(buildType == null){ //assign default value - entityType = Building::create; + buildType = Building::create; } } diff --git a/core/src/mindustry/world/Build.java b/core/src/mindustry/world/Build.java index 23bf31c47a..39c4f8024b 100644 --- a/core/src/mindustry/world/Build.java +++ b/core/src/mindustry/world/Build.java @@ -10,7 +10,7 @@ import mindustry.entities.*; import mindustry.game.EventType.*; import mindustry.game.*; import mindustry.world.blocks.*; -import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.blocks.ConstructBlock.*; import static mindustry.Vars.*; @@ -32,10 +32,10 @@ public class Build{ int rotation = tile.build != null ? tile.build.rotation : 0; Block previous = tile.block(); - Block sub = BuildBlock.get(previous.size); + Block sub = ConstructBlock.get(previous.size); tile.setBlock(sub, team, rotation); - tile.bc().setDeconstruct(previous); + tile.bc().setDeconstruct(previous); tile.build.health(tile.build.maxHealth() * prevPercent); Core.app.post(() -> Events.fire(new BlockBuildBeginEvent(tile, team, true))); @@ -54,12 +54,12 @@ public class Build{ if(tile == null) return; Block previous = tile.block(); - Block sub = BuildBlock.get(result.size); + Block sub = ConstructBlock.get(result.size); result.beforePlaceBegan(tile, previous); tile.setBlock(sub, team, rotation); - tile.bc().setConstruct(previous, result); + tile.bc().setConstruct(previous, result); result.placeBegan(tile, previous); @@ -91,7 +91,7 @@ public class Build{ } if(type.isMultiblock()){ - if((type.canReplace(tile.block()) || (tile.block instanceof BuildBlock && tile.bc().cblock == type)) && + if((type.canReplace(tile.block()) || (tile.block instanceof ConstructBlock && tile.bc().cblock == type)) && type.canPlaceOn(tile, team) && tile.interactable(team)){ //if the block can be replaced but the sizes differ, check all the spaces around the block to make sure it can fit @@ -145,7 +145,7 @@ public class Build{ && (!tile.floor().isDeep() || type.floating || type.requiresWater || type.placeableLiquid) && tile.floor().placeableOn && (!type.requiresWater || tile.floor().liquidDrop == Liquids.water) - && (((type.canReplace(tile.block()) || (tile.block instanceof BuildBlock && tile.bc().cblock == type)) + && (((type.canReplace(tile.block()) || (tile.block instanceof ConstructBlock && tile.bc().cblock == type)) && !(type == tile.block() && (tile.build != null && rotation == tile.build.rotation) && type.rotate)) || tile.block().alwaysReplace || tile.block() == Blocks.air) && tile.block().isMultiblock() == type.isMultiblock() && type.canPlaceOn(tile, team); } diff --git a/core/src/mindustry/world/Edges.java b/core/src/mindustry/world/Edges.java index 4b45ca3a32..097c016541 100644 --- a/core/src/mindustry/world/Edges.java +++ b/core/src/mindustry/world/Edges.java @@ -51,7 +51,7 @@ public class Edges{ } public static Tile getFacingEdge(Building tile, Building other){ - return getFacingEdge(tile.block(), tile.tileX(), tile.tileY(), other.tile()); + return getFacingEdge(tile.block, tile.tileX(), tile.tileY(), other.tile()); } public static Tile getFacingEdge(Tile tile, Tile other){ diff --git a/core/src/mindustry/world/Tile.java b/core/src/mindustry/world/Tile.java index a464d9174b..ba303750e1 100644 --- a/core/src/mindustry/world/Tile.java +++ b/core/src/mindustry/world/Tile.java @@ -23,8 +23,6 @@ public class Tile implements Position, QuadTreeObject, Displayable{ /** Extra data for very specific blocks. */ public byte data; - /** Tile traversal cost. */ - public short cost = 1; /** Tile entity, usually null. */ public @Nullable Building build; public short x, y; @@ -47,7 +45,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{ this.block = wall; //update entity and create it if needed - changeEntity(Team.derelict, wall::newEntity, 0); + changeEntity(Team.derelict, wall::newBuilding, 0); changed(); } @@ -176,7 +174,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{ } public void setBlock(@NonNull Block type, Team team, int rotation){ - setBlock(type, team, rotation, type::newEntity); + setBlock(type, team, rotation, type::newBuilding); } public void setBlock(@NonNull Block type, Team team, int rotation, Prov entityprov){ @@ -328,7 +326,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{ setOverlay(content.block(ore)); } - public void setOverlay(Block block){ + public void setOverlay(@NonNull Block block){ this.overlay = (Floor)block; recache(); @@ -451,44 +449,6 @@ public class Tile implements Position, QuadTreeObject, Displayable{ return block.solid && block.fillsTile && !block.synthetic() ? data : 0; } - public void updateOcclusion(){ - cost = 1; - boolean occluded = false; - - //check for occlusion - for(int i = 0; i < 8; i++){ - Point2 point = Geometry.d8[i]; - Tile tile = world.tile(x + point.x, y + point.y); - if(tile != null && tile.floor.isLiquid){ - cost += 4; - } - if(tile != null && tile.solid()){ - occluded = true; - break; - } - } - - if(occluded){ - cost += 2; - } - - if(block.synthetic() && solid()){ - cost += Mathf.clamp(block.health / 6f, 0, 1000); - } - - if(floor.isLiquid){ - cost += 10; - } - - if(floor.drownTime > 0){ - cost += 70; - } - - if(cost < 0){ - cost = Byte.MAX_VALUE; - } - } - protected void preChanged(){ if(build != null){ //only call removed() for the center block - this only gets called once. @@ -496,7 +456,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{ build.removeFromProximity(); //remove this tile's dangling entities - if(build.block().isMultiblock()){ + if(build.block.isMultiblock()){ int cx = build.tileX(), cy = build.tileY(); int size = build.block.size; int offsetx = -(size - 1) / 2; @@ -511,8 +471,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{ other.block = Blocks.air; //manually call changed event - other.updateOcclusion(); - world.notifyChanged(other); + other.fireChanged(); } } } @@ -562,16 +521,14 @@ public class Tile implements Position, QuadTreeObject, Displayable{ //since the entity won't update proximity for us, update proximity for all nearby tiles manually for(Point2 p : Geometry.d4){ Building tile = world.build(x + p.x, y + p.y); - if(tile != null && !tile.tile().changing){ + if(tile != null && !tile.tile.changing){ tile.onProximityUpdate(); } } } } - updateOcclusion(); - - world.notifyChanged(this); + fireChanged(); //recache when static block is added if(block.isStatic()){ @@ -579,6 +536,10 @@ public class Tile implements Position, QuadTreeObject, Displayable{ } } + protected void fireChanged(){ + world.notifyChanged(this); + } + @Override public void display(Table table){ Block toDisplay = overlay.itemDrop != null ? overlay : floor; diff --git a/core/src/mindustry/world/blocks/Autotiler.java b/core/src/mindustry/world/blocks/Autotiler.java index af3a9ac2cc..76685bec2e 100644 --- a/core/src/mindustry/world/blocks/Autotiler.java +++ b/core/src/mindustry/world/blocks/Autotiler.java @@ -104,7 +104,7 @@ public interface Autotiler{ for(int i = 0; i < 4; i++){ int realDir = Mathf.mod(rotation - i, 4); - if(blends(tile, rotation, directional, i, world) && (tile != null && tile.getNearbyEntity(realDir) != null && !tile.getNearbyEntity(realDir).block().squareSprite)){ + if(blends(tile, rotation, directional, i, world) && (tile != null && tile.getNearbyEntity(realDir) != null && !tile.getNearbyEntity(realDir).block.squareSprite)){ blendresult[4] |= (1 << i); } } @@ -147,7 +147,7 @@ public interface Autotiler{ default boolean blends(Tile tile, int rotation, int direction){ Building other = tile.getNearbyEntity(Mathf.mod(rotation - direction, 4)); - return other != null && other.team == tile.team() && blends(tile, rotation, other.tileX(), other.tileY(), other.rotation, other.block()); + return other != null && other.team == tile.team() && blends(tile, rotation, other.tileX(), other.tileY(), other.rotation, other.block); } default boolean blendsArmored(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock){ diff --git a/core/src/mindustry/world/blocks/BuildBlock.java b/core/src/mindustry/world/blocks/ConstructBlock.java similarity index 87% rename from core/src/mindustry/world/blocks/BuildBlock.java rename to core/src/mindustry/world/blocks/ConstructBlock.java index e16f01aad2..95674dc86b 100644 --- a/core/src/mindustry/world/blocks/BuildBlock.java +++ b/core/src/mindustry/world/blocks/ConstructBlock.java @@ -23,51 +23,61 @@ import mindustry.world.modules.*; import static mindustry.Vars.*; -public class BuildBlock extends Block{ +/** A block in the process of construction. */ +public class ConstructBlock extends Block{ public static final int maxSize = 16; - private static final BuildBlock[] buildBlocks = new BuildBlock[maxSize]; + private static final ConstructBlock[] consBlocks = new ConstructBlock[maxSize]; private static long lastTime = 0; private static int pitchSeq = 0; private static long lastPlayed; - public BuildBlock(int size){ + public ConstructBlock(int size){ super("build" + size); this.size = size; update = true; health = 20; consumesTap = true; solidifes = true; - buildBlocks[size - 1] = this; + consBlocks[size - 1] = this; } /** Returns a BuildBlock by size. */ - public static BuildBlock get(int size){ - if(size > maxSize) throw new IllegalArgumentException("No. Don't place BuildBlocks of size greater than " + maxSize); - return buildBlocks[size - 1]; + public static ConstructBlock get(int size){ + if(size > maxSize) throw new IllegalArgumentException("No. Don't place ConstructBlock of size greater than " + maxSize); + return consBlocks[size - 1]; } @Remote(called = Loc.server) - public static void deconstructFinish(Tile tile, Block block, int builderID){ + public static void deconstructFinish(Tile tile, Block block, Unit builder){ Team team = tile.team(); Fx.breakBlock.at(tile.drawx(), tile.drawy(), block.size); - Events.fire(new BlockBuildEndEvent(tile, Groups.unit.getByID(builderID), team, true)); + Events.fire(new BlockBuildEndEvent(tile, builder, team, true, null)); tile.remove(); if(shouldPlay()) Sounds.breaks.at(tile, calcPitch(false)); } @Remote(called = Loc.server) - public static void constructFinish(Tile tile, Block block, int builderID, byte rotation, Team team, boolean skipConfig){ + public static void constructFinish(Tile tile, Block block, Unit builder, byte rotation, Team team, Object config){ if(tile == null) return; + float healthf = tile.build == null ? 1f : tile.build.healthf(); + tile.setBlock(block, team, rotation); - tile.build.health = block.health * healthf; - //last builder was this local client player, call placed() - if(!headless && builderID == player.unit().id()){ - if(!skipConfig){ - tile.build.playerPlaced(); + + if(tile.build != null){ + tile.build.health = block.health * healthf; + + if(config != null){ + tile.build.configured(builder, config); } } + + //last builder was this local client player, call placed() + if(tile.build != null && !headless && builder == player.unit()){ + tile.build.playerPlaced(config); + } + Fx.placeBlock.at(tile.drawx(), tile.drawy(), block.size); } @@ -95,11 +105,11 @@ public class BuildBlock extends Block{ } } - public static void constructed(Tile tile, Block block, int builderID, byte rotation, Team team, boolean skipConfig){ - Call.constructFinish(tile, block, builderID, rotation, team, skipConfig); + public static void constructed(Tile tile, Block block, Unit builder, byte rotation, Team team, Object config){ + Call.constructFinish(tile, block, builder, rotation, team, config); tile.build.placed(); - Events.fire(new BlockBuildEndEvent(tile, Groups.unit.getByID(builderID), team, false)); + Events.fire(new BlockBuildEndEvent(tile, builder, team, false, config)); if(shouldPlay()) Sounds.place.at(tile, calcPitch(true)); } @@ -108,7 +118,7 @@ public class BuildBlock extends Block{ return true; } - public class BuildEntity extends Building{ + public class ConstructBuild extends Building{ /** * The recipe of the block that is being constructed. * If there is no recipe for this block, as is the case with rocks, 'previous' is used. @@ -122,7 +132,7 @@ public class BuildBlock extends Block{ * If a non-recipe block is being deconstructed, this is the block that is being deconstructed. */ public Block previous; - public int builderID = -1; + public Object lastConfig; private float[] accumulator; private float[] totalAccumulator; @@ -154,7 +164,7 @@ public class BuildBlock extends Block{ if(control.input.buildWasAutoPaused && !control.input.isBuilding && player.isBuilder()){ control.input.isBuilding = true; } - player.builder().addBuild(new BuildPlan(tile.x, tile.y, rotation, cblock), false); + player.builder().addBuild(new BuildPlan(tile.x, tile.y, rotation, cblock, lastConfig), false); } } @@ -190,12 +200,14 @@ public class BuildBlock extends Block{ }); } - public boolean construct(Unit builder, @Nullable Building core, float amount, boolean configured){ + public void construct(Unit builder, @Nullable Building core, float amount, Object config){ if(cblock == null){ kill(); - return false; + return; } + lastConfig = config; + if(cblock.requirements.length != accumulator.length || totalAccumulator.length != cblock.requirements.length){ setConstruct(previous, cblock); } @@ -211,16 +223,13 @@ public class BuildBlock extends Block{ maxProgress = core == null || team.rules().infiniteResources ? maxProgress : checkRequired(core.items, maxProgress, true); progress = Mathf.clamp(progress + maxProgress); - builderID = builder.id; if(progress >= 1f || state.rules.infiniteResources){ - constructed(tile, cblock, builderID, (byte)rotation, builder.team, configured); - return true; + constructed(tile, cblock, builder, (byte)rotation, builder.team, config); } - return false; } - public void deconstruct(Unitc builder, @Nullable Building core, float amount){ + public void deconstruct(Unit builder, @Nullable Building core, float amount){ float deconstructMultiplier = state.rules.deconstructRefundMultiplier; if(cblock != null){ @@ -253,10 +262,8 @@ public class BuildBlock extends Block{ progress = Mathf.clamp(progress - amount); - builderID = builder.id(); - if(progress <= 0 || state.rules.infiniteResources){ - Call.deconstructFinish(tile, this.cblock == null ? previous : this.cblock, builderID); + Call.deconstructFinish(tile, this.cblock == null ? previous : this.cblock, builder); } } diff --git a/core/src/mindustry/world/blocks/defense/Door.java b/core/src/mindustry/world/blocks/defense/Door.java index 7186152f36..c745f3a63f 100644 --- a/core/src/mindustry/world/blocks/defense/Door.java +++ b/core/src/mindustry/world/blocks/defense/Door.java @@ -1,5 +1,6 @@ package mindustry.world.blocks.defense; +import arc.audio.*; import arc.Graphics.*; import arc.Graphics.Cursor.*; import arc.graphics.g2d.*; @@ -23,6 +24,7 @@ public class Door extends Wall{ public final int timerToggle = timers++; public Effect openfx = Fx.dooropen; public Effect closefx = Fx.doorclose; + public Sound doorSound = Sounds.door; public @Load("@-open") TextureRegion openRegion; public Door(String name){ @@ -32,7 +34,7 @@ public class Door extends Wall{ consumesTap = true; config(Boolean.class, (DoorBuild base, Boolean open) -> { - Sounds.door.at(base); + doorSound.at(base); for(DoorBuild entity : base.chained){ //skip doors with things in them diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index d748a947b5..f401aff34b 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -31,7 +31,7 @@ public class ForceProjector extends Block{ public float basePowerDraw = 0.2f; public @Load("@-top") TextureRegion topRegion; - static ForceProjectorEntity paramEntity; + static ForceBuild paramEntity; static final Cons shieldConsumer = trait -> { if(trait.team() != paramEntity.team && Intersector.isInsideHexagon(paramEntity.x, paramEntity.y, paramEntity.realRadius() * 2f, trait.x(), trait.y())){ trait.absorb(); @@ -48,8 +48,6 @@ public class ForceProjector extends Block{ hasPower = true; hasLiquids = true; hasItems = true; - //TODO this isn't good enough, shields are still clipped - expanded = true; consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.1f)).boost().update(false); } @@ -79,13 +77,25 @@ public class ForceProjector extends Block{ Draw.color(); } - public class ForceProjectorEntity extends Building{ - boolean broken = true; - float buildup = 0f; - float radscl = 0f; - float hit; - float warmup; - float phaseHeat; + public class ForceBuild extends Building{ + public boolean broken = true; + public float buildup, radscl, hit, warmup, phaseHeat; + public ForceDraw drawer; + + @Override + public void created(){ + super.created(); + drawer = ForceDraw.create(); + drawer.build = this; + drawer.set(x, y); + drawer.add(); + } + + @Override + public void onRemoved(){ + super.onRemoved(); + drawer.remove(); + } @Override public void updateTile(){ @@ -123,7 +133,7 @@ public class ForceProjector extends Block{ if(buildup >= breakage && !broken){ broken = true; buildup = breakage; - Fx.shieldBreak.at(x, y, radius, team.color); + Fx.shieldBreak.at(x, y, realRadius(), team.color); } if(hit > 0f){ @@ -138,7 +148,7 @@ public class ForceProjector extends Block{ } } - float realRadius(){ + public float realRadius(){ return (radius + phaseHeat * phaseRadiusBoost) * radscl; } @@ -146,6 +156,10 @@ public class ForceProjector extends Block{ public void draw(){ super.draw(); + if(drawer != null){ + drawer.set(x, y); + } + if(buildup > 0f){ Draw.alpha(buildup / breakage * 0.75f); Draw.blend(Blending.additive); @@ -153,7 +167,9 @@ public class ForceProjector extends Block{ Draw.blend(); Draw.reset(); } + } + public void drawShield(){ if(!broken){ float radius = realRadius(); @@ -196,4 +212,21 @@ public class ForceProjector extends Block{ phaseHeat = read.f(); } } + + @EntityDef(value = {ForceDrawc.class}, serialize = false) + @Component(base = true) + abstract class ForceDrawComp implements Drawc{ + transient ForceBuild build; + + @Override + public void draw(){ + build.drawShield(); + } + + @Replace + @Override + public float clipSize(){ + return build.realRadius() * 3f; + } + } } diff --git a/core/src/mindustry/world/blocks/defense/MendProjector.java b/core/src/mindustry/world/blocks/defense/MendProjector.java index be8e814fc8..f9fc7b0ac8 100644 --- a/core/src/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/mindustry/world/blocks/defense/MendProjector.java @@ -55,7 +55,7 @@ public class MendProjector extends Block{ Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.accent); } - public class MendEntity extends Building{ + public class MendBuild extends Building{ float heat; float charge = Mathf.random(reload); float phaseHeat; @@ -77,7 +77,7 @@ public class MendProjector extends Block{ indexer.eachBlock(this, realRange, other -> other.damaged(), other -> { other.heal(other.maxHealth() * (healPercent + phaseHeat * phaseBoost) / 100f * efficiency()); - Fx.healBlockFull.at(other.x, other.y, other.block().size, Tmp.c1.set(baseColor).lerp(phaseColor, phaseHeat)); + Fx.healBlockFull.at(other.x, other.y, other.block.size, Tmp.c1.set(baseColor).lerp(phaseColor, phaseHeat)); }); } } diff --git a/core/src/mindustry/world/blocks/defense/OverdriveProjector.java b/core/src/mindustry/world/blocks/defense/OverdriveProjector.java index 8af0b723c2..56010c7c0f 100644 --- a/core/src/mindustry/world/blocks/defense/OverdriveProjector.java +++ b/core/src/mindustry/world/blocks/defense/OverdriveProjector.java @@ -60,7 +60,7 @@ public class OverdriveProjector extends Block{ } } - public class OverdriveEntity extends Building{ + public class OverdriveBuild extends Building{ float heat; float charge = Mathf.random(reload); float phaseHeat; @@ -96,7 +96,7 @@ public class OverdriveProjector extends Block{ public void drawSelect(){ float realRange = range + phaseHeat * phaseRangeBoost; - indexer.eachBlock(this, realRange, other -> other.block().canOverdrive, other -> Drawf.selected(other, Tmp.c1.set(baseColor).a(Mathf.absin(4f, 1f)))); + indexer.eachBlock(this, realRange, other -> other.block.canOverdrive, other -> Drawf.selected(other, Tmp.c1.set(baseColor).a(Mathf.absin(4f, 1f)))); Drawf.dashCircle(x, y, realRange, baseColor); } diff --git a/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java b/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java index a3fffe06f3..75e24a8e87 100644 --- a/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java +++ b/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java @@ -60,7 +60,7 @@ public class PointDefenseTurret extends Block{ stats.add(BlockStat.reload, 60f / reloadTime, StatUnit.none); } - public class PointDefenseEntity extends Building{ + public class PointDefenseBuild extends Building{ public float rotation = 90, reload; public @Nullable Bullet target; @@ -72,8 +72,13 @@ public class PointDefenseTurret extends Block{ target = Groups.bullet.intersect(x - range, y - range, range*2, range*2).min(b -> b.team == team || !b.type().hittable ? Float.MAX_VALUE : b.dst2(this)); } + //pooled bullets + if(target != null && !target.isAdded()){ + target = null; + } + //look at target - if(target != null && target.within(this, range) && target.team != team && target.type().hittable){ + if(target != null && target.within(this, range) && target.team != team && target.type() != null && target.type().hittable){ float dest = angleTo(target); rotation = Angles.moveToward(rotation, dest, rotateSpeed * edelta()); reload -= edelta(); diff --git a/core/src/mindustry/world/blocks/defense/ShockMine.java b/core/src/mindustry/world/blocks/defense/ShockMine.java index 52c7774be0..00c805ac48 100644 --- a/core/src/mindustry/world/blocks/defense/ShockMine.java +++ b/core/src/mindustry/world/blocks/defense/ShockMine.java @@ -1,5 +1,6 @@ package mindustry.world.blocks.defense; +import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import mindustry.entities.*; @@ -15,6 +16,7 @@ public class ShockMine extends Block{ public float damage = 13; public int length = 10; public int tendrils = 6; + public Color lightningColor = Pal.lancerLaser; public ShockMine(String name){ super(name); @@ -25,7 +27,7 @@ public class ShockMine extends Block{ rebuildable = false; } - public class ShockMineEntity extends Building{ + public class ShockMineBuild extends Building{ @Override public void drawTeam(){ @@ -45,7 +47,7 @@ public class ShockMine extends Block{ public void unitOn(Unit unit){ if(enabled && unit.team != team && timer(timerDamage, cooldown)){ for(int i = 0; i < tendrils; i++){ - Lightning.create(team, Pal.lancerLaser, damage, x, y, Mathf.random(360f), length); + Lightning.create(team, lightningColor, damage, x, y, Mathf.random(360f), length); } damage(tileDamage); } diff --git a/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java b/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java index 971de2d887..9e9035bb77 100644 --- a/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java +++ b/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java @@ -31,6 +31,7 @@ public class TractorBeamTurret extends Block{ public float scaledForce = 0f; public float damage = 0f; public boolean targetAir = true, targetGround = false; + public Color laserColor = Color.white; public TractorBeamTurret(String name){ super(name); @@ -60,7 +61,7 @@ public class TractorBeamTurret extends Block{ stats.add(BlockStat.damage, damage * 60f, StatUnit.perSecond); } - public class TractorBeamEntity extends Building{ + public class TractorBeamBuild extends Building{ public float rotation = 90; public @Nullable Unit target; public float lastX, lastY, strength; @@ -113,7 +114,7 @@ public class TractorBeamTurret extends Block{ float ang = angleTo(lastX, lastY); float len = 5f; - Draw.mixcol(Color.white, Mathf.absin(4f, 0.6f)); + Draw.mixcol(laserColor, Mathf.absin(4f, 0.6f)); Drawf.laser(team, laser, laserEnd, x + Angles.trnsx(ang, len), y + Angles.trnsy(ang, len), diff --git a/core/src/mindustry/world/blocks/defense/Wall.java b/core/src/mindustry/world/blocks/defense/Wall.java index b08c2c500c..c496b7e227 100644 --- a/core/src/mindustry/world/blocks/defense/Wall.java +++ b/core/src/mindustry/world/blocks/defense/Wall.java @@ -19,9 +19,11 @@ public class Wall extends Block{ public float lightningChance = -0.001f; public float lightningDamage = 20f; public int lightningLength = 17; + public Color lightningColor = Pal.surge; public float chanceDeflect = 10f; - public boolean flashWhite; + public boolean flashHit; + public Color flashColor = Color.white; public boolean deflect; public Wall(String name){ @@ -68,10 +70,10 @@ public class Wall extends Block{ } //draw flashing white overlay if enabled - if(flashWhite){ + if(flashHit){ if(hit < 0.0001f) return; - Draw.color(Color.white); + Draw.color(flashColor); Draw.alpha(hit * 0.5f); Draw.blend(Blending.additive); Fill.rect(x, y, tilesize * size, tilesize * size); @@ -91,14 +93,17 @@ public class Wall extends Block{ //create lightning if necessary if(lightningChance > 0){ if(Mathf.chance(lightningChance)){ - Lightning.create(team, Pal.surge, lightningDamage, x, y, bullet.rotation() + 180f, lightningLength); + Lightning.create(team, lightningColor, lightningDamage, x, y, bullet.rotation() + 180f, lightningLength); } } //deflect bullets if necessary if(deflect){ + //slow bullets are not deflected + if(bullet.vel().len() <= 0.2f) return true; + //bullet reflection chance depends on bullet damage - if(!Mathf.chance(chanceDeflect/bullet.damage())) return true; + if(!Mathf.chance(chanceDeflect / bullet.damage())) return true; //translate bullet back to where it was upon collision bullet.trns(-bullet.vel.x, -bullet.vel.y); diff --git a/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java b/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java index 8a902510bc..ab53dba5cf 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/ItemTurret.java @@ -162,7 +162,11 @@ public class ItemTurret extends Turret{ Item item = Vars.content.item(revision < 2 ? read.ub() : read.s()); short a = read.s(); totalAmmo += a; - ammo.add(new ItemEntry(item, a)); + + //only add ammo if this is a valid ammo type + if(ammoTypes.containsKey(item)){ + ammo.add(new ItemEntry(item, a)); + } } } } diff --git a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java index 752528970b..23d742a080 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -108,7 +108,7 @@ public class LiquidTurret extends Turret{ public BulletType useAmmo(){ if(cheating()) return ammoTypes.get(liquids.current()); BulletType type = ammoTypes.get(liquids.current()); - liquids.remove(liquids.current(), type.ammoMultiplier); + liquids.remove(liquids.current(), 1f / type.ammoMultiplier); return type; } @@ -119,7 +119,7 @@ public class LiquidTurret extends Turret{ @Override public boolean hasAmmo(){ - return ammoTypes.get(liquids.current()) != null && liquids.total() >= ammoTypes.get(liquids.current()).ammoMultiplier; + return ammoTypes.get(liquids.current()) != null && liquids.total() >= 1f / ammoTypes.get(liquids.current()).ammoMultiplier; } @Override @@ -131,7 +131,7 @@ public class LiquidTurret extends Turret{ public boolean acceptLiquid(Building source, Liquid liquid, float amount){ return ammoTypes.get(liquid) != null && (liquids.current() == liquid || (ammoTypes.containsKey(liquids.current()) - && liquids.get(liquids.current()) <= ammoTypes.get(liquids.current()).ammoMultiplier + 0.001f)); + && liquids.get(liquids.current()) <= 1f / ammoTypes.get(liquids.current()).ammoMultiplier + 0.001f)); } } } diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index af49518ac3..731c493198 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -237,7 +237,7 @@ public abstract class Turret extends Block{ canShoot = unit.isShooting(); }else if(logicControlled()){ //logic behavior canShoot = logicShooting; - }else if(peekAmmo() != null){ //default AI behavior + }else{ //default AI behavior BulletType type = peekAmmo(); float speed = type.speed; //slow bullets never intersect diff --git a/core/src/mindustry/world/blocks/distribution/ArmoredConveyor.java b/core/src/mindustry/world/blocks/distribution/ArmoredConveyor.java index 48a44bd416..cba1366147 100644 --- a/core/src/mindustry/world/blocks/distribution/ArmoredConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/ArmoredConveyor.java @@ -18,7 +18,7 @@ public class ArmoredConveyor extends Conveyor{ public class ArmoredConveyorBuild extends ConveyorBuild{ @Override public boolean acceptItem(Building source, Item item){ - return super.acceptItem(source, item) && (source.block() instanceof Conveyor || Edges.getFacingEdge(source.tile(), tile).relativeTo(tile) == rotation); + return super.acceptItem(source, item) && (source.block instanceof Conveyor || Edges.getFacingEdge(source.tile(), tile).relativeTo(tile) == rotation); } } } diff --git a/core/src/mindustry/world/blocks/distribution/BufferedItemBridge.java b/core/src/mindustry/world/blocks/distribution/BufferedItemBridge.java index c5bc795440..a0eddc20c1 100644 --- a/core/src/mindustry/world/blocks/distribution/BufferedItemBridge.java +++ b/core/src/mindustry/world/blocks/distribution/BufferedItemBridge.java @@ -29,7 +29,7 @@ public class BufferedItemBridge extends ExtendingItemBridge{ } Item item = buffer.poll(speed / timeScale); - if(timer(timerAccept, 4) && item != null && other.acceptItem(this, item)){ + if(timer(timerAccept, 4 / timeScale) && item != null && other.acceptItem(this, item)){ cycleSpeed = Mathf.lerpDelta(cycleSpeed, 4f, 0.05f); other.handleItem(this, item); buffer.remove(); diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index 3654f8ba01..0abf919210 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -289,9 +289,9 @@ public class Conveyor extends Block implements Autotiler{ @Override public boolean acceptItem(Building source, Item item){ if(len >= capacity) return false; - Tile facing = Edges.getFacingEdge(source.tile(), tile); + Tile facing = Edges.getFacingEdge(source.tile, tile); int direction = Math.abs(facing.relativeTo(tile.x, tile.y) - rotation); - return (((direction == 0) && minitem >= itemSpace) || ((direction % 2 == 1) && minitem > 0.7f)) && !(source.block().rotate && (source.rotation + 2) % 4 == rotation); + return (((direction == 0) && minitem >= itemSpace) || ((direction % 2 == 1) && minitem > 0.7f)) && !(source.block.rotate && (source.rotation + 2) % 4 == rotation); } @Override @@ -299,7 +299,7 @@ public class Conveyor extends Block implements Autotiler{ if(len >= capacity) return; int r = rotation; - Tile facing = Edges.getFacingEdge(source.tile(), tile); + Tile facing = Edges.getFacingEdge(source.tile, tile); int ang = ((facing.relativeTo(tile.x, tile.y) - r)); float x = (ang == -1 || ang == 3) ? 1 : (ang == 1 || ang == -3) ? -1 : 0; diff --git a/core/src/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/mindustry/world/blocks/distribution/ItemBridge.java index 6ce1107285..ba70c0fc2f 100644 --- a/core/src/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/mindustry/world/blocks/distribution/ItemBridge.java @@ -41,7 +41,6 @@ public class ItemBridge extends Block{ hasItems = true; unloadable = false; group = BlockGroup.transportation; - canOverdrive = false; noUpdateDisabled = true; //point2 config is relative @@ -134,8 +133,10 @@ public class ItemBridge extends Block{ public float cycleSpeed = 1f; @Override - public void playerPlaced(){ - super.playerPlaced(); + public void playerPlaced(Object config){ + super.playerPlaced(config); + + if(config != null) return; Tile link = findLink(tile.x, tile.y); if(linkValid(tile, link)){ @@ -215,7 +216,7 @@ public class ItemBridge extends Block{ return true; } - if(linkValid(tile, other.tile())){ + if(linkValid(tile, other.tile)){ if(link == other.pos()){ configure(-1); }else{ @@ -266,7 +267,7 @@ public class ItemBridge extends Block{ Item item = items.take(); if(item != null && other.acceptItem(this, item)){ other.handleItem(this, item); - cycleSpeed = Mathf.lerpDelta(cycleSpeed, 4f, 0.05f); + cycleSpeed = Mathf.lerpDelta(cycleSpeed, 4f, 0.05f); //TODO this is kinda broken, because lerping only happens on a timer }else{ cycleSpeed = Mathf.lerpDelta(cycleSpeed, 1f, 0.01f); if(item != null) items.add(item, 1); @@ -359,7 +360,7 @@ public class ItemBridge extends Block{ } protected boolean linked(Building source){ - return source instanceof ItemBridgeBuild && linkValid(source.tile(), tile) && ((ItemBridgeBuild)source).link == pos(); + return source instanceof ItemBridgeBuild && linkValid(source.tile, tile) && ((ItemBridgeBuild)source).link == pos(); } @Override @@ -370,7 +371,7 @@ public class ItemBridge extends Block{ protected boolean checkDump(Building to){ Tile other = world.tile(link); if(!linkValid(tile, other)){ - Tile edge = Edges.getFacingEdge(to.tile(), tile); + Tile edge = Edges.getFacingEdge(to.tile, tile); int i = relativeTo(edge.x, edge.y); IntSetIterator it = incoming.iterator(); diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index 4afadbdba8..7880c72db6 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -1,5 +1,6 @@ package mindustry.world.blocks.distribution; +import arc.audio.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; @@ -30,6 +31,7 @@ public class MassDriver extends Block{ public Effect shootEffect = Fx.shootBig2; public Effect smokeEffect = Fx.shootBigSmoke2; public Effect receiveEffect = Fx.mineBig; + public Sound shootSound = Sounds.shootBig; public float shake = 3f; public @Load("@-base") TextureRegion baseRegion; @@ -60,7 +62,7 @@ public class MassDriver extends Block{ //check if a mass driver is selected while placing this driver if(!control.input.frag.config.isShown()) return; Building selected = control.input.frag.config.getSelectedTile(); - if(selected == null || !(selected.block() instanceof MassDriver) || !(selected.within(x * tilesize, y * tilesize, range))) return; + if(selected == null || !(selected.block instanceof MassDriver) || !(selected.within(x * tilesize, y * tilesize, range))) return; //if so, draw a dotted line towards it while it is in range float sin = Mathf.absin(Time.time(), 6f, 1f); @@ -153,7 +155,7 @@ public class MassDriver extends Block{ if( items.total() >= minDistribute && //must shoot minimum amount of items - link.block().itemCapacity - link.items.total() >= minDistribute //must have minimum amount of space + link.block.itemCapacity - link.items.total() >= minDistribute //must have minimum amount of space ){ MassDriverBuild other = (MassDriverBuild)link; other.waitingShooters.add(tile); @@ -223,7 +225,7 @@ public class MassDriver extends Block{ if(link == other.pos()){ configure(-1); return false; - }else if(other.block() instanceof MassDriver && other.dst(tile) <= range && other.team == team){ + }else if(other.block instanceof MassDriver && other.dst(tile) <= range && other.team == team){ configure(other.pos()); return false; } @@ -265,6 +267,8 @@ public class MassDriver extends Block{ y + Angles.trnsy(angle, translation), angle); Effect.shake(shake, shake, this); + + shootSound.at(tile, Mathf.random(0.9f, 1.1f)); } public void handlePayload(Bullet bullet, DriverBulletData data){ diff --git a/core/src/mindustry/world/blocks/distribution/OverflowGate.java b/core/src/mindustry/world/blocks/distribution/OverflowGate.java index 5f4d66db34..981080a95d 100644 --- a/core/src/mindustry/world/blocks/distribution/OverflowGate.java +++ b/core/src/mindustry/world/blocks/distribution/OverflowGate.java @@ -91,14 +91,14 @@ public class OverflowGate extends Block{ int from = relativeToEdge(src); if(from == -1) return null; Building to = nearby((from + 2) % 4); - boolean canForward = to != null && to.acceptItem(this, item) && to.team == team && !(to.block() instanceof OverflowGate); + boolean canForward = to != null && to.acceptItem(this, item) && to.team == team && !(to.block instanceof OverflowGate); boolean inv = invert == enabled; if(!canForward || inv){ Building a = nearby(Mathf.mod(from - 1, 4)); Building b = nearby(Mathf.mod(from + 1, 4)); - boolean ac = a != null && a.acceptItem(this, item) && !(a.block() instanceof OverflowGate) && a.team == team; - boolean bc = b != null && b.acceptItem(this, item) && !(b.block() instanceof OverflowGate) && b.team == team; + boolean ac = a != null && a.acceptItem(this, item) && !(a.block instanceof OverflowGate) && a.team == team; + boolean bc = b != null && b.acceptItem(this, item) && !(b.block instanceof OverflowGate) && b.team == team; if(!ac && !bc){ return inv && canForward ? to : null; diff --git a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java index 15067d3188..85ab8aadfa 100644 --- a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java @@ -30,6 +30,7 @@ public class PayloadConveyor extends Block{ update = true; outputsPayload = true; noUpdateDisabled = true; + sync = true; } @Override @@ -43,8 +44,8 @@ public class PayloadConveyor extends Block{ for(int i = 0; i < 4; i++){ Building other = world.build(x + Geometry.d4x[i] * size, y + Geometry.d4y[i] * size); - if(other != null && other.block().outputsPayload && other.block().size == size){ - Drawf.selected(other.tileX(), other.tileY(), other.block(), Pal.accent); + if(other != null && other.block.outputsPayload && other.block.size == size){ + Drawf.selected(other.tileX(), other.tileY(), other.block, Pal.accent); } } } @@ -71,13 +72,13 @@ public class PayloadConveyor extends Block{ //next block must be aligned and of the same size if(accept != null && ( //same size - (accept.block().size == size && tileX() + Geometry.d4(rotation).x * size == accept.tileX() && tileY() + Geometry.d4(rotation).y * size == accept.tileY()) || + (accept.block.size == size && tileX() + Geometry.d4(rotation).x * size == accept.tileX() && tileY() + Geometry.d4(rotation).y * size == accept.tileY()) || //differing sizes - (accept.block().size > size && + (accept.block.size > size && (rotation % 2 == 0 ? //check orientation - Math.abs(accept.y - y) <= (accept.block().size * tilesize - size * tilesize)/2f : //check Y alignment - Math.abs(accept.x - x) <= (accept.block().size * tilesize - size * tilesize)/2f //check X alignment + Math.abs(accept.y - y) <= (accept.block.size * tilesize - size * tilesize)/2f : //check Y alignment + Math.abs(accept.x - x) <= (accept.block.size * tilesize - size * tilesize)/2f //check X alignment )))){ next = accept; }else{ @@ -193,15 +194,18 @@ public class PayloadConveyor extends Block{ @Override public boolean acceptPayload(Building source, Payload payload){ + if(source == this){ + return this.item == null && payload.fits(); + } //accepting payloads from units isn't supported - return this.item == null && progress <= 5f && source != this && payload.fits(); + return this.item == null && progress <= 5f && payload.fits(); } @Override public void handlePayload(Building source, Payload payload){ this.item = payload; this.stepAccepted = curStep(); - this.itemRotation = source.angleTo(this); + this.itemRotation = source == this ? rotdeg() : source.angleTo(this); this.animation = 0; updatePayload(); @@ -220,7 +224,7 @@ public class PayloadConveyor extends Block{ public void read(Reads read, byte revision){ super.read(read, revision); - progress = read.f(); + read.f(); //why is progress written? itemRotation = read.f(); item = Payload.read(read); } diff --git a/core/src/mindustry/world/blocks/distribution/Router.java b/core/src/mindustry/world/blocks/distribution/Router.java index af3833f34b..cb0ae9807d 100644 --- a/core/src/mindustry/world/blocks/distribution/Router.java +++ b/core/src/mindustry/world/blocks/distribution/Router.java @@ -35,7 +35,7 @@ public class Router extends Block{ time += 1f / speed * delta(); Building target = getTileTarget(lastItem, lastInput, false); - if(target != null && (time >= 1f || !(target.block() instanceof Router || target.block().instantTransfer))){ + if(target != null && (time >= 1f || !(target.block instanceof Router || target.block.instantTransfer))){ getTileTarget(lastItem, lastInput, true); target.handleItem(this, lastItem); items.remove(lastItem, 1); diff --git a/core/src/mindustry/world/blocks/distribution/Sorter.java b/core/src/mindustry/world/blocks/distribution/Sorter.java index f5e9d9b5ec..6deed76005 100644 --- a/core/src/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/mindustry/world/blocks/distribution/Sorter.java @@ -51,7 +51,7 @@ public class Sorter extends Block{ public @Nullable Item sortItem; @Override - public void configured(Player player, Object value){ + public void configured(Unit player, Object value){ super.configured(player, value); if(!headless){ @@ -88,7 +88,7 @@ public class Sorter extends Block{ public boolean isSame(Building other){ // comment code below to allow sorter/gate chaining - return other != null && other.block().instantTransfer; + return other != null && other.block.instantTransfer; } public Building getTileTarget(Item item, Building source, boolean flip){ @@ -105,9 +105,9 @@ public class Sorter extends Block{ }else{ Building a = nearby(Mathf.mod(dir - 1, 4)); Building b = nearby(Mathf.mod(dir + 1, 4)); - boolean ac = a != null && !(a.block().instantTransfer && source.block().instantTransfer) && + boolean ac = a != null && !(a.block.instantTransfer && source.block.instantTransfer) && a.acceptItem(this, item); - boolean bc = b != null && !(b.block().instantTransfer && source.block().instantTransfer) && + boolean bc = b != null && !(b.block.instantTransfer && source.block.instantTransfer) && b.acceptItem(this, item); if(ac && !bc){ diff --git a/core/src/mindustry/world/blocks/distribution/StackConveyor.java b/core/src/mindustry/world/blocks/distribution/StackConveyor.java index 712d62d4c5..983ebaf954 100644 --- a/core/src/mindustry/world/blocks/distribution/StackConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/StackConveyor.java @@ -6,6 +6,7 @@ import arc.util.*; import arc.util.io.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; +import mindustry.entities.*; import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -27,6 +28,8 @@ public class StackConveyor extends Block implements Autotiler{ public float speed = 0f; public boolean splitOut = true; public float recharge = 2f; + public Effect loadEffect = Fx.plasticburn; + public Effect unloadEffect = Fx.plasticburn; public StackConveyor(String name){ super(name); @@ -112,20 +115,22 @@ public class StackConveyor extends Block implements Autotiler{ Draw.z(Layer.blockOver); - Building from = world.build(link); + Tile from = world.tile(link); if(link == -1 || from == null) return; + int fromRot = from.build == null ? rotation : from.build.rotation; + //offset - Tmp.v1.set(from); - Tmp.v2.set(tile); + Tmp.v1.set(from.worldx(), from.worldy()); + Tmp.v2.set(x, y); Tmp.v1.interpolate(Tmp.v2, 1f - cooldown, Interp.linear); //rotation - float a = (from.rotation%4) * 90; + float a = (fromRot%4) * 90; float b = (rotation%4) * 90; - if((from.rotation%4) == 3 && (rotation%4) == 0) a = -1 * 90; - if((from.rotation%4) == 0 && (rotation%4) == 3) a = 4 * 90; + if((fromRot%4) == 3 && (rotation%4) == 0) a = -1 * 90; + if((fromRot%4) == 0 && (rotation%4) == 3) a = 4 * 90; //stack Draw.rect(stackRegion, Tmp.v1.x, Tmp.v1.y, Mathf.lerp(a, b, Interp.smooth.apply(1f - Mathf.clamp(cooldown * 2, 0f, 1f)))); @@ -221,11 +226,11 @@ public class StackConveyor extends Block implements Autotiler{ protected void poofIn(){ link = tile.pos(); - Fx.plasticburn.at(this); + loadEffect.at(this); } protected void poofOut(){ - Fx.plasticburn.at(this); + unloadEffect.at(this); link = -1; } diff --git a/core/src/mindustry/world/blocks/environment/Rock.java b/core/src/mindustry/world/blocks/environment/Boulder.java similarity index 94% rename from core/src/mindustry/world/blocks/environment/Rock.java rename to core/src/mindustry/world/blocks/environment/Boulder.java index 1c3abc1a15..4c90d8204f 100644 --- a/core/src/mindustry/world/blocks/environment/Rock.java +++ b/core/src/mindustry/world/blocks/environment/Boulder.java @@ -7,10 +7,10 @@ import arc.math.Mathf; import mindustry.world.Block; import mindustry.world.Tile; -public class Rock extends Block{ +public class Boulder extends Block{ protected int variants; - public Rock(String name){ + public Boulder(String name){ super(name); breakable = true; alwaysReplace = true; diff --git a/core/src/mindustry/world/blocks/environment/Floor.java b/core/src/mindustry/world/blocks/environment/Floor.java index 89a5918469..6640613779 100644 --- a/core/src/mindustry/world/blocks/environment/Floor.java +++ b/core/src/mindustry/world/blocks/environment/Floor.java @@ -103,16 +103,15 @@ public class Floor extends Block{ super.init(); if(wall == Blocks.air){ - wall = content.block(name + "Rocks"); - if(wall == null) wall = content.block(name + "rocks"); - if(wall == null) wall = content.block(name.replace("darksand", "dune") + "rocks"); + wall = content.block(name + "-wall"); + if(wall == null) wall = content.block(name.replace("darksand", "dune") + "-wall"); } //keep default value if not found... if(wall == null) wall = Blocks.air; if(decoration == Blocks.air){ - decoration = content.blocks().min(b -> b instanceof Rock && b.breakable ? mapColor.diff(b.mapColor) : Float.POSITIVE_INFINITY); + decoration = content.blocks().min(b -> b instanceof Boulder && b.breakable ? mapColor.diff(b.mapColor) : Float.POSITIVE_INFINITY); } } diff --git a/core/src/mindustry/world/blocks/environment/StaticWall.java b/core/src/mindustry/world/blocks/environment/StaticWall.java index 4142db8700..2b9e41a41e 100644 --- a/core/src/mindustry/world/blocks/environment/StaticWall.java +++ b/core/src/mindustry/world/blocks/environment/StaticWall.java @@ -10,7 +10,7 @@ import mindustry.world.*; import static mindustry.Vars.world; -public class StaticWall extends Rock{ +public class StaticWall extends Boulder{ public @Load("@-large") TextureRegion large; public TextureRegion[][] split; diff --git a/core/src/mindustry/world/blocks/experimental/BlockLoader.java b/core/src/mindustry/world/blocks/experimental/BlockLoader.java index 0eb5ac903e..0afbeafb78 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockLoader.java +++ b/core/src/mindustry/world/blocks/experimental/BlockLoader.java @@ -56,7 +56,7 @@ public class BlockLoader extends PayloadAcceptor{ public boolean acceptPayload(Building source, Payload payload){ return super.acceptPayload(source, payload) && (payload instanceof BlockPayload) && - ((((BlockPayload)payload).entity.block().hasItems && ((BlockPayload)payload).block().unloadable && ((BlockPayload)payload).block().itemCapacity >= 10)/* || + ((((BlockPayload)payload).entity.block.hasItems && ((BlockPayload)payload).block().unloadable && ((BlockPayload)payload).block().itemCapacity >= 10)/* || ((BlockPayload)payload).entity.block().hasLiquids && ((BlockPayload)payload).block().liquidCapacity >= 10f)*/); } @@ -127,7 +127,7 @@ public class BlockLoader extends PayloadAcceptor{ } public float fraction(){ - return payload == null ? 0f : payload.entity.items.total() / (float)payload.entity.block().itemCapacity; + return payload == null ? 0f : payload.entity.items.total() / (float)payload.entity.block.itemCapacity; } public boolean shouldExport(){ diff --git a/core/src/mindustry/world/blocks/experimental/BlockUnloader.java b/core/src/mindustry/world/blocks/experimental/BlockUnloader.java index be39284cc7..072d64ecea 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockUnloader.java +++ b/core/src/mindustry/world/blocks/experimental/BlockUnloader.java @@ -56,7 +56,7 @@ public class BlockUnloader extends BlockLoader{ @Override public float fraction(){ - return payload == null ? 0f : 1f - payload.entity.items.total() / (float)payload.entity.block().itemCapacity; + return payload == null ? 0f : 1f - payload.entity.items.total() / (float)payload.entity.block.itemCapacity; } @Override diff --git a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java index 060add232a..6327857637 100644 --- a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java +++ b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java @@ -26,14 +26,14 @@ public class ArmoredConduit extends Conduit{ // draw the cap when a conduit would normally leak Building next = front(); - if(next != null && next.team == team && next.block().hasLiquids) return; + if(next != null && next.team == team && next.block.hasLiquids) return; Draw.rect(capRegion, x, y, rotdeg()); } @Override public boolean acceptLiquid(Building source, Liquid liquid, float amount){ - return super.acceptLiquid(source, liquid, amount) && (source.block() instanceof Conduit) || + return super.acceptLiquid(source, liquid, amount) && (source.block instanceof Conduit) || Edges.getFacingEdge(source.tile(), tile).absoluteRelativeTo(tile.x, tile.y) == rotation; } } diff --git a/core/src/mindustry/world/blocks/liquid/Conduit.java b/core/src/mindustry/world/blocks/liquid/Conduit.java index 69cc036a13..0db85e80c0 100644 --- a/core/src/mindustry/world/blocks/liquid/Conduit.java +++ b/core/src/mindustry/world/blocks/liquid/Conduit.java @@ -65,7 +65,7 @@ public class Conduit extends LiquidBlock implements Autotiler{ @Override public boolean blends(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock){ - return otherblock.hasLiquids && otherblock.outputsLiquid && lookingAtEither(tile, rotation, otherx, othery, otherrot, otherblock); + return otherblock.hasLiquids && (otherblock.outputsLiquid || (lookingAt(tile, rotation, otherx, othery, otherblock))) && lookingAtEither(tile, rotation, otherx, othery, otherrot, otherblock); } @Override diff --git a/core/src/mindustry/world/blocks/liquid/LiquidBridge.java b/core/src/mindustry/world/blocks/liquid/LiquidBridge.java index 8c52310022..c658cde66c 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidBridge.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidBridge.java @@ -15,6 +15,7 @@ public class LiquidBridge extends ItemBridge{ hasItems = false; hasLiquids = true; outputsLiquid = true; + canOverdrive = false; group = BlockGroup.liquids; } diff --git a/core/src/mindustry/world/blocks/liquid/LiquidExtendingBridge.java b/core/src/mindustry/world/blocks/liquid/LiquidExtendingBridge.java index 6d925d7087..76e4929b45 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidExtendingBridge.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidExtendingBridge.java @@ -6,7 +6,7 @@ import mindustry.type.*; import mindustry.world.blocks.distribution.*; import mindustry.world.meta.*; -import static mindustry.Vars.world; +import static mindustry.Vars.*; public class LiquidExtendingBridge extends ExtendingItemBridge{ @@ -42,7 +42,7 @@ public class LiquidExtendingBridge extends ExtendingItemBridge{ if(moveLiquid(other, liquids.current()) > 0.1f){ cycleSpeed = Mathf.lerpDelta(cycleSpeed, 4f, 0.05f); }else{ - cycleSpeed = Mathf.lerpDelta(cycleSpeed, 1f, 0.01f); + cycleSpeed = Mathf.lerpDelta(cycleSpeed, 0f, 0.01f); } } } diff --git a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java index b449d721a8..2845281d96 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java @@ -41,7 +41,7 @@ public class LiquidJunction extends LiquidBlock{ int dir = source.relativeTo(tile.x, tile.y); dir = (dir + 4) % 4; Building next = nearby(dir); - if(next == null || (!next.acceptLiquid(this, liquid, 0f) && !(next.block() instanceof LiquidJunction))){ + if(next == null || (!next.acceptLiquid(this, liquid, 0f) && !(next.block instanceof LiquidJunction))){ return this; } return next.getLiquidDestination(this, liquid); diff --git a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java index 6184e179de..60fab24df1 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java @@ -11,7 +11,7 @@ public class LiquidRouter extends LiquidBlock{ noUpdateDisabled = true; } - public class LiquidRouterEntity extends LiquidBuild{ + public class LiquidRouterBuild extends LiquidBuild{ @Override public void updateTile(){ if(liquids.total() > 0.01f){ diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 9b5b4a384b..8710fd43b2 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -16,7 +16,7 @@ import mindustry.logic.LAssembler.*; import mindustry.logic.LExecutor.*; import mindustry.ui.*; import mindustry.world.*; -import mindustry.world.blocks.BuildBlock.*; +import mindustry.world.blocks.ConstructBlock.*; import mindustry.world.meta.*; import java.io.*; @@ -25,8 +25,6 @@ import java.util.zip.*; import static mindustry.Vars.*; public class LogicBlock extends Block{ - public static final int maxInstructions = 1500; - public int maxInstructionScale = 5; public int instructionsPerTick = 1; public float range = 8 * 10; @@ -36,6 +34,7 @@ public class LogicBlock extends Block{ update = true; solid = true; configurable = true; + sync = true; config(byte[].class, (LogicBuild build, byte[] data) -> build.readCompressed(data, true)); @@ -270,7 +269,7 @@ public class LogicBlock extends Block{ try{ //create assembler to store extra variables - LAssembler asm = LAssembler.assemble(str, maxInstructions); + LAssembler asm = LAssembler.assemble(str, LExecutor.maxInstructions); //store connections for(LogicLink link : links){ @@ -315,7 +314,7 @@ public class LogicBlock extends Block{ e.printStackTrace(); //handle malformed code and replace it with nothing - executor.load("", maxInstructions); + executor.load("", LExecutor.maxInstructions); } } } @@ -414,7 +413,7 @@ public class LogicBlock extends Block{ } public boolean validLink(Building other){ - return other != null && other.isValid() && other.team == team && other.within(this, range + other.block.size*tilesize/2f) && !(other instanceof BuildEntity); + return other != null && other.isValid() && other.team == team && other.within(this, range + other.block.size*tilesize/2f) && !(other instanceof ConstructBuild); } diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index 0e92b2eb0d..26722774c6 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -11,7 +11,6 @@ import arc.util.*; import arc.util.io.*; import arc.util.pooling.*; import mindustry.gen.*; -import mindustry.net.*; import mindustry.ui.*; import mindustry.ui.dialogs.*; import mindustry.world.*; @@ -30,8 +29,8 @@ public class MessageBlock extends Block{ destructible = true; config(String.class, (MessageBuild tile, String text) -> { - if(net.server() && text.length() > maxTextLength){ - throw new ValidateException(player, "Player has gone above text limit."); + if(text.length() > maxTextLength){ + return; //no. } tile.message.ensureCapacity(text.length()); diff --git a/core/src/mindustry/world/blocks/payloads/BlockPayload.java b/core/src/mindustry/world/blocks/payloads/BlockPayload.java index 5690cd46d0..3fc87dbe6b 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockPayload.java +++ b/core/src/mindustry/world/blocks/payloads/BlockPayload.java @@ -14,7 +14,7 @@ public class BlockPayload implements Payload{ public Building entity; public BlockPayload(Block block, Team team){ - this.entity = block.newEntity().create(block, team); + this.entity = block.newBuilding().create(block, team); } public BlockPayload(Building entity){ @@ -22,7 +22,7 @@ public class BlockPayload implements Payload{ } public Block block(){ - return entity.block(); + return entity.block; } public void place(Tile tile){ @@ -30,24 +30,19 @@ public class BlockPayload implements Payload{ } public void place(Tile tile, int rotation){ - tile.setBlock(entity.block(), entity.team, rotation, () -> entity); + tile.setBlock(entity.block, entity.team, rotation, () -> entity); entity.dropped(); } @Override - public boolean canBeTaken(Payloadc picker){ - return entity.block.size <= 2; - } - - @Override - public boolean fits(){ - return entity.block().size < 3; + public float size(){ + return entity.block.size * tilesize; } @Override public void write(Writes write){ write.b(payloadBlock); - write.s(entity.block().id); + write.s(entity.block.id); write.b(entity.version()); entity.writeAll(write); } @@ -59,7 +54,7 @@ public class BlockPayload implements Payload{ @Override public void draw(){ - Drawf.shadow(entity.x, entity.y, entity.block().size * tilesize * 2f); - Draw.rect(entity.block().icon(Cicon.full), entity.x, entity.y); + Drawf.shadow(entity.x, entity.y, entity.block.size * tilesize * 2f); + Draw.rect(entity.block.icon(Cicon.full), entity.x, entity.y); } } diff --git a/core/src/mindustry/world/blocks/payloads/Payload.java b/core/src/mindustry/world/blocks/payloads/Payload.java index 3a136474b3..d7d800bba6 100644 --- a/core/src/mindustry/world/blocks/payloads/Payload.java +++ b/core/src/mindustry/world/blocks/payloads/Payload.java @@ -6,7 +6,7 @@ import mindustry.game.*; import mindustry.gen.*; import mindustry.world.*; -import static mindustry.Vars.content; +import static mindustry.Vars.*; public interface Payload{ int payloadUnit = 0, payloadBlock = 1; @@ -17,6 +17,9 @@ public interface Payload{ /** draws this payload at a position. */ void draw(); + /** @return hitbox size of the payload. */ + float size(); + /** @return whether this payload was dumped. */ default boolean dump(){ return false; @@ -24,12 +27,7 @@ public interface Payload{ /** @return whether this payload fits on a standard 3x3 conveyor. */ default boolean fits(){ - return true; - } - - /** @return whether the unit can pick up this payload. */ - default boolean canBeTaken(Payloadc picker){ - return true; + return size() / tilesize <= 2.4f; } /** writes the payload for saving. */ diff --git a/core/src/mindustry/world/blocks/payloads/UnitPayload.java b/core/src/mindustry/world/blocks/payloads/UnitPayload.java index ee912480de..4c835cacce 100644 --- a/core/src/mindustry/world/blocks/payloads/UnitPayload.java +++ b/core/src/mindustry/world/blocks/payloads/UnitPayload.java @@ -15,16 +15,6 @@ public class UnitPayload implements Payload{ this.unit = unit; } - @Override - public boolean fits(){ - return unit.hitSize <= 16f; - } - - @Override - public boolean canBeTaken(Payloadc picker){ - return unit.hitSize < picker.hitSize(); - } - @Override public void write(Writes write){ write.b(payloadUnit); @@ -38,6 +28,11 @@ public class UnitPayload implements Payload{ unit.rotation(rotation); } + @Override + public float size(){ + return unit.hitSize; + } + @Override public boolean dump(){ //no client dumping diff --git a/core/src/mindustry/world/blocks/power/NuclearReactor.java b/core/src/mindustry/world/blocks/power/NuclearReactor.java index 18dfd0afca..ac449d90db 100644 --- a/core/src/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/mindustry/world/blocks/power/NuclearReactor.java @@ -70,7 +70,7 @@ public class NuclearReactor extends PowerGenerator{ @Override public void updateTile(){ ConsumeLiquid cliquid = consumes.get(ConsumeType.liquid); - Item item = consumes.get(ConsumeType.item).items[0].item; + Item item = consumes.getItem().items[0].item; int fuel = items.get(item); float fullness = (float)fuel / itemCapacity; diff --git a/core/src/mindustry/world/blocks/power/PowerDiode.java b/core/src/mindustry/world/blocks/power/PowerDiode.java index 05a577902a..e93dde18e9 100644 --- a/core/src/mindustry/world/blocks/power/PowerDiode.java +++ b/core/src/mindustry/world/blocks/power/PowerDiode.java @@ -40,7 +40,7 @@ public class PowerDiode extends Block{ // battery % of the graph on either side, defaults to zero public float bar(Building tile){ - return (tile != null && tile.block().hasPower) ? tile.power.graph.getLastPowerStored() / tile.power.graph.getTotalBatteryCapacity() : 0f; + return (tile != null && tile.block.hasPower) ? tile.power.graph.getLastPowerStored() / tile.power.graph.getTotalBatteryCapacity() : 0f; } public class PowerDiodeBuild extends Building{ @@ -54,7 +54,7 @@ public class PowerDiode extends Block{ public void updateTile(){ super.updateTile(); - if(front() == null || back() == null || !back().block().hasPower || !front().block().hasPower || back().team != front().team) return; + if(front() == null || back() == null || !back().block.hasPower || !front().block.hasPower || back().team != front().team) return; PowerGraph backGraph = back().power.graph; PowerGraph frontGraph = front().power.graph; diff --git a/core/src/mindustry/world/blocks/power/PowerGraph.java b/core/src/mindustry/world/blocks/power/PowerGraph.java index dd197f313b..2d5a4d2918 100644 --- a/core/src/mindustry/world/blocks/power/PowerGraph.java +++ b/core/src/mindustry/world/blocks/power/PowerGraph.java @@ -20,6 +20,7 @@ public class PowerGraph{ private final WindowedMean powerBalance = new WindowedMean(60); private float lastPowerProduced, lastPowerNeeded, lastUsageFraction, lastPowerStored; + private float lastScaledPowerIn, lastScaledPowerOut, lastCapacity; private long lastFrameUpdated = -1; private final int graphID; @@ -33,6 +34,18 @@ public class PowerGraph{ return graphID; } + public float getLastScaledPowerIn(){ + return lastScaledPowerIn; + } + + public float getLastScaledPowerOut(){ + return lastScaledPowerOut; + } + + public float getLastCapacity(){ + return lastCapacity; + } + public float getPowerBalance(){ return powerBalance.mean(); } @@ -74,7 +87,7 @@ public class PowerGraph{ public float getPowerNeeded(){ float powerNeeded = 0f; for(Building consumer : consumers){ - Consumers consumes = consumer.block().consumes; + Consumers consumes = consumer.block.consumes; if(consumes.hasPower()){ ConsumePower consumePower = consumes.getPower(); if(otherConsumersAreValid(consumer, consumePower)){ @@ -88,7 +101,7 @@ public class PowerGraph{ public float getBatteryStored(){ float totalAccumulator = 0f; for(Building battery : batteries){ - Consumers consumes = battery.block().consumes; + Consumers consumes = battery.block.consumes; if(consumes.hasPower()){ totalAccumulator += battery.power.status * consumes.getPower().capacity; } @@ -99,8 +112,8 @@ public class PowerGraph{ public float getBatteryCapacity(){ float totalCapacity = 0f; for(Building battery : batteries){ - if(battery.block().consumes.hasPower()){ - ConsumePower power = battery.block().consumes.getPower(); + if(battery.block.consumes.hasPower()){ + ConsumePower power = battery.block.consumes.getPower(); totalCapacity += (1f - battery.power.status) * power.capacity; } } @@ -110,8 +123,8 @@ public class PowerGraph{ public float getTotalBatteryCapacity(){ float totalCapacity = 0f; for(Building battery : batteries){ - if(battery.block().consumes.hasPower()){ - totalCapacity += battery.block().consumes.getPower().capacity; + if(battery.block.consumes.hasPower()){ + totalCapacity += battery.block.consumes.getPower().capacity; } } return totalCapacity; @@ -124,7 +137,7 @@ public class PowerGraph{ float used = Math.min(stored, needed); float consumedPowerPercentage = Math.min(1.0f, needed / stored); for(Building battery : batteries){ - Consumers consumes = battery.block().consumes; + Consumers consumes = battery.block.consumes; if(consumes.hasPower()){ battery.power.status *= (1f-consumedPowerPercentage); } @@ -139,7 +152,7 @@ public class PowerGraph{ if(Mathf.equal(capacity, 0f)) return 0f; for(Building battery : batteries){ - Consumers consumes = battery.block().consumes; + Consumers consumes = battery.block.consumes; if(consumes.hasPower()){ ConsumePower consumePower = consumes.getPower(); if(consumePower.capacity > 0f){ @@ -154,7 +167,7 @@ public class PowerGraph{ //distribute even if not needed. this is because some might be requiring power but not using it; it updates consumers float coverage = Mathf.zero(needed) && Mathf.zero(produced) ? 0f : Mathf.zero(needed) ? 1f : Math.min(1, produced / needed); for(Building consumer : consumers){ - Consumers consumes = consumer.block().consumes; + Consumers consumes = consumer.block.consumes; if(consumes.hasPower()){ ConsumePower consumePower = consumes.getPower(); if(consumePower.buffered){ @@ -200,6 +213,11 @@ public class PowerGraph{ lastPowerNeeded = powerNeeded; lastPowerProduced = powerProduced; + + lastScaledPowerIn = powerProduced / Time.delta; + lastScaledPowerOut = powerNeeded / Time.delta; + lastCapacity = getTotalBatteryCapacity(); + lastPowerStored = getBatteryStored(); powerBalance.add((lastPowerProduced - lastPowerNeeded) / Time.delta); @@ -237,14 +255,14 @@ public class PowerGraph{ tile.power.graph = this; all.add(tile); - if(tile.block().outputsPower && tile.block().consumesPower && !tile.block().consumes.getPower().buffered){ + if(tile.block.outputsPower && tile.block.consumesPower && !tile.block.consumes.getPower().buffered){ producers.add(tile); consumers.add(tile); - }else if(tile.block().outputsPower && tile.block().consumesPower){ + }else if(tile.block.outputsPower && tile.block.consumesPower){ batteries.add(tile); - }else if(tile.block().outputsPower){ + }else if(tile.block.outputsPower){ producers.add(tile); - }else if(tile.block().consumesPower){ + }else if(tile.block.consumesPower){ consumers.add(tile); } } @@ -311,7 +329,7 @@ public class PowerGraph{ } private boolean otherConsumersAreValid(Building tile, Consume consumePower){ - for(Consume cons : tile.block().consumes.all()){ + for(Consume cons : tile.block.consumes.all()){ if(cons != consumePower && !cons.isOptional() && !cons.valid(tile)){ return false; } diff --git a/core/src/mindustry/world/blocks/power/PowerNode.java b/core/src/mindustry/world/blocks/power/PowerNode.java index 0871ef6e87..d16dcf7c2f 100644 --- a/core/src/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/mindustry/world/blocks/power/PowerNode.java @@ -33,6 +33,8 @@ public class PowerNode extends PowerBlock{ public @Load("laser-end") TextureRegion laserEnd; public float laserRange = 6; public int maxNodes = 3; + public Color laserColor1 = Color.white; + public Color laserColor2 = Pal.powerLight; public PowerNode(String name){ super(name); @@ -109,9 +111,9 @@ public class PowerNode extends PowerBlock{ bars.add("batteries", entity -> new Bar(() -> Core.bundle.format("bar.powerstored", - (UI.formatAmount((int)entity.power.graph.getLastPowerStored())), UI.formatAmount((int)entity.power.graph.getTotalBatteryCapacity())), + (UI.formatAmount((int)entity.power.graph.getLastPowerStored())), UI.formatAmount((int)entity.power.graph.getLastCapacity())), () -> Pal.powerBar, - () -> Mathf.clamp(entity.power.graph.getLastPowerStored() / entity.power.graph.getTotalBatteryCapacity()))); + () -> Mathf.clamp(entity.power.graph.getLastPowerStored() / entity.power.graph.getLastCapacity()))); } @Override @@ -133,10 +135,10 @@ public class PowerNode extends PowerBlock{ Drawf.circles(x * tilesize + offset, y * tilesize + offset, laserRange * tilesize); getPotentialLinks(tile, other -> { - Drawf.square(other.x, other.y, other.block().size * tilesize / 2f + 2f, Pal.place); + Drawf.square(other.x, other.y, other.block.size * tilesize / 2f + 2f, Pal.place); insulators(tile.x, tile.y, other.tileX(), other.tileY(), cause -> { - Drawf.square(cause.x, cause.y, cause.block().size * tilesize / 2f + 2f, Pal.plastanium); + Drawf.square(cause.x, cause.y, cause.block.size * tilesize / 2f + 2f, Pal.plastanium); }); }); @@ -158,7 +160,7 @@ public class PowerNode extends PowerBlock{ float fract = 1f - satisfaction; - Draw.color(Color.white, Pal.powerLight, fract * 0.86f + Mathf.absin(3f, 0.1f)); + Draw.color(laserColor1, laserColor2, fract * 0.86f + Mathf.absin(3f, 0.1f)); Draw.alpha(opacity); Drawf.laser(team, laser, laserEnd, x1, y1, x2, y2, 0.25f); Draw.color(); @@ -183,9 +185,9 @@ public class PowerNode extends PowerBlock{ protected void getPotentialLinks(Tile tile, Cons others){ Boolf valid = other -> other != null && other.tile() != tile && other.power != null && - ((!other.block().outputsPower && other.block().consumesPower) || (other.block().outputsPower && !other.block().consumesPower) || other.block() instanceof PowerNode) && + ((!other.block.outputsPower && other.block.consumesPower) || (other.block.outputsPower && !other.block.consumesPower) || other.block instanceof PowerNode) && overlaps(tile.x * tilesize + offset, tile.y * tilesize + offset, other.tile(), laserRange * tilesize) && other.team == player.team() - && !other.proximity().contains(e -> e.tile() == tile) && !graphs.contains(other.power.graph); + && !other.proximity.contains(e -> e.tile == tile) && !graphs.contains(other.power.graph); tempTileEnts.clear(); graphs.clear(); @@ -201,7 +203,7 @@ public class PowerNode extends PowerBlock{ }); tempTileEnts.sort((a, b) -> { - int type = -Boolean.compare(a.block() instanceof PowerNode, b.block() instanceof PowerNode); + int type = -Boolean.compare(a.block instanceof PowerNode, b.block instanceof PowerNode); if(type != 0) return type; return Float.compare(a.dst2(tile), b.dst2(tile)); }); @@ -235,11 +237,11 @@ public class PowerNode extends PowerBlock{ } public boolean linkValid(Building tile, Building link, boolean checkMaxNodes){ - if(tile == link || link == null || !link.block().hasPower || tile.team != link.team) return false; + if(tile == link || link == null || !link.block.hasPower || tile.team != link.team) return false; - if(overlaps(tile, link, laserRange * tilesize) || (link.block() instanceof PowerNode && overlaps(link, tile, ((PowerNode)link.block()).laserRange * tilesize))){ - if(checkMaxNodes && link.block() instanceof PowerNode){ - return link.power.links.size < ((PowerNode)link.block()).maxNodes || link.power.links.contains(tile.pos()); + if(overlaps(tile, link, laserRange * tilesize) || (link.block instanceof PowerNode && overlaps(link, tile, ((PowerNode)link.block).laserRange * tilesize))){ + if(checkMaxNodes && link.block instanceof PowerNode){ + return link.power.links.size < ((PowerNode)link.block).maxNodes || link.power.links.contains(tile.pos()); } return true; } @@ -264,7 +266,7 @@ public class PowerNode extends PowerBlock{ world.raycastEach(x, y, x2, y2, (wx, wy) -> { Building tile = world.build(wx, wy); - if(tile != null && tile.block().insulated){ + if(tile != null && tile.block.insulated){ iterator.get(tile); } @@ -278,8 +280,8 @@ public class PowerNode extends PowerBlock{ public void placed(){ if(net.client()) return; - Boolf valid = other -> other != null && other != this && ((!other.block().outputsPower && other.block().consumesPower) || - (other.block().outputsPower && !other.block().consumesPower) || other.block() instanceof PowerNode) && linkValid(this, other) + Boolf valid = other -> other != null && other != this && ((!other.block.outputsPower && other.block.consumesPower) || + (other.block.outputsPower && !other.block.consumesPower) || other.block instanceof PowerNode) && linkValid(this, other) && !other.proximity().contains(this) && other.power.graph != power.graph; tempTileEnts.clear(); @@ -293,7 +295,7 @@ public class PowerNode extends PowerBlock{ }); tempTileEnts.sort((a, b) -> { - int type = -Boolean.compare(a.block() instanceof PowerNode, b.block() instanceof PowerNode); + int type = -Boolean.compare(a.block instanceof PowerNode, b.block instanceof PowerNode); if(type != 0) return type; return Float.compare(a.dst2(tile), b.dst2(tile)); }); @@ -371,7 +373,7 @@ public class PowerNode extends PowerBlock{ boolean linked = linked(link); if(linked){ - Drawf.square(link.x, link.y, link.block().size * tilesize / 2f + 1f, Pal.place); + Drawf.square(link.x, link.y, link.block.size * tilesize / 2f + 1f, Pal.place); } } } @@ -393,7 +395,7 @@ public class PowerNode extends PowerBlock{ if(!linkValid(this, link)) continue; - if(link.block() instanceof PowerNode && !(link.pos() < tile.pos())) continue; + if(link.block instanceof PowerNode && !(link.pos() < tile.pos())) continue; drawLaserTo(link); } @@ -406,7 +408,7 @@ public class PowerNode extends PowerBlock{ } protected void drawLaserTo(Building target){ - drawLaser(team, x, y, target.x, target.y, power.graph.getSatisfaction(), size, target.block().size); + drawLaser(team, x, y, target.x, target.y, power.graph.getSatisfaction(), size, target.block.size); } @Override diff --git a/core/src/mindustry/world/blocks/power/SolarGenerator.java b/core/src/mindustry/world/blocks/power/SolarGenerator.java index 94e94c1c68..d5f37329ae 100644 --- a/core/src/mindustry/world/blocks/power/SolarGenerator.java +++ b/core/src/mindustry/world/blocks/power/SolarGenerator.java @@ -26,10 +26,10 @@ public class SolarGenerator extends PowerGenerator{ public void updateTile(){ productionEfficiency = enabled ? Mathf.maxZero(Attribute.light.env() + - (state.rules.solarPowerMultiplier < 0 ? - (state.rules.lighting ? 1f - state.rules.ambientLight.a : 1f) : - state.rules.solarPowerMultiplier - )) : 0f; + (state.rules.lighting ? + 1f - state.rules.ambientLight.a : + 1f + )) : 0f; } } } diff --git a/core/src/mindustry/world/blocks/production/PayloadAcceptor.java b/core/src/mindustry/world/blocks/production/PayloadAcceptor.java index 3e365b5fcd..e7456f0287 100644 --- a/core/src/mindustry/world/blocks/production/PayloadAcceptor.java +++ b/core/src/mindustry/world/blocks/production/PayloadAcceptor.java @@ -28,22 +28,22 @@ public class PayloadAcceptor extends Block{ } public static boolean blends(Building tile, int direction){ - int size = tile.block().size; + int size = tile.block.size; Building accept = tile.nearby(Geometry.d4(direction).x * size, Geometry.d4(direction).y * size); return accept != null && - accept.block().outputsPayload && + accept.block.outputsPayload && //if size is the same, block must either be facing this one, or not be rotating - ((accept.block().size == size && + ((accept.block.size == size && ((accept.tileX() + Geometry.d4(accept.rotation).x * size == tile.tileX() && accept.tileY() + Geometry.d4(accept.rotation).y * size == tile.tileY()) - || !accept.block().rotate || (accept.block().rotate && !accept.block().outputFacing))) || + || !accept.block.rotate || (accept.block.rotate && !accept.block.outputFacing))) || //if the other block is smaller, check alignment - (accept.block().size < size && + (accept.block.size < size && (accept.rotation % 2 == 0 ? //check orientation; make sure it's aligned properly with this block. - Math.abs(accept.y - tile.y) <= (size * tilesize - accept.block().size * tilesize)/2f : //check Y alignment - Math.abs(accept.x - tile.x) <= (size * tilesize - accept.block().size * tilesize)/2f //check X alignment - )) && (!accept.block().rotate || accept.front() == tile || !accept.block().outputFacing) //make sure it's facing this block + Math.abs(accept.y - tile.y) <= (size * tilesize - accept.block.size * tilesize)/2f : //check Y alignment + Math.abs(accept.x - tile.x) <= (size * tilesize - accept.block.size * tilesize)/2f //check X alignment + )) && (!accept.block.rotate || accept.front() == tile || !accept.block.outputFacing) //make sure it's facing this block ); } @@ -112,7 +112,7 @@ public class PayloadAcceptor extends Block{ payVector.clamp(-size * tilesize / 2f, -size * tilesize / 2f, size * tilesize / 2f, size * tilesize / 2f); Building front = front(); - if(front != null && front.block().outputsPayload){ + if(front != null && front.block.outputsPayload){ if(movePayload(payload)){ payload = null; } diff --git a/core/src/mindustry/world/blocks/sandbox/ItemSource.java b/core/src/mindustry/world/blocks/sandbox/ItemSource.java index 70933f737b..fb28247758 100644 --- a/core/src/mindustry/world/blocks/sandbox/ItemSource.java +++ b/core/src/mindustry/world/blocks/sandbox/ItemSource.java @@ -52,11 +52,13 @@ public class ItemSource extends Block{ public void draw(){ super.draw(); - if(outputItem == null) return; - - Draw.color(outputItem.color); - Draw.rect("center", x, y); - Draw.color(); + if(outputItem == null){ + Draw.rect("cross", x, y); + }else{ + Draw.color(outputItem.color); + Draw.rect("center", x, y); + Draw.color(); + } } @Override diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java index ce5d657527..f2e57156f6 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java @@ -25,6 +25,7 @@ public class LiquidSource extends Block{ outputsLiquid = true; saveConfig = true; noUpdateDisabled = true; + displayFlow = false; config(Liquid.class, (LiquidSourceBuild tile, Liquid l) -> tile.source = l); configClear((LiquidSourceBuild tile) -> tile.source = null); @@ -59,7 +60,9 @@ public class LiquidSource extends Block{ public void draw(){ super.draw(); - if(source != null){ + if(source == null){ + Draw.rect("cross", x, y); + }else{ Draw.color(source.color); Draw.rect("center", x, y); Draw.color(); diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index 2879f6e77b..44004ded7e 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -143,7 +143,7 @@ public class CoreBlock extends StorageBlock{ if(!canPlaceOn(world.tile(x, y), player.team())){ - drawPlaceText(Core.bundle.get((player.team().core() != null && player.team().core().items.has(requirements) && !state.rules.infiniteResources) ? + drawPlaceText(Core.bundle.get((player.team().core() != null && player.team().core().items.has(requirements)) || state.rules.infiniteResources ? "bar.corereq" : "bar.noresources" ), x, y, valid); @@ -180,6 +180,12 @@ public class CoreBlock extends StorageBlock{ } } + @Override + public boolean canPickup(){ + //cores can never be picked up + return false; + } + @Override public void drawLight(){ Drawf.light(team, x, y, 30f * size, Pal.accent, 0.5f + Mathf.absin(20f, 0.1f)); @@ -204,7 +210,7 @@ public class CoreBlock extends StorageBlock{ } state.teams.registerCore(this); - storageCapacity = itemCapacity + proximity().sum(e -> isContainer(e) && owns(e) ? e.block().itemCapacity : 0); + storageCapacity = itemCapacity + proximity().sum(e -> isContainer(e) && owns(e) ? e.block.itemCapacity : 0); proximity.each(e -> isContainer(e) && owns(e), t -> { t.items = items; ((StorageBuild)t).linkedCore = this; @@ -212,7 +218,7 @@ public class CoreBlock extends StorageBlock{ for(Building other : state.teams.cores(team)){ if(other.tile() == tile) continue; - storageCapacity += other.block().itemCapacity + other.proximity().sum(e -> isContainer(e) && owns(other, e) ? e.block().itemCapacity : 0); + storageCapacity += other.block.itemCapacity + other.proximity().sum(e -> isContainer(e) && owns(other, e) ? e.block.itemCapacity : 0); } if(!world.isGenerating()){ @@ -232,7 +238,7 @@ public class CoreBlock extends StorageBlock{ Cons outline = t -> { for(int i = 0; i < 4; i++){ Point2 p = Geometry.d8edge[i]; - float offset = -Math.max(t.block().size - 1, 0) / 2f * tilesize; + float offset = -Math.max(t.block.size - 1, 0) / 2f * tilesize; Draw.rect("block-select", t.x + offset * p.x, t.y + offset * p.y, i * 90); } }; diff --git a/core/src/mindustry/world/blocks/storage/Unloader.java b/core/src/mindustry/world/blocks/storage/Unloader.java index 1ca83e08d4..86ce15956e 100644 --- a/core/src/mindustry/world/blocks/storage/Unloader.java +++ b/core/src/mindustry/world/blocks/storage/Unloader.java @@ -51,7 +51,7 @@ public class Unloader extends Block{ public void updateTile(){ if(timer(timerUnload, speed / timeScale())){ for(Building other : proximity){ - if(other.interactable(team) && other.block().unloadable && other.block().hasItems + if(other.interactable(team) && other.block.unloadable && other.block.hasItems && ((sortItem == null && other.items.total() > 0) || (sortItem != null && other.items.has(sortItem)))){ //make sure the item can't be dumped back into this block dumpingTo = other; @@ -99,7 +99,7 @@ public class Unloader extends Block{ @Override public boolean canDump(Building to, Item item){ - return !(to.block() instanceof StorageBlock) && to != dumpingTo; + return !(to.block instanceof StorageBlock) && to != dumpingTo; } @Override diff --git a/core/src/mindustry/world/blocks/units/RepairPoint.java b/core/src/mindustry/world/blocks/units/RepairPoint.java index d0670783c8..609452cc2b 100644 --- a/core/src/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/mindustry/world/blocks/units/RepairPoint.java @@ -73,7 +73,7 @@ public class RepairPoint extends Block{ Draw.rect(region, x, y, rotation - 90); if(target != null && Angles.angleDist(angleTo(target), rotation) < 30f){ - Draw.z(Layer.power); + Draw.z(Layer.flyingUnit + 1); //above all units float ang = angleTo(target); float len = 5f; diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index 4cddee5135..67f7b50a88 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -223,7 +223,7 @@ public class UnitFactory extends UnitBlock{ if(currentPlan != -1 && !Units.canCreate(team, plans[currentPlan].unit)){ return false; } - return enabled; + return enabled && payload == null; } @Override diff --git a/core/src/mindustry/world/consumers/ConsumeItemDynamic.java b/core/src/mindustry/world/consumers/ConsumeItemDynamic.java index 277146f156..5f3a13609a 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemDynamic.java +++ b/core/src/mindustry/world/consumers/ConsumeItemDynamic.java @@ -1,7 +1,6 @@ package mindustry.world.consumers; import arc.func.*; -import arc.math.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.ArcAnnotate.*; @@ -48,7 +47,7 @@ public class ConsumeItemDynamic extends Consume{ for(ItemStack stack : items.get(tile)){ table.add(new ReqImage(new ItemImage(stack.item.icon(Cicon.medium), stack.amount), - () -> tile.items != null && tile.items.has(stack.item, stack.amount))).size(8 * 4).padRight(6 * Mathf.digits(stack.amount)); + () -> tile.items != null && tile.items.has(stack.item, stack.amount))).padRight(8); } } diff --git a/core/src/mindustry/world/consumers/ConsumeItems.java b/core/src/mindustry/world/consumers/ConsumeItems.java index 53eb92ebae..0fd0cdf26c 100644 --- a/core/src/mindustry/world/consumers/ConsumeItems.java +++ b/core/src/mindustry/world/consumers/ConsumeItems.java @@ -1,8 +1,7 @@ package mindustry.world.consumers; -import arc.math.*; -import arc.struct.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.ArcAnnotate.*; import mindustry.gen.*; import mindustry.type.*; @@ -38,7 +37,7 @@ public class ConsumeItems extends Consume{ public void build(Building tile, Table table){ for(ItemStack stack : items){ table.add(new ReqImage(new ItemImage(stack.item.icon(Cicon.medium), stack.amount), - () -> tile.items != null && tile.items.has(stack.item, stack.amount))).size(8 * 4).padRight(Mathf.digits(stack.amount) * 6); + () -> tile.items != null && tile.items.has(stack.item, stack.amount))).padRight(8); } } diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidBase.java b/core/src/mindustry/world/consumers/ConsumeLiquidBase.java index 323a2897ac..f2cae7676e 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidBase.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidBase.java @@ -23,6 +23,6 @@ public abstract class ConsumeLiquidBase extends Consume{ } protected float use(Building entity){ - return Math.min(amount * entity.delta(), entity.block().liquidCapacity); + return Math.min(amount * entity.delta(), entity.block.liquidCapacity); } } diff --git a/core/src/mindustry/world/consumers/Consumers.java b/core/src/mindustry/world/consumers/Consumers.java index 99fff57632..8683c6d158 100644 --- a/core/src/mindustry/world/consumers/Consumers.java +++ b/core/src/mindustry/world/consumers/Consumers.java @@ -34,6 +34,10 @@ public class Consumers{ return get(ConsumeType.power); } + public ConsumeItems getItem(){ + return get(ConsumeType.item); + } + public boolean hasPower(){ return has(ConsumeType.power); } diff --git a/core/src/mindustry/world/meta/StatUnit.java b/core/src/mindustry/world/meta/StatUnit.java index 5136280e8a..4cdc6a6182 100644 --- a/core/src/mindustry/world/meta/StatUnit.java +++ b/core/src/mindustry/world/meta/StatUnit.java @@ -17,6 +17,7 @@ public enum StatUnit{ degrees, seconds, perSecond, + perMinute, timesSpeed(false), percent(false), none, diff --git a/core/src/mindustry/world/modules/ConsumeModule.java b/core/src/mindustry/world/modules/ConsumeModule.java index 027e5595a9..431fa3fd1f 100644 --- a/core/src/mindustry/world/modules/ConsumeModule.java +++ b/core/src/mindustry/world/modules/ConsumeModule.java @@ -37,7 +37,7 @@ public class ConsumeModule extends BlockModule{ optionalValid = true; boolean docons = entity.shouldConsume() && entity.productionValid(); - for(Consume cons : entity.block().consumes.all()){ + for(Consume cons : entity.block.consumes.all()){ if(cons.isOptional()) continue; if(docons && cons.isUpdate() && prevValid && cons.valid(entity)){ @@ -47,7 +47,7 @@ public class ConsumeModule extends BlockModule{ valid &= cons.valid(entity); } - for(Consume cons : entity.block().consumes.optionals()){ + for(Consume cons : entity.block.consumes.optionals()){ if(docons && cons.isUpdate() && prevValid && cons.valid(entity)){ cons.update(entity); } @@ -57,7 +57,7 @@ public class ConsumeModule extends BlockModule{ } public void trigger(){ - for(Consume cons : entity.block().consumes.all()){ + for(Consume cons : entity.block.consumes.all()){ cons.trigger(entity); } } diff --git a/core/src/mindustry/world/modules/LiquidModule.java b/core/src/mindustry/world/modules/LiquidModule.java index 292df3198a..95dfc2f621 100644 --- a/core/src/mindustry/world/modules/LiquidModule.java +++ b/core/src/mindustry/world/modules/LiquidModule.java @@ -20,6 +20,7 @@ public class LiquidModule extends BlockModule{ private Liquid current = content.liquid(0); private float smoothLiquid; + private boolean hadFlow; private @Nullable WindowedMean flow; private float lastAdded, currentFlowRate; @@ -29,6 +30,8 @@ public class LiquidModule extends BlockModule{ if(flowTimer.get(1, pollScl)){ if(flow == null) flow = new WindowedMean(windowSize); + if(lastAdded > 0.0001f) hadFlow = true; + flow.add(lastAdded); lastAdded = 0; if(currentFlowRate < 0 || flowTimer.get(updateInterval)){ @@ -38,6 +41,7 @@ public class LiquidModule extends BlockModule{ }else{ currentFlowRate = -1f; flow = null; + hadFlow = false; } } @@ -46,6 +50,10 @@ public class LiquidModule extends BlockModule{ return currentFlowRate * 60; } + public boolean hadFlow(){ + return hadFlow; + } + public float smoothAmount(){ return smoothLiquid; } diff --git a/desktop/src/mindustry/desktop/DesktopLauncher.java b/desktop/src/mindustry/desktop/DesktopLauncher.java index a2f6db7d56..bd9ec3e81b 100644 --- a/desktop/src/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/mindustry/desktop/DesktopLauncher.java @@ -170,11 +170,11 @@ public class DesktopLauncher extends ClientLauncher{ String finalMessage = Strings.getFinalMesage(e); String total = Strings.getCauses(e).toString(); - if(total.contains("Couldn't create window") || total.contains("OpenGL 2.0 or higher") || total.toLowerCase().contains("pixel format") || total.contains("GLEW")){ + if(total.contains("Couldn't create window") || total.contains("OpenGL 2.0 or higher") || total.toLowerCase().contains("pixel format") || total.contains("GLEW")|| total.contains("unsupported combination of formats")){ dialog.get(() -> message( total.contains("Couldn't create window") ? "A graphics initialization error has occured! Try to update your graphics drivers:\n" + finalMessage : - "Your graphics card does not support OpenGL 2.0 with the framebuffer_object extension!\n" + + "Your graphics card does not support the right OpenGL features.\n" + "Try to update your graphics drivers. If this doesn't work, your computer may not support Mindustry.\n\n" + "Full message: " + finalMessage)); badGPU = true; diff --git a/desktop/src/mindustry/desktop/steam/SStats.java b/desktop/src/mindustry/desktop/steam/SStats.java index 2ee13bea4e..ce24a22635 100644 --- a/desktop/src/mindustry/desktop/steam/SStats.java +++ b/desktop/src/mindustry/desktop/steam/SStats.java @@ -65,7 +65,7 @@ public class SStats implements SteamUserStatsCallback{ } for(Building entity : player.team().cores()){ - if(!content.items().contains(i -> entity.items.get(i) < entity.block().itemCapacity)){ + if(!content.items().contains(i -> entity.items.get(i) < entity.block.itemCapacity)){ fillCoreAllCampaign.complete(); break; } @@ -109,7 +109,7 @@ public class SStats implements SteamUserStatsCallback{ if(campaign() && e.unit != null && e.unit.isLocal() && !e.breaking){ SStat.blocksBuilt.add(); - if(e.tile.block() == Blocks.router && e.tile.build.proximity().contains(t -> t.block() == Blocks.router)){ + if(e.tile.block() == Blocks.router && e.tile.build.proximity().contains(t -> t.block == Blocks.router)){ chainRouters.complete(); } diff --git a/fastlane/metadata/android/hi-IN/full_description.txt b/fastlane/metadata/android/hi-IN/full_description.txt new file mode 100644 index 0000000000..5f41ca22c8 --- /dev/null +++ b/fastlane/metadata/android/hi-IN/full_description.txt @@ -0,0 +1,15 @@ +बारूद को अपने बुर्ज में खिलाने के लिए कन्वेयर बेल्ट की विस्तृत आपूर्ति श्रृंखला बनाएं, निर्माण के लिए उपयोग करने के लिए सामग्री का उत्पादन करें, और दुश्मनों की लहरों से अपनी संरचनाओं का बचाव करें। क्रॉस-प्लेटफ़ॉर्म मल्टीप्लेयर सह-ऑप गेम्स में अपने दोस्तों के साथ खेलें, या टीम-आधारित PvP मैचों में उन्हें चुनौती दें। + +इसमें शामिल है: + +- 24 निर्मित नक्शे +- एक अभियान, एक टेक ट्री और अनलॉक करने योग्य क्षेत्रों के साथ पूरा +- 4 शक्तिशाली लहर मालिकों को हराने के लिए +- ऊर्जा, तरल और आइटम परिवहन प्रणाली +- 19 विभिन्न प्रकार के ड्रोन, मेच और जहाज +- मास्टर करने के लिए 120+ प्रौद्योगिकी ब्लॉक +- 75+ विभिन्न पर्यावरण ब्लॉक +- स्थानीय नेटवर्क या समर्पित सर्वरस के माध्यम से क्रॉस-प्लेटफॉर्म मल्टीप्लेयर +- कस्टम खेल के नियम: ब्लॉक की लागत, दुश्मन के आँकड़े, शुरू आइटम, लहर समय और अधिक बदलें +- एक शक्तिशाली संपादक, यादृच्छिक रूप से अयस्कों, इलाकों, सजावट को बनाने और मानचित्रों के लिए समरूपता को लागू करने के लिए उपकरण के साथ +- अनुकूलन योग्य मानचित्र तरंग लेआउट \ No newline at end of file diff --git a/fastlane/metadata/android/hi-IN/short_description.txt b/fastlane/metadata/android/hi-IN/short_description.txt new file mode 100644 index 0000000000..5a7eaf7783 --- /dev/null +++ b/fastlane/metadata/android/hi-IN/short_description.txt @@ -0,0 +1 @@ +एक कारखाने आधारित सैंडबॉक्स टॉवर रक्षा खेल। \ No newline at end of file diff --git a/fastlane/metadata/android/hi-IN/summary.txt b/fastlane/metadata/android/hi-IN/summary.txt new file mode 100644 index 0000000000..5a7eaf7783 --- /dev/null +++ b/fastlane/metadata/android/hi-IN/summary.txt @@ -0,0 +1 @@ +एक कारखाने आधारित सैंडबॉक्स टॉवर रक्षा खेल। \ No newline at end of file diff --git a/fastlane/metadata/android/hi-IN/title.txt b/fastlane/metadata/android/hi-IN/title.txt new file mode 100644 index 0000000000..36df84b3d7 --- /dev/null +++ b/fastlane/metadata/android/hi-IN/title.txt @@ -0,0 +1 @@ +मिन्दुस्त्र्यि (Mindustry) \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index ee83875d3c..33d19865f7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=a72f08a6812107fdf4462b7c6955efc19a67715b +archash=d6bdccc18388202ee5f75f8b80ce15cc6cea7e30 diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index 366f9b1d4e..5b5935f641 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -491,7 +491,7 @@ public class ServerControl implements ApplicationListener{ } for(Item item : content.items()){ - state.teams.cores(team).first().items.set(item, state.teams.cores(team).first().block().itemCapacity); + state.teams.cores(team).first().items.set(item, state.teams.cores(team).first().block.itemCapacity); } info("Core filled."); @@ -749,7 +749,7 @@ public class ServerControl implements ApplicationListener{ boolean add = arg[0].equals("add"); PlayerInfo target; - Player playert = Groups.player.find(p -> p.name().equalsIgnoreCase(arg[1])); + Player playert = Groups.player.find(p -> p.name.equalsIgnoreCase(arg[1])); if(playert != null){ target = playert.getInfo(); }else{ @@ -763,7 +763,7 @@ public class ServerControl implements ApplicationListener{ }else{ netServer.admins.unAdminPlayer(target.id); } - if(playert != null) playert.admin(add); + if(playert != null) playert.admin = add; info("Changed admin status of player: &ly@", target.lastName); }else{ err("Nobody with that name or ID could be found. If adding an admin by name, make sure they're online; otherwise, use their UUID."); diff --git a/servers.json b/servers.json index 1c6b468d28..07226a273f 100644 --- a/servers.json +++ b/servers.json @@ -1,7 +1,4 @@ [ - { - "address": "mindustry.us.to" - }, { "address": "mindustry.indielm.com:1101" }, @@ -44,6 +41,9 @@ { "address": "aamindustry.play.ai" }, + { + "address": "aamindustry.play.ai:6568" + }, { "address": "mindustry.atannergaming.com" }, diff --git a/servers_be.json b/servers_be.json index 5c007872e5..047dfba7e0 100644 --- a/servers_be.json +++ b/servers_be.json @@ -1,6 +1,6 @@ [ { - "address": "mindustry.us.to:6568" + "address": "mindustry.us.to" }, { "address": "nydustry.nydus.app:6060" @@ -10,5 +10,8 @@ }, { "address": "routerchain.ddns.net" + }, + { + "address": "mindustry.pl:6666" } ] diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index d4192ca9c6..d689dbd5df 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -377,7 +377,7 @@ public class ApplicationTests{ world.tile(length + 1, 0).setBlock(new Block("___"){{ hasItems = true; destructible = true; - entityType = () -> new Building(){ + buildType = () -> new Building(){ @Override public void handleItem(Building source, Item item){ itemsa[0] ++; @@ -574,7 +574,7 @@ public class ApplicationTests{ }catch(Throwable t){ fail("Failed to update block '" + tile.block() + "'.", t); } - assertEquals(tile.block(), tile.build.block()); + assertEquals(tile.block(), tile.build.block); assertEquals(tile.block().health, tile.build.health()); } } diff --git a/tests/src/test/java/power/ItemLiquidGeneratorTests.java b/tests/src/test/java/power/ItemLiquidGeneratorTests.java index 64959780d1..08f636c566 100644 --- a/tests/src/test/java/power/ItemLiquidGeneratorTests.java +++ b/tests/src/test/java/power/ItemLiquidGeneratorTests.java @@ -39,7 +39,7 @@ public class ItemLiquidGeneratorTests extends PowerTestFixture{ powerProduction = 0.1f; itemDuration = fakeItemDuration; maxLiquidGenerate = maximumLiquidUsage; - entityType = ItemLiquidGeneratorBuild::new; + buildType = ItemLiquidGeneratorBuild::new; } @Override diff --git a/tests/src/test/java/power/PowerTestFixture.java b/tests/src/test/java/power/PowerTestFixture.java index 1c888070bf..994130a596 100644 --- a/tests/src/test/java/power/PowerTestFixture.java +++ b/tests/src/test/java/power/PowerTestFixture.java @@ -43,21 +43,21 @@ public class PowerTestFixture{ protected static PowerGenerator createFakeProducerBlock(float producedPower){ return new PowerGenerator("fakegen"){{ - entityType = () -> new GeneratorBuild(); + buildType = () -> new GeneratorBuild(); powerProduction = producedPower; }}; } protected static Battery createFakeBattery(float capacity){ return new Battery("fakebattery"){{ - entityType = () -> new BatteryBuild(); + buildType = () -> new BatteryBuild(); consumes.powerBuffered(capacity); }}; } protected static Block createFakeDirectConsumer(float powerPerTick){ return new PowerBlock("fakedirectconsumer"){{ - entityType = Building::create; + buildType = Building::create; consumes.power(powerPerTick); }}; } @@ -86,7 +86,7 @@ public class PowerTestFixture{ Reflect.set(Tile.class, tile, "floor", Blocks.sand); // Simulate the "changed" method. Calling it through reflections would require half the game to be initialized. - tile.build = block.newEntity().init(tile, Team.sharded, false, 0); + tile.build = block.newBuilding().init(tile, Team.sharded, false, 0); if(block.hasPower){ tile.build.power.graph = new PowerGraph(){ //assume there's always something consuming power diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index a2e0ca4661..f12be289bc 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -126,7 +126,7 @@ public class Generators{ Image colors = new Image(content.blocks().size, 1); for(Block block : content.blocks()){ - if(block.isAir() || block instanceof BuildBlock || block instanceof OreBlock || block instanceof LegacyBlock) continue; + if(block.isAir() || block instanceof ConstructBlock || block instanceof OreBlock || block instanceof LegacyBlock) continue; block.load(); diff --git a/tools/src/mindustry/tools/ImagePacker.java b/tools/src/mindustry/tools/ImagePacker.java index 9f359dd30a..ec2648d20b 100644 --- a/tools/src/mindustry/tools/ImagePacker.java +++ b/tools/src/mindustry/tools/ImagePacker.java @@ -123,7 +123,7 @@ public class ImagePacker{ map.each((key, val) -> content2id.put(val.split("\\|")[0], key)); Seq cont = Seq.withArrays(Vars.content.blocks(), Vars.content.items(), Vars.content.liquids(), Vars.content.units()); - cont.removeAll(u -> u instanceof BuildBlock || u == Blocks.air); + cont.removeAll(u -> u instanceof ConstructBlock || u == Blocks.air); int minid = 0xF8FF; for(String key : map.keys()){ diff --git a/tools/src/mindustry/tools/ScriptMainGenerator.java b/tools/src/mindustry/tools/ScriptMainGenerator.java index 06b76360d9..66a5233e29 100644 --- a/tools/src/mindustry/tools/ScriptMainGenerator.java +++ b/tools/src/mindustry/tools/ScriptMainGenerator.java @@ -11,6 +11,7 @@ import arc.struct.*; import arc.util.*; import mindustry.game.*; import mindustry.gen.*; +import mindustry.net.*; import java.io.*; import java.lang.reflect.*; @@ -41,6 +42,8 @@ public class ScriptMainGenerator{ classes.removeAll(type -> type.isSynthetic() || type.isAnonymousClass() || type.getCanonicalName() == null || Modifier.isPrivate(type.getModifiers()) || blacklist.contains(s -> type.getName().startsWith(base + "." + s + ".")) || nameBlacklist.contains(type.getSimpleName())); + classes.add(NetConnection.class); + classes.distinct(); classes.sortComparing(Class::getName); ObjectSet used = ObjectSet.with(); @@ -53,12 +56,12 @@ public class ScriptMainGenerator{ used.add(type.getPackage().getName()); } + Log.info("Imported @ packages.", used.size); + for(Class type : EventType.class.getClasses()){ result.append("const ").append(type.getSimpleName()).append(" = ").append("Packages.").append(type.getName().replace('$', '.')).append("\n"); } - //Log.info(result); - new Fi("core/assets/scripts/global.js").writeString(result.toString()); } diff --git a/tools/src/mindustry/tools/SectorDataGenerator.java b/tools/src/mindustry/tools/SectorDataGenerator.java index 34cc7c7200..622a0b2466 100644 --- a/tools/src/mindustry/tools/SectorDataGenerator.java +++ b/tools/src/mindustry/tools/SectorDataGenerator.java @@ -3,6 +3,7 @@ package mindustry.tools; import arc.*; import arc.backend.headless.mock.*; import arc.files.*; +import arc.math.geom.*; import arc.mock.*; import arc.struct.*; import arc.struct.ObjectIntMap.*; @@ -17,6 +18,7 @@ import mindustry.net.Net; import mindustry.type.*; import mindustry.type.Sector.*; import mindustry.world.*; +import mindustry.world.blocks.storage.*; import mindustry.world.blocks.storage.CoreBlock.*; import static mindustry.Vars.*; @@ -84,6 +86,19 @@ public class SectorDataGenerator{ CoreBuild entity = Team.sharded.core(); int cx = entity.tileX(), cy = entity.tileY(); + boolean path = pathfind(true); + boolean groundPath = pathfind(false); + + if(!path){ + Log.err("Sector &ly@&lr has no core path!", sector.id); + } + + if(!groundPath){ + Log.debug("&lbSector &ly@&lb is naval-only", sector.id); + + data.attributes |= (1 << SectorAttribute.navalPath.ordinal()); + } + int nearTiles = 0; int waterCheckRad = 5; @@ -150,7 +165,7 @@ public class SectorDataGenerator{ } if(count[0]++ % 10 == 0){ - Log.info("&lyDone with sector &lm@/@", count[0], planet.sectors.size); + Log.info("&ly[ &lg@% &ly] Done with sector &lm@/@ ", (int)((float)count[0] / planet.sectors.size * 100), count[0], planet.sectors.size); } return data; @@ -163,4 +178,51 @@ public class SectorDataGenerator{ } } } + + private static boolean pathfind(boolean allowWater){ + CoreBuild entity = Team.sharded.core(); + + IntSet enemies = new IntSet(); + world.tiles.eachTile(t -> { + if((t.team() == Team.crux && t.block() instanceof CoreBlock) || t.overlay() == Blocks.spawn){ + enemies.add(t.pos()); + } + }); + + GridBits used = new GridBits(world.width(), world.height()); + + IntQueue queue = new IntQueue(); + queue.addFirst(entity.pos()); + boolean any = false; + + outer: + while(!queue.isEmpty()){ + int pos = queue.removeFirst(); + int x = Point2.x(pos), y = Point2.y(pos); + used.set(x, y); + + for(Point2 p : Geometry.d4){ + int nx = p.x + x, ny = p.y + y; + + if(world.tiles.in(nx, ny) && !used.get(nx, ny)){ + Tile tile = world.tile(nx, ny); + + //skip full solids + if((tile.block().isStatic() && tile.solid()) || (!allowWater && tile.floor().isLiquid)) continue; + + int newpos = Point2.pack(nx, ny); + + used.set(nx, ny); + queue.addLast(newpos); + + if(enemies.contains(newpos)){ + any = true; + break outer; + } + } + } + } + + return any; + } }