diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 85459446aa..4c8606ea07 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -24,4 +24,5 @@ assignees: ''
---
*Place an X (no spaces) between the brackets to confirm that you have read the line below.*
+- [ ] **I have updated to the latest release (https://github.com/Anuken/Mindustry/releases) to make sure my issue has not been fixed.**
- [ ] **I have searched the closed and open issues to make sure that this problem has not already been reported.**
diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml
new file mode 100644
index 0000000000..1532c48561
--- /dev/null
+++ b/.github/workflows/deployment.yml
@@ -0,0 +1,59 @@
+name: Deployment
+
+on:
+ push:
+ tags:
+ - 'v*'
+
+jobs:
+ buildJava14:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 14
+ uses: actions/setup-java@v1
+ with:
+ java-version: 14
+ - name: Create artifacts
+ run: |
+ ./gradlew desktop:dist server:dist core:javadoc -Pbuildversion=${GITHUB_REF:1}
+ - name: Update docs
+ run: |
+ cd ../
+ git clone --depth=1 https://github.com/MindustryGame/docs.git
+ cp -a Mindustry/core/build/docs/javadoc/. docs/
+ cd docs
+ git add .
+ git commit -m "Update ${GITHUB_REF:1}"
+ git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/MindustryGame/docs
+ cd ../Mindustry
+ - name: Add Arc release
+ run: |
+ git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
+ cd ../Arc
+ git tag ${GITHUB_REF}
+ git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/Arc ${GITHUB_REF};
+ cd ../Mindustry
+ - name: Update F-Droid build string
+ run: |
+ git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
+ cd ../MindustryBuilds
+ echo "Updating version to ${GITHUB_REF:1}"
+ echo versionName=6-fdroid-${GITHUB_REF:1}$'\n'versionCode=${GITHUB_REF:1} > version_fdroid.txt
+ git add .
+ git commit -m "Updating to build ${GITHUB_REF:1}"
+ cd ../Mindustry
+ - name: Upload client artifacts
+ uses: svenstaro/upload-release-action@v2
+ with:
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ file: desktop/libs/Mindustry.jar
+ tag: ${{ github.ref }}
+ - name: Upload server artifacts
+ uses: svenstaro/upload-release-action@v2
+ with:
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ file: server/libs/server-release.jar
+ tag: ${{ github.ref }}
+
diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
deleted file mode 100644
index 490c317f03..0000000000
--- a/.github/workflows/gradle.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Java CI
-
-on: [push]
-
-jobs:
- buildJava14:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v1
- - name: Set up JDK 14
- uses: actions/setup-java@v1
- with:
- java-version: 14
- - name: Run unit tests with gradle and Java 14
- run: ./gradlew compileJava
- buildJava15:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v1
- - name: Set up JDK 15
- uses: actions/setup-java@v1
- with:
- java-version: 15
- - name: Run unit tests with gradle and Java 15
- run: ./gradlew compileJava
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 0000000000..81cf1ff4e9
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -0,0 +1,21 @@
+name: Pull Request Tests
+
+on: [pull_request]
+
+jobs:
+ buildJava14:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 14
+ uses: actions/setup-java@v1
+ with:
+ java-version: 14
+ - name: Run unit tests and build JAR
+ run: ./gradlew test desktop:dist
+ - name: Upload desktop JAR for testing
+ uses: actions/upload-artifact@v2
+ with:
+ name: Desktop JAR (zipped)
+ path: desktop/build/libs/Mindustry.jar
diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
new file mode 100644
index 0000000000..9436adb06c
--- /dev/null
+++ b/.github/workflows/push.yml
@@ -0,0 +1,24 @@
+name: Tests
+
+on: [push]
+
+jobs:
+ buildJava14:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 14
+ uses: actions/setup-java@v1
+ with:
+ java-version: 14
+ - name: Run unit tests
+ run: ./gradlew test
+ - name: Trigger BE build
+ run: |
+ git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
+ cd ../MindustryBuilds
+ BNUM=$(($GITHUB_RUN_NUMBER + 20000))
+ git tag ${BNUM}
+ git config --global user.name "Build Uploader"
+ git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds ${BNUM}
diff --git a/.gitignore b/.gitignore
index 543197c2f8..09bdd6ec4b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,12 +19,13 @@ logs/
/annotations/out/
/net/build/
/tools/build/
-/core/build/
/tests/build/
/server/build/
changelog
saves/
/core/assets-raw/fontgen/out/
+/core/assets-raw/fontgen/icons/
+/core/assets-raw/fontgen/icon_parts/
core/assets/saves/
/core/assets/saves/
steam_appid.txt
@@ -35,6 +36,7 @@ steam_appid.txt
/annotations/src/main/resources/META-INF/services
/core/assets/version.properties
/core/assets/locales
+/core/assets/cache/
/ios/src/mindustry/gen/
/core/src/mindustry/gen/
ios/robovm.properties
@@ -143,13 +145,6 @@ nb-configuration.xml
/local.properties
.gradle/
gradle-app.setting
-/build/
-/android/build/
-/core/build/
-/desktop/build/
-/html/build/
-/ios/build/
-/ios-moe/build/
## OS Specific
.DS_Store
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 11dbe8cd1e..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-jdk:
-- openjdk14
-dist: xenial
-android:
- components:
- - android-29
- - build-tools-29.0.3
-
-script:
-- git clone --depth=1 --branch=master https://github.com/Anuken/MindustryBuilds ../MindustryBuilds
-- cd ../MindustryBuilds
-- echo ${TRAVIS_TAG}
-- if [ -n "$TRAVIS_TAG" ]; then echo versionName=6-fdroid-${TRAVIS_TAG:1}$'\n'versionCode=${TRAVIS_TAG:1} > version_fdroid.txt; git add .; git commit -m "Updating to build ${TRAVIS_TAG}"; fi
-- git tag ${TRAVIS_BUILD_NUMBER}
-- git config --global user.name "Build Uploader"
-- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/MindustryBuilds ${TRAVIS_BUILD_NUMBER}; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/MindustryBuilds; fi
-- cd ../Mindustry
-- git clone --depth=1 --branch=master https://github.com/Anuken/Arc ../Arc
-- if [ -n "$TRAVIS_TAG" ]; then cd ../Arc; git tag ${TRAVIS_TAG}; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/Anuken/Arc ${TRAVIS_TAG}; cd ../Mindustry; fi
-- "./gradlew test"
-- "./gradlew desktop:dist -Pbuildversion=${TRAVIS_TAG:1}"
-- "./gradlew server:dist -Pbuildversion=${TRAVIS_TAG:1}"
-- "./gradlew core:javadoc"
-- cd ../
-- git clone --depth=1 https://github.com/MindustryGame/docs.git
-- cp -a Mindustry/core/build/docs/javadoc/. docs/
-- cd docs
-- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git add .; git commit -m "Update ${TRAVIS_BUILD_NUMBER}"; git push https://Anuken:${GH_PUSH_TOKEN}@github.com/MindustryGame/docs; fi
-- cd ../Mindustry
-deploy:
-- provider: releases
- skip_cleanup: true
- draft: false
- api_key:
- secure: Cv5wFtWt62/A24EvSEQvMow7gKPbZ3oATEFPuSghhB2TQz1dA40Zee3Qvk4LFlpLrhYo4K0ZSczCZRGpR+hCd8+Dpww52bheYEvWuh3ZQfvu/fXtEx2j5PwP1qMpmIgSxETV/gkD7l9FImdh0VzktYiAvQfmi0bEocG9/D4QwjFpNat7iwBdcMiw1MvAygpdIWRsjiw0RKlB2mWarmoHhQ7Gu7qlU3j50uaEvcrtmU0pBUPggNQwQRv32i9NPvNFxrqqlUjDLIS8JFea99zCkp8BwYqbEvBIMzd+Qip1/stLJJA3+cDUClbsDtg8rAVetzpOrdLEEBmqShFe5MDl2yEHcsgpN9CFsyTaUfvB3P3rVjizvycMm42IsUkXQiarm5xTQ/TIA8Rd8AHiSKuweNCg1Fd5SFaRtKy8JVLXuxyfUccmyje6hhz2L4lS2Wfj3mAG7sqZUCXhWP79EKdGkiPOjKv4CwXEKmuH3BMVqPlNUZJr9Eg3sV1FG0h2l+MVOOnR635qdUbb49sYojYxVruMLX0BH1c4ZCu230m8CUoWA1Em1QNI75ya7+9Y5T6AsgWDVpBvdUo9fWNbdp+VQ0GskFQsJD5wtnxbcbHeFiERAgGBm7z6qt9u9LrQpBH+dsW52ADvYsu3L4nQEa+sdMHwTTwmGY+iUvsxu0DqxGg=
- file:
- - desktop/build/libs/Mindustry.jar
- - server/build/libs/server-release.jar
- on:
- repo: Anuken/Mindustry
- tags: true
-#- provider: script
-# script: bash update_wiki.sh
-# on:
-# repo: Anuken/Mindustry
-# tags: true
-env:
- global:
- - secure: TqlUl/ojjkCMVOGbCTKz7Cnr4F08UyWzY/CiJ0vvUOGJGZ1qm7XavAlDf5XT0egU4mvr37THubFO8vojbqmrmy0oZnYh3njKFA8axgyZ8PyKkjGHOfd0i6qyEWsOr9H90/2X8r3LwEeLaDFyHpu3wljIGBjweg53g2qwmDwCFa9UR80FJZ+xDB+rD6B3cXT0DTEkCoLZXLqXm0Y3HvBdSuBL1LR/FNb2BSxNq+tNLGiz1kdQZV5erausbbZypBoGxzz63xAnyz2kkFz73A8xQYVTzGbFodTPz7HM13GVZ5s43I03Y+HYyHBgBaSLziO2hi2kzVJccOwzBp7wS4fs1MqsFY5+IeWJ9k+hm89NiYT7+6zlEgoUMlIniny1qLqWTzx7btUeuC/y/h5TVBNgaV+z0jmHycHfeSyq5I+vmX4J8qe3wmaN8TcdqYKU5nIznOTk3CM5Fzu0Bs9vkCkOxmormmcjMFW1RbdOLc/hpZWZggsBA88sNEAI8eq+r5QEeqzeCx8YKoZDjdrsqvgLMc3El3gS9oMGxkn0Y/TEcqs9Tc4BXtTkqIA68hD0DYzlAxYjVbbkAI9Hh9lHNvV3Dr/oCkGXQ/HflM143kj1L3tSBZpqeqQE2XhngB5nqpS3OZTmZbMTQ8qD2luU18yaTGMLF5tJS/fdKPRx0gQ1kL8=
- - secure: VEskj/0TVX2o7iUVXuVPysj/VSWmPhDl57SrT7/nBNN/P/8N5jFAvx8PMzG7qT0S5FzKxuV20psE4WylUGRKdeRtK7/QNBV7T3YqYYM6BUB1VeRpxe5hLxTeuBK3izglFO8DkdDqjUtzQSjzkoYT75ilROjhBrBUPhVek7UlbBHbaklPWYFXHnJmYS1FpZTdzqIj+Y0Gd1PSL2MzK4X74aAHl0qaDgsTwYwtKs7IAz+kFaTZBRpi9VjQHAFhDlkDR3jo9wQjH8/F6x0lCgV/FulSc37Okdb40sLFG98xcEA6gWh1NPMkz8CulUdVE7mj7SJNxLbNvoMNrWOVRjmEsn59p/9LiNC1F9ncFz9vjQjAmi7rMFFGHGxe5nn8cIAkpTvHQQkZoWHAA9SNJTDMMf09m2pRy/vvzx+a6NVxyC9iNrhLlnBg4gxAqRh0S6NU0uL+fuygKixn7rqlnb7KMT7bAbfcuV+dng6c8V7hYKDCh7sJbH8iJump1xkwoM7ecnU8fxJF/oKOr/fbk0Bfxu+Q9qYLrV1+DEdm93Vl2Thq+DBKmI66jRGSva6HeCLFo81PEiEjP1nLv75+kvVfOqVqJrZD1BrvoG2eWT/3hVLrN2kEIWWlpvQVC7FL11yWmYtAuOBh/vfhI76zKr+YTS6ccG9rqW4XeYjJytshe8M=
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 143a73d6b8..8b4ec3bf55 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -30,7 +30,7 @@ This means:
- No underscores for anything. (Yes, I know `Bindings` violates this principle, but that's for legacy reasons and really should be cleaned up some day)
- Do not use braceless `if/else` statements. `if(x) statement else statement2` should **never** be done. In very specific situations, having braceless if-statements on one line is allowed: `if(cond) return;` would be valid.
- Prefer single-line javadoc `/** @return for example */` instead of multiline javadoc whenver possible
-- Short method/variable names (multipleLongWords should be avoided if it's possible to so reasonably, especially for variables)
+- Short method/variable names (multipleLongWords should be avoided if it's possible to do so reasonably, especially for variables)
- Use wildcard imports - `import some.package.*` - for everything. This makes incorrect class usage more obvious (*e.g. arc.util.Timer vs java.util.Timer*) and leads to cleaner-looking code.
Import [this style file](.github/Mindustry-CodeStyle-IJ.xml) into IntelliJ to get correct formatting when developing Mindustry.
diff --git a/README.md b/README.md
index 13f620832f..882d0b15ae 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@

[](https://travis-ci.org/Anuken/Mindustry)
-[](https://discord.gg/mindustry)
+[](https://discord.gg/mindustry)
A sandbox tower defense game written in Java.
@@ -61,18 +61,5 @@ Post feature requests and feedback [here](https://github.com/Anuken/Mindustry-Su
## Downloads
-[
](https://anuke.itch.io/mindustry)
-
-[
](https://play.google.com/store/apps/details?id=io.anuke.mindustry)
-
-[
](https://f-droid.org/packages/io.anuke.mindustry/)
-
-[
](https://flathub.org/apps/details/com.github.Anuken.Mindustry)
+| [](https://anuke.itch.io/mindustry) | [](https://play.google.com/store/apps/details?id=io.anuke.mindustry) | [](https://f-droid.org/packages/io.anuke.mindustry) | [](https://flathub.org/apps/details/com.github.Anuken.Mindustry) |
+|--- |--- |--- |--- |
diff --git a/android/build.gradle b/android/build.gradle
index 3ec6b34cfe..4fe5258d46 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -35,7 +35,8 @@ dependencies{
natives "com.github.Anuken.Arc:natives-box2d-android:${getArcHash()}"
//android dependencies magically disappear during compilation, thanks gradle!
- if(new File(projectDir.parent, '../Arc').exists()) compileOnly fileTree(dir: '../../Arc/backends/backend-android/libs', include: ['*.jar'])
+ def sdkFile = new File((String)findSdkDir(), "/platforms/android-29/android.jar")
+ if(sdkFile.exists()) compileOnly files(sdkFile.absolutePath)
}
task deploy(type: Copy){
diff --git a/android/src/mindustry/android/AndroidLauncher.java b/android/src/mindustry/android/AndroidLauncher.java
index 7400bd37a8..5084cbc67d 100644
--- a/android/src/mindustry/android/AndroidLauncher.java
+++ b/android/src/mindustry/android/AndroidLauncher.java
@@ -27,7 +27,6 @@ import java.util.*;
import static mindustry.Vars.*;
-
public class AndroidLauncher extends AndroidApplication{
public static final int PERMISSION_REQUEST_CODE = 1;
boolean doubleScaleTablets = true;
@@ -78,11 +77,11 @@ public class AndroidLauncher extends AndroidApplication{
}
@Override
- public void showFileChooser(boolean open, String extension, Cons cons){
- showFileChooser(open, cons, extension);
+ public void showFileChooser(boolean open, String title, String extension, Cons cons){
+ showFileChooser(open, title, cons, extension);
}
- void showFileChooser(boolean open, Cons cons, String... extensions){
+ void showFileChooser(boolean open, String title, Cons cons, String... extensions){
String extension = extensions[0];
if(VERSION.SDK_INT >= VERSION_CODES.Q){
@@ -119,7 +118,7 @@ public class AndroidLauncher extends AndroidApplication{
});
}else if(VERSION.SDK_INT >= VERSION_CODES.M && !(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
- chooser = new FileChooser(open ? "@open" : "@save", file -> Structs.contains(extensions, file.extension().toLowerCase()), open, file -> {
+ chooser = new FileChooser(title, file -> Structs.contains(extensions, file.extension().toLowerCase()), open, file -> {
if(!open){
cons.get(file.parent().child(file.nameWithoutExtension() + "." + extension));
}else{
@@ -137,16 +136,16 @@ public class AndroidLauncher extends AndroidApplication{
requestPermissions(perms.toArray(new String[0]), PERMISSION_REQUEST_CODE);
}else{
if(open){
- new FileChooser("@open", file -> Structs.contains(extensions, file.extension().toLowerCase()), true, cons).show();
+ new FileChooser(title, file -> Structs.contains(extensions, file.extension().toLowerCase()), true, cons).show();
}else{
- super.showFileChooser(open, extension, cons);
+ super.showFileChooser(open, "@open", extension, cons);
}
}
}
@Override
public void showMultiFileChooser(Cons cons, String... extensions){
- showFileChooser(true, cons, extensions);
+ showFileChooser(true, "@open", cons, extensions);
}
@Override
@@ -166,29 +165,33 @@ public class AndroidLauncher extends AndroidApplication{
}});
checkFiles(getIntent());
+ try{
+ //new external folder
+ Fi data = Core.files.absolute(getContext().getExternalFilesDir(null).getAbsolutePath());
+ Core.settings.setDataDirectory(data);
- //new external folder
- Fi data = Core.files.absolute(getContext().getExternalFilesDir(null).getAbsolutePath());
- Core.settings.setDataDirectory(data);
+ //move to internal storage if there's no file indicating that it moved
+ if(!Core.files.local("files_moved").exists()){
+ Log.info("Moving files to external storage...");
- //move to internal storage if there's no file indicating that it moved
- if(!Core.files.local("files_moved").exists()){
- Log.info("Moving files to external storage...");
-
- try{
- //current local storage folder
- Fi src = Core.files.absolute(Core.files.getLocalStoragePath());
- for(Fi fi : src.list()){
- fi.copyTo(data);
+ try{
+ //current local storage folder
+ Fi src = Core.files.absolute(Core.files.getLocalStoragePath());
+ for(Fi fi : src.list()){
+ fi.copyTo(data);
+ }
+ //create marker
+ Core.files.local("files_moved").writeString("files moved to " + data);
+ Core.files.local("files_moved_103").writeString("files moved again");
+ Log.info("Files moved.");
+ }catch(Throwable t){
+ Log.err("Failed to move files!");
+ t.printStackTrace();
}
- //create marker
- Core.files.local("files_moved").writeString("files moved to " + data);
- Core.files.local("files_moved_103").writeString("files moved again");
- Log.info("Files moved.");
- }catch(Throwable t){
- Log.err("Failed to move files!");
- t.printStackTrace();
}
+ }catch(Exception e){
+ //print log but don't crash
+ Log.err(e);
}
}
diff --git a/annotations/build.gradle b/annotations/build.gradle
index 4ee43cfcb3..4532472197 100644
--- a/annotations/build.gradle
+++ b/annotations/build.gradle
@@ -1,2 +1,2 @@
sourceSets.main.java.srcDirs = ["src/main/java/"]
-sourceSets.main.resources.srcDirs = ["src/main/resources/"]
\ No newline at end of file
+sourceSets.main.resources.srcDirs = ["src/main/resources/"]
diff --git a/annotations/src/main/java/mindustry/annotations/Annotations.java b/annotations/src/main/java/mindustry/annotations/Annotations.java
index 501c255d2e..88bd457e05 100644
--- a/annotations/src/main/java/mindustry/annotations/Annotations.java
+++ b/annotations/src/main/java/mindustry/annotations/Annotations.java
@@ -98,6 +98,8 @@ public class Annotations{
boolean serialize() default true;
/** Whether to generate IO code. This is for advanced usage only. */
boolean genio() default true;
+ /** Whether I made a massive mistake by merging two different class branches */
+ boolean legacy() default false;
}
/** Indicates an internal interface for entity components. */
diff --git a/annotations/src/main/java/mindustry/annotations/BaseProcessor.java b/annotations/src/main/java/mindustry/annotations/BaseProcessor.java
index 3cf9ac44b0..fd2c05dca2 100644
--- a/annotations/src/main/java/mindustry/annotations/BaseProcessor.java
+++ b/annotations/src/main/java/mindustry/annotations/BaseProcessor.java
@@ -115,12 +115,12 @@ public abstract class BaseProcessor extends AbstractProcessor{
return ClassName.get(c).box();
}
- public static TypeVariableName getTVN(TypeParameterElement element) {
+ public static TypeVariableName getTVN(TypeParameterElement element){
String name = element.getSimpleName().toString();
List extends TypeMirror> boundsMirrors = element.getBounds();
List boundsTypeNames = new ArrayList<>();
- for (TypeMirror typeMirror : boundsMirrors) {
+ for(TypeMirror typeMirror : boundsMirrors){
boundsTypeNames.add(TypeName.get(typeMirror));
}
@@ -137,11 +137,11 @@ public abstract class BaseProcessor extends AbstractProcessor{
if(imports != null){
String rawSource = file.toString();
Seq result = new Seq<>();
- for (String s : rawSource.split("\n", -1)) {
+ for(String s : rawSource.split("\n", -1)){
result.add(s);
- if (s.startsWith("package ")) {
+ if (s.startsWith("package ")){
result.add("");
- for (String i : imports) {
+ for (String i : imports){
result.add(i);
}
}
@@ -229,7 +229,7 @@ public abstract class BaseProcessor extends AbstractProcessor{
try{
process(roundEnv);
}catch(Throwable e){
- e.printStackTrace();
+ Log.err(e);
throw new RuntimeException(e);
}
return true;
diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java
index 1cd5f7c4e5..8eba0ec683 100644
--- a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java
+++ b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java
@@ -240,7 +240,6 @@ public class EntityProcess extends BaseProcessor{
//look at each definition
for(Selement> type : allDefs){
EntityDef ann = type.annotation(EntityDef.class);
- boolean isFinal = ann.isFinal();
//all component classes (not interfaces)
Seq components = allComponents(type);
@@ -274,6 +273,10 @@ public class EntityProcess extends BaseProcessor{
name += "Entity";
}
+ if(ann.legacy()){
+ name += "Legacy" + Strings.capitalize(type.name());
+ }
+
//skip double classes
if(usedNames.containsKey(name)){
extraNames.get(usedNames.get(name), ObjectSet::new).add(type.name());
diff --git a/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java b/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java
index 8e22e33db9..c38570a4d4 100644
--- a/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java
+++ b/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java
@@ -32,27 +32,40 @@ public class AssetsProcess extends BaseProcessor{
MethodSpec.Builder load = MethodSpec.methodBuilder("load").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
MethodSpec.Builder loadStyles = MethodSpec.methodBuilder("loadStyles").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
MethodSpec.Builder icload = MethodSpec.methodBuilder("load").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
+ CodeBlock.Builder ichinit = CodeBlock.builder();
String resources = rootDirectory + "/core/assets-raw/sprites/ui";
Jval icons = Jval.read(Fi.get(rootDirectory + "/core/assets-raw/fontgen/config.json").readString());
ObjectMap texIcons = new OrderedMap<>();
PropertiesUtils.load(texIcons, Fi.get(rootDirectory + "/core/assets/icons/icons.properties").reader());
+ StringBuilder iconcAll = new StringBuilder();
+
texIcons.each((key, val) -> {
String[] split = val.split("\\|");
String name = Strings.kebabToCamel(split[1]).replace("Medium", "").replace("Icon", "");
- if(SourceVersion.isKeyword(name) || name.equals("char")) name = name + "i";
+ if(SourceVersion.isKeyword(name) || name.equals("char")) name += "i";
- ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("(char)" + key).build());
+ ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).addJavadoc(String.format("\\u%04x", Integer.parseInt(key))).initializer("'" + ((char)Integer.parseInt(key)) + "'").build());
});
ictype.addField(FieldSpec.builder(ParameterizedTypeName.get(ObjectMap.class, String.class, TextureRegionDrawable.class),
"icons", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("new ObjectMap<>()").build());
+ ichtype.addField(FieldSpec.builder(ParameterizedTypeName.get(ObjectIntMap.class, String.class),
+ "codes", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("new ObjectIntMap<>()").build());
+
+ ObjectSet used = new ObjectSet<>();
+
for(Jval val : icons.get("glyphs").asArray()){
String name = capitalize(val.getString("css", ""));
+
+ if(!val.getBool("selected", true) || !used.add(name)) continue;
+
int code = val.getInt("code", 0);
- ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("(char)" + code).build());
+ iconcAll.append((char)code);
+ ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).addJavadoc(String.format("\\u%04x", code)).initializer("'" + ((char)code) + "'").build());
+ ichinit.addStatement("codes.put($S, $L)", name, code);
ictype.addField(TextureRegionDrawable.class, name + "Small", Modifier.PUBLIC, Modifier.STATIC);
icload.addStatement(name + "Small = mindustry.ui.Fonts.getGlyph(mindustry.ui.Fonts.def, (char)" + code + ")");
@@ -64,6 +77,9 @@ public class AssetsProcess extends BaseProcessor{
icload.addStatement("icons.put($S, " + name + "Small)", name + "Small");
}
+ ichtype.addField(FieldSpec.builder(String.class, "all", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("$S", iconcAll.toString()).build());
+ ichtype.addStaticBlock(ichinit.build());
+
Fi.get(resources).walk(p -> {
if(!p.extEquals("png")) return;
@@ -78,7 +94,7 @@ public class AssetsProcess extends BaseProcessor{
if(SourceVersion.isKeyword(varname)) varname += "s";
type.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC);
- load.addStatement(varname + " = ("+dtype+")arc.Core.atlas.drawable($S)", sfilen);
+ load.addStatement(varname + " = (" + dtype + ")arc.Core.atlas.drawable($S)", sfilen);
});
for(Element elem : elements){
@@ -106,7 +122,6 @@ public class AssetsProcess extends BaseProcessor{
HashSet names = new HashSet<>();
Fi.get(path).walk(p -> {
- String fname = p.name();
String name = p.nameWithoutExtension();
if(names.contains(name)){
@@ -115,23 +130,20 @@ public class AssetsProcess extends BaseProcessor{
names.add(name);
}
- if(SourceVersion.isKeyword(name)){
- name = name + "s";
- }
+ if(SourceVersion.isKeyword(name)) name += "s";
- String filepath = path.substring(path.lastIndexOf("/") + 1) + "/" + fname;
+ String filepath = path.substring(path.lastIndexOf("/") + 1) + p.path().substring(p.path().lastIndexOf(path) + path.length());
- String filename = "arc.Core.app.getType() != arc.Application.ApplicationType.iOS ? \"" + filepath + "\" : \"" + filepath.replace(".ogg", ".mp3")+"\"";
-
- loadBegin.addStatement("arc.Core.assets.load("+filename +", "+rtype+".class).loaded = a -> " + name + " = ("+rtype+")a", filepath, filepath.replace(".ogg", ".mp3"));
+ String filename = "\"" + filepath + "\"";
+ loadBegin.addStatement("arc.Core.assets.load(" + filename + ", " + rtype + ".class).loaded = a -> " + name + " = (" + rtype + ")a", filepath, filepath.replace(".ogg", ".mp3"));
dispose.addStatement("arc.Core.assets.unload(" + filename + ")");
dispose.addStatement(name + " = null");
- type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
+ type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio." + rtype.substring(rtype.lastIndexOf(".") + 1) + "()").build());
});
if(classname.equals("Sounds")){
- type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
+ type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio." + rtype.substring(rtype.lastIndexOf(".") + 1) + "()").build());
}
type.addMethod(loadBegin.build());
diff --git a/annotations/src/main/resources/classids.properties b/annotations/src/main/resources/classids.properties
index 43a3517ff0..293373a9df 100644
--- a/annotations/src/main/resources/classids.properties
+++ b/annotations/src/main/resources/classids.properties
@@ -1,10 +1,13 @@
#Maps entity names to IDs. Autogenerated.
alpha=0
+arkyid=29
atrax=1
+beta=30
block=2
corvus=24
flare=3
+gamma=31
mace=4
mega=5
mindustry.entities.comp.BuildingComp=6
@@ -26,6 +29,8 @@ oct=26
poly=18
pulsar=19
quad=23
+quasar=32
risso=20
spiroct=21
+toxopid=33
vela=25
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/alpha/0.json b/annotations/src/main/resources/revisions/alpha/0.json
new file mode 100644
index 0000000000..eff5fa651d
--- /dev/null
+++ b/annotations/src/main/resources/revisions/alpha/0.json
@@ -0,0 +1 @@
+{fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/arkyid/0.json b/annotations/src/main/resources/revisions/arkyid/0.json
new file mode 100644
index 0000000000..eff5fa651d
--- /dev/null
+++ b/annotations/src/main/resources/revisions/arkyid/0.json
@@ -0,0 +1 @@
+{fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/beta/0.json b/annotations/src/main/resources/revisions/beta/0.json
new file mode 100644
index 0000000000..eff5fa651d
--- /dev/null
+++ b/annotations/src/main/resources/revisions/beta/0.json
@@ -0,0 +1 @@
+{fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/block/3.json b/annotations/src/main/resources/revisions/block/3.json
new file mode 100644
index 0000000000..75c7a4a245
--- /dev/null
+++ b/annotations/src/main/resources/revisions/block/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/block/4.json b/annotations/src/main/resources/revisions/block/4.json
new file mode 100644
index 0000000000..7503c106b6
--- /dev/null
+++ b/annotations/src/main/resources/revisions/block/4.json
@@ -0,0 +1 @@
+{version:4,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/corvus/3.json b/annotations/src/main/resources/revisions/corvus/3.json
new file mode 100644
index 0000000000..75c7a4a245
--- /dev/null
+++ b/annotations/src/main/resources/revisions/corvus/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/corvus/4.json b/annotations/src/main/resources/revisions/corvus/4.json
new file mode 100644
index 0000000000..7503c106b6
--- /dev/null
+++ b/annotations/src/main/resources/revisions/corvus/4.json
@@ -0,0 +1 @@
+{version:4,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/flare/3.json b/annotations/src/main/resources/revisions/flare/3.json
new file mode 100644
index 0000000000..75c7a4a245
--- /dev/null
+++ b/annotations/src/main/resources/revisions/flare/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/flare/4.json b/annotations/src/main/resources/revisions/flare/4.json
new file mode 100644
index 0000000000..7503c106b6
--- /dev/null
+++ b/annotations/src/main/resources/revisions/flare/4.json
@@ -0,0 +1 @@
+{version:4,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/gamma/0.json b/annotations/src/main/resources/revisions/gamma/0.json
new file mode 100644
index 0000000000..eff5fa651d
--- /dev/null
+++ b/annotations/src/main/resources/revisions/gamma/0.json
@@ -0,0 +1 @@
+{fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/mace/3.json b/annotations/src/main/resources/revisions/mace/3.json
new file mode 100644
index 0000000000..811f101bd5
--- /dev/null
+++ b/annotations/src/main/resources/revisions/mace/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/mace/4.json b/annotations/src/main/resources/revisions/mace/4.json
new file mode 100644
index 0000000000..786a64a7e2
--- /dev/null
+++ b/annotations/src/main/resources/revisions/mace/4.json
@@ -0,0 +1 @@
+{version:4,fields:[{name:ammo,type:float},{name:armor,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/mono/3.json b/annotations/src/main/resources/revisions/mono/3.json
new file mode 100644
index 0000000000..364fdca813
--- /dev/null
+++ b/annotations/src/main/resources/revisions/mono/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/oct/2.json b/annotations/src/main/resources/revisions/oct/2.json
new file mode 100644
index 0000000000..87371c85dd
--- /dev/null
+++ b/annotations/src/main/resources/revisions/oct/2.json
@@ -0,0 +1 @@
+{version:2,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/pulsar/0.json b/annotations/src/main/resources/revisions/pulsar/0.json
new file mode 100644
index 0000000000..b2a9e3161a
--- /dev/null
+++ b/annotations/src/main/resources/revisions/pulsar/0.json
@@ -0,0 +1 @@
+{fields:[{name:ammo,type:float},{name:armor,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/quad/3.json b/annotations/src/main/resources/revisions/quad/3.json
new file mode 100644
index 0000000000..d091179927
--- /dev/null
+++ b/annotations/src/main/resources/revisions/quad/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/quasar/0.json b/annotations/src/main/resources/revisions/quasar/0.json
new file mode 100644
index 0000000000..b2a9e3161a
--- /dev/null
+++ b/annotations/src/main/resources/revisions/quasar/0.json
@@ -0,0 +1 @@
+{fields:[{name:ammo,type:float},{name:armor,type:float},{name:baseRotation,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/risso/3.json b/annotations/src/main/resources/revisions/risso/3.json
new file mode 100644
index 0000000000..75c7a4a245
--- /dev/null
+++ b/annotations/src/main/resources/revisions/risso/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/risso/4.json b/annotations/src/main/resources/revisions/risso/4.json
new file mode 100644
index 0000000000..7503c106b6
--- /dev/null
+++ b/annotations/src/main/resources/revisions/risso/4.json
@@ -0,0 +1 @@
+{version:4,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/spiroct/3.json b/annotations/src/main/resources/revisions/spiroct/3.json
new file mode 100644
index 0000000000..364fdca813
--- /dev/null
+++ b/annotations/src/main/resources/revisions/spiroct/3.json
@@ -0,0 +1 @@
+{version:3,fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/annotations/src/main/resources/revisions/toxopid/0.json b/annotations/src/main/resources/revisions/toxopid/0.json
new file mode 100644
index 0000000000..eff5fa651d
--- /dev/null
+++ b/annotations/src/main/resources/revisions/toxopid/0.json
@@ -0,0 +1 @@
+{fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:flag,type:double},{name:health,type:float},{name:isShooting,type:boolean},{name:mineTile,type:mindustry.world.Tile},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:plans,type:arc.struct.Queue},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index c94a79598a..5adc73c9ee 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,7 +17,7 @@ buildscript{
}
dependencies{
- classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.8'
+ classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.11'
classpath "com.github.anuken:packr:-SNAPSHOT"
classpath "com.github.Anuken.Arc:packer:$arcHash"
classpath "com.github.Anuken.Arc:arc-core:$arcHash"
@@ -36,7 +36,7 @@ allprojects{
if(!project.hasProperty("versionType")) versionType = 'official'
appName = 'Mindustry'
steamworksVersion = '891ed912791e01fe9ee6237a6497e5212b85c256'
- rhinoVersion = '8437435dab9993769d72739608580d40c5343285'
+ rhinoVersion = '2617981f706e50b8753155d8e15e326308be3b22'
loadVersionProps = {
return new Properties().with{p -> p.load(file('../core/assets/version.properties').newReader()); return p }
@@ -99,6 +99,17 @@ allprojects{
return project.ext.mainClassName.substring(0, project.ext.mainClassName.indexOf("desktop") - 1)
}
+ findSdkDir = {
+ //null because IntelliJ doesn't get env variables
+ def v = System.getenv("ANDROID_HOME")
+ if(v != null) return v
+ //rootDir is null here, amazing. brilliant.
+ def file = new File("local.properties")
+ if(!file.exists()) file = new File("../local.properties")
+ def props = new Properties().with{p -> p.load(file.newReader()); return p }
+ return props.get("sdk.dir")
+ }
+
generateLocales = {
def output = 'en\n'
def bundles = new File(project(':core').projectDir, 'assets/bundles/')
@@ -172,11 +183,20 @@ allprojects{
jcenter()
}
+ task clearCache{
+ doFirst{
+ delete{
+ delete "$rootDir/core/assets/cache"
+ }
+ }
+ }
+
tasks.withType(JavaCompile){
targetCompatibility = 8
sourceCompatibility = 14
options.encoding = "UTF-8"
options.compilerArgs += ["-Xlint:deprecation"]
+ dependsOn clearCache
}
}
diff --git a/core/assets-raw/fontgen/config.json b/core/assets-raw/fontgen/config.json
index 1c25eac26c..0a31462a8d 100644
--- a/core/assets-raw/fontgen/config.json
+++ b/core/assets-raw/fontgen/config.json
@@ -48,20 +48,6 @@
"code": 59397,
"src": "fontawesome"
},
- {
- "uid": "6f880cbd94039674f0de065ffb57c250",
- "css": "distribution",
- "code": 59398,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M0 0L0 50 0 100 0 150 0 200 0 250 0 300 0 350 0 400 0 450 0 500 0 550 0 600 0 650 0 700 0 750 0 800 0 850 0 900 0 950 0 1000 50 1000 100 1000 100 950 100 850 100 750 100 650 100 550 100 450 100 350 100 250 100 150 100 50 100 0 50 0 0 0ZM900 0L900 50 900 150 900 250 900 350 900 450 900 550 900 650 900 750 900 850 900 950 900 1000 950 1000 1000 1000 1000 950 1000 900 1000 850 1000 800 1000 750 1000 700 1000 650 1000 600 1000 550 1000 500 1000 450 1000 400 1000 350 1000 300 1000 250 1000 200 1000 150 1000 100 1000 50 1000 0 950 0 900 0ZM500 106.3C487.5 106.3 475 108.3 462.5 112.5 437.5 120.8 416.7 133.3 400 150L350 200C333.3 216.7 325 233.3 325 250 325 266.7 337.5 279.2 362.5 287.5 387.5 295.8 416.7 300 450 300L550 300C597.6 293.9 649.1 300.5 675 250 675 233.3 666.7 216.7 650 200L600 150C583.3 133.3 562.5 120.8 537.5 112.5 525 108.3 512.5 106.3 500 106.3ZM500 406.3C487.5 406.3 475 408.3 462.5 412.5 437.5 420.8 416.7 433.3 400 450L350 500C333.3 516.7 325 533.3 325 550 325 566.7 337.5 579.2 362.5 587.5 387.5 595.8 416.7 600 450 600L550 600C583.3 600 612.5 595.8 637.5 587.5 662.5 579.2 675 566.7 675 550 675 533.3 666.7 516.7 650 500L600 450C583.3 433.3 562.5 420.8 537.5 412.5 525 408.3 512.5 406.3 500 406.3ZM500 706.3C487.5 706.3 475 708.3 462.5 712.5 437.5 720.8 416.7 733.3 400 750L350 800C333.3 816.7 325 833.3 325 850 325 866.7 337.5 879.2 362.5 887.5 387.5 895.8 416.7 900 450 900L550 900C583.3 900 612.5 895.8 637.5 887.5 662.5 879.2 675 866.7 675 850 675 833.3 666.7 816.7 650 800L600 750C583.3 733.3 562.5 720.8 537.5 712.5 525 708.3 512.5 706.3 500 706.3Z",
- "width": 1000
- },
- "search": [
- "icon-distribution-transparent.png"
- ]
- },
{
"uid": "w3nzesrlbezu6f30q7ytyq919p6gdlb6",
"css": "home",
@@ -86,54 +72,18 @@
"code": 59401,
"src": "typicons"
},
- {
- "uid": "dd4b00255957a608953c409346e7d7fb",
- "css": "warning",
- "code": 59402,
- "src": "typicons"
- },
{
"uid": "cdfalpadi7huwv9ah4fef2gpfpb4c6qm",
"css": "resize",
"code": 59403,
"src": "typicons"
},
- {
- "uid": "j6xzwioffey3gxe90yx3ie56j5dlt902",
- "css": "block_",
- "code": 59404,
- "src": "typicons"
- },
- {
- "uid": "jh3jpcb1t1bcm80gidkadilh080aq79h",
- "css": "menu",
- "code": 59405,
- "src": "typicons"
- },
- {
- "uid": "dpxunrtmigvk6jm0ieo7axfsgzx4awll",
- "css": "settings",
- "code": 59406,
- "src": "typicons"
- },
{
"uid": "i7r8vgyqewsy2rlx0xhawybpw5uyss3z",
"css": "wrench",
"code": 59407,
"src": "typicons"
},
- {
- "uid": "971842913945f59c7f3cf11e75e1e4f1",
- "css": "power_",
- "code": 59408,
- "src": "typicons"
- },
- {
- "uid": "2b8ea04aa0e500ae056f9c7934af18e6",
- "css": "pine",
- "code": 59409,
- "src": "typicons"
- },
{
"uid": "0ece9a12de796b8411f868d582bee678",
"css": "github-square",
@@ -152,12 +102,6 @@
"code": 59411,
"src": "typicons"
},
- {
- "uid": "k7sao112253txym1egnte7822irbyphe",
- "css": "eye",
- "code": 59412,
- "src": "typicons"
- },
{
"uid": "jqzwo6i8oicjbn049sh2856d8anrqoli",
"css": "edit",
@@ -188,36 +132,12 @@
"code": 59421,
"src": "fontawesome"
},
- {
- "uid": "ca1c07c0df52dbf2af6813c9e36c2611",
- "css": "copy",
- "code": 59424,
- "src": "typicons"
- },
{
"uid": "785a9b232e86ae750516adc5228a5aa7",
"css": "steam",
"code": 59426,
"src": "zocial"
},
- {
- "uid": "348b04ea17f646fbc6a46e20ebe4fe12",
- "css": "download",
- "code": 61486,
- "src": "mfglabs"
- },
- {
- "uid": "4f3b31017c63ba04dc4f78ce7a8f02b1",
- "css": "upload",
- "code": 61487,
- "src": "mfglabs"
- },
- {
- "uid": "6020aff067fc3c119cdd75daa5249220",
- "css": "exchange",
- "code": 61676,
- "src": "fontawesome"
- },
{
"uid": "ccddff8e8670dcd130e3cb55fdfc2fd0",
"css": "down-open",
@@ -257,45 +177,27 @@
{
"uid": "e44ef09cb81413287d702eefa65dd790",
"css": "pause",
- "code": 59434,
+ "code": 59398,
"src": "typicons"
},
{
"uid": "lu2wqmd7v9zp21knhy4eifo41wjp4cnx",
"css": "list",
- "code": 59435,
+ "code": 59409,
"src": "typicons"
},
{
"uid": "5211af474d3a9848f67f945e2ccaf143",
"css": "cancel",
- "code": 59436,
+ "code": 59413,
"src": "fontawesome"
},
{
"uid": "fhkechw94uv9ydw6tukba3ka2hhoif4n",
"css": "move",
- "code": 59438,
+ "code": 59416,
"src": "typicons"
},
- {
- "uid": "287ee2cac4ded1712253c7b03ff4a5db",
- "css": "pipette",
- "code": 59439,
- "src": "typicons"
- },
- {
- "uid": "0e26e70b4aa537cc206f41b21dcf2fcc",
- "css": "lock",
- "code": 59442,
- "src": "elusive"
- },
- {
- "uid": "8f562a6dca9c14c9c8268bdb64efa89f",
- "css": "lock-open",
- "code": 59443,
- "src": "elusive"
- },
{
"uid": "fa10777b2d88cc64cd6e4f26ef0e5264",
"css": "terminal",
@@ -326,12 +228,6 @@
"code": 59447,
"src": "fontawesome"
},
- {
- "uid": "8a1d446e5555e76f82ddb1c8b526f579",
- "css": "tree",
- "code": 59448,
- "src": "entypo"
- },
{
"uid": "813cb2527308990d4870591d9d76f8cd",
"css": "right-open-out",
@@ -350,12 +246,6 @@
"code": 59451,
"src": "typicons"
},
- {
- "uid": "5c49851100aa021825b346d16d7f3abf",
- "css": "temperatire",
- "code": 59452,
- "src": "typicons"
- },
{
"uid": "e3699d145bd628d2a35d4a508b616f0c",
"css": "filters",
@@ -368,12 +258,6 @@
"code": 59455,
"src": "iconic"
},
- {
- "uid": "b9be509237c9abea9c258d677777b713",
- "css": "pick",
- "code": 59456,
- "src": "iconic"
- },
{
"uid": "ebc57fa8400e4ede049ac5dc665210e1",
"css": "eraser",
@@ -404,50 +288,16 @@
"code": 59458,
"src": "elusive"
},
- {
- "uid": "9edf364d6c567aa474b0f9ec6c26c042",
- "css": "hammer",
- "code": 59459,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M470.3 0C458.1 0 446 6.1 433.8 18.3L397.3 54.8 360.7 91.3 324.2 127.9 287.7 164.4 251.1 200.9 214.6 237.4 178.1 274C165.9 286.1 159.8 298.3 159.8 310.5 159.8 322.7 165.9 334.9 178.1 347L214.6 383.6 251.1 420.1 287.7 456.6 324.2 493.2C336.4 505.3 342.5 517.5 342.5 529.7 342.5 541.9 336.4 554 324.2 566.2L287.7 602.7 251.1 639.3 214.6 675.8 178.1 712.3 141.6 748.9 105 785.4 68.5 821.9 32 858.4C19.8 870.6 10.7 885.8 4.6 904.1-1.5 922.4-1.5 940.6 4.6 958.9 10.7 977.2 22.8 989.3 41.1 995.4 59.4 1001.5 77.6 1001.5 95.9 995.4 114.2 989.3 129.4 980.2 141.6 968L178.1 931.5 214.6 895 251.1 858.4 287.7 821.9 324.2 785.4 360.7 748.9 397.3 712.3 433.8 675.8C446 663.6 458.1 657.5 470.3 657.5 482.5 657.5 494.7 663.6 506.8 675.8L543.4 712.3 579.9 748.9 616.4 785.4 653 821.9C665.1 834.1 677.3 840.2 689.5 840.2 701.7 840.2 713.9 834.1 726 821.9L762.6 785.4 799.1 748.9 835.6 712.3 872.1 675.8 908.7 639.3 945.2 602.7 981.7 566.2C993.9 554 1000 541.9 1000 529.7 1000 517.5 993.9 505.3 981.7 493.2L945.2 456.6 908.7 420.1 872.1 383.6 835.6 347 799.1 310.5 762.6 274 726 237.4 689.5 200.9 653 164.4 616.4 127.9 579.9 91.3 543.4 54.8 506.8 18.3C494.7 6.1 482.5 0 470.3 0Z",
- "width": 1000
- },
- "search": [
- "hammer"
- ]
- },
{
"uid": "e594fc6e5870b4ab7e49f52571d52577",
"css": "diagonal",
"code": 59460,
"src": "fontawesome"
},
- {
- "uid": "wh8nbtrxjl2f67dpybsww6mri0xcaklm",
- "css": "export",
- "code": 59462,
- "src": "typicons"
- },
- {
- "uid": "9e33d50c92e84bd26d83d1f37d6f0d57",
- "css": "admin",
- "code": 59432,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M427.1 385.4Q437.5 354.2 468.8 343.8 500 333.3 531.3 343.8 562.5 354.2 572.9 385.4 583.3 416.7 572.9 447.9 562.5 479.2 531.3 489.6 500 500 468.8 489.6 437.5 479.2 427.1 447.9 416.7 416.7 427.1 385.4M166.7 41.7Q187.5 20.8 218.8 10.4 250 0 291.7 0 333.3 0 375 0 416.7 0 458.3 0 500 0 541.7 0 583.3 0 625 0 666.7 0 708.3 0 750 0 781.3 10.4 812.5 20.8 833.3 41.7 854.2 62.5 875 83.3 895.8 104.2 916.7 125 937.5 145.8 958.3 166.7 979.2 187.5 989.6 218.8 1000 250 1000 291.7 1000 333.3 1000 375 1000 416.7 1000 458.3 1000 500 989.6 531.3 979.2 562.5 958.3 583.3 937.5 604.2 927.1 635.4 916.7 666.7 916.7 708.3 916.7 750 906.3 781.3 895.8 812.5 875 833.3 854.2 854.2 833.3 875 812.5 895.8 791.7 916.7 770.8 937.5 750 958.3 729.2 979.2 697.9 989.6 666.7 1000 625 1000 583.3 1000 541.7 1000 500 1000 458.3 1000 416.7 1000 375 1000 333.3 1000 302.1 989.6 270.8 979.2 250 958.3 229.2 937.5 208.3 916.7 187.5 895.8 166.7 875 145.8 854.2 125 833.3 104.2 812.5 93.8 781.3 83.3 750 83.3 708.3 83.3 666.7 72.9 635.4 62.5 604.2 41.7 583.3 20.8 562.5 10.4 531.3 0 500 0 458.3 0 416.7 0 375 0 333.3 0 291.7 0 250 10.4 218.8 20.8 187.5 41.7 166.7 62.5 145.8 83.3 125 104.2 104.2 125 83.3 145.8 62.5 166.7 41.7M541.7 750Q583.3 750 614.6 739.6 645.8 729.2 645.8 708.3 645.8 687.5 614.6 677.1 583.3 666.7 541.7 666.7 500 666.7 458.3 666.7 416.7 666.7 385.4 677.1 354.2 687.5 354.2 708.3 354.2 729.2 385.4 739.6 416.7 750 458.3 750 500 750 541.7 750M541.7 583.3Q583.3 583.3 614.6 572.9 645.8 562.5 666.7 541.7 687.5 520.8 708.3 500 729.2 479.2 739.6 447.9 750 416.7 739.6 385.4 729.2 354.2 708.3 333.3 687.5 312.5 666.7 291.7 645.8 270.8 614.6 260.4 583.3 250 541.7 250 500 250 458.3 250 416.7 250 385.4 260.4 354.2 270.8 333.3 291.7 312.5 312.5 291.7 333.3 270.8 354.2 260.4 385.4 250 416.7 260.4 447.9 270.8 479.2 291.7 500 312.5 520.8 333.3 541.7 354.2 562.5 385.4 572.9 416.7 583.3 458.3 583.3 500 583.3 541.7 583.3",
- "width": 1000
- },
- "search": [
- "admin"
- ]
- },
{
"uid": "4bad23bc52aaddaac37da019e46b6f6b",
- "css": "discord",
- "code": 59464,
+ "css": "discord_",
+ "code": 59405,
"src": "custom_icons",
"selected": true,
"svg": {
@@ -458,152 +308,12 @@
"discord-logo-white"
]
},
- {
- "uid": "777bee87001d4219672e09caa12e1c78",
- "css": "crafting",
- "code": 59425,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M909.1 62.9Q923.1 21 965 7 1007-7 1049 7 1090.9 21 1104.9 62.9 1118.9 104.9 1118.9 160.8 1118.9 216.8 1118.9 272.7 1118.9 328.7 1118.9 384.6 1118.9 440.6 1118.9 496.5 1118.9 552.4 1118.9 608.4 1118.9 664.3 1118.9 720.3 1118.9 776.2 1118.9 832.2 1118.9 888.1 1104.9 930.1 1090.9 972 1049 986 1007 1000 951 1000 895.1 1000 839.2 1000 783.2 1000 727.3 1000 671.3 1000 615.4 1000 559.4 1000 503.5 1000 447.6 1000 391.6 1000 335.7 1000 279.7 1000 223.8 1000 167.8 1000 111.9 1000 69.9 986 28 972 14 930.1 0 888.1 0 832.2 0 776.2 0 720.3 0 664.3 0 608.4 0 552.4 0 496.5 0 440.6 0 384.6 0 328.7 0 272.7 0 216.8 14 174.8 28 132.9 55.9 132.9 83.9 132.9 111.9 160.8 139.9 188.8 167.8 216.8 195.8 244.8 223.8 272.7 251.7 300.7 279.7 328.7 307.7 356.6 335.7 384.6 363.6 412.6 391.6 412.6 419.6 412.6 433.6 370.6 447.6 328.7 447.6 272.7 447.6 216.8 461.5 174.8 475.5 132.9 503.5 132.9 531.5 132.9 559.4 160.8 587.4 188.8 615.4 216.8 643.4 244.8 671.3 272.7 699.3 300.7 727.3 328.7 755.2 356.6 783.2 384.6 811.2 412.6 839.2 412.6 867.1 412.6 881.1 370.6 895.1 328.7 895.1 272.7 895.1 216.8 895.1 160.8 895.1 104.9 909.1 62.9M839.2 888.1Q895.1 888.1 937.1 874.1 979 860.1 993 818.2 1007 776.2 1007 720.3 1007 664.3 993 622.4 979 580.4 937.1 566.4 895.1 552.4 853.1 538.5 811.2 524.5 783.2 496.5 755.2 468.5 727.3 440.6 699.3 412.6 671.3 384.6 643.4 356.6 615.4 356.6 587.4 356.6 573.4 398.6 559.4 440.6 545.5 482.5 531.5 524.5 489.5 538.5 447.6 552.4 405.6 538.5 363.6 524.5 335.7 496.5 307.7 468.5 279.7 440.6 251.7 412.6 223.8 384.6 195.8 356.6 167.8 356.6 139.9 356.6 125.9 398.6 111.9 440.6 111.9 496.5 111.9 552.4 111.9 608.4 111.9 664.3 111.9 720.3 111.9 776.2 125.9 818.2 139.9 860.1 181.8 874.1 223.8 888.1 279.7 888.1 335.7 888.1 391.6 888.1 447.6 888.1 503.5 888.1 559.4 888.1 615.4 888.1 671.3 888.1 727.3 888.1 783.2 888.1 839.2 888.1M251.7 720.3Q251.7 692.3 279.7 692.3 307.7 692.3 307.7 720.3 307.7 748.3 279.7 748.3 251.7 748.3 251.7 720.3M475.5 720.3Q475.5 692.3 503.5 692.3 531.5 692.3 531.5 720.3 531.5 748.3 503.5 748.3 475.5 748.3 475.5 720.3M699.3 720.3Q699.3 692.3 727.3 692.3 755.2 692.3 755.2 720.3 755.2 748.3 727.3 748.3 699.3 748.3 699.3 720.3",
- "width": 1119
- },
- "search": [
- "crafting"
- ]
- },
- {
- "uid": "39651356f0f411effa9ab4a83abd2d0d",
- "css": "defense",
- "code": 59465,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M101.3 0C88.6 0 75.9 2.1 63.3 6.3 38 14.8 21.1 31.6 12.7 57 4.2 82.3 0 111.8 0 145.6V246.8 348.1 449.4C0 483.1 4.2 512.7 12.7 538 21.1 563.3 33.8 584.4 50.6 601.3L101.3 651.9 151.9 702.5 202.5 753.2 253.2 803.8 303.8 854.4 354.4 905.1 405.1 955.7C421.9 972.6 443 985.2 468.4 993.7 493.7 1002.1 519 1002.1 544.3 993.7 569.6 985.2 590.7 972.6 607.6 955.7L658.2 905.1 708.9 854.4 759.5 803.8 810.1 753.2 860.8 702.5 911.4 651.9 962 601.3C978.9 584.4 991.6 563.3 1000 538 1008.4 512.7 1012.7 483.1 1012.7 449.4V348.1 246.8 145.6C1012.7 111.8 1008.4 82.3 1000 57 991.6 31.6 974.7 14.8 949.4 6.3 924.1-2.1 898.7-2.1 873.4 6.3 848.1 14.8 827 27.4 810.1 44.3L759.5 94.9 708.9 145.6C692 162.4 670.9 175.1 645.6 183.5 620.3 192 590.7 196.2 557 196.2H455.7C421.9 196.2 392.4 192 367.1 183.5 341.8 175.1 320.7 162.4 303.8 145.6L253.2 94.9 202.5 44.3C185.7 27.4 164.6 14.8 139.2 6.3 126.6 2.1 113.9 0 101.3 0ZM151.9 120.3C168.8 120.3 185.7 128.7 202.5 145.6L253.2 196.2 303.8 246.8C320.7 263.7 341.8 276.4 367.1 284.8 392.4 293.2 421.9 297.5 455.7 297.5H557C590.7 297.5 620.3 293.2 645.6 284.8 670.9 276.4 692 263.7 708.9 246.8L759.5 196.2 810.1 145.6C827 128.7 843.9 120.3 860.8 120.3 877.6 120.3 890.3 132.9 898.7 158.2 907.2 183.5 911.4 213.1 911.4 246.8V348.1 449.4C911.4 483.1 907.2 512.7 898.7 538 890.3 563.3 877.6 584.4 860.8 601.3L810.1 651.9 759.5 702.5 708.9 753.2 658.2 803.8 607.6 854.4C590.7 871.3 569.6 884 544.3 892.4 519 900.8 493.7 900.8 468.4 892.4 443 884 421.9 871.3 405.1 854.4L354.4 803.8 303.8 753.2 253.2 702.5 202.5 651.9 151.9 601.3C135 584.4 122.4 563.3 113.9 538 105.5 512.7 101.3 483.1 101.3 449.4V348.1 246.8C101.3 213.1 105.5 183.5 113.9 158.2 122.4 132.9 135 120.3 151.9 120.3Z",
- "width": 1013
- },
- "search": [
- "defense"
- ]
- },
- {
- "uid": "10e2d46ee8b987f0a414451439b23036",
- "css": "effect",
- "code": 59466,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M250 0C216.7 0 187.5 4.2 162.5 12.5 137.5 20.8 116.7 33.3 100 50L50 100C33.3 116.7 20.8 137.5 12.5 162.5 4.2 187.5 0 216.7 0 250V350 450 550 650 750C0 783.3 4.2 812.5 12.5 837.5 20.8 862.5 33.3 883.3 50 900L100 950C116.7 966.7 137.5 979.2 162.5 987.5 187.5 995.8 216.7 1000 250 1000H350 450 550 650 750C783.3 1000 812.5 995.8 837.5 987.5 862.5 979.2 883.3 966.7 900 950L950 900C966.7 883.3 979.2 862.5 987.5 837.5 995.8 812.5 1000 783.3 1000 750V650 550 450 350 250C1000 216.7 995.8 187.5 987.5 162.5 979.2 137.5 966.7 116.7 950 100L900 50C883.3 33.3 862.5 20.8 837.5 12.5 812.5 4.2 783.3 0 750 0H650 550 450 350ZM350 100H450 550 650C683.3 100 712.5 104.2 737.5 112.5 762.5 120.8 783.3 133.3 800 150L850 200C866.7 216.7 879.2 237.5 887.5 262.5 895.8 287.5 900 316.7 900 350V450 550 650C900 683.3 895.8 712.5 887.5 737.5 879.2 762.5 866.7 783.3 850 800L800 850C783.3 866.7 762.5 879.2 737.5 887.5 712.5 895.8 683.3 900 650 900H550 450 350C316.7 900 287.5 895.8 262.5 887.5 237.5 879.2 216.7 866.7 200 850L150 800C133.3 783.3 120.8 762.5 112.5 737.5 104.2 712.5 100 683.3 100 650V550 450 350C100 316.7 104.2 287.5 112.5 262.5 120.8 237.5 133.3 216.7 150 200L200 150C216.7 133.3 237.5 120.8 262.5 112.5 287.5 104.2 316.7 100 350 100ZM500 306.3C487.5 306.3 475 308.3 462.5 312.5 437.5 320.8 416.7 333.3 400 350L350 400C333.3 416.7 320.8 437.5 312.5 462.5 304.2 487.5 304.2 512.5 312.5 537.5 320.8 562.5 333.3 583.3 350 600L400 650C416.7 666.7 437.5 679.2 462.5 687.5 487.5 695.8 512.5 695.8 537.5 687.5 562.5 679.2 583.3 666.7 600 650L650 600C666.7 583.3 679.2 562.5 687.5 537.5 695.8 512.5 695.8 487.5 687.5 462.5 679.2 437.5 666.7 416.7 650 400L600 350C583.3 333.3 562.5 320.8 537.5 312.5 525 308.3 512.5 306.3 500 306.3Z",
- "width": 1000
- },
- "search": [
- "effect"
- ]
- },
- {
- "uid": "a4d157485929f47f7a7872bac82ffbb7",
- "css": "liquid",
- "code": 59467,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M0 57.1Q0 28.6 42.9 14.3 85.7 0 142.9 0 200 0 257.1 0 314.3 0 371.4 0 428.6 0 485.7 0 542.9 0 600 0 657.1 0 700 14.3 742.9 28.6 742.9 57.1 742.9 85.7 714.3 114.3 685.7 142.9 671.4 185.7 657.1 228.6 671.4 271.4 685.7 314.3 728.6 328.6 771.4 342.9 814.3 328.6 857.1 314.3 885.7 285.7 914.3 257.1 942.9 257.1 971.4 257.1 985.7 300 1000 342.9 1000 400 1000 457.1 1000 514.3 1000 571.4 1000 628.6 1000 685.7 1000 742.9 1000 800 1000 857.1 1000 914.3 985.7 957.1 971.4 1000 942.9 1000 914.3 1000 885.7 971.4 857.1 942.9 814.3 928.6 771.4 914.3 714.3 914.3 657.1 914.3 600 914.3 542.9 914.3 485.7 914.3 428.6 914.3 385.7 900 342.9 885.7 314.3 857.1 285.7 828.6 257.1 800 228.6 771.4 200 742.9 171.4 714.3 142.9 685.7 114.3 657.1 100 614.3 85.7 571.4 85.7 514.3 85.7 457.1 85.7 400 85.7 342.9 85.7 285.7 85.7 228.6 71.4 185.7 57.1 142.9 28.6 114.3 0 85.7 0 57.1M714.3 800Q771.4 800 814.3 785.7 857.1 771.4 871.4 728.6 885.7 685.7 885.7 628.6 885.7 571.4 871.4 528.6 857.1 485.7 814.3 471.4 771.4 457.1 728.6 442.9 685.7 428.6 657.1 400 628.6 371.4 600 342.9 571.4 314.3 557.1 271.4 542.9 228.6 528.6 185.7 514.3 142.9 471.4 128.6 428.6 114.3 371.4 114.3 314.3 114.3 271.4 128.6 228.6 142.9 214.3 185.7 200 228.6 200 285.7 200 342.9 200 400 200 457.1 200 514.3 200 571.4 214.3 614.3 228.6 657.1 257.1 685.7 285.7 714.3 314.3 742.9 342.9 771.4 385.7 785.7 428.6 800 485.7 800 542.9 800 600 800 657.1 800 714.3 800",
- "width": 1000
- },
- "search": [
- "liquid"
- ]
- },
- {
- "uid": "757a660cd53e3349515bc329726c3dbd",
- "css": "production",
- "code": 59469,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M7 69.9Q21 28 62.9 14 104.9 0 160.8 0 216.8 0 272.7 0 328.7 0 384.6 0 440.6 0 496.5 0 552.4 0 608.4 0 664.3 0 720.3 0 776.2 0 818.2 14 860.1 28 874.1 69.9 888.1 111.9 874.1 153.8 860.1 195.8 832.2 223.8 804.2 251.7 776.2 279.7 748.3 307.7 720.3 335.7 692.3 363.6 678.3 405.6 664.3 447.6 664.3 503.5 664.3 559.4 664.3 615.4 664.3 671.3 664.3 727.3 664.3 783.2 650.3 825.2 636.4 867.1 608.4 895.1 580.4 923.1 552.4 951 524.5 979 482.5 993 440.6 1007 398.6 993 356.6 979 328.7 951 300.7 923.1 272.7 895.1 244.8 867.1 230.8 825.2 216.8 783.2 216.8 727.3 216.8 671.3 216.8 615.4 216.8 559.4 216.8 503.5 216.8 447.6 202.8 405.6 188.8 363.6 160.8 335.7 132.9 307.7 104.9 279.7 76.9 251.7 49 223.8 21 195.8 7 153.8-7 111.9 7 69.9M342.7 825.2Q356.6 867.1 384.6 867.1 412.6 867.1 440.6 839.2 468.5 811.2 496.5 783.2 524.5 755.2 524.5 727.3 524.5 699.3 496.5 671.3 468.5 643.4 468.5 615.4 468.5 587.4 496.5 559.4 524.5 531.5 524.5 503.5 524.5 475.5 496.5 447.6 468.5 419.6 440.6 391.6 412.6 363.6 384.6 363.6 356.6 363.6 342.7 405.6 328.7 447.6 328.7 503.5 328.7 559.4 328.7 615.4 328.7 671.3 328.7 727.3 328.7 783.2 342.7 825.2M608.4 223.8Q664.3 223.8 706.3 209.8 748.3 195.8 748.3 167.8 748.3 139.9 706.3 125.9 664.3 111.9 608.4 111.9 552.4 111.9 496.5 111.9 440.6 111.9 384.6 111.9 328.7 111.9 272.7 111.9 216.8 111.9 174.8 125.9 132.9 139.9 132.9 167.8 132.9 195.8 174.8 209.8 216.8 223.8 272.7 223.8 328.7 223.8 384.6 223.8 440.6 223.8 496.5 223.8 552.4 223.8 608.4 223.8",
- "width": 881
- },
- "search": [
- "production"
- ]
- },
- {
- "uid": "fffdfd2df00136ae95e542b0af62d8fa",
- "css": "turret",
- "code": 59470,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M125.9 62.9Q139.9 21 181.8 7 223.8-7 265.7 7 307.7 21 321.7 62.9 335.7 104.9 349.7 146.9 363.6 188.8 405.6 202.8 447.6 216.8 489.5 202.8 531.5 188.8 545.5 146.9 559.4 104.9 573.4 62.9 587.4 21 629.4 7 671.3-7 713.3 7 755.2 21 769.2 62.9 783.2 104.9 783.2 160.8 783.2 216.8 783.2 272.7 783.2 328.7 797.2 370.6 811.2 412.6 839.2 440.6 867.1 468.5 881.1 510.5 895.1 552.4 895.1 608.4 895.1 664.3 895.1 720.3 895.1 776.2 895.1 832.2 895.1 888.1 881.1 930.1 867.1 972 825.2 986 783.2 1000 727.3 1000 671.3 1000 629.4 986 587.4 972 559.4 944.1 531.5 916.1 489.5 902.1 447.6 888.1 405.6 902.1 363.6 916.1 335.7 944.1 307.7 972 265.7 986 223.8 1000 167.8 1000 111.9 1000 69.9 986 28 972 14 930.1 0 888.1 0 832.2 0 776.2 0 720.3 0 664.3 0 608.4 0 552.4 14 510.5 28 468.5 55.9 440.6 83.9 412.6 97.9 370.6 111.9 328.7 111.9 272.7 111.9 216.8 111.9 160.8 111.9 104.9 125.9 62.9M629.4 874.1Q671.3 888.1 713.3 874.1 755.2 860.1 769.2 818.2 783.2 776.2 783.2 720.3 783.2 664.3 783.2 608.4 783.2 552.4 769.2 510.5 755.2 468.5 727.3 440.6 699.3 412.6 671.3 384.6 643.4 356.6 601.4 342.7 559.4 328.7 503.5 328.7 447.6 328.7 391.6 328.7 335.7 328.7 293.7 342.7 251.7 356.6 223.8 384.6 195.8 412.6 167.8 440.6 139.9 468.5 125.9 510.5 111.9 552.4 111.9 608.4 111.9 664.3 111.9 720.3 111.9 776.2 125.9 818.2 139.9 860.1 181.8 874.1 223.8 888.1 265.7 874.1 307.7 860.1 335.7 832.2 363.6 804.2 405.6 790.2 447.6 776.2 489.5 790.2 531.5 804.2 559.4 832.2 587.4 860.1 629.4 874.1",
- "width": 895
- },
- "search": [
- "turret"
- ]
- },
- {
- "uid": "dbc386322a6eec797d94d5cf2af56dc3",
- "css": "units",
- "code": 59471,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M566.9 0C524.9 0 488.2 5.2 456.7 15.7 425.2 26.2 399 42 378 63L315 126 252 189 189 252 126 315 63 378C42 399 26.2 425.2 15.7 456.7 5.2 488.2 0 524.9 0 566.9 0 608.9 5.2 645.7 15.7 677.2 26.2 708.7 42 724.4 63 724.4 84 724.4 105 713.9 126 692.9 147 671.9 168 661.4 189 661.4 210 661.4 225.7 677.2 236.2 708.7 246.7 740.2 252 776.9 252 818.9 252 860.9 257.2 897.6 267.7 929.1 278.2 960.6 299.2 981.6 330.7 992.1 362.2 1002.6 393.7 1002.6 425.2 992.1 456.7 981.6 477.7 960.6 488.2 929.1L519.7 834.6C530.2 803.1 551.2 782.2 582.7 771.7 614.2 761.2 645.7 761.2 677.2 771.7 708.7 782.2 729.7 803.1 740.2 834.6L771.7 929.1C782.2 960.6 803.1 981.6 834.6 992.1 866.1 1002.6 897.6 1002.6 929.1 992.1 960.6 981.6 981.6 960.6 992.1 929.1 1002.6 897.6 1007.9 860.9 1007.9 818.9 1007.9 776.9 1013.1 740.2 1023.6 708.7 1034.1 677.2 1049.9 661.4 1070.9 661.4 1091.9 661.4 1112.9 671.9 1133.9 692.9 1154.9 713.9 1175.9 724.4 1196.9 724.4 1217.8 724.4 1233.6 708.7 1244.1 677.2 1254.6 645.7 1259.8 608.9 1259.8 566.9 1259.8 524.9 1254.6 488.2 1244.1 456.7 1233.6 425.2 1217.8 399 1196.9 378L1133.9 315 1070.9 252 1007.9 189 944.9 126 881.9 63C860.9 42 834.6 26.2 803.1 15.7 771.7 5.2 734.9 0 692.9 0ZM566.9 126H692.9C734.9 126 771.7 131.2 803.1 141.7 834.6 152.2 860.9 168 881.9 189L944.9 252 1007.9 315 1070.9 378C1091.9 399 1102.4 419.9 1102.4 440.9 1102.4 461.9 1086.6 477.7 1055.1 488.2L960.6 519.7C929.1 530.2 902.9 545.9 881.9 566.9 860.9 587.9 834.6 603.7 803.1 614.2 771.7 624.7 734.9 629.9 692.9 629.9H566.9C524.9 629.9 488.2 624.7 456.7 614.2 425.2 603.7 399 587.9 378 566.9 357 545.9 330.7 530.2 299.2 519.7L204.7 488.2C173.2 477.7 157.5 461.9 157.5 440.9 157.5 419.9 168 399 189 378L252 315 315 252 378 189C399 168 425.2 152.2 456.7 141.7 488.2 131.2 524.9 126 566.9 126ZM629.9 259.8C614.2 259.8 598.4 262.5 582.7 267.7 551.2 278.2 535.4 294 535.4 315 535.4 336 551.2 351.7 582.7 362.2 614.2 372.7 645.7 372.7 677.2 362.2 708.7 351.7 724.4 336 724.4 315 724.4 294 708.7 278.2 677.2 267.7 661.4 262.5 645.7 259.8 629.9 259.8Z",
- "width": 1260
- },
- "search": [
- "units"
- ]
- },
- {
- "uid": "4fe8d91bf30522a9a76bab94836b2dd7",
- "css": "upgrade",
- "code": 59472,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M396.2 44Q421.4 18.9 459.1 6.3 496.9-6.3 534.6 6.3 572.3 18.9 597.5 44 622.6 69.2 647.8 94.3 673 119.5 698.1 144.7 723.3 169.8 748.4 195 773.6 220.1 798.7 245.3 823.9 270.4 849.1 295.6 874.2 320.8 899.4 345.9 924.5 371.1 949.7 396.2 974.8 421.4 987.4 459.1 1000 496.9 987.4 534.6 974.8 572.3 937.1 584.9 899.4 597.5 849.1 597.5 798.7 597.5 761 610.1 723.3 622.6 710.7 660.4 698.1 698.1 698.1 748.4 698.1 798.7 698.1 849.1 698.1 899.4 685.5 937.1 673 974.8 635.2 987.4 597.5 1000 547.2 1000 496.9 1000 446.5 1000 396.2 1000 358.5 987.4 320.8 974.8 308.2 937.1 295.6 899.4 295.6 849.1 295.6 798.7 295.6 748.4 295.6 698.1 283 660.4 270.4 622.6 232.7 610.1 195 597.5 144.7 597.5 94.3 597.5 56.6 584.9 18.9 572.3 6.3 534.6-6.3 496.9 6.3 459.1 18.9 421.4 44 396.2 69.2 371.1 94.3 345.9 119.5 320.8 144.7 295.6 169.8 270.4 195 245.3 220.1 220.1 245.3 195 270.4 169.8 295.6 144.7 320.8 119.5 345.9 94.3 371.1 69.2 396.2 44M459.1 886.8Q496.9 899.4 534.6 886.8 572.3 874.2 584.9 836.5 597.5 798.7 597.5 748.4 597.5 698.1 597.5 647.8 597.5 597.5 610.1 559.7 622.6 522 660.4 509.4 698.1 496.9 735.8 484.3 773.6 471.7 773.6 446.5 773.6 421.4 748.4 396.2 723.3 371.1 698.1 345.9 673 320.8 647.8 295.6 622.6 270.4 597.5 245.3 572.3 220.1 534.6 207.5 496.9 195 459.1 207.5 421.4 220.1 396.2 245.3 371.1 270.4 345.9 295.6 320.8 320.8 295.6 345.9 270.4 371.1 245.3 396.2 220.1 421.4 220.1 446.5 220.1 471.7 257.9 484.3 295.6 496.9 333.3 509.4 371.1 522 383.6 559.7 396.2 597.5 396.2 647.8 396.2 698.1 396.2 748.4 396.2 798.7 408.8 836.5 421.4 874.2 459.1 886.8",
- "width": 994
- },
- "search": [
- "upgrade"
- ]
- },
- {
- "uid": "8cbea4558186fc7f4197ccba882dd534",
- "css": "save",
- "code": 59440,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M11.4 56.8Q22.7 22.7 56.8 11.4 90.9 0 136.4 0 181.8 0 227.3 0 272.7 0 318.2 0 363.6 0 409.1 0 454.5 0 500 0 545.5 0 590.9 0 636.4 0 681.8 0 727.3 0 761.4 11.4 795.5 22.7 818.2 45.5 840.9 68.2 863.6 90.9 886.4 113.6 897.7 147.7 909.1 181.8 909.1 227.3 909.1 272.7 909.1 318.2 909.1 363.6 909.1 409.1 909.1 454.5 909.1 500 909.1 545.5 909.1 590.9 909.1 636.4 909.1 681.8 909.1 727.3 909.1 772.7 909.1 818.2 909.1 863.6 909.1 909.1 897.7 943.2 886.4 977.3 852.3 988.6 818.2 1000 772.7 1000 727.3 1000 681.8 1000 636.4 1000 590.9 1000 545.5 1000 500 1000 454.5 1000 409.1 1000 363.6 1000 318.2 1000 272.7 1000 227.3 1000 181.8 1000 136.4 1000 90.9 1000 56.8 988.6 22.7 977.3 11.4 943.2 0 909.1 0 863.6 0 818.2 0 772.7 0 727.3 0 681.8 0 636.4 0 590.9 0 545.5 0 500 0 454.5 0 409.1 0 363.6 0 318.2 0 272.7 0 227.3 0 181.8 0 136.4 0 90.9 11.4 56.8M500 909.1Q545.5 909.1 579.5 897.7 613.6 886.4 625 852.3 636.4 818.2 636.4 772.7 636.4 727.3 625 693.2 613.6 659.1 579.5 647.7 545.5 636.4 500 636.4 454.5 636.4 409.1 636.4 363.6 636.4 329.5 647.7 295.5 659.1 284.1 693.2 272.7 727.3 272.7 772.7 272.7 818.2 284.1 852.3 295.5 886.4 329.5 897.7 363.6 909.1 409.1 909.1 454.5 909.1 500 909.1M738.6 852.3Q750 886.4 772.7 886.4 795.5 886.4 806.8 852.3 818.2 818.2 818.2 772.7 818.2 727.3 818.2 681.8 818.2 636.4 818.2 590.9 818.2 545.5 818.2 500 818.2 454.5 818.2 409.1 818.2 363.6 818.2 318.2 818.2 272.7 818.2 227.3 818.2 181.8 806.8 147.7 795.5 113.6 761.4 102.3 727.3 90.9 693.2 102.3 659.1 113.6 647.7 147.7 636.4 181.8 636.4 227.3 636.4 272.7 625 306.8 613.6 340.9 579.5 352.3 545.5 363.6 500 363.6 454.5 363.6 409.1 363.6 363.6 363.6 329.5 352.3 295.5 340.9 284.1 306.8 272.7 272.7 272.7 227.3 272.7 181.8 261.4 147.7 250 113.6 215.9 102.3 181.8 90.9 147.7 102.3 113.6 113.6 102.3 147.7 90.9 181.8 90.9 227.3 90.9 272.7 90.9 318.2 90.9 363.6 90.9 409.1 90.9 454.5 90.9 500 90.9 545.5 90.9 590.9 90.9 636.4 90.9 681.8 90.9 727.3 90.9 772.7 90.9 818.2 102.3 852.3 113.6 886.4 136.4 886.4 159.1 886.4 170.5 852.3 181.8 818.2 181.8 772.7 181.8 727.3 181.8 681.8 181.8 636.4 193.2 602.3 204.5 568.2 238.6 556.8 272.7 545.5 318.2 545.5 363.6 545.5 409.1 545.5 454.5 545.5 500 545.5 545.5 545.5 590.9 545.5 636.4 545.5 670.5 556.8 704.5 568.2 715.9 602.3 727.3 636.4 727.3 681.8 727.3 727.3 727.3 772.7 727.3 818.2 738.6 852.3M420.5 261.4Q454.5 272.7 488.6 261.4 522.7 250 534.1 215.9 545.5 181.8 534.1 147.7 522.7 113.6 488.6 102.3 454.5 90.9 420.5 102.3 386.4 113.6 375 147.7 363.6 181.8 375 215.9 386.4 250 420.5 261.4",
- "width": 909
- },
- "search": [
- "save"
- ]
- },
{
"uid": "dd6df3b754e8d0dbf09d9b24088f0442",
"css": "box",
"code": 59422,
"src": "iconic"
},
- {
- "uid": "3b1a66b7efb81f4f8980f3edc369eeda",
- "css": "link",
- "code": 59444,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M208.3 0C180.6 0 156.2 3.5 135.4 10.4 114.6 17.4 97.2 27.8 83.3 41.7L41.7 83.3C27.8 97.2 17.4 114.6 10.4 135.4 3.5 156.3 0 180.6 0 208.3V291.7 375 458.3 541.7 625 708.3 791.7C0 819.4 3.5 843.8 10.4 864.6 17.4 885.4 27.8 902.8 41.7 916.7L83.3 958.3C97.2 972.2 114.6 982.6 135.4 989.6 156.2 996.5 180.6 1000 208.3 1000H291.7 375 458.3 541.7 625 708.3 791.7C819.4 1000 843.7 996.5 864.6 989.6 885.4 982.6 902.8 972.2 916.7 958.3L958.3 916.7C972.2 902.8 982.6 885.4 989.6 864.6 996.5 843.8 1000 819.4 1000 791.7 1000 763.9 996.5 739.6 989.6 718.8 982.6 697.9 972.2 680.6 958.3 666.7L916.7 625C902.8 611.1 888.9 604.2 875 604.2 861.1 604.2 850.7 614.6 843.7 635.4 836.8 656.3 833.3 680.6 833.3 708.3 833.3 736.1 829.9 760.4 822.9 781.3 816 802.1 802.1 816 781.2 822.9 760.4 829.9 736.1 833.3 708.3 833.3H625 541.7 458.3 375 291.7C263.9 833.3 239.6 829.9 218.7 822.9 197.9 816 184 802.1 177.1 781.3 170.1 760.4 166.7 736.1 166.7 708.3V625 541.7 458.3 375 291.7C166.7 263.9 170.1 239.6 177.1 218.8 184 197.9 197.9 184 218.7 177.1 239.6 170.1 263.9 166.7 291.7 166.7 319.4 166.7 343.7 163.2 364.6 156.3 385.4 149.3 395.8 138.9 395.8 125 395.8 111.1 388.9 97.2 375 83.3L333.3 41.7C319.4 27.8 302.1 17.4 281.2 10.4 260.4 3.5 236.1 0 208.3 0ZM625 0C597.2 0 572.9 3.5 552.1 10.4 531.2 17.4 520.8 27.8 520.8 41.7 520.8 55.6 527.8 69.4 541.7 83.3L583.3 125 625 166.7C638.9 180.6 645.8 194.4 645.8 208.3 645.8 222.2 638.9 236.1 625 250L583.3 291.7 541.7 333.3 500 375 458.3 416.7 416.7 458.3 375 500C361.1 513.9 350.7 531.3 343.7 552.1 336.8 572.9 336.8 593.8 343.7 614.6 350.7 635.4 364.6 649.3 385.4 656.3 406.2 663.2 427.1 663.2 447.9 656.3 468.7 649.3 486.1 638.9 500 625L541.7 583.3 583.3 541.7 625 500 666.7 458.3 708.3 416.7 750 375C763.9 361.1 777.8 354.2 791.7 354.2 805.6 354.2 819.4 361.1 833.3 375L875 416.7 916.7 458.3C930.6 472.2 944.4 479.2 958.3 479.2 972.2 479.2 982.6 468.8 989.6 447.9 996.5 427.1 1000 402.8 1000 375V291.7 208.3 125C1000 97.2 996.5 72.9 989.6 52.1 982.6 31.3 968.7 17.4 947.9 10.4 927.1 3.5 902.8 0 875 0H791.7 708.3Z",
- "width": 1000
- },
- "search": [
- "link"
- ]
- },
{
"uid": "f08ba9f0e8f9b426a92efcaa59c1e932",
"css": "reddit-alien",
@@ -634,296 +344,10 @@
"code": 61825,
"src": "fontawesome"
},
- {
- "uid": "ffe24157e3c63b2ad9526b4e779caefb",
- "css": "itchio",
- "code": 59468,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M303.8 44.3Q329.1 19 367.1 6.3 405.1-6.3 443 6.3 481 19 506.3 44.3 531.6 69.6 569.6 82.3 607.6 94.9 658.2 94.9 708.9 94.9 759.5 94.9 810.1 94.9 848.1 82.3 886.1 69.6 911.4 44.3 936.7 19 974.7 6.3 1012.7-6.3 1050.6 6.3 1088.6 19 1113.9 44.3 1139.2 69.6 1164.6 94.9 1189.9 120.3 1202.5 158.2 1215.2 196.2 1215.2 246.8 1215.2 297.5 1227.8 335.4 1240.5 373.4 1265.8 398.7 1291.1 424.1 1316.5 449.4 1341.8 474.7 1367.1 500 1392.4 525.3 1405.1 563.3 1417.7 601.3 1417.7 651.9 1417.7 702.5 1417.7 753.2 1417.7 803.8 1405.1 841.8 1392.4 879.7 1367.1 905.1 1341.8 930.4 1316.5 955.7 1291.1 981 1253.2 993.7 1215.2 1006.3 1177.2 993.7 1139.2 981 1113.9 955.7 1088.6 930.4 1063.3 905.1 1038 879.7 1012.7 854.4 987.3 829.1 949.4 816.5 911.4 803.8 860.8 803.8 810.1 803.8 759.5 803.8 708.9 803.8 658.2 803.8 607.6 803.8 557 803.8 506.3 803.8 468.4 816.5 430.4 829.1 405.1 854.4 379.7 879.7 354.4 905.1 329.1 930.4 303.8 955.7 278.5 981 240.5 993.7 202.5 1006.3 164.6 993.7 126.6 981 101.3 955.7 75.9 930.4 50.6 905.1 25.3 879.7 12.7 841.8 0 803.8 0 753.2 0 702.5 0 651.9 0 601.3 12.7 563.3 25.3 525.3 50.6 500 75.9 474.7 101.3 449.4 126.6 424.1 151.9 398.7 177.2 373.4 189.9 335.4 202.5 297.5 202.5 246.8 202.5 196.2 215.2 158.2 227.8 120.3 253.2 94.9 278.5 69.6 303.8 44.3M670.9 689.9Q708.9 702.5 746.8 689.9 784.8 677.2 797.5 639.2 810.1 601.3 822.8 563.3 835.4 525.3 873.4 512.7 911.4 500 949.4 487.3 987.3 474.7 987.3 449.4 987.3 424.1 962 398.7 936.7 373.4 911.4 348.1 886.1 322.8 860.8 297.5 835.4 272.2 810.1 246.8 784.8 221.5 746.8 208.9 708.9 196.2 670.9 208.9 632.9 221.5 607.6 246.8 582.3 272.2 557 297.5 531.6 322.8 506.3 348.1 481 373.4 455.7 398.7 430.4 424.1 430.4 449.4 430.4 474.7 468.4 487.3 506.3 500 544.3 512.7 582.3 525.3 594.9 563.3 607.6 601.3 620.3 639.2 632.9 677.2 670.9 689.9",
- "width": 1418
- },
- "search": [
- "itchio"
- ]
- },
- {
- "uid": "4fa999c5ba68a4ec62d4abe5e8e51076",
- "css": "line",
- "code": 59473,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M836.8 36.8Q857.9 15.8 889.5 5.3 921.1-5.3 952.6 5.3 984.2 15.8 994.7 47.4 1005.3 78.9 994.7 110.5 984.2 142.1 963.2 163.2 942.1 184.2 921.1 205.3 900 226.3 878.9 247.4 857.9 268.4 836.8 289.5 815.8 310.5 794.7 331.6 773.7 352.6 752.6 373.7 731.6 394.7 710.5 415.8 689.5 436.8 668.4 457.9 647.4 478.9 626.3 500 605.3 521.1 584.2 542.1 563.2 563.2 542.1 584.2 521.1 605.3 500 626.3 478.9 647.4 457.9 668.4 436.8 689.5 415.8 710.5 394.7 731.6 373.7 752.6 352.6 773.7 331.6 794.7 310.5 815.8 289.5 836.8 268.4 857.9 247.4 878.9 226.3 900 205.3 921.1 184.2 942.1 163.2 963.2 142.1 984.2 110.5 994.7 78.9 1005.3 47.4 994.7 15.8 984.2 5.3 952.6-5.3 921.1 5.3 889.5 15.8 857.9 36.8 836.8 57.9 815.8 78.9 794.7 100 773.7 121.1 752.6 142.1 731.6 163.2 710.5 184.2 689.5 205.3 668.4 226.3 647.4 247.4 626.3 268.4 605.3 289.5 584.2 310.5 563.2 331.6 542.1 352.6 521.1 373.7 500 394.7 478.9 415.8 457.9 436.8 436.8 457.9 415.8 478.9 394.7 500 373.7 521.1 352.6 542.1 331.6 563.2 310.5 584.2 289.5 605.3 268.4 626.3 247.4 647.4 226.3 668.4 205.3 689.5 184.2 710.5 163.2 731.6 142.1 752.6 121.1 773.7 100 794.7 78.9 815.8 57.9 836.8 36.8",
- "width": 1000
- },
- "search": [
- "line"
- ]
- },
- {
- "uid": "d4d06d27c6e566237097413b3695b4aa",
- "css": "spray",
- "code": 59474,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M18.2 0C6.1 0 0 6.1 0 18.2 0 30.3 6.1 36.4 18.2 36.4 30.3 36.4 36.4 30.3 36.4 18.2 36.4 6.1 30.3 0 18.2 0ZM454.5 54.5C430.3 54.5 409.1 57.6 390.9 63.6 372.7 69.7 363.6 78.8 363.6 90.9 363.6 103 369.7 115.2 381.8 127.3 393.9 139.4 400 151.5 400 163.6 400 175.8 393.9 187.9 381.8 200L345.5 236.4 309.1 272.7 272.7 309.1 236.4 345.5C224.2 357.6 218.2 369.7 218.2 381.8 218.2 393.9 227.3 403 245.5 409.1 263.6 415.2 284.8 418.2 309.1 418.2H381.8 454.5 527.3 600 672.7C697 418.2 718.2 415.2 736.4 409.1 754.5 403 763.6 393.9 763.6 381.8 763.6 369.7 757.6 357.6 745.5 345.5L709.1 309.1 672.7 272.7C660.6 260.6 651.5 245.5 645.5 227.3 639.4 209.1 636.4 187.9 636.4 163.6 636.4 139.4 633.3 118.2 627.3 100 621.2 81.8 609.1 69.7 590.9 63.6 572.7 57.6 551.5 54.5 527.3 54.5ZM163.6 72.7C151.5 72.7 145.5 78.8 145.5 90.9 145.5 103 151.5 115.2 163.6 127.3 175.8 139.4 181.8 151.5 181.8 163.6 181.8 175.8 175.8 187.9 163.6 200 151.5 212.1 145.5 224.2 145.5 236.4 145.5 248.5 151.5 254.5 163.6 254.5 175.8 254.5 187.9 248.5 200 236.4L236.4 200C248.5 187.9 254.5 175.8 254.5 163.6 254.5 151.5 248.5 139.4 236.4 127.3L200 90.9C187.9 78.8 175.8 72.7 163.6 72.7ZM18.2 145.5C6.1 145.5 0 151.5 0 163.6 0 175.8 6.1 181.8 18.2 181.8 30.3 181.8 36.4 175.8 36.4 163.6 36.4 151.5 30.3 145.5 18.2 145.5ZM18.2 290.9C6.1 290.9 0 297 0 309.1 0 321.2 6.1 327.3 18.2 327.3 30.3 327.3 36.4 321.2 36.4 309.1 36.4 297 30.3 290.9 18.2 290.9ZM309.1 490.9C284.8 490.9 263.6 493.9 245.5 500 227.3 506.1 215.2 518.2 209.1 536.4 203 554.5 200 575.8 200 600V672.7 745.5C200 769.7 203 790.9 209.1 809.1 215.2 827.3 227.3 839.4 245.5 845.5 263.6 851.5 284.8 854.5 309.1 854.5H381.8 454.5 527.3 600 672.7C697 854.5 718.2 851.5 736.4 845.5 754.5 839.4 766.7 827.3 772.7 809.1 778.8 790.9 781.8 769.7 781.8 745.5V672.7 600C781.8 575.8 778.8 554.5 772.7 536.4 766.7 518.2 754.5 506.1 736.4 500 718.2 493.9 697 490.9 672.7 490.9H600 527.3 454.5 381.8ZM309.1 927.3C284.8 927.3 263.6 930.3 245.5 936.4 227.3 942.4 218.2 951.5 218.2 963.6 218.2 975.8 227.3 984.8 245.5 990.9 263.6 997 284.8 1000 309.1 1000H381.8 454.5 527.3 600 672.7C697 1000 718.2 997 736.4 990.9 754.5 984.8 763.6 975.8 763.6 963.6 763.6 951.5 754.5 942.4 736.4 936.4 718.2 930.3 697 927.3 672.7 927.3H600 527.3 454.5 381.8Z",
- "width": 782
- },
- "search": [
- "spray"
- ]
- },
- {
- "uid": "eab433e0de7fbc7ce341bca83f184abb",
- "css": "fill",
- "code": 59457,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M426 35.9Q443.9 17.9 470.9 9 497.8 0 533.6 0 569.5 0 596.4 9 623.3 17.9 641.3 35.9 659.2 53.8 677.1 71.7 695.1 89.7 704 116.6 713 143.5 713 179.4 713 215.2 704 242.2 695.1 269.1 677.1 287 659.2 304.9 659.2 322.9 659.2 340.8 686.1 349.8 713 358.7 748.9 358.7 784.8 358.7 811.7 367.7 838.6 376.7 856.5 394.6 874.4 412.6 892.4 430.5 910.3 448.4 928.3 466.4 946.2 484.3 964.1 502.2 982.1 520.2 991 547.1 1000 574 1000 609.9 1000 645.7 1000 681.6 1000 717.5 1000 753.4 1000 789.2 1000 825.1 1000 861 991 887.9 982.1 914.8 964.1 914.8 946.2 914.8 937.2 887.9 928.3 861 928.3 825.1 928.3 789.2 919.3 762.3 910.3 735.4 892.4 717.5 874.4 699.6 865.5 672.6 856.5 645.7 847.5 618.8 838.6 591.9 820.6 591.9 802.7 591.9 784.8 609.9 766.8 627.8 748.9 645.7 730.9 663.7 713 681.6 695.1 699.6 677.1 717.5 659.2 735.4 641.3 753.4 623.3 771.3 605.4 789.2 587.4 807.2 569.5 825.1 551.6 843 533.6 861 515.7 878.9 497.8 896.9 479.8 914.8 461.9 932.7 443.9 950.7 426 968.6 408.1 986.5 381.2 995.5 354.3 1004.5 327.4 995.5 300.4 986.5 282.5 968.6 264.6 950.7 246.6 932.7 228.7 914.8 210.8 896.9 192.8 878.9 174.9 861 157 843 139 825.1 121.1 807.2 103.1 789.2 85.2 771.3 67.3 753.4 49.3 735.4 31.4 717.5 13.5 699.6 4.5 672.6-4.5 645.7 4.5 618.8 13.5 591.9 31.4 574 49.3 556.1 67.3 538.1 85.2 520.2 103.1 502.2 121.1 484.3 139 466.4 157 448.4 174.9 430.5 192.8 412.6 210.8 394.6 228.7 376.7 246.6 376.7 264.6 376.7 273.5 403.6 282.5 430.5 273.5 457.4 264.6 484.3 246.6 502.2 228.7 520.2 210.8 538.1 192.8 556.1 174.9 574 157 591.9 148 618.8 139 645.7 148 672.6 157 699.6 174.9 717.5 192.8 735.4 210.8 753.4 228.7 771.3 246.6 789.2 264.6 807.2 282.5 825.1 300.4 843 327.4 852 354.3 861 381.2 852 408.1 843 426 825.1 443.9 807.2 461.9 789.2 479.8 771.3 497.8 753.4 515.7 735.4 533.6 717.5 551.6 699.6 569.5 681.6 587.4 663.7 605.4 645.7 623.3 627.8 641.3 609.9 659.2 591.9 677.1 574 695.1 556.1 695.1 538.1 695.1 520.2 677.1 502.2 659.2 484.3 641.3 466.4 623.3 448.4 605.4 430.5 587.4 412.6 569.5 394.6 551.6 376.7 533.6 358.7 515.7 340.8 506.7 313.9 497.8 287 506.7 260.1 515.7 233.2 533.6 233.2 551.6 233.2 569.5 251.1 587.4 269.1 605.4 269.1 623.3 269.1 632.3 242.2 641.3 215.2 641.3 179.4 641.3 143.5 632.3 116.6 623.3 89.7 596.4 80.7 569.5 71.7 533.6 71.7 497.8 71.7 470.9 80.7 443.9 89.7 435 116.6 426 143.5 426 179.4 426 215.2 426 251.1 426 287 426 322.9 426 358.7 426 394.6 426 430.5 417 457.4 408.1 484.3 390.1 484.3 372.2 484.3 363.2 457.4 354.3 430.5 354.3 394.6 354.3 358.7 354.3 322.9 354.3 287 354.3 251.1 354.3 215.2 354.3 179.4 354.3 143.5 363.2 116.6 372.2 89.7 390.1 71.7 408.1 53.8 426 35.9",
- "width": 1000
- },
- "search": [
- "fill"
- ]
- },
- {
- "uid": "d9d4c18716c0d8b23485258e35d9e3a9",
- "css": "paste",
- "code": 59419,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M392.9 0C369 0 348.2 3 330.4 8.9 312.5 14.9 297.6 23.8 285.7 35.7 273.8 47.6 258.9 56.5 241.1 62.5 223.2 68.5 202.4 71.4 178.6 71.4 154.8 71.4 133.9 74.4 116.1 80.4 98.2 86.3 83.3 95.2 71.4 107.1L35.7 142.9C23.8 154.8 14.9 169.6 8.9 187.5 3 205.4 0 226.2 0 250V321.4 392.9 464.3 535.7 607.1 678.6 750 821.4C0 845.2 3 866.1 8.9 883.9 14.9 901.8 23.8 916.7 35.7 928.6L71.4 964.3C83.3 976.2 98.2 985.1 116.1 991.1 133.9 997 154.8 1000 178.6 1000H250 321.4 392.9 464.3 535.7 607.1 678.6C702.4 1000 723.2 997 741.1 991.1 758.9 985.1 773.8 976.2 785.7 964.3L821.4 928.6C833.3 916.7 842.3 901.8 848.2 883.9 854.2 866.1 857.1 845.2 857.1 821.4V750 678.6 607.1 535.7 464.3 392.9 321.4 250C857.1 226.2 854.2 205.4 848.2 187.5 842.3 169.6 833.3 154.8 821.4 142.9L785.7 107.1C773.8 95.2 758.9 86.3 741.1 80.4 723.2 74.4 702.4 71.4 678.6 71.4 654.8 71.4 633.9 68.5 616.1 62.5 598.2 56.5 583.3 47.6 571.4 35.7 559.5 23.8 544.6 14.9 526.8 8.9 508.9 3 488.1 0 464.3 0ZM428.6 75.9C437.5 75.9 446.4 77.4 455.4 80.4 473.2 86.3 482.1 95.2 482.1 107.1 482.1 119 473.2 128 455.4 133.9 437.5 139.9 419.6 139.9 401.8 133.9 383.9 128 375 119 375 107.1 375 95.2 383.9 86.3 401.8 80.4 410.7 77.4 419.6 75.9 428.6 75.9ZM214.3 218.8C223.2 218.8 232.1 220.2 241.1 223.2 258.9 229.2 273.8 238.1 285.7 250 297.6 261.9 312.5 270.8 330.4 276.8 348.2 282.7 369 285.7 392.9 285.7H464.3C488.1 285.7 508.9 282.7 526.8 276.8 544.6 270.8 559.5 261.9 571.4 250 583.3 238.1 598.2 229.2 616.1 223.2 633.9 217.3 651.8 217.3 669.6 223.2 687.5 229.2 699.4 241.1 705.4 258.9 711.3 276.8 714.3 297.6 714.3 321.4V392.9 464.3 535.7 607.1 678.6 750C714.3 773.8 711.3 794.6 705.4 812.5 699.4 830.4 687.5 842.3 669.6 848.2 651.8 854.2 631 857.1 607.1 857.1H535.7 464.3 392.9 321.4 250C226.2 857.1 205.4 854.2 187.5 848.2 169.6 842.3 157.7 830.4 151.8 812.5 145.8 794.6 142.9 773.8 142.9 750V678.6 607.1 535.7 464.3 392.9 321.4C142.9 297.6 145.8 276.8 151.8 258.9 157.7 241.1 169.6 229.2 187.5 223.2 196.4 220.2 205.4 218.8 214.3 218.8ZM321.4 428.6C297.6 428.6 276.8 431.5 258.9 437.5 241.1 443.5 232.1 452.4 232.1 464.3 232.1 476.2 241.1 485.1 258.9 491.1 276.8 497 297.6 500 321.4 500H392.9 464.3 535.7C559.5 500 580.4 497 598.2 491.1 616.1 485.1 625 476.2 625 464.3 625 452.4 616.1 443.5 598.2 437.5 580.4 431.5 559.5 428.6 535.7 428.6H464.3 392.9ZM321.4 571.4C297.6 571.4 276.8 574.4 258.9 580.4 241.1 586.3 232.1 595.2 232.1 607.1 232.1 619 241.1 628 258.9 633.9 276.8 639.9 297.6 642.9 321.4 642.9H392.9 464.3 535.7C559.5 642.9 580.4 639.9 598.2 633.9 616.1 628 625 619 625 607.1 625 595.2 616.1 586.3 598.2 580.4 580.4 574.4 559.5 571.4 535.7 571.4H464.3 392.9ZM321.4 714.3C297.6 714.3 276.8 717.3 258.9 723.2 241.1 729.2 232.1 738.1 232.1 750 232.1 761.9 241.1 770.8 258.9 776.8 276.8 782.7 297.6 785.7 321.4 785.7H392.9 464.3 535.7C559.5 785.7 580.4 782.7 598.2 776.8 616.1 770.8 625 761.9 625 750 625 738.1 616.1 729.2 598.2 723.2 580.4 717.3 559.5 714.3 535.7 714.3H464.3 392.9Z",
- "width": 857
- },
- "search": [
- "paste"
- ]
- },
- {
- "uid": "a69daaa147a4c2bee4b985727c89e1ff",
- "css": "book",
- "code": 59423,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M227.3 0C197 0 170.5 3.8 147.7 11.4 125 18.9 106.1 30.3 90.9 45.5L45.5 90.9C30.3 106.1 18.9 125 11.4 147.7 3.8 170.5 0 197 0 227.3V318.2 409.1 500 590.9 681.8 772.7 863.6C0 893.9 3.8 920.5 11.4 943.2 18.9 965.9 34.1 981.1 56.8 988.6 79.5 996.2 106.1 1000 136.4 1000H227.3 318.2 409.1 500 590.9 681.8C712.1 1000 738.6 996.2 761.4 988.6 784.1 981.1 803 969.7 818.2 954.5L863.6 909.1C878.8 893.9 890.2 875 897.7 852.3 905.3 829.5 909.1 803 909.1 772.7V681.8 590.9 500 409.1 318.2 227.3 136.4C909.1 106.1 905.3 79.5 897.7 56.8 890.2 34.1 875 18.9 852.3 11.4 829.5 3.8 803 0 772.7 0H681.8 590.9 500 409.1 318.2ZM318.2 90.9H409.1 500 590.9 681.8C712.1 90.9 738.6 94.7 761.4 102.3 784.1 109.8 799.2 125 806.8 147.7 814.4 170.5 818.2 197 818.2 227.3V318.2 409.1 500 590.9 681.8C818.2 712.1 814.4 738.6 806.8 761.4 799.2 784.1 784.1 799.2 761.4 806.8 738.6 814.4 712.1 818.2 681.8 818.2H590.9 500 409.1 318.2C287.9 818.2 261.4 814.4 238.6 806.8 215.9 799.2 200.8 784.1 193.2 761.4 185.6 738.6 181.8 712.1 181.8 681.8V590.9 500 409.1 318.2 227.3C181.8 197 185.6 170.5 193.2 147.7 200.8 125 215.9 109.8 238.6 102.3 261.4 94.7 287.9 90.9 318.2 90.9ZM409.1 181.8C378.8 181.8 352.3 185.6 329.5 193.2 306.8 200.8 291.7 215.9 284.1 238.6 276.5 261.4 276.5 284.1 284.1 306.8 291.7 329.5 306.8 344.7 329.5 352.3 352.3 359.8 378.8 363.6 409.1 363.6H500 590.9C621.2 363.6 647.7 359.8 670.5 352.3 693.2 344.7 708.3 329.5 715.9 306.8 723.5 284.1 723.5 261.4 715.9 238.6 708.3 215.9 693.2 200.8 670.5 193.2 647.7 185.6 621.2 181.8 590.9 181.8H500ZM409.1 454.5C378.8 454.5 352.3 458.3 329.5 465.9 306.8 473.5 295.5 484.8 295.5 500 295.5 515.2 306.8 526.5 329.5 534.1 352.3 541.7 378.8 545.5 409.1 545.5H500 590.9C621.2 545.5 647.7 541.7 670.5 534.1 693.2 526.5 704.5 515.2 704.5 500 704.5 484.8 693.2 473.5 670.5 465.9 647.7 458.3 621.2 454.5 590.9 454.5H500ZM409.1 636.4C378.8 636.4 352.3 640.2 329.5 647.7 306.8 655.3 295.5 666.7 295.5 681.8 295.5 697 306.8 708.3 329.5 715.9 352.3 723.5 378.8 727.3 409.1 727.3H500 590.9C621.2 727.3 647.7 723.5 670.5 715.9 693.2 708.3 704.5 697 704.5 681.8 704.5 666.7 693.2 655.3 670.5 647.7 647.7 640.2 621.2 636.4 590.9 636.4H500Z",
- "width": 909
- },
- "search": [
- "book"
- ]
- },
- {
- "uid": "ceb9cde822ac23f35c3bd67a8d0c4fac",
- "css": "host",
- "code": 59437,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M11.4 56.8Q22.7 22.7 56.8 11.4 90.9 0 136.4 0 181.8 0 227.3 0 272.7 0 318.2 0 363.6 0 409.1 0 454.5 0 500 0 545.5 0 590.9 0 636.4 0 681.8 0 727.3 0 772.7 0 818.2 0 863.6 0 909.1 0 954.5 0 1000 0 1034.1 11.4 1068.2 22.7 1079.5 56.8 1090.9 90.9 1090.9 136.4 1090.9 181.8 1079.5 215.9 1068.2 250 1034.1 261.4 1000 272.7 954.5 272.7 909.1 272.7 863.6 272.7 818.2 272.7 772.7 272.7 727.3 272.7 681.8 272.7 636.4 272.7 590.9 272.7 545.5 272.7 500 272.7 454.5 272.7 409.1 272.7 363.6 272.7 318.2 272.7 272.7 272.7 227.3 272.7 181.8 272.7 136.4 272.7 90.9 272.7 56.8 261.4 22.7 250 11.4 215.9 0 181.8 0 136.4 0 90.9 11.4 56.8M409.1 181.8Q454.5 181.8 488.6 170.5 522.7 159.1 522.7 136.4 522.7 113.6 488.6 102.3 454.5 90.9 409.1 90.9 363.6 90.9 318.2 90.9 272.7 90.9 227.3 90.9 181.8 90.9 147.7 102.3 113.6 113.6 113.6 136.4 113.6 159.1 147.7 170.5 181.8 181.8 227.3 181.8 272.7 181.8 318.2 181.8 363.6 181.8 409.1 181.8M840.9 136.4Q840.9 159.1 863.6 159.1 886.4 159.1 886.4 136.4 886.4 113.6 863.6 113.6 840.9 113.6 840.9 136.4M11.4 420.5Q22.7 386.4 56.8 375 90.9 363.6 136.4 363.6 181.8 363.6 227.3 363.6 272.7 363.6 318.2 363.6 363.6 363.6 409.1 363.6 454.5 363.6 500 363.6 545.5 363.6 590.9 363.6 636.4 363.6 681.8 363.6 727.3 363.6 772.7 363.6 818.2 363.6 863.6 363.6 909.1 363.6 954.5 363.6 1000 363.6 1034.1 375 1068.2 386.4 1079.5 420.5 1090.9 454.5 1090.9 500 1090.9 545.5 1079.5 579.5 1068.2 613.6 1034.1 625 1000 636.4 954.5 636.4 909.1 636.4 863.6 636.4 818.2 636.4 772.7 636.4 727.3 636.4 681.8 636.4 636.4 636.4 590.9 636.4 545.5 636.4 500 636.4 454.5 636.4 409.1 636.4 363.6 636.4 318.2 636.4 272.7 636.4 227.3 636.4 181.8 636.4 136.4 636.4 90.9 636.4 56.8 625 22.7 613.6 11.4 579.5 0 545.5 0 500 0 454.5 11.4 420.5M409.1 545.5Q454.5 545.5 488.6 534.1 522.7 522.7 522.7 500 522.7 477.3 488.6 465.9 454.5 454.5 409.1 454.5 363.6 454.5 318.2 454.5 272.7 454.5 227.3 454.5 181.8 454.5 147.7 465.9 113.6 477.3 113.6 500 113.6 522.7 147.7 534.1 181.8 545.5 227.3 545.5 272.7 545.5 318.2 545.5 363.6 545.5 409.1 545.5M840.9 500Q840.9 522.7 863.6 522.7 886.4 522.7 886.4 500 886.4 477.3 863.6 477.3 840.9 477.3 840.9 500M11.4 784.1Q22.7 750 56.8 738.6 90.9 727.3 136.4 727.3 181.8 727.3 227.3 727.3 272.7 727.3 318.2 727.3 363.6 727.3 409.1 727.3 454.5 727.3 500 727.3 545.5 727.3 590.9 727.3 636.4 727.3 681.8 727.3 727.3 727.3 772.7 727.3 818.2 727.3 863.6 727.3 909.1 727.3 954.5 727.3 1000 727.3 1034.1 738.6 1068.2 750 1079.5 784.1 1090.9 818.2 1090.9 863.6 1090.9 909.1 1079.5 943.2 1068.2 977.3 1034.1 988.6 1000 1000 954.5 1000 909.1 1000 863.6 1000 818.2 1000 772.7 1000 727.3 1000 681.8 1000 636.4 1000 590.9 1000 545.5 1000 500 1000 454.5 1000 409.1 1000 363.6 1000 318.2 1000 272.7 1000 227.3 1000 181.8 1000 136.4 1000 90.9 1000 56.8 988.6 22.7 977.3 11.4 943.2 0 909.1 0 863.6 0 818.2 11.4 784.1M409.1 909.1Q454.5 909.1 488.6 897.7 522.7 886.4 522.7 863.6 522.7 840.9 488.6 829.5 454.5 818.2 409.1 818.2 363.6 818.2 318.2 818.2 272.7 818.2 227.3 818.2 181.8 818.2 147.7 829.5 113.6 840.9 113.6 863.6 113.6 886.4 147.7 897.7 181.8 909.1 227.3 909.1 272.7 909.1 318.2 909.1 363.6 909.1 409.1 909.1M840.9 863.6Q840.9 886.4 863.6 886.4 886.4 886.4 886.4 863.6 886.4 840.9 863.6 840.9 840.9 840.9 840.9 863.6",
- "width": 1091
- },
- "search": [
- "host"
- ]
- },
- {
- "uid": "496a07ca2bfa65f351c24b819fae0362",
- "css": "exit",
- "code": 59416,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M208.3 0C180.6 0 156.2 3.5 135.4 10.4 114.6 17.4 97.2 27.8 83.3 41.7L41.7 83.3C27.8 97.2 17.4 114.6 10.4 135.4 3.5 156.2 0 180.6 0 208.3V291.7 375 458.3 541.7 625 708.3 791.7C0 819.4 3.5 843.7 10.4 864.6 17.4 885.4 27.8 902.8 41.7 916.7L83.3 958.3C97.2 972.2 114.6 982.6 135.4 989.6 156.2 996.5 180.6 1000 208.3 1000H291.7 375 458.3 541.7 625 708.3C736.1 1000 760.4 996.5 781.3 989.6 802.1 982.6 819.4 972.2 833.3 958.3L875 916.7C888.9 902.8 895.8 888.9 895.8 875 895.8 861.1 885.4 850.7 864.6 843.7 843.8 836.8 819.4 833.3 791.7 833.3H708.3 625 541.7 458.3 375 291.7C263.9 833.3 239.6 829.9 218.7 822.9 197.9 816 184 802.1 177.1 781.2 170.1 760.4 166.7 736.1 166.7 708.3V625 541.7 458.3 375 291.7C166.7 263.9 170.1 239.6 177.1 218.7 184 197.9 197.9 184 218.7 177.1 239.6 170.1 263.9 166.7 291.7 166.7H375 458.3 541.7 625 708.3 791.7C819.4 166.7 843.8 163.2 864.6 156.2 885.4 149.3 895.8 138.9 895.8 125 895.8 111.1 888.9 97.2 875 83.3L833.3 41.7C819.4 27.8 802.1 17.4 781.3 10.4 760.4 3.5 736.1 0 708.3 0H625 541.7 458.3 375 291.7ZM791.7 270.8C777.8 270.8 767.4 281.2 760.4 302.1L739.6 364.6C732.6 385.4 718.8 399.3 697.9 406.2 677.1 413.2 652.8 416.7 625 416.7H541.7 458.3C430.6 416.7 406.2 420.1 385.4 427.1 364.6 434 350.7 447.9 343.7 468.7 336.8 489.6 336.8 510.4 343.7 531.2 350.7 552.1 364.6 566 385.4 572.9 406.2 579.9 430.6 583.3 458.3 583.3H541.7 625C652.8 583.3 677.1 586.8 697.9 593.7 718.8 600.7 732.6 614.6 739.6 635.4L760.4 697.9C767.4 718.7 777.8 729.2 791.7 729.2 805.6 729.2 819.4 722.2 833.3 708.3L875 666.7 916.7 625 958.3 583.3C972.2 569.4 982.6 552.1 989.6 531.2 996.5 510.4 996.5 489.6 989.6 468.7 982.6 447.9 972.2 430.6 958.3 416.7L916.7 375 875 333.3 833.3 291.7C819.4 277.8 805.6 270.8 791.7 270.8Z",
- "width": 995
- },
- "search": [
- "exit"
- ]
- },
- {
- "uid": "06a8fb7f89285292492baf4e4f3657be",
- "css": "terrain",
- "code": 59475,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M340.4 21.3Q361.7 0 383 0 404.3 0 425.5 21.3 446.8 42.6 468.1 63.8 489.4 85.1 510.6 106.4 531.9 127.7 553.2 148.9 574.5 170.2 595.7 191.5 617 212.8 638.3 212.8 659.6 212.8 680.9 191.5 702.1 170.2 723.4 170.2 744.7 170.2 766 191.5 787.2 212.8 808.5 234 829.8 255.3 851.1 276.6 872.3 297.9 893.6 319.1 914.9 340.4 936.2 361.7 957.4 383 978.7 404.3 1000 425.5 1010.6 457.4 1021.3 489.4 1021.3 531.9 1021.3 574.5 1021.3 617 1021.3 659.6 1021.3 702.1 1021.3 744.7 1021.3 787.2 1021.3 829.8 1021.3 872.3 1021.3 914.9 1010.6 946.8 1000 978.7 968.1 989.4 936.2 1000 893.6 1000 851.1 1000 808.5 1000 766 1000 723.4 1000 680.9 1000 638.3 1000 595.7 1000 553.2 1000 510.6 1000 468.1 1000 425.5 1000 383 1000 340.4 1000 297.9 1000 255.3 1000 212.8 1000 170.2 1000 127.7 1000 85.1 1000 53.2 989.4 21.3 978.7 10.6 946.8 0 914.9 0 872.3 0 829.8 0 787.2 0 744.7 0 702.1 0 659.6 0 617 0 574.5 0 531.9 0 489.4 0 446.8 0 404.3 10.6 372.3 21.3 340.4 42.6 319.1 63.8 297.9 85.1 276.6 106.4 255.3 127.7 234 148.9 212.8 170.2 191.5 191.5 170.2 212.8 148.9 234 127.7 255.3 106.4 276.6 85.1 297.9 63.8 319.1 42.6 340.4 21.3M808.5 914.9Q851.1 914.9 883 904.3 914.9 893.6 925.5 861.7 936.2 829.8 936.2 787.2 936.2 744.7 936.2 702.1 936.2 659.6 936.2 617 936.2 574.5 925.5 542.6 914.9 510.6 893.6 489.4 872.3 468.1 851.1 446.8 829.8 425.5 808.5 404.3 787.2 383 766 361.7 744.7 340.4 723.4 340.4 702.1 340.4 680.9 361.7 659.6 383 638.3 383 617 383 595.7 361.7 574.5 340.4 553.2 319.1 531.9 297.9 510.6 276.6 489.4 255.3 468.1 234 446.8 212.8 425.5 191.5 404.3 170.2 383 170.2 361.7 170.2 340.4 191.5 319.1 212.8 297.9 234 276.6 255.3 255.3 276.6 234 297.9 212.8 319.1 191.5 340.4 170.2 361.7 148.9 383 127.7 404.3 106.4 425.5 95.7 457.4 85.1 489.4 85.1 531.9 85.1 574.5 85.1 617 85.1 659.6 85.1 702.1 85.1 744.7 85.1 787.2 85.1 829.8 95.7 861.7 106.4 893.6 138.3 904.3 170.2 914.9 212.8 914.9 255.3 914.9 297.9 914.9 340.4 914.9 383 914.9 425.5 914.9 468.1 914.9 510.6 914.9 553.2 914.9 595.7 914.9 638.3 914.9 680.9 914.9 723.4 914.9 766 914.9 808.5 914.9",
- "width": 1021
- },
- "search": [
- "terrain"
- ]
- },
- {
- "uid": "c97c45befeea2eaee193c77fc6c6fd64",
- "css": "trash",
- "code": 59413,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M260.4 52.1Q270.8 20.8 302.1 10.4 333.3 0 375 0 416.7 0 458.3 0 500 0 531.3 10.4 562.5 20.8 572.9 52.1 583.3 83.3 593.8 114.6 604.2 145.8 635.4 156.3 666.7 166.7 708.3 166.7 750 166.7 781.3 177.1 812.5 187.5 822.9 218.8 833.3 250 833.3 291.7 833.3 333.3 833.3 375 833.3 416.7 822.9 447.9 812.5 479.2 791.7 500 770.8 520.8 760.4 552.1 750 583.3 750 625 750 666.7 750 708.3 750 750 750 791.7 750 833.3 750 875 750 916.7 739.6 947.9 729.2 979.2 697.9 989.6 666.7 1000 625 1000 583.3 1000 541.7 1000 500 1000 458.3 1000 416.7 1000 375 1000 333.3 1000 291.7 1000 250 1000 208.3 1000 166.7 1000 135.4 989.6 104.2 979.2 93.8 947.9 83.3 916.7 83.3 875 83.3 833.3 83.3 791.7 83.3 750 83.3 708.3 83.3 666.7 83.3 625 83.3 583.3 72.9 552.1 62.5 520.8 41.7 500 20.8 479.2 10.4 447.9 0 416.7 0 375 0 333.3 0 291.7 0 250 10.4 218.8 20.8 187.5 52.1 177.1 83.3 166.7 125 166.7 166.7 166.7 197.9 156.3 229.2 145.8 239.6 114.6 250 83.3 260.4 52.1M177.1 864.6Q187.5 895.8 208.3 895.8 229.2 895.8 239.6 864.6 250 833.3 250 791.7 250 750 250 708.3 250 666.7 250 625 250 583.3 239.6 552.1 229.2 520.8 208.3 520.8 187.5 520.8 177.1 552.1 166.7 583.3 166.7 625 166.7 666.7 166.7 708.3 166.7 750 166.7 791.7 166.7 833.3 177.1 864.6M385.4 906.3Q416.7 916.7 447.9 906.3 479.2 895.8 489.6 864.6 500 833.3 500 791.7 500 750 500 708.3 500 666.7 500 625 500 583.3 489.6 552.1 479.2 520.8 447.9 510.4 416.7 500 385.4 510.4 354.2 520.8 343.8 552.1 333.3 583.3 333.3 625 333.3 666.7 333.3 708.3 333.3 750 333.3 791.7 333.3 833.3 343.8 864.6 354.2 895.8 385.4 906.3M593.8 864.6Q604.2 895.8 625 895.8 645.8 895.8 656.3 864.6 666.7 833.3 666.7 791.7 666.7 750 666.7 708.3 666.7 666.7 666.7 625 666.7 583.3 656.3 552.1 645.8 520.8 625 520.8 604.2 520.8 593.8 552.1 583.3 583.3 583.3 625 583.3 666.7 583.3 708.3 583.3 750 583.3 791.7 583.3 833.3 593.8 864.6M625 416.7Q666.7 416.7 697.9 406.3 729.2 395.8 739.6 364.6 750 333.3 739.6 302.1 729.2 270.8 697.9 260.4 666.7 250 625 250 583.3 250 541.7 250 500 250 458.3 250 416.7 250 375 250 333.3 250 291.7 250 250 250 208.3 250 166.7 250 135.4 260.4 104.2 270.8 93.8 302.1 83.3 333.3 93.8 364.6 104.2 395.8 135.4 406.3 166.7 416.7 208.3 416.7 250 416.7 291.7 416.7 333.3 416.7 375 416.7 416.7 416.7 458.3 416.7 500 416.7 541.7 416.7 583.3 416.7 625 416.7M385.4 156.3Q416.7 166.7 447.9 156.3 479.2 145.8 479.2 125 479.2 104.2 447.9 93.8 416.7 83.3 385.4 93.8 354.2 104.2 354.2 125 354.2 145.8 385.4 156.3",
- "width": 833
- },
- "search": [
- "trash"
- ]
- },
- {
- "uid": "7e5b51e48fad210964d9b2ef40e120ca",
- "css": "refresh",
- "code": 59463,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M178.6 0C154.8 0 133.9 3 116.1 8.9 98.2 14.9 83.3 23.8 71.4 35.7L35.7 71.4C23.8 83.3 14.9 98.2 8.9 116.1 3 133.9 0 154.8 0 178.6V250 321.4 392.9 464.3C0 488.1 3 508.9 8.9 526.8 14.9 544.6 26.8 556.5 44.6 562.5 62.5 568.5 80.4 568.5 98.2 562.5 116.1 556.5 128 544.6 133.9 526.8 139.9 508.9 142.9 488.1 142.9 464.3V392.9 321.4 250C142.9 226.2 145.8 205.4 151.8 187.5 157.7 169.6 169.6 157.7 187.5 151.8 205.4 145.8 226.2 142.9 250 142.9H321.4 392.9 464.3 535.7 607.1C631 142.9 651.8 145.8 669.6 151.8 687.5 157.7 696.4 166.7 696.4 178.6 696.4 190.5 690.5 202.4 678.6 214.3 666.7 226.2 660.7 238.1 660.7 250 660.7 261.9 669.6 270.8 687.5 276.8 705.4 282.7 726.2 285.7 750 285.7H821.4C845.2 285.7 866.1 282.7 883.9 276.8 901.8 270.8 913.7 258.9 919.6 241.1 925.6 223.2 928.6 202.4 928.6 178.6V107.1C928.6 83.3 925.6 62.5 919.6 44.6 913.7 26.8 904.8 17.9 892.9 17.9 881 17.9 869 23.8 857.1 35.7 845.2 47.6 833.3 53.6 821.4 53.6 809.5 53.6 797.6 47.6 785.7 35.7 773.8 23.8 758.9 14.9 741.1 8.9 723.2 3 702.4 0 678.6 0H607.1 535.7 464.3 392.9 321.4 250ZM928.6 433C919.6 433 910.7 434.5 901.8 437.5 883.9 443.5 872 455.4 866.1 473.2 860.1 491.1 857.1 511.9 857.1 535.7V607.1 678.6 750C857.1 773.8 854.2 794.6 848.2 812.5 842.3 830.4 830.4 842.3 812.5 848.2 794.6 854.2 773.8 857.1 750 857.1H678.6 607.1 535.7 464.3 392.9C369 857.1 348.2 854.2 330.4 848.2 312.5 842.3 303.6 833.3 303.6 821.4 303.6 809.5 309.5 797.6 321.4 785.7 333.3 773.8 339.3 761.9 339.3 750 339.3 738.1 330.4 729.2 312.5 723.2 294.6 717.3 273.8 714.3 250 714.3H178.6C154.8 714.3 133.9 717.3 116.1 723.2 98.2 729.2 86.3 741.1 80.4 758.9 74.4 776.8 71.4 797.6 71.4 821.4V892.9C71.4 916.7 74.4 937.5 80.4 955.4 86.3 973.2 95.2 982.1 107.1 982.1 119 982.1 131 976.2 142.9 964.3 154.8 952.4 166.7 946.4 178.6 946.4 190.5 946.4 202.4 952.4 214.3 964.3 226.2 976.2 241.1 985.1 258.9 991.1 276.8 997 297.6 1000 321.4 1000H392.9 464.3 535.7 607.1 678.6 750 821.4C845.2 1000 866.1 997 883.9 991.1 901.8 985.1 916.7 976.2 928.6 964.3L964.3 928.6C976.2 916.7 985.1 901.8 991.1 883.9 997 866.1 1000 845.2 1000 821.4V750 678.6 607.1 535.7C1000 511.9 997 491.1 991.1 473.2 985.1 455.4 973.2 443.5 955.4 437.5 946.4 434.5 937.5 433 928.6 433Z",
- "width": 1000
- },
- "search": [
- "refresh"
- ]
- },
- {
- "uid": "59925475e7cc98ccd821771cff586bb6",
- "css": "pencil_",
- "code": 59476,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M836.4 0C824.2 0 812.1 6.1 800 18.2L763.6 54.5 727.3 90.9 690.9 127.3C678.8 139.4 672.7 151.5 672.7 163.6 672.7 175.8 678.8 187.9 690.9 200L727.3 236.4 763.6 272.7 800 309.1C812.1 321.2 824.2 327.3 836.4 327.3 848.5 327.3 860.6 321.2 872.7 309.1L909.1 272.7 945.5 236.4 981.8 200C993.9 187.9 1000 175.8 1000 163.6 1000 151.5 993.9 139.4 981.8 127.3L945.5 90.9 909.1 54.5 872.7 18.2C860.6 6.1 848.5 0 836.4 0ZM545.5 290.9C533.3 290.9 521.2 297 509.1 309.1L472.7 345.5 436.4 381.8 400 418.2 363.6 454.5 327.3 490.9 290.9 527.3 254.5 563.6 218.2 600 181.8 636.4 145.5 672.7 109.1 709.1 72.7 745.5 36.4 781.8C24.2 793.9 15.2 809.1 9.1 827.3 3 845.5 0 866.7 0 890.9 0 915.2 3 936.4 9.1 954.5 15.2 972.7 27.3 984.8 45.5 990.9 63.6 997 84.8 1000 109.1 1000 133.3 1000 154.5 997 172.7 990.9 190.9 984.8 206.1 975.8 218.2 963.6L254.5 927.3 290.9 890.9 327.3 854.5 363.6 818.2 400 781.8 436.4 745.5 472.7 709.1 509.1 672.7 545.5 636.4 581.8 600 618.2 563.6 654.5 527.3 690.9 490.9C703 478.8 709.1 466.7 709.1 454.5 709.1 442.4 703 430.3 690.9 418.2L654.5 381.8 618.2 345.5 581.8 309.1C569.7 297 557.6 290.9 545.5 290.9ZM254.5 654.5C266.7 654.5 278.8 660.6 290.9 672.7L327.3 709.1C339.4 721.2 345.5 733.3 345.5 745.5 345.5 757.6 339.4 769.7 327.3 781.8L290.9 818.2 254.5 854.5 218.2 890.9C206.1 903 190.9 912.1 172.7 918.2 154.5 924.2 136.4 924.2 118.2 918.2 100 912.1 87.9 900 81.8 881.8 75.8 863.6 75.8 845.5 81.8 827.3 87.9 809.1 97 793.9 109.1 781.8L145.5 745.5 181.8 709.1 218.2 672.7C230.3 660.6 242.4 654.5 254.5 654.5Z",
- "width": 1000
- },
- "search": [
- "pencil"
- ]
- },
- {
- "uid": "346f9aef245e0c2ded44e31ad7c66acb",
- "css": "mode-pvp",
- "code": 59477,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M305.8 0C296.1 0 286.4 1.6 276.7 4.9 257.3 11.3 244.3 24.3 237.9 43.7 231.4 63.1 231.4 82.5 237.9 101.9 244.3 121.4 254 137.5 267 150.5L305.8 189.3 344.7 228.2 383.5 267C396.4 279.9 409.4 286.4 422.3 286.4 435.3 286.4 448.2 279.9 461.2 267L500 228.2C512.9 215.2 519.4 202.3 519.4 189.3 519.4 176.4 512.9 163.4 500 150.5L461.2 111.7 422.3 72.8 383.5 34C370.6 21 354.4 11.3 335 4.9 325.2 1.6 315.5 0 305.8 0ZM927.2 0C917.5 0 907.8 1.6 898.1 4.9 878.6 11.3 862.5 21 849.5 34L810.7 72.8 771.8 111.7 733 150.5 694.2 189.3 655.3 228.2 616.5 267 577.7 305.8 538.8 344.7 500 383.5 461.2 422.3 422.3 461.2 383.5 500C370.6 512.9 354.4 522.7 335 529.1 315.5 535.6 296.1 535.6 276.7 529.1 257.3 522.7 241.1 512.9 228.2 500 215.2 487.1 199 477.3 179.6 470.9 160.2 464.4 140.8 464.4 121.4 470.9 101.9 477.3 89 490.3 82.5 509.7 76.1 529.1 76.1 548.5 82.5 568 89 587.4 98.7 603.6 111.7 616.5 124.6 629.5 134.3 645.6 140.8 665 147.2 684.5 147.2 703.9 140.8 723.3 134.3 742.7 124.6 758.9 111.7 771.8L72.8 810.7 34 849.5C21 862.5 11.3 878.6 4.9 898.1-1.6 917.5-1.6 936.9 4.9 956.3 11.3 975.7 24.3 988.7 43.7 995.1 63.1 1001.6 82.5 1001.6 101.9 995.1 121.4 988.7 137.5 979 150.5 966L189.3 927.2 228.2 888.3C241.1 875.4 257.3 865.7 276.7 859.2 296.1 852.8 315.5 852.8 335 859.2 354.4 865.7 370.6 875.4 383.5 888.3 396.4 901.3 412.6 911 432 917.5 451.5 923.9 470.9 923.9 490.3 917.5 509.7 911 522.7 898.1 529.1 878.6 535.6 859.2 535.6 839.8 529.1 820.4 522.7 801 512.9 784.8 500 771.8 487.1 758.9 477.3 742.7 470.9 723.3 464.4 703.9 464.4 684.5 470.9 665 477.3 645.6 487.1 629.5 500 616.5L538.8 577.7 577.7 538.8 616.5 500 655.3 461.2 694.2 422.3 733 383.5 771.8 344.7 810.7 305.8 849.5 267 888.3 228.2 927.2 189.3 966 150.5C979 137.5 988.7 121.4 995.1 101.9 1001.6 82.5 1001.6 63.1 995.1 43.7 988.7 24.3 975.7 11.3 956.3 4.9 946.6 1.6 936.9 0 927.2 0ZM1082.5 466C1072.8 466 1063.1 467.6 1053.4 470.9 1034 477.3 1017.8 487.1 1004.9 500 991.9 512.9 975.7 522.7 956.3 529.1 936.9 535.6 917.5 535.6 898.1 529.1 878.6 522.7 862.5 512.9 849.5 500 836.6 487.1 823.6 480.6 810.7 480.6 797.7 480.6 784.8 487.1 771.8 500L733 538.8C720.1 551.8 713.6 564.7 713.6 577.7 713.6 590.6 720.1 603.6 733 616.5 746 629.5 755.7 645.6 762.1 665 768.6 684.5 768.6 703.9 762.1 723.3 755.7 742.7 746 758.9 733 771.8 720.1 784.8 710.4 801 703.9 820.4 697.4 839.8 697.4 859.2 703.9 878.6 710.4 898.1 723.3 911 742.7 917.5 762.1 923.9 781.6 923.9 801 917.5 820.4 911 836.6 901.3 849.5 888.3 862.5 875.4 878.6 865.7 898.1 859.2 917.5 852.8 936.9 852.8 956.3 859.2 975.7 865.7 991.9 875.4 1004.9 888.3L1043.7 927.2 1082.5 966C1095.5 979 1111.7 988.7 1131.1 995.1 1150.5 1001.6 1169.9 1001.6 1189.3 995.1 1208.7 988.7 1221.7 975.7 1228.2 956.3 1234.6 936.9 1234.6 917.5 1228.2 898.1 1221.7 878.6 1212 862.5 1199 849.5L1160.2 810.7 1121.4 771.8C1108.4 758.9 1098.7 742.7 1092.2 723.3 1085.8 703.9 1085.8 684.5 1092.2 665 1098.7 645.6 1108.4 629.5 1121.4 616.5 1134.3 603.6 1144 587.4 1150.5 568 1157 548.5 1157 529.1 1150.5 509.7 1144 490.3 1131.1 477.3 1111.7 470.9 1101.9 467.6 1092.2 466 1082.5 466Z",
- "width": 1233
- },
- "search": [
- "mode-pvp"
- ]
- },
- {
- "uid": "8d74cd519427de451b48df6554aaf593",
- "css": "mode-attack",
- "code": 59478,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M849.5 34Q868.9 14.6 898.1 4.9 927.2-4.9 956.3 4.9 985.4 14.6 995.1 43.7 1004.9 72.8 995.1 101.9 985.4 131.1 966 150.5 946.6 169.9 927.2 189.3 907.8 208.7 888.3 228.2 868.9 247.6 849.5 267 830.1 286.4 810.7 305.8 791.3 325.2 771.8 344.7 752.4 364.1 733 383.5 713.6 402.9 694.2 422.3 674.8 441.7 655.3 461.2 635.9 480.6 616.5 500 597.1 519.4 577.7 538.8 558.3 558.3 538.8 577.7 519.4 597.1 500 616.5 480.6 635.9 470.9 665 461.2 694.2 470.9 723.3 480.6 752.4 500 771.8 519.4 791.3 529.1 820.4 538.8 849.5 529.1 878.6 519.4 907.8 490.3 917.5 461.2 927.2 432 917.5 402.9 907.8 383.5 888.3 364.1 868.9 335 859.2 305.8 849.5 276.7 859.2 247.6 868.9 228.2 888.3 208.7 907.8 189.3 927.2 169.9 946.6 150.5 966 131.1 985.4 101.9 995.1 72.8 1004.9 43.7 995.1 14.6 985.4 4.9 956.3-4.9 927.2 4.9 898.1 14.6 868.9 34 849.5 53.4 830.1 72.8 810.7 92.2 791.3 111.7 771.8 131.1 752.4 140.8 723.3 150.5 694.2 140.8 665 131.1 635.9 111.7 616.5 92.2 597.1 82.5 568 72.8 538.8 82.5 509.7 92.2 480.6 121.4 470.9 150.5 461.2 179.6 470.9 208.7 480.6 228.2 500 247.6 519.4 276.7 529.1 305.8 538.8 335 529.1 364.1 519.4 383.5 500 402.9 480.6 422.3 461.2 441.7 441.7 461.2 422.3 480.6 402.9 500 383.5 519.4 364.1 538.8 344.7 558.3 325.2 577.7 305.8 597.1 286.4 616.5 267 635.9 247.6 655.3 228.2 674.8 208.7 694.2 189.3 713.6 169.9 733 150.5 752.4 131.1 771.8 111.7 791.3 92.2 810.7 72.8 830.1 53.4 849.5 34",
- "width": 1000
- },
- "search": [
- "mode-attack"
- ]
- },
- {
- "uid": "09e5948ca30589e5baa8d27e1c509588",
- "css": "mode-survival",
- "code": 59479,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M9.7 43.5Q19.3 14.5 48.3 4.8 77.3-4.8 106.3 4.8 135.3 14.5 154.6 33.8 173.9 53.1 193.2 72.5 212.6 91.8 231.9 111.1 251.2 130.4 280.2 140.1 309.2 149.8 347.8 149.8 386.5 149.8 425.1 149.8 463.8 149.8 502.4 149.8 541.1 149.8 579.7 149.8 618.4 149.8 647.3 140.1 676.3 130.4 695.7 111.1 715 91.8 734.3 72.5 753.6 53.1 772.9 33.8 792.3 14.5 821.3 4.8 850.2-4.8 879.2 4.8 908.2 14.5 917.9 43.5 927.5 72.5 927.5 111.1 927.5 149.8 927.5 188.4 927.5 227.1 927.5 265.7 927.5 304.3 927.5 343 927.5 381.6 927.5 420.3 927.5 458.9 927.5 497.6 927.5 536.2 927.5 574.9 927.5 613.5 917.9 642.5 908.2 671.5 888.9 690.8 869.6 710.1 850.2 729.5 830.9 748.8 811.6 768.1 792.3 787.4 772.9 806.8 753.6 826.1 734.3 845.4 715 864.7 695.7 884.1 676.3 903.4 657 922.7 637.7 942 618.4 961.4 599 980.7 570 990.3 541.1 1000 502.4 1000 463.8 1000 425.1 1000 386.5 1000 357.5 990.3 328.5 980.7 309.2 961.4 289.9 942 270.5 922.7 251.2 903.4 231.9 884.1 212.6 864.7 193.2 845.4 173.9 826.1 154.6 806.8 135.3 787.4 115.9 768.1 96.6 748.8 77.3 729.5 58 710.1 38.6 690.8 19.3 671.5 9.7 642.5 0 613.5 0 574.9 0 536.2 0 497.6 0 458.9 0 420.3 0 381.6 0 343 0 304.3 0 265.7 0 227.1 0 188.4 0 149.8 0 111.1 0 72.5 9.7 43.5",
- "width": 928
- },
- "search": [
- "mode-survival"
- ]
- },
- {
- "uid": "3a617b3ed2fe766baec5b723b1d9502f",
- "css": "command-rally",
- "code": 59480,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M166.7 83.3Q208.3 41.7 270.8 20.8 333.3 0 416.7 0 500 0 583.3 0 666.7 0 729.2 20.8 791.7 41.7 833.3 83.3 875 125 916.7 166.7 958.3 208.3 979.2 270.8 1000 333.3 1000 416.7 1000 500 1000 583.3 1000 666.7 979.2 729.2 958.3 791.7 916.7 833.3 875 875 833.3 916.7 791.7 958.3 729.2 979.2 666.7 1000 583.3 1000 500 1000 416.7 1000 333.3 1000 270.8 979.2 208.3 958.3 166.7 916.7 125 875 83.3 833.3 41.7 791.7 20.8 729.2 0 666.7 0 583.3 0 500 0 416.7 0 333.3 20.8 270.8 41.7 208.3 83.3 166.7 125 125 166.7 83.3M437.5 812.5Q500 833.3 562.5 812.5 625 791.7 666.7 750 708.3 708.3 750 666.7 791.7 625 812.5 562.5 833.3 500 812.5 437.5 791.7 375 750 333.3 708.3 291.7 666.7 250 625 208.3 562.5 187.5 500 166.7 437.5 187.5 375 208.3 333.3 250 291.7 291.7 250 333.3 208.3 375 187.5 437.5 166.7 500 187.5 562.5 208.3 625 250 666.7 291.7 708.3 333.3 750 375 791.7 437.5 812.5",
- "width": 1000
- },
- "search": [
- "command-rally"
- ]
- },
- {
- "uid": "90fb5a431ca95c46a446c8f4a481d5ce",
- "css": "command-attack",
- "code": 59481,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M670.2 74.5Q712.8 31.9 776.6 10.6 840.4-10.6 904.3 10.6 968.1 31.9 989.4 95.7 1010.6 159.6 989.4 223.4 968.1 287.2 925.5 329.8 883 372.3 840.4 414.9 797.9 457.4 755.3 500 712.8 542.6 670.2 585.1 627.7 627.7 585.1 670.2 542.6 712.8 542.6 755.3 542.6 797.9 585.1 840.4 627.7 883 627.7 925.5 627.7 968.1 585.1 968.1 542.6 968.1 500 925.5 457.4 883 414.9 883 372.3 883 329.8 925.5 287.2 968.1 223.4 989.4 159.6 1010.6 95.7 989.4 31.9 968.1 10.6 904.3-10.6 840.4 10.6 776.6 31.9 712.8 74.5 670.2 117 627.7 117 585.1 117 542.6 74.5 500 31.9 457.4 31.9 414.9 31.9 372.3 74.5 372.3 117 372.3 159.6 414.9 202.1 457.4 244.7 457.4 287.2 457.4 329.8 414.9 372.3 372.3 414.9 329.8 457.4 287.2 500 244.7 542.6 202.1 585.1 159.6 627.7 117 670.2 74.5",
- "width": 1000
- },
- "search": [
- "command-attack"
- ]
- },
- {
- "uid": "17ef812a059c83b5ea3612f860f9569a",
- "css": "command-retreat",
- "code": 59482,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M352.3 45.5Q397.7 0 443.2 0 488.6 0 511.4 68.2 534.1 136.4 556.8 204.5 579.5 272.7 647.7 295.5 715.9 318.2 806.8 318.2 897.7 318.2 965.9 340.9 1034.1 363.6 1056.8 431.8 1079.5 500 1056.8 568.2 1034.1 636.4 965.9 659.1 897.7 681.8 806.8 681.8 715.9 681.8 647.7 704.5 579.5 727.3 556.8 795.5 534.1 863.6 511.4 931.8 488.6 1000 443.2 1000 397.7 1000 352.3 954.5 306.8 909.1 261.4 863.6 215.9 818.2 170.5 772.7 125 727.3 79.5 681.8 34.1 636.4 11.4 568.2-11.4 500 11.4 431.8 34.1 363.6 79.5 318.2 125 272.7 170.5 227.3 215.9 181.8 261.4 136.4 306.8 90.9 352.3 45.5",
- "width": 1068
- },
- "search": [
- "command-retreat"
- ]
- },
- {
- "uid": "2073dbd997e5d8e1ffc1322d13ba5585",
- "css": "chat",
- "code": 59484,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M129 64.5Q161.3 32.3 209.7 16.1 258.1 0 322.6 0 387.1 0 451.6 0 516.1 0 580.6 0 645.2 0 709.7 0 774.2 0 822.6 16.1 871 32.3 903.2 64.5 935.5 96.8 967.7 129 1000 161.3 1016.1 209.7 1032.3 258.1 1032.3 322.6 1032.3 387.1 1032.3 451.6 1032.3 516.1 1016.1 564.5 1000 612.9 967.7 645.2 935.5 677.4 903.2 709.7 871 741.9 822.6 758.1 774.2 774.2 709.7 774.2 645.2 774.2 580.6 774.2 516.1 774.2 451.6 774.2 387.1 774.2 338.7 790.3 290.3 806.5 274.2 854.8 258.1 903.2 241.9 951.6 225.8 1000 193.5 1000 161.3 1000 129 967.7 96.8 935.5 64.5 903.2 32.3 871 16.1 822.6 0 774.2 0 709.7 0 645.2 0 580.6 0 516.1 0 451.6 0 387.1 0 322.6 0 258.1 16.1 209.7 32.3 161.3 64.5 129 96.8 96.8 129 64.5",
- "width": 1032
- },
- "search": [
- "chat"
- ]
- },
- {
- "uid": "9dd9e835aebe1060ba7190ad2b2ed951",
- "css": "zoom",
- "code": 59415,
- "src": "fontawesome"
- },
- {
- "uid": "1bc31b80669cb5edc2ee5d1370554bc9",
- "css": "players",
- "code": 59483,
- "src": "custom_icons",
- "selected": true,
- "svg": {
- "path": "M370.1 55.1Q401.6 23.6 448.8 7.9 496.1-7.9 543.3 7.9 590.6 23.6 622 55.1 653.5 86.6 685 118.1 716.5 149.6 732.3 196.9 748 244.1 732.3 291.3 716.5 338.6 685 370.1 653.5 401.6 653.5 433.1 653.5 464.6 685 496.1 716.5 527.6 748 559.1 779.5 590.6 811 622 842.5 653.5 874 685 905.5 716.5 937 748 968.5 779.5 984.3 826.8 1000 874 984.3 921.3 968.5 968.5 921.3 984.3 874 1000 811 1000 748 1000 685 1000 622 1000 559.1 1000 496.1 1000 433.1 1000 370.1 1000 307.1 1000 244.1 1000 181.1 1000 118.1 1000 70.9 984.3 23.6 968.5 7.9 921.3-7.9 874 7.9 826.8 23.6 779.5 55.1 748 86.6 716.5 118.1 685 149.6 653.5 181.1 622 212.6 590.6 244.1 559.1 275.6 527.6 307.1 496.1 338.6 464.6 338.6 433.1 338.6 401.6 307.1 370.1 275.6 338.6 259.8 291.3 244.1 244.1 259.8 196.9 275.6 149.6 307.1 118.1 338.6 86.6 370.1 55.1",
- "width": 992
- },
- "search": [
- "players"
- ]
- },
{
"uid": "dd1e5d774d1ced68cb7c439d8ed102f5",
"css": "logic",
- "code": 59420,
+ "code": 59406,
"src": "custom_icons",
"selected": true,
"svg": {
@@ -933,6 +357,704 @@
"search": [
"logic"
]
+ },
+ {
+ "uid": "d0ff49daa25603348abe7e3f7c70be56",
+ "css": "distribution",
+ "code": 59412,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M50 0L0 50V150 250 350 450 550 650 750 850 950L50 1000 100 950V850 750 650 550 450 350 250 150 50ZM950 0L900 50V150 250 350 450 550 650 750 850 950L950 1000 1000 950V850 750 650 550 450 350 250 150 50ZM450 100L400 150 350 200 300 250 350 300H450 550 650L700 250 650 200 600 150 550 100ZM450 400L400 450 350 500 300 550 350 600H450 550 650L700 550 650 500 600 450 550 400ZM450 700L400 750 350 800 300 850 350 900H450 550 650L700 850 650 800 600 750 550 700Z",
+ "width": 1000
+ },
+ "search": [
+ "distribution"
+ ]
+ },
+ {
+ "uid": "47efe0c5ca937e0def7264347af501ed",
+ "css": "hammer",
+ "code": 59415,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M458.3 0L416.7 41.7 375 83.3 333.3 125 291.7 166.7 250 208.3 208.3 250 166.7 291.7 208.3 333.3 250 375 291.7 416.7 333.3 458.3V541.7L291.7 583.3 250 625 208.3 666.7 166.7 708.3 125 750 83.3 791.7 41.7 833.3 0 875V958.3L41.7 1000H125L166.7 958.3 208.3 916.7 250 875 291.7 833.3 333.3 791.7 375 750 416.7 708.3 458.3 666.7H541.7L583.3 708.3 625 750 666.7 791.7 708.3 833.3 750 791.7 791.7 750 833.3 708.3 875 666.7 916.7 625 958.3 583.3 1000 541.7 958.3 500 916.7 458.3 875 416.7 833.3 375 791.7 333.3 750 291.7 708.3 250 666.7 208.3 625 166.7 583.3 125 541.7 83.3 500 41.7Z",
+ "width": 1000
+ },
+ "search": [
+ "hammer"
+ ]
+ },
+ {
+ "uid": "b41aaf351112113e5f50cb8b977d6293",
+ "css": "save",
+ "code": 59419,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M45.5 0L0 45.5V136.4 227.3 318.2 409.1 500 590.9 681.8 772.7 863.6 954.5L45.5 1000H136.4 227.3 318.2 409.1 500 590.9 681.8 772.7 863.6L909.1 954.5V863.6 772.7 681.8 590.9 500 409.1 318.2 227.3 136.4L863.6 90.9 818.2 45.5 772.7 0H681.8 590.9 500 409.1 318.2 227.3 136.4ZM136.4 90.9H227.3L272.7 136.4V227.3 318.2L318.2 363.6H409.1 500 590.9L636.4 318.2V227.3 136.4L681.8 90.9H772.7L818.2 136.4V227.3 318.2 409.1 500 590.9 681.8 772.7 863.6L772.7 909.1 727.3 863.6V772.7 681.8 590.9L681.8 545.5H590.9 500 409.1 318.2 227.3L181.8 590.9V681.8 772.7 863.6L136.4 909.1 90.9 863.6V772.7 681.8 590.9 500 409.1 318.2 227.3 136.4ZM409.1 90.9H500L545.5 136.4V227.3L500 272.7H409.1L363.6 227.3V136.4ZM318.2 636.4H409.1 500 590.9L636.4 681.8V772.7 863.6L590.9 909.1H500 409.1 318.2L272.7 863.6V772.7 681.8Z",
+ "width": 909
+ },
+ "search": [
+ "save"
+ ]
+ },
+ {
+ "uid": "e67fcdbfc21c4f395a4f78e2a56c5060",
+ "css": "link",
+ "code": 59420,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M125 0L83.3 41.7 41.7 83.3 0 125V208.3 291.7 375 458.3 541.7 625 708.3 791.7 875L41.7 916.7 83.3 958.3 125 1000H208.3 291.7 375 458.3 541.7 625 708.3 791.7 875L916.7 958.3 958.3 916.7 1000 875V791.7 708.3L958.3 666.7 916.7 625 875 583.3 833.3 625V708.3 791.7L791.7 833.3H708.3 625 541.7 458.3 375 291.7 208.3L166.7 791.7V708.3 625 541.7 458.3 375 291.7 208.3L208.3 166.7H291.7 375L416.7 125 375 83.3 333.3 41.7 291.7 0H208.3ZM541.7 0L500 41.7 541.7 83.3 583.3 125 625 166.7 666.7 208.3 625 250 583.3 291.7 541.7 333.3 500 375 458.3 416.7 416.7 458.3 375 500 333.3 541.7V625L375 666.7H458.3L500 625 541.7 583.3 583.3 541.7 625 500 666.7 458.3 708.3 416.7 750 375 791.7 333.3 833.3 375 875 416.7 916.7 458.3 958.3 500 1000 458.3V375 291.7 208.3 125 41.7L958.3 0H875 791.7 708.3 625Z",
+ "width": 1000
+ },
+ "search": [
+ "link"
+ ]
+ },
+ {
+ "uid": "3679836be9338f58f8a74e4352dc0bdd",
+ "css": "itchio",
+ "code": 59434,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M350 0L300 50 250 100 200 150V250 350L150 400 100 450 50 500 0 550V650 750 850L50 900 100 950 150 1000H250L300 950 350 900 400 850 450 800H550 650 750 850 950L1000 850 1050 900 1100 950 1150 1000H1250L1300 950 1350 900 1400 850V750 650 550L1350 500 1300 450 1250 400 1200 350V250 150L1150 100 1100 50 1050 0H950L900 50 850 100H750 650 550L500 50 450 0ZM650 200H750L800 250 850 300 900 350 950 400 1000 450 950 500H850L800 550V650L750 700H650L600 650V550L550 500H450L400 450 450 400 500 350 550 300 600 250Z",
+ "width": 1400
+ },
+ "search": [
+ "itchio"
+ ]
+ },
+ {
+ "uid": "a3f0c795c6e6506c0bf33e4d344676d5",
+ "css": "line",
+ "code": 59435,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M875 0L833.3 41.7 791.7 83.3 750 125 708.3 166.7 666.7 208.3 625 250 583.3 291.7 541.7 333.3 500 375 458.3 416.7 416.7 458.3 375 500 333.3 541.7 291.7 583.3 250 625 208.3 666.7 166.7 708.3 125 750 83.3 791.7 41.7 833.3 0 875V958.3L41.7 1000H125L166.7 958.3 208.3 916.7 250 875 291.7 833.3 333.3 791.7 375 750 416.7 708.3 458.3 666.7 500 625 541.7 583.3 583.3 541.7 625 500 666.7 458.3 708.3 416.7 750 375 791.7 333.3 833.3 291.7 875 250 916.7 208.3 958.3 166.7 1000 125V41.7L958.3 0Z",
+ "width": 1000
+ },
+ "search": [
+ "line"
+ ]
+ },
+ {
+ "uid": "f54e291de7ca06c5101bdeb7e81d6b7f",
+ "css": "admin",
+ "code": 59436,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M208.3 0L166.7 41.7 125 83.3 83.3 125 41.7 166.7 0 208.3V291.7 375 458.3 541.7L41.7 583.3 83.3 625V708.3 791.7L125 833.3 166.7 875 208.3 916.7 250 958.3 291.7 1000H375 458.3 541.7 625 708.3L750 958.3 791.7 916.7 833.3 875 875 833.3 916.7 791.7V708.3 625L958.3 583.3 1000 541.7V458.3 375 291.7 208.3L958.3 166.7 916.7 125 875 83.3 833.3 41.7 791.7 0H708.3 625 541.7 458.3 375 291.7ZM375 250H458.3 541.7 625L666.7 291.7 708.3 333.3 750 375V458.3L708.3 500 666.7 541.7 625 583.3H541.7 458.3 375L333.3 541.7 291.7 500 250 458.3V375L291.7 333.3 333.3 291.7ZM458.3 333.3L416.7 375V458.3L458.3 500H541.7L583.3 458.3V375L541.7 333.3ZM375 666.7H458.3 541.7 625L666.7 708.3 625 750H541.7 458.3 375L333.3 708.3Z",
+ "width": 1000
+ },
+ "search": [
+ "admin"
+ ]
+ },
+ {
+ "uid": "53efee2384cbefdc94210fb1b4972ed6",
+ "css": "spray-1",
+ "code": 59437,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M35.7 0L0 35.7 35.7 71.4 71.4 35.7ZM178.6 71.4L142.9 107.1 178.6 142.9 214.3 178.6 178.6 214.3 142.9 250 178.6 285.7 214.3 250 250 214.3 285.7 178.6 250 142.9 214.3 107.1ZM392.9 71.4L357.1 107.1 392.9 142.9 428.6 178.6 392.9 214.3 357.1 250 321.4 285.7 285.7 321.4 250 357.1 214.3 392.9 250 428.6H321.4 392.9 464.3 535.7 607.1 678.6 750L785.7 392.9 750 357.1 714.3 321.4 678.6 285.7 642.9 250V178.6 107.1L607.1 71.4H535.7 464.3ZM35.7 142.9L0 178.6 35.7 214.3 71.4 178.6ZM35.7 285.7L0 321.4 35.7 357.1 71.4 321.4ZM250 500L214.3 535.7V607.1 678.6 750 821.4L250 857.1H321.4 392.9 464.3 535.7 607.1 678.6 750L785.7 821.4V750 678.6 607.1 535.7L750 500H678.6 607.1 535.7 464.3 392.9 321.4ZM250 928.6L214.3 964.3 250 1000H321.4 392.9 464.3 535.7 607.1 678.6 750L785.7 964.3 750 928.6H678.6 607.1 535.7 464.3 392.9 321.4Z",
+ "width": 786
+ },
+ "search": [
+ "spray"
+ ]
+ },
+ {
+ "uid": "98cdb7c2e72493434efd910db1f62b29",
+ "css": "crafting",
+ "code": 59440,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M944.4 0L888.9 55.6V166.7 277.8 388.9L833.3 444.4 777.8 388.9 722.2 333.3 666.7 277.8 611.1 222.2 555.6 166.7 500 111.1 444.4 166.7V277.8 388.9L388.9 444.4 333.3 388.9 277.8 333.3 222.2 277.8 166.7 222.2 111.1 166.7 55.6 111.1 0 166.7V277.8 388.9 500 611.1 722.2 833.3 944.4L55.6 1000H166.7 277.8 388.9 500 611.1 722.2 833.3 944.4 1055.6L1111.1 944.4V833.3 722.2 611.1 500 388.9 277.8 166.7 55.6L1055.6 0ZM166.7 333.3L222.2 388.9 277.8 444.4 333.3 500 388.9 555.6H500L555.6 500V388.9L611.1 333.3 666.7 388.9 722.2 444.4 777.8 500 833.3 555.6H944.4L1000 611.1V722.2 833.3L944.4 888.9H833.3 722.2 611.1 500 388.9 277.8 166.7L111.1 833.3V722.2 611.1 500 388.9ZM277.8 666.7L222.2 722.2 277.8 777.8 333.3 722.2ZM500 666.7L444.4 722.2 500 777.8 555.6 722.2ZM722.2 666.7L666.7 722.2 722.2 777.8 777.8 722.2Z",
+ "width": 1111
+ },
+ "search": [
+ "crafting"
+ ]
+ },
+ {
+ "uid": "dc6530e8b375575b7df2040d108e5368",
+ "css": "fill",
+ "code": 59468,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M464.3 0L428.6 35.7 392.9 71.4 357.1 107.1V178.6 250 321.4 392.9 464.3L392.9 500 428.6 464.3V392.9 321.4 250 178.6 107.1L464.3 71.4H535.7 607.1L642.9 107.1V178.6 250L607.1 285.7 571.4 250 535.7 214.3 500 250V321.4L535.7 357.1 571.4 392.9 607.1 428.6 642.9 464.3 678.6 500 714.3 535.7 678.6 571.4 642.9 607.1 607.1 642.9 571.4 678.6 535.7 714.3 500 750 464.3 785.7 428.6 821.4 392.9 857.1H321.4L285.7 821.4 250 785.7 214.3 750 178.6 714.3 142.9 678.6V607.1L178.6 571.4 214.3 535.7 250 500 285.7 464.3V392.9L250 357.1 214.3 392.9 178.6 428.6 142.9 464.3 107.1 500 71.4 535.7 35.7 571.4 0 607.1V678.6L35.7 714.3 71.4 750 107.1 785.7 142.9 821.4 178.6 857.1 214.3 892.9 250 928.6 285.7 964.3 321.4 1000H392.9L428.6 964.3 464.3 928.6 500 892.9 535.7 857.1 571.4 821.4 607.1 785.7 642.9 750 678.6 714.3 714.3 678.6 750 642.9 785.7 607.1 821.4 571.4 857.1 607.1V678.6L892.9 714.3 928.6 750V821.4 892.9L964.3 928.6 1000 892.9V821.4 750 678.6 607.1 535.7L964.3 500 928.6 464.3 892.9 428.6 857.1 392.9 821.4 357.1H750 678.6L642.9 321.4 678.6 285.7 714.3 250V178.6 107.1L678.6 71.4 642.9 35.7 607.1 0H535.7Z",
+ "width": 1000
+ },
+ "search": [
+ "fill"
+ ]
+ },
+ {
+ "uid": "88103366af75e17d8a3921ee1fb8616c",
+ "css": "paste",
+ "code": 59474,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M321.4 0L285.7 35.7 250 71.4H178.6 107.1L71.4 107.1 35.7 142.9 0 178.6V250 321.4 392.9 464.3 535.7 607.1 678.6 750 821.4 892.9L35.7 928.6 71.4 964.3 107.1 1000H178.6 250 321.4 392.9 464.3 535.7 607.1 678.6 750L785.7 964.3 821.4 928.6 857.1 892.9V821.4 750 678.6 607.1 535.7 464.3 392.9 321.4 250 178.6L821.4 142.9 785.7 107.1 750 71.4H678.6 607.1L571.4 35.7 535.7 0H464.3 392.9ZM392.9 71.4H464.3L500 107.1 464.3 142.9H392.9L357.1 107.1ZM178.6 214.3H250L285.7 250 321.4 285.7H392.9 464.3 535.7L571.4 250 607.1 214.3H678.6L714.3 250V321.4 392.9 464.3 535.7 607.1 678.6 750 821.4L678.6 857.1H607.1 535.7 464.3 392.9 321.4 250 178.6L142.9 821.4V750 678.6 607.1 535.7 464.3 392.9 321.4 250ZM250 428.6L214.3 464.3 250 500H321.4 392.9 464.3 535.7 607.1L642.9 464.3 607.1 428.6H535.7 464.3 392.9 321.4ZM250 571.4L214.3 607.1 250 642.9H321.4 392.9 464.3 535.7 607.1L642.9 607.1 607.1 571.4H535.7 464.3 392.9 321.4ZM250 714.3L214.3 750 250 785.7H321.4 392.9 464.3 535.7 607.1L642.9 750 607.1 714.3H535.7 464.3 392.9 321.4Z",
+ "width": 857
+ },
+ "search": [
+ "paste"
+ ]
+ },
+ {
+ "uid": "c0d81c71f616c8324a78c54d994af313",
+ "css": "effect",
+ "code": 59475,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M150 0L100 50 50 100 0 150V250 350 450 550 650 750 850L50 900 100 950 150 1000H250 350 450 550 650 750 850L900 950 950 900 1000 850V750 650 550 450 350 250 150L950 100 900 50 850 0H750 650 550 450 350 250ZM250 100H350 450 550 650 750L800 150 850 200 900 250V350 450 550 650 750L850 800 800 850 750 900H650 550 450 350 250L200 850 150 800 100 750V650 550 450 350 250L150 200 200 150ZM450 300L400 350 350 400 300 450V550L350 600 400 650 450 700H550L600 650 650 600 700 550V450L650 400 600 350 550 300Z",
+ "width": 1000
+ },
+ "search": [
+ "effect"
+ ]
+ },
+ {
+ "uid": "65c4e52c12c9bed7754878f76c4a0acd",
+ "css": "book",
+ "code": 59483,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M136.4 0L90.9 45.5 45.5 90.9 0 136.4V227.3 318.2 409.1 500 590.9 681.8 772.7 863.6 954.5L45.5 1000H136.4 227.3 318.2 409.1 500 590.9 681.8 772.7L818.2 954.5 863.6 909.1 909.1 863.6V772.7 681.8 590.9 500 409.1 318.2 227.3 136.4 45.5L863.6 0H772.7 681.8 590.9 500 409.1 318.2 227.3ZM227.3 90.9H318.2 409.1 500 590.9 681.8 772.7L818.2 136.4V227.3 318.2 409.1 500 590.9 681.8 772.7L772.7 818.2H681.8 590.9 500 409.1 318.2 227.3L181.8 772.7V681.8 590.9 500 409.1 318.2 227.3 136.4ZM318.2 181.8L272.7 227.3V318.2L318.2 363.6H409.1 500 590.9 681.8L727.3 318.2V227.3L681.8 181.8H590.9 500 409.1ZM318.2 454.5L272.7 500 318.2 545.5H409.1 500 590.9 681.8L727.3 500 681.8 454.5H590.9 500 409.1ZM318.2 636.4L272.7 681.8 318.2 727.3H409.1 500 590.9 681.8L727.3 681.8 681.8 636.4H590.9 500 409.1Z",
+ "width": 909
+ },
+ "search": [
+ "book"
+ ]
+ },
+ {
+ "uid": "cee021b830261625d59e49c48a86102c",
+ "css": "liquid",
+ "code": 59484,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M55.6 0L0 55.6 55.6 111.1 111.1 166.7V277.8 388.9 500 611.1L166.7 666.7 222.2 722.2 277.8 777.8 333.3 833.3 388.9 888.9H500 611.1 722.2 833.3L888.9 944.4 944.4 1000 1000 944.4V833.3 722.2 611.1 500 388.9 277.8L944.4 222.2 888.9 277.8 833.3 333.3H722.2L666.7 277.8V166.7L722.2 111.1 777.8 55.6 722.2 0H611.1 500 388.9 277.8 166.7ZM277.8 111.1H388.9 500L555.6 166.7V277.8L611.1 333.3 666.7 388.9 722.2 444.4H833.3L888.9 500V611.1 722.2L833.3 777.8H722.2 611.1 500 388.9L333.3 722.2 277.8 666.7 222.2 611.1V500 388.9 277.8 166.7Z",
+ "width": 1000
+ },
+ "search": [
+ "liquid"
+ ]
+ },
+ {
+ "uid": "afcfe6416bfdb70c40ede7bf666667d9",
+ "css": "host",
+ "code": 59485,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M45.5 0L0 45.5V136.4 227.3L45.5 272.7H136.4 227.3 318.2 409.1 500 590.9 681.8 772.7 863.6 954.5 1045.5L1090.9 227.3V136.4 45.5L1045.5 0H954.5 863.6 772.7 681.8 590.9 500 409.1 318.2 227.3 136.4ZM136.4 90.9H227.3 318.2 409.1 500L545.5 136.4 500 181.8H409.1 318.2 227.3 136.4L90.9 136.4ZM863.6 90.9L909.1 136.4 863.6 181.8 818.2 136.4ZM45.5 363.6L0 409.1V500 590.9L45.5 636.4H136.4 227.3 318.2 409.1 500 590.9 681.8 772.7 863.6 954.5 1045.5L1090.9 590.9V500 409.1L1045.5 363.6H954.5 863.6 772.7 681.8 590.9 500 409.1 318.2 227.3 136.4ZM136.4 454.5H227.3 318.2 409.1 500L545.5 500 500 545.5H409.1 318.2 227.3 136.4L90.9 500ZM863.6 454.5L909.1 500 863.6 545.5 818.2 500ZM45.5 727.3L0 772.7V863.6 954.5L45.5 1000H136.4 227.3 318.2 409.1 500 590.9 681.8 772.7 863.6 954.5 1045.5L1090.9 954.5V863.6 772.7L1045.5 727.3H954.5 863.6 772.7 681.8 590.9 500 409.1 318.2 227.3 136.4ZM136.4 818.2H227.3 318.2 409.1 500L545.5 863.6 500 909.1H409.1 318.2 227.3 136.4L90.9 863.6ZM863.6 818.2L909.1 863.6 863.6 909.1 818.2 863.6Z",
+ "width": 1091
+ },
+ "search": [
+ "host"
+ ]
+ },
+ {
+ "uid": "060ea30307b6e6ab4706682853ec9d21",
+ "css": "production",
+ "code": 59486,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M55.6 0L0 55.6V166.7L55.6 222.2 111.1 277.8 166.7 333.3 222.2 388.9V500 611.1 722.2 833.3L277.8 888.9 333.3 944.4 388.9 1000H500L555.6 944.4 611.1 888.9 666.7 833.3V722.2 611.1 500 388.9L722.2 333.3 777.8 277.8 833.3 222.2 888.9 166.7V55.6L833.3 0H722.2 611.1 500 388.9 277.8 166.7ZM166.7 111.1H277.8 388.9 500 611.1 722.2L777.8 166.7 722.2 222.2H611.1 500 388.9 277.8 166.7L111.1 166.7ZM388.9 333.3L444.4 388.9 500 444.4 555.6 500 500 555.6 444.4 611.1 500 666.7 555.6 722.2 500 777.8 444.4 833.3 388.9 888.9 333.3 833.3V722.2 611.1 500 388.9Z",
+ "width": 889
+ },
+ "search": [
+ "production"
+ ]
+ },
+ {
+ "uid": "32084a9ecd9e7693002b13e274a84240",
+ "css": "exit",
+ "code": 59487,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M125 0L83.3 41.7 41.7 83.3 0 125V208.3 291.7 375 458.3 541.7 625 708.3 791.7 875L41.7 916.7 83.3 958.3 125 1000H208.3 291.7 375 458.3 541.7 625 708.3 791.7L833.3 958.3 875 916.7 916.7 875 875 833.3H791.7 708.3 625 541.7 458.3 375 291.7 208.3L166.7 791.7V708.3 625 541.7 458.3 375 291.7 208.3L208.3 166.7H291.7 375 458.3 541.7 625 708.3 791.7 875L916.7 125 875 83.3 833.3 41.7 791.7 0H708.3 625 541.7 458.3 375 291.7 208.3ZM708.3 250L666.7 291.7 708.3 333.3 750 375 708.3 416.7H625 541.7 458.3 375L333.3 458.3V541.7L375 583.3H458.3 541.7 625 708.3L750 625 708.3 666.7 666.7 708.3 708.3 750H791.7L833.3 708.3 875 666.7 916.7 625 958.3 583.3 1000 541.7V458.3L958.3 416.7 916.7 375 875 333.3 833.3 291.7 791.7 250Z",
+ "width": 1000
+ },
+ "search": [
+ "exit"
+ ]
+ },
+ {
+ "uid": "7ee2f2d80faaf4bce9af14bbb6cf1f07",
+ "css": "mode-pvp",
+ "code": 59489,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M269.2 0L230.8 38.5V115.4L269.2 153.8 307.7 192.3 346.2 230.8 384.6 269.2 423.1 307.7 461.5 269.2 500 230.8 538.5 192.3 500 153.8 461.5 115.4 423.1 76.9 384.6 38.5 346.2 0ZM884.6 0L846.2 38.5 807.7 76.9 769.2 115.4 730.8 153.8 692.3 192.3 653.8 230.8 615.4 269.2 576.9 307.7 538.5 346.2 500 384.6 461.5 423.1 423.1 461.5 384.6 500 346.2 538.5H269.2L230.8 500 192.3 461.5H115.4L76.9 500V576.9L115.4 615.4 153.8 653.8V730.8L115.4 769.2 76.9 807.7 38.5 846.2 0 884.6V961.5L38.5 1000H115.4L153.8 961.5 192.3 923.1 230.8 884.6 269.2 846.2H346.2L384.6 884.6 423.1 923.1H500L538.5 884.6V807.7L500 769.2 461.5 730.8V653.8L500 615.4 538.5 576.9 576.9 538.5 615.4 500 653.8 461.5 692.3 423.1 730.8 384.6 769.2 346.2 807.7 307.7 846.2 269.2 884.6 230.8 923.1 192.3 961.5 153.8 1000 115.4V38.5L961.5 0ZM807.7 461.5L769.2 500 730.8 538.5 692.3 576.9 730.8 615.4 769.2 653.8V730.8L730.8 769.2 692.3 807.7V884.6L730.8 923.1H807.7L846.2 884.6 884.6 846.2H961.5L1000 884.6 1038.5 923.1 1076.9 961.5 1115.4 1000H1192.3L1230.8 961.5V884.6L1192.3 846.2 1153.8 807.7 1115.4 769.2 1076.9 730.8V653.8L1115.4 615.4 1153.8 576.9V500L1115.4 461.5H1038.5L1000 500 961.5 538.5H884.6L846.2 500Z",
+ "width": 1231
+ },
+ "search": [
+ "mode-pvp"
+ ]
+ },
+ {
+ "uid": "fca174e630aceac2289d86197d04ac6d",
+ "css": "mode-attack",
+ "code": 59493,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M884.6 0L846.2 38.5 807.7 76.9 769.2 115.4 730.8 153.8 692.3 192.3 653.8 230.8 615.4 269.2 576.9 307.7 538.5 346.2 500 384.6 461.5 423.1 423.1 461.5 384.6 500 346.2 538.5H269.2L230.8 500 192.3 461.5H115.4L76.9 500V576.9L115.4 615.4 153.8 653.8V730.8L115.4 769.2 76.9 807.7 38.5 846.2 0 884.6V961.5L38.5 1000H115.4L153.8 961.5 192.3 923.1 230.8 884.6 269.2 846.2H346.2L384.6 884.6 423.1 923.1H500L538.5 884.6V807.7L500 769.2 461.5 730.8V653.8L500 615.4 538.5 576.9 576.9 538.5 615.4 500 653.8 461.5 692.3 423.1 730.8 384.6 769.2 346.2 807.7 307.7 846.2 269.2 884.6 230.8 923.1 192.3 961.5 153.8 1000 115.4V38.5L961.5 0Z",
+ "width": 1000
+ },
+ "search": [
+ "mode-attack"
+ ]
+ },
+ {
+ "uid": "d2dae093c8eaeecb8b86b9b3137d5e59",
+ "css": "refresh-1",
+ "code": 59495,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M41.7 0L0 41.7V125 208.3 291.7 375 458.3 541.7L41.7 583.3H125L166.7 541.7V458.3 375 291.7 208.3L208.3 166.7H291.7 375 458.3 541.7 625 708.3L750 208.3 708.3 250 666.7 291.7 708.3 333.3H791.7 875 958.3L1000 291.7V208.3 125 41.7L958.3 0 916.7 41.7 875 83.3 833.3 41.7 791.7 0H708.3 625 541.7 458.3 375 291.7 208.3 125ZM875 416.7L833.3 458.3V541.7 625 708.3 791.7L791.7 833.3H708.3 625 541.7 458.3 375 291.7L250 791.7 291.7 750 333.3 708.3 291.7 666.7H208.3 125 41.7L0 708.3V791.7 875 958.3L41.7 1000 83.3 958.3 125 916.7 166.7 958.3 208.3 1000H291.7 375 458.3 541.7 625 708.3 791.7 875 958.3L1000 958.3V875 791.7 708.3 625 541.7 458.3L958.3 416.7Z",
+ "width": 1000
+ },
+ "search": [
+ "refresh"
+ ]
+ },
+ {
+ "uid": "279c989fcea20393a5b83eb9e598d59a",
+ "css": "none",
+ "code": 59496,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M187.5 0L125 62.5 62.5 125 0 187.5V312.5 437.5 562.5 687.5 812.5L62.5 875 125 937.5 187.5 1000H312.5 437.5 562.5 687.5 812.5L875 937.5 937.5 875 1000 812.5V687.5 562.5 437.5 312.5 187.5L937.5 125 875 62.5 812.5 0H687.5 562.5 437.5 312.5ZM437.5 125H562.5 687.5L750 187.5 812.5 250 875 312.5V437.5 562.5L812.5 625 750 562.5 687.5 500 625 437.5 562.5 375 500 312.5 437.5 250 375 187.5ZM187.5 375L250 437.5 312.5 500 375 562.5 437.5 625 500 687.5 562.5 750 625 812.5 562.5 875H437.5 312.5L250 812.5 187.5 750 125 687.5V562.5 437.5Z",
+ "width": 1000
+ },
+ "search": [
+ "none"
+ ]
+ },
+ {
+ "uid": "e3b561a775bcb150f6b8ea719a465345",
+ "css": "pencil_",
+ "code": 59497,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M821.4 0L785.7 35.7 750 71.4 714.3 107.1 678.6 142.9 642.9 178.6 678.6 214.3 714.3 250 750 285.7 785.7 321.4 821.4 357.1 857.1 321.4 892.9 285.7 928.6 250 964.3 214.3 1000 178.6 964.3 142.9 928.6 107.1 892.9 71.4 857.1 35.7ZM535.7 285.7L500 321.4 464.3 357.1 428.6 392.9 392.9 428.6 357.1 464.3 321.4 500 285.7 535.7 250 571.4 214.3 607.1 178.6 642.9 142.9 678.6 107.1 714.3 71.4 750 35.7 785.7 0 821.4V892.9 964.3L35.7 1000H107.1 178.6L214.3 964.3 250 928.6 285.7 892.9 321.4 857.1 357.1 821.4 392.9 785.7 428.6 750 464.3 714.3 500 678.6 535.7 642.9 571.4 607.1 607.1 571.4 642.9 535.7 678.6 500 714.3 464.3 678.6 428.6 642.9 392.9 607.1 357.1 571.4 321.4ZM250 642.9L285.7 678.6 321.4 714.3 357.1 750 321.4 785.7 285.7 821.4 250 857.1 214.3 892.9 178.6 928.6H107.1L71.4 892.9V821.4L107.1 785.7 142.9 750 178.6 714.3 214.3 678.6Z",
+ "width": 1000
+ },
+ "search": [
+ "pencil"
+ ]
+ },
+ {
+ "uid": "8b4d5e8da6aa68188b631aaf252a9e14",
+ "css": "refresh",
+ "code": 59498,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M41.7 0L0 41.7V125 208.3 291.7 375 458.3 541.7L41.7 583.3H125L166.7 541.7V458.3 375 291.7 208.3L208.3 166.7H291.7 375 458.3 541.7 625 708.3L750 208.3 708.3 250 666.7 291.7 708.3 333.3H791.7 875 958.3L1000 291.7V208.3 125 41.7L958.3 0 916.7 41.7 875 83.3 833.3 41.7 791.7 0H708.3 625 541.7 458.3 375 291.7 208.3 125ZM875 416.7L833.3 458.3V541.7 625 708.3 791.7L791.7 833.3H708.3 625 541.7 458.3 375 291.7L250 791.7 291.7 750 333.3 708.3 291.7 666.7H208.3 125 41.7L0 708.3V791.7 875 958.3L41.7 1000 83.3 958.3 125 916.7 166.7 958.3 208.3 1000H291.7 375 458.3 541.7 625 708.3 791.7 875 958.3L1000 958.3V875 791.7 708.3 625 541.7 458.3L958.3 416.7Z",
+ "width": 1000
+ },
+ "search": [
+ "refresh"
+ ]
+ },
+ {
+ "uid": "44e902e72564bc6d9a9eb1d174208d35",
+ "css": "mode-survival",
+ "code": 59499,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M38.5 0L0 38.5V115.4 192.3 269.2 346.2 423.1 500 576.9 653.8L38.5 692.3 76.9 730.8 115.4 769.2 153.8 807.7 192.3 846.2 230.8 884.6 269.2 923.1 307.7 961.5 346.2 1000H423.1 500 576.9L615.4 961.5 653.8 923.1 692.3 884.6 730.8 846.2 769.2 807.7 807.7 769.2 846.2 730.8 884.6 692.3 923.1 653.8V576.9 500 423.1 346.2 269.2 192.3 115.4 38.5L884.6 0H807.7L769.2 38.5 730.8 76.9 692.3 115.4 653.8 153.8H576.9 500 423.1 346.2 269.2L230.8 115.4 192.3 76.9 153.8 38.5 115.4 0Z",
+ "width": 923
+ },
+ "search": [
+ "mode-survival"
+ ]
+ },
+ {
+ "uid": "9e23184b166b551c5fb0bd5ee3a4dc2c",
+ "css": "command-rally",
+ "code": 59500,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M250 0L166.7 83.3 83.3 166.7 0 250V416.7 583.3 750L83.3 833.3 166.7 916.7 250 1000H416.7 583.3 750L833.3 916.7 916.7 833.3 1000 750V583.3 416.7 250L916.7 166.7 833.3 83.3 750 0H583.3 416.7ZM416.7 166.7H583.3L666.7 250 750 333.3 833.3 416.7V583.3L750 666.7 666.7 750 583.3 833.3H416.7L333.3 750 250 666.7 166.7 583.3V416.7L250 333.3 333.3 250Z",
+ "width": 1000
+ },
+ "search": [
+ "command-rally"
+ ]
+ },
+ {
+ "uid": "5b2609713ca347b272beb0bc5f49c42e",
+ "css": "units",
+ "code": 59501,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M437.5 0L375 62.5 312.5 125 250 187.5 187.5 250 125 312.5 62.5 375 0 437.5V562.5 687.5L62.5 750 125 687.5 187.5 625 250 687.5V812.5 937.5L312.5 1000H437.5L500 937.5V812.5L562.5 750H687.5L750 812.5V937.5L812.5 1000H937.5L1000 937.5V812.5 687.5L1062.5 625 1125 687.5 1187.5 750 1250 687.5V562.5 437.5L1187.5 375 1125 312.5 1062.5 250 1000 187.5 937.5 125 875 62.5 812.5 0H687.5 562.5ZM437.5 125H562.5 687.5 812.5L875 187.5 937.5 250 1000 312.5 1062.5 375 1125 437.5 1062.5 500H937.5L875 562.5 812.5 625H687.5 562.5 437.5L375 562.5 312.5 500H187.5L125 437.5 187.5 375 250 312.5 312.5 250 375 187.5ZM562.5 250L500 312.5 562.5 375H687.5L750 312.5 687.5 250Z",
+ "width": 1250
+ },
+ "search": [
+ "units"
+ ]
+ },
+ {
+ "uid": "de2b09bde33670e3502e3e07b936e098",
+ "css": "command-attack",
+ "code": 59502,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M750 0L666.7 83.3 583.3 166.7 500 250 416.7 333.3 333.3 416.7 250 500 166.7 416.7 83.3 333.3 0 416.7 83.3 500 166.7 583.3 83.3 666.7 0 750V916.7L83.3 1000H250L333.3 916.7 416.7 833.3 500 916.7 583.3 1000 666.7 916.7 583.3 833.3 500 750 583.3 666.7 666.7 583.3 750 500 833.3 416.7 916.7 333.3 1000 250V83.3L916.7 0Z",
+ "width": 1000
+ },
+ "search": [
+ "command-attack"
+ ]
+ },
+ {
+ "uid": "343b1d6c67d1c2bdc279b8df809fb3bf",
+ "css": "trash",
+ "code": 59503,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M291.7 0L250 41.7V125L208.3 166.7H125 41.7L0 208.3V291.7 375 458.3L41.7 500 83.3 541.7V625 708.3 791.7 875 958.3L125 1000H208.3 291.7 375 458.3 541.7 625 708.3L750 958.3V875 791.7 708.3 625 541.7L791.7 500 833.3 458.3V375 291.7 208.3L791.7 166.7H708.3 625L583.3 125V41.7L541.7 0H458.3 375ZM375 83.3H458.3L500 125 458.3 166.7H375L333.3 125ZM125 250H208.3 291.7 375 458.3 541.7 625 708.3L750 291.7V375L708.3 416.7H625 541.7 458.3 375 291.7 208.3 125L83.3 375V291.7ZM208.3 500L250 541.7V625 708.3 791.7 875L208.3 916.7 166.7 875V791.7 708.3 625 541.7ZM375 500H458.3L500 541.7V625 708.3 791.7 875L458.3 916.7H375L333.3 875V791.7 708.3 625 541.7ZM625 500L666.7 541.7V625 708.3 791.7 875L625 916.7 583.3 875V791.7 708.3 625 541.7Z",
+ "width": 833
+ },
+ "search": [
+ "trash"
+ ]
+ },
+ {
+ "uid": "f82a79ee879412f7ddf7c517c6958d45",
+ "css": "chat",
+ "code": 59504,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M187.5 0L125 62.5 62.5 125 0 187.5V312.5 437.5 562.5 687.5 812.5L62.5 875 125 937.5 187.5 1000 250 937.5V812.5L312.5 750H437.5 562.5 687.5 812.5L875 687.5 937.5 625 1000 562.5V437.5 312.5 187.5L937.5 125 875 62.5 812.5 0H687.5 562.5 437.5 312.5Z",
+ "width": 1000
+ },
+ "search": [
+ "chat"
+ ]
+ },
+ {
+ "uid": "1a406c75ee5adac112504cd1baf6d482",
+ "css": "turret",
+ "code": 59505,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M166.7 0L111.1 55.6V166.7 277.8 388.9L55.6 444.4 0 500V611.1 722.2 833.3 944.4L55.6 1000H166.7 277.8L333.3 944.4 388.9 888.9H500L555.6 944.4 611.1 1000H722.2 833.3L888.9 944.4V833.3 722.2 611.1 500L833.3 444.4 777.8 388.9V277.8 166.7 55.6L722.2 0H611.1L555.6 55.6V166.7L500 222.2H388.9L333.3 166.7V55.6L277.8 0ZM277.8 333.3H388.9 500 611.1L666.7 388.9 722.2 444.4 777.8 500V611.1 722.2 833.3L722.2 888.9H611.1L555.6 833.3 500 777.8H388.9L333.3 833.3 277.8 888.9H166.7L111.1 833.3V722.2 611.1 500L166.7 444.4 222.2 388.9Z",
+ "width": 889
+ },
+ "search": [
+ "turret"
+ ]
+ },
+ {
+ "uid": "559d541ead67649a9658f22b36bc48fc",
+ "css": "players",
+ "code": 59506,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M437.5 0L375 62.5 312.5 125 250 187.5V312.5L312.5 375 375 437.5 312.5 500 250 562.5 187.5 625 125 687.5 62.5 750 0 812.5V937.5L62.5 1000H187.5 312.5 437.5 562.5 687.5 812.5 937.5L1000 937.5V812.5L937.5 750 875 687.5 812.5 625 750 562.5 687.5 500 625 437.5 687.5 375 750 312.5V187.5L687.5 125 625 62.5 562.5 0Z",
+ "width": 1000
+ },
+ "search": [
+ "players"
+ ]
+ },
+ {
+ "uid": "2e574f2316b8b4f840d5680dcad8088b",
+ "css": "editor",
+ "code": 59507,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M375 0L333.3 41.7 291.7 83.3 250 125 208.3 166.7 166.7 208.3 125 250 83.3 291.7 41.7 333.3 0 375V458.3 541.7 625 708.3 791.7 875 958.3L41.7 1000H125 208.3 291.7 375 458.3 541.7 625 708.3 791.7 875 958.3L1000 958.3V875 791.7 708.3 625 541.7 458.3L958.3 416.7 916.7 375 875 333.3 833.3 291.7 791.7 250 750 208.3 708.3 166.7 666.7 208.3 625 250 583.3 208.3 541.7 166.7 500 125 458.3 83.3 416.7 41.7ZM375 166.7L416.7 208.3 458.3 250 500 291.7 541.7 333.3 583.3 375 625 416.7 666.7 375 708.3 333.3 750 375 791.7 416.7 833.3 458.3 875 500 916.7 541.7V625 708.3 791.7 875L875 916.7H791.7 708.3 625 541.7 458.3 375 291.7 208.3 125L83.3 875V791.7 708.3 625 541.7 458.3L125 416.7 166.7 375 208.3 333.3 250 291.7 291.7 250 333.3 208.3Z",
+ "width": 1000
+ },
+ "search": [
+ "editor"
+ ]
+ },
+ {
+ "uid": "6e16d3f823a60ce0e9db3a9768668132",
+ "css": "copy",
+ "code": 59508,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M107.1 0L71.4 35.7 35.7 71.4 0 107.1V178.6 250 321.4 392.9 464.3 535.7 607.1L35.7 642.9 71.4 678.6 107.1 714.3 142.9 678.6V607.1 535.7 464.3 392.9 321.4 250 178.6L178.6 142.9H250 321.4 392.9 464.3 535.7 607.1L642.9 107.1 607.1 71.4 571.4 35.7 535.7 0H464.3 392.9 321.4 250 178.6ZM321.4 214.3L285.7 250 250 285.7 214.3 321.4V392.9 464.3 535.7 607.1 678.6 750 821.4 892.9L250 928.6 285.7 964.3 321.4 1000H392.9 464.3 535.7 607.1 678.6 750 821.4L857.1 964.3 892.9 928.6 928.6 892.9V821.4 750 678.6 607.1 535.7 464.3 392.9 321.4L892.9 285.7 857.1 250 821.4 214.3H750 678.6 607.1 535.7 464.3 392.9ZM392.9 357.1H464.3 535.7 607.1 678.6 750L785.7 392.9V464.3 535.7 607.1 678.6 750 821.4L750 857.1H678.6 607.1 535.7 464.3 392.9L357.1 821.4V750 678.6 607.1 535.7 464.3 392.9Z",
+ "width": 929
+ },
+ "search": [
+ "copy"
+ ]
+ },
+ {
+ "uid": "295e9560f763400dae5f29abd75c4e39",
+ "css": "tree",
+ "code": 59509,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M38.5 0L0 38.5V115.4 192.3L38.5 230.8 76.9 269.2V346.2 423.1 500 576.9L115.4 615.4H192.3 269.2 346.2L384.6 653.8 423.1 692.3 461.5 730.8V807.7 884.6 961.5L500 1000 538.5 961.5V884.6 807.7 730.8L576.9 692.3 615.4 653.8 653.8 615.4H730.8 807.7 884.6L923.1 576.9V500 423.1 346.2 269.2L961.5 230.8 1000 192.3V115.4 38.5L961.5 0H884.6 807.7L769.2 38.5V115.4 192.3L807.7 230.8 846.2 269.2V346.2 423.1 500L807.7 538.5H730.8 653.8L615.4 500 576.9 461.5 538.5 423.1V346.2 269.2L576.9 230.8 615.4 192.3V115.4 38.5L576.9 0H500 423.1L384.6 38.5V115.4 192.3L423.1 230.8 461.5 269.2V346.2 423.1L423.1 461.5 384.6 500 346.2 538.5H269.2 192.3L153.8 500V423.1 346.2 269.2L192.3 230.8 230.8 192.3V115.4 38.5L192.3 0H115.4Z",
+ "width": 1000
+ },
+ "search": [
+ "tree"
+ ]
+ },
+ {
+ "uid": "0581bbd4c54547d8d6721cc122ffe0fa",
+ "css": "lock-open",
+ "code": 59510,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M291.7 0L250 41.7 208.3 83.3 166.7 125V208.3 291.7 375L125 416.7 83.3 458.3 41.7 500 0 541.7V625 708.3 791.7 875L41.7 916.7 83.3 958.3 125 1000H208.3 291.7 375 458.3 541.7 625 708.3L750 958.3 791.7 916.7 833.3 875V791.7 708.3 625 541.7L791.7 500 750 458.3 708.3 416.7H625 541.7 458.3 375L333.3 375V291.7 208.3L375 166.7H458.3L500 208.3V291.7L541.7 333.3H625L666.7 291.7V208.3 125L625 83.3 583.3 41.7 541.7 0H458.3 375ZM375 583.3H458.3L500 625V708.3 791.7L458.3 833.3H375L333.3 791.7V708.3 625Z",
+ "width": 833
+ },
+ "search": [
+ "lock-open"
+ ]
+ },
+ {
+ "uid": "d0203434b5e4cea53499b112743fd675",
+ "css": "pick",
+ "code": 59511,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M590.9 0L545.5 45.5 500 90.9 454.5 136.4 409.1 181.8 363.6 136.4 318.2 90.9 272.7 136.4 318.2 181.8 363.6 227.3 409.1 272.7 454.5 318.2 409.1 363.6 363.6 409.1 318.2 454.5 272.7 500 227.3 545.5 181.8 590.9 136.4 636.4 90.9 681.8V772.7L45.5 818.2 0 863.6V954.5L45.5 1000H136.4L181.8 954.5 227.3 909.1H318.2L363.6 863.6 409.1 818.2 454.5 772.7 500 727.3 545.5 681.8 590.9 636.4 636.4 590.9 681.8 545.5 727.3 590.9 772.7 636.4 818.2 681.8 863.6 727.3 909.1 681.8 863.6 636.4 818.2 590.9 863.6 545.5 909.1 500 954.5 454.5 1000 409.1V318.2 227.3 136.4L954.5 90.9 909.1 45.5 863.6 0H772.7 681.8ZM500 363.6L545.5 409.1 590.9 454.5 636.4 500 590.9 545.5 545.5 590.9 500 636.4 454.5 681.8 409.1 727.3 363.6 772.7 318.2 818.2H227.3L181.8 772.7V681.8L227.3 636.4 272.7 590.9 318.2 545.5 363.6 500 409.1 454.5 454.5 409.1Z",
+ "width": 1000
+ },
+ "search": [
+ "pick"
+ ]
+ },
+ {
+ "uid": "b04d1002bf24f642a026b8844f0ab4af",
+ "css": "export",
+ "code": 59512,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M50 0L0 50V150 250 350 450 550 650 750 850 950L50 1000H150 250 350 450 550 650 750 850 950L1000 950V850 750L950 700 900 750V850L850 900H750 650 550 450 350 250 150L100 850V750 650 550 450 350 250 150L150 100H250 350 450 550L600 50 550 0H450 350 250 150ZM850 0L800 50V150L750 200H650 550L500 250 450 300 400 350 350 400 300 450V550L350 600H450L500 550 550 500 600 450 650 400H750L800 450V550L850 600 900 550 950 500 1000 450 1050 400 1100 350V250L1050 200 1000 150 950 100 900 50Z",
+ "width": 1100
+ },
+ "search": [
+ "export"
+ ]
+ },
+ {
+ "uid": "6636e2512996fa2c2b37b8d9e111d4fe",
+ "css": "download",
+ "code": 59513,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M464.3 0L428.6 35.7V107.1 178.6 250 321.4 392.9L392.9 428.6 357.1 392.9 321.4 357.1H250L214.3 392.9V464.3L250 500 285.7 535.7 321.4 571.4 357.1 607.1 392.9 642.9 428.6 678.6 464.3 714.3H535.7L571.4 678.6 607.1 642.9 642.9 607.1 678.6 571.4 714.3 535.7 750 500 785.7 464.3V392.9L750 357.1H678.6L642.9 392.9 607.1 428.6 571.4 392.9V321.4 250 178.6 107.1 35.7L535.7 0ZM35.7 714.3L0 750V821.4 892.9 964.3L35.7 1000H107.1 178.6 250 321.4 392.9 464.3 535.7 607.1 678.6 750 821.4 892.9 964.3L1000 964.3V892.9 821.4 750L964.3 714.3H892.9L857.1 750V821.4L821.4 857.1H750 678.6 607.1 535.7 464.3 392.9 321.4 250 178.6L142.9 821.4V750L107.1 714.3Z",
+ "width": 1000
+ },
+ "search": [
+ "download"
+ ]
+ },
+ {
+ "uid": "f9895cd70db81922fbd2aa1882f04a03",
+ "css": "upload",
+ "code": 59515,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M464.3 0L428.6 35.7 392.9 71.4 357.1 107.1 321.4 142.9 285.7 178.6 250 214.3 214.3 250V321.4L250 357.1H321.4L357.1 321.4 392.9 285.7 428.6 321.4V392.9 464.3 535.7 607.1 678.6L464.3 714.3H535.7L571.4 678.6V607.1 535.7 464.3 392.9 321.4L607.1 285.7 642.9 321.4 678.6 357.1H750L785.7 321.4V250L750 214.3 714.3 178.6 678.6 142.9 642.9 107.1 607.1 71.4 571.4 35.7 535.7 0ZM35.7 714.3L0 750V821.4 892.9 964.3L35.7 1000H107.1 178.6 250 321.4 392.9 464.3 535.7 607.1 678.6 750 821.4 892.9 964.3L1000 964.3V892.9 821.4 750L964.3 714.3H892.9L857.1 750V821.4L821.4 857.1H750 678.6 607.1 535.7 464.3 392.9 321.4 250 178.6L142.9 821.4V750L107.1 714.3Z",
+ "width": 1000
+ },
+ "search": [
+ "upload"
+ ]
+ },
+ {
+ "uid": "e8191eedaa10260cef458a2385925cb0",
+ "css": "settings",
+ "code": 59516,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M450 0L400 50V150L350 200 300 150 250 100H150L100 150V250L150 300 200 350 150 400H50L0 450V550L50 600H150L200 650 150 700 100 750V850L150 900H250L300 850 350 800 400 850V950L450 1000H550L600 950V850L650 800 700 850 750 900H850L900 850V750L850 700 800 650 850 600H950L1000 550V450L950 400H850L800 350 850 300 900 250V150L850 100H750L700 150 650 200 600 150V50L550 0ZM450 400H550L600 450V550L550 600H450L400 550V450Z",
+ "width": 1000
+ },
+ "search": [
+ "settings"
+ ]
+ },
+ {
+ "uid": "ea0128855a25fc520b78658acfe68693",
+ "css": "spray",
+ "code": 59517,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M35.7 0L0 35.7 35.7 71.4 71.4 35.7ZM178.6 71.4L142.9 107.1 178.6 142.9 214.3 178.6 178.6 214.3 142.9 250 178.6 285.7 214.3 250 250 214.3 285.7 178.6 250 142.9 214.3 107.1ZM392.9 71.4L357.1 107.1 392.9 142.9 428.6 178.6 392.9 214.3 357.1 250 321.4 285.7 285.7 321.4 250 357.1 214.3 392.9 250 428.6H321.4 392.9 464.3 535.7 607.1 678.6 750L785.7 392.9 750 357.1 714.3 321.4 678.6 285.7 642.9 250V178.6 107.1L607.1 71.4H535.7 464.3ZM35.7 142.9L0 178.6 35.7 214.3 71.4 178.6ZM35.7 285.7L0 321.4 35.7 357.1 71.4 321.4ZM250 500L214.3 535.7V607.1 678.6 750 821.4L250 857.1H321.4 392.9 464.3 535.7 607.1 678.6 750L785.7 821.4V750 678.6 607.1 535.7L750 500H678.6 607.1 535.7 464.3 392.9 321.4ZM250 928.6L214.3 964.3 250 1000H321.4 392.9 464.3 535.7 607.1 678.6 750L785.7 964.3 750 928.6H678.6 607.1 535.7 464.3 392.9 321.4Z",
+ "width": 786
+ },
+ "search": [
+ "spray"
+ ]
+ },
+ {
+ "uid": "32b0960726db55c7f26620e15f83acd9",
+ "css": "zoom",
+ "code": 59530,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M423.1 0L384.6 38.5 346.2 76.9 307.7 115.4 269.2 153.8 230.8 192.3 192.3 230.8 153.8 269.2V346.2 423.1 500 576.9L192.3 615.4 230.8 653.8 192.3 692.3 153.8 730.8 115.4 769.2 76.9 807.7 38.5 846.2 0 884.6V961.5L38.5 1000H115.4L153.8 961.5 192.3 923.1 230.8 884.6 269.2 846.2 307.7 807.7 346.2 769.2 384.6 807.7 423.1 846.2H500 576.9 653.8 730.8L769.2 807.7 807.7 769.2 846.2 730.8 884.6 692.3 923.1 653.8 961.5 615.4 1000 576.9V500 423.1 346.2 269.2L961.5 230.8 923.1 192.3 884.6 153.8 846.2 115.4 807.7 76.9 769.2 38.5 730.8 0H653.8 576.9 500ZM500 153.8H576.9 653.8L692.3 192.3 730.8 230.8 769.2 269.2 807.7 307.7 846.2 346.2V423.1 500L807.7 538.5 769.2 576.9 730.8 615.4 692.3 653.8 653.8 692.3H576.9 500L461.5 653.8 423.1 615.4 384.6 576.9 346.2 538.5 307.7 500V423.1 346.2L346.2 307.7 384.6 269.2 423.1 230.8 461.5 192.3Z",
+ "width": 1000
+ },
+ "search": [
+ "search"
+ ]
+ },
+ {
+ "uid": "22856e2f42e364e7e363348542b46062",
+ "css": "power_old",
+ "code": 59531,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M1250 0L1166.7 83.3 1083.3 166.7 1000 250 916.7 333.3 833.3 416.7 750 500 666.7 416.7 583.3 333.3 500 250 416.7 166.7 333.3 250 250 333.3 166.7 416.7V583.3L83.3 666.7 0 750V916.7L83.3 1000 166.7 916.7 250 833.3 333.3 750 416.7 666.7 500 750 583.3 833.3 666.7 916.7 750 1000 833.3 916.7 916.7 833.3 1000 750 1083.3 666.7 1166.7 583.3V416.7L1250 333.3 1333.3 250V83.3Z",
+ "width": 1333
+ },
+ "search": [
+ "power"
+ ]
+ },
+ {
+ "uid": "971842913945f59c7f3cf11e75e1e4f1",
+ "css": "power_",
+ "code": 59408,
+ "src": "typicons"
+ },
+ {
+ "uid": "844ca62d81744d1ca4b59a4763aeca86",
+ "css": "menu",
+ "code": 59532,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M62.5 0L0 62.5V187.5L62.5 250H187.5L250 187.5V62.5L187.5 0ZM437.5 0L375 62.5V187.5L437.5 250H562.5 687.5 812.5 937.5L1000 187.5V62.5L937.5 0H812.5 687.5 562.5ZM62.5 375L0 437.5V562.5L62.5 625H187.5L250 562.5V437.5L187.5 375ZM437.5 375L375 437.5V562.5L437.5 625H562.5 687.5 812.5 937.5L1000 562.5V437.5L937.5 375H812.5 687.5 562.5ZM62.5 750L0 812.5V937.5L62.5 1000H187.5L250 937.5V812.5L187.5 750ZM437.5 750L375 812.5V937.5L437.5 1000H562.5 687.5 812.5 937.5L1000 937.5V812.5L937.5 750H812.5 687.5 562.5Z",
+ "width": 1000
+ },
+ "search": [
+ "menu"
+ ]
+ },
+ {
+ "uid": "4b4d5e5ee8884c2f545869496dcb525b",
+ "css": "lock",
+ "code": 59533,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M318.2 0L272.7 45.5 227.3 90.9 181.8 136.4V227.3 318.2L136.4 363.6 90.9 409.1 45.5 454.5 0 500V590.9 681.8 772.7 863.6L45.5 909.1 90.9 954.5 136.4 1000H227.3 318.2 409.1 500 590.9 681.8 772.7L818.2 954.5 863.6 909.1 909.1 863.6V772.7 681.8 590.9 500L863.6 454.5 818.2 409.1 772.7 363.6 727.3 318.2V227.3 136.4L681.8 90.9 636.4 45.5 590.9 0H500 409.1ZM409.1 181.8H500L545.5 227.3V318.2L500 363.6H409.1L363.6 318.2V227.3ZM409.1 545.5H500L545.5 590.9V681.8 772.7L500 818.2H409.1L363.6 772.7V681.8 590.9Z",
+ "width": 909
+ },
+ "search": [
+ "lock"
+ ]
+ },
+ {
+ "uid": "9515bb59fd462b77f0d088978c339778",
+ "css": "eye",
+ "code": 59534,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M450 0L400 50 350 100 300 150 250 200 200 250 150 300 100 350 50 400 0 450V550L50 600 100 650 150 700 200 750 250 800 300 850 350 900 400 950 450 1000H550 650 750 850 950 1050 1150L1200 950 1250 900 1300 850 1350 800 1400 750 1450 700 1500 650 1550 600 1600 550V450L1550 400 1500 350 1450 300 1400 250 1350 200 1300 150 1250 100 1200 50 1150 0H1050 950 850 750 650 550ZM650 200H750 850 950L1000 250 1050 300 1100 350 1150 400 1200 450V550L1150 600 1100 650 1050 700 1000 750 950 800H850 750 650L600 750 550 700 500 650 450 600 400 550V450L450 400 500 350 550 300 600 250ZM750 400L700 450V550L750 600H850L900 550V450L850 400Z",
+ "width": 1600
+ },
+ "search": [
+ "eye"
+ ]
+ },
+ {
+ "uid": "fdd7088d0019bb1033df645f01981429",
+ "css": "eye-off",
+ "code": 59535,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M1041.7 0L1000 41.7 958.3 83.3 916.7 125 875 166.7 833.3 208.3 791.7 250 750 291.7 708.3 333.3 666.7 375 625 416.7 583.3 458.3 541.7 500 500 541.7 458.3 583.3 416.7 625 375 666.7 333.3 708.3 291.7 750 250 791.7 208.3 833.3 166.7 875V958.3L208.3 1000H291.7L333.3 958.3 375 916.7 416.7 875 458.3 833.3 500 791.7 541.7 750 583.3 708.3 625 666.7 666.7 625 708.3 583.3 750 541.7 791.7 500 833.3 458.3 875 416.7 916.7 375 958.3 333.3 1000 291.7 1041.7 250 1083.3 208.3 1125 166.7 1166.7 125V41.7L1125 0ZM375 83.3L333.3 125 291.7 166.7 250 208.3 208.3 250 166.7 291.7 125 333.3 83.3 375 41.7 416.7 0 458.3V541.7L41.7 583.3 83.3 625 125 666.7H208.3L250 625 291.7 583.3 333.3 541.7V458.3L375 416.7 416.7 375 458.3 333.3 500 291.7 541.7 250H625L666.7 208.3 708.3 166.7 750 125 708.3 83.3H625 541.7 458.3ZM1125 333.3L1083.3 375 1041.7 416.7 1000 458.3V541.7L958.3 583.3 916.7 625 875 666.7 833.3 708.3 791.7 750H708.3L666.7 791.7 625 833.3 583.3 875 625 916.7H708.3 791.7 875 958.3L1000 875 1041.7 833.3 1083.3 791.7 1125 750 1166.7 708.3 1208.3 666.7 1250 625 1291.7 583.3 1333.3 541.7V458.3L1291.7 416.7 1250 375 1208.3 333.3Z",
+ "width": 1333
+ },
+ "search": [
+ "eye-off"
+ ]
+ },
+ {
+ "uid": "f47srtt9pew19q6kg9jniwtzsb8q1rhy",
+ "css": "warning",
+ "code": 9888,
+ "src": "modernpics"
+ },
+ {
+ "uid": "c17baed6f9afce2a8fafe730886b8e06",
+ "css": "terrain",
+ "code": 59492,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M350 0L300 50 250 100 200 150 150 200 100 250 50 300 0 350V450 550 650 750 850 950L50 1000H150 250 350 450 550 650 750 850 950L1000 950V850 750 650 550 450L950 400 900 350 850 300 800 250 750 200 700 250 650 300 600 250 550 200 500 150 450 100 400 50ZM350 200L400 250 450 300 500 350 550 400 600 450 650 500 700 450 750 400 800 450 850 500 900 550V650 750 850L850 900H750 650 550 450 350 250 150L100 850V750 650 550 450L150 400 200 350 250 300 300 250Z",
+ "width": 1000
+ },
+ "search": [
+ "terrain"
+ ]
+ },
+ {
+ "uid": "bdff09f8036a4b1757599b2510a02ffe",
+ "css": "defense",
+ "code": 59469,
+ "src": "custom_icons",
+ "selected": true,
+ "svg": {
+ "path": "M62.5 0L0 62.5V187.5 312.5 437.5 562.5L62.5 625 125 687.5 187.5 750 250 812.5 312.5 875 375 937.5 437.5 1000H562.5L625 937.5 687.5 875 750 812.5 812.5 750 875 687.5 937.5 625 1000 562.5V437.5 312.5 187.5 62.5L937.5 0H812.5L750 62.5 687.5 125H562.5 437.5 312.5L250 62.5 187.5 0ZM187.5 125L250 187.5 312.5 250H437.5 562.5 687.5L750 187.5 812.5 125 875 187.5V312.5 437.5 562.5L812.5 625 750 687.5 687.5 750 625 812.5 562.5 875H437.5L375 812.5 312.5 750 250 687.5 187.5 625 125 562.5V437.5 312.5 187.5Z",
+ "width": 1000
+ },
+ "search": [
+ "defense"
+ ]
}
]
}
\ No newline at end of file
diff --git a/core/assets-raw/fontgen/extra/admin.svg b/core/assets-raw/fontgen/extra/admin.svg
new file mode 100644
index 0000000000..03b33386b8
--- /dev/null
+++ b/core/assets-raw/fontgen/extra/admin.svg
@@ -0,0 +1,54 @@
+
+
diff --git a/core/assets-raw/fontgen/extra/distribution.svg b/core/assets-raw/fontgen/extra/distribution.svg
new file mode 100644
index 0000000000..63d50541d0
--- /dev/null
+++ b/core/assets-raw/fontgen/extra/distribution.svg
@@ -0,0 +1,55 @@
+
+
diff --git a/core/assets-raw/fontgen/extra/effect.svg b/core/assets-raw/fontgen/extra/effect.svg
new file mode 100644
index 0000000000..2194e8953e
--- /dev/null
+++ b/core/assets-raw/fontgen/extra/effect.svg
@@ -0,0 +1,53 @@
+
+
diff --git a/core/assets-raw/fontgen/extra/file-image.svg b/core/assets-raw/fontgen/extra/file-image.svg
new file mode 100644
index 0000000000..37d149a2e4
--- /dev/null
+++ b/core/assets-raw/fontgen/extra/file-image.svg
@@ -0,0 +1,55 @@
+
+
diff --git a/core/assets-raw/fontgen/extra/info.svg b/core/assets-raw/fontgen/extra/info.svg
new file mode 100644
index 0000000000..d7ec5d243f
--- /dev/null
+++ b/core/assets-raw/fontgen/extra/info.svg
@@ -0,0 +1,53 @@
+
+
diff --git a/core/assets-raw/fontgen/icons/logic.svg b/core/assets-raw/fontgen/extra/logic.svg
similarity index 100%
rename from core/assets-raw/fontgen/icons/logic.svg
rename to core/assets-raw/fontgen/extra/logic.svg
diff --git a/core/assets-raw/fontgen/icons/admin.svg b/core/assets-raw/fontgen/icons/admin.svg
deleted file mode 100644
index 8b6e5e5220..0000000000
--- a/core/assets-raw/fontgen/icons/admin.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/book.svg b/core/assets-raw/fontgen/icons/book.svg
deleted file mode 100644
index 4ce30ae7ee..0000000000
--- a/core/assets-raw/fontgen/icons/book.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/chat.svg b/core/assets-raw/fontgen/icons/chat.svg
deleted file mode 100644
index dab837b908..0000000000
--- a/core/assets-raw/fontgen/icons/chat.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/command-attack.svg b/core/assets-raw/fontgen/icons/command-attack.svg
deleted file mode 100644
index ffd597b7a5..0000000000
--- a/core/assets-raw/fontgen/icons/command-attack.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/command-rally.svg b/core/assets-raw/fontgen/icons/command-rally.svg
deleted file mode 100644
index b402671f69..0000000000
--- a/core/assets-raw/fontgen/icons/command-rally.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/command-retreat.svg b/core/assets-raw/fontgen/icons/command-retreat.svg
deleted file mode 100644
index a608141b9b..0000000000
--- a/core/assets-raw/fontgen/icons/command-retreat.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/crafting.svg b/core/assets-raw/fontgen/icons/crafting.svg
deleted file mode 100644
index 7f2e56d27c..0000000000
--- a/core/assets-raw/fontgen/icons/crafting.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/defense.svg b/core/assets-raw/fontgen/icons/defense.svg
deleted file mode 100644
index 0891560c0a..0000000000
--- a/core/assets-raw/fontgen/icons/defense.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/distribution.svg b/core/assets-raw/fontgen/icons/distribution.svg
deleted file mode 100644
index f60b2f7251..0000000000
--- a/core/assets-raw/fontgen/icons/distribution.svg
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/effect.svg b/core/assets-raw/fontgen/icons/effect.svg
deleted file mode 100644
index 004fecdb71..0000000000
--- a/core/assets-raw/fontgen/icons/effect.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/exit.svg b/core/assets-raw/fontgen/icons/exit.svg
deleted file mode 100644
index 2a9a6ddc8f..0000000000
--- a/core/assets-raw/fontgen/icons/exit.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/fill.svg b/core/assets-raw/fontgen/icons/fill.svg
deleted file mode 100644
index 4435469aac..0000000000
--- a/core/assets-raw/fontgen/icons/fill.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/hammer.svg b/core/assets-raw/fontgen/icons/hammer.svg
deleted file mode 100644
index a9ec0312f5..0000000000
--- a/core/assets-raw/fontgen/icons/hammer.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/host.svg b/core/assets-raw/fontgen/icons/host.svg
deleted file mode 100644
index e927c7af2f..0000000000
--- a/core/assets-raw/fontgen/icons/host.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/itchio.svg b/core/assets-raw/fontgen/icons/itchio.svg
deleted file mode 100644
index d26eb1780a..0000000000
--- a/core/assets-raw/fontgen/icons/itchio.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/line.svg b/core/assets-raw/fontgen/icons/line.svg
deleted file mode 100644
index 91e2e2fb29..0000000000
--- a/core/assets-raw/fontgen/icons/line.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/link.svg b/core/assets-raw/fontgen/icons/link.svg
deleted file mode 100644
index 34b8a163d7..0000000000
--- a/core/assets-raw/fontgen/icons/link.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/liquid.svg b/core/assets-raw/fontgen/icons/liquid.svg
deleted file mode 100644
index 6eb50596d8..0000000000
--- a/core/assets-raw/fontgen/icons/liquid.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/mode-attack.svg b/core/assets-raw/fontgen/icons/mode-attack.svg
deleted file mode 100644
index cc78940688..0000000000
--- a/core/assets-raw/fontgen/icons/mode-attack.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/mode-pvp.svg b/core/assets-raw/fontgen/icons/mode-pvp.svg
deleted file mode 100644
index 76c7f31f77..0000000000
--- a/core/assets-raw/fontgen/icons/mode-pvp.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/mode-survival.svg b/core/assets-raw/fontgen/icons/mode-survival.svg
deleted file mode 100644
index aa5d0dcac8..0000000000
--- a/core/assets-raw/fontgen/icons/mode-survival.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/paste.svg b/core/assets-raw/fontgen/icons/paste.svg
deleted file mode 100644
index 67a323b6ea..0000000000
--- a/core/assets-raw/fontgen/icons/paste.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/pencil.svg b/core/assets-raw/fontgen/icons/pencil.svg
deleted file mode 100644
index f2bfa70403..0000000000
--- a/core/assets-raw/fontgen/icons/pencil.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/players.svg b/core/assets-raw/fontgen/icons/players.svg
deleted file mode 100644
index 3cdfa46245..0000000000
--- a/core/assets-raw/fontgen/icons/players.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/power.svg b/core/assets-raw/fontgen/icons/power.svg
deleted file mode 100644
index 6d6a5063f2..0000000000
--- a/core/assets-raw/fontgen/icons/power.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/production.svg b/core/assets-raw/fontgen/icons/production.svg
deleted file mode 100644
index 74f0f882a9..0000000000
--- a/core/assets-raw/fontgen/icons/production.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/refresh.svg b/core/assets-raw/fontgen/icons/refresh.svg
deleted file mode 100644
index 1cde3c7e11..0000000000
--- a/core/assets-raw/fontgen/icons/refresh.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/save.svg b/core/assets-raw/fontgen/icons/save.svg
deleted file mode 100644
index d2b0776e95..0000000000
--- a/core/assets-raw/fontgen/icons/save.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/spray.svg b/core/assets-raw/fontgen/icons/spray.svg
deleted file mode 100644
index a1b0cf95f7..0000000000
--- a/core/assets-raw/fontgen/icons/spray.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/terrain.svg b/core/assets-raw/fontgen/icons/terrain.svg
deleted file mode 100644
index acb45bd0de..0000000000
--- a/core/assets-raw/fontgen/icons/terrain.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/trash.svg b/core/assets-raw/fontgen/icons/trash.svg
deleted file mode 100644
index 22ed1dee35..0000000000
--- a/core/assets-raw/fontgen/icons/trash.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/turret.svg b/core/assets-raw/fontgen/icons/turret.svg
deleted file mode 100644
index 12009fa1f3..0000000000
--- a/core/assets-raw/fontgen/icons/turret.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/units.svg b/core/assets-raw/fontgen/icons/units.svg
deleted file mode 100644
index 969b63e096..0000000000
--- a/core/assets-raw/fontgen/icons/units.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/icons/upgrade.svg b/core/assets-raw/fontgen/icons/upgrade.svg
deleted file mode 100644
index 9cee75f283..0000000000
--- a/core/assets-raw/fontgen/icons/upgrade.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
diff --git a/core/assets-raw/fontgen/merge.pe b/core/assets-raw/fontgen/merge.pe
index 2dfaf77598..6e5bad0d13 100755
--- a/core/assets-raw/fontgen/merge.pe
+++ b/core/assets-raw/fontgen/merge.pe
@@ -1,3 +1,3 @@
-Open("core/assets/fonts/font.ttf")
-MergeFonts("core/assets-raw/fontgen/out/font.ttf")
-Generate("core/assets/fonts/font.ttf")
+Open($2)
+MergeFonts($1)
+Generate($1)
diff --git a/core/assets-raw/fonts/Arturito Slab_v2.ttf b/core/assets-raw/fonts/Arturito Slab_v2.ttf
deleted file mode 100755
index 04096503fa..0000000000
Binary files a/core/assets-raw/fonts/Arturito Slab_v2.ttf and /dev/null differ
diff --git a/core/assets-raw/fonts/EkkamaiNew-Regular.ttf b/core/assets-raw/fonts/EkkamaiNew-Regular.ttf
deleted file mode 100644
index 8c3f521e80..0000000000
Binary files a/core/assets-raw/fonts/EkkamaiNew-Regular.ttf and /dev/null differ
diff --git a/core/assets-raw/fonts/Exo2-Regular.ttf b/core/assets-raw/fonts/Exo2-Regular.ttf
deleted file mode 100644
index 8e09f6fb43..0000000000
Binary files a/core/assets-raw/fonts/Exo2-Regular.ttf and /dev/null differ
diff --git a/core/assets-raw/fonts/NanumBarunGothic.ttf b/core/assets-raw/fonts/NanumBarunGothic.ttf
deleted file mode 100644
index 658cd3c239..0000000000
Binary files a/core/assets-raw/fonts/NanumBarunGothic.ttf and /dev/null differ
diff --git a/core/assets-raw/fonts/OpenSansEmoji.ttf b/core/assets-raw/fonts/OpenSansEmoji.ttf
deleted file mode 100644
index 57d86a62bb..0000000000
Binary files a/core/assets-raw/fonts/OpenSansEmoji.ttf and /dev/null differ
diff --git a/core/assets-raw/fonts/font_latin.ttf b/core/assets-raw/fonts/font_latin.ttf
deleted file mode 100644
index cebae09c33..0000000000
Binary files a/core/assets-raw/fonts/font_latin.ttf and /dev/null differ
diff --git a/core/assets-raw/icons/about.png b/core/assets-raw/icons/about.png
new file mode 100644
index 0000000000..3943975b97
Binary files /dev/null and b/core/assets-raw/icons/about.png differ
diff --git a/core/assets-raw/icons/add.png b/core/assets-raw/icons/add.png
new file mode 100644
index 0000000000..328c8ca469
Binary files /dev/null and b/core/assets-raw/icons/add.png differ
diff --git a/core/assets-raw/icons/admin.png b/core/assets-raw/icons/admin.png
new file mode 100644
index 0000000000..f4101c0423
Binary files /dev/null and b/core/assets-raw/icons/admin.png differ
diff --git a/core/assets-raw/icons/book.png b/core/assets-raw/icons/book.png
new file mode 100644
index 0000000000..a4395e4ed5
Binary files /dev/null and b/core/assets-raw/icons/book.png differ
diff --git a/core/assets-raw/icons/break.png b/core/assets-raw/icons/break.png
new file mode 100644
index 0000000000..c4b079735c
Binary files /dev/null and b/core/assets-raw/icons/break.png differ
diff --git a/core/assets-raw/icons/cancel.png b/core/assets-raw/icons/cancel.png
new file mode 100644
index 0000000000..03ea12174f
Binary files /dev/null and b/core/assets-raw/icons/cancel.png differ
diff --git a/core/assets-raw/icons/changelog.png b/core/assets-raw/icons/changelog.png
new file mode 100644
index 0000000000..e6fbf8d3c1
Binary files /dev/null and b/core/assets-raw/icons/changelog.png differ
diff --git a/core/assets-raw/icons/chat.png b/core/assets-raw/icons/chat.png
new file mode 100644
index 0000000000..85f52fa41c
Binary files /dev/null and b/core/assets-raw/icons/chat.png differ
diff --git a/core/assets-raw/icons/check.png b/core/assets-raw/icons/check.png
new file mode 100644
index 0000000000..db96907362
Binary files /dev/null and b/core/assets-raw/icons/check.png differ
diff --git a/core/assets-raw/icons/command-attack.png b/core/assets-raw/icons/command-attack.png
new file mode 100644
index 0000000000..655f819338
Binary files /dev/null and b/core/assets-raw/icons/command-attack.png differ
diff --git a/core/assets-raw/icons/command-rally.png b/core/assets-raw/icons/command-rally.png
new file mode 100644
index 0000000000..4271a5a321
Binary files /dev/null and b/core/assets-raw/icons/command-rally.png differ
diff --git a/core/assets-raw/icons/copy.png b/core/assets-raw/icons/copy.png
new file mode 100644
index 0000000000..0f03ee5d04
Binary files /dev/null and b/core/assets-raw/icons/copy.png differ
diff --git a/core/assets-raw/icons/crafting.png b/core/assets-raw/icons/crafting.png
new file mode 100644
index 0000000000..3f7022e87b
Binary files /dev/null and b/core/assets-raw/icons/crafting.png differ
diff --git a/core/assets-raw/icons/cursor.png b/core/assets-raw/icons/cursor.png
new file mode 100644
index 0000000000..1025a08a9e
Binary files /dev/null and b/core/assets-raw/icons/cursor.png differ
diff --git a/core/assets-raw/icons/defense.png b/core/assets-raw/icons/defense.png
new file mode 100644
index 0000000000..694492a160
Binary files /dev/null and b/core/assets-raw/icons/defense.png differ
diff --git a/core/assets-raw/icons/diagonal.png b/core/assets-raw/icons/diagonal.png
new file mode 100644
index 0000000000..262be1cebc
Binary files /dev/null and b/core/assets-raw/icons/diagonal.png differ
diff --git a/core/assets-raw/icons/distribution.png b/core/assets-raw/icons/distribution.png
new file mode 100644
index 0000000000..3a202b38e8
Binary files /dev/null and b/core/assets-raw/icons/distribution.png differ
diff --git a/core/assets-raw/icons/donate.png b/core/assets-raw/icons/donate.png
new file mode 100644
index 0000000000..cad39eb1ba
Binary files /dev/null and b/core/assets-raw/icons/donate.png differ
diff --git a/core/assets-raw/icons/dots.png b/core/assets-raw/icons/dots.png
new file mode 100644
index 0000000000..a8d656d6cc
Binary files /dev/null and b/core/assets-raw/icons/dots.png differ
diff --git a/core/assets-raw/icons/download.png b/core/assets-raw/icons/download.png
new file mode 100644
index 0000000000..d6f5700c7f
Binary files /dev/null and b/core/assets-raw/icons/download.png differ
diff --git a/core/assets-raw/icons/editor.png b/core/assets-raw/icons/editor.png
new file mode 100644
index 0000000000..6cb0a64f9f
Binary files /dev/null and b/core/assets-raw/icons/editor.png differ
diff --git a/core/assets-raw/icons/effect.png b/core/assets-raw/icons/effect.png
new file mode 100644
index 0000000000..212034645b
Binary files /dev/null and b/core/assets-raw/icons/effect.png differ
diff --git a/core/assets-raw/icons/elevation.png b/core/assets-raw/icons/elevation.png
new file mode 100644
index 0000000000..cbc30c8cc1
Binary files /dev/null and b/core/assets-raw/icons/elevation.png differ
diff --git a/core/assets-raw/icons/eraser.png b/core/assets-raw/icons/eraser.png
new file mode 100644
index 0000000000..fc72acc9f2
Binary files /dev/null and b/core/assets-raw/icons/eraser.png differ
diff --git a/core/assets-raw/icons/exit.png b/core/assets-raw/icons/exit.png
new file mode 100644
index 0000000000..e5cc257e39
Binary files /dev/null and b/core/assets-raw/icons/exit.png differ
diff --git a/core/assets-raw/icons/export.png b/core/assets-raw/icons/export.png
new file mode 100644
index 0000000000..4607f74b75
Binary files /dev/null and b/core/assets-raw/icons/export.png differ
diff --git a/core/assets-raw/icons/eye-off.png b/core/assets-raw/icons/eye-off.png
new file mode 100644
index 0000000000..cf304c9f77
Binary files /dev/null and b/core/assets-raw/icons/eye-off.png differ
diff --git a/core/assets-raw/icons/eye.png b/core/assets-raw/icons/eye.png
new file mode 100644
index 0000000000..1a14383523
Binary files /dev/null and b/core/assets-raw/icons/eye.png differ
diff --git a/core/assets-raw/icons/fdroid.png b/core/assets-raw/icons/fdroid.png
new file mode 100644
index 0000000000..24c7cb884d
Binary files /dev/null and b/core/assets-raw/icons/fdroid.png differ
diff --git a/core/assets-raw/icons/file-image.png b/core/assets-raw/icons/file-image.png
new file mode 100644
index 0000000000..254ea95f3d
Binary files /dev/null and b/core/assets-raw/icons/file-image.png differ
diff --git a/core/assets-raw/icons/file-text.png b/core/assets-raw/icons/file-text.png
new file mode 100644
index 0000000000..41b4fbc342
Binary files /dev/null and b/core/assets-raw/icons/file-text.png differ
diff --git a/core/assets-raw/icons/file.png b/core/assets-raw/icons/file.png
new file mode 100644
index 0000000000..0f41e17cbf
Binary files /dev/null and b/core/assets-raw/icons/file.png differ
diff --git a/core/assets-raw/icons/fill.png b/core/assets-raw/icons/fill.png
new file mode 100644
index 0000000000..79bc8b2c39
Binary files /dev/null and b/core/assets-raw/icons/fill.png differ
diff --git a/core/assets-raw/icons/flip.png b/core/assets-raw/icons/flip.png
new file mode 100644
index 0000000000..d81d741434
Binary files /dev/null and b/core/assets-raw/icons/flip.png differ
diff --git a/core/assets-raw/icons/folder-parent.png b/core/assets-raw/icons/folder-parent.png
new file mode 100644
index 0000000000..160f2be902
Binary files /dev/null and b/core/assets-raw/icons/folder-parent.png differ
diff --git a/core/assets-raw/icons/folder.png b/core/assets-raw/icons/folder.png
new file mode 100644
index 0000000000..c55313ef32
Binary files /dev/null and b/core/assets-raw/icons/folder.png differ
diff --git a/core/assets-raw/icons/grid.png b/core/assets-raw/icons/grid.png
new file mode 100644
index 0000000000..5427571a16
Binary files /dev/null and b/core/assets-raw/icons/grid.png differ
diff --git a/core/assets-raw/icons/hammer.png b/core/assets-raw/icons/hammer.png
new file mode 100644
index 0000000000..1ee4a5c3bf
Binary files /dev/null and b/core/assets-raw/icons/hammer.png differ
diff --git a/core/assets-raw/icons/home.png b/core/assets-raw/icons/home.png
new file mode 100644
index 0000000000..b97dba2a11
Binary files /dev/null and b/core/assets-raw/icons/home.png differ
diff --git a/core/assets-raw/icons/host.png b/core/assets-raw/icons/host.png
new file mode 100644
index 0000000000..6253c986bd
Binary files /dev/null and b/core/assets-raw/icons/host.png differ
diff --git a/core/assets-raw/icons/info.png b/core/assets-raw/icons/info.png
new file mode 100644
index 0000000000..7e2bb40037
Binary files /dev/null and b/core/assets-raw/icons/info.png differ
diff --git a/core/assets-raw/icons/itchio.png b/core/assets-raw/icons/itchio.png
new file mode 100644
index 0000000000..ec92eb3725
Binary files /dev/null and b/core/assets-raw/icons/itchio.png differ
diff --git a/core/assets-raw/icons/item.png b/core/assets-raw/icons/item.png
new file mode 100644
index 0000000000..9dd6da2249
Binary files /dev/null and b/core/assets-raw/icons/item.png differ
diff --git a/core/assets-raw/icons/line.png b/core/assets-raw/icons/line.png
new file mode 100644
index 0000000000..5ce2cfdc78
Binary files /dev/null and b/core/assets-raw/icons/line.png differ
diff --git a/core/assets-raw/icons/link.png b/core/assets-raw/icons/link.png
new file mode 100644
index 0000000000..71446afcc0
Binary files /dev/null and b/core/assets-raw/icons/link.png differ
diff --git a/core/assets-raw/icons/liquid-consume.png b/core/assets-raw/icons/liquid-consume.png
new file mode 100644
index 0000000000..48c93ed9d2
Binary files /dev/null and b/core/assets-raw/icons/liquid-consume.png differ
diff --git a/core/assets-raw/icons/liquid.png b/core/assets-raw/icons/liquid.png
new file mode 100644
index 0000000000..41fe7d5f92
Binary files /dev/null and b/core/assets-raw/icons/liquid.png differ
diff --git a/core/assets-raw/icons/load-image.png b/core/assets-raw/icons/load-image.png
new file mode 100644
index 0000000000..88a162b628
Binary files /dev/null and b/core/assets-raw/icons/load-image.png differ
diff --git a/core/assets-raw/icons/load.png b/core/assets-raw/icons/load.png
new file mode 100644
index 0000000000..ecbd0c08cf
Binary files /dev/null and b/core/assets-raw/icons/load.png differ
diff --git a/core/assets-raw/icons/loading.png b/core/assets-raw/icons/loading.png
new file mode 100644
index 0000000000..0fd2d5265d
Binary files /dev/null and b/core/assets-raw/icons/loading.png differ
diff --git a/core/assets-raw/icons/lock-open.png b/core/assets-raw/icons/lock-open.png
new file mode 100644
index 0000000000..36b637b0b9
Binary files /dev/null and b/core/assets-raw/icons/lock-open.png differ
diff --git a/core/assets-raw/icons/lock.png b/core/assets-raw/icons/lock.png
new file mode 100644
index 0000000000..cf438bcd9c
Binary files /dev/null and b/core/assets-raw/icons/lock.png differ
diff --git a/core/assets-raw/icons/map.png b/core/assets-raw/icons/map.png
new file mode 100644
index 0000000000..92ff76d74f
Binary files /dev/null and b/core/assets-raw/icons/map.png differ
diff --git a/core/assets-raw/icons/menu.png b/core/assets-raw/icons/menu.png
new file mode 100644
index 0000000000..0469f99721
Binary files /dev/null and b/core/assets-raw/icons/menu.png differ
diff --git a/core/assets-raw/icons/missing.png b/core/assets-raw/icons/missing.png
new file mode 100644
index 0000000000..6a9c5d9012
Binary files /dev/null and b/core/assets-raw/icons/missing.png differ
diff --git a/core/assets-raw/icons/mode-attack.png b/core/assets-raw/icons/mode-attack.png
new file mode 100644
index 0000000000..c6aac86259
Binary files /dev/null and b/core/assets-raw/icons/mode-attack.png differ
diff --git a/core/assets-raw/icons/mode-pvp.png b/core/assets-raw/icons/mode-pvp.png
new file mode 100644
index 0000000000..3a0c63ceb6
Binary files /dev/null and b/core/assets-raw/icons/mode-pvp.png differ
diff --git a/core/assets-raw/icons/mode-survival.png b/core/assets-raw/icons/mode-survival.png
new file mode 100644
index 0000000000..c88da7b3b6
Binary files /dev/null and b/core/assets-raw/icons/mode-survival.png differ
diff --git a/core/assets-raw/icons/none.png b/core/assets-raw/icons/none.png
new file mode 100644
index 0000000000..fcf22bc9da
Binary files /dev/null and b/core/assets-raw/icons/none.png differ
diff --git a/core/assets-raw/icons/paste.png b/core/assets-raw/icons/paste.png
new file mode 100644
index 0000000000..606165ed34
Binary files /dev/null and b/core/assets-raw/icons/paste.png differ
diff --git a/core/assets-raw/icons/pause.png b/core/assets-raw/icons/pause.png
new file mode 100644
index 0000000000..7471836eaa
Binary files /dev/null and b/core/assets-raw/icons/pause.png differ
diff --git a/core/assets-raw/icons/pencil.png b/core/assets-raw/icons/pencil.png
new file mode 100644
index 0000000000..053a283d08
Binary files /dev/null and b/core/assets-raw/icons/pencil.png differ
diff --git a/core/assets-raw/icons/pick.png b/core/assets-raw/icons/pick.png
new file mode 100644
index 0000000000..dfd7743030
Binary files /dev/null and b/core/assets-raw/icons/pick.png differ
diff --git a/core/assets-raw/icons/play-2.png b/core/assets-raw/icons/play-2.png
new file mode 100644
index 0000000000..c001e60b04
Binary files /dev/null and b/core/assets-raw/icons/play-2.png differ
diff --git a/core/assets-raw/icons/play.png b/core/assets-raw/icons/play.png
new file mode 100644
index 0000000000..8530e6b09d
Binary files /dev/null and b/core/assets-raw/icons/play.png differ
diff --git a/core/assets-raw/icons/players.png b/core/assets-raw/icons/players.png
new file mode 100644
index 0000000000..be4746291f
Binary files /dev/null and b/core/assets-raw/icons/players.png differ
diff --git a/core/assets-raw/icons/power.png b/core/assets-raw/icons/power.png
new file mode 100644
index 0000000000..149248be30
Binary files /dev/null and b/core/assets-raw/icons/power.png differ
diff --git a/core/assets-raw/icons/production.png b/core/assets-raw/icons/production.png
new file mode 100644
index 0000000000..fe6c3523c0
Binary files /dev/null and b/core/assets-raw/icons/production.png differ
diff --git a/core/assets-raw/icons/quit.png b/core/assets-raw/icons/quit.png
new file mode 100644
index 0000000000..26a9634945
Binary files /dev/null and b/core/assets-raw/icons/quit.png differ
diff --git a/core/assets-raw/icons/redo.png b/core/assets-raw/icons/redo.png
new file mode 100644
index 0000000000..4c53eb56ef
Binary files /dev/null and b/core/assets-raw/icons/redo.png differ
diff --git a/core/assets-raw/icons/refresh.png b/core/assets-raw/icons/refresh.png
new file mode 100644
index 0000000000..cd1050f017
Binary files /dev/null and b/core/assets-raw/icons/refresh.png differ
diff --git a/core/assets-raw/icons/rename.png b/core/assets-raw/icons/rename.png
new file mode 100644
index 0000000000..4a6731a31b
Binary files /dev/null and b/core/assets-raw/icons/rename.png differ
diff --git a/core/assets-raw/icons/resize.png b/core/assets-raw/icons/resize.png
new file mode 100644
index 0000000000..ee53c8470f
Binary files /dev/null and b/core/assets-raw/icons/resize.png differ
diff --git a/core/assets-raw/icons/rotate-arrow.png b/core/assets-raw/icons/rotate-arrow.png
new file mode 100644
index 0000000000..22039f3020
Binary files /dev/null and b/core/assets-raw/icons/rotate-arrow.png differ
diff --git a/core/assets-raw/icons/rotate-left.png b/core/assets-raw/icons/rotate-left.png
new file mode 100644
index 0000000000..9b05efec5f
Binary files /dev/null and b/core/assets-raw/icons/rotate-left.png differ
diff --git a/core/assets-raw/icons/rotate-right.png b/core/assets-raw/icons/rotate-right.png
new file mode 100644
index 0000000000..2009c9394d
Binary files /dev/null and b/core/assets-raw/icons/rotate-right.png differ
diff --git a/core/assets-raw/icons/rotate.png b/core/assets-raw/icons/rotate.png
new file mode 100644
index 0000000000..3c989a555f
Binary files /dev/null and b/core/assets-raw/icons/rotate.png differ
diff --git a/core/assets-raw/icons/save-image.png b/core/assets-raw/icons/save-image.png
new file mode 100644
index 0000000000..5234c4f2f4
Binary files /dev/null and b/core/assets-raw/icons/save-image.png differ
diff --git a/core/assets-raw/icons/save.png b/core/assets-raw/icons/save.png
new file mode 100644
index 0000000000..e8ba657ab7
Binary files /dev/null and b/core/assets-raw/icons/save.png differ
diff --git a/core/assets-raw/icons/search.png b/core/assets-raw/icons/search.png
new file mode 100644
index 0000000000..02736c1a4b
Binary files /dev/null and b/core/assets-raw/icons/search.png differ
diff --git a/core/assets-raw/icons/settings.png b/core/assets-raw/icons/settings.png
new file mode 100644
index 0000000000..2653418e19
Binary files /dev/null and b/core/assets-raw/icons/settings.png differ
diff --git a/core/assets-raw/icons/spray.png b/core/assets-raw/icons/spray.png
new file mode 100644
index 0000000000..17198d657b
Binary files /dev/null and b/core/assets-raw/icons/spray.png differ
diff --git a/core/assets-raw/icons/terrain.png b/core/assets-raw/icons/terrain.png
new file mode 100644
index 0000000000..a9bd73972e
Binary files /dev/null and b/core/assets-raw/icons/terrain.png differ
diff --git a/core/assets-raw/icons/tools.png b/core/assets-raw/icons/tools.png
new file mode 100644
index 0000000000..2ece1ae8f4
Binary files /dev/null and b/core/assets-raw/icons/tools.png differ
diff --git a/core/assets-raw/icons/trash-16.png b/core/assets-raw/icons/trash-16.png
new file mode 100644
index 0000000000..a1de49233b
Binary files /dev/null and b/core/assets-raw/icons/trash-16.png differ
diff --git a/core/assets-raw/icons/trash.png b/core/assets-raw/icons/trash.png
new file mode 100644
index 0000000000..e0f419f2f3
Binary files /dev/null and b/core/assets-raw/icons/trash.png differ
diff --git a/core/assets-raw/icons/tree.png b/core/assets-raw/icons/tree.png
new file mode 100644
index 0000000000..0901a7a721
Binary files /dev/null and b/core/assets-raw/icons/tree.png differ
diff --git a/core/assets-raw/icons/turret.png b/core/assets-raw/icons/turret.png
new file mode 100644
index 0000000000..32fd01b464
Binary files /dev/null and b/core/assets-raw/icons/turret.png differ
diff --git a/core/assets-raw/icons/tutorial.png b/core/assets-raw/icons/tutorial.png
new file mode 100644
index 0000000000..40ba90a5e4
Binary files /dev/null and b/core/assets-raw/icons/tutorial.png differ
diff --git a/core/assets-raw/icons/undo.png b/core/assets-raw/icons/undo.png
new file mode 100644
index 0000000000..cf5dd4c154
Binary files /dev/null and b/core/assets-raw/icons/undo.png differ
diff --git a/core/assets-raw/icons/units.png b/core/assets-raw/icons/units.png
new file mode 100644
index 0000000000..1ee9cd9f55
Binary files /dev/null and b/core/assets-raw/icons/units.png differ
diff --git a/core/assets-raw/icons/upload.png b/core/assets-raw/icons/upload.png
new file mode 100644
index 0000000000..b8e4c1d725
Binary files /dev/null and b/core/assets-raw/icons/upload.png differ
diff --git a/core/assets-raw/sprites/blocks/campaign/interplanetary-accelerator-team.png b/core/assets-raw/sprites/blocks/campaign/interplanetary-accelerator-team.png
new file mode 100644
index 0000000000..e141d97940
Binary files /dev/null and b/core/assets-raw/sprites/blocks/campaign/interplanetary-accelerator-team.png differ
diff --git a/core/assets-raw/sprites/blocks/campaign/interplanetary-accelerator.png b/core/assets-raw/sprites/blocks/campaign/interplanetary-accelerator.png
new file mode 100644
index 0000000000..a83ba863a9
Binary files /dev/null and b/core/assets-raw/sprites/blocks/campaign/interplanetary-accelerator.png differ
diff --git a/core/assets-raw/sprites/blocks/production/blast-mixer.png b/core/assets-raw/sprites/blocks/production/blast-mixer.png
index 9effafb9c8..52e7a3020e 100644
Binary files a/core/assets-raw/sprites/blocks/production/blast-mixer.png and b/core/assets-raw/sprites/blocks/production/blast-mixer.png differ
diff --git a/core/assets-raw/sprites/blocks/props/basalt-boulder1.png b/core/assets-raw/sprites/blocks/props/basalt-boulder1.png
new file mode 100644
index 0000000000..f88209e5ee
Binary files /dev/null and b/core/assets-raw/sprites/blocks/props/basalt-boulder1.png differ
diff --git a/core/assets-raw/sprites/blocks/props/basalt-boulder2.png b/core/assets-raw/sprites/blocks/props/basalt-boulder2.png
new file mode 100644
index 0000000000..7c19c928ac
Binary files /dev/null and b/core/assets-raw/sprites/blocks/props/basalt-boulder2.png differ
diff --git a/core/assets-raw/sprites/effects/launch-arrow.png b/core/assets-raw/sprites/effects/launch-arrow.png
new file mode 100644
index 0000000000..5faa4ae6c7
Binary files /dev/null and b/core/assets-raw/sprites/effects/launch-arrow.png differ
diff --git a/core/assets-raw/sprites/items/item-blast-compound.png b/core/assets-raw/sprites/items/item-blast-compound.png
index cc45da15db..1b103c7c9d 100644
Binary files a/core/assets-raw/sprites/items/item-blast-compound.png and b/core/assets-raw/sprites/items/item-blast-compound.png differ
diff --git a/core/assets-raw/sprites/items/item-coal.png b/core/assets-raw/sprites/items/item-coal.png
index 13df71b603..4f67e0a80e 100644
Binary files a/core/assets-raw/sprites/items/item-coal.png and b/core/assets-raw/sprites/items/item-coal.png differ
diff --git a/core/assets-raw/sprites/items/item-copper.png b/core/assets-raw/sprites/items/item-copper.png
index 74f6bd94ed..e35ef78511 100644
Binary files a/core/assets-raw/sprites/items/item-copper.png and b/core/assets-raw/sprites/items/item-copper.png differ
diff --git a/core/assets-raw/sprites/items/item-graphite.png b/core/assets-raw/sprites/items/item-graphite.png
index 47bbcb1506..3d802be63f 100644
Binary files a/core/assets-raw/sprites/items/item-graphite.png and b/core/assets-raw/sprites/items/item-graphite.png differ
diff --git a/core/assets-raw/sprites/items/item-lead.png b/core/assets-raw/sprites/items/item-lead.png
index 35595097ca..f42443997b 100644
Binary files a/core/assets-raw/sprites/items/item-lead.png and b/core/assets-raw/sprites/items/item-lead.png differ
diff --git a/core/assets-raw/sprites/items/item-metaglass.png b/core/assets-raw/sprites/items/item-metaglass.png
index 6b6d36240f..4707552a2c 100644
Binary files a/core/assets-raw/sprites/items/item-metaglass.png and b/core/assets-raw/sprites/items/item-metaglass.png differ
diff --git a/core/assets-raw/sprites/items/item-phase-fabric.png b/core/assets-raw/sprites/items/item-phase-fabric.png
index 174215dd86..8dd6efca38 100644
Binary files a/core/assets-raw/sprites/items/item-phase-fabric.png and b/core/assets-raw/sprites/items/item-phase-fabric.png differ
diff --git a/core/assets-raw/sprites/items/item-plastanium.png b/core/assets-raw/sprites/items/item-plastanium.png
index 3d51e7562e..f6ddf438fc 100644
Binary files a/core/assets-raw/sprites/items/item-plastanium.png and b/core/assets-raw/sprites/items/item-plastanium.png differ
diff --git a/core/assets-raw/sprites/items/item-pyratite.png b/core/assets-raw/sprites/items/item-pyratite.png
index 77012a522d..987fdca8c0 100644
Binary files a/core/assets-raw/sprites/items/item-pyratite.png and b/core/assets-raw/sprites/items/item-pyratite.png differ
diff --git a/core/assets-raw/sprites/items/item-sand.png b/core/assets-raw/sprites/items/item-sand.png
index ed025f9931..79ddca5d30 100644
Binary files a/core/assets-raw/sprites/items/item-sand.png and b/core/assets-raw/sprites/items/item-sand.png differ
diff --git a/core/assets-raw/sprites/items/item-scrap.png b/core/assets-raw/sprites/items/item-scrap.png
index 45df8819fc..242b66db66 100644
Binary files a/core/assets-raw/sprites/items/item-scrap.png and b/core/assets-raw/sprites/items/item-scrap.png differ
diff --git a/core/assets-raw/sprites/items/item-silicon.png b/core/assets-raw/sprites/items/item-silicon.png
index 9014611f2c..1c498c2524 100644
Binary files a/core/assets-raw/sprites/items/item-silicon.png and b/core/assets-raw/sprites/items/item-silicon.png differ
diff --git a/core/assets-raw/sprites/items/item-spore-pod.png b/core/assets-raw/sprites/items/item-spore-pod.png
index 08fab9d2e8..b627c0da1b 100644
Binary files a/core/assets-raw/sprites/items/item-spore-pod.png and b/core/assets-raw/sprites/items/item-spore-pod.png differ
diff --git a/core/assets-raw/sprites/items/item-surge-alloy.png b/core/assets-raw/sprites/items/item-surge-alloy.png
index 789012ef13..4cac00c5e4 100644
Binary files a/core/assets-raw/sprites/items/item-surge-alloy.png and b/core/assets-raw/sprites/items/item-surge-alloy.png differ
diff --git a/core/assets-raw/sprites/items/item-thorium.png b/core/assets-raw/sprites/items/item-thorium.png
index b548c5acf7..6da37cfb1e 100644
Binary files a/core/assets-raw/sprites/items/item-thorium.png and b/core/assets-raw/sprites/items/item-thorium.png differ
diff --git a/core/assets-raw/sprites/items/item-titanium.png b/core/assets-raw/sprites/items/item-titanium.png
index b1dd24233a..69368ab751 100644
Binary files a/core/assets-raw/sprites/items/item-titanium.png and b/core/assets-raw/sprites/items/item-titanium.png differ
diff --git a/core/assets-raw/sprites/items/liquid-cryofluid.png b/core/assets-raw/sprites/items/liquid-cryofluid.png
index ada0f5b06d..b438a5ed37 100644
Binary files a/core/assets-raw/sprites/items/liquid-cryofluid.png and b/core/assets-raw/sprites/items/liquid-cryofluid.png differ
diff --git a/core/assets-raw/sprites/items/liquid-oil.png b/core/assets-raw/sprites/items/liquid-oil.png
index 16ea1670b4..51c7a8db47 100644
Binary files a/core/assets-raw/sprites/items/liquid-oil.png and b/core/assets-raw/sprites/items/liquid-oil.png differ
diff --git a/core/assets-raw/sprites/items/liquid-slag.png b/core/assets-raw/sprites/items/liquid-slag.png
index c482af93dd..2d51d55a8c 100644
Binary files a/core/assets-raw/sprites/items/liquid-slag.png and b/core/assets-raw/sprites/items/liquid-slag.png differ
diff --git a/core/assets-raw/sprites/items/liquid-water.png b/core/assets-raw/sprites/items/liquid-water.png
index a822b86412..602eee79a9 100644
Binary files a/core/assets-raw/sprites/items/liquid-water.png and b/core/assets-raw/sprites/items/liquid-water.png differ
diff --git a/core/assets-raw/sprites/shapes/circle-small.png b/core/assets-raw/sprites/shapes/circle-small.png
new file mode 100644
index 0000000000..f69791c29d
Binary files /dev/null and b/core/assets-raw/sprites/shapes/circle-small.png differ
diff --git a/core/assets-raw/sprites/units/omura-cannon-heat.png b/core/assets-raw/sprites/units/omura-cannon-heat.png
deleted file mode 100644
index 5e2b0dc212..0000000000
Binary files a/core/assets-raw/sprites/units/omura-cannon-heat.png and /dev/null differ
diff --git a/core/assets-raw/sprites/units/weapons/large-laser-mount.png b/core/assets-raw/sprites/units/weapons/large-laser-mount.png
index 9cad74c69b..5e04ace067 100644
Binary files a/core/assets-raw/sprites/units/weapons/large-laser-mount.png and b/core/assets-raw/sprites/units/weapons/large-laser-mount.png differ
diff --git a/core/assets/baseparts/1605279968000.msch b/core/assets/baseparts/1605279968000.msch
new file mode 100644
index 0000000000..7eb0cd3b7e
Binary files /dev/null and b/core/assets/baseparts/1605279968000.msch differ
diff --git a/core/assets/baseparts/1605280014089.msch b/core/assets/baseparts/1605280014089.msch
new file mode 100644
index 0000000000..127bf95450
--- /dev/null
+++ b/core/assets/baseparts/1605280014089.msch
@@ -0,0 +1,2 @@
+mschx-ъ!EouٝB~/#EptN_m W)0םr[,ppZl!ck/zr4bjI2%_%JSmW!
+;pGkVNf Jj8PKG8&~m3bfqk'ab/([=[)
\ No newline at end of file
diff --git a/core/assets/baseparts/1605280470180.msch b/core/assets/baseparts/1605280470180.msch
new file mode 100644
index 0000000000..0936a4a315
--- /dev/null
+++ b/core/assets/baseparts/1605280470180.msch
@@ -0,0 +1 @@
+mschxMn E7^1"Ji?KCd$⁗Sp(UxoUrJ>hDßaј* Wj>N禢Yvxe]$997xIIw^ίjaIylTJ5RPDu*hQA4P3n,EF тWP.MSГl$>g-JFqGh$t}Ɛ1Z+XF}r6f1K,%T
\ No newline at end of file
diff --git a/core/assets/baseparts/1605280548230.msch b/core/assets/baseparts/1605280548230.msch
new file mode 100644
index 0000000000..a21848a1f2
--- /dev/null
+++ b/core/assets/baseparts/1605280548230.msch
@@ -0,0 +1,2 @@
+mschx-[n E;n8+B(B`i'q3s!pUj!ta)z0S^vh
ƨ?z:18\%#yt[F\V /'`БO`
+|CphxQNaێ6+}VpJ]>1$TBӕ{l/a3?k4A
\ No newline at end of file
diff --git a/core/assets/baseparts/1605281022715.msch b/core/assets/baseparts/1605281022715.msch
new file mode 100644
index 0000000000..5ea7a4b570
Binary files /dev/null and b/core/assets/baseparts/1605281022715.msch differ
diff --git a/core/assets/baseparts/1605281081581.msch b/core/assets/baseparts/1605281081581.msch
new file mode 100644
index 0000000000..ad93878cf2
Binary files /dev/null and b/core/assets/baseparts/1605281081581.msch differ
diff --git a/core/assets/baseparts/1605281121912.msch b/core/assets/baseparts/1605281121912.msch
new file mode 100644
index 0000000000..4c3235757c
--- /dev/null
+++ b/core/assets/baseparts/1605281121912.msch
@@ -0,0 +1,2 @@
+mschxM gj'[bL*4c|{gCB`vg?_vq
+a۔ky8[Z|WÂR8})!G5}Bc4>O;Ō7ͱ(_NW4\mJF "btk!ho:v]5BNɾC=Nw6;,tJ,;
\ No newline at end of file
diff --git a/core/assets/baseparts/1605281215706.msch b/core/assets/baseparts/1605281215706.msch
new file mode 100644
index 0000000000..27c39cfdf1
Binary files /dev/null and b/core/assets/baseparts/1605281215706.msch differ
diff --git a/core/assets/baseparts/1605281306347.msch b/core/assets/baseparts/1605281306347.msch
new file mode 100644
index 0000000000..1ef95d9ea5
Binary files /dev/null and b/core/assets/baseparts/1605281306347.msch differ
diff --git a/core/assets/baseparts/1605283900306.msch b/core/assets/baseparts/1605283900306.msch
new file mode 100644
index 0000000000..687c52017e
Binary files /dev/null and b/core/assets/baseparts/1605283900306.msch differ
diff --git a/core/assets/baseparts/1605284013998.msch b/core/assets/baseparts/1605284013998.msch
new file mode 100644
index 0000000000..31c282985c
Binary files /dev/null and b/core/assets/baseparts/1605284013998.msch differ
diff --git a/core/assets/baseparts/1605284595866.msch b/core/assets/baseparts/1605284595866.msch
new file mode 100644
index 0000000000..704fe6ed9c
Binary files /dev/null and b/core/assets/baseparts/1605284595866.msch differ
diff --git a/core/assets/baseparts/1605284660452.msch b/core/assets/baseparts/1605284660452.msch
new file mode 100644
index 0000000000..be36f1bc5b
Binary files /dev/null and b/core/assets/baseparts/1605284660452.msch differ
diff --git a/core/assets/baseparts/1605285080497.msch b/core/assets/baseparts/1605285080497.msch
new file mode 100644
index 0000000000..da0da93d56
Binary files /dev/null and b/core/assets/baseparts/1605285080497.msch differ
diff --git a/core/assets/baseparts/752927009641857205.msch b/core/assets/baseparts/752927009641857205.msch
deleted file mode 100644
index 7943fb1481..0000000000
Binary files a/core/assets/baseparts/752927009641857205.msch and /dev/null differ
diff --git a/core/assets/baseparts/752944648628076745.msch b/core/assets/baseparts/752944648628076745.msch
deleted file mode 100644
index 090ffe0155..0000000000
--- a/core/assets/baseparts/752944648628076745.msch
+++ /dev/null
@@ -1,2 +0,0 @@
-mschxMan mMtC`{]:&=zh`WiSOa!w)(A/zcyw6͢`^)HE']j!L7{4Q;6xE?ܡ>L{y_̇Ȗ$ʎj7Cn6ѳ!Ot-G+ĉo.?d
̏kr/8N4@Ϩd41SqÂc%
-ɏM
\ No newline at end of file
diff --git a/core/assets/baseparts/752955880965799966.msch b/core/assets/baseparts/752955880965799966.msch
index 4cda9322ea..d96fc42c38 100644
Binary files a/core/assets/baseparts/752955880965799966.msch and b/core/assets/baseparts/752955880965799966.msch differ
diff --git a/core/assets/baseparts/752965444419453010.msch b/core/assets/baseparts/752965444419453010.msch
deleted file mode 100644
index 008b1f015b..0000000000
Binary files a/core/assets/baseparts/752965444419453010.msch and /dev/null differ
diff --git a/core/assets/baseparts/753005578997071974.msch b/core/assets/baseparts/753005578997071974.msch
index 747c61f453..c7dd6dceaa 100644
Binary files a/core/assets/baseparts/753005578997071974.msch and b/core/assets/baseparts/753005578997071974.msch differ
diff --git a/core/assets/baseparts/753035709576642631.msch b/core/assets/baseparts/753035709576642631.msch
deleted file mode 100644
index c1955436b5..0000000000
Binary files a/core/assets/baseparts/753035709576642631.msch and /dev/null differ
diff --git a/core/assets/baseparts/753232120369119314.msch b/core/assets/baseparts/753232120369119314.msch
deleted file mode 100644
index f68d33fae5..0000000000
Binary files a/core/assets/baseparts/753232120369119314.msch and /dev/null differ
diff --git a/core/assets/baseparts/753653426667257906.msch b/core/assets/baseparts/753653426667257906.msch
deleted file mode 100644
index a5b60b4c99..0000000000
Binary files a/core/assets/baseparts/753653426667257906.msch and /dev/null differ
diff --git a/core/assets/baseparts/754024880747315332.msch b/core/assets/baseparts/754024880747315332.msch
new file mode 100644
index 0000000000..4bb358263a
--- /dev/null
+++ b/core/assets/baseparts/754024880747315332.msch
@@ -0,0 +1 @@
+mschxMkN0O6La)젴MJX;H|}l'8@pev>ci }&ܭq[@cL38?ok13J}s3ONɅ8ywKuMpfX{pS?-93?L[_7?-G*v+%o^5`8ԢtE;jQh:R$nQVEh!raBņw٠y-F:U:cQJQ+,<^p@qdb4V,挩{ʪʪʲʴPhFM#%ʎ}+7)>8WI
\ No newline at end of file
diff --git a/core/assets/baseparts/755588030362026104.msch b/core/assets/baseparts/755588030362026104.msch
new file mode 100644
index 0000000000..3603ec105e
--- /dev/null
+++ b/core/assets/baseparts/755588030362026104.msch
@@ -0,0 +1 @@
+mschx%]!OgC$D`m)aMdӿBr-zPqo{:|+O}g7.tW0ҹ<0a45@kLc7#Q2VJe_FJز0Kg`(L#-TѴBz;%IiV
\ No newline at end of file
diff --git a/core/assets/baseparts/759634196280508416.msch b/core/assets/baseparts/759634196280508416.msch
new file mode 100644
index 0000000000..cb0ff78983
--- /dev/null
+++ b/core/assets/baseparts/759634196280508416.msch
@@ -0,0 +1 @@
+mschx=͎0t:WXDϝwڼR |DOOw{;6))]~Fz9snn.>gX%̋2O/k{ңzMW?e+O?BEH]B, zmgd;"iS$T@IYxlI|yY4PB6zfWWԤdHY*)R'ʎÓlR` z3u:qo MIdI"5A/j*YBX(Z蠗Lr0`ifZ ۘxmވ?
\ No newline at end of file
diff --git a/core/assets/baseparts/772638841168461854.msch b/core/assets/baseparts/772638841168461854.msch
new file mode 100644
index 0000000000..b6af5101d8
Binary files /dev/null and b/core/assets/baseparts/772638841168461854.msch differ
diff --git a/core/assets/baseparts/772642175838191616.msch b/core/assets/baseparts/772642175838191616.msch
new file mode 100644
index 0000000000..a9d0084d20
Binary files /dev/null and b/core/assets/baseparts/772642175838191616.msch differ
diff --git a/core/assets/baseparts/772642264635670528.msch b/core/assets/baseparts/772642264635670528.msch
new file mode 100644
index 0000000000..a49b98f067
Binary files /dev/null and b/core/assets/baseparts/772642264635670528.msch differ
diff --git a/core/assets/baseparts/772642357136719872.msch b/core/assets/baseparts/772642357136719872.msch
new file mode 100644
index 0000000000..4b2bc355e2
Binary files /dev/null and b/core/assets/baseparts/772642357136719872.msch differ
diff --git a/core/assets/baseparts/772642606227390504.msch b/core/assets/baseparts/772642606227390504.msch
new file mode 100644
index 0000000000..c54d37f5ba
Binary files /dev/null and b/core/assets/baseparts/772642606227390504.msch differ
diff --git a/core/assets/baseparts/772642700713000960.msch b/core/assets/baseparts/772642700713000960.msch
new file mode 100644
index 0000000000..2fe878bddf
Binary files /dev/null and b/core/assets/baseparts/772642700713000960.msch differ
diff --git a/core/assets/baseparts/772754117604409344.msch b/core/assets/baseparts/772754117604409344.msch
new file mode 100644
index 0000000000..6b8699479c
Binary files /dev/null and b/core/assets/baseparts/772754117604409344.msch differ
diff --git a/core/assets/baseparts/772836684403834920.msch b/core/assets/baseparts/772836684403834920.msch
new file mode 100644
index 0000000000..5d9f41d58f
Binary files /dev/null and b/core/assets/baseparts/772836684403834920.msch differ
diff --git a/core/assets/baseparts/772859800051908639.msch b/core/assets/baseparts/772859800051908639.msch
new file mode 100644
index 0000000000..175d05b796
Binary files /dev/null and b/core/assets/baseparts/772859800051908639.msch differ
diff --git a/core/assets/baseparts/772860007561166868.msch b/core/assets/baseparts/772860007561166868.msch
new file mode 100644
index 0000000000..27267597ad
--- /dev/null
+++ b/core/assets/baseparts/772860007561166868.msch
@@ -0,0 +1,2 @@
+mschxMPn |IKđJ!VH,ۛww8@Yřxnw:Lg5EE*#{fN.gm)MTάgI]_Yӎ]n}rzY0^Y9jy]4_I-M5/K*Y9mqu}z5{C
T !P
(ЁdAYV
+"A
#P /Pm۾ mCɬ`v#I̍\U&}TGyTFz]n&5Z{%}zE˕\C@>gA_%(3T LlO!7=!9dmڐ!iߌTys
\ No newline at end of file
diff --git a/core/assets/baseparts/772860344174772254.msch b/core/assets/baseparts/772860344174772254.msch
new file mode 100644
index 0000000000..781cd94d46
Binary files /dev/null and b/core/assets/baseparts/772860344174772254.msch differ
diff --git a/core/assets/baseparts/772861253630165084.msch b/core/assets/baseparts/772861253630165084.msch
new file mode 100644
index 0000000000..e73ded4e03
--- /dev/null
+++ b/core/assets/baseparts/772861253630165084.msch
@@ -0,0 +1,3 @@
+mschx%kn IV9
;xS!a@M%F>fzƩp~:}bU$%M;
Ce~rT:^/6*#yA97ϧ#)%++5mꘌ5;f18ZfS4b0f52wOV$N+1(u
+U
+mIRuâ80GFĩ2шU;F~'b3xb`_ݾ+U
\ No newline at end of file
diff --git a/core/assets/baseparts/772861891516301334.msch b/core/assets/baseparts/772861891516301334.msch
new file mode 100644
index 0000000000..6e69e6b51a
Binary files /dev/null and b/core/assets/baseparts/772861891516301334.msch differ
diff --git a/core/assets/baseparts/772862221297909760.msch b/core/assets/baseparts/772862221297909760.msch
new file mode 100644
index 0000000000..83f138819d
Binary files /dev/null and b/core/assets/baseparts/772862221297909760.msch differ
diff --git a/core/assets/baseparts/772880624582787112.msch b/core/assets/baseparts/772880624582787112.msch
new file mode 100644
index 0000000000..0c260e50d1
Binary files /dev/null and b/core/assets/baseparts/772880624582787112.msch differ
diff --git a/core/assets/baseparts/772880838392152095.msch b/core/assets/baseparts/772880838392152095.msch
new file mode 100644
index 0000000000..5923b9dfe9
Binary files /dev/null and b/core/assets/baseparts/772880838392152095.msch differ
diff --git a/core/assets/baseparts/773972917637611530.msch b/core/assets/baseparts/773972917637611530.msch
new file mode 100644
index 0000000000..9c9c4778d6
Binary files /dev/null and b/core/assets/baseparts/773972917637611530.msch differ
diff --git a/core/assets/baseparts/773972978551226368.msch b/core/assets/baseparts/773972978551226368.msch
new file mode 100644
index 0000000000..7b74ef5219
--- /dev/null
+++ b/core/assets/baseparts/773972978551226368.msch
@@ -0,0 +1 @@
+mschx%] ֳm|3UievJ&1zezV}9N6/Ӷ״Gvm}N?Qv1xY(%""LBfҳ' }"! vCd*bLAA*M(BIղ|z!''xY(L!&`8
\ No newline at end of file
diff --git a/core/assets/baseparts/773973064429993996.msch b/core/assets/baseparts/773973064429993996.msch
new file mode 100644
index 0000000000..c383e58c3f
--- /dev/null
+++ b/core/assets/baseparts/773973064429993996.msch
@@ -0,0 +1 @@
+mschxEmj0tڴFΐinIcX,xAaz-oa/~7m)5E=SFnK˘#ǙïÖָډ\\@
[~quO-17}CB7!F}L3Z.>=Bks2\qg`W-
+PIh3e.e-k+0Pwp(x&
\ No newline at end of file
diff --git a/core/assets/baseparts/773974064850272309.msch b/core/assets/baseparts/773974064850272309.msch
new file mode 100644
index 0000000000..b9109ca782
Binary files /dev/null and b/core/assets/baseparts/773974064850272309.msch differ
diff --git a/core/assets/baseparts/773974140545531924.msch b/core/assets/baseparts/773974140545531924.msch
new file mode 100644
index 0000000000..5a1570cd07
Binary files /dev/null and b/core/assets/baseparts/773974140545531924.msch differ
diff --git a/core/assets/baseparts/773976628883619840.msch b/core/assets/baseparts/773976628883619840.msch
new file mode 100644
index 0000000000..3536999ddf
Binary files /dev/null and b/core/assets/baseparts/773976628883619840.msch differ
diff --git a/core/assets/baseparts/774001709088505867.msch b/core/assets/baseparts/774001709088505867.msch
new file mode 100644
index 0000000000..432907e211
Binary files /dev/null and b/core/assets/baseparts/774001709088505867.msch differ
diff --git a/core/assets/baseparts/774002215428816936.msch b/core/assets/baseparts/774002215428816936.msch
new file mode 100644
index 0000000000..8c301a217d
Binary files /dev/null and b/core/assets/baseparts/774002215428816936.msch differ
diff --git a/core/assets/baseparts/774013552553754635.msch b/core/assets/baseparts/774013552553754635.msch
new file mode 100644
index 0000000000..cb900f4073
Binary files /dev/null and b/core/assets/baseparts/774013552553754635.msch differ
diff --git a/core/assets/bloomshaders/alpha_bloom.frag b/core/assets/bloomshaders/alpha_bloom.frag
index a48233ded0..b3475ff259 100644
--- a/core/assets/bloomshaders/alpha_bloom.frag
+++ b/core/assets/bloomshaders/alpha_bloom.frag
@@ -10,4 +10,4 @@ void main(){
vec4 bloom = texture2D(u_texture1, v_texCoords) * BloomIntensity;
original = original * (vec4(1.0) - bloom);
gl_FragColor = original + bloom;
-}
\ No newline at end of file
+}
diff --git a/core/assets/bloomshaders/alpha_threshold.frag b/core/assets/bloomshaders/alpha_threshold.frag
index b2ffe580a6..fc910bed6c 100644
--- a/core/assets/bloomshaders/alpha_threshold.frag
+++ b/core/assets/bloomshaders/alpha_threshold.frag
@@ -11,4 +11,4 @@ void main(){
gl_FragColor = vec4(0.0);
}
//gl_FragColor = (texture2D(u_texture0, v_texCoords) - vec4(threshold.r)) * threshold.g;
-}
\ No newline at end of file
+}
diff --git a/core/assets/bloomshaders/bloom.frag b/core/assets/bloomshaders/bloom.frag
index 65abbe56d1..e6bac1f0bf 100644
--- a/core/assets/bloomshaders/bloom.frag
+++ b/core/assets/bloomshaders/bloom.frag
@@ -10,4 +10,4 @@ void main(){
vec4 bloom = texture2D(u_texture1, v_texCoords) * BloomIntensity;
original = original * (vec4(1.0) - bloom);
gl_FragColor = original + bloom;
-}
\ No newline at end of file
+}
diff --git a/core/assets/bloomshaders/blurspace.vert b/core/assets/bloomshaders/blurspace.vert
index bc16d0b2a7..e766d21cee 100644
--- a/core/assets/bloomshaders/blurspace.vert
+++ b/core/assets/bloomshaders/blurspace.vert
@@ -23,4 +23,4 @@ void main(){
v_texCoords4 = a_texCoord0 + f;
gl_Position = a_position;
-}
\ No newline at end of file
+}
diff --git a/core/assets/bloomshaders/maskedtreshold.frag b/core/assets/bloomshaders/maskedtreshold.frag
index ec09b4435a..ec2634ef3f 100644
--- a/core/assets/bloomshaders/maskedtreshold.frag
+++ b/core/assets/bloomshaders/maskedtreshold.frag
@@ -6,4 +6,4 @@ void main(){
vec4 tex = texture2D(u_texture0, v_texCoords);
vec3 colors = (tex.rgb - threshold.r) * threshold.g * tex.a;
gl_FragColor = vec4(colors, tex.a);
-}
\ No newline at end of file
+}
diff --git a/core/assets/bloomshaders/screenspace.vert b/core/assets/bloomshaders/screenspace.vert
index 1c57ff8852..af368efbb4 100644
--- a/core/assets/bloomshaders/screenspace.vert
+++ b/core/assets/bloomshaders/screenspace.vert
@@ -5,4 +5,4 @@ varying vec2 v_texCoords;
void main(){
v_texCoords = a_texCoord0;
gl_Position = a_position;
-}
\ No newline at end of file
+}
diff --git a/core/assets/bloomshaders/threshold.frag b/core/assets/bloomshaders/threshold.frag
index 932bf77c5d..705d6987d5 100644
--- a/core/assets/bloomshaders/threshold.frag
+++ b/core/assets/bloomshaders/threshold.frag
@@ -4,4 +4,4 @@ varying mediump vec2 v_texCoords;
void main(){
gl_FragColor.rgb = (texture2D(u_texture0, v_texCoords).rgb - vec3(threshold.x)) * threshold.y;
-}
\ No newline at end of file
+}
diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties
index f7a3a6dcfe..82654724eb 100644
--- a/core/assets/bundles/bundle.properties
+++ b/core/assets/bundles/bundle.properties
@@ -10,18 +10,21 @@ link.dev-builds.description = Unstable development builds
link.trello.description = Official Trello board for planned features
link.itch.io.description = itch.io page with PC downloads
link.google-play.description = Google Play store listing
-link.f-droid.description = F-Droid catalogue listing
+link.f-droid.description = F-Droid listing
link.wiki.description = Official Mindustry wiki
link.suggestions.description = Suggest new features
linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
screenshot = Screenshot saved to {0}
screenshot.invalid = Map too large, potentially not enough memory for screenshot.
gameover = Game Over
+gameover.disconnect = Disconnect
gameover.pvp = The[accent] {0}[] team is victorious!
+gameover.waiting = [accent]Waiting for next map...
highscore = [accent]New highscore!
copied = Copied.
-indev.popup = [accent]v6[] is currently in [accent]beta[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- SFX and music are unfinished/missing\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
+indev.popup = [accent]v6[] is currently in [accent]beta[].\n[lightgray]This means:[]\n[scarlet]- The campaign is unfinished[]\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
indev.notready = This part of the game isn't ready yet
+indev.campaign = [accent]You've reached the end of the campaign![]\n\nThis is as far as the content goes. Interplanetary travel will be added in future updates.
load.sound = Sounds
load.map = Maps
@@ -57,6 +60,7 @@ schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
+stats = Stats
stat.wave = Waves Defeated:[accent] {0}
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0}
stat.built = Buildings Built:[accent] {0}
@@ -189,6 +193,10 @@ servers.local = Local Servers
servers.remote = Remote Servers
servers.global = Community Servers
+servers.showhidden = Show Hidden Servers
+server.shown = Shown
+server.hidden = Hidden
+
trace = Trace Player
trace.playername = Player name: [accent]{0}
trace.ip = IP: [accent]{0}
@@ -267,6 +275,9 @@ cancel = Cancel
openlink = Open Link
copylink = Copy Link
back = Back
+crash.export = Export Crash Logs
+crash.none = No crash logs found.
+crash.exported = Crash logs exported.
data.export = Export Data
data.import = Import Data
data.openfolder = Open Data Folder
@@ -283,6 +294,7 @@ cancelbuilding = [accent][[{0}][] to clear plan
selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
+showui = UI hidden.\nPress [accent][[{0}][] to show UI.
wave = [accent]Wave {0}
wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Wave in {0}
@@ -290,6 +302,8 @@ wave.waveInProgress = [lightgray]Wave in progress
waiting = [lightgray]Waiting...
waiting.players = Waiting for players...
wave.enemies = [lightgray]{0} Enemies Remaining
+wave.enemycores = [accent]{0}[lightgray] Enemy Cores
+wave.enemycore = [accent]{0}[lightgray] Enemy Core
wave.enemy = [lightgray]{0} Enemy Remaining
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
@@ -421,6 +435,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Ore Median
@@ -445,6 +460,7 @@ filter.option.amount = Amount
filter.option.block = Block
filter.option.floor = Floor
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Wall
filter.option.ore = Ore
filter.option.floor2 = Secondary Floor
@@ -461,7 +477,9 @@ load = Load
save = Save
fps = FPS: {0}
ping = Ping: {0}ms
-language.restart = Please restart your game for the language settings to take effect.
+memory = Mem: {0}mb
+memory2 = Mem:\n {0}mb +\n {1}mb
+language.restart = Restart your game for the language settings to take effect.
settings = Settings
tutorial = Tutorial
tutorial.retake = Re-Take Tutorial
@@ -475,27 +493,23 @@ complete = [lightgray]Complete:
requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
+requirement.produce = Produce {0}
requirement.capture = Capture {0}
-bestwave = [lightgray]Best Wave: {0}
launch.text = Launch
research.multiplayer = Only the host can research items.
+map.multiplayer = Only the host can view sectors.
uncover = Uncover
configure = Configure Loadout
-#TODO
+
loadout = Loadout
resources = Resources
bannedblocks = Banned Blocks
addall = Add All
+launch.from = Launching From: [accent]{0}
launch.destination = Destination: {0}
configure.invalid = Amount must be a number between 0 and {0}.
-zone.unlocked = [lightgray]{0} unlocked.
-zone.requirement.complete = Requirement for {0} completed:[lightgray]\n{1}
-zone.resources = [lightgray]Resources Detected:
-zone.objective = [lightgray]Objective: [accent]{0}
-zone.objective.survival = Survive
-zone.objective.attack = Destroy Enemy Core
add = Add...
-boss.health = Boss Health
+boss.health = Guardian Health
connectfail = [scarlet]Connection error:\n\n[accent]{0}
error.unreachable = Server unreachable.\nIs the address spelled correctly?
@@ -517,18 +531,41 @@ weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
sectors.production = Production:
+sectors.export = Export:
+sectors.time = Time:
+sectors.threat = Threat:
+sectors.wave = Wave:
sectors.stored = Stored:
sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
sectors.rename = Rename Sector
+sectors.enemybase = [scarlet]Enemy Base
+sectors.vulnerable = [scarlet]Vulnerable
+sectors.underattack = [scarlet]Under attack! [accent]{0}% damaged
+sectors.survives = [accent]Survives {0} waves
+sectors.go = Go
+sector.curcapture = Sector Captured
+sector.curlost = Sector Lost
+sector.missingresources = [scarlet]Insufficient Core Resources
+sector.attacked = Sector [accent]{0}[white] under attack!
+sector.lost = Sector [accent]{0}[white] lost!
+#note: the missing space in the line below is intentional
+sector.captured = Sector [accent]{0}[white]captured!
+
+threat.low = Low
+threat.medium = Medium
+threat.high = High
+threat.extreme = Extreme
+threat.eradication = Eradication
+
+planets = Planets
planet.serpulo.name = Serpulo
-#TODO better name
planet.sun.name = Sun
-#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway
+sector.impact0078.name = Impact 0078
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
sector.frozenForest.name = Frozen Forest
@@ -540,10 +577,10 @@ sector.overgrowth.name = Overgrowth
sector.tarFields.name = Tar Fields
sector.saltFlats.name = Salt Flats
sector.fungalPass.name = Fungal Pass
-
-#unused
-#sector.impact0078.name = Impact 0078
-#sector.crags.name = Crags
+sector.biomassFacility.name = Biomass Synthesis Facility
+sector.windsweptIslands.name = Windswept Islands
+sector.extractionOutpost.name = Extraction Outpost
+sector.planetaryTerminal.name = Planetary Launch Terminal
sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
@@ -551,7 +588,7 @@ sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats
sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
+sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Mace units. Destroy it.
sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
@@ -571,10 +608,13 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Paused >
clear = Clear
banned = [scarlet]Banned
-unplaceable.sectorcaptured = [scarlet]Requires captured sector
yes = Yes
no = No
info.title = Info
@@ -584,6 +624,7 @@ unit.nobuild = [scarlet]Unit can't build
lastaccessed = [lightgray]Last Accessed: {0}
block.unknown = [lightgray]???
+stat.description = Purpose
stat.input = Input
stat.output = Output
stat.booster = Booster
@@ -611,6 +652,8 @@ stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
+stat.weapons = Weapons
+stat.bullet = Bullet
stat.speedincrease = Speed Increase
stat.range = Range
stat.drilltier = Drillables
@@ -633,7 +676,7 @@ stat.lightningchance = Lightning Chance
stat.lightningdamage = Lightning Damage
stat.flammability = Flammability
stat.radioactivity = Radioactivity
-stat.heatcapacity = HeatCapacity
+stat.heatcapacity = Heat Capacity
stat.viscosity = Viscosity
stat.temperature = Temperature
stat.speed = Speed
@@ -643,12 +686,15 @@ stat.minetier = Mine Tier
stat.payloadcapacity = Payload Capacity
stat.commandlimit = Command Limit
stat.abilities = Abilities
+stat.canboost = Can Boost
+stat.flying = Flying
ability.forcefield = Force Field
ability.repairfield = Repair Field
ability.statusfield = Status Field
ability.unitspawn = {0} Factory
ability.shieldregenfield = Shield Regen Field
+ability.movelightning = Movement Lightning
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -677,12 +723,14 @@ units.processorcontrol = [lightgray]Processor Controlled
bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
+bullet.sapping = [stat]sapping
bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.pierce = [stat]{0}[lightgray]x pierce
bullet.infinitepierce = [stat]pierce
+bullet.healpercent = [stat]{0}[lightgray]% healing
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
@@ -707,12 +755,13 @@ unit.items = items
unit.thousands = k
unit.millions = mil
unit.billions = b
+category.purpose = Purpose
category.general = General
category.power = Power
category.liquids = Liquids
category.items = Items
category.crafting = Input/Output
-category.shooting = Shooting
+category.function = Function
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows
@@ -720,8 +769,9 @@ setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate
+setting.backgroundpause.name = Pause In Background
setting.buildautopause.name = Auto-Pause Building
-setting.animatedwater.name = Animated Fluids
+setting.animatedwater.name = Animated Surfaces
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
setting.playerindicators.name = Player Indicators
@@ -748,7 +798,6 @@ setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.sensitivity.name = Controller Sensitivity
setting.saveinterval.name = Save Interval
setting.seconds = {0} seconds
-setting.blockselecttimeout.name = Block Select Timeout
setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required)
@@ -757,7 +806,7 @@ setting.smoothcamera.name = Smooth Camera
setting.vsync.name = VSync
setting.pixelate.name = Pixelate
setting.minimap.name = Show Minimap
-setting.coreitems.name = Display Core Items (WIP)
+setting.coreitems.name = Display Core Items
setting.position.name = Show Player Position
setting.musicvol.name = Music Volume
setting.atmosphere.name = Show Planet Atmosphere
@@ -837,6 +886,8 @@ keybind.menu.name = Menu
keybind.pause.name = Pause
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
+keybind.planet_map.name = Planet Map
+keybind.research.name = Research
keybind.chat.name = Chat
keybind.player_list.name = Player List
keybind.console.name = Console
@@ -900,6 +951,7 @@ content.item.name = Items
content.liquid.name = Liquids
content.unit.name = Units
content.block.name = Blocks
+content.sector.name = Sectors
item.copper.name = Copper
item.lead.name = Lead
@@ -960,6 +1012,7 @@ block.resupply-point.name = Resupply Point
block.parallax.name = Parallax
block.cliff.name = Cliff
block.sand-boulder.name = Sand Boulder
+block.basalt-boulder.name = Basalt Boulder
block.grass.name = Grass
block.slag.name = Slag
block.space.name = Space
@@ -1057,7 +1110,6 @@ block.conveyor.name = Conveyor
block.titanium-conveyor.name = Titanium Conveyor
block.plastanium-conveyor.name = Plastanium Conveyor
block.armored-conveyor.name = Armored Conveyor
-block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyor belts.
block.junction.name = Junction
block.router.name = Router
block.distributor.name = Distributor
@@ -1065,7 +1117,6 @@ block.sorter.name = Sorter
block.inverted-sorter.name = Inverted Sorter
block.message.name = Message
block.illuminator.name = Illuminator
-block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Overflow Gate
block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silicon Smelter
@@ -1161,6 +1212,11 @@ block.payload-router.name = Payload Router
block.disassembler.name = Disassembler
block.silicon-crucible.name = Silicon Crucible
block.overdrive-dome.name = Overdrive Dome
+#experimental, may be removed
+block.block-forge.name = Block Forge
+block.block-loader.name = Block Loader
+block.block-unloader.name = Block Unloader
+block.interplanetary-accelerator.name = Interplanetary Accelerator
block.switch.name = Switch
block.micro-processor.name = Micro Processor
@@ -1179,158 +1235,243 @@ team.derelict.name = derelict
team.green.name = green
team.purple.name = purple
-tutorial.next = [lightgray]
-tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
-tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
-tutorial.drill = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\nYou can also select the drill by tapping [accent][[2][] then [accent][[1][] quickly, regardless of which tab is open.\n[accent]Right-click[] to stop building.
-tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
-tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
-tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\nUse the scrollwheel to rotate blocks before placing them.\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
-tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
-tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base.
-tutorial.drillturret = Duo turrets require[accent] copper ammo[] to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1
-tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.
-tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause.
-tutorial.unpause = Now press space again to unpause.
-tutorial.unpause.mobile = Now press it again to unpause.
-tutorial.breaking = Blocks frequently need to be destroyed.\n[accent]Hold down right-click[] to destroy all blocks in a selection.[]\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
-tutorial.breaking.mobile = Blocks frequently need to be destroyed.\n[accent]Select deconstruction mode[], then tap a block to begin breaking it.\nDestroy an area by holding down your finger for a few seconds[] and dragging in a direction.\nPress the checkmark button to confirm breaking.\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
-tutorial.withdraw = In some situations, taking items directly from blocks is necessary.\nTo do this, [accent]tap a block[] with items in it, then [accent]tap the item[] in the inventory.\nMultiple items can be withdrawn by [accent]tapping and holding[].\n\n[accent]Withdraw some copper from the core.[]
-tutorial.deposit = Deposit items into blocks by dragging from your ship to the destination block.\n\n[accent]Deposit your copper back into the core.[]
-tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves.[accent] Click[] to shoot.\nBuild more turrets and drills. Mine more copper.
-tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
-tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese obtained resources can then be used to research new technology.\n\n[accent]Press the launch button.
+hint.skip = Skip
+hint.desktopMove = Use [accent][[WASD][] to move.
+hint.zoom = [accent]Scroll[] to zoom in or out.
+hint.mine = Move near the \uf8c4 copper ore and [accent]tap[] it to mine manually.
+hint.desktopShoot = [accent][[Left-click][] to shoot.
+hint.depositItems = To transfer items, drag from your ship to the core.
+hint.respawn = To respawn as a ship, press [accent][[V][].
+hint.respawn.mobile = You have switched control a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
+hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
+hint.placeDrill = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and click on a copper patch to place it.
+hint.placeDrill.mobile = Select the \ue85e[accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and tap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+hint.placeConveyor = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+hint.placeConveyor.mobile = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nHold down your finger for a second and drag to place multiple conveyors.
+hint.placeTurret = Place \uf861 [accent]Turrets[] to defend your base from enemies.\n\nTurrets require ammo - in this case, \uf838copper.\nUse conveyors and drills to supply them.
+hint.breaking = [accent]Right-click[] and drag to break blocks.
+hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.research = Use the \ue875 [accent]Research[] button to research new technology.
+hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
+hint.unitControl.mobile = [accent][Double-tap[] to control friendly units or turrets.
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
+hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
+hint.command = Press [accent][[G][] to command nearby units into formation.
+hint.command.mobile = [accent][[Double-tap][] your unit to command nearby units into formation.
+hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
+hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
+hint.payloadDrop = Press [accent]][] to drop a payload.
+hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
+hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
+hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
-item.copper.description = The most basic structural material. Used extensively in all types of blocks.
-item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
-item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
-item.graphite.description = Mineralized carbon, used for ammunition and electrical components.
-item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
-item.coal.description = Fossilized plant matter, formed long before the seeding event. Used extensively for fuel and resource production.
-item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
-item.thorium.description = A dense, radioactive metal used as structural support and nuclear fuel.
-item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals.
-item.silicon.description = An extremely useful semiconductor. Applications in solar panels, complex electronics and homing turret ammunition.
-item.plastanium.description = A light, ductile material used in advanced aircraft and fragmentation ammunition.
-item.phase-fabric.description = A near-weightless substance used in advanced electronics and self-repairing technology.
-item.surge-alloy.description = An advanced alloy with unique electrical properties.
-item.spore-pod.description = A pod of synthetic spores, synthesized from atmospheric concentrations for industrial purposes. Used for conversion into oil, explosives and fuel.
-item.blast-compound.description = An unstable compound used in bombs and explosives. Synthesized from spore pods and other volatile substances. Use as fuel is not advised.
-item.pyratite.description = An extremely flammable substance used in incendiary weapons.
-liquid.water.description = The most useful liquid. Commonly used for cooling machines and waste processing.
-liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
-liquid.oil.description = A liquid used in advanced material production. Can be converted into coal as fuel, or sprayed and set on fire as a weapon.
-liquid.cryofluid.description = An inert, non-corrosive liquid created from water and titanium. Has extremely high heat capacity. Extensively used as coolant.
+item.copper.description = Used in all types of construction and ammunition.
+item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced.
+item.lead.description = Used in liquid transportation and electrical structures.
+item.lead.details = Dense. Inert. Extensively used in batteries.\nNote: Likely toxic to biological life forms. Not that there are many left here.
+item.metaglass.description = Used in liquid distribution/storage structures.
+item.graphite.description = Used in electrical components and turret ammunition.
+item.sand.description = Used for production of other refined materials.
+item.coal.description = Used for fuel and refined material production.
+item.coal.details = Appears to be fossilized plant matter, formed long before the seeding event.
+item.titanium.description = Used in liquid transportation structures, drills and aircraft.
+item.thorium.description = Used in durable structures and as nuclear fuel.
+item.scrap.description = Used in Melters and Pulverizers for refining into other materials.
+item.scrap.details = Leftover remnants of old structures and units.
+item.silicon.description = Used in solar panels, complex electronics and homing turret ammunition.
+item.plastanium.description = Used in advanced units, insulation and fragmentation ammunition.
+item.phase-fabric.description = Used in advanced electronics and self-repairing structures.
+item.surge-alloy.description = Used in advanced weaponry and reactive defense structures.
+item.spore-pod.description = Used for conversion into oil, explosives and fuel.
+item.spore-pod.details = Spores. Likely a synthetic life form. Emit gases toxic to other biological life. Extremely invasive. Highly flammable in certain conditions.
+item.blast-compound.description = Used in bombs and explosive ammunition.
+item.pyratite.description = Used in incendiary weapons and combustion-fueled generators.
-block.message.description = Stores a message. Used for communication between allies.
-block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
-block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
-block.silicon-smelter.description = Reduces sand with pure coal. Produces silicon.
-block.kiln.description = Smelts sand and lead into the compound known as metaglass. Requires small amounts of power to run.
+liquid.water.description = Used for cooling machines and waste processing.
+liquid.slag.description = Refined in separators into constituent metals, or sprayed at enemies as a weapon.
+liquid.oil.description = Used in advanced material production and as incendiary ammunition.
+liquid.cryofluid.description = Used as coolant in reactors, turrets and factories.
+
+block.resupply-point.description = Resupplies nearby units with copper ammunition. Not compatible with units that require battery power.
+block.armored-conveyor.description = Moves items forward. Does not accept inputs from the sides.
+block.illuminator.description = Emits light.
+block.message.description = Stores a message for communication between allies.
+block.graphite-press.description = Compresses coal into graphite.
+block.multi-press.description = Compresses coal into graphite. Requires water as coolant.
+block.silicon-smelter.description = Refines silicon from sand and coal.
+block.kiln.description = Smelts sand and lead into metaglass.
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
-block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
-block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
-block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
-block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
-block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
-block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.
-block.separator.description = Separates slag into its mineral components. Outputs the cooled result.
-block.spore-press.description = Compresses spore pods under extreme pressure to synthesize oil.
+block.phase-weaver.description = Synthesizes phase fabric from thorium and sand.
+block.alloy-smelter.description = Fuses titanium, lead, silicon and copper into surge alloy.
+block.cryofluid-mixer.description = Mixes water and fine titanium powder to produce cryofluid.
+block.blast-mixer.description = Produces blast compound from pyratite and spore pods.
+block.pyratite-mixer.description = Mixes coal, lead and sand into pyratite.
+block.melter.description = Melts down scrap into slag.
+block.separator.description = Separates slag into its mineral components.
+block.spore-press.description = Compresses spore pods into oil.
block.pulverizer.description = Crushes scrap into fine sand.
-block.coal-centrifuge.description = Solidifes oil into chunks of coal.
-block.incinerator.description = Vaporizes any excess item or liquid it receives.
-block.power-void.description = Voids all power inputted into it. Sandbox only.
+block.coal-centrifuge.description = Transforms oil into coal.
+block.incinerator.description = Vaporizes any item or liquid it receives.
+block.power-void.description = Voids all power inputted. Sandbox only.
block.power-source.description = Infinitely outputs power. Sandbox only.
block.item-source.description = Infinitely outputs items. Sandbox only.
block.item-void.description = Destroys any items. Sandbox only.
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
block.liquid-void.description = Removes any liquids. Sandbox only.
-block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
-block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
-block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
-block.titanium-wall-large.description = A moderately strong defensive block.\nProvides moderate protection from enemies.\nSpans multiple tiles.
-block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
-block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
-block.thorium-wall.description = A strong defensive block.\nDecent protection from enemies.
-block.thorium-wall-large.description = A strong defensive block.\nDecent protection from enemies.\nSpans multiple tiles.
-block.phase-wall.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.
-block.phase-wall-large.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.\nSpans multiple tiles.
-block.surge-wall.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly.
-block.surge-wall-large.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly.\nSpans multiple tiles.
-block.door.description = A small door. Can be opened or closed by tapping.
-block.door-large.description = A large door. Can be opened and closed by tapping.\nSpans multiple tiles.
-block.mender.description = Periodically repairs blocks in its vicinity. Keeps defenses repaired in-between waves.\nOptionally uses silicon to boost range and efficiency.
-block.mend-projector.description = An upgraded version of the Mender. Repairs blocks in its vicinity.\nOptionally uses phase fabric to boost range and efficiency.
+block.copper-wall.description = Protects structures from enemy projectiles.
+block.copper-wall-large.description = Protects structures from enemy projectiles.
+block.titanium-wall.description = Protects structures from enemy projectiles.
+block.titanium-wall-large.description = Protects structures from enemy projectiles.
+block.plastanium-wall.description = Protects structures from enemy projectiles. Absorbs lasers and electric arcs. Blocks automatic power connections.
+block.plastanium-wall-large.description = Protects structures from enemy projectiles. Absorbs lasers and electric arcs. Blocks automatic power connections.
+block.thorium-wall.description = Protects structures from enemy projectiles.
+block.thorium-wall-large.description = Protects structures from enemy projectiles.
+block.phase-wall.description = Protects structures from enemy projectiles, reflecting most bullets upon impact.
+block.phase-wall-large.description = Protects structures from enemy projectiles, reflecting most bullets upon impact.
+block.surge-wall.description = Protects structures from enemy projectiles, periodically releasing electric arcs upon contact.
+block.surge-wall-large.description = Protects structures from enemy projectiles, periodically releasing electric arcs upon contact.
+block.door.description = A wall that can be opened and closed.
+block.door-large.description = A wall that can be opened and closed.
+block.mender.description = Periodically repairs blocks in its vicinity.\nOptionally uses silicon to boost range and efficiency.
+block.mend-projector.description = Repairs blocks in its vicinity.\nOptionally uses phase fabric to boost range and efficiency.
block.overdrive-projector.description = Increases the speed of nearby buildings.\nOptionally uses phase fabric to boost range and efficiency.
-block.force-projector.description = Creates a hexagonal force field around itself, protecting buildings and units inside from damage.\nOverheats if too much damage is sustained. Optionally uses coolant to prevent overheating. Phase fabric can be used to increase shield size.
-block.shock-mine.description = Damages enemies stepping on the mine. Nearly invisible to the enemy.
-block.conveyor.description = Basic item transport block. Moves items forward and automatically deposits them into blocks. Rotatable.
-block.titanium-conveyor.description = Advanced item transport block. Moves items faster than standard conveyors.
-block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front.\nRequires multiple loading and unloading points for peak throughput.
-block.junction.description = Acts as a bridge for two crossing conveyor belts. Useful in situations with two different conveyors carrying different materials to different locations.
-block.bridge-conveyor.description = Advanced item transport block. Allows transporting items over up to 3 tiles of any terrain or building.
-block.phase-conveyor.description = Advanced item transport block. Uses power to teleport items to a connected phase conveyor over several tiles.
-block.sorter.description = Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
-block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
-block.router.description = Accepts items, then outputs them to up to 3 other directions equally. Useful for splitting the materials from one source to multiple targets.\n\n[scarlet]Never use next to production inputs, as they will get clogged by output.[]
-block.distributor.description = An advanced router. Splits items to up to 7 other directions equally.
-block.overflow-gate.description = Only outputs to the left and right if the front path is blocked.
-block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
-block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate.
-block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
-block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power.
-block.thermal-pump.description = The ultimate pump.
-block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
-block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
-block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nDoes not leak.
-block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
-block.liquid-tank.description = Stores a large amount of liquids. Use for creating buffers in situations with non-constant demand of materials or as a safeguard for cooling vital blocks.
-block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
-block.bridge-conduit.description = Advanced liquid transport block. Allows transporting liquids over up to 3 tiles of any terrain or building.
-block.phase-conduit.description = Advanced liquid transport block. Uses power to teleport liquids to a connected phase conduit over several tiles.
+block.force-projector.description = Creates a hexagonal force field around itself, protecting buildings and units inside from damage.\nOverheats if too much damage is sustained. Optionally uses coolant to prevent overheating. Phase fabric increases shield size.
+block.shock-mine.description = Releases electric arcs upon enemy unit contact.
+block.conveyor.description = Transports items forward.
+block.titanium-conveyor.description = Transports items forward. Faster than a standard conveyor.
+block.plastanium-conveyor.description = Transports items forward in batches. Accepts items at the back, and unloads them in three directions at the front. Requires multiple loading and unloading points for peak throughput.
+block.junction.description = Acts as a bridge for two crossing conveyor belts.
+block.bridge-conveyor.description = Transports items over terrain or buildings.
+block.phase-conveyor.description = Instantly transports items over terrain or buildings. Longer range than the item bridge, but requires power.
+block.sorter.description = If an input item matches the selection, it passes forward. Otherwise, the item is outputted to the left and right.
+block.inverted-sorter.description = Similar to a standard sorter, but outputs selected items to the sides instead.
+block.router.description = Distributes input items to 3 output directions equally.
+block.router.details = A necessary evil. Using next to production inputs is not advised, as they will get clogged by output.
+block.distributor.description = Distributes input items to 7 output directions equally.
+block.overflow-gate.description = Only outputs items to the left and right if the front path is blocked. Cannot be used next to other gates.
+block.underflow-gate.description = Opposite of an overflow gate. Outputs to the front if the left and right paths are blocked. Cannot be used next to other gates.
+block.mass-driver.description = Long-range item transport structure. Collects batches of items and shoots them to other mass drivers.
+block.mechanical-pump.description = Pumps and outputs liquids. Does not require power.
+block.rotary-pump.description = Pumps and outputs liquids. Requires power.
+block.thermal-pump.description = Pumps and outputs liquids.
+block.conduit.description = Moves liquids forward. Used in conjunction with pumps and other conduits.
+block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits.
+block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak.
+block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid.
+block.liquid-tank.description = Stores a large amount of liquid. Outputs to all sides, similarly to a liquid router.
+block.liquid-junction.description = Acts as a bridge for two crossing conduits.
+block.bridge-conduit.description = Transports liquids over terrain or buildings.
+block.phase-conduit.description = Transports liquids over terrain or buildings. Longer range than the bridge conduit, but requires power.
block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks.
block.power-node-large.description = An advanced power node with greater range.
-block.surge-tower.description = An extremely long-range power node with fewer available connections.
-block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
-block.battery.description = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit.
-block.battery-large.description = Stores much more power than a regular battery.
+block.surge-tower.description = A long-range power node with fewer available connections.
+block.diode.description = Moves battery power in one direction, but only if the other side has less power stored.
+block.battery.description = Stores power in times of surplus energy. Outputs power in times of deficit.
+block.battery-large.description = Stores power in times of surplus energy. Outputs power in times of deficit. Higher capacity 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.steam-generator.description = An advanced combustion generator. More efficient, but requires additional water for generating steam.
+block.steam-generator.description = Generates power by burning flammable materials and converting water to 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.rtg-generator.description = Uses the heat of decaying radioactive compounds to produce energy at a slow rate.
block.solar-panel.description = Provides a small amount of power from the sun.
-block.solar-panel-large.description = A significantly more efficient version of the standard solar panel.
-block.thorium-reactor.description = Generates significant amounts of power from thorium. Requires constant cooling. Will explode violently if insufficient amounts of coolant are supplied. Power output depends on fullness, with base power generated at full capacity.
-block.impact-reactor.description = An advanced generator, capable of creating massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process.
-block.mechanical-drill.description = A cheap drill. When placed on appropriate tiles, outputs items at a slow pace indefinitely. Only capable of mining basic resources.
+block.solar-panel-large.description = Provides a small amount of power from the sun. More efficient than the standard solar panel.
+block.thorium-reactor.description = Generates significant amounts of power from thorium. Requires constant cooling. Will explode violently if insufficient amounts of coolant are supplied.
+block.impact-reactor.description = Creates massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process.
+block.mechanical-drill.description = When placed on ore, outputs items at a slow pace indefinitely. Only capable of mining basic resources.
block.pneumatic-drill.description = An improved drill, capable of mining titanium. Mines at a faster pace than a mechanical drill.
block.laser-drill.description = Allows drilling even faster through laser technology, but requires power. Capable of mining thorium.
block.blast-drill.description = The ultimate drill. Requires large amounts of power.
block.water-extractor.description = Extracts groundwater. Used in locations with no surface water available.
-block.cultivator.description = Cultivates tiny concentrations of spores in the atmosphere into industry-ready pods.
+block.cultivator.description = Cultivates tiny concentrations of atmospheric spores into spore pods.
+block.cultivator.details = Recovered technology. Used to produce massive amounts of biomass as efficiently as possible. Likely the initial incubator of the spores now covering Serpulo.
block.oil-extractor.description = Uses large amounts of power, sand and water to drill for oil.
-block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen.
-block.core-foundation.description = The second version of the core. Better armored. Stores more resources.
-block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources.
-block.vault.description = Stores a large amount of items of each type. An unloader block can be used to retrieve items from the vault.
-block.container.description = Stores a small amount of items of each type. An unloader block can be used to retrieve items from the container.
-block.unloader.description = Unloads items from any nearby non-transportation block. The type of item to be unloaded can be changed by tapping.
-block.launch-pad.description = Launches batches of items without any need for a core launch.
-block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently.
-block.duo.description = A small, cheap turret. Useful against ground units.
-block.scatter.description = An essential anti-air turret. Sprays clumps of lead, scrap or metaglass flak at enemy units.
+block.core-shard.description = Core of the base. Once destroyed, the sector is lost.
+block.core-shard.details = The first iteration. Compact. Self-replicating. Equipped with single-use launch thrusters. Not designed for interplanetary travel.
+block.core-foundation.description = Core of the base. Well armored. Stores more resources than a Shard.
+block.core-foundation.details = The second iteration.
+block.core-nucleus.description = Core of the base. Extremely well armored. Stores massive amounts of resources.
+block.core-nucleus.details = The third and final iteration.
+block.vault.description = Stores a large amount of items of each type. Contents can be retrieved with an unloader.
+block.container.description = Stores a small amount of items of each type. Contents can be retrieved with an unloader.
+block.unloader.description = Unloads the selected item from nearby blocks.
+block.launch-pad.description = Launches batches of items to selected sectors.
+block.duo.description = Fires alternating bullets at enemies.
+block.scatter.description = Fires clumps of lead, scrap or metaglass flak at enemy aircraft.
block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
-block.hail.description = A small, long-range artillery turret.
-block.wave.description = A medium-sized turret. Shoots streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
-block.lancer.description = A medium-sized anti-ground laser turret. Charges and fires powerful beams of energy.
-block.arc.description = A small close-range electric turret. Fires arcs of electricity at enemies.
-block.swarmer.description = A medium-sized missile turret. Attacks both air and ground enemies. Fires homing missiles.
-block.salvo.description = A larger, more advanced version of the Duo turret. Fires quick salvos of bullets at the enemy.
-block.fuse.description = A large, close-range shrapnel turret. Fires three piercing blasts at nearby enemies.
-block.ripple.description = An extremely powerful artillery turret. Shoots clusters of shells at enemies over long distances.
-block.cyclone.description = A large anti-air and anti-ground turret. Fires explosive clumps of flak at nearby units.
-block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
-block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
-block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.hail.description = Fires small shells at ground enemies over long distances.
+block.wave.description = Fires streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
+block.lancer.description = Charges and fires powerful beams of energy at ground targets.
+block.arc.description = Fires arcs of electricity at ground targets.
+block.swarmer.description = Fires homing missiles at enemies.
+block.salvo.description = Fires quick salvos of bullets at enemies.
+block.fuse.description = Fires three close-range piercing blasts at nearby enemies.
+block.ripple.description = Shoots clusters of shells at ground enemies over long distances.
+block.cyclone.description = Fires explosive clumps of flak at nearby enemies.
+block.spectre.description = Fires large armor-piercing bullets at air and ground targets.
+block.meltdown.description = Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
+block.foreshadow.description = Fires a large single-target bolt over long distances.
+block.repair-point.description = Continuously repairs the closest damaged unit in its vicinity.
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
+block.parallax.description = Fires a tractor beam that pulls in air targets, damaging them in the process.
+block.tsunami.description = Fires powerful streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
+block.silicon-crucible.description = Refines silicon from sand and coal, using pyratite as an additional heat source. More efficient in hot locations.
+block.disassembler.description = Separates slag into trace amounts of exotic mineral components at low efficiency. Can produce thorium.
+block.overdrive-dome.description = Increases the speed of nearby buildings. Requires phase fabric and silicon to operate.
+block.payload-conveyor.description = Moves large payloads, such as units from factories.
+block.payload-router.description = Splits input payloads into 3 output directions.
+block.command-center.description = Controls unit behavior with several different commands.
+block.ground-factory.description = Produces ground units. Output units can be used directly, or moved into reconstructors for upgrading.
+block.air-factory.description = Produces air units. Output units can be used directly, or moved into reconstructors for upgrading.
+block.naval-factory.description = Produces naval units. Output units can be used directly, or moved into reconstructors for upgrading.
+block.additive-reconstructor.description = Upgrades inputted units to the second tier.
+block.multiplicative-reconstructor.description = Upgrades inputted units to the third tier.
+block.exponential-reconstructor.description = Upgrades inputted units to the fourth tier.
+block.tetrative-reconstructor.description = Upgrades inputted units to the fifth and final tier.
+block.switch.description = A toggleable switch. State can be read and controlled with logic processors.
+block.micro-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings.
+block.logic-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings. Faster than the micro processor.
+block.hyper-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings. Faster than the logic processor.
+block.memory-cell.description = Stores information for a logic processor.
+block.memory-bank.description = Stores information for a logic processor. High capacity.
+block.logic-display.description = Displays arbitrary graphics from a logic processor.
+block.large-logic-display.description = Displays arbitrary graphics from a logic processor.
+block.interplanetary-accelerator.description = A massive electromagnetic railgun tower. Accelerates cores to escape velocity for interplanetary deployment.
+
+unit.dagger.description = Fires standard bullets at all nearby enemies.
+unit.mace.description = Fires streams of flame at all nearby enemies.
+unit.fortress.description = Fires long-range artillery at ground targets.
+unit.scepter.description = Fires a barrage of charged bullets at all nearby enemies.
+unit.reign.description = Fires a barrage of massive piercing bullets at all nearby enemies.
+unit.nova.description = Fires laser bolts that damage enemies and repair allied structures. Capable of flight.
+unit.pulsar.description = Fires arcs of electricity that damage enemies and repair allied structures. Capable of flight.
+unit.quasar.description = Fires piercing laser beams that damage enemies and repair allied structures. Capable of flight. Shielded.
+unit.vela.description = Fires a massive continuous laser beam that damages enemies, causes fires and repair allied structures. Capable of flight.
+unit.corvus.description = Fires a massive laser blast that damages enemies and repairs allied structures. Can step over most terrain.
+unit.crawler.description = Runs toward enemies and self-destructs, causing a large explosion.
+unit.atrax.description = Fires debilitating orbs of slag at ground targets. Can step over most terrain.
+unit.spiroct.description = Fires sapping laser beams at enemies, repairing itself in the process. Can step over most terrain.
+unit.arkyid.description = Fires large sapping laser beams at enemies, repairing itself in the process. Can step over most terrain.
+unit.toxopid.description = Fires large electric cluster-shells and piercing lasers at enemies. Can step over most terrain.
+unit.flare.description = Fires standard bullets at nearby ground targets.
+unit.horizon.description = Drops clusters of bombs on ground targets.
+unit.zenith.description = Fires salvos of missiles at all nearby enemies.
+unit.antumbra.description = Fires a barrage of bullets at all nearby enemies.
+unit.eclipse.description = Fires two piercing lasers and a barrage of flak at all nearby enemies.
+unit.mono.description = Automatically mines copper and lead, depositing it into the core.
+unit.poly.description = Automatically rebuilds damaged structures and assists other units in construction.
+unit.mega.description = Automatically repairs damaged structures. Capable of carrying blocks and small ground units.
+unit.quad.description = Drops large bombs on ground targets, repairing allied structures and damaging enemies. Capable of carrying medium-sized ground units.
+unit.oct.description = Protects nearby allies with its regenerating shield. Capable of carrying most ground units.
+unit.risso.description = Fires a barrage of missiles and bullets at all nearby enemies.
+unit.minke.description = Fires shells and standard bullets at nearby ground targets.
+unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
+unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
+unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
+unit.alpha.description = Defends the Shard core from enemies. Builds structures.
+unit.beta.description = Defends the Foundation core from enemies. Builds structures.
+unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties
index 590d8094f2..00fe18201e 100644
--- a/core/assets/bundles/bundle_be.properties
+++ b/core/assets/bundles/bundle_be.properties
@@ -55,6 +55,7 @@ schematic.saved = Схема захавана.
schematic.delete.confirm = Гэтая схема будзе выдалена.
schematic.rename = Перайменаваць схему
schematic.info = {0}x{1}, {2} блокаў
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Хваляў адлюстравана:[accent] {0}
stat.enemiesDestroyed = Ворагаў знішчана:[accent] {0}
@@ -100,7 +101,6 @@ done = Гатова
feature.unsupported = Ваша прылада не падтрымлівае гэтую магчымасць.
mods.alphainfo = Майце на ўвазе, што мадыфікацыі знаходзяцца ў альфа-версіі і [scarlet]могуць утрымліваць шмат памылак[]. Дакладвайце аб любых праблемах, якія Вы знойдзеце ў Mindustry Github або Discord.
-mods.alpha = [accent](Альфа)
mods = Мадыфікацыі
mods.none = [lightgray]Мадыфікацыі не знойдзены!
mods.guide = Кіраўніцтва па модам
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] вылучыць і скапіяваць
pausebuilding = [accent][[{0}][] для прыпынення будаўніцтва
resumebuilding = [scarlet][[{0}][] для працягу будаўніцтва
wave = [accent]Хваля {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Хваля праз {0}
wave.waveInProgress = [lightgray]Хваля працягваецца
waiting = [lightgray]Чаканне…
waiting.players = Чаканне гульцоў…
wave.enemies = Ворагаў: [lightgray]{0}
wave.enemy = Застаўся [lightgray]{0}[] ворагаў
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Загрузіць малюнак
saveimage = Захаваць малюнак
unknown = Невядома
@@ -328,6 +331,7 @@ editor.generation = Генерацыя:
editor.ingame = Рэдагаваць ў гульні
editor.publish.workshop = Апублікаваць у майстэрні
editor.newmap = Новая карта
+editor.center = Center
workshop = Майстэрня
waves.title = Хвалі
waves.remove = Выдаліць
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Няма фільтраў! Дадайце адзін
filter.distort = Скажэнне
filter.noise = Шум
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Медыяна
filter.oremedian = Рудня медыяна
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Блок
filter.option.floor = Паверхня
filter.option.flooronto = Мэтавая паверхню
+filter.option.target = Target
filter.option.wall = Сцяна
filter.option.ore = Руда
filter.option.floor2 = Другая паверхню
@@ -471,15 +477,9 @@ requirement.wave = дасягнем {0} хвалі ў зоне {1}
requirement.core = Знішчыце варожае ядро ў зоне {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Аднавіць зону: \n[lightgray] {0}
bestwave = [lightgray]Лепшая хваля: {0}
-launch = <Запуск>
launch.text = Launch
-launch.title = Запуск паспяховы
-launch.next = [lightgray]наступная магчымасць на {0} -той хвалі
-launch.unable2 = [scarlet]Запуск немагчымы.[]
-launch.confirm = Гэта [accent]запусціць[] усе рэсурсы ў Вашым ядры. \nВы не зможаце вярнуцца на гэтую базу.
-launch.skip.confirm = Калі Вы прапусціце цяпер, то Вы не зможаце вырабіць [accent] запуск[] да пазнейшых хваль.
+research.multiplayer = Only the host can research items.
uncover = Раскрыць
configure = Канфігурацыя выгрузкі
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Вы сапраўды хочаце ачысціць с
settings.clearall.confirm = [scarlet] АСЦЯРОЖНА![] \nГэта сатрэ ўсе дадзеныя, уключаючы захавання, карты, прагрэс кампаніі і налады кіравання. \nПосле таго як Вы націснеце [accent] [ОК][], гульня знішчыць усе дадзеныя і аўтаматычна зачыніцца.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent] <Паўза>
clear = Ачысціць
banned = [scarlet] Забаронена
@@ -570,12 +580,14 @@ info.title = Інфармацыя
error.title = [crimson]Адбылася памылка
error.crashtitle = Адбылася памылка
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Уваход
stat.output = Выхад
stat.booster = Паскаральнік
stat.tiles = Неабходныя пліткі
stat.affinities = Павелічэнне эфектыўнасці
-block.unknown = [lightgray]???
stat.powercapacity = Умяшчальнасць энергіі
stat.powershot = Энергія/Выстрэл
stat.damage = Страты
@@ -594,6 +606,7 @@ stat.powerconnections = Колькасць злучэнняў
stat.poweruse = Спажывае энергіі
stat.powerdamage = Энергія/страты
stat.itemcapacity = Умяшчальнасць прадметаў
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Базавая генерацыя энергіі
stat.productiontime = Час вытворчасці
stat.repairtime = Час поўнай рэгенерацыі
@@ -613,6 +626,28 @@ stat.reload = Стрэлы/секунду
stat.ammo = Боепрыпасы
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Патрабуецца свідар лепей
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Энергія: {0}/с
bar.powerstored = Назапашана: {0}/{1}
bar.poweramount = Энергія: {0}
bar.poweroutput = Выхад энергіі: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Прадметы: {0}
bar.capacity = Умяшчальнасць: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Прагрэс будаўніцтва
bar.input = Уваход
bar.output = Выхад
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat] {0} [lightgray]страты
bullet.splashdamage = [stat] {0} [lightgray]страты ў радыусе ~ [stat] {1} [lightgray] блокаў
bullet.incendiary = [stat] запальны
@@ -642,12 +680,15 @@ bullet.homing = [stat] саманаводных
bullet.shock = [stat] шокавы
bullet.frag = [stat] асколачны
bullet.knockback = [stat] {0} [lightgray]аддачы
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat] замарожваюцца
bullet.tarred = [stat] запавольвае, гаручы
bullet.multiplier = [stat]{0}[lightgray]x множнік боепрыпасаў
bullet.reload = [stat]{0}[lightgray]x хуткасць стрэльбы
unit.blocks = блокі
+unit.blockssquared = blocks²
unit.powersecond = адзінак энергіі/секунду
unit.liquidsecond = вадкасных адзінак/секунду
unit.itemssecond = прадметаў/секунду
@@ -670,7 +711,7 @@ category.power = Энергія
category.liquids = Вадкасці
category.items = Прадметы
category.crafting = Увядзенне/Выснова
-category.shooting = Стральба
+category.function = Function
category.optional = Дадатковыя паляпшэння
setting.landscape.name = Толькі альбомны (гарызантальны) рэжым
setting.shadows.name = Цені
@@ -679,7 +720,6 @@ setting.linear.name = Лінейная фільтраванне
setting.hints.name = Падказкі
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Аўтаматычная прыпыненне будаўніцтва
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Аніміраваныя вада
setting.animatedshields.name = Аніміраваныя шчыты
setting.antialias.name = Згладжванне [lightgray] (патрабуе перазапуску)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Поўнаэкранны рэжым
setting.borderlesswindow.name = Безрамочное акно [lightgray] (можа спатрэбіцца перазапуск)
setting.fps.name = Паказваць FPS і пінг
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Паказаць клавішы выбару блока
setting.vsync.name = Вертыкальная сінхранізацыя
setting.pixelate.name = Пікселізацыя
setting.minimap.name = Адлюстроўваць міні-карту
@@ -822,6 +861,7 @@ mode.custom = Карыстальніцкія правілы
rules.infiniteresources = Бясконцыя рэсурсы (Гулец)
rules.reactorexplosions = Выбухі рэактараў
+rules.schematic = Schematics Allowed
rules.wavetimer = Інтэрвал хваляў
rules.waves = Хвалі
rules.attack = Рэжым атакі
@@ -847,6 +887,7 @@ rules.title.unit = Баёў. адз.
rules.title.experimental = эксперыментальнай
rules.title.environment = Environment
rules.lighting = Асвятленне
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Навакольны свет
@@ -858,6 +899,7 @@ content.item.name = Рэчывы
content.liquid.name = Вадкасці
content.unit.name = Баявыя адзінкі
content.block.name = Блокі
+
item.copper.name = Медзь
item.lead.name = Свінец
item.coal.name = Вугаль
@@ -879,23 +921,6 @@ liquid.slag.name = Шлак
liquid.oil.name = Нафта
liquid.cryofluid.name = Крыягенная вадкасць
-item.explosiveness = [lightgray]Выбуханебяспека: {0}%
-item.flammability = [lightgray]Узгаральнасць: {0}%
-item.radioactivity = [lightgray]Радыёактыўнасць: {0}%
-
-unit.health = [lightgray]Здароўе: {0}
-unit.speed = [lightgray]Хуткасць: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Цеплаёмістасць: {0}
-liquid.viscosity = [lightgray]Глейкасць: {0}
-liquid.temperature = [lightgray]Тэмпература: {0}
-
unit.dagger.name = Кінжал
unit.mace.name = Mace
unit.fortress.name = Крэпасць
@@ -936,6 +961,7 @@ block.cliff.name = Скала
block.sand-boulder.name = Пяшчаны валун
block.grass.name = Трава
block.slag.name = Шлак
+block.space.name = Space
block.salt.name = Соль
block.salt-wall.name = Salt Wall
block.pebbles.name = Галька
@@ -981,6 +1007,7 @@ block.darksand-water.name = Тёмный пясок з вадой
block.char.name = Выпаленая зямля
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Заснежаны лёд
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Крыніца энергіі
block.unloader.name = Разгрузчык
block.vault.name = Сховішча
block.wave.name = Хваля
+block.tsunami.name = Tsunami
block.swarmer.name = Раявiк
block.salvo.name = Залп
block.ripple.name = Рабь
@@ -1114,6 +1142,7 @@ block.arc.name = Дуга
block.rtg-generator.name = Радыеізатопны тэрмаэлектрычны генератар
block.spectre.name = Спектр
block.meltdown.name = Іспепяліцель
+block.foreshadow.name = Foreshadow
block.container.name = Кантэйнер
block.launch-pad.name = Пускавая пляцоўка
block.launch-pad-large.name = Вялікая пускавая пляцоўка
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = Сіняя
team.crux.name = Чырвоная
@@ -1302,4 +1332,4 @@ block.cyclone.description = Вялікая турэль, якая можа ве
block.spectre.description = Масіўная двуствольное гармата. Страляе буйнымі бранябойнымі кулямі па паветраных і наземных мэтах.
block.meltdown.description = Масіўная лазерная гармата. Зараджае і страляе пастаянным лазерным прамянём ў бліжэйшых ворагаў. Патрабуецца астуджальная вадкасць для працы.
block.repair-point.description = Бесперапынна лечыць бліжэйшую пашкоджаную баявую адзінку або мех у сваім радыусе.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties
index f9f98951dc..bf15164929 100644
--- a/core/assets/bundles/bundle_cs.properties
+++ b/core/assets/bundles/bundle_cs.properties
@@ -10,18 +10,22 @@ link.dev-builds.description = Nestabilní vývojová verze hry
link.trello.description = Oficiální Trello nástěnka s plánovanými novinkami
link.itch.io.description = Stránka na itch.io s odkazy na stažení hry
link.google-play.description = Obchod Google Play
-link.f-droid.description = Katalog F-Droid
+link.f-droid.description = F-Droid
link.wiki.description = Oficiální Wiki Mindustry
link.suggestions.description = Suggest new features
linkfail = Nepodařilo se otevřít odkaz!\nAdresa URL byla zkopírována do schránky.
screenshot = Snímek obrazovky uložen {0}
screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro získání snímku obrazovky.
gameover = Konec hry
+gameover.disconnect = Odpojit se
gameover.pvp = Vyhrál tým [accent]{0}[]!
+gameover.waiting = [accent]Hra čeká na další mapu...
highscore = [accent]Nový rekord!
copied = Zkopírováno.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
+indev.popup = Mindustry [accent]v6[] je aktuálně ve verzi [accent]beta[].\n[lightgray]To znamená:[]\n[scarlet]- Kampaň je nedokončená[]\n- Cokoli, co vidíte, se může změnit nebo být odstraněno.\n\nHlaste prosím chyby na [accent]Github[].
indev.notready = Tato část hry ještě není připravena
+indev.campaign = [accent]Dovršil jsi kampaň![]\n\nTohle je vše, co Ti hra může po obsahové stránce nabídnout. Meziplanetární lety budou přidány až v budoucích aktualizacích.
+
load.sound = Zvuky
load.map = Mapy
@@ -57,6 +61,7 @@ schematic.rename = Přejmenovat šablonu
schematic.info = {0}x{1}, {2} bloků
schematic.disabled = [scarlet]Šablony jsou zakázány[]\nNa této [accent]mapě[] nebo [accent]serveru[] nemůžeš používat šablony.
+stats = Statistiky
stat.wave = Vln poraženo: [accent]{0}
stat.enemiesDestroyed = Nepřátel zničeno: [accent]{0}[]
stat.built = Budov postaveno: [accent]{0}[]
@@ -100,8 +105,7 @@ committingchanges = Provádím změny
done = Hotovo
feature.unsupported = Tvoje zařízení nepodporuje tuto vlastnost hry.
-mods.alphainfo = Měj na paměti, že modifikace jsou stále v alfa fázi vývoje a mohou být [scarlet]velmi chybové[].\nNahlaš, prosím, jakékoliv závady na GitHub nebo Discord serveru Mindustry. Děkujeme!
-mods.alpha = [accent](Alfa)[]
+mods.alphainfo = Měj na paměti, že modifikace jsou stále v alfa fázi vývoje a mohou být [scarlet]velmi chybové[].\nNahlaš, prosím, jakékoliv závady na GitHub Mindustry. Děkujeme!
mods = Mody
mods.none = [lightgray]Modifikace nebyly nalezeny.[]
mods.guide = Průvodce modifikacemi
@@ -190,6 +194,10 @@ servers.local = Místní servery
servers.remote = Vzdálené servery
servers.global = Komunitní servery
+servers.showhidden = Zobraz skryté servery
+server.shown = Zobrazené
+server.hidden = Skryté
+
trace = Vystopovat hráče
trace.playername = Jméno hráče: [accent]{0}[]
trace.ip = Adresa IP: [accent]{0}[]
@@ -268,6 +276,9 @@ cancel = Zrušit
openlink = Otevřít odkaz
copylink = Zkopírovat odkaz
back = Zpět
+crash.export = Exportovat záznamy o zhroucení hry
+crash.none = Záznamy o zhroucení hry nebyly nalezeny.
+crash.exported = Záznamy o zhroucení hry byly exportovány.
data.export = Exportovat data
data.import = Importovat data
data.openfolder = Otevřít složku s daty
@@ -279,18 +290,24 @@ quit.confirm.tutorial = Jsi si jistý?Výuku je možné znovu spustit v [accent]
loading = [accent]Načítám...
reloading = [accent]Načítám modifikace...
saving = [accent]Ukládám...
-respawn = [accent][[{0}][] k znovyzrození v jádře
+respawn = [accent][[{0}][] k znovuzrození v jádře
cancelbuilding = [accent][[{0}][] vyčistí plán šablony
selectschematic = [accent][[{0}][] provede výběr a zkopírování
pausebuilding = [accent][[{0}][] zastaví stavění
resumebuilding = [scarlet][[{0}][] bude pokračovat ve stavění
+showui = UI je skryto.\nZmáčkni [accent][[{0}][] pro jeho zobrazení.
wave = [accent]Vlna číslo {0}[]
+wave.cap = [accent]Vlna {0} z {1}[]
wave.waiting = [lightgray]Vlna za {0} vteřin[]
wave.waveInProgress = [lightgray]Vlna přichází![]
waiting = [lightgray]Čekám...[]
waiting.players = Čekání na hráče...
wave.enemies = [lightgray]{0} zbývajících nepřátel
-wave.enemy = [lightgray]{0} zbývající nepřítel
+wave.enemycores = [accent]{0}[lightgray] nepřátelská jádra
+wave.enemycore = [accent]{0}[lightgray] nepřátelské jádro
+wave.enemy = [lightgray]{0} zbývající nepřátel
+wave.guardianwarn = Počet vln do příchodu strážce: [accent]{0}[].
+wave.guardianwarn.one = [accent]Strážce přijde již příští vlnu![]
loadimage = Nahrát obrázek
saveimage = Uložit obrázek
unknown = Neznámý
@@ -329,6 +346,7 @@ editor.generation = Generace:
editor.ingame = Upravit ve hře
editor.publish.workshop = Vystavit ve Workshopu na Steamu
editor.newmap = Nová mapa
+editor.center = Vycentrovat
workshop = Workshop na Steamu
waves.title = Vlny
waves.remove = Odebrat
@@ -338,7 +356,7 @@ waves.waves = vln(y)
waves.perspawn = za zrození
waves.shields = štítů/vlnu
waves.to = do
-waves.guardian = Guardian
+waves.guardian = Strážce
waves.preview = Náhled
waves.edit = Upravit....
waves.copy = Uložit do schránky
@@ -347,7 +365,7 @@ waves.invalid = Neplatné vlny ve schránce.
waves.copied = Vlny byly zkopírovány.
waves.none = Žádní nepřátelé nebyli definováni.\nVlny s prázdným rozložením budou automaticky upraveny na výchozí rozložení.
-#these are intentionally in lower case
+#toto je záměrně malými písmeny
wavemode.counts = počty
wavemode.totals = součty
wavemode.health = zdraví
@@ -417,8 +435,9 @@ toolmode.drawteams.description = Kreslí týmy místo bloků.
filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačítkem níže.[]
filter.distort = Zkreslení
filter.noise = Zašumění
-filter.enemyspawn = Enemy Spawn Select
-filter.corespawn = Core Select
+filter.enemyspawn = Výběr nepřátelské líhně
+filter.spawnpath = Cesta k líhni
+filter.corespawn = Váběr ládra
filter.median = Medián
filter.oremedian = Medián rud
filter.blend = Prolnutí
@@ -442,6 +461,7 @@ filter.option.amount = Amount
filter.option.block = Blok
filter.option.floor = Povrch
filter.option.flooronto = Cílový povrch
+filter.option.target = Cíl
filter.option.wall = Stěna
filter.option.ore = Ruda
filter.option.floor2 = Druhotný povrch
@@ -458,7 +478,9 @@ load = Načíst
save = Uložit
fps = FPS: {0}
ping = Odezva: {0} ms
-language.restart = Prosím restartuj hru, aby se provedla změna jazyka!
+memory = Paměť: {0} MB
+memory2 = Paměť:\n {0} MB +\n {1} MB
+language.restart = Hru je třeba restartovat, aby se provedla změna jazyka.
settings = Volby
tutorial = Výuka
tutorial.retake = Spustit znovu výuku.
@@ -471,18 +493,20 @@ locked = Zamčeno
complete = [lightgray]Dokončeno:
requirement.wave = Dosáhni vlny {0} na mapě {1}
requirement.core = Znič nepřátelské jádro na mapě {0}
-requirement.research = Vynalezeno {0}
-requirement.capture = Polapeno {0}
-bestwave = [lightgray]Nejvyšší vlna: {0}
+requirement.research = Vynalezni {0}
+requirement.produce = Vyrob {0}
+requirement.capture = Polap {0}
launch.text = Vyslat
-campaign.multiplayer = Když hraješ kampaň ve hře více hráčů, můžeš vynalézat pouze pomocí věcí ze [accent]svých[] sektorů, [scarlet]ne[] ze sektoru hostitele, kde jsi právě teď.\n\nAbys získal věci do [accent]svých[] sektorů ve hře více hráčů, použij [accent]vysílací plošinu[].
+research.multiplayer = Jen hostitel hry může vynalézat nové technologie.
uncover = Odkrýt mapu
configure = Přizpůsobit vybavení
+
#TODO
loadout = Načtení
resources = Zdroje
bannedblocks = Zakázané bloky
addall = Přidat vše
+launch.from = Vysláno z: [accent]{0}
launch.destination = Cíl: {0}
configure.invalid = Hodnota musí být číslo mezi 0 a {0}.
zone.unlocked = [lightgray]Mapa {0} byla odemknuta.[]
@@ -502,24 +526,48 @@ error.mismatch = Chyba při komunikaci se serverem:\nVerze klienta a serveru se
error.alreadyconnected = Připojeni k serveru.
error.mapnotfound = Soubor s mapou nebyl nalezen!
error.io = Vstupně/výstupní (I/O) chyba sítě.
-error.any = Ueznámá chyba sítě.
+error.any = Neznámá chyba sítě.
error.bloom = Chyba inicializace filtru Bloom.\nTvé zařízení ho nejspíš nepodporuje.
weather.rain.name = Déšť
weather.snow.name = Sníh
weather.sandstorm.name = Písečná ouře
weather.sporestorm.name = Spórová bouře
+weather.fog.name = Mlha
sectors.unexplored = [lightgray]Neprozkoumáno
sectors.resources = Zdroje:
sectors.production = Výroba:
+sectors.export = Export:
+sectors.time = Čas:
+sectors.threat = Ohrožení:
+sectors.wave = Vlna:
sectors.stored = Uskladněno:
sectors.resume = Pokračovat
sectors.launch = Vyslat
sectors.select = Vybrat
-sectors.nonelaunch = [lightgray]žádné (slunce)[]
+sectors.nonelaunch = [lightgray]bez (slunce)[]
+sectors.rename = Přejmenovat sektor
-#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway
+sector.curcapture = Sektor polapen
+sector.missingresources = [scarlet]Nedostatečné zdroje v jádře
+sector.attacked = Sektor [accent]{0}[white] pod útokem!
+sector.lost = Sektor [accent]{0}[white] ztracen! :(
+#note: the missing space in the line below is intentional
+sector.captured = Sektor [accent]{0}[white]polapen! :)
+
+threat.low = Nízké
+threat.medium = Střední
+threat.high = Velké
+threat.extreme = Extrémní
+threat.eradication = Vyhlazující
+
+planets = Planets
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sol
+
+sector.impact0078.name = Dopad 0078
sector.groundZero.name = Základní tábor
sector.craters.name = Krátery
sector.frozenForest.name = Zamrzlý les
@@ -531,16 +579,19 @@ sector.overgrowth.name = Džungle
sector.tarFields.name = Dehtová pole
sector.saltFlats.name = Solné nížiny
sector.fungalPass.name = Plísňový průsmyk
+sector.biomassFacility.name = Zařízení pro syntézu biomasy
+sector.windsweptIslands.name = Větrné ostrovy
+sector.extractionOutpost.name = Extrakční základna
+sector.planetaryTerminal.name = Planetární odpalovací terminál
#unused
-#sector.impact0078.name = Impact 0078
#sector.crags.name = Crags
sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál.
sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže.
sector.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází jen několik málo surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jádro v jeho základně. Nenechej kámen na kameni.
sector.craters.description = V těchto relikviích starých válek se nahromadilo velké množství vody. Znovu získej tuto oblast. Sbírej písek. Vyrob z něj metasklo. Použij vodu k chlazení svých vrtů a střílen.
-sector.ruinousShores.description = Za pustinou se nachází pobřeží. Kdysi zde stál obranný pobřežní systém. Moc z něj už dneska nezbylo. Jen základní stavby zůstaly ušetřeny, zbytek se rozpadl na šrot.\nPokračuj ve své expanzi hlouběji. Objev ztracenou technologii.
+sector.ruinousShores.description = Za pustinou se nachází pobřeží. Kdysi zde stál obranný pobřežní systém. Moc z něj už dneska nezbylo. Jen základní konstrukce zůstaly ušetřeny, zbytek se rozpadl na šrot.\nPokračuj ve své expanzi hlouběji. Objev ztracenou technologii.
sector.stainedMountains.description = Dále ve vnitrozemí leží hory, dosud neposkvrněny spórami.\nVytěž titan, kterým tato oblast oplývá. Nauč se jej používat.\n\nPřítomnost nepřátelských jednotek je zde větší. Radši jim nedej moc času na vyslání jejich nejsilnějších jednotech.
sector.overgrowth.description = Tato přerostlá džungle se nachází blíže ke zdroji spór.\nNepřítel zde zbudoval předsunutou hlídku. Stav jednotky Dýka a znič s jejich pomocí jádro základny. Získej znovu to, co bylo již dávno ztraceno.
sector.tarFields.description = Rozhraní produkční naftové oblasti mezi horami a pouští. Jedna z mála oblastí, kde se stále nachází dehet.\nAčkoliv je oblast opuštěná, stále se v jejím okolí nachází nebezpečné nepřátelské síly. Není radno je podcenit.\n\n[lightgray]Vyzkoumej technologii na zpracování nafty.[]
@@ -560,24 +611,30 @@ settings.graphics = Grafika
settings.cleardata = Vymazat data hry...
settings.clear.confirm = Jsi si jistý, že chceš vymazat Tvá data ve hře?\nTento krok je nevratný!
settings.clearall.confirm = [scarlet]Varování![]\nToto vyresetuje všechna Tvá data ve hře, včetně uložení hry, map, odemknutého postupu v kampani a nastavení ovládání.\nJakmile stiskneš "OK", všechna data se vymažou a hra se automaticky ukončí.
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
+settings.clearsaves.confirm = Opravdu chceš vymazat veškeré Tvé uložené hry?
+settings.clearsaves = Vymazat uložené hry
+settings.clearresearch = Vymazat výzkum
+settings.clearresearch.confirm = Jsi si jist, že opravdu chceš vymazat veškerý dosažený výzkum v této kampani?
+settings.clearcampaignsaves = Vymazat uložené hry kampaně
+settings.clearcampaignsaves.confirm = Jsi si jist, že opravdu chceš vymazat všechny uložené hry v této kampani?
paused = [accent]< Pozastaveno >[]
clear = Vyčistit
banned = [scarlet]Zakázán[]
-unplaceable.sectorcaptured = [scarlet]Vyžaduje polapený sektor[]
yes = Ano
no = Ne
info.title = Informace
error.title = [scarlet]Objevila se chyba[]
error.crashtitle = Objevila se chyba
unit.nobuild = [scarlet]Jednotka nemůže stavět
+lastaccessed = [lightgray]Naposledy použil: {0}
+block.unknown = [lightgray]???[]
+
+stat.description = Účel
stat.input = Vstup
stat.output = Výstup
stat.booster = Posilovač
stat.tiles = Vyžadované dlaždice
stat.affinities = Synergie
-block.unknown = [lightgray]???[]
stat.powercapacity = Kapacita energie
stat.powershot = Energie na 1 výstřel
stat.damage = Poškození
@@ -600,6 +657,8 @@ stat.memorycapacity = Kapacita paměti
stat.basepowergeneration = Základní generování energie
stat.productiontime = Čas produkce
stat.repairtime = Čas do úplné opravy
+stat.weapons = Zbraně
+stat.bullet = Střela
stat.speedincrease = Zvýšení rychlosti
stat.range = Dosah
stat.drilltier = Lze těžit
@@ -607,15 +666,40 @@ stat.drillspeed = Základní rychlost vrtu
stat.boosteffect = Účinek posílení
stat.maxunits = Nejvýše aktivních jednotek
stat.health = Životy
-stat.buildtime = Čas stavby
+stat.buildtime = Čas konstrukce
stat.maxconsecutive = Nejvýše po sobě
-stat.buildcost = Cena stavby
+stat.buildcost = Cena konstrukce
stat.inaccuracy = Nepřesnost
stat.shots = Střely
stat.reload = Střel za 1s
stat.ammo = Střelivo
stat.shieldhealth = Zdraví štítu
stat.cooldowntime = Čas na zchladnutí
+stat.explosiveness = Výbušnost
+stat.basedeflectchance = Základní pravděpobnost odražení
+stat.lightningchance = Pravděpodobnost blesku
+stat.lightningdamage = Poškození bleskem
+stat.flammability = Hořlavost
+stat.radioactivity = Radioaktivita
+stat.heatcapacity = Tepelná kapacita
+stat.viscosity = Vazkost
+stat.temperature = Teplota
+stat.speed = Rychlost
+stat.buildspeed = Rychlost stavění
+stat.minespeed = Rychlost těžení
+stat.minetier = Těžící úroveň
+stat.payloadcapacity = Kapacita pro náklad
+stat.commandlimit = Limit ovládání
+stat.abilities = Schopnosti
+stat.canboost = Umí posilovat
+stat.flying = Létající
+
+ability.forcefield = Silové pole
+ability.repairfield = Opravit pole
+ability.statusfield = Stav pole
+ability.unitspawn = {0} továrna
+ability.shieldregenfield = Silově opravné pole
+ability.movelightning = Pohybující se blesk
bar.drilltierreq = Je vyžadován lepší vrt
bar.noresources = Chybějí zdroje
@@ -627,6 +711,7 @@ bar.powerbalance = Energie: {0}
bar.powerstored = Uskladněno: {0}/{1}
bar.poweramount = Energie celkem: {0}
bar.poweroutput = Výstup energie: {0}
+bar.powerlines = Spojení: {0}/{1}
bar.items = Předměty: {0}
bar.capacity = Kapacita: {0}
bar.unitcap = {0} {1}/{2}
@@ -634,7 +719,7 @@ bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[jednotka je v
bar.liquid = Chlazení
bar.heat = Teplo
bar.power = Energie
-bar.progress = Stavba v průběhu
+bar.progress = Konstrukce v průběhu
bar.input = Vstup
bar.output = Výstup
@@ -642,17 +727,22 @@ units.processorcontrol = [lightgray]Procesor je ovládán[]
bullet.damage = [stat]{0}[lightgray] poškození[]
bullet.splashdamage = [stat]{0}[lightgray] plošného poškození ~[stat] {1}[lightgray] dlaždic
-bullet.incendiary = [stat]zápalné
+bullet.incendiary = [stat]zápalný
+bullet.sapping = [stat]oslabující
bullet.homing = [stat]samonaváděcí
-bullet.shock = [stat]šokové
-bullet.frag = [stat]trhavé
-bullet.knockback = [stat]{0}[lightgray] odhození
-bullet.freezing = [stat]mrazivé
-bullet.tarred = [stat]dehtové
-bullet.multiplier = [stat]{0}[lightgray]x více střel
-bullet.reload = [stat]{0}[lightgray]x rychlost střelby
+bullet.shock = [stat]šokový
+bullet.frag = [stat]trhavý
+bullet.knockback = [stat]{0}[lightgray] odhození[]
+bullet.pierce = [stat]{0}[lightgray]x průrazné[]
+bullet.infinitepierce = [stat]průrazné[]
+bullet.healpercent = [stat]{0}[lightgray]% opravující
+bullet.freezing = [stat]zmrazující[]
+bullet.tarred = [stat]dehtující[]
+bullet.multiplier = [stat]{0}[lightgray]x více střel[]
+bullet.reload = [stat]{0}[lightgray]x rychlost střelby[]
unit.blocks = bloky
+unit.blockssquared = bloky²
unit.powersecond = energie/sekunda
unit.liquidsecond = kapalin/sekundu
unit.itemssecond = předmětů/sekundu
@@ -670,12 +760,13 @@ unit.items = předměty
unit.thousands = tis
unit.millions = mio
unit.billions = mld
+category.purpose = Účel
category.general = Všeobecné
category.power = Energie
category.liquids = Kapaliny
category.items = Předměty
category.crafting = Vstup/Výstup
-category.shooting = Střílí
+category.function = Funkce
category.optional = Volitelné vylepšení
setting.landscape.name = Uzamknout krajinu
setting.shadows.name = Stíny
@@ -683,9 +774,9 @@ setting.blockreplace.name = Automatický návrh bloků
setting.linear.name = Lineární filtrování
setting.hints.name = Rady a tipy
setting.flow.name = Zobrazit rychlost toku zdroje [scarlet](experimentální)[]
+setting.backgroundpause.name = Pozastavit v pozadí
setting.buildautopause.name = Automaticky pozastavit stavění
-setting.mapcenter.name = Auto Center Map To Player
-setting.animatedwater.name = Animované tekutiny
+setting.animatedwater.name = Animované povrchy
setting.animatedshields.name = Animované štíty
setting.antialias.name = Použít antialias [lightgray](vyžaduje restart)[]
setting.playerindicators.name = Indikátor pro hráče
@@ -718,7 +809,6 @@ setting.fullscreen.name = Celá obrazovka
setting.borderlesswindow.name = Bezokrajové okno[lightgray] (může výt vyžadován restart)[]
setting.fps.name = Ukázat FPS a ping
setting.smoothcamera.name = Plynulá kamera
-setting.blockselectkeys.name = Ukázat klávesy při práci s blokem
setting.vsync.name = Vertikální synchronizace
setting.pixelate.name = Rozpixlovat
setting.minimap.name = Ukázat mapičku
@@ -761,7 +851,7 @@ keybind.press = Stiskni klávesu...
keybind.press.axis = Stiskni osu ovladače nebo klávesu...
keybind.screenshot.name = Snímek mapy
keybind.toggle_power_lines.name = Přepnout zobrazení energetického vedení
-keybind.toggle_block_status.name = Toggle Block Statuses
+keybind.toggle_block_status.name = Přepnout stav bloku
keybind.move_x.name = Pohyb vodorovně
keybind.move_y.name = Pohyb svisle
keybind.mouse_move.name = Následovat myš
@@ -815,7 +905,7 @@ keybind.drop_unit.name = Zahodit jednotku
keybind.zoom_minimap.name = Přiblížit mapu
mode.help.title = Popis režimů
mode.survival.name = Hra o přežití
-mode.survival.description = Klasický režim. Zdroje jsou limitované a vlny nepřátel přicházejí automaticky.\n[gray]Vyžaduje, aby v mapě bylo místo pro líhnutí nepřítel.[]
+mode.survival.description = Klasický režim. Zdroje jsou limitované a vlny nepřátel přicházejí automaticky.\n[gray]Vyžaduje, aby v mapě bylo místo pro líhnutí nepřátel.[]
mode.sandbox.name = Pískoviště
mode.sandbox.description = Zdroje jsou nekonečné, vlny nepřátel nemají automatické načasování.
mode.editor.name = Editor
@@ -865,6 +955,8 @@ content.item.name = Předměty
content.liquid.name = Kapaliny
content.unit.name = Jednotky
content.block.name = Bloky
+content.sector.name = Sektory
+
item.copper.name = Měď
item.lead.name = Olovo
item.coal.name = Uhlí
@@ -882,27 +974,10 @@ item.pyratite.name = Pyratit
item.metaglass.name = Metasklo
item.scrap.name = Šrot
liquid.water.name = Voda
-liquid.slag.name = Roztavený kov
+liquid.slag.name = Struska
liquid.oil.name = Nafta
liquid.cryofluid.name = Chladící kapalina
-item.explosiveness = [lightgray]Výbušnost: {0}%[]
-item.flammability = [lightgray]Zápalnost: {0}%[]
-item.radioactivity = [lightgray]Radioaktivita: {0}%[]
-
-unit.health = [lightgray]Životy: {0}[]
-unit.speed = [lightgray]Rychlost: {0}[]
-unit.weapon = [lightgray]Zbraň: {0}
-unit.itemcapacity = [lightgray]Kapacita: {0}
-unit.minespeed = [lightgray]Rychlost těžení: {0}%
-unit.minepower = [lightgray]Těžební síla: {0}
-unit.ability = [lightgray]Schopnost: {0}
-unit.buildspeed = [lightgray]Rychlost stavění: {0}%
-
-liquid.heatcapacity = [lightgray]Teplotní kapacita: {0}[]
-liquid.viscosity = [lightgray]Viskozita: {0}[]
-liquid.temperature = [lightgray]Teplota: {0}[]
-
unit.dagger.name = Dýka
unit.mace.name = Palcát
unit.fortress.name = Pevnost
@@ -942,7 +1017,8 @@ block.parallax.name = Paralaxa
block.cliff.name = Útes
block.sand-boulder.name = Pískovec
block.grass.name = Tráva
-block.slag.name = Slag
+block.slag.name = Struska
+block.space.name = Vesmír
block.salt.name = Sůl
block.salt-wall.name = Solné skály
block.pebbles.name = Oblázky
@@ -988,8 +1064,9 @@ block.darksand-water.name = Voda s černým pískem
block.char.name = Dřevěné uhlí
block.dacite.name = Dacit
block.dacite-wall.name = Stěna dacitu
+block.dacite-boulder.name = Dacitový kámen
block.ice-snow.name = Zasněžený led
-block.stone-wall.name = Stone Wall
+block.stone-wall.name = Kamenné skály
block.ice-wall.name = Ledové skály
block.snow-wall.name = Sněhové skály
block.dune-wall.name = Písečné duny
@@ -1034,9 +1111,8 @@ block.hail.name = Kroupomet
block.lancer.name = Kopiník
block.conveyor.name = Dopravník
block.titanium-conveyor.name = Titanoový dopravník
-block.plastanium-conveyor.name = Plastanium Conveyor
+block.plastanium-conveyor.name = Plastanový přepravník
block.armored-conveyor.name = Obrněný dopravník
-block.armored-conveyor.description = Přepravuje předměty stejně rychle jako titanový přepravník, ale má navíc brnění. Přijímá předměty ze srtan pouze z jiných přepravníků.
block.junction.name = Křižovatka
block.router.name = Směrovač
block.distributor.name = Rozdělovač
@@ -1082,8 +1158,8 @@ block.power-source.name = Nekonečný zdroj energie
block.unloader.name = Odbavovač
block.vault.name = Trezor
block.wave.name = Vlna
-block.swarmer.name = Rojiště
block.tsunami.name = Tsunami
+block.swarmer.name = Rojiště
block.salvo.name = Salva
block.ripple.name = Vlnění
block.phase-conveyor.name = Fázový přepravník
@@ -1118,7 +1194,7 @@ block.fuse.name = Fúze
block.shock-mine.name = Šoková mina
block.overdrive-projector.name = Urychlující projektor
block.force-projector.name = Silový projektor
-block.arc.name = Oblouk
+block.arc.name = Výboj
block.rtg-generator.name = RTG
block.spectre.name = Přízrak
block.meltdown.name = Rozpékač
@@ -1140,6 +1216,11 @@ block.payload-router.name = Směřovač nákladu
block.disassembler.name = Rozebírač
block.silicon-crucible.name = Tavicí tyglík pro křemík
block.overdrive-dome.name = Velká urychlující kupole
+#experimental, may be removed
+block.block-forge.name = Výheň bloků
+block.block-loader.name = Nakladač bloků
+block.block-unloader.name = Vykladač bloků
+block.interplanetary-accelerator.name = Meziplanetární urychlovač
block.switch.name = Přepínač
block.micro-processor.name = Mikroprocesor
@@ -1166,10 +1247,10 @@ tutorial.drill.mobile = Sám vidíš, že ruční těžba není moc efektivní.\
tutorial.blockinfo = Každý blok má jiné vlastnosti. Každý vrt může těžit pouze některé suroviny.\nPro zobrazení informací a statistik o bloku [accent]zvol "?" při vybraném bloku ve stavební nabídce[].\n\nNyní se podívej na [accent]vlastnosti mechanického vrtu[].
tutorial.conveyor = Pro dopravu materiálu k jádru jsou zapotřebí [accent]dopravníky[].\nVytvoř řadu dopravníků od vrtu až k jádru.\nDrž zmáčknuté [accent]levé tlačítko myši[], abys umístil dopravníky v jedné řadě.\nKdyž zmáčkneš [accent]Ctrl[], řada dopravníků se bude umisťovat navíc úhlopříčně.\nPoužij [accent]kolečko myši[] pro otáčení bloku před umístěním.\n[accent]Umísti dopravníky tak, abys dopravil měď do jádra[].
tutorial.conveyor.mobile = Pro dopravu materiálu k jádru jsou zapotřebí [accent]dopravníky[].\nVytvoř řadu dopravníků od vrtu až k jádru.\n[accent]Pokládej dopravníky v řadě ťupnutím a delším prstu[] a táhnutím v požadovaném směru.\n[accent]Umísti dopravníky tak, abys dopravil měď do jádra[].
-tutorial.turret = Jakmile se materiál dostane do jádra, může být použit pro stavbu.\nPamatuj si, že ne všechno lze použít pro stavbu.\nVěci, které melze použít jako stavební materiál, jako například [accent]uhlí[] nebo [accent]šrot[], nelze do jádra uložit, a zasekne tak celý dopravník na vstupu.\nPro odehnání útočných jednotek [lightgray]nepřítele[] od jádra je třeba postavit obranné stavby.\nPostav [accent]střílnu Duo[] poblíž svého jádra.
+tutorial.turret = Jakmile se materiál dostane do jádra, může být použit pro konstrukci.\nPamatuj si, že ne všechno lze použít pro konstrukci.\nVěci, které melze použít jako stavební materiál, jako například [accent]uhlí[] nebo [accent]šrot[], nelze do jádra uložit, a zasekne tak celý dopravník na vstupu.\nPro odehnání útočných jednotek [lightgray]nepřítele[] od jádra je třeba postavit obranné konstrukce.\nPostav [accent]střílnu Duo[] poblíž svého jádra.
tutorial.drillturret = Střílny Duo potřebují jako střelivo [accent]měď[].\nPolož mechanický vrt blízko střílny.\nPro zásobování mědí veď dopravníky od vrtu ke střílně.\n\n[accent]Doručeno střeliva: {0}/{1}[]
-tutorial.pause = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat stavbu do fronty.\n\n[accent]Pozastav hru mezerníkem[].
-tutorial.pause.mobile = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat stavbu do fronty.\n\n[accent]Pozastavení hry probedeš ťupnutím na dvě čárky vlevo nahoře.
+tutorial.pause = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat konstrukci do fronty.\n\n[accent]Pozastav hru mezerníkem[].
+tutorial.pause.mobile = Během hry, například v boji, můžeš [accent]pozastavit hru[].\nPři pozastavení můžeš naplánovat konstrukci do fronty.\n\n[accent]Pozastavení hry probedeš ťupnutím na dvě čárky vlevo nahoře.
tutorial.unpause = Teď zmáčkni mezerník znova a pokračuj ve hře.
tutorial.unpause.mobile = Teď ťupni na ikonu na stejném místě a pokračuj ve hře.
tutorial.breaking = Bloky je třeba nejen stavět, ale Často rozbít.\n[accent]Drž pravé tlačítko myšu[] a táhni s ní pro výběr bloků, které potřebuješ rozbít.\n\n[accent]Znič všechen šrot vlevo od Tvého jádra použitím blokového výběru[].
@@ -1180,136 +1261,207 @@ tutorial.waves = [lightgray]Nepřítel[] se přibližuje.\n\nUbraň své jádro
tutorial.waves.mobile = [lightgray]Nepřítel[] se přibližuje.\n\nUbraň své jádro po dobu 2 vln. Tvá loď bude automaticky střílet po nepřátelských jednotkách.\nPostav více střílen a vrtů. Natěž více mědi.
tutorial.launch = Jakmile dosáhneš určité vlny, budeš moci [accent]vyslat své jádro zpět[]. Opustíš tím svou základnu a [accent]získáš suroviny uložené v jádře[].\nZískané suroviny mohou být použity pro výzkum nových technologií.\n\n[accent]Stiskni tlačítko pro vyslání jádra zpět[].
-item.copper.description = Nejběžnější stavební materiál. Používá se ve všech typech bloků.
-item.lead.description = Základní materiál. Používá se v energetických blocích a při přepravě kapalin.
-item.metaglass.description = Velmi tvrdá skleněná sloučenina. Hodně používaná pro ukládání a rozvod kapalin.
-item.graphite.description = Mineralizovaný uhlík, používaný v energetických komponentách a též jako munice.
-item.sand.description = Běžný materiál, který se hojně používá při slévání a tavení.
-item.coal.description = Zkamenělé rostliny, zformované dávno před vznikem mapy. Používané běžně jako palivo a pro vyrobu dalších materálů.
-item.titanium.description = Vzácný, velice lehký kov, využívaný hojně při přepravě kapalin, ve vrtech a při výrobě letových strojů.
-item.thorium.description = Hutný, radioaktivní materiál, využívaný jako strukturální podpora a nuklearní palivo.
-item.scrap.description = Zbytky starých struktur a jednotek. Obsahuje stopové množství mnoha různých kovů.
-item.silicon.description = Extrémně užitečný polovodič. Využívá se v solárních panelech, pokročilých energetických blocích a jako munice do samonaváděcích střel ve střílnách.
-item.plastanium.description = Lehký, kujný materiál, využívaný v pokročilém letectví a jako tříštivá munice.
-item.phase-fabric.description = Takřka nehmotná substance používaná v pokročilých energetických blocích a v samoopravných technologiích.
-item.surge-alloy.description = Vyspělá slitina s jedinečnými energetickými vlastnostmi.
-item.spore-pod.description = Umělé spór, syntetizované pro průmyslové účely z atmosférických koncentrací. Jejich využití spočívá v přeměně na naftu, výbušniny a jako palivo.
-item.blast-compound.description = Nestálá směs používaná v bombách a výbušninách. Syntetizuje se ze spórových tobolek a těkavých substancí. Nedoporučuje se využívat jako palivo.
-item.pyratite.description = Extrémně vznětlivá substance, používaná ve zápalném střelivu.
-liquid.water.description = Nejužitečnější kapalina. Hojně využívaná jak chlazení do strojů a též pro výrobu spór.
-liquid.slag.description = Různé různé druhy roztaveného kovu smíchané dohromady. Lze je rozdělit na jednotlivé minerály, nebo se tato slitina dá použít jako munice při střílení na nepřátelské jednotky.
-liquid.oil.description = Kapalina použitá při pokročilé výrobě materiálů. Může být přeměněna na uhlí, nebo při rozprášení a zapálení použita jako zbraň.
-liquid.cryofluid.description = Netečná, nereznoucí kapalina, vytvořená z vody a titanu. Má extrémně vysokou tepelnou kapacitu. Hojně se používá jako chladicí kapalina.
+item.copper.description = Používá se ve všech typech bloků a munice.
+item.copper.details = Měď. Nezvykle nadpočetný kov na Serpulu. Konstrukčně slabý, pokud není rafinovaná.
+item.lead.description = Používá se v přepravě kapalin a elektrických konstrukcích.
+item.lead.details = Hutný, netečný materiál. Hojně používán v bateriích.\nPoznámka: Pravděpodobně toxický pro biologické formy života. Ne že by jich tady moc zbývalo.
+item.metaglass.description = Používá se v přepravě kapalin a úložných konstrukcích.
+item.graphite.description = Používá se v elektrických komponentách a nábojích do věží.
+item.sand.description = Používá se ve výrobě ostatních rafinovaných materiálů.
+item.coal.description = Používá se na palivo a výrobu rafinovaný materiálů.
+item.coal.details = Jeví se být zkamenělou rostlinou hmotou, zformovaou dávno před událostí vytvoření tohoto světa náhodným číslem.
+item.titanium.description = Používá se v konstrukcích pro přepravu kapalin, ve vrtácích a letectví.
+item.thorium.description = Používá se v bytelných konstrukcích a též jako nukleární palivo.
+item.scrap.description = Používá se v tavičích a drtičích pro rafinaci na jiné materiály.
+item.scrap.details = Zbytky zbytků starých konstrukcí a jednotek.
+item.silicon.description = Používá se v solárních panelech, komplexní elektronice a samonaváděcích střelách do obraných věží.
+item.plastanium.description = Používá se v pokročilých jednotkách, izolaci a tříštivé munici.
+item.phase-fabric.description = Používá se v pokročilé elektronice a samoopravných konstrukcích.
+item.surge-alloy.description = Používá se v pokročilém zbrojnictví a reakčních obranných konstrukcích.
+item.spore-pod.description = Používá se pro přeměnu na ropu, výbušniny a palivo.
+item.spore-pod.details = Spóry. Pravděpodobně syntetická forma života. Vydává plyn toxický pro jiné formy života. Extrémně invazivní. Vysoce hořlavý za určitých podmínek.
+item.blast-compound.description = Používá se v bombách a výbušné munici.
+item.pyratite.description = Používá se v zápalných zbraních a spalovacích generátorech.
-block.message.description = Ukládá zprávu. Používá se pro komunikaci mezi spojenci.
-block.graphite-press.description = Přeměňuje neforemné kusy uhlí do ušlechtilých výlisků grafitu.
-block.multi-press.description = Vylepšená verze lisu na grafit. Využívá vodu a energii k rychlejšímu a efektivnějšímu zpracování uhlí.
-block.silicon-smelter.description = Redukuje písek vyčištěným uhlím, čímž vyrábí křemík.
-block.kiln.description = Taví písek a olovo na směs známou jako metasklo. Vyžaduje k běhu malé množství energie.
-block.plastanium-compressor.description = Produkuje plastanu z titanu a nafty.
-block.phase-weaver.description = Produkuje fázovou tkaninu z radioaktivního thoria a písku. Spotřebuje k tomu výrazné množství energie.
-block.alloy-smelter.description = Produkuje rázovou slitinu z titanu, olova, křemíku a mědi.
-block.cryofluid-mixer.description = Míchá vodu a jemný titanová prášek do chladící kapaliny, nezbytné například pro thoriový reaktor.
-block.blast-mixer.description = Drtí a míchá shluky spór s pyratitem, čímž vzniká výbušnina.
-block.pyratite-mixer.description = Míchá uhlí, olovo a písek do vysoce hořlavého pyratitu.
-block.melter.description = Taví šrot do roztaveného kovu pro další zpracování, nebo pro munici do střílny Vlna.
-block.separator.description = Odděluje z roztaveného kovu jednotlivé minerální součásti, které na výstupu zchlazuje do pevné formy.
-block.spore-press.description = Lisuje ze spór pod enormním tlakem naftu.
+liquid.water.description = Používá se pro chladící stroje a na zpracování odpadu.
+liquid.slag.description = Používá se v oddělovačích pro rozdělení na jednotlivé kovy, nebo je chrlena na protivníky z věží.
+liquid.oil.description = Používá se v pokročilé materiálové výrobě a jako zápalná munice.
+liquid.cryofluid.description = Používá se jako chladící kapalina v reaktorech, věžích a továrnách.
+
+block.resupply-point.description = Zásobuje okolní jednotky měděnou municí. Není kompatibilní s jednotkami, které vyžadují energii z baterie.
+block.armored-conveyor.description = Přepravuje předměty vpřed. Nepřijímá předměty ze stran.
+block.illuminator.description = Vydává světlo.
+block.message.description = Ukládá zprávu pro komunikaci mezi spojenci.
+block.graphite-press.description = Lisuje uhlí na grafit.
+block.multi-press.description = Lisuje uhlí na grafit. Vyžaduje vodu jako chladivo.
+block.silicon-smelter.description = Rafinuje křemík z písku a uhlí.
+block.kiln.description = Taví písek a olovo na metasklo.
+block.plastanium-compressor.description = Produkuje plastan z titanu a nafty.
+block.phase-weaver.description = Syntetizuje fázovou tkaninu z thoria a písku.
+block.alloy-smelter.description = Taví titan, olovo, křemík a měď na rázovou slitinu.
+block.cryofluid-mixer.description = Míchá vodu a jemný titanová prášek na chladící kapalinu.
+block.blast-mixer.description = Vyrábí výbušninu z pyratitu a shluků spór.
+block.pyratite-mixer.description = Míchá uhlí, olovo a písek na pyratit.
+block.melter.description = Taví šrot na strusku.
+block.separator.description = Odděluje ze strusky jednotlivé minerální součásti.
+block.spore-press.description = Lisuje skluhy spór na naftu.
block.pulverizer.description = Drtí šrot na jemný písek.
-block.coal-centrifuge.description = Tuhne naftu do kusů uhlí.
-block.incinerator.description = Vypaří jakékoliv nadbytečné předměty nebo kapaliny, které mu pošleš.
-block.power-void.description = Zničí jakoukoliv energii, kterou bloku pošleš. Jen pro režim Pískoviště.
-block.power-source.description = Nekonečný zdroj energie. Jen pro Pískoviště.
-block.item-source.description = Nekonečný zdroj předmětů. Jen pro Pískoviště.
-block.item-void.description = Zničí jakýkoliv vstupní předmět, který bloku pošleš. Jen pro Pískoviště.
-block.liquid-source.description = Nekonečný zdroj kapalin. Jen pro Pískoviště.
-block.liquid-void.description = Zničí jakoukoliv kapalinu, kterou bloku pošleš. Jen pro Pískoviště.
-block.copper-wall.description = Levný obranný blok.\nUžitečný k obraně Tvého jádra a střílen pro prvních několik vln nepřátel.
-block.copper-wall-large.description = Levný obranný blok.\nUžitečný k obraně Tvého jádra a střílen pro prvních několik vln nepřátel.\nZabírá více dlaždic.
-block.titanium-wall.description = Středně silný obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům.
-block.titanium-wall-large.description = Středně silný obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům.\nZabírá více dlaždic.
-block.plastanium-wall.description = Speciální typ zdi, která je schopná absorbovat energetické výboje a blokuje automaticky energetické vedení, například mezi uzly.
-block.plastanium-wall-large.description = Speciální typ zdi, která je schopná absorbovat energetické výboje a blokuje automaticky energetické vedení, například mezi uzly.\nZabírá více dlaždic.
-block.thorium-wall.description = Silný obranný blok.\nSlušná obrana před nepřáteli.
-block.thorium-wall-large.description = Silný obranný blok.\nSlušná obrana před nepřáteli.\nZabírá více dlaždic.
-block.phase-wall.description = Zeď potažená speciální odrazivou sloučeninou na fázové bázi. Odráží při nárazu většinu střel.
-block.phase-wall-large.description = Zeď potažená speciální odrazivou sloučeninou na fázové bázi. Odráží při nárazu většinu střel.\nZabírá více dlaždic.
-block.surge-wall.description = Extrémně odolný obranný blok.\nPři zásahu střelou akumuluje energii, kterou pak náhodně uvolňuje ve formě výboje.
-block.surge-wall-large.description = Extrémně odolný obranný blok.\nPři zásahu střelou akumuluje energii, kterou pak náhodně uvolňuje ve formě výboje.\nZabírá více dlaždic.
-block.door.description = Malé dveře, které se dají otevřít nebo zavřít kliknutím/tupnutím na ně.
-block.door-large.description = Velké dveře, které se dají otevřít nebo zavřít kliknutím/ťupnutím na ně.\nZabírají více dlaždic.
-block.mender.description = Pravidelně opravuje bloky ve svém poli působnosti. Dobré pro opravu obranného systému mezi vlnami.\nVolitelně lze využít křemíku pro posílení dosahu a efektivity.
-block.mend-projector.description = Vylepšená verze Opraváře. Opravuje bloky ve svém poli působnosti.\nVolitelně lze využít fízové tkaniny pro posílení dosahu a efektivity.
-block.overdrive-projector.description = Zrychluje funkce budov v okolí.\nVolitelně lze využít křemíku pro posílení dosahu a efektivity.
-block.force-projector.description = Vytvoří okolo sebe šestihrané silové pole, které chrání jednotky a budovy uvnitř před poškozením.\nPokud dostane moc poškození, tak se přehřeje. Volitelně lze použít chlazení pro snížení přehřívání a fázové tkaniny pro zvětšené dosahu štítu.
-block.shock-mine.description = Působí poškození nepřátelským jednotkám při sešlápnutí. Takřka neviditelné pro nepřátele (a i v nabídce bloků :) ).
-block.conveyor.description = Základní blok pro přepravu předmětů. Unáší předměty kupředu a automaticky plní vhodná úložiště (budovy, kontejnery, jádro), které po cestě potká. Lze jej otáčet dle potřeby.
-block.titanium-conveyor.description = Pokročilý blok pro přepravu předmětů. Přenáší předměty rychleji, než základní dopravník.
-block.plastanium-conveyor.description = Přesouvá položky v dávkích.\nPřijímá položky zezadu, a vykládá je do tří směrů vepředu.\nPro špičkový průchod vyžaduje několik nakládacích a vykládacích míst.
-block.junction.description = Chová se jako most pro dva křížící se pásy dopravníků. Užitečný při situaci, kdy dva rozdílné dopravníky dopravují dva rozdílné materiály přes jedno pole.
-block.bridge-conveyor.description = Pokročilý blok pro přepravu předmětů. Dovoluje transport předmětů až přes tři pole, a to přes jakýkoliv terén nebo budovu.
-block.phase-conveyor.description = Pokročilý blok pro přepravu předmětů. Využívá energii k teleportaci předmětů na vzdálenost několika dlaždic mezi jiným propojeným fázovým dopravníkem.
-block.sorter.description = Třídí předměty. Pokud je předmět shodný s výběrem, je poslán rovně dál. Jinak je předmět je odbočen do strany.
-block.inverted-sorter.description = Třídí předměty. Pokud je předmět shodný s výběrem, je odbočen do strany. Jinak je předmět je poslán rovně dál.
-block.router.description = Přijímá předměty z jednoho směru a posílá je rovnoměrně do zbylých tří směrů. Užitečný pro rozdělení předmětů z jednoho zdroje do různých cílů, jako odbočení z dopravníků a podobně.\n\n[scarlet]Pozor, nepoužívejte pro vstup do produkční budovy, jinak se bude ucpávat výstupními předměty[].
-block.distributor.description = Pokročilý směrovač. Rozděluje předměty rovnoměrně až do 7 dalších směrů.
-block.overflow-gate.description = Předměty jsou poslány do strany, pokud je směr vpřed zablokován. Užitečné například pro zpracování přebytečného materiálu, pokud je primární příjemce saturován.
-block.underflow-gate.description = Předměty jsou poslány vpřed, pokud je směr do strany zablokován. Užitečné například pro zpracování přebytečného materiálu, pokud je primární příjemce saturován.
-block.mass-driver.description = Ultimátní blok pro přepravu předmětů. Sebere několik předmětů a vystřelí je k dalšímu hromadnému směřovači přes několik dlaždic. Vyžaduje ke své funkci energii.
-block.mechanical-pump.description = Levné čerpadlo s pomalým průtokem, nevyžaduje však energii k provozu.
-block.rotary-pump.description = Pokročilé čerpadlo, které za pomoci energie vyčerpá větší množství kapalin, než standardní.
-block.thermal-pump.description = Ultimátní čerpadlo. Nejrychlejší čerpání kapalin.
-block.conduit.description = Základní blok pro přepravu kapalin. Unáší kapaliny vpřed. Používá se s čerpadly, v některých vrtech a nebo ve spojení s jiným potrubím.
-block.pulse-conduit.description = Pokročilý blok přepravy kapalin. Přepravuje kapaliny rychleji a má větší kapacitu, než základní potrubí.
-block.plated-conduit.description = Přenáší kapaliny stejně rychle jako pulzní potrubí, ale díky oplátování má větší výdržnost. Ze stran přijímá kapaliny pouze z dalších potrubí.\nV případě poškození má menší ztrátu kapaliny.
-block.liquid-router.description = Přijímá kapaliny z jednoho směru a vypouští je rovnoměrně do zbylých tří směrů. Dokáže pojmout i určitý objem kapalin do vnitřího úložiště. Používá se při rozdělení kapaliny z jednoho zdroje směřující do různých cílů.
-block.liquid-tank.description = Ukládá velké množství kapalin. Používá se pro vyrovnávání zásob vody, když je přítok nestabilní nebo jako záložní chlazení pro životně důležité stavby.
-block.liquid-junction.description = Chová se jako most pro dvě křížící se potrubí. Používá se v situacích, kdy dvě rozdílná potrubí vedou rozdílný obsah přes jedno místo.
-block.bridge-conduit.description = Pokročilý blok přepravy kapalin. Dovoluje přenášet kapaliny přes tři dlaždice napříč jakýmkoliv terénem nebo přes budovy.
-block.phase-conduit.description = Pokročilý blok pro přepravu kapalib. Využívá energii k teleportaci kapalin na vzdálenost několika dlaždic mezi jiným propojeným fázovým potrubím.
+block.coal-centrifuge.description = Přetváří naftu na uhlí.
+block.incinerator.description = Vypařuje jakékoliv předměty nebo kapaliny, které obdrží.
+block.power-void.description = Zničí jakoukoliv energii na vstupu. Jen v režimu Pískoviště.
+block.power-source.description = Nekonečný zdroj energie. Jen v režimu Pískoviště.
+block.item-source.description = Nekonečný zdroj předmětů. Jen v režimu Pískoviště.
+block.item-void.description = Zničí jakýkoliv vstupní předmět, který bloku pošleš. Jen v režimu Pískoviště.
+block.liquid-source.description = Nekonečný zdroj kapalin. Jen v režimu Pískoviště.
+block.liquid-void.description = Zničí jakoukoliv kapalinu, kterou bloku pošleš. Jen v režimu Pískoviště.
+block.copper-wall.description = Chrání konstrukce před nepřátelskými střelami.
+block.copper-wall-large.description = Chrání konstrukce před nepřátelskými střelami.
+block.titanium-wall.description = Chrání konstrukce před nepřátelskými střelami.
+block.titanium-wall-large.description = Chrání konstrukce před nepřátelskými střelami.
+block.plastanium-wall.description = Chrání konstrukce před nepřátelskými střelami. Pohlcuje laserové a elektrické výboje. Automaticky blokuje energetické spoje.
+block.plastanium-wall-large.description = Chrání konstrukce před nepřátelskými střelami. Absorbs lasers and electric arcs. Automaticky blokuje energetické spoje.
+block.thorium-wall.description = Chrání konstrukce před nepřátelskými střelami.
+block.thorium-wall-large.description = Chrání konstrukce před nepřátelskými střelami.
+block.phase-wall.description = Chrání konstrukce před nepřátelskými střelami, reflecting most bullets upon impact.
+block.phase-wall-large.description = Chrání konstrukce před nepřátelskými střelami, reflecting most bullets upon impact.
+block.surge-wall.description = Chrání konstrukce před nepřátelskými střelami. Při doteku opakovaně vydává elektrické výboje.
+block.surge-wall-large.description = Chrání konstrukce před nepřátelskými střelami. Při doteku opakovaně vydává elektrické výboje.
+block.door.description = Zeď, která může být otevřena a zavřena.
+block.door-large.description = Zeď, která může být otevřena a zavřena.
+block.mender.description = Opakovaně opravuje bloky ve svém dosahu.\nVolitelně umí použít křemík pro posílení dosahu a efektivity.
+block.mend-projector.description = Opakovaně opravuje bloky ve svém dosahu.\nVolitelně umí použít fázovou tkaninu pro posílení dosahu a efektivity.
+block.overdrive-projector.description = Zrychluje funkce budov v okolí.\nVolitelně umí využít fázovou tkaninu pro posílení dosahu a efektivity.
+block.force-projector.description = Vytváří okolo sebe šestiúhelníkové silové pole. Chrání konstrukce a jednotky uvnitř pole před poškozením.\nPřehřívá se, pokud obdrží moc poškození. Přehřátí lze eliminovat použitím chlazení. Fázová tkanina zvyšje velikost pole.
+block.shock-mine.description = Vydává elektrické výboje při dotyku nepřátelskou jednotkou.
+block.conveyor.description = Přepravuje předměty vpřed.
+block.titanium-conveyor.description = Přepravuje předměty vpřed. Rychlejší, než standardní dopravník.
+block.plastanium-conveyor.description = Přepravuje předměty vpřed in batches. Přijímá předměty zezadu, a vykládá je do tří směrů vpředu. Vyžaduje více nakládacích a vykládacích bodů pro špičkový průtok.
+block.junction.description = Funguje jako most pro dva křížící se dopravníky.
+block.bridge-conveyor.description = Přepravuje předměty přes terén nebo budovy.
+block.phase-conveyor.description = Okamžitě přepravuje předměty přes terén nebo budovy. Má delší dosah než standardní přemostění přepravníku, ale vyžaduje energii.
+block.sorter.description = Pokud vstupní položka odpovídá výběru, je předána vpřed. Jinak je vyložena napravo a nalevo.
+block.inverted-sorter.description = Podobné stanrdardní třídičce, ale vykládá vybrané položky do stran.
+block.router.description = Rozděluje vstupní položky rovnoměrně do tří výstupů.
+block.router.details = Nezbytné zlo. Použití hned u produkčních vstupů se nedoporučuje, protože budou ucpány výstupnímk položkami.
+block.distributor.description = Rozděluje vstupní položky rovnoměrně do sedmi výstupů.
+block.overflow-gate.description = Pokud je směr vpřed ucpán, posílá vstupní položky do stran. Nelze použít vedle jiné brány.
+block.underflow-gate.description = Pokud je směr do stran ucpán, posílá vstupní položky vpřed. Nelze použít vedle jiné brány.
+block.mass-driver.description = Konstrukce pro přepravu položek na velkou vzdálenost. Sesere dávku položek a vystřelí ji k dalšímu hromadnému přenašeči.
+block.mechanical-pump.description = Pumpuje kapalinu a předává ji dál. Nevyžaduje energii.
+block.rotary-pump.description = Pumpuje kapalinu a předává ji dál. Vyžaduje energii.
+block.thermal-pump.description = Pumpuje kapalinu a předává ji dál.
+block.conduit.description = Přepravuje kapaliny vpřed. Používá se spolu s pumpami a dalším potrubím.
+block.pulse-conduit.description = Přepravuje kapaliny vpřed. Přepravuje kapaliny rychleji a ukládá jich více, než standadní potrubí.
+block.plated-conduit.description = Přepravuje kapaliny vpřed. Nepřijímá kapaliny ze stran. Nemá úniky.
+block.liquid-router.description = Přijímá kapalinu z jednoho směru a vydává ji rovnomerně do tří ostatních stran. Umí též uchovat malé množství kapaliny.
+block.liquid-tank.description = Ukládá velké množství kapaliny. Předává ji do stran, podobně jako směřovač kapalin.
+block.liquid-junction.description = Funguje jako most pro dvě křížící se potrubí.
+block.bridge-conduit.description = Přepravuje kapalinu přes terén a budovy.
+block.phase-conduit.description = Přepravuje kapalinu přes terén a budovy. Má delší dosah než standardní přemostění potrubí, ale vyžaduje energii.
block.power-node.description = Přenáší energii mezi propojenými uzly. Uzel získává energii z nebo dodává energii do bloků ve svém poli působnosti.
block.power-node-large.description = Pokročilý energerický uzel. Má větší dosah než základní uzel.
-block.surge-tower.description = Energetický uzel s extrémním dosahem, ale méně dostupnými přípojkami pro ostatní bloky, než ostatní uzly.
-block.diode.description = Energie z baterie přes tento blok protéká jen jedním směrem, a to jen za podmínky, že a druhé straně je méně energie (například vybitá baterie).
-block.battery.description = Ukládá energii v případě nadbytku v síti a poskytuje energii kdykolik, když se energetické síti nedostává (záporný rozdíl).
-block.battery-large.description = Ukládá více energie, než základní baterie.
+block.surge-tower.description = Energetický uzel s dlouhým dosahem, ale méně dostupnými přípojkami pro ostatní bloky, než ostatní uzly.
+block.diode.description = Energie z baterie přes tento blok protéká jen jedním směrem, a to jen za podmínky, že na druhé straně je méně energie (například vybitá baterie).
+block.battery.description = Ukládá energii v případě nadbytku v síti a poskytuje energii kdykolik, když se energetické síti nedostává.
+block.battery-large.description = Ukládá energii v případě nadbytku v síti a poskytuje energii kdykolik, když se energetické síti nedostává. 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.steam-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 = Vytváří energii spalováním hořlavých materiálů a měněním vody na páru.
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.
-block.solar-panel-large.description = Výrazně efektivnější verze solárního panelu pro generování energie ze Slunce.
-block.thorium-reactor.description = Generuje významné množství energie z thoria. Vyžaduje nepřetržité chlazení. Je-li chlazen nedostatečně, způsobí značnou explozi. Výstup energie závisí na míře naplnění generátoru, základní generování energie se aktivuje při plné kapacitě.
-block.impact-reactor.description = Vyspělý generátor, schopný vytvářet při maximálním výkonu obrovská množství energie. Vyžaduje však značné množství energie pro nastartování celého procesu.
-block.mechanical-drill.description = Levný vrt. Při položení na vhodné pole (ruda, písek) natrvalo a pomalu produkuje odpovídající materiál. Umí těžit jen základní rudy.
+block.rtg-generator.description = Používá teplo z rozpadajících se radioaktivních materiálů k výrobě energie v malých dávkách.
+block.solar-panel.description = Vytváří malého množství energie ze Slunce.
+block.solar-panel-large.description = Vytváří malého množství energie ze Slunce. Efektivnější, než základní solárí panel.
+block.thorium-reactor.description = Generuje významné množství energie z thoria. Vyžaduje nepřetržité chlazení. Je-li chlazen nedostatečně, způsobí značnou explozi.
+block.impact-reactor.description = Vytváří při špičkové účinnosti velké množství energi. Vyspělý generátor, schopný vytvářet při maximálním výkonu obrovská množství energie. Vyžaduje však značné množství energie pro nastartování celého procesu.
+block.mechanical-drill.description = Když je umístěn na rudu, generuje donekonečna odpovídající položky, pomalou rychlostí. Použitelný jen pro těžení základních surovin.
block.pneumatic-drill.description = Vylepšený vrt, který je schopen těžit i titan. Těží vyšší rychlostí než mechanický vrt.
block.laser-drill.description = Vrtá rychleji než penumatický vrt díky laserové technologii, ale vyžaduje ke svému fungování energii. Dokáže navrtat i rudné žíly thoria.
block.blast-drill.description = Ultimátní vrt, vyžadující k provozu značné množství energie.
block.water-extractor.description = Extrahuje podzemní vodu. Vhodný pro místa, kde se nevyskytuje povrchová voda.
-block.cultivator.description = Kultivuje drobounké koncentrace spór v atmosféře do formy vhodné pro průmyslové využití spór.
+block.cultivator.description = Kultivuje drobounké koncentrace atmosférických spór do spórových polštářků.
+block.cultivator.details = Zachráněná technologie. Používá se k výrobě obrovského množství biomasy tak efektivně, jak jen to jde. Pravděpodobně se původně jednalo o inkubátor spó, které nyní pokrývají Serpulo.
block.oil-extractor.description = Vyžaduje značné množství energie, písku a vody na těžení nafty.
-block.core-shard.description = První verze jádra. Pokud je zničeno, veškerý kontakt s mapou je ztracen. Nedopusť, aby se to stalo.
-block.core-foundation.description = Druhá cerze jádra. Je lépe obrněná a pojme více surovin.
-block.core-nucleus.description = Třetí a konečná iterace vývoje jádra. Velmi dobře obrněná. Dokáže skladovat významné množství zdrojů.
+block.core-shard.description = Jádro základny. Pokud je zničena, sektor je ztracen.
+block.core-shard.details = První iterace. Kompaktní. Sebereplikující. Vybavená vysílacím pohonem na jedno použití. Není navržena pro meziplanetární cestování.
+block.core-foundation.description = Jádro základny. Dobře opevněná. Pojme více surovin, než základna Odstěpek.
+block.core-foundation.details = Druhá iterace.
+block.core-nucleus.description = Jádro základny. Velmi dobře opevněná. Dokáže skladovat enormní množství zdrojů.
+block.core-nucleus.details = Třetí a konečná iterace vývoje jádra.
block.vault.description = Ukládá velké množství předmětů od každého typu. K vyskladnění věcí z trezoru je možné použít odbavovač.
block.container.description = Ukládá menší množství předmětů od každého typu. K vyskladnění věcí z kontejneru je možné použít odbavovač.
-block.unloader.description = Vyskladňuje předměty z kontejneru, trezoru nebo jádra na dopravník nebo přímo do produktivních bloků. Druh předmětu pro vyskladnění lze nastavit kliknutím nebo ťupnutím na odbavovač.
-block.launch-pad.description = Vysílá dávky předmětů z mapy bez nutnosti vyslat zpět jádro.
-block.launch-pad-large.description = Vylepšená verze vysílací plošiny. Má větší úložný prostor a vysílá předměty z mapy častěji.
-block.duo.description = Malá, levná střílna. Užitečná proti pozemním jednotkám.
-block.scatter.description = Základní protivzdušná střílna. Střílí kusy olova, pláty šrotu nebo střepy metaskla na nepřátelské jednotky.
+block.unloader.description = Vyskladňuje vybrané položky z okolních bloků.
+block.launch-pad.description = Vysílá dávky předmětů do přilehlých sektorů.
+block.duo.description = Střílí střídavé dávky kulek na nepřátele.
+block.scatter.description = Střílí kusy olova, pláty šrotu nebo střepy metaskla na nepřátelské letectvo.
block.scorch.description = Sežehne pozemní jednotky blízkosti. Velmi efektivní na malé vzdálenosti.
-block.hail.description = Malá dělostřelecká střílna na delší vzdálenosti.
-block.wave.description = Středně velká střílna. Pálí po nepřítelích proudy kapaliny (například roztaveného kovu). Umí automaticky uhasit oheň, pokud je zásobena vodou.
-block.lancer.description = Středně velká střílna proti pozemním jednotkám. Po nabití se střílí mocné energetické paprsky.
-block.arc.description = Malá energetická střílna. Pálí výboje po nepřátelských jednotkách.
-block.swarmer.description = Středně velká střílna s raketami. Útočí na pozemní i vzdušné cíle. Pálí samonaváděcí střely.
-block.salvo.description = Větší, pokročilejší verze střílny Duo. Pálí na nepřátele rychlé dávky střel.
-block.fuse.description = Velká střílna s krátkým dosahem. Pálí trojici pronikavých výbuchů na blízké nepřátele.
-block.ripple.description = Extrémně silná dělostřelecká střílna. Pálí na dálku shluky střel na nepřátelské jednotky.
-block.cyclone.description = Velká protiletecká a protipozemní střílna. Pálí explodující dávky na nepřítele v okolí.
-block.spectre.description = Velká střílna s kanónem s dvěma hlavněmi. Střílí velké náboje, které pronikají brněním jak pozemních, tak vzdušných nepřátelských cílů.
-block.meltdown.description = Masivní laserový kanón. Nabije se a pak pálí nepřetržitý laserový paprsek na nepřátele v okolí. Vyžaduje ke své funkci chlazení.
-block.repair-point.description = Nepřetržitě léčí nejbližší poškozenou jednotku v poli své působnosti.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.hail.description = Střílí na dálku malé patrony na pozemní nepřátele.
+block.wave.description = Střílí po nepřátelích proudy kapaliny (například strusky). Umí automaticky uhasit oheň, pokud je zásobena vodou.
+block.lancer.description = Po nabití střílí mocné energetické paprsky na pozemní cíle.
+block.arc.description = Střílí výboje po pozemních jednotkách.
+block.swarmer.description = Střílí po nepřátelích samonaváděcí střely.
+block.salvo.description = Střílí na nepřátele rychlé dávky střel.
+block.fuse.description = Střílí trojici pronikavých výbuchů na blízké nepřátele.
+block.ripple.description = Střílí na dálku shluky střel na pozemní jednotky.
+block.cyclone.description = Střílí vybuchující dávky na blízké nepřátele.
+block.spectre.description = Střílí velké náboje, které pronikají brněním jak pozemních, tak vzdušných cílů.
+block.meltdown.description = Po nabití střílí nepřetržitý laserový paprsek na nepřátele v okolí. Vyžaduje ke své funkci chlazení.
+block.repair-point.description = Nepřetržitě opravuje nejbližší poškozenou jednotku v poli své působnosti.
+block.segment.description = Poškozuje a ničí příchozí střely. Laserové střely ale zacílit neumí.
+block.parallax.description = Střílí tažný paprsek, který přitahuje vzdušné cíle, a poškozuje je.
+block.tsunami.description = Střílí mocné proudy kapalin na nepřátele. Samočinně hasí oheň, pokud je zásobován vodou.
+block.silicon-crucible.description = Rafinuje křemík z písku a uhlí za použití pyratitu jako přídavného zdroje tepla. Účinnější na horkých místech.
+block.disassembler.description = Odděluje ze strusky stopové množství exotických minerálových součástí při malé účinnosti. Umí vyrobit thorium.
+block.overdrive-dome.description = Zvyšuje rychlost okolních konstrukcí. Vyžaduje ke svému fungování fázovou tkaninu a křemík.
+block.payload-conveyor.description = Přesouvá velké náklady, jako jednotky z továren.
+block.payload-router.description = Rozděluje vstuní náklad na 3 výstupní směry.
+block.command-center.description = Ovládá chování jednotky několika příkazy.
+block.ground-factory.description = Vyrábí pozemní jednotky. Výstupní jednotky mohou být použity přímo, nebo přesunuty do přestavovačů na vylepšení.
+block.air-factory.description = Vyrábí letecké jednotky. Výstupní jednotky mohou být použity přímo, nebo přesunuty do přestavovačů na vylepšení.
+block.naval-factory.description = Vyrání námořní jednotky. Výstupní jednotky mohou být použity přímo, nebo přesunuty do přestavovačů na vylepšení.
+block.additive-reconstructor.description = Vylepšuje vstupní jednotky na druhou úroveň.
+block.multiplicative-reconstructor.description = Vylepšuje vstupní jednotky na třetí úroveň.
+block.exponential-reconstructor.description = Vylepšuje vstupní jednotky na čtvrtou úroveň.
+block.tetrative-reconstructor.description =Vylepšuje vstupní jednotky na pátou, konečnou úroveň.
+block.switch.description = Přepínač. Jeho stav je možné číst a ovládat logickými procesory.
+block.micro-processor.description = Spouští posloupnost logických instrukcí ve smyčce. Dá se použít k ovládání jednotek a konstrukcí.
+block.logic-processor.description = Spouští posloupnost logických instrukcí ve smyčce. Dá se použít k ovládání jednotek a konstrukcí. Rychlejší než mikroprocesor.
+block.hyper-processor.description = Spouští posloupnost logických instrukcí ve smyčce. Dá se použít k ovládání jednotek a konstrukcí. Rychlejší než logický procesor.
+block.memory-cell.description = Ukládá informace z logického procesoru.
+block.memory-bank.description = Ukládá informace z logického procesoru. Větší kapacita.
+block.logic-display.description = Zobrazuje libovolnou grafiku z logického procesoru.
+block.large-logic-display.description = Zobrazuje libovolnou grafiku z logického procesoru.
+block.interplanetary-accelerator.description = Masivní elektromagnetická věž. Urychlí jádro na únikovou rychlost pro meziplanetární vyslání.
+
+unit.dagger.description = Střílí základní střely na všechny okolní nepřátele.
+unit.mace.description = Střílí proudy ohně na všechny okolní nepřátele.
+unit.fortress.description = Střílí dělostřelecké salvy na pozemní cíle.
+unit.scepter.description = Střílí palbu nabitých střel na všechny okolní nepřátele.
+unit.reign.description = Střílí palbu masivních střel pronikajících brněním na všechny okolní nepřátele.
+unit.nova.description = Střílí laserové výboje, které poškozují nepřátele a opravují spojenecké konstrukce. Je schopný letu.
+unit.pulsar.description = Střílí oblouky elektřiny, které poškozují nepřátele a opravují spojenecké struktury. Schopný letu.
+unit.quasar.description = Střílí pronikavé laserové paprsky, které poškozují nepřátele a opravují spojenecké struktury. Schopný letu. Oštítovaný.
+unit.vela.description = Střílí masivní nepřetržitý laserový paprsek, který poškozuje nepřátele, způsobuje požáry a opravuje spojenecké struktury. Schopný letu.
+unit.corvus.description = Střílí masivní laserový paprsek, který poškozuje nepřátele a opravuje spojenecké struktury. Může překonat většinu z terénů.
+unit.crawler.description = Běží směrem k nepřátelům, vybuchne a způsobí velkou explozi.
+unit.atrax.description = Střílí oslabující koule strusky na pozemní cíle. Může překonat většinu z terénů.
+unit.spiroct.description = Střílí mířené laserové paprsky na nepřátele, a zároveň se tím opravuje. Může překročit většinu terénu.
+unit.arkyid.description = Střílí velké mířené laserové paprsky na nepřátele, a zároveň se tím opravuje. Může překročit většinu terénu.
+unit.toxopid.description = Střílí na nepřátele velké elektrické kazetové střely a lasery pronikající brněním. Může překročit většinu z terénů.
+unit.flare.description = Střílí základní střely na okolní nepřátele.
+unit.horizon.description = Pouští shluky bomb na pozemní cíle.
+unit.zenith.description = Střílí salvy raket na všechny blízké nepřátele.
+unit.antumbra.description = Střílí palbu střel na všechny blízké nepřátele.
+unit.eclipse.description = Vystřelí dva pronikavé lasery a záplavu protivzdušných střel na všechny blízké nepřátele.
+unit.mono.description = Samočinně těží měď a olovo a ukládá je do jádra.
+unit.poly.description = Samočinně obnovuje poškozené konstrukce a pomáhá ostatním jednotkám při stavbě.
+unit.mega.description = Samočinně opravuje poškozené konstrukce. Je schopný přenést bloky a malé pozemní jednotky.
+unit.quad.description = Pouští velké bomby na pozemní cíle, opravuje spojenecké konstrukce a poškozuje nepřátele. Je schopen přenést středně velké pozemní jednotky.
+unit.oct.description = Chrání blízké spojence pomocí regeneračního štítu. Je schopen přenést většinu pozemních jednotek.
+unit.risso.description = Střílí palbu raket a střel na všechny blízké nepřátele.
+unit.minke.description = Střílí patrony a základní střely na blízké pozemní cíle.
+unit.bryde.description = Střílí na nepřátele dělostřelecké granáty a rakety dlouhého doletu.
+unit.sei.description = Střílí na nepřátele palbu raket a průbojných střel.
+unit.omura.description = Střílí na nepřátele průrazné šrouby s dlouhým doletem. Vytváří jednotky Záře.
+unit.alpha.description = Brání jádro Odštěpek před nepřáteli. Staví konstrukce.
+unit.beta.description = Brání jádro Základ před nepřáteli. Staví konstrukce.
+unit.gamma.description = Brání jádro Atom před nepřáteli. Staví konstrukce.
diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties
index b65afebcd3..093abdc4be 100644
--- a/core/assets/bundles/bundle_da.properties
+++ b/core/assets/bundles/bundle_da.properties
@@ -55,6 +55,7 @@ schematic.saved = Skabelon gemt.
schematic.delete.confirm = Denne skabelon vil være væk for altid.
schematic.rename = Omdøb skabelon
schematic.info = {0}x{1}, {2} blokke
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Invasionsbølger nedslået:[accent] {0}
stat.enemiesDestroyed = Fjender nedlagt:[accent] {0}
@@ -100,7 +101,6 @@ done = Færdig
feature.unsupported = Din enhed understøtter ikke denne funktion
mods.alphainfo = Vær opmærksom på at mods ikke er færdigudviklet.[scarlet]De kan indeholde mange fejl[].\n Hvis du oplever fejl can du reportére dem på Mindustry GitHub eller Discord.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [LIGHT_GRAY]Ingen mods fundet!
mods.guide = Modding guide
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Wave {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Wave in {0}
wave.waveInProgress = [lightgray]Wave in progress
waiting = [lightgray]Waiting...
waiting.players = Waiting for players...
wave.enemies = [lightgray]{0} Enemies Remaining
wave.enemy = [lightgray]{0} Enemy Remaining
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Load Image
saveimage = Save Image
unknown = Unknown
@@ -328,6 +331,7 @@ editor.generation = Generation:
editor.ingame = Edit In-Game
editor.publish.workshop = Publish On Workshop
editor.newmap = New Map
+editor.center = Center
workshop = Workshop
waves.title = Waves
waves.remove = Remove
@@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Ore Median
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Block
filter.option.floor = Floor
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Wall
filter.option.ore = Ore
filter.option.floor2 = Secondary Floor
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best Wave: {0}
-launch = < LAUNCH >
launch.text = Launch
-launch.title = Launch Successful
-launch.next = [lightgray]next opportunity at wave {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
+research.multiplayer = Only the host can research items.
uncover = Uncover
configure = Configure Loadout
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Paused >
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
@@ -613,6 +626,28 @@ stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Items: {0}
bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Build Progress
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -642,12 +680,15 @@ bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x fire rate
unit.blocks = blocks
+unit.blockssquared = blocks²
unit.powersecond = power units/second
unit.liquidsecond = liquid units/second
unit.itemssecond = items/second
@@ -670,7 +711,7 @@ category.power = Power
category.liquids = Liquids
category.items = Items
category.crafting = Input/Output
-category.shooting = Shooting
+category.function = Function
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows
@@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS
setting.fpscap.none = None
setting.fpscap.text = {0} FPS
-setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
+setting.uiscale.name = UI Scaling[lightgray] (requires restart)[]
setting.swapdiagonal.name = Always Diagonal Placement
setting.difficulty.training = Training
setting.difficulty.easy = Easy
@@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
setting.fps.name = Show FPS & Ping
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate
setting.minimap.name = Show Minimap
@@ -822,6 +861,7 @@ mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Items
content.liquid.name = Liquids
content.unit.name = Units
content.block.name = Blocks
+
item.copper.name = Copper
item.lead.name = Lead
item.coal.name = Coal
@@ -879,23 +921,6 @@ liquid.slag.name = Slag
liquid.oil.name = Oil
liquid.cryofluid.name = Cryofluid
-item.explosiveness = [lightgray]Explosiveness: {0}%
-item.flammability = [lightgray]Flammability: {0}%
-item.radioactivity = [lightgray]Radioactivity: {0}%
-
-unit.health = [lightgray]Health: {0}
-unit.speed = [lightgray]Speed: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Heat Capacity: {0}
-liquid.viscosity = [lightgray]Viscosity: {0}
-liquid.temperature = [lightgray]Temperature: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Sand Boulder
block.grass.name = Grass
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Salt
block.salt-wall.name = Salt Wall
block.pebbles.name = Pebbles
@@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader
block.vault.name = Vault
block.wave.name = Wave
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blue
team.crux.name = red
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties
index 5d02ed2f85..256bdc0ad3 100644
--- a/core/assets/bundles/bundle_de.properties
+++ b/core/assets/bundles/bundle_de.properties
@@ -20,8 +20,8 @@ gameover = Der Kern wurde zerstört.
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
highscore = [accent]Neuer Highscore!
copied = Kopiert.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = [accent]v6[] ist gerade in der [accent]Beta-Phase[].\n[lightgray]Das bedeutet:[]\n[scarlet]- Die Kampagne ist unfertig[]\n- Musik/SFX sind unfertig\n- Alles kann jederzeit verändert oder entfernt werden\n\nMelde Bugs und Abstürze auf [accent]Github[].
+indev.notready = Dieser Teil vom Spiel ist noch unfertig.
load.sound = Audio
load.map = Karten
@@ -55,6 +55,7 @@ schematic.saved = Entwurf gespeichert.
schematic.delete.confirm = Dieser Entwurf wird vollständig vernichtet.
schematic.rename = Entwurf umbenennen
schematic.info = {0}x{1}, {2} Blöcke
+schematic.disabled = [scarlet]Entwürfe deaktiviert[]\nAuf dieser [accent]Karte[] oder [accent]Server[] dürfen keine Entwürfe verwendet werden.
stat.wave = Wellen besiegt:[accent] {0}
stat.enemiesDestroyed = Gegner zerstört:[accent] {0}
@@ -62,15 +63,15 @@ stat.built = Gebäude gebaut:[accent] {0}
stat.destroyed = Gebäude zerstört:[accent] {0}
stat.deconstructed = Gebäude abgebaut:[accent] {0}
stat.delivered = Übertragene Ressourcen:
-stat.playtime = Time Played:[accent] {0}
+stat.playtime = Spielzeit:[accent] {0}
stat.rank = Finaler Rang:[accent] {0}
-globalitems = [accent]Global Items
+globalitems = [accent]Globale Items
map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest?
level.highscore = Highscore: [accent]{0}
level.select = Level-Auswahl
level.mode = Spielmodus:
-coreattack = < Die Basis wird angegriffen! >
+coreattack = < Der Kern wird angegriffen! >
nearpoint = [[ [scarlet]SOFORT DEN SPAWNPUNKT VERLASSEN[] ]\nVernichtung droht
database = Kern-Datenbank
savegame = Spiel speichern
@@ -100,35 +101,34 @@ done = Fertig
feature.unsupported = Dein System unsterstützt dieses Feature nicht.
mods.alphainfo = Vergiss nicht, dass Mods in der Alpha sind, und[scarlet] sehr fehlerhaft sein können[].\nMelde alle Probleme an den Mindustry GitHub oder Discord.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]Keine Mods gefunden!
mods.guide = Modding-Anleitung
mods.report = Problem melden
mods.openfolder = Mod-Verzeichnis öffnen
mods.reload = Neu laden
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reloadexit = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Aktiviert
mod.disabled = [scarlet]Deaktiviert
mod.disable = Deaktivieren
-mod.content = Content:
+mod.content = Inhalt:
mod.delete.error = Unfähig Mod zu löschen. Datei könnte in Benutzung sein.
mod.requiresversion = [scarlet]Benötigt mindestens Version:[accent] {0}
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
+mod.outdated = [scarlet]Nicht mit V6 kompatibel (no minGameVersion: 105)
mod.missingdependencies = [scarlet]Fehlende Abhängigkeiten: {0}
mod.erroredcontent = [scarlet]Inhalt-Fehler
mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten.
-mod.noerrorplay = [scarlet]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder fixe die Fehler, bevor du spielst.
+mod.noerrorplay = [scarlet]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder behebe die Fehler, bevor du spielst.
mod.nowdisabled = [scarlet]Mod '{0}' fehlen Abhängigkeiten:[accent] {1}\n[lightgray]Diese Mods müssen erst installiert werden.\nDieser Mod wird automatisch deaktiviert.
mod.enable = Aktivieren
mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
mod.reloadrequired = [scarlet]Neuladen benötigt
mod.import = Mod importieren
-mod.import.file = Import File
+mod.import.file = Datei importieren
mod.import.github = GitHub-Mod importieren
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
-mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
+mod.jarwarn = [scarlet]JAR Mods sind nicht sicher.[]\nInstalliere nur Mods von vertrauenswürdigen Quellen!
+mod.item.remove = Dies ist Teil vom [accent] '{0}'[] Mod. Deaktivieren sie diesen Mod, um dies zu entfernen.
mod.remove.confirm = Dieser Mod wird gelöscht.
mod.author = [lightgray]Autor:[] {0}
mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, das du ihn laden möchtest?\n[lightgray]Mods:\n{0}
@@ -139,8 +139,8 @@ mod.scripts.disable = Ihr Gerät unterstüzt keine Mods mit Scripts. Du musst di
about.button = Info
name = Name:
noname = Wähle zunächst einen[accent] Spielernamen[].
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = Planetenkarte
+launchcore = Kern starten
filename = Dateiname:
unlocked = Neuer Inhalt freigeschaltet!
completed = [accent]Abgeschlossen
@@ -148,11 +148,11 @@ techtree = Forschung
research.list = [lightgray]Forschung:
research = Erforschen
researched = [lightgray]{0} erforscht.
-research.progress = {0}% complete
+research.progress = Fortschritt: {0}%
players = {0} Spieler online
players.single = {0} Spieler online
-players.search = search
-players.notfound = [gray]no players found
+players.search = Suche
+players.notfound = [gray]Keine Spieler gefunden
server.closing = [accent]Schließe den Server ...
server.kicked.kick = Du wurdest vom Server geworfen!
server.kicked.whitelist = Du befindest dich nicht auf der Whitelist des Servers.
@@ -185,9 +185,9 @@ server.refreshing = Server wird aktualisiert
hosts.none = [lightgray]Keine LAN-Spiele gefunden!
host.invalid = [scarlet]Kann keine Verbindung zum Host herstellen.
-servers.local = Local Servers
-servers.remote = Remote Servers
-servers.global = Community Servers
+servers.local = Lokale Server
+servers.remote = Andere Server
+servers.global = Community-Server
trace = Spieler verfolgen
trace.playername = Spielername: [accent]{0}
@@ -212,7 +212,7 @@ confirmkick = Bist du sicher, dass du diesen Spieler rauswerfen willst?
confirmvotekick = Bist du sicher, dass du darüber abstimmen willst, diesen Spieler rauszuwerfen?
confirmunban = Bist du sicher, dass du die Verbannung des Spielers rückgängig machen willst?
confirmadmin = Bist du sicher, dass du diesen Spieler zu einem Administrator machen möchtest?
-confirmunadmin = Bis du sicher, dass dieser Spieler kein Administrator mehr sein soll?
+confirmunadmin = Bist du sicher, dass dieser Spieler kein Administrator mehr sein soll?
joingame.title = Spiel beitreten
joingame.ip = IP:
disconnect = Verbindung unterbrochen.
@@ -269,7 +269,7 @@ copylink = Link kopieren
back = Zurück
data.export = Daten exportieren
data.import = Daten importieren
-data.openfolder = Open Data Folder
+data.openfolder = Datenordner öffnen
data.exported = Daten exportiert.
data.invalid = Dies sind keine gültigen Spieldaten.
data.import.confirm = Der Import von externen Daten wird [scarlet] alle[] deine gegenwärtigen Spieldaten löschen.\n[accent]Das kann nicht rückgängig gemacht werden![]Sobald der Import abeschlossen ist, wird dein Spiel sofort beendet.
@@ -278,18 +278,21 @@ quit.confirm.tutorial = Weißt du, was du tust?\nDu kannst das Tutorial unter[ac
loading = [accent]Wird geladen...
reloading = [accent]Lade Mods neu...
saving = [accent]Speichere...
-respawn = [accent][[{0}][] to respawn in core
+respawn = [accent][[{0}][] um im Kern zu spawnen
cancelbuilding = [accent][[{0}][] um den Plan zu leeren
selectschematic = [accent][[{0}][] zum Auswählen+Kopieren
pausebuilding = [accent][[{0}][] um das Bauen zu pausieren
resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen
wave = [accent]Welle {0}
+wave.cap = [accent]Welle {0}/{1}
wave.waiting = Welle in {0}
wave.waveInProgress = [lightgray]Welle im Gange
waiting = Warten...
waiting.players = Warte auf Spieler...
wave.enemies = [lightgray]{0} Gegner verbleiben
wave.enemy = [lightgray]{0} Gegner verbleiben
+wave.guardianwarn = Boss erscheint in [accent]{0}[] Wellen.
+wave.guardianwarn.one = Boss erscheint in [accent]{0}[] Welle.
loadimage = Bild laden
saveimage = Bild speichern
unknown = Unbekannt
@@ -306,7 +309,7 @@ workshop.error = Fehler beim Laden von Workshop-Details: {0}
map.publish.confirm = Willst du diese Karte wirklich veröffentlichen?\n\n[lightgray]Vergewissere dich, dass du der Workshop-EULA zugestimmt hast, sonst tauchen deine Karten nicht auf!
workshop.menu = Wähle aus, was du mit diesem Objekt tun willst.
workshop.info = Objekt-Info
-changelog = Changelog (optional):
+changelog = Änderungen (optional):
eula = Steam EULA
missing = Dieses Objekt wurde gelöscht oder verschoben.\n[lightgray]Die Workshop-Auflistung ist nun automatisch getrennt worden.
publishing = [accent]Veröffentlichen...
@@ -328,16 +331,17 @@ editor.generation = Generator:
editor.ingame = Im Spiel Bearbeiten
editor.publish.workshop = Im Workshop veröffentlichen
editor.newmap = Neue Karte
+editor.center = Zur Mitte
workshop = Workshop
waves.title = Wellen
waves.remove = Entfernen
waves.never =
waves.every = alle
waves.waves = Welle(n)
-waves.perspawn = per Spawn
-waves.shields = shields/wave
+waves.perspawn = pro Spawn
+waves.shields = Schilder pro Welle
waves.to = bis
-waves.guardian = Guardian
+waves.guardian = Boss
waves.preview = Vorschau
waves.edit = Bearbeiten...
waves.copy = Aus der Zwischenablage kopieren
@@ -346,9 +350,9 @@ waves.invalid = Ungültige Wellen in der Zwischenablage.
waves.copied = Wellen kopiert.
waves.none = Keine Gegner definiert.\nInfo: Leere Wellenentwürfe werden automatisch mit dem Standard-Entwurf ersetzt.
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
+wavemode.counts = Menge
+wavemode.totals = Gesamtmenge
+wavemode.health = Lebenspunkte
editor.default = [lightgray]
details = Details
@@ -415,8 +419,9 @@ toolmode.drawteams.description = Zeichnet Teams statt Blöcke.
filters.empty = [lightgray]Keine Filter! Füge einen mit dem unteren Knopf hinzu.
filter.distort = Verzerren
filter.noise = Rauschen
-filter.enemyspawn = Enemy Spawn Select
-filter.corespawn = Core Select
+filter.enemyspawn = Gegnerischer Spawn Auswahl
+filter.spawnpath = Weg zum Spawn
+filter.corespawn = Kernauswahl
filter.median = Median
filter.oremedian = Erzmedian
filter.blend = Mischen
@@ -427,7 +432,7 @@ filter.mirror = Spiegel
filter.clear = Löschen
filter.option.ignore = Ignorieren
filter.scatter = Streuen
-filter.terrain = Terrain
+filter.terrain = Landschaft
filter.option.scale = Skalierung
filter.option.chance = Wahrscheinlichkeit
filter.option.mag = Größe
@@ -436,10 +441,11 @@ filter.option.circle-scale = Kreisskalierung
filter.option.octaves = Oktaven
filter.option.falloff = Rückgang
filter.option.angle = Winkel
-filter.option.amount = Amount
+filter.option.amount = Menge
filter.option.block = Block
filter.option.floor = Boden
filter.option.flooronto = Ziel Boden
+filter.option.target = Ziel
filter.option.wall = Wand
filter.option.ore = Erz
filter.option.floor2 = Sekundärer Boden
@@ -469,24 +475,18 @@ locked = Gesperrt
complete = [lightgray]Abschließen:
requirement.wave = Erreiche Welle {0} in {1}
requirement.core = Zerstöre den feindlichen Kern in {0}
-requirement.research = Research {0}
-requirement.capture = Capture {0}
-resume = Zu Zone zurückkehren:\n[lightgray]{0}
+requirement.research = Erforsche {0}
+requirement.capture = Erobere {0}
bestwave = [lightgray]Beste Welle: {0}
-launch = Starten
-launch.text = Launch
-launch.title = Start erfolgreich
-launch.next = [lightgray]Nächste Möglichkeit bei Welle {0}
-launch.unable2 = [scarlet]START nicht möglich.[]
-launch.confirm = Dies wird alle Ressourcen in deinen Kern übertragen.\nDu kannst nicht wieder zu dieser Karte zurückkehren.
-launch.skip.confirm = Wenn du die Wartezeit überspringst, kannst du den Kern bis zu einer späteren Welle nicht mehr starten.
+launch.text = Start
+research.multiplayer = Nur der Host kann forschen.
uncover = Freischalten
configure = Startitems festlegen
-loadout = Loadout
-resources = Resources
+loadout = Startitems
+resources = Ressourcen
bannedblocks = Gesperrte Blöcke
addall = Alle hinzufügen
-launch.destination = Destination: {0}
+launch.destination = Ziel: {0}
configure.invalid = Anzahl muss eine Zahl zwischen 0 und {0} sein.
zone.unlocked = [lightgray]{0} freigeschaltet.
zone.requirement.complete = Welle {0} erreicht:\n{1} Anforderungen der Zone erfüllt.
@@ -495,7 +495,7 @@ zone.objective = [lightgray]Ziel: [accent]{0}
zone.objective.survival = Überlebe
zone.objective.attack = Zerstöre den feindlichen Kern
add = Hinzufügen...
-boss.health = Boss-Lebenskraft
+boss.health = Boss-Lebenspunkte
connectfail = [crimson] Verbindung zum Server konnte nicht hergestellt werden: [accent]{0}
error.unreachable = Server nicht erreichbar.
@@ -508,19 +508,25 @@ error.io = Netzwerk-I/O-Fehler.
error.any = Unbekannter Netzwerkfehler.
error.bloom = Bloom konnte nicht initialisiert werden.\nEs kann sein, dass dein Gerät es nicht unterstützt.
-weather.rain.name = Rain
-weather.snow.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
+weather.rain.name = Regen
+weather.snow.name = Schnee
+weather.sandstorm.name = Sandsturm
+weather.sporestorm.name = Sporensturm
+weather.fog.name = Nebel
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
+sectors.unexplored = [lightgray]Unentdeckt
+sectors.resources = Ressourcen:
+sectors.production = Produktion:
+sectors.stored = Gelagert:
+sectors.resume = Weiterspielen
+sectors.launch = Start
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Sektor umbenennen
+sector.missingresources = [scarlet]Fehlende Kernressourcen
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sonne
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -550,7 +556,7 @@ settings.language = Sprache
settings.data = Spieldaten
settings.reset = Auf Standard zurücksetzen
settings.rebind = Zuweisen
-settings.resetKey = Reset
+settings.resetKey = Zurücksetzen
settings.controls = Steuerung
settings.game = Spiel
settings.sound = Audio
@@ -558,24 +564,30 @@ settings.graphics = Grafik
settings.cleardata = Spieldaten zurücksetzen...
settings.clear.confirm = Bist du sicher, dass du die Spieldaten zurücksetzen willst?\n Diese Aktion kann nicht rückgängig gemacht werden!
settings.clearall.confirm = [scarlet]WARNUNG![]\nDas wird jegliche Spieldaten zurücksetzen, inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Sobald du 'OK' drückst, wird alles zurückgesetzt und das Spiel schließt sich automatisch.
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
+settings.clearsaves.confirm = Möchtest du wirklich alle Speicherstände löschen?
+settings.clearsaves = Speicherstände löschen
+settings.clearresearch = Erforschungen löschen
+settings.clearresearch.confirm = Möchtest du wirklich alle Erforschungen löschen?
+settings.clearcampaignsaves = Kampagne-Speicherstände löschen
+settings.clearcampaignsaves.confirm = Möchtest du wirklich alle Kampagne-Speicherstände löschen?
paused = [accent]< Pausiert >
clear = Leeren
banned = [scarlet]Verbannt
-unplaceable.sectorcaptured = [scarlet]Requires captured sector
+unplaceable.sectorcaptured = [scarlet]Erfordert erforderter Sektor
yes = Ja
no = Nein
info.title = Info
error.title = [crimson]Ein Fehler ist aufgetreten
error.crashtitle = Ein Fehler ist aufgetreten!
unit.nobuild = [scarlet]Einheit kann nicht bauen!
+lastaccessed = [lightgray]Zuletzt konfiguriert: {0}
+block.unknown = [lightgray]???
+
stat.input = Eingang
stat.output = Ausgang
stat.booster = Verstärkung
-stat.tiles = Required Tiles
-stat.affinities = Affinities
-block.unknown = [lightgray]???
+stat.tiles = Erforderte Untergründe
+stat.affinities = Affinitäten
stat.powercapacity = Kapazität
stat.powershot = Stromverbrauch/Schuss
stat.damage = Schaden
@@ -585,15 +597,16 @@ stat.itemsmoved = Bewegungsgeschwindigkeit
stat.launchtime = Zeit zwischen Starts
stat.shootrange = Reichweite
stat.size = Größe
-stat.displaysize = Display Size
+stat.displaysize = Bildschirmgröße
stat.liquidcapacity = Flüssigkeitskapazität
stat.powerrange = Stromreichweite
-stat.linkrange = Link Range
-stat.instructions = Instructions
+stat.linkrange = Verbindungsradius
+stat.instructions = Befehle
stat.powerconnections = Maximale Stromverbindungen
stat.poweruse = Stromverbrauch
stat.powerdamage = Stromverbrauch/Schadenspunkt
stat.itemcapacity = Materialkapazität
+stat.memorycapacity = Speicherkapazität
stat.basepowergeneration = Basis-Stromerzeugung
stat.productiontime = Produktionszeit
stat.repairtime = Zeit zur vollständigen Reparatur
@@ -605,29 +618,52 @@ stat.boosteffect = Verstärkungseffekt
stat.maxunits = Max. aktive Einheiten
stat.health = Lebenspunkte
stat.buildtime = Baudauer
-stat.maxconsecutive = Max Consecutive
+stat.maxconsecutive = Max. Konsekutive
stat.buildcost = Baukosten
stat.inaccuracy = Ungenauigkeit
stat.shots = Schüsse
stat.reload = Schüsse/Sekunde
stat.ammo = Munition
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
+stat.shieldhealth = Schildlebenspunkte
+stat.cooldowntime = Cooldown-Zeit
+stat.explosiveness = Sprengkraft
+stat.basedeflectchance = Grundreflektionschance
+stat.lightningchance = Blitzwahrscheinlichkeit
+stat.lightningdamage = Blitzschaden
+stat.flammability = Brennbarkeit
+stat.radioactivity = Radioaktivität
+stat.heatcapacity = Hitzekapazität
+stat.viscosity = Viskosität
+stat.temperature = Temperatur
+stat.speed = Geschwindigkeit
+stat.buildspeed = Baugeschwindigkeit
+stat.minespeed = Abbaugeschwindigkeit
+stat.minetier = Abbau-Kraft
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Kommandier-Limit
+stat.abilities = Fähigkeiten
+
+ability.forcefield = Kraftfeld
+ability.repairfield = Heilungsfeld
+ability.statusfield = Statusfeld
+ability.unitspawn = {0} Fabrik
+ability.shieldregenfield = Schild-regenerations-Feld
bar.drilltierreq = Besserer Bohrer Benötigt
-bar.noresources = Missing Resources
-bar.corereq = Core Base Required
+bar.noresources = Fehlende Ressourcen
+bar.corereq = Kern-Basis erforderlich
bar.drillspeed = Bohrgeschwindigkeit: {0}/s
-bar.pumpspeed = Pump Speed: {0}/s
+bar.pumpspeed = Pumpengeschwindigkeit: {0}/s
bar.efficiency = Effizienz: {0}%
bar.powerbalance = Strom: {0}/s
bar.powerstored = Gespeichert: {0}/{1}
bar.poweramount = Strom: {0}
bar.poweroutput = Stromgenerierung: {0}
+bar.powerlines = Verbindungen: {0}/{1}
bar.items = Items: {0}
bar.capacity = Kapazität: {0}
bar.unitcap = {0} {1}/{2}
-bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled]
+bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[Einheit deaktiviert]
bar.liquid = Flüssigkeit
bar.heat = Hitze
bar.power = Strom
@@ -635,6 +671,8 @@ bar.progress = Baufortschritt
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Prozessorgesteuert
+
bullet.damage = [stat]{0}[lightgray] Schaden
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
bullet.incendiary = [stat]entzündend
@@ -642,12 +680,15 @@ bullet.homing = [stat]zielsuchend
bullet.shock = [stat]schockend
bullet.frag = [stat]explosiv
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
+bullet.pierce = [stat]{0}[lightgray]x Durchstechkraft
+bullet.infinitepierce = [stat]Durchstechkraft
bullet.freezing = [stat]frierend
bullet.tarred = [stat]teerend
bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator
bullet.reload = [stat]{0}[lightgray]x Feuerrate
unit.blocks = Blöcke
+unit.blockssquared = Blöcke²
unit.powersecond = Stromeinheiten/Sekunde
unit.liquidsecond = Flüssigkeitseinheiten/Sekunde
unit.itemssecond = Materialeinheiten/Sekunde
@@ -660,30 +701,29 @@ unit.persecond = /sek
unit.perminute = /min
unit.timesspeed = x Geschwindigkeit
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = Schildlebenspunkte
unit.items = Materialeinheiten
unit.thousands = k
-unit.millions = mil
-unit.billions = b
+unit.millions = Mio
+unit.billions = Mrd
category.general = Allgemeines
category.power = Strom
category.liquids = Flüssigkeiten
category.items = Materialien
category.crafting = Erzeugung
-category.shooting = Schießen
+category.function = Funktion
category.optional = Optionale Zusätze
setting.landscape.name = Landschaft sperren
setting.shadows.name = Schatten
setting.blockreplace.name = Automatische Blockvorschläge
setting.linear.name = Lineare Filterung
setting.hints.name = Tipps
-setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
+setting.flow.name = Ressourcen-Fluss anzeigen [scarlet] (experimentell)
setting.buildautopause.name = Bauen automatisch pausieren
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animiertes Wasser
setting.animatedshields.name = Animierte Schilde
setting.antialias.name = Antialias[lightgray] (Neustart erforderlich)[]
-setting.playerindicators.name = Player Indicators
+setting.playerindicators.name = Spieler-Indikatoren
setting.indicators.name = Verbündeten-Indikatoren
setting.autotarget.name = Auto-Zielauswahl
setting.keyboard.name = Maus+Tastatur Steuerung
@@ -702,7 +742,7 @@ setting.difficulty.name = Schwierigkeit:
setting.screenshake.name = Wackeleffekt
setting.effects.name = Effekte anzeigen
setting.destroyedblocks.name = Zerstörte Blöcke anzeigen
-setting.blockstatus.name = Display Block Status
+setting.blockstatus.name = Block-Status anzeigen
setting.conveyorpathfinding.name = Automatische Wegfindung beim Bau von Förderbändern
setting.sensitivity.name = Controller-Empfindlichkeit
setting.saveinterval.name = Autosave-Häufigkeit
@@ -711,16 +751,15 @@ setting.blockselecttimeout.name = Block-Auswahl Timeout
setting.milliseconds = {0} Millisekunden
setting.fullscreen.name = Vollbild
setting.borderlesswindow.name = Randloses Fenster [lightgray](Neustart vielleicht erforderlich)
-setting.fps.name = FPS zeigen
-setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Block Shortcuts anzeigen
+setting.fps.name = FPS anzeigen
+setting.smoothcamera.name = Sanfte Kamerabewegungen
setting.vsync.name = VSync
setting.pixelate.name = Verpixeln [lightgray](Könnte die Leistung beeinträchtigen)
setting.minimap.name = Zeige die Minimap
-setting.coreitems.name = Display Core Items (WIP)
+setting.coreitems.name = Kern-Items anzeigen (WIP)
setting.position.name = Spieler-Position anzeigen
setting.musicvol.name = Musiklautstärke
-setting.atmosphere.name = Show Planet Atmosphere
+setting.atmosphere.name = Planetatmosphäre zeigen
setting.ambientvol.name = Ambient-Lautstärke
setting.mutemusic.name = Musik stummschalten
setting.sfxvol.name = Audioeffekt-Lautstärke
@@ -728,10 +767,10 @@ setting.mutesound.name = Audioeffekte stummschalten
setting.crashreport.name = Anonyme Absturzberichte senden
setting.savecreate.name = Automatisch speichern
setting.publichost.name = Öffentliche Sichtbarkeit des Spiels
-setting.playerlimit.name = Player Limit
+setting.playerlimit.name = Spielerbegrenzung
setting.chatopacity.name = Chat-Deckkraft
setting.lasersopacity.name = Power-Laser-Deckkraft
-setting.bridgeopacity.name = Bridge Opacity
+setting.bridgeopacity.name = Brücken-Deckkraft
setting.playerchat.name = Chat im Spiel anzeigen
public.confirm = Willst du dein Spiel öffentlich zugänglich machen?\n[accent]Jeder kann deinem Spiel beitreten.\n[lightgray]Dies kann später in den Einstellung->Spielt->Öffentliches Spiel geändert werden.
public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen.
@@ -743,24 +782,24 @@ keybinds.mobile = [scarlet]Die meisten Tastenzuweisungen hier funktionieren auf
category.general.name = Allgemein
category.view.name = Ansicht
category.multiplayer.name = Mehrspieler
-category.blocks.name = Block Select
+category.blocks.name = Blockauswahl
command.attack = Angreifen
command.rally = Patrouillieren
command.retreat = Rückzug
command.idle = Idle
placement.blockselectkeys = \n[lightgray]Taste: [{0},
keybind.respawn.name = Respawn
-keybind.control.name = Control Unit
+keybind.control.name = Einheit steuern
keybind.clear_building.name = Bauplan löschen
keybind.press = Drücke eine Taste...
keybind.press.axis = Drücke eine Taste oder bewege eine Achse...
keybind.screenshot.name = Karten-Screenshot
keybind.toggle_power_lines.name = Power Lasers umschalten
-keybind.toggle_block_status.name = Toggle Block Statuses
+keybind.toggle_block_status.name = Blockstatus umschalten
keybind.move_x.name = X-Achse
keybind.move_y.name = Y-Achse
keybind.mouse_move.name = Der Maus folgen
-keybind.pan.name = Pan View
+keybind.pan.name = Kamera alleine bewegen
keybind.boost.name = Boost
keybind.schematic_select.name = Bereich auswählen
keybind.schematic_menu.name = Entwurfsmenü
@@ -788,9 +827,9 @@ keybind.diagonal_placement.name = Diagonal platzieren
keybind.pick.name = Block auswählen
keybind.break_block.name = Block zerstören
keybind.deselect.name = Auswahl aufheben
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
-keybind.command.name = Command
+keybind.pickupCargo.name = Block aufheben
+keybind.dropCargo.name = Block fallen lassen
+keybind.command.name = Eineiten kommandieren
keybind.shoot.name = Schießen
keybind.zoom.name = Zoomen
keybind.menu.name = Menü
@@ -801,7 +840,7 @@ keybind.chat.name = Chat
keybind.player_list.name = Spielerliste
keybind.console.name = Konsole
keybind.rotate.name = Drehen
-keybind.rotateplaced.name = Rotate Existing (Hold)
+keybind.rotateplaced.name = Gebauten Block drehen (gedrückt halten)
keybind.toggle_menus.name = Menüs umschalten
keybind.chat_history_prev.name = Chat Historie zurück
keybind.chat_history_next.name = Chat Historie vor
@@ -822,37 +861,39 @@ mode.custom = Angepasste Regeln
rules.infiniteresources = Unbegrenzte Ressourcen
rules.reactorexplosions = Reaktor-Explosionen
+rules.schematic = Entwürfe erlaubt
rules.wavetimer = Wellen-Timer
rules.waves = Wellen
rules.attack = Angriff-Modus
-rules.buildai = AI Building
+rules.buildai = KI kann bauen
rules.enemyCheat = Unbegrenzte Ressourcen für die KI (Rotes Team)
-rules.blockhealthmultiplier = Block Health Multiplier
-rules.blockdamagemultiplier = Block Damage Multiplier
-rules.unitbuildspeedmultiplier = Baugeschwindigkeit-Einheit Multiplikator
+rules.blockhealthmultiplier = Block-Lebenspunkte-Multiplikator
+rules.blockdamagemultiplier = Block-Schaden-Multiplikator
+rules.unitbuildspeedmultiplier = Baugeschwindigkeit-Einheit Multiplikator
rules.unithealthmultiplier = Lebenspunkte-Einheit Multiplikator
rules.unitdamagemultiplier = Schaden-Einheit Multiplikator
rules.enemycorebuildradius = Bauverbot Radius druch feindlichen Kern:[lightgray] (Kacheln)
rules.wavespacing = Wellen-Abstand:[lightgray] (Sek)
rules.buildcostmultiplier = Bau-Kosten Multiplikator
rules.buildspeedmultiplier = Bau-Schnelligkeit Multiplikator
-rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
+rules.deconstructrefundmultiplier = Abbau Ressourcen-Rückerstattung
rules.waitForWaveToEnd = Warten bis Welle endet
rules.dropzoneradius = Drop-Zonen-Radius:[lightgray] (Kacheln)
-rules.unitammo = Units Require Ammo
+rules.unitammo = Einheiten benötigen Munition
rules.title.waves = Wellen
rules.title.resourcesbuilding = Ressourcen & Gebäude
rules.title.enemy = Gegner
rules.title.unit = Einheiten
rules.title.experimental = Experimentell
-rules.title.environment = Environment
-rules.lighting = Lighting
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
-rules.ambientlight = Ambient Light
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.title.environment = Umgebung
+rules.lighting = Blitze
+rules.enemyLights = Gegnerisches Licht
+rules.fire = Feuer
+rules.explosions = Explosionsschaden
+rules.ambientlight = Umgebungslicht
+rules.weather = Wetter
+rules.weather.frequency = Häufigkeit:
+rules.weather.duration = Dauer:
content.item.name = Materialien
content.liquid.name = Flüssigkeiten
@@ -879,23 +920,6 @@ liquid.slag.name = Schlacke
liquid.oil.name = Öl
liquid.cryofluid.name = Kryoflüssigkeit
-item.explosiveness = [lightgray]Explosivität: {0}
-item.flammability = [lightgray]Entflammbarkeit: {0}
-item.radioactivity = [lightgray]Radioaktivität: {0}
-
-unit.health = [lightgray]Lebenskraft: {0}
-unit.speed = [lightgray]Geschwindigkeit: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Wärmekapazität: {0}
-liquid.viscosity = [lightgray]Viskosität: {0}
-liquid.temperature = [lightgray]Temperatur: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -904,11 +928,11 @@ unit.pulsar.name = Pulsar
unit.quasar.name = Quasar
unit.crawler.name = Crawler
unit.atrax.name = Atrax
-unit.spiroct.name = Spiroct
+unit.spiroct.name = Spirokt
unit.arkyid.name = Arkyid
unit.toxopid.name = Toxopid
unit.flare.name = Flare
-unit.horizon.name = Horizon
+unit.horizon.name = Horizont
unit.zenith.name = Zenith
unit.antumbra.name = Antumbra
unit.eclipse.name = Eclipse
@@ -916,7 +940,7 @@ unit.mono.name = Mono
unit.poly.name = Poly
unit.mega.name = Mega
unit.quad.name = Quad
-unit.oct.name = Oct
+unit.oct.name = Okt
unit.risso.name = Risso
unit.minke.name = Minke
unit.bryde.name = Bryde
@@ -928,30 +952,31 @@ unit.gamma.name = Gamma
unit.scepter.name = Scepter
unit.reign.name = Reign
unit.vela.name = Vela
-unit.corvus.name = Corvus
+unit.corvus.name = Korvus
-block.resupply-point.name = Resupply Point
+block.resupply-point.name = Nachlade-Punkt
block.parallax.name = Parallax
-block.cliff.name = Cliff
+block.cliff.name = Klippe
block.sand-boulder.name = Sandbrocken
block.grass.name = Gras
-block.slag.name = Slag
+block.slag.name = Schlacke
+block.space.name = Weltall
block.salt.name = Salz
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = Salzwand
block.pebbles.name = Geröll
block.tendrils.name = Ranken
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = Sandwand
block.spore-pine.name = Sporenkiefer
-block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
+block.spore-wall.name = Sporenwand
+block.boulder.name = Felsbrocken
+block.snow-boulder.name = Schneebrocken
block.snow-pine.name = Schnee-Kiefer
block.shale.name = Schiefer
block.shale-boulder.name = Schiefergeröll
block.moss.name = Moos
block.shrubs.name = Gestrüpp
block.spore-moss.name = Moossporen
-block.shale-wall.name = Shale Wall
+block.shale-wall.name = Schieferwand
block.scrap-wall.name = Schrottmauer
block.scrap-wall-large.name = Große Schrottmauer
block.scrap-wall-huge.name = Riesige Schrottmauer
@@ -967,8 +992,8 @@ block.core-foundation.name = Kern: Fundament
block.core-nucleus.name = Kern: Nukleus
block.deepwater.name = Tiefes Wasser
block.water.name = Wasser
-block.tainted-water.name = Unreines Wasser
-block.darksand-tainted-water.name = Unreines Wasser (Dunkler Sand)
+block.tainted-water.name = Dreckiges Wasser
+block.darksand-tainted-water.name = Dreckiges Wasser (Dunkler Sand)
block.tar.name = Teer
block.stone.name = Stein
block.sand.name = Sand
@@ -979,17 +1004,18 @@ block.craters.name = Krater
block.sand-water.name = Sandiges Wasser
block.darksand-water.name = Dunkles sandiges Wasser
block.char.name = Holzkohle
-block.dacite.name = Dacite
-block.dacite-wall.name = Dacite Wall
+block.dacite.name = Dazit
+block.dacite-wall.name = Dazitwand
+block.dacite-boulder.name = Dazitgeröll
block.ice-snow.name = Eisschnee
-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.stone-wall.name = Steinwand
+block.ice-wall.name = Eiswand
+block.snow-wall.name = Schneewand
+block.dune-wall.name = Dünenwand
block.pine.name = Kiefer
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
+block.dirt.name = Erde
+block.dirt-wall.name = Erdwand
+block.mud.name = Schlamm
block.white-tree-dead.name = Weißer Baum (tot)
block.white-tree.name = Weißer Baum
block.spore-cluster.name = Sporen-Cluster
@@ -1027,7 +1053,7 @@ block.hail.name = Hail
block.lancer.name = Lancer
block.conveyor.name = Förderband
block.titanium-conveyor.name = Titan-Förderband
-block.plastanium-conveyor.name = Plastanium Förderband
+block.plastanium-conveyor.name = Plastanium-Förderband
block.armored-conveyor.name = Gepanzertes Förderband
block.armored-conveyor.description = Bewegt Gegenstände genauso schnell wie das Titan-Förderband, ist aber besser gepanzert. Akzeptiert nur Verbindungen mit anderen Förderbändern.
block.junction.name = Kreuzung
@@ -1037,7 +1063,7 @@ block.sorter.name = Sortierer
block.inverted-sorter.name = Invertierter Sortierer
block.message.name = Nachricht
block.illuminator.name = Illuminierer
-block.illuminator.description = Eine kleine, kompakte, konfigurierbare Lichtquelle. Benötigt Strom.
+block.illuminator.description = Eine kleine, kompakte, konfigurierbare Lichtquelle. Benötigt Strom.
block.overflow-gate.name = Überlauftor
block.underflow-gate.name = Unterlauftor
block.silicon-smelter.name = Silizium-Schmelzer
@@ -1075,6 +1101,7 @@ block.power-source.name = Unendliche Stromquelle
block.unloader.name = Entlader
block.vault.name = Tresor
block.wave.name = Welle
+block.tsunami.name = Tsunami
block.swarmer.name = Schwärmer
block.salvo.name = Salve
block.ripple.name = Zerstörer
@@ -1114,37 +1141,39 @@ block.arc.name = Arcus
block.rtg-generator.name = RTG-Generator
block.spectre.name = Phantom
block.meltdown.name = Meltdown
-block.container.name = Container
+block.foreshadow.name = Foreshadow
+block.container.name = Behälter
block.launch-pad.name = Launchpad
block.launch-pad-large.name = Großes Launchpad
block.segment.name = Segment
-block.command-center.name = Command Center
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
-block.additive-reconstructor.name = Additive Reconstructor
-block.multiplicative-reconstructor.name = Multiplicative Reconstructor
-block.exponential-reconstructor.name = Exponential Reconstructor
-block.tetrative-reconstructor.name = Tetrative Reconstructor
-block.payload-conveyor.name = Mass Conveyor
-block.payload-router.name = Payload Router
-block.disassembler.name = Disassembler
-block.silicon-crucible.name = Silicon Crucible
-block.overdrive-dome.name = Overdrive Dome
+block.command-center.name = Kommandozentrale
+block.ground-factory.name = Bodenfabrik
+block.air-factory.name = Luftfabrik
+block.naval-factory.name = Wasserfabrik
+block.additive-reconstructor.name = Hinzufügender Rekonstrukteur
+block.multiplicative-reconstructor.name = Multiplikativer Rekonstrukteur
+block.exponential-reconstructor.name = Exponentieller Rekonstrukteur
+block.tetrative-reconstructor.name = Tetrativer Rekonstrukteur
+block.payload-conveyor.name = Einheitenförderband
+block.payload-router.name = Einheitverteiler
+block.disassembler.name = Großer Trenner
+block.silicon-crucible.name = Silizium Schmelztiegel
+block.overdrive-dome.name = Beschleunigungs-Maschine
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
+block.switch.name = Schalter
+block.micro-processor.name = Mikroprozessor
+block.logic-processor.name = Logikprozessor
+block.hyper-processor.name = Hyperprocessor
+block.logic-display.name = Logik-Bildschirm
+block.large-logic-display.name = Großer Logik-Bildschirm
+block.memory-cell.name = Speicherzelle
+block.memory-bank.name = Große Speicherzelle
team.blue.name = Blau
team.crux.name = Rot
team.sharded.name = Orange
team.orange.name = Orange
-team.derelict.name = Derelict
+team.derelict.name = Derelikt
team.green.name = Grün
team.purple.name = Lila
@@ -1302,4 +1331,4 @@ block.cyclone.description = Ein großer Schnellfeuer-Geschützturm.
block.spectre.description = Ein großer Geschützturm, der zwei starke Schüsse gleichzeitig abfeuert.
block.meltdown.description = Ein großer Geschützturm, der starke Strahlen mit großer Reichweite abfeuert.
block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Beschädigt und zerstört gegnerische Projektile. Laser werden nicht anvisiert.
diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties
index 6c24039d7e..dad6c44fa3 100644
--- a/core/assets/bundles/bundle_es.properties
+++ b/core/assets/bundles/bundle_es.properties
@@ -8,8 +8,8 @@ link.github.description = Código fuente del juego
link.changelog.description = Lista de actualizaciones
link.dev-builds.description = Versiones en desarrollo inestables
link.trello.description = Tablero de Trello oficial para las características planificadas
-link.itch.io.description = itch.io es la página donde podes descargar las versiones para PC y web
-link.google-play.description = Página de Mindustry en Google Play Store
+link.itch.io.description = itch.io es la página donde podes descargar las versiones para PC y Servidor
+link.google-play.description = Ficha en la Google Play Store
link.f-droid.description = Página de F-Droid del juego
link.wiki.description = Wiki oficial de Mindustry
link.suggestions.description = Sugerir nuevas funciones
@@ -20,8 +20,10 @@ gameover = Tu núcleo ha sido destruido.
gameover.pvp = ¡El equipo[accent] {0}[] ha ganado!
highscore = [accent]¡Nuevo récord de puntuación!
copied = Copiado.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+
+indev.popup = [accent]v6[] esta actualmente en [accent]alpha[].\n[lightgray]Esto significa que:[]\n[scarlet]- El modo de campaña no esta totalmente acabado[]\n-Falta contenido dentro del juego\n - Mucha de la [scarlet]AI de enemigos[] no funciona totalmente\n- Algunas unidades todavia no estan acabadas\n- Todo lo que ves es probable que sea cambiado o removido.\n\nReporta bugs o crasheos en [accent]Github[].
+indev.notready = Esta parte del juego no esta lista todavia.
+
load.sound = Sonidos
load.map = Mapas
@@ -55,6 +57,7 @@ schematic.saved = Esquemático guardado.
schematic.delete.confirm = Esto esquemático será completamente borrado.
schematic.rename = Renombrar esquemático
schematic.info = {0}x{1}, {2} bloques
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Oleadas Derrotadas:[accent] {0}
stat.enemiesDestroyed = Enemigos Destruidos:[accent] {0}
@@ -100,22 +103,21 @@ done = Hecho
feature.unsupported = Tu dispositivo no soporta esta función.
mods.alphainfo = Ten en cuenta que los mods estan en versión Alpha, y[scarlet] pueden tener varios problemas[].\nReporta cualquier error que encuentres en la página de GitHub de Mindustry o Discord.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]No se encontraron Mods!
-mods.guide = Guia de Modding
+mods.guide = Guía de Modding
mods.report = Reportar Error
mods.openfolder = Abrir carpeta de mods
-mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reload = Recargar
+mods.reloadexit = El juego se va a cerrar para recargar los mods.
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Activado
mod.disabled = [scarlet]Desactivado
mod.disable = Desactivar
-mod.content = Content:
+mod.content = Contenido:
mod.delete.error = Fallo al elminar el mod. Quizás el archivo esta en uso.
mod.requiresversion = [scarlet]Requiere mínima versión del juego: [accent]{0}
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
+mod.outdated = [scarlet]No es compatible con la V6 (no minGameVersion: 105)
mod.missingdependencies = [scarlet]Dependencias faltantes: {0}
mod.erroredcontent = [scarlet]Errores de contenido
mod.errors = Ocurrieron fallos al cargar el contenido.
@@ -125,9 +127,11 @@ mod.enable = Activar
mod.requiresrestart = El juego se cerrará para aplicar los mods.
mod.reloadrequired = [scarlet]Se requiere actualizar
mod.import = Importar mod
-mod.import.file = Import File
+
+mod.import.file = Importar archivo
mod.import.github = Importar Mod de Github
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
+mod.jarwarn = [scarlet]Los mods JAR pueden ser inseguros.[]\nAsegúrate de que los descargaste de una fuente segura!
+
mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod.
mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar?
mod.author = [lightgray]Autor:[] {0}
@@ -139,8 +143,8 @@ mod.scripts.disable = Tu dispositivo no soporta los mods con scripts. Debes desh
about.button = Acerca de
name = Nombre:
noname = Elige un[accent] nombre de jugador[] primero.
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = Mapa del planeta
+launchcore = Lanzar núcleo
filename = Nombre del archivo:
unlocked = ¡Nuevo Bloque Desbloqueado!
completed = [accent]Completado
@@ -148,7 +152,7 @@ techtree = Árbol de Tecnologías
research.list = [lightgray]investigación:
research = Investigación
researched = [lightgray]{0} investigado.
-research.progress = {0}% complete
+research.progress = {0}% completado
players = {0} jugadores online
players.single = {0} jugador online
players.search = buscar
@@ -278,18 +282,23 @@ quit.confirm.tutorial = ¿Estás seguro de que sabes qué estas haciendo?\nSe pu
loading = [accent]Cargando...
reloading = [accent]Recargando mods...
saving = [accent]Guardando...
-respawn = [accent][[{0}][] to respawn in core
+
+respawn = [accent][[{0}][] para respawnear en el nucleo
+
cancelbuilding = [accent][[{0}][] para limpiar el plan
selectschematic = [accent][[{0}][] para seleccionar+copiar
pausebuilding = [accent][[{0}][] para pausar la construcción
resumebuilding = [scarlet][[{0}][] para resumir la construcción
wave = [accent]Oleada {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = Oleada en {0}
wave.waveInProgress = [lightgray]Oleada en progreso
waiting = Esperando...
waiting.players = Esperando jugadores...
wave.enemies = [lightgray]{0} Enemigos Restantes
wave.enemy = [lightgray]{0} Enemigo Restante
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Cargar Imagen
saveimage = Guardar Imagen
unknown = Desconocido
@@ -328,6 +337,7 @@ editor.generation = Generación:
editor.ingame = Editar dentro del juego
editor.publish.workshop = Publicar en el Steam Workshop
editor.newmap = Nuevo Mapa
+editor.center = Center
workshop = Steam Workshop
waves.title = Oleadas
waves.remove = Borrar
@@ -346,9 +356,11 @@ waves.invalid = Oleadas inválidaas en el portapapeles.
waves.copied = Oleadas copiadas.
waves.none = No hay enemigos definidos.\nNótese que las listas de oleadas vacías se sustituirán por la lista por defecto.
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
+
+wavemode.counts = Cuentas
+wavemode.totals = Totales
+wavemode.health = Salud
+
editor.default = [lightgray]
details = Detalles...
@@ -415,8 +427,9 @@ toolmode.drawteams.description = Dibuja equipos en vez de bloques.
filters.empty = [lightgray]¡No hay filtros! Añade uno con el botón de abajo.
filter.distort = Distorsionar
filter.noise = Ruido
-filter.enemyspawn = Enemy Spawn Select
-filter.corespawn = Core Select
+filter.enemyspawn = Elegir punto de aparición enemigo
+filter.spawnpath = Path To Spawn
+filter.corespawn = Elegir Núcleo
filter.median = Median
filter.oremedian = Veta Median
filter.blend = Mezcla
@@ -436,10 +449,11 @@ filter.option.circle-scale = Escala del círculo
filter.option.octaves = Octaves
filter.option.falloff = Caída
filter.option.angle = Ángulo
-filter.option.amount = Amount
+filter.option.amount = Cantidad
filter.option.block = Bloque
filter.option.floor = Suelo
filter.option.flooronto = Suelo objetivo
+filter.option.target = Target
filter.option.wall = Muro
filter.option.ore = Veta
filter.option.floor2 = Piso secundario
@@ -471,15 +485,9 @@ requirement.wave = Alcanzar la oleada {0} en {1}
requirement.core = Destruir el núcleo enemigo en {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Continuar Zona:\n[lightgray]{0}
bestwave = [lightgray]Récord: {0}
-launch = Lanzar
launch.text = Launch
-launch.title = Lanzamiento Exitoso
-launch.next = [lightgray]próxima oportunidad en la oleada {0}
-launch.unable2 = [scarlet]No se puede LANZAR.[]
-launch.confirm = Esto lanzará todos los recursos al núcleo.\nNo podrás volver a esta base.
-launch.skip.confirm = Si saltas la oleada ahora, no podrás lanzar recursos hasta unas oleadas después.
+research.multiplayer = Only the host can research items.
uncover = Descubrir
configure = Configurar carga inicial
loadout = Loadout
@@ -508,43 +516,51 @@ error.io = Error I/O de conexión.
error.any = Error de red desconocido.
error.bloom = Error al cargar el bloom.\nPuede que tu dispositivo no soporte esta característica.
-weather.rain.name = Rain
-weather.snow.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
+weather.rain.name = Lluvia
+weather.snow.name = Nieve
+weather.sandstorm.name = Tormenta de arena
+weather.sporestorm.name = Tormenta de esporas
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
-sectors.nonelaunch = [lightgray]none (sun)
+weather.fog.name = Niebla
-sector.groundZero.name = Ground Zero
-sector.craters.name = The Craters
-sector.frozenForest.name = Frozen Forest
-sector.ruinousShores.name = Ruinous Shores
-sector.stainedMountains.name = Stained Mountains
-sector.desolateRift.name = Desolate Rift
-sector.nuclearComplex.name = Nuclear Production Complex
-sector.overgrowth.name = Overgrowth
-sector.tarFields.name = Tar Fields
-sector.saltFlats.name = Salt Flats
-sector.fungalPass.name = Fungal Pass
+sectors.unexplored = [lightgray]No explorado
+sectors.resources = Recursos:
+sectors.production = Producción:
+sectors.stored = Almacenado:
+sectors.resume = Reanudar
+sectors.launch = Lanzar
+sectors.select = Elegir
+sectors.nonelaunch = [lightgray]ninguno (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insuficientes recursos
-sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
-sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
-sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
-sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
-sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
-sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
-sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
-sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
-sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
-sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
+planet.serpulo.name = Serpulo
+planet.sun.name = Sol
+
+sector.groundZero.name = Zona de impacto
+sector.craters.name = Los Cráteres
+sector.frozenForest.name = Bosque Congelado
+sector.ruinousShores.name = Costas Ruinosas
+sector.stainedMountains.name = Montañas manchadas
+sector.desolateRift.name = Grieta desolada
+sector.nuclearComplex.name = Complejo de producción nuclear
+sector.overgrowth.name = Crecimiento excesivo
+sector.tarFields.name = Campos de alquitrán
+sector.saltFlats.name = Llanuras de sal
+sector.fungalPass.name = Paso de hongos
+
+
+sector.groundZero.description = La ubicación óptima para empezar una vez más. Baja amenaza enemiga. Pocos recursos.\nReúna la mayor cantidad de plomo y cobre posible.\nSiga adelante.
+sector.frozenForest.description = Incluso aquí, más cerca de las montañas, las esporas se han extendido. Las gélidas temperaturas no pueden contenerlos para siempre.\n\nComienza la aventura hacia el poder. Construye generadores de combustión. Aprenda a usar reparadores.
+sector.saltFlats.description = En las afueras del desierto se encuentran las Salinas. Se pueden encontrar pocos recursos en esta ubicación.\n\nEl enemigo ha erigido un complejo de almacenamiento de recursos aquí. Erradicar su núcleo. No dejes nada en pie.
+sector.craters.description = El agua se ha acumulado en este cráter, reliquia de las viejas guerras. Recupere el área. Recoge arena. Fundir metavidrio. Bombee agua para enfriar torretas y taladros.
+sector.ruinousShores.description = Más allá de los páramos, está la costa. Una vez, esta ubicación albergó una serie de defensa costera. No queda mucho. Solo las estructuras de defensa más básicas han quedado ilesas, todo lo demás reducido a chatarra.\nContinúe la expansión hacia afuera. Redescubra la tecnología.
+sector.stainedMountains.description = Más tierra adentro se encuentran las montañas, pero no contaminadas por esporas.\nExtraiga el abundante titanio de esta zona. Aprenda como usarlo.\n\nLa presencia enemiga es mayor aquí. No les des tiempo para enviar sus unidades más fuertes.
+sector.overgrowth.description = Esta área está cubierta de maleza, más cerca de la fuente de las esporas.\nEl enemigo ha establecido un puesto de avanzada aquí. Construye unidades Titán. Destruyelo. Recupera lo que se perdió.
+sector.tarFields.description = Las afueras de una zona de producción de petróleo, entre la montaña y el desierto. Una de las pocas áreas con reservas de alquitrán utilizables.\nAunque está abandonada, esta zona tiene algunas fuerzas enemigas peligrosas cerca. No los subestimes.\n\n[lightgray]Investigue la tecnología de procesamiento de aceite si es posible.
+sector.desolateRift.description = Una zona extremadamente peligrosa. Recursos abundantes, pero poco espacio. Alto riesgo de destrucción. Vete lo antes posible. No se deje engañar por el gran intervalo entre los ataques enemigos.
+sector.nuclearComplex.description = Antigua instalación de producción y procesamiento de torio, reducida a ruinas.\n[lightgray] Investiga el torio y sus múltiples usos.\n\nEl enemigo está presente aquí en gran número, constantemente en busca de atacantes.
+sector.fungalPass.description = Un área de transición entre montañas altas y tierras bajas plagadas de esporas. Aquí se encuentra una pequeña base de reconocimiento enemiga.\nDestroy it.\nUsa unidades Dagger y Crawler. Saca los dos núcleos de funcionamiento!
settings.language = Idioma
settings.data = Datos del Juego
@@ -558,24 +574,33 @@ settings.graphics = Gráficos
settings.cleardata = Limpiar Datos del Juego...
settings.clear.confirm = ¿Estas seguro de querer limpiar estos datos?\n¡Esta acción no puede deshacerse!
settings.clearall.confirm = [scarlet]ADVERTENCIA![]\nEsto va a eliminar todos tus datos, incluyendo guardados, mapas, desbloqueos y atajos de teclado.\nUna vez presiones 'ok', el juego va a borrrar todos tus datos y saldrá del juego automáticamente.
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
+
+settings.clearsaves.confirm = Estas seguro de que quieres borrar tus partidas guardadas?
+settings.clearsaves = Limpiar partidas guardadas
+settings.clearresearch = Borrar descubrimientos
+settings.clearresearch.confirm = Estas seguro?
+settings.clearcampaignsaves = Borrar Guardados de campaña
+settings.clearcampaignsaves.confirm = Estas seguro de que quieres borrar tus partidas guardadas en el modo campaña?
+
paused = [accent] < Pausado >
clear = Limpiar
banned = [scarlet]Baneado
-unplaceable.sectorcaptured = [scarlet]Requires captured sector
+unplaceable.sectorcaptured = [scarlet]Necesita que el sector esté capturado.
yes = Sí
no = No
info.title = [accent]Información
error.title = [crimson]Un error ha ocurrido.
error.crashtitle = Un error ha ocurrido.
-unit.nobuild = [scarlet]Unit can't build
+
+unit.nobuild = [scarlet]La unidad no puede construir
+lastaccessed = [lightgray]Anteriormente usado: {0}
+block.unknown = [lightgray]???
+
stat.input = Entrada
stat.output = Salida
stat.booster = Potenciador
stat.tiles = Tiles requeridos
stat.affinities = Afinidades
-block.unknown = [lightgray]???
stat.powercapacity = Capacidad de Energía
stat.powershot = Energía/Disparo
stat.damage = Daño
@@ -585,15 +610,16 @@ stat.itemsmoved = Velocidad de movimiento
stat.launchtime = Tiempo entre lanzamientos
stat.shootrange = Rango de Disparo
stat.size = Tamaño
-stat.displaysize = Display Size
+stat.displaysize = Tamaño mostrado
stat.liquidcapacity = Capacidad de Líquidos
stat.powerrange = Rango de Energía
-stat.linkrange = Link Range
+stat.linkrange = Rango de conexión
stat.instructions = Instructions
stat.powerconnections = Conexiones maximas
stat.poweruse = Consumo de Energía
stat.powerdamage = Energía/Daño
stat.itemcapacity = Capacidad de Objetos
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Generación de energía base
stat.productiontime = Tiempo de producción
stat.repairtime = Tiempo para Reparar Bloque Completamente
@@ -605,18 +631,41 @@ stat.boosteffect = Efecto del Potenciador
stat.maxunits = Máximo de Unidades Activas
stat.health = Vida
stat.buildtime = Tiempo de construcción
-stat.maxconsecutive = Max Consecutive
+stat.maxconsecutive = Máximo consecutivo
stat.buildcost = Coste de construcción
stat.inaccuracy = Imprecisión
stat.shots = Disparos
stat.reload = Recarga
stat.ammo = Munición
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
+stat.shieldhealth = Salud del escudo
+stat.cooldowntime = Tiempo de enfriamiento
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Probabilidad de desvío base
+stat.lightningchance = Probabilidad de rayo
+stat.lightningdamage = Daño por rayo
+stat.flammability = Inflamabilidad
+stat.radioactivity = Radiactividad
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosidad
+stat.temperature = Temperatura
+stat.speed = Velocidad
+stat.buildspeed = Velocidad de construcción
+stat.minespeed = Velocidad de la mina
+stat.minetier = Nivel de mina
+stat.payloadcapacity = Capacidad de carga útil
+stat.commandlimit = Límite de comando
+stat.abilities = Habilidades
+
+skill.forcefield = Campo de fuerza
+skill.repairfield = Campo de reparación
+skill.statusfield = Campo de estado
+skill.unitspawn = {0} Fábrica
+skill.shieldregenfield = Campo de regeneración del escudo
bar.drilltierreq = Se requiere un mejor taladro.
-bar.noresources = Missing Resources
-bar.corereq = Core Base Required
+bar.noresources = Recursos faltantes
+bar.corereq = Se requiere de un núcleo base
+
bar.drillspeed = Velocidad del Taladro: {0}/s
bar.pumpspeed = Velocidad de bombeado: {0}/s
bar.efficiency = Eficiencia: {0}%
@@ -624,6 +673,7 @@ bar.powerbalance = Energía: {0}
bar.powerstored = Almacenados: {0}/{1}
bar.poweramount = Energía: {0}
bar.poweroutput = Salida de Energía: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Objetos: {0}
bar.capacity = Capacidad: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +685,8 @@ bar.progress = Progreso de construcción
bar.input = Entrada
bar.output = Salida
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] daño
bullet.splashdamage = [stat]{0}[lightgray] daño de área ~[stat] {1}[lightgray] casillas
bullet.incendiary = [stat]Incendiaria
@@ -642,12 +694,15 @@ bullet.homing = [stat]Rastreadora
bullet.shock = [stat]Electrizante
bullet.frag = [stat]Explosiva
bullet.knockback = [stat]{0}[lightgray]Retroceso
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]Congelación
bullet.tarred = [stat]Relantizado
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munición
bullet.reload = [stat]{0}[lightgray]x recarga
unit.blocks = bloques
+unit.blockssquared = blocks²
unit.powersecond = unidades de energía/segundo
unit.liquidsecond = unidades de líquido/segundo
unit.itemssecond = objetos/segundo
@@ -660,7 +715,9 @@ unit.persecond = /seg
unit.perminute = /min
unit.timesspeed = x velocidad
unit.percent = %
-unit.shieldhealth = shield health
+
+unit.shieldhealth = Vida del escudo
+
unit.items = objetos
unit.thousands = k
unit.millions = M
@@ -670,20 +727,21 @@ category.power = Energía
category.liquids = Líquidos
category.items = Objetos
category.crafting = Fabricación
-category.shooting = Disparo
+category.function = Function
category.optional = Mejoras Opcionales
setting.landscape.name = Bloquear modo paisaje
setting.shadows.name = Sombras
setting.blockreplace.name = Sugerir bloques al construir
setting.linear.name = Filtrado Lineal
setting.hints.name = Pistas
-setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
+
+setting.flow.name = Mostrar tasa de flujo de recursos[scarlet] (experimental)
setting.buildautopause.name = Auto-pausar construcción
-setting.mapcenter.name = Auto Center Map To Player
+
setting.animatedwater.name = Agua Animada
setting.animatedshields.name = Escudos Animados
-setting.antialias.name = Antialias[lightgray] (necesita reiniciar)[]
-setting.playerindicators.name = Player Indicators
+setting.antialias.name = Antialias[lightgray] (necesita un reinicio)[]
+setting.playerindicators.name = Indicadores de jugadores
setting.indicators.name = Indicadores de Aliados
setting.autotarget.name = Auto apuntado
setting.keyboard.name = Controles de Ratón+Teclado
@@ -702,7 +760,7 @@ setting.difficulty.name = Dificultad:
setting.screenshake.name = Movimiento de la Pantalla
setting.effects.name = Mostrar Efectos
setting.destroyedblocks.name = Mostrar bloques destruidos
-setting.blockstatus.name = Display Block Status
+setting.blockstatus.name = Mostrar estado de los bloques
setting.conveyorpathfinding.name = Colocación del transportador en búsqueda de caminos
setting.sensitivity.name = Sensibilidad del Control
setting.saveinterval.name = Intervalo del Autoguardado
@@ -712,15 +770,16 @@ setting.milliseconds = {0} milisegundos
setting.fullscreen.name = Pantalla Completa
setting.borderlesswindow.name = Ventana sin Bordes[lightgray] (podría requerir un reinicio)
setting.fps.name = Mostrar FPS
-setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Mostrar teclas de selección de bloque
+setting.smoothcamera.name = Cámara suave
+
+
setting.vsync.name = Vsync (Limita los fps a los Hz de tu pantalla)
setting.pixelate.name = Pixelar [lightgray](podría reducir el rendimiento)
setting.minimap.name = Mostrar Minimapa
-setting.coreitems.name = Display Core Items (WIP)
+setting.coreitems.name = Mostrar elementos en el nucleo (WIP)
setting.position.name = Mostrar posición del jugador.
setting.musicvol.name = Volumen de la Música
-setting.atmosphere.name = Show Planet Atmosphere
+setting.atmosphere.name = Mostrar atmosfera del planeta
setting.ambientvol.name = Volumen del Ambiente
setting.mutemusic.name = Silenciar Musica
setting.sfxvol.name = Volumen de los efectos de sonido
@@ -743,27 +802,29 @@ keybinds.mobile = [scarlet]Los accesos del teclado aquí mostrados no estan disp
category.general.name = General
category.view.name = Visión
category.multiplayer.name = Multijugador
-category.blocks.name = Block Select
+category.blocks.name = Seleccionar bloques
command.attack = Atacar
command.rally = Patrullar
command.retreat = Retirarse
-command.idle = Idle
-placement.blockselectkeys = \n[lightgray]Key: [{0},
-keybind.respawn.name = Respawn
-keybind.control.name = Control Unit
+command.idle = Esperar
+placement.blockselectkeys = \n[lightgray]LLaves: [{0},
+keybind.respawn.name = Reaparecer
+keybind.control.name = Controlar unidad
keybind.clear_building.name = Eliminar construcción
keybind.press = Presiona una tecla...
keybind.press.axis = Pulsa un eje o botón...
keybind.screenshot.name = Captura de pantalla de Mapa
keybind.toggle_power_lines.name = Activar láser de potencia
-keybind.toggle_block_status.name = Toggle Block Statuses
+keybind.toggle_block_status.name = Cambiar estado de los bloques
keybind.move_x.name = Mover x
keybind.move_y.name = Mover y
keybind.mouse_move.name = Seguír al ratón
-keybind.pan.name = Pan View
-keybind.boost.name = Boost
+
+keybind.pan.name = Vista panorámica
+keybind.boost.name = Impulsar
+
keybind.schematic_select.name = Seleccionar región
-keybind.schematic_menu.name = Menu de esquématicos
+keybind.schematic_menu.name = Menu de esquemas
keybind.schematic_flip_x.name = Girar esquemático desde X
keybind.schematic_flip_y.name = Girar esquemático desde Y
keybind.category_prev.name = Categoría anterior
@@ -811,7 +872,7 @@ keybind.zoom_minimap.name = Zoom del minimapa
mode.help.title = Descripción de modos
mode.survival.name = Supervivencia
mode.survival.description = El modo normal. Recursos limitados y oleadas automáticas.
-mode.sandbox.name = Caja de arena
+mode.sandbox.name = Arenero
mode.sandbox.description = Recursos ilimitados y sin temporizador para las oleadas.
mode.editor.name = Editor
mode.pvp.name = JcJ
@@ -822,13 +883,14 @@ mode.custom = Normas personalizadas
rules.infiniteresources = Recursos Infinitos
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Temportzador de Oleadas
rules.waves = Oleadas
rules.attack = Modo de Ataque
-rules.buildai = AI Building
+rules.buildai = Construccion de la IA
rules.enemyCheat = Recursos infinitos de la IA
rules.blockhealthmultiplier = Multiplicador de salud de bloque
-rules.blockdamagemultiplier = Block Damage Multiplier
+rules.blockdamagemultiplier = Multiplicador de daño de bloque
rules.unitbuildspeedmultiplier = Multiplicador de velocidad de creación de unidades
rules.unithealthmultiplier = Multiplicador de la vida de las unidades
rules.unitdamagemultiplier = Multiplicador del daño de unidades
@@ -839,25 +901,29 @@ rules.buildspeedmultiplier = Multiplicador de velocidad de construcción
rules.deconstructrefundmultiplier = Multiplicador de Devolución de Desconstrucción
rules.waitForWaveToEnd = Las oleadas esperan a los enemigos
rules.dropzoneradius = Radio de zona de caída:[lightgray] (casillas)
-rules.unitammo = Units Require Ammo
+rules.unitammo = Las unidades necesitan munición
rules.title.waves = Oleadas
rules.title.resourcesbuilding = Recursos y Construcción
rules.title.enemy = Enemigos
rules.title.unit = Unidades
rules.title.experimental = Experimental
-rules.title.environment = Environment
+
+rules.title.environment = Entorno
rules.lighting = Iluminación
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
+rules.enemyLights = Luces enemigas
+rules.fire = Fuego
+rules.explosions = Daño de explosiones de Bloques/Unidades
rules.ambientlight = Iluminación ambiental
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.weather = Clima
+rules.weather.frequency = Frequencia:
+rules.weather.duration = Duracion:
+
content.item.name = Objetos
content.liquid.name = Líquidos
content.unit.name = Unidades
content.block.name = Bloques
+
item.copper.name = Cobre
item.lead.name = Plomo
item.coal.name = Carbón
@@ -879,25 +945,9 @@ liquid.slag.name = Fundido
liquid.oil.name = Petróleo
liquid.cryofluid.name = Criogénico
-item.explosiveness = [lightgray]Explosividad: {0}
-item.flammability = [lightgray]Inflamabilidad: {0}
-item.radioactivity = [lightgray]Radioactividad: {0}
-
-unit.health = [lightgray]Vida: {0}
-unit.speed = [lightgray]Velocidad: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Capacidad Térmica: {0}
-liquid.viscosity = [lightgray]Viscosidad: {0}
-liquid.temperature = [lightgray]Temperatura: {0}
unit.dagger.name = Daga
-unit.mace.name = Mace
+unit.mace.name = Mazo
unit.fortress.name = Fortaleza
unit.nova.name = Nova
unit.pulsar.name = Pulsar
@@ -906,10 +956,10 @@ unit.crawler.name = Oruga
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
+unit.toxopid.name = Toxopodo
+unit.flare.name = Bengala
+unit.horizon.name = Horizonte
+unit.zenith.name = Cenit
unit.antumbra.name = Antumbra
unit.eclipse.name = Eclipse
unit.mono.name = Mono
@@ -925,33 +975,40 @@ unit.omura.name = Omura
unit.alpha.name = Alpha
unit.beta.name = Beta
unit.gamma.name = Gamma
-unit.scepter.name = Scepter
+unit.scepter.name = Cetro
unit.reign.name = Reign
unit.vela.name = Vela
-unit.corvus.name = Corvus
+unit.corvus.name = Corvo
+
+block.resupply-point.name = Punto de reabastecimiento
+
+block.parallax.name = Paralaje
+block.cliff.name = Acantilado
-block.resupply-point.name = Resupply Point
-block.parallax.name = Parallax
-block.cliff.name = Cliff
block.sand-boulder.name = Piedra de Arena
block.grass.name = Hierba
-block.slag.name = Slag
+block.slag.name = Escoria
+block.space.name = Space
block.salt.name = Sal
-block.salt-wall.name = Salt Wall
+
+block.salt-wall.name = Muro de sal
block.pebbles.name = Guijarros
block.tendrils.name = Zarcillos
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = Muro de arena
block.spore-pine.name = Pino de esporas
-block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
+block.spore-wall.name = Muro de esporas
+block.boulder.name = Roca
+block.snow-boulder.name = Roca de nieve
+
block.snow-pine.name = Pino de nieve
block.shale.name = Pizarra
block.shale-boulder.name = Piedra de Pizarra
block.moss.name = Musgo
block.shrubs.name = Arbustos
block.spore-moss.name = Musgo de esporas
-block.shale-wall.name = Shale Wall
+
+block.shale-wall.name = Muro de pizarra
+
block.scrap-wall.name = Muro de Chatarra
block.scrap-wall-large.name = Muro de Chatarra grande
block.scrap-wall-huge.name = Muro de Chatarra muy grande
@@ -979,17 +1036,18 @@ block.craters.name = Cráteres
block.sand-water.name = Agua con Arena
block.darksand-water.name = Agua con Arena Oscura
block.char.name = Carbonizado
-block.dacite.name = Dacite
-block.dacite-wall.name = Dacite Wall
+block.dacite.name = Dacita
+block.dacite-wall.name = Pared de Dacita
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Hielo Nieve
-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.stone-wall.name = Pared de piedra
+block.ice-wall.name = Pared de hielo
+block.snow-wall.name = Pared de nieve
+block.dune-wall.name = Pared de duna
block.pine.name = Pino
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
+block.dirt.name = Tierra
+block.dirt-wall.name = Pared de tierra
+block.mud.name = Lodo
block.white-tree-dead.name = Árbol Blanco Muerto
block.white-tree.name = Árbol Blanco
block.spore-cluster.name = Concentración de Esporas
@@ -1005,7 +1063,7 @@ block.dark-panel-4.name = Panel Oscuro 4
block.dark-panel-5.name = Panel Oscuro 5
block.dark-panel-6.name = Panel Oscuro 6
block.dark-metal.name = Metal Oscuro
-block.basalt.name = Basalt
+block.basalt.name = Basalto
block.hotrock.name = Roca Caliente
block.magmarock.name = Roca de Magma
block.copper-wall.name = Muro de Cobre
@@ -1075,6 +1133,7 @@ block.power-source.name = Energía Infinita
block.unloader.name = Descargador
block.vault.name = Bóveda
block.wave.name = Ola
+block.tsunami.name = Tsunami
block.swarmer.name = Enjambre
block.salvo.name = Salva
block.ripple.name = Onda
@@ -1114,37 +1173,45 @@ block.arc.name = Arco
block.rtg-generator.name = Generador RTG
block.spectre.name = Espectro
block.meltdown.name = Fusión de Reactor
+block.foreshadow.name = Foreshadow
block.container.name = Contenedor
block.launch-pad.name = Pad de Lanzamiento
block.launch-pad-large.name = Pad de Lanzamiento Grande
-block.segment.name = Segment
-block.command-center.name = Command Center
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
-block.additive-reconstructor.name = Additive Reconstructor
-block.multiplicative-reconstructor.name = Multiplicative Reconstructor
-block.exponential-reconstructor.name = Exponential Reconstructor
-block.tetrative-reconstructor.name = Tetrative Reconstructor
-block.payload-conveyor.name = Mass Conveyor
-block.payload-router.name = Payload Router
-block.disassembler.name = Disassembler
-block.silicon-crucible.name = Silicon Crucible
-block.overdrive-dome.name = Overdrive Dome
+block.segment.name = Segmento
+block.command-center.name = Centro de comando
+
+block.ground-factory.name = Fábrica terrestre
+block.air-factory.name = Fábrica aérea
+
+block.naval-factory.name = Fábrica naval
+block.additive-reconstructor.name = Reconstructor aditivo
+block.multiplicative-reconstructor.name = Reconstructor multiplicativo
+block.exponential-reconstructor.name = Reconstructor exponencial
+block.tetrative-reconstructor.name = Reconstructor tetrativo
+
+block.payload-conveyor.name = Transportador masivo
+block.payload-router.name = Enrutador de carga útil
+block.disassembler.name = Desensamblador
+block.silicon-crucible.name = Crisol de silicio
+block.overdrive-dome.name = Cupula de sobremarcha
+
+block.switch.name = Interruptor
+block.micro-processor.name = Micro Processador
+block.logic-processor.name = Procesador lógico
+block.hyper-processor.name = Hiperprocesador
+block.logic-display.name = Pantalla lógica
+block.large-logic-display.name = Gran pantalla lógica
+block.memory-cell.name = Celda de memoria
+block.memory-bank.name = Banco de memoria
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
team.blue.name = Azul
team.crux.name = rojo
team.sharded.name = naranja
team.orange.name = Naranja
-team.derelict.name = derelict
+
+team.derelict.name = derelicto
+
team.green.name = Verde
team.purple.name = Púrpura
@@ -1302,4 +1369,4 @@ block.cyclone.description = Una torre grande anti-aérea y anti-terrestre. Dispa
block.spectre.description = Un cañon masivo de dos barriles. Dispara balas perforantes a objetivos de aire y tierra.
block.meltdown.description = Un cañon láser masivo. Carga y dispara un rayo láser constante a enemigos cercanos. Requiere enfriamiento para operar.
block.repair-point.description = Repara la unidad dañada más cercana a su alrededor.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Daña y destruye proyectiles enemigos. No apunta a láseres.
diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties
index 62b0002df6..46cf235d26 100644
--- a/core/assets/bundles/bundle_et.properties
+++ b/core/assets/bundles/bundle_et.properties
@@ -55,6 +55,7 @@ schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Lahingulaineid läbitud:[accent] {0}
stat.enemiesDestroyed = Vaenlasi hävitatud:[accent] {0}
@@ -100,7 +101,6 @@ done = Valmis
feature.unsupported = Your device does not support this feature.
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]No mods found!
mods.guide = Modding Guide
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Lahingulaine {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Järgmine laine\nalgab: {0}
wave.waveInProgress = [lightgray]Toimub lahingulaine
waiting = [lightgray]Ootan...
waiting.players = Ootan mängijaid...
wave.enemies = [lightgray]{0} vaenlast alles
wave.enemy = [lightgray]{0} vaenlane alles
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Lae pilt
saveimage = Salvesta pilt
unknown =
@@ -328,6 +331,7 @@ editor.generation = Genereerimine:
editor.ingame = Redigeeri mängus
editor.publish.workshop = Avalda Workshop'is
editor.newmap = Uus maailm
+editor.center = Center
workshop = Workshop
waves.title = Lahingulained
waves.remove = Eemalda
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Filtrid puuduvad! Lisa filtreid alloleva nupuga.
filter.distort = Moonutamine
filter.noise = Müra
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Mediaan
filter.oremedian = Maakide mediaan
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Blokk
filter.option.floor = Põrand
filter.option.flooronto = Asendatav põrand
+filter.option.target = Target
filter.option.wall = Sein
filter.option.ore = Maak
filter.option.floor2 = Teine põrand
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Jätka piirkonnas:\n[lightgray]{0}
bestwave = [lightgray]Parim lahingulaine: {0}
-launch = < LENDUTÕUS >
launch.text = Launch
-launch.title = Lendutõus
-launch.next = [lightgray]Järgmine võimalus on {0}. laine järel
-launch.unable2 = [scarlet]Ei saa LENDU TÕUSTA.[]
-launch.confirm = Lendu tõusmisel võetakse kaasa\nkõik tuumikus olevad ressursid.\n[accent]Sellesse baasi ei ole võimalik tagasi tulla.
-launch.skip.confirm = Kui jätad praegu lendu tõusmata, siis saad seda teha alles hilisemate lahingulainete järel.
+research.multiplayer = Only the host can research items.
uncover = Ava
configure = Muuda varustust
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Oled kindel, et soovid olemasolevad\nsätted kustutada?
settings.clearall.confirm = [scarlet]HOIATUS![]\nKustutatakse kõik andmed, sealhulgas salvestised, maailmad, kampaania saavutused\nja juhtnuppude sätted.\n[accent]Vajutades nupule "OK", kustutatakse\nkõik andmed ja seejärel mäng sulgub.[]
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Paus >
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]Viga
error.crashtitle = Viga
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Sisend
stat.output = Väljund
stat.booster = Kiirendaja
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Energiamahtuvus
stat.powershot = Energia ühikut/lasu kohta
stat.damage = Hävituspunkte
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Energiatarve
stat.powerdamage = Energiatarve hävituspunkti kohta
stat.itemcapacity = Ressursside mahutavus
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Energiatootlus
stat.productiontime = Tootmisaeg
stat.repairtime = Täieliku parandamise aeg
@@ -613,6 +626,28 @@ stat.reload = Lasku/s
stat.ammo = Laskemoon
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Nõuab paremat puuri
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Bilanss: {0}/s
bar.powerstored = Puhver: {0}/{1}
bar.poweramount = Laeng: {0}
bar.poweroutput = Tootlus: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Ressursse: {0}
bar.capacity = Mahutavus: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Edenemine
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] hävituspunkti
bullet.splashdamage = [stat]{0}[lightgray] hävituspunkti ~[stat] {1}[lightgray] blokki
bullet.incendiary = [stat]süttiv
@@ -642,12 +680,15 @@ bullet.homing = [stat]isesihtiv
bullet.shock = [stat]elektriseeriv
bullet.frag = [stat]kildpomm
bullet.knockback = [stat]{0}[lightgray]x tagasilöögi kordaja
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]jäätav
bullet.tarred = [stat]leekisüütav
bullet.multiplier = [stat]{0}[lightgray]x laskemoona kordaja
bullet.reload = [stat]{0}[lightgray]x tulistamise kiirus
unit.blocks = blokki
+unit.blockssquared = blocks²
unit.powersecond = energiaühikut/s
unit.liquidsecond = vedelikuühikut/s
unit.itemssecond = ressursiühikut/s
@@ -670,7 +711,7 @@ category.power = Energia
category.liquids = Vedelikud
category.items = Ressursid
category.crafting = Sisend/Väljund
-category.shooting = Tulistamine
+category.function = Function
category.optional = Valikulised täiustused
setting.landscape.name = Lukusta horisontaalpaigutus
setting.shadows.name = Varjud
@@ -679,7 +720,6 @@ setting.linear.name = Lineaarne tekstuurivastendus
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animeeritud vesi
setting.animatedshields.name = Animeeritud kilbid
setting.antialias.name = Sakitõrje[lightgray] (vajab mängu taaskäivitamist)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Täisekraan
setting.borderlesswindow.name = Äärteta ekraan[lightgray] (võib vajada mängu taaskäivitamist)
setting.fps.name = Näita kaadrite arvu sekundis
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = Vertikaalne sünkroonimine
setting.pixelate.name = Piksel-efekt[lightgray] (lülitab animatsioonid välja)
setting.minimap.name = Näita kaarti
@@ -822,6 +861,7 @@ mode.custom = Reeglid
rules.infiniteresources = Lõputult ressursse
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Kasuta taimerit
rules.waves = Kasuta lahingulaineid
rules.attack = Mänguviis "Rünnak"
@@ -847,6 +887,7 @@ rules.title.unit = Väeüksused
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Ressursid
content.liquid.name = Vedelikud
content.unit.name = Väeüksused
content.block.name = Konstruktsioonid
+
item.copper.name = Vask
item.lead.name = Plii
item.coal.name = Süsi
@@ -879,23 +921,6 @@ liquid.slag.name = Räbu
liquid.oil.name = Nafta
liquid.cryofluid.name = Krüovedelik
-item.explosiveness = [lightgray]Plahvatusohtlikkus: {0}%
-item.flammability = [lightgray]Tuleohtlikkus: {0}%
-item.radioactivity = [lightgray]Radioaktiivsus: {0}%
-
-unit.health = [lightgray]Elud: {0}
-unit.speed = [lightgray]Kiirus: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Soojusmahtuvus: {0}
-liquid.viscosity = [lightgray]Viskoossus: {0}
-liquid.temperature = [lightgray]Temperatuur: {0}
-
unit.dagger.name = Soldat
unit.mace.name = Mace
unit.fortress.name = Koljat
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Liivakamakas
block.grass.name = Rohi
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Sool
block.salt-wall.name = Salt Wall
block.pebbles.name = Kruus
@@ -981,6 +1007,7 @@ block.darksand-water.name = Vesi tumedal liival
block.char.name = Puusüsi
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Jäine lumi
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Energiaallikas
block.unloader.name = Mahalaadija
block.vault.name = Suur hoidla
block.wave.name = Prits
+block.tsunami.name = Tsunami
block.swarmer.name = Parvpildur
block.salvo.name = Krempelpaugutaja
block.ripple.name = Tähesadu
@@ -1114,6 +1142,7 @@ block.arc.name = Elektrikahur
block.rtg-generator.name = RT-generaator
block.spectre.name = Kõmmutaja
block.meltdown.name = Valguskiir
+block.foreshadow.name = Foreshadow
block.container.name = Hoidla
block.launch-pad.name = Stardiplatvorm
block.launch-pad-large.name = Suur stardiplatvorm
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = sinine
team.crux.name = punane
@@ -1302,4 +1332,4 @@ block.cyclone.description = Suur lendavate ja maapealsete väeüksuste vastane k
block.spectre.description = Massiivne kaheraudne kahur, mis tulistab soomuskatteid läbistavaid mürske nii lendavate kui ka maapealsete väeüksuste pihta.
block.meltdown.description = Massiivne laserkahur, mis tekitab püsiva energiakiire. Vajab töötamiseks jahutusvedelikku.
block.repair-point.description = Parandab kõige lähemal asuvat liitlaste väeüksust.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties
index 7afde97031..537d0b3133 100644
--- a/core/assets/bundles/bundle_eu.properties
+++ b/core/assets/bundles/bundle_eu.properties
@@ -55,6 +55,7 @@ schematic.saved = Eskema gordeta.
schematic.delete.confirm = Eskema hau behin betiko suntsituko da.
schematic.rename = Aldatu izena eskemari
schematic.info = {0}x{1}, {2} bloke
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Garaitutako boladak:[accent] {0}
stat.enemiesDestroyed = Suntsitutako etsaiak:[accent] {0}
@@ -100,7 +101,6 @@ done = Egina
feature.unsupported = Zure gailuak ez du ezaugarri hau onartzen.
mods.alphainfo = Kontuan izan mod-ak alfa egoeran daudela, eta [scarlet] akats ugari izan ditzakete[].\nEman arazoen berri Mindustry-ren GitHub or Discord zerbitzuetan.
-mods.alpha = [accent](Alfa)
mods = Mod-ak
mods.none = [lightgray]Ez da mod-ik aurkitu!
mods.guide = Mod-ak sortzeko gida
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] hautatu+kopiatzeko
pausebuilding = [accent][[{0}][] eraikiketa eteteko
resumebuilding = [scarlet][[{0}][] eraikiketa berrekiteko
wave = [accent]{0}. bolada
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Boladarako {0}
wave.waveInProgress = [lightgray]Bolada abian
waiting = [lightgray]Itxaroten...
waiting.players = Jokalariei itxaroten...
wave.enemies = [lightgray]{0} etsai daude
wave.enemy = [lightgray]Etsai {0} dago
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Kargatu irudia
saveimage = Gorde irudia
unknown = Ezezaguna
@@ -328,6 +331,7 @@ editor.generation = Sorrarazi:
editor.ingame = Editatu jolasean
editor.publish.workshop = Argitaratu lantegian
editor.newmap = Mapa berria
+editor.center = Center
workshop = Lantegia
waves.title = Boladak
waves.remove = Kendu
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Iragazkirik ez! Gehitu bat beheko botoiarekin.
filter.distort = Distortsioa
filter.noise = Orbana
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Mediana
filter.oremedian = Mea mediana
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Blokea
filter.option.floor = Zorua
filter.option.flooronto = Zoru xedea
+filter.option.target = Target
filter.option.wall = Horma
filter.option.ore = Mea
filter.option.floor2 = Bigarren zorua
@@ -471,15 +477,9 @@ requirement.wave = Iritsi {0} boladara {1}
requirement.core = Suntsitu etsaiaren muina {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Berrekin:\n[lightgray]{0}
bestwave = [lightgray]Bolada onena: {0}
-launch = < EGOTZI >
launch.text = Launch
-launch.title = Ongi egotzi da
-launch.next = [lightgray]hurrengo aukera\n {0}. boladan
-launch.unable2 = [scarlet]Ezin da EGOTZI.[]
-launch.confirm = Honek zure muinean dauden baliabide guztiak egotziko ditu.\nEzin izango zara base honetara itzuli.
-launch.skip.confirm = Orain ez eginez gero, geroagoko beste bolada batera itxaron beharko duzu.
+research.multiplayer = Only the host can research items.
uncover = Estalgabetu
configure = Konfiguratu zuzkidura
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Ziur datu hauek garbitu nahi dituzula?\nEgindakoa ezin
settings.clearall.confirm = [scarlet]ABISUA![]\nHonek datu guztiak garbituko ditu, gordetako partidak, mapak, desblokeatutakoak, eta teklen konfigurazioak barne.\nBehin 'Ados' sakatzen duzula jolasak datuk guztiak ezabatuko ditu eta automatikoki irten.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Pausatuta >
clear = Garbitu
banned = [scarlet]Debekatuta
@@ -570,12 +580,14 @@ info.title = Informazioa
error.title = [crimson]Errore bat gertatu da
error.crashtitle = Errore bat gertatu da
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Sarrera
stat.output = Irteera
stat.booster = Indargarria
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Energia-edukiera
stat.powershot = Energia/tiroko
stat.damage = Kaltea
@@ -594,6 +606,7 @@ stat.powerconnections = Gehieneko konexioak
stat.poweruse = Energia-erabilera
stat.powerdamage = Energia/Kaltea
stat.itemcapacity = Elementu-edukiera
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Oinarrizko energia sorrera
stat.productiontime = Eraikitze denbora
stat.repairtime = Blokearen konpontze denbora osoa
@@ -613,6 +626,28 @@ stat.reload = Tiroak/segundoko
stat.ammo = Munizioa
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Zulagailu hobea behar da
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}/s
bar.powerstored = Bilduta: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Energia irteera: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Elementuak: {0}
bar.capacity = Edukiera: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Eraikitze egoera
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] kalte
bullet.splashdamage = [stat]{0}[lightgray] ingurune-kaltea ~[stat] {1}[lightgray] lauza
bullet.incendiary = [stat]su-eragilea
@@ -642,12 +680,15 @@ bullet.homing = [stat]gidatua
bullet.shock = [stat]danbatekoa
bullet.frag = [stat]fragmentazioa
bullet.knockback = [stat]{0}[lightgray] kontusioa
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]hozkirri
bullet.tarred = [stat]mundrunduta
bullet.multiplier = [stat]{0}[lightgray]x munizio-biderkatzailea
bullet.reload = [stat]{0}[lightgray]x tiro tasa
unit.blocks = bloke
+unit.blockssquared = blocks²
unit.powersecond = energia unitate/segundoko
unit.liquidsecond = likido unitate/segundoko
unit.itemssecond = elementu/segundoko
@@ -670,7 +711,7 @@ category.power = Energia
category.liquids = Likidoak
category.items = Baliabideak
category.crafting = Sarrera/Irteera
-category.shooting = Tirokatzea
+category.function = Function
category.optional = Aukerako hobekuntzak
setting.landscape.name = Blokeatu horizontalean
setting.shadows.name = Itzalak
@@ -679,7 +720,6 @@ setting.linear.name = Iragazte lineala
setting.hints.name = Pistak
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animatutako ura
setting.animatedshields.name = Animatutako ezkutuak
setting.antialias.name = Antialias[lightgray] (berrabiarazi behar da)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Pantaila osoa
setting.borderlesswindow.name = Ertzik gabeko leihoa[lightgray] (berrabiaraztea behar lezake)
setting.fps.name = Erakutsi FPS
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelatu[lightgray] (animazioak desgaitzen ditu)
setting.minimap.name = Erakutsi mapatxoa
@@ -822,6 +861,7 @@ mode.custom = Arau pertsonalizatuak
rules.infiniteresources = Baliabide amaigabeak
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Boladen denboragailua
rules.waves = Boladak
rules.attack = Eraso modua
@@ -847,6 +887,7 @@ rules.title.unit = Unitateak
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Solidoak
content.liquid.name = Likidoak
content.unit.name = Unitateak
content.block.name = Blokeak
+
item.copper.name = Kobrea
item.lead.name = Beruna
item.coal.name = Ikatza
@@ -879,23 +921,6 @@ liquid.slag.name = Zepa
liquid.oil.name = Olioa
liquid.cryofluid.name = Krio-isurkaria
-item.explosiveness = [lightgray]Lehergarritasuna: {0}%
-item.flammability = [lightgray]Sukoitasuna: {0}%
-item.radioactivity = [lightgray]Erradioaktibitatea: {0}%
-
-unit.health = [lightgray]Osasuna: {0}
-unit.speed = [lightgray]Abiadura: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Bero edukiera: {0}
-liquid.viscosity = [lightgray]Likatasuna: {0}
-liquid.temperature = [lightgray]Tenperatura: {0}
-
unit.dagger.name = Daga
unit.mace.name = Mace
unit.fortress.name = Gotorleku
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Hondar harkaitza
block.grass.name = Belarra
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Gatza
block.salt-wall.name = Salt Wall
block.pebbles.name = Harribilak
@@ -981,6 +1007,7 @@ block.darksand-water.name = Hondar ilun ura
block.char.name = Kokea
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Izotz elurra
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Energia amaigabea
block.unloader.name = Deskargagailua
block.vault.name = Kripta
block.wave.name = Olatu
+block.tsunami.name = Tsunami
block.swarmer.name = Erlauntz
block.salvo.name = Buhunba
block.ripple.name = Marmarra
@@ -1114,6 +1142,7 @@ block.arc.name = Arku
block.rtg-generator.name = RTG sorgailua
block.spectre.name = Espektro
block.meltdown.name = Nukleofusio
+block.foreshadow.name = Foreshadow
block.container.name = Edukiontzia
block.launch-pad.name = Egozketa-plataforma
block.launch-pad-large.name = Egozketa-plataforma handia
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = urdina
team.crux.name = gorria
@@ -1302,4 +1332,4 @@ block.cyclone.description = Aire zein lurreko defentsarako dorre handia. Torpedo
block.spectre.description = Kanoi bikoitz erraldoia. Blindajea zulatu dezaketen bala handiak tirokatzen ditu aireko zein lurreko xedeei.
block.meltdown.description = Laser kanoi erraldoia. Etengabeko laser izpi bat kargatu eta jauritzen die inguruko etsaiei. Hozgarria behar du jarduteko.
block.repair-point.description = Etengabe konpontzen du inguruko kaltetutako unitate hurbilena.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties
index 30a231333c..c5dfa9f91a 100644
--- a/core/assets/bundles/bundle_fi.properties
+++ b/core/assets/bundles/bundle_fi.properties
@@ -21,7 +21,7 @@ gameover.pvp = [accent] {0}[] joukkue voittaa!
highscore = [accent]Uusi ennätys!
copied = Kopioitu.
indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.notready = Tämä osa peliä ei ole vielä valmis
load.sound = Ääniä
load.map = Karttoja
@@ -42,7 +42,7 @@ schematic = Kaavio
schematic.add = Tallenna kaavio...
schematics = Kaaviot
schematic.replace = Kaavio tällä nimellä on jo olemassa. Haluatko korvata sen?
-schematic.exists = A schematic by that name already exists.
+schematic.exists = Kaavio tällä nimellä on jo olemassa.
schematic.import = Tuo kaavio...
schematic.exportfile = Vie tiedosto
schematic.importfile = Tuo tiedosto
@@ -55,6 +55,7 @@ schematic.saved = Kaavio tallennettu.
schematic.delete.confirm = Tämä kaavio poistetaan.
schematic.rename = Nimeä kaavio uudelleen
schematic.info = {0}x{1}, {2} palikkaa
+schematic.disabled = [scarlet]Kaaviot poistettu käytöstä[]\nEt pysty käyttämään kaavioita tällä [accent]kartalla[] tai [accent]palvelimella.
stat.wave = Tasoja voitettu:[accent] {0}
stat.enemiesDestroyed = Vihollisia tuhottu:[accent] {0}
@@ -62,7 +63,7 @@ stat.built = Rakennuksia rakennettu:[accent] {0}
stat.destroyed = Rakennuksia tuhottu:[accent] {0}
stat.deconstructed = Rakennuksia purettu:[accent] {0}
stat.delivered = Resursseja laukaistu:
-stat.playtime = Time Played:[accent] {0}
+stat.playtime = Pelattu aika:[accent] {0}
stat.rank = Lopullinen arvosana: [accent]{0}
globalitems = [accent]Global Items
@@ -100,7 +101,6 @@ done = Valmis
feature.unsupported = Laitteesi ei tue tätä toimintoa.
mods.alphainfo = Pidä mielessä että modit ovat alpha-tilassa, ja[scarlet] ne voivat olla virheellisiä[].\nRaportoi kaikki virheet Mindustry GitHub-sivuille tai Discordiin.
-mods.alpha = [accent](Alpha)
mods = Modit
mods.none = [lightgray]Modeja ei löytynyt!
mods.guide = Modaamisopas
@@ -236,8 +236,8 @@ save.delete.confirm = Oletko varma että haluat poistaa tämän tallennuksen?
save.delete = Poista
save.export = Vie tallennus
save.import.invalid = [accent]This save is invalid!
-save.import.fail = [crimson]Failed to import save: [accent]{0}
-save.export.fail = [crimson]Failed to export save: [accent]{0}
+save.import.fail = [crimson]Tallennuksen tuominen epäonnistui: [accent]{0}
+save.export.fail = [crimson]Tallennuksen vieminen epäonnistui: [accent]{0}
save.import = Tuo tallennus
save.newslot = Tallennuksen nimi:
save.rename = Nimeä uudelleen
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Taso {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Seuraava taso {0}
wave.waveInProgress = [lightgray]Wave in progress
waiting = [lightgray]Odotetaan...
waiting.players = Odotetaan pelaajia...
wave.enemies = [lightgray]{0} vihollista jäljellä
wave.enemy = [lightgray]{0} vihollinen jäljellä
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Lataa kuva
saveimage = Tallenna kuva
unknown = Tuntematon
@@ -328,6 +331,7 @@ editor.generation = Generaatio:
editor.ingame = Muokka pelin sisällä
editor.publish.workshop = Julkaise Workshoppiin
editor.newmap = Uusi kartta
+editor.center = Center
workshop = Työpaja
waves.title = Tasot
waves.remove = Poista
@@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Vääristää
filter.noise = Melu
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Valitse Ydin
filter.median = Mediaani
filter.oremedian = Malmin mediaani
@@ -440,6 +445,7 @@ filter.option.amount = Määrä
filter.option.block = Estää
filter.option.floor = Lattia
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Seinä
filter.option.ore = Malmi
filter.option.floor2 = Secondary Floor
@@ -471,15 +477,9 @@ requirement.wave = Pääse Tasolle {0} kartassa {1}
requirement.core = Tuhoa vihollisen ydin kartassa {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Paras taso: {0}
-launch = < LAUKAISE >
launch.text = Launch
-launch.title = Onnistunut laukaisu
-launch.next = [lightgray]seuraava mahdollisuus tasolla {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = Tämä laukaisee kaikki resurssit ytimestäsi.\nEt voi enää palata takaisin.
-launch.skip.confirm = Jos ohitat nyt, voit laukaista vasta myöhemmillä tasoilla.
+research.multiplayer = Only the host can research items.
uncover = Paljasta
configure = Configure Loadout
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Oletko varma että haluat tyhjentää pelin datan?\nMit
settings.clearall.confirm = [scarlet]WARNING![]\nTämä poistaa kaiken datan, mukaanlukien kesken olevat pelit, kartat, avatut asiat ja kontrolliasetukset.\nKun painat 'ok' kaikki datasi poistetaan ja peli suljetaan.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Pysäytetty >
clear = Tyhjä
banned = [scarlet]Kielletty
@@ -570,12 +580,14 @@ info.title = Informaatio
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Sisääntulo
stat.output = Ulostulo
stat.booster = Tehostaja
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Energiakapasiteetti
stat.powershot = Energiaa/Ammus
stat.damage = Vahinko
@@ -594,6 +606,7 @@ stat.powerconnections = Maksimimäärä yhdistyksiä
stat.poweruse = Energian käyttö
stat.powerdamage = Energia/Vahinko
stat.itemcapacity = Tavarakapasiteetti
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Perus energiantuotto
stat.productiontime = Tuotantoaika
stat.repairtime = Kokonaisen palikan korjausaika
@@ -613,6 +626,28 @@ stat.reload = Ammusta/sekunnissa
stat.ammo = Ammus
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Parempi pora vaadittu
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}/s
bar.powerstored = Säilöttynä: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Energiantuotto: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Tavaroita: {0}
bar.capacity = Kapasiteetti: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Rakennuksen edistys
bar.input = Sisääntulo
bar.output = Ulostulo
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] Vahinko
bullet.splashdamage = [stat]{0}[lightgray] Aluevahinko ~[stat] {1}[lightgray] palikkaa
bullet.incendiary = [stat]sytyttävä
@@ -642,12 +680,15 @@ bullet.homing = [stat]itseohjautuva
bullet.shock = [stat]shokki
bullet.frag = [stat]sirpaloituva
bullet.knockback = [stat]{0}[lightgray] knockback
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]jäädyttävä
bullet.tarred = [stat]tervattu
bullet.multiplier = [stat]{0}[lightgray]x ammusten kerroin
bullet.reload = [stat]{0}[lightgray]x ampumisnopeus
unit.blocks = palikat
+unit.blockssquared = blocks²
unit.powersecond = energiayksikköä/sekunti
unit.liquidsecond = nesteyksikköä/sekunti
unit.itemssecond = esinettä/sekunti
@@ -670,7 +711,7 @@ category.power = Energia
category.liquids = Neste
category.items = Tavarat
category.crafting = Ulos/Sisääntulo
-category.shooting = Ammunta
+category.function = Function
category.optional = Mahdolliset parannukset
setting.landscape.name = Lukitse tasavaakaan
setting.shadows.name = Varjot
@@ -679,7 +720,6 @@ setting.linear.name = Lineaarinen suodatus
setting.hints.name = Vihjeet
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Automaattisest Pysäytä Rakentaessa
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animoitu vesi
setting.animatedshields.name = Animoidut kilvet
setting.antialias.name = Antialiaasi[lightgray] (vaatii uudelleenkäynnistyksen)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (vaatii uudelleenkäynnistyksen)
setting.fps.name = Näytä FPS
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Näytä palikan valintaohjaimet
setting.vsync.name = VSync
setting.pixelate.name = Pixeloi[lightgray] (poistaa animaation käytöstä)
setting.minimap.name = Näytä pienoiskartta
@@ -822,6 +861,7 @@ mode.custom = Custom Rules
rules.infiniteresources = Ikuiset resurssit
rules.reactorexplosions = Reaktorien räjähtäminen
+rules.schematic = Schematics Allowed
rules.wavetimer = Tasojen aikaraja
rules.waves = Tasot
rules.attack = Hyökkäystila
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Tavarat
content.liquid.name = Nesteet
content.unit.name = Yksiköt
content.block.name = Palikat
+
item.copper.name = Kupari
item.lead.name = Lyijy
item.coal.name = Hiili
@@ -879,23 +921,6 @@ liquid.slag.name = Kuona
liquid.oil.name = Öljy
liquid.cryofluid.name = Kryoneste
-item.explosiveness = [lightgray]Räjädysmäisyys: {0}%
-item.flammability = [lightgray]Syttyvyys: {0}%
-item.radioactivity = [lightgray]Radioaktiivisuus: {0}%
-
-unit.health = [lightgray]Elämäpisteet: {0}
-unit.speed = [lightgray]Nopeus: {0}
-unit.weapon = [lightgray]Ammuksia: {0}
-unit.itemcapacity = [lightgray]Esine kapasiteetti: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Lämpökapasiteetti: {0}
-liquid.viscosity = [lightgray]Tahmeus: {0}
-liquid.temperature = [lightgray]Lämpö: {0}
-
unit.dagger.name = Tikari
unit.mace.name = Mace
unit.fortress.name = Linnoitus
@@ -936,6 +961,7 @@ block.cliff.name = Vuoren
block.sand-boulder.name = Hiekkalohkare
block.grass.name = Ruoho
block.slag.name = Kuono
+block.space.name = Space
block.salt.name = Suolapitoisuus
block.salt-wall.name = Salt Wall
block.pebbles.name = Pikkukivi
@@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader
block.vault.name = Vault
block.wave.name = Wave
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Kaari
block.rtg-generator.name = RTG Generator
block.spectre.name = Haamu
block.meltdown.name = Sulamispiste
+block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = sininen
team.crux.name = punainen
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties
index 0fa6608526..9e796de8bf 100644
--- a/core/assets/bundles/bundle_fil.properties
+++ b/core/assets/bundles/bundle_fil.properties
@@ -55,6 +55,7 @@ schematic.saved = Na-i-adya na ang schematic.
schematic.delete.confirm = Ang schematic na'to ay tuluyang mawawala.
schematic.rename = Palitan Ang Pangalan ng Schematic
schematic.info = {0}x{1}, {2} blocks
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Wave na Nalagpasan:[accent] {0}
stat.enemiesDestroyed = Tinalong Kalaban:[accent] {0}
@@ -100,7 +101,6 @@ done = Tapos Na
feature.unsupported = Hindi suportado ng 'yong device ang feature na'to.
mods.alphainfo = Tandaan mo na ang mga mod ay nasa 'alpha', at[scarlet] maaaring may depekto pa ang mga 'to[].\nI-ulat ang kahit anong depektong matutuklasan mo sa Mindustry GitHub o Discord.
-mods.alpha = [accent](Alpha)
mods = Mga Mod
mods.none = [lightgray]Walang mga mod na nahanap!
mods.guide = Gabay para sa Paggawa ng Mod
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Wave {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Wave in {0}
wave.waveInProgress = [lightgray]Wave in progress
waiting = [lightgray]Waiting...
waiting.players = Waiting for players...
wave.enemies = [lightgray]{0} Enemies Remaining
wave.enemy = [lightgray]{0} Enemy Remaining
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Load Image
saveimage = Save Image
unknown = Unknown
@@ -328,6 +331,7 @@ editor.generation = Generation:
editor.ingame = Edit In-Game
editor.publish.workshop = Publish On Workshop
editor.newmap = New Map
+editor.center = Center
workshop = Workshop
waves.title = Waves
waves.remove = Remove
@@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Ore Median
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Block
filter.option.floor = Floor
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Wall
filter.option.ore = Ore
filter.option.floor2 = Secondary Floor
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best Wave: {0}
-launch = < LAUNCH >
launch.text = Launch
-launch.title = Launch Successful
-launch.next = [lightgray]next opportunity at wave {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
+research.multiplayer = Only the host can research items.
uncover = Uncover
configure = Configure Loadout
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Paused >
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = Info
error.title = [scarlet]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
@@ -613,6 +626,28 @@ stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Items: {0}
bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Build Progress
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -642,12 +680,15 @@ bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x fire rate
unit.blocks = blocks
+unit.blockssquared = blocks²
unit.powersecond = power units/second
unit.liquidsecond = liquid units/second
unit.itemssecond = items/second
@@ -670,7 +711,7 @@ category.power = Power
category.liquids = Liquids
category.items = Items
category.crafting = Input/Output
-category.shooting = Shooting
+category.function = Function
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows
@@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animated Fluids
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required)
setting.fps.name = Show FPS & Ping
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate
setting.minimap.name = Show Minimap
@@ -822,6 +861,7 @@ mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Items
content.liquid.name = Liquids
content.unit.name = Units
content.block.name = Blocks
+
item.copper.name = Copper
item.lead.name = Lead
item.coal.name = Coal
@@ -879,23 +921,6 @@ liquid.slag.name = Slag
liquid.oil.name = Oil
liquid.cryofluid.name = Cryofluid
-item.explosiveness = [lightgray]Explosiveness: {0}%
-item.flammability = [lightgray]Flammability: {0}%
-item.radioactivity = [lightgray]Radioactivity: {0}%
-
-unit.health = [lightgray]Health: {0}
-unit.speed = [lightgray]Speed: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Heat Capacity: {0}
-liquid.viscosity = [lightgray]Viscosity: {0}
-liquid.temperature = [lightgray]Temperature: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Sand Boulder
block.grass.name = Grass
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Salt
block.salt-wall.name = Salt Wall
block.pebbles.name = Pebbles
@@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader
block.vault.name = Vault
block.wave.name = Wave
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blue
team.crux.name = red
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties
index 925465c595..307a8f586b 100644
--- a/core/assets/bundles/bundle_fr.properties
+++ b/core/assets/bundles/bundle_fr.properties
@@ -55,6 +55,7 @@ schematic.saved = Schéma sauvegardé.
schematic.delete.confirm = Ce schéma sera supprimé définitivement.
schematic.rename = Renommer le schéma
schematic.info = {0}x{1}, {2} blocs
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Vagues vaincues:[accent] {0}
stat.enemiesDestroyed = Ennemis détruits:[accent] {0}
@@ -100,7 +101,6 @@ done = Fait
feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité.
mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]Aucun mod trouvé!
mods.guide = Guide de Modding
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] pour sélectionner et copier
pausebuilding = [accent][[{0}][] pour mettre la construction en pause
resumebuilding = [scarlet][[{0}][] pour reprendre la construction
wave = [accent]Vague {0}
+wave.cap = [accent]Vague {0}/{1}
wave.waiting = [lightgray]Vague dans {0}
wave.waveInProgress = [lightgray]Vague en cours
waiting = [lightgray]En attente...
waiting.players = En attente de joueurs...
wave.enemies = [lightgray]{0} Ennemis restants
wave.enemy = [lightgray]{0} Ennemi restant
+wave.guardianwarn = Gardien à l'approche dans [accent]{0}[] vagues.
+wave.guardianwarn.one = Gardien à l'approche dans [accent]{0}[] vague.
loadimage = Charger l'image
saveimage = Sauvegarder l'image
unknown = Inconnu
@@ -328,6 +331,7 @@ editor.generation = Génération:
editor.ingame = Éditer dans le jeu
editor.publish.workshop = Publier sur le Workshop
editor.newmap = Nouvelle carte
+editor.center = Centrer
workshop = Steam Workshop
waves.title = Vagues
waves.remove = Supprimer
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-desso
filter.distort = Déformation
filter.noise = Bruit
filter.enemyspawn = Zone d'apparition enemi
+filter.spawnpath = Path To Spawn
filter.corespawn = Zone d'apparition du noyau
filter.median = Médian
filter.oremedian = Minerai Médian
@@ -440,6 +445,7 @@ filter.option.amount = Quantité
filter.option.block = Bloc
filter.option.floor = Sol
filter.option.flooronto = Sol en question
+filter.option.target = Cible
filter.option.wall = Mur
filter.option.ore = Minerai
filter.option.floor2 = Sol secondaire
@@ -471,15 +477,9 @@ requirement.wave = Vague {0} dans {1}
requirement.core = Détruire le Noyau ennemi dans {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Reprendre la partie:\n[lightgray]{0}
bestwave = [lightgray]Meilleur: {0}
-launch = < LANCEMENT >
launch.text = Launch
-launch.title = Lancement Réussi
-launch.next = [lightgray]prochaine opportunité à la vague {0}
-launch.unable2 = [scarlet]LANCEMENT impossible.[]
-launch.confirm = Cela va transférer toutes les ressources de votre noyau.\nVous ne pourrez plus retourner à cette base.
-launch.skip.confirm = Si vous passez à la vague suivante, vous ne pourrez pas effectuer le lancement avant les prochaines vagues.
+research.multiplayer = Only the host can research items.
uncover = Découvrir
configure = Modifier les ressources à emporter
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\nAucun retour
settings.clearall.confirm = [scarlet]ATTENTION![]\nCette action effacera toutes les données, y compris les sauvegardes, les cartes, la progression et la configuration des touches.\nUne fois que vous aurez pressé 'OK' le jeu effacera TOUTES les données et se fermera.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Pause >
clear = Effacer
banned = [scarlet]Bannis
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]Une erreur s'est produite
error.crashtitle = Une erreur s'est produite
unit.nobuild = [scarlet]Cette unité ne peut construire
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Entrée
stat.output = Sortie
stat.booster = Booster
stat.tiles = Pré-requis
stat.affinities = Affinités
-block.unknown = [lightgray]???
stat.powercapacity = Capacité d'énergie
stat.powershot = Énergie/Tir
stat.damage = Dégâts
@@ -594,6 +606,7 @@ stat.powerconnections = Nombre maximal de connections
stat.poweruse = Énergie utilisée
stat.powerdamage = Dégâts d'énergie
stat.itemcapacity = Stockage
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Production d'énergie
stat.productiontime = Durée de production
stat.repairtime = Durée de réparation complète du Bloc
@@ -613,6 +626,28 @@ stat.reload = Tirs/Seconde
stat.ammo = Munitions
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Meilleure Foreuse Requise
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Énergie: {0}/s
bar.powerstored = En stock: {0}/{1}
bar.poweramount = Énergie: {0}
bar.poweroutput = Énergie Produite: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Objets: {0}
bar.capacity = Capacité: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Progression de la construction
bar.input = Entrée
bar.output = Sortie
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] dégâts
bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs
bullet.incendiary = [stat]incendiaire
@@ -642,12 +680,15 @@ bullet.homing = [stat]autoguidé
bullet.shock = [stat]choc électrique
bullet.frag = [stat]explosif
bullet.knockback = [stat]{0}[lightgray] recul
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]gel
bullet.tarred = [stat]goudronné
bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions
bullet.reload = [stat]{0}[lightgray]x vitesse de tir
unit.blocks = blocs
+unit.blockssquared = blocks²
unit.powersecond = énergie/seconde
unit.liquidsecond = unité de liquide/seconde
unit.itemssecond = objets/seconde
@@ -670,7 +711,7 @@ category.power = Énergie
category.liquids = Liquides
category.items = Objets
category.crafting = Fabrication
-category.shooting = Puissance de feu
+category.function = Function
category.optional = Améliorations optionnelles
setting.landscape.name = Verrouiller en rotation paysage
setting.shadows.name = Ombres
@@ -679,7 +720,6 @@ setting.linear.name = Filtrage Linéaire
setting.hints.name = Astuces
setting.flow.name = Afficher le Débit des Ressources
setting.buildautopause.name = Confirmation avant la construction
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Eau animée
setting.animatedshields.name = Boucliers Animés
setting.antialias.name = Anticrénelage[lightgray] (redémarrage du jeu nécessaire)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Plein Écran
setting.borderlesswindow.name = Fenêtre sans bords (Borderless)[lightgray] (peut nécessiter le redémarrage du jeu)
setting.fps.name = Afficher FPS et Ping
setting.smoothcamera.name = Lissage de la Caméra
-setting.blockselectkeys.name = Afficher les Touches pour Sélectionner les Blocs avec un Clavier
setting.vsync.name = VSync
setting.pixelate.name = Pixeliser[lightgray] (désactive les animations)
setting.minimap.name = Afficher la Minimap
@@ -822,6 +861,7 @@ mode.custom = Règles personnalisées
rules.infiniteresources = Ressources infinies
rules.reactorexplosions = Explosion des Réacteurs
+rules.schematic = Schematics Allowed
rules.wavetimer = Minuterie pour les vagues
rules.waves = Vagues
rules.attack = Mode « Attaque »
@@ -847,6 +887,7 @@ rules.title.unit = Unités
rules.title.experimental = Expérimental
rules.title.environment = Environment
rules.lighting = Éclairage
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Éclairage Ambiant
@@ -858,6 +899,7 @@ content.item.name = Objets
content.liquid.name = Liquides
content.unit.name = Unités
content.block.name = Blocs
+
item.copper.name = Cuivre
item.lead.name = Plomb
item.coal.name = Charbon
@@ -879,23 +921,6 @@ liquid.slag.name = Scories
liquid.oil.name = Pétrole
liquid.cryofluid.name = Liquide Cryogénique
-item.explosiveness = [lightgray]Explosivité: {0}
-item.flammability = [lightgray]Inflammabilité: {0}
-item.radioactivity = [lightgray]Radioactivité: {0}
-
-unit.health = [lightgray]Santé: {0}
-unit.speed = [lightgray]Vitesse: {0}
-unit.weapon = [lightgray]Arme: {0}
-unit.itemcapacity = [lightgray]Stockage: {0}
-unit.minespeed = [lightgray]Vitesse de Minage: {0}%
-unit.minepower = [lightgray]Puissance de Minage: {0}
-unit.ability = [lightgray]Abilité: {0}
-unit.buildspeed = [lightgray]Vitesse de Construction: {0}%
-
-liquid.heatcapacity = [lightgray]Capacité Thermique: {0}
-liquid.viscosity = [lightgray]Viscosité: {0}
-liquid.temperature = [lightgray]Température: {0}
-
unit.dagger.name = Poignard
unit.mace.name = Mace
unit.fortress.name = Forteresse
@@ -936,6 +961,7 @@ block.cliff.name = Falaise
block.sand-boulder.name = Bloc de Sable
block.grass.name = Herbe
block.slag.name = Scories
+block.space.name = Space
block.salt.name = Sel
block.salt-wall.name = Salt Wall
block.pebbles.name = Cailloux
@@ -981,6 +1007,7 @@ block.darksand-water.name = Eau avec fond de Sable Sombre
block.char.name = Cendre
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Neige et Glace
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Source d'Énergie
block.unloader.name = Déchargeur
block.vault.name = Coffre-Fort
block.wave.name = Onde
+block.tsunami.name = Tsunami
block.swarmer.name = Nuée
block.salvo.name = Salve
block.ripple.name = Percussion
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = Générateur G.T.R.
block.spectre.name = Spectre
block.meltdown.name = Fusion
+block.foreshadow.name = Foreshadow
block.container.name = Conteneur
block.launch-pad.name = Plateforme de Lancement
block.launch-pad-large.name = Grande Plateforme de Lancement
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = bleu
team.crux.name = rouge
@@ -1302,4 +1332,4 @@ block.cyclone.description = Une grande tourelle qui tire rapidement des débris
block.spectre.description = Une tourelle massive à double cannon et qui tire de puissantes balles perce-blindages simultanément.
block.meltdown.description = Une tourelle massive chargeant et tirant de puissants rayons lasers. Nécessite un liquide de refroidissement.
block.repair-point.description = Soigne en permanence l'unité endommagée la plus proche à proximité.
-block.segment.description = Endommage et détruit les tirs ennemis. Cependant, les lasers ne peuvent pas être ciblés.
\ No newline at end of file
+block.segment.description = Endommage et détruit les tirs ennemis. Cependant, les lasers ne peuvent pas être ciblés.
diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties
index 869da14c46..8975031cb6 100644
--- a/core/assets/bundles/bundle_fr_BE.properties
+++ b/core/assets/bundles/bundle_fr_BE.properties
@@ -20,8 +20,8 @@ gameover = Le base a été détruite.
gameover.pvp = L'équipe[accent] {0}[] a gagnée !
highscore = [accent]Nouveau meilleur score !
copied = Copié.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = [accent]La v6[] est actuellement en [accent]alpha[].\n[lightgray]Cela signifie :[]\n[scarlet]- La campagne est totalement incomplète[]\n- Il manque du contenu\n - La plupart des [scarlet]IA d'unités[] ne fonctionne pas correctement\n- De nombreuses unités ne sont pas terminées\n- Tout ce que vous voyez est susceptible d'être modifié ou supprimé.\n\nMerci de rapporter les bugs/crash sur [accent]Github[].
+indev.notready = Cette partie du jeu n'est pas encore prête
load.sound = Son
load.map = Maps
@@ -33,7 +33,7 @@ load.scripts = Scripts
be.update = Une nouvelle version est disponible:
be.update.confirm = Voulez vous la télécharger et recommencer maintenant ?
-be.updating = Entrain de mettre à jour...
+be.updating = En train de mettre à jour...
be.ignore = Ignorer
be.noupdates = Aucune mise à jour n'as été trouvée.
be.check = Chercher des mises à jour
@@ -52,9 +52,10 @@ schematic.copy.import = Importer du presse-papier
schematic.shareworkshop = Partager sur l'Atelier
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Retourner Schéma
schematic.saved = Schéma enregistré.
-schematic.delete.confirm = Ce Schéma sera totalement éradiqué.
+schematic.delete.confirm = Ce Schéma sera définitivement supprimé.
schematic.rename = Renommer Schéma
schematic.info = {0}x{1}, {2} blocks
+schematic.disabled = [scarlet] Schémas désactivés ![]\nVous n'êtes pas autorisés à utiliser des schémas sur cette [accent]map[] ou ce [accent]serveur.
stat.wave = Vagues vaincues:[accent] {0}
stat.enemiesDestroyed = Ennemies détruits:[accent] {0}
@@ -100,7 +101,6 @@ done = Fini
feature.unsupported = Votre appareil ne prend pas en charge cette fonctionnalité.
mods.alphainfo = Tenez en compte que les mods sont en version alpha et [scarlet] qu'ils peuvent avoir des bugs[].\nVeuillez signaler tout les problèmes que vous encontrez sur le Github de Mindustry ou sur Discord.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]Aucun Mod trouvé !
mods.guide = Guide de Modding
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Vague {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Prochaine vague dans {0}
wave.waveInProgress = [lightgray]Vague en cours
waiting = [lightgray]En attente...
waiting.players = En attente de joueurs ...
wave.enemies = [lightgray]{0} Ennemis restants
wave.enemy = [lightgray]{0} Ennemi restant
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Charger l'image
saveimage = Sauvegarder l'image
unknown = Inconnu
@@ -328,6 +331,7 @@ editor.generation = Generation:
editor.ingame = Modifier en jeu
editor.publish.workshop = Publish On Workshop
editor.newmap = Nouvelle carte
+editor.center = Center
workshop = Workshop
waves.title = Vagues
waves.remove = Retirer
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-desso
filter.distort = Déformation
filter.noise = Bruit
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Ore Median
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Bloc
filter.option.floor = Sol
filter.option.flooronto = Sible au sol
+filter.option.target = Target
filter.option.wall = Mur
filter.option.ore = Minerai
filter.option.floor2 = Sol secondaire
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Reprendre la partie en cours:\n[lightgray]{0}
bestwave = [lightgray]Meilleur: {0}
-launch = Lancement
launch.text = Launch
-launch.title = Lancement réussi
-launch.next = [lightgray]Prochaine opportunité à la vague {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = Cela lancera toutes les ressources dans votre noyau.\nVous ne pourrez pas revenir à cette base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
+research.multiplayer = Only the host can research items.
uncover = Découvrir
configure = Configurer le transfert des ressources.
loadout = Loadout
@@ -508,12 +508,13 @@ error.io = Network I/O error.
error.any = Erreur réseau inconnue.
error.bloom = Échec d'initialisation du flou lumineux.\nVotre appareil peut ne pas le supporter.
-weather.rain.name = Rain
-weather.snow.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
+weather.rain.name = Pluie
+weather.snow.name = Neige
+weather.sandstorm.name = Tempête de sable
+weather.sporestorm.name = Tempête de spores
+weather.fog.name = Brouillard
-sectors.unexplored = [lightgray]Unexplored
+sectors.unexplored = [lightgray] Inexploré
sectors.resources = Resources:
sectors.production = Production:
sectors.stored = Stored:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Ressources du noyau insuffisantes
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Soleil
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -546,8 +552,8 @@ sector.desolateRift.description = An extremely dangerous zone. Plentiful resourc
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
-settings.language = Langage
-settings.data = Game Data
+settings.language = Langue
+settings.data = Données du jeu
settings.reset = Valeur par défaut.
settings.rebind = Réatttribuer
settings.resetKey = Reset
@@ -560,6 +566,10 @@ settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\n[scarlet]Ceci
settings.clearall.confirm = [scarlet]ATTENTION![]\nCet action effacera toutes les données , incluant les sauvegarges, les cartes, les déblocages et la configuration des touches.\nUne fois que vous aurez pressé 'Ok' le jeu effacera toutes les données et se fermera.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = En pause
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]Une erreur s'est produite
error.crashtitle = Une erreur s'est produite
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]Inconnu
+
stat.input = Ressource(s) requise(s)
stat.output = Ressource(s) produite(s)
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]Inconnu
stat.powercapacity = Capacité d'énergie
stat.powershot = Énergie/Tir
stat.damage = Damage
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Énergie utilisée
stat.powerdamage = Énergie/Dégâts
stat.itemcapacity = Stockage
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Production d'énergie de base
stat.productiontime = Temps de production
stat.repairtime = Temps pour la réparation totale du bloc
@@ -613,6 +626,28 @@ stat.reload = Tirs/Seconde
stat.ammo = Munition
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Énergie: {0}
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Énergie: {0}
bar.poweroutput = Énergie en sortie: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Objets: {0}
bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Progression de la construction
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] dégats
bullet.splashdamage = [stat]{0}[lightgray] dgt zone ~[stat] {1}[lightgray] tuiles
bullet.incendiary = [stat]incendiaire
@@ -642,12 +680,15 @@ bullet.homing = [stat]autoguidage
bullet.shock = [stat]choc
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray]recul
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]gel
bullet.tarred = [stat]goudronné
bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions
bullet.reload = [stat]{0}[lightgray]x vitesse de rechargement
unit.blocks = Blocs
+unit.blockssquared = blocks²
unit.powersecond = Énergie/seconde
unit.liquidsecond = Liquides/seconde
unit.itemssecond = Objets/seconde
@@ -670,7 +711,7 @@ category.power = Énergie
category.liquids = Liquides
category.items = Objets
category.crafting = Fabrication
-category.shooting = Défense
+category.function = Function
category.optional = Améliorations facultatives
setting.landscape.name = Verrouiller la rotation en mode paysage
setting.shadows.name = Ombres
@@ -679,7 +720,6 @@ setting.linear.name = Filtrage linéaire
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Eau animée
setting.animatedshields.name = Boucliers Animés
setting.antialias.name = Antialias[lightgray] (demande le redémarrage de l'appareil)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Plein écran
setting.borderlesswindow.name = Fenêtre sans bordure[lightgray] (peut nécessiter un redémarrage)
setting.fps.name = Afficher FPS
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixélisé [lightgray](peut diminuer les performances)[]
setting.minimap.name = Montrer la minimap
@@ -822,6 +861,7 @@ mode.custom = Règles personnalisées
rules.infiniteresources = Ressources infinies
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Temps de vague
rules.waves = Vague
rules.attack = Mode attaque
@@ -847,6 +887,7 @@ rules.title.unit = Unités
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Objets
content.liquid.name = Liquides
content.unit.name = Unités
content.block.name = Blocs
+
item.copper.name = Cuivre
item.lead.name = Plomb
item.coal.name = Charbon
@@ -879,30 +921,13 @@ liquid.slag.name = Scorie
liquid.oil.name = Pétrole
liquid.cryofluid.name = Liquide Cryogénique
-item.explosiveness = [lightgray]Explosivité: {0}
-item.flammability = [lightgray]Inflammabilité: {0}
-item.radioactivity = [lightgray]Radioactivité: {0}
-
-unit.health = [lightgray]Santé: {0}
-unit.speed = [lightgray]Vitesse: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Capacité Thermique {0}
-liquid.viscosity = [lightgray]Viscosité: {0}
-liquid.temperature = [lightgray]Température: {0}
-
unit.dagger.name = Poignard
unit.mace.name = Mace
unit.fortress.name = Forteresse
unit.nova.name = Nova
unit.pulsar.name = Pulsar
unit.quasar.name = Quasar
-unit.crawler.name = Chenille
+unit.crawler.name = Rampeur
unit.atrax.name = Atrax
unit.spiroct.name = Spiroct
unit.arkyid.name = Arkyid
@@ -930,17 +955,18 @@ unit.reign.name = Reign
unit.vela.name = Vela
unit.corvus.name = Corvus
-block.resupply-point.name = Resupply Point
+block.resupply-point.name = Point de rechargement
block.parallax.name = Parallax
-block.cliff.name = Cliff
+block.cliff.name = Falaise
block.sand-boulder.name = Sable rocheux
block.grass.name = Herbe
-block.slag.name = Slag
+block.slag.name = Scories
+block.space.name = Space
block.salt.name = Sel
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = Mur de sel
block.pebbles.name = Cailloux
block.tendrils.name = Vrilles
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = Mur de sable
block.spore-pine.name = Pin sporifère
block.spore-wall.name = Spore Wall
block.boulder.name = Boulder
@@ -957,11 +983,11 @@ block.scrap-wall-large.name = Grand mur de ferraille
block.scrap-wall-huge.name = Enorme mur de ferraille
block.scrap-wall-gigantic.name = Gigantesque mur de ferraille
block.thruster.name = Propulseur
-block.kiln.name = Four a métaverre
+block.kiln.name = Four
block.graphite-press.name = Presse à graphite
block.multi-press.name = Multi-Presse
block.constructing = {0}\n[lightgray](En construction)
-block.spawn.name = Générateur d'ennemi
+block.spawn.name = Générateur d'ennemis
block.core-shard.name = Core: Shard
block.core-foundation.name = Core: Fondation
block.core-nucleus.name = Core: Nucleus
@@ -981,6 +1007,7 @@ block.darksand-water.name = Eau (sable noir)
block.char.name = Carboniser
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Neige glacée
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1021,71 +1048,72 @@ block.thorium-wall-large.name = Grand mur en thorium
block.door.name = Porte
block.door-large.name = Grande porte
block.duo.name = Duo
-block.scorch.name = Scorch
-block.scatter.name = Scatter
-block.hail.name = Hail
-block.lancer.name = Lancer
-block.conveyor.name = Transporteur
-block.titanium-conveyor.name = Transporteur en titane
-block.plastanium-conveyor.name = Plastanium Conveyor
-block.armored-conveyor.name = Armored Conveyor
+block.scorch.name = Brûleur
+block.scatter.name = Disperseur
+block.hail.name = Grêle
+block.lancer.name = Lancier
+block.conveyor.name = Convoyeur
+block.titanium-conveyor.name = Convoyeur en titane
+block.plastanium-conveyor.name = Convoyeur en plastanium
+block.armored-conveyor.name = Convoyeur cuirassé
block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyors.
-block.junction.name = Junction
+block.junction.name = Jonction
block.router.name = Routeur
block.distributor.name = [accent]Distributeur[]
block.sorter.name = Trieur
-block.inverted-sorter.name = Inverted Sorter
+block.inverted-sorter.name = Trieur inversé
block.message.name = Message
block.illuminator.name = Illuminator
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Barrière de Débordement
-block.underflow-gate.name = Underflow Gate
+block.underflow-gate.name = Barrière de Refoulement
block.silicon-smelter.name = Fonderie de silicium
block.phase-weaver.name = Tisseur à phase
block.pulverizer.name = Pulvérisateur
block.cryofluid-mixer.name = Refroidisseur
block.melter.name = Four à Fusion
block.incinerator.name = Incinérateur
-block.spore-press.name = Spore presse
+block.spore-press.name = Presse à spores
block.separator.name = Séparateur
block.coal-centrifuge.name = Centrifugeuse à charbon
block.power-node.name = Transmetteur énergétique
block.power-node-large.name = Grand transmetteur énergétique
block.surge-tower.name = Tour de surtension
-block.diode.name = Battery Diode
+block.diode.name = Diode de batterie
block.battery.name = Batterie
-block.battery-large.name = Batterie large
+block.battery-large.name = Grande batterie
block.combustion-generator.name = Générateur à combustion
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
-block.pneumatic-drill.name = Foreuse à vérin
+block.pneumatic-drill.name = Foreuse à vérins
block.laser-drill.name = Foreuse Laser
block.water-extractor.name = Extracteur d'eau
block.cultivator.name = Cultivateur
block.conduit.name = Conduit
-block.mechanical-pump.name = Pompe Méchanique
+block.mechanical-pump.name = Pompe Mécanique
block.item-source.name = Source d'objets
block.item-void.name = Destructeur d'objets
block.liquid-source.name = Source de liquide
-block.liquid-void.name = Liquid Void
+block.liquid-void.name = Vaporisateur
block.power-void.name = Absorbeur énergétique
block.power-source.name = Puissance infinie
block.unloader.name = Déchargeur
block.vault.name = Coffre-Fort
block.wave.name = Vague
+block.tsunami.name = Tsunami
block.swarmer.name = Essaim
block.salvo.name = Salve
-block.ripple.name = Ripple
-block.phase-conveyor.name = Transporteur phasé
-block.bridge-conveyor.name = Pont transporteur
+block.ripple.name = Percussion
+block.phase-conveyor.name = Convoyeur phasé
+block.bridge-conveyor.name = Pont
block.plastanium-compressor.name = Compresseur de plastanium
block.pyratite-mixer.name = Mixeur à pyratite
block.blast-mixer.name = Mixeur à explosion
block.solar-panel.name = Panneau solaire
block.solar-panel-large.name = Grand panneau solaire
-block.oil-extractor.name = Extracteur de pétrol
+block.oil-extractor.name = Extracteur de pétrole
block.repair-point.name = Point de Réparation
block.pulse-conduit.name = Conduit à Impulsion
block.plated-conduit.name = Plated Conduit
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = G.T.R.
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Conteneur
block.launch-pad.name = Rampe de lancement
block.launch-pad-large.name = Grande rampe de lancement
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = Bleu
team.crux.name = red
@@ -1244,7 +1274,7 @@ block.inverted-sorter.description = Processes items like a standard sorter, but
block.router.description = Accepte les éléments d'une direction et les envoie dans 3 autres directions de manière égale. Utile pour séparer les matériaux d'une source en plusieurs cibles.
block.distributor.description = Un routeur avancé qui divise les articles en 7 autres directions de manière égale. [scarlet]Seule et unique ![]
block.overflow-gate.description = C'est la combinaison entre un routeur et un diviseur qui peut seulement distribuer à gauche et à droite si le chemin de devant est bloqué.
-block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
+block.underflow-gate.description = Le contraire d'une barrière de débordement.\nEnvoie les ressources vers l'avant si les chemins de gauche et de droite sont bloqués.
block.mass-driver.description = Bloc de transport d'articles ultime.\nRecueille plusieurs objets et les envoie ensuite à un autre pilote de masse sur une longue distance.
block.mechanical-pump.description = Une pompe bon marché avec un débit lent, mais aucune consommation d'énergie.
block.rotary-pump.description = Une pompe avancée qui double la vitesse en utilisant l’énergie.
@@ -1302,4 +1332,4 @@ block.cyclone.description = Une grande tourelle à tir rapide.
block.spectre.description = Une grande tourelle qui tire deux balles puissantes à la fois.
block.meltdown.description = Une grande tourelle qui tire de puissants faisceaux à longue portée.
block.repair-point.description = Soigne en permanence l'unité endommagée la plus proche à proximité.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties
index c24c9a24ee..0d342c5491 100644
--- a/core/assets/bundles/bundle_hu.properties
+++ b/core/assets/bundles/bundle_hu.properties
@@ -55,6 +55,7 @@ schematic.saved = Schematic mentve.
schematic.delete.confirm = Ez a Schematic törölve lesz.
schematic.rename = Schematic átnevezése
schematic.info = {0}x{1}, {2} blokk
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Hullámok kivédve:[accent] {0}
stat.enemiesDestroyed = Ellenségek kivédve:[accent] {0}
@@ -100,7 +101,6 @@ done = Kész
feature.unsupported = Az eszköz nem támogatja a funkciót.
mods.alphainfo = Figyelem! a modok alfa állapotban vannak, és[scarlet] nagyon sok lehet benne a hiba[].\nJelentsd be az esetleges hibákat a Mindustry GitHubon vagy a Discordon.
-mods.alpha = [accent](Alfa)
mods = Modok
mods.none = [LIGHT_GRAY]Nincsen Mod!
mods.guide = Mod készítési útmutató
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]{0}. hullám
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Következő hullám: {0}
wave.waveInProgress = [lightgray]Wave in progress
waiting = [lightgray]Várakozás...
waiting.players = Waiting for players...
wave.enemies = [lightgray]{0} ellenség maradt
wave.enemy = [lightgray]{0} ellenség maradt
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Load Image
saveimage = Save Image
unknown = Unknown
@@ -328,6 +331,7 @@ editor.generation = Generation:
editor.ingame = Edit In-Game
editor.publish.workshop = Publish On Workshop
editor.newmap = New Map
+editor.center = Center
workshop = Workshop
waves.title = Waves
waves.remove = Remove
@@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Ore Median
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Block
filter.option.floor = Floor
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Wall
filter.option.ore = Ore
filter.option.floor2 = Secondary Floor
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best Wave: {0}
-launch = < INDÍTÁS >
launch.text = Launch
-launch.title = Indítás sikeres
-launch.next = [lightgray]következő lehetőség a {0}. hullámnál
-launch.unable2 = [scarlet]Nem lehet ELINDÍTANI.[]
-launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
+research.multiplayer = Only the host can research items.
uncover = Uncover
configure = Configure Loadout
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Paused >
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
@@ -613,6 +626,28 @@ stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Items: {0}
bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Build Progress
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -642,12 +680,15 @@ bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x fire rate
unit.blocks = blocks
+unit.blockssquared = blocks²
unit.powersecond = power units/second
unit.liquidsecond = liquid units/second
unit.itemssecond = items/second
@@ -670,7 +711,7 @@ category.power = Power
category.liquids = Liquids
category.items = Items
category.crafting = Input/Output
-category.shooting = Shooting
+category.function = Function
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows
@@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS
setting.fpscap.none = None
setting.fpscap.text = {0} FPS
-setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
+setting.uiscale.name = UI Scaling[lightgray] (requires restart)[]
setting.swapdiagonal.name = Always Diagonal Placement
setting.difficulty.training = Training
setting.difficulty.easy = Easy
@@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
setting.fps.name = Show FPS & Ping
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate
setting.minimap.name = Show Minimap
@@ -822,6 +861,7 @@ mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Items
content.liquid.name = Liquids
content.unit.name = Units
content.block.name = Blocks
+
item.copper.name = Copper
item.lead.name = Lead
item.coal.name = Coal
@@ -879,23 +921,6 @@ liquid.slag.name = Slag
liquid.oil.name = Oil
liquid.cryofluid.name = Cryofluid
-item.explosiveness = [lightgray]Robbanékonyság: {0}%
-item.flammability = [lightgray]Gyúlékonyság: {0}%
-item.radioactivity = [lightgray]Radioaktivitás: {0}%
-
-unit.health = [lightgray]Health: {0}
-unit.speed = [lightgray]Sebesség: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Hő hapacitás: {0}
-liquid.viscosity = [lightgray]Viszkozitás: {0}
-liquid.temperature = [lightgray]Hőmérséklet: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Sand Boulder
block.grass.name = Grass
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Salt
block.salt-wall.name = Salt Wall
block.pebbles.name = Pebbles
@@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader
block.vault.name = Vault
block.wave.name = Wave
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blue
team.crux.name = red
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties
index e9f6f933eb..1616c1ef5e 100644
--- a/core/assets/bundles/bundle_in_ID.properties
+++ b/core/assets/bundles/bundle_in_ID.properties
@@ -101,7 +101,6 @@ done = Selesai
feature.unsupported = Perangkat Anda tidak mendukung fitur ini.
mods.alphainfo = Perlu diingat bahwa mod masih dalam perkembangan, dan[scarlet] bisa mengakibatkan kerusakan[].\nLapor isu atau masalah di Github atau Discord Mindustry.
-mods.alpha = [accent](Alpha)
mods = Mod
mods.none = [lightgray]Tidak ada mod yang ditemukan!
mods.guide = Panduan Modding
@@ -268,6 +267,9 @@ cancel = Batal
openlink = Buka Tautan
copylink = Salin Tautan
back = Kembali
+crash.export = Export Crash Logs
+crash.none = No crash logs found.
+crash.exported = Crash logs exported.
data.export = Ekspor Data
data.import = Impor Data
data.openfolder = Buka Folder Data
@@ -285,12 +287,15 @@ selectschematic = [accent][[{0}][] untuk memilih+salin
pausebuilding = [accent][[{0}][] untuk berhenti membangun
resumebuilding = [scarlet][[{0}][] untuk lanjut membangun
wave = [accent]Gelombang {0}
+wave.cap = [accent]Gelombang {0}/{1}
wave.waiting = [lightgray]Gelombang di {0}
wave.waveInProgress = [lightgray]Gelombang sedang berlangsung
waiting = [lightgray]Menunggu...
waiting.players = Menunggu pemain lainnya...
wave.enemies = [lightgray]{0} Musuh Tersisa
wave.enemy = [lightgray]{0} Musuh Tersisa
+wave.guardianwarn = Guardian akan tiba dalam [accent]{0}[] gelombang.
+wave.guardianwarn.one = Guardian akan tiba dalam [accent]{0}[] gelombang.
loadimage = Memuat Gambar
saveimage = Simpan Gambar
unknown = Tak diketahui
@@ -329,6 +334,7 @@ editor.generation = Generasi:
editor.ingame = Sunting dalam Permainan
editor.publish.workshop = Terbitkan di Workshop
editor.newmap = Peta Baru
+editor.center = Pusat
workshop = Workshop
waves.title = Gelombang
waves.remove = Hapus
@@ -418,6 +424,7 @@ filters.empty = [lightgray]Tidak ada filter! Tambahkan dengan tombol dibawah.
filter.distort = Kerusakkan
filter.noise = Kebisingan
filter.enemyspawn = Pilih Munculnya Musuh
+filter.spawnpath = Path To Spawn
filter.corespawn = Pilih Inti
filter.median = Median
filter.oremedian = Median Bijih
@@ -442,6 +449,7 @@ filter.option.amount = Jumlah
filter.option.block = Blok
filter.option.floor = Lantai
filter.option.flooronto = Target Lantai
+filter.option.target = Target
filter.option.wall = Dinding
filter.option.ore = Sumber Daya
filter.option.floor2 = Lantai Sekunder
@@ -458,6 +466,8 @@ load = Memuat
save = Simpan
fps = FPS: {0}
ping = Ping: {0}ms
+memory = Mem: {0}mb
+memory2 = Mem:\n {0}mb +\n {1}mb
language.restart = Silahkan mengulang kembali permainan agar pengaturan bahasa berpengaruh.
settings = Pengaturan
tutorial = Tutorial
@@ -475,9 +485,10 @@ requirement.research = Kembangkan {0}
requirement.capture = Kuasai {0}
bestwave = [lightgray]Gelombang Terbaik: {0}
launch.text = Luncurkan
-campaign.multiplayer = Saat bermain bersama di kampanye, Kamu hanya bisa kembangkan menggunakan item dari sektor [accent]kamu[], [scarlet]Bukan[] sektor milik host yang kamu berada sekarang.\n\nUntuk mendapatkan item tersebut ke sektor [accent]kamu[] saat bermain bersama, gunakan [accent]alas peluncur[].
+research.multiplayer = Hanya host yang dapat meneliti item.
uncover = Buka
configure = Konfigurasi Muatan
+
#TODO
loadout = Muatan
resources = Sumber Daya
@@ -487,14 +498,14 @@ launch.destination = Destinasi: {0}
configure.invalid = Jumlah harus berupa angka diantara 0 dan {0}.
zone.unlocked = [lightgray]{0} terbuka.
zone.requirement.complete = Gelombang {0} terselesaikan:\nPersyaratan zona {1} tercapai.
-zone.resources = Sumber Daya Terdeteksi:
+zone.resources = [lightgray]Sumber Daya Terdeteksi:
zone.objective = [lightgray]Objektif: [accent]{0}
zone.objective.survival = Bertahan
zone.objective.attack = Hancurkan Inti Musuh
add = Menambahkan...
boss.health = Darah Bos
-connectfail = [crimson]Gagal menyambung ke server:\n\n[accent]{0}
+connectfail = [scarlet]Gagal menyambung ke server:\n\n[accent]{0}
error.unreachable = Server tak terjangkau.\nApakah alamatnya benar?
error.invalidaddress = Alamat tidak valid.
error.timedout = Kehabisan waktu!\nPastikan pemilik mempunyai port forwarding, dan alamatnya benar!
@@ -509,6 +520,7 @@ weather.rain.name = Hujan
weather.snow.name = Salju
weather.sandstorm.name = Badai Pasir
weather.sporestorm.name = Badai Spora
+weather.fog.name = Kabut
sectors.unexplored = [lightgray]Belum Ditelusuri
sectors.resources = Sumber Daya:
@@ -518,6 +530,12 @@ sectors.resume = Lanjutkan
sectors.launch = Luncurkan
sectors.select = Pilih
sectors.nonelaunch = [lightgray]tidak ada
+sectors.rename = Ganti Nama Sektor
+sector.missingresources = [scarlet]Sumber Daya Inti Tidak Cukup
+
+planet.serpulo.name = Serpulo
+#TODO better name
+planet.sun.name = Matahari
#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway
sector.groundZero.name = Ground Zero
@@ -536,17 +554,17 @@ sector.fungalPass.name = Fungal Pass
#sector.impact0078.name = Impact 0078
#sector.crags.name = Crags
-sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Beberapa sumber daya.\nKumpulkan timah dan tembaga sebanyak yang anda bisa.\nPindah.
-sector.frozenForest.description = Disini, dekat dengan gunung, spora spora sudah menyebar. Temperatur yang sangat rendah tidak dapat mempertahankan selamanya.\n\nBerusaha untuk kekuatan. Bangun generator pembakaran. Pelajari cara menggunakan mender.
-sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
-sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
-sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
-sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
-sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
-sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
-sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
-sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
+sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Beberapa sumber daya dapat dikumpulkan.\nKumpulkan timah dan tembaga sebanyak yang kamu bisa.\nMulai dari sini.
+sector.frozenForest.description = Disini, dekat dengan gunung, spora sudah menyebar. Suhu dingin tidak dapat menahannya.\n\nHasilkan listrik. Bangun generator pembakar. Pelajari cara menggunakan mender.
+sector.saltFlats.description = Di pinggiran padang pasir terdapat Daratan Garam. Beberapa sumber daya dapat ditemukan disini.\n\nMusuh telah membangun gudang disini. Hancurkan inti mereka. Jangan biarkan satupun tersisa.
+sector.craters.description = Air banyak terkumpul di kawah ini, sebuah peninggalan dari perang masa lalu. Klaim area ini lagi. Kumpulkan pasir. Lebur metaglass. Pompa air untuk mendinginkan turret dan bor.
+sector.ruinousShores.description = Keluar dari lembah gunung, terdapat garis pantai. Sebelumnya, area ini adalah garis pertahanan pantai. Sekarang tidak banyak yang tersisa. Hanya pertahanan dasar yang tersisa, yang lain hancur berkeping keping.\nBangun kembali pertahanan di sini. Pelajari lebih banyak teknologi.
+sector.stainedMountains.description = Area ini terletak di dekat pegunungan, namun belum tersentuh oleh spora.\nTambang titanium yang ada di area ini. Pelajari fungsinya.\n\nMusuh jauh lebih kuat disini. Jangan biarkan mereka meluncurkan unit yang lebih kuat.
+sector.overgrowth.description = Area ini banyak ditumbuhi spora, karena dekat dengan sumber spora.\nMusuh telah membangun basis disini. Bangun unit Mace. Hancurkan mereka. Klaim apapun yang tersisa.
+sector.tarFields.description = Terletak di pinggiran zona produksi minyak, diantara gunung dan padang pasir. Salah satu dari beberapa area yang memiliki cadangan minyak yang dapat digunakan.\nMeskipun ditinggalkan, area ini terdapat pertahanan musuh yang sangat kuat disekitarnya. Jangan meremehkan mereka.\n\n[lightgray]Pelajari proses penyulingan minyak jika bisa.
+sector.desolateRift.description = Zona yang sangat berbahaya. Banyak sumber daya, tetapi terdapat sedikit ruang. Sangat beresiko tinggi untuk dihancurkan. Keluar secepat yang kamu bisa. Jangan terlena karena waktu antara gelombang yang lama.
+sector.nuclearComplex.description = Sebuah fasilitas untuk memproduksi dan memproses thorium, telah hancur.\n[lightgray]Pelajari thorium dan cara penggunaanya.\n\nMusuh disini menyerang dalam jumlah besar, yang siap untuk menghadapi siapapun.
+sector.fungalPass.description = Area ini terdapat diantara pegunungan yang lebih tinggi dengan yang lebih rendah, juga daerah yang dipenuhi spora. Musuh membangun basis kecil disini.\nHancurkan itu.\nGunakan unit Dagger dan Crawler. Hancurkan dua inti mereka.
settings.language = Bahasa
settings.data = Data Game
@@ -562,22 +580,28 @@ settings.clear.confirm = Anda yakin ingin menghapus data ini?\nWaktu tidak bisa
settings.clearall.confirm = [scarlet]PERINGATAN![]\nIni akan menghapus semua data permainan, termasuk simpanan, peta, bukaan dan keybind.\nSetelah Anda menekan 'ok' permainan akan menghapus semua data dan keluar otomatis.
settings.clearsaves.confirm = Anda yakin ingin menghapus semua simpanan?
settings.clearsaves = Bersihkan Simpanan
+settings.clearresearch = Bersihkan Penelitian
+settings.clearresearch.confirm = Apakah Anda yakin ingin membersihkan semua penelitian kampanye?
+settings.clearcampaignsaves = Bersihkan Simpanan Kampanye
+settings.clearcampaignsaves.confirm = Apakah Anda yakin ingin membersihkan semua simpanan kampanye?
paused = [accent]< Jeda >
clear = Bersih
banned = [scarlet]Dilarang
-unplaceable.sectorcaptured = [scarlet]Membutuhkan sektor yang dikuasai
yes = Ya
no = Tidak
info.title = Info
error.title = [crimson]Sebuah kesalahan telah terjadi
error.crashtitle = Sebuah kesalahan telah terjadi
unit.nobuild = [scarlet]Unit tidak dapat membangun
+lastaccessed = [lightgray]Terakhir Diakses: {0}
+block.unknown = [lightgray]???
+
+stat.description = Purpose
stat.input = Masukan
stat.output = Pengeluaran
stat.booster = Pendorong
stat.tiles = Kotak yang dibutuhkan
stat.affinities = Afinitas
-block.unknown = [lightgray]???
stat.powercapacity = Kapasitas Tenaga
stat.powershot = Tenaga/Tembakan
stat.damage = Kerusakan
@@ -614,8 +638,32 @@ stat.inaccuracy = Jarak Melenceng
stat.shots = Tembakan
stat.reload = Tembakan/Detik
stat.ammo = Amunisi
-stat.shieldhealth = Shield Health
+stat.shieldhealth = Darah Perisai
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = Heat Capacity
+stat.viscosity = Viscosity
+stat.temperature = Temperatur
+stat.speed = Kecepatan
+stat.buildspeed = Kecepatan Membangun
+stat.minespeed = Kecepatan Menambang
+stat.minetier = Tingkat Menambang
+stat.payloadcapacity = Kapasitas Muatan
+stat.commandlimit = Batas Perintah
+stat.abilities = Abilities
+stat.canboost = Can Boost
+stat.flying = Terbang
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Pabrik
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Membutuhkan Bor yang Lebih Baik
bar.noresources = Sumber Daya Tidak Ditemukan
@@ -627,6 +675,7 @@ bar.powerbalance = Tenaga: {0}/s
bar.powerstored = Disimpan: {0}/{1}
bar.poweramount = Tenaga: {0}
bar.poweroutput = Pengeluaran Tenaga: {0}
+bar.powerlines = Sambungan: {0}/{1}
bar.items = Item: {0}
bar.capacity = Kapasitas: {0}
bar.unitcap = {0} {1}/{2}
@@ -638,6 +687,8 @@ bar.progress = Perkembangan Pembangunan
bar.input = Masukan
bar.output = Keluaran
+units.processorcontrol = [lightgray]Dikendalikan Prosesor
+
bullet.damage = [stat]{0}[lightgray] kekuatan (dmg)
bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgray] kotak
bullet.incendiary = [stat]membakar
@@ -645,12 +696,15 @@ bullet.homing = [stat]mengejar
bullet.shock = [stat]mengkejut
bullet.frag = [stat]menyebar
bullet.knockback = [stat]{0}[lightgray] pantulan kembali
+bullet.pierce = [stat]{0}[lightgray]x tembus
+bullet.infinitepierce = [stat]menembus
bullet.freezing = [stat]membeku
bullet.tarred = [stat]tar
bullet.multiplier = [stat]{0}[lightgray]x multiplikasi amunisi
bullet.reload = [stat]{0}[lightgray]x rasio menembak
unit.blocks = blok
+unit.blockssquared = blok²
unit.powersecond = unit tenaga/detik
unit.liquidsecond = unit zat cair/detik
unit.itemssecond = item/detik
@@ -663,17 +717,18 @@ unit.persecond = /detik
unit.perminute = /menit
unit.timesspeed = x kecepatan
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = darah perisai
unit.items = item
unit.thousands = rb
unit.millions = jt
unit.billions = m
+category.purpose = Purpose
category.general = Umum
category.power = Tenaga
category.liquids = Zat Cair
category.items = Item
category.crafting = Pemasukan/Pengeluaran
-category.shooting = Menembak
+category.function = Fungsi
category.optional = Peningkatan Opsional
setting.landscape.name = Kunci Pemandangan
setting.shadows.name = Bayangan
@@ -681,10 +736,10 @@ setting.blockreplace.name = Usulan Blok Otomatis
setting.linear.name = Filter Bergaris
setting.hints.name = Petunjuk
setting.flow.name = Tampilan Laju Aliran Sumber Daya
+setting.backgroundpause.name = Jeda di Latar
setting.buildautopause.name = Jeda Otomatis saat Membangun
-setting.mapcenter.name = Pusatkan Peta Otomatis Ke Pemain
setting.animatedwater.name = Animasi Perairan
-setting.animatedshields.name = Animasi Pelindung
+setting.animatedshields.name = Animasi Perisai
setting.antialias.name = Antialiasi[lightgray] (membutuhkan restart)[]
setting.playerindicators.name = Indikasi Pemain
setting.indicators.name = Indikasi Musuh/Teman Lain
@@ -709,14 +764,13 @@ setting.blockstatus.name = Tunjukan Status Blok
setting.conveyorpathfinding.name = Navigasi Pengantar Otomatis
setting.sensitivity.name = Sensitivitas Kontroler
setting.saveinterval.name = Jarak Menyimpan
-setting.seconds = {0} Sekon
+setting.seconds = {0} detik
setting.blockselecttimeout.name = Waktu Habis Pemilihan Blok
-setting.milliseconds = {0} milisekon
+setting.milliseconds = {0} milidetik
setting.fullscreen.name = Layar Penuh
setting.borderlesswindow.name = Jendela tak Berbatas[lightgray] (mungkin memerlukan mengulang kembali)
setting.fps.name = Tunjukkan FPS
setting.smoothcamera.name = Kamera Halus
-setting.blockselectkeys.name = Tunjukkan Kunci Pilih Blok
setting.vsync.name = VSync
setting.pixelate.name = Mode Pixel[lightgray] (menonaktifkan animasi)
setting.minimap.name = Tunjukkan Peta Kecil
@@ -863,6 +917,7 @@ content.item.name = Item
content.liquid.name = Zat Cair
content.unit.name = Unit
content.block.name = Blok
+
item.copper.name = Tembaga
item.lead.name = Timah
item.coal.name = Batu Bara
@@ -878,29 +933,12 @@ item.sand.name = Pasir
item.blast-compound.name = Senyawa Peledak
item.pyratite.name = Pyratit
item.metaglass.name = Metaglass
-item.scrap.name = Kepingan
+item.scrap.name = Rongsokan
liquid.water.name = Air
liquid.slag.name = Terak
liquid.oil.name = Minyak
liquid.cryofluid.name = Cairan Pendingin
-item.explosiveness = [lightgray]Tingkat Keledakan: {0}%
-item.flammability = [lightgray]Tingkat Kebakaran: {0}%
-item.radioactivity = [lightgray]Tingkat Radioaktif: {0}%
-
-unit.health = [lightgray]Darah: {0}
-unit.speed = [lightgray]Kecepatan: {0}
-unit.weapon = [lightgray]Senjata: {0}
-unit.itemcapacity = [lightgray]Kapasitas Item: {0}
-unit.minespeed = [lightgray]Kecepatan Menambang: {0}%
-unit.minepower = [lightgray]Kekuatan Menambang: {0}
-unit.ability = [lightgray]Kemampuan: {0}
-unit.buildspeed = [lightgray]Kecepatan Membangun: {0}%
-
-liquid.heatcapacity = [lightgray]Kapasitas Panas: {0}
-liquid.viscosity = [lightgray]Kelekatan: {0}
-liquid.temperature = [lightgray]Suhu: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -938,29 +976,30 @@ unit.corvus.name = Corvus
block.resupply-point.name = Titik Pemasok Ulang
block.parallax.name = Parallax
block.cliff.name = Cliff
-block.sand-boulder.name = Batu Pasir
+block.sand-boulder.name = Batu Pasir Besar
block.grass.name = Rumput
block.slag.name = Slag
+block.space.name = Luar Angkasa
block.salt.name = Garam
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = Bukit Garam
block.pebbles.name = Kerikil
block.tendrils.name = Sulur
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = Bukit Pasir
block.spore-pine.name = Cemara Spora
-block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
+block.spore-wall.name = Bukit Spora
+block.boulder.name = Batu Besar
+block.snow-boulder.name = Batu Salju Besar
block.snow-pine.name = Pinus Salju
block.shale.name = Serpihan
block.shale-boulder.name = Serpihan Batu Besar
block.moss.name = Lumut
block.shrubs.name = Semak-Semak
block.spore-moss.name = Lumut Spora
-block.shale-wall.name = Shale Wall
-block.scrap-wall.name = Dinding Kepingan
-block.scrap-wall-large.name = Dinding Kepingan Besar 1
-block.scrap-wall-huge.name = Dinding Kepingan Besar 2
-block.scrap-wall-gigantic.name = Dinding Kepingan Besar 3
+block.shale-wall.name = Bukit Serpih
+block.scrap-wall.name = Dinding Rongsokan
+block.scrap-wall-large.name = Dinding Rongsokan Besar
+block.scrap-wall-huge.name = Dinding Rongsokan Sangat Besar
+block.scrap-wall-gigantic.name = Dinding Rongsokan Raksasa
block.thruster.name = Pendorong
block.kiln.name = Pengeringan
block.graphite-press.name = Pencetak Grafit
@@ -986,6 +1025,7 @@ block.darksand-water.name = Air Pasir Hitam
block.char.name = Bara
block.dacite.name = Dasit
block.dacite-wall.name = Dinding Dasit
+block.dacite-boulder.name = Batu Besar Dasit
block.ice-snow.name = Salju Es
block.stone-wall.name = Dinding Batu
block.ice-wall.name = Dinding Es
@@ -1034,7 +1074,6 @@ block.conveyor.name = Pengantar
block.titanium-conveyor.name = Pengantar Berbahan Titanium
block.plastanium-conveyor.name = Pengantar Berbahan Plastanium
block.armored-conveyor.name = Pengantar Berlapis Pelindung
-block.armored-conveyor.description = Memindahkan barang sama cepatnya dengan pengantar titanium, namun memiliki lebih banyak armor. Tidak dapat menerima masukan dari samping dari apapun kecuali dari pengantar.
block.junction.name = Simpangan
block.router.name = Pengarah
block.distributor.name = Distributor
@@ -1042,13 +1081,12 @@ block.sorter.name = Penyortir
block.inverted-sorter.name = Penyortir terbalik
block.message.name = Pesan
block.illuminator.name = Penerang
-block.illuminator.description = Sebuah benda berukuran kecil, sumber penghasil cahaya. Membutuhkan tenaga untuk berfungsi.
block.overflow-gate.name = Gerbang Luap
block.underflow-gate.name = Gerbang Tidak Meluap
block.silicon-smelter.name = Pelebur Silikon
block.phase-weaver.name = Pengrajut Phase
block.pulverizer.name = Pulverisator
-block.cryofluid-mixer.name = Penyampur Cairan Dingin
+block.cryofluidmixer.name = Penyampur Cairan Dingin
block.melter.name = Pencair
block.incinerator.name = Penghangus
block.spore-press.name = Penekan Spora
@@ -1107,8 +1145,8 @@ block.blast-drill.name = Bor Ledakan Udara
block.thermal-pump.name = Pompa Suhu Panas
block.thermal-generator.name = Generator Suhu Panas
block.alloy-smelter.name = Pelebur Paduan Listrik
-block.mender.name = Reparator
-block.mend-projector.name = Proyeksi Reparator
+block.mender.name = Mender
+block.mend-projector.name = Mender Proyektor
block.surge-wall.name = Dinding Listrik
block.surge-wall-large.name = Dinding Listrik Besar
block.cyclone.name = Cyclone
@@ -1138,6 +1176,10 @@ block.payload-router.name = Pengarah Massa
block.disassembler.name = Pembongkar
block.silicon-crucible.name = Multi-Lebur
block.overdrive-dome.name = Kubah Proyeksi Percepat
+#experimental, may be removed
+block.block-forge.name = Block Forge
+block.block-loader.name = Block Loader
+block.block-unloader.name = Block Unloader
block.switch.name = Saklar
block.micro-processor.name = Prosesor Mikro
@@ -1179,19 +1221,24 @@ tutorial.waves.mobile = Para[lightgray] Musuh[] telah muncul.\n\nLindungi intimu
tutorial.launch = Saat kamu mencapai gelombang tertentu, kamu dapat[accent] meluncurkan intimu[], meninggalkan pertahananmu[accent] mendapatkan semua sumber daya di intimu.[]\nSumber daya ini digunakan sebagai riset teknologi.\n\n[accent]Tekan tombol meluncur.
item.copper.description = Bahan struktur yang berguna. Digunakan di semua tipe blok.
+item.copper.details = Tembaga. Logam yang sangat melimpah di Serpulo. Lemah secara struktural kecuali jika diperkuat.
item.lead.description = Bahan dasar di awal permainan. Digunakan di elektronik dan blok transportasi zat cair.
+item.lead.details = Padat. Lembam. Biasanya digunakan dalam baterai.\nCatatan : Kemungkinan beracun untuk kehidupan biologis. Bukan berarti tidak banyak disini.
item.metaglass.description = Kaca yang super-kuat. Digunakan untuk distribusi zar cair dan penyimpanan.
item.graphite.description = Karbon termineralisasi, dipakai untuk amunisi dan penyekatan listrik.
item.sand.description = Bahan umum yang digunakan di berbagai peleburan
item.coal.description = Bahan bakar umum.
+item.coal.details = Hasil dari tumbuhan yang menjadi fosil, sudah terjadi sangat lama sebelum spora-spora menyebar.
item.titanium.description = Logam langka yang sangat ringan digunakan di transportasi zat cair, bor dan pesawat terbang.
item.thorium.description = Logam yang padat dan radioaktif, sebagai bantuan struktur ban bahan bakar nuklir.
item.scrap.description = Peninggalan bangunan dan unit tua. mengandung beberapa zat logam.
+item.scrap.details = Sisa sisa bangunan dan unit tua.
item.silicon.description = Semi-konduktor yang sangat berguna, penerapan di panel surya dan banyak benda elektronik.
item.plastanium.description = Bahan yang ringan dan elastis, digunakan di pesawat terbang canggih dan amunisi kepingan.
item.phase-fabric.description = Zat yang hampir tidak ada bobot ini digunakan di elektronik canggih dan teknologi reparasi.
item.surge-alloy.description = Paduan canggih dengan properti listrik yang unik.
item.spore-pod.description = Digunakan untuk produksi minyak, bahan peledak dan bahan bakar.
+item.spore-pod.details = Spora. Sepertinya bentuk kehidupan sintetis. Menghasilkan gas beracun yang meracuni kehidupan biologis lainnya. Sangat mudah menyebar. Sangat mudah terbakar dalam kondisi tertentu.
item.blast-compound.description = Senyawa yang digunakan di bom dan peledak lainnya. Bisa dipakai untuk bahan bakar, tetapi tidak disarankan.
item.pyratite.description = Zat yang mudah dibakar ini digunakan di senjata pembakar.
liquid.water.description = Umumnya digunakan untuk mendinginkan mesin-mesin dan pendaur ulang.
@@ -1199,6 +1246,8 @@ liquid.slag.description = Berbagai tipe logam yang meleleh. Dapat dipisahkan men
liquid.oil.description = Bisa dibakar, diledakkan atau sebagai pendigin.
liquid.cryofluid.description = Zat cair paling efisien untuk mendinginkan hal-hal.
+block.armored-conveyor.description = Memindahkan barang sama cepatnya dengan pengantar titanium, namun memiliki lebih banyak armor. Tidak dapat menerima masukan dari samping dari apapun kecuali dari pengantar.
+block.illuminator.description = Sebuah benda berukuran kecil, sumber penghasil cahaya. Membutuhkan tenaga untuk berfungsi.
block.message.description = Menyimpan pesan. Digunakan untuk komunikasi antar sekutu.
block.graphite-press.description = Memadatkan bongkahan batu bara menjadi lempengan grafit murni.
block.multi-press.description = Versi pemadat grafit yang lebih bagus. Membutuhkan air dan tenaga untuk memproses batu bara lebih cepat dan efisien.
@@ -1207,7 +1256,7 @@ block.kiln.description = Membakar pasir dan timah menjadi kaca meta. Membutuhkan
block.plastanium-compressor.description = Memproduksi plastanium dari minyak dan titanium.
block.phase-weaver.description = Memproduksi kain phase dari thorium dan banyak pasir.
block.alloy-smelter.description = Memproduksi campuran logam dari titanium, timah, silikon dan tembaga.
-block.cryofluid-mixer.description = Mencampur air dan titanium menjadi cairan dingin yang lebih efisien untuk pendingin.
+block.cryofluidmixer.description = Mencampur air dan titanium menjadi cairan dingin yang lebih efisien untuk pendingin.
block.blast-mixer.description = Menggunakan minyak untuk membentuk pyratite menjadi senyawa peledak yang kurang mudah terbakar tetapi lebih eksplosif.
block.pyratite-mixer.description = Mencampur batu bara, timah dan pasir menjadi pyratite yang sangat mudah terbakar.
block.melter.description = Melelehkan kepingan menjadi terak untuk proses selanjutnya atau digunakan menara.
@@ -1250,6 +1299,7 @@ block.phase-conveyor.description = Blok transportasi canggih. Menggunakan tenaga
block.sorter.description = Memilah Item. Jika item cocok dengan seleksi, itemnya diperbolehkan lewat. Jika tidak, item akan dikeluarkan dari kiri dan/atau kanan.
block.inverted-sorter.description = Sama seperti penyortir, melainkan mengeluarkan item terpilih ke samping.
block.router.description = Menerima bahan dari satu arah dan mengeluarkannya ke 3 arah yang sama. Bisa juga menyimpan sejumlah bahan. Berguna untuk memisahkan bahan dari satu sumber ke target yang banyak.
+block.router.details = Bisa sangat menggangu. Jangan meletakannya disamping input produksi, karena bisa tersumbat oleh output.
block.distributor.description = Pemisah canggih yang memisah item ke 7 arah berbeda bersamaan.
block.overflow-gate.description = Kombinasi antara pemisah dan penyortir yang hanya mengeluarkan item ke kiri dan/atau ke kanan jika bagian depan tertutup.
block.underflow-gate.description = Kebalikan dari gerbang luap. Mengeluarkan ke depan jika kanan dan kiri tertutup.
@@ -1286,10 +1336,14 @@ block.laser-drill.description = Mengebor lebih cepat lewat teknologi laser, tapi
block.blast-drill.description = Bor tercanggih. Membutuhkan banyak tenaga.
block.water-extractor.description = Mengekstrak air dari tanah. Gunakan jika tidak ada sumber air disekitar.
block.cultivator.description = Membudidaya spora kecil menjadi polong siap diolah.
+block.cultivator.details = Recovered technology. Used to produce massive amounts of biomass as efficiently as possible. Likely the initial incubator of the spores now covering Serpulo.
block.oil-extractor.description = Menggunakan tenaga cukup besar untuk mengekstrak minyak dari pasir. Gunakan jika tidak ada sumber minyak disekitar.
block.core-shard.description = Versi pertama dari pengulangan kapsul inti. Jika hancur, Semua kontak dengan daerah akan hilang. Jangan biarkan ini terjadi.
+block.core-shard.details = Iterasi pertama. Padat. Bisa menggandakan dirinya (untuk menguasai sektor disekitarnya). Dilengkapi dengan pendorong yang sekali pakai. Tidak didesain untuk perjalanan antar planet.
block.core-foundation.description = Versi kedua dari intk. Lebih kuat. Menyimpan banyak sumber daya.
+block.core-foundation.details = Iterasi kedua.
block.core-nucleus.description = Versi ketiga dan pengulangan terakhir dari kapsul inti. Sangkat kuat. Menyimpan sangat banyak sumberr daya.
+block.core-nucleus.details = Iterasi ketiga dan yang terakhir.
block.vault.description = Menyimpan semua tipe item berkuantitas besar. [lightgray] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari gudang.
block.container.description = Menyimpan semua tipe item. [lightgray] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari kontainer.
block.unloader.description = Mengeluarkan item dari kontainer, gudang atau inti kedalam pengantar atau langsung ke blok yang dituju. Tipe item yang dimuat bisa diganti dengan mengetuk pembongkar muatan.
@@ -1310,4 +1364,61 @@ block.cyclone.description = Menara penembak beruntun besar.
block.spectre.description = Menara besar yang menembak dua peluru kuat sekaligus.
block.meltdown.description = Menara besar ini menembak sinar panjang yang kuat.
block.repair-point.description = Terus menerus memulihkan unit terluka disekitar.
-block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil laser tidak akan ditargetkan.
\ No newline at end of file
+block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil laser tidak akan ditargetkan.
+block.parallax.description = Fires a tractor beam that pulls in air targets, damaging them in the process.
+block.tsunami.description = Fires powerful streams of liquid at enemies. Automatically extinguishes fires when supplied with water.
+block.silicon-crucible.description = Refines silicon from sand and coal, using pyratite as an additional heat source. More efficient in hot locations.
+block.disassembler.description = Separates slag into trace amounts of exotic mineral components at low efficiency. Can produce thorium.
+block.overdrive-dome.description = Increases the speed of nearby buildings. Requires phase fabric and silicon to operate.
+block.payload-conveyor.description = Moves large payloads, such as units from factories.
+block.payload-router.description = Splits input payloads into 3 output directions.
+block.command-center.description = Controls unit behavior with several different commands.
+block.ground-factory.description = Produces ground units. Output units can be used directly, or moved into reconstructors for upgrading.
+block.air-factory.description = Produces air units. Output units can be used directly, or moved into reconstructors for upgrading.
+block.naval-factory.description = Produces naval units. Output units can be used directly, or moved into reconstructors for upgrading.
+block.additive-reconstructor.description = Upgrades inputted units to the second tier.
+block.multiplicative-reconstructor.description = Upgrades inputted units to the third tier.
+block.exponential-reconstructor.description = Upgrades inputted units to the fourth tier.
+block.tetrative-reconstructor.description = Upgrades inputted units to the fifth and final tier.
+block.switch.description = A toggleable switch. State can be read and controlled with logic processors.
+block.micro-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings.
+block.logic-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings. Faster than the micro processor.
+block.hyper-processor.description = Runs a sequence of logic instructions in a loop. Can be used to control units and buildings. Faster than the logic processor.
+block.memory-cell.description = Stores information for a logic processor.
+block.memory-bank.description = Stores information for a logic processor. High capacity.
+block.logic-display.description = Displays arbitrary graphics from a logic processor.
+block.large-logic-display.description = Displays arbitrary graphics from a logic processor.
+
+unit.dagger.description = Menembak musuh terdekat dengan amunisi standar.
+unit.mace.description = Menyerang musuh terdekat dengan cara membakarnya.
+unit.fortress.description = Menembak musuh darat dengan altileri jarak jauh.
+unit.scepter.description = Menembak semua musuh terdekat dengan rentetan peluru bermuatan listrik.
+unit.reign.description = Menembak semua musuh terdekat dengan gugusan peluru tajam dalam jumlah banyak.
+unit.nova.description = Menembak baut laser yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat terbang.
+unit.pulsar.description = Menembak petir yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat terbang.
+unit.quasar.description = Menembak sinar laser yang dapat menembus bangunan yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat terbang. Memiliki perisai.
+unit.vela.description = Menembak sinar laser besar dan kontinu yang dapat merusak musuh, membakarnya dan memperbaiki bangunan musuh. Dapat terbang.
+unit.corvus.description = Menembak sinar laser besar yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat berjalan diatas hampir semua medan.
+unit.crawler.description = Berlari menuju musuh dan menghancurkan dirinya, yang dapat menghasilkan ledakan besar.
+unit.atrax.description = Menembak musuh dengan cairan lava kepada target darat. Dapat berjalan diatas hampir semua medan.
+unit.spiroct.description = Menembak laser pelemah kepada musuh, dapat memperbaiki dirinya dalam proses. Dapat berjalan diatas hampir semua medan.
+unit.arkyid.description = Menembak laser pelemah besar kepada musuh, dapat memperbaiki dirinya dalam proses. Dapat berjalan diatas hampir semua medan.
+unit.toxopid.description = Menembak gugusan cangkang energi besar dan laser penusuk kepada musuh. Dapat berjalan diatas hampir semua medan.
+unit.flare.description = Menembak musuh darat terdekat dengan amunisi standar.
+unit.horizon.description = Menjatuhkan gugusan bom kepada musuh darat.
+unit.zenith.description = Menembak misil kepada musuh terdekat.
+unit.antumbra.description = Menembak rentetan peluru kepada musuh terdekat.
+unit.eclipse.description = Menembak dua sinar laser dan rentetan peluru kepada musuh terdekat.
+unit.mono.description = Menambang tembaga dan timah secara otomatis, membawanya menuju inti.
+unit.poly.description = Membangun kembali bangunan yang hancur secara otomatis dan membantu unit lain dalam pembangunan.
+unit.mega.description = Memperbaiki bangunan secara otomatis. Dapat membawa bangunan dan unit darat kecil.
+unit.quad.description = Menjatuhkan bom besar kepada target darat, yang bisa memberbaiki struktur teman dan merusak musuh. Dapat membawa unit darat berukuran sedang.
+unit.oct.description = Melindungi teman disekitarnya dengan perisai yang dapat beregenerasi. Dapat membawa hampir semua unit darat.
+unit.risso.description = Menembak misil dan peluru kepada semua musuh terdekat.
+unit.minke.description = Menembak cangkang pembakar dan peluru standar kepada musuh darat terdekat.
+unit.bryde.description = Menembak altileri jarak jauh dan misil kepada musuh.
+unit.sei.description = Menembak rentetan misil dan peluru yang dapat menembus baju besi kepada musuh.
+unit.omura.description = Menembak railgun jarak jauh kepada musuh. Dapat memproduksi unit flare.
+unit.alpha.description = Melindungi Inti Bagian dari musuh. Dapat membangun.
+unit.beta.description = Melindungi Inti Fondasi dari musuh. Dapat membangun.
+unit.gamma.description = Melindungi Inti Nukleus dari musuh. Dapat membangun.
diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties
index 5fc3245ed6..a072e060c4 100644
--- a/core/assets/bundles/bundle_it.properties
+++ b/core/assets/bundles/bundle_it.properties
@@ -55,6 +55,7 @@ schematic.saved = Schematica salvata.
schematic.delete.confirm = Questa schematica sarà cancellata definitivamente.
schematic.rename = Rinomina Schematica
schematic.info = {0}x{1}, {2} blocchi
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Ondate Sconfitte:[accent] {0}
stat.enemiesDestroyed = Nemici Distrutti:[accent] {0}
@@ -100,7 +101,6 @@ done = Fatto
feature.unsupported = Il tuo dispositivo non supporta questa funzione.
mods.alphainfo = Tieni a mente che queste mods sono in alpha e[scarlet] possono contenere molti bug[]. Segnala tutti i problemi che trovi sulla pagina GitHub o sul server Discord di Mindustry.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]Nessuna mod trovata!
mods.guide = Guida per il modding
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] per selezionare+copiare
pausebuilding = [accent][[{0}][] per smettere di costruire
resumebuilding = [scarlet][[{0}][] per riprendere a costruire
wave = [accent]Ondata {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Ondata tra {0}
wave.waveInProgress = [lightgray]Ondata in corso
waiting = In attesa...
waiting.players = Attendendo giocatori...
wave.enemies = [lightgray]{0} Nemici Rimasti
wave.enemy = [lightgray]{0} Nemico Rimasto
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Carica immagine
saveimage = Salva Immagine
unknown = Sconosciuto
@@ -328,6 +331,7 @@ editor.generation = Generazione:
editor.ingame = Modifica in Gioco
editor.publish.workshop = Pubblica nel Workshop
editor.newmap = Nuova Mappa
+editor.center = Center
workshop = Workshop
waves.title = Ondate
waves.remove = Rimuovi
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Nessun filtro! Aggiungine uno cliccando il tasto sott
filter.distort = Modifica
filter.noise = Rumore
filter.enemyspawn = Seleziona Spawn Nemico
+filter.spawnpath = Path To Spawn
filter.corespawn = Seleziona Nucleo
filter.median = Mediana
filter.oremedian = Mediana Minerali
@@ -440,6 +445,7 @@ filter.option.amount = Quantità
filter.option.block = Blocco
filter.option.floor = Terreno
filter.option.flooronto = Terreno Mirato
+filter.option.target = Target
filter.option.wall = Muro
filter.option.ore = Minerale
filter.option.floor2 = Terreno Secondario
@@ -471,15 +477,9 @@ requirement.wave = Raggiungi l'ondata {0} in {1}
requirement.core = Distruggi il Nucleo Nemico in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Riprendi Zona:\n[lightgray]{0}
bestwave = [lightgray]Ondata Migliore: {0}
-launch = < DECOLLARE >
launch.text = Launch
-launch.title = Decollo Riuscito!
-launch.next = [lightgray]nuova opportunità all'ondata {0}
-launch.unable2 = [scarlet]IMPOSSIBILE DECOLLARE![]
-launch.confirm = Questo trasporterà tutte le risorse nel tuo Nucleo.\nNon riuscirai a ritornare in questa base.
-launch.skip.confirm = Se salti adesso non riuscirai a decollare fino alle ondate successive
+research.multiplayer = Only the host can research items.
uncover = Scopri
configure = Configura Equipaggiamento
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Sei sicuro di voler cancellare i dati?\nQuesta operazio
settings.clearall.confirm = [scarlet]ATTENZIONE![]\nQuesto cancellerà tutti i dati, inclusi salvataggi, mappe, oggetti sbloccati ed impostazioni.\nDopo aver premuto su 'ok' il gioco eliminerà i dati e si chiuderà automaticamente.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< In Pausa >
clear = Pulisci
banned = [scarlet]Bandito
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]Si è verificato un errore
error.crashtitle = Si è verificato un errore
unit.nobuild = [scarlet]L'unità non può costruire
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Ingresso
stat.output = Uscita
stat.booster = Potenziamenti
stat.tiles = Blocchi Richiesti
stat.affinities = Affinità
-block.unknown = [lightgray]???
stat.powercapacity = Capacità Energetica
stat.powershot = Danno/Colpo
stat.damage = Danno
@@ -594,6 +606,7 @@ stat.powerconnections = Connessioni Massime
stat.poweruse = Utilizzo Energia
stat.powerdamage = Energia/Danno
stat.itemcapacity = Capacità
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Generazione Energia di Base
stat.productiontime = Tempo di Produzione
stat.repairtime = Tempo di Riparazione Completa
@@ -613,6 +626,28 @@ stat.reload = Ricarica
stat.ammo = Munizioni
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Miglior Trivella Richiesta
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}/s
bar.powerstored = Immagazzinata: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Energia in Uscita: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Oggetti: {0}
bar.capacity = Capacità: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Progresso Costruzione
bar.input = Entrata
bar.output = Uscita
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] danno
bullet.splashdamage = [stat]{0}[lightgray] danno ad area ~[stat] {1}[lightgray] blocchi
bullet.incendiary = [stat]incendiario
@@ -642,12 +680,15 @@ bullet.homing = [stat]autoguidato
bullet.shock = [stat]stordente
bullet.frag = [stat]a frammentazione
bullet.knockback = [stat]{0}[lightgray] contraccolpo
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]congelante
bullet.tarred = [stat]viscoso
bullet.multiplier = [stat]{0}[lightgray]x moltiplicatore munizioni
bullet.reload = [stat]{0}[lightgray]x ricarica
unit.blocks = blocchi
+unit.blockssquared = blocks²
unit.powersecond = unità energia/s
unit.liquidsecond = unità liquide/s
unit.itemssecond = oggetti/s
@@ -670,7 +711,7 @@ category.power = Energia
category.liquids = Liquidi
category.items = Oggetti
category.crafting = Produzione
-category.shooting = Potenza di fuoco
+category.function = Function
category.optional = Miglioramenti Opzionali
setting.landscape.name = Visuale Orizontale
setting.shadows.name = Ombre
@@ -679,7 +720,6 @@ setting.linear.name = Filtro Lineare
setting.hints.name = Suggerimenti
setting.flow.name = Visualizza Portata Nastri/Condotti
setting.buildautopause.name = Pausa Automatica nella Costruzione
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Fluidi Animati
setting.animatedshields.name = Scudi Animati
setting.antialias.name = Antialias[lightgray] (richiede riavvio)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Schermo Intero
setting.borderlesswindow.name = Finestra Senza Bordi[lightgray] (potrebbe richiedere il riavvio)
setting.fps.name = Mostra FPS e Ping
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Mostra Tasto di Selezione del Blocco
setting.vsync.name = VSync
setting.pixelate.name = Effetto Pixel[lightgray] (disabilita le animazioni)
setting.minimap.name = Mostra Minimappa
@@ -822,6 +861,7 @@ mode.custom = Regole Personalizzate
rules.infiniteresources = Risorse Infinite
rules.reactorexplosions = Esplosioni Reattore
+rules.schematic = Schematics Allowed
rules.wavetimer = Timer Ondate
rules.waves = Ondate
rules.attack = Modalità Attacco
@@ -847,6 +887,7 @@ rules.title.unit = Unità
rules.title.experimental = Sperimentale
rules.title.environment = Environment
rules.lighting = Illuminazione
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Illuminazione\nAmbientale
@@ -858,6 +899,7 @@ content.item.name = Oggetti
content.liquid.name = Liquidi
content.unit.name = Unità
content.block.name = Blocchi
+
item.copper.name = Rame
item.lead.name = Piombo
item.coal.name = Carbone
@@ -879,23 +921,6 @@ liquid.slag.name = Scoria
liquid.oil.name = Petrolio
liquid.cryofluid.name = Criofluido
-item.explosiveness = [lightgray]Esplosività: {0}
-item.flammability = [lightgray]Infiammabilità: {0}
-item.radioactivity = [lightgray]Radioattività: {0}
-
-unit.health = [lightgray]Salute: {0}
-unit.speed = [lightgray]Velocità: {0}
-unit.weapon = [lightgray]Armi: {0}
-unit.itemcapacity = [lightgray]Capacità Oggetti: {0}
-unit.minespeed = [lightgray]Velocità di Scavo: {0}%
-unit.minepower = [lightgray]Potenza di Scavo: {0}
-unit.ability = [lightgray]Abilità: {0}
-unit.buildspeed = [lightgray]Velocità di Costruzione: {0}%
-
-liquid.heatcapacity = [lightgray]Capacità Termica: {0}
-liquid.viscosity = [lightgray]Viscosità: {0}
-liquid.temperature = [lightgray]Temperatura: {0}
-
unit.dagger.name = Drone Pugnalatore
unit.mace.name = Mace
unit.fortress.name = Fortezza
@@ -936,6 +961,7 @@ block.cliff.name = Scogliera
block.sand-boulder.name = Masso di Sabbia
block.grass.name = Erba
block.slag.name = Scoria
+block.space.name = Space
block.salt.name = Sale
block.salt-wall.name = Salt Wall
block.pebbles.name = Ciottoli
@@ -981,6 +1007,7 @@ block.darksand-water.name = Acqua Sabbiosa Scura
block.char.name = Carbone
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Neve Ghiacciata
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Fonte Infinita (energia)
block.unloader.name = Scaricatore
block.vault.name = Deposito
block.wave.name = Idrogetto
+block.tsunami.name = Tsunami
block.swarmer.name = Sciamatore
block.salvo.name = Cannone Leggero
block.ripple.name = Cannone Pesante
@@ -1114,6 +1142,7 @@ block.arc.name = Arco Elettrico
block.rtg-generator.name = Generatore RTG
block.spectre.name = Spettro
block.meltdown.name = Fusione
+block.foreshadow.name = Foreshadow
block.container.name = Contenitore
block.launch-pad.name = Ascensore Spaziale
block.launch-pad-large.name = Ascensore Spaziale Avanzato
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blu
team.crux.name = rosso
@@ -1302,4 +1332,4 @@ block.cyclone.description = Una grande torretta a fuoco rapido.
block.spectre.description = Una grande torretta che spara due potenti proiettili contemporaneamente.
block.meltdown.description = Una grande torretta che spara un potente laser a lungo raggio.
block.repair-point.description = Cura continuamente l'unità danneggiata più vicina.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties
index 68c766e79b..16c05bc37a 100644
--- a/core/assets/bundles/bundle_ja.properties
+++ b/core/assets/bundles/bundle_ja.properties
@@ -55,6 +55,7 @@ schematic.saved = 設計図を保存しました。
schematic.delete.confirm = この設計図は完全に削除されます。よろしいですか
schematic.rename = 設計図の名前を変更する。
schematic.info = {1}x{0}, {2} ブロック
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = 防衛したウェーブ:[accent] {0}
stat.enemiesDestroyed = 敵に破壊された数:[accent] {0}
@@ -100,7 +101,6 @@ done = 完了
feature.unsupported = あなたのデバイスはこの機能をサポートしていません。
mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 問題を発見した場合は Mindustry GitHubに報告してください。
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]Modが見つかりませんでした!
mods.guide = Mod作成ガイド
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] 選択し、コピーする
pausebuilding = [accent][[{0}][] 建築を一時的に中断する
resumebuilding = [scarlet][[{0}][] 建築を再開する
wave = [accent]ウェーブ {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]次のウェーブまで {0} 秒
wave.waveInProgress = [lightgray]ウェーブ進行中
waiting = [lightgray]待機中...
waiting.players = プレイヤーを待っています...
wave.enemies = [lightgray]敵は残り {0} 体
wave.enemy = [lightgray]敵は残り {0} 体
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = 画像を読み込む
saveimage = 画像を保存
unknown = 不明
@@ -328,6 +331,7 @@ editor.generation = 生成:
editor.ingame = ゲーム内で編集する
editor.publish.workshop = ワークショップで公開
editor.newmap = 新しいマップ
+editor.center = Center
workshop = ワークショップ
waves.title = ウェーブ
waves.remove = 削除
@@ -416,6 +420,7 @@ filters.empty = [lightgray]フィルターが設定されていません! 下の
filter.distort = ゆがみ
filter.noise = ノイズ
filter.enemyspawn = 敵スポーンセレクト
+filter.spawnpath = Path To Spawn
filter.corespawn = コアセレクト
filter.median = メディアン
filter.oremedian = メディアン (鉱石)
@@ -440,6 +445,7 @@ filter.option.amount = 量
filter.option.block = ブロック
filter.option.floor = 地面
filter.option.flooronto = 対象の地面
+filter.option.target = Target
filter.option.wall = 壁
filter.option.ore = 鉱石
filter.option.floor2 = 2番目の地面
@@ -471,15 +477,9 @@ requirement.wave = {1} でウェーブ {0} に到達
requirement.core = {0} の敵のコアを破壊
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = 再開:\n[lightgray]{0}
bestwave = [lightgray]最高ウェーブ: {0}
-launch = < 発射 >
launch.text = Launch
-launch.title = 発射成功
-launch.next = [lightgray]次は ウェーブ {0} で発射可能です。
-launch.unable2 = [scarlet]発射できません。[]
-launch.confirm = すべての資源をコアに搬入し、発射します。\nもうこの基地には戻ってくることはできません。
-launch.skip.confirm = スキップすると、次の発射可能なウェーブまで発射できません。
+research.multiplayer = Only the host can research items.
uncover = 開放
configure = 積み荷の設定
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = データを削除してもよろしいですか?\nこ
settings.clearall.confirm = [scarlet]警告![]\nこれはすべてのデータが削除されます。これにはセーブデータ、マップ、アンロック、キーバインドが含まれます。\n「ok」 を押すと、すべてのデータが削除され、自動的に終了します。
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< ポーズ >
clear = 消去
banned = [scarlet]使用禁止
@@ -570,12 +580,14 @@ info.title = 情報
error.title = [crimson]エラーが発生しました
error.crashtitle = エラーが発生しました
unit.nobuild = [scarlet]ユニットを構築できません
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = 搬入
stat.output = 搬出
stat.booster = ブースト
stat.tiles = 必要なタイル
stat.affinities = 親和性
-block.unknown = [lightgray]???
stat.powercapacity = 電力容量
stat.powershot = 電力/ショット
stat.damage = ダメージ
@@ -594,6 +606,7 @@ stat.powerconnections = 最大接続数
stat.poweruse = 電力使用量
stat.powerdamage = 電力/ダメージ
stat.itemcapacity = アイテム容量
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = 基本発電量
stat.productiontime = 製造速度
stat.repairtime = ブロックの完全修復速度
@@ -613,6 +626,28 @@ stat.reload = リロード速度
stat.ammo = 弾薬
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = より高性能なドリルを使用してください
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = 電力均衡: {0}/秒
bar.powerstored = 総蓄電量: {0}/{1}
bar.poweramount = 蓄電量: {0}
bar.poweroutput = 発電量: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = アイテム: {0}
bar.capacity = 容量: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = 建設状況
bar.input = 入力
bar.output = 出力
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] ダメージ
bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[lightgray] タイル
bullet.incendiary = [stat]焼夷弾
@@ -642,12 +680,15 @@ bullet.homing = [stat]追尾弾
bullet.shock = [stat]電撃
bullet.frag = [stat]爆発弾
bullet.knockback = [stat]{0}[lightgray] ノックバック
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]凍結
bullet.tarred = [stat]タール弾
bullet.multiplier = [stat]弾薬 {0}[lightgray]倍
bullet.reload = [stat]リロード速度 {0}[lightgray]倍
unit.blocks = ブロック
+unit.blockssquared = blocks²
unit.powersecond = 電力/秒
unit.liquidsecond = 液体/秒
unit.itemssecond = アイテム/秒
@@ -670,7 +711,7 @@ category.power = 電力
category.liquids = 液体
category.items = アイテム
category.crafting = 搬入/搬出
-category.shooting = ショット
+category.function = Function
category.optional = 強化オプション
setting.landscape.name = 横画面で固定
setting.shadows.name = 影
@@ -679,7 +720,6 @@ setting.linear.name = リニアフィルター
setting.hints.name = ヒント
setting.flow.name = 資源流通量の表示
setting.buildautopause.name = オートポーズビルディング
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = 流体のアニメーション
setting.animatedshields.name = シールドのアニメーション
setting.antialias.name = アンチエイリアス[lightgray] (再起動が必要)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = フルスクリーン
setting.borderlesswindow.name = 境界の無いウィンドウ[lightgray] (再起動が必要になる場合があります)
setting.fps.name = FPSを表示
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = ブロック選択キーを表示
setting.vsync.name = 垂直同期
setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます)
setting.minimap.name = ミニマップを表示
@@ -822,6 +861,7 @@ mode.custom = カスタムルール
rules.infiniteresources = 資源の無限化
rules.reactorexplosions = リアクターの爆発
+rules.schematic = Schematics Allowed
rules.wavetimer = ウェーブの自動進行
rules.waves = ウェーブ
rules.attack = アタックモード
@@ -847,6 +887,7 @@ rules.title.unit = ユニット
rules.title.experimental = 実験的なゲームプレイ
rules.title.environment = Environment
rules.lighting = 霧
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = 霧の色
@@ -858,6 +899,7 @@ content.item.name = アイテム
content.liquid.name = 液体
content.unit.name = ユニット
content.block.name = ブロック
+
item.copper.name = 銅
item.lead.name = 鉛
item.coal.name = 石炭
@@ -879,23 +921,6 @@ liquid.slag.name = スラグ
liquid.oil.name = 石油
liquid.cryofluid.name = 冷却水
-item.explosiveness = [lightgray]爆発性: {0}%
-item.flammability = [lightgray]可燃性: {0}%
-item.radioactivity = [lightgray]放射能: {0}%
-
-unit.health = [lightgray]耐久値: {0}
-unit.speed = [lightgray]速度: {0}
-unit.weapon = [lightgray]武器: {0}
-unit.itemcapacity = [lightgray]アイテム容量: {0}
-unit.minespeed = [lightgray]採掘速度: {0}%
-unit.minepower = [lightgray]採掘性能: {0}
-unit.ability = [lightgray]能力: {0}
-unit.buildspeed = [lightgray]建築速度: {0}%
-
-liquid.heatcapacity = [lightgray]熱容量: {0}
-liquid.viscosity = [lightgray]粘度: {0}
-liquid.temperature = [lightgray]温度: {0}
-
unit.dagger.name = ダガー
unit.mace.name = Mace
unit.fortress.name = フォートレス
@@ -936,6 +961,7 @@ block.cliff.name = 崖
block.sand-boulder.name = 巨大な礫
block.grass.name = 草
block.slag.name = スラグ
+block.space.name = Space
block.salt.name = 岩塩氷河
block.salt-wall.name = Salt Wall
block.pebbles.name = 小石
@@ -981,6 +1007,7 @@ block.darksand-water.name = 黒い砂で濁った水
block.char.name = 焦げ跡
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = 雪氷
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = 無限電源
block.unloader.name = 搬出機
block.vault.name = ボールト
block.wave.name = ウェーブ
+block.tsunami.name = Tsunami
block.swarmer.name = スウォーマー
block.salvo.name = サルボー
block.ripple.name = リップル
@@ -1114,6 +1142,7 @@ block.arc.name = アーク
block.rtg-generator.name = RTG発電機
block.spectre.name = スペクター
block.meltdown.name = メルトダウン
+block.foreshadow.name = Foreshadow
block.container.name = コンテナー
block.launch-pad.name = 発射台
block.launch-pad-large.name = 大型発射台
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = ブルー
team.crux.name = レッド
@@ -1302,4 +1332,4 @@ block.cyclone.description = 大型の連射型ターレットです。
block.spectre.description = 一度に2発の強力な弾を放つ大型のターレットです。
block.meltdown.description = 強力な長距離攻撃が可能な大型のターレットです。
block.repair-point.description = 近くの負傷したユニットを修復します。
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties
index 82bb299642..0cc0f1d3b7 100644
--- a/core/assets/bundles/bundle_ko.properties
+++ b/core/assets/bundles/bundle_ko.properties
@@ -12,7 +12,7 @@ link.itch.io.description = PC 다운로드가 있는 itch.io 페이지
link.google-play.description = Google Play 스토어 목록
link.f-droid.description = F-Droid 카탈로그 목록
link.wiki.description = 공식 Mindustry 위키
-link.suggestions.description = 새로운 기능 제안
+link.suggestions.description = 새 기능 제안하기
linkfail = 링크를 열지 못했습니다!\nURL이 클립보드에 복사되었습니다.
screenshot = 스크린 샷이 {0} 에 저장되었습니다.
screenshot.invalid = 맵이 너무 커서 스크린샷에 사용될 메모리가 부족할 수 있습니다.
@@ -20,8 +20,8 @@ gameover = 게임 오버
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
highscore = [accent]새로운 최고 점수!
copied = 복사됨.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = 현재 [accent]v6[] 버전은 [accent]알파[] 단계입니다.\n[lightgray]이 말은:[]\n- [scarlet]캠페인이 아직 완전히 개발되지 않음[]\n- 몇몇 컨텐츠가 빠짐\n- 대부분의 [scarlet]유닛 AI[]가 작동하지 않음\n- 많은 유닛들이 아직 미완성\n- 보이는 것은 모두 바뀌거나 제거될 수 있음\n\n[accent]Github[] 에서 버그 또는 강제종료 오류를 신고 해 주세요.
+indev.notready = 이 부분은 아직 준비가 되지 않았습니다.
load.sound = 소리
load.map = 맵
@@ -55,8 +55,9 @@ schematic.saved = 설계도 저장됨.
schematic.delete.confirm = 이 설계도는 완전히 삭제될 것입니다.
schematic.rename = 설계도 이름 바꾸기
schematic.info = {0}x{1}, {2} 블록
+schematic.disabled = [scarlet]설계도 비활성화됨[]\n이 [accent]맵[] 또는 [accent]서버[] 에서는 설계도를 사용할 수 없습니다.
-stat.wave = 패배한 웨이브:[accent] {0}
+stat.wave = 패배한 단계:[accent] {0}
stat.enemiesDestroyed = 파괴된 적:[accent] {0}
stat.built = 지어진 건물: [accent]{0}
stat.destroyed = 파괴된 건물: [accent]{0}
@@ -71,7 +72,7 @@ level.highscore = 최고 점수: [accent]{0}
level.select = 맵 선택
level.mode = 게임 모드:
coreattack = < 코어가 공격 받고 있습니다! >
-nearpoint = [[ [scarlet]낙하 지점에서 나가세요[] ]\n적 낙하 시 낙하 지점 내 건물 및 유닛 파괴
+nearpoint = [[ [scarlet]즉시 스폰지점에서 떠나세요[] ]\n전멸 임박
database = 코어 데이터베이스
savegame = 게임 저장
loadgame = 게임 불러오기
@@ -100,7 +101,6 @@ done = 완료
feature.unsupported = 기기가 이 기능을 지원하지 않습니다.
mods.alphainfo = 현재 모드는 알파이며, [scarlet]버그가 많을 수 있습니다[].\n발견한 문제는 Mindustry Github 또는 Discord에 보고하세요.
-mods.alpha = [accent](알파)
mods = 모드
mods.none = [lightgray]모드를 찾을 수 없습니다!
mods.guide = 모드 제작 가이드
@@ -115,7 +115,7 @@ mod.disable = 비활성화
mod.content = 콘텐츠:
mod.delete.error = 모드를 삭제할 수 없습니다. 파일이 사용 중일 수 있습니다.
mod.requiresversion = [scarlet]필요한 최소 게임 버전: [accent]{0}
-mod.outdated = [scarlet]V6 전용이 아닌 모드 (minGameVersion: 105 누락)
+mod.outdated = [scarlet]V6 버전과 호환되지 않음 (minGameVersion: 105 안됨)
mod.missingdependencies = [scarlet]누락된 요구 모드: {0}
mod.erroredcontent = [scarlet]콘텐츠 오류
mod.errors = 콘텐츠를 로드하는 동안 오류가 발생함.
@@ -139,8 +139,8 @@ mod.scripts.disable = 이 기기는 스크립트가 있는 모드를 지원하
about.button = 정보
name = 이름:
noname = 먼저 [accent]플레이어 이름[]을 설정하세요.
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = 행성 지도
+launchcore = 코어 출격
filename = 파일 이름:
unlocked = 새로운 콘텐츠가 해금되었습니다!
completed = [accent]완료됨
@@ -148,8 +148,8 @@ techtree = 연구 기록
research.list = [lightgray]연구:
research = 연구
researched = [lightgray]{0} 연구 완료.
-research.progress = {0}% 완료
-players = {0} 플레이어들
+research.progress = {0}% 완료됨
+players = {0} 플레이어
players.single = {0} 플레이어
players.search = 검색
players.notfound = [gray]플레이어를 찾을 수 없습니다.
@@ -251,7 +251,7 @@ on = 활성화
off = 비활성화
save.autosave = 자동저장: {0}
save.map = 맵: {0}
-save.wave = {0} 웨이브
+save.wave = {0} 단계
save.mode = 게임모드: {0}
save.date = 마지막 저장일: {0}
save.playtime = 플레이 시간: {0}
@@ -278,18 +278,21 @@ quit.confirm.tutorial = 튜토리얼을 종료하시겠습니까?\n튜토리얼
loading = [accent]불러오는중...
reloading = [accent]모드 새로고침하는중...
saving = [accent]저장중...
-respawn = 코어에서 부활까지 [accent][[{0}][]초 남음.
+respawn = [accent][[{0}][] 키 또는 초후 코어에서 리스폰
cancelbuilding = [accent][[{0}][] 를 눌러 계획 초기화
selectschematic = [accent][[{0}][] 를 눌러 선택+복사
pausebuilding = [accent][[{0}][] 를 눌러 건설 일시중지
resumebuilding = [scarlet][[{0}][] 를 눌러 건설 재개
-wave = [accent]{0} 웨이브
-wave.waiting = 다음 웨이브까지[lightgray] {0}초
-wave.waveInProgress = [lightgray]웨이브 진행중
+wave = [accent]{0} 단계
+wave.cap = [accent]Wave {0}/{1}
+wave.waiting = 다음 단계까지[lightgray] {0}초
+wave.waveInProgress = [lightgray]단계 진행중
waiting = [lightgray]대기중...
waiting.players = 상대 플레이어를 기다리는 중...
wave.enemies = [lightgray]적 유닛 {0}명 남음
wave.enemy = [lightgray]{0}명 남음
+wave.guardianwarn = [accent]{0}[] 단계 후에 가디언이 접근합니다.
+wave.guardianwarn.one = [accent]{0}[] 단계 후에 가디언이 접근합니다.
loadimage = 사진 불러오기
saveimage = 사진 저장
unknown = 알 수 없음
@@ -322,33 +325,34 @@ editor.mapinfo = 맵 정보
editor.author = 제작자:
editor.description = 설명:
editor.nodescription = 맵을 업로드하려면 최소 4자 이상의 설명이 있어야 합니다.
-editor.waves = 웨이브:
+editor.waves = 단계:
editor.rules = 규칙:
-editor.generation = 생성:
+editor.generation = 지형 생성:
editor.ingame = 인게임 편집
editor.publish.workshop = 창작마당 게시
editor.newmap = 신규 맵
+editor.center = 중앙
workshop = 창작마당
-waves.title = 웨이브
+waves.title = 단계
waves.remove = 삭제
waves.never = 여기까지 유닛생성
waves.every = 매
-waves.waves = 웨이브마다
-waves.perspawn = 생성
-waves.shields = 방어막/웨이브
+waves.waves = 단계마다
+waves.perspawn = 마리 생성
+waves.shields = 보호막/단계
waves.to = 부터
-waves.guardian = 보호자
+waves.guardian = 가디언
waves.preview = 미리보기
waves.edit = 편집
waves.copy = 클립보드로 복사
waves.load = 클립보드에서 불러오기
-waves.invalid = 클립보드에 잘못된 웨이브 데이터가 있습니다.
-waves.copied = 웨이브 복사됨
-waves.none = 적 웨이브가 설정되지 않았습니다.\n비어있을 시 자동으로 기본 적 웨이브로 설정됩니다.
+waves.invalid = 클립보드에 잘못된 단계 데이터가 있습니다.
+waves.copied = 단계 복사됨
+waves.none = 적 단계가 설정되지 않았습니다.\n비어있을 시 자동으로 기본 적 단계로 설정됩니다.
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
+wavemode.counts = 마리
+wavemode.totals = 총
+wavemode.health = 체력
editor.default = [lightgray]<기본값>
details = 설명
@@ -416,6 +420,7 @@ filters.empty = [lightgray]필터가 없습니다! 아래 버튼을 눌러 하
filter.distort = 왜곡
filter.noise = 노이즈
filter.enemyspawn = 적 스폰 선택
+filter.spawnpath = Path To Spawn
filter.corespawn = 코어 선택
filter.median = 중앙값
filter.oremedian = 자원 중앙값
@@ -428,24 +433,25 @@ filter.clear = 초기화
filter.option.ignore = 무시
filter.scatter = 흩뿌리기
filter.terrain = 지형
-filter.option.scale = 규모
-filter.option.chance = 배치 횟수
+filter.option.scale = 크기
+filter.option.chance = 배치 빈도
filter.option.mag = 크기
-filter.option.threshold = 문턱
+filter.option.threshold = 경계선
filter.option.circle-scale = 원 크기
filter.option.octaves = 옥타브
filter.option.falloff = 경사
filter.option.angle = 각도
filter.option.amount = 개수
filter.option.block = 블록
-filter.option.floor = 바닥
+filter.option.floor = 바꿀 바닥
filter.option.flooronto = 목표 바닥
+filter.option.target = Target
filter.option.wall = 벽
filter.option.ore = 자원
filter.option.floor2 = 2층 바닥
-filter.option.threshold2 = 2번째 문턱
+filter.option.threshold2 = 2번째 경계선
filter.option.radius = 반경
-filter.option.percentile = 백분위수
+filter.option.percentile = 백분율
width = 넓이:
height = 높이:
@@ -467,26 +473,20 @@ abandon = 포기
abandon.text = 이 지역과 모든 자원이 적에게 넘어갑니다.
locked = 잠김
complete = [lightgray]해금 조건 :
-requirement.wave = {1}지역에서 {0}웨이브 달성
-requirement.core = {0}지역에서 적 코어를 파괴
+requirement.wave = {1} 지역에서 {0}단계 달성
+requirement.core = {0} 지역에서 적 코어를 파괴
requirement.research = {0} 연구
requirement.capture = {0} 점령
-resume = 지역 재개:\n[lightgray]{0}
-bestwave = [lightgray]최고 웨이브: {0}
-launch = < 출격 >
-launch.text = Launch
-launch.title = 출격 성공
-launch.next = [lightgray]다음 출격 기회는 {0} 웨이브에서 나타납니다.
-launch.unable2 = [scarlet]출격할 수 없습니다.[]
-launch.confirm = 이것은 당신의 코어에 있는 모든 자원을 출격 시킬 것입니다.\n당신은 이 기지로 다시 돌아올 수 없을 것입니다.
-launch.skip.confirm = 지금 건너뛰면 다음 출격 웨이브가 끝날 때까지 출격할 수 없습니다.
+bestwave = [lightgray]최고 단계: {0}
+launch.text = 출격
+research.multiplayer = Only the host can research items.
uncover = 지역 개방
configure = 로드아웃 설정
-loadout = Loadout
-resources = Resources
+loadout = 로드아웃
+resources = 자원
bannedblocks = 금지된 블록들
addall = 모두 추가
-launch.destination = Destination: {0}
+launch.destination = 목적지: {0}
configure.invalid = 해당 값은 0에서 {0} 사이의 숫자여야 합니다.
zone.unlocked = [lightgray]{0} 해금됨.
zone.requirement.complete = {0}에 대한 요구 사항 충족:[lightgray]\n{1}
@@ -510,17 +510,23 @@ error.bloom = 블룸 그래픽 효과를 적용하지 못했습니다.\n당신
weather.rain.name = 비
weather.snow.name = 눈
-weather.sandstorm.name = 모래폭풍
-weather.sporestorm.name = 포자폭풍
+weather.sandstorm.name = 모래 폭풍
+weather.sporestorm.name = 포자 폭풍
+weather.fog.name = Fog
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
-sectors.nonelaunch = [lightgray]none (sun)
+sectors.unexplored = [lightgray]미개척
+sectors.resources = 자원:
+sectors.production = 생산:
+sectors.stored = 저장:
+sectors.resume = 재개
+sectors.launch = 출격
+sectors.select = 선택
+sectors.nonelaunch = [lightgray]없음 (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = 전초기지
sector.craters.name = 크레이터
@@ -558,8 +564,12 @@ settings.graphics = 그래픽
settings.cleardata = 게임 데이터 초기화...
settings.clear.confirm = 정말로 이 데이터를 지우시겠습니까?\n완료된 작업은 취소할 수 없습니다!
settings.clearall.confirm = [scarlet]경고![]\n이 작업은 저장된 맵, 맵파일, 잠금 해제된 목록과 키 매핑, 그리고 모든 데이터를 삭제합니다.\n확인 버튼을 다시 눌러 모든 데이터를 삭제하고 게임에서 나갑니다.
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
+settings.clearsaves.confirm = 정말로 모든 저장을 삭제 하시겠습니까?
+settings.clearsaves = 저장 초기화
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< 일시정지 >
clear = 초기화
banned = [scarlet]차단됨
@@ -570,49 +580,74 @@ info.title = 정보
error.title = [scarlet]오류가 발생했습니다.
error.crashtitle = 오류가 발생했습니다
unit.nobuild = [scarlet]이 유닛은 건설할 수 없습니다.
+lastaccessed = [lightgray]마지막 접근: {0}
+block.unknown = [lightgray]???
+
stat.input = 입력
stat.output = 출력
stat.booster = 가속
stat.tiles = 필요한 타일
stat.affinities = 친화력
-block.unknown = [lightgray]???
-stat.powercapacity = 전력 용량
-stat.powershot = 전력/발
-stat.damage = 공격력
-stat.targetsair = 공중 공격
-stat.targetsground = 지상 공격
-stat.itemsmoved = 이동 속도
-stat.launchtime = 출격 간격
-stat.shootrange = 사거리
-stat.size = 크기
+stat.powercapacity = Power Capacity
+stat.powershot = Power/Shot
+stat.damage = Damage
+stat.targetsair = Targets Air
+stat.targetsground = Targets Ground
+stat.itemsmoved = Move Speed
+stat.launchtime = Time Between Launches
+stat.shootrange = Range
+stat.size = Size
stat.displaysize = Display Size
-stat.liquidcapacity = 액체 용량
-stat.powerrange = 전력 범위
+stat.liquidcapacity = Liquid Capacity
+stat.powerrange = Power Range
stat.linkrange = Link Range
stat.instructions = Instructions
-stat.powerconnections = 최대 연결 수
-stat.poweruse = 전력 사용
-stat.powerdamage = 전력/데미지
-stat.itemcapacity = 저장 용량
-stat.basepowergeneration = 기본 전력 생성량
-stat.productiontime = 제작 시간
-stat.repairtime = 전체 블록 수리시간
-stat.speedincrease = 속도 증가
-stat.range = 사거리
-stat.drilltier = 드릴
-stat.drillspeed = 기본 드릴 속도
-stat.boosteffect = 가속 효과
-stat.maxunits = 최대 활성 유닛수
-stat.health = 체력
-stat.buildtime = 건설 시간
+stat.powerconnections = Max Connections
+stat.poweruse = Power Use
+stat.powerdamage = Power/Damage
+stat.itemcapacity = Item Capacity
+stat.memorycapacity = Memory Capacity
+stat.basepowergeneration = Base Power Generation
+stat.productiontime = Production Time
+stat.repairtime = Block Full Repair Time
+stat.speedincrease = Speed Increase
+stat.range = Range
+stat.drilltier = Drillables
+stat.drillspeed = Base Drill Speed
+stat.boosteffect = Boost Effect
+stat.maxunits = Max Active Units
+stat.health = Health
+stat.buildtime = Build Time
stat.maxconsecutive = Max Consecutive
-stat.buildcost = 건설 재료
-stat.inaccuracy = 오차각
-stat.shots = 공격 속도
-stat.reload = 발/초
-stat.ammo = 탄약
-stat.shieldhealth = 보호막 체력
+stat.buildcost = Build Cost
+stat.inaccuracy = Inaccuracy
+stat.shots = Shots
+stat.reload = Shots/Second
+stat.ammo = Ammo
+stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = 더 좋은 드릴이 필요
bar.noresources = 자원 부족
@@ -624,6 +659,7 @@ bar.powerbalance = 전력: {0}/s
bar.powerstored = 저장량: {0}/{1}
bar.poweramount = 전력: {0}
bar.poweroutput = 전력 출력: {0}
+bar.powerlines = 연결: {0}/{1}
bar.items = 자원량: {0}
bar.capacity = 용량: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = 생산 진행도
bar.input = 입력
bar.output = 출력
+units.processorcontrol = [lightgray]프로세서 제어됨
+
bullet.damage = [stat]{0}[lightgray] 피해
bullet.splashdamage = [stat]{0}[lightgray] 범위 공격 ~[stat] {1}[lightgray] 타일
bullet.incendiary = [stat]방화
@@ -642,12 +680,15 @@ bullet.homing = [stat]유도
bullet.shock = [stat]전격
bullet.frag = [stat]파편
bullet.knockback = [stat]{0}[lightgray] 밀침
+bullet.pierce = [stat]{0}[lightgray]x 피어스
+bullet.infinitepierce = [stat]피어스
bullet.freezing = [stat]빙결
bullet.tarred = [stat]타르
bullet.multiplier = [stat]{0}[lightgray]x 탄약 배수
bullet.reload = [stat]{0}[lightgray]x 발사 속도
unit.blocks = 블록
+unit.blockssquared = blocks²
unit.powersecond = 전력/초
unit.liquidsecond = 액체/초
unit.itemssecond = 개/초
@@ -655,12 +696,12 @@ unit.liquidunits = 액체
unit.powerunits = 전력
unit.degrees = 도
unit.seconds = 초
-unit.minutes = mins
+unit.minutes = 분
unit.persecond = /초
-unit.perminute = /min
+unit.perminute = /분
unit.timesspeed = x 배
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = 보호막 체력
unit.items = 자원
unit.thousands = 천
unit.millions = 백만
@@ -670,7 +711,7 @@ category.power = 전력
category.liquids = 액체
category.items = 자원
category.crafting = 입력/출력
-category.shooting = 사격
+category.function = Function
category.optional = 보조 자원
setting.landscape.name = 가로화면 잠금
setting.shadows.name = 그림자
@@ -679,12 +720,11 @@ setting.linear.name = 선형 필터링
setting.hints.name = 힌트
setting.flow.name = 자원 흐름량 표시
setting.buildautopause.name = 건설 자동 일시정지
-setting.mapcenter.name = 플레이어 기준으로 맵 중앙 고정
-setting.animatedwater.name = 움직이는 유체
-setting.animatedshields.name = 움직이는 보호막
+setting.animatedwater.name = 액체 애니메이션 효과
+setting.animatedshields.name = 보호막 애니메이션 효과
setting.antialias.name = 안티 에일리어싱[lightgray] (재시작 필요)[]
-setting.playerindicators.name = 플레이어 표시기
-setting.indicators.name = 적 표시기
+setting.playerindicators.name = 플레이어 위치 표시기
+setting.indicators.name = 적 위치 표시기
setting.autotarget.name = 자동 조준
setting.keyboard.name = 마우스+키보드 조작
setting.touchscreen.name = 터치스크린 조작
@@ -698,22 +738,21 @@ setting.difficulty.easy = 쉬움
setting.difficulty.normal = 보통
setting.difficulty.hard = 어려움
setting.difficulty.insane = 미침
-setting.difficulty.name = 난이도:
+setting.difficulty.name = 난이도:
setting.screenshake.name = 화면 흔들림
setting.effects.name = 효과 보임
setting.destroyedblocks.name = 파괴된 블록 표시
setting.blockstatus.name = 블록 상태 표시
-setting.conveyorpathfinding.name = 컨베이어 배치 경로찾기
+setting.conveyorpathfinding.name = 컨베이어 배치시 자동으로 경로 찾기
setting.sensitivity.name = 컨트롤러 감도
setting.saveinterval.name = 저장 간격
-setting.seconds = {0} 초
+setting.seconds = {0}초
setting.blockselecttimeout.name = 블록 선택 시간 초과
-setting.milliseconds = {0} 밀리 초
+setting.milliseconds = {0}ms
setting.fullscreen.name = 전체 화면
setting.borderlesswindow.name = 테두리 없는 창 모드[lightgray] (재시작이 필요할 수 있습니다)
setting.fps.name = FPS와 핑 표시
setting.smoothcamera.name = 부드러운 시점
-setting.blockselectkeys.name = 블록 선택 키 표시
setting.vsync.name = 수직 동기화
setting.pixelate.name = 픽셀화
setting.minimap.name = 미니맵 표시
@@ -747,8 +786,8 @@ category.blocks.name = 블록 선택
command.attack = 공격
command.rally = 순찰
command.retreat = 후퇴
-command.idle = Idle
-placement.blockselectkeys = \n[lightgray]키: [{0},
+command.idle = 대기
+placement.blockselectkeys = \n[lightgray]단축키: [{0},
keybind.respawn.name = 리스폰
keybind.control.name = 유닛 제어
keybind.clear_building.name = 설계도 초기화
@@ -760,7 +799,7 @@ keybind.toggle_block_status.name = 블록 상태 토글
keybind.move_x.name = X축 이동
keybind.move_y.name = Y축 이동
keybind.mouse_move.name = 커서를 따라서 이동
-keybind.pan.name = Pan View
+keybind.pan.name = 펜 보기
keybind.boost.name = 부스트
keybind.schematic_select.name = 영역 설정
keybind.schematic_menu.name = 설계도 메뉴
@@ -788,9 +827,9 @@ keybind.diagonal_placement.name = 대각선 설치
keybind.pick.name = 블록 선택
keybind.break_block.name = 블록 파괴
keybind.deselect.name = 선택해제
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
-keybind.command.name = Command
+keybind.pickupCargo.name = 화물 집기
+keybind.dropCargo.name = 화물 내려놓기
+keybind.command.name = 명령
keybind.shoot.name = 사격
keybind.zoom.name = 확대
keybind.menu.name = 메뉴
@@ -810,9 +849,9 @@ keybind.drop_unit.name = 유닛 떨구기
keybind.zoom_minimap.name = 미니맵 확대
mode.help.title = 모드 설명
mode.survival.name = 생존
-mode.survival.description = 이것은 일반 모드입니다. 제한된 자원과 자동으로 시작되는 웨이브가 있습니다.\n[gray]플레이하려면 맵에 적의 스폰지점이 필요합니다.
+mode.survival.description = 이것은 일반 모드입니다. 제한된 자원과 자동으로 시작되는 단계가 있습니다.\n[gray]플레이하려면 맵에 적의 스폰지점이 필요합니다.
mode.sandbox.name = 샌드박스
-mode.sandbox.description = 무한한 자원과 웨이브 시작 타이머가 없습니다.
+mode.sandbox.description = 무한한 자원과 단계 시작 타이머가 없습니다.
mode.editor.name = 편집기
mode.pvp.name = PvP
mode.pvp.description = 다른 플레이어와 현장에서 싸우십시오.\n[gray]플레이하려면 맵에 다른 색상의 코어가 2개 이상 있어야합니다.
@@ -821,11 +860,12 @@ mode.attack.description = 적의 기지를 파괴하세요.\n[gray]플레이하
mode.custom = 사용자 정의 규칙
rules.infiniteresources = 무한 자원
-rules.reactorexplosions = 원자로 폭발
-rules.wavetimer = 웨이브 시간
-rules.waves = 웨이브
+rules.reactorexplosions = 원자로 폭발 허용
+rules.schematic = 설계도 허용
+rules.wavetimer = 시간 제한이 있는 단계
+rules.waves = 일반 단계
rules.attack = 공격 모드
-rules.buildai = AI Building
+rules.buildai = AI 건설
rules.enemyCheat = 무한 AI (빨간팀) 자원
rules.blockhealthmultiplier = 블록 체력 배수
rules.blockdamagemultiplier = 블록 공격력 배수
@@ -833,31 +873,33 @@ rules.unitbuildspeedmultiplier = 유닛 생산 속도 배수
rules.unithealthmultiplier = 유닛 체력 배수
rules.unitdamagemultiplier = 유닛 공격력 배수
rules.enemycorebuildradius = 적 코어 건설 금지구역 범위:[lightgray] (타일)
-rules.wavespacing = 웨이브 간격:[lightgray] (초)
+rules.wavespacing = 단계 간격:[lightgray] (초)
rules.buildcostmultiplier = 건설 자원소모 배수
rules.buildspeedmultiplier = 건설 속도 배수
rules.deconstructrefundmultiplier = 해체 환불 배수
-rules.waitForWaveToEnd = 웨이브가 끝날때까지 대기중
+rules.waitForWaveToEnd = 한 단계가 끝날때까지 대기
rules.dropzoneradius = 스폰 구역 범위: [lightgray] (타일)
-rules.unitammo = 유닛에 탄약이 필요
-rules.title.waves = 웨이브
+rules.unitammo = 탄약 필요
+rules.title.waves = 단계
rules.title.resourcesbuilding = 자원 & 건축
rules.title.enemy = 적
rules.title.unit = 유닛
rules.title.experimental = 실험적인 기능
rules.title.environment = 환경
-rules.lighting = 조명
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
+rules.lighting = 조명 활성화
+rules.enemyLights = 적에게 조명 표시 활성화
+rules.fire = 방화 활성화
+rules.explosions = 블록/유닛 폭발 데미지 활성화
rules.ambientlight = 자연 조명
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.weather = 날씨
+rules.weather.frequency = 빈도:
+rules.weather.duration = 지속 시간:
content.item.name = 자원
content.liquid.name = 액체
content.unit.name = 유닛
content.block.name = 블록
+
item.copper.name = 구리
item.lead.name = 납
item.coal.name = 석탄
@@ -879,23 +921,6 @@ liquid.slag.name = 광재
liquid.oil.name = 기름
liquid.cryofluid.name = 냉각수
-item.explosiveness = [lightgray]폭발성: {0}
-item.flammability = [lightgray]인화성: {0}
-item.radioactivity = [lightgray]방사능: {0}
-
-unit.health = [lightgray]체력: {0}
-unit.speed = [lightgray]속도: {0}
-unit.weapon = [lightgray]무기: {0}
-unit.itemcapacity = [lightgray]자원 수용량: {0}
-unit.minespeed = [lightgray]채광 속도: {0}%
-unit.minepower = [lightgray]채광 레벨: {0}
-unit.ability = [lightgray]능력: {0}
-unit.buildspeed = [lightgray]건설 속도: {0}%
-
-liquid.heatcapacity = [lightgray]비열: {0}
-liquid.viscosity = [lightgray]점도: {0}
-liquid.temperature = [lightgray]온도: {0}
-
unit.dagger.name = 대거
unit.mace.name = 메이스
unit.fortress.name = 포트리스
@@ -906,7 +931,7 @@ unit.crawler.name = 크롤러
unit.atrax.name = 아트락스
unit.spiroct.name = 스피록트
unit.arkyid.name = 아키드
-unit.toxopid.name = Toxopid
+unit.toxopid.name = 톡소드
unit.flare.name = 플레어
unit.horizon.name = 호라이즌
unit.zenith.name = 제니스
@@ -915,8 +940,8 @@ unit.eclipse.name = 이클립스
unit.mono.name = 모노
unit.poly.name = 폴리
unit.mega.name = 메가
-unit.quad.name = Quad
-unit.oct.name = Oct
+unit.quad.name = 쿼드
+unit.oct.name = 옥토
unit.risso.name = 리소
unit.minke.name = 민케
unit.bryde.name = 브리드
@@ -925,17 +950,18 @@ unit.omura.name = 오무라
unit.alpha.name = 알파
unit.beta.name = 베타
unit.gamma.name = 감마
-unit.scepter.name = Scepter
-unit.reign.name = Reign
-unit.vela.name = Vela
-unit.corvus.name = Corvus
+unit.scepter.name = 셉터
+unit.reign.name = 리닝
+unit.vela.name = 벨라
+unit.corvus.name = 코르부스
-block.resupply-point.name = Resupply Point
+block.resupply-point.name = 보급 지점
block.parallax.name = 시차
block.cliff.name = 낭떠러지
block.sand-boulder.name = 사암
block.grass.name = 잔디
block.slag.name = 광재
+block.space.name = 우주
block.salt.name = 소금
block.salt-wall.name = 소금 벽
block.pebbles.name = 조약돌
@@ -981,6 +1007,7 @@ block.darksand-water.name = 젖은 검은 모래
block.char.name = 숯
block.dacite.name = 데이사이트
block.dacite-wall.name = 데이사이트 벽
+block.dacite-boulder.name = 데이사이트 볼더
block.ice-snow.name = 얼음눈
block.stone-wall.name = 돌 벽
block.ice-wall.name = 얼음 벽
@@ -1075,6 +1102,7 @@ block.power-source.name = 전력 공급기
block.unloader.name = 언로더
block.vault.name = 창고
block.wave.name = 파도
+block.tsunami.name = 쓰나미
block.swarmer.name = 스워머
block.salvo.name = 살보
block.ripple.name = 립플
@@ -1109,23 +1137,24 @@ block.cyclone.name = 사이클론
block.fuse.name = 퓨즈
block.shock-mine.name = 전격 지뢰
block.overdrive-projector.name = 과부하 프로젝터
-block.force-projector.name = 보호막 프로젝터
+block.force-projector.name = 포스 프로젝터
block.arc.name = 아크
block.rtg-generator.name = RTG 발전기
block.spectre.name = 스펙터
block.meltdown.name = 멜트다운
+block.foreshadow.name = 전그림자
block.container.name = 컨테이너
block.launch-pad.name = 출격 패드
block.launch-pad-large.name = 대형 출격 패드
block.segment.name = 세그먼트
-block.command-center.name = 지휘소
+block.command-center.name = 커맨드 센터
block.ground-factory.name = 지상 공장
block.air-factory.name = 항공 공장
block.naval-factory.name = 해양 공장
-block.additive-reconstructor.name = 첨가물 재구성기
-block.multiplicative-reconstructor.name = 다중 재구성기
-block.exponential-reconstructor.name = 지수 재구성기
-block.tetrative-reconstructor.name = 발산 재구성기
+block.additive-reconstructor.name = 부가 재건축기
+block.multiplicative-reconstructor.name = 다중 재건축기
+block.exponential-reconstructor.name = 급수 재건축기
+block.tetrative-reconstructor.name = 테트레티 재건축기
block.payload-conveyor.name = 화물 컨베이어
block.payload-router.name = 화물 분배기
block.disassembler.name = 가속 분해기
@@ -1133,12 +1162,13 @@ block.silicon-crucible.name = 실리콘 도가니
block.overdrive-dome.name = 대형 과부하 프로젝터
block.switch.name = 스위치
-block.micro-processor.name = 소형 프로세서
-block.logic-processor.name = 명령 프로세서
+block.micro-processor.name = 마이크로 프로세서
+block.logic-processor.name = 로직 프로세서
block.hyper-processor.name = 하이퍼 프로세서
-block.logic-display.name = 화면
-block.large-logic-display.name = 대형 화면
-block.memory-cell.name = 기억 블록
+block.logic-display.name = 로직 디스플레이
+block.large-logic-display.name = 대형 로직 디스플레이
+block.memory-cell.name = 메모리 셀
+block.memory-bank.name = 메모리 뱅크
team.blue.name = 파랑색 팀
team.crux.name = 빨강색 팀
@@ -1166,9 +1196,9 @@ tutorial.breaking = 블록은 종종 파괴 되어야 합니다.\n선택한 모
tutorial.breaking.mobile = 블록은 종종 파괴 되어야 합니다.\n[accent]삭제 모드[]를 선택한 다음 블록을 탭 하여 파괴할 수 있습니다.\n[accnet]몇 초 동안 손가락을 누르고 원하는 방향으로 드래그[]하여 범위 안에있는 블록을 파괴하세요.\n그리고 체크 표시 버튼을 눌러 삭제 작업을 할 수 있습니다.\n[accent]영역 선택을 사용하여 코어 왼쪽의 모든 조각 벽을 파괴하세요.
tutorial.withdraw = 경우에 따라 블록에서 자원을 직접 가져와야 합니다.\n이 작업을 하려면 [accent]자원이 있는 블록[]을 탭한 다음, 인벤토리에서 [accent]자원[]을 탭하세요.\n[accent]누른 상태를 유지[]하면 여러개를 꺼낼 수 있습니다.\n\n[accent]코어에서 구리를 빼내세요.
tutorial.deposit = 기체에서 목적지 블록으로 드래그하여 자원을 블록에 넣으세요.\n\n[accent]구리를 다시 코어에 넣으세요[].
-tutorial.waves = [lightgray]적[]이 다가옵니다.\n2 웨이브로부터 코어를 방어하세요. [accent]클릭[]하여 사격할 수 있습니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요.
-tutorial.waves.mobile = [lightgray]적[]이 다가옵니다.\n2 웨이브로부터 코어를 방어하세요. 당신의 기체는 자동으로 적을 향해 사격합니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요.
-tutorial.launch = 특정 웨이브에 도달하면 [accent]코어로 출격[] 을 할 수 있습니다.\n\n이렇게 얻은 자원을 사용하여 새로운 기술을 연구 할 수 있습니다.\n\n[accent]출격 버튼을 누르세요.
+tutorial.waves = [lightgray]적[]이 다가옵니다.\n2단계 로부터 코어를 방어하세요. [accent]클릭[]하여 사격할 수 있습니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요.
+tutorial.waves.mobile = [lightgray]적[]이 다가옵니다.\n2단계 부터 코어를 방어하세요. 당신의 기체는 자동으로 적을 향해 사격합니다.\n더 많은 포탑과 드릴을 건설하고 구리를 더 모으세요.
+tutorial.launch = 특정 단계에 도달하면 [accent]코어로 출격[] 을 할 수 있습니다.\n\n이렇게 얻은 자원을 사용하여 새로운 기술을 연구 할 수 있습니다.\n\n[accent]출격 버튼을 누르세요.
item.copper.description = 가장 기본적인 건설 재료. 모든 유형의 블록에서 광범위하게 사용됩니다.
item.lead.description = 기본 초반 재료. 전자 및 액체 수송 블록에서 광범위하게 사용되는 자원입니다.
@@ -1214,8 +1244,8 @@ block.item-source.description = 자원을 무한대로 출력합니다. 샌드
block.item-void.description = 모든 자원을 파괴합니다. 샌드박스 전용.
block.liquid-source.description = 액체를 무한히 출력합니다. 샌드박스 전용.
block.liquid-void.description = 액체를 제거합니다. 샌드박스 전용.
-block.copper-wall.description = 저렴한 수비 블록.\n처음 몇 웨이브에서 코어와 포탑을 보호하는데 유용합니다.
-block.copper-wall-large.description = 저렴한 수비 블록.\n처음 몇 웨이브에서 코어와 포탑을 보호하는데 유용합니다.\n여러 타일을 차지합니다.
+block.copper-wall.description = 저렴한 수비 블록.\n초반 단계에서 코어와 포탑을 보호하는데 유용합니다.
+block.copper-wall-large.description = 저렴한 수비 블록.\n초반 단계에서 코어와 포탑을 보호하는데 유용합니다.\n여러 타일을 차지합니다.
block.titanium-wall.description = 적당히 강한 방어 블록.\n적에게서 적절한 보호를 제공합니다.
block.titanium-wall-large.description = 적당히 강한 방어 블록.\n적에게서 적절한 보호를 제공합니다.\n여러 타일을 차지합니다.
block.plastanium-wall.description = 전격 공격을 흡수하고 전력 노드의 자동 연결을 차단하는 특수 유형의 벽.
@@ -1228,7 +1258,7 @@ block.surge-wall.description = 내구성이 매우 강한 방어 블록.\n총탄
block.surge-wall-large.description = 내구성이 매우 강한 방어 블록.\n총탄이 날아오면 충전량을 높여 무작위로 방출합니다.\n여러 타일을 차지합니다.
block.door.description = 작은 문. 탭하여 열거나 닫을 수 있습니다.
block.door-large.description = 큰 문. 탭하여 열거나 닫을 수 있습니다.\n여러 타일을 차지합니다.
-block.mender.description = 주변의 블록을 주기적으로 수리합니다. 웨이브 사이의 방어를 유지하게 합니다.\n선택적으로 실리콘을 사용하여 범위와 효율성을 향상시킵니다.
+block.mender.description = 주변의 블록을 주기적으로 수리합니다. 각 단계 사이의 방어를 유지하게 합니다.\n선택적으로 실리콘을 사용하여 범위와 효율성을 향상시킵니다.
block.mend-projector.description = 소형 수리 프로젝터의 강화 버전. 주변의 블록을 수리합니다.\n선택적으로 메타를 사용하여 범위와 효율성을 향상시킵니다.
block.overdrive-projector.description = 주변 건물의 속도를 높입니다.\n선택적으로 메타를 사용하여 범위와 효율성을 높입니다.
block.force-projector.description = 건물과 내부의 유닛을 공격으로부터 보호하며, 그 주위에 육각형 역장을 형성합니다.\n너무 많은 손상이 지속되면 과열되며, 선택적으로 냉각수를 사용하여 과열을 방지할 수 있고, 메타는 역장의 크기를 늘리는 데 사용할 수 있습니다.
@@ -1241,7 +1271,7 @@ block.bridge-conveyor.description = 고급 자원 운송 블록. 지형이나
block.phase-conveyor.description = 고급 자원 운송 블록. 전력을 사용하여 여러 타일을 통해 연결된 컨베이어로 자원을 순간이동 시킵니다.
block.sorter.description = 자원을 정렬합니다. 자원이 선택과 일치하면 앞방향으로 통과하며, 그렇지 않을 경우 왼쪽과 오른쪽으로 출력됩니다.
block.inverted-sorter.description = 표준 분류기와 같은 자원을 처리하지만, 대신 선택된 자원을 측면으로 출력합니다.
-block.router.description = 자원을 받아서 최대 3개의 다른 방향으로 동일하게 출력합니다. 하나의 공급원에서 여러 대상으로 재료를 분할하는 데 유용합니다.\n\n[scarlet]공장에서 생산된 재료는 출력에 의해 막히게 되므로, 절대로 공장 옆에서 사용하지 마십시오.
+block.router.description = 자원을 받아서 최대 3개의 다른 방향으로 동일하게 출력합니다. 하나의 소스에서 여러 대상으로 재료를 분할하는 데 유용합니다.\n\n[scarlet]공장에서 생산된 재료는 출력에 의해 막히게 되므로, 절대로 공장 옆에서 사용하지 마십시오.
block.distributor.description = 고급 분배기. 자원을 최대 7개의 다른 방향으로 동일하게 분할합니다.
block.overflow-gate.description = 전면 경로가 차단 된 경우에만 왼쪽과 오른쪽으로 출력됩니다.
block.underflow-gate.description = 오버플로 게이트의 반대. 왼쪽 및 오른쪽 경로가 차단되면 전면으로 출력됩니다.
@@ -1252,7 +1282,7 @@ block.thermal-pump.description = 가장 강력한 펌프.
block.conduit.description = 기본 액체 운송 블록. 액체를 앞으로 이동시킵미다. 펌프 및 기타 파이프와 함께 사용됩니다.
block.pulse-conduit.description = 고급 액체 운송 블록. 액체를 더 빠르게 운반하고 표준 파이프보다 더 많이 저장합니다.
block.plated-conduit.description = 펄스 파이프와 같은 속도로 이동하지만 더 높은 방어력을 가지고 있습니다. 파이프 이외의 물체로 측면의 액체를 받아들이지 않습니다.\n누설이 적습니다.
-block.liquid-router.description = 한 방향에서 액체를 받아 최대 3개의 다른 방향으로 동일하게 출력합니다. 일정량의 액체를 저장할 수도 있으며 한 공급원에서 여러 대상으로 액체를 분할하는 데 유용합니다.
+block.liquid-router.description = 한 방향에서 액체를 받아 최대 3개의 다른 방향으로 동일하게 출력합니다. 일정량의 액체를 저장할 수도 있으며 한 소스에서 여러 대상으로 액체를 분할하는 데 유용합니다.
block.liquid-tank.description = 대량의 액체를 저장합니다. 재료가 일정하지 않은 상황에서 버퍼를 생성하거나 중요한 블록을 냉각하기 위한 보호 장치로 사용하세요.
block.liquid-junction.description = 두 개의 교차 파이프를 위한 다리 역할을 합니다. 다른 액체를 다른 위치로 운반하는 두 개의 다른 파이프가 있는 상황에서 유용합니다.
block.bridge-conduit.description = 고급 액체 운송 블록. 지형이나 건물을 넘어 최대 3개 타일 위로 액체를 운반할 수 있습니다.
@@ -1302,4 +1332,4 @@ block.cyclone.description = 대공 및 대지 포탑. 근처 유닛에게 폭발
block.spectre.description = 거대한 이중 배럴 대포. 공중 및 지상 목표물에 큰 관통 철갑탄을 발사합니다.
block.meltdown.description = 거대한 레이저 대포. 근처의 적에게 지속적인 레이버 빔을 충전하여 발사합니다. 냉각수가 있어야 작동합니다.
block.repair-point.description = 주변에서 가장 가까운 유닛을 지속적으로 치료합니다.
-block.segment.description = 날아오는 발사체를 요격합니다. 레이저는 목표 대상이 아닙니다.
\ No newline at end of file
+block.segment.description = 날아오는 발사체를 요격합니다. 레이저는 목표 대상이 아닙니다.
diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties
index 2ebd273b5a..0a8290e544 100644
--- a/core/assets/bundles/bundle_lt.properties
+++ b/core/assets/bundles/bundle_lt.properties
@@ -55,6 +55,7 @@ schematic.saved = Schema išsaugota.
schematic.delete.confirm = Ši schema bus negrįžtamai pašalinta.
schematic.rename = Pervadinti schemą
schematic.info = {0}x{1}, {2} blokai
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Įveikta bangų:[accent] {0}
stat.enemiesDestroyed = Sunaikinta priešų:[accent] {0}
@@ -100,7 +101,6 @@ done = Baigta
feature.unsupported = Jūsų įrenginys nepalaiko šios funkcijos.
mods.alphainfo = Prisiminkite, jog modifikacijos vis dar yra alpha, ir[scarlet] gali būti [].\nPraneškite apie rastas klaidas Mindustry GitHub puslapyje arba Discord serveryje.
-mods.alpha = [accent](Alpha)
mods = Modifikacijos
mods.none = [lightgray]Modifikacijos nerastos
mods.guide = Modifikavimo pagalba
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] pasirinkimui+kopijavimui
pausebuilding = [accent][[{0}][] statymo sustabdymui
resumebuilding = [scarlet][[{0}][] statymo pratęsimui
wave = [accent]Banga {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Banga po {0}
wave.waveInProgress = [lightgray]Vyksta banga
waiting = [lightgray]Laukiama...
waiting.players = Laukiama žaidėjų...
wave.enemies = [lightgray]{0} Likę priešai
wave.enemy = [lightgray]{0} Likęs priešas
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Užkrauti vaizdą
saveimage = Išsaugoti vaizdą
unknown = Nežinomas
@@ -328,6 +331,7 @@ editor.generation = Generacija:
editor.ingame = Redaguoti žaidime
editor.publish.workshop = Publikuoti Dirbtuvėje
editor.newmap = Naujas žemėlapis
+editor.center = Center
workshop = Dirbtuvė
waves.title = Bangos
waves.remove = Panaikinti
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Nėra filtrų! Pridėkite su mygtuku easančiu žemia
filter.distort = Iškraipyti
filter.noise = Triukšmas
filter.enemyspawn = Priešų atsiradimo vietos pasirinkimas
+filter.spawnpath = Path To Spawn
filter.corespawn = Branduolio pasirinkimas
filter.median = Mediana
filter.oremedian = Rūdų mediana
@@ -440,6 +445,7 @@ filter.option.amount = Kiekis
filter.option.block = Blokas
filter.option.floor = Sluoksnis
filter.option.flooronto = Pasirinktas sluoksnis
+filter.option.target = Target
filter.option.wall = Siena
filter.option.ore = Rūda
filter.option.floor2 = Antrasis sluoksnis
@@ -471,15 +477,9 @@ requirement.wave = Pasiekite {0} zonoje {1}
requirement.core = Sunaikinkite priešų branduolį zonoje {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Pratęsti zoną:\n[lightgray]{0}
bestwave = [lightgray]Bangos rekordas: {0}
-launch = < PALEISTI >
launch.text = Launch
-launch.title = Paleidimas sėkmingas
-launch.next = [lightgray]kita proga bangoje {0}
-launch.unable2 = [scarlet]Negalima PALEISTI.[]
-launch.confirm = Tai paleis visus resursus jūsų branduolyje.\nJūs nebegalėsite sugrįžti į šią bazę.
-launch.skip.confirm = Jei praleisite dabar, negalėsite paleisti iki vėlesnių bangų.
+research.multiplayer = Only the host can research items.
uncover = Atidengti
configure = Keisti resursų kiekį
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Ar tikrai norite ištrinti šiuos duomenis?\nTai negali
settings.clearall.confirm = [scarlet]ĮSPĖJIMAS![]\nTai ištrins visus duomenis, įskaitant išsaugojimus, žemėlapius, atrakinimus ir mygtukų pakeitimus.\nVos paspaudus 'gerai' žaidimas ištrins visus duomenis ir išsijungs.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Sustabdyta >
clear = Išvalyti
banned = [scarlet]Užblokuota
@@ -570,12 +580,14 @@ info.title = Informacija
error.title = [crimson]Įvyko klaida
error.crashtitle = Įvyko klaida
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Įeiga
stat.output = Išeiga
stat.booster = Stiprintuvas
stat.tiles = Privalomi
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Energijos Talpumas
stat.powershot = Energija per šūvį
stat.damage = Žala
@@ -594,6 +606,7 @@ stat.powerconnections = Maks. Jungčių Kiekis
stat.poweruse = Energijos Suvartojimas
stat.powerdamage = Power/Damage
stat.itemcapacity = Daiktų Talpumas
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Bazinis Energijos Generavimas
stat.productiontime = Gamybos Laikas
stat.repairtime = Pilnas bloko sutaisymo laikas
@@ -613,6 +626,28 @@ stat.reload = Šūviai per sekundę
stat.ammo = Šoviniai
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Privalomas Geresnis Grąžtas
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Energija: {0}/s
bar.powerstored = Sukaupta: {0}/{1}
bar.poweramount = Energija: {0}
bar.poweroutput = Energijos Išeiga: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Daiktai: {0}
bar.capacity = Talpumas: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Statymo Progresas
bar.input = Įeiga
bar.output = Išeiga
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] žalos
bullet.splashdamage = [stat]{0}[lightgray] zonos žalos ~[stat] {1}[lightgray] blokai
bullet.incendiary = [stat]uždegantis
@@ -642,12 +680,15 @@ bullet.homing = [stat]sekimas
bullet.shock = [stat]šokas
bullet.frag = [stat]skilantis
bullet.knockback = [stat]{0}[lightgray] numušimas
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]šaldantis
bullet.tarred = [stat]dervuotas
bullet.multiplier = [stat]{0}[lightgray]x šovinių daugiklis
bullet.reload = [stat]{0}[lightgray]x šaudymo greitis
unit.blocks = blokai
+unit.blockssquared = blocks²
unit.powersecond = energijos per sekundę
unit.liquidsecond = skysčio per sekundę
unit.itemssecond = daiktų per sekundę
@@ -670,7 +711,7 @@ category.power = Energija
category.liquids = Skysčiai
category.items = Daiktai
category.crafting = Įeiga/Išeiga
-category.shooting = Šaudymas
+category.function = Function
category.optional = Galimi Pagerinimai
setting.landscape.name = Užrakinti pasukimą
setting.shadows.name = Šešėliai
@@ -679,7 +720,6 @@ setting.linear.name = Linijinis Filtravimas
setting.hints.name = Užuominos
setting.flow.name = Rodyti Resursų Srauto Geritį[scarlet] (experimental)
setting.buildautopause.name = Automatinis Statybų Sustabdymas
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Vandens Animacija
setting.animatedshields.name = Skydų Animacija
setting.antialias.name = Glodinimas[lightgray] (reikalingas perkrovimas)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Langas Be Pakrasčių[lightgray] (gali reikėti perkrauti)
setting.fps.name = Rodyti FPS ir Ping
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Rodyti Blokų Pasirinkimo Mygtukus
setting.vsync.name = VSync
setting.pixelate.name = Pikseliavimas
setting.minimap.name = Rodyti Mini Žemėlapį
@@ -822,6 +861,7 @@ mode.custom = Pasirinktinės Taisyklės
rules.infiniteresources = Neriboti Resursai
rules.reactorexplosions = Reaktorių Sprogimai
+rules.schematic = Schematics Allowed
rules.wavetimer = Bangų Laikmatis
rules.waves = Bangos
rules.attack = Puolimo Režimas
@@ -847,6 +887,7 @@ rules.title.unit = Vienetai
rules.title.experimental = Eksperimentinis
rules.title.environment = Environment
rules.lighting = Apšvietimas
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Aplinkos Šviesa
@@ -858,6 +899,7 @@ content.item.name = Daiktai
content.liquid.name = Skysčiai
content.unit.name = Vienetai
content.block.name = Blokai
+
item.copper.name = Varis
item.lead.name = Švinas
item.coal.name = Anglis
@@ -879,23 +921,6 @@ liquid.slag.name = Šlakas
liquid.oil.name = Nafta
liquid.cryofluid.name = Krio Skystis
-item.explosiveness = [lightgray]Sprogstamumas: {0}%
-item.flammability = [lightgray]Degumas: {0}%
-item.radioactivity = [lightgray]Radioaktyvumas: {0}%
-
-unit.health = [lightgray]Gyvybės: {0}
-unit.speed = [lightgray]Greitis: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Karščio Talpumas: {0}
-liquid.viscosity = [lightgray]Klampumas: {0}
-liquid.temperature = [lightgray]Temperatūra: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Smėlio Riedulys
block.grass.name = Žolė
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Druska
block.salt-wall.name = Salt Wall
block.pebbles.name = Akmenukai
@@ -981,6 +1007,7 @@ block.darksand-water.name = Tamsaus Smėlio Vanduo
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ledinis Sniegas
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Begalinė Energija
block.unloader.name = Iškroviklis
block.vault.name = Seifas
block.wave.name = Wave
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generatorius
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Talpykla
block.launch-pad.name = Paleidimo Aikštelė
block.launch-pad-large.name = Didelė Paleidimo Aikštelė
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = mėlyna
team.crux.name = raudona
@@ -1302,4 +1332,4 @@ block.cyclone.description = Didelis bokštas puolantis, tiek žemę, tiek orą.
block.spectre.description = Milžiniškas dvivamzdis bokštas. Šaudo didelius, kiaurai per šarvus einančius šovinius į taikinius esančius ant žemės ir ore.
block.meltdown.description = Milžiniška lazerinė patranka. Užsikrauna ir šaudo lazerinius spindulius į aplinkinius priešus. Veikimui reikalingas aušinimo skystis.
block.repair-point.description = Pastoviai gydo artimiausius netoliese esančius vienetus.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties
index 41d6e8a8fc..5ee4d6faa6 100644
--- a/core/assets/bundles/bundle_nl.properties
+++ b/core/assets/bundles/bundle_nl.properties
@@ -55,6 +55,7 @@ schematic.saved = Ontwerp bewaard.
schematic.delete.confirm = Dit ontwerp zal in een zwart gat verdwijnen.
schematic.rename = Hernoem ontwerp
schematic.info = {0}x{1}, {2} blokken
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Waves Verslagen:[accent] {0}
stat.enemiesDestroyed = Vijanden Vernietigd:[accent] {0}
@@ -100,7 +101,6 @@ done = Klaar
feature.unsupported = Je apparaat ondersteunt deze functionaliteit niet.
mods.alphainfo = Houd in gedachten dat mod ondersteuning nieuw is, en daarom[scarlet] mogelijk ontstabiel is[].\nVermeld problemen die je ermee ondervind in de Mindustry GitHub of Discord.
-mods.alpha = [accent](Onstabiel)
mods = Mods
mods.none = [lightgray]Geen mods gevonden!
mods.guide = Modding Handboek
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] om te selecteren + kopiëren
pausebuilding = [accent][[{0}][] om bouwen te pauzeren
resumebuilding = [scarlet][[{0}][] om bouwen te hervatten
wave = [accent]Ronde {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Volgende ronde over {0}
wave.waveInProgress = [lightgray]Ronde bezig
waiting = [lightgray]Wachten...
waiting.players = Wachten op spelers...
wave.enemies = [lightgray]{0} Vijanden resterend
wave.enemy = [lightgray]{0} Vijand resterend
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Laad afbeelding
saveimage = Bewaar afbeelding
unknown = Onbekend
@@ -328,6 +331,7 @@ editor.generation = Generatie:
editor.ingame = Bewerk In-Game
editor.publish.workshop = Publiceer in Werkplaats
editor.newmap = Nieuwe Kaart
+editor.center = Center
workshop = Werkplaats
waves.title = Rondes
waves.remove = Verwijder
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Geen filters! Voeg een toe met onderstaande knop.
filter.distort = Verdraai
filter.noise = Geluid
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Mediaan
filter.oremedian = Ertsmediaan
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Blok
filter.option.floor = Vloer
filter.option.flooronto = Doel Vloer
+filter.option.target = Target
filter.option.wall = Muur
filter.option.ore = Grondstof
filter.option.floor2 = Secundaire vloer
@@ -467,19 +473,13 @@ abandon = Verlaat
abandon.text = Je verliest deze kaart met alles erop en eraan aan de vijand.
locked = Op slot
complete = [lightgray]Voltooid:
-requirement.wave = Berijk ronde {0} in {1}
+requirement.wave = Bereik ronde {0} in {1}
requirement.core = Vernietig vijandige core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Hervat zone:\n[lightgray]{0}
bestwave = [lightgray]Beste ronde: {0}
-launch = < LANCEER >
launch.text = Launch
-launch.title = Lancering Sucessvol
-launch.next = [lightgray]volgende lanceerkans in ronde {0}
-launch.unable2 = [scarlet]Lanceren niet mogelijk.[]
-launch.confirm = Dit lanceert alle items in je core.\nJe zal niet meer terug kunnen keren naar deze basis.
-launch.skip.confirm = Als je nu niet lanceert zul je moeten wachten tot de volgende mogelijkheid.
+research.multiplayer = Only the host can research items.
uncover = Ontdek
configure = Configureer startinventaris
loadout = Loadout
@@ -489,7 +489,7 @@ addall = Voeg Alles Toe
launch.destination = Destination: {0}
configure.invalid = Hoeveelheid moet een getal zijn tussen 0 en {0}.
zone.unlocked = [lightgray]{0} vrijgespeeld.
-zone.requirement.complete = Ronde {0} berijkt:\n{1} zone vrijgespeeld.
+zone.requirement.complete = Ronde {0} bereikt:\n{1} zone vrijgespeeld.
zone.resources = Vindbare grondstoffen:
zone.objective = [lightgray]Doel: [accent]{0}
zone.objective.survival = Overleef
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Weet je zeker dat je deze data wilt verwijderen?\nDit i
settings.clearall.confirm = [scarlet]WAARSCHUWING![]\nDit verwijderd alle data, inclusief saves, kaarten, technologie en bedienings-instellingen.\nAls je op doorgaat wist het spel al je data en stopt automatisch.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Gepauzeerd >
clear = Wis
banned = [scarlet]Verbannen
@@ -570,12 +580,14 @@ info.title = Informatie
error.title = [crimson]Een fout is opgetreden
error.crashtitle = Een fout is opgetreden
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Stroomcapaciteit
stat.powershot = Stroom/Schot
stat.damage = Schade
@@ -594,6 +606,7 @@ stat.powerconnections = Maximale Hoeveelheid Connecties
stat.poweruse = Stroomverbruik
stat.powerdamage = Stroom/Schade
stat.itemcapacity = Materiaalcapaciteit
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Standaard Stroom Generatie
stat.productiontime = Productie Tijd
stat.repairtime = Volledige Blok Repareertijd
@@ -613,6 +626,28 @@ stat.reload = Schoten/Seconde
stat.ammo = Ammunitie
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Betere miner nodig
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Stroom: {0}
bar.powerstored = Opgeslagen: {0}/{1}
bar.poweramount = Stroom: {0}
bar.poweroutput = Stroom Output: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Items: {0}
bar.capacity = Capaciteit: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Bouw Voortgang
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] gebied dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]brandstichtend
@@ -642,12 +680,15 @@ bullet.homing = [stat]doelzoekend
bullet.shock = [stat]schok
bullet.frag = [stat]clusterbom
bullet.knockback = [stat]{0}[lightgray] terugslag
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]bevriezend
bullet.tarred = [stat]pek
bullet.multiplier = [stat]{0}[lightgray]x ammunitieverdubbelaar
bullet.reload = [stat]{0}[lightgray]x herlaad
unit.blocks = blokken
+unit.blockssquared = blocks²
unit.powersecond = stroomeenheid/seconde
unit.liquidsecond = vloeistofeenheid/seconde
unit.itemssecond = items/seconde
@@ -670,7 +711,7 @@ category.power = Stroom
category.liquids = Vloeisof
category.items = Items
category.crafting = Productie
-category.shooting = Wapens
+category.function = Function
category.optional = Optionele Verbeteringen
setting.landscape.name = Vergrendel Landschap
setting.shadows.name = Schaduwen
@@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Pauzeer Bouw Automatisch
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animeer Water
setting.animatedshields.name = Animeer Schilden
setting.antialias.name = Antialias[lightgray] (herstart vereist)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Volledig scherm
setting.borderlesswindow.name = Borderless Venster[lightgray] (wellicht herstart vereist)
setting.fps.name = Show FPS
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Toon Blok Selectie Toetscombinaties
setting.vsync.name = VSync
setting.pixelate.name = Pixelate [lightgray](mogelijk verminderde performance)
setting.minimap.name = Toon Minimap
@@ -822,6 +861,7 @@ mode.custom = Aangepaste regels
rules.infiniteresources = Oneindige Resources
rules.reactorexplosions = Ontploffende Reactors
+rules.schematic = Schematics Allowed
rules.wavetimer = Ronde timer
rules.waves = Rondes
rules.attack = Aanval modus
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimenteel
rules.title.environment = Environment
rules.lighting = Belichting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Mist
@@ -858,6 +899,7 @@ content.item.name = Items
content.liquid.name = Vloeisof
content.unit.name = Eenheiden
content.block.name = Blokken
+
item.copper.name = Coper
item.lead.name = Lood
item.coal.name = Steenkool
@@ -879,23 +921,6 @@ liquid.slag.name = Slag
liquid.oil.name = Olie
liquid.cryofluid.name = Koelvloeistof
-item.explosiveness = [lightgray]Explosivieit: {0}%
-item.flammability = [lightgray]Vlambaarheid: {0}%
-item.radioactivity = [lightgray]Radioactiviteit: {0}%
-
-unit.health = [lightgray]Health: {0}
-unit.speed = [lightgray]Snelheid: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Warmte Capaciteit: {0}
-liquid.viscosity = [lightgray]Viscositeit: {0}
-liquid.temperature = [lightgray]Tempratuur: {0}
-
unit.dagger.name = Dolk
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Zandkei
block.grass.name = Gras
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Zout
block.salt-wall.name = Salt Wall
block.pebbles.name = Steentjes
@@ -981,6 +1007,7 @@ block.darksand-water.name = Donker Zand Water
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1037,7 +1064,7 @@ block.sorter.name = Sorteerder
block.inverted-sorter.name = Omgekeerder Sorteerder
block.message.name = Bericht
block.illuminator.name = Lamp
-block.illuminator.description = Een kleine aanpasbare lamp, heef stroom nodig.
+block.illuminator.description = Een kleine aanpasbare lamp, heeft stroom nodig.
block.overflow-gate.name = Overflow Gate
block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Siliciumsmelter
@@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader
block.vault.name = Kluis
block.wave.name = Golf
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Doos
block.launch-pad.name = Lanceerplatform
block.launch-pad-large.name = Groot Lanceerplatform
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blauw
team.crux.name = rood
@@ -1171,9 +1201,9 @@ tutorial.waves.mobile = De[lightgray] vijand[] naderd.\n\nVerdedig je core voor
tutorial.launch = Tijdens sommige waves, kan je je core[accent] lanceren[], hiermee verlaat je de basis permanent[accent] maar je neemt wel alles dat in de core zit met je mee.[]\nMet deze grondstoffen kan je nieuwe technologieën onderzoeken.\n\n[accent]Druk op de lanceerknop.
item.copper.description = Een nuttig materiaal voor gebouwen. Wordt erg vaak in blokken gebruikt.
-item.lead.description = Een basismateriaal. Wordt vaak gebruikt in elektronica en vloeistoftransport.
-item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
-item.graphite.description = Mineralized carbon, used for ammunition and electrical insulation.
+item.lead.description = Een basismateriaal. Wordt veel gebruikt in elektronica en vloeistoftransport.
+item.metaglass.description = Een supersterke glas-samenstelling. Veel gebruikt voor vloeistof transport en opslag.
+item.graphite.description = Gemineraliseerde koolstof, gebruikt voor ammunitie en elektrische isolatie.
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
item.coal.description = A common and readily available fuel.
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large rapid fire turret.
block.spectre.description = A large turret which shoots two powerful bullets at once.
block.meltdown.description = A large turret which shoots powerful long-range beams.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties
index 4f2ed1fdcd..babc376e82 100644
--- a/core/assets/bundles/bundle_nl_BE.properties
+++ b/core/assets/bundles/bundle_nl_BE.properties
@@ -55,6 +55,7 @@ schematic.saved = Blauwdruk opgeslagen.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Blauwdruk Hernoemen
schematic.info = {0}x{1}, {2} blokken
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Je overleefde tot aanvalsgolf: [accent]{0}[].
stat.enemiesDestroyed = Vijanden vernietigd:[accent] {0}
@@ -100,7 +101,6 @@ done = Klaar
feature.unsupported = Uw apparaat ondersteunt deze functie niet.
mods.alphainfo = Mods zijn nog in alfa en [scarlet] kunnen zeer onstabiel zijn[].\nMeld problemen die je ondervindt op de Mindustry Github of Discord.
-mods.alpha = [accent](Alfa)
mods = Mods
mods.none = [lightgray]Geen mods gevonden!
mods.guide = Handleiding tot Modding
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] om te selecter+kopieren
pausebuilding = [accent][[{0}][] om het bouwen te pauseren
resumebuilding = [scarlet][[{0}][] om verder te gaan met bouwen
wave = [accent]Golf {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Golf in {0}
wave.waveInProgress = [lightgray]Golf bezig
waiting = [lightgray]Wachten...
waiting.players = Aan het wachten op spelers...
wave.enemies = [lightgray]{0} Vijanden Over
wave.enemy = [lightgray]{0} Vijand Over
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Laad Afbeelding
saveimage = Sla Afbeelding Op
unknown = Onbekend
@@ -328,6 +331,7 @@ editor.generation = Generation:
editor.ingame = Edit In-Game
editor.publish.workshop = Publish On Workshop
editor.newmap = New Map
+editor.center = Center
workshop = Workshop
waves.title = Waves
waves.remove = Remove
@@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Ore Median
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Block
filter.option.floor = Floor
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Wall
filter.option.ore = Ore
filter.option.floor2 = Secondary Floor
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best Wave: {0}
-launch = < LAUNCH >
launch.text = Launch
-launch.title = Launch Successful
-launch.next = [lightgray]next opportunity at wave {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
+research.multiplayer = Only the host can research items.
uncover = Uncover
configure = Configure Loadout
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Paused >
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Damage
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
@@ -613,6 +626,28 @@ stat.reload = Shots/Second
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Items: {0}
bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Build Progress
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -642,12 +680,15 @@ bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x fire rate
unit.blocks = blocks
+unit.blockssquared = blocks²
unit.powersecond = power units/second
unit.liquidsecond = liquid units/second
unit.itemssecond = items/second
@@ -670,7 +711,7 @@ category.power = Power
category.liquids = Liquids
category.items = Items
category.crafting = Input/Output
-category.shooting = Shooting
+category.function = Function
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows
@@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS
setting.fpscap.none = None
setting.fpscap.text = {0} FPS
-setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
+setting.uiscale.name = UI Scaling[lightgray] (requires restart)[]
setting.swapdiagonal.name = Always Diagonal Placement
setting.difficulty.training = training
setting.difficulty.easy = easy
@@ -713,7 +753,6 @@ setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
setting.fps.name = Show FPS
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate [lightgray](may decrease performance, disables animations)
setting.minimap.name = Show Minimap
@@ -822,6 +861,7 @@ mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Items
content.liquid.name = Liquids
content.unit.name = Units
content.block.name = Blocks
+
item.copper.name = Copper
item.lead.name = Lead
item.coal.name = Coal
@@ -879,23 +921,6 @@ liquid.slag.name = Slag
liquid.oil.name = Oil
liquid.cryofluid.name = Cryofluid
-item.explosiveness = [lightgray]Explosiveness: {0}%
-item.flammability = [lightgray]Flammability: {0}%
-item.radioactivity = [lightgray]Radioactivity: {0}%
-
-unit.health = [lightgray]Health: {0}
-unit.speed = [lightgray]Speed: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Heat Capacity: {0}
-liquid.viscosity = [lightgray]Viscosity: {0}
-liquid.temperature = [lightgray]Temperature: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Sand Boulder
block.grass.name = Grass
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Salt
block.salt-wall.name = Salt Wall
block.pebbles.name = Pebbles
@@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader
block.vault.name = Vault
block.wave.name = Wave
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blue
team.crux.name = red
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large rapid fire turret.
block.spectre.description = A large turret which shoots two powerful bullets at once.
block.meltdown.description = A large turret which shoots powerful long-range beams.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties
index 80502bb870..922c854e69 100644
--- a/core/assets/bundles/bundle_pl.properties
+++ b/core/assets/bundles/bundle_pl.properties
@@ -10,18 +10,18 @@ link.dev-builds.description = Niestabilne wersje gry
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
link.google-play.description = Strona w sklepie Google Play
-link.f-droid.description = F-Droid catalogue listing
+link.f-droid.description = Wykaz Katalogu F-Droid
link.wiki.description = Oficjana Wiki Mindustry
link.suggestions.description = Zaproponuj nowe funkcje
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
-screenshot = Zapisano zdjęcie w {0}
+screenshot = Zapisano zrzut ekranu w {0}
screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia.
gameover = Koniec Gry
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
-highscore = [accent] Nowy rekord!
+highscore = [accent]Nowy rekord!
copied = Skopiowano.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = [accent]Wersja v6[] jest obecnie w [accent]alphie[].\n[lightgray]Oznacza to, że:[]\n[scarlet]- Kampania nie jest skończona[]\n- Brakuje zawartości\n - Większość [scarlet]SI jednostek[] nie działa poprawnie\n- Wiele jednostek jest niedokończonych\n- Wszystko to, co widzisz, może ulec zmianie lub usunięciu.\n\nZgłaszaj błędy i awarie na [accent]Githubie[].
+indev.notready = Ta część gry nie jest jeszcze ukończona
load.sound = Dźwięki
load.map = Mapy
@@ -55,6 +55,7 @@ schematic.saved = Schemat zapisany.
schematic.delete.confirm = Ten schemat zostanie usunięty.
schematic.rename = Zmień nazwę schematu
schematic.info = {0}x{1}, {2} bloków
+schematic.disabled = [scarlet]Schematy są wyłączone[]\nNie możesz używać schematów na tej [accent]mapie[] lub [accent]serwerze.
stat.wave = Fale powstrzymane:[accent] {0}
stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0}
@@ -100,24 +101,23 @@ done = Gotowe
feature.unsupported = Twoje urządzenie nie wspiera tej funkcji.
mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord.
-mods.alpha = [scarlet](Alpha)
mods = Mody
mods.none = [lightgray]Nie znaleziono modów!
mods.guide = Poradnik do modów
mods.report = Zgłoś Błąd
mods.openfolder = Otwórz folder z modami
mods.reload = Przeładuj
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reloadexit = Gra zostanie teraz zamknięta, aby ponownie załadować mody.
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Włączony
mod.disabled = [scarlet]Wyłączony
mod.disable = Wyłącz
-mod.content = Content:
+mod.content = Zawartość:
mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu.
mod.requiresversion = [scarlet]Wymaga gry w wersji co najmniej: [accent]{0}
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
+mod.outdated = [scarlet]Niekompatybilne z wersją v6 (no minGameVersion: 105)
mod.missingdependencies = [scarlet]Brakujące zależności: {0}
-mod.erroredcontent = [scarlet]Content Errors
+mod.erroredcontent = [scarlet]Błędy Zawartości
mod.errors = Wystąpił błąd podczas ładowania treści.
mod.noerrorplay = [scarlet]Twoje mody zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony.
@@ -127,7 +127,7 @@ mod.reloadrequired = [scarlet]Wymagany restart
mod.import = Importuj Mod
mod.import.file = Importuj Plik
mod.import.github = Importuj mod z GitHuba
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
+mod.jarwarn = [scarlet]Mody JAR są niebezpieczne.[]\nUpewnij się, że importujesz ten mod z dobrze znanego źródła!
mod.item.remove = Ten przedmiot jest częścią moda[accent] '{0}'[]. Aby usunąć go, odinstaluj modyfikację.
mod.remove.confirm = Ten mod zostanie usunięty.
mod.author = [lightgray]Autor:[] {0}
@@ -139,8 +139,8 @@ mod.scripts.disable = Twoje urządzenie nie wspiera modów ze skryptami. Musisz
about.button = O Grze
name = Nazwa:
noname = Najpierw wybierz[accent] nazwę gracza[].
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = Mapa Planety
+launchcore = Wystrzel Rdzeń
filename = Nazwa Pliku:
unlocked = Odblokowano nową zawartość!
completed = [accent]Ukończony
@@ -148,12 +148,12 @@ techtree = Drzewo Technologiczne
research.list = [lightgray]Badania:
research = Badaj
researched = [lightgray]{0} zbadane.
-research.progress = {0}% complete
+research.progress = {0}% ukończone
players = {0} graczy
players.single = {0} gracz
-players.search = search
+players.search = wyszukaj
players.notfound = [gray]nie znaleziono graczy
-server.closing = [accent] Zamykanie serwera...
+server.closing = [accent]Zamykanie serwera...
server.kicked.kick = Zostałeś wyrzucony z serwera!
server.kicked.whitelist = Nie ma cię tu na białej liście.
server.kicked.serverClose = Serwer został zamknięty.
@@ -171,11 +171,11 @@ server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobi
server.kicked.gameover = Koniec gry!
server.kicked.serverRestarting = Restart serwera.
server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[]
-host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[]. \nKażdy w tej samej sieci [lightgray]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[lightgray]Notka: Jeśli ktokolwiek ma problem z dołączeniem do gry lokalnej, upewnij się, że udostępniłeś Mindustry dostęp do sieci w ustawieniach zapory (firewall). Zauważ, że niektóre sieci publiczne mogą nie zezwalać na wykrycie serwerów.
-join.info = Tutaj możesz wpisać [accent]adres IP serwera[] aby do niego dołączyć lub wyszukać [accent]serwery w lokalnej sieci[], do których możesz dołączyć.\nGra wieloosobowa na LAN i WAN jest wspierana.\n\n[lightgray]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o jego IP, które można znaleźć po wpisaniu "my ip" w przeglądarce na urządzeniu hosta.
+host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[]. \nKażdy w tej samej sieci [lightgray]wifi lub hotspocie[] powinien zobaczyć twój serwer na ich liście serwerów.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[lightgray]Notka: Jeśli ktokolwiek ma problem z dołączeniem do gry lokalnej, upewnij się, że udostępniłeś Mindustry dostęp do sieci w ustawieniach zapory (firewall). Zauważ, że niektóre sieci publiczne mogą nie zezwalać na wykrycie serwerów.
+join.info = Tutaj możesz wpisać [accent]adres IP serwera[] aby do niego dołączyć lub wyszukać [accent]serwery w lokalnej sieci[] lub wyszukać [accent]publiczne[] serwery, do których możesz dołączyć.\nGra wieloosobowa na LAN i WAN jest wspierana.\n\n[lightgray]Jeśli chcesz dołączyć przez IP, musisz zapytać hosta o jego IP, które można znaleźć po wpisaniu "my ip" w przeglądarce na urządzeniu hosta.
hostserver = Stwórz Serwer
invitefriends = Zaproś Znajomych
-hostserver.mobile = Hostuj\nGrę
+hostserver.mobile = Hostuj Grę
host = Hostuj
hosting = [accent]Otwieranie serwera...
hosts.refresh = Odśwież
@@ -208,11 +208,11 @@ server.outdated.client = [crimson]Przestarzały klient![]
server.version = [gray]Wersja: {0}
server.custombuild = [accent]Zmodowany klient
confirmban = Jesteś pewny, że chcesz zbanować "{0}[white]"?
-confirmkick = Jesteś pewny, że chcesz wyrzucić {0}[white]"?
-confirmvotekick = Jesteś pewny, że chcesz głosować za wyrzuceniem {0}[white]"?
+confirmkick = Jesteś pewny, że chcesz wyrzucić "{0}[white]"?
+confirmvotekick = Jesteś pewny, że chcesz głosować za wyrzuceniem "{0}[white]"?
confirmunban = Jesteś pewny, że chcesz odbanować tego gracza?
-confirmadmin = Jesteś pewny, że chcesz dać rangę admina {0}[white]"?
-confirmunadmin = Jesteś pewny, że chcesz zabrać rangę admina {0}[white]"?
+confirmadmin = Jesteś pewny, że chcesz dać rangę admina "{0}[white]"?
+confirmunadmin = Jesteś pewny, że chcesz zabrać rangę admina "{0}[white]"?
joingame.title = Dołącz do gry
joingame.ip = IP:
disconnect = Rozłączono.
@@ -237,7 +237,7 @@ save.delete = Usuń
save.export = Eksportuj
save.import.invalid = [accent]Zapis gry jest niepoprawny!
save.import.fail = [crimson]Nie udało się zaimportować zapisu: [accent]{0}
-save.export.fail = [crimson]Nie można wyeksportować zapisu: [accent]{0}
+save.export.fail = [crimson]Nie udało się wyeksportować zapisu: [accent]{0}
save.import = Importuj Zapis
save.newslot = Zapisz nazwę:
save.rename = Zmień nazwę
@@ -255,14 +255,14 @@ save.wave = Fala {0}
save.mode = Tryb Gry: {0}
save.date = Ostatnio Zapisane: {0}
save.playtime = Czas gry: {0}
-warning = Uwaga
+warning = Uwaga.
confirm = Potwierdź
delete = Usuń
view.workshop = Pokaż w Warsztacie
workshop.listing = Edytuj pozycję w Warsztacie
ok = OK
open = Otwórz
-customize = Dostosuj
+customize = Dostosuj zasady
cancel = Anuluj
openlink = Otwórz Link
copylink = Kopiuj Link
@@ -272,30 +272,33 @@ data.import = Importuj Dane
data.openfolder = Otwórz folder danych
data.exported = Dane wyeksportowane.
data.invalid = Nieprawidłowe dane gry.
-data.import.confirm = Zaimportowanie zewnętrznych danych usunie[scarlet] wszystkie[] obecne dane gry.\n[accent]Nie można tego cofnąć![]\n\nGdy dane zostaną zimportowane, gra automatycznie się wyłączy.
+data.import.confirm = Zaimportowanie zewnętrznych danych nadpisze[scarlet] wszystkie[] obecne dane gry.\n[accent]Nie można tego cofnąć![]\n\nGdy dane zostaną zaimportowane, gra automatycznie się wyłączy.
quit.confirm = Czy na pewno chcesz wyjść?
quit.confirm.tutorial = Jesteś pewien?\nSamouczek może zostać powtórzony w[accent] Ustawienia->Gra->Ponów samouczek.[]
loading = [accent]Ładowanie...
reloading = [accent]Przeładowywanie Modów...
saving = [accent]Zapisywanie...
-respawn = [accent][[{0}][] to respawn in core
+respawn = [accent][[{0}][] by odrodzić się w rdzeniu
cancelbuilding = [accent][[{0}][] by wyczyścić plan
selectschematic = [accent][[{0}][] by wybrać+skopiować
pausebuilding = [accent][[{0}][] by wstrzymać budowę
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
wave = [accent]Fala {0}
-wave.waiting = Fala za {0}
+wave.cap = [accent]Fala {0}/{1}
+wave.waiting = [lightgray]Fala za {0}
wave.waveInProgress = [lightgray]Fala w trakcie
waiting = [lightgray]Oczekiwanie...
waiting.players = Oczekiwanie na graczy...
wave.enemies = Pozostało [lightgray]{0} wrogów
wave.enemy = Pozostał [lightgray]{0} wróg
+wave.guardianwarn = Strażnik nadejdzie za [accent]{0}[] fale.
+wave.guardianwarn.one = Strażnik nadejdzie za [accent]{0}[] fale.
loadimage = Załaduj Obraz
saveimage = Zapisz Obraz
unknown = Nieznane
custom = Własne
builtin = Wbudowane
-map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić.
+map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić!
map.random = [accent]Losowa Mapa
map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [accent]pomarańczowy[] rdzeń do tej mapy w edytorze.
map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[scarlet] inny niż pomarańczowy[] rdzeń do mapy w edytorze.
@@ -309,7 +312,7 @@ workshop.info = Informacja o pozycji
changelog = Historia aktualizacji (opcjonalna):
eula = Umowa Użytkownika Końcowego (EULA) Steam
missing = Ta pozycja została przeniesiona bądź usunięta.\n[lightgray]Pozycja na Warsztacie została automatycznie odłączona.
-publishing = [accent]Trwa publikowanie...
+publishing = [accent]Publikowanie...
publish.confirm = Czy jesteś pewien, że chcesz to opublikować?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje pozycje nie będą widoczne!
publish.error = Błąd podczas publikowania pozycji: {0}
steam.error = Nie udało się zainicjować serwisów Steam.\nBłąd: {0}
@@ -328,6 +331,7 @@ editor.generation = Generacja:
editor.ingame = Edytuj w Grze
editor.publish.workshop = Opublikuj w Warsztacie
editor.newmap = Nowa Mapa
+editor.center = Center
workshop = Warsztat
waves.title = Fale
waves.remove = Usuń
@@ -335,9 +339,9 @@ waves.never =
waves.every = co
waves.waves = fal(e)
waves.perspawn = co pojawienie
-waves.shields = shields/wave
+waves.shields = tarcze/fala
waves.to = do
-waves.guardian = Guardian
+waves.guardian = Strażnik
waves.preview = Podgląd
waves.edit = Edytuj...
waves.copy = Kopiuj Do Schowka
@@ -346,9 +350,9 @@ waves.invalid = Nieprawidłowe fale w schowku.
waves.copied = Fale zostały skopiowane.
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
+wavemode.counts = liczba
+wavemode.totals = sumy
+wavemode.health = życie
editor.default = [lightgray]
details = Detale...
@@ -386,10 +390,10 @@ editor.export = Eksportuj...
editor.exportfile = Eksportuj Plik
editor.exportfile.description = Eksportuj plik mapy
editor.exportimage = Eksportuj Obraz Terenu
-editor.exportimage.description = Eksportuj plik obrazu terenu
+editor.exportimage.description = Eksportuj plik obrazu zawierający tylko podstawowy teren
editor.loadimage = Załaduj Teren
editor.saveimage = Zapisz Teren
-editor.unsaved = [scarlet]Masz niezapisane zmiany![]\nCzy na pewno chcesz wyjść?
+editor.unsaved = Czy na pewno chcesz wyjść?[]\n[scarlet]Wszelkie niezapisane zmiany zostaną utracone.
editor.resizemap = Zmień Rozmiar Mapy
editor.mapname = Nazwa Mapy:
editor.overwrite = [accent]Uwaga!\nSpowoduje to nadpisanie istniejącej mapy.
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Brak filtrów! Dodaj jeden za pomocą przycisku poni
filter.distort = Zniekształcanie
filter.noise = Szum
filter.enemyspawn = Wybierz spawn przeciwnika
+filter.spawnpath = Droga Do Spawnu
filter.corespawn = Wybierz rdzeń
filter.median = Mediana
filter.oremedian = Mediana Rud
@@ -440,6 +445,7 @@ filter.option.amount = Ilość
filter.option.block = Blok
filter.option.floor = Podłoga
filter.option.flooronto = Podłoga Docelowa
+filter.option.target = Target
filter.option.wall = Ściana
filter.option.ore = Ruda
filter.option.floor2 = Druga Podłoga
@@ -469,24 +475,18 @@ locked = Zablokowane
complete = [lightgray]Ukończone:
requirement.wave = Osiągnij falę {0} w {1}
requirement.core = Zniszcz Rdzeń wroga w {0}
-requirement.research = Research {0}
-requirement.capture = Capture {0}
-resume = Kontynuuj Strefę:\n[lightgray]{0}
+requirement.research = Zbadaj {0}
+requirement.capture = Zdobądź {0}
bestwave = [lightgray]Najwyższa fala: {0}
-launch = < WYSTRZEL >
-launch.text = Launch
-launch.title = Wystrzelenie udane
-launch.next = [lightgray]Następna okazja przy fali {0}
-launch.unable2 = [scarlet]WYSTRZELENIE niedostępne.[]
-launch.confirm = Spowoduje to wystrzelenie wszystkich surowców w rdzeniu.\nNie będziesz mógł wrócić do tej bazy.
-launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, nie będziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal.
+launch.text = Wystrzel
+research.multiplayer = Tylko host może odkrywać przedmoty.
uncover = Odkryj
configure = Skonfiguruj Ładunek
loadout = Loadout
-resources = Resources
+resources = Zasoby
bannedblocks = Zabronione bloki
addall = Dodaj wszystkie
-launch.destination = Destination: {0}
+launch.destination = Cell: {0}
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
zone.unlocked = [lightgray]Strefa {0} odblokowana.
zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione.
@@ -500,7 +500,7 @@ boss.health = Zdrowie Bossa
connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0}
error.unreachable = Serwer niedostępny.\nCzy adres jest wpisany poprawnie?
error.invalidaddress = Niepoprawny adres.
-error.timedout = Przekroczono limit czasu!\nUpewnij się, że host ma ustawione przekierowanie portu oraz poprawność wpisanego adresu!
+error.timedout = Przekroczono limit czasu!\nUpewnij się, że host ma ustawione przekierowanie portu oraz sprawdź poprawność wpisanego adresu!
error.mismatch = Błąd pakietu:\nprawdopodobne niedopasowanie klienta/serwera.\nUpewnij się, że ty i host macie najnowszą wersję Mindustry!
error.alreadyconnected = Jesteś już połączony.
error.mapnotfound = Plik mapy nie został znaleziony!
@@ -508,19 +508,25 @@ error.io = Błąd sieciowy I/O.
error.any = Nieznany błąd sieci.
error.bloom = Nie udało się załadować bloom.\nTwoje urządzenie może nie wspierać tej funkcji.
-weather.rain.name = Rain
-weather.snow.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
+weather.rain.name = Deszcz
+weather.snow.name = Śnieg
+weather.sandstorm.name = Burza piaskowa
+weather.sporestorm.name = Burza zarodników
+weather.fog.name = Mgła
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
-sectors.nonelaunch = [lightgray]none (sun)
+sectors.unexplored = [lightgray]Niezbadane
+sectors.resources = Zasoby:
+sectors.production = Produkcja:
+sectors.stored = Zmagazynowane:
+sectors.resume = Kontynuuj
+sectors.launch = Wystrzel
+sectors.select = Wybierz
+sectors.nonelaunch = [lightgray]żaden (słońce)
+sectors.rename = Zmień Nazwę Sektora
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Punkt Zerowy
sector.craters.name = Kratery
@@ -535,8 +541,8 @@ sector.saltFlats.name = Solne Równiny
sector.fungalPass.name = Grzybowa Przełęcz
sector.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz jak najwięcej miedzi i ołowiu, tyle ile jest możliwe.\nPrzejdź do następnej strefy jak najszybciej.
-sector.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od władzy. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy.
-sector.saltFlats.description = Na obrzeżach pustyni spoczywają Solne Równiny. Można tu znaleźć niewiele surowców.\n\nWrogowie zbudowali tu bazę składującą surowce. Zniszcz ich rdżeń. Zniszcz wszystko co stanie ci na drodze.
+sector.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od prądu. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy.
+sector.saltFlats.description = Na obrzeżach pustyni spoczywają Solne Równiny. Można tu znaleźć niewiele surowców.\n\nWrogowie zbudowali tu bazę składującą surowce. Zniszcz ich rdzeń. Zniszcz wszystko co stanie ci na drodze.
sector.craters.description = W tym kraterze zebrała się woda. Pozostałość dawnych wojen. Odzyskaj ten teren. Wykop piasek. Wytop metaszkło. Pompuj wodę do działek obronnych i wierteł by je schłodzić
sector.ruinousShores.description = Za pustkowiami ciągnie się linia brzegowa. Kiedyś znajdowała się tu przybrzeżna linia obronna. Niewiele z niej zostało. Ostały się tylko podstawowe struktury obronne, z reszty został tylko złom.\nKontynuuj eksploracje. Odkryj pozostawioną tu technologię.
sector.stainedMountains.description = W głębi lądu leżą góry, jeszcze nieskażone przez zarodniki.\nWydobądź obfity tytan w tym obszarze. Dowiedz się, jak z niego korzystać.\n\nObecność wroga jest tutaj większa. Nie daj im czasu na wysłanie swoich najsilniejszych jednostek.
@@ -558,8 +564,12 @@ settings.graphics = Grafika
settings.cleardata = Wyczyść Dane Gry...
settings.clear.confirm = Czy jesteś pewien że chcesz usunąć te dane?\nPo tym nie ma powrotu!
settings.clearall.confirm = [scarlet]UWAGA![]\nTo wykasuje wszystkie dane, włącznie z zapisanymi grami i mapami, ustawienami, i znanymi technologiami.\nKiedy naciśniesz 'ok', gra usunie wszystkie swoje dane i automatycznie wyłączy się.
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
+settings.clearsaves.confirm = Jesteś pewny że chcesz usunąć wszystkie zapisy?
+settings.clearsaves = Usuń Zapisy
+settings.clearresearch = Usuń Postęp Drzewa Tech.
+settings.clearresearch.confirm = Jesteś pewny że chcesz usunąć cały postęp drzewa technologicznego?
+settings.clearcampaignsaves = Usuń Zapisy Kampanii
+settings.clearcampaignsaves.confirm = Jesteś pewny że chcesz usunąć wszystkie zapisy kampanii?
paused = [accent]< Wstrzymano >
clear = Wyczyść
banned = [scarlet]Zbanowano
@@ -570,12 +580,14 @@ info.title = Informacje
error.title = [crimson]Wystąpił błąd
error.crashtitle = Wystąpił błąd
unit.nobuild = [scarlet]Jednostka nie może budować
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Wejście
stat.output = Wyjście
stat.booster = Wzmacniacz
stat.tiles = Wymagane Pola
stat.affinities = Uwydajnienie
-block.unknown = [lightgray]???
stat.powercapacity = Pojemność mocy
stat.powershot = moc/strzał
stat.damage = Obrażenia
@@ -585,15 +597,16 @@ stat.itemsmoved = Prędkość poruszania się
stat.launchtime = Czas pomiędzy wystrzeleniami
stat.shootrange = Zasięg
stat.size = Rozmiar
-stat.displaysize = Display Size
+stat.displaysize = Wielkość Wyświetlania
stat.liquidcapacity = Pojemność cieczy
stat.powerrange = Zakres mocy
stat.linkrange = Link Range
-stat.instructions = Instructions
+stat.instructions = Instrukcje
stat.powerconnections = Maksymalna ilość połączeń
stat.poweruse = Zużycie prądu
stat.powerdamage = Moc/Zniszczenia
stat.itemcapacity = Pojemność przedmiotów
+stat.memorycapacity = Pojemość Pamięci
stat.basepowergeneration = Podstawowa generacja mocy
stat.productiontime = Czas produkcji
stat.repairtime = Czas pełnej naprawy bloku
@@ -605,14 +618,36 @@ stat.boosteffect = Efekt wzmocnienia
stat.maxunits = Maksymalna ilość jednostek
stat.health = Zdrowie
stat.buildtime = Czas budowy
-stat.maxconsecutive = Max Consecutive
+stat.maxconsecutive = Maksymalnie Kolejny
stat.buildcost = Koszt budowy
stat.inaccuracy = Niecelność
stat.shots = Strzały
-stat.reload = Strzałów/sekundę
+stat.reload = Strzałów/Sekundę
stat.ammo = Amunicja
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
+stat.shieldhealth = Życie Tarczy
+stat.cooldowntime = Czas Odnowienia
+stat.explosiveness = Wybuchowość
+stat.basedeflectchance = Bazowa Szansa Na Odbicie
+stat.lightningchance = Szansa Na Błyskawicę
+stat.lightningdamage = Obrażenia Błyskawic
+stat.flammability = Palność
+stat.radioactivity = Radioaktywność
+stat.heatcapacity = Pojemność Cieplna
+stat.viscosity = Lepkość
+stat.temperature = Temperatura
+stat.speed = Prędość
+stat.buildspeed = Prędkość Budowy
+stat.minespeed = Prędkość Wydobycia
+stat.minetier = Stopień Wydobycia
+stat.payloadcapacity = Ładowność
+stat.commandlimit = Limit Jednostek Zarządanych
+stat.abilities = Umiejętności
+
+ability.forcefield = Pole Mocy
+ability.repairfield = Pole Naprawy
+ability.statusfield = Pole Statusu
+ability.unitspawn = {0} Fabryka
+ability.shieldregenfield = Strefa Tarczy Regenerującej
bar.drilltierreq = Wymagane Lepsze Wiertło
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Moc: {0}
bar.powerstored = Zmagazynowano: {0}/{1}
bar.poweramount = Moc: {0}
bar.poweroutput = Wyjście mocy: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Przedmiotów: {0}
bar.capacity = Pojemność: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Postęp Budowy
bar.input = Wejście
bar.output = Wyjście
+units.processorcontrol = [lightgray]Procesor Kontrolowany
+
bullet.damage = [stat]{0}[lightgray] Obrażenia
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
bullet.incendiary = [stat]zapalający
@@ -642,12 +680,15 @@ bullet.homing = [stat]naprowadzający
bullet.shock = [stat]piorunowy
bullet.frag = [stat]fragmentacyjny
bullet.knockback = [stat]{0}[lightgray] odrzut
+bullet.pierce = [stat]{0}[lightgray]x przebicia
+bullet.infinitepierce = [stat]przebijający
bullet.freezing = [stat]zamrażający
bullet.tarred = [stat]smolny
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
unit.blocks = bloki
+unit.blockssquared = bloki²
unit.powersecond = jednostek prądu na sekundę
unit.liquidsecond = jednostek płynu na sekundę
unit.itemssecond = przedmiotów na sekundę
@@ -660,7 +701,7 @@ unit.persecond = /sekundę
unit.perminute = /min
unit.timesspeed = x prędkość
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = życie tarczy
unit.items = przedmioty
unit.thousands = tys.
unit.millions = mln
@@ -670,7 +711,7 @@ category.power = Prąd
category.liquids = Płyny
category.items = Przedmioty
category.crafting = Przetwórstwo
-category.shooting = Strzelanie
+category.function = Funkcja
category.optional = Dodatkowe ulepszenia
setting.landscape.name = Zablokuj tryb panoramiczny
setting.shadows.name = Cienie
@@ -679,7 +720,6 @@ setting.linear.name = Filtrowanie Liniowe
setting.hints.name = Podpowiedzi
setting.flow.name = Wyświetl szybkość przepływu zasobów[scarlet] (eksperymentalne)
setting.buildautopause.name = Automatycznie zatrzymaj budowanie
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animowana woda
setting.animatedshields.name = Animowana tarcza
setting.antialias.name = Antyaliasing[lightgray] (wymaga restartu)[]
@@ -707,20 +747,19 @@ setting.conveyorpathfinding.name = Ustalanie ścieżki przenośników
setting.sensitivity.name = Czułość kontrolera
setting.saveinterval.name = Interwał automatycznego zapisywania
setting.seconds = {0} sekund
-setting.blockselecttimeout.name = Block Select Timeout
+setting.blockselecttimeout.name = Czas Wyboru Klocka
setting.milliseconds = {0} milisekund
setting.fullscreen.name = Pełny ekran
setting.borderlesswindow.name = Bezramkowe okno[lightgray] (może wymagać restartu)
setting.fps.name = Pokazuj FPS oraz ping
-setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Pokazuj skróty klawiszowe bloków
+setting.smoothcamera.name = Gładka Kamera
setting.vsync.name = Synchronizacja pionowa
setting.pixelate.name = Pikselacja [lightgray](wyłącza animacje)
setting.minimap.name = Pokaż Minimapę
-setting.coreitems.name = Display Core Items (WIP)
+setting.coreitems.name = Poazuj Przedmoty W Rdzeniu (WIP)
setting.position.name = Pokazuj położenie gracza
setting.musicvol.name = Głośność muzyki
-setting.atmosphere.name = Show Planet Atmosphere
+setting.atmosphere.name = Pokazuj atmosferę planety
setting.ambientvol.name = Głośność otoczenia
setting.mutemusic.name = Wycisz muzykę
setting.sfxvol.name = Głośność dźwięków
@@ -743,11 +782,11 @@ keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w
category.general.name = Ogólne
category.view.name = Wyświetl
category.multiplayer.name = Wielu graczy
-category.blocks.name = Block Select
+category.blocks.name = Wybierz Blok
command.attack = Atakuj
command.rally = Zbierz
command.retreat = Wycofaj
-command.idle = Idle
+command.idle = Nieaktywny
placement.blockselectkeys = \n[lightgray]Klawisz: [{0},
keybind.respawn.name = Respawn
keybind.control.name = Control Unit
@@ -756,12 +795,12 @@ keybind.press = Naciśnij wybrany klawisz...
keybind.press.axis = Naciśnij oś lub klawisz...
keybind.screenshot.name = Zrzut ekranu mapy
keybind.toggle_power_lines.name = Zmień widoczność linii energetycznych
-keybind.toggle_block_status.name = Toggle Block Statuses
+keybind.toggle_block_status.name = Przełączanie Między Statusami Bloków
keybind.move_x.name = Poruszanie w poziomie
keybind.move_y.name = Poruszanie w pionie
keybind.mouse_move.name = Podążaj Za Myszą
-keybind.pan.name = Pan View
-keybind.boost.name = Boost
+keybind.pan.name = Widok Panoramiczny
+keybind.boost.name = Przyspiesz
keybind.schematic_select.name = Wybierz region
keybind.schematic_menu.name = Menu schematów
keybind.schematic_flip_x.name = Obróć schemat horyzontalnie
@@ -788,8 +827,8 @@ keybind.diagonal_placement.name = Budowa po skosie
keybind.pick.name = Wybierz Blok
keybind.break_block.name = Zniszcz Blok
keybind.deselect.name = Odznacz
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
+keybind.pickupCargo.name = Podnieś Ładunek
+keybind.dropCargo.name = Opuść Ładunek
keybind.command.name = Command
keybind.shoot.name = Strzelanie
keybind.zoom.name = Przybliżanie
@@ -818,28 +857,29 @@ mode.pvp.name = PvP
mode.pvp.description = Walcz przeciwko innym graczom.\n[gray]Wymaga co najmniej dwóch rdzeni o róźnych kolorach na mapie, aby móc grać w tym trybie
mode.attack.name = Atak
mode.attack.description = Brak fal. Celem jest zniszczenie bazy przeciwnika.\n[gray]Wymaga czerwonego rdzenia na mapie, aby móc grać w tym trybie.
-mode.custom = Własny tryb
+mode.custom = Własny Tryb
-rules.infiniteresources = Nieskończone zasoby
-rules.reactorexplosions = Eksplozje reaktorów
-rules.wavetimer = Zegar fal
+rules.infiniteresources = Nieskończone Zasoby
+rules.reactorexplosions = Eksplozje Reaktorów
+rules.schematic = Schematy Są Dozwolone
+rules.wavetimer = Zegar Fal
rules.waves = Fale
-rules.attack = Tryb ataku
-rules.buildai = AI Building
-rules.enemyCheat = Nieskończone zasoby komputera-przeciwnika (czerwonego zespołu)
-rules.blockhealthmultiplier = Mnożnik życia bloków
-rules.blockdamagemultiplier = Block Damage Multiplier
-rules.unitbuildspeedmultiplier = Mnożnik prędkości tworzenia jednostek
-rules.unithealthmultiplier = Mnożnik życia jednostek
-rules.unitdamagemultiplier = Mnożnik obrażeń jednostek
-rules.enemycorebuildradius = Zasięg blokady budowy przy rdzeniu wroga:[lightgray] (kratki)
-rules.wavespacing = Odstępy między falami:[lightgray] (sek)
-rules.buildcostmultiplier = Mnożnik kosztów budowania
-rules.buildspeedmultiplier = Mnożnik prędkości budowania
+rules.attack = Tryb Ataku
+rules.buildai = SI Może Budować
+rules.enemyCheat = Nieskończone Zasoby SI (czerwonego zespołu)
+rules.blockhealthmultiplier = Mnożnik Życia Bloków
+rules.blockdamagemultiplier = Mnożnik Uszkodzeń Bloków
+rules.unitbuildspeedmultiplier = Mnożnik Prędkości Tworzenia Jednostek
+rules.unithealthmultiplier = Mnożnik Życia Jednostek
+rules.unitdamagemultiplier = Mnożnik Obrażeń jednostek
+rules.enemycorebuildradius = Zasięg Blokady Budowy Przy Rdzeniu Wroga:[lightgray] (kratki)
+rules.wavespacing = Odstępy Między Falami:[lightgray] (sek)
+rules.buildcostmultiplier = Mnożnik Kosztów Budowania
+rules.buildspeedmultiplier = Mnożnik Prędkości Budowania
rules.deconstructrefundmultiplier = Mnożnik Zwrotu Dekonstrukcji
-rules.waitForWaveToEnd = Fale czekają na przeciwników
-rules.dropzoneradius = Zasięg strefy zrzutu:[lightgray] (kratki)
-rules.unitammo = Units Require Ammo
+rules.waitForWaveToEnd = Fale Czekają Na Przeciwników
+rules.dropzoneradius = Zasięg Strefy Zrzutu:[lightgray] (kratki)
+rules.unitammo = Jednostki Potrzebują Amunicji
rules.title.waves = Fale
rules.title.resourcesbuilding = Zasoby i Budowanie
rules.title.enemy = Przeciwnicy
@@ -847,17 +887,19 @@ rules.title.unit = Jednostki
rules.title.experimental = Eksperymentalne
rules.title.environment = Environment
rules.lighting = Oświetlenie
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
+rules.enemyLights = Wrogowie Emitują Światło
+rules.fire = Ogień
+rules.explosions = Uszkodzenia Wybuchu Klocka/Jednostki
rules.ambientlight = Otaczające Światło
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.weather = Pogoda
+rules.weather.frequency = Częstotliwość:
+rules.weather.duration = Czas trwania:
content.item.name = Przedmioty
content.liquid.name = Płyny
content.unit.name = Jednostki
content.block.name = Klocki
+
item.copper.name = Miedź
item.lead.name = Ołów
item.coal.name = Węgiel
@@ -879,23 +921,6 @@ liquid.slag.name = Żużel
liquid.oil.name = Ropa
liquid.cryofluid.name = Lodociecz
-item.explosiveness = [lightgray]Wybuchowość: {0}
-item.flammability = [lightgray]Palność: {0}
-item.radioactivity = [lightgray]Promieniotwórczość: {0}
-
-unit.health = [lightgray]Zdrowie: {0}
-unit.speed = [lightgray]Prędkość: {0}
-unit.weapon = [lightgray]Broń: {0}
-unit.itemcapacity = [lightgray]Pojemność przedmiotów: {0}
-unit.minespeed = [lightgray]Prędkość kopania: {0}%
-unit.minepower = [lightgray]Moc kopania: {0}
-unit.ability = [lightgray]Umiejętność: {0}
-unit.buildspeed = [lightgray]Prędkość budowania: {0}%
-
-liquid.heatcapacity = [lightgray]Wytrzymałość na przegrzewanie: {0}
-liquid.viscosity = [lightgray]Lepkość: {0}
-liquid.temperature = [lightgray]Temperatura: {0}
-
unit.dagger.name = Nóż
unit.mace.name = Mace
unit.fortress.name = Forteca
@@ -930,12 +955,13 @@ unit.reign.name = Reign
unit.vela.name = Vela
unit.corvus.name = Corvus
-block.resupply-point.name = Resupply Point
+block.resupply-point.name = Punkt Uzupełnienia
block.parallax.name = Parallax
block.cliff.name = Klif
block.sand-boulder.name = Piaskowy Głaz
block.grass.name = Trawa
block.slag.name = Żużel
+block.space.name = Space
block.salt.name = Sól
block.salt-wall.name = Salt Wall
block.pebbles.name = Kamyki
@@ -981,6 +1007,7 @@ block.darksand-water.name = Woda z Ciemnym Piaskiem
block.char.name = Popiół
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Lodowy Śnieg
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -990,7 +1017,7 @@ block.pine.name = Sosna
block.dirt.name = Dirt
block.dirt-wall.name = Dirt Wall
block.mud.name = Mud
-block.white-tree-dead.name = Białe Drzewo Martwe
+block.white-tree-dead.name = Białe Martwe Drzewo
block.white-tree.name = Białe Drzewo
block.spore-cluster.name = Skupisko Zarodników
block.metal-floor.name = Metalowa Podłoga
@@ -1075,6 +1102,7 @@ block.power-source.name = Źródło prądu
block.unloader.name = Ekstraktor
block.vault.name = Magazyn
block.wave.name = Strumień
+block.tsunami.name = Tsunami
block.swarmer.name = Działo Rojowe
block.salvo.name = Działo Salwowe
block.ripple.name = Działo Falowe
@@ -1114,31 +1142,33 @@ block.arc.name = Piorun
block.rtg-generator.name = Generator RTG
block.spectre.name = Huragan
block.meltdown.name = Rozpad
+block.foreshadow.name = Foreshadow
block.container.name = Kontener
block.launch-pad.name = Wyrzutnia
block.launch-pad-large.name = Duża Wyrzutnia
block.segment.name = Segment
-block.command-center.name = Command Center
+block.command-center.name = Centrum Dowodzenia
block.ground-factory.name = Fabryka Naziemna
block.air-factory.name = Fabryka Powietrzna
block.naval-factory.name = Fabryka Morska
block.additive-reconstructor.name = Rekonstruktor Addytywny
block.multiplicative-reconstructor.name = Rekonstruktor Multiplikatywny
block.exponential-reconstructor.name = Rekonstruktor Wykładniczy
-block.tetrative-reconstructor.name = Tetrative Reconstructor
+block.tetrative-reconstructor.name = Rekonstruktor Tetratywny
block.payload-conveyor.name = Przenośnik Masowy
block.payload-router.name = Rozdzielacz Ładunku
-block.disassembler.name = Dezasembler
-block.silicon-crucible.name = Silicon Crucible
+block.disassembler.name = Rozkładacz
+block.silicon-crucible.name = Tygiel Krzemu
block.overdrive-dome.name = Kopuła Pola Overdrive
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
+block.switch.name = Przełącznik
+block.micro-processor.name = Micro Procesor
+block.logic-processor.name = Logiczny Procesor
+block.hyper-processor.name = Hyper Procesor
+block.logic-display.name = Wyświetlacz Logiczny
+block.large-logic-display.name = Duży Wyświetlacz Logiczny
+block.memory-cell.name = Komórka Pamięci
+block.memory-bank.name = Bank Pamięci
team.blue.name = niebieski
team.crux.name = czerwony
@@ -1166,7 +1196,7 @@ tutorial.breaking = Bloki często wymagają rozbiórki.\n[accent]Przytrzymaj pra
tutorial.breaking.mobile = Bloki często wymagają rozbiórki.\n[accent]Wybierz tryb dekonstrukcji[], a następnie dotknij blok by zacząć go niszczyć.\nZdekonstruuj obszarowo poprzez przytrzymanie palcem przez moment[] i przesunięcie go w jakimś kierunku.\nNaciśnij przycisk ptaszka by potwierdzić rozbiórkę.\n\n[accent]Zniszcz wszystkie bloki złomu na lewo od twojego rdzenia używając selekcji obszarowej.
tutorial.withdraw = Czasami, konieczne jest wyjmowanie przedmiotów prosto z bloków.\nBy tego dokonać, [accent]kliknij blok[] z przedmiotami w nim, potem [accent]kliknij przedmiot[] w inwentarzu.\nMożesz zebrać wiele przedmiotów naraz poprzez [accent]kliknięcie i przytrzymanie[].\n\n[accent]Zabierz trochę miedzi z rdzenia.[]
tutorial.deposit = Włóż przedmioty do bloków poprzez przeciągnięcie z twojego statku do danego bloku.\n\n[accent]Włóż miedź z powrotem do rdzenia .[]
-tutorial.waves = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdżeń przez 2 fale.[accent] Kliknij[] by strzelać.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
+tutorial.waves = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdzeń przez 2 fale.[accent] Kliknij[] by strzelać.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
tutorial.waves.mobile = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdzeń przez 2 fale. Twój statek będzie automatycznie atakował wrogów.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
tutorial.launch = Kiedy dotrzesz do określonej fali, masz możliwość[accent] wystrzelenia rdzenia[], pozostawiając struktury obronne za sobą i[accent] otrzymując wszystkie surowce znajdujące się w rdzeniu.[]\nSurowce te mogą potem zostać użyte do odkrywania nowych technologii.\n\n[accent]Naciśnij przycisk Wystrzału.
@@ -1189,7 +1219,7 @@ item.pyratite.description = Niesamowicie palny związek używany w zbrojeniu. Ni
liquid.water.description = Powszechnie używana do schładzania budowli i przetwarzania odpadów.
liquid.slag.description = Wiele różnych metali stopionych i zmieszanych razem. Może zostać rozdzielony na jego metale składowe, albo wystrzelony w wrogie jednostki i użyty jako broń.
liquid.oil.description = Używany w do produkcji złożonych materiałów. Może zostać przetworzony na węgiel, lub wystrzelony w wrogów przez wieżyczke.
-liquid.cryofluid.description = Obojętna, niekorozyjna ciecz utworzona z wody i tytanu
+liquid.cryofluid.description = Obojętna, niekorozyjna ciecz utworzona z wody i tytanu.
block.message.description = Przechowuje wiadomość. Wykorzystywane do komunikacji pomiędzy sojusznikami.
block.graphite-press.description = Kompresuje kawałki węgla w czyste blaszki grafitu.
@@ -1248,7 +1278,7 @@ block.underflow-gate.description = Odwrotność bramy przepełnieniowej, który
block.mass-driver.description = Najlepszy blok do transportu przedmiotów. Zbiera wiele przedmiotów naraz a potem wystrzeliwuje je do kolejnej katapulty masy na bardzo duże odległości.
block.mechanical-pump.description = Tania pompa o niskiej wydajności. Nie wymaga prądu.
block.rotary-pump.description = Zaawansowana pompa. Pompuje więcej cieczy, ale wymaga zasilania.
-block.thermal-pump.description = Najlepsza pompa.
+block.thermal-pump.description = Najlepsza pompa. Pompuje ogromne ilości cieczy, ale wymaga zasilaina.
block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami.
block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury.
block.plated-conduit.description = Przesyła ciecze z taką samą szybkością co rura tytanowa, ale jest bardziej odporna. Wejściami bocznymi mogą być tylko inne rury.\nWycieka z niej mniej cieczy.
@@ -1302,4 +1332,63 @@ block.cyclone.description = Duża szybkostrzelna wieża.
block.spectre.description = Duże działo dwulufowe, które strzela potężnymi pociskami przebijającymi pancerz w jednostki naziemne i powietrzne.
block.meltdown.description = Duże działo laserowe, które strzela potężnymi wiązkami dalekiego zasięgu. Wymaga chłodzenia.
block.repair-point.description = Bez przerw naprawia najbliższą uszkodzoną jednostkę w jego zasięgu.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Uszkadza i niszczy wrogie pociskiski poza laserami.
+block.parallax.description = Wykorzystuje laser, który przyciąga do siebie wrogów, zadając im obrażenia.
+block.tsunami.description = Strzela wielkim strumieniem cieczy we wrogów. Automatycznie gasi ogień, gdy jest podłączony do wody.
+block.silicon-crucible.description = Oczyszcza krzem z węgla i piasku wykorzystując piratian. Bardziej efektywny w gorących miejscach.
+block.disassembler.description = Oddziela egzotyczne materiały z mieszaniny jaką jest żużel z małą efektywnością. Może wyprodukować tor.
+block.overdrive-dome.description = Zwiększa szybkość budynków w zasięgu. Wymaga włókna fazowego oraz krzemu by działać.
+block.payload-conveyor.description = Przenosi duże ładunki, takie jak jednostki z fabryk.
+block.payload-router.description = Dzieli wejście z przewoźnika masowego i dzieli je w 3 różne strony.
+block.command-center.description = Kontroluje zachowanie jednostek paroma różnymi komendami.
+block.ground-factory.description = Produkuje jednostki naziemne. Jednostki mogą być do razu wykorzystane lub przeniesone do rekonstrukota by je ulepszyć.
+block.air-factory.description = Produkuje jednostki powietrzne. Jednostki mogą być do razu wykorzystane lub przeniesone do rekonstrukota by je ulepszyć.
+block.naval-factory.description = Produkuje jednostki morskie. Jednostki mogą być do razu wykorzystane lub przeniesone do rekonstrukota by je ulepszyć.
+block.additive-reconstructor.description = Ulepsza wsadzone jednostki do stopnia drugiego.
+block.multiplicative-reconstructor.description = Ulepsza wsadzone jednostki do stopnia trzeciego.
+block.exponential-reconstructor.description = Ulepsza wsadzone jednostki do stopnia czwartego.
+block.tetrative-reconstructor.description = Ulepsza wsadzone jednostki do stopnia piątego i ostatniego.
+block.switch.description = Jest Przełączalny. Stan jego może być odczytywany lub kontrolowany przez procesory.
+block.micro-processor.description = Uruchamia sekwencję instrukcji logicznych w pętli. Może być wykorzystany do kontroli bloków lub jednostek.
+block.logic-processor.description = Uruchamia sekwencję instrukcji logicznych w pętli. Może być wykorzystany do kontroli bloków lub jednostek. Szybszy niż mikro procesor.
+block.hyper-processor.description = Uruchamia sekwencję instrukcji logicznych w pętli. Może być wykorzystany do kontroli bloków lub jednostek. Szybszy niż logiczny procesor.
+block.memory-cell.description = Przechowuje informacje dla procesora.
+block.memory-bank.description = Przechowuje informacje dla procesora. Duża pojemność.
+block.logic-display.description = Wyświetla obraz z procesora.
+block.large-logic-display.description = Wyświetla obraz z procesora.
+block.interplanetary-accelerator.description = Masywna elektromagnetyczna wierza. Przyspiesza rdzeń do prędkości ucieczki by wylądować na innych planetach.
+
+
+unit.dagger.description = Strzela standardowymi pociskami w najbliższych wrogów.
+unit.mace.description = Strzela strumieniami ognia w najbliższych wrogów.
+unit.fortress.description = Strzela artylerią dalekiego zasięgu we wrogie jednostki na ziemi.
+unit.scepter.description = Strzela salwą naładowanych pocisków we wszystkich przeciwników.
+unit.reign.description = Strzela salwą masywnych przebijających pocisków we wszystkich przeciwników.
+unit.nova.description = Wystrzeliwuje pioruny, które uszkadzają przeciwników i leczą sojusznicze struktury. Może latać.
+unit.pulsar.description = Wystrzeliwuje elektryczne pioruny, które uszkadzają przeciwników i leczą sojusznicze struktury. Może latać.
+unit.quasar.description = Wystrzeliwuje wiązki laserowe, które uszkadzają przeciwników i leczą sojusznicze struktury. Może latać. Posiada tarcze.
+unit.vela.description = Wystrzeliwuje masywny ciągły laser, który uszkadza przeciwników i leczy sojusznicze struktury. Może latać.
+unit.corvus.description = Wystrzeliwuje masywny laserowy błysk, który uszkadza przeciwników i leczy sojusznicze struktury. Może przejść po większości terenu.
+unit.crawler.description = Wbiega w przeciwników i dokonuje samozniszczenia powodując dużą eksplozje.
+unit.atrax.description = Wystrzeliwuje wyniszczające kule żużlu w cele na ziemi. Może przejść po większości terenu.
+unit.spiroct.description = Strzela wyczerpującymi życie laserami we wrogów, naprawiając siebie. Może przejść po większości terenu.
+unit.arkyid.description = Strzela dużymi wyczerpującymi życie laserami we wrogów, naprawiając siebie. Może przejść po większości terenu.
+unit.toxopid.description = Strzela wielkimi elektrycznymi skupionymi kulami i przebijającymi laserami we wrogów. Może przejść po większości terenu.
+unit.flare.description = Strzela standardowymi pociskami we jednostki naziemne.
+unit.horizon.description = Upuszcza stos bomb na jednostki naziemne.
+unit.zenith.description = Strzela salwą rakiet w każdego pobliskiego wroga.
+unit.antumbra.description = Strzela zaporą rakiet w każdego pobliskiego wroga.
+unit.eclipse.description = Strzela dwoma przebijającymi laserami i pociskami przeciwlotniczymi we wrogów.
+unit.mono.description = Automatycznie wykopuje miedź i ołów i odkłada je do rdzenia.
+unit.poly.description = Automatycznie naprawia zniszczone struktury i asystuje w budowie.
+unit.mega.description = Automatycznie naprawia zniszczone struktury. Może podnosić małe jednostki i bloki.
+unit.quad.description = Upuszcza wielkie bomby na cele na ziemi, które uszkadzają przeciwników i leczą sojusznicze struktury. Może podnosić jednostki naziemne średniej wielkości.
+unit.oct.description = Broni wszystkie jednostki tarczą regeneracyjną. Może podnosić większość jednostek naziemnych.
+unit.risso.description = Strzela sporą ilością pocisków i rakiet w najbliższych przeciwników.
+unit.minke.description = Strzela granatami i standardowymi pociskami w najbliższych przeciwników.
+unit.bryde.description = Strzela granatami i rakietami na dużą odległość we wrogów.
+unit.sei.description = Strzela dużą ilością rakiet oraz przebijających zbroje pocisków we wrogów
+unit.omura.description = Strzela przebijającym superszybkim pociskiem we wrogów ze sporej odległości. Produkuje Błyski (jednostki)
+unit.alpha.description = Chroni Rdzeń: Odłamek przed wrogami. Buduje struktury.
+unit.beta.description = Chroni Rdzeń: Podstawa przed wrogami. Buduje struktury.
+unit.gamma.description = Chroni Rdzeń: Jądro przed wrogami. Buduje struktury.
diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties
index 7f2659d839..0e597d2159 100644
--- a/core/assets/bundles/bundle_pt_BR.properties
+++ b/core/assets/bundles/bundle_pt_BR.properties
@@ -20,8 +20,8 @@ gameover = O núcleo foi destruído.
gameover.pvp = O time[accent] {0}[] ganhou!
highscore = [accent]Novo recorde!
copied = Copiado
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = [accent]v6[] está atualmente em [accent]alpha[].\n[lightgray]Isso significa:[]\n[scarlet]- A campanha está inacabada[]\n- Está faltando conteúdo\n - A maioria das [scarlet]IAs das unidades[] não funciona adequadamente\n- A maioria das unidades estão inacabadas\n- Tudo o que você ver está sujeito a mudanças ou remoção.\n\nReporte bugs ou crashes em [accent]Github[].
+indev.notready = Essa parte do jogo ainda não esta pronta
load.sound = Sons
load.map = Mapas
@@ -55,6 +55,7 @@ schematic.saved = Esquema salvo.
schematic.delete.confirm = Esse esquema será apagado. Tem certeza?
schematic.rename = Renomear esquema
schematic.info = {0}x{1}, {2} blocos
+schematic.disabled = [scarlet]Esquemas desativados[]\nVocê precisa de permissão para usar esquemas nesse [accent]mapa[] ou [accent]servidor.
stat.wave = Hordas derrotadas:[accent] {0}
stat.enemiesDestroyed = Inimigos destruídos:[accent] {0}
@@ -65,7 +66,7 @@ stat.delivered = Recursos lançados:
stat.playtime = Tempo jogado:[accent] {0}
stat.rank = Classificação final: [accent]{0}
-globalitems = [accent]Global Items
+globalitems = [accent]Itens Globais
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
level.highscore = Melhor\npontuação: [accent] {0}
level.select = Seleção de fase
@@ -100,22 +101,21 @@ done = Feito
feature.unsupported = Seu dispositivo não suporta essa função.
mods.alphainfo = Tenha em mente que os mods estão em alpha, e[scarlet] talvez eles contenham erros e instabilidades[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]Nenhum mod encontrado!
mods.guide = Guia de mods
mods.report = Reportar um Bug
mods.openfolder = Abrir pasta de mods
-mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reload = Recarregar
+mods.reloadexit = O jogo vai fechar, para poder recarregar os mods.
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Ativado
mod.disabled = [scarlet]Desativado
mod.disable = Desati-\nvar
-mod.content = Content:
+mod.content = Conteúdo:
mod.delete.error = Incapaz de deletar o mod. O arquivo talvez esteja em uso.
mod.requiresversion = [scarlet]Requer no mínimo versão [accent]{0} [scarlet]do jogo.
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
+mod.outdated = [scarlet]Não compatível com a V6 (sem minGameVersion: 105)
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
mod.erroredcontent = [scarlet]Erros no conteúdo
mod.errors = Ocorreram erros ao carregar o conteúdo.
@@ -125,22 +125,22 @@ mod.enable = Ativar
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do mod.
mod.reloadrequired = [scarlet]Recarregamento necessário
mod.import = Importar mod
-mod.import.file = Import File
+mod.import.file = Importar Arquivo
mod.import.github = Importar mod do GitHub
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
+mod.jarwarn = [scarlet]mods JAR são altamente inseguros.[]\nTenha certeza que esse mod tenha uma fonte confiável!
mod.item.remove = Este item é parte do mod[accent] '{0}'[]. Para removê-lo, desinstale esse mod.
mod.remove.confirm = Este mod será deletado.
mod.author = [lightgray]Autor:[] {0}
mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. Pode ocorrer uma corrupção no salvamento. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
mod.preview.missing = Antes de publicar esse mod na oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do mod e tente novamente.
mod.folder.missing = Somente mods no formato de pasta serão publicados na oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os mods.
-mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.scripts.disable = Seu dispositivo não suporta mods com scripts. Você precisa desabilitar esses mods para conseguir jogar.
about.button = Sobre
name = Nome:
noname = Escolha[accent] um nome[] primeiro.
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = Mapa do Planeta
+launchcore = Lançar núcleo
filename = Nome do arquivo:
unlocked = Novo bloco desbloqueado!
completed = [accent]Completado
@@ -148,7 +148,7 @@ techtree = Árvore Tecnológica
research.list = [lightgray]Pesquise:
research = Pesquisar
researched = [lightgray]{0} Pesquisado.
-research.progress = {0}% complete
+research.progress = {0}% completo
players = {0} Jogadores ativos
players.single = {0} Jogador ativo
players.search = Procurar
@@ -278,18 +278,21 @@ quit.confirm.tutorial = Você tem certeza que você sabe o que você esta fazend
loading = [accent]Carregando...
reloading = [accent]Recarregando mods...
saving = [accent]Salvando...
-respawn = [accent][[{0}][] to respawn in core
+respawn = [accent][[{0}][] para nascer no núcleo
cancelbuilding = [accent][[{0}][] para cancelar a construção
selectschematic = [accent][[{0}][] para selecionar + copiar
pausebuilding = [accent][[{0}][] para parar a construção
resumebuilding = [scarlet][[{0}][] para continuar a construção
wave = [accent]Horda {0}
+wave.cap = [accent]Horda {0}/{1}
wave.waiting = Proxima horda em {0}
wave.waveInProgress = [lightgray]Horda em progresso
waiting = Aguardando...
waiting.players = Esperando por jogadores...
wave.enemies = [lightgray]{0} inimigos restantes
wave.enemy = [lightgray]{0} inimigo restante
+wave.guardianwarn = Guardião se aproximando em [accent]{0}[] Hordas.
+wave.guardianwarn.one = Guardião se aproximando em [accent]{0}[] Horda.
loadimage = Carregar\nimagem
saveimage = Salvar\nimagem
unknown = Desconhecido
@@ -328,6 +331,7 @@ editor.generation = Geração:
editor.ingame = Editar em jogo
editor.publish.workshop = Publicar na oficina
editor.newmap = Novo mapa
+editor.center = Center
workshop = Oficina
waves.title = Hordas
waves.remove = Remover
@@ -335,7 +339,7 @@ waves.never =
waves.every = a cada
waves.waves = Horda(s)
waves.perspawn = por spawn
-waves.shields = shields/wave
+waves.shields = Escudo/Horda
waves.to = para
waves.guardian = Guardian
waves.preview = Pré-visualizar
@@ -346,9 +350,9 @@ waves.invalid = Hordas inválidas na área de transferência.
waves.copied = Hordas copiadas.
waves.none = Sem hordas definidas.\nNote que layouts vazios de hordas serão automaticamente substituídos pelo layout padrão.
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
+wavemode.counts = quantidade
+wavemode.totals = total
+wavemode.health = vida
editor.default = [lightgray]
details = Detalhes...
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Sem filtro! Adicione um usando o botão abaixo.
filter.distort = Distorcedor
filter.noise = Geração aleatória
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Medio
filter.oremedian = Minério mediano
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Bloco
filter.option.floor = Chão
filter.option.flooronto = Chão alvo
+filter.option.target = Target
filter.option.wall = Parede
filter.option.ore = Minério
filter.option.floor2 = Chão secundário
@@ -471,15 +477,9 @@ requirement.wave = Alcançar a Horda {0} em {1}
requirement.core = Destruir o núcleo inimigo em {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resumir Zona:\n[lightgray]{0}
bestwave = [lightgray]Melhor: {0}
-launch = Lançar
launch.text = Launch
-launch.title = Lançamento feito com sucesso
-launch.next = [lightgray]Próxima oportunidade na Horda {0}
-launch.unable2 = [scarlet]Impossível lançar.[]
-launch.confirm = Isto vai lançar todos os seus recursos no seu núcleo.\nVoce não será capaz de retornar para esta base.
-launch.skip.confirm = Se você pular a horda agora, você não será capaz de lançar até hordas futuras.
+research.multiplayer = Only the host can research items.
uncover = Descobrir
configure = Configurar carregamento
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, incluindo jogos salvos, mapas, teclas personalizadas e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = Pausado
clear = Limpo
banned = [scarlet]BANIDO
@@ -570,12 +580,14 @@ info.title = [accent]Informação
error.title = [crimson]Ocorreu um Erro.
error.crashtitle = Ocorreu um Erro
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Entrada
stat.output = Saída
stat.booster = Apoio
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Capacidade de Energia
stat.powershot = Energia/tiro
stat.damage = Dano
@@ -594,6 +606,7 @@ stat.powerconnections = Conexões Máximas
stat.poweruse = Uso de energia
stat.powerdamage = Dano/Poder
stat.itemcapacity = Capacidade de Itens
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Geração de poder base
stat.productiontime = Tempo de produção
stat.repairtime = Tempo de reparo total do bloco
@@ -609,10 +622,32 @@ stat.maxconsecutive = Max Consecutive
stat.buildcost = Custo de construção
stat.inaccuracy = Imprecisão
stat.shots = Tiros
-stat.reload = Tiros por segundo
+stat.reload = Tempo de recarga
stat.ammo = Munição
stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
+stat.cooldowntime = Tempo de espera
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Broca melhor necessária.
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}
bar.powerstored = Armazenada: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Saída de energia: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Itens: {0}
bar.capacity = Capacidade: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Progresso da construção
bar.input = Entrada
bar.output = Sainda
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] de dano
bullet.splashdamage = [stat]{0}[lightgray] de dano em área ~[stat] {1}[lightgray] bloco(s)
bullet.incendiary = [stat]Incendiário
@@ -642,12 +680,15 @@ bullet.homing = [stat]Guiado
bullet.shock = [stat]Choque
bullet.frag = [stat]Fragmentação
bullet.knockback = [stat]{0}[lightgray]Impulso
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]Congelamento
bullet.tarred = [stat]Grudento
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição
bullet.reload = [stat]{0}[lightgray]x cadência de tiro
unit.blocks = Blocos
+unit.blockssquared = blocks²
unit.powersecond = unidades de energia por segundo
unit.liquidsecond = líquido segundo
unit.itemssecond = itens por segundo
@@ -670,7 +711,7 @@ category.power = Energia
category.liquids = Líquidos
category.items = Itens
category.crafting = Entrada/Saída
-category.shooting = Atiradores
+category.function = Function
category.optional = Melhoras opcionais
setting.landscape.name = Travar panorama
setting.shadows.name = Sombras
@@ -679,7 +720,6 @@ setting.linear.name = Filtragem linear
setting.hints.name = Dicas
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Pausar construções automaticamente
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Água animada
setting.animatedshields.name = Escudos animados
setting.antialias.name = Filtro suavizante[lightgray] (reinicialização requerida)[]
@@ -702,7 +742,7 @@ setting.difficulty.name = Dificuldade
setting.screenshake.name = Balanço da Tela
setting.effects.name = Efeitos
setting.destroyedblocks.name = Mostrar Blocos Destruídos
-setting.blockstatus.name = Display Block Status
+setting.blockstatus.name = Mostrar a Propriedade dos Blocos
setting.conveyorpathfinding.name = Esteiras Encontram Caminho
setting.sensitivity.name = Sensibilidade do Controle
setting.saveinterval.name = Intervalo de Auto Salvamento
@@ -712,15 +752,14 @@ setting.milliseconds = {0} milissegundos
setting.fullscreen.name = Tela Cheia
setting.borderlesswindow.name = Janela sem borda[lightgray] (Pode precisar reiniciar)
setting.fps.name = Mostrar FPS e Ping
-setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Mostrar teclas de seleção de blocos
+setting.smoothcamera.name = Suavizar movimentos da câmera
setting.vsync.name = VSync
setting.pixelate.name = Pixelizado [lightgray](Pode diminuir a performace)
setting.minimap.name = Mostrar minimapa
setting.coreitems.name = Display Core Items (WIP)
setting.position.name = Mostrar a posição do Jogador
setting.musicvol.name = Volume da Música
-setting.atmosphere.name = Show Planet Atmosphere
+setting.atmosphere.name = Mostrar a atmosfera do planeta
setting.ambientvol.name = Volume do Ambiente
setting.mutemusic.name = Desligar Música
setting.sfxvol.name = Volume de Efeitos
@@ -743,25 +782,25 @@ keybinds.mobile = [scarlet]A maior parte das teclas aqui não são funcionais em
category.general.name = Geral
category.view.name = Ver
category.multiplayer.name = Multijogador
-category.blocks.name = Block Select
+category.blocks.name = Selecionar bloco
command.attack = Atacar
command.rally = Reunir
command.retreat = Recuar
-command.idle = Idle
+command.idle = Ausente
placement.blockselectkeys = \n[lightgray]Tecla: [{0},
-keybind.respawn.name = Respawn
-keybind.control.name = Control Unit
+keybind.respawn.name = Reaparecer
+keybind.control.name = Controlar unidade
keybind.clear_building.name = Limpar construção
keybind.press = Pressione uma tecla...
keybind.press.axis = Pressione um eixo ou tecla...
keybind.screenshot.name = Captura do mapa
keybind.toggle_power_lines.name = Mudar lasers
-keybind.toggle_block_status.name = Toggle Block Statuses
+keybind.toggle_block_status.name = Mostrar a propriedade dos blocos
keybind.move_x.name = Mover no eixo x
keybind.move_y.name = Mover no eixo Y
-keybind.mouse_move.name = Seguir Mouse
-keybind.pan.name = Pan View
-keybind.boost.name = Boost
+keybind.mouse_move.name = Seguir o Cursor
+keybind.pan.name = Câmera livre
+keybind.boost.name = Impulsionar
keybind.schematic_select.name = Selecionar região
keybind.schematic_menu.name = Menu de Esquemas
keybind.schematic_flip_x.name = Girar o Esquema no eixo X
@@ -784,15 +823,15 @@ keybind.block_select_09.name = Categoria/Selecionar bloco 9
keybind.block_select_10.name = Categoria/Selecionar bloco 10
keybind.fullscreen.name = Alterar tela cheia
keybind.select.name = selecionar
-keybind.diagonal_placement.name = Colocação diagonal
+keybind.diagonal_placement.name = Posicionamento Diagonal
keybind.pick.name = Pegar bloco
keybind.break_block.name = Quebrar bloco
keybind.deselect.name = Desselecionar
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
-keybind.command.name = Command
+keybind.pickupCargo.name = Pegar Carga
+keybind.dropCargo.name = Soltar Carga
+keybind.command.name = Comandar
keybind.shoot.name = Atirar
-keybind.zoom.name = Zoom
+keybind.zoom.name = Ampliar
keybind.menu.name = Menu
keybind.pause.name = Pausar
keybind.pause_building.name = Parar/Resumir a construção
@@ -807,7 +846,7 @@ keybind.chat_history_prev.name = Historico do chat anterior
keybind.chat_history_next.name = Historico do próximo chat
keybind.chat_scroll.name = Rolar chat
keybind.drop_unit.name = Soltar unidade
-keybind.zoom_minimap.name = Zoom do minimapa
+keybind.zoom_minimap.name = Ampliar minimapa
mode.help.title = Descrição dos modos
mode.survival.name = Sobrevivência
mode.survival.description = O modo normal. Recursos limitados e hordas automáticas.
@@ -822,10 +861,11 @@ mode.custom = Regras personalizadas
rules.infiniteresources = Recursos infinitos
rules.reactorexplosions = Reatores explodem
+rules.schematic = Schematics Allowed
rules.wavetimer = Tempo de horda
rules.waves = Hordas
rules.attack = Modo de ataque
-rules.buildai = AI Building
+rules.buildai = Habilitar construção da IA
rules.enemyCheat = Recursos de IA Infinitos
rules.blockhealthmultiplier = Multiplicador de vida do bloco
rules.blockdamagemultiplier = Block Damage Multiplier
@@ -836,28 +876,30 @@ rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[lightgray
rules.wavespacing = Espaço de tempo entre hordas:[lightgray] (seg)
rules.buildcostmultiplier = Multiplicador de custo de construção
rules.buildspeedmultiplier = Multiplicador de velocidade de construção
-rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
+rules.deconstructrefundmultiplier = Multiplicador de reembolso de desconstrução
rules.waitForWaveToEnd = Hordas esperam inimigos
rules.dropzoneradius = Raio da zona de spawn:[lightgray] (blocos)
-rules.unitammo = Units Require Ammo
+rules.unitammo = Unidades requerem munição
rules.title.waves = Hordas
rules.title.resourcesbuilding = Recursos e Construções
rules.title.enemy = Inimigos
rules.title.unit = Unidades
rules.title.experimental = Experimental
-rules.title.environment = Environment
+rules.title.environment = Ambiente
rules.lighting = Iluminação
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
+rules.enemyLights = Enemy Lights
+rules.fire = Fogo
+rules.explosions = Dano de explosão de unidades/blocos
rules.ambientlight = Luz ambiente
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.weather = Clima
+rules.weather.frequency = Frequência:
+rules.weather.duration = Duração:
content.item.name = Itens
content.liquid.name = Líquidos
content.unit.name = Unidades
content.block.name = Blocos
+
item.copper.name = Cobre
item.lead.name = Chumbo
item.coal.name = Carvão
@@ -879,23 +921,6 @@ liquid.slag.name = Escória
liquid.oil.name = Petróleo
liquid.cryofluid.name = Fluído Criogênico
-item.explosiveness = [lightgray]Explosibilidade: {0}
-item.flammability = [lightgray]Inflamabilidade: {0}
-item.radioactivity = [lightgray]Radioatividade: {0}
-
-unit.health = [lightgray]Vida: {0}
-unit.speed = [lightgray]Velocidade: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Capacidade de aquecimento: {0}
-liquid.viscosity = [lightgray]Viscosidade: {0}
-liquid.temperature = [lightgray]Temperatura: {0}
-
unit.dagger.name = Adaga
unit.mace.name = Mace
unit.fortress.name = Fortaleza
@@ -930,28 +955,29 @@ unit.reign.name = Reign
unit.vela.name = Vela
unit.corvus.name = Corvus
-block.resupply-point.name = Resupply Point
-block.parallax.name = Parallax
-block.cliff.name = Cliff
+block.resupply-point.name = Ponto de Reabastecimento
+block.parallax.name = Paralaxe
+block.cliff.name = Relevo
block.sand-boulder.name = Pedregulho de areia
block.grass.name = Grama
-block.slag.name = Slag
+block.slag.name = Escória
+block.space.name = Space
block.salt.name = Sal
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = Parede de Sal
block.pebbles.name = Pedrinhas
block.tendrils.name = Gavinhas
block.sand-wall.name = Sand Wall
block.spore-pine.name = Pinheiro de esporo
block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
+block.boulder.name = Rochedo
+block.snow-boulder.name = Monte de neve
block.snow-pine.name = Pinheiro com neve
-block.shale.name = Xisto
-block.shale-boulder.name = Pedra de Xisto
+block.shale.name = Folhelho
+block.shale-boulder.name = Pedra de Folhelho
block.moss.name = Musgo
block.shrubs.name = Arbusto
block.spore-moss.name = Musgo de Esporos
-block.shale-wall.name = Shale Wall
+block.shale-wall.name = Parede de Folhelho
block.scrap-wall.name = Muro de sucata
block.scrap-wall-large.name = Muro grande de sucata
block.scrap-wall-huge.name = Muro enorme de sucata
@@ -961,7 +987,7 @@ block.kiln.name = Forno
block.graphite-press.name = Prensa de grafite
block.multi-press.name = Multi-Prensa
block.constructing = {0}\n[lightgray](Construindo)
-block.spawn.name = Area inimiga
+block.spawn.name = Área inimiga
block.core-shard.name = Fragmento do núcleo
block.core-foundation.name = Fundação do núcleo
block.core-nucleus.name = Centro do núcleo
@@ -978,18 +1004,19 @@ block.snow.name = Neve
block.craters.name = Crateras
block.sand-water.name = Água sobre areia
block.darksand-water.name = Água sobre areia escura
-block.char.name = Char
-block.dacite.name = Dacite
-block.dacite-wall.name = Dacite Wall
-block.ice-snow.name = Gelo de neve
-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.char.name = Cinzas
+block.dacite.name = Dacito
+block.dacite-wall.name = Parede de Dacito
+block.dacite-boulder.name = Dacite Boulder
+block.ice-snow.name = Gelo com Neve
+block.stone-wall.name = Parede de Pedra
+block.ice-wall.name = Parede de Gelo
+block.snow-wall.name = Parede de Neve
+block.dune-wall.name = Duna
block.pine.name = Pinheiro
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
+block.dirt.name = Terra
+block.dirt-wall.name = Parede de Terra
+block.mud.name = Lama
block.white-tree-dead.name = Árvore branca morta
block.white-tree.name = Árvore branca
block.spore-cluster.name = Aglomerado de esporos
@@ -1005,7 +1032,7 @@ block.dark-panel-4.name = Painel escuro 4
block.dark-panel-5.name = Painel escuro 5
block.dark-panel-6.name = Painel escuro 6
block.dark-metal.name = Metal escuro
-block.basalt.name = Basalt
+block.basalt.name = Basalto
block.hotrock.name = Rocha quente
block.magmarock.name = Rocha de magma
block.copper-wall.name = Muro de Cobre
@@ -1019,7 +1046,7 @@ block.phase-wall-large.name = Muralha de Fase
block.thorium-wall.name = Muro de Tório
block.thorium-wall-large.name = Muralha de Tório
block.door.name = Porta
-block.door-large.name = Portão
+block.door-large.name = Porta grande
block.duo.name = Torreta dupla
block.scorch.name = Lança-chamas
block.scatter.name = Dispersão
@@ -1027,7 +1054,7 @@ block.hail.name = Artilharia
block.lancer.name = Lanceiro
block.conveyor.name = Esteira
block.titanium-conveyor.name = Esteira de titânio
-block.plastanium-conveyor.name = Plastanium Conveyor
+block.plastanium-conveyor.name = Esteira de plastânio
block.armored-conveyor.name = Esteira blindada
block.armored-conveyor.description = Move os itens com a mesma velocidade das esteiras de titânio, mas tem mais armadura. Não aceita itens dos lados de nada além de outras esteiras.
block.junction.name = Junção
@@ -1038,8 +1065,8 @@ block.inverted-sorter.name = Ordenador invertido
block.message.name = Mensagem
block.illuminator.name = Iluminador
block.illuminator.description = Uma pequena, compacta e configurável fonte de luz. Precisa de energia para funcionar.
-block.overflow-gate.name = Portão Sobrecarregado
-block.underflow-gate.name = Portão Sobrecarregado invertida
+block.overflow-gate.name = Portão de Fluxo
+block.underflow-gate.name = Portão de Fluxo invertido
block.silicon-smelter.name = Fundidora de silicio
block.phase-weaver.name = Palheta de fase
block.pulverizer.name = Pulverizador
@@ -1075,6 +1102,7 @@ block.power-source.name = Fonte de energia
block.unloader.name = Descarregador
block.vault.name = Cofre
block.wave.name = Onda
+block.tsunami.name = Tsunami
block.swarmer.name = Enxame
block.salvo.name = Salvo
block.ripple.name = Morteiro
@@ -1114,31 +1142,33 @@ block.arc.name = Tesla
block.rtg-generator.name = Gerador GTR
block.spectre.name = Espectro
block.meltdown.name = Fusão
+block.foreshadow.name = Foreshadow
block.container.name = Contâiner
block.launch-pad.name = Plataforma de lançamento
block.launch-pad-large.name = Plataforma de lançamento grande
-block.segment.name = Segment
-block.command-center.name = Command Center
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
-block.additive-reconstructor.name = Additive Reconstructor
-block.multiplicative-reconstructor.name = Multiplicative Reconstructor
-block.exponential-reconstructor.name = Exponential Reconstructor
-block.tetrative-reconstructor.name = Tetrative Reconstructor
-block.payload-conveyor.name = Mass Conveyor
-block.payload-router.name = Payload Router
-block.disassembler.name = Disassembler
-block.silicon-crucible.name = Silicon Crucible
-block.overdrive-dome.name = Overdrive Dome
+block.segment.name = Segmento
+block.command-center.name = Centro de Comando
+block.ground-factory.name = Fábrica de unidades terrestres
+block.air-factory.name = Fábrica de unidades aéreas
+block.naval-factory.name = Fábrica de unidades navais
+block.additive-reconstructor.name = Reconstrutor Aditivo
+block.multiplicative-reconstructor.name = Reconstrutor Multiplicativo
+block.exponential-reconstructor.name = Reconstrutor Exponencial
+block.tetrative-reconstructor.name = Reconstrutor Tetrativo
+block.payload-conveyor.name = Esteira de Carga
+block.payload-router.name = Roteador de Carga
+block.disassembler.name = Desmontador
+block.silicon-crucible.name = Fornalha De Silício
+block.overdrive-dome.name = Domo de Sobrecarga
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
+block.switch.name = Alavanca
+block.micro-processor.name = Micro Processador
+block.logic-processor.name = Processador Lógico
+block.hyper-processor.name = Hiper Processador
+block.logic-display.name = Monitor Lógico
+block.large-logic-display.name = Monitor lógico grande
+block.memory-cell.name = Célula de Memória
+block.memory-bank.name = Memory Bank
team.blue.name = Azul
team.crux.name = Vermelho
@@ -1223,7 +1253,7 @@ block.plastanium-wall-large.description = Um tipo especial de muro que absorve a
block.thorium-wall.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.
block.thorium-wall-large.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.\nOcupa múltiplos blocos.
block.phase-wall.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.
-block.phase-wall-large.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.\nSOcupa múltiplos blocos.
+block.phase-wall-large.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.\nOcupa múltiplos blocos.
block.surge-wall.description = Um bloco defensivo extremamente durável.\nSe carrega com eletricidade no contato com as balas, soltando-s aleatoriamente.
block.surge-wall-large.description = Um bloco defensivo extremamente durável.\nSe carrega com eletricidade no contato com as balas, soltando-s aleatoriamente.\nOcupa multiplos blocos.
block.door.description = Uma pequeda porta. Pode ser aberta e fechada ao tocar.
@@ -1239,8 +1269,8 @@ block.plastanium-conveyor.description = Moves items in batches.\nAccepts items a
block.junction.description = Funciona como uma ponte Para duas esteiras que estejam se cruzando. Util em situações que tenha duas esteiras diferentes carregando materiais diferentes para lugares diferentes.
block.bridge-conveyor.description = Bloco de transporte de itens avancado. Possibilita o transporte de itens acima de 3 blocos de construção ou paredes.
block.phase-conveyor.description = Bloco de transporte de item avançado. Usa energia para teleportar itens a uma esteira de fase sobre uma severa distancia.
-block.sorter.description = [interact]Aperte no bloco para configurar[]
-block.inverted-sorter.description = Processa os itens como um sorteador normal, mas os itens escolhidos sairão pelas laterais ao invés.
+block.sorter.description = Filtra itens passando o selecionado para frente e os outros para os lados.
+block.inverted-sorter.description = Filtra os itens como um ordenador normal, porém, os itens escolhidos sairão pelas laterais.
block.router.description = Aceita itens de uma direção e os divide em 3 direções igualmente. Util para espalhar materiais da fonte para multiplos alvos.
block.distributor.description = Um roteador avançado que espalhas os itens em 7 outras direções igualmente.
block.overflow-gate.description = Uma combinação de roteador e divisor Que apenas manda para a esquerda e Direita se a frente estiver bloqueada.
@@ -1300,6 +1330,6 @@ block.fuse.description = Uma torre grande com curto alcance. Dispara três feixe
block.ripple.description = Uma torre de artilharia extremamente poderosa. Dispara varios tiros aglomerados a uma grande distância nos seus inimigos.
block.cyclone.description = Uma grande torre que dispara balas explosivas que se fragmentam em unidades aéreas e terrestres próximas.
block.spectre.description = Um grande canhão massivo. Dispara grandes tiros perfuradores de blindagem em inimigos aéreos e terrestres.
-block.meltdown.description = Um grande canhão laser massivo. Carrega e dispara um poderoso e persistente feixe nos seus inimigos. Requer uma refrigeração para ser operada.
+block.meltdown.description = Um grande canhão laser massivo. Carrega e dispara um poderoso e persistente feixe nos seus inimigos. Requer um resfriamento para ser operada.
block.repair-point.description = Continuamente repara a unidade danificada mais proxima.
-block.segment.description = Destrói projéteis inimigos. Projéteis de laser não são afetados.
\ No newline at end of file
+block.segment.description = Destrói projéteis inimigos que se aproximam. Feixes não serão detectados.
diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties
index c4b5070b3a..6e08cc7d3f 100644
--- a/core/assets/bundles/bundle_pt_PT.properties
+++ b/core/assets/bundles/bundle_pt_PT.properties
@@ -55,6 +55,7 @@ schematic.saved = Esquema gravado.
schematic.delete.confirm = Este esquema irá ser completamente apagado.
schematic.rename = Renomear Esquema
schematic.info = {0}x{1}, {2} blocos
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Hordas derrotadas:[accent] {0}
stat.enemiesDestroyed = Inimigos Destruídos:[accent] {0}
@@ -100,7 +101,6 @@ done = Feito
feature.unsupported = O teu dispositivos não suporta esta característica.
mods.alphainfo = Lembre-se de que os mods estão em alfa, e [scarlet] pode estar cheio de falhas[].\nReporta qualquer problema que encontres no the Mindustry GitHub ou Discord.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]Mods não encontrados!
mods.guide = Guia de mods
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] para selecionar+copy
pausebuilding = [accent][[{0}][] para pausar construção
resumebuilding = [scarlet][[{0}][] para resumir construção
wave = [accent]Horda {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = Horda em {0}
wave.waveInProgress = [lightgray]Horda Em Progresso
waiting = Aguardando...
waiting.players = Esperando por jogadores...
wave.enemies = [lightgray]{0} inimigos restantes
wave.enemy = [lightgray]{0} inimigo restante
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Carregar\nimagem
saveimage = Gravarr\nimagem
unknown = Desconhecido
@@ -328,6 +331,7 @@ editor.generation = Geração:
editor.ingame = Editar em jogo
editor.publish.workshop = Publicar na oficina
editor.newmap = Novo mapa
+editor.center = Center
workshop = Oficina
waves.title = Hordas
waves.remove = Remover
@@ -416,6 +420,7 @@ filters.empty = [lightgray]Sem filtro! Adicione um usando o botão abaixo.
filter.distort = Distorcedor
filter.noise = Geração aleatória
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Mediano
filter.oremedian = Minério Mediano
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Bloco
filter.option.floor = Chão
filter.option.flooronto = Chão alvo
+filter.option.target = Target
filter.option.wall = Parede
filter.option.ore = Minério
filter.option.floor2 = Chão secundário
@@ -471,15 +477,9 @@ requirement.wave = Ronda alcançada {0} / {1}
requirement.core = Destruir Núcleo Inimigo em {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resumir Zona:\n[lightgray]{0}
bestwave = [lightgray]Melhor: {0}
-launch = Lançar
launch.text = Launch
-launch.title = Lançamento feito com sucesso
-launch.next = [lightgray]Próxima oportunidade na Horda {0}
-launch.unable2 = [scarlet]Impossível lançar.[]
-launch.confirm = Isto vai lançar todos os seus recursos no seu núcleo.\nVoce não será capaz de retornar para esta base.
-launch.skip.confirm = Se você pular a horda agora, você não será capaz de lançar até hordas mais avançadas.
+research.multiplayer = Only the host can research items.
uncover = Descobrir
configure = Configurar carregamento
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar toda a data, Incluindo saves, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' Vai apagar toda a data e sair automaticamente.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = Pausado
clear = Limpar
banned = [scarlet]Banido
@@ -570,12 +580,14 @@ info.title = [accent]Informação
error.title = [crimson]Ocorreu um Erro.
error.crashtitle = Ocorreu um Erro
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Entrada
stat.output = Saida
stat.booster = Booster
stat.tiles = Telhas Requeridas
stat.affinities = Afinidades
-block.unknown = [lightgray]???
stat.powercapacity = Capacidade de Energia
stat.powershot = Energia/tiro
stat.damage = Dano
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Uso de energia
stat.powerdamage = Dano/Poder
stat.itemcapacity = Capacidade de Itens
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Geração de poder base
stat.productiontime = Tempo de produção
stat.repairtime = Tempo de reparo total do bloco
@@ -613,6 +626,28 @@ stat.reload = Tiros por segundo
stat.ammo = Munição
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Broca melhor necessária.
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Energia: {0}
bar.powerstored = Armazenada: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Saída de energia: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Itens: {0}
bar.capacity = Capacidade: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Progresso da construção
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] dano
bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos
bullet.incendiary = [stat]Incendiário
@@ -642,12 +680,15 @@ bullet.homing = [stat]Guiado
bullet.shock = [stat]Choque
bullet.frag = [stat]Fragmentação
bullet.knockback = [stat]{0}[lightgray]Impulso
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]Congelamento
bullet.tarred = [stat]Grudento
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição
bullet.reload = [stat]{0}[lightgray]x cadência de tiro
unit.blocks = Blocos
+unit.blockssquared = blocks²
unit.powersecond = Unidades de energia/segundo
unit.liquidsecond = Unidades de líquido/segundo
unit.itemssecond = itens/segundo
@@ -670,7 +711,7 @@ category.power = Poder
category.liquids = Líquidos
category.items = Itens
category.crafting = Construindo
-category.shooting = Atirando
+category.function = Function
category.optional = Melhoras opcionais
setting.landscape.name = Travar panorama
setting.shadows.name = Sombras
@@ -679,7 +720,6 @@ setting.linear.name = Filtragem linear
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Água animada
setting.animatedshields.name = Escudos animados
setting.antialias.name = Filtro suavizante[lightgray] (reinicialização requerida)[]
@@ -713,7 +753,6 @@ setting.fullscreen.name = Ecrã inteiro
setting.borderlesswindow.name = Janela sem borda[lightgray] (Pode precisar reiniciar)
setting.fps.name = Mostrar FPS
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelizado [lightgray](Pode diminuir a performace)
setting.minimap.name = Mostrar minimapa
@@ -822,6 +861,7 @@ mode.custom = Regras personalizadas
rules.infiniteresources = Recursos infinitos
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Tempo de horda
rules.waves = Hordas
rules.attack = Modo de ataque
@@ -847,6 +887,7 @@ rules.title.unit = Unidades
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Itens
content.liquid.name = Liquidos
content.unit.name = Unidades
content.block.name = Blocos
+
item.copper.name = Cobre
item.lead.name = Chumbo
item.coal.name = Carvão
@@ -879,23 +921,6 @@ liquid.slag.name = Escória
liquid.oil.name = Petróleo
liquid.cryofluid.name = Crio Fluido
-item.explosiveness = [lightgray]Explosibilidade: {0}
-item.flammability = [lightgray]Inflamabilidade: {0}
-item.radioactivity = [lightgray]Radioatividade: {0}
-
-unit.health = [lightgray]Vida: {0}
-unit.speed = [lightgray]Velocidade: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Capacidade de aquecimento: {0}
-liquid.viscosity = [lightgray]Viscosidade: {0}
-liquid.temperature = [lightgray]Temperatura: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortaleza
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Pedregulho de areia
block.grass.name = Grama
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Sal
block.salt-wall.name = Salt Wall
block.pebbles.name = Pedrinhas
@@ -981,6 +1007,7 @@ block.darksand-water.name = Água sobre areia escura
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Gelo de neve
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Criador de energia
block.unloader.name = Descarregador
block.vault.name = Cofre
block.wave.name = Onda
+block.tsunami.name = Tsunami
block.swarmer.name = Enxame
block.salvo.name = Salvo
block.ripple.name = Ondulação
@@ -1114,6 +1142,7 @@ block.arc.name = Arco Elétrico
block.rtg-generator.name = Gerador GTR
block.spectre.name = Espectro
block.meltdown.name = Fusão
+block.foreshadow.name = Foreshadow
block.container.name = Contâiner
block.launch-pad.name = Plataforma de lançamento
block.launch-pad-large.name = Plataforma de lançamento grande
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = Azul
team.crux.name = Vermelho
@@ -1302,4 +1332,4 @@ block.cyclone.description = Uma grande torre de tiro rapido.
block.spectre.description = Uma grande torre que da dois tiros poderosos ao mesmo tempo.
block.meltdown.description = Uma grande torre que atira dois raios poderosos ao mesmo tempo.
block.repair-point.description = Continuamente repara a unidade danificada mais proxima.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties
index aa9fd2f18d..a88caa9aa8 100644
--- a/core/assets/bundles/bundle_ro.properties
+++ b/core/assets/bundles/bundle_ro.properties
@@ -17,11 +17,14 @@ linkfail = Linkul nu a putut fi deschis!\nAdresa URL a fost copiată.
screenshot = Captură de ecran salvată la {0}
screenshot.invalid = Harta e prea mare. Se poate să nu existe suficientă memorie pentru captura de ecran.
gameover = Jocul s-a încheiat
+gameover.disconnect = Deconectare
gameover.pvp = Echipa [accent] {0}[] este câștigătoare!
+gameover.waiting = [accent]Se așteaptă următoarea hartă...
highscore = [accent]Scor maxim nou!
copied = Copiat.
-indev.popup = [accent]v6[] este momentan în [accent]alpha[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este complet neterminată[]\n- Majoritatea [scarlet]AI-ului unităților[] nu funcționează bine\n- Multe unități sunt neterminate\n- Modul campanie nu este terminat \n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[].
+indev.popup = [accent]v6[] este momentan în [accent]beta[].\n[lightgray]Asta înseamnă că:[]\n[scarlet]- Campania este neterminată[]\n- Tot ce vedeți se poate schimba sau poate fi eliminat.\n\nPentru a raporta buguri și crashuri intrați pe [accent]Github[].
indev.notready = Această secțiune a jocului nu este gata încă.
+indev.campaign = [accent]Ai ajuns la finalul campaniei![]\n\nAi mers cât de departe se poate momentan. Călătoria interplanetară va fi adăugată într-un update viitor.
load.sound = Sunete
load.map = Hărți
@@ -57,6 +60,7 @@ schematic.rename = Redenumește Schema
schematic.info = {0}x{1}, {2} blocuri
schematic.disabled = [scarlet]Schemele sunt dezactivate[]\nNu ai voie să folosești scheme pe această [accent]hartă[] sau [accent]server.
+stats = Informații
stat.wave = Valuri Învinse:[accent] {0}
stat.enemiesDestroyed = Inamici Distruși:[accent] {0}
stat.built = Structuri Construite:[accent] {0}
@@ -100,8 +104,7 @@ committingchanges = Se Încarcă Schimbările
done = Gata
feature.unsupported = Dispozitivul tău nu suportă această funcție.
-mods.alphainfo = Modurile sunt încă în alpha și[scarlet] pot avea multe buguri[].\nRaportați orice probleme apărute pe Githubul Mindustry sau pe Discord.
-mods.alpha = [accent](Alpha)
+mods.alphainfo = Modurile sunt încă în alpha și[scarlet] pot avea multe buguri[].\nRaportează orice probleme apărute pe Githubul Mindustry.
mods = Moduri
mods.none = [lightgray]Nu s-au găsit moduri!
mods.guide = Ghid de Modding
@@ -128,11 +131,11 @@ mod.reloadrequired = [scarlet]E Nevoie de o Repornire
mod.import = Importă Mod
mod.import.file = Importă Fișier
mod.import.github = Importă din GitHub
-mod.jarwarn = [scarlet]Modurile în format JAR nu sunt sigure.[]\nAi grijă să importezi acest mod dintr-o sursă de încredere!
-mod.item.remove = Acest obiect este parte din modul [accent] '{0}'[]. Ca să îl poți elimina, dezinstalează acel mod.
+mod.jarwarn = [scarlet]Modurile în format JAR nu sunt sigure.[]\nAi grijă să imporți acest mod dintr-o sursă de încredere!
+mod.item.remove = Acest obiect face parte din modul [accent] '{0}'[]. Ca să îl poți elimina, dezinstalează acel mod.
mod.remove.confirm = Acest mod va fi șters.
mod.author = [lightgray]Autor:[] {0}
-mod.missing = Această salvare conține moduri cărora le-ai făcut update recent sau nu mai sunt instalate. Fișierul poate fi corupt. Sigur vrei să îl încarci?\n[lightgray]Moduri:\n{0}
+mod.missing = Această salvare conține moduri cărora le-ai făcut update recent sau care nu mai sunt instalate. Fișierul poate fi corupt. Sigur vrei să îl încarci?\n[lightgray]Moduri:\n{0}
mod.preview.missing = Înainte să publici acest mod pe Workshop, trebuie să adaugi o imagine pt previzualizare.\nPune o imagine numită[accent] preview.png[] în folderul modului și încearcă din nou.
mod.folder.missing = Doar modurile din câmpul folder pot fi publicate pe Workshop.\nPt a converti orice mod într-un folder, dezarhivează zipul într-un folder și șterge vechiul zip, apoi repornește jocul sau reîncărcă-ți modurile.
mod.scripts.disable = Dispozitivul tău nu suportă moduri cu scripturi. Trebuie să dezactivezi aceste moduri ca să joci jocul.
@@ -173,7 +176,7 @@ server.kicked.gameover = Joc încheiat!
server.kicked.serverRestarting = Acest server se repornește.
server.versions = Versiunea ta:[accent] {0}[]versiunea serverului:[accent] {1}[]
host.info = Butonul [accent]găzduiește[] va găzdui un server pe portul [scarlet]6567[]. \nOrice persoană de pe același port [lightgray]wifi sau rețea locală[] ar trebui să-ți vadă serverul în lista lor de servere.\n\nDacă vrei ca lumea să se poată conecta de oriunde cu IP-ul, este nevoie de [accent]port forwarding[].\n\n[lightgray]Notă: Dacă cineva are probleme în a se conecta la jocul tău LAN, verifică dacă ai lăsat Mindustry să acceseze rețeaua locală în setările de firewall. De menționat este faptul că uneori rețelele publice nu permit descoperirea serverului.
-join.info = Aici poți scrie un [accent]IP de server[] pt a te conecta, a descoperi [accent]rețeaua locală[] sau serverele [accent]globale[] pt a te conecta la ele.\nAtât multiplayerul LAN cât și cel WAN este suportat.\n\n[lightgray]Dacă vrei să te conectezi la cineva cu IP-ul, trebuie să ceri gazdei IP-ul său, care poate fi găsit căutând pe Google "my ip' de pe dispozitivul lor.
+join.info = Aici poți scrie un [accent]IP de server[] pt a te conecta sau pt a descoperi [accent]rețeaua locală[] sau serverele [accent]globale[] la care să te conectezi.\nAtât multiplayerul LAN cât și cel WAN sunt suportate.\n\n[lightgray]Dacă vrei să te conectezi la cineva cu IP-ul, trebuie să ceri gazdei IP-ul său, care poate fi găsit căutând pe Google "my ip" de pe dispozitivul său.
hostserver = Găzduiește Joc Multiplayer
invitefriends = Invită Prieteni
hostserver.mobile = Găzduiește Joc
@@ -190,6 +193,10 @@ servers.local = Servere Locale
servers.remote = Servere de la Distanță
servers.global = Servere ale Comunității
+servers.showhidden = Vezi Serverele Ascunse
+server.shown = Afișate
+server.hidden = Ascunse
+
trace = Urmărește Jucător
trace.playername = Nume jucător: [accent]{0}
trace.ip = IP: [accent]{0}
@@ -268,6 +275,9 @@ cancel = Anulare
openlink = Deschidr Linkul
copylink = Copiază Linkul
back = Înapoi
+crash.export = Exportă Crash Logs
+crash.none = Nu s-au găsit crash logs.
+crash.exported = Crash logs exportate.
data.export = Exportă Date
data.import = Importă Date
data.openfolder = Deschide Folderul cu Date
@@ -284,12 +294,16 @@ cancelbuilding = [accent][[{0}][] pt a curăța planul
selectschematic = [accent][[{0}][] pt selectare+copiere
pausebuilding = [accent][[{0}][] pt a face o pauză de la construit
resumebuilding = [scarlet][[{0}][] pt a continua construitul
+showui = Interfață ascunsă.\nApasă [accent][[{0}][] pt a vedea interfața.
wave = [accent]Valul {0}
+wave.cap = [accent]Valul {0}/{1}
wave.waiting = [lightgray]Val în {0}
wave.waveInProgress = [lightgray]Val în desfășurare
waiting = [lightgray]În așteptare...
waiting.players = Se așteaptă jucătorii...
wave.enemies = [lightgray]Mai sunt {0} inamici
+wave.enemycores = [accent]{0}[lightgray] Nuclee Inamice
+wave.enemycore = [accent]{0}[lightgray] Nucleu Inamic
wave.enemy = [lightgray]Mai e {0} inamic
wave.guardianwarn = Gardianul va veni în [accent]{0}[] valuri.
wave.guardianwarn.one = Gardianul va veni într-[accent]un[] val.
@@ -350,6 +364,7 @@ waves.invalid = Valuri invalide în clipboard.
waves.copied = Valuri copiate.
waves.none = Niciun inamic definit.\nDe reținut că o listă de valuri goală va fi înlocuită automat cu lista de valuri prestabilită.
+#intenționat cu literă mică
wavemode.counts = numere
wavemode.totals = totaluri
wavemode.health = viață
@@ -362,6 +377,8 @@ editor.spawn = Adaugă Unitate
editor.removeunit = Înlătură Unitate
editor.teams = Echipe
editor.errorload = Eroare la încărcarea fișierului.
+memory = Mem: {0}mb
+memory2 = Mem:\n {0}mb +\n {1}mb
editor.errorsave = Eroare la salvarea fișierului.
editor.errorimage = Aceasta este o imagine, nu o hartă.\n\nDacă vrei să imporți o hartă din versiunile 3.5/build 40, folosește butonul 'Importă Hartă Veche' din editor.
editor.errorlegacy = Hartă aceasta este prea veche, și folosește un format învechit care nu mai este suportat.
@@ -420,6 +437,7 @@ filters.empty = [lightgray]Fără filtre! Adaugă unul folosind butonul de mai j
filter.distort = Distorsionare
filter.noise = Zgomot Vizual
filter.enemyspawn = Selectare Punct de Lansare Inamic
+filter.spawnpath = Cale Către Punctul de Lansare
filter.corespawn = Selectare Nucleu
filter.median = Mediană
filter.oremedian = Mediană Minereu
@@ -443,7 +461,8 @@ filter.option.angle = Unghi
filter.option.amount = Cantitate
filter.option.block = Bloc
filter.option.floor = Podea
-filter.option.flooronto = Podea țintă
+filter.option.flooronto = Podea Țintă
+filter.option.target = Țintă
filter.option.wall = Perete
filter.option.ore = Minereu
filter.option.floor2 = Podea Secundară
@@ -460,7 +479,7 @@ load = Încarcă
save = Salvează
fps = FPS: {0}
ping = Ping: {0}ms
-language.restart = Vă rugăm să reporniți jocul pentru că setările de limbă să aibă efect.
+language.restart = Repornește jocul pentru ca setările de limbă să aibă efect.
settings = Setări
tutorial = Tutorial
tutorial.retake = Reia Tutorial
@@ -471,19 +490,23 @@ abandon = Abandonează
abandon.text = Zona aceasta și toate resursele ei vor fi cedate inamicului.
locked = Blocat
complete = [lightgray]Finalizat:
-requirement.wave = Ajungi la valul {0} în {1}
-requirement.core = Distruge Nucleu Inamic în{0}
+requirement.wave = Treci de valul {0} în {1}
+requirement.core = Distruge Nucleul Inamic din {0}
requirement.research = Cercetează {0}
+requirement.produce = Produ {0}
requirement.capture = Capturează {0}
-bestwave = [lightgray]Cel Mai Bun Val: {0}
launch.text = Lansează
-campaign.multiplayer = Când joci muliplayer în campanie, nu poți cerceta noi tehnologii decât folosind materiale din sectoarele [accent]tale[], [scarlet]nu[] din sectorul gazdei jocului, unde te afli acum.\n\nPt a transfera materialele către sectoarele [accent]tale[] în multiplayer, folosește o [accent]platformă de lansare[].
+research.multiplayer = Doar gazda poate cerceta noi tehnologii.
+map.multiplayer = Doar gazda poate vedea harta sectoarelor.
uncover = Descoperă
-configure = Configurează Încărcarea
+configure = Configurează Încărcarea
+
+#Spațiu Necesar
loadout = Încărcare
resources = Resurse
bannedblocks = Blocuri Interzise
addall = Adaugă-le pe toate
+launch.from = Lansează Din: [accent]{0}
launch.destination = Destinație: {0}
configure.invalid = Cantitatea trebuie să fie un număr între 0 și {0}.
zone.unlocked = [lightgray]{0} deblocat(ă).
@@ -510,38 +533,72 @@ weather.rain.name = Ploaie
weather.snow.name = Ninsoare
weather.sandstorm.name = Furtună de nisip
weather.sporestorm.name = Furtună de spori
+weather.fog.name = Ceață
sectors.unexplored = [lightgray]Neexplorat
sectors.resources = Resurse:
sectors.production = Producție:
+sectors.export = Export:
+sectors.time = Timp:
+sectors.threat = Amenințare:
+sectors.wave = Valul:
sectors.stored = Stocat:
sectors.resume = Revino
sectors.launch = Lansare
sectors.select = Selectează
sectors.nonelaunch = [lightgray]nimic (soarele)
+sectors.rename = Redenumește Sectorul
+sectors.enemybase = [scarlet]Bază Inamică
+sectors.vulnerable = [scarlet]Vulnerabil
+sectors.underattack = [scarlet]Sectorul e atacat! [accent]{0}% deteriorat
+sectors.survives = [accent]Supraviețuiește {0} valuri
-sector.groundZero.name = Ground Zero
-sector.craters.name = The Craters
-sector.frozenForest.name = Frozen Forest
-sector.ruinousShores.name = Ruinous Shores
-sector.stainedMountains.name = Stained Mountains
-sector.desolateRift.name = Desolate Rift
-sector.nuclearComplex.name = Nuclear Production Complex
-sector.overgrowth.name = Overgrowth
-sector.tarFields.name = Tar Fields
-sector.saltFlats.name = Salt Flats
-sector.fungalPass.name = Fungal Pass
+sector.curcapture = Sector Capturat
+sector.curlost = Sector Pierdut
+sector.missingresources = [scarlet]Resurse din Nucleu Insuficiente
+sector.attacked = Sectorul [accent]{0}[white] este atacat!
+sector.lost = Ai pierdut sectorul [accent]{0}[white]!
+#spațiul lipsă de mai jos e intenționat
+sector.captured = Ai capturat sectorul [accent]{0}[white]!
+
+threat.low = Scăzută
+threat.medium = Medie
+threat.high = Mare
+threat.extreme = Extremă
+threat.eradication = Eradicare
+
+planets = Planete
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Soare
+
+sector.impact0078.name = Impact 0078
+sector.groundZero.name = Punctul Zero
+sector.craters.name = Craterele
+sector.frozenForest.name = Pădurea Glacială
+sector.ruinousShores.name = Țărmurile Părăsite
+sector.stainedMountains.name = Munții Pătați
+sector.desolateRift.name = Riftul Dezolat
+sector.nuclearComplex.name = Complexul de Producție Nucleară
+sector.overgrowth.name = Supracreșterea
+sector.tarFields.name = Câmpurile cu Păcură
+sector.saltFlats.name = Podișurile Saline
+sector.fungalPass.name = Pasul Fungic
+sector.biomassFacility.name = Facilitatea de Sinteză a Biomasei
+sector.windsweptIslands.name = Insulele Măturate de Vânt
+sector.extractionOutpost.name = Avanpostul de Extracție
+sector.planetaryTerminal.name = Terminalul de Lansare Planetară
sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe.
-sector.frozenForest.description = Chiar și aici, aproape de munți, sperii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare.
-sector.saltFlats.description = La periferia deșertului stau Salt Flats. Puține resurse pot fi găsite în această locație.\n\nInamicul a ridicat un complex-depozit aici. Distruge-le nucleul. Nu lăsa nimic în urmă.
+sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare.
+sector.saltFlats.description = La periferia deșertului stau Podișurile Saline. Puține resurse pot fi găsite în această locație.\n\nInamicul a ridicat un complex-depozit aici. Distruge-le nucleul. Nu lăsa nimic în urmă.
sector.craters.description = Apa s-a acumulat în acest crater, rămășiță a vechilor războaie. Cucerește din nou zona. Adună nisip. Toarnă-l în metasticlă. Pompează apă pt a răci armele și burghiele.
sector.ruinousShores.description = După deșerturi vine țărmul. Odată, locația aceasta a avut un sistem de apărare de coastă. N-a rămas mult din el. Doar structurile de apărare cele mai de bază rămas în picioare, restul fiind redus la fier vechi.\nContinuă expansiunea în afară. Redescoperă tehnologia.
sector.stainedMountains.description = Mai înspre continent sunt munții, încă neatinși de spori.\nExtrage abundentele resurse de titan din zonă. Învață cum să-l folosești.\n\nPrezența inamicului e mai mare aici. Nu le da timp să-și trimită cele mai puternice unități.
-sector.overgrowth.description = Zona asta e plină de buruieni, mai aproape de sursa sporilor.\nInamicul și-a stabilit un adăpost aici. Construiește unități Titan. Distruge-o. Cucerește din nou ce s-a pierdut.
+sector.overgrowth.description = Această zonă este plină de buruieni, mai aproape de sursa sporilor.\nInamicul și-a stabilit un adăpost aici. Construiește unități Mace. Distruge-o. Cucerește din nou ce s-a pierdut.
sector.tarFields.description = O zonă aflată la periferia unei zone de producție petrolieră, între munți și deșert. Una din puținele zone cu resurse utilizabile de țiței.\nDeși abandonată, zona aceasta are niște forțe inamice periculoase înapropiere. Nu le subestima.\n\n[lightgray]Cercetează tehnologia de procesare a petrolului dacă se poate.
sector.desolateRift.description = O zonă extrem de periculoasă. Multe resurse, dar puțin spațiu. Mare risc de distrugere. Pleacă cât mai curând. Nu te lăsa păcălit de timpul mare dintre atacurile inamice.
-sector.nuclearComplex.description = O fostă facilitate pt producerea și procesarea de torium, redusă la ruine.\n[lightgray]Cercetează toriul și multele sale utilizări.\n\nInamicul e prezent aici în mari numere, căutând constând atacatori.
+sector.nuclearComplex.description = O fostă facilitate pt producerea și procesarea de toriu, redusă la ruine.\n[lightgray]Cercetează toriul și multele sale utilizări.\n\nInamicul e prezent aici în mari numere, căutând constând atacatori.
sector.fungalPass.description = O zonă de tranziție dintre munții înalți și zonele joase, pline cu spori. O mică bază de recunoaștere a inamicului este localizată aici.\nDistruge-o.\nFolosește unități Dagger și Crawler. Distruge cele 2 nuclee.
settings.language = Limbă
@@ -558,10 +615,13 @@ settings.clear.confirm = Sigur vrei să ștergi datele?\nCe e făcut nu poate fi
settings.clearall.confirm = [scarlet]Atenție![]\nAsta va șterge toate datele, inclusiv salvări, hărți, deblocări și atribuiri de controale.\nOdată ce apeși 'ok' jocul va șterge toate datele și se va închide automat.
settings.clearsaves.confirm = Sigur vrei să ștergi toate salvările?
settings.clearsaves = Șterge Salvările
+settings.clearresearch = Șterge Tehnologiile Cercetate
+settings.clearresearch.confirm = Sigur vrei să ștergi toate tehnologiile cercetate în campanie?
+settings.clearcampaignsaves = Șterge Salvările din Campanie
+settings.clearcampaignsaves.confirm = Sigur vrei să ștergi toate salvările din campanie?
paused = [accent]< Pauză >
clear = Curăță
banned = [scarlet]Interzis
-unplaceable.sectorcaptured = [scarlet]Ai nevoie de un sector capturat
yes = Da
no = Nu
info.title = Info
@@ -569,25 +629,27 @@ error.title = [scarlet]A apărut o eroare.
error.crashtitle = A apărut o eroare.
unit.nobuild = [scarlet]Unitatea nu poate construi.
lastaccessed = [lightgray]Ultima Accesare: {0}
+block.unknown = [lightgray]???
+
+stat.description = Utilizare
stat.input = Necesită
stat.output = Produce
-stat.booster = Booster
+stat.booster = Îmbunătățiri
stat.tiles = Teren Necesar
stat.affinities = Efecte Teren
-block.unknown = [lightgray]???
stat.powercapacity = Capacitate electrică
stat.powershot = Electricitate/Glonț
stat.damage = Forță
stat.targetsair = Lovește Aeronave
stat.targetsground = Lovește Artilerie
-stat.itemsmoved = Viteza de Mișcare a Materialelor
+stat.itemsmoved = Viteză de Mișcare a Materialelor
stat.launchtime = Timp între Lansări
stat.shootrange = Rază
stat.size = Mărime
-stat.displaysize = Mărimea Monitorului Logic
+stat.displaysize = Mărime Monitor Logic
stat.liquidcapacity = Capacitate Lichid
-stat.powerrange = Raza Electrică
-stat.linkrange = Raza Legăturilor
+stat.powerrange = Rază Electrică
+stat.linkrange = Rază Legături
stat.instructions = Instrucțiuni
stat.powerconnections = Maxim Conexiuni
stat.poweruse = Consum Electricitate
@@ -596,12 +658,14 @@ stat.itemcapacity = Capacitate Materiale
stat.memorycapacity = Capacitate Memorie
stat.basepowergeneration = Generare Electricitate (Bază)
stat.productiontime = Timp Producție
-stat.repairtime = Durata Reparării Blocului
+stat.repairtime = Durată Reparare Bloc
+stat.weapons = Arme
+stat.bullet = Glonț
stat.speedincrease = Creștere Viteză
-stat.range = Rază
+stat.range = Rază
stat.drilltier = Minabile
stat.drillspeed = Viteză Burghiu (Bază)
-stat.boosteffect = Efect de Boost
+stat.boosteffect = Efect de Îmbunătățire
stat.maxunits = Maxim Unități Active
stat.health = Viață
stat.buildtime = Timp Construcție
@@ -611,8 +675,33 @@ stat.inaccuracy = Inacuratețe
stat.shots = Lovituri
stat.reload = Lovituri/Secundă
stat.ammo = Muniție
-stat.shieldhealth = Viața Scutului
+stat.shieldhealth = Viață Scut
stat.cooldowntime = Timp de Reîncărcare
+stat.explosiveness = Explozivitate
+stat.basedeflectchance = Șansă de Reflexie
+stat.lightningchance = Șansă Fulger
+stat.lightningdamage = Forță Fulger
+stat.flammability = Inflamabilitate
+stat.radioactivity = Radioactivitate
+stat.heatcapacity = Capacitate de Căldură
+stat.viscosity = Vâscozitate
+stat.temperature = Temperatură
+stat.speed = Viteză
+stat.buildspeed = Viteză Construcție
+stat.minespeed = Viteză Minare
+stat.minetier = Minabile
+stat.payloadcapacity = Capacitate Încărcătură
+stat.commandlimit = Nr Unități Comandate
+stat.abilities = Abilități
+stat.canboost = Poate Îmbunătăți
+stat.flying = Zboară
+
+ability.forcefield = Câmp de Forță
+ability.repairfield = Câmp de Reparare
+ability.statusfield = Câmp Suprasolicitare Unități
+ability.unitspawn = {0} Fabrici
+ability.shieldregenfield = Câmp de Regenerare a Scutului
+ability.movelightning = Mișcare Fulger
bar.drilltierreq = Burghiu Mai Bun Necesar
bar.noresources = Resurse lipsă
@@ -628,7 +717,7 @@ bar.powerlines = Conexiuni: {0}/{1}
bar.items = Materiale: {0}
bar.capacity = Capacitate: {0}
bar.unitcap = {0} {1}/{2}
-bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled]
+bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unitate dezactivată]
bar.liquid = Lichid
bar.heat = Căldură
bar.power = Electricitate
@@ -641,16 +730,21 @@ units.processorcontrol = [lightgray]Controlat de Procesor
bullet.damage = [stat]{0}[lightgray] forță
bullet.splashdamage = [stat]{0}[lightgray] forță explozivă ~[stat] {1}[lightgray] pătrate
bullet.incendiary = [stat]incendiar
+bullet.sapping = [stat]atragere inamici
bullet.homing = [stat]cu radar
bullet.shock = [stat]șoc
bullet.frag = [stat]fragil
bullet.knockback = [stat]{0} [lightgray]împingere
+bullet.pierce = [stat]{0}[lightgray]x penetrare
+bullet.infinitepierce = [stat]penetrare
+bullet.healpercent = [stat]{0}[lightgray]% reparare
bullet.freezing = [stat]înghețat
bullet.tarred = [stat]lipicios
bullet.multiplier = [stat]{0}[lightgray]x multiplicator muniție
bullet.reload = [stat]{0}[lightgray]x lovituri
unit.blocks = blocuri
+unit.blockssquared = blocuri²
unit.powersecond = electricitate/secundă
unit.liquidsecond = unități lichid/secundă
unit.itemssecond = materiale/secundă
@@ -663,17 +757,18 @@ unit.persecond = /sec
unit.perminute = /min
unit.timesspeed = x viteză
unit.percent = %
-unit.shieldhealth = viața scutului
+unit.shieldhealth = viață scut
unit.items = materiale
unit.thousands = mii
unit.millions = mil
unit.billions = b
+category.purpose = Utilizare
category.general = General
category.power = Electricitate
category.liquids = Lichide
category.items = Materiale
category.crafting = Necesită/Produce
-category.shooting = Lovire
+category.function = Funcționare
category.optional = Îmbunătățiri opționale
setting.landscape.name = Blochează Mod Peisaj
setting.shadows.name = Umbre
@@ -682,8 +777,8 @@ setting.linear.name = Filtrare Liniară
setting.hints.name = Indicii
setting.flow.name = Afișează Rata de Curgere a lichidelor
setting.buildautopause.name = Autopauză de la Construit
-setting.mapcenter.name = Auto Centrează Harta La Jucător
-setting.animatedwater.name = Fluide Animate
+setting.backgroundpause.name = Pune Pauză în Fundal
+setting.animatedwater.name = Suprafețe Animate
setting.animatedshields.name = Scuturi Animate
setting.antialias.name = Antialiasing[lightgray] (necesită repornire)[]
setting.playerindicators.name = Indicatori Jucător
@@ -710,13 +805,11 @@ setting.conveyorpathfinding.name = Găsirea Drumului la Plasarea Benzii
setting.sensitivity.name = Sensibilitatea Controlului
setting.saveinterval.name = Interval de Salvare
setting.seconds = {0} secunde
-setting.blockselecttimeout.name = Selectarea Blocului a Întârziat
setting.milliseconds = {0} millisecunde
setting.fullscreen.name = Ecran Complet
setting.borderlesswindow.name = Fereastră Fără Margine[lightgray] (repornirea poate fi necesară)
setting.fps.name = Vezi FPS & Ping
setting.smoothcamera.name = Cameră Graduală
-setting.blockselectkeys.name = Vezi Detalii Cheie cu Privire la Selectarea Blocurilor
setting.vsync.name = VSync
setting.pixelate.name = Pixelează
setting.minimap.name = Vezi Miniharta
@@ -726,7 +819,7 @@ setting.musicvol.name = Volumul Muzicii
setting.atmosphere.name = Vezi Atmosfera Planetelor
setting.ambientvol.name = Volum Ambiental
setting.mutemusic.name = Muzica pe Mut
-setting.sfxvol.name = Volum SFX
+setting.sfxvol.name = Volum Efecte Sonore
setting.mutesound.name = Sunetul pe Mut
setting.crashreport.name = Trimite Rapoarte de Crash anonime
setting.savecreate.name = Auto-Creează Salvări
@@ -800,6 +893,7 @@ keybind.menu.name = Meniu
keybind.pause.name = Pauză
keybind.pause_building.name = Pauză/Reia Construit
keybind.minimap.name = Minihartă
+keybind.planet_map.name = Harta Planetei
keybind.chat.name = Chat
keybind.player_list.name = Listă Jucători
keybind.console.name = Consolă
@@ -863,6 +957,8 @@ content.item.name = Materiale
content.liquid.name = Lichide
content.unit.name = Unități
content.block.name = Blocuri
+content.sector.name = Sectoare
+
item.copper.name = Cupru
item.lead.name = Plumb
item.coal.name = Cărbune
@@ -884,23 +980,6 @@ liquid.slag.name = Zgură
liquid.oil.name = Petrol
liquid.cryofluid.name = Criofluid
-item.explosiveness = [lightgray]Explozivitate: {0}%
-item.flammability = [lightgray]Inflamabilitate: {0}%
-item.radioactivity = [lightgray]Radioactivitate: {0}%
-
-unit.health = [lightgray]Viață: {0}
-unit.speed = [lightgray]Viteză: {0}
-unit.weapon = [lightgray]Armă: {0}
-unit.itemcapacity = [lightgray]Capacitatea de Material: {0}
-unit.minespeed = [lightgray]Viteza de Minare: {0}%
-unit.minepower = [lightgray]Puterea Minării: {0}
-unit.ability = [lightgray]Abilitate: {0}
-unit.buildspeed = [lightgray]Viteza de Construcție: {0}%
-
-liquid.heatcapacity = [lightgray]Capacitatea de Căldură: {0}
-liquid.viscosity = [lightgray]Vâscozitatea: {0}
-liquid.temperature = [lightgray]Temperatura: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -986,6 +1065,7 @@ block.sand-water.name = Apă cu Nisip
block.darksand-water.name = Apă cu Nisip Negru
block.char.name = Turbă
block.dacite.name = Dacit
+block.dacite-boulder.name = Bolovan de Dacit
block.dacite-wall.name = Perete de Dacit
block.ice-snow.name = Gheață Înzăpezită
block.stone-wall.name = Perete de Piatră
@@ -1035,15 +1115,17 @@ block.conveyor.name = Bandă
block.titanium-conveyor.name = Bandă de Titan
block.plastanium-conveyor.name = Bandă de Plastaniu
block.armored-conveyor.name = Bandă Armată
-block.armored-conveyor.description = Cară materialele la aceeași viteză ca benzile de titan, dar posedă o armură. Nu acceptă materiale de pe lateral decât de la alte benzi armate.
block.junction.name = Intersecție
block.router.name = Router
block.distributor.name = Distributor
+#experimental, pot fi șterse în viitor
+block.block-forge.name = Forjă de Blocuri
+block.block-loader.name = Încărcător de Blocuri
+block.block-unloader.name = Descărcător de Blocuri
block.sorter.name = Sortator
block.inverted-sorter.name = Sortator Invers
block.message.name = Mesaj
block.illuminator.name = Iluminator
-block.illuminator.description = O sursă de lumină mică, compactă, configurabilă. Necesită electricitate pt a funcționa.
block.overflow-gate.name = Poartă de Revărsare
block.underflow-gate.name = Poartă de Subversare
block.silicon-smelter.name = Topitor de Silicon
@@ -1139,11 +1221,12 @@ block.payload-router.name = Router în Masă
block.disassembler.name = Dezasamblator
block.silicon-crucible.name = Creuzet de Silicon
block.overdrive-dome.name = Dom de Suprasolicitare
+block.interplanetary-accelerator.name = Accelerator Interplanetar
block.switch.name = Întrerupător
block.micro-processor.name = Microprocesor
block.logic-processor.name = Procesor Logic
-block.hyper-processor.name = Hyperprocesor
+block.hyper-processor.name = Hiperprocesor
block.logic-display.name = Monitor Logic
block.large-logic-display.name = Monitor Logic Mare
block.memory-cell.name = Celulă de Memorie
@@ -1153,162 +1236,246 @@ team.blue.name = albastră
team.crux.name = roșie
team.sharded.name = portocalie
team.orange.name = portocalie
-team.derelict.name = abandonat
+team.derelict.name = abandonată
team.green.name = verde
team.purple.name = mov
-tutorial.next = [lightgray]
-tutorial.intro = Bun venit în[scarlet] Tutorialul Mindustry.[]\nFolosește[accent] [[WASD][] ca să te miști.\n[accent]Cu rotița[] poți face harta mai mare sau mai mică.\nÎncepe prin[accent] a mina cupru[]. Apropie-te de el, Apoi apasă pe un minereu de cupru de lângă nucleul tău.\n\n[accent]{0}/{1} cupru
-tutorial.intro.mobile = Bun venit în[scarlet] Tutorialul Mindustry.[]\nGlisează pe ecran pt a te mișca.\n[accent]Trage cu 2 degete[] pt face harta mai mare sau mai mică.\nÎncepe prin[accent] a mina cupru[]. Apropie-te de el, Apoi apasă pe un minereu de cupru de lângă nucleul tău.\n\n[accent]{0}/{1} cupru
-tutorial.drill = Mineritul manual este ineficient.\n[accent]Burghiele[] pot mina automat.\nDă click pe tabul burghie din colțul din dreapta-jos.\nSelectează[accent] burghiul mecanic[]. Plasează-l pe un minereu de cupru dând click.\nPoți selecta burghiul și apăsând [accent][[2][] apoi rapid [accent][[1][], indiferent de ce tab este deschis.\n[accent]Click-dreapta[] ca să te oprești din a construi.
-tutorial.drill.mobile = Mineritul manual este ineficient.\n[accent]Burghiele[] pot mina automat.\nDă click pe tabul burghie din colțul din dreapta-jos.\nSelectează[accent] burghiul mecanic[]. Plasează-l pe un minereu de cupru dând click, apoi apasă pe[accent] bifa[] de mai jos pt a-ți confirma selecția.\nApasă pe[accent] butonul X[] pt a anula plasarea.
-tutorial.blockinfo = Fiecare bloc are statistici diferite. Fiecare burghiu poate mina minereuri diferite.\nPt a verifica informațiile despre un bloc,[accent] dă click pe butonul "?" care apare când blocul este selectat din meniu.[]\n\n[accent]Accesează informații despre Burghiul Mecanic.[]
-tutorial.conveyor = [accent]Benzile[] se folosesc pt a transporta materiale la nucleu.\nConstruiește o bandă rulantă de la burghiu către nucleu.\n[accent]Ține apăsat pe mouse pt a desena o linie.[]\nȚine[accent] CTRL[] în timp se plasezi o line pt a o plasa diagonal.\nFolosește rotița pt a roti blocurile înainte să le plasezi.\n[accent]Plasează 2 benzi, apoi livrează un material la nucleu.
-tutorial.conveyor.mobile = [accent]Benzile[] se folosesc pt a transporta materiale la nucleu.\nConstruiește o bandă rulantă de la burghiu către nucleu.\n[accent] Construiește o linie ținând degetul pe ecran câteva secunde și apoi[] trage într-o direcție.\n\n[accent]Plasează 2 benzi, apoi livrează un material la nucleu.
-tutorial.turret = Odată ce un material intră în nucleu, poate fi folosit pt a construi.\nDe reținut că nu toate materialele pot fi folosite pt construit.\nMaterialele care nu sunt folosite pt construit, cum ar fi[accent] cărbunele[] sau[accent] fierul vechi[], nu pot fi puse în nucleu.\nTrebuie să construiești structuri defensive ca să te aperi de[lightgray] inamici[].\nConstruiește [accent]o armă duo[] lângă baza ta.
-tutorial.drillturret = Armele Duo au nevoie de[accent] muniție de cupru[] pt a trage.\nPlasează un burghiu lângă armă.\nConstruiește o bandă către armă pt a o alimenta cu muniție de cupru.\n\n[accent]Muniție livrată: 0/1
-tutorial.pause = În timpul luptei, poți[accent] da pauză la joc.[]\nPoți planifica construcții în timpul pauzei.\n\n[accent]Apasă pe space pt a da pauză.
-tutorial.pause.mobile = În timpul luptei, poți[accent] da pauză la joc.[]\nPoți planifica construcții în timpul pauzei.\n\n[accent]Apasă butonul din colțul din stânga sus pt a da pauză.
-tutorial.unpause = Acum apasă space din nou pt a continua.
-tutorial.unpause.mobile = Acum apasă-l din nou pt a continua.
-tutorial.breaking = Uneori, blocurile trebuie distruse.\n[accent]Ține apăsat pe click dreapta[] pt a distruge toate blocurile dintr-o selecție.[]\n\n[accent]Distruge toate blocurile de fier vechi din stânga nucleului.
-tutorial.breaking.mobile = Uneori, blocurile trebuie distruse.\n[accent]Selectează modul deconstrucție[], aopi dă click pe un bloc pt a-l distruge.\nDistruge o zonă ținând apăsat cu degetul pt câteva secunde[] și apoi trăgând într-o direcție.\nApasă bifa de mai jos pt a confirma distrugerea.\n\n[accent]Distruge toate blocurile de fier vechi din stânga nucleului.
-tutorial.withdraw = Câteodată a lua materiale direct din blocuri este necesar.\nPt a face asta, [accent]dă click pe un bloc[] cu materiale în el, apoi [accent]dă click pe materialul[] din inventar.\nMai multe materiale pot fi luate [accent]făcând click și ținând apăsat[].\n\n[accent]Ia niște cupru din nucleu.[]
-tutorial.deposit = Depozitează materiale înapoi în blocuri trăgând din nava ta către blocul de destinație.\n\n[accent]Depozitează cuprul înapoi în nucleu.[]
-tutorial.waves = [lightgray]Inamicul[] se apropie.\n\nApără nucleul timp de 2 valuri.[accent] Click[] pt a trage cu arma.\nConstruiește mai multe arme și burghie. Minează mai mult cupru.
-tutorial.waves.mobile = [lightgray]Inamicul[] se apropie.\n\nApără nucleul timp de 2 valuri. Nava ta va trage automat către inamici.\nConstruiește mai multe arme și burghie. Minează mai mult cupru.
-tutorial.launch = Odată ce ajungi la un anumit val, poți [accent]lansa nucleul[], lăsându-ți apărările în urmă și[accent] obținând toate resursele din nucleu.[]\nResursele obținute pot fi apoi folosite pt a cerceta noi tehnologii.\n\n[accent]Apasă butonul de lansare.
+# A NU SE TRADUCE! NU SUNT GATA!
+hint.skip = Skip
+hint.desktopMove = Use [accent][[WASD][] to move.
+hint.zoom = [accent]Scroll[] to zoom in or out.
+hint.mine = Move near the \uf8c4 copper ore and [accent]tap[] it to mine manually.
+hint.desktopShoot = [accent][[Left-click][] to shoot.
+hint.depositItems = To transfer items, drag from your ship to the core.
+hint.respawn = To respawn as a ship, press [accent][[V][].
+hint.respawn.mobile = You have switched control a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
+hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
+hint.placeDrill = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and click on a copper patch to place it.
+hint.placeDrill.mobile = Select the \ue85e[accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and tap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
+hint.placeConveyor = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
+hint.placeConveyor.mobile = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nHold down your finger for a second and drag to place multiple conveyors.
+hint.placeTurret = Place \uf861 [accent]Turrets[] to defend your base from enemies.\n\nTurrets require ammo - in this case, \uf838copper.\nUse conveyors and drills to supply them.
+hint.breaking = [accent]Right-click[] and drag to break blocks.
+hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
+hint.research = Use the \ue875 [accent]Research[] button to research new technology.
+hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
+hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
+hint.unitControl.mobile = [accent][Double-tap[] to control friendly units or turrets.
+hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
+hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
+hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
+hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
+hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
+hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
+hint.command = Press [accent][[G][] to command nearby units into formation.
+hint.command.mobile = [accent][[Double-tap][] your unit to command nearby units into formation.
+hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
+hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
+hint.payloadDrop = Press [accent]][] to drop a payload.
+hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
+hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
-item.copper.description = Materialul structural cel mai de bază. Folosit în mod extensiv în toate tipurile de blocuri.
-item.lead.description = Un material de bază. Folosit în mod extensiv în electronice și blocuri transportoare de lichid.
-item.metaglass.description = Un compus de sticlă super rezistent. Folosit în mod extensiv pt distribuirea și stocarea de lichide.
-item.graphite.description = Carbon mineralizat, folosit pt muniție și componente electrice.
-item.sand.description = Un material des întâlnit care se folosește extensiv în topitorii, în special pt aliaje.
-item.coal.description = Materie vegetală fosilizată, formată cu mult înainte de evenimentul însămânțării. Folosit extensiv ca combustibil și pt producerea de resurse.
-item.titanium.description = Un metal rar și super ușor folosit extensiv pt transportul lichidelor, burghie și aeronautică.
-item.thorium.description = Un metal dens, radioactiv, folosit ca suport structural și combustibil nuclear.
-item.scrap.description = Rămășițe ale structurilor și unităților vechi. Conține urme ale multor metale diferite.
-item.silicon.description = Un semiconductor extrem de folositor. Aplicații în energia solară, electronice complexe și muniție cu radar.
-item.plastanium.description = Un material ușor, flexibil folosit în aeronautica avansată și muniție fragilă.
-item.phase-fabric.description = O substanță cu greutate aproape de 0 folosită în electronica avansată și tehnologia de autoreparare.
-item.surge-alloy.description = Un aliaj avansat cu proprietăți electrice unice.
-item.spore-pod.description = O păstaie de spori, sintetizați din concentrațiile atmosferice pt utilizări industriale. Folosit pt a fi convertit în petrol, explozibili și combustibil.
-item.blast-compound.description = Un compus instabil folosit în bombe și explozibili. Sintetizat din păstăile de spori și alte materiale volatile. Folosirea ca combustibil nu e recomandată.
-item.pyratite.description = O substanță extrem de inflamabilă folosită în armele incendiare.
-liquid.water.description = Cel mai util lichid. Folosit deseori pt răcirea mașinăriilor și procesarea deșeurilor.
-liquid.slag.description = Diferite tipuri de metal topit amestacate laolaltă. Poate fi separat în materialele constituente, sau pulverizat înspre unitățile inamice ca armă.
-liquid.oil.description = Un lichid folosit în producerea de materiale avansate. Poate fi convertit în cărbune pt combustibil, sau pulverizat și ars ca armă.
-liquid.cryofluid.description = Un lichid inert, non coroziv creat din apă și titan. Are o capacitate de absorbție a căldurii mare. Folosit în mod extensiv ca răcitor.
+item.copper.description = Folosit în tot felul de construcții și muniție.
+item.copper.details = Cupru. Metal anormal de abundent pe Serpulo. Structural slab dacă nu este consolidat.
+item.lead.description = Folosit în transportarea lichidelor și în electronică.
+item.lead.details = Dens. Inert. Folosit extensiv în baterii.\nObservație: Probabil toxic pt formele de viață biologice. Nu că ar mai fi rămas prea multe aici.
+item.metaglass.description = Folosită pt distribuirea și stocarea de lichide.
+item.graphite.description = Folosit pt componente electrice și alimentarea armelor cu muniție.
+item.sand.description = Folosit pt producție sau alte materiale rafinate.
+item.coal.description = Folosit extensiv ca combustibil și pt producerea de materiale rafinate.
+item.coal.details = Pare să fie materie vegetală fosilizată, formată cu mult înainte de evenimentul însămânțării.
+item.titanium.description = Folosit pt structuri transportatoare de lichid, burghie și aeronautică.
+item.thorium.description = Folosit în structuri durabile și combustibil nuclear.
+item.scrap.description = Folosit in topitoare și pulverizatoare pt a fi rafinat în alte materiale.
+item.scrap.details = Rămășițe ale structurilor și unităților vechi..
+item.silicon.description = Folosit în producerea energiei solare, electronice complexe și muniție cu radar pt armament.
+item.plastanium.description = Folosit pt unitățile militare avansate, ca izolator electric și muniție fragilă.
+item.phase-fabric.description = Folosită în electronica avansată și tehnologia de autoreparare.
+item.surge-alloy.description = Folosit în electronica avansată și structuri defensive reactive.
+item.spore-pod.description = Folosită pt a fi convertită în petrol, explozibili și combustibil.
+item.spore-pod.details = Spori. Probabil o formă de viață sintetică. Emite gaze toxice altor forme de viață biologică. Nu că ar mai fi rămas prea multe aici.
+item.blast-compound.description = Folosit în bombe și muniție explozibilă.
+item.pyratite.description = Folosită în armele incendiare și generatoare pe bază de procese de combustie.
+liquid.water.description = Folosită pt răcirea mașinăriilor și procesarea deșeurilor.
+liquid.slag.description = Rafinată în separatoare înapoi în materialele constituente, sau pulverizată înspre unitățile inamice ca armă.
+liquid.oil.description = Folosit în producerea avansată de materialet și ca muniție incendiară.
+liquid.cryofluid.description = Folosit ca răcitor în reactoare, arme și fabrici.
+
+block.resupply-point.description = Realimentează unitățile din apropiere cu muniție de cupru. Nu este compatibil cu unitățile care se încarcă din baterii.
+block.armored-conveyor.description = Transportă materialele înainte. Nu acceptă materiale de pe lateral decât de la alte benzi.
+block.illuminator.description = Emite lumină.
block.message.description = Păstrează un mesaj. Folosit pt comunicarea dintre aliați.
-block.graphite-press.description = Compresează bucăți de cărbune în plăci de grafit pur.
-block.multi-press.description = O versiune mai bună a presei de grafit. Folosește apă și electricitate pt a procesa cărbunele rapid și eficient.
-block.silicon-smelter.description = Transformă nisipul și cărbunele pur. Produce silicon.
-block.kiln.description = Toarnă nisip și plumb în compusul numit metasticlă. Necesită puțină electricitate pt pornire.
+block.graphite-press.description = Compresează cărbunele în grafit.
+block.multi-press.description = Compresează cărbunele în grafit. Are nevoie de apă ca răcitor.
+block.silicon-smelter.description = Rafinează silicon din nisip și cărbune.
+block.kiln.description = Toarnă nisipul și plumbul în metasticlă.
block.plastanium-compressor.description = Produce plastaniu din petrol și titan.
-block.phase-weaver.description = Sintetizează fibră-fază din toriu radioactiv și nisip. Necesită electricitate pt a funcționa.
+block.phase-weaver.description = Sintetizează fibră-fază din toriu și nisip.
block.alloy-smelter.description = Combină titan, plumb, silicon și cupru pt a produce supra aliaj.
-block.cryofluid-mixer.description = Amestecă apă și pudră fină de titan în criofluid. Esențial pt folosirea în reactoarele de toriu.
-block.blast-mixer.description = Zdrobește și amestecă gramezi de spori cu piratită pt a produce un compus explozibil.
-block.pyratite-mixer.description = Amestecă niște cărbune, plumb și nisip în inflamabila piratită.
-block.melter.description = Topește fierul vechi în zgură pt procesare ulterioară sau folosire în armele Wave.
-block.separator.description = Separă zgura în componentele sale minerale. Furnizează rezultatul răcit.
-block.spore-press.description = Compresează păstăi de spori sub presiuni extreme pt a sintetiza petrol.
+block.cryofluid-mixer.description = Amestecă apă și pudră fină de titan pt a produce criofluid.
+block.blast-mixer.description = Produce un compus explozibil din piratită și păstăi de spori.
+block.pyratite-mixer.description = Amestecă plumb, cărbune și nisip în piratită.
+block.melter.description = Topește fierul vechi în zgură.
+block.separator.description = Separă zgura în componentele sale minerale.
+block.spore-press.description = Compresează păstăile de spori în petrol.
block.pulverizer.description = Zdrobește fierul vechi în nisip fin.
-block.coal-centrifuge.description = Solidifică petrolul în bucăți de cărbune.
-block.incinerator.description = Vaporizează orice exces de material sau lichid primește.
+block.coal-centrifuge.description = Transformă petrolul în cărbune.
+block.incinerator.description = Vaporizează orice material sau lichid primește.
block.power-void.description = Consumă toată electricitatea primită. Doar în modul sandbox.
block.power-source.description = Generează electricitate infinită. Doar în modul sandbox.
block.item-source.description = Generează materiale la infinit. Doar în modul sandbox.
block.item-void.description = Distruge orice material. Doar în modul sandbox.
block.liquid-source.description = Generează lichide la infinit. Doar în modul sandbox.
block.liquid-void.description = Distruge orice lichid. Doar în modul sandbox.
-block.copper-wall.description = Un perete defensiv ieftin.\nUtil pt a proteja nucleul și armele în primele valuri.
-block.copper-wall-large.description = Un perete defensiv ieftin.\nUtil pt a proteja nucleul și armele în primele valuri.\nSe întinde pe mai multe pătrate.
-block.titanium-wall.description = Un perete defensiv de rezistență moderată.\nFurnizează protecție moderată împotriva inamicilor.
-block.titanium-wall-large.description = Un perete defensiv de rezistență moderată.\nFurnizează protecție moderată împotriva inamicilor. \nSe întinde pe mai multe pătrate.
-block.plastanium-wall.description = Un tip special de perete care absoarbe laserele electrice și blochează conectarea automată a nodurilor electrice.
-block.plastanium-wall-large.description = Un tip special de perete care absoarbe laserele electrice și blochează conectarea automată a nodurilor electrice.\nSe întinde pe mai multe pătrate.
-block.thorium-wall.description = Un perete defenziv puternic. \nProtecție decentă împotriva inamicilor.
-block.thorium-wall-large.description = Un perete defenziv puternic. \nProtecție decentă împotriva inamicilor.\nSe întinde pe mai multe pătrate.
-block.phase-wall.description = Un perete învelit într-un material reflexiv special bazat pe fibra-fază. Reflectă majoritatea gloanțelor la impact.
-block.phase-wall-large.description = Un perete învelit într-un material reflexiv special bazat pe fibra-fază. Reflectă majoritatea gloanțelor la impact.\nSe întinde pe mai multe pătrate.
-block.surge-wall.description = Un perete defensiv extrem de durabil.\nStrânge electricitate statică la contactul cu gloanțele, lansând-o la întâmplare.
-block.surge-wall-large.description = Un perete defensiv extrem de durabil.\nStrânge electricitate statică la contactul cu gloanțele, lansând-o la întâmplare.\nSe întinde pe mai multe pătrate.
-block.door.description = O ușă mică. Poate fi deschisă sau închisă dând click.
-block.door-large.description = O ușă mare. Poate fi deschisă sau închisă dând click.\nSe întinde pe mai multe pătrate.
-block.mender.description = Repară periodic blocurile din vecinătate. Menține apărările în stare bună între valuri.\nPoate folosi silicon pt un boost al razei de acțiune și al eficienței.
-block.mend-projector.description = O versiune mai bună a reparatorului. Repară periodic blocurile din vecinătate. \nPoate folosi fibră-fază pt un boost al razei de acțiune și al eficienței.
-block.overdrive-projector.description = Grăbește blocurile din apropiere.\nPoate folosi fibră-fază pt un boost al razei de acțiune și al eficienței.
-block.force-projector.description = Creează un câmp de forță hexagonal în jurul său, protejând blocurile și unitățile din interior de deteriorare.\nSe supraîncălzește dacă este prea deteriorat. Poate folosi răcitor pt a preveni supraîncălzirea pt a preveni supraîncălzirea. Fibra-fază poate fi folosită pt a crește mărimea scutului.
-block.shock-mine.description = Rănește inamicii care calcă pe ea. Aproape invizibilă pt inamic.
-block.conveyor.description = Bloc de transport al materialelor. Împinge materialele în față și le depozitează automat în blocuri. Poate fi rotită.
-block.titanium-conveyor.description = Bloc avansat de transport al materialelor. Împinge materialele mai rapid decât blocurile standard.
-block.plastanium-conveyor.description = Împingee grămezi de materiale.\nAcceptă materiale din spate, și le descarcă în 3 direcții în față.\nNecesită mai multe puncte de încărcare și descărcare pt a transporta nr maxim de materiale/secundă.
-block.junction.description = Acționează ca un pod pt două benzi care se intersectează. Util în situații în care se intersectează 2 benzi cărând diverse materiale în diferite locații.
-block.bridge-conveyor.description = Bloc avansat de transport al materialelor. Permite transportul materialelor peste orice teren sau clădire, până la 3 pătrate distanță.
-block.phase-conveyor.description = Bloc avansat de transport al materialelor. Folosește electricitate pt a teleporta materialele la o altă bandă de fază peste mai multe pătrate.
-block.sorter.description = Sortează materialele. Dacă un material se potrivește selecției, este lăsat să treacă. Altfel, materialul este transportat la stânga sau la dreapta.
-block.inverted-sorter.description = Procesează materialele ca un sortator standard, dar materialele selectate sunt transportate la stânga sau la dreapta.
-block.router.description = Acceptă materiale, apoi le distribuie în alte 3 direcții în mod egal. Util pt a împărți materialele de la o sursă către mai multe destinații.\n\n[scarlet]Nu folosi niciodată pt a introduce materiale în blocuri, căci vor fi blocate de produșii blocurilor.[]
-block.distributor.description = Un router avansat. Împarte materialele în alte 7 direcții în mod egal.
-block.overflow-gate.description = Transportă materialele doar la stânga și dreapta dacă drumul din față este blocat.
-block.underflow-gate.description = Opusul porții de revărsare. Transportă materialele în față dacă benzile din stânga și dreapta sunt blocate.
-block.mass-driver.description = Cel mai bun bloc de transport al materialelor. Adună mai multe materiale și apoi le lansează până la un alt distributor în masă pe o rază mare. Necesită electricitate pt a opera.
-block.mechanical-pump.description = O pompă ieftină care pompează puțin, dar nu consumă electricitate.
-block.rotary-pump.description = O pompă avansată. Pompează mai mult lichid dar consumă electricitate.
-block.thermal-pump.description = Cea mai bună pompă.
-block.conduit.description = Un bloc de transport al lichidelor. Împinge lichidele în față. Folosit cu pompe și alte conducte.
-block.pulse-conduit.description = Un bloc avansat de transport al lichidelor. Transportă lichidele mai rapid și stochează mai mult decât conductele standard.
-block.plated-conduit.description = Transportă lichidele lafel de rapid precum conductele cu puls, dar este mai rezistentă. Nu acceptă fluide din lateral de la altceva în afară de conducte.\nLichidul nu se varsă la exterior.
-block.liquid-router.description = Acceptă lichide dintr-o direcție și le distribuie în alte 3 direcții în mod egal. Poate stoca o anumită cantitate de lichid. Folositor pt a distribui lichidele dintr-o sursă către mai multe destinații.
-block.liquid-tank.description = Stochează o mare cantitate de lichid. Util pt depozita lichide pt situațiile în care cererea de materiale nu e constantă sau ca extra securitate pt răcirea blocurilor vitale.
-block.liquid-junction.description = Acționează ca un pod pt două conducte care se intersectează. Util în situația în care se intersectează 2 conducte diferite ce cară divesre lichide către diverse locații.
-block.bridge-conduit.description = Un bloc avansat de transport al lichidelor. Permite transportul lichidelor peste orice tip teren sau bloc, până la 3 pătrate distanță.
-block.phase-conduit.description = Un bloc avansat de transport al lichidelor. Folosește electricitate pt a teleporta lichidele către o altă conductă de fază la o mare distanță.
+block.copper-wall.description = Protejează clădirile de proiectilele inamice.
+block.copper-wall-large.description = Protejează clădirile de proiectilele inamice.
+block.titanium-wall.description = Protejează clădirile de proiectilele inamice.
+block.titanium-wall-large.description = Protejează clădirile de proiectilele inamice.
+block.plastanium-wall.description = Protejează clădirile de proiectilele inamice. Absoarbe laserele electrice. Blochează conectarea automată a nodurilor electrice.
+block.plastanium-wall-large.description = Protejează clădirile de proiectilele inamice. Absoarbe laserele electrice. Blochează conectarea automată a nodurilor electrice.
+block.thorium-wall.description = Protejează clădirile de proiectilele inamice.
+block.thorium-wall-large.description = Protejează clădirile de proiectilele inamice.
+block.phase-wall.description = Protejează clădirile de proiectilele inamice, reflectând majoritatea gloanțelor la impact.
+block.phase-wall-large.description = Protejează clădirile de proiectilele inamice, reflectând majoritatea gloanțelor la impact.
+block.surge-wall.description = Protejează clădirile de proiectilele inamice, lansând periodic lasere electrice la contactul cu gloanțele.
+block.surge-wall-large.description = Protejează clădirile de proiectilele inamice, lansând periodic lasere electrice la contactul cu gloanțele.
+block.door.description = Un perete care poate fi deschis sau închis.
+block.door-large.description = Un perete care poate fi deschis sau închis.
+block.mender.description = Repară periodic blocurile din vecinătate. \nPoate folosi silicon pt a îmbunătăți raza de acțiune și eficiența.
+block.mend-projector.description = Repară blocurile din vecinătate. \nPoate folosi fibră-fază pt a îmbunătăți raza de acțiune și eficiența.
+block.overdrive-projector.description = Grăbește blocurile din apropiere.\nPoate folosi fibră-fază a îmbunătăți raza de acțiune și eficiența.
+block.force-projector.description = Crează un câmp hexagonal de forță în jurul său, protejând blocurile și unitățile din interior de deteriorare. Se supraîncălzește dacă este prea deteriorat. Poate folosi răcitor pt a preveni supraîncălzirea. Fibra-fază poate fi folosită pt a crește mărimea scutului.
+block.shock-mine.description = Lansează lasere electrice la contactul cu inamicul.
+block.conveyor.description = Transportă materialele înainte.
+block.titanium-conveyor.description = Transportă materialele înainte. Mai rapidă decât benzile standard.
+block.plastanium-conveyor.description = Transportă grămezi de materialele înainte.\nAcceptă materiale din spate, și le descarcă în 3 direcții în față.\nNecesită mai multe puncte de încărcare și descărcare pt a transporta nr maxim de materiale/secundă.
+block.junction.description = Acționează ca un pod pt două benzi care se intersectează.
+block.bridge-conveyor.description = Transportă materiale peste orice teren sau clădire.
+block.phase-conveyor.description = Transportă instant materiale peste orice teren sau clădire. Poate fi mai lung decât podul de bandă, dar necesită electricitate.
+block.sorter.description = Dacă un material se potrivește selecției, este lăsat să treacă. Altfel, materialul este transportat la stânga sau la dreapta.
+block.inverted-sorter.description = Similar sortatorului standard, dar materialul selectat este transportat la stânga sau la dreapta.
+block.router.description = Distribuie materialele primite în alte 3 direcții în mod egal.
+block.router.details = Un rău necesar. Nu folosi niciodată pt a introduce materiale în blocuri, căci vor fi blocate de produșii blocurilor.
+block.distributor.description = Distribuie materialele primite în alte 7 direcții în mod egal.
+block.overflow-gate.description = Transportă materialele doar la stânga și dreapta dacă drumul din față este blocat. Nu poate fi folosită lângă alte porți.
+block.underflow-gate.description = Opusul porții de revărsare. Transportă materialele în față dacă benzile din stânga și dreapta sunt blocate. Nu poate fi folosită lângă alte porți.
+block.mass-driver.description = Dispozitiv folosit pt transportul materialelor pe distanțe mari. Adună mai multe materiale și apoi le lansează până la un alt distributor în masă pe o rază mare.
+block.mechanical-pump.description = Pompează lichide din mediul înconjurător. Nu necesită electricitate.
+block.rotary-pump.description = Pompează lichide din mediul înconjurător. Necesită electricitate.
+block.thermal-pump.description = Pompează lichide din mediul înconjurător.
+block.conduit.description = Împinge lichidele în față. Folosit cu pompe și alte conducte.
+block.pulse-conduit.description = Împinge lichidele în față. Transportă lichidele mai rapid și stochează mai mult decât conductele standard.
+block.plated-conduit.description = Împinge lichidele în față. Nu acceptă lichide din lateral de la altceva în afară de conducte. Lichidul nu se varsă la exterior.
+block.liquid-router.description = Acceptă lichide dintr-o direcție și le distribuie în alte 3 direcții în mod egal. Poate stoca o anumită cantitate de lichid.
+block.liquid-tank.description = Stochează o mare cantitate de lichid și îl lasă să curgă prin toate conductele adiacente, similar unui router de lichid.
+block.liquid-junction.description = Acționează ca un pod pt două conducte care se intersectează.
+block.bridge-conduit.description = Transportă lichidele peste orice teren sau clădire.
+block.phase-conduit.description = Transportă lichidele peste orice teren sau clădire. Poate fi mai lungă decât podul de conductă, dar necesită electricitate.
block.power-node.description = Transmite electricitate către nodurile conectate. Nodul primește electricitate din sau oferă electricitate oricăror blocuri adiacente.
block.power-node-large.description = Un nod electric avansat cu o rază mare.
block.surge-tower.description = Un nod electric cu o rază extrem de mare dar cu mai puține conexiuni disponibile.
-block.diode.description = Energia din baterii poate trece prin acest bloc doar într-o direcție, dar doar dacă o parte are mai puțină energie stocată.
+block.diode.description = Transportă energia din baterii într-o direcție, dar doar dacă partea cealaltă are mai puțină energie stocată.
block.battery.description = Stochează electricitatea pt rezerve atunci când există un surplus în rețea. Oferă electricitate atunci când există un deficit.
-block.battery-large.description = Stochează mai multă electricitate decât bateria standard.
+block.battery-large.description = Stochează electricitatea pt rezerve atunci când există un surplus în rețea. Oferă electricitate atunci când există un deficit. Capacitate mai mare decât cea a bateriei obișnuite.
block.combustion-generator.description = Generează electricitate arzând materiale inflamabile, precum cărbunele.
block.thermal-generator.description = Generează electricitate atunci când este plasat în locuri calde.
-block.steam-generator.description = Un generator de combustie avansat. Mai eficient, dar necesită apă pt a genera abur.
+block.steam-generator.description = Generează electricitate arzând materiale inflamabile și convertind apa în abur.
block.differential-generator.description = Generează mari cantități de electricitate. Utilizează diferența de temperatură dintre criofluid și piratită arzând.
-block.rtg-generator.description = Un generator simplu pe care te poți baza. Folosește căldura materialelor radioactive care se dezintegrează pt a produce încet electricitate.
+block.rtg-generator.description = Folosește căldura materialelor radioactive care se dezintegrează pt a produce încet electricitate.
block.solar-panel.description = Oferă o cantitate mică de energie solară.
-block.solar-panel-large.description = O versiune cu mult mai eficientă a panoului solar standard.
+block.solar-panel-large.description = Oferă o cantitate mică de energie solară. Mai eficient decât panoul solar standard.
block.thorium-reactor.description = Generează mari cantități de electricitate din toriu. Necesită răcire constantă. Explodează violent dacă i se oferă cantități insuficiente de răcitor. Electricitatea produsă depinde de cât de plin e, cu electricitatea de bază produsă la capacitate maximă.
-block.impact-reactor.description = Un generator avansat, capabil să creeze cantități masive de electricitate la eficiență maximă. Are nevoie de o cantitate de electricitate pt a începe procesul.
-block.mechanical-drill.description = Un burghiu ieftin. Odată plasat pe blocurile corezpunzătoare, minează încet materiale. Capabil să mineze materiale de bază.
+block.impact-reactor.description = Crează cantități masive de electricitate la eficiență maximă. Are nevoie de o cantitate de electricitate pt a începe procesul.
+block.mechanical-drill.description = Odată plasat pe un minereu, minează încet materialele. Capabil să mineze materiale de bază.
block.pneumatic-drill.description = Un burghiu îmbunătățit, capabil să mineze titan. Minează mai rapid decât burghiul mecanic.
block.laser-drill.description = Poate mina mai rapid prin tehnologia bazată pe laser, dar necesită electricitate. Poate mina toriu.
block.blast-drill.description = Cel mai bun burghiu. Necesită cantități mari de electricitate.
block.water-extractor.description = Extrage apă din pământ. Folosit în locații unde apa de suprafață nu este disponibilă.
-block.cultivator.description = Cultivă mici concentrații de spori din atmosferă în păstăi pregătite pt procesare industrială.
+block.cultivator.description = Cultivă micile concentrații atomsferice de spori în păstăi de spori.
+block.cultivator.details = Tehnologie recuperată. Folosit pt a produce cantități masive de biomasă cât de eficient posibil. Posibil să fie incubatorul inițial al sporilor care acoperă acum Serpulo.
block.oil-extractor.description = Folosește mari cantități de electricitate, nisip și apă pt a extrage petrol.
-block.core-shard.description = Prima versiune a capsulei nucleice. Odată distrusă, orice contact cu regiunea se pierde. Nu lăsa asta să se întâmple.
-block.core-foundation.description = A doua versiune a nucleului. Mai bine armată. Stochează mai multe resurse.
-block.core-nucleus.description = A treia și ultima versiune a capsulei nucleice. Extrem de bine armată. Stochează mari cantități de resurse.
-block.vault.description = Stochează o mare cantitate de materiale de orice tip. Un bloc descărcător poate fi folosit pt a lua obiecte din seif.
-block.container.description = Stochează o mică cantitate de materiale de orice tip. Un bloc descărcător poate fi folosit pt a lua obiecte din container.
-block.unloader.description = Descarcă materialele din orice bloc din apropiere, mai puțin cele de transport. Tipul materialului de descărcat poate fi schimbat. Click pe descărcător.
-block.launch-pad.description = Lansează grămezi de materiale fără a fi nevoie să lansezi nucleul.
-block.launch-pad-large.description = O versiune mai bună a platformei de lansare. Stochează mai multe materiale. Lansează mai frecvent.
-block.duo.description = O armă mică, ieftină. Util împotriva unităților de artilerie.
-block.scatter.description = O armă esențială anti aeronave. Aruncă bucățele de plumb, fier vechi sau metasticlă către inamici.
-block.scorch.description = Arde orice artilerie inamică din apropiere. Mai eficient la distanță mică.
-block.hail.description = O armă anti-artilerie mică, care trage la mari distanțe.
-block.wave.description = O armă medie. Trage cu lichid către inamici. Stinge focul automat când este alimentată cu apă.
-block.lancer.description = O armă anti-artilerie medie, cu laser. Se încarcă și trage cu lasere puternice de electricitate.
-block.arc.description = O armă electrică cu o rază de acțiune mică. Trage cu mici lasere de electricitate către inamici.
-block.swarmer.description = O armă medie cu rachete. Atacă atât artileria cât și navele inamice. Trage cu rachete cu radar.
-block.salvo.description = O versiune mai mare, mai avansată a armei Duo. Trage salve rapide de gloanțe către inamici.
-block.fuse.description = O armă șrapnel mare cu rază de acțiune mică. Trage trei raze de gloanțe care găuresc scuturile inamicilor din apropiere.
-block.ripple.description = O armă de artilerie extrem de puternică. Lovește grămezi de bucăți de material înspre inamici pe distanțe mari.
-block.cyclone.description = O mare armă anti-artilerie și anti-aer. Trage cu grămezi explozive de material către ddunitățile inamice.
-block.spectre.description = O armă masivă cu două țevi. Trage cu gloanțe mari care găuresc armurile țintelor aeriene și artileriei.
-block.meltdown.description = O armă cu laser masivă. Trage cu un laser continuu la inamicii din apropiere. Necesită răcitor pt a opera.
+block.core-shard.description = Nucleul bazei. Odată distrus, sectorul e pierdut.
+block.core-shard.details = Prima versiune. Compact. Autoreprodus. Echipat cu propulsoare de unică folosință. Nu e făcut pt călătorii interplanetare.
+block.core-foundation.description = Nucleul bazei. Bine armat. Stochează mai multe resurse decât nucleul Shard.
+block.core-foundation.details = A doua versiune.
+block.core-nucleus.description = Nucleul bazei. Extrem de bine armat. Stochează cantități masive de resurse.
+block.core-nucleus.details = A treia și ultima versiune.
+block.vault.description = Stochează o mare cantitate de materiale de orice tip. Conținutul poate fi recuperat folosind un descărcător.
+block.container.description = Stochează o mică cantitate de materiale de orice tip. Conținutul poate fi recuperat folosind un descărcător.
+block.unloader.description = Descarcă materialele din orice bloc din apropiere, mai puțin cele de transport.
+block.launch-pad.description = Lansează grămezi de materiale către sectoarele selectate.
+block.duo.description = Trage cu gloanțe alternante către inamici.
+block.scatter.description = Trage cu bucățele de plumb, fier vechi sau metasticlă către aeronavele inamice.
+block.scorch.description = Arde orice artilerie inamică din apropiere. Foarte eficient la distanță mică.
+block.hail.description = Trage cu mici capsule către artileria inamică pe distanțe lungi.
+block.wave.description = Trage jeturi de lichid către inamici. Stinge focul automat când este alimentată cu apă.
+block.lancer.description = Se încarcă și trage cu lasere puternice de electricitate.
+block.arc.description = Trage cu mici lasere de electricitate către artileria inamică.
+block.swarmer.description = Trage cu rachete cu radar către inamici.
+block.salvo.description = Trage salve rapide de gloanțe către inamici.
+block.fuse.description = Trage trei raze de gloanțe care penetrează scuturile inamicilor din apropiere.
+block.ripple.description = Lovește cu capsule către inamici pe distanțe mari.
+block.cyclone.description = Trage cu grămezi explozive de material către unitățile inamice din apropiere.
+block.spectre.description = Trage cu gloanțe mari care penetrează scuturile inamicilor din apropiere.
+block.meltdown.description = Se încarcă și trage cu un laser continuu la inamicii din apropiere. Necesită răcitor pt a opera.
block.repair-point.description = Repară încontinuu cea mai deteriorată unitate din vecinătate.
-block.segment.description = Deteriorează și distruge proiectilele din apropiere. Laserele nu sunt afectate.
\ No newline at end of file
+block.segment.description = Deteriorează și distruge proiectilele din apropiere. Laserele nu sunt afectate.
+block.parallax.description = Trage cu o rază tractoare care atrage aeronavele inamice, deteriorându-le.
+block.tsunami.description = Trage jeturi puternice de lichid către inamici. Stinge focul automat când este alimentată cu apă.
+block.silicon-crucible.description = Rafinează silicon din nisip și cărbune, folosind piratită ca sursă adițională de cărbune. Mai eficient când e plasat în locuri calde.
+block.disassembler.description = Separă zgura în componentele sale minerale exotice. Eficiență mică. Poate produce toriu.
+block.overdrive-dome.description = Grăbește blocurile din apropiere. Necesită fibră-fază și silicon pt a opera.
+block.payload-conveyor.description = Mișcă încărcături mari, cum ar fi unitățile militare din fabrici.
+block.payload-router.description = Distribuie încărcătura primită în 3 direcții diferite.
+block.command-center.description = Controlează comportamentul unităților militare folosind diverse comenzi.
+block.ground-factory.description = Produce unități de artilerie. Unitățile produse pot fi folosite direct sau mutate în reconstructoare pt îmbunătățiri.
+block.air-factory.description = Produce unități aeriene. Unitățile produse pot fi folosite direct sau mutate în reconstructoare pt îmbunătățiri.
+block.naval-factory.description = Produce unități navale. Unitățile produse pot fi folosite direct sau mutate în reconstructoare pt îmbunătățiri.
+block.additive-reconstructor.description = Îmbunătățește unitățile primite, tranformându-le în unități de nivel doi.
+block.multiplicative-reconstructor.description = Îmbunătățește unitățile primite, tranformându-le în unități de nivel trei.
+block.exponential-reconstructor.description = Îmbunătățește unitățile primite, tranformându-le în unități de nivel patru.
+block.tetrative-reconstructor.description =Îmbunătățește unitățile primite, tranformându-le în unități de ltimă generație: nivelul cinci.
+block.switch.description = Un întrerupător. Poate fi pornit sau oprit. Statusul său poate fi citit și controlat de procesoarele logice.
+block.micro-processor.description = Rulează într-o buclă continuă o secvență de instrucțiuni logice. Poate fi folosit pt a controla unități și diverse clădiri.
+block.logic-processor.description = Rulează într-o buclă continuă o secvență de instrucțiuni logice. Poate fi folosit pt a controla unități și diverse clădiri. Mai rapid decât microprocesorul.
+block.hyper-processor.description = Rulează într-o buclă continuă o secvență de instrucțiuni logice. Poate fi folosit pt a controla unități și diverse clădiri. Mai rapid decât procesorul logic.
+block.memory-cell.description = Stochează informație pt un procesor.
+block.memory-bank.description = Stochează informație pt un procesor. Capacitate mare.
+block.logic-display.description = Afișează grafica transmisă de un procesor logic.
+block.large-logic-display.description = Afișează grafica transmisă de un procesor logic.
+block.interplanetary-accelerator.description = Un turn masiv cu o armă railgun electromagnetică. Accelerează nucleele la viteză cosmică pt lansare interplanetară.
+
+unit.dagger.description = Trage cu gloanțe standard către toți inamicii din apropiere.
+unit.mace.description = Trage cu jeturi de flacără aprinsă către toți inamicii din apropiere.
+unit.fortress.description = Trage cu gloanțe de artilerie către artileria inamică pe distanțe lungi.
+unit.scepter.description = Trage cu un baraj de gloanțe încărcate către toți inamicii din apropiere.
+unit.reign.description = Trage cu un baraj de gloanțe masive care penetrează scuturile tuturor inamicilor din apropiere.
+unit.nova.description = Trage cu mici lasere care deteriorează inamicii și repară structurile aliate. Poate zbura.
+unit.pulsar.description = Trage cu lasere electrice care deteriorează inamicii și repară structurile aliate. Poate zbura.
+unit.quasar.description = Trage cu lasere electrice care deteriorează inamicii și repară structurile aliate. Poate zbura. Echipat cu un scut.
+unit.vela.description = Trage cu un laser masiv, continuu, inflamabil care deteriorează inamicii și repară structurile aliate. Poate zbura.
+unit.corvus.description = Trage cu e explozie masivă de lasere care deteriorează inamicii și repară structurile aliate. Poate merge peste majoritatea terenurilor.
+unit.crawler.description = Aleargă către inamici și se autodistruge, cauzând o explozie.
+unit.atrax.description = Trage cu globuri de zgură care slăbesc artileria inamică. Poate merge peste majoritatea terenurilor.
+unit.spiroct.description = Trage cu lasere care apropie inamicii, autoreparându-se în acest proces. Poate merge peste majoritatea terenurilor.
+unit.arkyid.description = Trage cu lasere mari care apropie inamicii, autoreparându-se în acest proces. Poate merge peste majoritatea terenurilor.
+unit.toxopid.description = Trage cu capsule electrice mari și lasere care penetrează scuturile inamice. Poate merge peste majoritatea terenurilor.
+unit.flare.description = Trage cu gloanțe standard la artileria inamică din apropiere.
+unit.horizon.description = Aruncă grămezi de bombe peste artileria inamică.
+unit.zenith.description = Trage cu salve de rachete către inamicii din apropiere.
+unit.antumbra.description = Trage cu un baraj de gloanțe către inamicii din apropiere.
+unit.eclipse.description = Trage cu un baraj de grămezi de material și două lasere care penetrează scuturile tuturor inamicilor din apropiere.
+unit.mono.description = Minează automat cupru și plumb, depozitându-le în nucleu.
+unit.poly.description = Reconstruiește automat structurile deteriorate și asistă alte unități la construire.
+unit.mega.description = Repară automat structurile deteriorate. Capabilă să care blocuri și mici unități de artilerie.
+unit.quad.description = Aruncă bombe mari peste artileria inamică, reparând structurile aliate și deteriorând inamicii. Capabilă să care unități de artilerie de dimensiuni medii.
+unit.oct.description = Protejează aliații din apropiere cu scutul său care se regenerează. Capabilă să care majoritatea unităților de artilerie.
+unit.risso.description = Trage un baraj de rachete și gloanțe către toți inamicii din apropiere.
+unit.minke.description = Trage cu capsule și gloanțe standard către artileria inamică din apropiere.
+unit.bryde.description = Trage cu capsule de artilerie și rachete către inamici pe distanțe lungi.
+unit.sei.description = Trage cu un baraj de rachete și gloanțe care penetrează scuturile inamicilor.
+unit.omura.description = Trage cu un railgun cu gloanțe care penetrează scuturile inamice pe distanțe lungi. Construiește unități Flare.
+unit.alpha.description = Apără nucleul Shard de inamici. Construiește structuri.
+unit.beta.description = Apără nucleul Foundation de inamici. Construiește structuri.
+unit.gamma.description = Apără nucleul Core de inamici. Construiește structuri.
diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties
index 8d1f0e91ac..7de0bffa31 100644
--- a/core/assets/bundles/bundle_ru.properties
+++ b/core/assets/bundles/bundle_ru.properties
@@ -761,7 +761,7 @@ category.power = Энергия
category.liquids = Жидкости
category.items = Предметы
category.crafting = Ввод/Вывод
-category.shooting = Стрельба/Действие
+category.function = Действие
category.optional = Дополнительные улучшения
setting.landscape.name = Только альбомный (горизонтальный) режим
setting.shadows.name = Тени
diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties
index 8d3942eccb..12c3e84a7b 100644
--- a/core/assets/bundles/bundle_sv.properties
+++ b/core/assets/bundles/bundle_sv.properties
@@ -16,19 +16,19 @@ link.suggestions.description = Föreslå nya funktioner
linkfail = Kunde inte öppna länken!\nLänken har kopierats till ditt urklipp.
screenshot = Skärmdump har sparats till {0}
screenshot.invalid = Karta för stor, potentiellt inte tillräckligt minne för skärmdump.
-gameover = Game Over
-gameover.pvp = The[accent] {0}[] team is victorious!
+gameover = Spelet Slut
+gameover.pvp = Laget [accent] {0}[] vann!
highscore = [accent]Nytt rekord!
copied = Kopierad.
indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.notready = Denna del av spelet är iunte färdig ännu
load.sound = Ljud
load.map = Kartor
load.image = Bilder
load.content = Innehåll
load.system = System
-load.mod = Mods
+load.mod = Moddar
load.scripts = Scripts
be.update = En ny beta version är tillgänglig:
@@ -55,6 +55,7 @@ schematic.saved = Schematic sparad.
schematic.delete.confirm = Den här schematicen kommer bli ytterst borttagen.
schematic.rename = Döp om Schematic
schematic.info = {0}x{1}, {2} block
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Besegrade vågor:[accent] {0}
stat.enemiesDestroyed = Besegrade fiender:[accent] {0}
@@ -97,24 +98,23 @@ uploadingcontent = Laddar upp innehåll
uploadingpreviewfile = Laddar upp förhandsgranskningsfil
committingchanges = Comitting Changes
done = Klar
-feature.unsupported = Your device does not support this feature.
+feature.unsupported = Din enhet stödjer inte denna funktion.
-mods.alphainfo = Kom ihåg att mods är i alpha, och[scarlet] kan vara väldigt buggiga[].\nReport any issues you find to the Mindustry GitHub or Discord.
-mods.alpha = [accent](Alpha)
-mods = Mods
-mods.none = [lightgray]No mods found!
+mods.alphainfo = Kom ihåg att moddar är i alpha, och[scarlet] kan vara väldigt buggiga[].\nReport any issues you find to the Mindustry GitHub or Discord.
+mods = Moddar
+mods.none = [lightgray]Hittar inga Moddar!
mods.guide = Modding Guide
mods.report = Report Bug
mods.openfolder = Open Mod Folder
mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reloadexit = Spelat kommer nu att starta om, för att ladda om moddarna.
mod.display = [gray]Mod:[orange] {0}
-mod.enabled = [lightgray]Enabled
-mod.disabled = [scarlet]Disabled
-mod.disable = Disable
+mod.enabled = [lightgray]Aktiverad
+mod.disabled = [scarlet]Inaktiverad
+mod.disable = Inaktivera
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.delete.error = Kunde inte ta bort modden. Filen kanske används.
+mod.requiresversion = [scarlet]Kräver som minst version: [accent]{0}
mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
mod.missingdependencies = [scarlet]Missing dependencies: {0}
mod.erroredcontent = [scarlet]Content Errors
@@ -123,10 +123,10 @@ mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affec
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes.
-mod.reloadrequired = [scarlet]Reload Required
-mod.import = Import Mod
-mod.import.file = Import File
-mod.import.github = Import GitHub Mod
+mod.reloadrequired = [scarlet]Omstart krävs
+mod.import = Importera Mod
+mod.import.file = Importera Fil
+mod.import.github = Importera GitHub Mod
mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = This mod will be deleted.
@@ -139,7 +139,7 @@ mod.scripts.disable = Your device does not support mods with scripts. You must d
about.button = Om
name = Namn:
noname = Välj ett[accent] namn[] först.
-planetmap = Planet Map
+planetmap = Planet Karta
launchcore = Launch Core
filename = Filnamn:
unlocked = Nytt innehåll upplåst!
@@ -169,14 +169,14 @@ server.kicked.nameEmpty = Ditt namn är ogiltigt.
server.kicked.idInUse = Du är redan på den här servern! Det är inte tillåtet att koppla med två konton.
server.kicked.customClient = This server does not support custom builds. Ladda ned en officiell verision.
server.kicked.gameover = Game over!
-server.kicked.serverRestarting = The server is restarting.
+server.kicked.serverRestarting = Servern startar om.
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
-hostserver = Host Multiplayer Game
+hostserver = Hosta Multiplayer Spel
invitefriends = Invite Friends
-hostserver.mobile = Host\nGame
-host = Host
+hostserver.mobile = Hosta\nSpel
+host = Hosta
hosting = [accent]Öppnar server...
hosts.refresh = Refresh
hosts.discovering = Discovering LAN games
@@ -256,7 +256,7 @@ save.mode = Gamemode: {0}
save.date = Last Saved: {0}
save.playtime = Speltid: {0}
warning = Varning.
-confirm = Confirm
+confirm = Bekräfta
delete = Radera
view.workshop = View In Workshop
workshop.listing = Edit Workshop Listing
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Våg {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Våg om {0}
wave.waveInProgress = [lightgray]Wave in progress
waiting = [lightgray]Väntar...
waiting.players = Väntar på spelare...
wave.enemies = [lightgray]{0} Fiender kvarvarande
wave.enemy = [lightgray]{0} Fiende kvar
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Ladda bild
saveimage = Spara bild
unknown = Okänd
@@ -328,6 +331,7 @@ editor.generation = Generering:
editor.ingame = Edit In-Game
editor.publish.workshop = Publish On Workshop
editor.newmap = New Map
+editor.center = Center
workshop = Workshop
waves.title = Vågor
waves.remove = Ta bort
@@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Brus
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Malmmedian
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Block
filter.option.floor = Golv
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Vägg
filter.option.ore = Malm
filter.option.floor2 = Secondary Floor
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best Wave: {0}
-launch = < LAUNCH >
launch.text = Launch
-launch.title = Launch Successful
-launch.next = [lightgray]next opportunity at wave {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
+research.multiplayer = Only the host can research items.
uncover = Uncover
configure = Configure Loadout
loadout = Loadout
@@ -512,27 +512,33 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
+sectors.unexplored = [lightgray]Oupptäckt
+sectors.resources = Resurser:
+sectors.production = Produktion:
+sectors.stored = Lagrade:
+sectors.resume = Återuppta
+sectors.launch = Skjuta upp
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Byt namn på sektor
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
-sector.craters.name = The Craters
-sector.frozenForest.name = Frozen Forest
+sector.craters.name = Kratrarna
+sector.frozenForest.name = Fryst skog
sector.ruinousShores.name = Ruinous Shores
-sector.stainedMountains.name = Stained Mountains
-sector.desolateRift.name = Desolate Rift
-sector.nuclearComplex.name = Nuclear Production Complex
-sector.overgrowth.name = Overgrowth
-sector.tarFields.name = Tar Fields
-sector.saltFlats.name = Salt Flats
-sector.fungalPass.name = Fungal Pass
+sector.stainedMountains.name = Färgade berg
+sector.desolateRift.name = Ödslig rift
+sector.nuclearComplex.name = Kärnkraftsproduktionskomplex
+sector.overgrowth.name = Överväxt
+sector.tarFields.name = Tjärfält
+sector.saltFlats.name = Saltöken
+sector.fungalPass.name = Svamppass
sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
@@ -547,7 +553,7 @@ sector.nuclearComplex.description = A former facility for the production and pro
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
settings.language = Språk
-settings.data = Game Data
+settings.data = Spel Data
settings.reset = Återställ till Standardvärden
settings.rebind = Byt
settings.resetKey = Reset
@@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< Pausat >
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Inmatning
stat.output = Utmatning
stat.booster = Booster
-stat.tiles = Required Tiles
+stat.tiles = Nödvändiga Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Power Capacity
stat.powershot = Power/Shot
stat.damage = Skada
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Power Use
stat.powerdamage = Power/Damage
stat.itemcapacity = Item Capacity
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
@@ -613,6 +626,28 @@ stat.reload = Shots/Second
stat.ammo = Ammunition
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Bättre Borr Krävs
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}/s
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Föremål: {0}
bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Build Progress
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] skada
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -642,12 +680,15 @@ bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x fire rate
unit.blocks = block
+unit.blockssquared = blocks²
unit.powersecond = power units/second
unit.liquidsecond = liquid units/second
unit.itemssecond = items/second
@@ -670,7 +711,7 @@ category.power = Energi
category.liquids = Vätskor
category.items = Föremål
category.crafting = Inmatning/Utmatning
-category.shooting = Skjutning
+category.function = Function
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Skuggor
@@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animerat Vatten
setting.animatedshields.name = Animerade Sköldar
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Begränsade FPS
setting.fpscap.none = Inga
setting.fpscap.text = {0} FPS
-setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
+setting.uiscale.name = UI Scaling[lightgray] (requires restart)[]
setting.swapdiagonal.name = Always Diagonal Placement
setting.difficulty.training = Träning
setting.difficulty.easy = Lätt
@@ -713,7 +753,6 @@ setting.fullscreen.name = Fullskärm
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
setting.fps.name = Show FPS
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixellera[lightgray] (disables animations)
setting.minimap.name = Visa Minikarta
@@ -822,6 +861,7 @@ mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Vågtimer
rules.waves = Vågor
rules.attack = Attack Mode
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -856,15 +897,16 @@ rules.weather.duration = Duration:
content.item.name = Föremål
content.liquid.name = Vätskor
-content.unit.name = Units
+content.unit.name = Enheter
content.block.name = Block
+
item.copper.name = Koppar
item.lead.name = Bly
item.coal.name = Kol
item.graphite.name = Grafit
item.titanium.name = Titan
item.thorium.name = Torium
-item.silicon.name = Silikon
+item.silicon.name = Kisel
item.plastanium.name = Plast
item.phase-fabric.name = Phase Fabric
item.surge-alloy.name = Surge Alloy
@@ -879,23 +921,6 @@ liquid.slag.name = Slag
liquid.oil.name = Olja
liquid.cryofluid.name = Cryofluid
-item.explosiveness = [lightgray]Explosiveness: {0}%
-item.flammability = [lightgray]Flammability: {0}%
-item.radioactivity = [lightgray]Radioactivity: {0}%
-
-unit.health = [lightgray]Health: {0}
-unit.speed = [lightgray]Fart: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Heat Capacity: {0}
-liquid.viscosity = [lightgray]Viskositet: {0}
-liquid.temperature = [lightgray]Temperatur: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Sandbumling
block.grass.name = Gräs
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Salt
block.salt-wall.name = Salt Wall
block.pebbles.name = Pebbles
@@ -981,6 +1007,7 @@ block.darksand-water.name = Mörksandvatten
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Issnö
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = Energikälla
block.unloader.name = Urladdare
block.vault.name = Valv
block.wave.name = Våg
+block.tsunami.name = Tsunami
block.swarmer.name = Svärmare
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Båge
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blåa
team.crux.name = röda
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large anti-air and anti-ground turret. Fires explo
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties
index b86d8e7182..930887461d 100644
--- a/core/assets/bundles/bundle_th.properties
+++ b/core/assets/bundles/bundle_th.properties
@@ -7,21 +7,21 @@ link.reddit.description = ซับเรดดิท (subreddit) ของ Mind
link.github.description = source code ของเกม
link.changelog.description = รายการที่อัปเดต
link.dev-builds.description = เวอร์ชั่นระหว่างพัฒนา (ไม่เสถียร)
-link.trello.description = Official Trello board for planned features
-link.itch.io.description = itch.io page with PC downloads
-link.google-play.description = Google Play store listing
-link.f-droid.description = F-Droid catalogue listing
-link.wiki.description = Official Mindustry wiki
-link.suggestions.description = Suggest new features
+link.trello.description = Trello board ทางการสำหรับฟีเจอร์ต่างๆที่วางแผนไว้
+link.itch.io.description = หน้าเว็บ itch.io สำหรับดาวน์โหลดบน PC
+link.google-play.description = หน้า Google Play store ของเกม
+link.f-droid.description = หน้าแคตาลอค F-Droid ของเกม
+link.wiki.description = วิกิของ Mindustry อย่างเป็นทางการ
+link.suggestions.description = เสนอฟีเจอร์ใหม่
linkfail = ไม่สามารถเปิดลิ้งค์ได้\nคัดลอก URL ลงในคลิปบอร์ดแล้ว
screenshot = Screenshot บันทึกที่ {0}
screenshot.invalid = แมพใหญ่เกินไป, หน่วยความจำอาจจะไม่พอสำหรับ screenshot.
-gameover = Game Over
+gameover = จบเกม
gameover.pvp = ทีมที่ชนะคือทีม[accent] {0}[]!
highscore = [accent]คะแนนสูงสุดใหม่!
copied = คัดลอกแล้ว.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = [accent]เวอร์ชั่น v6[] ณ ขณะนี้อยู่ในช่วง [accent]alpha[].\n[lightgray]นั้นหมายถึง:[]\n[scarlet]- เคมเปญไม่ยังเสร็จสมบูรณ์ []\n- เนื้อหาบางอย่างขาดหาย\n - [scarlet]AI ของยูนิต[] ส่วนใหญ่ทำงานได้แบบไม่สมบูรณ์\n- ยูนิตส่วนมากยังไม่เสร็จ\n- ที่อย่างที่เห็นอาจเปลี่ยนแปลงได้หรือลบออกโดยสิ้นเชิงในอนาคต\n\nแจ้งบัคหรือปัญหาที่พบเจอได้ที่ [accent]Github[].
+indev.notready = ส่วนนี้ของเกมยังไม่พร้อมให้ใช้งาน
load.sound = เสียง
load.map = แมพ
@@ -31,7 +31,7 @@ load.system = ระบบ
load.mod = มอด
load.scripts = สคริปต์
-be.update = A new Bleeding Edge build is available:
+be.update = เวอร์ชั้นล่าสุดออกแล้ว:
be.update.confirm = ดาวน์โหลดเวอร์ชั่นใหม่แล้วรีสตาร์ทเลยไหม?
be.updating = กำลังอัปเดต...
be.ignore = ยกเลิก
@@ -42,7 +42,7 @@ schematic = แผนผัง
schematic.add = กำลังบันทึกแผนผัง...
schematics = แผนผัง
schematic.replace = มีแผนผังที่ใช้ชื่อนี้แล้ว. แทนที่เลยไหม?
-schematic.exists = A schematic by that name already exists.
+schematic.exists = มีแผนผังในชื่อนั้นอยู่แล้ว
schematic.import = นำเข้าแผนผัง...
schematic.exportfile = ส่งออกไฟล์
schematic.importfile = นำเข้าไฟล์
@@ -55,6 +55,7 @@ schematic.saved = บันทึกแผนผังแล้ว.
schematic.delete.confirm = แผนผังนี้จะถูกกำจัดให้หมดสิ้นโดยสิ้นเชิง
schematic.rename = เปลี่ยนชื่อของแผนผัง
schematic.info = {0}x{1}, {2} บล็อค
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = จำนวนคลื่น(รอบ)ที่กำจัดได้:[accent] {0}
stat.enemiesDestroyed = จำนวนศัตรูที่ทำลายไปได้:[accent] {0}
@@ -62,17 +63,17 @@ stat.built = จำนวนสิ่งก่อสร้างที่สร
stat.destroyed = จำนวนสิ่งก่อสร้างของศัตรูที่ทำลายไปได้:[accent] {0}
stat.deconstructed = จำนวนสิ่งก่อสร้างที่ถูกทำลายไป:[accent] {0}
stat.delivered = ทรัพยากรที่ส่งไปได้:
-stat.playtime = Time Played:[accent] {0}
+stat.playtime = ระยะเวลาที่เล่นไป:[accent] {0}
stat.rank = ระดับ: [accent]{0}
-globalitems = [accent]Global Items
+globalitems = [accent]ไอเท็มโกลบอล
map.delete = คุณแน่ใจหรือว่าจะลบแมพชื่อ "[accent]{0}[]"?
level.highscore = คะแนนสูงสุด: [accent]{0}
level.select = เลือกด่าน
level.mode = เกมโหมด:
coreattack = < แกนกลางกำลังถูกโจมตี! >
nearpoint = [[ [scarlet]ออกจากดรอปพอยท์ด่วน IMMEDIATELY[] ]\nการทำลายล้างกำลังใกล้เข้ามา
-database = ฐานข้อมูหลัง
+database = ฐานข้อมูลหลัก
savegame = เซฟเกม
loadgame = โหลดเกม
joingame = เข้าร่วมเกม
@@ -90,69 +91,68 @@ maps.browse = ค้นหาแมพ
continue = ต่อ
maps.none = [lightgray]ไม่มีแมพ!
invalid = ไม่ถูกต้อง
-pickcolor = Pick Color
+pickcolor = เลือกสี
preparingconfig = กำลังเตรียม Config
-preparingcontent = กำลังเตรียม Content
-uploadingcontent = กำลังอัปโหลด Content
+preparingcontent = กำลังเตรียมเนื้อหา
+uploadingcontent = กำลังอัปโหลดเนื้อหา
uploadingpreviewfile = กำลังอัปโหลดไฟล์พรีวิว
-committingchanges = Comitting Changes
+committingchanges = กำลังทำการเปลี่ยนแปลง
done = เรียบร้อย
feature.unsupported = อุปกรณ์ของคุณไม่รองรับฟีเจอร์นี้
mods.alphainfo = จำไว้ว่ามอดนั้นยังอยู่ในขั้น alpha และ[scarlet] อาจจะมีบัค[].\nโปรดรายงานปัญหาที่คุณพบใน Github ของ Mindustry หรือ ในเซิฟเวอร์ Discord
-mods.alpha = [accent](Alpha)
mods = มอด
mods.none = [lightgray]ไม่พบมอด!
mods.guide = คู่มือการทำมอด
mods.report = รายงานบัค
mods.openfolder = เปิดมอดโฟลเดอร์
-mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reload = โหลดใหม่
+mods.reloadexit = เกมจะออกเพื่อจะโหลดมอด
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]เปิดใช้งาน
mod.disabled = [scarlet]ปิดใช้งาน
mod.disable = ปิดใช้งาน
-mod.content = Content:
+mod.content = เนื้อหา:
mod.delete.error = ไม่สามารถลบมอดได้. ไฟล์อาจอยู่ในระหว่างการใช้งาน.
-mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
+mod.requiresversion = [scarlet]เวอร์ชั่นเกมขั้นต่ำที่ต้องการ: [accent]{0}
+mod.outdated = [scarlet]ไม่สามารถใช้ได้ในเวอร์ชั่น V6 (ไม่มี minGameVersion: 105)
mod.missingdependencies = [scarlet]dependencies หาย: {0}
-mod.erroredcontent = [scarlet]Content Errors
-mod.errors = Errors have occurred loading content.
-mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
+mod.erroredcontent = [scarlet]เนื้อหาผิดพลาด
+mod.errors = มีข้อผิดพลาดเกิดขึ้นระหว่าโหลดเนื้อหา
+mod.noerrorplay = [scarlet]คุณมีมอดที่มีข้อผิดพลาด.[] กรุณาปิดมอดนั้นๆหรือแก้ไขข้อผิดพลาดก่อนที่จะเล่น
mod.nowdisabled = [scarlet]มอด '{0}' ไม่มี dependencies:[accent] {1}\n[lightgray]จำเป็นต้องโหลดมอดพวกนี้ก่อน\nมอดนี้จะถูกปิดใช้งานโดยอัตโนมัติ
mod.enable = เปิดใช้งาน
mod.requiresrestart = เกมจะปิดลงเพื่อใส่มอด
mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด
mod.import = นำเข้ามอด
-mod.import.file = Import File
+mod.import.file = นำเข้าไฟล์
mod.import.github = นำเข้ามอดจาก Github
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
-mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
+mod.jarwarn = [scarlet]มอดไฟล์ JAR นั้นค่อนข้างไม่ปลอดภัย.[]\nกรุณาเช็คให้แน่ใจว่าคุณนำเข้ามอดนี้จะแหล่งที่เชื่อถือได้!
+mod.item.remove = ไอเทมนี้เป็นส่วนหนึ่งของมอด[accent] '{0}'[]. หากต้องการนำออก กรุณาถอดการติดตั้งมอดนั้น
mod.remove.confirm = มอดนี้จะถูกลบ
mod.author = [lightgray]ผู้สร้าง:[] {0}
-mod.missing = เซฟนี้มีมอดที่คุณอัปเดตหรือไม่ได้ติดตั้งแล้ว. อาจทำให้เซฟเสีย. คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]Mods:\n{0}
+mod.missing = เซฟนี้มีมอดที่คุณอัปเดตหรือไม่ได้ติดตั้งแล้ว. อาจทำให้เซฟเสีย. คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]มอดที่ใช้:\n{0}
mod.preview.missing = ก่อนที่จะนำมอดไปลงใน workshop, คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของมอดแล้วลองอีกครั้ง
mod.folder.missing = มอดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงใน workshop ได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดมอด
-mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
+mod.scripts.disable = เครื่องของคุณไม่รองรับมอดที่มี scripts. คุณจำเป็นต้องปิดมอดเหล่านี้ก่อนจึงจะสามารถเล่นได้.
about.button = เกี่ยวกับ
name = ชื่อ:
noname = ใส่ชื่อ[accent] ผู้เล่น[] ก่อน.
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = แผนที่ดาวเคราะห์
+launchcore = ส่ง Core
filename = ชื่อไฟล์:
-unlocked = content ใหม่ปลดล็อค!
+unlocked = เนื้อหาใหม่ปลดล็อค!
completed = [accent]สำเร็จ
techtree = ความคืบหน้าในการวิจัย
research.list = [lightgray]วิจัย:
research = วิจัย
researched = [lightgray]{0} วิจัยแล้ว.
-research.progress = {0}% complete
+research.progress = เสร็จแล้ว {0}%
players = {0} ผู้เล่น
players.single = {0} ผู้เล่น
-players.search = search
-players.notfound = [gray]no players found
+players.search = ค้นหา
+players.notfound = [gray]ไม่พบผู้เล่น
server.closing = [accent]กำลังปิดเซิฟเวอร์...
server.kicked.kick = คุณถูกเตะออกจากเซิฟเวอร์!
server.kicked.whitelist = คุณไม่ได้อยู่ใน whitelisted
@@ -168,8 +168,8 @@ server.kicked.nameInUse = มีคนที่ใช้ชืชื่อนี
server.kicked.nameEmpty = ชื่อของคุณไม่สามารถใช้ได้
server.kicked.idInUse = คุณเชื่อมต่อกับเซิฟเวอร์นี้อยู่แล้ว เราไม่อนุญาตให้เชื่อมต่อ 2 บัญชีในเซฟเวอร์เดียวกัน
server.kicked.customClient = เซิฟเวอร์นี้ไม่รองรับ builds ปรับแต่ง. กรุณาโหลดของ official.
-server.kicked.gameover = Game over!
-server.kicked.serverRestarting = The server is restarting.
+server.kicked.gameover = จบเกม!
+server.kicked.serverRestarting = เซิฟเวอร์กำลังเริ่มใหม่.
server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิฟเวอร์:[accent] {1}[]
host.info = ปุ่ม [accent]โฮสต์[] นั้นโฮสต์เซฟเวอร์ที่พอร์ท [scarlet]6567[]. \nทุกคนที่อยู่ใน [lightgray]wifi หรือ local network[] เดียวกันจะสามารถเห็นเซิฟเวอร์ของคุณในลิสของเซิฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆสามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP, จำเป็นจะต้องใช้การ [accent]port forwarding[] \n\n[lightgray]Note: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็คให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึง local network ของคุณในการตั้งค่า firewall. จำให้ว่า network สาธารณะบางครั้งไม่อนุญาตการค้นหาเซิฟเวอร์
join.info = คุณสามารถใส่ [accent]IP ของเซิฟเวอร์[] เพื่อที่จะเชื่อมต่อหรือค้นหา เซิฟเวอร์ที่ใช้[accent]local network[] จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]โน้ต: เกมนี้ไม่มีระบบค้นหาเซิฟเวอร์ global ให้อัตโนมัติserver list; ถ้าคุณต้องการเชื่อมต่อกับเซิฟเวอร์โดยใช้ IP, คุณจำเป็นต้องถาม IP ผู้เล่นที่โฮสต์เซิฟเวอร์นั้นๆ.
@@ -185,9 +185,9 @@ server.refreshing = กำลังรีเฟรชเซิฟเวอร์
hosts.none = [lightgray]ไม่พบเซิฟเวอร์ใน local!
host.invalid = [scarlet]ไม่สามารถเชื่อมต่อกับโฮสต์ได้
-servers.local = Local Servers
-servers.remote = Remote Servers
-servers.global = Community Servers
+servers.local = เซิฟเวอร์ Local
+servers.remote = เซิฟเวอร์ Remote
+servers.global = เซิฟเวอร์ Community
trace = Trace ผู้เล่น/ แกะรอยผู้เล่น
trace.playername = ชื่อผู้เล่น: [accent]{0}
@@ -269,7 +269,7 @@ copylink = คัดลอกลิ้งค์
back = กลับ
data.export = ส่งออกข้อมูล
data.import = นำเข้าข้อมูล
-data.openfolder = Open Data Folder
+data.openfolder = เปิดโฟลเดอร์ข้อมูล
data.exported = ข้อมูลส่งออกแล้ว
data.invalid = นี่ไม่ใช่ข้อมูลเกมที่ถูกต้อง.
data.import.confirm = การนำเข้าข้อมูลจากภายนอกจะเขียนทับข้อมูลเก่า[scarlet]ทั้งหมด[]\n[accent]และไม่สามารถย้อนกลับได้![]\n\nหลังจากที่นำข้อมูลแล้วเกมจะปิดลงโดยทันที
@@ -278,18 +278,21 @@ quit.confirm.tutorial = คุณแน่ใจหรือว่าคุณ
loading = [accent]กำลังโหลด...
reloading = [accent]กำลังรีโหลดมอด...
saving = [accent]กำลังเซฟ...
-respawn = [accent][[{0}][] to respawn in core
+respawn = [accent][[{0}]][]เพื่อเกิดใหม่ที่ core
cancelbuilding = [accent][[{0}][]เพื่อเคลียแผน
selectschematic = [accent][[{0}][]เพื่อเลือกและคัดลอก
pausebuilding = [accent][[{0}][]เพื่อหยุดการสร้างชั่วคราว
resumebuilding = [scarlet][[{0}][]เพื่อสร้างต่อ
wave = [accent]Wave {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]Wave ในอีก {0}
wave.waveInProgress = [lightgray]Wave กำลังดำเนินการ
waiting = [lightgray]กำลังรอ...
waiting.players = รอผู้เล่น...
wave.enemies = ศัตรูคงเหลือ [lightgray]{0}
wave.enemy = ศัตรูคงเหลือ [lightgray]{0}
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = โหลดรูป
saveimage = เซฟรูป
unknown = ไม่ทราบ
@@ -315,7 +318,7 @@ publish.error = การเผยแพร่ไอเท็มดังต่
steam.error = ไม่สามารถเริ่ม Steam service ได้\nError: {0}
editor.brush = แปรง
-editor.openin = เปิดมน Editor
+editor.openin = เปิดใน Editor
editor.oregen = การเกิดของแร่
editor.oregen.info = การเกิดของแร่:
editor.mapinfo = ข้อมูลของแมพ
@@ -328,16 +331,17 @@ editor.generation = การเกิด:
editor.ingame = แก้ไขในเกม
editor.publish.workshop = เผยแพร่บน Workshop
editor.newmap = แมพใหม่
+editor.center = Center
workshop = Workshop
waves.title = Waves
waves.remove = ลบ
-waves.never =
+waves.never = <ไม่เคย>
waves.every = ทุกๆ
waves.waves = wave(s)
waves.perspawn = ต่อสปาวน์
-waves.shields = shields/wave
-waves.to = to
-waves.guardian = Guardian
+waves.shields = เกราะ/wave
+waves.to = ถึง
+waves.guardian = การ์เดียน
waves.preview = พรีวิว
waves.edit = แก้ไข...
waves.copy = คัดลอกไปยังคลิปบอร์ด
@@ -346,8 +350,8 @@ waves.invalid = waves ในคลิปบอร์ดไม่ถูกต้
waves.copied = คัดลอก Waves แล้ว
waves.none = ไม่ได้กำหนดศัตรู\nwave layouts เปล่าจะถูกแทนที่โดย layout ค่าเริ่มต้นของเกม
-wavemode.counts = counts
-wavemode.totals = totals
+wavemode.counts = จำนวน
+wavemode.totals = ทั้งหมด
wavemode.health = health
editor.default = [lightgray]<ค่าเริ่่มต้น>
@@ -415,8 +419,9 @@ toolmode.drawteams.description = วาดทีมแทนที่จะเ
filters.empty = [lightgray]ไม่มีฟิลเตอร์! เพิ่มด้วยปุ่มด้านล่างนี้
filter.distort = บิดเบือน
filter.noise = นอยส์
-filter.enemyspawn = Enemy Spawn Select
-filter.corespawn = Core Select
+filter.enemyspawn = เบือกที่เกิดศัตรู
+filter.spawnpath = Path To Spawn
+filter.corespawn = เลือก Core
filter.median = เฉลี่ย
filter.oremedian = เฉลี่ยแร่
filter.blend = ผสมผสาน
@@ -436,10 +441,11 @@ filter.option.circle-scale = สเกลวงกลม
filter.option.octaves = เลอะเลือน
filter.option.falloff = หลุด
filter.option.angle = มุม
-filter.option.amount = Amount
+filter.option.amount = จำนวน
filter.option.block = บล็อค
filter.option.floor = พื้น
filter.option.flooronto = พื้น Target
+filter.option.target = Target
filter.option.wall = กำแพง
filter.option.ore = แร่
filter.option.floor2 = พื้นชั้น 2
@@ -471,20 +477,14 @@ requirement.wave = ถึง Wave ที่ {0} ใน {1}
requirement.core = ทำลาย Core ของศัตรูใน {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = เล่นต่อในโซน:\n[lightgray]{0}
bestwave = [lightgray]Wave สูงสุด: {0}
-launch = < ส่ง >
-launch.text = Launch
-launch.title = ส่งเรียบร้อย
-launch.next = [lightgray]โอกาสครั้งหน้าที่ wave {0}
-launch.unable2 = [scarlet]ไม่สามารถส่งได้[]
-launch.confirm = นี่จะส่งทรัพยากรทั้งหมดใน core ของคุณ\nคุณจะไม่สามารถกลับมาที่ฐานนี้ได้อีก
-launch.skip.confirm = ถ้าคุณข้ามตอนนี้, คุณจะไม่สามารถส่งจนกว่าจะถึง waves ต่อๆไป
+launch.text = ส่ง
+research.multiplayer = Only the host can research items.
uncover = เปิดเผย
configure = ตั้งค่า Loadout
loadout = Loadout
-resources = Resources
-bannedblocks = Banned Blocks
+resources = ทรัพยากร
+bannedblocks = บล็อคต้องห้าม
addall = เพิ่มทั้งหมด
launch.destination = Destination: {0}
configure.invalid = จำนวนต้อยู่ระหว่าง 0 ถึง {0}.
@@ -508,19 +508,25 @@ error.io = Network I/O error.
error.any = Unknown network error.
error.bloom = ไม่สามารถเริ่มต้น bloom ได้\nอุปกรณ์ของคุณอาจไม่รองรับ
-weather.rain.name = Rain
-weather.snow.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
+weather.rain.name = ฝน
+weather.snow.name = หิมะ
+weather.sandstorm.name = พายุทราย
+weather.sporestorm.name = พายุสปอร์
+weather.fog.name = Fog
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
+sectors.unexplored = [lightgray]ยังไม่ได้สำรวจ
+sectors.resources = ทรัพยากร:
+sectors.production = การผลิต:
+sectors.stored = เก็บ:
+sectors.resume = ทำต่อ
+sectors.launch = ส่ง
+sectors.select = เลือก
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -534,22 +540,22 @@ sector.tarFields.name = Tar Fields
sector.saltFlats.name = Salt Flats
sector.fungalPass.name = Fungal Pass
-sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
-sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
-sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
-sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
-sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
-sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
-sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
-sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
-sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
-sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
+sector.groundZero.description = ที่ที่ดีที่สุดในการเริ่มต้นอีกครั้ง. ศัตรูมีน้อย. ทรัพยากรน้อยฃ.\nเก็บตะกั่วและทองแดงให้ได้มากที่สุด.\nแล้วไปต่อ.
+sector.frozenForest.description = แม้แต่ที่นี่, ที่ที่อยู่ใกล้ภูเขา, สปอร์ก็ยังแพร่มาถึงที่นี่. อากาศที่เย็นเยือกไม่สามารถหยุดยั้งพวกมันได้ตลอดไป.\n\nเริ่มต้นการใช้ไฟฟ้า. สร้างเครื่องกำเนิดไฟฟ้าเผาไหม้ถ่าน. เรียนรู้ที่จะใช้เครื่องซ่อมแซม.
+sector.saltFlats.description = ณ ขอบของทะเลทราย เป็นที่ตั้งของ Salt Flats. สามารถพบทรัพยากรบางอย่างได้ที่นี่.\n\nศัตรูได้ตั้งฐานเก็บทรัพยากรไว้ที่นี่. ทำลาย core ของพวกมัน. อย่าให้มีอะไรเหลือ.
+sector.craters.description = น้ำขังอยู่ในหลุมอุกกาบาศนี้, ที่นี้เป็นอนุสรณ์ของสองคราม. ยึดพื้นที่นี่มา. เก็บทราย. เผากระจกเมต้า. ปั๊มน้ำเพื่อมาหล่อเย็นป้อมปืนและแท่นขุดเจาะ.
+sector.ruinousShores.description = ต่อจากของเสียต่างๆ, เป็นที่ตั้งของชายฝั่ง. ครั้งก่อน, ที่นี่เคยเป็นที่ตั้งของฐานป้องกันชายฝั่ง. ณ ตอนนี้แทบจะไม่เหลือแล้ว. มีเหลือแค่ระบบการป้องกันพื้นฐาน, ทุกอย่างที่เหลือถูกทำลายเหลือเพียงแค่เศษเหล็ก.\nทำการขยายการสำรวจต่อไป. ค้นพบกับเทคโนโลยีอีกครั้ง.
+sector.stainedMountains.description = เข้าลึกไปในพื้นที่ จะพบกับภูเขา, ซึ่งยังไม่ถูกสปอร์แตะต้อง.\nขุดไทเทเนียมที่อุดมสมบูรณ์ในพื้นที่นี้. เรียนรู้ที่จะใช้มัน.\n\nมีศัตรูมากขึ้นในบริเวณนี้. อย่าปล่อยให้พวกมันปล่อยยูนิตที่แข็งแกร่งที่สุดของพวกมันออกมา.
+sector.overgrowth.description = พื้นที่นี้ถูกปกคลุมไปด้วยพืช, ใกล้กับแหล่งกำเนิของสปอร์.\nศัตรูได้ตั้งฐานเฝ้าระวังไว้ที่นี่. สร้างยูนิตไททัน. ทำลายฐานซะ. แล้วนำสิ่งที่ถูกยึดไปกลับคืนมา.
+sector.tarFields.description = ขอบของพื้นที่ผลิตน้ำมัน, อยู่ระหว่างภูเขาและทะเลทราย. หนึ่งในพื้นที่ที่มีแหล่งน้ำมันดิบที่ใช้ได้.\nแม้ว่าจะถูกทิ้งร้าง, พื้นที่นี้ยังคงมีทัพของศัตรูอยู่ใกล้ๆ. อย่าประมาทกับพวกมัน.\n\n[lightgray]วิจัยเทคโนโลยีการแปรรูปน้ำมันหากเป็นไปได้.
+sector.desolateRift.description = เป็นพื้นที่ที่อันตรายมาก. ทรัพยากรมากมาย, แต่พื้นที่น้อย. ความเสี่ยงการโดนทำลายล้างสูง. ออกไปจากที่นี่ให้ไวที่สุด. อย่าถูกหลอกโดนระยะเวลาระหว่างการโจมตีของศัตรูที่เว้นไว้นานกว่าปกติ.
+sector.nuclearComplex.description = สถานที่ผลิตและแปรรูปทอเรี่ยมเก่า, ถูกทำลายกลายเป็นซาก.\n[lightgray]วิจัยทอเรี่ยมและวิธีการใช้มัน.\n\nศัตรูในบริเวณนี้มีจำนวนมาก, ตรวจตราหาผู้บุกรุกอยู่ตลอดเวลา.
+sector.fungalPass.description = พื้นที่ระหว่างพื้นที่สูงและต่ำของภูเขา, พื้นที่นี้เต็มไปด้วยสปอร์. ฐานลาดตระเวนขนาดเล็กของศัตรูตั้งอยู่ที่นี่.\nทำลายมันซะ.\nใช้ยูนิตเด็กเกอร์และครอว์เลอร์. ทำลาย core ทั้งสองซะ.
settings.language = ภาษา
settings.data = ข้อมูลเกม
settings.reset = รีเซ็ตเป็นค่าเริ่มต้น
-settings.rebind = Rebind
+settings.rebind = แก้ไขปุ่ม
settings.resetKey = Reset
settings.controls = การควบคุม
settings.game = เกม
@@ -558,24 +564,30 @@ settings.graphics = กราฟิก
settings.cleardata = เคลียร์ข้อมูลเกม...
settings.clear.confirm = คุณแน่ใจหรือว่าจะเคลียร์ข้อมูลเกม?\nสิ่งที่ทำไปแล้วจะไม่สามารถย้อนกลับได้!
settings.clearall.confirm = [scarlet]คำเตือน![]\nการกระทำนี้จะลบข้อมูลทั้งหมด นั้นรวมไปถึงเซฟ, แมพ, สิ่งที่ปลดล็อคแล้วและ keybinds.\nเมื่อคุณกด 'โอเค' เกมจะลบข้อมูลทุกอย่างและออกโดยอัตโนมัติ
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
+settings.clearsaves.confirm = คุณแน่ใจหรือว่าคุณต้องการเคลียร์เซฟทั้งหมด?
+settings.clearsaves = เคลียร์เซฟ
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = [accent]< หยุดชั่วคราว >
clear = เคลียร์
banned = [scarlet]แบน
-unplaceable.sectorcaptured = [scarlet]Requires captured sector
+unplaceable.sectorcaptured = [scarlet]ต้องการ captured sector
yes = ใช่
no = ไม่
info.title = ข้อมูล
error.title = [crimson]มีบางอย่างผิดพลาดเกิดขึ้น
error.crashtitle = มีบางอย่างผิดพลาดเกิดขึ้น
-unit.nobuild = [scarlet]Unit can't build
+unit.nobuild = [scarlet]ยูนิตไม่สามารถสร้างได้
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = นำเข้า
stat.output = ส่งออก
stat.booster = บูสเตอร์
-stat.tiles = Required Tiles
+stat.tiles = ต้องการ Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = ความจุพลังงาน
stat.powershot = หน่วยพลังงาน/นัด
stat.damage = ดาเมจ
@@ -585,15 +597,16 @@ stat.itemsmoved = ความเร็วเคลื่อนที่
stat.launchtime = เวลาระหว่างการส่ง
stat.shootrange = ระยะยิง
stat.size = ขนาด
-stat.displaysize = Display Size
+stat.displaysize = ขนาดที่โชว์
stat.liquidcapacity = จุของเหลว
stat.powerrange = ระยะพลังงาน
stat.linkrange = Link Range
-stat.instructions = Instructions
+stat.instructions = คำแนะนำ
stat.powerconnections = จำนวนการเชื่อมต่อสูงสุด
stat.poweruse = ใช้พลังงาน
stat.powerdamage = หน่วยพลังงาน/ดาเมจ
stat.itemcapacity = จุไอเท็ม
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = กำเนิดพลังงานพื้นฐาน
stat.productiontime = เวลาที่ใช้ในการผลิต
stat.repairtime = เวลาที่ใช้ในการซ่อมแซมให้สมบูรณ์
@@ -605,18 +618,40 @@ stat.boosteffect = แอฟเฟ็คของบูสต์
stat.maxunits = จำนวนยูนิตสูงสุด
stat.health = เลือด
stat.buildtime = เวลาในการสร้าง
-stat.maxconsecutive = Max Consecutive
+stat.maxconsecutive = ติดต่อกันสูงสุด
stat.buildcost = ใช้
stat.inaccuracy = ความคลาดเคลื่อน
stat.shots = นัด
stat.reload = นัด/วินาที
stat.ammo = กระสุน
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
+stat.shieldhealth = เลือดของเกราะ
+stat.cooldowntime = เวลา Cooldown
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = จำเป็นต้องใช้เครื่องขุดที่ดีกว่า
-bar.noresources = Missing Resources
-bar.corereq = Core Base Required
+bar.noresources = ทรัพยากรหาย
+bar.corereq = ฐาน Core ที่ต้องการ
bar.drillspeed = ความเร็วขุด: {0}/s
bar.pumpspeed = ความเร็วปั้ม: {0}/s
bar.efficiency = ประสิทธิภาพ: {0}%
@@ -624,10 +659,11 @@ bar.powerbalance = พลังงาน: {0}/s
bar.powerstored = เก็บแล้ว: {0}/{1}
bar.poweramount = พลังงาน: {0}
bar.poweroutput = พลังงานออก: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = ไอเท็ม: {0}
bar.capacity = ความจุ: {0}
bar.unitcap = {0} {1}/{2}
-bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled]
+bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[ยูนิตถูกปิด]
bar.liquid = ของเหลว
bar.heat = ความร้อน
bar.power = พลังงาน
@@ -635,6 +671,8 @@ bar.progress = ความคืบหน้าในการสร้าง
bar.input = นำเข้า
bar.output = ส่งออก
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] ดาเมจ
bullet.splashdamage = [stat]{0}[lightgray] ดาเมจกระจาย ~[stat] {1}[lightgray] ช่อง
bullet.incendiary = [stat]ติดไฟ
@@ -642,12 +680,15 @@ bullet.homing = [stat]ติดตาม
bullet.shock = [stat]ช็อค
bullet.frag = [stat]แตกออก
bullet.knockback = [stat]{0}[lightgray] ดันกลับ
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]แช่แข็ง
bullet.tarred = [stat]เปื้อนน้ำมัน
bullet.multiplier = [stat]{0}[lightgray]x จำนวนกระสุนต่อ 1 ไอเท็ม
bullet.reload = [stat]{0}[lightgray]x ความเร็วยิง
unit.blocks = บล็อค
+unit.blockssquared = blocks²
unit.powersecond = หน่วยพลังงาน/วินาที
unit.liquidsecond = หน่วยของเหลว/วินาที
unit.itemssecond = ไอเท็ม/วินาที
@@ -660,30 +701,29 @@ unit.persecond = /วินาที
unit.perminute = /min
unit.timesspeed = เท่าเร็วขึ้น
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = เลือดเกราะ
unit.items = ไอเท็ม
-unit.thousands = k
-unit.millions = mil
-unit.billions = b
+unit.thousands = พัน
+unit.millions = ล้าน
+unit.billions = พันล้าน
category.general = ทั่วไป
category.power = พลังงาน
category.liquids = ของเหลว
category.items = ไอเท็ม
category.crafting = นำเข้า/ส่งออก
-category.shooting = การยิง
+category.function = Function
category.optional = การเพิ่มประสิทธิภาพทางเลือก
setting.landscape.name = ล็อค Landscape แนวนอน
setting.shadows.name = เงา
setting.blockreplace.name = แนะนำบล็อคโดยอัตโนมัติ
setting.linear.name = การกรองเชิงเส้น
setting.hints.name = คำแนะนำ
-setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
+setting.flow.name = แสดงอัตราการไหลของทรัพยากร[scarlet] (รุ่นทดลอง)
setting.buildautopause.name = หยุดสร้างชั่วคราวแบบอัตโนมัติ
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = แอนิเมชั่นน้ำ
setting.animatedshields.name = แอนิเมชั่นเกราะ
setting.antialias.name = Antialias[lightgray] (จำเป็นต้องรีสตาร์ท)[]
-setting.playerindicators.name = Player Indicators
+setting.playerindicators.name = ตัวบอกผู้เล่น
setting.indicators.name = ตัวบอกศัตรู/พักพวก
setting.autotarget.name = เล็งเป้าอัตโนมัติ
setting.keyboard.name = การควบคุมแบบ เม้าส์+คีย์บอร์ด
@@ -702,25 +742,24 @@ setting.difficulty.name = ระดับความยาก:
setting.screenshake.name = การสั่นของจอ
setting.effects.name = แสดงเอฟเฟ็ค
setting.destroyedblocks.name = แสดงบล็อคที่ถูกทำลาย
-setting.blockstatus.name = Display Block Status
+setting.blockstatus.name = แสดงสเตตัสของบล็อค
setting.conveyorpathfinding.name = Pathfinding
setting.sensitivity.name = ความไวของตัวควบคุม
setting.saveinterval.name = ระยะห่าวระหว่างเซฟ
setting.seconds = {0} วินาที
-setting.blockselecttimeout.name = Block Select Timeout
-setting.milliseconds = {0} milliseconds
+setting.blockselecttimeout.name = การหมดเวลาในการเลือกบล็อค
+setting.milliseconds = {0} มิลลิวินาที
setting.fullscreen.name = เต็มจอ
setting.borderlesswindow.name = วินโดว์แบบไร้ขอบ[lightgray] (อาจจะต้องรีตาร์ท)
setting.fps.name = แสดง FPS และ Ping
-setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
+setting.smoothcamera.name = กล้องแบบสมูท
setting.vsync.name = VSync
setting.pixelate.name = Pixelate[lightgray] (ปิดใช้งานแอนิเมชั่น)
setting.minimap.name = แสดงมินิแมพ
-setting.coreitems.name = Display Core Items (WIP)
+setting.coreitems.name = แสดงไอเท็มใน Core (ยังไม่เสร็จสมบูรณ์)
setting.position.name = แสดงตำแหน่งของผู้เล่น
setting.musicvol.name = ระดับเสียงเพลง
-setting.atmosphere.name = Show Planet Atmosphere
+setting.atmosphere.name = แสดงชั้นบรรยากาศของดาวเคราะห์
setting.ambientvol.name = ระดับเสียงล้อมรอบ
setting.mutemusic.name = ปิดเพลง
setting.sfxvol.name = ระดับเสียง SFX
@@ -728,10 +767,10 @@ setting.mutesound.name = ปิดเสียง
setting.crashreport.name = ส่งรายงานการแครชแบบไม่ระบุตัวตน
setting.savecreate.name = สร้างเซฟโดยอัตโนมัติ
setting.publichost.name = การมองเห็นเซิฟเวอร์สาธารณะ
-setting.playerlimit.name = Player Limit
+setting.playerlimit.name = จัดกัดผู้เล่น
setting.chatopacity.name = ความโปร่งแสงของแชท
setting.lasersopacity.name = ความโปร่งแสงของเลเซอร์พลังงาน
-setting.bridgeopacity.name = Bridge Opacity
+setting.bridgeopacity.name = ความโปร่งแสงของสะพาน
setting.playerchat.name = แสดงบับเบิ้ลแชทของผู้เล่น
public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้.\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิฟเวอร์สาธารณะ.
public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิฟเวอร์สาธารณะได้
@@ -743,54 +782,54 @@ keybinds.mobile = [scarlet]การตั้งค่าปุ่มส่ว
category.general.name = ทั่วไป
category.view.name = วิว
category.multiplayer.name = ผู้เล่นหลายคน
-category.blocks.name = Block Select
+category.blocks.name = เลือกบล็อค
command.attack = โจมตี
command.rally = ชุมนุม
command.retreat = ถอยกลับ
-command.idle = Idle
+command.idle = อยู่เฉยๆ
placement.blockselectkeys = \n[lightgray]Key: [{0},
-keybind.respawn.name = Respawn
-keybind.control.name = Control Unit
+keybind.respawn.name = เกิดใหม่
+keybind.control.name = ควบคุมยูนิต
keybind.clear_building.name = เคลียร์สิ่งก็สร้าง
keybind.press = กดปุ่มใดก็ได้...
keybind.press.axis = กดแกนหรือปุ่มใดก็ได้...
keybind.screenshot.name = แมพ Screenshot
-keybind.toggle_power_lines.name = Toggle Power Lasers
-keybind.toggle_block_status.name = Toggle Block Statuses
+keybind.toggle_power_lines.name = เปิดปิดเลเซอร์พลังงาน
+keybind.toggle_block_status.name = เปิดปิดสถานะของบล็อค
keybind.move_x.name = เคลื่อนที่ในแกน x
keybind.move_y.name = เคลี่อนที่ในแกน y
keybind.mouse_move.name = ตามเม้าส์
-keybind.pan.name = Pan View
-keybind.boost.name = Boost
+keybind.pan.name = แพนวิว
+keybind.boost.name = บูสต์
keybind.schematic_select.name = เลือกภูมิภาค
keybind.schematic_menu.name = เมนู Schematic
keybind.schematic_flip_x.name = กลับ Schematic ในแกน X
keybind.schematic_flip_y.name = กลับ Schematic ในแกน Y
-keybind.category_prev.name = Previous Category
-keybind.category_next.name = Next Category
-keybind.block_select_left.name = Block Select Left
-keybind.block_select_right.name = Block Select Right
-keybind.block_select_up.name = Block Select Up
-keybind.block_select_down.name = Block Select Down
-keybind.block_select_01.name = Category/Block Select 1
-keybind.block_select_02.name = Category/Block Select 2
-keybind.block_select_03.name = Category/Block Select 3
-keybind.block_select_04.name = Category/Block Select 4
-keybind.block_select_05.name = Category/Block Select 5
-keybind.block_select_06.name = Category/Block Select 6
-keybind.block_select_07.name = Category/Block Select 7
-keybind.block_select_08.name = Category/Block Select 8
-keybind.block_select_09.name = Category/Block Select 9
-keybind.block_select_10.name = Category/Block Select 10
+keybind.category_prev.name = หมวดหมู่ก่อนหน้า
+keybind.category_next.name = หมวดหมู่ถ้ดไป
+keybind.block_select_left.name = เลือกบล็อค ซ้าย
+keybind.block_select_right.name = เลือกบล็อค ขวา
+keybind.block_select_up.name = เลือกบล็อค ขึ้น
+keybind.block_select_down.name = เลือกบล็อค ลง
+keybind.block_select_01.name = หมวดหมู่/เลือกบล็อค 1
+keybind.block_select_02.name = หมวดหมู่/เลือกบล็อค 2
+keybind.block_select_03.name = หมวดหมู่/เลือกบล็อค 3
+keybind.block_select_04.name = หมวดหมู่/เลือกบล็อค 4
+keybind.block_select_05.name = หมวดหมู่/เลือกบล็อค 5
+keybind.block_select_06.name = หมวดหมู่/เลือกบล็อค 6
+keybind.block_select_07.name = หมวดหมู่/เลือกบล็อค 7
+keybind.block_select_08.name = หมวดหมู่/เลือกบล็อค 8
+keybind.block_select_09.name = หมวดหมู่/เลือกบล็อค 9
+keybind.block_select_10.name = หมวดหมู่/เลือกบล็อค 10
keybind.fullscreen.name = เปิด/ปิด Fullscreen
keybind.select.name = เลือก/ยิง
keybind.diagonal_placement.name = วางเป็นแนวทแยง
keybind.pick.name = เลือกบล็อค
keybind.break_block.name = ทุบบล็อค
keybind.deselect.name = ยกเลิกการเบือก
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
-keybind.command.name = Command
+keybind.pickupCargo.name = ยกของขึ้น
+keybind.dropCargo.name = วางของลง
+keybind.command.name = คำสั่ง
keybind.shoot.name = ยิง
keybind.zoom.name = ซูม
keybind.menu.name = เมนู
@@ -811,7 +850,7 @@ keybind.zoom_minimap.name = ซูมมินิแมพ
mode.help.title = คำอธิบายโหมด
mode.survival.name = เอาชีวิตรอด
mode.survival.description = โหมดปกติ. ทรัพยากรมีจำกัดและ wave มาโดยอัตโนมัติ.\n[gray]ต้องมีสปาวน์ของศัตรูเพื่อที่จะเล่น.
-mode.sandbox.name = Sandbox
+mode.sandbox.name = โหมดอิสระ
mode.sandbox.description = ทรัพยาดรไม่จำกัดและ wave ไม่จับเวลา.
mode.editor.name = Editor
mode.pvp.name = PvP
@@ -822,13 +861,14 @@ mode.custom = กฎแบบกำหนดเอง
rules.infiniteresources = ทรัพยากรไม่จำกัด
rules.reactorexplosions = การระเบิดของ
+rules.schematic = Schematics Allowed
rules.wavetimer = ตัวนับเวลาปล่อยคลื่น(รอบ)
rules.waves = คลื่น(รอบ)
rules.attack = โหมดการโจมตี
-rules.buildai = AI Building
+rules.buildai = สิ่ก่อสร้างของ AI
rules.enemyCheat = AI (ทีมสีแดง) มีทรัพยากรไม่จำกัด
rules.blockhealthmultiplier = พหุคูณเลือดของบล็อค
-rules.blockdamagemultiplier = Block Damage Multiplier
+rules.blockdamagemultiplier = พหุคูณดาเมจของบล็อค
rules.unitbuildspeedmultiplier = พหุคูณความเร็วในการสร้างยูนิต
rules.unithealthmultiplier = พหุคูณเลือดของยูนิต
rules.unitdamagemultiplier = พหุคูณพลังโจมตีของยูนิต
@@ -836,28 +876,30 @@ rules.enemycorebuildradius = รัศมีห้ามสร้างบริ
rules.wavespacing = ระยะเวลาระหว่างคลื่น(รอบ):[lightgray] (วินาที)
rules.buildcostmultiplier = พหุคูณจำนวนทรัพยากรที่ใช้ในการสร้าง
rules.buildspeedmultiplier = พหุคูณความเร็วในการสร้าง
-rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
+rules.deconstructrefundmultiplier = พหุคูณการคืนทรัพยากรเมื่อทำการทำลายสิ่งก่อสร้าง
rules.waitForWaveToEnd = คลื่น(รอบ)รอศัตรู
rules.dropzoneradius = รัศมีจุดเกิดของศัตรู:[lightgray] (ช่อง)
-rules.unitammo = Units Require Ammo
+rules.unitammo = ยูนิตต้องใช้กระสุน
rules.title.waves = คลื่น(รอบ)
rules.title.resourcesbuilding = ทรัพยากรและสิ่งก่อสร้าง
rules.title.enemy = ศัตรู
rules.title.unit = ยูนิต
rules.title.experimental = Experimental
-rules.title.environment = Environment
-rules.lighting = Lighting
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
-rules.ambientlight = Ambient Light
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.title.environment = สิ่งแวดล้อม
+rules.lighting = แสง
+rules.enemyLights = Enemy Lights
+rules.fire = ไฟ
+rules.explosions = ดาเมจบล็อค/ยูนิตระเบิด
+rules.ambientlight = แสงจากแวดล้อม
+rules.weather = สภาพอากาศ
+rules.weather.frequency = ความถี่:
+rules.weather.duration = ระยะเวลา:
content.item.name = ไอเท็ม
content.liquid.name = ของเหลว
content.unit.name = ยูนิต
content.block.name = บล็อค
+
item.copper.name = ทองแดง
item.lead.name = ตะกั่ว
item.coal.name = ถ่านหิน
@@ -879,79 +921,63 @@ liquid.slag.name = เศษแร่
liquid.oil.name = น้ำมัน
liquid.cryofluid.name = โครโรฟิวล์
-item.explosiveness = [lightgray]ค่าการระเบิด: {0}%
-item.flammability = [lightgray]ความไวต่อไฟ: {0}%
-item.radioactivity = [lightgray]ค่ากัมมันตภาพรังสี: {0}%
-
-unit.health = [lightgray]เลือด: {0}
-unit.speed = [lightgray]ความเร็ว: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]ความจุความร้อน: {0}
-liquid.viscosity = [lightgray]ความหนืด: {0}
-liquid.temperature = [lightgray]อุณหภูมิ: {0}
-
unit.dagger.name = แด็กเกอร์
-unit.mace.name = Mace
+unit.mace.name = เมส
unit.fortress.name = ฟอร์เทรส
-unit.nova.name = Nova
-unit.pulsar.name = Pulsar
-unit.quasar.name = Quasar
+unit.nova.name = โนว่า
+unit.pulsar.name = พอวซ่า
+unit.quasar.name = ควอซ่า
unit.crawler.name = ครอว์เลอร์
-unit.atrax.name = Atrax
-unit.spiroct.name = Spiroct
-unit.arkyid.name = Arkyid
-unit.toxopid.name = Toxopid
-unit.flare.name = Flare
-unit.horizon.name = Horizon
-unit.zenith.name = Zenith
-unit.antumbra.name = Antumbra
-unit.eclipse.name = Eclipse
-unit.mono.name = Mono
-unit.poly.name = Poly
-unit.mega.name = Mega
-unit.quad.name = Quad
-unit.oct.name = Oct
-unit.risso.name = Risso
-unit.minke.name = Minke
-unit.bryde.name = Bryde
-unit.sei.name = Sei
-unit.omura.name = Omura
-unit.alpha.name = Alpha
-unit.beta.name = Beta
-unit.gamma.name = Gamma
-unit.scepter.name = Scepter
-unit.reign.name = Reign
-unit.vela.name = Vela
-unit.corvus.name = Corvus
+unit.atrax.name = เอแทรซ
+unit.spiroct.name = สปิรอคท์
+unit.arkyid.name = อาร์คิดย์
+unit.toxopid.name = โทโสพิด
+unit.flare.name = แฟลร์
+unit.horizon.name = ฮอไรซอน
+unit.zenith.name = ซีนิท
+unit.antumbra.name = แอนทัมบรา
+unit.eclipse.name = อีคลิปส์
+unit.mono.name = โมโน
+unit.poly.name = โพลี
+unit.mega.name = เมก้า
+unit.quad.name = ควอด
+unit.oct.name = ออกค์
+unit.risso.name = ริสโส
+unit.minke.name = มิงค์
+unit.bryde.name = ไบรดย์
+unit.sei.name = ไซย์
+unit.omura.name = โอมูร่า
+unit.alpha.name = อัลฟ่า
+unit.beta.name = บีตเา
+unit.gamma.name = แกมม่า
+unit.scepter.name = สเซปเตอร์
+unit.reign.name = เรน
+unit.vela.name = เวล่า
+unit.corvus.name = คอร์วัส
-block.resupply-point.name = Resupply Point
-block.parallax.name = Parallax
-block.cliff.name = Cliff
+block.resupply-point.name = จุดเติมของ
+block.parallax.name = พาราแล็ซ
+block.cliff.name = หน้าผ่า
block.sand-boulder.name = ก้อนหินทราย
block.grass.name = หญ้า
block.slag.name = Slag
+block.space.name = Space
block.salt.name = เกลือ
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = กำแพงเกลือ
block.pebbles.name = ก้อนกรวด
block.tendrils.name = ไม้เลื้อย
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = กำแพงทราย
block.spore-pine.name = ต้นสนสปอร์
-block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
+block.spore-wall.name = กำแพงสปอร์
+block.boulder.name = ก้อยหินใหญ่
+block.snow-boulder.name = หินหิมะใหญ่
block.snow-pine.name = ต้นสนที่คลุมหิมะ
block.shale.name = หินดินดาน
block.shale-boulder.name = ก้อนหินดินดาน
block.moss.name = ตะไคร่น้ำ
block.shrubs.name = พุ่มไม้
block.spore-moss.name = พุ่มไม้สปอร์
-block.shale-wall.name = Shale Wall
+block.shale-wall.name = กำแพงหินดินดาน
block.scrap-wall.name = กำแพงเศษเหล็ก
block.scrap-wall-large.name = กำแพงเศษเหล็กขนาดใหญ่
block.scrap-wall-huge.name = กำแพงเศษเหล็กขนาดใหญ่มาก
@@ -969,7 +995,7 @@ block.deepwater.name = น้ำลึก
block.water.name = น้ำ
block.tainted-water.name = น้ำเสีย
block.darksand-tainted-water.name = น้ำเสียบนทรายดำ
-block.tar.name = น้ำมันดิน
+block.tar.name = น้ำมันดิบ
block.stone.name = หิน
block.sand.name = ทราย
block.darksand.name = ทรายดำ
@@ -979,17 +1005,18 @@ block.craters.name = หลุมอุกกาบาต
block.sand-water.name = น้ำบนทราย
block.darksand-water.name = น้ำบนทรายดำ
block.char.name = ถ่าน
-block.dacite.name = Dacite
-block.dacite-wall.name = Dacite Wall
+block.dacite.name = ดาไซต์
+block.dacite-wall.name = กำแพงดาไซต์
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = น้ำแข็งหิมะ
-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.stone-wall.name = กำแพงหิน
+block.ice-wall.name = กำแพงน้ำแข็ง
+block.snow-wall.name = กำแพงหิมะ
+block.dune-wall.name = กำแพงเนินทราย
block.pine.name = ต้นสน
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
+block.dirt.name = ดิน
+block.dirt-wall.name = กำแพงดิน
+block.mud.name = โคลน
block.white-tree-dead.name = ต้นไม้ขาวที่ตายแล้ว
block.white-tree.name = ต้มไม้ขาว
block.spore-cluster.name = กลุ่มสปอร์
@@ -1005,7 +1032,7 @@ block.dark-panel-4.name = แผ่นดำ 4
block.dark-panel-5.name = แผ่นดำ 5
block.dark-panel-6.name = แผ่นดำ 6
block.dark-metal.name = เหล็กดำ
-block.basalt.name = Basalt
+block.basalt.name = บะซอลต์
block.hotrock.name = หินร้อน
block.magmarock.name = หินแมกม่า
block.copper-wall.name = กำแพงทองแดง
@@ -1027,7 +1054,7 @@ block.hail.name = แฮล
block.lancer.name = แลนเซอร์
block.conveyor.name = สายพาน
block.titanium-conveyor.name = สายพานไทเทเนี่ยม
-block.plastanium-conveyor.name = Plastanium Conveyor
+block.plastanium-conveyor.name = สายพานพสาตตาเนี่ยม
block.armored-conveyor.name = สายพานเสริมเกราะ
block.armored-conveyor.description = เคลื่อนย้ายไอเท็มได้เร็วเทียบเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่สามารถรับไอเท็มจากด้านข้างและจากสายพานชนิดอื่นนอกจากสายพานชนิดเดียวกัน.
block.junction.name = ทางแยก
@@ -1036,10 +1063,10 @@ block.distributor.name = ตัวแจกจ่าย
block.sorter.name = เครื่องแยก
block.inverted-sorter.name = เครื่องแยกกลับด้าน
block.message.name = ตัวเก็บข้อความ
-block.illuminator.name = Illuminator
-block.illuminator.description = A small, compact, configurable light source. Requires power to function.
+block.illuminator.name = ตัวเปล่งแสง
+block.illuminator.description = แหล่งกำเนิดแสงขนาดเล็ก สามารถดัดแปลงได้. จำเป็นต้องใช้พลังงานในการทำงาน.
block.overflow-gate.name = ประตูระบายไอเทม
-block.underflow-gate.name = Underflow Gate
+block.underflow-gate.name = ประตูระบายไอเท็มย้อนกลับ
block.silicon-smelter.name = เตาเผาซิลิกอน
block.phase-weaver.name = เครื่องทอใยเฟส
block.pulverizer.name = เครื่องบด
@@ -1055,7 +1082,7 @@ block.surge-tower.name = เสาเสิร์จ
block.diode.name = ไดโอดแบตเตอรี่
block.battery.name = แบตเตอรี่
block.battery-large.name = แบตเตอรี่ขนาดใหญ่
-block.combustion-generator.name = เครื่องกำเนิดไฟฟ้าโดยการสันดาป
+block.combustion-generator.name = เครื่องกำเนิดไฟฟ้าเผาไหม้ถ่าน
block.steam-generator.name = เครื่องกำเนิดไฟฟ้าไอน้ำ
block.differential-generator.name = เครื่องกำเนิดไฟฟ้าดิฟเฟอเร่นเตอร์
block.impact-reactor.name = เตาปฏิกรณ์อัดกระแทก
@@ -1075,6 +1102,7 @@ block.power-source.name = จุดกำเนิดพลังงาน
block.unloader.name = ตัวถ่ายไอเทม
block.vault.name = ตู้นิรภัย
block.wave.name = เวฟ
+block.tsunami.name = Tsunami
block.swarmer.name = สวอร์มเมอร์
block.salvo.name = ซัลโว
block.ripple.name = ริปเปิล
@@ -1114,37 +1142,39 @@ block.arc.name = อาร์ค
block.rtg-generator.name = เครื่องกำเนิดไฟฟ้า RTG
block.spectre.name = สเปคเตอร์
block.meltdown.name = เมลท์ดาวน์
+block.foreshadow.name = Foreshadow
block.container.name = ตู้เก็บของ
block.launch-pad.name = ฐานส่งของ
block.launch-pad-large.name = ฐานส่งของขนาดใหญ่
block.segment.name = Segment
-block.command-center.name = Command Center
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
-block.additive-reconstructor.name = Additive Reconstructor
-block.multiplicative-reconstructor.name = Multiplicative Reconstructor
-block.exponential-reconstructor.name = Exponential Reconstructor
+block.command-center.name = ศูนย์ควบคุม
+block.ground-factory.name = โรงงานภาคพื้นดิน
+block.air-factory.name = โรงงานภาคอากาศ
+block.naval-factory.name = โรงงานทางน้ำ
+block.additive-reconstructor.name = Reconstructor แบบบวก
+block.multiplicative-reconstructor.name = Reconstructor แบบคูณ
+block.exponential-reconstructor.name = Reconstructor แบบเอ็กโพเนนเชียว
block.tetrative-reconstructor.name = Tetrative Reconstructor
-block.payload-conveyor.name = Mass Conveyor
-block.payload-router.name = Payload Router
-block.disassembler.name = Disassembler
-block.silicon-crucible.name = Silicon Crucible
-block.overdrive-dome.name = Overdrive Dome
+block.payload-conveyor.name = สายพาน Mass
+block.payload-router.name = ตัวเปลี่ยเส้นทาง Payload
+block.disassembler.name = ตัวชำแหละ
+block.silicon-crucible.name = เบ้าหลอมซิลิคอน
+block.overdrive-dome.name = โดม Overdrive
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
+block.switch.name = สวิชต์
+block.micro-processor.name = ตัวประมวลผล Micro
+block.logic-processor.name = ตัวประมวลผล Logic
+block.hyper-processor.name = ตัวประมวลผล Hyper
+block.logic-display.name = ตัวแสดง Logic
+block.large-logic-display.name = ตัวแสดง Logic ขนาดใหญ่
+block.memory-cell.name = เซลล์ความจำ
+block.memory-bank.name = Memory Bank
team.blue.name = น้ำเงิน
team.crux.name = แดง
team.sharded.name = ส้ม
team.orange.name = ส้ม
-team.derelict.name = derelict
+team.derelict.name = ไม่มี
team.green.name = เขียว
team.purple.name = ม่วง
@@ -1208,12 +1238,12 @@ block.spore-press.description = อัดกระเปาะสปอร์ด
block.pulverizer.description = บดเศษเหล็กให้เป็นทรายละเอียด.
block.coal-centrifuge.description = ทำให้น้ำมันแข็งตัวเป็นก้อนถ่านหิน.
block.incinerator.description = ทำลายไอเท็มหรือของเหลวทุกอย่างที่ได้รับมา.
-block.power-void.description = ทิ้งพลังงานทั้งหมดที่ได้รับ. เฉพาะ Sandbox เท่านั้น.
-block.power-source.description = ส่งออกพลังงานไม่จำกัด. เฉพาะ Sandbox เท่านั้น.
-block.item-source.description = ส่งออกไอเท็มไม่จำกัด. เฉพาะ Sandbox เท่านั้น.
-block.item-void.description = ทำลายทุกไอเท็ม . เฉพาะ Sandbox เท่านั้น.
-block.liquid-source.description = ส่งออกของเหลวไม่จำกัด. เฉพาะ Sandbox เท่านั้น.
-block.liquid-void.description = Removes any liquids. Sandbox only.
+block.power-void.description = ทิ้งพลังงานทั้งหมดที่ได้รับ. เฉพาะ โหมดอิสระ เท่านั้น.
+block.power-source.description = ส่งออกพลังงานไม่จำกัด. เฉพาะ โหมดอิสระ เท่านั้น.
+block.item-source.description = ส่งออกไอเท็มไม่จำกัด. เฉพาะ โหมดอิสระ เท่านั้น.
+block.item-void.description = ทำลายทุกไอเท็ม . เฉพาะ โหมดอิสระ เท่านั้น.
+block.liquid-source.description = ส่งออกของเหลวไม่จำกัด. เฉพาะ โหมดอิสระ เท่านั้น.
+block.liquid-void.description = ทิ้งของเหลวทุกชนิด. เฉพาะ โหมดอิสระ เท่านั้น.
block.copper-wall.description = บล็อคป้องกันราคาถูก.\nมีประโยชน์สำหรับป้องกัน core และป้อมปืนใน wave แรกๆ.
block.copper-wall-large.description = บล็อคป้องกันราคาถูก.\nมีประโยชน์สำหรับป้องกัน core และป้อมปืนใน wave แรกๆ.\nคลอบคลุมหลายข่อง.
block.titanium-wall.description = บล็อคป้องกันแข็งแกร่งปานกลาง.\nป้องกันศัตรูได้ในระดับหนึ่ง.
@@ -1222,8 +1252,8 @@ block.plastanium-wall.description = กำแพงพิเศษที่ส
block.plastanium-wall-large.description = กำแพงพิเศษที่สามารถดูดซับไฟฟ้าและป้องกันการต่อไฟกับโหนดพลังงานโดยอัตโนมัติได้.\nคลอบคลุมหลายช่อง.
block.thorium-wall.description = บล็อคป้องกันที่แข็งแรง.\nป้องกันศัตรูได้อย่างดี.
block.thorium-wall-large.description = บล็อคป้องกันที่แข็งแรง.\nป้องกันศัตรูได้อย่างดี.\nคลอบคลุมหลายช่อง.
-block.phase-wall.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.
-block.phase-wall-large.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.\nคลอบคลุมหลายช่อง.
+block.phase-wall.description = กำแพงที่เคลือบด้วยวัสดุสะท้อนพิเศษจำพวก phase. เบี่ยงเบนกระสุนส่วนใหญ่ที่รับมา.
+block.phase-wall-large.description = กำแพงที่เคลือบด้วยวัสดุสะท้อนพิเศษจำพวก phase. เบี่ยงเบนกระสุนส่วนใหญ่ที่รับมา.\nคลอบคลุมหลายช่อง.
block.surge-wall.description = บล็อคป้องกันที่มีทนทานสูง.\nสะสมพลังงานจากกระสุน, แล้วปล่อยออกมาแบบสุ่ม.
block.surge-wall-large.description = บล็อคป้องกันที่มีทนทานสูง.\nสะสมพลังงานจากกระสุน, แล้วปล่อยออกมาแบบสุ่ม.\nคลอบคลุมหลายช่อง.
block.door.description = ประตูขนาดเล็ก. สามารถเปิดได้โดยการกด.
@@ -1235,7 +1265,7 @@ block.force-projector.description = สร้างสนามพลังง
block.shock-mine.description = ดาเมจศัตรูที่เหยียบ. แถบจะล่องหนต่อศัตรู.
block.conveyor.description = บล็อคขนส่งไอเท็มพื้นฐาน. เคลื่อนไอเท็มไปข้างหน้าและใส่ลงบล็อคโดยอัตโนมัติ. สามารถหมุนได้.
block.titanium-conveyor.description = บล็อคขนส่งไอเท็มขั้นสูง. เคลื่อนไอเท็มเร็วกว่าสายพานทั่วไป.
-block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front.
+block.plastanium-conveyor.description = เคลื่อนย้ายไอเท็มเป็นชุด.\nรับไอดท็มจากด้านหลัง, และนำออกไปสามทางข้างหน้า.
block.junction.description = มีหน้าที่เป็นสะพานสำหรับสายพาน 2 สายข้ามกัน. มีประโยชน์สำหรับเวลาสายพาน 2 สายที่ขนไอเท็มมา 2 ชนิดไปยัง 2 สถานที่.
block.bridge-conveyor.description = บล็อคขนส่งไอเท็มขั้นสูง. ทำให้สามารถส่งไอเท็มข้ามบล็อคใดก็ได้ 3 ช่อง.
block.phase-conveyor.description = บล็อคขนส่งไอเท็มขั้นสูง. ใช้พลังงานเพื่อส่งไอเท็มไปยังสายพานเฟสอีกอัน ข้ามได้หลายช่อง.
@@ -1244,14 +1274,14 @@ block.inverted-sorter.description = แยกไอเท็มคล้าย
block.router.description = รับไอเท็มแล้วส่งออก 3 ทางเท่าๆกัน. มีประโยชน์สำหรับแยกไอเท็มจากแหล่งเดียวไปหลายที่.\n\n[scarlet]อย่าวางไว้ติดกับทางส่งไอเท็มเข้าเพราะของออกจะไปอุดตันได้.[]
block.distributor.description = เร้าเตอร์ขั้นสูง. แยกไอเท็มออก 7 ทางอย่างเท่าๆกัน.
block.overflow-gate.description = ของจะออกจากข้างๆเมื่อทางข้างหน้ถูกบล็อคเท่านั้น.
-block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
+block.underflow-gate.description = ตรงข้ามกับประตูระบายไอเท็ม. ส่งออกไอเท็มไปข้างหน้าหากทางซ้ายและขวาถูกบล็อค.
block.mass-driver.description = บล็อคขนส่งไอเท็มขั้นสุดยอด. รวบรวมไอเท็มจำนวนหนึ่งแล้วยิงไปหาแมสไดรเวอร์อีกอันที่อยู่ไกลออกไป. ต้องใช้พลังงานในการใช้งาน.
block.mechanical-pump.description = ปั๊มราคาถูก เอ้าพุธต์ช้า แต่ไม่ใช้พลังงาน.
block.rotary-pump.description = ปั๊มขั้นสูง. ปั๊มของเหลวได้มากขึ้นแค่ใช้พลังงาน.
block.thermal-pump.description = ปั๊มขั้นสุดยอด.
block.conduit.description = บล็อคขนส่งของเหลวพื้นฐาน. เคลื่อนของเหลวไปข้างหน้า. ใช้ร่วมกับปั๊มและรางน้ำอื่นๆ.
block.pulse-conduit.description = บล็อคขนส่งของเหลวขั้นสูง. เคลื่อนย้ายของเหลวเร็วขึ้นและเก็บเยอะกว่ารางน้ำธรรมดา.
-block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
+block.plated-conduit.description = เคลื่อนย้ายของเหลวได้เร็วพอๆกับ ท่อน้ำพัลซ์, แต่มีเกราะที่หนากว่า. ไม่รับของเหลวจากด้านข้างจากอย่างอื่นนอกจากท่อน้ำด้วยกันเอง.\nรั่วน้อยกว่า.
block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออก 3 ทางเท่าๆกัน. สามารถเก็บของ้หลวได้จำนวนหนึ่ง. มีประโยชน์สำหรับการแยกของเหลวจากแหล่งเดียวไปหลายที่.
block.liquid-tank.description = เก็บของเหลวจำนวนมาก. ใช่สำหรับสร้างบัฟเฟอร์ในเวลาที่ความต้องการของทรัพยากรไม่คงที่หรือเป็นตัวเซฟสำหรับบล็อคที่จำเป็นต้องใช้การหล่อเย็น.
block.liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับรางน้ำ 2 รางที่ข้ามกันที่มีของเหลว 2 ชนิด ซึ่งต้องการจะไปคนละที่.
@@ -1302,4 +1332,4 @@ block.cyclone.description = ป้อมปืนต่อต้านอาก
block.spectre.description = ปืนใหญ่ลำกล้องคูขนาดยักษ์. ยิงกระสุนเจาะเกราะใส่ศัตรูทั้งบนอากาศและภาดพื้นดิน.
block.meltdown.description = ปืนใหญ่เลเซอร์ขนาดยักษ์. ชาร์จแล้วยิงลำแสงเลเซอร์ใส่ศัตรูที่อยู่ใกล้. จำเป็นต้องใช้สารหล่อเย็น.
block.repair-point.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีอย่างต่อเนื่อง.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = ทำดาเมจและทำลายโปรเจกไตล์ที่กำลังเข้ามา. โปรเจกไตล์เลเซอร์จะไม่ถูกล็อคเป้าด้วยบล็อคนี้.
diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties
index cfac48c897..8b9f3a97aa 100644
--- a/core/assets/bundles/bundle_tk.properties
+++ b/core/assets/bundles/bundle_tk.properties
@@ -55,6 +55,7 @@ schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Waves Defeated:[accent] {0}
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0}
@@ -100,7 +101,6 @@ done = Done
feature.unsupported = Your device does not support this feature.
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
-mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [lightgray]No mods found!
mods.guide = Modding Guide
@@ -284,12 +284,15 @@ selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Dalga {0}
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = Dalganin baslamasina: {0}
wave.waveInProgress = [lightgray]Wave in progress
waiting = Bekleniyor...
waiting.players = Waiting for players...
wave.enemies = [lightgray]{0} Enemies Remaining
wave.enemy = [lightgray]{0} Enemy Remaining
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
loadimage = Resimden Yukle
saveimage = Resimi kaydet
unknown = Bilinmeyen
@@ -328,6 +331,7 @@ editor.generation = Generation:
editor.ingame = Edit In-Game
editor.publish.workshop = Publish On Workshop
editor.newmap = New Map
+editor.center = Center
workshop = Workshop
waves.title = Waves
waves.remove = Remove
@@ -416,6 +420,7 @@ filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
filter.enemyspawn = Enemy Spawn Select
+filter.spawnpath = Path To Spawn
filter.corespawn = Core Select
filter.median = Median
filter.oremedian = Ore Median
@@ -440,6 +445,7 @@ filter.option.amount = Amount
filter.option.block = Block
filter.option.floor = Floor
filter.option.flooronto = Target Floor
+filter.option.target = Target
filter.option.wall = Wall
filter.option.ore = Ore
filter.option.floor2 = Secondary Floor
@@ -471,15 +477,9 @@ requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.research = Research {0}
requirement.capture = Capture {0}
-resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best: {0}
-launch = Launch
launch.text = Launch
-launch.title = Launch Successful
-launch.next = [lightgray]next opportunity at wave {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
+research.multiplayer = Only the host can research items.
uncover = Uncover
configure = Configure Loadout
loadout = Loadout
@@ -512,6 +512,7 @@ weather.rain.name = Rain
weather.snow.name = Snow
weather.sandstorm.name = Sandstorm
weather.sporestorm.name = Sporestorm
+weather.fog.name = Fog
sectors.unexplored = [lightgray]Unexplored
sectors.resources = Resources:
@@ -521,6 +522,11 @@ sectors.resume = Resume
sectors.launch = Launch
sectors.select = Select
sectors.nonelaunch = [lightgray]none (sun)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
+
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
sector.groundZero.name = Ground Zero
sector.craters.name = The Craters
@@ -560,6 +566,10 @@ settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
settings.clearsaves = Clear Saves
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
paused = Duraklatildi
clear = Clear
banned = [scarlet]Banned
@@ -570,12 +580,14 @@ info.title = [accent]Bilgi
error.title = [crimson]Bir hata olustu
error.crashtitle = Bir hata olustu
unit.nobuild = [scarlet]Unit can't build
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = Input
stat.output = Output
stat.booster = Booster
stat.tiles = Required Tiles
stat.affinities = Affinities
-block.unknown = [lightgray]???
stat.powercapacity = Guc kapasitesi
stat.powershot = Guc/Saldiri hizi
stat.damage = Damage
@@ -594,6 +606,7 @@ stat.powerconnections = Max Connections
stat.poweruse = Guc kullanimi
stat.powerdamage = Power/Damage
stat.itemcapacity = Esya kapasitesi
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = Base Power Generation
stat.productiontime = Production Time
stat.repairtime = Block Full Repair Time
@@ -613,6 +626,28 @@ stat.reload = Yeniden doldurma
stat.ammo = Ammo
stat.shieldhealth = Shield Health
stat.cooldowntime = Cooldown Time
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
@@ -624,6 +659,7 @@ bar.powerbalance = Power: {0}
bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
+bar.powerlines = Connections: {0}/{1}
bar.items = Items: {0}
bar.capacity = Capacity: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = Build Progress
bar.input = Input
bar.output = Output
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -642,12 +680,15 @@ bullet.homing = [stat]homing
bullet.shock = [stat]shock
bullet.frag = [stat]frag
bullet.knockback = [stat]{0}[lightgray] knockback
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x reload
unit.blocks = Yapilar
+unit.blockssquared = blocks²
unit.powersecond = saniyede bir
unit.liquidsecond = Saniyede bir
unit.itemssecond = Saniyede bir
@@ -670,7 +711,7 @@ category.power = Guc
category.liquids = sivilar
category.items = esyalar
category.crafting = uretim
-category.shooting = sikma
+category.function = Function
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows
@@ -679,7 +720,6 @@ setting.linear.name = Linear Filtering
setting.hints.name = Hints
setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
setting.buildautopause.name = Auto-Pause Building
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -691,7 +731,7 @@ setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS
setting.fpscap.none = Yok
setting.fpscap.text = {0} FPS
-setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
+setting.uiscale.name = UI Scaling[lightgray] (requires restart)[]
setting.swapdiagonal.name = Always Diagonal Placement
setting.difficulty.training = training
setting.difficulty.easy = kolay
@@ -713,7 +753,6 @@ setting.fullscreen.name = Tam ekran
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
setting.fps.name = FPS'i goster
setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate [lightgray](may decrease performance)
setting.minimap.name = Haritayi goster
@@ -822,6 +861,7 @@ mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
rules.reactorexplosions = Reactor Explosions
+rules.schematic = Schematics Allowed
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -847,6 +887,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
+rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -858,6 +899,7 @@ content.item.name = Esyalar
content.liquid.name = Sivilar
content.unit.name = Units
content.block.name = Blocks
+
item.copper.name = Bakir
item.lead.name = Kursun
item.coal.name = Komur
@@ -879,23 +921,6 @@ liquid.slag.name = Slag
liquid.oil.name = Benzin
liquid.cryofluid.name = kriyo sivisi
-item.explosiveness = [lightgray]Patlayicilik: {0}
-item.flammability = [lightgray]Yanbilirlik: {0}
-item.radioactivity = [lightgray]Radyoaktivite: {0}
-
-unit.health = [lightgray]Can: {0}
-unit.speed = [lightgray]hiz: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]isinma kapasitesi: {0}
-liquid.viscosity = [lightgray]Yari sivilik: {0}
-liquid.temperature = [lightgray]isi: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -936,6 +961,7 @@ block.cliff.name = Cliff
block.sand-boulder.name = Sand Boulder
block.grass.name = Grass
block.slag.name = Slag
+block.space.name = Space
block.salt.name = Salt
block.salt-wall.name = Salt Wall
block.pebbles.name = Pebbles
@@ -981,6 +1007,7 @@ block.darksand-water.name = Dark Sand Water
block.char.name = Char
block.dacite.name = Dacite
block.dacite-wall.name = Dacite Wall
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = Ice Snow
block.stone-wall.name = Stone Wall
block.ice-wall.name = Ice Wall
@@ -1075,6 +1102,7 @@ block.power-source.name = sonsuz guc
block.unloader.name = bekletici
block.vault.name = kasa
block.wave.name = Dalga
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1114,6 +1142,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
@@ -1139,6 +1168,7 @@ block.hyper-processor.name = Hyper Processor
block.logic-display.name = Logic Display
block.large-logic-display.name = Large Logic Display
block.memory-cell.name = Memory Cell
+block.memory-bank.name = Memory Bank
team.blue.name = blue
team.crux.name = red
@@ -1302,4 +1332,4 @@ block.cyclone.description = A large rapid fire turret.
block.spectre.description = A large turret which shoots two powerful bullets at once.
block.meltdown.description = A large turret which shoots powerful long-range beams.
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties
index 395e062453..5087985f0c 100644
--- a/core/assets/bundles/bundle_tr.properties
+++ b/core/assets/bundles/bundle_tr.properties
@@ -20,8 +20,8 @@ gameover = Kaybettin
gameover.pvp = [accent] {0}[] Takımı kazandı!
highscore = [accent]Yeni rekor!
copied = Panoya Kopyalandı.
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = [accent]v6[] şu anda [accent]beta aşamasındadır[].\n[lightgray]Bu demektir ki:[]\n[scarlet]- Mücadele modu tamamlanmamıştır[]\n- Müzik ve ses efektleri tamamlanmamıştır veya eksiktir\n- Gördüğün her şey değişime ya da kaldırılmaya açıktır.\n\nHataları ve çökmeleri [accent]Github[]'da bildir.
+indev.notready = Oyunun bu kısmı henüz hazır değil.
load.sound = Sesler
load.map = Haritalar
@@ -42,19 +42,20 @@ schematic = Şema
schematic.add = Şemayı Kaydet...
schematics = Şemalar
schematic.replace = Aynı isimde bir şema zaten var. Üzerine yazılsın mı?
-schematic.exists = A schematic by that name already exists.
+schematic.exists = Aynı isimde bir şema zaten var.
schematic.import = Şema İçeri Aktar...
schematic.exportfile = Dışa Aktar
schematic.importfile = İçe Aktar
-schematic.browseworkshop = Workshop'u incele
+schematic.browseworkshop = Atölyeyi incele
schematic.copy = Panoya Kopyala
schematic.copy.import = Panodan İçeri Aktar
-schematic.shareworkshop = Workshop'ta Kaydet
+schematic.shareworkshop = Atölyede Kaydet
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Şemayı döndür
schematic.saved = Şema Kaydedildi.
schematic.delete.confirm = Bu şema tamamen yok edilecek.
schematic.rename = Şemayı yeniden adlandır
schematic.info = {0}x{1}, {2} blok
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = Yenilen Dalgalar:[accent] {0}
stat.enemiesDestroyed = Yok Edilen Düşmanlar:[accent] {0}
@@ -62,10 +63,10 @@ stat.built = İnşa Edilen Yapılar:[accent] {0}
stat.destroyed = Yok Edilen Yapılar:[accent] {0}
stat.deconstructed = Yıkılan Yapılar:[accent] {0}
stat.delivered = Gönderilen Kaynaklar:
-stat.playtime = Time Played:[accent] {0}
+stat.playtime = Oynama Süresi:[accent] {0}
stat.rank = Rütbe: [accent]{0}
-globalitems = [accent]Global Items
+globalitems = [accent]Toplanan Kaynaklar
map.delete = "[accent]{0}[]" haritasını silmek istediğine emin misin?
level.highscore = Rekor: [accent]{0}
level.select = Seviye Seçimi
@@ -82,7 +83,7 @@ none =
minimap = Harita
position = Pozisyon
close = Kapat
-website = Website
+website = Web sitesi
quit = Çık
save.quit = Kaydet & Çık
maps = Haritalar
@@ -100,22 +101,21 @@ done = Bitti
feature.unsupported = Cihazınızda bu özellik desteklenmemektedir.
mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry GitHub'ı veya Discord'una bildirin.
-mods.alpha = [accent](Alpha)
mods = Modlar
mods.none = [lightgray]Hiç mod bulunamadı!
mods.guide = Mod Rehberi
mods.report = Hata bildir
mods.openfolder = Mod klasörünü aç
-mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reload = Yeniden Yükle
+mods.reloadexit = Modları yeniden yüklemek için oyun kapanacak.
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Etkin
mod.disabled = [scarlet]Devre Dışı
mod.disable = Devre Dışı Bırak
-mod.content = Content:
+mod.content = İçerik:
mod.delete.error = Mod silinemiyor. Dosya kullanımda olabilir.
-mod.requiresversion = [scarlet]Gereken en düşük oun versiyonu: [accent]{0}
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
+mod.requiresversion = [scarlet]Gereken en düşük oyun versiyonu: [accent]{0}
+mod.outdated = [scarlet]V6 ile uyumlu değil (minGameVersion: 105 yok)
mod.missingdependencies = [scarlet]Bu modun çalışması için gereken modlar: {0}
mod.erroredcontent = [scarlet]İçerik hatası.
mod.errors = İçerik yüklenirken bir hata oluştu.
@@ -125,9 +125,9 @@ mod.enable = Etkinleştir
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli
mod.import = Mod İçeri Aktar
-mod.import.file = Import File
+mod.import.file = Dosya İçeri Aktar
mod.import.github = GitHub Modu İçeri Aktar
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
+mod.jarwarn = [scarlet]Jar modları doğası gereği güvenli değildir.[]\nBu modu güvenilir bir kaynaktan içeri aktardığına emin ol!
mod.item.remove = Bu eşya[accent] '{0}'[] modunun bir parçası. Kaldırmak için modu silebilirsiniz.
mod.remove.confirm = Bu mod silinecek.
mod.author = [lightgray]Yayıncı:[] {0}
@@ -139,8 +139,8 @@ mod.scripts.disable = Your device does not support mods with scripts. You must d
about.button = Hakkında
name = İsim:
noname = Bir[accent] kullanıcı adı[] seçmelisin.
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = Gezegen Haritası
+launchcore = Kalkış
filename = Dosya Adı:
unlocked = Yeni içerik açıldı!
completed = [accent]Tamamlandı
@@ -148,11 +148,11 @@ techtree = Teknoloji Ağacı
research.list = [lightgray]Araştırmalar:
research = Araştır
researched = [lightgray]{0} Araştırıldı.
-research.progress = {0}% complete
+research.progress = %{0} tamamlandı
players = {0} çevrimiçi oyuncu
players.single = {0} çevrimiçi oyuncu
-players.search = search
-players.notfound = [gray]no players found
+players.search = ara
+players.notfound = [gray]hiç oyuncu bulunamadı
server.closing = [accent]Sunucu kapatılıyor...
server.kicked.kick = Sunucudan atıldın!
server.kicked.whitelist = Beyaz listede değilsin.
@@ -185,9 +185,9 @@ server.refreshing = Sunucu yenileniyor
hosts.none = [lightgray]Yerel oyun bulunamadı!
host.invalid = [scarlet]Kurucuya bağlanılamıyor.
-servers.local = Local Servers
-servers.remote = Remote Servers
-servers.global = Community Servers
+servers.local = Yerel Sunucular
+servers.remote = Uzak Sunucular
+servers.global = Topluluk Sunucuları
trace = Oyuncuyu Takip Et
trace.playername = Oyuncu İsmi: [accent]{0}
@@ -234,22 +234,22 @@ save.none = Kayıt bulunamadı!
savefail = Oyun kaydedilemedi!
save.delete.confirm = Bu kaydı silmek istediğine emin misin?
save.delete = Sil
-save.export = Kayıdı Dışa Aktar
+save.export = Kaydı Dışa Aktar
save.import.invalid = [accent]Bu kayıt geçersiz!
save.import.fail = [crimson]Kayıt içe aktarılamadı: [accent]{0}
save.export.fail = [crimson]Kayıt dışa aktarılamadı: [accent]{0}
-save.import = Kayıdı İçe Aktar
+save.import = Kaydı İçe Aktar
save.newslot = İsmi kaydet:
save.rename = Yeniden isimlendir
save.rename.text = Yeni isim:
selectslot = Bir kayıt seçin.
-slot = [accent]Slot {0}
+slot = [accent]Yuva {0}
editmessage = Mesajı Düzenle
save.corrupted = [accent]Kayıt dosyası bozuk veya geçersiz!
empty =
on = Aç
off = Kapa
-save.autosave = Otomatk kayıt: {0}
+save.autosave = Otomatik kayıt: {0}
save.map = Harita: {0}
save.wave = Dalga {0}
save.mode = Oyun modu: {0}
@@ -269,27 +269,30 @@ copylink = Bağlantıyı Kopyala
back = Geri
data.export = Veriyi Dışa Aktar
data.import = Veriyi İçe Aktar
-data.openfolder = Open Data Folder
+data.openfolder = Veri Klasörü Aç
data.exported = Veri dışa aktarıldı.
data.invalid = Bu oyun verisi geçerli değil.
data.import.confirm = Dışarıdan içeri veri aktarmak şu anki verilerinizin [scarlet]tamamını[] silecektir.[accent]Bu işlem geri alınamaz![]\n\nVeri içeri aktarıldığında oyundan çıkacaksınız.
quit.confirm = Çıkmak istediğinize emin misiniz?
-quit.confirm.tutorial = Ne yaptığınıza emin misiniz?\nÖğreticiyi [accent] Ayarlar->Oyun->Öğreticiyi Yeniden Al'dan[] tekrar yapabilirsiniz.
+quit.confirm.tutorial = Ne yaptığınıza emin misiniz?\nÖğreticiyi [accent] Ayarlar -> Oyun -> Öğreticiyi Yeniden Al[]'dan tekrar yapabilirsiniz.
loading = [accent]Yükleniyor...
reloading = [accent]Modlar Yeniden Yükleniyor...
saving = [accent]Kayıt ediliyor...
-respawn = [accent][[{0}][] to respawn in core
-cancelbuilding = Planı temizlemek için [accent][[{0}][]
-selectschematic = Seçmek ve kopyalamak için [accent][[{0}][]
-pausebuilding = İnşaatı durdurmak için [accent][[{0}][]
-resumebuilding = İnşaata devam etmek için [scarlet][[{0}][]
+respawn = [accent][[{0}][] Çekirdekte yeniden doğ
+cancelbuilding = [accent][[{0}][] Planı temizle
+selectschematic = [accent][[{0}][] Seç ve kopyala
+pausebuilding = [accent][[{0}][] İnşaatı durdur
+resumebuilding = [scarlet][[{0}][] İnşaata devam et
wave = [accent]Dalga {0}
+wave.cap = [accent]Dalga {0}/{1}
wave.waiting = [lightgray]{0} saniye içinde dalga başlayacak
wave.waveInProgress = [lightgray]Dalga gerçekleşiyor
waiting = [lightgray]Bekleniliyor...
waiting.players = Oyuncular bekleniliyor...
wave.enemies = [lightgray]{0} Tane Düşman Kaldı
wave.enemy = [lightgray]{0} Tane Düşman Kaldı
+wave.guardianwarn = [accent]{0}[] dalga sonra gardiyan yaklaşıyor.
+wave.guardianwarn.one = [accent]{0}[] dalga sonra gardiyan yaklaşıyor.
loadimage = Resim Aç
saveimage = Resim Kaydet
unknown = Bilinmeyen
@@ -307,7 +310,7 @@ map.publish.confirm = Bu haritayı yayınlamak istediğinize emin misiniz?\n[lig
workshop.menu = Bu eşya ile ne yapmak istediğinizi seçin.
workshop.info = Eşya açıklaması
changelog = Değişim Listesi (isteğe bağlı):
-eula = Steam Kullanıvı Sözleşmesi
+eula = Steam Kullanıcı Sözleşmesi
missing = Bu eşya silinmiş veya taşınmış.\n[lightgray]Workshop listesinden kaldırıldı.
publishing = [accent]Yayınlanıyor...
publish.confirm = Bunu yayınlamak istediğinize emin misiniz?\n[lightgray]önce Atölye Sözleşmesine uyduğunuza emin olun, yoksa yapıtlarınız gözükmeyecektir!
@@ -328,6 +331,7 @@ editor.generation = Oluşum:
editor.ingame = Oyun içinde düzenle
editor.publish.workshop = Atölyede Yayınla
editor.newmap = Yeni Harita
+editor.center = Ortala
workshop = Atölye
waves.title = Dalgalar
waves.remove = Kaldır
@@ -335,9 +339,9 @@ waves.never =
waves.every = her
waves.waves = dalga(lar)
waves.perspawn = doğma noktası başına
-waves.shields = shields/wave
+waves.shields = kalkan/dalga
waves.to = doğru
-waves.guardian = Guardian
+waves.guardian = Gardiyan
waves.preview = Önizleme
waves.edit = Düzenle...
waves.copy = Panodan kopyala
@@ -346,9 +350,9 @@ waves.invalid = Panoda geçersiz dalga sayısı var.
waves.copied = Dalgalar kopyalandı.
waves.none = Düşman bulunamadı.\nBoş dalga düzenlerin otomatik olarak varsayılan düzenle değiştirileceğini unutmayın
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
+wavemode.counts = miktarlar
+wavemode.totals = toplamlar
+wavemode.health = can
editor.default = [lightgray]
details = Detaylar...
@@ -401,7 +405,7 @@ toolmode.replace = Değiştir
toolmode.replace.description = Sadece katı blokların üzerinde çizer.
toolmode.replaceall = Hepsini Değiştir
toolmode.replaceall.description = Haritadaki bütün blokları değiştirir.
-toolmode.orthogonal = Dik
+toolmode.orthogonal = Çizgi
toolmode.orthogonal.description = Sadece dik çizgiler çizer.
toolmode.square = Kare
toolmode.square.description = Kare fırça.
@@ -415,8 +419,9 @@ toolmode.drawteams.description = Bloklar yerine takımları çizer..
filters.empty = [lightgray]Hiç filtre yok! Aşağıdaki butonla bir adet ekleyin.
filter.distort = Çarpıt
filter.noise = Gürültü
-filter.enemyspawn = Enemy Spawn Select
-filter.corespawn = Core Select
+filter.enemyspawn = Düşman Doğma Alanı Seçimi
+filter.spawnpath = Doğma Noktasına Yol
+filter.corespawn = Çekirdek Seçimi
filter.median = Medyan
filter.oremedian = Maden Medyanı
filter.blend = Geçiş
@@ -436,10 +441,11 @@ filter.option.circle-scale = Daire Ölçek
filter.option.octaves = Oktavlar
filter.option.falloff = Düşüş
filter.option.angle = Açı
-filter.option.amount = Amount
+filter.option.amount = Miktar
filter.option.block = Blok
filter.option.floor = Zemin
filter.option.flooronto = Hedef Zemin
+filter.option.target = Target
filter.option.wall = Duvar
filter.option.ore = Maden
filter.option.floor2 = İkincil Duvar
@@ -451,7 +457,7 @@ width = Eni:
height = Boyu:
menu = Menü
play = Oyna
-campaign = Başla
+campaign = Mücadele
load = Yükle
save = Kaydet
fps = FPS: {0}
@@ -469,24 +475,18 @@ locked = Kilitli
complete = [lightgray]Ulaş:
requirement.wave = Bölge {1}'de Dalga {0}
requirement.core = {0}`da Düşman Çekirdeği Yok Et
-requirement.research = Research {0}
-requirement.capture = Capture {0}
-resume = Bölgeye Devam Et:\n[lightgray]{0}
+requirement.research = {0} araştır
+requirement.capture = {0} sektörünü ele geçir
bestwave = [lightgray]En İyi Dalga: {0}
-launch = < KALKIŞ >
-launch.text = Launch
-launch.title = Kalkış Başarılı
-launch.next = [lightgray]Bir sonraki imkan {0}. dalgada olacak.
-launch.unable2 = [scarlet]KALKIŞ mümkün değil.[]
-launch.confirm = Bu işlem çekirdeğinizdeki bütün kaynakları yollayacak.\nBu üsse geri dönemeyeceksiniz.
-launch.skip.confirm = Eğer şimdi geçerseniz,
+launch.text = Kalkış
+research.multiplayer = Sadece kurucu araştırma yapabilir.
uncover = Aç
configure = Ekipmanı Yapılandır
-loadout = Loadout
-resources = Resources
+loadout = Yükleme
+resources = Kaynaklar
bannedblocks = Yasaklı Bloklar
addall = Hepsini Ekle
-launch.destination = Destination: {0}
+launch.destination = Varış Yeri: {0}
configure.invalid = Miktar 0 ve {0} arasında bir sayı olmalı.
zone.unlocked = [lightgray]{0} kilidi açıldı.
zone.requirement.complete = {0}. dalgaya ulaşıldı:\n{1} bölge şartları karşılandı.
@@ -498,7 +498,7 @@ add = Ekle...
boss.health = Boss Canı
connectfail = [crimson]Bağlantı hatası:\n\n[accent]{0}
-error.unreachable = Sunucuya ulaşılamıyor.\nAdrwsin doğru yazıldığına emin misiniz?
+error.unreachable = Sunucuya ulaşılamıyor.\nAdresin doğru yazıldığına emin misiniz?
error.invalidaddress = Geçersiz adres.
error.timedout = Zaman aşımı!\nSunucunun port yönlendirmeyi ayarladığına ve adresin doğru olduğuna emin olun!
error.mismatch = Paket hatası:\nSunucu ve alıcı arasında versiyon uyuşmazlığı ihtimali var.\nHem sizde hem de sunucuda Mindustry'nin en son sürümü yüklü olduğuna emin olun!
@@ -508,43 +508,49 @@ error.io = Ağ I/O hatası.
error.any = Bilinmeyen ağ hatası.
error.bloom = Kamaşma başlatılamadı.\nCihazınız bu özelliği desteklemiyor olabilir.
-weather.rain.name = Rain
-weather.snow.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
+weather.rain.name = Yağmur
+weather.snow.name = Kar
+weather.sandstorm.name = Kum Fırtınası
+weather.sporestorm.name = Spor Yağmuru
+weather.fog.name = Sis
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
-sectors.nonelaunch = [lightgray]none (sun)
+sectors.unexplored = [lightgray]Keşfedilmemiş
+sectors.resources = Kaynaklar:
+sectors.production = Üretim:
+sectors.stored = Depolanan:
+sectors.resume = Devam Et
+sectors.launch = Kalkış
+sectors.select = Seç
+sectors.nonelaunch = [lightgray]yok (güneş)
+sectors.rename = Sektörü Yeniden Adlandır
+sector.missingresources = [scarlet]Yetersiz Çekirdek Kaynakları
-sector.groundZero.name = Ground Zero
-sector.craters.name = The Craters
-sector.frozenForest.name = Frozen Forest
-sector.ruinousShores.name = Ruinous Shores
-sector.stainedMountains.name = Stained Mountains
-sector.desolateRift.name = Desolate Rift
-sector.nuclearComplex.name = Nuclear Production Complex
-sector.overgrowth.name = Overgrowth
-sector.tarFields.name = Tar Fields
-sector.saltFlats.name = Salt Flats
-sector.fungalPass.name = Fungal Pass
+planet.serpulo.name = Serpulo
+planet.sun.name = Güneş
-sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
-sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
-sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
-sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
-sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
-sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
-sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
-sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
-sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
-sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
+sector.groundZero.name = Sıfır Noktası
+sector.craters.name = Kraterler
+sector.frozenForest.name = Donmuş Orman
+sector.ruinousShores.name = Harap Kıyılar
+sector.stainedMountains.name = Lekeli Dağlar
+sector.desolateRift.name = Issız Aralık
+sector.nuclearComplex.name = Kompleks Nükleer Üretimi
+sector.overgrowth.name = Fazla Büyüme
+sector.tarFields.name = Katran Alanları
+sector.saltFlats.name = Tuz Düzlükleri
+sector.fungalPass.name = Mantar Geçidi
+
+sector.groundZero.description = Yeniden başlamak için ideal bölge. Düşük düşman tehlikesi ve az miktarda kaynak mevcut. Mümkün olduğunca çok bakır ve kurşun topla.\nİlerle.
+sector.frozenForest.description = Burada, dağlara yakın bölgelerde bile sporlar etrafa yayıldı. Dondurucu soğuk onları sonsuza dek durduramaz.\n\nEnerji kullanmaya başla. Termik jeneratörler inşa et. Tamircileri kullanmayı öğren.
+sector.saltFlats.description = Çölün kenar kısımlarında tuz düzlükleri uzanır. Bu konumda az miktarda kaynak bulunur.\n\nDüşman burada kompleks bir kaynak depolama sistemi inşa etti. Çekirdeklerini yok et. Ayakta hiçbir şey bırakma.
+sector.craters.description = Eski savaşların bir anıtı olan bu kratere su dolmuş. Alanı yeniden ele geçir. Kum topla ve metacam üret. Taret ve matkapları soğutmak için su pompala.
+sector.ruinousShores.description = Yıkıntıların ardında bir kıyı var. Bir zamanlar bu konum bir dizi kıyı defansına ev sahipliği yapmış. Geriye pek bir şey kalmamış. Sadece en temel savunma yapıları zarar görmeden kaldı, onun dışındaki her şey hurdaya geri dönüştü.\nDışa doğru genişletmeye devam et. Teknolojiyi yeniden keşfet.
+sector.stainedMountains.description = Daha uzaklarda dağlar uzanıyor, daha sporlar tarafından istilaya uğramamışlar.\nAlandaki serbest titanyumu çıkart ve kullanmasını öğren.\n\nDüşman varlığı burada daha fazla. Onların daha güçlü birimlerini göndermelerine izin verme.
+sector.overgrowth.description = Bu alan aşırı büyümüştür, sporların kaynağına daha yakındır.\nDüşman burada bir merkez kurdu. Titan birlikleri inşa et. Onu yok et. Kaybedileni geri al.
+sector.tarFields.description = Bir petrol üretim bölgesinin eteklerinde, dağların ve çölün arasındadır. Birkaç kullanılabilir katran rezervlerinden biri. \nTerk edilmiş olmasına rağmen, bu alan yakınlarda bazı tehlikeli düşman güçlerine sahip. Onları küçümseme.\n\n[lightgray]Mümkünse petrol üretme teknolojisini araştır.
+sector.desolateRift.description = Aşırı tehlikeli bir bölge. Bol kaynaklar, ama az yer mevcut. Yüksek yıkım riski. Mümkün olduğunca çabuk ayrılmaya çalış. Düşman saldırıları arasındaki uzun mesafeye aldanma.
+sector.nuclearComplex.description = Toryum üretimi ve işlenmesi için eski bir tesistir, harabeye dönüşmüştür.\n[lightgray]Toryumu ve onun birçok kullanımını araştır. \n\nDüşman burada çok sayıda mevcut ve sürekli saldırganları arıyorlar.
+sector.fungalPass.description = Yüksek dağlar ve daha alçak, sporla dolu topraklar arasında bir geçiş alanıdır. Burada küçük bir düşman keşif üssü bulunuyor.\nOnu yok et.\nDagger ve Crawler birlikleri kullan. İki çekirdeği çıkar.
settings.language = Dil
settings.data = Oyun Verisi
@@ -557,25 +563,31 @@ settings.sound = Ses
settings.graphics = Grafikler
settings.cleardata = Oyun Verisini Sil...
settings.clear.confirm = Verileri silmek istediğinizden emin misiniz?\nBu işlemi geri alamazsınız!
-settings.clearall.confirm = [scarlet]Uyarı![]\nBu işlem kayıtlar, haritalar açılan bloklar ve tuş atamaları dahil bütün verileri silecektir.\n"ok" tuşuna bastığınızda bütün verileriniz silinecek ve oyun kapanacaktır.
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
+settings.clearall.confirm = [scarlet]Uyarı![]\nBu işlem kayıtlar, haritalar açılan bloklar ve tuş atamaları dahil bütün verileri silecektir.\n"Tamam" tuşuna bastığınızda bütün verileriniz silinecek ve oyun kapanacaktır.
+settings.clearsaves.confirm = Tüm kayıtlarınızı silmek istediğinizden emin misiniz?
+settings.clearsaves = Kayıtları Sil
+settings.clearresearch = Araştırma Verisini Sil
+settings.clearresearch.confirm = Mücadele modundaki yaptığınız tüm araştırmaları sıfırlamak istediğinize emin misiniz?
+settings.clearcampaignsaves = Mücadele Kayıt Verisini Sil
+settings.clearcampaignsaves.confirm = Mücadele modundaki oynadığınız tüm sektörleri sıfırlamak istediğinize emin misiniz?
paused = [accent]
clear = Temizle
banned = [scarlet]Yasaklı
-unplaceable.sectorcaptured = [scarlet]Requires captured sector
+unplaceable.sectorcaptured = [scarlet]Ele geçirilmiş sektör gerekir
yes = Evet
no = Hayır
info.title = Bilgi
error.title = [crimson]Bir hata oldu
error.crashtitle = Bir hata oldu
-unit.nobuild = [scarlet]Unit can't build
+unit.nobuild = [scarlet]Birlik inşa edemiyor
+lastaccessed = [lightgray]Son Erişme: {0}
+block.unknown = [lightgray]???
+
stat.input = Giriş
stat.output = Çıkış
stat.booster = Güçlendirici
-stat.tiles = Required Tiles
-stat.affinities = Affinities
-block.unknown = [lightgray]???
+stat.tiles = Gereken Kare
+stat.affinities = Yakınlıklar
stat.powercapacity = Enerji Kapasitesi
stat.powershot = Enerji/Atış
stat.damage = Hasar
@@ -585,15 +597,16 @@ stat.itemsmoved = Hareket Hızı
stat.launchtime = Fırlatmalar Arasındaki Süre
stat.shootrange = Menzil
stat.size = Boyut
-stat.displaysize = Display Size
+stat.displaysize = Gösterim Boyutu
stat.liquidcapacity = Sıvı Kapasitesi
stat.powerrange = Enerji Menzili
-stat.linkrange = Link Range
-stat.instructions = Instructions
-stat.powerconnections = Bağlantı sayısı
+stat.linkrange = Bağlantı Menzili
+stat.instructions = Talimatlar
+stat.powerconnections = Bağlantı Sayısı
stat.poweruse = Enerji Kullanımı
stat.powerdamage = Enerji/Hasar
stat.itemcapacity = Eşya Kapasitesi
+stat.memorycapacity = Bellek Kapasitesi
stat.basepowergeneration = Temel Enerji Üretimi
stat.productiontime = Üretim Süresi
stat.repairtime = Tamir Tamir Edilme Süresi
@@ -605,49 +618,77 @@ stat.boosteffect = Hızlandırma Efekti
stat.maxunits = Maksimum Aktif Birim
stat.health = Can
stat.buildtime = İnşaat Süresi
-stat.maxconsecutive = Max Consecutive
+stat.maxconsecutive = Art Arda En Fazla
stat.buildcost = İnşaat Fiyatı
stat.inaccuracy = İskalama Oranı
stat.shots = Atışlar
stat.reload = Atışlar/Sn
stat.ammo = Mermi
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
+stat.shieldhealth = Kalkan Canı
+stat.cooldowntime = Soğuma Süresi
+stat.explosiveness = Patlayıcılık
+stat.basedeflectchance = Mermi Sekme Şansı
+stat.lightningchance = Yıldırım Çarpma Şansı
+stat.lightningdamage = Yıldırım Hasarı
+stat.flammability = Yanıcılık
+stat.radioactivity = Radyoaktivite
+stat.heatcapacity = Isı Kapasitesi
+stat.viscosity = Viskosite
+stat.temperature = Sıcaklık
+stat.speed = Hız
+stat.buildspeed = İnşa Hızı
+stat.minespeed = Kazı Hızı
+stat.minetier = Kazı Seviyesi
+stat.payloadcapacity = Yük Kapasitesi
+stat.commandlimit = Komut Limiti
+stat.abilities = Kabiliyetler
+
+ability.forcefield = Güç Kalkanı
+ability.repairfield = Onarma Alanı
+ability.statusfield = Hızlandırma Alanı
+ability.unitspawn = {0} Birliği Fabrikası
+ability.shieldregenfield = Kalkan Yenileme Alanı
bar.drilltierreq = Daha İyi Matkap Gerekli
-bar.noresources = Missing Resources
-bar.corereq = Core Base Required
+bar.noresources = Eksik Kaynaklar
+bar.corereq = Çekirdek Tabanı Gerekli
bar.drillspeed = Matkap Hızı: {0}/s
-bar.pumpspeed = Pump Speed: {0}/s
+bar.pumpspeed = Pompa Hızı: {0}/s
bar.efficiency = Verim: {0}%
bar.powerbalance = Enerji: {0}/sn
bar.powerstored = Depolanan: {0}/{1}
bar.poweramount = Enerji: {0}
bar.poweroutput = Enerji Üretimi: {0}
+bar.powerlines = Bağlantılar: {0}/{1}
bar.items = Eşyalar: {0}
bar.capacity = Kapasite: {0}
bar.unitcap = {0} {1}/{2}
-bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled]
+bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[birlik engellendi]
bar.liquid = Sıvı
bar.heat = Isı
bar.power = Enerji
-bar.progress = Build Progress
+bar.progress = İnşa İlerlemesi
bar.input = Girdi
bar.output = Çıktı
-bullet.damage = [stat]{0}[lightgray] hasar
-bullet.splashdamage = [stat]{0}[lightgray] alan hasarı ~[stat] {1}[lightgray] kare
+units.processorcontrol = [lightgray]İşlemci Kontrolünde
+
+bullet.damage = [stat]{0} [lightgray]hasar
+bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]kare
bullet.incendiary = [stat]yakıcı
bullet.homing = [stat]güdümlü
bullet.shock = [stat]şoklayıcı
bullet.frag = [stat]parça tesirli
-bullet.knockback = [stat]{0}[lightgray] savurma
+bullet.knockback = [stat]{0} [lightgray]savurma
+bullet.pierce = [stat]{0}[lightgray]x delme
+bullet.infinitepierce = [stat]delme
bullet.freezing = [stat]dondurucu
bullet.tarred = [stat]katranlı
bullet.multiplier = [stat]{0}[lightgray]x mermi çarpanı
bullet.reload = [stat]{0}[lightgray]x atış hızı
-unit.blocks = bloklar
+unit.blocks = blok
+unit.blockssquared = blok²
unit.powersecond = enerji birimi/saniye
unit.liquidsecond = sıvı birimi/saniye
unit.itemssecond = eşya/saniye
@@ -655,12 +696,12 @@ unit.liquidunits = sıvı birimi
unit.powerunits = enerji birimi
unit.degrees = derece
unit.seconds = saniye
-unit.minutes = mins
+unit.minutes = dakika
unit.persecond = /sn
-unit.perminute = /min
+unit.perminute = /dk
unit.timesspeed = x hız
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = kalkan canı
unit.items = eşya
unit.thousands = k
unit.millions = mil
@@ -670,20 +711,19 @@ category.power = Enerji
category.liquids = Sıvılar
category.items = Eşyalar
category.crafting = Üretim
-category.shooting = Silahlar
+category.function = Fonksiyon
category.optional = İsteğe Bağlı Geliştirmeler
setting.landscape.name = Yatayda sabitle
setting.shadows.name = Gölgeler
setting.blockreplace.name = Otomatik Blok önerileri
setting.linear.name = Lineer Filtreleme
setting.hints.name = İpuçları
-setting.flow.name = Display Resource Flow Rate[scarlet] (experimental)
+setting.flow.name = Kaynak Geçiş Hızını Göster[scarlet] (deneysel)
setting.buildautopause.name = İnşa etmeyi otomatik olarak durdur
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = Animasyonlu Su
setting.animatedshields.name = Animasyonlu Kalkanlar
-setting.antialias.name = Düzgğnleştirme[lightgray] (yeniden açmak gerekebilir)[]
-setting.playerindicators.name = Player Indicators
+setting.antialias.name = Düzgünleştirme [lightgray](yeniden başlatma gerekebilir)[]
+setting.playerindicators.name = Oyuncu Belirteçleri
setting.indicators.name = Düşman/Müttefik Belirteçleri
setting.autotarget.name = Otomatik Hedef Alma
setting.keyboard.name = Fare+Klavye Kontrolleri
@@ -691,7 +731,7 @@ setting.touchscreen.name = Dokunmatik Ekran Kontrolleri
setting.fpscap.name = Maksimum FPS
setting.fpscap.none = Limitsiz
setting.fpscap.text = {0} FPS
-setting.uiscale.name = UI Ölçeği[lightgray] (yeniden açmak gerekebilir)[]
+setting.uiscale.name = Arayüz Ölçeği [lightgray](yeniden başlatma gerekebilir)[]
setting.swapdiagonal.name = Her Zaman Çapraz Yerleştirme
setting.difficulty.training = Eğitim
setting.difficulty.easy = Kolay
@@ -702,25 +742,24 @@ setting.difficulty.name = Zorluk:
setting.screenshake.name = Ekranı Salla
setting.effects.name = Efektleri Görüntüle
setting.destroyedblocks.name = Kırılmış Blokları Göster
-setting.blockstatus.name = Display Block Status
+setting.blockstatus.name = Blok Durumunu Göster
setting.conveyorpathfinding.name = Konveyör Yol Bulma
setting.sensitivity.name = Kontrolcü Hassasiyeti
setting.saveinterval.name = Kayıt Aralığı
setting.seconds = {0} Saniye
-setting.blockselecttimeout.name = Block Select Timeout
+setting.blockselecttimeout.name = Blok Seçme Zaman Aşımı
setting.milliseconds = {0} milisaniye
setting.fullscreen.name = Tam Ekran
-setting.borderlesswindow.name = Kenarsız Pencere[lightgray] (yeniden açmak gerekebilir)
+setting.borderlesswindow.name = Kenarsız Pencere [lightgray](yeniden açmak gerekebilir)
setting.fps.name = FPS Göster
-setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = Blok seçim tüşlarını göster
+setting.smoothcamera.name = Yumuşak Geçişli Kamera
setting.vsync.name = VSync
-setting.pixelate.name = Pixelleştir[lightgray] (animasyonları kapatır)
+setting.pixelate.name = Pixelleştir [lightgray](animasyonları kapatır)
setting.minimap.name = Haritayı Göster
-setting.coreitems.name = Display Core Items (WIP)
+setting.coreitems.name = Çekirdekteki Eşyaları Göster [lightgray](üzerinde çalışılıyor)
setting.position.name = Oyuncu Noktasını Göster
setting.musicvol.name = Müzik
-setting.atmosphere.name = Show Planet Atmosphere
+setting.atmosphere.name = Gezegen Atmosferini Göster
setting.ambientvol.name = Çevresel Ses
setting.mutemusic.name = Müziği Kapat
setting.sfxvol.name = Oyun Sesi
@@ -728,14 +767,14 @@ setting.mutesound.name = Sesi Kapat
setting.crashreport.name = Anonim Çökme Raporları Gönder
setting.savecreate.name = Otomatik Kayıt Oluştur
setting.publichost.name = Halka Açık Oyunlar
-setting.playerlimit.name = Player Limit
+setting.playerlimit.name = Oyuncu Limiti
setting.chatopacity.name = Mesajlaşma Opaklığı
setting.lasersopacity.name = Enerji Lazeri Opaklığı
-setting.bridgeopacity.name = Bridge Opacity
+setting.bridgeopacity.name = Köprü Opaklığı
setting.playerchat.name = Oyun-içi Konuşmayı Göster
public.confirm = Oyununuzu halka açık yapmak ister misiniz?\n[accent]Oyunlarınıza herkes katılabilecektir.\n[lightgray]Bu seçenek daha sonra Ayarlar->Oyun->Halka Açık Oyunlar'dan değiştirilebilir.
public.beta = Oyunun beta sürümlerinin halka açık lobiler yapamayacağını unutmayın.
-uiscale.reset = UI ölçeği değiştirildi.\nBu ölçeği onaylamak için "OK" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[]
+uiscale.reset = Arayüz ölçeği değiştirildi.\nBu ölçeği onaylamak için "Tamam" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[]
uiscale.cancel = İptal Et ve Çık
setting.bloom.name = Kamaşma
keybind.title = Tuşları Yeniden Ata
@@ -743,25 +782,25 @@ keybinds.mobile = [scarlet]Buradaki çoğu tuş ataması mobilde geçerli değil
category.general.name = Genel
category.view.name = Görünüm
category.multiplayer.name = Çok Oyunculu
-category.blocks.name = Block Select
+category.blocks.name = Blok Seçimi
command.attack = Saldır
command.rally = Toplan
command.retreat = Geri Çekil
-command.idle = Idle
+command.idle = Boşta
placement.blockselectkeys = \n[lightgray]Tuş: [{0},
-keybind.respawn.name = Respawn
-keybind.control.name = Control Unit
+keybind.respawn.name = Yeniden Doğ
+keybind.control.name = Birliği Kontrol Et
keybind.clear_building.name = Binayı Temizle
keybind.press = Bir tuşa basın...
keybind.press.axis = Bir tuşa ya da yöne basın...
keybind.screenshot.name = Harita Ekran Görüntüsü
-keybind.toggle_power_lines.name = Enerji lazerlerini aç/kapa
-keybind.toggle_block_status.name = Toggle Block Statuses
+keybind.toggle_power_lines.name = Enerji Lazerlerini Aç/Kapa
+keybind.toggle_block_status.name = Blok İstatistiklerini Aç/Kapa
keybind.move_x.name = x Ekseninde Hareket
keybind.move_y.name = y Ekseninde Hareket
keybind.mouse_move.name = Fareyi Takip Et
-keybind.pan.name = Pan View
-keybind.boost.name = Boost
+keybind.pan.name = Yatay Kaydırma Görünümü
+keybind.boost.name = Yükselt
keybind.schematic_select.name = Bölge Seç
keybind.schematic_menu.name = Şema Menüsü
keybind.schematic_flip_x.name = Şemayı X ekseninde Döndür
@@ -788,15 +827,15 @@ keybind.diagonal_placement.name = Çapraz Yerleştirme
keybind.pick.name = Blok Seç
keybind.break_block.name = Blok Kır
keybind.deselect.name = Seçimleri Kaldır
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
-keybind.command.name = Command
+keybind.pickupCargo.name = Kargoyu Al
+keybind.dropCargo.name = Kargoyu Bırak
+keybind.command.name = Komut
keybind.shoot.name = Ateş Et
keybind.zoom.name = Yakınlaştırma/Uzaklaştırma
keybind.menu.name = Menü
keybind.pause.name = Durdur
keybind.pause_building.name = İnşaatı Duraklat/İnşaata Devam Et
-keybind.minimap.name = Mini Harita
+keybind.minimap.name = Harita
keybind.chat.name = Konuş
keybind.player_list.name = Oyuncu Listesi
keybind.console.name = Konsol
@@ -807,7 +846,7 @@ keybind.chat_history_prev.name = Sohbet geçmişi önceki
keybind.chat_history_next.name = Sohbet geçmişi sonraki
keybind.chat_scroll.name = Sohbet Kaydırma
keybind.drop_unit.name = Birlik Düşürme
-keybind.zoom_minimap.name = Mini Haritada Yakınlaştırma/Uzaklaştırma
+keybind.zoom_minimap.name = Haritada Yakınlaştırma/Uzaklaştırma
mode.help.title = Modların açıklamaları
mode.survival.name = Hayatta Kalma
mode.survival.description = Normal oyun oyun modu. Kaynak sınırlı ve dalgalar otomatik olarak gönderilir.\n[gray]Oynamak için haritada düşman doğma noktaları olması gerekir.
@@ -822,42 +861,45 @@ mode.custom = Özel Kurallar
rules.infiniteresources = Sınırsız Kaynaklar
rules.reactorexplosions = Reaktör Patlamaları
+rules.schematic = Schematics Allowed
rules.wavetimer = Dalga Zamanlayıcısı
rules.waves = Dalgalar
rules.attack = Saldırı Modu
-rules.buildai = AI Building
+rules.buildai = Yapay Zeka İnşası
rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları
rules.blockhealthmultiplier = Blok Canı Çarpanı
-rules.blockdamagemultiplier = Block Damage Multiplier
+rules.blockdamagemultiplier = Blok Hasarı Çarpanı
rules.unitbuildspeedmultiplier = Birim Üretim Hızı Çarpanı
rules.unithealthmultiplier = Birim Canı Çarpanı
rules.unitdamagemultiplier = Birim Hasarı Çapanı
-rules.enemycorebuildradius = Düşman Çekirdeği İnşa Yasağı Yarıçapı:[lightgray] (kare)
-rules.wavespacing = Dalga Aralığı:[lightgray] (sec)
-rules.buildcostmultiplier = İnşa ücreti Çarpanı
+rules.enemycorebuildradius = Düşman Çekirdeği İnşa Yasağı Yarıçapı: [lightgray](kare)
+rules.wavespacing = Dalga Aralığı: [lightgray](sn)
+rules.buildcostmultiplier = İnşa Ücreti Çarpanı
rules.buildspeedmultiplier = İnşa Hızı Çarpanı
-rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier
+rules.deconstructrefundmultiplier = Yıkım İade Çarpanı
rules.waitForWaveToEnd = Dalgalar Düşmanı Bekler
-rules.dropzoneradius = İniş Noktası Yarıçapı:[lightgray] (kare)
-rules.unitammo = Units Require Ammo
+rules.dropzoneradius = İniş Noktası Yarıçapı: [lightgray](kare)
+rules.unitammo = Birlikler Mermi Gerektiriyor
rules.title.waves = Dalgalar
rules.title.resourcesbuilding = Kaynaklar & İnşa
rules.title.enemy = Düşmanlar
rules.title.unit = Birlikler
rules.title.experimental = Deneysel
-rules.title.environment = Environment
+rules.title.environment = Çevre
rules.lighting = Işıklandırma
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
+rules.enemyLights = Enemy Lights
+rules.fire = Ateş
+rules.explosions = Blok/Birlik Patlama Hasarı
rules.ambientlight = Ortam Işığı
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.weather = Hava
+rules.weather.frequency = Sıklık:
+rules.weather.duration = Süreklilik:
content.item.name = Eşyalar
content.liquid.name = Sıvılar
content.unit.name = Birimler
content.block.name = Bloklar
+
item.copper.name = Bakır
item.lead.name = Kurşun
item.coal.name = Kömür
@@ -879,23 +921,6 @@ liquid.slag.name = Cüruf
liquid.oil.name = Petrol
liquid.cryofluid.name = Kriyosıvı
-item.explosiveness = [lightgray]Patlama: {0}%
-item.flammability = [lightgray]Yanıcılık: {0}%
-item.radioactivity = [lightgray]Radyoaktivite: {0}%
-
-unit.health = [lightgray]Can: {0}
-unit.speed = [lightgray]Hız: {0}
-unit.weapon = [lightgray]Weapon: {0}
-unit.itemcapacity = [lightgray]Item Capacity: {0}
-unit.minespeed = [lightgray]Mining Speed: {0}%
-unit.minepower = [lightgray]Mining Power: {0}
-unit.ability = [lightgray]Ability: {0}
-unit.buildspeed = [lightgray]Building Speed: {0}%
-
-liquid.heatcapacity = [lightgray]Isı Kapasitesi: {0}
-liquid.viscosity = [lightgray]Vizkosite: {0}
-liquid.temperature = [lightgray]Sıcaklık: {0}
-
unit.dagger.name = Dagger
unit.mace.name = Mace
unit.fortress.name = Fortress
@@ -932,26 +957,27 @@ unit.corvus.name = Corvus
block.resupply-point.name = Resupply Point
block.parallax.name = Parallax
-block.cliff.name = Cliff
-block.sand-boulder.name = Kum Kaya Parçaları
+block.cliff.name = Uçurum
+block.sand-boulder.name = Kumlu Kaya Parçaları
block.grass.name = Çimen
-block.slag.name = Slag
+block.slag.name = Cüruf
+block.space.name = Uzay
block.salt.name = Tuz
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = Tuz Duvar
block.pebbles.name = Çakıl Taşları
block.tendrils.name = Tendriller
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = Kum Duvar
block.spore-pine.name = Spor Çamı
-block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
+block.spore-wall.name = Spor Duvar
+block.boulder.name = Kaya Parçaları
+block.snow-boulder.name = Karlı Kaya PArçaları
block.snow-pine.name = Karlı Çam
block.shale.name = Şist
block.shale-boulder.name = Şist Kayası
block.moss.name = Yosun
block.shrubs.name = Çalılık
-block.spore-moss.name = Liken
-block.shale-wall.name = Shale Wall
+block.spore-moss.name = Spor Yosunu
+block.shale-wall.name = Şist Duvar
block.scrap-wall.name = Hurda Duvar
block.scrap-wall-large.name = Büyük Hurda Duvar
block.scrap-wall-huge.name = Dev Hurda Duvar
@@ -979,17 +1005,18 @@ block.craters.name = Krater
block.sand-water.name = Kumlu Su
block.darksand-water.name = Kara Kumlu Su
block.char.name = Kömür
-block.dacite.name = Dacite
-block.dacite-wall.name = Dacite Wall
+block.dacite.name = Dakit
+block.dacite-wall.name = Dakit Duvar
+block.dacite-boulder.name = Dakit Kaya Parçaları
block.ice-snow.name = Buzlu Kar
-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.stone-wall.name = Taş Duvar
+block.ice-wall.name = Buz Duvar
+block.snow-wall.name = Kar Duvar
+block.dune-wall.name = Kara Kum Duvar
block.pine.name = Çam
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
+block.dirt.name = Toprak
+block.dirt-wall.name = Toprak Duvar
+block.mud.name = Çamur
block.white-tree-dead.name = Ölü Beyaz Ağaç
block.white-tree.name = Beyaz Ağaç
block.spore-cluster.name = Spor Kümesi
@@ -1005,15 +1032,15 @@ block.dark-panel-4.name = Kara Panel 4
block.dark-panel-5.name = Kara Panel 5
block.dark-panel-6.name = Kara Panel 6
block.dark-metal.name = Kara Metal
-block.basalt.name = Basalt
+block.basalt.name = Bazalt
block.hotrock.name = Sıcak Kaya
block.magmarock.name = Magma Kayası
block.copper-wall.name = Bakır Duvar
block.copper-wall-large.name = Büyük Bakır Duvar
block.titanium-wall.name = Titanyum Duvar
block.titanium-wall-large.name = Büyük Titanyum Duvar
-block.plastanium-wall.name = Plastanium Wall
-block.plastanium-wall-large.name = Large Plastanium Wall
+block.plastanium-wall.name = Plastanyum Duvar
+block.plastanium-wall-large.name = Büyük Plastanyum Duvar
block.phase-wall.name = Faz Duvar
block.phase-wall-large.name = Büyük Faz Duvar
block.thorium-wall.name = Toryum Duvar
@@ -1027,7 +1054,7 @@ block.hail.name = Hail
block.lancer.name = Lancer
block.conveyor.name = Konveyör
block.titanium-conveyor.name = Titanyum Konveyör
-block.plastanium-conveyor.name = Plastanium Conveyor
+block.plastanium-conveyor.name = Plastanyum Konveyör
block.armored-conveyor.name = Zırhlı Konveyör
block.armored-conveyor.description = Materyalleri titanyum konveyörlerle aynı hızda taşır ama daha fazla zırha sahiptir. Diğer konveyörler dışında yan taraflardan materyal kabul etmez.
block.junction.name = Kavşak
@@ -1036,10 +1063,10 @@ block.distributor.name = Dağıtıcı
block.sorter.name = Ayıklayıcı
block.inverted-sorter.name = Ters Ayıklayıcı
block.message.name = Mesaj
-block.illuminator.name = Illuminator
-block.illuminator.description = A small, compact, configurable light source. Requires power to function.
-block.overflow-gate.name = Taşma Geçiti
-block.underflow-gate.name = Underflow Gate
+block.illuminator.name = Aydınlatıcı
+block.illuminator.description = Küçük, kompakt, yapılandırılabilir bir ışık kaynağı. Çalışması için enerji gerekir.
+block.overflow-gate.name = Taşma Geçidi
+block.underflow-gate.name = Yana Taşma Geçidi
block.silicon-smelter.name = Silikon Fırını
block.phase-weaver.name = Faz Örücü
block.pulverizer.name = Pulverizatör
@@ -1052,7 +1079,7 @@ block.coal-centrifuge.name = Kömür Santrifüjü
block.power-node.name = Enerji Noktası
block.power-node-large.name = Büyük Enerji Noktası
block.surge-tower.name = Akı Kulesi
-block.diode.name = Battery Diode
+block.diode.name = Batarya Diyotu
block.battery.name = Batarya
block.battery-large.name = Büyük Batarya
block.combustion-generator.name = Termik Jeneratör
@@ -1069,12 +1096,13 @@ block.mechanical-pump.name = Mekanik Pompa
block.item-source.name = Sonsuz Eşya Kaynağı
block.item-void.name = Eşya Yokedici
block.liquid-source.name = Sonsuz Sıvı Kaynağı
-block.liquid-void.name = Liquid Void
+block.liquid-void.name = Sıvı Yokedici
block.power-void.name = Enerji Yokedici
block.power-source.name = Sonsuz Enerji Kaynağı
block.unloader.name = Boşaltıcı
block.vault.name = Depo
block.wave.name = Wave
+block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1088,13 +1116,13 @@ block.solar-panel-large.name = Büyük Güneş Paneli
block.oil-extractor.name = Petrol Çıkarıcı
block.repair-point.name = Tamir Noktası
block.pulse-conduit.name = Dalga Borusu
-block.plated-conduit.name = Plated Conduit
+block.plated-conduit.name = Kaplı Boru
block.phase-conduit.name = Faz Borusu
block.liquid-router.name = Sıvı Yönlendiricisi
block.liquid-tank.name = Sıvı Tankı
block.liquid-junction.name = Sıvı Kavşağı
block.bridge-conduit.name = Köprülü Boru
-block.rotary-pump.name = Rotary Pompa
+block.rotary-pump.name = Döner Pompa
block.thorium-reactor.name = Toryum Reaktörü
block.mass-driver.name = Kütle Sürücüsü
block.blast-drill.name = Hava Patlamalı Matkap
@@ -1108,49 +1136,51 @@ block.surge-wall-large.name = Büyük Akı Duvarı
block.cyclone.name = Cyclone
block.fuse.name = Fuse
block.shock-mine.name = Şok Mayını
-block.overdrive-projector.name = Aşırı Yükleme Projektörü
+block.overdrive-projector.name = Hızlandırma Projektörü
block.force-projector.name = Kalkan Projektörü
block.arc.name = Arc
block.rtg-generator.name = RTG Jeneratörü
block.spectre.name = Spectre
block.meltdown.name = Meltdown
+block.foreshadow.name = Foreshadow
block.container.name = Konteyner
block.launch-pad.name = Kalkış Pisti
block.launch-pad-large.name = Büyük Kalkış Pisti
block.segment.name = Segment
-block.command-center.name = Command Center
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
-block.additive-reconstructor.name = Additive Reconstructor
-block.multiplicative-reconstructor.name = Multiplicative Reconstructor
-block.exponential-reconstructor.name = Exponential Reconstructor
-block.tetrative-reconstructor.name = Tetrative Reconstructor
-block.payload-conveyor.name = Mass Conveyor
-block.payload-router.name = Payload Router
-block.disassembler.name = Disassembler
-block.silicon-crucible.name = Silicon Crucible
-block.overdrive-dome.name = Overdrive Dome
+block.command-center.name = Komuta Merkezi
+block.ground-factory.name = Yer Birimi Fabrikası
+block.air-factory.name = Hava Birimi Fabrikası
+block.naval-factory.name = Deniz Birimi Fabrikası
+block.additive-reconstructor.name = Eklemeli Yeniden Yapılandırıcı
+block.multiplicative-reconstructor.name = Çarpmalı Yeniden Yapılandırıcı
+block.exponential-reconstructor.name = Üstel Yeniden Yapılandırıcı
+block.tetrative-reconstructor.name = Dörtlü Yeniden Yapılandırıcı
+block.payload-conveyor.name = Yük Konveyörü
+block.payload-router.name = Yük Yönlendirici
+block.disassembler.name = Sökücü
+block.silicon-crucible.name = Büyük Silikon Fırını
+block.overdrive-dome.name = Hızlandırma Kubbesi
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
+block.switch.name = Düğme
+block.micro-processor.name = Mikro İşlemci
+block.logic-processor.name = İşlemci
+block.hyper-processor.name = Hiper İşlemci
+block.logic-display.name = Ekran
+block.large-logic-display.name = Büyük Ekran
+block.memory-cell.name = Bellek Hücresi
+block.memory-bank.name = Bellek Bankası
team.blue.name = mavi
-team.crux.name = kırmızı
-team.sharded.name = turuncu
+team.crux.name = öz
+team.sharded.name = parçalanmış
team.orange.name = turuncu
-team.derelict.name = derelict
+team.derelict.name = sahipsiz
team.green.name = yeşil
team.purple.name = mor
tutorial.next = [lightgray]
tutorial.intro = [scarlet]Mindustry öğreticisine hoş geldiniz.[]\n[accent]Bakır kazarak[] başlayın. Bunu yapmak için merkezinize yakın bir bakır madenine dokunun.\n\n[accent]{0}/{1} bakır
-tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
+tutorial.intro.mobile = [scarlet]Mindustry öğreticisine hoş geldiniz.[]\nHareket etmek için ekranı kaydırın.\nYakınlaştırmak ve uzaklaştırmak için [accent]iki parmakla kıstırın[].\n[accent]Bakır kazarak[] başlayın. Bunu yapmak için merkezinize yakın bir bakır madenine dokunun.\n\n[accent]{0}/{1} bakır
tutorial.drill = Manuel olarak kazmak verimsizdir.\n[accent]Matkaplar []otomatikman kazabilir.\nSağ alttaki matkap sekmesine tıklayınız.\n[accent]Mekanik matkabı[] seçiniz. Tıklayarak bir bakır madenine yerleştirin.\n Yapımı durdurmak için [accent]sağ tıklayın[] ve yakınlaştırmak ve uzaklaştırmak için [accent]CTRL basılı tutarak tekerleği kaydırın[].
tutorial.drill.mobile = Manuel olarak kazmak verimsizdir.\n[accent]Matkaplar []otomatik olarak kazabilir.\nSağ alttaki matkap sekmesine dokunun.\n[accent]Mekanik matkabı[] seçin. \nDokunarak bir bakır madenine yerleştirin, sonra seçiminizi onaylamak için alttaki [accent] tik düğmesine[] basın.\nYerleştirmenizi iptal etmek için [accent] X butonuna[] basın.
tutorial.blockinfo = Her bloğun farklı istatistikleri vardır. Her matkap sadece belirli madenleri kazabilir.\nBir bloğun bilgi ve istatistiklerine bakmak için,[accent] yapım menüsünde seçerken "?" tuşuna dokunun.[]\n\n[accent]Şimdi mekanik matkabın istatistiklerine erişin.[]
@@ -1213,17 +1243,17 @@ block.power-source.description = Sonsuz enerji verir. Sadece Yaratıcı Modda.
block.item-source.description = Seçilen eşyadan sonsuz verir. Sadece Yaratıcı Modda.
block.item-void.description = Verilen eşyaları yok eder. Sadece Yaratıcı Modda.
block.liquid-source.description = Seçilen sıvıyı sonsuz verir. Sadece Yaratıcı Modda.
-block.liquid-void.description = Removes any liquids. Sandbox only.
+block.liquid-void.description = Verilen sıvıları yok eder. Sadece Yaratıcı Modda.
block.copper-wall.description = Ucuz bir savunma bloğu.\nİlk birkaç dalgada merkezi ve silahları korumak için kullanışlıdır.
block.copper-wall-large.description = Ucuz bir savunma bloğu.\nİlk birkaç dalgada merkezi ve taretleri korumak için kullanışlıdır.\nBirçok blok alan kaplar.
block.titanium-wall.description = Orta derecede güçlü savunma bloğu.\nDüşmanlardan orta derecede koruma sağlar.
block.titanium-wall-large.description = Orta derecede güçlü savunma bloğu.\nDüşmanlardan orta derecede koruma sağlar.\nBirçok blok alan kaplar.
-block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
-block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
+block.plastanium-wall.description = Elektrik arklarını emen ve otomatik enerji noktası bağlantılarını engelleyen özel bir duvar türü.
+block.plastanium-wall-large.description = Elektrik arklarını emen ve otomatik enerji noktası bağlantılarını engelleyen özel bir duvar türü.\nBirçok blok alan kaplar.
block.thorium-wall.description = Güçlü bir savunma bloğu.\nDüşmanlardan iyi korunma sağlar.
block.thorium-wall-large.description = Güçlü bir savunma bloğu.\nDüşmanlardan iyi korunma sağlar.\nBirçok blok alan kaplar.
-block.phase-wall.description = Özel faz örgüsü bazlı yansıtıcı materyal ile kaplanmış bir duvar. Çoğu mermi çarpma anında saptırır.
-block.phase-wall-large.description = Özel faz bazlı yansıtıcı bileşik ile kaplanmış bir duvar. Çoğu mermi çarpma anında saptırır.\nBirçok blok alan kaplar.
+block.phase-wall.description = Özel faz örgüsü bazlı yansıtıcı materyal ile kaplanmış bir duvar. Çoğu mermi çarpma anında geri sektirir.
+block.phase-wall-large.description = Özel faz bazlı yansıtıcı bileşik ile kaplanmış bir duvar. Çoğu mermi çarpma anında geri sektirir.\nBirçok blok alan kaplar.
block.surge-wall.description = Son derece dayanıklı bir savunma bloğu.\nMermi temasıyla yükü toplar ve bu yükü rastgele serbest bırakır.
block.surge-wall-large.description = Son derece dayanıklı bir savunma bloğu.\nMermi temasıyla yükü toplar ve bu yükü rastgele serbest bırakır.\nBirçok blok alan kaplar.
block.door.description = Küçük bir kapı. Dokunarak açılabilir veya kapatılabilir.
@@ -1235,23 +1265,23 @@ block.force-projector.description = Kendi etrafında altıgen güç alanı oluş
block.shock-mine.description = Mayına basan düşmanlara hasar verir. Düşmana neredeyse görünmezdir.
block.conveyor.description = Temel materyal taşıma bloğu. Materyalleri ileri taşır ve onları diğer bloklara otomatik olarak yerleştirir. Çevrilebilir.
block.titanium-conveyor.description = Gelişmiş materyal taşıma bloğu. Materyalleri standart konveyörlerden daha hızlı taşır.
-block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front.
-block.junction.description = Çakışan iki konveyör hattı arasında bir köprü görevi görür. İki farklı konveyörğn farklı hedeflere farklı materyalleri taşıdığı durumlarda kullanışlıdır.
+block.plastanium-conveyor.description = Materyalleri gruplar halinde taşır.\nArkadan eşyaları kabul eder ve öndeki üç yöne boşaltır.
+block.junction.description = Çakışan iki konveyör hattı arasında bir köprü görevi görür. İki farklı konveyörün farklı hedeflere farklı materyalleri taşıdığı durumlarda kullanışlıdır.
block.bridge-conveyor.description = Gelişmiş materyal taşıma bloğu. Materyalleri her türlü arazi veya binanın üzerinden üç bloğa kadar uzağa taşıyabilir.
block.phase-conveyor.description = Gelişmiş materyal taşıma bloğu. Materyalleri kendisine bağlı bir başka faz konveyörüne ışınlamak için enerji kullanır.
block.sorter.description = Materyalleri ayıklar. Eğer materyal seçilen ile eşleşiyorsa geçmesine izin verilir. Yoksa materyal sağa ya da sola atılır.
-block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
+block.inverted-sorter.description = Materyalleri sıradan bir ayıklayıcı gibi işler, ancak seçili öğeleri önden değil yanlardan geçirir.
block.router.description = Materyalleri bir yönden alıp diğer üç yöne eşit olarak dağıtır. Materyalleri bir kaynaktan birden fazla hedefe iletmek için kullanılır.\n\n[scarlet]Asla üretim yapan binaların dibine yerleştirmeyin, yoksa istenmeyen materyaller tarafından tıkanabilir.[]
block.distributor.description = Gelişmiş bir yönlendirici. Materyalleri yedi farklı yöne dağıtabilir.
block.overflow-gate.description = Ayırıcı ve yönlendiricinin bir karışımı. Materyalleri sadece ön kısım kapalı olduğunda sağa ve sola atar.
-block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
+block.underflow-gate.description = Taşma geçidinin zıttıdır. Sol ve sağ taraf kapalıysa materyalleri ön tarafa atar.
block.mass-driver.description = En gelişmiş materyal taşıma bloğu. bir miktar materyalı alır ve onları uzak mesafedeki bir başka kütle sürücüsüne ateşler. Çalışması için enerji gerekir.
block.mechanical-pump.description = Hiç enerji harcamayan, düşük çıktılı, ucuz bir pompa.
block.rotary-pump.description = Daha gelişmiş bir pompa. Daha fazla sıvı depolar ama çalışması için enerji gerekir.
block.thermal-pump.description = En iyi pompa.
block.conduit.description = Temel sıvı taşıma bloğu. Sıvıları ileri taşır. Pompalar ve diğer borularla birlikte kullanılır.
block.pulse-conduit.description = Gelişmiş bir sıvı taşıma bloğu. Sıvıları normal borulardan daha hızlı taşır ve onlardan daha fazla sıvı alır.
-block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
+block.plated-conduit.description = Sıvıları dalga borusuyla aynı güçte taşır ancak daha fazla zırha sahiptir. Borular dışında başka bir şekilde yandan sıvı kabul etmez.\nDaha az sızıntı yapar.
block.liquid-router.description = Sıvıları bir yönden alıp diğer üç yöne eşit olarak dağıtır. Ayrıca kendisi de bir miktar sıvı depolayabilir. Sıvıları bir kaynaktan birden fazla hedefe iletmek için kullanılır.
block.liquid-tank.description = Çok miktarda sıvıyı depolar. İhtiyaçları devamlı olmayan sıvıları yedek olarak saklamakta ya da önemli blokların devamlı olarak soğutulmasında kullanılabilir.
block.liquid-junction.description = Çakışan iki boru hattı arasında bir köprü görevi görür. İki farklı borunun farklı hedeflere farklı sıvıları taşıdığı durumlarda kullanışlıdır.
@@ -1260,7 +1290,7 @@ block.phase-conduit.description = Gelişmiş sıvı taşıma bloğu. Sıvıları
block.power-node.description = Bağlı düğümlere enerji sağlar. Ayrıca dibindeki bloklardan da enerji alıp onlara enerji verebilir.
block.power-node-large.description = Daha fazla menzil ve bağlantıya sahip daha gelişmiş bir güç düğümü
block.surge-tower.description = Daha az bağlantı sayısına sahip oldukça uzun menzilli bir güç düğümü.
-block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
+block.diode.description = Pil gücü, bu bloktan yalnızca diğer tarafta daha az güç depolandığında sadece tek bir yöne akabilir.
block.battery.description = Enerji fazlasını yedek olarak saklar. Enerji açığında sakladığı enerjiyi salar.
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.
@@ -1302,4 +1332,4 @@ block.cyclone.description = Büyük bir anti hava ve anti kara tareti. Yakının
block.spectre.description = Dev bir çift namlulu top. Hava ve kara birimlerine iri, zırh delici mermiler atar.
block.meltdown.description = Dev bir lazer topu. Yüklenip yakındaki düşmanlara uzun süreli lazer ışınları yollar. Çalışması için soğutucu gerekir.
block.repair-point.description = Kendisine en yakın hasarlı birimi tamir eder.
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = Gelen mermilere zarar verir ve onları yok eder. Lazer mermilere etki etmez.
diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties
index dfc4bae48b..da049feb90 100644
--- a/core/assets/bundles/bundle_uk_UA.properties
+++ b/core/assets/bundles/bundle_uk_UA.properties
@@ -17,10 +17,12 @@ linkfail = Не вдалося перейти за посиланням!\nURL-а
screenshot = Зняток мапи збережено до {0}
screenshot.invalid = Мапа занадто велика, тому, мабуть, не вистачає пам’яті для знятку мапи.
gameover = Гра завершена
+gameover.disconnect = Від’єднатися
gameover.pvp = [accent]{0}[] команда перемогла!
+gameover.waiting = [accent]Очікуємо наступно мапу…
highscore = [accent]Новий рекорд!
copied = Скопійовано.
-indev.popup = Наразі [accent]6.0[] знаходиться у стадії [accent]альфа[].\n[lightgray]Це означає наступне:[]\n- Не вистачає наповнення гри;\n- Більшість [scarlet]ШІ бойових одиниць[] не працює належним чином;\n- Багато одиниць [scarlet]відсутні[] або незавершені;\n- Кампанія повністю не є завершеною;\n- Усе, що ви бачите, може змінитися або видалитися.\n\nПовідомляйте про вади або збої на [accent]Github[], а про помилки в перекладі в Discord.
+indev.popup = Наразі [accent]6.0[] знаходиться у стадії [accent]бета-тестування[].\n[lightgray]Це означає наступне:[]\n- Не вистачає наповнення кампанії;\n- Кампанія повністю не є завершеною;\n- Усе, що ви бачите, може змінитися або видалитися.\n\nПовідомляйте про вади або збої на [accent]Github[], а про помилки в перекладі в Discord.
indev.notready = Ця частина гри ще не готова.
load.sound = Звуки
@@ -57,6 +59,7 @@ schematic.rename = Перейменувати схему
schematic.info = {0}x{1}, блоків: {2}
schematic.disabled = [scarlet]Схеми вимкнені[]\nВам не дозволяється використовувати схеми на цій [accent]мапі[] чи [accent]сервері.
+stats = Статистика
stat.wave = Хвиль відбито:[accent] {0}
stat.enemiesDestroyed = Противників знищено:[accent] {0}
stat.built = Будівель збудовано:[accent] {0}
@@ -101,7 +104,6 @@ done = Зроблено
feature.unsupported = Ваш пристрій не підтримує цю функцію
mods.alphainfo = Майте на увазі, що модифікації перебувають в альфі, і [scarlet]можуть бути дуже несправними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry Github або Discord.
-mods.alpha = [accent](Альфа)
mods = Модифікації
mods.none = [lightgray]Модифікацій не знайдено!
mods.guide = Посібник із модифікацій
@@ -172,7 +174,7 @@ server.kicked.customClient = Цей сервер не підтримує кор
server.kicked.gameover = Гру завершено!
server.kicked.serverRestarting = Сервер перезавантажується
server.versions = Ваша версія:[accent] {0}[]\nВерсія на сервері:[accent] {1}[]
-host.info = Кнопка [accent]Сервер[] розміщує сервер на порті [scarlet]6567[]. \nКористувачі, які перебувають в тій же [lightgray]WiFi або локальній мережах[], мають побачити ваш сервер у своєму списку серверів.\n\nЯкщо ви хочете, щоби люди могли приєднуватися з будь-якої точки планети через IP, то потрібно зробити[accent] переадресація порту[].\n\n[lightgray]Примітка. Якщо у вас виникли проблеми з приєднанням до вашої локальної гри, переконайтеся, що ви надали Mindustry доступ до вашої локальної мережі в налаштуваннях брандмауера. Зауважте, що публічні мережі іноді не дають змогу виявити сервер.
+host.info = Кнопка [accent]Сервер[] розміщує сервер на порті [scarlet]6567[].\nКористувачі, які перебувають в тій же [lightgray]WiFi або локальній мережах[], мають побачити ваш сервер у своєму списку серверів.\n\nЯкщо ви хочете, щоби люди могли приєднуватися з будь-якої точки планети через IP, то потрібно зробити[accent] переадресація порту[].\n\n[lightgray]Примітка. Якщо у вас виникли проблеми з приєднанням до вашої локальної гри, переконайтеся, що ви надали Mindustry доступ до вашої локальної мережі в налаштуваннях брандмауера. Зауважте, що публічні мережі іноді не дають змогу виявити сервер.
join.info = Тут ви можете ввести [accent]IP сервера[] для під’єднання або знайти сервери у [accent]локальній[] чи [accent]глобальній мережі[] для приєднання до них.\nПідтримується локальна мережа(LAN) і широкосмугова мережа(WAN).\n\n[lightgray] Примітка. Це не є автоматичним глобальним списком серверів; якщо ви хочете приєднатися до когось через IP, вам доведеться попросити власника сервера дати свій ip.
hostserver = Запустити багатокористувацький сервер
invitefriends = Запросити друзів
@@ -190,6 +192,10 @@ servers.local = Локальні сервери
servers.remote = Віддалені сервери
servers.global = Глобальні сервери
+servers.showhidden = Показати приховані сервери
+server.shown = Показано
+server.hidden = Приховано
+
trace = Стежити за гравцем
trace.playername = Ім’я гравця: [accent]{0}
trace.ip = IP: [accent]{0}
@@ -268,6 +274,9 @@ cancel = Скасувати
openlink = Перейти за посиланням
copylink = Скопіювати посилання
back = Назад
+crash.export = Експортувати аварійні звіти
+crash.none = Аварійних звітів не знайдено
+crash.exported = Аварійні звіти експортовано
data.export = Вивантажити дані
data.import = Завантажити дані
data.openfolder = Відчинити теку з даними
@@ -284,13 +293,19 @@ cancelbuilding = [accent][[{0}][], щоб очистити план
selectschematic = [accent][[{0}][], щоби вибрати та скопіювати
pausebuilding = [accent][[{0}][], щоби призупинити будування
resumebuilding = [scarlet][[{0}][], щоби продовжити будування
+showui = Користувацький інтерфейс приховано.\nНатисніть [accent][[{0}][], щоби показати його знову.
wave = [accent]Хвиля {0}
+wave.cap = [accent]Хвиля {0}/{1}
wave.waiting = [lightgray]Наступна хвиля\nчерез {0}
wave.waveInProgress = [lightgray]Хвиля триває
waiting = [lightgray]Очікування…
waiting.players = Очікування гравців…
wave.enemies = Залишилося\n[lightgray]{0} противник.
+wave.enemycores = Ворожих ядер: [accent]{0}[lightgray]
+wave.enemycore = [accent]{0}[lightgray] вороже ядро
wave.enemy = Залишився\n[lightgray]{0} противник
+wave.guardianwarn = Хвиль до появи Вартового: [accent]{0}[] .
+wave.guardianwarn.one = Вартовий з’явиться через [accent]{0}[] хвилю.
loadimage = Завантажити зображення
saveimage = Зберегти зображення
unknown = Невідомо
@@ -329,6 +344,7 @@ editor.generation = Генерація:
editor.ingame = Редагувати в грі
editor.publish.workshop = Опублікувати в Майстерні Steam
editor.newmap = Нова мапа
+editor.center = Центрувати
workshop = Майстерня
waves.title = Хвилі
waves.remove = Видалити
@@ -347,6 +363,7 @@ waves.invalid = Недійсні хвилі в буфері обміну.
waves.copied = Хвилі скопійовані.
waves.none = Противники не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
+#these are intentionally in lower case
wavemode.counts = кількість
wavemode.totals = усього
wavemode.health = здоров’я
@@ -417,6 +434,7 @@ filters.empty = [lightgray]Немає фільтрів! Додайте хоча
filter.distort = Спотворення
filter.noise = Шум
filter.enemyspawn = Вибір точки появи противників
+filter.spawnpath = Шлях до точки появи
filter.corespawn = Вибір ядра
filter.median = Медіана
filter.oremedian = Рудна медіана
@@ -441,6 +459,7 @@ filter.option.amount = Кількість
filter.option.block = Блок
filter.option.floor = Поверхня
filter.option.flooronto = Цільова поверхня
+filter.option.target = Ціль
filter.option.wall = Стіна
filter.option.ore = Руда
filter.option.floor2 = Друга поверхня
@@ -457,7 +476,9 @@ load = Завантажити
save = Зберегти
fps = FPS: {0}
ping = Затримка: {0} мс
-language.restart = Будь ласка, перезапустіть свою гру, щоби налаштування мови набули чинності.
+memory = Mem: {0}мб
+memory2 = Mem:\n {0}мб +\n {1}мб
+language.restart = Перезапустіть свою гру, щоби налаштування мови набули чинності.
settings = Налаштування
tutorial = Навчання
tutorial.retake = Пройти навчання ще раз
@@ -470,13 +491,16 @@ locked = Заблоковано
complete = [lightgray]Необхідно:
requirement.wave = Досягніть хвилі {0} у зоні «{1}»
requirement.core = Знищте вороже ядро в зоні «{0}»
-requirement.research = Research {0}
-requirement.capture = Capture {0}
+requirement.research = Дослідіть {0}
+requirement.produce = Виробіть {0}
+requirement.capture = Захопіть {0}
bestwave = [lightgray]Найкраща хвиля: {0}
launch.text = Запуск
-campaign.multiplayer = Коли ви граєте з кимось в кампанії, то ви можете дослідити лише використовуючи предмети з [accent]ваших[] секторів, [scarlet]гн[] з сектора власника, на якому ви перебуваєте прямо зараз.\n\nЗадля отримання предметів у [accent]своїх[] секторах в багатокористувацькій грі використайте [accent]Стартовий майданчик[].
+research.multiplayer = Лише власник сервера має змогу досліджувати предмети.
uncover = Розкрити
configure = Налаштувати вивантаження
+
+#TODO
loadout = Вивантаження
resources = Ресурси
bannedblocks = Заборонені блоки
@@ -490,7 +514,7 @@ zone.objective = [lightgray]Мета: [accent]{0}
zone.objective.survival = вижити
zone.objective.attack = знищити вороже ядро
add = Додати…
-boss.health = Здоров’я босу
+boss.health = Здоров’я Вартового
connectfail = [crimson]Помилка з’єднання:\n\n[accent]{0}
error.unreachable = Сервер не є доступним.\nЧи правильно написана адреса?
@@ -507,16 +531,42 @@ weather.rain.name = Дощ
weather.snow.name = Сніг
weather.sandstorm.name = Піщана буря
weather.sporestorm.name = Спорова буря
+weather.fog.name = Туман
sectors.unexplored = [lightgray]Не досліджено
sectors.resources = Ресурси:
sectors.production = Виробництво:
+sectors.export = Експортування:
+sectors.time = Час:
+sectors.threat = Загроза:
+sectors.wave = Хвиля:
sectors.stored = Зберігає:
sectors.resume = Продовжити
-sectors.launch = Запуск
+sectors.launch = Запустити
sectors.select = Вибрати
sectors.nonelaunch = [lightgray]нічого (сонце)
+sectors.rename = Перейменування сектора
+sector.curcapture = Сектор захоплено
+sector.missingresources = [scarlet]Недостатньо ресурсів в ядрі
+sector.attacked = Сектор [accent]{0}[white] під атакою!
+sector.lost = Сектор [accent]{0}[white] втрачено!
+#note: the missing space in the line below is intentional
+sector.captured = Сектор [accent]{0}[white]захоплено!
+threat.low = низька
+threat.medium = середня
+threat.high = висока
+threat.extreme = екстремальна
+threat.eradication = викорінювальна
+
+planets = Планети
+
+planet.serpulo.name = Cерпуло
+#TODO better name
+planet.sun.name = Сонце
+
+#NOTE TO TRANSLATORS: don't bother editing these, they'll be removed and/or rewritten anyway
+sector.impact0078.name = Аварійне приземлення 0078
sector.groundZero.name = Відправний пункт
sector.craters.name = Кратери
sector.frozenForest.name = Крижаний ліс
@@ -528,6 +578,12 @@ sector.overgrowth.name = Зарості
sector.tarFields.name = Дьогтьові поля
sector.saltFlats.name = Соляні рівнини
sector.fungalPass.name = Грибний перевал
+sector.biomassFacility.name = Центр дослідження синтезу біомаси
+sector.windsweptIslands.name = Вітряні острови
+sector.extractionOutpost.name = Видобувна застава
+
+#unused
+#sector.crags.name = Crags
sector.groundZero.description = Оптимальне місце для повторних ігор. Низька ворожа загроза. Мало ресурсів.\nЗбирайте якомога більше свинцю та міді.\nНе затримуйтесь і йдіть далі.
sector.frozenForest.description = Спори поширилися навіть тут, ближче до гір. Холодна температура не може стримувати їх завжди.\n\nЗважтесь створити енергію. Побудуйте генератори внутрішнього згорання. Навчіться користуватися регенераторами.
@@ -539,7 +595,7 @@ sector.overgrowth.description = Ближче до джерела спор є т
sector.tarFields.description = Між горами та пустелею простягається окраїна зони видобутку нафти. Це один із небагатьох районів із корисними для використання запасами смоли.\nНе зважаючи на те, що територія покинута, вона має поблизу небезпечні сили противника. Не варто їх недооцінювати.\n\n[lightgray]Якщо можливо, дослідіть технологію перероблювання нафти.
sector.desolateRift.description = Надзвичайно небезпечна зона. Багато ресурсів, але мало місця. Високий ризик знищення. Евакуюватися потрібно якомога швидше. Не розслабляйтеся між ворожими атаками та знайдіть ахіллесову п’яту супротивника.
sector.nuclearComplex.description = Колишній об’єкт для виробництва та перероблювання торію було зведено до руїн.\n[lightgray]Дослідіть торій та його нескінченну кількість застосувань.\n\n Противник, який постійно шукає нападників, присутній тут у великій кількості, тому не баріться з евакуацією.
-sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
+sector.fungalPass.description = Перехідна зона між високими і низькими горами, що заповнені спорами. A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
settings.language = Мова
settings.data = Ігрові дані
@@ -555,22 +611,28 @@ settings.clear.confirm = Ви дійсно хочете очистити ці д
settings.clearall.confirm = [scarlet]УВАГА![]\nЦе очистить усі дані, включно із збереженнями, мапами, розблокованим та налаштуваннями керування.\nПісля натискання «Гаразд» гра видалить усі дані та автоматично закриється.
settings.clearsaves.confirm = Ви справді хочете видалити всі ваші збереження?
settings.clearsaves = Очистити збереження
-paused = [accent]< Пауза>
+settings.clearresearch = Очистити дослідження
+settings.clearresearch.confirm = Ви справді хочете очистити дослідження кампанії?
+settings.clearcampaignsaves = Очистити збереження в кампанії
+settings.clearcampaignsaves.confirm = Ви справді хочете очистити всі збереженні в кампанії?
+paused = [accent]< Пауза >
clear = Очистити
banned = [scarlet]Заблоковано
-unplaceable.sectorcaptured = [scarlet]Вимагає захопленого сектору
yes = Так
no = Ні
info.title = Інформація
error.title = [crimson]Виникла помилка
error.crashtitle = Виникла помилка
unit.nobuild = [scarlet]Ця одиниця не може будувати
+lastaccessed = [lightgray]Остання зміна від {0}
+block.unknown = [lightgray]???
+
+stat.description = Призначення
stat.input = Ввід
stat.output = Вивід
stat.booster = Прискорювач
stat.tiles = Необхідні плитки
stat.affinities = Збільшення ефективності
-block.unknown = [lightgray]???
stat.powercapacity = Місткість енергії
stat.powershot = Енергія за постріл
stat.damage = Шкода
@@ -593,6 +655,8 @@ stat.memorycapacity = Ємність пам’яті
stat.basepowergeneration = Базова генерація енергії
stat.productiontime = Час виробництва
stat.repairtime = Час повного відновлення блоку
+stat.weapons = Зброя
+stat.bullet = Кулі
stat.speedincrease = Збільшення швидкості
stat.range = Радіус дії
stat.drilltier = Видобуває
@@ -605,10 +669,35 @@ stat.maxconsecutive = Максимальна послідовність
stat.buildcost = Вартість будування
stat.inaccuracy = Розкид
stat.shots = Постріли
-stat.reload = Постріли/секунду
+stat.reload = Постріли за сек.
stat.ammo = Боєприпаси
stat.shieldhealth = Міцність щита
stat.cooldowntime = Тривалість охолодження
+stat.explosiveness = Вибухонебезпечність
+stat.basedeflectchance = Базовий шанс відбиття
+stat.lightningchance = Шанс удару блискавки
+stat.lightningdamage = Шкода від удару блискавки
+stat.flammability = Займистість
+stat.radioactivity = Радіоактивність
+stat.heatcapacity = Теплоємність
+stat.viscosity = В’язкість
+stat.temperature = Температура
+stat.speed = Швидкість
+stat.buildspeed = Швидкість будування
+stat.minespeed = Швидкість видобутку
+stat.minetier = Рівень видобутку
+stat.payloadcapacity = Вантажопідйомність
+stat.commandlimit = Максимум в загоні
+stat.abilities = Здібності
+stat.canboost = Можна прискорити
+stat.flying = Літає
+
+ability.forcefield = Щитове поле
+ability.repairfield = Ремонтувальне поле
+ability.statusfield = Поле підсилення
+ability.unitspawn = Завод одиниць «{0}»
+ability.shieldregenfield = Поле, що відновлює щити
+ability.movelightning = Блискавки при русі
bar.drilltierreq = Потребується кращий бур
bar.noresources = Бракує ресурсів
@@ -620,6 +709,7 @@ bar.powerbalance = Енергія: {0} за с.
bar.powerstored = Зберігає: {0}/{1}
bar.poweramount = Енергія: {0}
bar.poweroutput = Вихідна енергія: {0}
+bar.powerlines = З’єднань: {0}/{1}
bar.items = Предмети: {0}
bar.capacity = Місткість: {0}
bar.unitcap = {0} {1}/{2}
@@ -631,19 +721,26 @@ bar.progress = Хід будування
bar.input = Ввід
bar.output = Вивід
+units.processorcontrol = [lightgray]Керується процесором
+
bullet.damage = [stat]{0}[lightgray] шкода
bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] плиток
bullet.incendiary = [stat]запальний
+bullet.sapping = [stat]виснажує
bullet.homing = [stat]самонаведення
bullet.shock = [stat]шок
bullet.frag = [stat]шкода по ділянці
bullet.knockback = [stat]{0}[lightgray] відкидання
+bullet.pierce = [stat]{0}[lightgray]x пробиття
+bullet.infinitepierce = [stat]пробиття
+bullet.healpercent = [stat]{0}[lightgray]% лікування
bullet.freezing = [stat]заморожування
bullet.tarred = [stat]дьогтьовий
bullet.multiplier = [stat]{0}[lightgray]x патронів
bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання
unit.blocks = блоки
+unit.blockssquared = блоків²
unit.powersecond = одиниць енергії за секунду
unit.liquidsecond = одиниць рідини за секунду
unit.itemssecond = предметів за секунду
@@ -661,12 +758,13 @@ unit.items = предм.
unit.thousands = тис
unit.millions = млн
unit.billions = млрд
+category.purpose = Призначення
category.general = Загальне
category.power = Енергія
category.liquids = Рідини
category.items = Предмети
category.crafting = Виробництво
-category.shooting = Стрільба
+category.function = Стрільба
category.optional = Додаткові поліпшення
setting.landscape.name = Тільки альбомний (горизонтальний) режим
setting.shadows.name = Тіні
@@ -674,8 +772,8 @@ setting.blockreplace.name = Пропонування щодо автоматич
setting.linear.name = Лінійна фільтрація
setting.hints.name = Підказки
setting.flow.name = Показувати темп швидкості ресурсів
+setting.backgroundpause.name = Пауза при згортанн
setting.buildautopause.name = Автоматичне призупинення будування
-setting.mapcenter.name = Автоматичне центрування мапи на гравця
setting.animatedwater.name = Анімаційні рідини
setting.animatedshields.name = Анімаційні щити
setting.antialias.name = Згладжування[lightgray] (потребує перезапуску)[]
@@ -709,7 +807,6 @@ setting.fullscreen.name = Повноекранний режим
setting.borderlesswindow.name = Вікно без полів[lightgray] (може потребувати перезапуску)
setting.fps.name = Показувати FPS і затримку до сервера
setting.smoothcamera.name = Гладка камера
-setting.blockselectkeys.name = Показувати клавіші вибору блока
setting.vsync.name = Вертикальна синхронізація
setting.pixelate.name = Пікселізація
setting.minimap.name = Показувати мінімапу
@@ -844,6 +941,7 @@ rules.title.unit = Бойові одиниці
rules.title.experimental = Експериментальне
rules.title.environment = Середовище
rules.lighting = Світлотінь
+rules.enemyLights = Ворожі вогні
rules.fire = Вогонь
rules.explosions = Шкода від вибухів блоків і одиниць
rules.ambientlight = Навколишнє світло
@@ -855,6 +953,7 @@ content.item.name = Предмети
content.liquid.name = Рідини
content.unit.name = Бойові одиниці
content.block.name = Блоки
+
item.copper.name = Мідь
item.lead.name = Свинець
item.coal.name = Вугілля
@@ -868,7 +967,7 @@ item.surge-alloy.name = Кінетичний сплав
item.spore-pod.name = Споровий стручок
item.sand.name = Пісок
item.blast-compound.name = Вибухова суміш
-item.pyratite.name = Піротит
+item.pyratite.name = Пиротит
item.metaglass.name = Метаскло
item.scrap.name = Брухт
liquid.water.name = Вода
@@ -876,23 +975,6 @@ liquid.slag.name = Шлак
liquid.oil.name = Нафта
liquid.cryofluid.name = Кріогенна рідина
-item.explosiveness = [lightgray]Вибухонебезпечність: {0} %
-item.flammability = [lightgray]Вогненебезпечність: {0} %
-item.radioactivity = [lightgray]Радіоактивність: {0} %
-
-unit.health = [lightgray]Здоров’я: {0}
-unit.speed = [lightgray]Швидкість: {0}
-unit.weapon = [lightgray]Зброя: {0}
-unit.itemcapacity = [lightgray]Місткість елементів: {0}
-unit.minespeed = [lightgray]Швидкість видобутку: {0} %
-unit.minepower = [lightgray]Потужність видобутку: {0}
-unit.ability = [lightgray]Здібність: {0}
-unit.buildspeed = [lightgray]Швидкість будування: {0} %
-
-liquid.heatcapacity = [lightgray]Теплоємність: {0}
-liquid.viscosity = [lightgray]В’язкість: {0}
-liquid.temperature = [lightgray]Температура: {0}
-
unit.dagger.name = Кинджал
unit.mace.name = Булава
unit.fortress.name = Фортеця
@@ -904,7 +986,7 @@ unit.atrax.name = Атракс
unit.spiroct.name = Павучник
unit.arkyid.name = Аркиїд
unit.toxopid.name = Отруйник
-unit.flare.name = Фальшфеєр
+unit.flare.name = Фальшфейєр
unit.horizon.name = Горизонт
unit.zenith.name = Зеніт
unit.antumbra.name = Тіньовик
@@ -912,13 +994,13 @@ unit.eclipse.name = Затьмарник
unit.mono.name = Моно
unit.poly.name = Полі
unit.mega.name = Мега
-unit.quad.name = Квал
+unit.quad.name = Квад
unit.oct.name = Окт
unit.risso.name = Грампус
-unit.minke.name = Смугач малий
-unit.bryde.name = Смугач Брайда
-unit.sei.name = Sei
-unit.omura.name = Omura
+unit.minke.name = Смугач
+unit.bryde.name = Брайд
+unit.sei.name = Сейвал
+unit.omura.name = Омура
unit.alpha.name = Альфа
unit.beta.name = Бета
unit.gamma.name = Гамма
@@ -933,6 +1015,7 @@ block.cliff.name = Скеля
block.sand-boulder.name = Пісочний валун
block.grass.name = Трава
block.slag.name = Шлак
+block.space.name = Космос
block.salt.name = Сіль
block.salt-wall.name = Соляна стіна
block.pebbles.name = Галька
@@ -957,7 +1040,7 @@ block.thruster.name = Штовхач
block.kiln.name = Піч
block.graphite-press.name = Графітний прес
block.multi-press.name = Мультипрес
-block.constructing = {0}\n[lightgray](В процесі)
+block.constructing = {0}\n[lightgray](У процесі)
block.spawn.name = Місце появи противника
block.core-shard.name = Ядро «Уламок»
block.core-foundation.name = Ядро «Штаб»
@@ -978,6 +1061,7 @@ block.darksand-water.name = Темний пісок із водою
block.char.name = Випалена земля
block.dacite.name = Дацит
block.dacite-wall.name = Дацитова стіна
+block.dacite-boulder.name = Дацитовий валун
block.ice-snow.name = Крижаний сніг
block.stone-wall.name = Кам’яна стіна
block.ice-wall.name = Крижана стіна
@@ -1026,7 +1110,6 @@ block.conveyor.name = Конвеєр
block.titanium-conveyor.name = Титановий конвеєр
block.plastanium-conveyor.name = Пластанієвий конвеєр
block.armored-conveyor.name = Броньований конвеєр
-block.armored-conveyor.description = Переміщує предмети з тією ж швидкістю, що й титанові конвеєри, але має більше міцності. Не приймає введення з боків ні з чого, крім інших конвеєрних стрічок.
block.junction.name = Перехрестя
block.router.name = Маршрутизатор
block.distributor.name = Розподілювач
@@ -1034,7 +1117,6 @@ block.sorter.name = Сортувальник
block.inverted-sorter.name = Зворотній сортувальник
block.message.name = Повідомлення
block.illuminator.name = Освітлювач
-block.illuminator.description = Невелике, компактне, джерело світла, яку можна налаштувати. Для роботи потребує енергії.
block.overflow-gate.name = Надмірний затвор
block.underflow-gate.name = Недостатній затвор
block.silicon-smelter.name = Кремнієвий плавильний завод
@@ -1070,15 +1152,16 @@ block.liquid-void.name = Рідинний вакуум
block.power-void.name = Енергетичний вакуум
block.power-source.name = Нескінченне джерело енергії
block.unloader.name = Розвантажувач
-block.vault.name = Вмістилище
+block.vault.name = Склад
block.wave.name = Хвиля
+block.tsunami.name = Цунамі
block.swarmer.name = Роєвик
block.salvo.name = Залп
block.ripple.name = Ряб
block.phase-conveyor.name = Фазовий конвеєр
block.bridge-conveyor.name = Мостовий конвеєр
block.plastanium-compressor.name = Пластанієвий компресор
-block.pyratite-mixer.name = Змішувач піротита
+block.pyratite-mixer.name = Змішувач пиротита
block.blast-mixer.name = Змішувач вибухонебезпечного з’єднання
block.solar-panel.name = Сонячна панель
block.solar-panel-large.name = Велика сонячна панель
@@ -1111,6 +1194,7 @@ block.arc.name = Дуга
block.rtg-generator.name = Радіоізотопний термоелектричний генератор
block.spectre.name = Спектр
block.meltdown.name = Розплавлювач
+block.foreshadow.name = Передвісник
block.container.name = Сховище
block.launch-pad.name = Стартовий майданчик
block.launch-pad-large.name = Великий стартовий майданчик
@@ -1127,7 +1211,11 @@ block.payload-conveyor.name = Вантажний конвеєр
block.payload-router.name = Розвантажувальний маршрутизатор
block.disassembler.name = Розбирач
block.silicon-crucible.name = Кремнієвий тигель
-block.overdrive-dome.name = Величний Прискорювач
+block.overdrive-dome.name = Великий прискорювач
+#experimental, may be removed
+block.block-forge.name = Блок-кузня
+block.block-loader.name = Блок-завантажувач
+block.block-unloader.name = Блок-вивантажувач
block.switch.name = Перемикач
block.micro-processor.name = Мікропроцесор
@@ -1168,136 +1256,205 @@ tutorial.waves = [lightgray]Противник[] з’явився.\n\nЗахи
tutorial.waves.mobile = [lightgray]Противник[] з’явився.\n\nЗахистіть ядро від двох хвиль. Ваш корабель буде автоматично атакувати противників.\nПобудуйте більше башт і бурів. Добудьте більше міді.
tutorial.launch = Як тільки ви досягнете певної хвилі, ви зможете[accent] запустити ядро[], залишивши свою базу позаду, та [accent]отримати всі ресурси у вашому ядрі.[]\nЦі отримані ресурси можуть бути використані для дослідження нових технологій.\n\n[accent]Натисніть кнопку запуску.
-item.copper.description = Початковий будівельний матеріал. Широко використовується у всіх типах блоків.
-item.lead.description = Основний початковий матеріал. Широко застосовується в електроніці та в транспортуванні рідин.
-item.metaglass.description = Дуже жорсткий склад скла. Широко застосовується для розподілу та зберігання рідини.
-item.graphite.description = Мінералізований вуглець, що використовується для боєприпасів та як електричний компонент.
-item.sand.description = Поширений матеріал, який широко використовується у виплавці, як під час сплавлення, так і в якості відходів.
-item.coal.description = Скам’янілі рослинні речовини, що утворилися задовго до посіву. Широко використовується для виробництва пального та ресурсів.
-item.titanium.description = Рідкісний надлегкий метал, який широко використовується для транспортування рідини, бурів і літаків.
-item.thorium.description = Щільний радіоактивний метал, що використовується в якості конструкційної опори та ядерного палива.
-item.scrap.description = Залишки старих споруд та підрозділів. Містить мікроелементи багатьох різних металів.
-item.silicon.description = Надзвичайно корисний напівпровідник. Має застосування в сонячних батареях, складній електроніці та боєприпасах для башт.
-item.plastanium.description = Легкий пластичний матеріал, що використовується в сучасних літальних апаратах та у фрагментованих боєприпасах.
-item.phase-fabric.description = Майже невагома речовина, що застосовується в передовій електроніці та в технології самовідновлення.
-item.surge-alloy.description = Удосконалений сплав з унікальними електричними властивостями.
-item.spore-pod.description = Струмок синтетичних спор, синтезований з атмосферних концентрацій для промислових цілей. Використовується для перетворення на нафту, вибухівку та паливо.
-item.blast-compound.description = Нестабільна сполука, яка використовується в бомбах і вибухівках. Синтезується зі спорових стручків та інших летких речовин. Використовувати як паливо не рекомендується.
-item.pyratite.description = Надзвичайно легкозаймиста речовина, що використовується в запальній зброї.
-liquid.water.description = Найкорисніша рідина. Зазвичай використовується для охолодження машин та перероблювання відходів.
-liquid.slag.description = Різні види розплавленого металу змішуються між собою. Може бути відокремлений від складових корисних копалин або розпорошений на ворожі частини як зброя.
-liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена у вугілля в якості палива або використана як куля.
-liquid.cryofluid.description = Інертна рідина, що створена з води та титану. Має здатність надзвичайно високою пропускною спроможністю. Широко використовується в якості рідини, що охолоджує.
+item.copper.description = Використовується у всіх типах блоків і боєприпасах.
+item.copper.details = Мідь. Напрочуд багато жил цієї руди на Серпуло. За своєю структурою слабка, якщо не зміцнена.
+item.lead.description = Широко використовується в електроніці та в транспортуванні рідин.
+item.lead.details = Сплав. Інертний. Широко використовується в акумуляторах.\nПримітка. Мабуть, токсичний для біологічних форм життя. Не те щоб тут залишилося багато...
+item.metaglass.description = Використовується для розподілу чи зберігання рідини.
+item.graphite.description = Використовується для боєприпасів та електричних компонентів.
+item.sand.description = Використовується для виробництва інших удосконалених матеріалів.
+item.coal.description = Використовується для виробництва палива і вдосноналених матеріалів.
+item.coal.details = Виглядає скам’янілою рослинною речовиною, утвореною задовго до Сівби.
+item.titanium.description = Використовується в транспортуванні рідин, бурів та авіації.
+item.thorium.description = Використовується в міцних конструкціях і як ядерне паливо.
+item.scrap.description = Використовується у Плавильнях і Подрібнювачах для переробки в інші матеріали в інші матеріали.
+item.scrap.details = Залишки старих споруд та підрозділів.
+item.silicon.description = Використовується в сонячних панелях, складній електроніці та боєприпасах самонаведення для башт.
+item.plastanium.description = Використовується в передових одиницях та у фрагментованих боєприпасах.
+item.phase-fabric.description = Використовується в передовій електроніці і технології самовідновлення.
+item.surge-alloy.description = Використовується в передовій зброї та реактивних захисних конструкціях.
+item.spore-pod.description = Використовується для перетворення на нафту, вибухівку та паливо.
+item.spore-pod.details = Спори. Найімовірніше, синтетична форма життя. Виділяють гази, токсичні для іншого біологічного життя. Надзвичайно загарбницька поведінка. Легкозаймисті при певних умовах.
+item.blast-compound.description = Використовується в бомбах та в розривних боєприпасах.
+item.pyratite.description = Використовується в запальній зброї і твердопаливних генераторах.
+liquid.water.description = Використовується для охолодження машин та перероблювання відходів.
+liquid.slag.description = Переробляється у відокремлювачах у складові метали або розпорошується на ворогів як зброя.
+liquid.oil.description = Використовується у виробництві передових матеріалів і як запальні боєприпаси.
+liquid.cryofluid.description = Використовується як теплоносій в реакторах, баштах і заводах.
-block.message.description = Зберігає повідомлення. Використовується для комунікації між союзниками.
-block.graphite-press.description = Стискає шматки вугілля в чисті аркуші графіту.
-block.multi-press.description = Модернізована версія графітового преса. Використовує воду та енергію для швидкого та ефективного перероблювання вугілля.
-block.silicon-smelter.description = Змішує пісок із чистим вугіллям. Виробляє кремній.
-block.kiln.description = Виплавляє пісок та свинець у сполуку, відому як метаскло. Для запуску потрібна невелика кількість енергії.
-block.plastanium-compressor.description = Виробляє пластаній із нафти та титану.
-block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для роботи потрібна велика кількість енергії.
+block.armored-conveyor.description = Переміщує предмети вперед. Не приймає введення з боків ні з чого, крім інших конвеєрних стрічок.
+block.illuminator.description = Випромінює світло.
+block.message.description = Зберігає повідомлення для комунікації між союзниками.
+block.graphite-press.description = Стискає вугілля в графіт.
+block.multi-press.description = Стискає вугілля в графіт. Потребує воду для охолодження.
+block.silicon-smelter.description = Синтезує пісок з вугіллям для отримання кремнію.
+block.kiln.description = Виплавляє пісок та свинець у метаскло.
+block.plastanium-compressor.description = Виробляє пластаній із нафти і титану.
+block.phase-weaver.description = Синтезує фазову тканину з торію та піску.
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
-block.cryofluid-mixer.description = Змішує воду і дрібний порошок титану в кріогенну рідину. Основне використання в торієвому реактору.
-block.blast-mixer.description = Подрібнює і змішує скупчення спор із піротитом для отримання вибухової суміші.
-block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піротит.
-block.melter.description = Розплавляє брухт у шлак для подальшого перероблювання, або використання в баштах «Хвиля».
-block.separator.description = Відокремлює шлак на його мінеральні компоненти. Виводить охолоджені матеріали.
-block.spore-press.description = Стискає спорові стручки під сильним тиском для синтезу нафти.
+block.cryofluid-mixer.description = Змішує воду і подрібнений титан, щоб виробити кріогенну рідину.
+block.blast-mixer.description = Виробляє вибухову суміш з піратиту і спорових стручків.
+block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий пиротит.
+block.melter.description = Розплавляє брухт у шлак.
+block.separator.description = Відокремлює шлак на його мінеральні компоненти.
+block.spore-press.description = Стискає спорові стручки для синтезування нафти.
block.pulverizer.description = Подрібнює брухт у дрібний пісок.
-block.coal-centrifuge.description = Нафта перетворюється в шматки вугілля.
-block.incinerator.description = Випаровує будь-який зайвий предмет або рідину, які він отримує.
-block.power-void.description = Знищує будь-яку енергію, до якої він під’єднаний. Тільки пісочниця.
-block.power-source.description = Постійно створює енергію. Тільки пісочниця.
+block.coal-centrifuge.description = Нафта перетворюється у вугілля.
+block.incinerator.description = Випаровує будь-який предмет або рідину, що отримує.
+block.power-void.description = Знищує будь-яку під’єднану енергію. Тільки пісочниця.
+block.power-source.description = Постійно генерує енергію. Тільки пісочниця.
block.item-source.description = Постійно створює предмети. Тільки пісочниця.
-block.item-void.description = Знищує будь-які предмети. Тільки пісочниця.
-block.liquid-source.description = Постійно створює рідини. Тільки пісочниця.
-block.liquid-void.description = Видаляє будь-які рідини. Тільки пісочниця.
-block.copper-wall.description = Дешевий оборонний блок.\nКорисний для оборони ядра та башт у перші кілька хвиль.
-block.copper-wall-large.description = Дешевий оборонний блок.\nКорисний для оборони ядра та башт у перші кілька хвиль.\nЗаймає декілька плиток.
-block.titanium-wall.description = Порівняно сильний оборонний блок.\nЗабезпечує помірний оборони від противників.
-block.titanium-wall-large.description = Порівняно сильний оборонний блок.\nЗабезпечує помірний оборони від противників.\nЗаймає декілька плиток.
-block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з’єднання енергетичних вузлів.
-block.plastanium-wall-large.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з’єднання енергетичних вузлів.\nЗаймає декілька плиток.
-block.thorium-wall.description = Сильний оборонний блок.\nГарна оборона від противників.
-block.thorium-wall-large.description = Сильний оборонний блок.\nГарна оборона від противників.\nЗаймає декілька плиток.
-block.phase-wall.description = Стіна має покриття спеціальним складом, що відбиває світло і який базується на фазовій тканині. Здебільшого відбиває кулі у разі удару.
-block.phase-wall-large.description = Стіна має покриття спеціальним складом, що відбиває світло і який базується на фазовій тканині. Здебільшого відбиває кулі у разі удару.\nЗаймає декілька плиток.
-block.surge-wall.description = Надзвичайно міцний оборонний блок.\nЗбільшує заряд, якщо контактуватиме з кулями, вивільняючи його випадковим чином.
-block.surge-wall-large.description = Надзвичайно міцний оборонний блок.\nЗбільшує заряд, якщо контактуватиме з кулями, вивільняючи його випадковим чином.\nЗаймає декілька плиток.
-block.door.description = Невеликі двері. Можна відчинити або зачинити, натиснувши на них.
-block.door-large.description = Великі двері. Можна відчинити та зачинити, натиснувши на них.\nЗаймає декілька плиток.
-block.mender.description = Періодично ремонтує блоки в його радіусі дії. Боронить башти та стіни.\nЗа бажанням, можна використати кремній для підвищення дальності та ефективності.
-block.mend-projector.description = Покращена версія «Регенератора». Періодично ремонтує блоки в його радіусі дії.\nЗа бажанням, можна використати фазову тканину для підвищення дальності та ефективності.
-block.overdrive-projector.description = Збільшує швидкість найближчих будівель.\nЗа бажанням, можна використати фазову тканину для підвищення дальності та ефективності.
-block.force-projector.description = Створює навколо себе шестикутне силове поле, боронячи будівлі та блоки всередині від пошкоджень.\nПерегрівається, якщо завдано занадто великої шкоди. За бажанням, можна використати теплоносій для запобігання перегріву. Для збільшення розміру щита можна використовувати фазову тканину.
-block.shock-mine.description = Наносить шкоду противникам, коли вони наступають на міну. Майже невидима для противника.
-block.conveyor.description = Базовий транспортний блок. Переміщує елементи вперед і автоматично перетворює їх у блоки. Можна обертати.
-block.titanium-conveyor.description = Покращений блок транспорту елементів. Переміщує предмети швидше, ніж звичайні конвеєри.
-block.plastanium-conveyor.description = Переміщує предмети партіями.\nПриймає елементи на задній частині та вивантажує їх у трьох напрямках спереду.\nПотребує кілька точок завантаження та розвантаження для максимальної пропускної здатності.
-block.junction.description = Діє як міст для двох перехресних конвеєрних стрічок. Корисно в ситуаціях, коли два різних конвеєри перевозять різні матеріали в різні місця.
-block.bridge-conveyor.description = Покращений блок транспорту елементів. Дає змогу транспортувати предмети до 3-ох плиток із будь-якої місцевості чи будівлі.
-block.phase-conveyor.description = Покращений блок транспорту елементів. Використовує енергію для телепортування елементів на під’єднаний фазовий конвеєр через кілька плиток.
-block.sorter.description = Сортує предмети. Якщо елемент відповідає вибраному, його можна передати. В іншому випадку елемент виводиться зліва та/чи справа.
-block.inverted-sorter.description = Обробляє елементи, як звичайний сортувальник, але виводить обрані елементи на сторони.
-block.router.description = Приймає елементи з одного напрямку та виводить їх до трьох інших напрямків порівну. Корисно для поділу матеріалів від одного джерела до кількох цілей.\n\n[scarlet]Ніколи не використовуйте поруч із входами до механізмів, оскільки вони будуть забиті вихідними предметами.[]
-block.distributor.description = Поліпшений маршрутизатор. Розділяє предмети до 7 інших напрямків порівну.
-block.overflow-gate.description = Вивантажує лише вліво та/або вправо, якщо передній шлях заблокований.
-block.underflow-gate.description = Повна протилежність надмірному затвору. Виводить предмет прямо, якщо лівий та/або правий шлях заблоковано.
+block.item-void.description = Руйнує будь-які предмети. Тільки пісочниця.
+block.liquid-source.description = Постійно виробляє рідини. Тільки пісочниця.
+block.liquid-void.description = Випаровує будь-які рідини. Тільки пісочниця.
+block.copper-wall.description = Захищає споруди від ворожих снарядів.
+block.copper-wall-large.description = Захищає споруди від ворожих снарядів.
+block.titanium-wall.description = Захищає споруди від ворожих снарядів.
+block.titanium-wall-large.description = Захищає споруди від ворожих снарядів.
+block.plastanium-wall.description = Захищає споруди від ворожих снарядів. Поглинає електричні дуги і лазери. Блокує автоматичні з’єднання енергетичних вузлів.
+block.plastanium-wall-large.description = Захищає споруди від ворожих снарядів. Поглинає електричні дуги і лазери. Блокує автоматичні з’єднання енергетичних вузлів.
+block.thorium-wall.description = Захищає споруди від ворожих снарядів.
+block.thorium-wall-large.description = Захищає споруди від ворожих снарядів.
+block.phase-wall.description = Захищає споруди від ворожих снарядів, відбиває більшість куль при зіткненні.
+block.phase-wall-large.description = Захищає споруди від ворожих снарядів, відбиває більшість куль при зіткненні.
+block.surge-wall.description = Захищає споруди від ворожих снарядів, періодично випускає електричні дуги при зіткненні.
+block.surge-wall-large.description = Захищає споруди від ворожих снарядів, періодично випускає електричні дуги при зіткненні.
+block.door.description = Стіна, яку можна відкрити і закрити.
+block.door-large.description = Стіна, яку можна відкрити і закрити.
+block.mender.description = Періодично ремонтує блоки в своєму радіусі дії.\nЗа бажанням можна використати кремній задля підвищення радіусу дії й ефективності.
+block.mend-projector.description = Ремонтує блоки в своєму радіусі дії.\nЗа бажанням можна використати фазову тканину задля підвищення радіусу дії й ефективності.
+block.overdrive-projector.description = Збільшує швидкість найближчих будівель.\nЗа бажанням можна використати фазову тканину задля підвищення радіусу дії й ефективності.
+block.force-projector.description = Створює навколо себе шестикутне силове поле, захищаючи будівлі та блоки всередині від пошкоджень.\nПерегрівається, якщо завдано занадто великої шкоди. За бажанням можна використати теплоносій для запобігання перегріву. Для збільшення розміру щита можна використовувати фазову тканину.
+block.shock-mine.description = Випускає електричні дуги при контакті з ворогом.
+block.conveyor.description = Переміщує елементи вперед.
+block.titanium-conveyor.description = Переміщує предмети швидше, ніж звичайний конвеєр.
+block.plastanium-conveyor.description = Переміщує предмети партіями. Приймає елементи на задній частині та вивантажує їх у трьох напрямках спереду. Потребує кілька точок завантаження та розвантаження для максимальної пропускної здатності.
+block.junction.description = Діє як міст для двох перехресних конвеєрних стрічок.
+block.bridge-conveyor.description = Транспортує предмети через будівлі або місцевість
+block.phase-conveyor.description = Миттєво транспортує предмети через місцевості або будівлі. Більший діапазон, ніж у мостового конвеєра, але потребує енергії.
+block.sorter.description = Якщо елемент відповідає вибраному, його можна передати. В іншому випадку елемент виводиться ліворуч та праворуч.
+block.inverted-sorter.description = Схожий на звичайний сортувальник, але виводить обрані елементи на бокові сторони.
+block.router.description = Розподіляє елементи, що надходять, порівну на 3 різні напрямки.
+block.router.details = Необхідне зло. Не використовуйте поруч із входами до механізмів, оскільки вони, входи, будуть забиті вихідними предметами.
+block.distributor.description = Розділяє предмети до 7 інших напрямків порівну.
+block.overflow-gate.description = Вивантажує лише ліворуч і праворуч, якщо передній шлях заблокований.
+block.underflow-gate.description = Повна протилежність надмірному затвору. Виводить предмет прямо, якщо лівий і правий шлях заблоковано.
block.mass-driver.description = Найкращий блок для транспортування предметів. Збирає кілька предметів, а потім вистрілює їх до іншої електромагнітної катапульти на велику відстань. Для роботи потребує енергія.
block.mechanical-pump.description = Дешевий насос із повільним виходом, але не потребує енергоспоживання.
block.rotary-pump.description = Удосконалений насос. Насоси більше викачують, але потребують енергію.
block.thermal-pump.description = Найкращий насос.
-block.conduit.description = Основний блок транспортування рідини. Пересуває рідини вперед. Застосовується спільно з насосами та іншими трубопроводами.
-block.pulse-conduit.description = Удосконалений блок транспортування рідини. Швидше транспортує й більше зберігає рідини, ніж стандартні трубопроводи.
-block.plated-conduit.description = Переміщує рідини з тією ж швидкістю, що й імпульсні трубопроводи, але має більше міцності. Не приймає рідин із боків окрім інших трубопроводів.\nПротікає менше.
-block.liquid-router.description = Приймає рідини з одного напрямку та виводить їх до трьох інших напрямків порівну. Також можна зберігати певну кількість рідини. Корисно для розщеплення рідин від одного джерела до кількох мішеней.
-block.liquid-tank.description = Зберігає велику кількість рідини. Використовуйте для створення буферів у ситуаціях із непостійним попитом на матеріали або як гарантію охолодження життєво важливих блоків.
-block.liquid-junction.description = Діє як міст для двох каналів, що перетинаються. Корисно в ситуаціях, коли два різні трубопроводи транспортують різні рідини в різні місця.
-block.bridge-conduit.description = Удосконалений блок транспортування рідини. Надає можливість транспортувати рідину до 3 плиток будь-якої місцевості чи будівлі.
-block.phase-conduit.description = Удосконалений блок транспортування рідини. Використовує енергію для транспортування рідин до приєднаного фазового каналу через декілька плиток.
+block.conduit.description = Пересуває рідини вперед. Застосовується спільно з насосами та іншими трубопроводами.
+block.pulse-conduit.description = Пересуває рідини вперед. Швидше транспортує і зберігає більше рідини, ніж стандартні трубопроводи.
+block.plated-conduit.description = Пересуває рідини вперед. Не приймає рідин із боків окрім інших трубопроводів. Не протікає.
+block.liquid-router.description = Приймає рідини з одного напрямку та виводить їх до трьох інших напрямків порівну. Також може зберігати певну кількість рідини.
+block.liquid-tank.description = Зберігає велику кількість рідини. Виводить воду на всі сторони, через це схожий на рідинний маршрутизатор.
+block.liquid-junction.description = Діє як міст для двох трубопроводів.
+block.bridge-conduit.description = Транспортує рідину через місцевість і будівлі.
+block.phase-conduit.description = Транспортує рідину через місцевість і будівлі. Діапазон дії більший ніж у мостового трубопровода
block.power-node.description = Передає живлення на приєднані вузли. Вузол буде отримувати живлення від будь-яких сусідніх блоків або подавати живлення до них.
-block.power-node-large.description = Поліпшений вузол живлення з більшим радіусом дії.
+block.power-node-large.description = Передовий вузол живлення з більшим радіусом дії.
block.surge-tower.description = Вузол живлення з меншою кількістю доступних з’єднань і з найбільшим радіусом дії.
block.diode.description = Живлення акумулятора може протікати через цей блок лише в одному напрямку, але лише в тому випадку, якщо інша сторона має менше енергії.
block.battery.description = Зберігає енергію як буфер у часи надлишкової енергії. Виводить енергію в періоди дефіциту.
-block.battery-large.description = Зберігає набагато більше енергії, ніж звичайний акумулятор.
-block.combustion-generator.description = Виробляє енергію, спалюючи легкозаймисті матеріали, такі як вугілля.
-block.thermal-generator.description = Генерує енергію у разі розміщення в спекотних місцях.
-block.steam-generator.description = Удосконалений генератор згоряння. Більш ефективний, але потребує додаткової води для отримання пари.
-block.differential-generator.description = Удосконалений генератор згоряння. Використовує різницю температур між кріогенною рідиною й піротитом, що горить.
-block.rtg-generator.description = Простий і надійний генератор. Використовує тепло радіоактивних сполук, які розкладаються, для отримання енергії з повільною швидкістю.
+block.battery-large.description = Зберігає енергію як буфер у часи надлишкової енергії. Виводить енергію в періоди дефіциту. Більша ємність ніж у звичайного акумулятора.
+block.combustion-generator.description = Виробляє енергію, спалюючи легкозаймисті матеріали, як-от вугілля.
+block.thermal-generator.description = Виробляє енергію при розміщенні в спекотних місцях.
+block.steam-generator.description = Виробляє енергію, спалюючи легкозаймисті матеріали і перетворює воду в пару.
+block.differential-generator.description = Виробляє велику кількість енергії. Використовує різницю температур між кріогенною рідиною й пиротитом, що горить.
+block.rtg-generator.description = Використовує тепло радіоактивних сполук, які розкладаються, для отримання енергії з повільною швидкістю.
block.solar-panel.description = Забезпечує невелику кількість енергії від сонця.
-block.solar-panel-large.description = Значно ефективніша ніж стандартна сонячна панель.
-block.thorium-reactor.description = Виробляє значну кількість енергії з торію. Вимагає постійного охолодження. Сильно вибухне, якщо подаватиметься недостатня кількість теплоносія. Вихідна потужність залежить від заповненості, базова потужність генерується на повній місткості.
-block.impact-reactor.description = Удосконалений генератор, здатний створювати величезну кількість енергії за максимальною ефективності. Для запуску процесу потрібно значні обсяги енергії.
-block.mechanical-drill.description = Недорогий бур. Якщо розмістити на доречних плитках, то виводитиме предмети постійно, але повільно. Придатний лише для базових ресурсів.
+block.solar-panel-large.description = Забезпечує невелику кількість енергії від сонця. Значно ефективніша ніж стандартна сонячна панель.
+block.thorium-reactor.description = Виробляє значну кількість енергії з торію. Потребує постійного охолодження. Сильно вибухне, якщо подаватиметься недостатня кількість теплоносія.
+block.impact-reactor.description = Здатний створювати величезну кількість енергії за максимальною ефективності. Для запуску процесу потрібно значні обсяги енергії.
+block.mechanical-drill.description = Якщо розмістити на доречних плитках, то виводитиме предмети постійно, але повільно. Придатний лише для базових ресурсів.
block.pneumatic-drill.description = Поліпшений бур, здатний видобувати титан. Видобуває швидше, ніж механічний бур.
-block.laser-drill.description = Дає змогу виконувати буріння ще швидше за допомогою лазерної технології, але вимагає енергії. Придатний до видобутку торію.
-block.blast-drill.description = Найкращий бур. Потрібна велика кількість енергії.
-block.water-extractor.description = Видобуває підземні води. Використовується в місцях, де немає поверхневої води.
-block.cultivator.description = Культивує невеликі концентрації спор в атмосфері на готові до промисловості стручки.
-block.oil-extractor.description = Для видобутку нафти використовується велика кількість енергії, піску та води.
-block.core-shard.description = Найперша версія капсули ядра. Після його знищення всі контакти з регіоном втрачаються. Не допустіть цього.
-block.core-foundation.description = Друга версія ядра. Краще броньована. Зберігає більше ресурсів.
-block.core-nucleus.description = Третя й остання версія капсули ядра. Надзвичайно добре броньована. Зберігає величезні обсяги ресурсів.
+block.laser-drill.description = Дає змогу видобувати ще швидше за допомогою лазерної технології, але потребує енергії. здатний видобувати торій.
+block.blast-drill.description = Найкращий бур. Потрібує великої кількості енергії.
+block.water-extractor.description = Викачує підземні води. Використовується в місцях, де немає поверхневої води.
+block.cultivator.description = Культивує невеликі концентрації спор в стручки.
+block.cultivator.details = Відновлена технологія. Використовується для отримання величезної кількості біомаси якомога ефективніше. Ймовірно, початковий інкубатор спор, що зараз покриває Серпуло.
+block.oil-extractor.description = Використовується велика кількість енергії, піску та води для отримання нафти.
+block.core-shard.description = Ядро бази. Після знищення сектор втрачається. Найперша версія капсули ядра. Після його знищення всі контакти з регіоном втрачаються. Не допустіть цього.
+block.core-shard.details = Найперша версія капсули ядра. Компактне. Самовідтворюванне. Оснащене одноразовими пусковими рушіями. Не призначено для міжпланетних подорожей.
+block.core-foundation.description = Ядро бази. Добре броньоване. Зберігає більше ресурсів.
+block.core-foundation.details = Друга версія ядра.
+block.core-nucleus.description = Ядро бази. Напрочуд добре броньовано. Зберігає величезну кількість ресурсів.
+block.core-nucleus.details = Третя і фінальна версія ядра.
block.vault.description = Зберігає велику кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища.
block.container.description = Зберігає малу кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища.
-block.unloader.description = Вивантажує предмети з блока, який не переміщує предмети, на конвеєр або безпосередньо в сусідній блок. Тип предмета для завантаження можна змінити, натиснувши на блок.
-block.launch-pad.description = Запускає партії предметів без необхідності запуску ядра. Стартовий майданчик надає можливість вам запускати ресурси кожні n секунд без необхідності завершувати гру. Просто подайте в нього ресурси та забезпечте енергією.
-block.launch-pad-large.description = Поліпшена версія стартового майданчика. Зберігає більше предметів. Запускається частіше.
-block.duo.description = Мала й дешева башта. Корисна проти наземних одиниць.
-block.scatter.description = Основна протиповітряна башта. Вистрілює грудочки свинцю, брухту чи метаскла в противників.
+block.unloader.description = Вивантажує предмети з найближчих блоків
+block.launch-pad.description = Запускає партії предметів без необхідності запуску ядра.
+block.duo.description = Вистрілює по черзі кулями по ворогах.
+block.scatter.description = Вистрілює скупченням свинцю, брухту чи метаскла в повітряних противників.
block.scorch.description = Підпалює будь-яких наземних противників поблизу. Високоефективна на близькій відстані.
-block.hail.description = Невелика артилерійська башта з далеким радіусом дії.
-block.wave.description = Башта середнього розміру. Випускає потоками рідини в противників. Автоматично гасить пожежі при постачанні води.
-block.lancer.description = Лазерна башта середнього розміру, яка атакує наземних противників. Заряджає і вистрілює потужні пучки енергії.
-block.arc.description = Невелика електрична башта з малим радіусом дії. Стріляє дугами електрики в противників.
-block.swarmer.description = Ракетна башта середнього розміру. Атакує як повітряних, так і наземних противників. Запускає ракети, які летять у противників самостійно.
-block.salvo.description = Більш велика, вдосконалена версія башти «Подвійна». Вистрілює швидкий залп куль у противника.
-block.fuse.description = Велика енергетична башта з малим радіусом дії. Стріляє трьома пронизливими променями на найближчих противників.
-block.ripple.description = Надзвичайно потужна артилерійська башта. На великі відстані стріляє скупченнями снарядів у противників.
-block.cyclone.description = Велика протиповітряна та протиназемна башта. Підпалює вибухонебезпечними грудками скупчення противників.
-block.spectre.description = Масивна двоствольна гармата. Стріляє великими бронебійними кулями в повітряні та наземні цілі.
-block.meltdown.description = Масивна лазерна гармата. Заряджає і стріляє лазерним променем у найближчих противників. Для роботи потрібен теплоносій.
-block.repair-point.description = Безперервно ремонтує найближчу пошкоджену бойову одиницю.
-block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних.
\ No newline at end of file
+block.hail.description = Вистрілює невеликі снаряди в наземних ворогів на великі відстані.
+block.wave.description = Вистрілює потоки рідин в ворогів. Автоматично гасить пожежі при постачанні води.
+block.lancer.description = Заряджає і вистрілює потужні пучки енергії в наземних противників.
+block.arc.description = Вистрілює дугами електрики в наземних противників.
+block.swarmer.description = Запускає ракети, що автоматично наводяться у противників.
+block.salvo.description = Вистрілює швидкий залп куль у противника.
+block.fuse.description = Вистрілює трьома променями, що пронизують броню, у малому радіусі у противників.
+block.ripple.description = Вистрілює скупченням снарядів у противників.
+block.cyclone.description = Підпалює вибухові грудки скупчення противників.
+block.spectre.description = Вистрілює великі бронебійні кулі у повітряні та наземні цілі.
+block.meltdown.description = Заряджає і вистріляє лазерним променем у найближчих противників. Для роботи потрібен теплоносій.
+block.foreshadow.description = Вистрілює великим болтом в одну ціль на велику дистанцію
+block.repair-point.description = Безперервно ремонтує найближчу пошкоджену бойову одиницю у своєму радіусі дії.
+block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних.
+block.parallax.description = Притягає ворожі повітряні одиниці, пошкоджуючи їх в процесі.
+block.tsunami.description = Вистрілює потужними потоками рідини у ворогів. Автоматично гасить пожежі при постачанні води.
+block.silicon-crucible.description = Очищує кремній від піску та вугілля, використовуючи пиратит як додаткове джерело тепла. Більш ефективний у жарких місцях.
+block.disassembler.description = Поділяє шлак на незначні кількості екзотичних мінеральних компонентів при низькій ефективності. Може виробляти торій.
+block.overdrive-dome.description = Збільшує швидкість найближчих будівль. Потребує фазову тканину і кремній.
+block.payload-conveyor.description = Переміщує великі вантажі, як-от одиниці з заводів.
+block.payload-router.description = Розділяє вантажі, що надходять, у 3 різні сторони.
+block.command-center.description = Контролює поведінку одиниць за допомогою декількох різних команд.
+block.ground-factory.description = Виробляє наземних одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення.
+block.air-factory.description = Виробляє повітряних одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення.
+block.naval-factory.description = Виробляє одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення.
+block.additive-reconstructor.description = Поліпшує введених одиниць до другого рівня.
+block.multiplicative-reconstructor.description = Поліпшує введених одиниць до третього рівня.
+block.exponential-reconstructor.description = Поліпшує введених одиниць до четвертого рівня.
+block.tetrative-reconstructor.description = Поліпшує введених одиниць до п’ятого і фінального рівня.
+block.switch.description = Перемикач. Стан можна читати і контролювати за допомогою логічних процесорів.
+block.micro-processor.description = Запускає послідовність логічних вказівок (інструкцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель.
+block.logic-processor.description = Запускає послідовність логічних вказівок (інструкцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. Швидше ніж Мікропроцесор.
+block.hyper-processor.description = Запускає послідовність логічних вказівок (інструкцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. Швидше ніж Логічний процесор
+block.memory-cell.description = Зберігає інформацію для логічного процесора.
+block.memory-bank.description = Зберігає інформацію для логічного процесора. Висока місткість.
+block.logic-display.description = Відображає довільну графіку з логічного процесора.
+block.large-logic-display.description = Відображає довільну графіку з логічного процесора.
+
+unit.dagger.description = Вистрілює стандартними кулями по найближчих ворогах.
+unit.mace.description = Вистрілює потоками полум'я у найближчих ворогів.
+unit.fortress.description = Вистрілює з дальнобійної артилерії по наземних цілях.
+unit.scepter.description = Вистрілює шквалом заряджених куль у найближчих ворогів.
+unit.reign.description = Вистрілює шквалом масивних пронизливих куль по найближчих ворогах.
+unit.nova.description = Вистрілює лазерними болтами, які пошкоджують ворогів та відновлюють союзні споруди. Здатний до польоту.
+unit.pulsar.description = Випускає дуги електрики, які завдають шкоди ворогам та відновлюють союзні споруди. Здатний до польоту.
+unit.quasar.description = Вистрілює пробивними лазерними промені, які пошкоджують ворогів та відновлюють споріднені конструкції. Здатний до польоту. Захищений.
+unit.vela.description = Вистрілює масивним безперервним лазерним промінем, який завдає шкоди ворогам, спричиняє пожежі та відновлює союзні споруди. Здатний до польоту.
+unit.corvus.description = Спричиняє масивний лазерний вибух, який завдає шкоди ворогам та відновлює споріднені споруди. Може переступати через більшість місцевості.
+unit.crawler.description = Біжить до ворогів і самознищується, викликаючи великий вибух.
+unit.atrax.description = Випалює виснажливі шари шлаку в наземних цілях. Може переступити більшість місцевості.
+unit.spiroct.description = Вистрілює виснажливими лазерними променями у ворогів, відновлюючись при цьому. Може переступати через більшість місцевості.
+unit.arkyid.description = Вистрілює у ворогів великими виснажливими лазерними променями, відновлюючись при цьому.
+unit.toxopid.description = Вистрілює у ворогів великими електричними касетними снарядами та пробивними лазерами. Може переступати через більшість місцевості.
+unit.flare.description = Вистрілює стандартними кулями в найближчі цілі.
+unit.horizon.description = Кидає купу бомб на наземні цілі.
+unit.zenith.description = Вистрілює залпи ракет по всіх найближчих ворогів.
+unit.antumbra.description = Вистрілює шквал куль у всіх найближчих ворогів.
+unit.eclipse.description = Вистрілює два пронизливі лазери та шквал луски по всіх найближчих ворогах.
+unit.mono.description = Автоматично видобуває мідь і свинець і кладе їх в ядро.
+unit.poly.description = Автоматично перебудовує зруйновані споруди та допомагає іншим одиницям у будівництві.
+unit.mega.description = Автоматично відновлює пошкоджені конструкції. Здатний нести блоки та невеликі наземні блоки.
+unit.quad.description = Кидає великі бомби на наземні цілі, відновлюючи союзні споруди та завдаючи шкоди ворогам. Здатний нести середні наземні одиниці.
+unit.oct.description = Захищає найближчих союзників своїм відновлювальним щитом. Здатний нести більшість наземних одиниць.
+unit.risso.description = Вистрілює шквалом ракет і куль по всіх найближчих ворогах.
+unit.minke.description = Вистрілює запальними снарядами та стандартнами кулями по найближчих наземних цілях.
+unit.bryde.description = Вистрілює по ворогам артилерійськими снарядами та ракетами великої дальності.
+unit.sei.description = Вистрілює по ворогам шквалом ракет і бронебійних куль.
+unit.omura.description = Вистрілює по ворогах дальнобійним болтом, що пробиває броню. Виробляє повітряних Фальшфеєрів.
+unit.alpha.description = Захищає ядро «Уламок» від противників. Будує споруди.
+unit.beta.description = Захищає ядро «Штаб» від противників. Будує споруди.
+unit.gamma.description = Захищає ядро «Атом» від противників. Будує споруди.
diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties
index 5744d3d0fd..9b0f278d9c 100644
--- a/core/assets/bundles/bundle_zh_CN.properties
+++ b/core/assets/bundles/bundle_zh_CN.properties
@@ -1,4 +1,4 @@
-credits.text = 作者[royal]Anuken[] - [sky]anukendev@gmail.com[] 译者[orange]老滑稽[] - [cyan]QQ:1290419934[]
+credits.text = 作者[royal]Anuken[] - [sky]anukendev@gmail.com[]
credits = 致谢
contributors = 翻译者和贡献者
discord = 加入 Mindustry 的 Discord!
@@ -20,8 +20,8 @@ gameover = 游戏结束
gameover.pvp = [accent] {0}[]队获胜!
highscore = [accent]新纪录!
copied = 已复制。
-indev.popup = [accent]v6[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役不完善[]\n- 内容不完整\n - 大多[scarlet]单位AI[]运行不佳\n- 单位系统不完整\n- 一切内容都可能发生变动或调整。\n\n向[accent]主群(QQ681962751)[]提交错误报告。
-indev.notready = 还没做好看NM
+indev.popup = [accent]6.0[]仍在[accent]测试版[].\n[lightgray]这意味着:[]\n[scarlet]- 战役玩法完全没有完成[]\n- 很多内容还没有做完\n - 大多[scarlet]单位AI[]无法正确地运行\n- 单位系统完全没有完成\n- 一切您所看到的内容都可能会移除或调整。\n\n在[accent]Github[]提交错误报告。\n[#66ccff]来自译者WinterUnderTheSnow的忠告:不建议新玩家游玩还在测试阶段的6.0!建议您先从[orange]v104.6[#66ccff]或[orange]v104.10[#66ccff]开始游玩!
+indev.notready = 这部分玩法还未开发完成。
load.sound = 音乐加载中
load.map = 地图加载中
@@ -55,6 +55,7 @@ schematic.saved = 蓝图已保存。
schematic.delete.confirm = 确认删除蓝图?
schematic.rename = 重命名蓝图
schematic.info = {0}x{1},{2} 个方块
+schematic.disabled = [scarlet]蓝图已禁用![]\n您不能在此[accent]地图[]或[accent]服务器[]上使用蓝图.
stat.wave = 防守波数:[accent]{0}
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
@@ -65,7 +66,7 @@ stat.delivered = 装运资源:
stat.playtime = 游玩时间:[accent] {0}
stat.rank = 最终评级:[accent]{0}
-globalitems = [accent]Global Items
+globalitems = [accent]全局物品
map.delete = 确定要删除“[accent]{0}[]”地图吗?
level.highscore = 最高分:[accent]{0}
level.select = 选择关卡
@@ -100,7 +101,6 @@ done = 已完成
feature.unsupported = 您的设备不支持此功能。
mods.alphainfo = 请注意,测试版本中的模组[scarlet]很容易存在缺陷[]。\n在 Mindustry 的 GitHub 或 Discord 上报告你发现的问题。
-mods.alpha = [accent](测试)
mods = 模组
mods.none = [lightgray]没有找到模组!
mods.guide = 模组制作教程
@@ -115,7 +115,7 @@ mod.disable = 禁用
mod.content = 内容:
mod.delete.error = 无法删除模组。可能文件被占用。
mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0}
-mod.outdated = [scarlet]模组不兼容6.0(缺失 minGameVersion: 105)
+mod.outdated = [scarlet]该模组可能不能在6.0上正确地运行(缺失 minGameVersion: 105)
mod.missingdependencies = [scarlet]缺少前置模组:{0}
mod.erroredcontent = [scarlet]内容错误
mod.errors = 读取内容时发生错误.
@@ -127,14 +127,14 @@ mod.reloadrequired = [scarlet]需要重启
mod.import = 导入模组
mod.import.file = 导入文件
mod.import.github = 从 GitHub 导入模组
-mod.jarwarn = [scarlet]JAR模组存在危险性。[]\n请确保此模组来源安全可靠!
+mod.jarwarn = [scarlet]JAR模组注定存在危险性。[]\n请确保此模组来源安全可靠!
mod.item.remove = 这个物品是[accent] '{0}'[]模组的一部分. 删除物品需要先卸载此模组.
mod.remove.confirm = 此模组将被删除。
mod.author = [lightgray]作者:[] {0}
mod.missing = 此存档包含您最近已更新或者现在未安装的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0}
mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一则预览图像。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。
mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。
-mod.scripts.disable = 你的设备不支持含有脚本的模组。必须禁用相关模组以进入游戏。
+mod.scripts.disable = 您的设备不支持含有脚本的模组。必须禁用相关模组以进入游戏。
about.button = 关于
name = 名字:
@@ -151,28 +151,28 @@ researched = [lightgray]{0}己研究。
research.progress = {0}% 完成度
players = {0} 位玩家在线
players.single = {0} 位玩家在线
-players.search = search
+players.search = 研究
players.notfound = [gray]没有找到玩家。
server.closing = [accent]服务器关闭…
server.kicked.kick = 你被踢出了服务器。
server.kicked.whitelist = 你不在服务器白名单中。
server.kicked.serverClose = 服务器已关闭。
-server.kicked.vote = 你被投票踢出了服务器。
+server.kicked.vote = 您被投票踢出了服务器。
server.kicked.clientOutdated = 客户端过旧,请更新你的游戏。
server.kicked.serverOutdated = 服务器过旧,请联系服务器管理员升级服务器。
-server.kicked.banned = 你在这个服务器上被封禁了。
+server.kicked.banned = 您在这个服务器上被封禁了。
server.kicked.typeMismatch = 此服务器与你的不稳定测试版不兼容。
server.kicked.playerLimit = 服务器已满,请等待一个空位。
server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接!
-server.kicked.nameInUse = 你的名字与服务器中的一个人重复了。
+server.kicked.nameInUse = 您的名字与服务器中的一个人重复了。
server.kicked.nameEmpty = 无效的名字!
-server.kicked.idInUse = 你已经连接了这个服务器!不允许在一台电脑上用两个客户端连接。
+server.kicked.idInUse = 您已经连接了这个服务器!不允许在一台设备上用两个客户端连接。
server.kicked.customClient = 这个服务器不支持自定义客户端。请下载官方版本。
server.kicked.gameover = 游戏结束!
server.kicked.serverRestarting = 服务器正在重启.
server.versions = 客户端版本:[accent] {0}[]\n服务器版本:[accent] {1}[]
host.info = [accent]创建局域网游戏[]按钮会在[scarlet] 6567 []端口运行一个服务器。[]\n任何在同一个[lightgray] Wi-Fi 或本地网络[]下的人应该都可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过 IP 地址连接,你需要设定[accent]端口转发[]。\n\n[lightgray]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 访问本地网络。
-join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向房主询问 IP 地址。
+join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向服主询问 IP 地址。
hostserver = 创建服务器
invitefriends = 邀请朋友
hostserver.mobile = 创建\n服务器
@@ -201,7 +201,7 @@ server.bans.none = 没有被封禁的玩家!
server.admins = 管理员
server.admins.none = 该服务器没有管理员!
server.add = 添加服务器
-server.delete = 你确定要删除这个服务器吗?
+server.delete = 您确定要删除这个服务器吗?
server.edit = 编辑服务器
server.outdated = [crimson]服务器过旧![]
server.outdated.client = [crimson]客户端过旧![]
@@ -228,11 +228,11 @@ server.addressinuse = 地址已在使用!
server.invalidport = 无效的端口!
server.error = [crimson]创建服务器错误:[accent]{0}
save.new = 新存档
-save.overwrite = 你确定你要覆盖这个存档吗?
+save.overwrite = 您确定要覆盖这个存档吗?
overwrite = 覆盖
save.none = 没有找到存档!
savefail = 保存失败!
-save.delete.confirm = 你确定你要删除这个存档吗?
+save.delete.confirm = 您确定要删除这个存档吗?
save.delete = 删除
save.export = 导出存档
save.import.invalid = [accent]此存档无效!
@@ -245,7 +245,7 @@ save.rename.text = 新名称:
selectslot = 选择一个存档。
slot = [accent]存档位 {0}
editmessage = 编辑消息
-save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。
+save.corrupted = [accent]存档损坏或无效!\n如果您刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。
empty = < 空 >
on = 开
off = 关
@@ -284,18 +284,21 @@ selectschematic = [accent][[{0}][]来选择复制
pausebuilding = [accent][[{0}][]来暂停建造
resumebuilding = [scarlet][[{0}][]来恢复建造
wave = [accent]第{0}波
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]下一波倒计时:{0}秒
wave.waveInProgress = [lightgray]波次袭来
waiting = [lightgray]等待中…
waiting.players = 等待玩家中…
wave.enemies = [lightgray]剩余 {0} 个敌人
wave.enemy = [lightgray]剩余 {0} 个敌人
+wave.guardianwarn = Boss 将在[accent]{0}[]波后到来。
+wave.guardianwarn.one = Boss 将在[accent]{0}[]波后到来。
loadimage = 加载图片
saveimage = 保存图片
unknown = 未知
custom = 自定义
-builtin = 内建的
-map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法撤销!
+builtin = 内置的
+map.delete.confirm = 您确定你想要删除这张地图吗?这个操作无法撤销!
map.random = [accent]随机地图
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[royal]己方[]的核心。
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[royal]敌人[]的核心。
@@ -328,6 +331,7 @@ editor.generation = 筛选器:
editor.ingame = 游戏内编辑
editor.publish.workshop = 上传到创意工坊
editor.newmap = 新地图
+editor.center = 居中
workshop = 创意工坊
waves.title = 波数
waves.remove = 移除
@@ -335,9 +339,9 @@ waves.never = < 无限 >
waves.every = 每
waves.waves = 波
waves.perspawn = 每次生成
-waves.shields = 护盾/波次
+waves.shields = 护盾/波
waves.to = 至
-waves.guardian = 首领
+waves.guardian = Boss
waves.preview = 预览
waves.edit = 编辑…
waves.copy = 复制到剪贴板
@@ -359,7 +363,7 @@ editor.removeunit = 移除单位
editor.teams = 队伍
editor.errorload = 读取文件出错:\n[accent]{0}
editor.errorsave = 保存文件出错:\n[accent]{0}
-editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果你想导入地图,请在编辑器中使用“导入地图”按钮。
+editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果您想导入地图,请在编辑器中使用“导入地图”按钮。
editor.errorlegacy = 此地图太旧了,旧的地图格式已不再支持。
editor.errornot = 这不是地图文件。
editor.errorheader = 此地图文件无效或已损坏。
@@ -372,8 +376,8 @@ editor.resize = 调整大小
editor.loadmap = 载入地图
editor.savemap = 保存地图
editor.saved = 已保存!
-editor.save.noname = 你的地图没有名字!在“地图信息”菜单里设置一个。
-editor.save.overwrite = 你的地图覆盖了一个内置的地图!在“地图信息”菜单里重新设置一个不同的名称。
+editor.save.noname = 您的地图没有名字!在“地图信息”菜单里设置一个。
+editor.save.overwrite = 您的地图覆盖了一个内置的地图!在“地图信息”菜单里重新设置一个不同的名称。
editor.import.exists = [scarlet]无法导入:[]存在名为“{0}”的内置地图!
editor.import = 导入…
editor.importmap = 导入地图
@@ -416,6 +420,7 @@ filters.empty = [lightgray]没有过滤条件!用下方的按钮添加。
filter.distort = 扭曲程度
filter.noise = 波动程度
filter.enemyspawn = 敌人生成点选择
+filter.spawnpath = 敌人生成途径
filter.corespawn = 核心降落点选择
filter.median = 平均数
filter.oremedian = 矿石平均数
@@ -440,6 +445,7 @@ filter.option.amount = 数量
filter.option.block = 方块
filter.option.floor = 地面
filter.option.flooronto = 地面目标
+filter.option.target = 目标
filter.option.wall = 墙
filter.option.ore = 矿石
filter.option.floor2 = 二重地面
@@ -471,15 +477,9 @@ requirement.wave = {1}中的第{0}波次
requirement.core = 在{0}中摧毁敌方核心
requirement.research = 研究 {0}
requirement.capture = 占领 {0}
-resume = 暂停:\n[lightgray]{0}
bestwave = [lightgray]最高波次:{0}
-launch = < 发射 >
launch.text = 发射
-launch.title = 发射成功
-launch.next = [lightgray]下个发射窗口在第{0}波
-launch.unable2 = [scarlet]无法发射[]
-launch.confirm = 您将装载并发射核心中的所有资源。\n此地图将重置,无法回到此基地。
-launch.skip.confirm = 如果现在跳过,在下一个发射窗口到来前,您都无法发射。
+research.multiplayer = 仅有服主可研究物品。
uncover = 解锁
configure = 设定装运的数量
loadout = 装运
@@ -495,7 +495,7 @@ zone.objective = [lightgray]目标:[accent]{0}
zone.objective.survival = 生存
zone.objective.attack = 摧毁敌方核心
add = 添加…
-boss.health = BOSS 生命值
+boss.health = Boss 生命值
connectfail = [crimson]服务器连接失败:[accent]{0}
error.unreachable = 无法访问服务器。\n确定输对地址了吗?
@@ -512,6 +512,7 @@ weather.rain.name = 降雨
weather.snow.name = 降雪
weather.sandstorm.name = 沙尘暴
weather.sporestorm.name = 孢子雾
+weather.fog.name = 雾
sectors.unexplored = [lightgray]未探索
sectors.resources = 资源:
@@ -521,6 +522,11 @@ sectors.resume = 继续
sectors.launch = 发射
sectors.select = 选择
sectors.nonelaunch = [lightgray]无 (太阳)
+sectors.rename = 重命名区块
+sector.missingresources = [scarlet]核心资源不足
+
+planet.serpulo.name = 塞普罗
+planet.sun.name = 太阳
sector.groundZero.name = 零号地区
sector.craters.name = 陨石带
@@ -532,7 +538,7 @@ sector.nuclearComplex.name = 核裂阵
sector.overgrowth.name = 增生区
sector.tarFields.name = 油田
sector.saltFlats.name = 盐碱荒滩
-sector.crags.name = 悬崖
+sector.fungalPass.name = 真菌通道
sector.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
sector.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。
@@ -560,6 +566,10 @@ settings.clear.confirm = 您确定要清除此数据?\n此操作无法撤销
settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和按键绑定。\n按「是」后,游戏将删除所有数据并自动退出。
settings.clearsaves.confirm = 您确定要清除存档?
settings.clearsaves = 清除存档
+settings.clearresearch = 清除研究进度
+settings.clearresearch.confirm = 您确定要清除战役研究进度?
+settings.clearcampaignsaves = 清除战役进度
+settings.clearcampaignsaves.confirm = 您确定要清除战役进度?
paused = [accent]< 暂停 >
clear = 清除
banned = [scarlet]已禁止
@@ -570,12 +580,14 @@ info.title = [accent]详情
error.title = [crimson]发生了一个错误
error.crashtitle = 发生了一个错误
unit.nobuild = [scarlet]单位未能建造
+lastaccessed = [lightgray]上次操作: {0}
+block.unknown = [lightgray]???
+
stat.input = 输入
stat.output = 输出
stat.booster = 增强物品/液体
stat.tiles = 所需地型
stat.affinities = 相关
-block.unknown = [lightgray]???
stat.powercapacity = 能量容量
stat.powershot = 能量/发射
stat.damage = 伤害
@@ -594,6 +606,7 @@ stat.powerconnections = 最多连接
stat.poweruse = 使用能量
stat.powerdamage = 功率/损伤
stat.itemcapacity = 物品容量
+stat.memorycapacity = 内存容量
stat.basepowergeneration = 基础能源输出
stat.productiontime = 生产时间
stat.repairtime = 建筑完全修复时间
@@ -613,6 +626,28 @@ stat.reload = 每秒发射数
stat.ammo = 弹药
stat.shieldhealth = 盾容
stat.cooldowntime = 冷却时间
+stat.explosiveness = 爆炸性
+stat.basedeflectchance = 基础反射几率
+stat.lightningchance = 激发闪电几率
+stat.lightningdamage = 激发闪电伤害
+stat.flammability = 燃烧性
+stat.radioactivity = 放射性
+stat.heatcapacity = 热容量
+stat.viscosity = 粘度
+stat.temperature = 温度
+stat.speed = 速度
+stat.buildspeed = 建造速度
+stat.minespeed = 采矿速度
+stat.minetier = 采矿等级
+stat.payloadcapacity = 载货容量
+stat.commandlimit = 指挥上限
+stat.abilities = 能力
+
+ability.forcefield = 力墙场
+ability.repairfield = 修复场
+ability.statusfield = 状态场
+ability.unitspawn = {0} 工厂
+ability.shieldregenfield = 护盾再生场
bar.drilltierreq = 需要更好的钻头
bar.noresources = 缺失资源
@@ -624,6 +659,7 @@ bar.powerbalance = 能量:{0}/秒
bar.powerstored = 储能:{0}/{1}
bar.poweramount = 能量:{0}
bar.poweroutput = 能量输出:{0}
+bar.powerlines = 链接: {0}/{1}
bar.items = 物品:{0}
bar.capacity = 容量:{0}
bar.unitcap = {0} {1}/{2}
@@ -635,6 +671,8 @@ bar.progress = 制造进度
bar.input = 输入
bar.output = 输出
+units.processorcontrol = [lightgray]由处理器控制
+
bullet.damage = [stat]{0}[lightgray] 伤害
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
bullet.incendiary = [stat] 燃烧
@@ -642,12 +680,15 @@ bullet.homing = [stat] 追踪
bullet.shock = [stat] 电击
bullet.frag = [stat] 分裂
bullet.knockback = [stat]{0}[lightgray] 击退
+bullet.pierce = [stat]{0}[lightgray]x 穿透
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat] 冰冻
bullet.tarred = [stat] 减速
bullet.multiplier = [stat]{0}[lightgray]x 装弹数量
bullet.reload = [stat]{0}[lightgray]x 装弹速度
unit.blocks = 方块
+unit.blockssquared = 方块²
unit.powersecond = 能量/秒
unit.liquidsecond = 液体/秒
unit.itemssecond = 物品/秒
@@ -670,7 +711,7 @@ category.power = 能量
category.liquids = 液体
category.items = 物品
category.crafting = 制造
-category.shooting = 发射
+category.function = 功能
category.optional = 可选的增强
setting.landscape.name = 锁定横屏
setting.shadows.name = 影子
@@ -679,7 +720,6 @@ setting.linear.name = 抗锯齿
setting.hints.name = 提示
setting.flow.name = 显示资源传送速度[scarlet] (实验性)
setting.buildautopause.name = 自动暂停建造
-setting.mapcenter.name = 地图自动居中
setting.animatedwater.name = 流动的水
setting.animatedshields.name = 动态画面
setting.antialias.name = 抗锯齿
@@ -713,7 +753,6 @@ setting.fullscreen.name = 全屏
setting.borderlesswindow.name = 无边界窗口[lightgray](可能需要重启)
setting.fps.name = 显示 FPS 和网络延迟
setting.smoothcamera.name = 镜头平滑
-setting.blockselectkeys.name = 显示建筑选择按键
setting.vsync.name = 垂直同步
setting.pixelate.name = 像素画面 [lightgray](禁用动画)
setting.minimap.name = 显示小地图
@@ -755,8 +794,8 @@ keybind.clear_building.name = 清除建筑
keybind.press = 请按一个键…
keybind.press.axis = 请按一个轴或键…
keybind.screenshot.name = 地图截图
-keybind.toggle_power_lines.name = 显隐能量标识线
-keybind.toggle_block_status.name = 显隐方块状态
+keybind.toggle_power_lines.name = 显示/隐藏能量标识线
+keybind.toggle_block_status.name = 显示/隐藏方块状态
keybind.move_x.name = 水平移动
keybind.move_y.name = 竖直移动
keybind.mouse_move.name = 跟随鼠标
@@ -822,6 +861,7 @@ mode.custom = 自定义模式
rules.infiniteresources = 无限资源
rules.reactorexplosions = 反应堆爆炸
+rules.schematic = 启用蓝图
rules.wavetimer = 波次计时器
rules.waves = 波次
rules.attack = 攻击模式
@@ -847,7 +887,8 @@ rules.title.unit = 单位
rules.title.experimental = 实验性
rules.title.environment = 环境性
rules.lighting = 光照
-rules.fire = Fire
+rules.enemyLights = 单位光照
+rules.fire = 火焰
rules.explosions = 建筑/单位爆炸伤害
rules.ambientlight = 环境光
rules.weather = 气候
@@ -858,6 +899,7 @@ content.item.name = 物品
content.liquid.name = 液体
content.unit.name = 部队
content.block.name = 块
+
item.copper.name = 铜
item.lead.name = 铅
item.coal.name = 煤
@@ -879,63 +921,47 @@ liquid.slag.name = 矿渣
liquid.oil.name = 石油
liquid.cryofluid.name = 冷冻液
-item.explosiveness = [lightgray]爆炸性:{0}%
-item.flammability = [lightgray]易燃性:{0}%
-item.radioactivity = [lightgray]放射性:{0}%
-
-unit.health = [lightgray]生命值:{0}
-unit.speed = [lightgray]速度:{0}
-unit.weapon = [lightgray]武器{0}
-unit.itemcapacity = [lightgray]物品容量:{0}
-unit.minespeed = [lightgray]采矿速度:{0}%
-unit.minepower = [lightgray]采矿力量:{0}
-unit.ability = [lightgray]能力:{0}
-unit.buildspeed = [lightgray]建造速度:{0}%
-
-liquid.heatcapacity = [lightgray]热容量:{0}
-liquid.viscosity = [lightgray]粘度:{0}
-liquid.temperature = [lightgray]温度:{0}
-
unit.dagger.name = 尖刀
-unit.mace.name = 牙狼
+unit.mace.name = 战锤
unit.fortress.name = 堡垒
unit.nova.name = 新星
-unit.pulsar.name = 脉冲星
-unit.quasar.name = 超星
+unit.pulsar.name = 恒星
+unit.quasar.name = 耀星
unit.crawler.name = 爬虫
-unit.atrax.name = 火蛛
-unit.spiroct.name = 天蝎
-unit.arkyid.name = 血蛭
-unit.toxopid.name = 毒蟒
-unit.flare.name = 星耀
+unit.atrax.name = 毒蛛
+unit.spiroct.name = 血蛭
+unit.arkyid.name = 毒蛊
+unit.toxopid.name = 天蝎
+unit.flare.name = 星辉
unit.horizon.name = 天垠
unit.zenith.name = 苍穹
-unit.antumbra.name = 半影
+unit.antumbra.name = 月影
unit.eclipse.name = 日蚀
unit.mono.name = 独影
unit.poly.name = 聚幻
-unit.mega.name = 巨像
+unit.mega.name = 巨灵
unit.quad.name = 雷霆
unit.oct.name = 要塞
unit.risso.name = 梭鱼
-unit.minke.name = 刺鲸
-unit.bryde.name = 虎鲨
-unit.sei.name = 湖妖
+unit.minke.name = 飞鲨
+unit.bryde.name = 戟鲸
+unit.sei.name = 蛟龙
unit.omura.name = 海神
unit.alpha.name = 阿尔法
unit.beta.name = 贝塔
-unit.gamma.name = 伽玛
+unit.gamma.name = 伽马
unit.scepter.name = 权杖
-unit.reign.name = 君王
+unit.reign.name = 王座
unit.vela.name = 灾星
unit.corvus.name = 死星
block.resupply-point.name = 补给点
-block.parallax.name = 阻滞光束
+block.parallax.name = 差扰光束
block.cliff.name = 悬崖
-block.sand-boulder.name = 沙砂巨石
+block.sand-boulder.name = 砂岩
block.grass.name = 草地
block.slag.name = 矿渣
+block.space.name = 太空
block.salt.name = 盐碱地
block.salt-wall.name = 盐墙
block.pebbles.name = 鹅卵石
@@ -981,6 +1007,7 @@ block.darksand-water.name = 暗沙 水
block.char.name = 焦土
block.dacite.name = 英安岩
block.dacite-wall.name = 英安岩墙
+block.dacite-boulder.name = 英安巨岩
block.ice-snow.name = 冰雪地
block.stone-wall.name = 石墙
block.ice-wall.name = 冰墙
@@ -1014,7 +1041,7 @@ block.titanium-wall.name = 钛墙
block.titanium-wall-large.name = 大型钛墙
block.plastanium-wall.name = 塑钢墙
block.plastanium-wall-large.name = 大型塑钢墙
-block.phase-wall.name = 相织布墙
+block.phase-wall.name = 相织物墙
block.phase-wall-large.name = 大型相织物墙
block.thorium-wall.name = 钍墙
block.thorium-wall-large.name = 大型钍墙
@@ -1029,7 +1056,7 @@ block.conveyor.name = 传送带
block.titanium-conveyor.name = 钛传送带
block.plastanium-conveyor.name = 塑钢传送带
block.armored-conveyor.name = 装甲传送带
-block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边的输入。
+block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边上的输入。
block.junction.name = 连接器
block.router.name = 路由器
block.distributor.name = 分配器
@@ -1075,6 +1102,7 @@ block.power-source.name = 无限能源
block.unloader.name = 装卸器
block.vault.name = 仓库
block.wave.name = 波浪
+block.tsunami.name = 海啸
block.swarmer.name = 蜂群
block.salvo.name = 齐射炮
block.ripple.name = 浪涌
@@ -1114,31 +1142,33 @@ block.arc.name = 电弧
block.rtg-generator.name = RTG 发电机
block.spectre.name = 幽灵
block.meltdown.name = 熔毁
+block.foreshadow.name = 厄兆
block.container.name = 容器
block.launch-pad.name = 发射台
block.launch-pad-large.name = 大型发射台
block.segment.name = 裂解光束
block.command-center.name = 指挥中心
-block.ground-factory.name = 陆战单位工厂
-block.air-factory.name = 空战单位工厂
-block.naval-factory.name = 海战单位工厂
+block.ground-factory.name = 陆军工厂
+block.air-factory.name = 空军工厂
+block.naval-factory.name = 海军工厂
block.additive-reconstructor.name = 数增级单位重构工厂
-block.multiplicative-reconstructor.name = 倍增级单位重构工厂
-block.exponential-reconstructor.name = 幂乘级单位重构工厂
+block.multiplicative-reconstructor.name = 倍乘级单位重构工厂
+block.exponential-reconstructor.name = 多幂级单位重构工厂
block.tetrative-reconstructor.name = 无量级单位重构工厂
block.payload-conveyor.name = 载荷传送带
block.payload-router.name = 载荷路由器
-block.disassembler.name = 分离机
+block.disassembler.name = 解离机
block.silicon-crucible.name = 热能坩埚
-block.overdrive-dome.name = 超速场投射器
+block.overdrive-dome.name = 超速穹顶投射器
block.switch.name = 开关
block.micro-processor.name = 微型处理器
block.logic-processor.name = 逻辑处理器
-block.hyper-processor.name = 超频处理器
+block.hyper-processor.name = 超核处理器
block.logic-display.name = 逻辑显示屏
block.large-logic-display.name = 大型逻辑显示屏
-block.memory-cell.name = 存储单元
+block.memory-cell.name = 内存元
+block.memory-bank.name = 内存库
team.blue.name = 蓝
team.crux.name = 红
@@ -1302,4 +1332,4 @@ block.cyclone.description = 大型炮塔,对空对地,发射在敌人周围
block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的破甲弹。
block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。
block.repair-point.description = 持续治疗其附近受损最严重的单位。
-block.segment.description = 摧毁袭来的除激光以外的子弹或导弹.
\ No newline at end of file
+block.segment.description = 摧毁袭来的除激光以外的子弹或导弹.
diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties
index e495f4b768..591ef50191 100644
--- a/core/assets/bundles/bundle_zh_TW.properties
+++ b/core/assets/bundles/bundle_zh_TW.properties
@@ -14,14 +14,14 @@ link.f-droid.description = F-Droid 目錄頁面
link.wiki.description = 官方 Mindustry 維基
link.suggestions.description = 建議新功能
linkfail = 無法打開連結!\n我們已將該網址複製到您的剪貼簿。
-screenshot = 截圖保存到{0}
-screenshot.invalid = 地圖太大了,可能沒有足夠的內存用於截圖。
+screenshot = 截圖儲存到{0}
+screenshot.invalid = 地圖太大了,可能沒有足夠的記憶體用於截圖。
gameover = 遊戲結束
gameover.pvp = [accent]{0}[]隊獲勝!
highscore = [accent]新的高分紀錄!
copied = 已複製。
-indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[].
-indev.notready = This part of the game isn't ready yet
+indev.popup = [accent]v6[] 目前仍在 in [accent]alpha[]。\n[lightgray]這代表了:[]\n[scarlet]- 戰役尚未完成[]\n- 部份內容遺失\n - 大多數的 [scarlet]單位 AI[] 無法正常運作\n- 許多單位仍未完成\n- 您看到的所有內容均可能變更或移除。\n\n請在 [accent]Github[] 上回報臭蟲或當機。
+indev.notready = 這部份的遊戲尚未完成
load.sound = 音效載入中
load.map = 地圖載入中
@@ -39,11 +39,11 @@ be.noupdates = 沒有新的更新。
be.check = 檢查是否有新的更新
schematic = 藍圖
-schematic.add = 儲存藍圖...
+schematic.add = 儲存藍圖……
schematics = 藍圖
schematic.replace = 相同名稱的藍圖已經存在。是否取代它?
schematic.exists = 相同名稱的藍圖已經存在。
-schematic.import = 匯入藍圖...
+schematic.import = 匯入藍圖……
schematic.exportfile = 匯出檔案
schematic.importfile = 匯入檔案
schematic.browseworkshop = 瀏覽工作坊
@@ -51,10 +51,11 @@ schematic.copy = 複製到剪貼簿
schematic.copy.import = 從剪貼簿匯入
schematic.shareworkshop = 分享到工作坊
schematic.flip = [accent][[{0}][]/[accent][[{1}][]:翻轉藍圖
-schematic.saved = 藍圖已保存。
+schematic.saved = 藍圖已儲存。
schematic.delete.confirm = 該藍圖將被完全清除。
schematic.rename = 重新命名藍圖
schematic.info = {0}x{1}, {2}方塊
+schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
stat.wave = 打敗的波次:[accent]{0}
stat.enemiesDestroyed = 摧毀的敵人:[accent]{0}
@@ -65,7 +66,7 @@ stat.delivered = 發射的核心資源:
stat.playtime = 遊玩時間:[accent] {0}
stat.rank = 最終排名:[accent]{0}
-globalitems = [accent]Global Items
+globalitems = [accent]全域物品
map.delete = 確認要刪除「[accent]{0}[]」地圖嗎?
level.highscore = 最高分:[accent]{0}
level.select = 選擇關卡
@@ -91,23 +92,22 @@ continue = 繼續
maps.none = [lightgray]找不到地圖!
invalid = 無效
pickcolor = 選擇顏色
-preparingconfig = 配置準備中
+preparingconfig = 設定準備中
preparingcontent = 內容準備中
uploadingcontent = 內容上傳中
uploadingpreviewfile = 上傳預覽文件
-committingchanges = 提交變更
+committingchanges = 遞交變更
done = 完成
-feature.unsupported = 您的設備不支持此功能。
+feature.unsupported = 您的裝置不支援此功能。
-mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry GitHub或Discord報告發現的任何問題。
-mods.alpha = [accent](Alpha)
+mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多臭蟲[]。\n請到Mindustry GitHub或Discord報告發現的任何問題。
mods = 模組
mods.none = [lightgray]找不到模組!
mods.guide = 模組指南
mods.report = 回報錯誤
mods.openfolder = 開啟模組資料夾
mods.reload = 重新載入
-mods.reloadexit = The game will now exit, to reload mods.
+mods.reloadexit = 遊戲將會結束以重新載入模組。
mod.display = [gray]模組:[orange]{0}
mod.enabled = [lightgray]已啟用
mod.disabled = [scarlet]已禁用
@@ -115,32 +115,32 @@ mod.disable = 禁用
mod.content = 內容:
mod.delete.error = 無法刪除模組,檔案可能在使用中。
mod.requiresversion = [scarlet]最低遊戲版本要求:[accent]{0}
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
-mod.missingdependencies = [scarlet]缺少必須項目: {0}
+mod.outdated = [scarlet]與 V6 不相容(無 minGameVersion: 105)
+mod.missingdependencies = [scarlet]缺少依賴關係:{0}
mod.erroredcontent = [scarlet]內容錯誤
mod.errors = 載入內容時發生錯誤
-mod.noerrorplay = [scarlet]你使用了有錯誤的模組。[] 遊戲前請先禁用相關模組或修正錯誤。
-mod.nowdisabled = [scarlet]「{0}」模組缺少必須項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
+mod.noerrorplay = [scarlet]你使用了有問題的模組。[] 遊戲前請先停用相關模組或修正問題。
+mod.nowdisabled = [scarlet]「{0}」模組缺少依賴關係:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動停用。
mod.enable = 啟用
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
mod.reloadrequired = [scarlet]需要重新載入
mod.import = 匯入模組
mod.import.file = 匯入檔案
mod.import.github = 匯入GitHub模組
-mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
+mod.jarwarn = [scarlet]JAR 模組本質上是不安全的。[]\n請確保您正從可信的來源匯入這個模組!
mod.item.remove = 此物品是[accent] '{0}'[]模組的一部份。解除安裝模組以移除此物品。
mod.remove.confirm = 該模組將被刪除。
-mod.author = [lightgray]作者:[] {0}
-mod.missing = 此存檔含有您最近更新或不再安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0}
-mod.preview.missing = 在工作坊發佈這個模組前,您必須添加預覽圖。\n在該模組的資料夾中放置一個名為[accent] preview.png[]的圖片並重試。
+mod.author = [lightgray]作者:[] {0}
+mod.missing = 此存檔含有您最近更新或已解除安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0}
+mod.preview.missing = 在工作坊發佈這個模組前,您必須新增預覽圖。\n在該模組的資料夾中加入一個名為[accent] preview.png[]的圖片並重試。
mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。
-mod.scripts.disable = 您的設備不支持包含指令檔的模組。您必須關閉這些模組才能進行遊戲。
+mod.scripts.disable = 您的裝置不支持包含指令檔的模組。您必須關閉這些模組才能進行遊戲。
about.button = 關於
name = 名稱:
noname = 請先選擇一個[accent]玩家名稱[]。
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = 星球地圖
+launchcore = 發射核心
filename = 檔案名稱︰
unlocked = 已解鎖新內容!
completed = [accent]完成
@@ -148,40 +148,40 @@ techtree = 科技樹
research.list = [lightgray]研究︰
research = 研究
researched = [lightgray]{0}研究完成。
-research.progress = {0}% complete
+research.progress = {0}% 完成
players = {0}個線上玩家
players.single = {0}個線上玩家
players.search = 搜尋
players.notfound = [gray]沒有找到玩家
-server.closing = [accent]正在關閉伺服器...
+server.closing = [accent]正在關閉伺服器……
server.kicked.kick = 您已被踢出伺服器!
server.kicked.whitelist = 您不在這裡的白名單內.
server.kicked.serverClose = 伺服器已關閉。
server.kicked.vote = 您已被投票踢出伺服器,再見。
server.kicked.clientOutdated = 客戶端版本過舊!請更新遊戲!
-server.kicked.serverOutdated = 伺服器版本過舊!請聯絡伺服主更新伺服器!
-server.kicked.banned = 您已經在這個伺服器中被封禁。
+server.kicked.serverOutdated = 伺服器版本過舊!請聯絡伺服器管理員更新伺服器!
+server.kicked.banned = 您已經在這個伺服器中被封鎖。
server.kicked.typeMismatch = 該伺服器與您的版本不相容。
-server.kicked.playerLimit = 該伺服器已滿。請等待一個空位置。
+server.kicked.playerLimit = 該伺服器已滿。請等待玩家離開。
server.kicked.recentKick = 您最近曾被踢出伺服器。\n請稍後再進行連線。
server.kicked.nameInUse = 伺服器中已經\n有人有相同的名稱了。
server.kicked.nameEmpty = 你的名稱必須至少包含一個字母或數字。
server.kicked.idInUse = 你已經在伺服器中!不允許使用兩個帳號。
-server.kicked.customClient = 這個伺服器不支持自訂客戶端,請下載官方版本。
+server.kicked.customClient = 這個伺服器不支援自訂的客戶端,請下載官方版本。
server.kicked.gameover = 遊戲結束!
server.kicked.serverRestarting = 伺服器正在重新啟動。
server.versions = 您的遊戲版本:[accent] {0}[]\n伺服器遊戲版本:[accent] {1}[]
-host.info = [accent]建立伺服器[]按鍵會在連接埠[scarlet]6567[]建立一個伺服器。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過IP 位址連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意:如果區域網路內有玩家無法連線至您的伺服器,請務必確認您已於防火牆設定中開放Mindustry存取您的區域網路。請注意公共網路有時不允許搜尋伺服器。
-join.info = 您可以在此輸入欲連線的[accent]伺服器IP位址[],或尋找[accent]區域網路[]/[accent]全域網路[]內的伺服器。目前支援區域網路與網際網路連線。\n\n[lightgray]如果您想透過IP位址連線到他人的伺服器,您必須向他們詢問IP位址。自己的IP位置可以從google上搜尋到。
+host.info = [accent]建立伺服器[]按鍵會在連接埠[scarlet]6567[]建立一個伺服器。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過 IP 位置連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意:如果區域網路內有玩家無法連線至您的伺服器,請務必確認您已於防火牆設定中開放 Mindustry 存取您的區域網路。請注意公用網路有時不允許搜尋伺服器。
+join.info = 您可以在此輸入欲連線的[accent]伺服器 IP 位置[],或尋找[accent]區域網路[]/[accent]網際網路[]內的伺服器。目前支援區域網路與網際網路連線。\n\n[lightgray]如果您想透過 IP 位置連線到他人的伺服器,您必須向他們詢問 IP 位置。自己的 IP 位置可以從 Google 上搜尋到。
hostserver = 建立伺服器
invitefriends = 邀請好友
hostserver.mobile = 建立\n伺服器
host = 伺服器
-hosting = [accent]伺服器啟動中...
+hosting = [accent]伺服器啟動中……
hosts.refresh = 刷新
hosts.discovering = 搜尋區域網路遊戲
hosts.discovering.any = 搜尋遊戲
-server.refreshing = 伺服器刷新中
+server.refreshing = 伺服器重新整理中
hosts.none = [lightgray]找不到區域網路伺服器!
host.invalid = [scarlet]無法連線至伺服器。
@@ -195,9 +195,9 @@ trace.ip = IP:[accent]{0}
trace.id = ID:[accent]{0}
trace.mobile = 行動客戶端:[accent]{0}
trace.modclient = 自訂客戶端:[accent]{0}
-invalidid = 無效的客戶端 ID!請提交錯誤報告。
-server.bans = 封禁
-server.bans.none = 沒有玩家被封禁!
+invalidid = 無效的客戶端 ID!請遞交錯誤回報。
+server.bans = 封鎖
+server.bans.none = 沒有玩家被封鎖!
server.admins = 管理員
server.admins.none = 找不到管理員!
server.add = 新增伺服器
@@ -207,29 +207,29 @@ server.outdated = [crimson]伺服器版本過舊![]
server.outdated.client = [crimson]客戶端版本過舊![]
server.version = [gray]v{0} {1}
server.custombuild = [accent]自訂客戶端
-confirmban = 您確定要封禁「[white]{0}[]」嗎?
+confirmban = 您確定要封鎖「[white]{0}[]」嗎?
confirmkick = 您確定要踢出「[white]{0}[]」嗎?
-confirmvotekick = 您確定要投票剔除「[white]{0}[]」嗎?
-confirmunban = 您確定要解除封禁這個玩家嗎?
+confirmvotekick = 您確定要投票踢出「[white]{0}[]」嗎?
+confirmunban = 您確定要解除封鎖這個玩家嗎?
confirmadmin = 您確定要晉升「[white]{0}[]」為管理員嗎?
confirmunadmin = 您確定要解除「[white]{0}[]」的管理員嗎?
joingame.title = 加入遊戲
-joingame.ip = IP位址:
+joingame.ip = IP 位置:
disconnect = 已中斷連線。
disconnect.error = 連線錯誤。
disconnect.closed = 連線關閉。
-disconnect.timeout = 連線超時。
+disconnect.timeout = 連線逾時。
disconnect.data = 無法載入地圖資料!
cantconnect = 無法加入遊戲 ([accent]{0}[]).
-connecting = [accent]連線中...
-connecting.data = [accent]地圖資料載入中...
+connecting = [accent]連線中……
+connecting.data = [accent]地圖資料載入中……
server.port = 連接埠:
-server.addressinuse = 該位址已被使用!
+server.addressinuse = 該位置已被使用!
server.invalidport = 無效的連接埠!
server.error = [crimson]建立伺服器時發生錯誤。
save.new = 新存檔
-save.overwrite = 您確定要覆蓋存檔嗎?
-overwrite = 覆蓋
+save.overwrite = 您確定要覆寫存檔嗎?
+overwrite = 覆寫
save.none = 找不到存檔!
savefail = 存檔失敗!
save.delete.confirm = 您確定要刪除這個存檔嗎?
@@ -270,49 +270,52 @@ back = 返回
data.export = 匯出數據
data.import = 匯入數據
data.openfolder = 開啟檔案資料夾
-data.exported = 數據已匯出。
+data.exported = 資料已匯出。
data.invalid = 這不是有效的遊戲資料。
-data.import.confirm = 導入外部數據將覆蓋您當前[scarlet]所有的[]遊戲數據,\n[accent]這個動作不能撤銷![]\n\n匯入數據後,您的遊戲將立即退出。
-quit.confirm = 您確定要退出嗎?
-quit.confirm.tutorial = 您確定您知道自己在做什麼嗎?\n該教學可以在[accent] 設定->遊戲[] 選項中重置教學。
-loading = [accent]載入中...
-reloading = [accent]模組重新載入中...
-saving = [accent]儲存中...
+data.import.confirm = 導入外部資料將會覆寫您目前[scarlet]所有的[]遊戲資料,\n[accent]此動作無法復原![]\n\n匯入資料後,您的遊戲將立刻結束。
+quit.confirm = 您確定要結束嗎?
+quit.confirm.tutorial = 您確定您知道自己在做什麼嗎?\n可以在[accent] 設定->遊戲[] 選項中重設教學。
+loading = [accent]載入中……
+reloading = [accent]模組重新載入中……
+saving = [accent]儲存中……
respawn = [accent][[{0}][]重生
cancelbuilding = [accent][[{0}][]清除計畫
selectschematic = [accent][[{0}][]選擇並複製
pausebuilding = [accent][[{0}][]暫停建造
-resumebuilding = [scarlet][[{0}][]恢復建造
+resumebuilding = [scarlet][[{0}][]繼續建造
wave = [accent]第{0}波
+wave.cap = [accent]Wave {0}/{1}
wave.waiting = [lightgray]將於{0}秒後抵達
wave.waveInProgress = [lightgray]波次進行中
-waiting = [lightgray]等待中...
-waiting.players = 等待玩家中...
+waiting = [lightgray]等待中……
+waiting.players = 等待玩家中……
wave.enemies = [lightgray]剩下{0}個敵人
wave.enemy = [lightgray]剩下{0}個敵人
-loadimage = 載入圖像
-saveimage = 儲存圖像
+wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
+wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
+loadimage = 載入圖片
+saveimage = 儲存圖片
unknown = 未知
custom = 自訂
builtin = 内建
-map.delete.confirm = 確認要刪除地圖嗎?此操作無法撤回!
+map.delete.confirm = 確認要刪除地圖嗎?此動作無法復原!
map.random = [accent]隨機地圖
map.nospawn = 這個地圖沒有核心!請在編輯器中添加一個[accent]橘色[]的核心。
map.nospawn.pvp = 這個地圖沒有敵對核心讓玩家重生!請在編輯器中添加一個[scarlet]不是橘色[]的核心。
map.nospawn.attack = 這個地圖沒有敵人核心可以攻擊!請在編輯器中添加一個[scarlet]紅色[]的核心。
-map.invalid = 地圖載入錯誤:地圖可能已經損壞。
+map.invalid = 地圖載入錯誤:地圖可能已經損毀。
workshop.update = 更新項目
-workshop.error = 提取工作坊詳細信息時出錯: {0}
-map.publish.confirm = 您確定要發布此地圖嗎?\n\n[lightgray]首先請先確定您同意Steam工坊 EULA協定,否則您的地圖將不會顯示!
-workshop.menu = 選擇您要對此項目執行的操作。
-workshop.info = 項目信息
-changelog = 變更日誌(可選):
+workshop.error = 擷取工作坊詳細資訊時出錯: {0}
+map.publish.confirm = 您確定要發布此地圖嗎?\n\n[lightgray]首先請先確定您同意 Steam 工作坊的 EULA,否則您的地圖將不會顯示!
+workshop.menu = 選擇您要對此項目執行的動作。
+workshop.info = 項目資訊
+changelog = 變動紀錄(選擇性):
eula = Steam EULA
-missing = 此項目已被刪除或移動。\n[lightgray]工作坊列表現在已自動取消鏈接。
-publishing = [accent]發佈中...
-publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示!
-publish.error = 發佈項目時出錯: {0}
-steam.error = Steam 服務初始化失敗.\n錯誤: {0}
+missing = 此項目已被刪除或移動。\n[lightgray]工作坊列表現在已自動取消連結。
+publishing = [accent]發佈中……
+publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意 Workshop EULA,否則您的項目將不會顯示!
+publish.error = 發佈項目時發生問題:{0}
+steam.error = Steam 服務初始化失敗。\n錯誤:{0}
editor.brush = 粉刷
editor.openin = 在編輯器中開啟
@@ -328,6 +331,7 @@ editor.generation = 篩選器:
editor.ingame = 在遊戲中編輯
editor.publish.workshop = 在工作坊上發佈
editor.newmap = 新地圖
+editor.center = Center
workshop = 工作坊
waves.title = 波次
waves.remove = 移除
@@ -339,30 +343,30 @@ waves.shields = 護盾/波次
waves.to = 至
waves.guardian = 守衛者
waves.preview = 預覽
-waves.edit = 編輯...
-waves.copy = 複製到剪貼板
-waves.load = 從剪貼板加載
-waves.invalid = 剪貼板中的波次無效。
+waves.edit = 編輯……
+waves.copy = 複製到剪貼簿
+waves.load = 從剪貼簿載入
+waves.invalid = 剪貼簿中的波次無效。
waves.copied = 波次已被複製。
-waves.none = 無自定義敵人.\n請注意,空佈局將自動替換為預設佈局。
+waves.none = 無自訂敵人。\n請注意,空佈局將自動替換為預設佈局。
-wavemode.counts = counts
-wavemode.totals = totals
-wavemode.health = health
+wavemode.counts = 數量
+wavemode.totals = 總數
+wavemode.health = 生命值
-editor.default = [lightgray]〈默認〉
-details = 詳情...
-edit = 編輯...
+editor.default = [lightgray](預設)
+details = 詳細資訊……
+edit = 編輯……
editor.name = 名稱:
editor.spawn = 重生單位
editor.removeunit = 移除單位
editor.teams = 隊伍
-editor.errorload = 加載文件時出錯:\n[accent]{0}
-editor.errorsave = 保存文件時出錯:\n[accent]{0}
-editor.errorimage = 這是一個圖像檔,而不是地圖。不要更改副檔名使它可用。\n\n如果要匯入地形圖像檔,請使用編輯器中的「匯入地形圖像檔」按鈕。
-editor.errorlegacy = 此地圖太舊,並使用不支持的舊地圖格式。
-editor.errornot = 這不是一個地圖檔案。
-editor.errorheader = 此地圖檔案無效或已損壞。
+editor.errorload = 載入檔案時發生問題:\n[accent]{0}
+editor.errorsave = 儲存檔案時發生問題:\n[accent]{0}
+editor.errorimage = 這是圖片檔,而非地圖。不要試圖修改副檔名讓它可以使用。\n\n如果要匯入地形圖片檔,請使用編輯器中的「匯入地形圖片檔」按鈕。
+editor.errorlegacy = 此地圖太舊,並使用不支援的舊地圖格式。
+editor.errornot = 這不是地圖檔。
+editor.errorheader = 此地圖檔無效或已損毀。
editor.errorname = 地圖沒有定義名稱。
editor.update = 更新
editor.randomize = 隨機化
@@ -372,23 +376,23 @@ editor.resize = 調整大小
editor.loadmap = 載入地圖
editor.savemap = 儲存地圖
editor.saved = 已儲存!
-editor.save.noname = 您的地圖沒有名稱!在「地圖資訊」畫面設置一個名稱。
-editor.save.overwrite = 您的地圖覆寫一個內建的地圖!在「地圖信息」畫面設置一個不同的名稱。
-editor.import.exists = [scarlet]匯入失敗:[]一個叫「{0}」的內建地圖已存在!
-editor.import = 匯入...
+editor.save.noname = 您的地圖沒有名稱!在「地圖資訊」畫面設定一個名稱。
+editor.save.overwrite = 您的地圖覆寫了內建的地圖!在「地圖資訊」畫面設定其他名稱。
+editor.import.exists = [scarlet]匯入失敗:[]叫「{0}」的內建地圖已存在!
+editor.import = 匯入……
editor.importmap = 匯入地圖
-editor.importmap.description = 匯入一個已存在的地圖
+editor.importmap.description = 匯入已存在的地圖
editor.importfile = 匯入檔案
-editor.importfile.description = 匯入一個外部的地圖檔案
-editor.importimage = 匯入地形圖像檔
-editor.importimage.description = 匯入一個外部的地形圖像檔
-editor.export = 匯出...
+editor.importfile.description = 匯入外部的地圖檔案
+editor.importimage = 匯入地形圖片檔
+editor.importimage.description = 匯入外部的地形圖片檔
+editor.export = 匯出……
editor.exportfile = 匯出檔案
-editor.exportfile.description = 匯出一個地圖檔案
-editor.exportimage = 匯出地形圖像檔
-editor.exportimage.description = 匯出一個地形圖像檔
-editor.loadimage = 載入圖像
-editor.saveimage = 儲存圖像
+editor.exportfile.description = 匯出地圖檔
+editor.exportimage = 匯出地形圖片檔
+editor.exportimage.description = 匯出地形圖片檔
+editor.loadimage = 載入圖片
+editor.saveimage = 儲存圖片
editor.unsaved = [scarlet]尚未儲存變更![]\n您確定要退出嗎?
editor.resizemap = 調整地圖大小
editor.mapname = 地圖名稱:
@@ -404,18 +408,19 @@ toolmode.replaceall.description = 取代地圖中的所有方塊。
toolmode.orthogonal = 垂直
toolmode.orthogonal.description = 僅繪製在垂直線上。
toolmode.square = 正方形
-toolmode.square.description = 正方形筆刷.
+toolmode.square.description = 正方形筆刷。
toolmode.eraseores = 清除礦物
toolmode.eraseores.description = 僅清除礦物。
toolmode.fillteams = 填充團隊
-toolmode.fillteams.description = 填充團隊而不是方塊。
+toolmode.fillteams.description = 填充團隊而非方塊。
toolmode.drawteams = 繪製團隊
-toolmode.drawteams.description = 繪製團隊而不是方塊。
+toolmode.drawteams.description = 繪製團隊而非方塊。
-filters.empty = [lightgray]沒有過濾器!使用下面的按鈕添加一個。
+filters.empty = [lightgray]沒有過濾器!使用下面的按鈕新增一個。
filter.distort = 扭曲
filter.noise = 雜訊
filter.enemyspawn = 敵人重生選擇
+filter.spawnpath = Path To Spawn
filter.corespawn = 核心選擇
filter.median = 平均數
filter.oremedian = 礦石平均數
@@ -440,6 +445,7 @@ filter.option.amount = 數量
filter.option.block = 方塊
filter.option.floor = 地板
filter.option.flooronto = 目標地板
+filter.option.target = Target
filter.option.wall = 牆
filter.option.ore = 礦石
filter.option.floor2 = 次要地板
@@ -455,38 +461,32 @@ campaign = 戰役
load = 載入
save = 儲存
fps = FPS:{0}
-ping = 延遲:{0}ms
+ping = 延遲:{0}毫秒
language.restart = 請重新啟動遊戲以使選取的語言生效。
settings = 設定
tutorial = 教學
-tutorial.retake = 重置教學
+tutorial.retake = 重設教學
editor = 地圖編輯器
mapeditor = 地圖編輯器
abandon = 放棄
-abandon.text = 此區域及其所有資源將會丟失給敵人。
+abandon.text = 此區域及其所有資源將會放棄,並給敵人使用。
locked = 鎖定
complete = [lightgray]完成:
requirement.wave = 在{1}到達第{0}波
requirement.core = 在{0}摧毀敵人核心
-requirement.research = Research {0}
-requirement.capture = Capture {0}
-resume = 繼續區域:\n[lightgray]{0}
+requirement.research = 研究 {0}
+requirement.capture = 捕獲 {0}
bestwave = [lightgray]最高波次:{0}
-launch = < 發射 >
-launch.text = Launch
-launch.title = 發射成功
-launch.next = [lightgray]下次的機會於波次{0}
-launch.unable2 = [scarlet]無法發射核心。[]
-launch.confirm = 這將發射核心中的所有資源。\n你將無法返回這個基地。
-launch.skip.confirm = 如果您現在跳過,您將無法發射核心直到下一次的可發射波數。
+launch.text = 發射
+research.multiplayer = Only the host can research items.
uncover = 探索
-configure = 配置裝載
-loadout = Loadout
-resources = Resources
-bannedblocks = 禁用方塊
+configure = 設定
+loadout = 裝載
+resources = 資源
+bannedblocks = 停用方塊
addall = 全部加入
-launch.destination = Destination: {0}
+launch.destination = 目的地:{0}
configure.invalid = 數值必須介於 0 到 {0}。
zone.unlocked = [lightgray]{0}已解鎖。
zone.requirement.complete = 到達波次{0}:\n滿足{1}區域要求。
@@ -494,75 +494,85 @@ zone.resources = [lightgray]檢測到的資源:
zone.objective = [lightgray]目標: [accent]{0}
zone.objective.survival = 生存
zone.objective.attack = 摧毀敵人核心
-add = 新增...
+add = 新增……
boss.health = 頭目血量
connectfail = [crimson]伺服器連線錯誤:[accent]{0}
-error.unreachable = 無法到達伺服器。請確認位址是否正確?
-error.invalidaddress = 無效的位址。
-error.timedout = 連線超時!\n確保伺服器設置了連接埠轉發,並且位址正確!
-error.mismatch = 封包錯誤:\n客戶端/伺服器版本可能不匹配。\n確保客戶端和伺服器都有最新版本的Mindustry!
-error.alreadyconnected = 已連接。
+error.unreachable = 無法連線到伺服器。請確認位置是否正確?
+error.invalidaddress = 無效的位置。
+error.timedout = 連線逾時!\n確保伺服器設置了連接埠轉發且位置正確!
+error.mismatch = 封包錯誤:\n客戶端/伺服器版本可能不相符。\n確保客戶端和伺服器都有最新版本的 Mindustry!
+error.alreadyconnected = 已連線。
error.mapnotfound = 找不到地圖!
-error.io = 網絡輸出入錯誤。
-error.any = 未知網絡錯誤。
-error.bloom = 初始化特效失敗.\n您的設備可能不支援它
+error.io = 網路錯誤。
+error.any = 未知網路錯誤。
+error.bloom = 初始化特效失敗。\n您的裝置可能不支援
-weather.rain.name = Rain
-weather.snow.name = Snow
-weather.sandstorm.name = Sandstorm
-weather.sporestorm.name = Sporestorm
+weather.rain.name = 雨
+weather.snow.name = 雪
+weather.sandstorm.name = 沙塵暴
+weather.sporestorm.name = 孢子風暴
+weather.fog.name = Fog
-sectors.unexplored = [lightgray]Unexplored
-sectors.resources = Resources:
-sectors.production = Production:
-sectors.stored = Stored:
-sectors.resume = Resume
-sectors.launch = Launch
-sectors.select = Select
-sectors.nonelaunch = [lightgray]none (sun)
+sectors.unexplored = [lightgray]未探索
+sectors.resources = 資源:
+sectors.production = 生產:
+sectors.stored = 儲存:
+sectors.resume = 繼續
+sectors.launch = 發射
+sectors.select = 選取
+sectors.nonelaunch = [lightgray]無(太陽)
+sectors.rename = Rename Sector
+sector.missingresources = [scarlet]Insufficient Core Resources
-sector.groundZero.name = Ground Zero
-sector.craters.name = The Craters
-sector.frozenForest.name = Frozen Forest
-sector.ruinousShores.name = Ruinous Shores
-sector.stainedMountains.name = Stained Mountains
-sector.desolateRift.name = Desolate Rift
-sector.nuclearComplex.name = Nuclear Production Complex
-sector.overgrowth.name = Overgrowth
-sector.tarFields.name = Tar Fields
-sector.saltFlats.name = Salt Flats
-sector.fungalPass.name = Fungal Pass
+planet.serpulo.name = Serpulo
+planet.sun.name = Sun
-sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
-sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
-sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
-sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
-sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
-sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
-sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
-sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
-sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
-sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
+sector.groundZero.name = 原點
+sector.craters.name = 火山島
+sector.frozenForest.name = 冰封森林
+sector.ruinousShores.name = 廢墟海岸
+sector.stainedMountains.name = 彩繪山
+sector.desolateRift.name = 荒谷
+sector.nuclearComplex.name = 核能生產複合體
+sector.overgrowth.name = 雜草叢生
+sector.tarFields.name = 油田
+sector.saltFlats.name = 鹽灘
+sector.fungalPass.name = 真菌橫行
+
+sector.groundZero.description = 再次開始的最佳位置。敵人威脅程度低。資源少。\n盡可能地採集鉛與銅。\n繼續前進。
+sector.frozenForest.description = 即使是在如此靠近山脈的地方,孢子也已經擴散了。如此低溫也無法永遠遏止它們。\n\n開始冒險發電。建造火力發電機。並學習使用修理單位。
+sector.saltFlats.description = 鹽灘在沙漠的外圍。此處資源不多。\n\n敵人已在此建立了一座資源倉庫。剷除他們的核心。不要留下任何東西。
+sector.craters.description = 在曾發生過古代戰爭的火山口積了很多水。開墾這個區域。採集沙子。煉製玻璃。抽水冷卻砲塔與鑽頭。
+sector.ruinousShores.description = 越過廢棄物就是海岸線。此處曾設有海岸防禦陣線。但剩下的不多。只有最基本的防禦結構沒有損毀,其他的一切都已然變為廢墟。\n繼續向外擴展。重新發現技術。
+sector.stainedMountains.description = 還未受孢子污染的山脈向內陸延伸。\n在此區域開採鈦金屬。學習如何使用它。\n\n這裡的敵人更為強大。不要讓他們有以最強大武力攻擊的機會。
+sector.overgrowth.description = 此區域雜草叢生,離孢子的源頭很近。\n敵人在此建立了前哨站。建造泰坦單位。摧毀它。然後找回遺失的東西。
+sector.tarFields.description = 產油區的外圍,在山脈與沙漠之間。少數有油料儲備的地區。\n雖然看似被廢棄,但此區域附近仍有一些危險的敵軍。不要小看他們。\n\n[lightgray]如果可以的話,請研究石油加工科技。
+sector.desolateRift.description = 非常危險的區域。資源豐富,但空間狹小。有高破壞風險。盡快離開。不要被敵人的攻擊間距太長而被愚弄。
+sector.nuclearComplex.description = 曾是釷的生產與加工設施,但現在已成廢墟。\n[lightgray]研究釷及其許多用途。\n\n敵人非常多,不斷搜尋可攻擊的對象。
+sector.fungalPass.description = 高山與滿是孢子的低谷間的過渡區域。這裡有敵人的小型偵察基地。\n摧毀它。\n使用匕首機甲與爬行機甲。拿下兩個核心。
settings.language = 語言
-settings.data = 遊戲數據
+settings.data = 遊戲資料
settings.reset = 重設為預設設定
settings.rebind = 重新綁定
settings.resetKey = 重設按鍵
-settings.controls = 操作
+settings.controls = 控制
settings.game = 遊戲
settings.sound = 音效
settings.graphics = 圖形
-settings.cleardata = 清除遊戲數據...
-settings.clear.confirm = 您確定要清除數據嗎?\n此操作無法撤回!
-settings.clearall.confirm = [scarlet]警告![]\n這將清除所有數據,包括存檔、地圖、解鎖和熱鍵綁定。\n按「是」後,遊戲將刪除所有數據並自動退出。
-settings.clearsaves.confirm = Are you sure you want to clear all your saves?
-settings.clearsaves = Clear Saves
-paused = [accent]〈已暫停〉
+settings.cleardata = 清除遊戲資料……
+settings.clear.confirm = 您確定要清除資料嗎?\n此動作無法復原!
+settings.clearall.confirm = [scarlet]警告![]\n這會清除所有資料,包括存檔、地圖、解鎖項目和快捷鍵綁定。\n按「是」後,遊戲將刪除所有資料並自動結束。
+settings.clearsaves.confirm = 您確定您想要清除所有存檔嗎?
+settings.clearsaves = 清除存檔
+settings.clearresearch = Clear Research
+settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
+settings.clearcampaignsaves = Clear Campaign Saves
+settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
+paused = [accent](已暫停)
clear = 清除
-banned = [scarlet]已被封禁
+banned = [scarlet]已被封鎖
unplaceable.sectorcaptured = [scarlet]需要已占領的地區
yes = 是
no = 否
@@ -570,12 +580,14 @@ info.title = 資訊
error.title = [crimson]發生錯誤
error.crashtitle = 發生錯誤
unit.nobuild = [scarlet]單位不能建造
+lastaccessed = [lightgray]Last Accessed: {0}
+block.unknown = [lightgray]???
+
stat.input = 輸入
stat.output = 輸出
stat.booster = 強化
stat.tiles = 需求方塊
stat.affinities = 親和方塊
-block.unknown = [lightgray]???
stat.powercapacity = 蓄電量
stat.powershot = 能量/射擊
stat.damage = 傷害
@@ -584,16 +596,17 @@ stat.targetsground = 攻擊地面目標
stat.itemsmoved = 移動速度
stat.launchtime = 發射間隔
stat.shootrange = 範圍
-stat.size = 尺寸
-stat.displaysize = Display Size
+stat.size = 大小
+stat.displaysize = 顯示大小
stat.liquidcapacity = 液體容量
stat.powerrange = 輸出範圍
-stat.linkrange = Link Range
-stat.instructions = Instructions
-stat.powerconnections = 最大連接數
+stat.linkrange = 連結範圍
+stat.instructions = 介紹
+stat.powerconnections = 最大連結數
stat.poweruse = 能量使用
stat.powerdamage = 能量/傷害
stat.itemcapacity = 物品容量
+stat.memorycapacity = Memory Capacity
stat.basepowergeneration = 基礎能量生產
stat.productiontime = 生產時間
stat.repairtime = 方塊完全修復時間
@@ -601,29 +614,52 @@ stat.speedincrease = 速度提升
stat.range = 範圍
stat.drilltier = 可鑽取礦物
stat.drillspeed = 基本鑽取速度
-stat.boosteffect = 提升效應
+stat.boosteffect = 加速效果
stat.maxunits = 最大活躍單位
stat.health = 耐久度
stat.buildtime = 建設時間
-stat.maxconsecutive = Max Consecutive
+stat.maxconsecutive = 最大連續
stat.buildcost = 建造成本
stat.inaccuracy = 誤差
stat.shots = 射擊數
stat.reload = 射擊次數/秒
stat.ammo = 彈藥
-stat.shieldhealth = Shield Health
-stat.cooldowntime = Cooldown Time
+stat.shieldhealth = 護盾生命值
+stat.cooldowntime = 冷確時間
+stat.explosiveness = Explosiveness
+stat.basedeflectchance = Base Deflect Chance
+stat.lightningchance = Lightning Chance
+stat.lightningdamage = Lightning Damage
+stat.flammability = Flammability
+stat.radioactivity = Radioactivity
+stat.heatcapacity = HeatCapacity
+stat.viscosity = Viscosity
+stat.temperature = Temperature
+stat.speed = Speed
+stat.buildspeed = Build Speed
+stat.minespeed = Mine Speed
+stat.minetier = Mine Tier
+stat.payloadcapacity = Payload Capacity
+stat.commandlimit = Command Limit
+stat.abilities = Abilities
+
+ability.forcefield = Force Field
+ability.repairfield = Repair Field
+ability.statusfield = Status Field
+ability.unitspawn = {0} Factory
+ability.shieldregenfield = Shield Regen Field
bar.drilltierreq = 需要更好的鑽頭
-bar.noresources = Missing Resources
-bar.corereq = Core Base Required
+bar.noresources = 缺少資源
+bar.corereq = 核心基礎需求
bar.drillspeed = 鑽頭速度:{0}/秒
-bar.pumpspeed = 液體泵送速度:{0}/s
+bar.pumpspeed = 液體泵送速度:{0}/秒
bar.efficiency = 效率:{0}%
bar.powerbalance = 能量變化:{0}
bar.powerstored = 能量存量: {0}/{1}
bar.poweramount = 能量:{0}
bar.poweroutput = 能量輸出:{0}
+bar.powerlines = Connections: {0}/{1}
bar.items = 物品:{0}
bar.capacity = 容量: {0}
bar.unitcap = {0} {1}/{2}
@@ -635,19 +671,24 @@ bar.progress = 建造進度
bar.input = 輸入
bar.output = 輸出
+units.processorcontrol = [lightgray]Processor Controlled
+
bullet.damage = [stat]{0}[lightgray]傷害
bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格
bullet.incendiary = [stat]燃燒
-bullet.homing = [stat]追踪
+bullet.homing = [stat]追蹤
bullet.shock = [stat]電擊
bullet.frag = [stat]破片彈
bullet.knockback = [stat]{0}[lightgray]擊退
+bullet.pierce = [stat]{0}[lightgray]x pierce
+bullet.infinitepierce = [stat]pierce
bullet.freezing = [stat]冷凍
bullet.tarred = [stat]焦油
bullet.multiplier = [stat]{0}[lightgray]×彈藥倍數
bullet.reload = [stat]{0}[lightgray]×射擊速率
unit.blocks = 方塊
+unit.blockssquared = blocks²
unit.powersecond = 能量單位/秒
unit.liquidsecond = 液體單位/秒
unit.itemssecond = 物品/秒
@@ -655,22 +696,22 @@ unit.liquidunits = 液體單位
unit.powerunits = 能量單位
unit.degrees = 度
unit.seconds = 秒
-unit.minutes = mins
+unit.minutes = 分
unit.persecond = /秒
-unit.perminute = /min
+unit.perminute = /分
unit.timesspeed = ×速度
unit.percent = %
-unit.shieldhealth = shield health
+unit.shieldhealth = 護盾生命值
unit.items = 物品
-unit.thousands = k
-unit.millions = mil
-unit.billions = b
+unit.thousands = 千
+unit.millions = 百萬
+unit.billions = 十億
category.general = 一般
category.power = 能量
category.liquids = 液體
category.items = 物品
category.crafting = 需求
-category.shooting = 射擊
+category.function = Function
category.optional = 可選的強化
setting.landscape.name = 鎖定水平畫面
setting.shadows.name = 陰影
@@ -679,19 +720,18 @@ setting.linear.name = 線性過濾
setting.hints.name = 提示
setting.flow.name = 顯示資源輸送速度[scarlet]
setting.buildautopause.name = 自動暫停建築
-setting.mapcenter.name = Auto Center Map To Player
setting.animatedwater.name = 液體動畫
setting.animatedshields.name = 護盾動畫
-setting.antialias.name = 消除鋸齒[lightgray](需要重啟遊戲)[]
-setting.playerindicators.name = 盟友指示標
-setting.indicators.name = 敵方指示標
+setting.antialias.name = 消除鋸齒[lightgray](需要重新啟動遊戲)[]
+setting.playerindicators.name = 盟友標示
+setting.indicators.name = 敵方標示
setting.autotarget.name = 自動射擊
setting.keyboard.name = 滑鼠及鍵盤控制
setting.touchscreen.name = 觸控螢幕控制
setting.fpscap.name = 最大FPS
setting.fpscap.none = 無
setting.fpscap.text = {0}FPS
-setting.uiscale.name = UI縮放[lightgray] (需要重啟遊戲)[]
+setting.uiscale.name = 使用者介面縮放[lightgray](需要重新啟動遊戲)[]
setting.swapdiagonal.name = 預設對角線放置
setting.difficulty.training = 訓練
setting.difficulty.easy = 簡單
@@ -710,14 +750,13 @@ setting.seconds = {0}秒
setting.blockselecttimeout.name = 跳過方塊建造時距
setting.milliseconds = {0}毫秒
setting.fullscreen.name = 全螢幕
-setting.borderlesswindow.name = 無邊框窗口[lightgray](可能需要重啟遊戲)
+setting.borderlesswindow.name = 無邊框視窗[lightgray](可能需要重新啟動遊戲)
setting.fps.name = 顯示FPS與Ping
-setting.smoothcamera.name = Smooth Camera
-setting.blockselectkeys.name = 顯示方塊選擇快捷鍵
+setting.smoothcamera.name = 平滑攝影機
setting.vsync.name = 垂直同步
setting.pixelate.name = 像素化
setting.minimap.name = 顯示小地圖
-setting.coreitems.name = Display Core Items (WIP)
+setting.coreitems.name = 顯示核心時間(開發中)
setting.position.name = 顯示玩家位置
setting.musicvol.name = 音樂音量
setting.atmosphere.name = 顯示星球大氣層
@@ -725,37 +764,37 @@ setting.ambientvol.name = 環境音量
setting.mutemusic.name = 靜音
setting.sfxvol.name = 音效音量
setting.mutesound.name = 靜音
-setting.crashreport.name = 發送匿名崩潰報告
+setting.crashreport.name = 傳送匿名當機回報
setting.savecreate.name = 自動建立存檔
setting.publichost.name = 公開遊戲可見度
setting.playerlimit.name = 玩家數限制
setting.chatopacity.name = 聊天框不透明度
-setting.lasersopacity.name = 激光不透明度
+setting.lasersopacity.name = 雷射不透明度
setting.bridgeopacity.name = 橋透明度
-setting.playerchat.name = 在遊戲中顯示聊天框
-public.confirm = 您想公開遊戲嗎?\n[accent]任何人都可以加入您的遊戲。\n[lightgray]以後可以在“設置”->“遊戲”->“公開遊戲可見度”中進行更改。
+setting.playerchat.name = 在遊戲中顯示聊天視窗
+public.confirm = 您想公開遊戲嗎?\n[accent]任何人都可以加入您的遊戲。\n[lightgray]之後可以在「設定」→「遊戲」→「公開遊戲可見度」中進行更改。
public.beta = 請注意,該遊戲的Beta版本無法公開遊戲大廳。
-uiscale.reset = UI縮放已變更\n按下"確定"確認這個比例\n[scarlet][accent] {0}[] 秒後...退出並還原設定
+uiscale.reset = 使用者介面縮放已變更\n按下「確定」確認這個比例\n[scarlet][accent] {0}[] 秒後退出並還原設定
uiscale.cancel = 取消並退出
setting.bloom.name = 粒子特效
keybind.title = 重新綁定按鍵
-keybinds.mobile = [scarlet]此處的大多數快捷鍵在移動設備上均不起作用。僅支援基本移動。
+keybinds.mobile = [scarlet]此處的大多數快捷鍵在行動裝置上均無法運作。僅支援基本移動。
category.general.name = 一般
category.view.name = 查看
category.multiplayer.name = 多人
-category.blocks.name = Block Select
+category.blocks.name = 選取方塊
command.attack = 攻擊
command.rally = 集結
command.retreat = 撤退
-command.idle = Idle
+command.idle = 閒置
placement.blockselectkeys = \n[lightgray]按鍵:[{0},
keybind.respawn.name = 重生
keybind.control.name = 控制單位
keybind.clear_building.name = 清除建築指令
-keybind.press = 按一下按鍵...
-keybind.press.axis = 按一下軸向或按鍵...
+keybind.press = 按一下按鍵……
+keybind.press.axis = 按一下軸向或按鍵……
keybind.screenshot.name = 地圖截圖
-keybind.toggle_power_lines.name = 顯示能量激光
+keybind.toggle_power_lines.name = 顯示能量雷射
keybind.toggle_block_status.name = 開啟方塊狀態顯示
keybind.move_x.name = 水平移動
keybind.move_y.name = 垂直移動
@@ -788,24 +827,24 @@ keybind.diagonal_placement.name = 對角線放置
keybind.pick.name = 選擇方塊
keybind.break_block.name = 移除方塊
keybind.deselect.name = 取消選取
-keybind.pickupCargo.name = Pickup Cargo
-keybind.dropCargo.name = Drop Cargo
-keybind.command.name = Command
+keybind.pickupCargo.name = 撿起貨物
+keybind.dropCargo.name = 丟棄貨物
+keybind.command.name = 指令
keybind.shoot.name = 射擊
keybind.zoom.name = 縮放
keybind.menu.name = 主選單
keybind.pause.name = 暫停遊戲
-keybind.pause_building.name = 暫停/恢復建造
+keybind.pause_building.name = 暫停/繼續建造
keybind.minimap.name = 小地圖
keybind.chat.name = 聊天
keybind.player_list.name = 玩家列表
keybind.console.name = 終端機
keybind.rotate.name = 旋轉
-keybind.rotateplaced.name = 旋轉現有(按住)
+keybind.rotateplaced.name = 旋轉現有(按住)
keybind.toggle_menus.name = 切換畫面
keybind.chat_history_prev.name = 之前的聊天記錄
keybind.chat_history_next.name = 之後的聊天記錄
-keybind.chat_scroll.name = 聊天記錄滾動
+keybind.chat_scroll.name = 聊天記錄捲動
keybind.drop_unit.name = 放下單位
keybind.zoom_minimap.name = 縮放小地圖
mode.help.title = 模式說明
@@ -822,13 +861,14 @@ mode.custom = 自訂規則
rules.infiniteresources = 無限資源
rules.reactorexplosions = 反應爐爆炸
+rules.schematic = Schematics Allowed
rules.wavetimer = 波次時間
rules.waves = 波次
rules.attack = 攻擊模式
-rules.buildai = AI Building
+rules.buildai = 電腦建築
rules.enemyCheat = 電腦無限資源
rules.blockhealthmultiplier = 建築物耐久度倍數
-rules.blockdamagemultiplier = Block Damage Multiplier
+rules.blockdamagemultiplier = 建築物傷害倍數
rules.unitbuildspeedmultiplier = 單位建設速度倍數
rules.unithealthmultiplier = 單位生命值倍數
rules.unitdamagemultiplier = 單位傷害倍數
@@ -838,8 +878,8 @@ rules.buildcostmultiplier = 建設成本倍數
rules.buildspeedmultiplier = 建設速度倍數
rules.deconstructrefundmultiplier = 拆除資源返還比例
rules.waitForWaveToEnd = 等待所有敵人毀滅才開始下一波次
-rules.dropzoneradius = 空降區半徑:[lightgray](格)
-rules.unitammo = Units Require Ammo
+rules.dropzoneradius = 空降區半徑:[lightgray](格)
+rules.unitammo = 單位需要彈藥
rules.title.waves = 波次
rules.title.resourcesbuilding = 資源與建築
rules.title.enemy = 敵人
@@ -847,17 +887,19 @@ rules.title.unit = 單位
rules.title.experimental = 實驗中
rules.title.environment = 環境
rules.lighting = 光照
-rules.fire = Fire
-rules.explosions = Block/Unit Explosion Damage
+rules.enemyLights = Enemy Lights
+rules.fire = 火
+rules.explosions = 方塊/單位爆炸傷害
rules.ambientlight = 環境光照
-rules.weather = Weather
-rules.weather.frequency = Frequency:
-rules.weather.duration = Duration:
+rules.weather = 天氣
+rules.weather.frequency = 頻率:
+rules.weather.duration = 持續時間:
content.item.name = 物品
content.liquid.name = 液體
content.unit.name = 單位
content.block.name = 方塊
+
item.copper.name = 銅
item.lead.name = 鉛
item.coal.name = 煤炭
@@ -870,7 +912,7 @@ item.phase-fabric.name = 相織布
item.surge-alloy.name = 波動合金
item.spore-pod.name = 孢子莢
item.sand.name = 沙
-item.blast-compound.name = 爆炸混合物
+item.blast-compound.name = 爆炸化合物
item.pyratite.name = 火焰彈
item.metaglass.name = 鋼化玻璃
item.scrap.name = 廢料
@@ -879,32 +921,15 @@ liquid.slag.name = 熔渣
liquid.oil.name = 原油
liquid.cryofluid.name = 冷凍液
-item.explosiveness = [lightgray]爆炸性:{0}%
-item.flammability = [lightgray]易燃性:{0}%
-item.radioactivity = [lightgray]放射性:{0}%
-
-unit.health = [lightgray]生命值:{0}
-unit.speed = [lightgray]速度:{0}
-unit.weapon = [lightgray]武器: {0}
-unit.itemcapacity = [lightgray]物品容量: {0}
-unit.minespeed = [lightgray]採礦速度: {0}%
-unit.minepower = [lightgray]採礦能力: {0}
-unit.ability = [lightgray]能力: {0}
-unit.buildspeed = [lightgray]建造速度: {0}%
-
-liquid.heatcapacity = [lightgray]熱容量:{0}
-liquid.viscosity = [lightgray]粘性:{0}
-liquid.temperature = [lightgray]溫度:{0}
-
unit.dagger.name = 匕首機甲
-unit.mace.name = Mace
+unit.mace.name = 權杖
unit.fortress.name = 要塞
-unit.nova.name = Nova
-unit.pulsar.name = Pulsar
-unit.quasar.name = Quasar
+unit.nova.name = 超新星
+unit.pulsar.name = 脈衝星
+unit.quasar.name = 類星體
unit.crawler.name = 爬行機甲
unit.atrax.name = Atrax
-unit.spiroct.name = Spiroct
+unit.spiroct.name = 尖刺
unit.arkyid.name = Arkyid
unit.toxopid.name = Toxopid
unit.flare.name = Flare
@@ -930,28 +955,29 @@ unit.reign.name = Reign
unit.vela.name = Vela
unit.corvus.name = Corvus
-block.resupply-point.name = Resupply Point
-block.parallax.name = Parallax
+block.resupply-point.name = 補給點
+block.parallax.name = 視差
block.cliff.name = 峭壁
block.sand-boulder.name = 沙礫
block.grass.name = 草
block.slag.name = 熔渣
+block.space.name = Space
block.salt.name = 鹽
-block.salt-wall.name = Salt Wall
+block.salt-wall.name = 鹽牆
block.pebbles.name = 卵石
block.tendrils.name = 卷鬚
-block.sand-wall.name = Sand Wall
+block.sand-wall.name = 沙牆
block.spore-pine.name = 孢子松
-block.spore-wall.name = Spore Wall
-block.boulder.name = Boulder
-block.snow-boulder.name = Snow Boulder
+block.spore-wall.name = 孢子牆
+block.boulder.name = 巨石
+block.snow-boulder.name = 雪巨石
block.snow-pine.name = 雪松
block.shale.name = 頁岩
block.shale-boulder.name = 頁岩巨石
block.moss.name = 苔蘚
block.shrubs.name = 灌木
block.spore-moss.name = 孢子苔蘚
-block.shale-wall.name = Shale Wall
+block.shale-wall.name = 頁岩牆
block.scrap-wall.name = 廢牆
block.scrap-wall-large.name = 大型廢牆
block.scrap-wall-huge.name = 巨型廢牆
@@ -979,17 +1005,18 @@ block.craters.name = 隕石坑
block.sand-water.name = 沙水
block.darksand-water.name = 黑沙水
block.char.name = 燒焦
-block.dacite.name = Dacite
-block.dacite-wall.name = Dacite Wall
+block.dacite.name = 英安岩
+block.dacite-wall.name = 英安岩牆
+block.dacite-boulder.name = Dacite Boulder
block.ice-snow.name = 冰雪
-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.stone-wall.name = 石牆
+block.ice-wall.name = 冰牆
+block.snow-wall.name = 雪牆
+block.dune-wall.name = 沙丘牆
block.pine.name = 松樹
-block.dirt.name = Dirt
-block.dirt-wall.name = Dirt Wall
-block.mud.name = Mud
+block.dirt.name = 土
+block.dirt-wall.name = 土牆
+block.mud.name = 泥
block.white-tree-dead.name = 枯萎白樹
block.white-tree.name = 白樹
block.spore-cluster.name = 孢子簇
@@ -1061,7 +1088,7 @@ block.differential-generator.name = 差動發電機
block.impact-reactor.name = 衝擊反應堆
block.mechanical-drill.name = 機械鑽頭
block.pneumatic-drill.name = 氣動鑽頭
-block.laser-drill.name = 激光鑽頭
+block.laser-drill.name = 雷射鑽頭
block.water-extractor.name = 水提取器
block.cultivator.name = 培養槽
block.conduit.name = 管線
@@ -1073,8 +1100,9 @@ block.liquid-void.name = 液體虛空
block.power-void.name = 能量虛空
block.power-source.name = 無限能量源
block.unloader.name = 裝卸器
-block.vault.name = 存儲庫
+block.vault.name = 儲存庫
block.wave.name = 波浪砲
+block.tsunami.name = Tsunami
block.swarmer.name = 群集砲
block.salvo.name = 齊射砲
block.ripple.name = 波紋砲
@@ -1114,31 +1142,33 @@ block.arc.name = 電弧砲
block.rtg-generator.name = 放射性同位素熱發電機
block.spectre.name = 鬼影砲
block.meltdown.name = 熔毀砲
+block.foreshadow.name = Foreshadow
block.container.name = 容器
block.launch-pad.name = 小型發射台
block.launch-pad-large.name = 大型發射台
-block.segment.name = Segment
-block.command-center.name = Command Center
-block.ground-factory.name = Ground Factory
-block.air-factory.name = Air Factory
-block.naval-factory.name = Naval Factory
-block.additive-reconstructor.name = Additive Reconstructor
-block.multiplicative-reconstructor.name = Multiplicative Reconstructor
-block.exponential-reconstructor.name = Exponential Reconstructor
-block.tetrative-reconstructor.name = Tetrative Reconstructor
-block.payload-conveyor.name = Mass Conveyor
-block.payload-router.name = Payload Router
-block.disassembler.name = Disassembler
-block.silicon-crucible.name = Silicon Crucible
-block.overdrive-dome.name = Overdrive Dome
+block.segment.name = 片段
+block.command-center.name = 指揮中心
+block.ground-factory.name = 地面工廠
+block.air-factory.name = 航空工廠
+block.naval-factory.name = 海軍工廠
+block.additive-reconstructor.name = 加法重建者
+block.multiplicative-reconstructor.name = 乘法重建者
+block.exponential-reconstructor.name = 指數重建者
+block.tetrative-reconstructor.name = 特殊重建者
+block.payload-conveyor.name = 原料輸送帶
+block.payload-router.name = 原料分配器
+block.disassembler.name = 拆裝機
+block.silicon-crucible.name = 矽爐
+block.overdrive-dome.name = 高速拱頂
-block.switch.name = Switch
-block.micro-processor.name = Micro Processor
-block.logic-processor.name = Logic Processor
-block.hyper-processor.name = Hyper Processor
-block.logic-display.name = Logic Display
-block.large-logic-display.name = Large Logic Display
-block.memory-cell.name = Memory Cell
+block.switch.name = 交換器
+block.micro-processor.name = 微處理器
+block.logic-processor.name = 邏輯處理器
+block.hyper-processor.name = 超級處理器
+block.logic-display.name = 邏輯顯示
+block.large-logic-display.name = 大型邏輯顯示
+block.memory-cell.name = 記憶單元
+block.memory-bank.name = Memory Bank
team.blue.name = 藍
team.crux.name = 紅
@@ -1172,7 +1202,7 @@ tutorial.launch = 一旦您達到特定的波數, 您就可以[accent] 發射
item.copper.description = 最基本的結構材料。在各種類型的方塊中廣泛使用。
item.lead.description = 一種基本的起始材料。被廣泛用於電子設備和液體運輸方塊。
-item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和存儲。
+item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和儲存。
item.graphite.description = 礦化的碳,用於彈藥和電氣元件。
item.sand.description = 一種常見的材料,廣泛用於冶煉,包括製作合金和作為助熔劑。
item.coal.description = 遠在「播種」事件前就形成的植物化石。一種常見並容易獲得的燃料。
@@ -1183,7 +1213,7 @@ item.silicon.description = 一種非常有用的半導體,被用於太陽能
item.plastanium.description = 一種輕量、可延展的材料,用於高級的飛行載具和破片彈藥。
item.phase-fabric.description = 一種近乎無重量的物質,用於先進的電子設備和自修復技術。
item.surge-alloy.description = 一種具有獨特電子特性的高級合金。
-item.spore-pod.description = 合成的胞子莢。合成大氣濃度的胞子做為工業用途。用於轉化為原油、爆炸物和燃料。
+item.spore-pod.description = 合成的孢子莢。合成大氣濃度的孢子做為工業用途。用於轉化為原油、爆炸物和燃料。
item.blast-compound.description = 一種用於炸彈和爆裂物的不穩定混合物。不建議作為燃料。
item.pyratite.description = 一種在燃燒武器中使用的極易燃物質。
liquid.water.description = 最有用的液體。常用於冷卻機器和廢物處理。
@@ -1253,7 +1283,7 @@ block.conduit.description = 基本液體運輸方塊。將液體往前輸送。
block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。
block.plated-conduit.description = 用和脈衝管線相同的速率運送液體,但有更強的裝甲。除了其他管線以外,不會接受來自側面的其他液體\n比較不會漏液。
block.liquid-router.description = 接受來自一個方向的液體並將它們平均輸出到最多3個其他方向。可以儲存一定量的液體。用於將液體從一個來源分成多個目標。
-block.liquid-tank.description = 存儲大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。
+block.liquid-tank.description = 儲存大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。
block.liquid-junction.description = 作為兩個交叉管線的橋樑。適用於兩條不同管線將不同液體運送到不同位置的情況。
block.bridge-conduit.description = 高級的液體運輸方塊。允許跨過最多3個任何地形或建築物的方塊運輸液體。
block.phase-conduit.description = 高級的液體運輸方塊。使用能量將液體傳送到多個方塊外連接的相織管線。
@@ -1261,8 +1291,8 @@ block.power-node.description = 將能量傳輸到相連的節點。該節點將
block.power-node-large.description = 具有更大範圍和更多連接的高級電源節點。
block.surge-tower.description = 具有兩個可用連接的超遠程能量節點。
block.diode.description = 電池中的電力在這個方塊中只能有一個固定的流向,並且只有在另一側的能量較少時才會通過。
-block.battery.description = 有能量剩餘時存儲電力並在能量短缺時提供能量。
-block.battery-large.description = 比普通電池存儲更多的能量。
+block.battery.description = 有能量剩餘時儲存電力並在能量短缺時提供能量。
+block.battery-large.description = 比普通電池儲存更多的能量。
block.combustion-generator.description = 透過燃燒原油或可燃物品以產生能量。
block.thermal-generator.description = 放置在熱的位置時會產生能量。
block.steam-generator.description = 比燃燒發電機更有效率,但需要水才能運作。
@@ -1274,19 +1304,19 @@ block.thorium-reactor.description = 從高度放射性釷產生大量能量。
block.impact-reactor.description = 先進的發電機,在尖峰值效率時能產生巨量能量。需要大量的電源輸入才能啟動該過程。
block.mechanical-drill.description = 一種便宜的鑽頭。當放置在適當的方塊上時,以緩慢的速度無限期地輸出物品。只能挖掘基本的原料。
block.pneumatic-drill.description = 一種改進的鑽頭,可以挖掘鈦。比機械鑽頭挖掘的更快。
-block.laser-drill.description = 通過激光技術可以更快地挖掘,但需要能量。此外,這種鑽頭可以挖掘放射性釷。
+block.laser-drill.description = 通過雷射技術可以更快地挖掘,但需要能量。此外,這種鑽頭可以挖掘放射性釷。
block.blast-drill.description = 終極的鑽頭。需要大量能量。
block.water-extractor.description = 從地下提取水。當附近沒有湖泊時可以使用它。
block.cultivator.description = 將大氣中微小濃度的胞子培養成工業等級的孢子莢。
block.oil-extractor.description = 使用大量的能量、水以及沙子鑽取原油。當附近沒有直接的原油來源時使用它。
-block.core-shard.description = 初代的核心膠囊。一旦被摧毀,與該地區的所有聯繫都將失去。不要讓這種情況發生。
-block.core-foundation.description = 第二代核心。有更好的裝甲。可以存儲更多資源。
-block.core-nucleus.description = 第三代核心,也是最後一代。裝甲非常好。可以存儲大量資源。
-block.vault.description = 存儲大量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從存儲庫提取物品。
-block.container.description = 存儲少量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從容器提取物品。
-block.unloader.description = 將物品從容器、存儲庫或核心卸載到傳輸帶上或直接卸載到相鄰的方塊中。透過點擊卸載器來更改要卸載的物品類型。
+block.core-shard.description = 初代的核心膠囊。一旦被摧毀,會失去對該地區的控制權。不要讓這種情況發生。
+block.core-foundation.description = 第二代核心。有更好的裝甲。可以儲存更多資源。
+block.core-nucleus.description = 第三代核心,也是最後一代。裝甲非常好。可以儲存大量資源。
+block.vault.description = 儲存大量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從儲存庫提取物品。
+block.container.description = 儲存少量的每一種物品。當物品需求非恆定時,使用它來創建緩衝。使用[lightgray]裝卸器[]以從容器提取物品。
+block.unloader.description = 將物品從容器、倉庫或核心卸載到傳輸帶上或直接卸貨到相鄰的方塊中。透過點擊卸貨器來更改要卸貨的物品類型。
block.launch-pad.description = 無需發射核心即可直接發射物品。
-block.launch-pad-large.description = 發射台的進階版。可存儲更多物品。更快的發射速度。
+block.launch-pad-large.description = 發射台的進階版。可儲存更多物品。更快的發射速度。
block.duo.description = 一種小而便宜的砲塔。
block.scatter.description = 不可或缺的中型防空砲塔。向敵方單位噴射鉛塊、廢料或是鋼化玻璃碎片。
block.scorch.description = 燃燒所有靠近它的地面敵人。在近距離非常有效。
@@ -1300,6 +1330,6 @@ block.fuse.description = 一種近距的大型能量砲塔。向敵人發射三
block.ripple.description = 極為強大的迫擊炮塔。一次向敵人發射數發子彈。
block.cyclone.description = 一種對空和對地的大型砲塔。向附近單位發射爆裂性的碎塊。
block.spectre.description = 一種雙炮管的巨型砲塔。向空中及地面敵人發射大型的穿甲彈。
-block.meltdown.description = 一種巨型激光砲塔。充能並發射持續性的激光光束。需要冷卻液以運作。
+block.meltdown.description = 一種巨型雷射砲塔。充電並發射持續性的雷射光束。需要冷卻液以運作。
block.repair-point.description = 持續治療附近最近的受損單位。
-block.segment.description = Damages and destroys incoming projectiles. Laser projectiles are not targeted.
\ No newline at end of file
+block.segment.description = 傷害並摧毀來襲的砲彈。無法將雷射砲彈作為目標。
diff --git a/core/assets/contributors b/core/assets/contributors
index 9f1cf8c9f4..39c29ff93a 100644
--- a/core/assets/contributors
+++ b/core/assets/contributors
@@ -96,3 +96,8 @@ YellOw139
PetrGasparik
LeoDog896
Summet
+MEEP of Faith
+jalastram (freesound.org)
+newlocknew (freesound.org)
+dsmolenaers (freesound.org)
+Headphaze (freesound.org)
\ No newline at end of file
diff --git a/core/assets/fonts/font.woff b/core/assets/fonts/font.woff
index 4d8ed4b9f7..c031c478de 100644
Binary files a/core/assets/fonts/font.woff and b/core/assets/fonts/font.woff differ
diff --git a/core/assets/fonts/icon.ttf b/core/assets/fonts/icon.ttf
index 4b61658e65..badd3e3b66 100644
Binary files a/core/assets/fonts/icon.ttf and b/core/assets/fonts/icon.ttf differ
diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties
index 417ed98b34..008fb1289a 100755
--- a/core/assets/icons/icons.properties
+++ b/core/assets/icons/icons.properties
@@ -314,3 +314,7 @@
63422=foreshadow|block-foreshadow-medium
63421=tsunami|block-tsunami-medium
63420=space|block-space-medium
+63419=legacy-unit-factory-air|block-legacy-unit-factory-air-medium
+63418=legacy-unit-factory-ground|block-legacy-unit-factory-ground-medium
+63417=interplanetary-accelerator|block-interplanetary-accelerator-medium
+63416=basalt-boulder|block-basalt-boulder-medium
diff --git a/core/assets/maps/archipelago.msav b/core/assets/maps/archipelago.msav
new file mode 100644
index 0000000000..24764ccf20
Binary files /dev/null and b/core/assets/maps/archipelago.msav differ
diff --git a/core/assets/maps/biomassFacility.msav b/core/assets/maps/biomassFacility.msav
new file mode 100644
index 0000000000..bf16a3b7ea
Binary files /dev/null and b/core/assets/maps/biomassFacility.msav differ
diff --git a/core/assets/maps/crags.msav b/core/assets/maps/crags.msav
deleted file mode 100644
index 1fb64c01e7..0000000000
Binary files a/core/assets/maps/crags.msav and /dev/null differ
diff --git a/core/assets/maps/craters.msav b/core/assets/maps/craters.msav
index 04c1aa73d3..94bba211ac 100644
Binary files a/core/assets/maps/craters.msav and b/core/assets/maps/craters.msav differ
diff --git a/core/assets/maps/debrisField.msav b/core/assets/maps/debrisField.msav
new file mode 100644
index 0000000000..956a7d5b49
Binary files /dev/null and b/core/assets/maps/debrisField.msav differ
diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/extractionOutpost.msav
new file mode 100644
index 0000000000..5728a4b217
Binary files /dev/null and b/core/assets/maps/extractionOutpost.msav differ
diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/frozenForest.msav
index 0eb9f1fe56..09f7e2a546 100644
Binary files a/core/assets/maps/frozenForest.msav and b/core/assets/maps/frozenForest.msav differ
diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav
index 1e3a26f520..f0edb0987b 100644
Binary files a/core/assets/maps/fungalPass.msav and b/core/assets/maps/fungalPass.msav differ
diff --git a/core/assets/maps/glacier.msav b/core/assets/maps/glacier.msav
index 83a4f07437..73796f7643 100644
Binary files a/core/assets/maps/glacier.msav and b/core/assets/maps/glacier.msav differ
diff --git a/core/assets/maps/groundZero.msav b/core/assets/maps/groundZero.msav
index 1f1500439b..bb169dbbc7 100644
Binary files a/core/assets/maps/groundZero.msav and b/core/assets/maps/groundZero.msav differ
diff --git a/core/assets/maps/impact0078.msav b/core/assets/maps/impact0078.msav
index 03bcfe8be2..56f5570bfb 100644
Binary files a/core/assets/maps/impact0078.msav and b/core/assets/maps/impact0078.msav differ
diff --git a/core/assets/maps/nuclearComplex.msav b/core/assets/maps/nuclearComplex.msav
index fe8b36e26a..aa9424850b 100644
Binary files a/core/assets/maps/nuclearComplex.msav and b/core/assets/maps/nuclearComplex.msav differ
diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/overgrowth.msav
index b65b8e4818..0fd4902d1d 100644
Binary files a/core/assets/maps/overgrowth.msav and b/core/assets/maps/overgrowth.msav differ
diff --git a/core/assets/maps/planetaryTerminal.msav b/core/assets/maps/planetaryTerminal.msav
new file mode 100644
index 0000000000..c705da368f
Binary files /dev/null and b/core/assets/maps/planetaryTerminal.msav differ
diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/stainedMountains.msav
index c627b0917e..af3abb26c2 100644
Binary files a/core/assets/maps/stainedMountains.msav and b/core/assets/maps/stainedMountains.msav differ
diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/tarFields.msav
index bf8b306f95..006be2fb0f 100644
Binary files a/core/assets/maps/tarFields.msav and b/core/assets/maps/tarFields.msav differ
diff --git a/core/assets/maps/veins.msav b/core/assets/maps/veins.msav
index 744dbaf99d..3273feb74b 100644
Binary files a/core/assets/maps/veins.msav and b/core/assets/maps/veins.msav differ
diff --git a/core/assets/maps/windsweptIslands.msav b/core/assets/maps/windsweptIslands.msav
new file mode 100644
index 0000000000..d5e838b60d
Binary files /dev/null and b/core/assets/maps/windsweptIslands.msav differ
diff --git a/core/assets/music/boss1.mp3 b/core/assets/music/boss1.mp3
new file mode 100644
index 0000000000..4a54f750c9
Binary files /dev/null and b/core/assets/music/boss1.mp3 differ
diff --git a/core/assets/music/boss2.mp3 b/core/assets/music/boss2.mp3
new file mode 100644
index 0000000000..cd9eaf1b25
Binary files /dev/null and b/core/assets/music/boss2.mp3 differ
diff --git a/core/assets/music/editor.mp3 b/core/assets/music/editor.mp3
new file mode 100644
index 0000000000..0b3a8e6182
Binary files /dev/null and b/core/assets/music/editor.mp3 differ
diff --git a/core/assets/music/editor.ogg b/core/assets/music/editor.ogg
deleted file mode 100644
index 61348f1b75..0000000000
Binary files a/core/assets/music/editor.ogg and /dev/null differ
diff --git a/core/assets/music/game1.mp3 b/core/assets/music/game1.mp3
new file mode 100644
index 0000000000..bfb9b3d468
Binary files /dev/null and b/core/assets/music/game1.mp3 differ
diff --git a/core/assets/music/game1.ogg b/core/assets/music/game1.ogg
deleted file mode 100644
index d69bb0e931..0000000000
Binary files a/core/assets/music/game1.ogg and /dev/null differ
diff --git a/core/assets/music/game2.mp3 b/core/assets/music/game2.mp3
new file mode 100644
index 0000000000..baeddf2914
Binary files /dev/null and b/core/assets/music/game2.mp3 differ
diff --git a/core/assets/music/game2.ogg b/core/assets/music/game2.ogg
deleted file mode 100644
index 9cf7898026..0000000000
Binary files a/core/assets/music/game2.ogg and /dev/null differ
diff --git a/core/assets/music/game3.mp3 b/core/assets/music/game3.mp3
new file mode 100644
index 0000000000..e7f8e34f75
Binary files /dev/null and b/core/assets/music/game3.mp3 differ
diff --git a/core/assets/music/game3.ogg b/core/assets/music/game3.ogg
deleted file mode 100644
index 657848a0da..0000000000
Binary files a/core/assets/music/game3.ogg and /dev/null differ
diff --git a/core/assets/music/game4.mp3 b/core/assets/music/game4.mp3
new file mode 100644
index 0000000000..c21cf226f0
Binary files /dev/null and b/core/assets/music/game4.mp3 differ
diff --git a/core/assets/music/game4.ogg b/core/assets/music/game4.ogg
deleted file mode 100644
index 051c414540..0000000000
Binary files a/core/assets/music/game4.ogg and /dev/null differ
diff --git a/core/assets/music/game5.mp3 b/core/assets/music/game5.mp3
new file mode 100644
index 0000000000..2bcc7e7a94
Binary files /dev/null and b/core/assets/music/game5.mp3 differ
diff --git a/core/assets/music/game5.ogg b/core/assets/music/game5.ogg
deleted file mode 100644
index d988882f7a..0000000000
Binary files a/core/assets/music/game5.ogg and /dev/null differ
diff --git a/core/assets/music/game6.mp3 b/core/assets/music/game6.mp3
new file mode 100644
index 0000000000..9e0cfc97d6
Binary files /dev/null and b/core/assets/music/game6.mp3 differ
diff --git a/core/assets/music/game6.ogg b/core/assets/music/game6.ogg
deleted file mode 100644
index 45b063ae9c..0000000000
Binary files a/core/assets/music/game6.ogg and /dev/null differ
diff --git a/core/assets/music/game7.mp3 b/core/assets/music/game7.mp3
new file mode 100644
index 0000000000..4a8d5187b8
Binary files /dev/null and b/core/assets/music/game7.mp3 differ
diff --git a/core/assets/music/game7.ogg b/core/assets/music/game7.ogg
deleted file mode 100644
index 6a1011657c..0000000000
Binary files a/core/assets/music/game7.ogg and /dev/null differ
diff --git a/core/assets/music/game8.mp3 b/core/assets/music/game8.mp3
new file mode 100644
index 0000000000..a2cebbc465
Binary files /dev/null and b/core/assets/music/game8.mp3 differ
diff --git a/core/assets/music/game9.mp3 b/core/assets/music/game9.mp3
new file mode 100644
index 0000000000..a852b4c4c9
Binary files /dev/null and b/core/assets/music/game9.mp3 differ
diff --git a/core/assets/music/land.mp3 b/core/assets/music/land.mp3
new file mode 100644
index 0000000000..80720c478c
Binary files /dev/null and b/core/assets/music/land.mp3 differ
diff --git a/core/assets/music/land.ogg b/core/assets/music/land.ogg
deleted file mode 100644
index 800b253656..0000000000
Binary files a/core/assets/music/land.ogg and /dev/null differ
diff --git a/core/assets/music/launch.mp3 b/core/assets/music/launch.mp3
new file mode 100644
index 0000000000..7aeb2a3340
Binary files /dev/null and b/core/assets/music/launch.mp3 differ
diff --git a/core/assets/music/launch.ogg b/core/assets/music/launch.ogg
deleted file mode 100644
index 1da1a065c6..0000000000
Binary files a/core/assets/music/launch.ogg and /dev/null differ
diff --git a/core/assets/music/menu.mp3 b/core/assets/music/menu.mp3
new file mode 100644
index 0000000000..6423eba4b2
Binary files /dev/null and b/core/assets/music/menu.mp3 differ
diff --git a/core/assets/music/menu.ogg b/core/assets/music/menu.ogg
deleted file mode 100644
index c23fe679fb..0000000000
Binary files a/core/assets/music/menu.ogg and /dev/null differ
diff --git a/core/assets/scripts/base.js b/core/assets/scripts/base.js
index ace7d878ee..d0fab50b81 100755
--- a/core/assets/scripts/base.js
+++ b/core/assets/scripts/base.js
@@ -1,28 +1,46 @@
"use strict";
-const log = function(context, obj){
- Vars.mods.getScripts().log(context, String(obj))
+function log(context, obj){
+ Vars.mods.scripts.log(context, String(obj))
}
-const readString = path => Vars.mods.getScripts().readString(path)
-const readBytes = path => Vars.mods.getScripts().readBytes(path)
-const loadMusic = path => Vars.mods.getScripts().loadMusic(path)
-const loadSound = path => Vars.mods.getScripts().loadSound(path)
+const readString = path => Vars.mods.scripts.readString(path)
+const readBytes = path => Vars.mods.scripts.readBytes(path)
+const loadMusic = path => Vars.mods.scripts.loadMusic(path)
+const loadSound = path => Vars.mods.scripts.loadSound(path)
+
+const readFile = (purpose, ext, cons) => Vars.mods.scripts.readFile(purpose, ext, cons);
+const readBinFile = (purpose, ext, cons) => Vars.mods.scripts.readBinFile(purpose, ext, cons);
+const writeFile = (purpose, ext, str) => Vars.mods.scripts.writeFile(purpose, ext, str);
+const writeBinFile = (purpose, ext, bytes) => Vars.mods.scripts.writeBinFile(purpose, ext, bytes);
let scriptName = "base.js"
let modName = "none"
const print = text => log(modName + "/" + scriptName, text);
-const extendContent = function(classType, name, params){
- return new JavaAdapter(classType, params, name)
+//js 'extend(Base, ..., {})' = java 'new Base(...) {}'
+function extend(/*Base, ..., def*/){
+ const Base = arguments[0]
+ const def = arguments[arguments.length - 1]
+ //swap order from Base, def, ... to Base, ..., def
+ const args = [Base, def].concat(Array.from(arguments).splice(1, arguments.length - 2))
+
+ //forward constructor arguments to new JavaAdapter
+ const instance = JavaAdapter.apply(null, args)
+ //JavaAdapter only overrides functions; set fields too
+ for(var i in def){
+ if(typeof(def[i]) != "function"){
+ instance[i] = def[i]
+ }
+ }
+ return instance
}
-const extend = function(classType, params){
- return new JavaAdapter(classType, params)
-}
+//For backwards compatibility, use extend instead
+const extendContent = extend;
-//these are not sctrictly necessary, but are kept for edge cases
+//these are not strictly necessary, but are kept for edge cases
const run = method => new java.lang.Runnable(){run: method}
const boolf = method => new Boolf(){get: method}
const boolp = method => new Boolp(){get: method}
diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js
index 81a07f2bef..214da61a7b 100755
--- a/core/assets/scripts/global.js
+++ b/core/assets/scripts/global.js
@@ -2,29 +2,47 @@
"use strict";
-const log = function(context, obj){
- Vars.mods.getScripts().log(context, String(obj))
+function log(context, obj){
+ Vars.mods.scripts.log(context, String(obj))
}
-const readString = path => Vars.mods.getScripts().readString(path)
-const readBytes = path => Vars.mods.getScripts().readBytes(path)
-const loadMusic = path => Vars.mods.getScripts().loadMusic(path)
-const loadSound = path => Vars.mods.getScripts().loadSound(path)
+const readString = path => Vars.mods.scripts.readString(path)
+const readBytes = path => Vars.mods.scripts.readBytes(path)
+const loadMusic = path => Vars.mods.scripts.loadMusic(path)
+const loadSound = path => Vars.mods.scripts.loadSound(path)
-var scriptName = "base.js"
-var modName = "none"
+const readFile = (purpose, ext, cons) => Vars.mods.scripts.readFile(purpose, ext, cons);
+const readBinFile = (purpose, ext, cons) => Vars.mods.scripts.readBinFile(purpose, ext, cons);
+const writeFile = (purpose, ext, str) => Vars.mods.scripts.writeFile(purpose, ext, str);
+const writeBinFile = (purpose, ext, bytes) => Vars.mods.scripts.writeBinFile(purpose, ext, bytes);
+
+let scriptName = "base.js"
+let modName = "none"
const print = text => log(modName + "/" + scriptName, text);
-const extendContent = function(classType, name, params){
- return new JavaAdapter(classType, params, name)
+//js 'extend(Base, ..., {})' = java 'new Base(...) {}'
+function extend(/*Base, ..., def*/){
+ const Base = arguments[0]
+ const def = arguments[arguments.length - 1]
+ //swap order from Base, def, ... to Base, ..., def
+ const args = [Base, def].concat(Array.from(arguments).splice(1, arguments.length - 2))
+
+ //forward constructor arguments to new JavaAdapter
+ const instance = JavaAdapter.apply(null, args)
+ //JavaAdapter only overrides functions; set fields too
+ for(var i in def){
+ if(typeof(def[i]) != "function"){
+ instance[i] = def[i]
+ }
+ }
+ return instance
}
-const extend = function(classType, params){
- return new JavaAdapter(classType, params)
-}
+//For backwards compatibility, use extend instead
+const extendContent = extend;
-//these are not sctrictly necessary, but are kept for edge cases
+//these are not strictly necessary, but are kept for edge cases
const run = method => new java.lang.Runnable(){run: method}
const boolf = method => new Boolf(){get: method}
const boolp = method => new Boolp(){get: method}
@@ -68,6 +86,7 @@ importPackage(Packages.mindustry.entities)
importPackage(Packages.mindustry.entities.abilities)
importPackage(Packages.mindustry.entities.bullet)
importPackage(Packages.mindustry.entities.comp)
+importPackage(Packages.mindustry.entities.effect)
importPackage(Packages.mindustry.entities.units)
importPackage(Packages.mindustry.game)
importPackage(Packages.mindustry.gen)
@@ -82,6 +101,7 @@ importPackage(Packages.mindustry.maps.generators)
importPackage(Packages.mindustry.maps.planet)
importPackage(Packages.mindustry.net)
importPackage(Packages.mindustry.type)
+importPackage(Packages.mindustry.type.weather)
importPackage(Packages.mindustry.ui)
importPackage(Packages.mindustry.ui.dialogs)
importPackage(Packages.mindustry.ui.fragments)
@@ -128,6 +148,8 @@ const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent
+const UnitControlEvent = Packages.mindustry.game.EventType.UnitControlEvent
+const PickupEvent = Packages.mindustry.game.EventType.PickupEvent
const TapEvent = Packages.mindustry.game.EventType.TapEvent
const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent
const DepositEvent = Packages.mindustry.game.EventType.DepositEvent
@@ -136,7 +158,10 @@ const SectorCaptureEvent = Packages.mindustry.game.EventType.SectorCaptureEvent
const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent
const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent
const CommandIssueEvent = Packages.mindustry.game.EventType.CommandIssueEvent
+const SchematicCreateEvent = Packages.mindustry.game.EventType.SchematicCreateEvent
+const SectorLaunchEvent = Packages.mindustry.game.EventType.SectorLaunchEvent
const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent
+const SectorInvasionEvent = Packages.mindustry.game.EventType.SectorInvasionEvent
const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent
const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent
const ClientLoadEvent = Packages.mindustry.game.EventType.ClientLoadEvent
diff --git a/core/assets/shaders/atmosphere.frag b/core/assets/shaders/atmosphere.frag
index cbb7c4ea21..f5f437f298 100644
--- a/core/assets/shaders/atmosphere.frag
+++ b/core/assets/shaders/atmosphere.frag
@@ -27,12 +27,12 @@ uniform vec3 u_rcampos;
uniform mat4 u_invproj;
uniform vec3 u_light;
-vec2 rayIntersection(vec3 p, vec3 dir, float radius) {
+vec2 rayIntersection(vec3 p, vec3 dir, float radius){
float b = dot(p, dir);
float c = dot(p, p) - radius * radius;
float d = b * b - c;
- if (d < 0.0) {
+ if(d < 0.0){
return vec2(MAX, -MAX);
}
d = sqrt(d);
@@ -43,7 +43,7 @@ vec2 rayIntersection(vec3 p, vec3 dir, float radius) {
return vec2(near, far);
}
-float miePhase(float g, float c, float cc) {
+float miePhase(float g, float c, float cc){
float gg = g * g;
float a = (1.0 - gg) * (1.0 + cc);
@@ -55,20 +55,20 @@ float miePhase(float g, float c, float cc) {
return 1.5 * a / b;
}
-float rayleighPhase(float cc) {
+float rayleighPhase(float cc){
return 0.75 * (1.0 + cc);
}
-float density(vec3 p) {
+float density(vec3 p){
return exp(-(length(p) - u_innerRadius) * (4.0 / (u_outerRadius - u_innerRadius)));
}
-float optic(vec3 p, vec3 q) {
+float optic(vec3 p, vec3 q){
vec3 step = (q - p) / fNumOutScatter;
vec3 v = p + step * 0.5;
float sum = 0.0;
- for (int i = 0; i < numOutScatter; i++) {
+ for(int i = 0; i < numOutScatter; i++){
sum += density(v);
v += step;
}
@@ -76,7 +76,7 @@ float optic(vec3 p, vec3 q) {
return sum;
}
-vec3 inScatter(vec3 o, vec3 dir, vec2 e, vec3 l) {
+vec3 inScatter(vec3 o, vec3 dir, vec2 e, vec3 l){
float len = (e.y - e.x) / fNumInScatter;
vec3 step = dir * len;
vec3 p = o + dir * e.x;
@@ -115,4 +115,4 @@ void main(){
vec3 result = inScatter(eye, dir, e, l);
gl_FragColor = vec4(result, 1.0);
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/atmosphere.vert b/core/assets/shaders/atmosphere.vert
index 6899e0f0f4..05081108d0 100644
--- a/core/assets/shaders/atmosphere.vert
+++ b/core/assets/shaders/atmosphere.vert
@@ -10,4 +10,4 @@ void main(){
v_position = a_position;
v_model = u_model;
gl_Position = u_projection*u_model*a_position;
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/blockbuild.frag b/core/assets/shaders/blockbuild.frag
index c2fb1b4044..0c8f301350 100644
--- a/core/assets/shaders/blockbuild.frag
+++ b/core/assets/shaders/blockbuild.frag
@@ -24,7 +24,7 @@ bool cont(vec2 T, vec2 v){
id(T + vec2(step, 0) * v, base) || id(T + vec2(-step, 0) * v, base));
}
-void main() {
+void main(){
vec2 t = v_texCoords.xy;
diff --git a/core/assets/shaders/cubemap.frag b/core/assets/shaders/cubemap.frag
index 3f9a760e94..d6567508e9 100644
--- a/core/assets/shaders/cubemap.frag
+++ b/core/assets/shaders/cubemap.frag
@@ -5,4 +5,4 @@ uniform samplerCube u_cubemap;
void main(){
gl_FragColor = textureCube(u_cubemap, v_texCoords);
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/cubemap.vert b/core/assets/shaders/cubemap.vert
index 546cec8f46..1d5d04f518 100644
--- a/core/assets/shaders/cubemap.vert
+++ b/core/assets/shaders/cubemap.vert
@@ -9,4 +9,4 @@ const float SCALE = 50.0;
void main(){
v_texCoords = a_position;
gl_Position = u_proj * vec4(a_position * SCALE, 1.0);
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/default.frag b/core/assets/shaders/default.frag
index 93be3cffc9..1f67c593ea 100644
--- a/core/assets/shaders/default.frag
+++ b/core/assets/shaders/default.frag
@@ -6,4 +6,4 @@ uniform sampler2D u_texture;
void main(){
vec4 c = texture2D(u_texture, v_texCoords);
gl_FragColor = v_color * mix(c, vec4(v_mix_color.rgb, c.a), v_mix_color.a);
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/planet.vert b/core/assets/shaders/planet.vert
index 4723e2bfff..182fe68972 100755
--- a/core/assets/shaders/planet.vert
+++ b/core/assets/shaders/planet.vert
@@ -17,9 +17,9 @@ const float shinelen = 0.2;
void main(){
vec3 norc = u_ambientColor * (diffuse + vec3(clamp((dot(a_normal, u_lightdir) + 1.0) / 2.0, 0.0, 1.0)));
float shinedot = max((-dot(u_camdir, a_normal) - (1.0 - shinelen)) / shinelen, 0.0);
- float shinyness = (1.0 - a_color.a) * pow(shinedot, shinefalloff);
+ float albedo = (1.0 - a_color.a) * pow(shinedot, shinefalloff);
vec4 baseCol = vec4(a_color.rgb, 1.0);
- v_col = mix(baseCol * vec4(norc, 1.0), vec4(1.0), shinyness * norc.r);
+ v_col = mix(baseCol * vec4(norc, 1.0), vec4(1.0), albedo * norc.r);
gl_Position = u_proj * u_trans * a_position;
}
diff --git a/core/assets/shaders/planetgrid.vert b/core/assets/shaders/planetgrid.vert
index 5dd54ffebc..9eca283160 100644
--- a/core/assets/shaders/planetgrid.vert
+++ b/core/assets/shaders/planetgrid.vert
@@ -7,7 +7,7 @@ uniform mat4 u_trans;
varying vec4 v_col;
varying vec4 v_position;
-void main() {
+void main(){
gl_Position = u_proj * u_trans * a_position;
v_col = a_color;
v_position = a_position;
diff --git a/core/assets/shaders/slag.frag b/core/assets/shaders/slag.frag
index f904d48dbf..c038baf292 100755
--- a/core/assets/shaders/slag.frag
+++ b/core/assets/shaders/slag.frag
@@ -29,4 +29,4 @@ void main(){
}
gl_FragColor = color;
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/space.frag b/core/assets/shaders/space.frag
index 4b95cf7438..73045aa54b 100755
--- a/core/assets/shaders/space.frag
+++ b/core/assets/shaders/space.frag
@@ -1,6 +1,6 @@
#define HIGHP
#define NSCALE 2700.0
-#define CAMSCALE (NSCALE*5.0)
+#define CAMSCALE (NSCALE*10.0)
uniform sampler2D u_texture;
uniform sampler2D u_stars;
@@ -20,4 +20,4 @@ void main(){
color.rgb = texture2D(u_stars, coords/NSCALE + vec2(-0.1, -0.1) + u_ccampos / CAMSCALE).rgb;
gl_FragColor = color;
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/tar.frag b/core/assets/shaders/tar.frag
index ea2a3b3f1d..228eb15718 100644
--- a/core/assets/shaders/tar.frag
+++ b/core/assets/shaders/tar.frag
@@ -24,4 +24,4 @@ void main(){
}
gl_FragColor = color;
-}
\ No newline at end of file
+}
diff --git a/core/assets/shaders/unitbuild.frag b/core/assets/shaders/unitbuild.frag
index 147b27106f..d4657060da 100644
--- a/core/assets/shaders/unitbuild.frag
+++ b/core/assets/shaders/unitbuild.frag
@@ -30,7 +30,7 @@ bool cont(vec2 T, vec2 v){
id(T + vec2(step, -step) * v, base) || id(T + vec2(-step, step) * v, base));
}
-void main() {
+void main(){
vec2 coords = (v_texCoords.xy - u_uv) / (u_uv2 - u_uv);
vec2 t = v_texCoords.xy;
vec2 v = vec2(1.0/u_texsize.x, 1.0/u_texsize.y);
diff --git a/core/assets/shaders/water.frag b/core/assets/shaders/water.frag
index f0c41ccd24..e7f4ee1016 100644
--- a/core/assets/shaders/water.frag
+++ b/core/assets/shaders/water.frag
@@ -34,4 +34,4 @@ void main(){
}
gl_FragColor = vec4(color.rgb, 1.0);
-}
\ No newline at end of file
+}
diff --git a/core/assets/sounds/artillery.ogg b/core/assets/sounds/artillery.ogg
index e3651f5ce1..d9f8b74d75 100644
Binary files a/core/assets/sounds/artillery.ogg and b/core/assets/sounds/artillery.ogg differ
diff --git a/core/assets/sounds/bang.ogg b/core/assets/sounds/bang.ogg
index afbd099e6f..29cde62552 100644
Binary files a/core/assets/sounds/bang.ogg and b/core/assets/sounds/bang.ogg differ
diff --git a/core/assets/sounds/boom.ogg b/core/assets/sounds/boom.ogg
index 4cce577fe9..19f41d80b2 100644
Binary files a/core/assets/sounds/boom.ogg and b/core/assets/sounds/boom.ogg differ
diff --git a/core/assets/sounds/combustion.ogg b/core/assets/sounds/combustion.ogg
new file mode 100644
index 0000000000..6aab153a47
Binary files /dev/null and b/core/assets/sounds/combustion.ogg differ
diff --git a/core/assets/sounds/conveyor.ogg b/core/assets/sounds/conveyor.ogg
index 9f989d70d0..67576b44a4 100644
Binary files a/core/assets/sounds/conveyor.ogg and b/core/assets/sounds/conveyor.ogg differ
diff --git a/core/assets/sounds/cutter.ogg b/core/assets/sounds/cutter.ogg
new file mode 100644
index 0000000000..313159006e
Binary files /dev/null and b/core/assets/sounds/cutter.ogg differ
diff --git a/core/assets/sounds/drill.ogg b/core/assets/sounds/drill.ogg
index 6aab153a47..f21898b646 100644
Binary files a/core/assets/sounds/drill.ogg and b/core/assets/sounds/drill.ogg differ
diff --git a/core/assets/sounds/empty.ogg b/core/assets/sounds/empty.ogg
deleted file mode 100644
index 6c7ecbe8e0..0000000000
Binary files a/core/assets/sounds/empty.ogg and /dev/null differ
diff --git a/core/assets/sounds/fire.ogg b/core/assets/sounds/fire.ogg
index 0201ee8ea4..eb5ea8a770 100644
Binary files a/core/assets/sounds/fire.ogg and b/core/assets/sounds/fire.ogg differ
diff --git a/core/assets/sounds/grinding.ogg b/core/assets/sounds/grinding.ogg
new file mode 100644
index 0000000000..f78d2c4e67
Binary files /dev/null and b/core/assets/sounds/grinding.ogg differ
diff --git a/core/assets/sounds/hum.ogg b/core/assets/sounds/hum.ogg
new file mode 100644
index 0000000000..184504f3dd
Binary files /dev/null and b/core/assets/sounds/hum.ogg differ
diff --git a/core/assets/sounds/laserblast.ogg b/core/assets/sounds/laserblast.ogg
new file mode 100644
index 0000000000..6df3b14284
Binary files /dev/null and b/core/assets/sounds/laserblast.ogg differ
diff --git a/core/assets/sounds/lasercharge.ogg b/core/assets/sounds/lasercharge.ogg
new file mode 100644
index 0000000000..7e50df3661
Binary files /dev/null and b/core/assets/sounds/lasercharge.ogg differ
diff --git a/core/assets/sounds/lasercharge2.ogg b/core/assets/sounds/lasercharge2.ogg
new file mode 100644
index 0000000000..2a737e5f63
Binary files /dev/null and b/core/assets/sounds/lasercharge2.ogg differ
diff --git a/core/assets/sounds/lasershoot.ogg b/core/assets/sounds/lasershoot.ogg
new file mode 100644
index 0000000000..d25c17a4cb
Binary files /dev/null and b/core/assets/sounds/lasershoot.ogg differ
diff --git a/core/assets/sounds/minebeam.ogg b/core/assets/sounds/minebeam.ogg
new file mode 100644
index 0000000000..27f75a8531
Binary files /dev/null and b/core/assets/sounds/minebeam.ogg differ
diff --git a/core/assets/sounds/mud.ogg b/core/assets/sounds/mud.ogg
new file mode 100644
index 0000000000..8eb75cb67e
Binary files /dev/null and b/core/assets/sounds/mud.ogg differ
diff --git a/core/assets/sounds/noammo.ogg b/core/assets/sounds/noammo.ogg
new file mode 100644
index 0000000000..4472dab237
Binary files /dev/null and b/core/assets/sounds/noammo.ogg differ
diff --git a/core/assets/sounds/pew.ogg b/core/assets/sounds/pew.ogg
index 0c1df7f711..6a15b963e3 100644
Binary files a/core/assets/sounds/pew.ogg and b/core/assets/sounds/pew.ogg differ
diff --git a/core/assets/sounds/pew_.ogg b/core/assets/sounds/pew_.ogg
new file mode 100644
index 0000000000..0c1df7f711
Binary files /dev/null and b/core/assets/sounds/pew_.ogg differ
diff --git a/core/assets/sounds/place.ogg b/core/assets/sounds/place.ogg
index ff1d05c211..29bcec7a9b 100644
Binary files a/core/assets/sounds/place.ogg and b/core/assets/sounds/place.ogg differ
diff --git a/core/assets/sounds/plasmaboom.ogg b/core/assets/sounds/plasmaboom.ogg
new file mode 100644
index 0000000000..fab2f3471d
Binary files /dev/null and b/core/assets/sounds/plasmaboom.ogg differ
diff --git a/core/assets/sounds/plasmadrop.ogg b/core/assets/sounds/plasmadrop.ogg
new file mode 100644
index 0000000000..57bd0b8e27
Binary files /dev/null and b/core/assets/sounds/plasmadrop.ogg differ
diff --git a/core/assets/sounds/pulse.ogg b/core/assets/sounds/pulse.ogg
new file mode 100644
index 0000000000..6c135c8a07
Binary files /dev/null and b/core/assets/sounds/pulse.ogg differ
diff --git a/core/assets/sounds/railgun.ogg b/core/assets/sounds/railgun.ogg
new file mode 100644
index 0000000000..d8de298916
Binary files /dev/null and b/core/assets/sounds/railgun.ogg differ
diff --git a/core/assets/sounds/rain.ogg b/core/assets/sounds/rain.ogg
new file mode 100644
index 0000000000..ecf90ea73d
Binary files /dev/null and b/core/assets/sounds/rain.ogg differ
diff --git a/core/assets/sounds/sap.ogg b/core/assets/sounds/sap.ogg
new file mode 100644
index 0000000000..9e73a8d516
Binary files /dev/null and b/core/assets/sounds/sap.ogg differ
diff --git a/core/assets/sounds/shield.ogg b/core/assets/sounds/shield.ogg
new file mode 100644
index 0000000000..b427a07286
Binary files /dev/null and b/core/assets/sounds/shield.ogg differ
diff --git a/core/assets/sounds/shootSnap.ogg b/core/assets/sounds/shootSnap.ogg
index fc692486a0..17826bb5c0 100644
Binary files a/core/assets/sounds/shootSnap.ogg and b/core/assets/sounds/shootSnap.ogg differ
diff --git a/core/assets/sounds/smelter.ogg b/core/assets/sounds/smelter.ogg
new file mode 100644
index 0000000000..86bbaf63de
Binary files /dev/null and b/core/assets/sounds/smelter.ogg differ
diff --git a/core/assets/sounds/spark.ogg b/core/assets/sounds/spark.ogg
index ac61a476de..352e98c743 100644
Binary files a/core/assets/sounds/spark.ogg and b/core/assets/sounds/spark.ogg differ
diff --git a/core/assets/sounds/splash.ogg b/core/assets/sounds/splash.ogg
index 4b6e5eec53..59a77836c4 100644
Binary files a/core/assets/sounds/splash.ogg and b/core/assets/sounds/splash.ogg differ
diff --git a/core/assets/sounds/spray.ogg b/core/assets/sounds/spray.ogg
index 7bddeb6685..50a2049596 100644
Binary files a/core/assets/sounds/spray.ogg and b/core/assets/sounds/spray.ogg differ
diff --git a/core/assets/sounds/steam.ogg b/core/assets/sounds/steam.ogg
new file mode 100644
index 0000000000..9b65bac938
Binary files /dev/null and b/core/assets/sounds/steam.ogg differ
diff --git a/core/assets/sounds/swish.ogg b/core/assets/sounds/swish.ogg
new file mode 100644
index 0000000000..4b6e5eec53
Binary files /dev/null and b/core/assets/sounds/swish.ogg differ
diff --git a/core/assets/sounds/techloop.ogg b/core/assets/sounds/techloop.ogg
new file mode 100644
index 0000000000..125ac36718
Binary files /dev/null and b/core/assets/sounds/techloop.ogg differ
diff --git a/core/assets/sounds/tractorbeam.ogg b/core/assets/sounds/tractorbeam.ogg
new file mode 100644
index 0000000000..4c307c4e08
Binary files /dev/null and b/core/assets/sounds/tractorbeam.ogg differ
diff --git a/core/assets/sounds/back.ogg b/core/assets/sounds/ui/back.ogg
similarity index 100%
rename from core/assets/sounds/back.ogg
rename to core/assets/sounds/ui/back.ogg
diff --git a/core/assets/sounds/message.ogg b/core/assets/sounds/ui/message.ogg
similarity index 100%
rename from core/assets/sounds/message.ogg
rename to core/assets/sounds/ui/message.ogg
diff --git a/core/assets/sounds/press.ogg b/core/assets/sounds/ui/press.ogg
similarity index 100%
rename from core/assets/sounds/press.ogg
rename to core/assets/sounds/ui/press.ogg
diff --git a/core/assets/sounds/unlock.ogg b/core/assets/sounds/ui/unlock.ogg
similarity index 100%
rename from core/assets/sounds/unlock.ogg
rename to core/assets/sounds/ui/unlock.ogg
diff --git a/core/assets/sounds/wind.ogg b/core/assets/sounds/wind.ogg
new file mode 100644
index 0000000000..aeabe4802b
Binary files /dev/null and b/core/assets/sounds/wind.ogg differ
diff --git a/core/assets/sounds/wind2.ogg b/core/assets/sounds/wind2.ogg
new file mode 100644
index 0000000000..3900ba35a1
Binary files /dev/null and b/core/assets/sounds/wind2.ogg differ
diff --git a/core/assets/sounds/windhowl.ogg b/core/assets/sounds/windhowl.ogg
new file mode 100644
index 0000000000..de7526a616
Binary files /dev/null and b/core/assets/sounds/windhowl.ogg differ
diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png
index e8845aa072..35011521ca 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 fd8aece5ae..46f844c44a 100644
--- a/core/assets/sprites/fallback/sprites.atlas
+++ b/core/assets/sprites/fallback/sprites.atlas
@@ -67,6 +67,13 @@ block-tetrative-reconstructor-full
orig: 288, 288
offset: 0, 0
index: -1
+tetrative-reconstructor-icon-logic
+ rotate: false
+ xy: 1449, 1385
+ size: 288, 288
+ orig: 288, 288
+ offset: 0, 0
+ index: -1
cracks-9-0
rotate: false
xy: 1449, 1095
@@ -248,531 +255,531 @@ size: 2048,2048
format: rgba8888
filter: nearest,nearest
repeat: none
-large-logic-display
+interplanetary-accelerator
rotate: false
- xy: 1567, 102
- size: 192, 192
- orig: 192, 192
+ xy: 1445, 1317
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+interplanetary-accelerator-team
+ rotate: false
+ xy: 1445, 1091
+ size: 224, 224
+ orig: 224, 224
offset: 0, 0
index: -1
exponential-reconstructor
rotate: false
- xy: 767, 1071
+ xy: 993, 1317
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
exponential-reconstructor-top
rotate: false
- xy: 993, 1313
+ xy: 993, 1091
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
factory-in-7
rotate: false
- xy: 993, 1087
+ xy: 1219, 1317
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
factory-out-7
rotate: false
- xy: 1219, 1313
+ xy: 1219, 1091
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
circle-shadow
rotate: false
- xy: 1620, 684
+ xy: 1659, 709
size: 201, 201
orig: 201, 201
offset: 0, 0
index: -1
antumbra-outline
rotate: false
- xy: 719, 143
+ xy: 941, 385
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-wreck0
rotate: false
- xy: 941, 385
+ xy: 941, 143
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-wreck1
rotate: false
- xy: 937, 143
+ xy: 993, 627
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-wreck2
rotate: false
- xy: 1667, 1313
+ xy: 1211, 627
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
block-exponential-reconstructor-full
rotate: false
- xy: 1823, 1797
+ xy: 1823, 1801
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+exponential-reconstructor-icon-logic
+ rotate: false
+ xy: 1823, 1801
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+block-interplanetary-accelerator-full
+ rotate: false
+ xy: 1823, 1575
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+interplanetary-accelerator-icon-logic
+ rotate: false
+ xy: 1823, 1575
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
corvus-outline
rotate: false
- xy: 933, 1
+ xy: 501, 41
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-wreck0
rotate: false
- xy: 993, 945
+ xy: 1159, 101
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-wreck1
rotate: false
- xy: 985, 803
+ xy: 717, 1
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-wreck2
rotate: false
- xy: 969, 661
+ xy: 933, 1
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
cracks-6-0
rotate: false
- xy: 1367, 494
+ xy: 1807, 107
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-1
rotate: false
- xy: 1561, 490
+ xy: 1809, 515
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-2
rotate: false
- xy: 1755, 490
- size: 192, 192
- orig: 192, 192
- offset: 0, 0
- index: -1
-cracks-6-3
- rotate: false
- xy: 1823, 693
- size: 192, 192
- orig: 192, 192
- offset: 0, 0
- index: -1
-cracks-6-4
- rotate: false
- xy: 1373, 296
- size: 192, 192
- orig: 192, 192
- offset: 0, 0
- index: -1
-cracks-6-5
- rotate: false
- xy: 1567, 296
- size: 192, 192
- orig: 192, 192
- offset: 0, 0
- index: -1
-cracks-6-6
- rotate: false
- xy: 1761, 296
- size: 192, 192
- orig: 192, 192
- offset: 0, 0
- index: -1
-cracks-6-7
- rotate: false
- xy: 1373, 102
+ xy: 1809, 321
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-7-0
rotate: false
- xy: 1823, 1571
+ xy: 807, 1543
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-1
rotate: false
- xy: 807, 1539
+ xy: 1033, 1543
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-2
rotate: false
- xy: 1033, 1539
+ xy: 541, 1301
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-3
rotate: false
- xy: 541, 1297
+ xy: 541, 1075
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-4
rotate: false
- xy: 541, 1071
+ xy: 1259, 1543
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-5
rotate: false
- xy: 1259, 1539
+ xy: 1485, 1559
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-6
rotate: false
- xy: 1485, 1555
+ xy: 767, 1301
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-7
rotate: false
- xy: 767, 1297
+ xy: 767, 1075
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-8-0
rotate: false
- xy: 565, 1765
+ xy: 565, 1769
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
cracks-8-1
rotate: false
- xy: 1, 559
+ xy: 1, 563
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
cracks-8-2
rotate: false
- xy: 283, 1297
+ xy: 283, 1301
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
cracks-8-3
rotate: false
- xy: 823, 1765
+ xy: 823, 1769
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
cracks-8-4
rotate: false
- xy: 1, 301
+ xy: 1, 305
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
cracks-8-5
rotate: false
- xy: 283, 1039
+ xy: 283, 1043
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
cracks-8-6
rotate: false
- xy: 1081, 1765
+ xy: 1081, 1769
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
cracks-8-7
rotate: false
- xy: 1, 43
+ xy: 1, 47
size: 256, 256
orig: 256, 256
offset: 0, 0
index: -1
+interplanetary-accelerator-team-crux
+ rotate: false
+ xy: 541, 849
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+interplanetary-accelerator-team-sharded
+ rotate: false
+ xy: 767, 849
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
omura-wreck0
rotate: false
- xy: 1, 1621
+ xy: 1, 1625
size: 280, 400
orig: 280, 400
offset: 0, 0
index: -1
omura-wreck1
rotate: false
- xy: 1, 1219
+ xy: 1, 1223
size: 280, 400
orig: 280, 400
offset: 0, 0
index: -1
omura-wreck2
rotate: false
- xy: 283, 1621
+ xy: 283, 1625
size: 280, 400
orig: 280, 400
offset: 0, 0
index: -1
quad-outline
rotate: false
- xy: 541, 849
+ xy: 1437, 869
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-wreck0
rotate: false
- xy: 763, 849
+ xy: 525, 627
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-wreck1
rotate: false
- xy: 525, 627
+ xy: 747, 627
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-wreck2
rotate: false
- xy: 747, 627
+ xy: 501, 405
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
reign-outline
rotate: false
- xy: 1661, 1171
+ xy: 1377, 301
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
reign-wreck0
rotate: false
- xy: 1441, 1033
+ xy: 1375, 159
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
reign-wreck1
rotate: false
- xy: 1657, 1029
+ xy: 1375, 17
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
reign-wreck2
rotate: false
- xy: 1219, 949
+ xy: 1593, 443
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
sei-outline
rotate: false
- xy: 283, 797
+ xy: 283, 801
size: 240, 240
orig: 240, 240
offset: 0, 0
index: -1
sei-wreck0
rotate: false
- xy: 259, 555
+ xy: 259, 559
size: 240, 240
orig: 240, 240
offset: 0, 0
index: -1
sei-wreck1
rotate: false
- xy: 259, 313
+ xy: 259, 317
size: 240, 240
orig: 240, 240
offset: 0, 0
index: -1
sei-wreck2
rotate: false
- xy: 259, 71
+ xy: 259, 75
size: 240, 240
orig: 240, 240
offset: 0, 0
index: -1
toxopid-cannon-outline
rotate: false
- xy: 1209, 727
+ xy: 1671, 1115
size: 206, 220
orig: 206, 220
offset: 0, 0
index: -1
toxopid-leg-base
rotate: false
- xy: 283, 1555
+ xy: 283, 1559
size: 270, 64
orig: 270, 64
offset: 0, 0
index: -1
unit-antumbra-full
rotate: false
- xy: 1155, 143
+ xy: 1159, 385
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
unit-corvus-full
rotate: false
- xy: 1435, 891
+ xy: 1593, 301
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
unit-omura-full
rotate: false
- xy: 1, 817
+ xy: 1, 821
size: 280, 400
orig: 280, 400
offset: 0, 0
index: -1
unit-quad-full
rotate: false
- xy: 501, 405
+ xy: 501, 183
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
unit-reign-full
rotate: false
- xy: 1651, 887
+ xy: 1591, 159
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
unit-sei-full
rotate: false
- xy: 565, 1523
+ xy: 565, 1527
size: 240, 240
orig: 240, 240
offset: 0, 0
index: -1
circle
rotate: false
- xy: 1417, 688
+ xy: 1671, 912
size: 201, 201
orig: 201, 201
offset: 0, 0
index: -1
antumbra
rotate: false
- xy: 501, 163
+ xy: 723, 385
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-cell
rotate: false
- xy: 723, 385
+ xy: 723, 143
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
corvus
rotate: false
- xy: 501, 21
+ xy: 1429, 727
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-cell
rotate: false
- xy: 717, 1
+ xy: 1159, 243
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-weapon-heat
rotate: false
- xy: 1149, 1
+ xy: 1429, 585
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
quad
rotate: false
- xy: 1219, 1091
+ xy: 993, 869
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-cell
rotate: false
- xy: 1445, 1317
+ xy: 1215, 869
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
reign
rotate: false
- xy: 1445, 1175
+ xy: 1377, 443
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
sei
rotate: false
- xy: 1339, 1781
+ xy: 1339, 1785
size: 240, 240
orig: 240, 240
offset: 0, 0
index: -1
sei-cell
rotate: false
- xy: 1581, 1781
+ xy: 1581, 1785
size: 240, 240
orig: 240, 240
offset: 0, 0
index: -1
toxopid-cannon
rotate: false
- xy: 1159, 439
+ xy: 1671, 1337
size: 206, 220
orig: 206, 220
offset: 0, 0
index: -1
-omura-cannon
- rotate: false
- xy: 1761, 17
- size: 192, 277
- orig: 192, 277
- offset: 0, 0
- index: -1
sprites3.png
size: 2048,2048
@@ -781,2128 +788,2254 @@ filter: nearest,nearest
repeat: none
launch-pad
rotate: false
- xy: 813, 99
+ xy: 945, 530
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+launch-pad-icon-logic
+ rotate: false
+ xy: 945, 530
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
launch-pad-large
rotate: false
- xy: 725, 1041
+ xy: 1615, 898
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
launch-pad-light
rotate: false
- xy: 813, 1
+ xy: 847, 432
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
force-projector
rotate: false
- xy: 1527, 1221
+ xy: 651, 356
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+force-projector-icon-logic
+ rotate: false
+ xy: 651, 356
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
force-projector-top
rotate: false
- xy: 1625, 1193
+ xy: 651, 258
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-dome
rotate: false
- xy: 1589, 1095
+ xy: 1043, 216
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+overdrive-dome-icon-logic
+ rotate: false
+ xy: 1043, 216
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-dome-top
rotate: false
- xy: 1687, 1095
+ xy: 1043, 118
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-loader
rotate: false
- xy: 1267, 529
+ xy: 1571, 800
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-loader-icon-logic
+ rotate: false
+ xy: 1571, 800
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-unloader
rotate: false
- xy: 1231, 235
+ xy: 1865, 710
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-unloader-icon-logic
+ rotate: false
+ xy: 1865, 710
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
mass-driver-base
rotate: false
- xy: 1009, 5
+ xy: 945, 236
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-conveyor
rotate: false
- xy: 1785, 1095
+ xy: 1043, 20
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-conveyor-edge
rotate: false
- xy: 1589, 997
+ xy: 1141, 506
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-conveyor-top
rotate: false
- xy: 1687, 997
+ xy: 1239, 506
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-top
rotate: false
- xy: 1687, 997
+ xy: 1239, 506
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router
rotate: false
- xy: 1785, 997
+ xy: 1141, 408
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-edge
rotate: false
- xy: 1883, 1095
+ xy: 1337, 506
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-over
rotate: false
- xy: 1883, 997
+ xy: 1141, 310
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
blast-drill
rotate: false
- xy: 335, 1233
+ xy: 1899, 1526
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-drill-rim
rotate: false
- xy: 335, 1103
+ xy: 163, 541
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-drill-rotator
rotate: false
- xy: 465, 1233
+ xy: 163, 411
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-drill-top
rotate: false
- xy: 335, 973
+ xy: 163, 281
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
laser-drill
rotate: false
- xy: 1491, 1025
+ xy: 749, 244
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
laser-drill-rim
rotate: false
- xy: 813, 295
+ xy: 749, 146
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
laser-drill-rotator
rotate: false
- xy: 911, 295
+ xy: 749, 48
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
laser-drill-top
rotate: false
- xy: 813, 197
+ xy: 847, 530
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor
rotate: false
- xy: 1205, 137
+ xy: 945, 40
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-liquid
rotate: false
- xy: 1205, 39
+ xy: 1043, 510
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-rotator
rotate: false
- xy: 1303, 137
+ xy: 1043, 412
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-top
rotate: false
- xy: 1303, 39
+ xy: 1043, 314
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
place-arrow
rotate: false
- xy: 1919, 1193
+ xy: 1239, 408
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
liquid-tank-bottom
rotate: false
- xy: 911, 197
+ xy: 847, 334
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
liquid-tank-liquid
rotate: false
- xy: 911, 99
+ xy: 945, 432
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
liquid-tank-top
rotate: false
- xy: 911, 1
+ xy: 847, 236
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thermal-pump
rotate: false
- xy: 1365, 847
+ xy: 1435, 408
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+thermal-pump-icon-logic
+ rotate: false
+ xy: 1435, 408
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
hyper-processor
rotate: false
- xy: 1491, 1123
+ xy: 749, 626
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
+hyper-processor-icon-logic
+ rotate: false
+ xy: 749, 626
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+large-logic-display
+ rotate: false
+ xy: 389, 1852
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
+large-logic-display-icon-logic
+ rotate: false
+ xy: 389, 1852
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
logic-display
rotate: false
- xy: 1009, 201
+ xy: 945, 334
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+logic-display-icon-logic
+ rotate: false
+ xy: 945, 334
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
battery-large
rotate: false
- xy: 1169, 921
+ xy: 885, 824
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+battery-large-icon-logic
+ rotate: false
+ xy: 885, 824
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
battery-large-top
rotate: false
- xy: 1169, 823
+ xy: 983, 824
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
differential-generator
rotate: false
- xy: 1445, 1319
+ xy: 553, 432
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+differential-generator-icon-logic
+ rotate: false
+ xy: 553, 432
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
differential-generator-liquid
rotate: false
- xy: 1543, 1319
+ xy: 553, 334
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
differential-generator-top
rotate: false
- xy: 1641, 1389
+ xy: 553, 236
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
impact-reactor
rotate: false
- xy: 595, 583
+ xy: 1485, 1158
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-bottom
rotate: false
- xy: 595, 453
+ xy: 1485, 1028
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-light
rotate: false
- xy: 585, 323
+ xy: 1225, 898
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-0
rotate: false
- xy: 585, 193
+ xy: 1355, 898
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-1
rotate: false
- xy: 585, 63
+ xy: 1485, 898
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-2
rotate: false
- xy: 725, 1301
+ xy: 1615, 1158
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-3
rotate: false
- xy: 725, 1171
+ xy: 1615, 1028
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
solar-panel-large
rotate: false
- xy: 1883, 899
+ xy: 1337, 310
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+solar-panel-large-icon-logic
+ rotate: false
+ xy: 1337, 310
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-reactor
rotate: false
- xy: 1365, 749
+ xy: 1239, 114
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+thorium-reactor-icon-logic
+ rotate: false
+ xy: 1239, 114
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-reactor-lights
rotate: false
- xy: 1365, 651
+ xy: 1337, 212
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-reactor-top
rotate: false
- xy: 1365, 553
+ xy: 1435, 310
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
alloy-smelter
rotate: false
- xy: 1071, 725
+ xy: 1847, 808
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+alloy-smelter-icon-logic
+ rotate: false
+ xy: 1847, 808
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
alloy-smelter-top
rotate: false
- xy: 1071, 627
+ xy: 1945, 808
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-forge
rotate: false
- xy: 1267, 725
+ xy: 1081, 706
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-forge-icon-logic
+ rotate: false
+ xy: 1081, 706
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
disassembler
rotate: false
- xy: 1739, 1389
+ xy: 553, 138
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+disassembler-icon-logic
+ rotate: false
+ xy: 553, 138
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
disassembler-liquid
rotate: false
- xy: 1837, 1389
+ xy: 553, 40
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
disassembler-spinner
rotate: false
- xy: 1641, 1291
+ xy: 651, 650
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
multi-press
rotate: false
- xy: 1107, 137
+ xy: 945, 138
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+multi-press-icon-logic
+ rotate: false
+ xy: 945, 138
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
silicon-crucible
rotate: false
- xy: 1687, 899
+ xy: 1141, 114
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+silicon-crucible-icon-logic
+ rotate: false
+ xy: 1141, 114
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
silicon-crucible-top
rotate: false
- xy: 1785, 899
+ xy: 1239, 212
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
core-foundation
rotate: false
- xy: 465, 583
+ xy: 293, 151
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-foundation-team
rotate: false
- xy: 335, 453
+ xy: 293, 21
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-nucleus
rotate: false
- xy: 1, 11
+ xy: 1, 273
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-nucleus-team
rotate: false
- xy: 1421, 1887
+ xy: 1, 111
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-shard
rotate: false
- xy: 1331, 1141
+ xy: 1865, 612
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
core-shard-team
rotate: false
- xy: 1295, 1039
+ xy: 885, 628
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
vault
rotate: false
- xy: 1463, 535
+ xy: 1533, 310
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
vault-team
rotate: false
- xy: 1561, 801
+ xy: 1435, 114
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-3
rotate: false
- xy: 1169, 725
+ xy: 885, 726
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-4
rotate: false
- xy: 465, 1103
+ xy: 163, 151
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
foreshadow-heat
rotate: false
- xy: 595, 713
+ xy: 1355, 1028
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
meltdown-heat
rotate: false
- xy: 725, 781
+ xy: 423, 411
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
ripple-heat
rotate: false
- xy: 1401, 39
+ xy: 1141, 212
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
tsunami-liquid
rotate: false
- xy: 1463, 731
+ xy: 1337, 114
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
tsunami-top
rotate: false
- xy: 1463, 633
+ xy: 1435, 212
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
additive-reconstructor
rotate: false
- xy: 1099, 1019
+ xy: 1949, 1298
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
additive-reconstructor-top
rotate: false
- xy: 1071, 921
+ xy: 1949, 1102
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
air-factory
rotate: false
- xy: 1071, 823
+ xy: 1949, 1004
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
factory-in-3
rotate: false
- xy: 1739, 1291
+ xy: 553, 650
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
factory-in-5
rotate: false
- xy: 163, 170
+ xy: 1747, 1722
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
factory-out-3
rotate: false
- xy: 1837, 1291
+ xy: 651, 552
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
factory-out-5
rotate: false
- xy: 163, 8
+ xy: 1251, 1560
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
factory-top-3
rotate: false
- xy: 1429, 1221
+ xy: 651, 454
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
ground-factory
rotate: false
- xy: 1821, 1193
+ xy: 651, 62
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
multiplicative-reconstructor
rotate: false
- xy: 389, 1745
+ xy: 1413, 1560
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
multiplicative-reconstructor-top
rotate: false
- xy: 551, 1745
+ xy: 1575, 1560
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
naval-factory
rotate: false
- xy: 1107, 39
+ xy: 847, 40
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-gigantic
rotate: false
- xy: 985, 1313
+ xy: 1853, 1396
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+scrap-wall-gigantic-icon-logic
+ rotate: false
+ xy: 1853, 1396
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scrap-wall-huge2
rotate: false
- xy: 1491, 927
+ xy: 1337, 408
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-huge3
rotate: false
- xy: 1589, 899
+ xy: 1533, 506
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thruster
rotate: false
- xy: 985, 1183
+ xy: 335, 900
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
circle-end
rotate: false
- xy: 969, 852
+ xy: 1745, 1133
size: 100, 199
orig: 100, 199
offset: 0, 0
index: -1
large-bomb
rotate: false
- xy: 1245, 1341
+ xy: 433, 700
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
large-bomb-back
rotate: false
- xy: 855, 495
+ xy: 579, 748
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
-laser-end
+additive-reconstructor-icon-logic
rotate: false
- xy: 1945, 1543
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-minelaser-end
- rotate: false
- xy: 1951, 325
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-parallax-laser-end
- rotate: false
- xy: 1609, 303
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-arkyid-foot
- rotate: false
- xy: 1757, 319
- size: 70, 70
- orig: 70, 70
- offset: 0, 0
- index: -1
-arkyid-joint-base
- rotate: false
- xy: 1829, 319
- size: 70, 70
- orig: 70, 70
- offset: 0, 0
- index: -1
-arkyid-leg-base
- rotate: false
- xy: 725, 455
- size: 104, 64
- orig: 104, 64
- offset: 0, 0
- index: -1
-arkyid-outline
- rotate: false
- xy: 1067, 1443
- size: 128, 128
- orig: 128, 128
- offset: 0, 0
- index: -1
-arkyid-wreck0
- rotate: false
- xy: 1197, 1443
- size: 128, 128
- orig: 128, 128
- offset: 0, 0
- index: -1
-arkyid-wreck1
- rotate: false
- xy: 357, 1363
- size: 128, 128
- orig: 128, 128
- offset: 0, 0
- index: -1
-arkyid-wreck2
- rotate: false
- xy: 487, 1363
- size: 128, 128
- orig: 128, 128
- offset: 0, 0
- index: -1
-artillery-mount-outline
- rotate: false
- xy: 1755, 247
- size: 70, 70
- orig: 70, 70
- offset: 0, 0
- index: -1
-atrax-outline
- rotate: false
- xy: 1519, 245
- size: 88, 64
- orig: 88, 64
- offset: 0, 0
- index: -1
-atrax-wreck0
- rotate: false
- xy: 1499, 179
- size: 88, 64
- orig: 88, 64
- offset: 0, 0
- index: -1
-atrax-wreck1
- rotate: false
- xy: 1499, 113
- size: 88, 64
- orig: 88, 64
- offset: 0, 0
- index: -1
-atrax-wreck2
- rotate: false
- xy: 1499, 47
- size: 88, 64
- orig: 88, 64
- offset: 0, 0
- index: -1
-beam-weapon-outline
- rotate: false
- xy: 1827, 555
- size: 80, 80
- orig: 80, 80
+ xy: 1949, 1200
+ size: 96, 96
+ orig: 96, 96
offset: 0, 0
index: -1
block-additive-reconstructor-full
rotate: false
- xy: 1169, 627
+ xy: 1949, 1200
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+air-factory-icon-logic
+ rotate: false
+ xy: 1949, 906
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-air-factory-full
rotate: false
- xy: 1197, 1019
+ xy: 1949, 906
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
+arkyid-leg-base
+ rotate: false
+ xy: 1723, 1334
+ size: 104, 64
+ orig: 104, 64
+ offset: 0, 0
+ index: -1
+arkyid-outline
+ rotate: false
+ xy: 1333, 1288
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+arkyid-wreck0
+ rotate: false
+ xy: 1463, 1288
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+arkyid-wreck1
+ rotate: false
+ xy: 1593, 1288
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+arkyid-wreck2
+ rotate: false
+ xy: 1909, 1656
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+atrax-outline
+ rotate: false
+ xy: 1631, 211
+ size: 88, 64
+ orig: 88, 64
+ offset: 0, 0
+ index: -1
+atrax-wreck0
+ rotate: false
+ xy: 1631, 145
+ size: 88, 64
+ orig: 88, 64
+ offset: 0, 0
+ index: -1
+atrax-wreck1
+ rotate: false
+ xy: 1631, 79
+ size: 88, 64
+ orig: 88, 64
+ offset: 0, 0
+ index: -1
+atrax-wreck2
+ rotate: false
+ xy: 1621, 13
+ size: 88, 64
+ orig: 88, 64
+ offset: 0, 0
+ index: -1
+beam-weapon-outline
+ rotate: false
+ xy: 1963, 586
+ size: 80, 80
+ orig: 80, 80
+ offset: 0, 0
+ index: -1
+blast-drill-icon-logic
+ rotate: false
+ xy: 173, 671
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
block-blast-drill-full
rotate: false
- xy: 335, 843
+ xy: 173, 671
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-core-foundation-full
rotate: false
- xy: 465, 973
+ xy: 163, 21
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+core-foundation-icon-logic
+ rotate: false
+ xy: 163, 21
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-core-nucleus-full
rotate: false
- xy: 1, 335
+ xy: 1, 597
+ size: 160, 160
+ orig: 160, 160
+ offset: 0, 0
+ index: -1
+core-nucleus-icon-logic
+ rotate: false
+ xy: 1, 597
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
block-core-shard-full
rotate: false
- xy: 1267, 921
+ xy: 983, 726
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+core-shard-icon-logic
+ rotate: false
+ xy: 983, 726
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-cyclone-full
rotate: false
- xy: 1267, 823
+ xy: 1081, 804
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+cyclone-icon-logic
+ rotate: false
+ xy: 1081, 804
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-foreshadow-full
rotate: false
- xy: 335, 713
+ xy: 303, 671
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+foreshadow-icon-logic
+ rotate: false
+ xy: 303, 671
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-fuse-full
rotate: false
- xy: 1267, 627
+ xy: 1179, 800
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+fuse-icon-logic
+ rotate: false
+ xy: 1179, 800
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-ground-factory-full
rotate: false
- xy: 1035, 397
+ xy: 1277, 800
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+ground-factory-icon-logic
+ rotate: false
+ xy: 1277, 800
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-impact-reactor-full
rotate: false
- xy: 465, 843
+ xy: 293, 541
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+impact-reactor-icon-logic
+ rotate: false
+ xy: 293, 541
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-laser-drill-full
rotate: false
- xy: 1071, 529
+ xy: 1375, 800
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+laser-drill-icon-logic
+ rotate: false
+ xy: 1375, 800
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-liquid-tank-full
rotate: false
- xy: 1169, 529
+ xy: 1473, 800
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+liquid-tank-icon-logic
+ rotate: false
+ xy: 1473, 800
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-mass-driver-full
rotate: false
- xy: 1133, 431
+ xy: 1179, 702
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+mass-driver-icon-logic
+ rotate: false
+ xy: 1179, 702
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-meltdown-full
rotate: false
- xy: 335, 583
+ xy: 293, 411
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+meltdown-icon-logic
+ rotate: false
+ xy: 293, 411
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-multiplicative-reconstructor-full
rotate: false
- xy: 1, 173
+ xy: 1, 435
+ size: 160, 160
+ orig: 160, 160
+ offset: 0, 0
+ index: -1
+multiplicative-reconstructor-icon-logic
+ rotate: false
+ xy: 1, 435
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
block-naval-factory-full
rotate: false
- xy: 1231, 431
+ xy: 1277, 702
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+naval-factory-icon-logic
+ rotate: false
+ xy: 1277, 702
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-oil-extractor-full
rotate: false
- xy: 1329, 431
+ xy: 1375, 702
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+oil-extractor-icon-logic
+ rotate: false
+ xy: 1375, 702
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-payload-conveyor-full
rotate: false
- xy: 1133, 333
+ xy: 1473, 702
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-conveyor-icon
rotate: false
- xy: 1133, 333
+ xy: 1473, 702
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+payload-conveyor-icon-logic
+ rotate: false
+ xy: 1473, 702
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-payload-router-full
rotate: false
- xy: 1231, 333
+ xy: 1571, 702
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-icon
rotate: false
- xy: 1231, 333
+ xy: 1571, 702
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+payload-router-icon-logic
+ rotate: false
+ xy: 1571, 702
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-ripple-full
rotate: false
- xy: 1329, 333
+ xy: 1669, 789
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+ripple-icon-logic
+ rotate: false
+ xy: 1669, 789
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-scrap-wall-huge-full
rotate: false
- xy: 1035, 299
+ xy: 1669, 691
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-huge1
rotate: false
- xy: 1035, 299
+ xy: 1669, 691
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+scrap-wall-huge-icon-logic
+ rotate: false
+ xy: 1669, 691
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-spectre-full
rotate: false
- xy: 465, 713
+ xy: 293, 281
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+spectre-icon-logic
+ rotate: false
+ xy: 293, 281
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-tsunami-full
rotate: false
- xy: 1133, 235
+ xy: 1767, 710
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+tsunami-icon-logic
+ rotate: false
+ xy: 1767, 710
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-vault-full
rotate: false
- xy: 1329, 235
+ xy: 1767, 612
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+vault-icon-logic
+ rotate: false
+ xy: 1767, 612
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
bryde-outline
rotate: false
- xy: 675, 1573
+ xy: 551, 1160
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-wreck0
rotate: false
- xy: 817, 1573
+ xy: 693, 1160
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-wreck1
rotate: false
- xy: 959, 1573
+ xy: 907, 1332
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-wreck2
rotate: false
- xy: 1101, 1573
+ xy: 1049, 1312
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
core-foundation-team-crux
rotate: false
- xy: 465, 453
+ xy: 835, 1172
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-foundation-team-sharded
rotate: false
- xy: 325, 323
+ xy: 965, 1182
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-nucleus-team-crux
rotate: false
- xy: 1583, 1887
+ xy: 927, 1600
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-nucleus-team-sharded
rotate: false
- xy: 1745, 1887
+ xy: 1099, 1742
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-shard-team-crux
rotate: false
- xy: 1393, 1043
+ xy: 983, 628
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
core-shard-team-sharded
rotate: false
- xy: 1357, 1515
+ xy: 1081, 608
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
corvus-foot
rotate: false
- xy: 1427, 289
+ xy: 1631, 501
size: 90, 90
orig: 90, 90
offset: 0, 0
index: -1
-corvus-joint-base
- rotate: false
- xy: 1827, 247
- size: 70, 70
- orig: 70, 70
- offset: 0, 0
- index: -1
-toxopid-joint-base
- rotate: false
- xy: 1827, 247
- size: 70, 70
- orig: 70, 70
- offset: 0, 0
- index: -1
cracks-3-0
rotate: false
- xy: 1455, 1515
+ xy: 1179, 604
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-1
rotate: false
- xy: 1553, 1515
+ xy: 1277, 604
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-2
rotate: false
- xy: 1651, 1487
+ xy: 1375, 604
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-3
rotate: false
- xy: 1749, 1487
+ xy: 1473, 604
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-4
rotate: false
- xy: 1847, 1487
+ xy: 1571, 604
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-5
rotate: false
- xy: 1347, 1417
+ xy: 1669, 593
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-6
rotate: false
- xy: 1347, 1319
+ xy: 1767, 514
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-7
rotate: false
- xy: 1445, 1417
+ xy: 1865, 514
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-4-0
rotate: false
- xy: 325, 193
+ xy: 1095, 1162
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-1
rotate: false
- xy: 455, 323
+ xy: 965, 1052
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-2
rotate: false
- xy: 325, 63
+ xy: 835, 1042
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-3
rotate: false
- xy: 455, 193
+ xy: 1095, 1032
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-4
rotate: false
- xy: 455, 63
+ xy: 965, 922
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-5
rotate: false
- xy: 595, 1233
+ xy: 1095, 902
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-6
rotate: false
- xy: 595, 1103
+ xy: 1225, 1158
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-7
rotate: false
- xy: 595, 973
+ xy: 1225, 1028
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-5-0
rotate: false
- xy: 195, 1466
+ xy: 1271, 1884
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-1
rotate: false
- xy: 173, 1304
+ xy: 1433, 1884
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-2
rotate: false
- xy: 173, 1142
+ xy: 1595, 1884
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-3
rotate: false
- xy: 173, 980
+ xy: 1757, 1884
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-4
rotate: false
- xy: 173, 818
+ xy: 1089, 1580
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-5
rotate: false
- xy: 173, 656
+ xy: 1261, 1722
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-6
rotate: false
- xy: 173, 494
+ xy: 1423, 1722
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-7
rotate: false
- xy: 163, 332
+ xy: 1585, 1722
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
+cracks-6-3
+ rotate: false
+ xy: 1, 1852
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
+cracks-6-4
+ rotate: false
+ xy: 1, 1658
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
+cracks-6-5
+ rotate: false
+ xy: 195, 1852
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
+cracks-6-6
+ rotate: false
+ xy: 1, 1464
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
+cracks-6-7
+ rotate: false
+ xy: 195, 1658
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
cyclone
rotate: false
- xy: 1543, 1417
+ xy: 553, 530
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
foreshadow
rotate: false
- xy: 595, 843
+ xy: 1355, 1158
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
fortress-leg
rotate: false
- xy: 325, 1
+ xy: 1963, 524
size: 80, 60
orig: 80, 60
offset: 0, 0
index: -1
fortress-outline
rotate: false
- xy: 969, 606
+ xy: 1745, 969
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-wreck0
rotate: false
- xy: 1357, 1613
+ xy: 1745, 887
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-wreck1
rotate: false
- xy: 1459, 1613
+ xy: 579, 850
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-wreck2
rotate: false
- xy: 1561, 1613
+ xy: 681, 850
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fuse
rotate: false
- xy: 1723, 1193
+ xy: 651, 160
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
-gamma-outline
- rotate: false
- xy: 1967, 105
- size: 68, 68
- orig: 68, 68
- offset: 0, 0
- index: -1
-gamma-wreck0
- rotate: false
- xy: 1967, 35
- size: 68, 68
- orig: 68, 68
- offset: 0, 0
- index: -1
-horizon-outline
- rotate: false
- xy: 1837, 1687
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-horizon-wreck0
- rotate: false
- xy: 1911, 1691
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-horizon-wreck1
- rotate: false
- xy: 1867, 1613
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-horizon-wreck2
- rotate: false
- xy: 1941, 1617
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-large-bullet-mount-outline
- rotate: false
- xy: 1679, 55
- size: 70, 97
- orig: 70, 97
- offset: 0, 0
- index: -1
large-laser-mount-outline
rotate: false
- xy: 715, 65
- size: 96, 192
- orig: 96, 192
- offset: 0, 0
- index: -1
-large-purple-mount-outline
- rotate: false
- xy: 1823, 148
- size: 70, 97
- orig: 70, 97
+ xy: 749, 342
+ size: 96, 140
+ orig: 96, 140
offset: 0, 0
index: -1
mass-driver
rotate: false
- xy: 1009, 103
+ xy: 847, 138
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
mega-outline
rotate: false
- xy: 1245, 1239
+ xy: 783, 724
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-wreck0
rotate: false
- xy: 1229, 1137
+ xy: 1847, 1294
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-wreck1
rotate: false
- xy: 831, 393
+ xy: 1847, 1192
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-wreck2
rotate: false
- xy: 933, 393
+ xy: 1847, 1090
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
meltdown
rotate: false
- xy: 725, 911
+ xy: 423, 541
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
minke-outline
rotate: false
- xy: 1589, 142
+ xy: 1813, 411
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-wreck0
rotate: false
- xy: 1589, 39
+ xy: 1903, 411
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-wreck1
rotate: false
- xy: 1935, 1384
+ xy: 1721, 306
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-wreck2
rotate: false
- xy: 1757, 719
+ xy: 1721, 203
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
omura-cannon-outline
rotate: false
- xy: 195, 1770
+ xy: 389, 1573
size: 192, 277
orig: 192, 277
offset: 0, 0
index: -1
quasar-leg
rotate: false
- xy: 1937, 735
+ xy: 1901, 247
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-outline
rotate: false
- xy: 1705, 481
+ xy: 1896, 165
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-wreck0
rotate: false
- xy: 1705, 399
+ xy: 1893, 83
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-wreck1
rotate: false
- xy: 1787, 473
+ xy: 1885, 1
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-wreck2
rotate: false
- xy: 1869, 473
+ xy: 1967, 1
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
reign-leg
rotate: false
- xy: 357, 1493
+ xy: 1061, 1454
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
reign-weapon-outline
rotate: false
- xy: 1742, 579
+ xy: 1963, 668
size: 83, 138
orig: 83, 138
offset: 0, 0
index: -1
ripple
rotate: false
- xy: 1401, 137
+ xy: 1435, 506
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
-risso-outline
- rotate: false
- xy: 1823, 68
- size: 70, 78
- orig: 70, 78
- offset: 0, 0
- index: -1
-risso-wreck0
- rotate: false
- xy: 1895, 167
- size: 70, 78
- orig: 70, 78
- offset: 0, 0
- index: -1
-risso-wreck1
- rotate: false
- xy: 1895, 87
- size: 70, 78
- orig: 70, 78
- offset: 0, 0
- index: -1
-risso-wreck2
- rotate: false
- xy: 1895, 7
- size: 70, 78
- orig: 70, 78
- offset: 0, 0
- index: -1
scepter-leg
rotate: false
- xy: 855, 1183
+ xy: 1723, 1400
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
vela-leg
rotate: false
- xy: 855, 1183
+ xy: 1723, 1400
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scepter-outline
rotate: false
- xy: 195, 1628
+ xy: 1, 1043
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-wreck0
rotate: false
- xy: 389, 1907
+ xy: 195, 1237
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-wreck1
rotate: false
- xy: 1, 1207
+ xy: 389, 1431
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-wreck2
rotate: false
- xy: 561, 1907
+ xy: 583, 1762
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
-sei-launcher-outline
- rotate: false
- xy: 1869, 391
- size: 80, 80
- orig: 80, 80
- offset: 0, 0
- index: -1
spectre
rotate: false
- xy: 855, 1053
+ xy: 335, 1030
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
spiroct-outline
rotate: false
- xy: 1757, 822
+ xy: 1333, 37
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-wreck0
rotate: false
- xy: 1561, 549
+ xy: 1429, 37
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-wreck1
rotate: false
- xy: 1853, 822
+ xy: 1525, 37
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-wreck2
rotate: false
- xy: 1427, 458
+ xy: 335, 1160
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
toxopid-foot
rotate: false
- xy: 1523, 443
+ xy: 1631, 409
size: 90, 90
orig: 90, 90
offset: 0, 0
index: -1
toxopid-leg
rotate: false
- xy: 1685, 1687
+ xy: 1, 37
size: 150, 72
orig: 150, 72
offset: 0, 0
index: -1
toxopid-outline
rotate: false
- xy: 875, 1715
+ xy: 173, 993
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-wreck0
rotate: false
- xy: 1037, 1715
+ xy: 173, 801
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-wreck1
rotate: false
- xy: 1199, 1715
+ xy: 389, 1239
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-wreck2
rotate: false
- xy: 1361, 1695
+ xy: 583, 1428
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
tsunami
rotate: false
- xy: 1463, 829
+ xy: 1533, 408
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
unit-arkyid-full
rotate: false
- xy: 1115, 1313
+ xy: 465, 1030
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
unit-atrax-full
rotate: false
- xy: 1935, 1318
+ xy: 1721, 137
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
unit-bryde-full
rotate: false
- xy: 665, 1431
+ xy: 1191, 1292
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
unit-fortress-full
rotate: false
- xy: 1115, 1117
+ xy: 1847, 1008
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
-unit-horizon-full
- rotate: false
- xy: 1683, 325
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
unit-mega-full
rotate: false
- xy: 957, 495
+ xy: 1847, 906
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
unit-minke-full
rotate: false
- xy: 1847, 719
+ xy: 1811, 308
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
-unit-quasar-full
- rotate: false
- xy: 1951, 473
- size: 80, 80
- orig: 80, 80
- offset: 0, 0
- index: -1
-unit-risso-full
- rotate: false
- xy: 1967, 245
- size: 70, 78
- orig: 70, 78
- offset: 0, 0
- index: -1
unit-scepter-full
rotate: false
- xy: 1, 1065
+ xy: 755, 1904
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
unit-spiroct-full
rotate: false
- xy: 1427, 381
+ xy: 431, 1162
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
unit-toxopid-full
rotate: false
- xy: 1523, 1695
+ xy: 745, 1428
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
unit-vela-full
rotate: false
- xy: 733, 1907
+ xy: 1, 901
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
unit-zenith-full
rotate: false
- xy: 1243, 1601
+ xy: 595, 1046
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
vault-team-crux
rotate: false
- xy: 1561, 703
+ xy: 1533, 212
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
vault-team-sharded
rotate: false
- xy: 1659, 801
+ xy: 1533, 114
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
vela-outline
rotate: false
- xy: 1, 781
+ xy: 927, 1904
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-wreck0
rotate: false
- xy: 1, 639
+ xy: 755, 1620
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-wreck1
rotate: false
- xy: 1249, 1907
+ xy: 927, 1762
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-wreck2
rotate: false
- xy: 1, 497
+ xy: 1099, 1904
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
zenith-outline
rotate: false
- xy: 1115, 1199
+ xy: 595, 932
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-wreck0
rotate: false
- xy: 855, 825
+ xy: 709, 932
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-wreck1
rotate: false
- xy: 855, 711
+ xy: 823, 928
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-wreck2
rotate: false
- xy: 855, 597
+ xy: 465, 802
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
arkyid
rotate: false
- xy: 807, 1443
+ xy: 1919, 1916
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
arkyid-cell
rotate: false
- xy: 937, 1443
+ xy: 1919, 1786
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
atrax
rotate: false
- xy: 1523, 377
+ xy: 1631, 343
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
atrax-cell
rotate: false
- xy: 1519, 311
+ xy: 1631, 277
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
bryde
rotate: false
- xy: 1907, 1907
+ xy: 1369, 1418
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-cell
rotate: false
- xy: 1907, 1765
+ xy: 1511, 1418
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
corvus-base
rotate: false
- xy: 1685, 1761
+ xy: 907, 1474
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
fortress
rotate: false
- xy: 969, 770
+ xy: 335, 818
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-cell
rotate: false
- xy: 969, 688
+ xy: 1745, 1051
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
-gamma
- rotate: false
- xy: 1967, 175
- size: 68, 68
- orig: 68, 68
- offset: 0, 0
- index: -1
-horizon
- rotate: false
- xy: 1347, 1245
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
-horizon-cell
- rotate: false
- xy: 1951, 399
- size: 72, 72
- orig: 72, 72
- offset: 0, 0
- index: -1
mega
rotate: false
- xy: 1663, 1585
+ xy: 681, 748
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-cell
rotate: false
- xy: 1765, 1585
+ xy: 783, 826
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
minke
rotate: false
- xy: 1615, 446
+ xy: 1723, 411
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-cell
rotate: false
- xy: 725, 651
+ xy: 423, 281
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
-omura-cannon-heat
- rotate: false
- xy: 1, 1770
- size: 192, 277
- orig: 192, 277
- offset: 0, 0
- index: -1
quasar
rotate: false
- xy: 1909, 637
+ xy: 1721, 55
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-base
rotate: false
- xy: 1909, 555
+ xy: 1811, 86
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-cell
rotate: false
- xy: 1949, 817
+ xy: 1803, 4
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
reign-base
rotate: false
- xy: 367, 1619
+ xy: 551, 1302
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
reign-cell
rotate: false
- xy: 521, 1619
+ xy: 705, 1302
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
-risso
- rotate: false
- xy: 1751, 68
- size: 70, 78
- orig: 70, 78
- offset: 0, 0
- index: -1
risso-cell
rotate: false
- xy: 1393, 945
+ xy: 1239, 310
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scepter
rotate: false
- xy: 1, 1349
+ xy: 583, 1904
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-base
rotate: false
- xy: 725, 521
+ xy: 423, 151
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
vela-base
rotate: false
- xy: 725, 521
+ xy: 423, 151
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scepter-cell
rotate: false
- xy: 855, 1313
+ xy: 423, 21
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
spiroct
rotate: false
- xy: 1561, 626
+ xy: 1141, 37
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-cell
rotate: false
- xy: 1659, 724
+ xy: 1237, 37
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
toxopid
rotate: false
- xy: 713, 1715
+ xy: 1737, 1530
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-cell
rotate: false
- xy: 511, 1493
+ xy: 1215, 1434
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
vela
rotate: false
- xy: 1, 923
+ xy: 583, 1620
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-cell
rotate: false
- xy: 905, 1907
+ xy: 755, 1762
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-weapon-heat
rotate: false
- xy: 1077, 1907
+ xy: 1, 759
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
-artillery-mount
- rotate: false
- xy: 1683, 253
- size: 70, 70
- orig: 70, 70
- offset: 0, 0
- index: -1
beam-weapon
rotate: false
- xy: 1827, 637
+ xy: 1901, 329
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
-large-bullet-mount
- rotate: false
- xy: 1679, 154
- size: 70, 97
- orig: 70, 97
- offset: 0, 0
- index: -1
large-laser-mount
rotate: false
- xy: 715, 259
- size: 96, 192
- orig: 96, 192
+ xy: 749, 484
+ size: 96, 140
+ orig: 96, 140
offset: 0, 0
index: -1
-large-purple-mount
+omura-cannon
rotate: false
- xy: 1751, 148
- size: 70, 97
- orig: 70, 97
+ xy: 1, 1185
+ size: 192, 277
+ orig: 192, 277
offset: 0, 0
index: -1
omura-cannon-heat
rotate: false
- xy: 1, 1491
+ xy: 195, 1379
size: 192, 277
orig: 192, 277
offset: 0, 0
index: -1
reign-weapon
rotate: false
- xy: 1657, 563
+ xy: 1811, 168
size: 83, 138
orig: 83, 138
offset: 0, 0
index: -1
-sei-launcher
- rotate: false
- xy: 1787, 391
- size: 80, 80
- orig: 80, 80
- offset: 0, 0
- index: -1
zenith
rotate: false
- xy: 855, 939
+ xy: 465, 916
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-cell
rotate: false
- xy: 985, 1069
+ xy: 709, 1046
size: 112, 112
orig: 112, 112
offset: 0, 0
@@ -2915,4655 +3048,5978 @@ filter: nearest,nearest
repeat: none
launchpod
rotate: false
- xy: 1201, 891
+ xy: 73, 135
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mend-projector
rotate: false
- xy: 339, 825
+ xy: 141, 481
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+mend-projector-icon-logic
+ rotate: false
+ xy: 141, 481
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mend-projector-top
rotate: false
- xy: 405, 825
+ xy: 207, 745
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mender
rotate: false
- xy: 785, 95
+ xy: 2015, 553
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+mender-icon-logic
+ rotate: false
+ xy: 2015, 553
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mender-top
rotate: false
- xy: 785, 61
+ xy: 1981, 519
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
overdrive-projector
rotate: false
- xy: 471, 825
+ xy: 207, 679
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+overdrive-projector-icon-logic
+ rotate: false
+ xy: 207, 679
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
overdrive-projector-top
rotate: false
- xy: 537, 825
+ xy: 207, 613
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
shock-mine
rotate: false
- xy: 819, 163
+ xy: 1839, 281
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-arrow
rotate: false
- xy: 425, 197
+ xy: 1573, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor
rotate: false
- xy: 445, 61
+ xy: 1607, 631
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+bridge-conveyor-icon-logic
+ rotate: false
+ xy: 1607, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-bridge
rotate: false
- xy: 445, 27
+ xy: 1641, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-end
rotate: false
- xy: 462, 333
+ xy: 1675, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
center
rotate: false
- xy: 462, 299
+ xy: 1573, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-0
rotate: false
- xy: 133, 495
+ xy: 1403, 671
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+armored-conveyor-icon-logic
+ rotate: false
+ xy: 1403, 671
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-armored-conveyor-full
rotate: false
- xy: 133, 495
+ xy: 1403, 671
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-1
rotate: false
- xy: 133, 461
+ xy: 1403, 637
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-2
rotate: false
- xy: 133, 427
+ xy: 1437, 671
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-3
rotate: false
- xy: 167, 367
+ xy: 1403, 603
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-0
rotate: false
- xy: 190, 333
+ xy: 1437, 637
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-1
rotate: false
- xy: 190, 299
+ xy: 1403, 569
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-2
rotate: false
- xy: 187, 265
+ xy: 1437, 603
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-3
rotate: false
- xy: 187, 231
+ xy: 1403, 535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-0
rotate: false
- xy: 187, 197
+ xy: 1437, 569
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-1
rotate: false
- xy: 201, 367
+ xy: 1437, 535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-2
rotate: false
- xy: 224, 333
+ xy: 1403, 501
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-3
rotate: false
- xy: 224, 299
+ xy: 1437, 501
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-0
rotate: false
- xy: 221, 265
+ xy: 1399, 467
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-1
rotate: false
- xy: 221, 231
+ xy: 1399, 433
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-2
rotate: false
- xy: 221, 197
+ xy: 1433, 467
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-3
rotate: false
- xy: 235, 367
+ xy: 1399, 399
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-0
rotate: false
- xy: 258, 333
+ xy: 1433, 433
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-1
rotate: false
- xy: 258, 299
+ xy: 1433, 399
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-2
rotate: false
- xy: 255, 265
+ xy: 1399, 365
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-3
rotate: false
- xy: 255, 231
+ xy: 1433, 365
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-1
rotate: false
- xy: 493, 231
+ xy: 1709, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-2
rotate: false
- xy: 493, 197
+ xy: 1743, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-3
rotate: false
- xy: 507, 367
+ xy: 1777, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-0
rotate: false
- xy: 513, 163
+ xy: 1641, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-1
rotate: false
- xy: 513, 129
+ xy: 1675, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-2
rotate: false
- xy: 513, 95
+ xy: 1709, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-3
rotate: false
- xy: 513, 61
+ xy: 1743, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-0
rotate: false
- xy: 513, 27
+ xy: 1777, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-1
rotate: false
- xy: 530, 333
+ xy: 1811, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-2
rotate: false
- xy: 530, 299
+ xy: 1675, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-3
rotate: false
- xy: 527, 265
+ xy: 1709, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-0
rotate: false
- xy: 527, 231
+ xy: 1743, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-1
rotate: false
- xy: 527, 197
+ xy: 1777, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-2
rotate: false
- xy: 541, 367
+ xy: 1811, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-3
rotate: false
- xy: 547, 163
+ xy: 1709, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-0
rotate: false
- xy: 547, 129
+ xy: 1743, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-1
rotate: false
- xy: 547, 95
+ xy: 1777, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-2
rotate: false
- xy: 547, 61
+ xy: 1811, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-3
rotate: false
- xy: 547, 27
+ xy: 1743, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor
rotate: false
- xy: 847, 469
+ xy: 1943, 451
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plastanium-conveyor-icon-logic
+ rotate: false
+ xy: 1943, 451
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-0
rotate: false
- xy: 881, 463
+ xy: 1909, 383
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-1
rotate: false
- xy: 915, 463
+ xy: 1943, 417
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-2
rotate: false
- xy: 813, 447
+ xy: 1977, 451
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-edge
rotate: false
- xy: 847, 435
+ xy: 1943, 383
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-stack
rotate: false
- xy: 881, 429
+ xy: 1977, 417
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-1
rotate: false
- xy: 938, 293
+ xy: 2011, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-2
rotate: false
- xy: 938, 259
+ xy: 2009, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-3
rotate: false
- xy: 935, 225
+ xy: 1371, 265
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-0
rotate: false
- xy: 935, 191
+ xy: 1405, 265
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-1
rotate: false
- xy: 955, 157
+ xy: 2009, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-2
rotate: false
- xy: 955, 123
+ xy: 1439, 263
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-3
rotate: false
- xy: 955, 89
+ xy: 1473, 263
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-0
rotate: false
- xy: 955, 55
+ xy: 873, 337
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-1
rotate: false
- xy: 955, 21
+ xy: 907, 333
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-2
rotate: false
- xy: 171, 709
+ xy: 941, 333
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-3
rotate: false
- xy: 171, 675
+ xy: 975, 333
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-0
rotate: false
- xy: 171, 641
+ xy: 1009, 323
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-1
rotate: false
- xy: 171, 607
+ xy: 1043, 323
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-2
rotate: false
- xy: 171, 573
+ xy: 1077, 313
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-3
rotate: false
- xy: 205, 725
+ xy: 331, 217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-0
rotate: false
- xy: 205, 691
+ xy: 365, 217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-1
rotate: false
- xy: 205, 657
+ xy: 399, 217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-2
rotate: false
- xy: 205, 623
+ xy: 433, 217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-3
rotate: false
- xy: 205, 589
+ xy: 329, 183
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cross
rotate: false
- xy: 581, 61
+ xy: 1743, 495
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
distributor
rotate: false
- xy: 541, 891
+ xy: 75, 795
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+distributor-icon-logic
+ rotate: false
+ xy: 75, 795
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
inverted-sorter
rotate: false
- xy: 615, 95
+ xy: 1705, 461
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+inverted-sorter-icon-logic
+ rotate: false
+ xy: 1705, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
junction
rotate: false
- xy: 717, 27
+ xy: 1845, 553
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+junction-icon-logic
+ rotate: false
+ xy: 1845, 553
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
overflow-gate
rotate: false
- xy: 847, 571
+ xy: 1981, 485
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+overflow-gate-icon-logic
+ rotate: false
+ xy: 1981, 485
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor
rotate: false
- xy: 881, 531
+ xy: 1841, 383
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-conveyor-icon-logic
+ rotate: false
+ xy: 1841, 383
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-arrow
rotate: false
- xy: 915, 531
+ xy: 1875, 417
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-bridge
rotate: false
- xy: 881, 497
+ xy: 1909, 451
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-end
rotate: false
- xy: 915, 497
+ xy: 1875, 383
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
router
rotate: false
- xy: 836, 265
+ xy: 1875, 315
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+router-icon-logic
+ rotate: false
+ xy: 1875, 315
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sorter
rotate: false
- xy: 819, 95
+ xy: 1941, 281
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+sorter-icon-logic
+ rotate: false
+ xy: 1941, 281
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
underflow-gate
rotate: false
- xy: 273, 667
+ xy: 363, 183
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+underflow-gate-icon-logic
+ rotate: false
+ xy: 363, 183
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
drill-top
rotate: false
- xy: 739, 891
+ xy: 75, 597
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-liquid
rotate: false
- xy: 739, 891
+ xy: 75, 597
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mechanical-drill
rotate: false
- xy: 1861, 891
+ xy: 141, 745
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mechanical-drill-rotator
rotate: false
- xy: 1927, 891
+ xy: 141, 679
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mechanical-drill-top
rotate: false
- xy: 207, 825
+ xy: 141, 613
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pneumatic-drill
rotate: false
- xy: 1131, 825
+ xy: 273, 555
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pneumatic-drill-rotator
rotate: false
- xy: 1197, 825
+ xy: 339, 621
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pneumatic-drill-top
rotate: false
- xy: 1263, 825
+ xy: 405, 687
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor
rotate: false
- xy: 1923, 759
+ xy: 603, 623
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor-liquid
rotate: false
- xy: 67, 697
+ xy: 603, 557
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor-rotator
rotate: false
- xy: 67, 631
+ xy: 603, 491
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor-top
rotate: false
- xy: 67, 565
+ xy: 603, 425
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-border
rotate: false
- xy: 241, 27
+ xy: 1471, 637
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-middle
rotate: false
- xy: 323, 197
+ xy: 1499, 297
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-select
rotate: false
- xy: 391, 265
+ xy: 1957, 723
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-liquid
rotate: false
- xy: 479, 95
+ xy: 1675, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit
rotate: false
- xy: 439, 367
+ xy: 1607, 665
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+bridge-conduit-icon-logic
+ rotate: false
+ xy: 1607, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-arrow
rotate: false
- xy: 445, 163
+ xy: 1641, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-arrow
rotate: false
- xy: 445, 163
+ xy: 1641, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-bridge
rotate: false
- xy: 445, 129
+ xy: 1539, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-end
rotate: false
- xy: 445, 95
+ xy: 1573, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom
rotate: false
- xy: 459, 197
+ xy: 1709, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-0
rotate: false
- xy: 473, 367
+ xy: 1573, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-1
rotate: false
- xy: 479, 163
+ xy: 1607, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-2
rotate: false
- xy: 479, 129
+ xy: 1641, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-3
rotate: false
- xy: 479, 129
+ xy: 1641, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-4
rotate: false
- xy: 479, 129
+ xy: 1641, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-0
rotate: false
- xy: 479, 61
+ xy: 1709, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-1
rotate: false
- xy: 479, 27
+ xy: 1743, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-2
rotate: false
- xy: 496, 333
+ xy: 1607, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-3
rotate: false
- xy: 496, 299
+ xy: 1641, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-3
rotate: false
- xy: 496, 299
+ xy: 1641, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-4
rotate: false
- xy: 493, 265
+ xy: 1675, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-junction
rotate: false
- xy: 731, 265
+ xy: 1947, 655
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-junction-icon-logic
+ rotate: false
+ xy: 1947, 655
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-overflow-gate
rotate: false
- xy: 745, 367
+ xy: 1845, 519
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-overflow-gate-top
rotate: false
- xy: 751, 163
+ xy: 1879, 553
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-bottom
rotate: false
- xy: 751, 129
+ xy: 1913, 587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-liquid
rotate: false
- xy: 751, 95
+ xy: 1947, 621
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-top
rotate: false
- xy: 751, 61
+ xy: 1981, 655
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mechanical-pump
rotate: false
- xy: 779, 367
+ xy: 1947, 553
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+mechanical-pump-icon-logic
+ rotate: false
+ xy: 1947, 553
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mechanical-pump-liquid
rotate: false
- xy: 813, 617
+ xy: 1981, 587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rotary-pump-liquid
rotate: false
- xy: 813, 617
+ xy: 1981, 587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
thermal-pump-liquid
rotate: false
- xy: 813, 617
+ xy: 1981, 587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit
rotate: false
- xy: 813, 549
+ xy: 2015, 485
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-conduit-icon-logic
+ rotate: false
+ xy: 2015, 485
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-arrow
rotate: false
- xy: 847, 537
+ xy: 1841, 451
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-bridge
rotate: false
- xy: 813, 515
+ xy: 1841, 417
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-end
rotate: false
- xy: 847, 503
+ xy: 1875, 451
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-cap
rotate: false
- xy: 813, 413
+ xy: 1977, 383
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-0
rotate: false
- xy: 847, 401
+ xy: 2011, 417
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-1
rotate: false
- xy: 813, 379
+ xy: 2011, 383
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-2
rotate: false
- xy: 881, 395
+ xy: 1841, 349
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-3
rotate: false
- xy: 915, 395
+ xy: 1875, 349
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-4
rotate: false
- xy: 847, 367
+ xy: 1909, 349
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-0
rotate: false
- xy: 847, 333
+ xy: 1569, 325
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-1
rotate: false
- xy: 881, 327
+ xy: 1603, 325
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-2
rotate: false
- xy: 915, 327
+ xy: 1637, 325
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-4
rotate: false
- xy: 802, 311
+ xy: 1671, 325
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rotary-pump
rotate: false
- xy: 1659, 825
+ xy: 405, 489
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+rotary-pump-icon-logic
+ rotate: false
+ xy: 405, 489
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
logic-processor
rotate: false
- xy: 1267, 891
+ xy: 73, 69
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+logic-processor-icon-logic
+ rotate: false
+ xy: 73, 69
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
memory-bank
rotate: false
- xy: 273, 825
+ xy: 141, 547
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+memory-bank-icon-logic
+ rotate: false
+ xy: 141, 547
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
memory-cell
rotate: false
- xy: 785, 129
+ xy: 1981, 553
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+memory-cell-icon-logic
+ rotate: false
+ xy: 1981, 553
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
message
rotate: false
- xy: 785, 27
+ xy: 2015, 519
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+message-icon-logic
+ rotate: false
+ xy: 2015, 519
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
micro-processor
rotate: false
- xy: 813, 583
+ xy: 1845, 485
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+micro-processor-icon-logic
+ rotate: false
+ xy: 1845, 485
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
switch
rotate: false
- xy: 921, 89
+ xy: 1975, 247
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+switch-icon-logic
+ rotate: false
+ xy: 1975, 247
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
switch-on
rotate: false
- xy: 921, 55
+ xy: 1343, 299
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery
rotate: false
- xy: 255, 197
+ xy: 1431, 331
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+battery-icon-logic
+ rotate: false
+ xy: 1431, 331
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery-top
rotate: false
- xy: 241, 163
+ xy: 1397, 306
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
combustion-generator
rotate: false
- xy: 459, 265
+ xy: 1641, 631
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+combustion-generator-icon-logic
+ rotate: false
+ xy: 1641, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
combustion-generator-top
rotate: false
- xy: 459, 231
+ xy: 1675, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
diode
rotate: false
- xy: 581, 27
+ xy: 1535, 461
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+diode-icon-logic
+ rotate: false
+ xy: 1535, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
diode-arrow
rotate: false
- xy: 598, 333
+ xy: 1535, 427
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
illuminator
rotate: false
- xy: 609, 367
+ xy: 1671, 461
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+illuminator-icon-logic
+ rotate: false
+ xy: 1671, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
illuminator-top
rotate: false
- xy: 615, 163
+ xy: 1637, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-node
rotate: false
- xy: 881, 361
+ xy: 1977, 349
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+power-node-icon-logic
+ rotate: false
+ xy: 1977, 349
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-node-large
rotate: false
- xy: 1329, 825
+ xy: 273, 489
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+power-node-large-icon-logic
+ rotate: false
+ xy: 273, 489
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
power-source
rotate: false
- xy: 915, 361
+ xy: 2011, 349
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+power-source-icon-logic
+ rotate: false
+ xy: 2011, 349
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-void
rotate: false
- xy: 813, 345
+ xy: 1535, 332
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+power-void-icon-logic
+ rotate: false
+ xy: 1535, 332
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rtg-generator
rotate: false
- xy: 1725, 825
+ xy: 141, 415
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+rtg-generator-icon-logic
+ rotate: false
+ xy: 141, 415
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
rtg-generator-top
rotate: false
- xy: 833, 231
+ xy: 1909, 315
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel
rotate: false
- xy: 819, 129
+ xy: 1907, 281
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+solar-panel-icon-logic
+ rotate: false
+ xy: 1907, 281
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
steam-generator
rotate: false
- xy: 1131, 759
+ xy: 471, 621
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-cap
rotate: false
- xy: 1197, 759
+ xy: 471, 555
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-top
rotate: false
- xy: 1263, 759
+ xy: 471, 489
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-turbine0
rotate: false
- xy: 1329, 759
+ xy: 471, 423
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-turbine1
rotate: false
- xy: 1395, 759
+ xy: 537, 755
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
surge-tower
rotate: false
- xy: 1461, 759
+ xy: 537, 689
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+surge-tower-icon-logic
+ rotate: false
+ xy: 537, 689
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thermal-generator
rotate: false
- xy: 1659, 759
+ xy: 537, 491
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+thermal-generator-icon-logic
+ rotate: false
+ xy: 537, 491
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
blast-mixer
rotate: false
- xy: 1, 697
+ xy: 815, 879
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+blast-mixer-icon-logic
+ rotate: false
+ xy: 815, 879
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
coal-centrifuge
rotate: false
- xy: 1, 103
+ xy: 1343, 823
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+coal-centrifuge-icon-logic
+ rotate: false
+ xy: 1343, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cryofluid-mixer-bottom
rotate: false
- xy: 1927, 957
+ xy: 223, 885
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cryofluid-mixer-liquid
rotate: false
- xy: 211, 891
+ xy: 289, 885
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cryofluid-mixer-top
rotate: false
- xy: 277, 891
+ xy: 355, 885
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator
rotate: false
- xy: 343, 891
+ xy: 421, 885
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator-middle
rotate: false
- xy: 409, 891
+ xy: 487, 887
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator-top
rotate: false
- xy: 475, 891
+ xy: 553, 887
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
graphite-press
rotate: false
- xy: 871, 891
+ xy: 75, 465
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+graphite-press-icon-logic
+ rotate: false
+ xy: 75, 465
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
incinerator
rotate: false
- xy: 615, 129
+ xy: 1671, 427
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+incinerator-icon-logic
+ rotate: false
+ xy: 1671, 427
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-source
rotate: false
- xy: 700, 333
+ xy: 1845, 689
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-source-icon-logic
+ rotate: false
+ xy: 1845, 689
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-void
rotate: false
- xy: 717, 61
+ xy: 1947, 689
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-void-icon-logic
+ rotate: false
+ xy: 1947, 689
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
kiln
rotate: false
- xy: 937, 891
+ xy: 73, 399
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+kiln-icon-logic
+ rotate: false
+ xy: 73, 399
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
kiln-top
rotate: false
- xy: 1003, 891
+ xy: 73, 333
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
silicon-smelter-top
rotate: false
- xy: 1003, 891
+ xy: 73, 333
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
liquid-source
rotate: false
- xy: 768, 299
+ xy: 1913, 553
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-source-icon-logic
+ rotate: false
+ xy: 1913, 553
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-void
rotate: false
- xy: 765, 265
+ xy: 1947, 587
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-void-icon-logic
+ rotate: false
+ xy: 1947, 587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
melter
rotate: false
- xy: 785, 163
+ xy: 1947, 519
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+melter-icon-logic
+ rotate: false
+ xy: 1947, 519
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-weaver
rotate: false
- xy: 735, 825
+ xy: 273, 753
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
phase-weaver-bottom
rotate: false
- xy: 801, 825
+ xy: 339, 753
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
phase-weaver-weave
rotate: false
- xy: 867, 825
+ xy: 273, 687
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-compressor
rotate: false
- xy: 933, 825
+ xy: 405, 753
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+plastanium-compressor-icon-logic
+ rotate: false
+ xy: 405, 753
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-compressor-top
rotate: false
- xy: 999, 825
+ xy: 273, 621
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pulverizer
rotate: false
- xy: 802, 277
+ xy: 1705, 325
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulverizer-rotator
rotate: false
- xy: 799, 243
+ xy: 1739, 325
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pyratite-mixer
rotate: false
- xy: 1461, 825
+ xy: 405, 621
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+pyratite-mixer-icon-logic
+ rotate: false
+ xy: 405, 621
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator
rotate: false
- xy: 471, 759
+ xy: 205, 283
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+separator-icon-logic
+ rotate: false
+ xy: 205, 283
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator-liquid
rotate: false
- xy: 537, 759
+ xy: 139, 151
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator-spinner
rotate: false
- xy: 603, 759
+ xy: 205, 217
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
silicon-smelter
rotate: false
- xy: 669, 759
+ xy: 139, 85
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+silicon-smelter-icon-logic
+ rotate: false
+ xy: 139, 85
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press
rotate: false
- xy: 735, 759
+ xy: 205, 151
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-frame0
rotate: false
- xy: 801, 759
+ xy: 139, 19
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-frame1
rotate: false
- xy: 867, 759
+ xy: 205, 85
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-frame2
rotate: false
- xy: 933, 759
+ xy: 205, 19
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-liquid
rotate: false
- xy: 999, 759
+ xy: 471, 753
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-top
rotate: false
- xy: 1065, 759
+ xy: 471, 687
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+basalt-boulder1
+ rotate: false
+ xy: 727, 646
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+basalt-boulder2
+ rotate: false
+ xy: 727, 596
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
boulder1
rotate: false
- xy: 1527, 709
+ xy: 877, 771
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
boulder2
rotate: false
- xy: 1577, 709
+ xy: 777, 671
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dacite-boulder1
rotate: false
- xy: 697, 651
+ xy: 827, 571
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dacite-boulder2
rotate: false
- xy: 747, 651
+ xy: 877, 621
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
sand-boulder1
rotate: false
- xy: 870, 293
+ xy: 1943, 315
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-boulder2
rotate: false
- xy: 904, 293
+ xy: 1977, 315
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-boulder1
rotate: false
- xy: 867, 191
+ xy: 1771, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-boulder2
rotate: false
- xy: 901, 191
+ xy: 1805, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
snow-boulder1
rotate: false
- xy: 1547, 509
+ xy: 483, 255
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
snow-boulder2
rotate: false
- xy: 1597, 509
+ xy: 1195, 771
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spore-cluster1
rotate: false
- xy: 1317, 509
+ xy: 1361, 597
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
spore-cluster2
rotate: false
- xy: 1359, 509
+ xy: 1361, 555
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
spore-cluster3
rotate: false
- xy: 1401, 509
+ xy: 1361, 513
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
container
rotate: false
- xy: 1069, 957
+ xy: 1673, 833
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
container-team
rotate: false
- xy: 1135, 957
+ xy: 1739, 833
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
unloader
rotate: false
- xy: 239, 599
+ xy: 329, 115
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+unloader-icon-logic
+ rotate: false
+ xy: 329, 115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unloader-center
rotate: false
- xy: 273, 633
+ xy: 363, 149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
arc-heat
rotate: false
- xy: 133, 529
+ xy: 1447, 739
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-1
rotate: false
- xy: 241, 129
+ xy: 1481, 705
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-2
rotate: false
- xy: 71, 767
+ xy: 881, 879
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
hail-heat
rotate: false
- xy: 1945, 407
+ xy: 1337, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
lancer-heat
rotate: false
- xy: 1135, 891
+ xy: 73, 201
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
salvo-heat
rotate: false
- xy: 1857, 825
+ xy: 273, 423
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scorch-heat
rotate: false
- xy: 904, 259
+ xy: 1601, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
wave-liquid
rotate: false
- xy: 67, 433
+ xy: 339, 357
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
wave-top
rotate: false
- xy: 67, 367
+ xy: 405, 357
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
command-center
rotate: false
- xy: 871, 957
+ xy: 1409, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
command-center-team
rotate: false
- xy: 1, 37
+ xy: 1475, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
rally-point
rotate: false
- xy: 1527, 825
+ xy: 339, 489
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
repair-point-base
rotate: false
- xy: 836, 299
+ xy: 1841, 315
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
resupply-point
rotate: false
- xy: 1593, 825
+ xy: 405, 555
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+resupply-point-icon-logic
+ rotate: false
+ xy: 405, 555
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
copper-wall
rotate: false
- xy: 564, 333
+ xy: 1811, 597
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+copper-wall-icon-logic
+ rotate: false
+ xy: 1811, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
copper-wall-large
rotate: false
- xy: 1333, 957
+ xy: 1937, 823
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+copper-wall-large-icon-logic
+ rotate: false
+ xy: 1937, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door
rotate: false
- xy: 598, 299
+ xy: 1569, 461
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+door-icon-logic
+ rotate: false
+ xy: 1569, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
door-large
rotate: false
- xy: 607, 891
+ xy: 75, 729
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+door-large-icon-logic
+ rotate: false
+ xy: 75, 729
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door-large-open
rotate: false
- xy: 673, 891
+ xy: 75, 663
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door-open
rotate: false
- xy: 595, 265
+ xy: 1535, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall
rotate: false
- xy: 813, 481
+ xy: 1909, 417
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-wall-icon-logic
+ rotate: false
+ xy: 1909, 417
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall-large
rotate: false
- xy: 669, 825
+ xy: 207, 481
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+phase-wall-large-icon-logic
+ rotate: false
+ xy: 207, 481
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-wall
rotate: false
- xy: 915, 429
+ xy: 2011, 451
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plastanium-wall-icon-logic
+ rotate: false
+ xy: 2011, 451
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-wall-large
rotate: false
- xy: 1065, 825
+ xy: 339, 687
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+plastanium-wall-large-icon-logic
+ rotate: false
+ xy: 339, 687
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-large1
rotate: false
- xy: 141, 771
+ xy: 405, 423
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-large2
rotate: false
- xy: 207, 759
+ xy: 139, 349
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-large3
rotate: false
- xy: 273, 759
+ xy: 139, 283
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-large4
rotate: false
- xy: 339, 759
+ xy: 205, 349
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall2
rotate: false
- xy: 867, 225
+ xy: 1635, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall3
rotate: false
- xy: 901, 225
+ xy: 1669, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall4
rotate: false
- xy: 833, 197
+ xy: 1703, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall5
rotate: false
- xy: 833, 197
+ xy: 1703, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-wall
rotate: false
- xy: 921, 123
+ xy: 1941, 247
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+surge-wall-icon-logic
+ rotate: false
+ xy: 1941, 247
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-wall-large
rotate: false
- xy: 1527, 759
+ xy: 537, 623
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+surge-wall-large-icon-logic
+ rotate: false
+ xy: 537, 623
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thorium-wall
rotate: false
- xy: 921, 21
+ xy: 1337, 265
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+thorium-wall-icon-logic
+ rotate: false
+ xy: 1337, 265
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
thorium-wall-large
rotate: false
- xy: 1725, 759
+ xy: 537, 425
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+thorium-wall-large-icon-logic
+ rotate: false
+ xy: 537, 425
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
titanium-wall
rotate: false
- xy: 239, 667
+ xy: 329, 149
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+titanium-wall-icon-logic
+ rotate: false
+ xy: 329, 149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall-large
rotate: false
- xy: 1791, 759
+ xy: 603, 755
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+titanium-wall-large-icon-logic
+ rotate: false
+ xy: 603, 755
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
bullet
rotate: false
- xy: 1993, 969
+ xy: 1141, 767
size: 52, 52
orig: 52, 52
offset: 0, 0
index: -1
bullet-back
rotate: false
- xy: 821, 705
+ xy: 669, 410
size: 52, 52
orig: 52, 52
offset: 0, 0
index: -1
casing
rotate: false
- xy: 1987, 473
+ xy: 1403, 705
size: 8, 16
orig: 8, 16
offset: 0, 0
index: -1
circle-mid
rotate: false
- xy: 975, 244
+ xy: 2037, 770
size: 1, 199
orig: 1, 199
offset: 0, 0
index: -1
error
rotate: false
- xy: 1147, 659
+ xy: 723, 396
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
laser
rotate: false
- xy: 1977, 709
+ xy: 2043, 237
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
+laser-end
+ rotate: false
+ xy: 313, 951
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
+launch-arrow
+ rotate: false
+ xy: 1879, 587
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+transfer-arrow
+ rotate: false
+ xy: 1879, 587
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
minelaser
rotate: false
- xy: 1983, 709
+ xy: 2043, 187
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
+minelaser-end
+ rotate: false
+ xy: 1, 565
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
missile
rotate: false
- xy: 133, 677
+ xy: 1361, 447
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
missile-back
rotate: false
- xy: 133, 639
+ xy: 1361, 409
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
parallax-laser
rotate: false
- xy: 975, 445
+ xy: 1199, 829
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
+parallax-laser-end
+ rotate: false
+ xy: 387, 951
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
particle
rotate: false
- xy: 1275, 509
+ xy: 1361, 639
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
scale_marker
rotate: false
- xy: 1191, 603
+ xy: 1077, 769
size: 4, 4
orig: 4, 4
offset: 0, 0
index: -1
shell
rotate: false
- xy: 133, 601
+ xy: 1361, 371
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
shell-back
rotate: false
- xy: 133, 563
+ xy: 1359, 333
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
transfer
rotate: false
- xy: 981, 449
+ xy: 1205, 829
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
-transfer-arrow
- rotate: false
- xy: 239, 633
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
white
rotate: false
- xy: 1197, 704
+ xy: 1181, 950
size: 3, 3
orig: 3, 3
offset: 0, 0
index: -1
+alpha-icon-logic
+ rotate: false
+ xy: 1379, 723
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
alpha-outline
rotate: false
- xy: 1027, 709
+ xy: 603, 325
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-wreck0
rotate: false
- xy: 1077, 709
+ xy: 603, 275
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-wreck1
rotate: false
- xy: 1127, 709
+ xy: 553, 258
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-wreck2
rotate: false
- xy: 1177, 709
+ xy: 603, 225
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+antumbra-icon-logic
+ rotate: false
+ xy: 638, 391
+ size: 28, 32
+ orig: 28, 32
+ offset: 0, 0
+ index: -1
arc
rotate: false
- xy: 133, 367
+ xy: 1413, 739
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+arc-icon-logic
+ rotate: false
+ xy: 1413, 705
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-arc-full
+ rotate: false
+ xy: 1413, 705
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+arkyid-foot
+ rotate: false
+ xy: 461, 953
+ size: 70, 70
+ orig: 70, 70
+ offset: 0, 0
+ index: -1
+arkyid-icon-logic
+ rotate: false
+ xy: 1447, 705
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+arkyid-joint-base
+ rotate: false
+ xy: 1, 419
+ size: 70, 70
+ orig: 70, 70
+ offset: 0, 0
+ index: -1
arkyid-leg
rotate: false
- xy: 67, 132
+ xy: 619, 895
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
+artillery-mount-outline
+ rotate: false
+ xy: 1, 347
+ size: 70, 70
+ orig: 70, 70
+ offset: 0, 0
+ index: -1
artillery-outline
rotate: false
- xy: 1277, 701
+ xy: 727, 696
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
atrax-foot
rotate: false
- xy: 1945, 449
+ xy: 1495, 781
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
+atrax-icon-logic
+ rotate: false
+ xy: 1397, 340
+ size: 32, 23
+ orig: 32, 23
+ offset: 0, 0
+ index: -1
atrax-joint
rotate: false
- xy: 175, 743
+ xy: 2021, 997
size: 26, 26
orig: 26, 26
offset: 0, 0
index: -1
atrax-leg
rotate: false
- xy: 137, 743
+ xy: 927, 793
size: 36, 26
orig: 36, 26
offset: 0, 0
index: -1
atrax-leg-base
rotate: false
- xy: 133, 715
+ xy: 1361, 485
size: 36, 26
orig: 36, 26
offset: 0, 0
index: -1
+beta-icon-logic
+ rotate: false
+ xy: 1431, 299
+ size: 32, 30
+ orig: 32, 30
+ offset: 0, 0
+ index: -1
beta-outline
rotate: false
- xy: 67, 20
+ xy: 271, 189
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-wreck0
rotate: false
- xy: 1989, 835
+ xy: 619, 839
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-wreck1
rotate: false
- xy: 1989, 779
+ xy: 677, 870
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-wreck2
rotate: false
- xy: 1989, 723
+ xy: 391, 301
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
-block-arc-full
+blast-compound-icon-logic
rotate: false
- xy: 241, 95
+ xy: 1481, 739
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+item-blast-compound-medium
+ rotate: false
+ xy: 1481, 739
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-basalt-boulder-full
+ rotate: false
+ xy: 727, 496
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
block-basalt-full
rotate: false
- xy: 241, 61
+ xy: 1471, 671
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-boulder-full
rotate: false
- xy: 1377, 709
+ xy: 777, 771
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-char-full
rotate: false
- xy: 269, 367
+ xy: 1471, 603
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-command-center-full
rotate: false
- xy: 141, 837
+ xy: 947, 879
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+command-center-icon-logic
+ rotate: false
+ xy: 947, 879
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-conduit-full
rotate: false
- xy: 275, 163
+ xy: 1471, 569
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+conduit-icon-logic
+ rotate: false
+ xy: 1471, 569
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-container-full
rotate: false
- xy: 277, 957
+ xy: 1013, 879
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+container-icon-logic
+ rotate: false
+ xy: 1013, 879
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-conveyor-full
rotate: false
- xy: 275, 129
+ xy: 1471, 535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-0
rotate: false
- xy: 275, 129
+ xy: 1471, 535
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+conveyor-icon-logic
+ rotate: false
+ xy: 1471, 535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-craters-full
rotate: false
- xy: 275, 95
+ xy: 1471, 501
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-cryofluid-mixer-full
rotate: false
- xy: 1, 631
+ xy: 1079, 879
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+cryofluid-mixer-icon-logic
+ rotate: false
+ xy: 1079, 879
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-cultivator-full
rotate: false
- xy: 343, 957
+ xy: 1145, 879
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+cultivator-icon-logic
+ rotate: false
+ xy: 1145, 879
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-dacite-boulder-full
rotate: false
- xy: 1427, 709
+ xy: 827, 771
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-dacite-full
rotate: false
- xy: 275, 61
+ xy: 1467, 467
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dacite-wall-full
rotate: false
- xy: 275, 27
+ xy: 1467, 433
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-metal-full
rotate: false
- xy: 292, 333
+ xy: 1467, 399
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-darksand-full
rotate: false
- xy: 292, 299
+ xy: 1467, 365
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dirt-full
rotate: false
- xy: 289, 265
+ xy: 1465, 331
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dirt-wall-full
rotate: false
- xy: 289, 231
+ xy: 1465, 297
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dune-wall-full
rotate: false
- xy: 289, 197
+ xy: 1505, 671
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-duo-full
rotate: false
- xy: 303, 367
+ xy: 1505, 637
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+duo-icon-logic
+ rotate: false
+ xy: 1505, 637
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-grass-full
rotate: false
- xy: 309, 163
+ xy: 1505, 603
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-hail-full
rotate: false
- xy: 309, 129
+ xy: 1505, 569
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+hail-icon-logic
+ rotate: false
+ xy: 1505, 569
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-hotrock-full
rotate: false
- xy: 309, 95
+ xy: 1505, 535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-full
rotate: false
- xy: 309, 61
+ xy: 1505, 501
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-snow-full
rotate: false
- xy: 309, 27
+ xy: 1501, 467
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-wall-full
rotate: false
- xy: 326, 333
+ xy: 1501, 433
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-lancer-full
rotate: false
- xy: 1, 565
+ xy: 1211, 889
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+lancer-icon-logic
+ rotate: false
+ xy: 1211, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-liquid-router-full
rotate: false
- xy: 326, 299
+ xy: 1501, 399
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-router-icon-logic
+ rotate: false
+ xy: 1501, 399
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-magmarock-full
rotate: false
- xy: 323, 265
+ xy: 1501, 365
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-mechanical-drill-full
rotate: false
- xy: 409, 957
+ xy: 1277, 889
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+mechanical-drill-icon-logic
+ rotate: false
+ xy: 1277, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-metal-floor-damaged-full
rotate: false
- xy: 323, 231
+ xy: 1499, 331
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-moss-full
rotate: false
- xy: 337, 367
+ xy: 2003, 931
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-mud-full
rotate: false
- xy: 343, 163
+ xy: 2003, 897
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-coal-full
rotate: false
- xy: 343, 129
+ xy: 2003, 863
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-copper-full
rotate: false
- xy: 343, 95
+ xy: 2003, 829
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-lead-full
rotate: false
- xy: 343, 61
+ xy: 2003, 795
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-scrap-full
rotate: false
- xy: 343, 27
+ xy: 2003, 761
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-thorium-full
rotate: false
- xy: 360, 333
+ xy: 1515, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-titanium-full
rotate: false
- xy: 360, 299
+ xy: 1549, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-parallax-full
rotate: false
- xy: 1, 499
+ xy: 1343, 889
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+parallax-icon-logic
+ rotate: false
+ xy: 1343, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-pebbles-full
rotate: false
- xy: 357, 265
+ xy: 1583, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-phase-weaver-full
rotate: false
- xy: 475, 957
+ xy: 1409, 889
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+phase-weaver-icon-logic
+ rotate: false
+ xy: 1409, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-plated-conduit-full
rotate: false
- xy: 357, 231
+ xy: 1617, 733
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plated-conduit-icon-logic
+ rotate: false
+ xy: 1617, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pneumatic-drill-full
rotate: false
- xy: 1, 433
+ xy: 1475, 889
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+pneumatic-drill-icon-logic
+ rotate: false
+ xy: 1475, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-pulse-conduit-full
rotate: false
- xy: 357, 197
+ xy: 1651, 733
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+pulse-conduit-icon-logic
+ rotate: false
+ xy: 1651, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pulverizer-full
rotate: false
- xy: 371, 367
+ xy: 1685, 733
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+pulverizer-icon-logic
+ rotate: false
+ xy: 1685, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-repair-point-full
rotate: false
- xy: 377, 163
+ xy: 1719, 733
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+repair-point-icon-logic
+ rotate: false
+ xy: 1719, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-salt-wall-full
rotate: false
- xy: 377, 129
+ xy: 1753, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-salvo-full
rotate: false
- xy: 541, 957
+ xy: 1541, 899
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+salvo-icon-logic
+ rotate: false
+ xy: 1541, 899
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-sand-boulder-full
rotate: false
- xy: 377, 95
+ xy: 1787, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-full
rotate: false
- xy: 377, 61
+ xy: 1821, 733
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-wall-full
rotate: false
- xy: 377, 27
+ xy: 1855, 723
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scatter-full
rotate: false
- xy: 1, 367
+ xy: 1607, 899
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+scatter-icon-logic
+ rotate: false
+ xy: 1607, 899
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-scorch-full
rotate: false
- xy: 394, 333
+ xy: 1889, 723
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+scorch-icon-logic
+ rotate: false
+ xy: 1889, 723
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-full
rotate: false
- xy: 394, 299
+ xy: 1923, 723
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall1
rotate: false
- xy: 394, 299
+ xy: 1923, 723
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+scrap-wall-icon-logic
+ rotate: false
+ xy: 1923, 723
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-large-full
rotate: false
- xy: 607, 957
+ xy: 1673, 899
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+scrap-wall-large-icon-logic
+ rotate: false
+ xy: 1673, 899
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-segment-full
rotate: false
- xy: 1, 301
+ xy: 1739, 899
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+segment-icon-logic
+ rotate: false
+ xy: 1739, 899
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-shale-boulder-full
rotate: false
- xy: 391, 231
+ xy: 1991, 723
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-full
rotate: false
- xy: 391, 197
+ xy: 1275, 311
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-wall-full
rotate: false
- xy: 405, 367
+ xy: 1309, 311
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shrubs-full
rotate: false
- xy: 411, 163
+ xy: 1269, 277
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-boulder-full
rotate: false
- xy: 1477, 709
+ xy: 777, 721
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-snow-full
rotate: false
- xy: 411, 129
+ xy: 1303, 277
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-wall-full
rotate: false
- xy: 411, 95
+ xy: 1539, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-cluster-full
rotate: false
- xy: 1987, 431
+ xy: 1295, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spore-moss-full
rotate: false
- xy: 411, 61
+ xy: 1539, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-press-full
rotate: false
- xy: 673, 957
+ xy: 1805, 899
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+spore-press-icon-logic
+ rotate: false
+ xy: 1805, 899
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-spore-wall-full
rotate: false
- xy: 411, 27
+ xy: 1573, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-steam-generator-full
rotate: false
- xy: 1, 235
+ xy: 1871, 889
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+steam-generator-icon-logic
+ rotate: false
+ xy: 1871, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-stone-full
rotate: false
- xy: 428, 333
+ xy: 1539, 631
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-stone-wall-full
rotate: false
- xy: 428, 299
+ xy: 1573, 665
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-swarmer-full
rotate: false
- xy: 739, 957
+ xy: 1937, 889
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+swarmer-icon-logic
+ rotate: false
+ xy: 1937, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-tendrils-full
rotate: false
- xy: 425, 265
+ xy: 1607, 699
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-titanium-conveyor-full
rotate: false
- xy: 425, 231
+ xy: 1539, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-0
rotate: false
- xy: 425, 231
+ xy: 1539, 597
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+titanium-conveyor-icon-logic
+ rotate: false
+ xy: 1539, 597
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-water-extractor-full
rotate: false
- xy: 1, 169
+ xy: 1211, 823
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+water-extractor-icon-logic
+ rotate: false
+ xy: 1211, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-wave-full
rotate: false
- xy: 805, 957
+ xy: 1277, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+wave-icon-logic
+ rotate: false
+ xy: 1277, 823
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+bryde-icon-logic
+ rotate: false
+ xy: 1539, 529
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+coal-icon-logic
+ rotate: false
+ xy: 1607, 597
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-coal-medium
+ rotate: false
+ xy: 1607, 597
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
command-center-team-crux
rotate: false
- xy: 937, 957
+ xy: 1541, 833
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
command-center-team-sharded
rotate: false
- xy: 1003, 957
+ xy: 1607, 833
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
container-team-crux
rotate: false
- xy: 1201, 957
+ xy: 1805, 833
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
container-team-sharded
rotate: false
- xy: 1267, 957
+ xy: 1871, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+copper-icon-logic
+ rotate: false
+ xy: 1777, 563
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-copper-medium
+ rotate: false
+ xy: 1777, 563
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+corvus-icon-logic
+ rotate: false
+ xy: 363, 127
+ size: 31, 20
+ orig: 31, 20
+ offset: 0, 0
+ index: -1
corvus-joint
rotate: false
- xy: 67, 240
+ xy: 271, 295
size: 60, 60
orig: 60, 60
offset: 0, 0
index: -1
+corvus-joint-base
+ rotate: false
+ xy: 605, 953
+ size: 70, 70
+ orig: 70, 70
+ offset: 0, 0
+ index: -1
+toxopid-joint-base
+ rotate: false
+ xy: 605, 953
+ size: 70, 70
+ orig: 70, 70
+ offset: 0, 0
+ index: -1
corvus-leg
rotate: false
- xy: 949, 495
+ xy: 363, 57
size: 30, 68
orig: 30, 68
offset: 0, 0
index: -1
corvus-leg-base
rotate: false
- xy: 307, 635
+ xy: 395, 61
size: 30, 64
orig: 30, 64
offset: 0, 0
index: -1
cracks-1-0
rotate: false
- xy: 564, 299
+ xy: 1777, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-1
rotate: false
- xy: 561, 265
+ xy: 1811, 563
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-2
rotate: false
- xy: 561, 231
+ xy: 1811, 529
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-3
rotate: false
- xy: 561, 197
+ xy: 1539, 495
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-4
rotate: false
- xy: 575, 367
+ xy: 1573, 495
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-5
rotate: false
- xy: 581, 163
+ xy: 1607, 495
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-6
rotate: false
- xy: 581, 129
+ xy: 1641, 495
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-7
rotate: false
- xy: 581, 95
+ xy: 1675, 495
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-2-0
rotate: false
- xy: 1399, 957
+ xy: 1541, 767
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-1
rotate: false
- xy: 1465, 957
+ xy: 1607, 767
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-2
rotate: false
- xy: 1531, 957
+ xy: 1673, 767
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-3
rotate: false
- xy: 1597, 957
+ xy: 1739, 767
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-4
rotate: false
- xy: 1663, 957
+ xy: 1805, 767
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-5
rotate: false
- xy: 1729, 957
+ xy: 1871, 757
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-6
rotate: false
- xy: 1795, 957
+ xy: 1937, 757
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-7
rotate: false
- xy: 1861, 957
+ xy: 157, 877
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+crawler-icon-logic
+ rotate: false
+ xy: 1709, 495
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
crawler-leg
rotate: false
- xy: 1777, 709
+ xy: 877, 721
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-outline
rotate: false
- xy: 1827, 709
+ xy: 777, 571
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-wreck0
rotate: false
- xy: 1877, 709
+ xy: 827, 621
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-wreck1
rotate: false
- xy: 1927, 709
+ xy: 877, 671
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-wreck2
rotate: false
- xy: 647, 653
+ xy: 777, 521
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+cryofluid-icon-logic
+ rotate: false
+ xy: 1777, 495
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-cryofluid-medium
+ rotate: false
+ xy: 1777, 495
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+dagger-icon-logic
+ rotate: false
+ xy: 1811, 495
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
dagger-leg
rotate: false
- xy: 897, 657
+ xy: 877, 521
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-outline
rotate: false
- xy: 947, 659
+ xy: 727, 446
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-wreck0
rotate: false
- xy: 997, 659
+ xy: 777, 471
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-wreck1
rotate: false
- xy: 1047, 659
+ xy: 827, 471
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-wreck2
rotate: false
- xy: 1097, 659
+ xy: 877, 471
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
duo
rotate: false
- xy: 595, 231
+ xy: 1569, 427
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+eclipse-icon-logic
+ rotate: false
+ xy: 1603, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
eruption-outline
rotate: false
- xy: 1247, 643
+ xy: 827, 413
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
flamethrower-outline
rotate: false
- xy: 1397, 651
+ xy: 977, 717
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
+flare-icon-logic
+ rotate: false
+ xy: 1569, 393
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
flare-outline
rotate: false
- xy: 1497, 659
+ xy: 1027, 725
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flare-wreck0
rotate: false
- xy: 1547, 659
+ xy: 927, 617
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flare-wreck1
rotate: false
- xy: 1597, 659
+ xy: 977, 667
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flare-wreck2
rotate: false
- xy: 1647, 659
+ xy: 1027, 675
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+fortress-icon-logic
+ rotate: false
+ xy: 1535, 366
+ size: 32, 25
+ orig: 32, 25
+ offset: 0, 0
+ index: -1
+gamma-icon-logic
+ rotate: false
+ xy: 1603, 427
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+gamma-outline
+ rotate: false
+ xy: 1251, 955
+ size: 68, 68
+ orig: 68, 68
+ offset: 0, 0
+ index: -1
+gamma-wreck0
+ rotate: false
+ xy: 1321, 955
+ size: 68, 68
+ orig: 68, 68
+ offset: 0, 0
+ index: -1
gamma-wreck1
rotate: false
- xy: 1, 953
+ xy: 1391, 955
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
gamma-wreck2
rotate: false
- xy: 1, 883
+ xy: 1461, 955
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
+graphite-icon-logic
+ rotate: false
+ xy: 1637, 461
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-graphite-medium
+ rotate: false
+ xy: 1637, 461
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
hail
rotate: false
- xy: 595, 197
+ xy: 1603, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
heal-shotgun-weapon-outline
rotate: false
- xy: 875, 707
+ xy: 536, 358
size: 50, 50
orig: 50, 50
offset: 0, 0
index: -1
heal-weapon-mount-outline
rotate: false
- xy: 1797, 659
+ xy: 1027, 625
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
heal-weapon-outline
rotate: false
- xy: 1847, 659
+ xy: 927, 517
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-item-blast-compound-large
+horizon-icon-logic
rotate: false
- xy: 1987, 389
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-item-blast-compound-medium
- rotate: false
- xy: 615, 27
+ xy: 1637, 427
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+horizon-outline
+ rotate: false
+ xy: 165, 951
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
+horizon-wreck0
+ rotate: false
+ xy: 1, 713
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
+horizon-wreck1
+ rotate: false
+ xy: 239, 951
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
+horizon-wreck2
+ rotate: false
+ xy: 1, 639
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
+item-blast-compound-large
+ rotate: false
+ xy: 1277, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
item-blast-compound-small
rotate: false
- xy: 1993, 891
+ xy: 1507, 271
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-blast-compound-tiny
rotate: false
- xy: 2029, 455
+ xy: 619, 821
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-blast-compound-xlarge
rotate: false
- xy: 1897, 659
+ xy: 977, 567
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-coal-large
rotate: false
- xy: 1797, 417
+ xy: 1277, 639
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-item-coal-medium
- rotate: false
- xy: 632, 299
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
item-coal-small
rotate: false
- xy: 133, 401
+ xy: 2021, 971
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-coal-tiny
rotate: false
- xy: 1923, 425
+ xy: 927, 775
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-coal-xlarge
rotate: false
- xy: 1947, 659
+ xy: 1027, 575
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-copper-large
rotate: false
- xy: 1839, 417
+ xy: 1319, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-item-copper-medium
- rotate: false
- xy: 629, 231
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
item-copper-small
rotate: false
- xy: 2019, 891
+ xy: 464, 191
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-copper-tiny
rotate: false
- xy: 1275, 575
+ xy: 637, 821
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-copper-xlarge
rotate: false
- xy: 1997, 673
+ xy: 927, 467
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-graphite-large
rotate: false
- xy: 1881, 401
+ xy: 1277, 597
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-item-graphite-medium
- rotate: false
- xy: 643, 367
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
item-graphite-small
rotate: false
- xy: 159, 401
+ xy: 668, 384
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-graphite-tiny
rotate: false
- xy: 417, 683
+ xy: 945, 775
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-graphite-xlarge
rotate: false
- xy: 1997, 623
+ xy: 977, 517
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-lead-large
rotate: false
- xy: 897, 565
+ xy: 1319, 639
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-lead-medium
rotate: false
- xy: 649, 129
+ xy: 1773, 461
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+lead-icon-logic
+ rotate: false
+ xy: 1773, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-lead-small
rotate: false
- xy: 273, 607
+ xy: 694, 384
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-lead-tiny
rotate: false
- xy: 949, 347
+ xy: 139, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-lead-xlarge
rotate: false
- xy: 1297, 601
+ xy: 1027, 525
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-metaglass-large
rotate: false
- xy: 939, 565
+ xy: 1277, 555
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-metaglass-medium
rotate: false
- xy: 649, 61
+ xy: 1773, 427
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+metaglass-icon-logic
+ rotate: false
+ xy: 1773, 427
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-metaglass-small
rotate: false
- xy: 949, 469
+ xy: 1507, 245
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-metaglass-tiny
rotate: false
- xy: 1085, 507
+ xy: 157, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-metaglass-xlarge
rotate: false
- xy: 1347, 601
+ xy: 977, 467
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-phase-fabric-large
rotate: false
- xy: 981, 567
+ xy: 1319, 597
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-phase-fabric-medium
rotate: false
- xy: 666, 333
+ xy: 1773, 393
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-fabric-icon-logic
+ rotate: false
+ xy: 1773, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-phase-fabric-small
rotate: false
- xy: 981, 499
+ xy: 1533, 243
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-phase-fabric-tiny
rotate: false
- xy: 2029, 437
+ xy: 175, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-phase-fabric-xlarge
rotate: false
- xy: 1397, 601
+ xy: 1027, 475
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-plastanium-large
rotate: false
- xy: 1023, 567
+ xy: 1277, 513
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-plastanium-medium
rotate: false
- xy: 663, 265
+ xy: 1807, 393
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plastanium-icon-logic
+ rotate: false
+ xy: 1807, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-plastanium-small
rotate: false
- xy: 339, 675
+ xy: 524, 229
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-plastanium-tiny
rotate: false
- xy: 1923, 407
+ xy: 193, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-plastanium-xlarge
rotate: false
- xy: 1447, 609
+ xy: 927, 417
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-pyratite-large
rotate: false
- xy: 1065, 567
+ xy: 1319, 555
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-pyratite-medium
rotate: false
- xy: 663, 197
+ xy: 1603, 359
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+pyratite-icon-logic
+ rotate: false
+ xy: 1603, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-pyratite-small
rotate: false
- xy: 949, 443
+ xy: 550, 232
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-pyratite-tiny
rotate: false
- xy: 1275, 557
+ xy: 211, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-pyratite-xlarge
rotate: false
- xy: 1497, 609
+ xy: 977, 417
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-sand-large
rotate: false
- xy: 1107, 567
+ xy: 1277, 471
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-sand-medium
rotate: false
- xy: 683, 163
+ xy: 1671, 359
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+sand-icon-logic
+ rotate: false
+ xy: 1671, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-sand-small
rotate: false
- xy: 1007, 499
+ xy: 576, 232
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-sand-tiny
rotate: false
- xy: 417, 665
+ xy: 229, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-sand-xlarge
rotate: false
- xy: 1547, 609
+ xy: 1027, 425
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-scrap-large
rotate: false
- xy: 1149, 567
+ xy: 1319, 513
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-scrap-medium
rotate: false
- xy: 683, 95
+ xy: 1739, 359
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+scrap-icon-logic
+ rotate: false
+ xy: 1739, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap-small
rotate: false
- xy: 339, 649
+ xy: 720, 370
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-scrap-tiny
rotate: false
- xy: 435, 683
+ xy: 247, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-scrap-xlarge
rotate: false
- xy: 1597, 609
+ xy: 1077, 715
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-silicon-large
rotate: false
- xy: 1191, 551
+ xy: 1277, 429
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-silicon-medium
rotate: false
- xy: 683, 27
+ xy: 1807, 359
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+silicon-icon-logic
+ rotate: false
+ xy: 1807, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-silicon-small
rotate: false
- xy: 365, 675
+ xy: 746, 370
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-silicon-tiny
rotate: false
- xy: 949, 329
+ xy: 1227, 753
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-silicon-xlarge
rotate: false
- xy: 1647, 609
+ xy: 1077, 665
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-spore-pod-large
rotate: false
- xy: 1233, 551
+ xy: 1319, 471
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-spore-pod-medium
rotate: false
- xy: 697, 265
+ xy: 1879, 689
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+spore-pod-icon-logic
+ rotate: false
+ xy: 1879, 689
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-spore-pod-small
rotate: false
- xy: 949, 417
+ xy: 524, 203
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-spore-pod-tiny
rotate: false
- xy: 1103, 507
+ xy: 655, 821
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-spore-pod-xlarge
rotate: false
- xy: 1697, 609
+ xy: 1077, 615
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-surge-alloy-large
rotate: false
- xy: 981, 525
+ xy: 1277, 387
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-surge-alloy-medium
rotate: false
- xy: 697, 197
+ xy: 1879, 655
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+surge-alloy-icon-logic
+ rotate: false
+ xy: 1879, 655
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-surge-alloy-small
rotate: false
- xy: 949, 391
+ xy: 550, 206
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-surge-alloy-tiny
rotate: false
- xy: 2029, 419
+ xy: 51, 32
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-surge-alloy-xlarge
rotate: false
- xy: 1747, 609
+ xy: 1077, 565
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-thorium-large
rotate: false
- xy: 1023, 525
+ xy: 1275, 345
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-thorium-medium
rotate: false
- xy: 717, 163
+ xy: 1845, 587
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+thorium-icon-logic
+ rotate: false
+ xy: 1845, 587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-thorium-small
rotate: false
- xy: 1033, 499
+ xy: 576, 206
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-thorium-tiny
rotate: false
- xy: 435, 665
+ xy: 1515, 715
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-thorium-xlarge
rotate: false
- xy: 1797, 609
+ xy: 1077, 515
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-titanium-large
rotate: false
- xy: 1065, 525
+ xy: 1319, 429
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-titanium-medium
rotate: false
- xy: 717, 95
+ xy: 1913, 655
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+titanium-icon-logic
+ rotate: false
+ xy: 1913, 655
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-titanium-small
rotate: false
- xy: 365, 649
+ xy: 602, 199
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-titanium-tiny
rotate: false
- xy: 453, 683
+ xy: 1377, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-titanium-xlarge
rotate: false
- xy: 1847, 609
+ xy: 1077, 465
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
lancer
rotate: false
- xy: 1069, 891
+ xy: 73, 267
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
large-artillery-outline
rotate: false
- xy: 1947, 591
+ xy: 1027, 357
size: 48, 66
orig: 48, 66
offset: 0, 0
index: -1
+large-bullet-mount-outline
+ rotate: false
+ xy: 1, 149
+ size: 70, 97
+ orig: 70, 97
+ offset: 0, 0
+ index: -1
+large-purple-mount-outline
+ rotate: false
+ xy: 677, 926
+ size: 70, 97
+ orig: 70, 97
+ offset: 0, 0
+ index: -1
large-weapon-outline
rotate: false
- xy: 1447, 559
+ xy: 1127, 715
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-cryofluid-large
rotate: false
- xy: 1107, 525
+ xy: 1319, 387
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-liquid-cryofluid-medium
- rotate: false
- xy: 734, 299
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
liquid-cryofluid-small
rotate: false
- xy: 391, 675
+ xy: 628, 199
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-cryofluid-tiny
rotate: false
- xy: 1121, 507
+ xy: 427, 86
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-cryofluid-xlarge
rotate: false
- xy: 1497, 559
+ xy: 1127, 665
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-oil-large
rotate: false
- xy: 1149, 525
+ xy: 1317, 345
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
liquid-oil-medium
rotate: false
- xy: 731, 197
+ xy: 2015, 689
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+oil-icon-logic
+ rotate: false
+ xy: 2015, 689
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-oil-small
rotate: false
- xy: 949, 365
+ xy: 397, 130
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-oil-tiny
rotate: false
- xy: 2029, 401
+ xy: 51, 14
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-oil-xlarge
rotate: false
- xy: 1547, 559
+ xy: 1127, 615
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-slag-large
rotate: false
- xy: 1191, 509
+ xy: 1227, 297
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
liquid-slag-medium
rotate: false
- xy: 768, 333
+ xy: 1879, 519
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+slag-icon-logic
+ rotate: false
+ xy: 1879, 519
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-slag-small
rotate: false
- xy: 1059, 499
+ xy: 423, 130
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-slag-tiny
rotate: false
- xy: 453, 665
+ xy: 427, 68
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-slag-xlarge
rotate: false
- xy: 1597, 559
+ xy: 1127, 565
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-water-large
rotate: false
- xy: 1233, 509
+ xy: 1361, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
liquid-water-medium
rotate: false
- xy: 765, 197
+ xy: 2015, 621
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+water-icon-logic
+ rotate: false
+ xy: 2015, 621
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-water-small
rotate: false
- xy: 391, 649
+ xy: 427, 104
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-water-tiny
rotate: false
- xy: 471, 683
+ xy: 533, 288
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-water-xlarge
rotate: false
- xy: 1647, 559
+ xy: 1127, 515
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+mace-icon-logic
+ rotate: false
+ xy: 1913, 519
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
mace-leg
rotate: false
- xy: 1531, 891
+ xy: 289, 819
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-outline
rotate: false
- xy: 1597, 891
+ xy: 355, 819
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-wreck0
rotate: false
- xy: 1663, 891
+ xy: 421, 819
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-wreck1
rotate: false
- xy: 1729, 891
+ xy: 487, 821
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-wreck2
rotate: false
- xy: 1795, 891
+ xy: 553, 821
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+mega-icon-logic
+ rotate: false
+ xy: 2015, 587
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+minke-icon-logic
+ rotate: false
+ xy: 467, 217
+ size: 27, 32
+ orig: 27, 32
+ offset: 0, 0
+ index: -1
missiles-mount-outline
rotate: false
- xy: 1797, 559
+ xy: 1127, 365
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+mono-icon-logic
+ rotate: false
+ xy: 1879, 485
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
mono-outline
rotate: false
- xy: 1947, 541
+ xy: 1177, 667
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-wreck0
rotate: false
- xy: 1997, 523
+ xy: 1177, 617
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-wreck1
rotate: false
- xy: 847, 605
+ xy: 1177, 567
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-wreck2
rotate: false
- xy: 897, 607
+ xy: 1177, 517
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-purple-weapon-outline
rotate: false
- xy: 997, 609
+ xy: 1177, 417
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-weapon-outline
rotate: false
- xy: 1097, 609
+ xy: 1177, 317
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+nova-icon-logic
+ rotate: false
+ xy: 1913, 485
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
nova-leg
rotate: false
- xy: 1197, 593
+ xy: 823, 363
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
nova-outline
rotate: false
- xy: 125, 70
+ xy: 677, 812
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-wreck0
rotate: false
- xy: 125, 12
+ xy: 669, 754
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-wreck1
rotate: false
- xy: 183, 128
+ xy: 669, 696
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-wreck2
rotate: false
- xy: 183, 70
+ xy: 669, 638
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
+oct-icon-logic
+ rotate: false
+ xy: 1947, 485
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+omura-icon-logic
+ rotate: false
+ xy: 2025, 727
+ size: 22, 32
+ orig: 22, 32
+ offset: 0, 0
+ index: -1
parallax
rotate: false
- xy: 603, 825
+ xy: 207, 547
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+poly-icon-logic
+ rotate: false
+ xy: 1943, 349
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
poly-outline
rotate: false
- xy: 241, 701
+ xy: 669, 464
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-wreck0
rotate: false
- xy: 299, 701
+ xy: 735, 821
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-wreck1
rotate: false
- xy: 357, 701
+ xy: 793, 821
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-wreck2
rotate: false
- xy: 415, 701
+ xy: 851, 821
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
+pulsar-icon-logic
+ rotate: false
+ xy: 1533, 303
+ size: 32, 27
+ orig: 32, 27
+ offset: 0, 0
+ index: -1
pulsar-leg
rotate: false
- xy: 1395, 825
+ xy: 339, 555
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pulsar-outline
rotate: false
- xy: 1, 823
+ xy: 1601, 965
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-wreck0
rotate: false
- xy: 71, 903
+ xy: 1671, 965
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-wreck1
rotate: false
- xy: 141, 963
+ xy: 1741, 965
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-wreck2
rotate: false
- xy: 1, 763
+ xy: 1811, 965
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
-repair-point
+quad-icon-logic
rotate: false
- xy: 799, 209
+ xy: 397, 156
+ size: 31, 31
+ orig: 31, 31
+ offset: 0, 0
+ index: -1
+quasar-icon-logic
+ rotate: false
+ xy: 1773, 325
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+reign-icon-logic
+ rotate: false
+ xy: 431, 195
+ size: 31, 20
+ orig: 31, 20
+ offset: 0, 0
+ index: -1
+repair-point
+ rotate: false
+ xy: 1807, 325
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+risso-icon-logic
+ rotate: false
+ xy: 329, 20
+ size: 28, 32
+ orig: 28, 32
+ offset: 0, 0
+ index: -1
+risso-outline
+ rotate: false
+ xy: 821, 945
+ size: 70, 78
+ orig: 70, 78
+ offset: 0, 0
+ index: -1
+risso-wreck0
+ rotate: false
+ xy: 893, 945
+ size: 70, 78
+ orig: 70, 78
+ offset: 0, 0
+ index: -1
+risso-wreck1
+ rotate: false
+ xy: 965, 945
+ size: 70, 78
+ orig: 70, 78
+ offset: 0, 0
+ index: -1
+risso-wreck2
+ rotate: false
+ xy: 1037, 945
+ size: 70, 78
+ orig: 70, 78
+ offset: 0, 0
+ index: -1
salvo
rotate: false
- xy: 1791, 825
+ xy: 207, 415
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scatter
rotate: false
- xy: 1923, 825
+ xy: 339, 423
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+scepter-icon-logic
+ rotate: false
+ xy: 2011, 321
+ size: 32, 26
+ orig: 32, 26
+ offset: 0, 0
+ index: -1
scepter-weapon-outline
rotate: false
- xy: 589, 655
+ xy: 1025, 775
size: 56, 102
orig: 56, 102
offset: 0, 0
index: -1
scorch
rotate: false
- xy: 870, 259
+ xy: 1567, 291
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
segment
rotate: false
- xy: 405, 759
+ xy: 139, 217
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+sei-icon-logic
+ rotate: false
+ xy: 1737, 291
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+sei-launcher-outline
+ rotate: false
+ xy: 1, 861
+ size: 80, 80
+ orig: 80, 80
+ offset: 0, 0
+ index: -1
+shock-mine-icon-logic
+ rotate: false
+ xy: 1873, 281
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
small-basic-weapon-outline
rotate: false
- xy: 1347, 551
+ xy: 977, 367
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
small-mount-weapon-outline
rotate: false
- xy: 1447, 509
+ xy: 383, 251
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spiroct-foot
rotate: false
- xy: 1897, 443
+ xy: 1227, 339
size: 46, 46
orig: 46, 46
offset: 0, 0
index: -1
+spiroct-icon-logic
+ rotate: false
+ xy: 329, 54
+ size: 31, 25
+ orig: 31, 25
+ offset: 0, 0
+ index: -1
spiroct-joint
rotate: false
- xy: 819, 61
+ xy: 1975, 281
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spiroct-leg
rotate: false
- xy: 1, 1
+ xy: 1, 14
size: 48, 34
orig: 48, 34
offset: 0, 0
index: -1
spiroct-leg-base
rotate: false
- xy: 1647, 523
+ xy: 1245, 787
size: 48, 34
orig: 48, 34
offset: 0, 0
index: -1
spiroct-weapon-outline
rotate: false
- xy: 1747, 501
+ xy: 1345, 765
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
splash-0
rotate: false
- xy: 819, 27
+ xy: 1533, 269
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-1
rotate: false
- xy: 853, 157
+ xy: 1567, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-10
rotate: false
- xy: 887, 21
+ xy: 1873, 247
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-11
rotate: false
- xy: 921, 157
+ xy: 1907, 247
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-2
rotate: false
- xy: 853, 123
+ xy: 1601, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-3
rotate: false
- xy: 887, 157
+ xy: 1635, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-4
rotate: false
- xy: 853, 89
+ xy: 1669, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-5
rotate: false
- xy: 887, 123
+ xy: 1703, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-6
rotate: false
- xy: 853, 55
+ xy: 1737, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-7
rotate: false
- xy: 887, 89
+ xy: 1771, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-8
rotate: false
- xy: 887, 55
+ xy: 1805, 257
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-9
rotate: false
- xy: 853, 21
+ xy: 1839, 247
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
swarmer
rotate: false
- xy: 1593, 759
+ xy: 537, 557
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+toxopid-icon-logic
+ rotate: false
+ xy: 496, 221
+ size: 26, 32
+ orig: 26, 32
+ offset: 0, 0
+ index: -1
unit-alpha-full
rotate: false
- xy: 1797, 509
+ xy: 1395, 773
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-beta-full
rotate: false
- xy: 647, 703
+ xy: 1083, 823
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
unit-crawler-full
rotate: false
- xy: 1847, 509
+ xy: 1445, 773
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-dagger-full
rotate: false
- xy: 1647, 473
+ xy: 1245, 737
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-flare-full
rotate: false
- xy: 1897, 491
+ xy: 1227, 687
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-gamma-full
rotate: false
- xy: 71, 833
+ xy: 1881, 955
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
+unit-horizon-full
+ rotate: false
+ xy: 1, 491
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
unit-mace-full
rotate: false
- xy: 1857, 759
+ xy: 603, 689
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
unit-mono-full
rotate: false
- xy: 1947, 491
+ xy: 1227, 637
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-nova-full
rotate: false
- xy: 705, 701
+ xy: 1141, 821
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
unit-poly-full
rotate: false
- xy: 763, 701
+ xy: 1083, 765
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
unit-pulsar-full
rotate: false
- xy: 141, 903
+ xy: 1951, 965
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
+unit-quasar-full
+ rotate: false
+ xy: 83, 943
+ size: 80, 80
+ orig: 80, 80
+ offset: 0, 0
+ index: -1
+unit-risso-full
+ rotate: false
+ xy: 1109, 945
+ size: 70, 78
+ orig: 70, 78
+ offset: 0, 0
+ index: -1
+vela-icon-logic
+ rotate: false
+ xy: 397, 189
+ size: 32, 26
+ orig: 32, 26
+ offset: 0, 0
+ index: -1
wave
rotate: false
- xy: 67, 499
+ xy: 273, 357
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+zenith-icon-logic
+ rotate: false
+ xy: 329, 81
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
zenith-missiles-outline
rotate: false
- xy: 1847, 459
+ xy: 1227, 387
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-blast-compound
rotate: false
- xy: 615, 61
+ xy: 1671, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-coal
rotate: false
- xy: 632, 333
+ xy: 1705, 427
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-copper
rotate: false
- xy: 629, 265
+ xy: 1739, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-graphite
rotate: false
- xy: 629, 197
+ xy: 1705, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-lead
rotate: false
- xy: 649, 163
+ xy: 1739, 427
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-metaglass
rotate: false
- xy: 649, 95
+ xy: 1739, 393
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-phase-fabric
rotate: false
- xy: 649, 27
+ xy: 1807, 461
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-plastanium
rotate: false
- xy: 666, 299
+ xy: 1807, 427
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-pyratite
rotate: false
- xy: 663, 231
+ xy: 1569, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-sand
rotate: false
- xy: 677, 367
+ xy: 1637, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap
rotate: false
- xy: 683, 129
+ xy: 1705, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-silicon
rotate: false
- xy: 683, 61
+ xy: 1773, 359
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-spore-pod
rotate: false
- xy: 700, 299
+ xy: 1845, 655
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-surge-alloy
rotate: false
- xy: 697, 231
+ xy: 1845, 621
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-thorium
rotate: false
- xy: 711, 367
+ xy: 1913, 689
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-titanium
rotate: false
- xy: 717, 129
+ xy: 1879, 621
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-cryofluid
rotate: false
- xy: 734, 333
+ xy: 1913, 621
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-oil
rotate: false
- xy: 731, 231
+ xy: 1981, 689
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-slag
rotate: false
- xy: 751, 27
+ xy: 2015, 655
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-water
rotate: false
- xy: 765, 231
+ xy: 1981, 621
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
blank
rotate: false
- xy: 799, 296
+ xy: 720, 407
size: 1, 1
orig: 1, 1
offset: 0, 0
index: -1
+circle-small
+ rotate: false
+ xy: 449, 305
+ size: 50, 50
+ orig: 50, 50
+ offset: 0, 0
+ index: -1
shape-3
rotate: false
- xy: 67, 302
+ xy: 471, 358
size: 63, 63
orig: 63, 63
offset: 0, 0
index: -1
alpha
rotate: false
- xy: 927, 709
+ xy: 588, 375
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-cell
rotate: false
- xy: 977, 709
+ xy: 553, 308
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
atrax-base
rotate: false
- xy: 211, 957
+ xy: 749, 879
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
beta
rotate: false
- xy: 67, 76
+ xy: 333, 301
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-cell
rotate: false
- xy: 1327, 709
+ xy: 727, 546
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler
rotate: false
- xy: 1627, 709
+ xy: 827, 721
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-base
rotate: false
- xy: 1677, 709
+ xy: 777, 621
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-cell
rotate: false
- xy: 1727, 709
+ xy: 827, 671
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger
rotate: false
- xy: 797, 651
+ xy: 827, 521
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-base
rotate: false
- xy: 847, 655
+ xy: 877, 571
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flare
rotate: false
- xy: 1447, 659
+ xy: 927, 667
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
fortress-base
rotate: false
- xy: 805, 891
+ xy: 75, 531
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+gamma
+ rotate: false
+ xy: 1181, 955
+ size: 68, 68
+ orig: 68, 68
+ offset: 0, 0
+ index: -1
gamma-cell
rotate: false
- xy: 129, 244
+ xy: 271, 131
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
+horizon
+ rotate: false
+ xy: 1, 787
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
+horizon-cell
+ rotate: false
+ xy: 83, 869
+ size: 72, 72
+ orig: 72, 72
+ offset: 0, 0
+ index: -1
mace
rotate: false
- xy: 1333, 891
+ xy: 73, 3
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-base
rotate: false
- xy: 1399, 891
+ xy: 157, 811
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-cell
rotate: false
- xy: 1465, 891
+ xy: 223, 819
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mono
rotate: false
- xy: 1847, 559
+ xy: 1127, 315
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-cell
rotate: false
- xy: 1897, 541
+ xy: 1177, 717
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
nova
rotate: false
- xy: 129, 186
+ xy: 271, 73
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-base
rotate: false
- xy: 1147, 609
+ xy: 773, 363
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
nova-cell
rotate: false
- xy: 125, 128
+ xy: 271, 15
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly
rotate: false
- xy: 183, 12
+ xy: 669, 580
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-cell
rotate: false
- xy: 132, 309
+ xy: 669, 522
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
power-cell
rotate: false
- xy: 473, 701
+ xy: 909, 821
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
pulsar
rotate: false
- xy: 71, 963
+ xy: 1531, 965
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-base
rotate: false
- xy: 1247, 593
+ xy: 877, 371
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
pulsar-cell
rotate: false
- xy: 67, 190
+ xy: 271, 245
size: 58, 48
orig: 58, 48
offset: 0, 0
index: -1
+risso
+ rotate: false
+ xy: 749, 945
+ size: 70, 78
+ orig: 70, 78
+ offset: 0, 0
+ index: -1
vanguard
rotate: false
- xy: 1997, 473
+ xy: 1227, 587
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
vanguard-cell
rotate: false
- xy: 1697, 451
+ xy: 1227, 537
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
artillery
rotate: false
- xy: 1227, 701
+ xy: 727, 754
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
+artillery-mount
+ rotate: false
+ xy: 533, 953
+ size: 70, 70
+ orig: 70, 70
+ offset: 0, 0
+ index: -1
eruption
rotate: false
- xy: 1197, 643
+ xy: 777, 413
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
flakgun
rotate: false
- xy: 1297, 651
+ xy: 877, 421
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flamethrower
rotate: false
- xy: 1347, 651
+ xy: 927, 717
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
heal-shotgun-weapon
rotate: false
- xy: 1993, 917
+ xy: 501, 306
size: 50, 50
orig: 50, 50
offset: 0, 0
index: -1
heal-weapon
rotate: false
- xy: 1697, 659
+ xy: 927, 567
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
heal-weapon-mount
rotate: false
- xy: 1747, 659
+ xy: 977, 617
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
large-artillery
rotate: false
- xy: 1897, 591
+ xy: 1077, 397
size: 48, 66
orig: 48, 66
offset: 0, 0
index: -1
+large-bullet-mount
+ rotate: false
+ xy: 1, 248
+ size: 70, 97
+ orig: 70, 97
+ offset: 0, 0
+ index: -1
+large-purple-mount
+ rotate: false
+ xy: 1, 50
+ size: 70, 97
+ orig: 70, 97
+ offset: 0, 0
+ index: -1
large-weapon
rotate: false
- xy: 1997, 573
+ xy: 1077, 347
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
missiles
rotate: false
- xy: 1697, 559
+ xy: 1127, 465
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
missiles-mount
rotate: false
- xy: 1747, 559
+ xy: 1127, 415
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-purple-weapon
rotate: false
- xy: 947, 609
+ xy: 1177, 467
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-weapon
rotate: false
- xy: 1047, 609
+ xy: 1177, 367
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
scepter-weapon
rotate: false
- xy: 531, 655
+ xy: 967, 775
size: 56, 102
orig: 56, 102
offset: 0, 0
index: -1
+sei-launcher
+ rotate: false
+ xy: 1, 943
+ size: 80, 80
+ orig: 80, 80
+ offset: 0, 0
+ index: -1
small-basic-weapon
rotate: false
- xy: 1297, 551
+ xy: 927, 367
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
small-mount-weapon
rotate: false
- xy: 1397, 551
+ xy: 333, 251
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
small-weapon
rotate: false
- xy: 1497, 509
+ xy: 433, 251
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spiroct-weapon
rotate: false
- xy: 1697, 501
+ xy: 1295, 765
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
weapon
rotate: false
- xy: 1747, 451
+ xy: 1227, 487
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
zenith-missiles
rotate: false
- xy: 1797, 459
+ xy: 1227, 437
size: 48, 48
orig: 48, 48
offset: 0, 0
@@ -11186,2261 +12642,2275 @@ filter: nearest,nearest
repeat: none
additive-reconstructor-icon-editor
rotate: false
- xy: 613, 763
+ xy: 613, 711
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
air-factory-icon-editor
rotate: false
- xy: 1847, 925
+ xy: 131, 35
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
alloy-smelter-icon-editor
rotate: false
- xy: 711, 763
+ xy: 453, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
arc-icon-editor
rotate: false
- xy: 1667, 627
+ xy: 1585, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-icon-editor
rotate: false
- xy: 423, 375
+ xy: 1619, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+basalt-boulder-icon-editor
+ rotate: false
+ xy: 1985, 823
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
basalt-icon-editor
rotate: false
- xy: 423, 341
+ xy: 1653, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-basalt1
rotate: false
- xy: 423, 341
+ xy: 1653, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery-icon-editor
rotate: false
- xy: 423, 307
+ xy: 1687, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery-large-icon-editor
rotate: false
- xy: 1945, 925
+ xy: 711, 711
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
blast-drill-icon-editor
rotate: false
- xy: 1, 23
+ xy: 1, 3
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-mixer-icon-editor
rotate: false
- xy: 1397, 827
+ xy: 227, 293
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-border-editor
rotate: false
- xy: 423, 273
+ xy: 1721, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-forge-icon-editor
rotate: false
- xy: 809, 763
+ xy: 809, 743
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-loader-icon-editor
rotate: false
- xy: 227, 281
+ xy: 907, 743
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-unloader-icon-editor
rotate: false
- xy: 227, 183
+ xy: 1005, 743
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
boulder-icon-editor
rotate: false
- xy: 1793, 843
+ xy: 1137, 561
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
bridge-conduit-icon-editor
rotate: false
- xy: 423, 239
+ xy: 1755, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-icon-editor
rotate: false
- xy: 327, 81
+ xy: 1789, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
char-icon-editor
rotate: false
- xy: 361, 81
+ xy: 1823, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-char1
rotate: false
- xy: 361, 81
+ xy: 1823, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
clear-editor
rotate: false
- xy: 2043, 1020
+ xy: 2041, 1000
size: 1, 1
orig: 1, 1
offset: 0, 0
index: -1
cliff-icon-editor
rotate: false
- xy: 1009, 497
+ xy: 1857, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
coal-centrifuge-icon-editor
rotate: false
- xy: 1463, 827
+ xy: 227, 227
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
combustion-generator-icon-editor
rotate: false
- xy: 1043, 497
+ xy: 1891, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
command-center-icon-editor
rotate: false
- xy: 1529, 827
+ xy: 227, 161
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
conduit-icon-editor
rotate: false
- xy: 1077, 497
+ xy: 1925, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
container-icon-editor
rotate: false
- xy: 1595, 827
+ xy: 1137, 677
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
conveyor-icon-editor
rotate: false
- xy: 1111, 497
+ xy: 1959, 609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
copper-wall-icon-editor
rotate: false
- xy: 1145, 497
+ xy: 131, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
copper-wall-large-icon-editor
rotate: false
- xy: 1661, 827
+ xy: 1137, 611
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
core-foundation-icon-editor
rotate: false
- xy: 323, 409
+ xy: 1131, 873
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-nucleus-icon-editor
rotate: false
- xy: 613, 861
+ xy: 807, 841
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-shard-icon-editor
rotate: false
- xy: 517, 635
+ xy: 549, 613
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
craters-icon-editor
rotate: false
- xy: 1179, 497
+ xy: 165, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-craters1
rotate: false
- xy: 1179, 497
+ xy: 165, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cryofluid-mixer-icon-editor
rotate: false
- xy: 1727, 827
+ xy: 293, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator-icon-editor
rotate: false
- xy: 943, 501
+ xy: 293, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cyclone-icon-editor
rotate: false
- xy: 131, 55
+ xy: 549, 515
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
dacite-boulder-icon-editor
rotate: false
- xy: 1667, 711
+ xy: 1335, 593
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dacite-icon-editor
rotate: false
- xy: 1213, 497
+ xy: 425, 157
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dacite1
rotate: false
- xy: 1213, 497
+ xy: 425, 157
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dacite-wall-icon-editor
rotate: false
- xy: 1247, 497
+ xy: 519, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-metal-icon-editor
rotate: false
- xy: 1281, 497
+ xy: 459, 157
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-1-icon-editor
rotate: false
- xy: 1315, 497
+ xy: 519, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-1
rotate: false
- xy: 1315, 497
+ xy: 519, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-2-icon-editor
rotate: false
- xy: 1349, 497
+ xy: 1109, 415
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-2
rotate: false
- xy: 1349, 497
+ xy: 1109, 415
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-3-icon-editor
rotate: false
- xy: 649, 435
+ xy: 1109, 381
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-3
rotate: false
- xy: 649, 435
+ xy: 1109, 381
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-4-icon-editor
rotate: false
- xy: 683, 435
+ xy: 199, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-4
rotate: false
- xy: 683, 435
+ xy: 199, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-5-icon-editor
rotate: false
- xy: 717, 435
+ xy: 1995, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-5
rotate: false
- xy: 717, 435
+ xy: 1995, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-6-icon-editor
rotate: false
- xy: 751, 435
+ xy: 1995, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-6
rotate: false
- xy: 751, 435
+ xy: 1995, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
darksand-icon-editor
rotate: false
- xy: 785, 435
+ xy: 1995, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand1
rotate: false
- xy: 785, 435
+ xy: 1995, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
darksand-tainted-water-icon-editor
rotate: false
- xy: 819, 435
+ xy: 1995, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
darksand-water-icon-editor
rotate: false
- xy: 853, 435
+ xy: 1139, 527
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
deepwater-icon-editor
rotate: false
- xy: 887, 435
+ xy: 1139, 493
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-deepwater
rotate: false
- xy: 887, 435
+ xy: 1139, 493
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
differential-generator-icon-editor
rotate: false
- xy: 517, 537
+ xy: 647, 613
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
diode-icon-editor
rotate: false
- xy: 395, 81
+ xy: 1139, 459
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dirt-icon-editor
rotate: false
- xy: 1383, 497
+ xy: 1143, 425
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dirt1
rotate: false
- xy: 1383, 497
+ xy: 1143, 425
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dirt-wall-icon-editor
rotate: false
- xy: 1793, 809
+ xy: 1143, 391
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
disassembler-icon-editor
rotate: false
- xy: 325, 311
+ xy: 647, 515
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
distributor-icon-editor
rotate: false
- xy: 1007, 729
+ xy: 359, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door-icon-editor
rotate: false
- xy: 1783, 775
+ xy: 1335, 559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
door-large-icon-editor
rotate: false
- xy: 1007, 663
+ xy: 359, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
dune-wall-icon-editor
rotate: false
- xy: 1717, 727
+ xy: 1369, 559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
duo-icon-editor
rotate: false
- xy: 1717, 693
+ xy: 1403, 559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-basalt2
rotate: false
- xy: 1717, 659
+ xy: 1437, 559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-basalt3
rotate: false
- xy: 1701, 625
+ xy: 1471, 559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-char2
rotate: false
- xy: 1735, 625
+ xy: 1505, 559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-char3
rotate: false
- xy: 985, 463
+ xy: 1539, 559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-craters2
rotate: false
- xy: 1019, 463
+ xy: 1585, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-craters3
rotate: false
- xy: 1053, 463
+ xy: 1619, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dacite2
rotate: false
- xy: 1087, 463
+ xy: 1653, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dacite3
rotate: false
- xy: 1121, 463
+ xy: 1687, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-tainted-water1
rotate: false
- xy: 1223, 463
+ xy: 1789, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-tainted-water2
rotate: false
- xy: 1257, 463
+ xy: 1823, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-tainted-water3
rotate: false
- xy: 1291, 463
+ xy: 1857, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-water1
rotate: false
- xy: 1325, 463
+ xy: 1891, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-water2
rotate: false
- xy: 1359, 463
+ xy: 1925, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-water3
rotate: false
- xy: 1393, 463
+ xy: 1959, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand2
rotate: false
- xy: 1155, 463
+ xy: 1721, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand3
rotate: false
- xy: 1189, 463
+ xy: 1755, 575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dirt2
rotate: false
- xy: 1817, 775
+ xy: 1173, 527
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dirt3
rotate: false
- xy: 1851, 793
+ xy: 1173, 493
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-grass1
rotate: false
- xy: 1885, 793
+ xy: 1173, 459
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
grass-icon-editor
rotate: false
- xy: 1885, 793
+ xy: 1173, 459
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-grass2
rotate: false
- xy: 1919, 793
+ xy: 1177, 425
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-grass3
rotate: false
- xy: 1953, 793
+ xy: 1177, 391
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-hotrock1
rotate: false
- xy: 1987, 793
+ xy: 1207, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
hotrock-icon-editor
rotate: false
- xy: 1987, 793
+ xy: 1207, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-hotrock2
rotate: false
- xy: 1851, 759
+ xy: 1241, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-hotrock3
rotate: false
- xy: 1885, 759
+ xy: 1207, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice-snow1
rotate: false
- xy: 425, 205
+ xy: 1241, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
ice-snow-icon-editor
rotate: false
- xy: 425, 205
+ xy: 1241, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice-snow2
rotate: false
- xy: 425, 171
+ xy: 1275, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice-snow3
rotate: false
- xy: 425, 137
+ xy: 1275, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice1
rotate: false
- xy: 1919, 759
+ xy: 1275, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
ice-icon-editor
rotate: false
- xy: 1919, 759
+ xy: 1275, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice2
rotate: false
- xy: 1953, 759
+ xy: 1207, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice3
rotate: false
- xy: 1987, 759
+ xy: 1241, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-magmarock1
rotate: false
- xy: 429, 103
+ xy: 1211, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
magmarock-icon-editor
rotate: false
- xy: 429, 103
+ xy: 1211, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-magmarock2
rotate: false
- xy: 429, 69
+ xy: 1211, 407
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-magmarock3
rotate: false
- xy: 231, 51
+ xy: 1245, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor
rotate: false
- xy: 265, 51
+ xy: 1245, 407
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-icon-editor
rotate: false
- xy: 265, 51
+ xy: 1245, 407
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-2
rotate: false
- xy: 231, 17
+ xy: 1279, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-2-icon-editor
rotate: false
- xy: 231, 17
+ xy: 1279, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-3
rotate: false
- xy: 265, 17
+ xy: 1279, 407
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-3-icon-editor
rotate: false
- xy: 265, 17
+ xy: 1279, 407
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-5
rotate: false
- xy: 299, 47
+ xy: 1211, 373
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-5-icon-editor
rotate: false
- xy: 299, 47
+ xy: 1211, 373
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-damaged1
rotate: false
- xy: 333, 47
+ xy: 1245, 373
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-damaged-icon-editor
rotate: false
- xy: 333, 47
+ xy: 1245, 373
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-damaged2
rotate: false
- xy: 367, 47
+ xy: 1279, 373
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-damaged3
rotate: false
- xy: 299, 13
+ xy: 1143, 357
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-moss1
rotate: false
- xy: 333, 13
+ xy: 1177, 357
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
moss-icon-editor
rotate: false
- xy: 333, 13
+ xy: 1177, 357
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-moss2
rotate: false
- xy: 367, 13
+ xy: 1211, 339
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-moss3
rotate: false
- xy: 401, 35
+ xy: 1245, 339
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-mud1
rotate: false
- xy: 435, 35
+ xy: 1279, 339
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mud-icon-editor
rotate: false
- xy: 435, 35
+ xy: 1279, 339
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-mud2
rotate: false
- xy: 401, 1
+ xy: 1309, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-mud3
rotate: false
- xy: 435, 1
+ xy: 1309, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-coal1
rotate: false
- xy: 985, 429
+ xy: 1343, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-coal2
rotate: false
- xy: 1019, 429
+ xy: 1343, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-coal3
rotate: false
- xy: 1053, 429
+ xy: 1377, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-copper1
rotate: false
- xy: 1087, 429
+ xy: 1377, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-copper2
rotate: false
- xy: 1121, 429
+ xy: 1411, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-copper3
rotate: false
- xy: 1155, 429
+ xy: 1411, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-lead1
rotate: false
- xy: 1189, 429
+ xy: 1445, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-lead2
rotate: false
- xy: 1223, 429
+ xy: 1445, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-lead3
rotate: false
- xy: 1257, 429
+ xy: 1479, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-scrap1
rotate: false
- xy: 1291, 429
+ xy: 1479, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-scrap2
rotate: false
- xy: 1325, 429
+ xy: 1513, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-scrap3
rotate: false
- xy: 1359, 429
+ xy: 1513, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-thorium1
rotate: false
- xy: 1393, 429
+ xy: 1547, 525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-thorium2
rotate: false
- xy: 457, 405
+ xy: 1547, 491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-thorium3
rotate: false
- xy: 491, 405
+ xy: 1313, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-titanium1
rotate: false
- xy: 457, 371
+ xy: 1313, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-titanium2
rotate: false
- xy: 525, 405
+ xy: 1347, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-titanium3
rotate: false
- xy: 457, 337
+ xy: 1313, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-pebbles1
rotate: false
- xy: 491, 371
+ xy: 1347, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-pebbles2
rotate: false
- xy: 559, 405
+ xy: 1381, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-pebbles3
rotate: false
- xy: 457, 303
+ xy: 1313, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-salt
rotate: false
- xy: 491, 337
+ xy: 1347, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
salt-icon-editor
rotate: false
- xy: 491, 337
+ xy: 1347, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand-water1
rotate: false
- xy: 491, 303
+ xy: 1381, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand-water2
rotate: false
- xy: 525, 337
+ xy: 1415, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand-water3
rotate: false
- xy: 559, 371
+ xy: 1449, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand1
rotate: false
- xy: 525, 371
+ xy: 1381, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-icon-editor
rotate: false
- xy: 525, 371
+ xy: 1381, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand2
rotate: false
- xy: 593, 405
+ xy: 1415, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand3
rotate: false
- xy: 457, 269
+ xy: 1347, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-shale1
rotate: false
- xy: 491, 269
+ xy: 1381, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-icon-editor
rotate: false
- xy: 491, 269
+ xy: 1381, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-shale2
rotate: false
- xy: 525, 303
+ xy: 1415, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-shale3
rotate: false
- xy: 559, 337
+ xy: 1449, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-slag
rotate: false
- xy: 593, 371
+ xy: 1483, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
slag-icon-editor
rotate: false
- xy: 593, 371
+ xy: 1483, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-snow1
rotate: false
- xy: 525, 269
+ xy: 1415, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-snow2
rotate: false
- xy: 559, 303
+ xy: 1449, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-snow3
rotate: false
- xy: 593, 337
+ xy: 1483, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-space
rotate: false
- xy: 559, 269
+ xy: 1517, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
space-icon-editor
rotate: false
- xy: 559, 269
+ xy: 1517, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spawn
rotate: false
- xy: 593, 303
+ xy: 1449, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spore-moss1
rotate: false
- xy: 593, 269
+ xy: 1483, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spore-moss-icon-editor
rotate: false
- xy: 593, 269
+ xy: 1483, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spore-moss2
rotate: false
- xy: 627, 401
+ xy: 1517, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spore-moss3
rotate: false
- xy: 627, 367
+ xy: 1483, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-stone1
rotate: false
- xy: 661, 401
+ xy: 1517, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
stone-icon-editor
rotate: false
- xy: 661, 401
+ xy: 1517, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-stone2
rotate: false
- xy: 627, 333
+ xy: 1517, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-stone3
rotate: false
- xy: 661, 367
+ xy: 1551, 457
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tainted-water
rotate: false
- xy: 695, 401
+ xy: 1551, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tainted-water-icon-editor
rotate: false
- xy: 695, 401
+ xy: 1551, 423
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tar
rotate: false
- xy: 627, 299
+ xy: 1551, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tar-icon-editor
rotate: false
- xy: 627, 299
+ xy: 1551, 389
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tendrils1
rotate: false
- xy: 661, 333
+ xy: 1551, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tendrils2
rotate: false
- xy: 695, 367
+ xy: 1313, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tendrils3
rotate: false
- xy: 729, 401
+ xy: 1347, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-water
rotate: false
- xy: 661, 299
+ xy: 1381, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
water-icon-editor
rotate: false
- xy: 661, 299
+ xy: 1381, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
exponential-reconstructor-icon-editor
rotate: false
- xy: 1, 153
+ xy: 1, 133
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
force-projector-icon-editor
rotate: false
- xy: 325, 213
+ xy: 551, 417
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
foreshadow-icon-editor
rotate: false
- xy: 937, 893
+ xy: 1261, 873
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
fuse-icon-editor
rotate: false
- xy: 615, 665
+ xy: 649, 417
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
graphite-press-icon-editor
rotate: false
- xy: 1073, 729
+ xy: 293, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
ground-factory-icon-editor
rotate: false
- xy: 615, 567
+ xy: 745, 613
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
hail-icon-editor
rotate: false
- xy: 695, 333
+ xy: 1415, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
hyper-processor-icon-editor
rotate: false
- xy: 713, 665
+ xy: 745, 515
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
ice-wall-icon-editor
rotate: false
- xy: 729, 367
+ xy: 1449, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
illuminator-icon-editor
rotate: false
- xy: 763, 401
+ xy: 1483, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
impact-reactor-icon-editor
rotate: false
- xy: 1067, 893
+ xy: 1391, 873
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
incinerator-icon-editor
rotate: false
- xy: 695, 299
+ xy: 1517, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+interplanetary-accelerator-icon-editor
+ rotate: false
+ xy: 323, 487
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
inverted-sorter-icon-editor
rotate: false
- xy: 729, 333
+ xy: 1551, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-source-icon-editor
rotate: false
- xy: 763, 367
+ xy: 1581, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-void-icon-editor
rotate: false
- xy: 797, 401
+ xy: 1581, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
junction-icon-editor
rotate: false
- xy: 729, 299
+ xy: 1615, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
kiln-icon-editor
rotate: false
- xy: 1007, 597
+ xy: 359, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
lancer-icon-editor
rotate: false
- xy: 1073, 663
+ xy: 1203, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
large-logic-display-icon-editor
rotate: false
- xy: 323, 539
+ xy: 613, 809
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
laser-drill-icon-editor
rotate: false
- xy: 713, 567
+ xy: 747, 417
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
launch-pad-icon-editor
rotate: false
- xy: 811, 665
+ xy: 843, 645
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
launch-pad-large-icon-editor
rotate: false
- xy: 1197, 893
+ xy: 1521, 873
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
liquid-junction-icon-editor
rotate: false
- xy: 763, 333
+ xy: 1615, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-icon-editor
rotate: false
- xy: 797, 367
+ xy: 1649, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-source-icon-editor
rotate: false
- xy: 831, 401
+ xy: 1649, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-tank-icon-editor
rotate: false
- xy: 811, 567
+ xy: 843, 547
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
liquid-void-icon-editor
rotate: false
- xy: 763, 299
+ xy: 1683, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
logic-display-icon-editor
rotate: false
- xy: 229, 85
+ xy: 941, 645
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
logic-processor-icon-editor
rotate: false
- xy: 1139, 729
+ xy: 1203, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mass-driver-icon-editor
rotate: false
- xy: 327, 115
+ xy: 941, 547
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
mechanical-drill-icon-editor
rotate: false
- xy: 1073, 597
+ xy: 1269, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mechanical-pump-icon-editor
rotate: false
- xy: 797, 333
+ xy: 1683, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
meltdown-icon-editor
rotate: false
- xy: 1327, 893
+ xy: 1651, 873
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
melter-icon-editor
rotate: false
- xy: 831, 367
+ xy: 1717, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
memory-bank-icon-editor
rotate: false
- xy: 1139, 663
+ xy: 1269, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
memory-cell-icon-editor
rotate: false
- xy: 865, 401
+ xy: 1717, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mend-projector-icon-editor
rotate: false
- xy: 1205, 729
+ xy: 1335, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mender-icon-editor
rotate: false
- xy: 797, 299
+ xy: 1751, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
message-icon-editor
rotate: false
- xy: 831, 333
+ xy: 1751, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
micro-processor-icon-editor
rotate: false
- xy: 865, 367
+ xy: 1785, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
multi-press-icon-editor
rotate: false
- xy: 453, 439
+ xy: 845, 449
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
multiplicative-reconstructor-icon-editor
rotate: false
- xy: 775, 861
+ xy: 969, 841
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
naval-factory-icon-editor
rotate: false
- xy: 551, 439
+ xy: 943, 449
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-icon-editor
rotate: false
- xy: 649, 469
+ xy: 1039, 645
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-dome-icon-editor
rotate: false
- xy: 747, 469
+ xy: 1039, 547
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-projector-icon-editor
rotate: false
- xy: 1139, 597
+ xy: 1335, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
overflow-gate-icon-editor
rotate: false
- xy: 831, 299
+ xy: 1785, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
parallax-icon-editor
rotate: false
- xy: 1205, 663
+ xy: 1401, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
payload-conveyor-icon-editor
rotate: false
- xy: 845, 469
+ xy: 1041, 449
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-icon-editor
rotate: false
- xy: 1847, 827
+ xy: 1103, 743
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
pebbles-icon-editor
rotate: false
- xy: 865, 333
+ xy: 1819, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-icon-editor
rotate: false
- xy: 865, 299
+ xy: 1819, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-icon-editor
rotate: false
- xy: 627, 265
+ xy: 1853, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall-icon-editor
rotate: false
- xy: 661, 265
+ xy: 1853, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall-large-icon-editor
rotate: false
- xy: 1271, 729
+ xy: 1401, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
phase-weaver-icon-editor
rotate: false
- xy: 1205, 597
+ xy: 1467, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pine-icon-editor
rotate: false
- xy: 1733, 777
+ xy: 1385, 593
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
plastanium-compressor-icon-editor
rotate: false
- xy: 1271, 663
+ xy: 1467, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-conveyor-icon-editor
rotate: false
- xy: 695, 265
+ xy: 1887, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-wall-icon-editor
rotate: false
- xy: 729, 265
+ xy: 1887, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-wall-large-icon-editor
rotate: false
- xy: 1271, 597
+ xy: 1533, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plated-conduit-icon-editor
rotate: false
- xy: 763, 265
+ xy: 1921, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pneumatic-drill-icon-editor
rotate: false
- xy: 1337, 729
+ xy: 1533, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
power-node-icon-editor
rotate: false
- xy: 797, 265
+ xy: 1921, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-node-large-icon-editor
rotate: false
- xy: 1337, 663
+ xy: 1599, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
power-source-icon-editor
rotate: false
- xy: 831, 265
+ xy: 1955, 541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-void-icon-editor
rotate: false
- xy: 865, 265
+ xy: 1955, 507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-icon-editor
rotate: false
- xy: 899, 401
+ xy: 1585, 473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulverizer-icon-editor
rotate: false
- xy: 899, 367
+ xy: 1585, 439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pyratite-mixer-icon-editor
rotate: false
- xy: 1337, 597
+ xy: 1599, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
repair-point-icon-editor
rotate: false
- xy: 899, 333
+ xy: 1619, 473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
resupply-point-icon-editor
rotate: false
- xy: 1009, 531
+ xy: 1665, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
ripple-icon-editor
rotate: false
- xy: 1945, 827
+ xy: 1201, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
rotary-pump-icon-editor
rotate: false
- xy: 1075, 531
+ xy: 1665, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
router-icon-editor
rotate: false
- xy: 899, 299
+ xy: 1585, 405
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rtg-generator-icon-editor
rotate: false
- xy: 1141, 531
+ xy: 1731, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
salt-wall-icon-editor
rotate: false
- xy: 899, 265
+ xy: 1619, 439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
salvo-icon-editor
rotate: false
- xy: 1207, 531
+ xy: 1731, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
sand-boulder-icon-editor
rotate: false
- xy: 459, 235
+ xy: 1653, 473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-wall-icon-editor
rotate: false
- xy: 459, 201
+ xy: 1585, 371
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-water-icon-editor
rotate: false
- xy: 493, 235
+ xy: 1619, 405
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scatter-icon-editor
rotate: false
- xy: 1273, 531
+ xy: 1797, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scorch-icon-editor
rotate: false
- xy: 459, 167
+ xy: 1653, 439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall-gigantic-icon-editor
rotate: false
- xy: 1457, 893
+ xy: 1781, 873
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scrap-wall-huge-icon-editor
rotate: false
- xy: 907, 763
+ xy: 1299, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-icon-editor
rotate: false
- xy: 493, 201
+ xy: 1687, 473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall-large-icon-editor
rotate: false
- xy: 1339, 531
+ xy: 1797, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
segment-icon-editor
rotate: false
- xy: 1403, 761
+ xy: 1863, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator-icon-editor
rotate: false
- xy: 1403, 695
+ xy: 1863, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
shale-boulder-icon-editor
rotate: false
- xy: 527, 235
+ xy: 1585, 337
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-wall-icon-editor
rotate: false
- xy: 493, 167
+ xy: 1619, 371
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shock-mine-icon-editor
rotate: false
- xy: 527, 201
+ xy: 1653, 405
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shrubs-icon-editor
rotate: false
- xy: 561, 235
+ xy: 1687, 439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
silicon-crucible-icon-editor
rotate: false
- xy: 909, 665
+ xy: 1397, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
silicon-smelter-icon-editor
rotate: false
- xy: 1469, 761
+ xy: 1929, 709
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
snow-boulder-icon-editor
rotate: false
- xy: 1667, 661
+ xy: 1435, 593
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
snow-icon-editor
rotate: false
- xy: 527, 167
+ xy: 1721, 473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
snow-pine-icon-editor
rotate: false
- xy: 131, 5
+ xy: 1485, 593
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
snow-wall-icon-editor
rotate: false
- xy: 561, 201
+ xy: 1619, 337
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel-icon-editor
rotate: false
- xy: 561, 167
+ xy: 1653, 371
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel-large-icon-editor
rotate: false
- xy: 909, 567
+ xy: 1495, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
sorter-icon-editor
rotate: false
- xy: 463, 133
+ xy: 1687, 405
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spawn-icon-editor
rotate: false
- xy: 463, 99
+ xy: 1721, 439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spectre-icon-editor
rotate: false
- xy: 1587, 893
+ xy: 1911, 873
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
spore-cluster-icon-editor
rotate: false
- xy: 943, 459
+ xy: 1985, 781
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
spore-pine-icon-editor
rotate: false
- xy: 181, 5
+ xy: 1535, 593
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spore-press-icon-editor
rotate: false
- xy: 1403, 629
+ xy: 1929, 643
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-wall-icon-editor
rotate: false
- xy: 497, 133
+ xy: 1755, 473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
steam-generator-icon-editor
rotate: false
- xy: 1469, 695
+ xy: 453, 323
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
stone-wall-icon-editor
rotate: false
- xy: 497, 99
+ xy: 1653, 337
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-tower-icon-editor
rotate: false
- xy: 1535, 761
+ xy: 425, 257
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
surge-wall-icon-editor
rotate: false
- xy: 531, 133
+ xy: 1687, 371
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-wall-large-icon-editor
rotate: false
- xy: 1469, 629
+ xy: 425, 191
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
swarmer-icon-editor
rotate: false
- xy: 1535, 695
+ xy: 845, 383
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
switch-icon-editor
rotate: false
- xy: 531, 99
+ xy: 1721, 405
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tendrils-icon-editor
rotate: false
- xy: 565, 133
+ xy: 1755, 439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tetrative-reconstructor-icon-editor
rotate: false
- xy: 323, 733
+ xy: 323, 713
size: 288, 288
orig: 288, 288
offset: 0, 0
index: -1
thermal-generator-icon-editor
rotate: false
- xy: 1601, 761
+ xy: 911, 383
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thermal-pump-icon-editor
rotate: false
- xy: 1005, 795
+ xy: 1593, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-reactor-icon-editor
rotate: false
- xy: 1103, 795
+ xy: 1691, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-wall-icon-editor
rotate: false
- xy: 565, 99
+ xy: 1789, 473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
thorium-wall-large-icon-editor
rotate: false
- xy: 1535, 629
+ xy: 977, 383
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thruster-icon-editor
rotate: false
- xy: 1717, 893
+ xy: 323, 357
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
titanium-conveyor-icon-editor
rotate: false
- xy: 469, 65
+ xy: 1687, 337
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall-icon-editor
rotate: false
- xy: 469, 31
+ xy: 1721, 371
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall-large-icon-editor
rotate: false
- xy: 1601, 695
+ xy: 1043, 383
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
tsunami-icon-editor
rotate: false
- xy: 1201, 795
+ xy: 1789, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
underflow-gate-icon-editor
rotate: false
- xy: 503, 65
+ xy: 1755, 405
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unloader-icon-editor
rotate: false
- xy: 503, 31
+ xy: 1789, 439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
vault-icon-editor
rotate: false
- xy: 1299, 795
+ xy: 1887, 775
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
water-extractor-icon-editor
rotate: false
- xy: 1667, 761
+ xy: 1203, 577
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
wave-icon-editor
rotate: false
- xy: 1601, 629
+ xy: 1269, 577
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
white-tree-dead-icon-editor
rotate: false
- xy: 1, 701
+ xy: 1, 681
size: 320, 320
orig: 320, 320
offset: 0, 0
index: -1
white-tree-icon-editor
rotate: false
- xy: 1, 379
+ xy: 1, 359
size: 320, 320
orig: 320, 320
offset: 0, 0
@@ -13460,7 +14930,7 @@ alpha-bg
index: -1
bar
rotate: false
- xy: 950, 175
+ xy: 1455, 469
size: 27, 36
split: 9, 9, 9, 9
orig: 27, 36
@@ -13468,7 +14938,7 @@ bar
index: -1
bar-top
rotate: false
- xy: 950, 213
+ xy: 1455, 507
size: 27, 36
split: 9, 10, 9, 10
orig: 27, 36
@@ -13483,21 +14953,21 @@ block-additive-reconstructor-large
index: -1
block-additive-reconstructor-medium
rotate: false
- xy: 1571, 647
+ xy: 1185, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-additive-reconstructor-small
rotate: false
- xy: 2023, 789
+ xy: 945, 160
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-additive-reconstructor-tiny
rotate: false
- xy: 1549, 553
+ xy: 301, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13518,21 +14988,21 @@ block-air-factory-large
index: -1
block-air-factory-medium
rotate: false
- xy: 1605, 647
+ xy: 1219, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-air-factory-small
rotate: false
- xy: 1489, 399
+ xy: 1081, 189
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-air-factory-tiny
rotate: false
- xy: 1009, 47
+ xy: 319, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13546,28 +15016,28 @@ block-air-factory-xlarge
index: -1
block-alloy-smelter-large
rotate: false
- xy: 651, 283
+ xy: 501, 98
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-alloy-smelter-medium
rotate: false
- xy: 1639, 647
+ xy: 1253, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-alloy-smelter-small
rotate: false
- xy: 950, 115
+ xy: 1353, 179
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-alloy-smelter-tiny
rotate: false
- xy: 301, 1
+ xy: 337, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13581,28 +15051,28 @@ block-alloy-smelter-xlarge
index: -1
block-arc-large
rotate: false
- xy: 596, 191
+ xy: 651, 241
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-arc-medium
rotate: false
- xy: 1825, 689
+ xy: 1287, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-arc-small
rotate: false
- xy: 979, 204
+ xy: 1421, 247
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-arc-tiny
rotate: false
- xy: 319, 1
+ xy: 331, 598
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13616,28 +15086,28 @@ block-arc-xlarge
index: -1
block-armored-conveyor-large
rotate: false
- xy: 646, 241
+ xy: 696, 291
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-armored-conveyor-medium
rotate: false
- xy: 881, 571
+ xy: 1321, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-armored-conveyor-small
rotate: false
- xy: 979, 178
+ xy: 1455, 346
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-armored-conveyor-tiny
rotate: false
- xy: 337, 1
+ xy: 1085, 571
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13649,7499 +15119,7569 @@ block-armored-conveyor-xlarge
orig: 48, 48
offset: 0, 0
index: -1
-block-basalt-large
+block-basalt-boulder-large
rotate: false
- xy: 701, 324
+ xy: 551, 136
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-basalt-medium
+block-basalt-boulder-medium
rotate: false
- xy: 915, 571
+ xy: 1355, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-basalt-small
+block-basalt-boulder-small
rotate: false
- xy: 979, 152
+ xy: 1455, 320
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-basalt-tiny
+block-basalt-boulder-tiny
rotate: false
- xy: 1403, 333
+ xy: 1449, 146
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-basalt-xlarge
+block-basalt-boulder-xlarge
rotate: false
xy: 51, 478
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-battery-large
+block-basalt-large
rotate: false
- xy: 501, 74
+ xy: 601, 174
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-battery-large-large
+block-basalt-medium
rotate: false
- xy: 693, 282
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-battery-large-medium
- rotate: false
- xy: 877, 537
+ xy: 1389, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-battery-large-small
+block-basalt-small
rotate: false
- xy: 1455, 367
+ xy: 1455, 294
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-battery-large-tiny
+block-basalt-tiny
rotate: false
- xy: 331, 598
+ xy: 2025, 856
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-battery-large-xlarge
+block-basalt-xlarge
rotate: false
xy: 131, 558
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-battery-medium
+block-battery-large
rotate: false
- xy: 911, 537
+ xy: 543, 94
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-battery-large-large
+ rotate: false
+ xy: 593, 132
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-battery-large-medium
+ rotate: false
+ xy: 1071, 589
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-battery-small
+block-battery-large-small
rotate: false
- xy: 1421, 346
+ xy: 1455, 268
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-battery-tiny
+block-battery-large-tiny
rotate: false
xy: 309, 672
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-battery-xlarge
+block-battery-large-xlarge
rotate: false
xy: 181, 608
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-blast-drill-large
+block-battery-medium
rotate: false
- xy: 688, 240
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-blast-drill-medium
- rotate: false
- xy: 877, 503
+ xy: 1179, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-blast-drill-small
+block-battery-small
rotate: false
- xy: 485, 6
+ xy: 620, 5
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-blast-drill-tiny
+block-battery-tiny
rotate: false
xy: 331, 580
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-blast-drill-xlarge
+block-battery-xlarge
rotate: false
xy: 259, 769
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-blast-mixer-large
+block-blast-drill-large
rotate: false
- xy: 451, 35
+ xy: 585, 90
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-blast-mixer-medium
+block-blast-drill-medium
rotate: false
- xy: 911, 503
+ xy: 1213, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-blast-mixer-small
+block-blast-drill-small
rotate: false
- xy: 1013, 325
+ xy: 646, 5
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-blast-mixer-tiny
+block-blast-drill-tiny
rotate: false
- xy: 1681, 345
+ xy: 1553, 707
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-blast-mixer-xlarge
+block-blast-drill-xlarge
rotate: false
xy: 1, 378
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-block-forge-large
+block-blast-mixer-large
rotate: false
- xy: 493, 32
+ xy: 501, 56
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-block-forge-medium
+block-blast-mixer-medium
rotate: false
- xy: 877, 469
+ xy: 1247, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-block-forge-small
+block-blast-mixer-small
rotate: false
- xy: 1039, 325
+ xy: 672, 5
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-block-forge-tiny
+block-blast-mixer-tiny
rotate: false
xy: 355, 6
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-block-forge-xlarge
+block-blast-mixer-xlarge
rotate: false
xy: 51, 428
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-block-loader-large
+block-block-forge-large
rotate: false
- xy: 401, 8
+ xy: 543, 52
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-block-loader-medium
+block-block-forge-medium
rotate: false
- xy: 911, 469
+ xy: 1281, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-block-loader-small
+block-block-forge-small
rotate: false
- xy: 1065, 325
+ xy: 698, 5
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-block-loader-tiny
+block-block-forge-tiny
rotate: false
xy: 373, 6
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-block-loader-xlarge
+block-block-forge-xlarge
rotate: false
xy: 181, 558
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-block-unloader-large
+block-block-loader-large
rotate: false
- xy: 551, 91
+ xy: 585, 48
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-block-unloader-medium
+block-block-loader-medium
rotate: false
- xy: 877, 435
+ xy: 1315, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-block-unloader-small
+block-block-loader-small
rotate: false
- xy: 1091, 325
+ xy: 724, 5
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-block-unloader-tiny
+block-block-loader-tiny
rotate: false
- xy: 1421, 328
+ xy: 391, 6
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-block-unloader-xlarge
+block-block-loader-xlarge
rotate: false
xy: 259, 719
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-boulder-large
+block-block-unloader-large
rotate: false
- xy: 751, 536
+ xy: 651, 199
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-boulder-medium
+block-block-unloader-medium
rotate: false
- xy: 911, 435
+ xy: 1349, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-boulder-small
+block-block-unloader-small
rotate: false
- xy: 1117, 325
+ xy: 1387, 192
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-boulder-tiny
+block-block-unloader-tiny
rotate: false
- xy: 1403, 315
+ xy: 409, 7
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-boulder-xlarge
+block-block-unloader-xlarge
rotate: false
xy: 1, 328
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-bridge-conduit-large
+block-boulder-large
rotate: false
- xy: 751, 494
+ xy: 494, 14
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-bridge-conduit-medium
+block-boulder-medium
rotate: false
- xy: 877, 401
+ xy: 1383, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-bridge-conduit-small
+block-boulder-small
rotate: false
- xy: 1143, 325
+ xy: 1447, 242
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-bridge-conduit-tiny
+block-boulder-tiny
rotate: false
- xy: 1421, 310
+ xy: 427, 7
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-bridge-conduit-xlarge
+block-boulder-xlarge
rotate: false
xy: 51, 378
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-bridge-conveyor-large
+block-bridge-conduit-large
rotate: false
- xy: 793, 536
+ xy: 536, 10
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-bridge-conveyor-medium
+block-bridge-conduit-medium
rotate: false
- xy: 911, 401
+ xy: 1423, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-bridge-conveyor-small
+block-bridge-conduit-small
rotate: false
- xy: 1169, 325
+ xy: 1457, 669
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-bridge-conveyor-tiny
+block-bridge-conduit-tiny
rotate: false
- xy: 1371, 307
+ xy: 445, 7
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-bridge-conveyor-xlarge
+block-bridge-conduit-xlarge
rotate: false
xy: 259, 669
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-char-large
+block-bridge-conveyor-large
rotate: false
- xy: 751, 452
+ xy: 578, 6
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-char-medium
+block-bridge-conveyor-medium
rotate: false
- xy: 1673, 647
+ xy: 1417, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-char-small
+block-bridge-conveyor-small
rotate: false
- xy: 1195, 325
+ xy: 1483, 668
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-char-tiny
+block-bridge-conveyor-tiny
rotate: false
- xy: 1373, 289
+ xy: 463, 7
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-char-xlarge
+block-bridge-conveyor-xlarge
rotate: false
xy: 1, 278
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cliff-large
+block-char-large
rotate: false
- xy: 793, 494
+ xy: 643, 157
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cliff-medium
+block-char-medium
rotate: false
- xy: 1707, 649
+ xy: 881, 560
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cliff-small
+block-char-small
rotate: false
- xy: 1221, 325
+ xy: 1509, 668
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cliff-tiny
+block-char-tiny
rotate: false
- xy: 1373, 271
+ xy: 1107, 6
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cliff-xlarge
+block-char-xlarge
rotate: false
xy: 51, 328
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-coal-centrifuge-large
+block-cliff-large
rotate: false
- xy: 835, 536
+ xy: 635, 115
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-coal-centrifuge-medium
+block-cliff-medium
rotate: false
- xy: 1741, 658
+ xy: 915, 560
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-coal-centrifuge-small
+block-cliff-small
rotate: false
- xy: 1007, 299
+ xy: 1141, 6
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-coal-centrifuge-tiny
+block-cliff-tiny
rotate: false
- xy: 1373, 253
+ xy: 1561, 677
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-coal-centrifuge-xlarge
+block-cliff-xlarge
rotate: false
xy: 1, 228
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-combustion-generator-large
+block-coal-centrifuge-large
rotate: false
- xy: 751, 410
+ xy: 627, 73
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-combustion-generator-medium
+block-coal-centrifuge-medium
rotate: false
- xy: 1909, 731
+ xy: 949, 560
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-combustion-generator-small
+block-coal-centrifuge-small
rotate: false
- xy: 1033, 299
+ xy: 1167, 6
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-combustion-generator-tiny
+block-coal-centrifuge-tiny
rotate: false
- xy: 1373, 235
+ xy: 1579, 677
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-combustion-generator-xlarge
+block-coal-centrifuge-xlarge
rotate: false
xy: 51, 278
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-command-center-large
+block-combustion-generator-large
rotate: false
- xy: 793, 452
+ xy: 627, 31
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-command-center-medium
+block-combustion-generator-medium
rotate: false
- xy: 1867, 709
+ xy: 983, 560
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-command-center-small
+block-combustion-generator-small
rotate: false
- xy: 1059, 299
+ xy: 1193, 6
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-command-center-tiny
+block-combustion-generator-tiny
rotate: false
- xy: 1439, 323
+ xy: 1597, 677
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-command-center-xlarge
+block-combustion-generator-xlarge
rotate: false
xy: 1, 178
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-conduit-large
+block-command-center-large
rotate: false
- xy: 835, 494
+ xy: 751, 536
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-conduit-medium
+block-command-center-medium
rotate: false
- xy: 1499, 597
+ xy: 1017, 560
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-conduit-small
+block-command-center-small
rotate: false
- xy: 1085, 299
+ xy: 1319, 153
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-conduit-tiny
+block-command-center-tiny
rotate: false
- xy: 1457, 323
+ xy: 1615, 677
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-conduit-xlarge
+block-command-center-xlarge
rotate: false
xy: 51, 228
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-container-large
+block-conduit-large
rotate: false
- xy: 751, 368
+ xy: 751, 494
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-container-medium
+block-conduit-medium
rotate: false
- xy: 1951, 749
+ xy: 877, 526
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-container-small
+block-conduit-small
rotate: false
- xy: 1111, 299
+ xy: 1345, 153
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-container-tiny
+block-conduit-tiny
rotate: false
- xy: 1475, 323
+ xy: 1563, 659
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-container-xlarge
+block-conduit-xlarge
rotate: false
xy: 1, 128
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-conveyor-large
+block-container-large
rotate: false
- xy: 793, 410
+ xy: 793, 536
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-conveyor-medium
+block-container-medium
rotate: false
- xy: 1007, 589
+ xy: 877, 492
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-conveyor-small
+block-container-small
rotate: false
- xy: 1137, 299
+ xy: 1473, 242
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-conveyor-tiny
+block-container-tiny
rotate: false
- xy: 1493, 323
+ xy: 1563, 641
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-conveyor-xlarge
+block-container-xlarge
rotate: false
xy: 51, 178
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-copper-wall-large
+block-conveyor-large
rotate: false
- xy: 835, 452
+ xy: 751, 452
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-copper-wall-large-large
+block-conveyor-medium
rotate: false
- xy: 793, 368
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-copper-wall-large-medium
- rotate: false
- xy: 1041, 589
+ xy: 911, 526
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-copper-wall-large-small
+block-conveyor-small
rotate: false
- xy: 1163, 299
+ xy: 1209, 142
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-copper-wall-large-tiny
+block-conveyor-tiny
rotate: false
- xy: 1439, 305
+ xy: 1581, 659
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-copper-wall-large-xlarge
+block-conveyor-xlarge
rotate: false
xy: 1, 78
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-copper-wall-medium
+block-copper-wall-large
rotate: false
- xy: 1075, 589
+ xy: 793, 494
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-copper-wall-large-large
+ rotate: false
+ xy: 835, 536
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-copper-wall-large-medium
+ rotate: false
+ xy: 877, 458
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-copper-wall-small
+block-copper-wall-large-small
rotate: false
- xy: 1189, 299
+ xy: 1209, 116
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-copper-wall-tiny
+block-copper-wall-large-tiny
rotate: false
- xy: 1457, 305
+ xy: 1563, 623
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-copper-wall-xlarge
+block-copper-wall-large-xlarge
rotate: false
xy: 51, 128
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-core-foundation-large
+block-copper-wall-medium
rotate: false
- xy: 835, 410
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-core-foundation-medium
- rotate: false
- xy: 1109, 589
+ xy: 945, 526
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-core-foundation-small
+block-copper-wall-small
rotate: false
- xy: 1215, 299
+ xy: 1209, 90
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-core-foundation-tiny
+block-copper-wall-tiny
rotate: false
- xy: 1475, 305
+ xy: 1599, 659
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-core-foundation-xlarge
+block-copper-wall-xlarge
rotate: false
xy: 1, 28
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-core-nucleus-large
+block-core-foundation-large
rotate: false
- xy: 835, 368
+ xy: 751, 410
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-core-nucleus-medium
+block-core-foundation-medium
rotate: false
- xy: 1143, 589
+ xy: 911, 492
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-core-nucleus-small
+block-core-foundation-small
rotate: false
- xy: 1009, 273
+ xy: 1209, 64
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-core-nucleus-tiny
+block-core-foundation-tiny
rotate: false
- xy: 1493, 305
+ xy: 1581, 641
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-core-nucleus-xlarge
+block-core-foundation-xlarge
rotate: false
xy: 51, 78
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-core-shard-large
+block-core-nucleus-large
rotate: false
- xy: 646, 199
+ xy: 793, 452
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-core-shard-medium
+block-core-nucleus-medium
rotate: false
- xy: 1177, 589
+ xy: 877, 424
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-core-shard-small
+block-core-nucleus-small
rotate: false
- xy: 1009, 247
+ xy: 1209, 38
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-core-shard-tiny
+block-core-nucleus-tiny
rotate: false
- xy: 2029, 661
+ xy: 1563, 605
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-core-shard-xlarge
+block-core-nucleus-xlarge
rotate: false
xy: 51, 28
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-craters-large
+block-core-shard-large
rotate: false
- xy: 688, 198
+ xy: 835, 494
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-craters-medium
+block-core-shard-medium
rotate: false
- xy: 1211, 589
+ xy: 979, 526
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-craters-small
+block-core-shard-small
rotate: false
- xy: 1035, 273
+ xy: 1235, 145
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-craters-tiny
+block-core-shard-tiny
rotate: false
- xy: 1365, 47
+ xy: 1581, 623
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-craters-xlarge
+block-core-shard-xlarge
rotate: false
xy: 857, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cryofluid-mixer-large
+block-craters-large
rotate: false
- xy: 543, 49
+ xy: 793, 410
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cryofluid-mixer-medium
+block-craters-medium
rotate: false
- xy: 1245, 589
+ xy: 945, 492
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cryofluid-mixer-small
+block-craters-small
rotate: false
- xy: 1035, 247
+ xy: 1235, 119
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cryofluid-mixer-tiny
+block-craters-tiny
rotate: false
- xy: 1365, 29
+ xy: 1599, 641
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cryofluid-mixer-xlarge
+block-craters-xlarge
rotate: false
xy: 907, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cultivator-large
+block-cryofluid-mixer-large
rotate: false
- xy: 535, 7
+ xy: 835, 452
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cultivator-medium
+block-cryofluid-mixer-medium
rotate: false
- xy: 1279, 589
+ xy: 911, 458
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cultivator-small
+block-cryofluid-mixer-small
rotate: false
- xy: 1061, 273
+ xy: 1261, 145
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cultivator-tiny
+block-cryofluid-mixer-tiny
rotate: false
- xy: 1365, 11
+ xy: 1563, 587
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cultivator-xlarge
+block-cryofluid-mixer-xlarge
rotate: false
xy: 957, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cyclone-large
+block-cultivator-large
rotate: false
- xy: 596, 149
+ xy: 835, 410
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cyclone-medium
+block-cultivator-medium
rotate: false
- xy: 1313, 589
+ xy: 877, 390
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cyclone-small
+block-cultivator-small
rotate: false
- xy: 1061, 247
+ xy: 1235, 93
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cyclone-tiny
+block-cultivator-tiny
rotate: false
- xy: 2030, 883
+ xy: 1581, 605
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cyclone-xlarge
+block-cultivator-xlarge
rotate: false
xy: 1007, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dacite-boulder-large
+block-cyclone-large
rotate: false
- xy: 638, 157
+ xy: 751, 368
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dacite-boulder-medium
+block-cyclone-medium
rotate: false
- xy: 1347, 589
+ xy: 1013, 526
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dacite-boulder-small
+block-cyclone-small
rotate: false
- xy: 1087, 273
+ xy: 1261, 119
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dacite-boulder-tiny
+block-cyclone-tiny
rotate: false
- xy: 2030, 865
+ xy: 1599, 623
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dacite-boulder-xlarge
+block-cyclone-xlarge
rotate: false
xy: 1057, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dacite-large
+block-dacite-boulder-large
rotate: false
- xy: 680, 156
+ xy: 793, 368
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dacite-medium
+block-dacite-boulder-medium
rotate: false
- xy: 1381, 589
+ xy: 979, 492
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dacite-small
+block-dacite-boulder-small
rotate: false
- xy: 1087, 247
+ xy: 1287, 145
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dacite-tiny
+block-dacite-boulder-tiny
rotate: false
- xy: 1373, 217
+ xy: 1563, 569
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dacite-wall-large
- rotate: false
- xy: 594, 107
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dacite-wall-medium
- rotate: false
- xy: 1415, 589
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-dacite-wall-small
- rotate: false
- xy: 1113, 273
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-dacite-wall-tiny
- rotate: false
- xy: 1697, 397
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-dacite-wall-xlarge
+block-dacite-boulder-xlarge
rotate: false
xy: 1107, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dacite-xlarge
+block-dacite-large
+ rotate: false
+ xy: 835, 368
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dacite-medium
+ rotate: false
+ xy: 945, 458
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dacite-small
+ rotate: false
+ xy: 1235, 67
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dacite-tiny
+ rotate: false
+ xy: 1581, 587
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-dacite-wall-large
+ rotate: false
+ xy: 746, 326
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dacite-wall-medium
+ rotate: false
+ xy: 911, 424
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dacite-wall-small
+ rotate: false
+ xy: 1261, 93
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dacite-wall-tiny
+ rotate: false
+ xy: 1599, 605
+ 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-metal-large
- rotate: false
- xy: 593, 65
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dark-metal-medium
- rotate: false
- xy: 949, 571
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-dark-metal-small
- rotate: false
- xy: 1113, 247
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-dark-metal-tiny
- rotate: false
- xy: 1697, 379
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-dark-metal-xlarge
+block-dacite-xlarge
rotate: false
xy: 1207, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-1-large
+block-dark-metal-large
rotate: false
- xy: 638, 115
+ xy: 788, 326
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-1-medium
+block-dark-metal-medium
rotate: false
- xy: 945, 537
+ xy: 1013, 492
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-1-small
+block-dark-metal-small
rotate: false
- xy: 1139, 273
+ xy: 1287, 119
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-1-tiny
+block-dark-metal-tiny
rotate: false
- xy: 1347, 209
+ xy: 1563, 551
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-1-xlarge
+block-dark-metal-xlarge
rotate: false
xy: 1257, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-2-large
+block-dark-panel-1-large
rotate: false
- xy: 680, 114
+ xy: 830, 326
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-2-medium
+block-dark-panel-1-medium
rotate: false
- xy: 945, 503
+ xy: 979, 458
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-2-small
+block-dark-panel-1-small
rotate: false
- xy: 1139, 247
+ xy: 1235, 41
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-2-tiny
+block-dark-panel-1-tiny
rotate: false
- xy: 1343, 191
+ xy: 1581, 569
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-2-xlarge
+block-dark-panel-1-xlarge
rotate: false
xy: 1307, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-3-large
+block-dark-panel-2-large
rotate: false
- xy: 743, 324
+ xy: 738, 284
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-3-medium
+block-dark-panel-2-medium
rotate: false
- xy: 945, 469
+ xy: 945, 424
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-3-small
+block-dark-panel-2-small
rotate: false
- xy: 1165, 273
+ xy: 1261, 67
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-3-tiny
+block-dark-panel-2-tiny
rotate: false
- xy: 1343, 173
+ xy: 1599, 587
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-3-xlarge
+block-dark-panel-2-xlarge
rotate: false
xy: 1357, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-4-large
+block-dark-panel-3-large
rotate: false
- xy: 735, 282
+ xy: 780, 284
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-4-medium
+block-dark-panel-3-medium
rotate: false
- xy: 945, 435
+ xy: 911, 390
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-4-small
+block-dark-panel-3-small
rotate: false
- xy: 1165, 247
+ xy: 1287, 93
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-4-tiny
+block-dark-panel-3-tiny
rotate: false
- xy: 1343, 155
+ xy: 1563, 533
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-4-xlarge
+block-dark-panel-3-xlarge
rotate: false
xy: 1407, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-5-large
+block-dark-panel-4-large
rotate: false
- xy: 730, 240
+ xy: 822, 284
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-5-medium
+block-dark-panel-4-medium
rotate: false
- xy: 945, 401
+ xy: 1013, 458
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-5-small
+block-dark-panel-4-small
rotate: false
- xy: 1191, 273
+ xy: 1261, 41
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-5-tiny
+block-dark-panel-4-tiny
rotate: false
- xy: 1343, 137
+ xy: 1563, 515
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-5-xlarge
+block-dark-panel-4-xlarge
rotate: false
xy: 1457, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-6-large
+block-dark-panel-5-large
rotate: false
- xy: 730, 198
+ xy: 696, 249
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-6-medium
+block-dark-panel-5-medium
rotate: false
- xy: 1901, 697
+ xy: 979, 424
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-6-small
+block-dark-panel-5-small
rotate: false
- xy: 1191, 247
+ xy: 1287, 67
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-6-tiny
+block-dark-panel-5-tiny
rotate: false
- xy: 1343, 119
+ xy: 1581, 551
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-6-xlarge
+block-dark-panel-5-xlarge
rotate: false
xy: 1507, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-darksand-large
+block-dark-panel-6-large
rotate: false
- xy: 722, 156
+ xy: 693, 207
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-darksand-medium
+block-dark-panel-6-medium
rotate: false
- xy: 1859, 675
+ xy: 945, 390
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-darksand-small
+block-dark-panel-6-small
rotate: false
- xy: 1217, 273
+ xy: 1287, 41
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-darksand-tainted-water-large
+block-dark-panel-6-tiny
rotate: false
- xy: 722, 114
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-darksand-tainted-water-medium
- rotate: false
- xy: 1893, 663
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-darksand-tainted-water-small
- rotate: false
- xy: 1217, 247
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-darksand-tainted-water-tiny
- rotate: false
- xy: 1655, 324
+ xy: 1599, 569
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-darksand-tainted-water-xlarge
+block-dark-panel-6-xlarge
rotate: false
xy: 1557, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-darksand-tiny
+block-darksand-large
rotate: false
- xy: 1652, 306
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-darksand-water-large
- rotate: false
- xy: 785, 326
+ xy: 738, 242
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-darksand-water-medium
+block-darksand-medium
rotate: false
- xy: 1943, 715
+ xy: 1013, 424
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-darksand-water-small
+block-darksand-small
rotate: false
- xy: 1009, 221
+ xy: 1313, 127
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-darksand-water-tiny
+block-darksand-tainted-water-large
rotate: false
- xy: 1673, 324
+ xy: 780, 242
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-darksand-tainted-water-medium
+ rotate: false
+ xy: 979, 390
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-darksand-tainted-water-small
+ rotate: false
+ xy: 1313, 101
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-darksand-tainted-water-tiny
+ rotate: false
+ xy: 1581, 533
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-darksand-water-xlarge
+block-darksand-tainted-water-xlarge
rotate: false
xy: 1607, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-darksand-xlarge
+block-darksand-tiny
+ rotate: false
+ xy: 1581, 515
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-darksand-water-large
+ rotate: false
+ xy: 822, 242
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-darksand-water-medium
+ rotate: false
+ xy: 1013, 390
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-darksand-water-small
+ rotate: false
+ xy: 1339, 127
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-darksand-water-tiny
+ rotate: false
+ xy: 1599, 551
+ 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-deepwater-large
- rotate: false
- xy: 827, 326
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-deepwater-medium
- rotate: false
- xy: 1935, 681
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-deepwater-small
- rotate: false
- xy: 1035, 221
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-deepwater-tiny
- rotate: false
- xy: 1670, 306
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-deepwater-xlarge
+block-darksand-xlarge
rotate: false
xy: 1707, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-differential-generator-large
+block-deepwater-large
rotate: false
- xy: 577, 7
+ xy: 735, 200
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-differential-generator-medium
+block-deepwater-medium
rotate: false
- xy: 1927, 647
+ xy: 914, 356
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-differential-generator-small
+block-deepwater-small
rotate: false
- xy: 1061, 221
+ xy: 1313, 75
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-differential-generator-tiny
+block-deepwater-tiny
rotate: false
- xy: 1691, 327
+ xy: 1599, 533
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-differential-generator-xlarge
+block-deepwater-xlarge
rotate: false
xy: 1757, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-diode-large
+block-differential-generator-large
rotate: false
- xy: 777, 282
+ xy: 777, 200
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-diode-medium
+block-differential-generator-medium
rotate: false
- xy: 1741, 624
+ xy: 948, 356
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-diode-small
+block-differential-generator-small
rotate: false
- xy: 1087, 221
+ xy: 1339, 101
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-diode-tiny
+block-differential-generator-tiny
rotate: false
- xy: 1511, 319
+ xy: 1599, 515
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-diode-xlarge
+block-differential-generator-xlarge
rotate: false
xy: 1807, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dirt-large
+block-diode-large
rotate: false
- xy: 772, 240
+ xy: 819, 200
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dirt-medium
+block-diode-medium
rotate: false
- xy: 1707, 615
+ xy: 982, 356
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dirt-small
+block-diode-small
rotate: false
- xy: 1113, 221
+ xy: 1313, 49
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dirt-tiny
+block-diode-tiny
rotate: false
- xy: 1529, 319
+ xy: 1588, 497
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dirt-wall-large
- rotate: false
- xy: 772, 198
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dirt-wall-medium
- rotate: false
- xy: 1741, 590
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-dirt-wall-small
- rotate: false
- xy: 1139, 221
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-dirt-wall-tiny
- rotate: false
- xy: 1547, 319
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-dirt-wall-xlarge
+block-diode-xlarge
rotate: false
xy: 1857, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dirt-xlarge
+block-dirt-large
+ rotate: false
+ xy: 693, 165
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dirt-medium
+ rotate: false
+ xy: 1016, 356
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dirt-small
+ rotate: false
+ xy: 1339, 75
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dirt-tiny
+ rotate: false
+ xy: 1588, 479
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-dirt-wall-large
+ rotate: false
+ xy: 735, 158
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dirt-wall-medium
+ rotate: false
+ xy: 1105, 568
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dirt-wall-small
+ rotate: false
+ xy: 1339, 49
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dirt-wall-tiny
+ rotate: false
+ xy: 1588, 461
+ 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-disassembler-large
- rotate: false
- xy: 764, 156
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-disassembler-medium
- rotate: false
- xy: 1993, 815
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-disassembler-small
- rotate: false
- xy: 1165, 221
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-disassembler-tiny
- rotate: false
- xy: 1511, 301
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-disassembler-xlarge
+block-dirt-xlarge
rotate: false
xy: 1957, 975
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-distributor-large
+block-disassembler-large
rotate: false
- xy: 764, 114
+ xy: 777, 158
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-distributor-medium
+block-disassembler-medium
rotate: false
- xy: 1989, 781
+ xy: 1051, 555
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-distributor-small
+block-disassembler-small
rotate: false
- xy: 1191, 221
+ xy: 1219, 12
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-distributor-tiny
+block-disassembler-tiny
rotate: false
- xy: 1529, 301
+ xy: 1588, 443
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-distributor-xlarge
+block-disassembler-xlarge
rotate: false
xy: 345, 866
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-door-large
+block-distributor-large
rotate: false
- xy: 819, 284
+ xy: 819, 158
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-door-large-large
- rotate: false
- xy: 869, 326
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-door-large-medium
- rotate: false
- xy: 1985, 747
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-door-large-small
- rotate: false
- xy: 1217, 221
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-door-large-tiny
- rotate: false
- xy: 1547, 301
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-door-large-xlarge
- rotate: false
- xy: 395, 866
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-door-medium
- rotate: false
- xy: 1977, 713
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-door-small
- rotate: false
- xy: 1005, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-door-tiny
- rotate: false
- xy: 1565, 307
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-door-xlarge
- rotate: false
- xy: 445, 866
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-dune-wall-large
- rotate: false
- xy: 861, 284
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dune-wall-medium
- rotate: false
- xy: 1969, 679
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-dune-wall-small
- rotate: false
- xy: 1005, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-dune-wall-tiny
- rotate: false
- xy: 1583, 307
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-dune-wall-xlarge
- rotate: false
- xy: 495, 866
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-duo-large
- rotate: false
- xy: 806, 156
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-duo-medium
- rotate: false
- xy: 1961, 645
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-duo-small
- rotate: false
- xy: 1031, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-duo-tiny
- rotate: false
- xy: 1601, 298
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-duo-xlarge
- rotate: false
- xy: 545, 866
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-exponential-reconstructor-large
- rotate: false
- xy: 806, 114
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-exponential-reconstructor-medium
- rotate: false
- xy: 1775, 658
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-exponential-reconstructor-small
- rotate: false
- xy: 1031, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-exponential-reconstructor-tiny
- rotate: false
- xy: 1565, 289
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-exponential-reconstructor-xlarge
- rotate: false
- xy: 595, 866
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-force-projector-large
- rotate: false
- xy: 903, 284
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-force-projector-medium
- rotate: false
- xy: 1775, 624
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-force-projector-small
- rotate: false
- xy: 1057, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-force-projector-tiny
- rotate: false
- xy: 1583, 289
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-force-projector-xlarge
- rotate: false
- xy: 645, 866
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-foreshadow-large
- rotate: false
- xy: 821, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-foreshadow-medium
- rotate: false
- xy: 1775, 590
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-foreshadow-small
- rotate: false
- xy: 1057, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-foreshadow-tiny
- rotate: false
- xy: 1601, 280
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-foreshadow-xlarge
- rotate: false
- xy: 695, 866
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-fuse-large
- rotate: false
- xy: 863, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-fuse-medium
- rotate: false
- xy: 1809, 655
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-fuse-small
- rotate: false
- xy: 1083, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-fuse-tiny
- rotate: false
- xy: 1619, 293
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-fuse-xlarge
- rotate: false
- xy: 101, 478
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-graphite-press-large
- rotate: false
- xy: 905, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-graphite-press-medium
- rotate: false
- xy: 1809, 621
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-graphite-press-small
- rotate: false
- xy: 1083, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-graphite-press-tiny
- rotate: false
- xy: 1619, 275
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-graphite-press-xlarge
- rotate: false
- xy: 101, 428
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-grass-large
- rotate: false
- xy: 947, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-grass-medium
- rotate: false
- xy: 1809, 587
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-grass-small
- rotate: false
- xy: 1109, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-grass-tiny
- rotate: false
- xy: 1361, 191
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-grass-xlarge
- rotate: false
- xy: 101, 378
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ground-factory-large
- rotate: false
- xy: 989, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ground-factory-medium
- rotate: false
- xy: 1843, 641
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ground-factory-small
- rotate: false
- xy: 1109, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ground-factory-tiny
- rotate: false
- xy: 1361, 173
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ground-factory-xlarge
- rotate: false
- xy: 101, 328
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-hail-large
- rotate: false
- xy: 1031, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-hail-medium
- rotate: false
- xy: 1843, 607
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-hail-small
- rotate: false
- xy: 1135, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-hail-tiny
- rotate: false
- xy: 1361, 155
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-hail-xlarge
- rotate: false
- xy: 101, 278
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-hotrock-large
- rotate: false
- xy: 1073, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-hotrock-medium
- rotate: false
- xy: 1843, 573
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-hotrock-small
- rotate: false
- xy: 1135, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-hotrock-tiny
- rotate: false
- xy: 1361, 137
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-hotrock-xlarge
- rotate: false
- xy: 101, 228
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-hyper-processor-large
- rotate: false
- xy: 1115, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-hyper-processor-medium
- rotate: false
- xy: 1877, 629
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-hyper-processor-small
- rotate: false
- xy: 1161, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-hyper-processor-tiny
- rotate: false
- xy: 1361, 119
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-hyper-processor-xlarge
- rotate: false
- xy: 101, 178
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ice-large
- rotate: false
- xy: 1157, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ice-medium
- rotate: false
- xy: 1877, 595
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ice-small
- rotate: false
- xy: 1161, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ice-snow-large
- rotate: false
- xy: 1199, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ice-snow-medium
- rotate: false
- xy: 1877, 561
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ice-snow-small
- rotate: false
- xy: 1187, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ice-snow-tiny
- rotate: false
- xy: 1366, 101
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ice-snow-xlarge
- rotate: false
- xy: 101, 128
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ice-tiny
- rotate: false
- xy: 1379, 199
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ice-wall-large
- rotate: false
- xy: 1241, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ice-wall-medium
- rotate: false
- xy: 1911, 613
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ice-wall-small
- rotate: false
- xy: 1187, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ice-wall-tiny
- rotate: false
- xy: 1379, 181
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ice-wall-xlarge
- rotate: false
- xy: 101, 78
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-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: 1283, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-illuminator-medium
- rotate: false
- xy: 1911, 579
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-illuminator-small
- rotate: false
- xy: 1213, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-illuminator-tiny
- rotate: false
- xy: 1379, 163
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-illuminator-xlarge
- rotate: false
- xy: 231, 608
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-impact-reactor-large
- rotate: false
- xy: 1325, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-impact-reactor-medium
- rotate: false
- xy: 1945, 611
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-impact-reactor-small
- rotate: false
- xy: 1213, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-impact-reactor-tiny
- rotate: false
- xy: 1379, 145
- 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: 1367, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-incinerator-medium
- rotate: false
- xy: 1945, 577
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-incinerator-small
- rotate: false
- xy: 1005, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-incinerator-tiny
- rotate: false
- xy: 1379, 127
- 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: 1409, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-inverted-sorter-medium
- rotate: false
- xy: 1911, 545
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-inverted-sorter-small
- rotate: false
- xy: 1031, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-inverted-sorter-tiny
- rotate: false
- xy: 1384, 109
- 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: 1451, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-item-source-medium
- rotate: false
- xy: 1945, 543
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-item-source-small
- rotate: false
- xy: 1057, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-item-source-tiny
- rotate: false
- xy: 1384, 91
- 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: 1493, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-item-void-medium
- rotate: false
- xy: 1979, 611
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-item-void-small
- rotate: false
- xy: 1083, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-item-void-tiny
- rotate: false
- xy: 1373, 73
- 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: 1535, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-junction-medium
- rotate: false
- xy: 1979, 577
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-junction-small
- rotate: false
- xy: 1109, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-junction-tiny
- rotate: false
- xy: 1391, 73
- 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: 1577, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-kiln-medium
- rotate: false
- xy: 1979, 543
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-kiln-small
- rotate: false
- xy: 1135, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-kiln-tiny
- rotate: false
- xy: 1383, 55
- 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: 1619, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-lancer-medium
- rotate: false
- xy: 1995, 645
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-lancer-small
- rotate: false
- xy: 1161, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-lancer-tiny
- rotate: false
- xy: 1383, 37
- 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-large-logic-display-large
- rotate: false
- xy: 1661, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-large-logic-display-medium
- rotate: false
- xy: 2003, 679
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-large-logic-display-small
- rotate: false
- xy: 1187, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-large-logic-display-tiny
- rotate: false
- xy: 1383, 19
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-large-logic-display-xlarge
- rotate: false
- xy: 201, 408
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-laser-drill-large
- rotate: false
- xy: 1703, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-laser-drill-medium
- rotate: false
- xy: 2011, 713
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-laser-drill-small
- rotate: false
- xy: 1213, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-laser-drill-tiny
- rotate: false
- xy: 1383, 1
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-laser-drill-xlarge
- rotate: false
- xy: 151, 308
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-launch-pad-large
- rotate: false
- xy: 1745, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-launch-pad-large-large
- rotate: false
- xy: 1787, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-launch-pad-large-medium
- rotate: false
- xy: 2013, 611
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-launch-pad-large-small
- rotate: false
- xy: 979, 126
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-launch-pad-large-tiny
- rotate: false
- xy: 1401, 55
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-launch-pad-large-xlarge
- rotate: false
- xy: 201, 358
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-launch-pad-medium
- rotate: false
- xy: 2013, 577
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-launch-pad-small
- rotate: false
- xy: 976, 100
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-launch-pad-tiny
- rotate: false
- xy: 1401, 37
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-launch-pad-xlarge
- rotate: false
- xy: 151, 258
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-liquid-junction-large
- rotate: false
- xy: 1829, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-liquid-junction-medium
- rotate: false
- xy: 2013, 543
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-liquid-junction-small
- rotate: false
- xy: 1005, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-liquid-junction-tiny
- rotate: false
- xy: 1401, 19
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-liquid-junction-xlarge
- rotate: false
- xy: 201, 308
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-liquid-router-large
- rotate: false
- xy: 1871, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-liquid-router-medium
- rotate: false
- xy: 1536, 605
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-liquid-router-small
- rotate: false
- xy: 1031, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-liquid-router-tiny
- rotate: false
- xy: 1401, 1
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-liquid-router-xlarge
- rotate: false
- xy: 151, 208
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-liquid-source-large
- rotate: false
- xy: 1913, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-liquid-source-medium
- rotate: false
- xy: 1571, 613
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-liquid-source-small
- rotate: false
- xy: 1057, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-liquid-source-tiny
- rotate: false
- xy: 1703, 561
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-liquid-source-xlarge
- rotate: false
- xy: 201, 258
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-liquid-tank-large
- rotate: false
- xy: 1955, 933
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-liquid-tank-medium
- rotate: false
- xy: 1605, 613
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-liquid-tank-small
- rotate: false
- xy: 1083, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-liquid-tank-tiny
- rotate: false
- xy: 1721, 563
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-liquid-tank-xlarge
- rotate: false
- xy: 151, 158
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-liquid-void-large
- rotate: false
- xy: 845, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-liquid-void-medium
- rotate: false
- xy: 1639, 613
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-liquid-void-small
- rotate: false
- xy: 1109, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-liquid-void-tiny
- rotate: false
- xy: 1688, 306
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-liquid-void-xlarge
- rotate: false
- xy: 201, 208
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-logic-display-large
- rotate: false
- xy: 887, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-logic-display-medium
- rotate: false
- xy: 1673, 613
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-logic-display-small
- rotate: false
- xy: 1135, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-logic-display-tiny
- rotate: false
- xy: 1637, 288
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-logic-display-xlarge
- rotate: false
- xy: 151, 108
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-logic-processor-large
- rotate: false
- xy: 929, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-logic-processor-medium
- rotate: false
- xy: 1707, 581
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-logic-processor-small
- rotate: false
- xy: 1161, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-logic-processor-tiny
- rotate: false
- xy: 1655, 288
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-logic-processor-xlarge
- rotate: false
- xy: 201, 158
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-magmarock-large
- rotate: false
- xy: 971, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-magmarock-medium
- rotate: false
- xy: 1741, 556
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-magmarock-small
- rotate: false
- xy: 1187, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-magmarock-tiny
- rotate: false
- xy: 1673, 288
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-magmarock-xlarge
- rotate: false
- xy: 151, 58
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mass-driver-large
- rotate: false
- xy: 1013, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-mass-driver-medium
- rotate: false
- xy: 1775, 556
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-mass-driver-small
- rotate: false
- xy: 1213, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-mass-driver-tiny
- rotate: false
- xy: 1691, 288
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-mass-driver-xlarge
- rotate: false
- xy: 201, 108
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mechanical-drill-large
- rotate: false
- xy: 1055, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-mechanical-drill-medium
- rotate: false
- xy: 1809, 553
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-mechanical-drill-small
- rotate: false
- xy: 1002, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-mechanical-drill-tiny
- rotate: false
- xy: 1637, 270
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-mechanical-drill-xlarge
- rotate: false
- xy: 201, 58
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mechanical-pump-large
- rotate: false
- xy: 1097, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-mechanical-pump-medium
- rotate: false
- xy: 1843, 539
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-mechanical-pump-small
- rotate: false
- xy: 1028, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-mechanical-pump-tiny
- rotate: false
- xy: 1655, 270
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-mechanical-pump-xlarge
- rotate: false
- xy: 251, 508
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-meltdown-large
- rotate: false
- xy: 1139, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-meltdown-medium
- rotate: false
- xy: 1877, 527
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-meltdown-small
- rotate: false
- xy: 1054, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-meltdown-tiny
- rotate: false
- xy: 1673, 270
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-meltdown-xlarge
- rotate: false
- xy: 251, 458
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-melter-large
- rotate: false
- xy: 1181, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-melter-medium
- rotate: false
- xy: 1911, 511
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-melter-small
- rotate: false
- xy: 1080, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-melter-tiny
- rotate: false
- xy: 1691, 270
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-melter-xlarge
- rotate: false
- xy: 251, 408
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-memory-bank-large
- rotate: false
- xy: 1223, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-memory-bank-medium
- rotate: false
- xy: 1945, 509
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-memory-bank-small
- rotate: false
- xy: 1106, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-memory-bank-tiny
- rotate: false
- xy: 1721, 545
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-memory-bank-xlarge
- rotate: false
- xy: 251, 358
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-memory-cell-large
- rotate: false
- xy: 1265, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-memory-cell-medium
- rotate: false
- xy: 1979, 509
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-memory-cell-small
- rotate: false
- xy: 1132, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-memory-cell-tiny
- rotate: false
- xy: 1739, 538
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-memory-cell-xlarge
- rotate: false
- xy: 251, 308
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mend-projector-large
- rotate: false
- xy: 1307, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-mend-projector-medium
- rotate: false
- xy: 2013, 509
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-mend-projector-small
- rotate: false
- xy: 1158, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-mend-projector-tiny
- rotate: false
- xy: 1757, 538
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-mend-projector-xlarge
- rotate: false
- xy: 251, 258
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mender-large
- rotate: false
- xy: 1349, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-mender-medium
- rotate: false
- xy: 1449, 576
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-mender-small
- rotate: false
- xy: 1184, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-mender-tiny
- rotate: false
- xy: 1775, 538
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-mender-xlarge
- rotate: false
- xy: 251, 208
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-message-large
- rotate: false
- xy: 1391, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-message-medium
- rotate: false
- xy: 1570, 579
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-message-small
- rotate: false
- xy: 1210, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-message-tiny
- rotate: false
- xy: 1705, 527
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-message-xlarge
- rotate: false
- xy: 251, 158
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-metal-floor-2-large
- rotate: false
- xy: 1433, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-metal-floor-2-medium
- rotate: false
- xy: 1604, 579
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-metal-floor-2-small
- rotate: false
- xy: 1009, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-metal-floor-2-tiny
- rotate: false
- xy: 1705, 509
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-metal-floor-2-xlarge
- rotate: false
- xy: 251, 108
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-metal-floor-3-large
- rotate: false
- xy: 1475, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-metal-floor-3-medium
- rotate: false
- xy: 1638, 579
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-metal-floor-3-small
- rotate: false
- xy: 1035, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-metal-floor-3-tiny
- rotate: false
- xy: 1704, 491
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-metal-floor-3-xlarge
- rotate: false
- xy: 251, 58
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-metal-floor-5-large
- rotate: false
- xy: 1517, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-metal-floor-5-medium
- rotate: false
- xy: 1672, 579
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-metal-floor-5-small
- rotate: false
- xy: 1061, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-metal-floor-5-tiny
- rotate: false
- xy: 1704, 473
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-metal-floor-5-xlarge
- rotate: false
- xy: 151, 8
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-metal-floor-damaged-large
- rotate: false
- xy: 1559, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-metal-floor-damaged-medium
- rotate: false
- xy: 636, 81
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-metal-floor-damaged-small
- rotate: false
- xy: 1087, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-metal-floor-damaged-tiny
- rotate: false
- xy: 1704, 455
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-metal-floor-damaged-xlarge
- rotate: false
- xy: 201, 8
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-metal-floor-large
- rotate: false
- xy: 1601, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-metal-floor-medium
- rotate: false
- xy: 670, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-metal-floor-small
- rotate: false
- xy: 1113, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-metal-floor-tiny
- rotate: false
- xy: 1704, 437
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-metal-floor-xlarge
- rotate: false
- xy: 251, 8
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-micro-processor-large
- rotate: false
- xy: 1643, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-micro-processor-medium
- rotate: false
- xy: 704, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-micro-processor-small
- rotate: false
- xy: 1139, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-micro-processor-tiny
- rotate: false
- xy: 1704, 419
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-micro-processor-xlarge
- rotate: false
- xy: 281, 619
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-moss-large
- rotate: false
- xy: 1685, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-moss-medium
- rotate: false
- xy: 738, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-moss-small
- rotate: false
- xy: 1165, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-moss-tiny
- rotate: false
- xy: 1715, 401
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-moss-xlarge
- rotate: false
- xy: 281, 569
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mud-large
- rotate: false
- xy: 1727, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-mud-medium
- rotate: false
- xy: 772, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-mud-small
- rotate: false
- xy: 1191, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-mud-tiny
- rotate: false
- xy: 1715, 383
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-mud-xlarge
- rotate: false
- xy: 301, 519
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-multi-press-large
- rotate: false
- xy: 1769, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-multi-press-medium
- rotate: false
- xy: 806, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-multi-press-small
- rotate: false
- xy: 1217, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-multi-press-tiny
- rotate: false
- xy: 1715, 365
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-multi-press-xlarge
- rotate: false
- xy: 301, 469
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-multiplicative-reconstructor-large
- rotate: false
- xy: 1811, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-multiplicative-reconstructor-medium
- rotate: false
- xy: 635, 47
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-multiplicative-reconstructor-small
- rotate: false
- xy: 1447, 341
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-multiplicative-reconstructor-tiny
- rotate: false
- xy: 1723, 520
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-multiplicative-reconstructor-xlarge
- rotate: false
- xy: 301, 419
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-naval-factory-large
- rotate: false
- xy: 1853, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-naval-factory-medium
- rotate: false
- xy: 669, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-naval-factory-small
- rotate: false
- xy: 1236, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-naval-factory-tiny
- rotate: false
- xy: 1741, 520
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-naval-factory-xlarge
- rotate: false
- xy: 301, 369
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-oil-extractor-large
- rotate: false
- xy: 1895, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-oil-extractor-medium
- rotate: false
- xy: 703, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-oil-extractor-small
- rotate: false
- xy: 1243, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-oil-extractor-tiny
- rotate: false
- xy: 1759, 520
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-oil-extractor-xlarge
- rotate: false
- xy: 301, 319
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ore-coal-large
- rotate: false
- xy: 1937, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ore-coal-medium
- rotate: false
- xy: 737, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ore-coal-small
- rotate: false
- xy: 1523, 545
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ore-coal-tiny
- rotate: false
- xy: 1777, 520
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ore-coal-xlarge
- rotate: false
- xy: 301, 269
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ore-copper-large
- rotate: false
- xy: 859, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ore-copper-medium
- rotate: false
- xy: 771, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ore-copper-small
- rotate: false
- xy: 1523, 519
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ore-copper-tiny
- rotate: false
- xy: 1723, 502
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ore-copper-xlarge
- rotate: false
- xy: 301, 219
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ore-lead-large
- rotate: false
- xy: 859, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ore-lead-medium
- rotate: false
- xy: 805, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ore-lead-small
- rotate: false
- xy: 1522, 493
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ore-lead-tiny
- rotate: false
- xy: 1741, 502
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ore-lead-xlarge
- rotate: false
- xy: 301, 169
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ore-scrap-large
- rotate: false
- xy: 901, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ore-scrap-medium
- rotate: false
- xy: 619, 13
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ore-scrap-small
- rotate: false
- xy: 1522, 467
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ore-scrap-tiny
- rotate: false
- xy: 1759, 502
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ore-scrap-xlarge
- rotate: false
- xy: 301, 119
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ore-thorium-large
- rotate: false
- xy: 859, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ore-thorium-medium
- rotate: false
- xy: 653, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ore-thorium-small
- rotate: false
- xy: 1522, 441
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ore-thorium-tiny
- rotate: false
- xy: 1777, 502
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ore-thorium-xlarge
- rotate: false
- xy: 301, 69
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ore-titanium-large
- rotate: false
- xy: 943, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ore-titanium-medium
- rotate: false
- xy: 687, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ore-titanium-small
- rotate: false
- xy: 1522, 415
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ore-titanium-tiny
- rotate: false
- xy: 1722, 484
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ore-titanium-xlarge
- rotate: false
- xy: 301, 19
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-overdrive-dome-large
- rotate: false
- xy: 901, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-overdrive-dome-medium
- rotate: false
- xy: 721, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-overdrive-dome-small
- rotate: false
- xy: 1515, 389
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-overdrive-dome-tiny
- rotate: false
- xy: 1722, 466
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-overdrive-dome-xlarge
- rotate: false
- xy: 795, 878
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-overdrive-projector-large
- rotate: false
- xy: 859, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-overdrive-projector-medium
- rotate: false
- xy: 755, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-overdrive-projector-small
- rotate: false
- xy: 1489, 373
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-overdrive-projector-tiny
- rotate: false
- xy: 1740, 484
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-overdrive-projector-xlarge
- rotate: false
- xy: 309, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-overflow-gate-large
- rotate: false
- xy: 985, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-overflow-gate-medium
- rotate: false
- xy: 789, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-overflow-gate-small
- rotate: false
- xy: 1515, 363
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-overflow-gate-tiny
- rotate: false
- xy: 1722, 448
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-overflow-gate-xlarge
- rotate: false
- xy: 309, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-parallax-large
- rotate: false
- xy: 943, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-parallax-medium
- rotate: false
- xy: 823, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-parallax-small
- rotate: false
- xy: 1241, 299
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-parallax-tiny
- rotate: false
- xy: 1740, 466
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-parallax-xlarge
- rotate: false
- xy: 359, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-payload-conveyor-large
- rotate: false
- xy: 901, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-payload-conveyor-medium
- rotate: false
- xy: 839, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-payload-conveyor-small
- rotate: false
- xy: 1247, 325
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-payload-conveyor-tiny
- rotate: false
- xy: 1758, 484
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-payload-conveyor-xlarge
- rotate: false
- xy: 309, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-payload-router-large
- rotate: false
- xy: 859, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-payload-router-medium
- rotate: false
- xy: 840, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-payload-router-small
- rotate: false
- xy: 1243, 273
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-payload-router-tiny
- rotate: false
- xy: 1722, 430
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-payload-router-xlarge
- rotate: false
- xy: 359, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-pebbles-large
- rotate: false
- xy: 1027, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-pebbles-medium
- rotate: false
- xy: 857, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pebbles-small
- rotate: false
- xy: 1243, 247
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pebbles-tiny
- rotate: false
- xy: 1740, 448
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pebbles-xlarge
- rotate: false
- xy: 409, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-phase-conduit-large
- rotate: false
- xy: 985, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-phase-conduit-medium
- rotate: false
- xy: 873, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-phase-conduit-small
- rotate: false
- xy: 1243, 221
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-phase-conduit-tiny
- rotate: false
- xy: 1758, 466
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-phase-conduit-xlarge
- rotate: false
- xy: 359, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-phase-conveyor-large
- rotate: false
- xy: 943, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-phase-conveyor-medium
- rotate: false
- xy: 891, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-phase-conveyor-small
- rotate: false
- xy: 1239, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-phase-conveyor-tiny
- rotate: false
- xy: 1776, 484
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-phase-conveyor-xlarge
- rotate: false
- xy: 409, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-phase-wall-large
- rotate: false
- xy: 901, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-phase-wall-large-large
- rotate: false
- xy: 1069, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-phase-wall-large-medium
- rotate: false
- xy: 814, 248
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-phase-wall-large-small
- rotate: false
- xy: 1239, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-phase-wall-large-tiny
- rotate: false
- xy: 1740, 430
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-phase-wall-large-xlarge
- rotate: false
- xy: 459, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-phase-wall-medium
- rotate: false
- xy: 814, 214
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-phase-wall-small
- rotate: false
- xy: 1239, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-phase-wall-tiny
- rotate: false
- xy: 1758, 448
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-phase-wall-xlarge
- rotate: false
- xy: 409, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-phase-weaver-large
- rotate: false
- xy: 1027, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-phase-weaver-medium
- rotate: false
- xy: 848, 250
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-phase-weaver-small
- rotate: false
- xy: 1239, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-phase-weaver-tiny
- rotate: false
- xy: 1776, 466
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-phase-weaver-xlarge
- rotate: false
- xy: 459, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-pine-large
- rotate: false
- xy: 985, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-pine-medium
- rotate: false
- xy: 848, 216
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pine-small
- rotate: false
- xy: 1273, 325
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pine-tiny
- rotate: false
- xy: 1758, 430
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pine-xlarge
- rotate: false
- xy: 509, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-plastanium-compressor-large
- rotate: false
- xy: 943, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-plastanium-compressor-medium
- rotate: false
- xy: 882, 250
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-plastanium-compressor-small
- rotate: false
- xy: 1267, 299
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-plastanium-compressor-tiny
- rotate: false
- xy: 1776, 448
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-plastanium-compressor-xlarge
- rotate: false
- xy: 459, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-plastanium-conveyor-large
- rotate: false
- xy: 901, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-plastanium-conveyor-medium
- rotate: false
- xy: 882, 216
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-plastanium-conveyor-small
- rotate: false
- xy: 1269, 273
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-plastanium-conveyor-tiny
- rotate: false
- xy: 1776, 430
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-plastanium-conveyor-xlarge
- rotate: false
- xy: 509, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-plastanium-wall-large
- rotate: false
- xy: 1111, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-plastanium-wall-large-large
- rotate: false
- xy: 1069, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-plastanium-wall-large-medium
- rotate: false
- xy: 916, 250
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-plastanium-wall-large-small
- rotate: false
- xy: 1269, 247
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-plastanium-wall-large-tiny
- rotate: false
- xy: 1733, 412
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-plastanium-wall-large-xlarge
- rotate: false
- xy: 559, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-plastanium-wall-medium
- rotate: false
- xy: 916, 216
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-plastanium-wall-small
- rotate: false
- xy: 1269, 221
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-plastanium-wall-tiny
- rotate: false
- xy: 1733, 394
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-plastanium-wall-xlarge
- rotate: false
- xy: 509, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-plated-conduit-large
- rotate: false
- xy: 1027, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-plated-conduit-medium
- rotate: false
- xy: 848, 182
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-plated-conduit-small
- rotate: false
- xy: 1265, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-plated-conduit-tiny
- rotate: false
- xy: 1751, 412
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-plated-conduit-xlarge
- rotate: false
- xy: 559, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-pneumatic-drill-large
- rotate: false
- xy: 985, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-pneumatic-drill-medium
- rotate: false
- xy: 848, 148
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pneumatic-drill-small
- rotate: false
- xy: 1265, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pneumatic-drill-tiny
- rotate: false
- xy: 1733, 376
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pneumatic-drill-xlarge
- rotate: false
- xy: 609, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-power-node-large
- rotate: false
- xy: 943, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-power-node-large-large
- rotate: false
- xy: 1153, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-power-node-large-medium
- rotate: false
- xy: 848, 114
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-power-node-large-small
- rotate: false
- xy: 1265, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-power-node-large-tiny
- rotate: false
- xy: 1751, 394
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-power-node-large-xlarge
- rotate: false
- xy: 559, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-power-node-medium
- rotate: false
- xy: 874, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-power-node-small
- rotate: false
- xy: 1265, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-power-node-tiny
- rotate: false
- xy: 1769, 412
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-power-node-xlarge
- rotate: false
- xy: 609, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-power-source-large
- rotate: false
- xy: 1111, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-power-source-medium
- rotate: false
- xy: 882, 182
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-power-source-small
- rotate: false
- xy: 1262, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-power-source-tiny
- rotate: false
- xy: 1751, 376
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-power-source-xlarge
- rotate: false
- xy: 659, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-power-void-large
- rotate: false
- xy: 1069, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-power-void-medium
- rotate: false
- xy: 916, 182
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-power-void-small
- rotate: false
- xy: 1299, 325
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-power-void-tiny
- rotate: false
- xy: 1769, 394
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-power-void-xlarge
- rotate: false
- xy: 609, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-pulse-conduit-large
- rotate: false
- xy: 1027, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-pulse-conduit-medium
- rotate: false
- xy: 882, 148
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pulse-conduit-small
- rotate: false
- xy: 1293, 299
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pulse-conduit-tiny
- rotate: false
- xy: 1769, 376
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pulse-conduit-xlarge
- rotate: false
- xy: 659, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-pulverizer-large
- rotate: false
- xy: 985, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-pulverizer-medium
- rotate: false
- xy: 882, 114
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pulverizer-small
- rotate: false
- xy: 1295, 273
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pulverizer-tiny
- rotate: false
- xy: 1733, 358
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pulverizer-xlarge
- rotate: false
- xy: 709, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-pyratite-mixer-large
- rotate: false
- xy: 1195, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-pyratite-mixer-medium
- rotate: false
- xy: 916, 148
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pyratite-mixer-small
- rotate: false
- xy: 1295, 247
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pyratite-mixer-tiny
- rotate: false
- xy: 1751, 358
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pyratite-mixer-xlarge
- rotate: false
- xy: 659, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-repair-point-large
- rotate: false
- xy: 1153, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-repair-point-medium
- rotate: false
- xy: 916, 114
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-repair-point-small
- rotate: false
- xy: 1295, 221
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-repair-point-tiny
- rotate: false
- xy: 1769, 358
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-repair-point-xlarge
- rotate: false
- xy: 709, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-resupply-point-large
- rotate: false
- xy: 1111, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-resupply-point-medium
- rotate: false
- xy: 908, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-resupply-point-small
- rotate: false
- xy: 1291, 195
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-resupply-point-tiny
- rotate: false
- xy: 1787, 412
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-resupply-point-xlarge
- rotate: false
- xy: 709, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-ripple-large
- rotate: false
- xy: 1069, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ripple-medium
- rotate: false
- xy: 907, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ripple-small
- rotate: false
- xy: 1291, 169
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ripple-tiny
- rotate: false
- xy: 1787, 394
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ripple-xlarge
- rotate: false
- xy: 759, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-rotary-pump-large
- rotate: false
- xy: 1027, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-rotary-pump-medium
- rotate: false
- xy: 925, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-rotary-pump-small
- rotate: false
- xy: 1291, 143
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-rotary-pump-tiny
- rotate: false
- xy: 1787, 376
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-rotary-pump-xlarge
- rotate: false
- xy: 759, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-router-large
- rotate: false
- xy: 1237, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-router-medium
- rotate: false
- xy: 941, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-router-small
- rotate: false
- xy: 1291, 117
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-router-tiny
- rotate: false
- xy: 1787, 358
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-router-xlarge
- rotate: false
- xy: 759, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-rtg-generator-large
- rotate: false
- xy: 1195, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-rtg-generator-medium
- rotate: false
- xy: 942, 80
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-rtg-generator-small
- rotate: false
- xy: 1288, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-rtg-generator-tiny
- rotate: false
- xy: 1794, 484
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-rtg-generator-xlarge
- rotate: false
- xy: 809, 828
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-salt-large
- rotate: false
- xy: 1153, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-salt-medium
- rotate: false
- xy: 959, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-salt-small
- rotate: false
- xy: 1269, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-salt-tiny
- rotate: false
- xy: 1794, 466
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-salt-wall-large
- rotate: false
- xy: 1111, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-salt-wall-medium
- rotate: false
- xy: 975, 46
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-salt-wall-small
- rotate: false
- xy: 1325, 331
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-salt-wall-tiny
- rotate: false
- xy: 1794, 448
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-salt-wall-xlarge
- rotate: false
- xy: 809, 778
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-salt-xlarge
- rotate: false
- xy: 809, 728
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-salvo-large
- rotate: false
- xy: 1069, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-salvo-medium
- rotate: false
- xy: 993, 12
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-salvo-small
- rotate: false
- xy: 1351, 331
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-salvo-tiny
- rotate: false
- xy: 1794, 430
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-salvo-xlarge
- rotate: false
- xy: 809, 678
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-sand-boulder-large
- rotate: false
- xy: 1279, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-sand-boulder-medium
- rotate: false
- xy: 1533, 571
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-sand-boulder-small
- rotate: false
- xy: 1295, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-sand-boulder-tiny
- rotate: false
- xy: 1805, 412
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-sand-boulder-xlarge
- rotate: false
- xy: 331, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-sand-large
- rotate: false
- xy: 1237, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-sand-medium
- rotate: false
- xy: 1483, 563
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-sand-small
- rotate: false
- xy: 1377, 325
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-sand-tiny
- rotate: false
- xy: 1805, 394
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-sand-wall-large
- rotate: false
- xy: 1195, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-sand-wall-medium
- rotate: false
- xy: 1567, 545
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-sand-wall-small
- rotate: false
- xy: 1314, 91
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-sand-wall-tiny
- rotate: false
- xy: 1805, 376
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-sand-wall-xlarge
- rotate: false
- xy: 331, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-sand-water-large
- rotate: false
- xy: 1153, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-sand-water-medium
- rotate: false
- xy: 1601, 545
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-sand-water-small
- rotate: false
- xy: 1321, 65
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-sand-water-tiny
- rotate: false
- xy: 1805, 358
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-sand-water-xlarge
- rotate: false
- xy: 381, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-sand-xlarge
- rotate: false
- xy: 381, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-scatter-large
- rotate: false
- xy: 1111, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-scatter-medium
- rotate: false
- xy: 1635, 545
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-scatter-small
- rotate: false
- xy: 1549, 519
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-scatter-tiny
- rotate: false
- xy: 1391, 287
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-scatter-xlarge
- rotate: false
- xy: 431, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-scorch-large
- rotate: false
- xy: 1321, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-scorch-medium
- rotate: false
- xy: 1669, 545
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-scorch-small
- rotate: false
- xy: 1548, 493
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-scorch-tiny
- rotate: false
- xy: 1391, 269
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-scorch-xlarge
- rotate: false
- xy: 431, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-scrap-wall-gigantic-large
- rotate: false
- xy: 1279, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-scrap-wall-gigantic-medium
- rotate: false
- xy: 979, 537
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-scrap-wall-gigantic-small
- rotate: false
- xy: 1575, 519
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-scrap-wall-gigantic-tiny
- rotate: false
- xy: 1391, 251
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-scrap-wall-gigantic-xlarge
- rotate: false
- xy: 481, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-scrap-wall-huge-large
- rotate: false
- xy: 1237, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-scrap-wall-huge-medium
- rotate: false
- xy: 979, 503
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-scrap-wall-huge-small
- rotate: false
- xy: 1548, 467
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-scrap-wall-huge-tiny
- rotate: false
- xy: 1391, 233
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-scrap-wall-huge-xlarge
- rotate: false
- xy: 481, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-scrap-wall-large
- rotate: false
- xy: 1195, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-scrap-wall-large-large
- rotate: false
- xy: 1153, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-scrap-wall-large-medium
- rotate: false
- xy: 979, 469
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-scrap-wall-large-small
- rotate: false
- xy: 1574, 493
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-scrap-wall-large-tiny
- rotate: false
- xy: 1409, 292
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-scrap-wall-large-xlarge
- rotate: false
- xy: 531, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-scrap-wall-medium
- rotate: false
- xy: 979, 435
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-scrap-wall-small
- rotate: false
- xy: 1601, 519
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-scrap-wall-tiny
- rotate: false
- xy: 1409, 274
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-scrap-wall-xlarge
- rotate: false
- xy: 531, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-segment-large
- rotate: false
- xy: 1363, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-segment-medium
- rotate: false
- xy: 979, 401
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-segment-small
- rotate: false
- xy: 1548, 441
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-segment-tiny
- rotate: false
- xy: 1409, 256
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-segment-xlarge
- rotate: false
- xy: 581, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-separator-large
- rotate: false
- xy: 1321, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-separator-medium
- rotate: false
- xy: 1013, 555
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-separator-small
- rotate: false
- xy: 1574, 467
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-separator-tiny
- rotate: false
- xy: 1409, 238
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-separator-xlarge
- rotate: false
- xy: 581, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-shale-boulder-large
- rotate: false
- xy: 1279, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-shale-boulder-medium
- rotate: false
- xy: 1047, 555
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-shale-boulder-small
- rotate: false
- xy: 1600, 493
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-shale-boulder-tiny
- rotate: false
- xy: 1427, 287
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-shale-boulder-xlarge
- rotate: false
- xy: 631, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-shale-large
- rotate: false
- xy: 1237, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-shale-medium
- rotate: false
- xy: 1013, 521
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-shale-small
- rotate: false
- xy: 1627, 519
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-shale-tiny
- rotate: false
- xy: 1445, 287
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-shale-wall-large
- rotate: false
- xy: 1195, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-shale-wall-medium
- rotate: false
- xy: 1081, 555
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-shale-wall-small
- rotate: false
- xy: 1548, 415
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-shale-wall-tiny
- rotate: false
- xy: 1427, 269
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-shale-wall-xlarge
- rotate: false
- xy: 631, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-shale-xlarge
- rotate: false
- xy: 681, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-shock-mine-large
- rotate: false
- xy: 1405, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-shock-mine-medium
- rotate: false
- xy: 1013, 487
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-shock-mine-small
- rotate: false
- xy: 1541, 389
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-shock-mine-tiny
- rotate: false
- xy: 1463, 287
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-shock-mine-xlarge
- rotate: false
- xy: 681, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-shrubs-large
- rotate: false
- xy: 1363, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-shrubs-medium
+block-distributor-medium
rotate: false
xy: 1047, 521
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-shrubs-small
+block-distributor-small
rotate: false
- xy: 1574, 441
+ xy: 1245, 15
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-shrubs-tiny
+block-distributor-tiny
rotate: false
- xy: 1427, 251
+ xy: 1588, 425
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-shrubs-xlarge
+block-distributor-xlarge
rotate: false
- xy: 731, 666
+ xy: 395, 866
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-silicon-crucible-large
+block-door-large
rotate: false
- xy: 1321, 765
+ xy: 677, 115
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-silicon-crucible-medium
+block-door-large-large
rotate: false
- xy: 1115, 555
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-silicon-crucible-small
- rotate: false
- xy: 1600, 467
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-silicon-crucible-tiny
- rotate: false
- xy: 1445, 269
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-silicon-crucible-xlarge
- rotate: false
- xy: 731, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-silicon-smelter-large
- rotate: false
- xy: 1279, 723
+ xy: 669, 73
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-silicon-smelter-medium
- rotate: false
- xy: 1013, 453
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-silicon-smelter-small
- rotate: false
- xy: 1626, 493
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-silicon-smelter-tiny
- rotate: false
- xy: 1481, 287
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-silicon-smelter-xlarge
- rotate: false
- xy: 781, 628
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-slag-large
- rotate: false
- xy: 1237, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-slag-medium
+block-door-large-medium
rotate: false
xy: 1047, 487
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-slag-small
+block-door-large-small
rotate: false
- xy: 1653, 519
+ xy: 1271, 15
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-slag-tiny
+block-door-large-tiny
rotate: false
- xy: 1445, 251
+ xy: 1588, 407
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-slag-xlarge
+block-door-large-xlarge
rotate: false
- xy: 831, 628
+ xy: 445, 866
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-snow-boulder-large
- rotate: false
- xy: 1447, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-snow-boulder-medium
- rotate: false
- xy: 1081, 521
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-snow-boulder-small
- rotate: false
- xy: 1541, 363
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-snow-boulder-tiny
- rotate: false
- xy: 1463, 269
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-snow-boulder-xlarge
- rotate: false
- xy: 781, 578
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-snow-large
- rotate: false
- xy: 1405, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-snow-medium
- rotate: false
- xy: 1149, 555
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-snow-pine-large
- rotate: false
- xy: 1363, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-snow-pine-medium
- rotate: false
- xy: 1013, 419
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-snow-pine-small
- rotate: false
- xy: 1574, 415
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-snow-pine-tiny
- rotate: false
- xy: 1463, 251
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-snow-pine-xlarge
- rotate: false
- xy: 831, 578
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-snow-small
- rotate: false
- xy: 1567, 389
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-snow-tiny
- rotate: false
- xy: 1481, 269
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-snow-wall-large
- rotate: false
- xy: 1321, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-snow-wall-medium
+block-door-medium
rotate: false
xy: 1047, 453
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-snow-wall-small
+block-door-small
rotate: false
- xy: 1600, 441
+ xy: 1297, 15
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-snow-wall-tiny
+block-door-tiny
rotate: false
- xy: 1481, 251
+ xy: 1588, 389
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-snow-wall-xlarge
+block-door-xlarge
rotate: false
- xy: 351, 566
+ xy: 495, 866
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-snow-xlarge
+block-dune-wall-large
rotate: false
- xy: 351, 516
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-solar-panel-large
- rotate: false
- xy: 1279, 681
+ xy: 669, 31
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-solar-panel-large-large
- rotate: false
- xy: 1489, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-solar-panel-large-medium
- rotate: false
- xy: 1081, 487
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-solar-panel-large-small
- rotate: false
- xy: 1626, 467
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-solar-panel-large-tiny
- rotate: false
- xy: 1427, 233
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-solar-panel-large-xlarge
- rotate: false
- xy: 401, 566
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-solar-panel-medium
- rotate: false
- xy: 1115, 521
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-solar-panel-small
- rotate: false
- xy: 1652, 493
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-solar-panel-tiny
- rotate: false
- xy: 1445, 233
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-solar-panel-xlarge
- rotate: false
- xy: 351, 466
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-sorter-large
- rotate: false
- xy: 1447, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-sorter-medium
- rotate: false
- xy: 1183, 555
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-sorter-small
- rotate: false
- xy: 1567, 363
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-sorter-tiny
- rotate: false
- xy: 1463, 233
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-sorter-xlarge
- rotate: false
- xy: 401, 516
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-space-large
- rotate: false
- xy: 1405, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-space-medium
+block-dune-wall-medium
rotate: false
xy: 1047, 419
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-space-small
+block-dune-wall-small
rotate: false
- xy: 1600, 415
+ xy: 1323, 23
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-space-tiny
+block-dune-wall-tiny
rotate: false
- xy: 1481, 233
+ xy: 1588, 371
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-space-xlarge
+block-dune-wall-xlarge
rotate: false
- xy: 451, 566
+ xy: 545, 866
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spawn-large
+block-duo-large
rotate: false
- xy: 1363, 723
+ xy: 719, 116
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spawn-medium
+block-duo-medium
+ rotate: false
+ xy: 1699, 739
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-duo-small
+ rotate: false
+ xy: 1349, 23
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-duo-tiny
+ rotate: false
+ xy: 1617, 659
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-duo-xlarge
+ rotate: false
+ xy: 595, 866
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-exponential-reconstructor-large
+ rotate: false
+ xy: 761, 116
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-exponential-reconstructor-medium
+ rotate: false
+ xy: 1733, 739
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-exponential-reconstructor-small
+ rotate: false
+ xy: 1371, 153
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-exponential-reconstructor-tiny
+ rotate: false
+ xy: 1617, 641
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-exponential-reconstructor-xlarge
+ rotate: false
+ xy: 645, 866
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-force-projector-large
+ rotate: false
+ xy: 803, 116
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-force-projector-medium
+ rotate: false
+ xy: 1767, 739
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-force-projector-small
+ rotate: false
+ xy: 1365, 127
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-force-projector-tiny
+ rotate: false
+ xy: 1617, 623
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-force-projector-xlarge
+ rotate: false
+ xy: 695, 866
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-foreshadow-large
+ rotate: false
+ xy: 845, 116
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-foreshadow-medium
+ rotate: false
+ xy: 1801, 739
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-foreshadow-small
+ rotate: false
+ xy: 1365, 101
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-foreshadow-tiny
+ rotate: false
+ xy: 1617, 605
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-foreshadow-xlarge
+ rotate: false
+ xy: 101, 478
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-fuse-large
+ rotate: false
+ xy: 711, 73
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-fuse-medium
+ rotate: false
+ xy: 1835, 744
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-fuse-small
+ rotate: false
+ xy: 1365, 75
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-fuse-tiny
+ rotate: false
+ xy: 1617, 587
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-fuse-xlarge
+ rotate: false
+ xy: 101, 428
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-graphite-press-large
+ rotate: false
+ xy: 711, 31
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-graphite-press-medium
+ rotate: false
+ xy: 1909, 815
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-graphite-press-small
+ rotate: false
+ xy: 1365, 49
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-graphite-press-tiny
+ rotate: false
+ xy: 1617, 569
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-graphite-press-xlarge
+ rotate: false
+ xy: 101, 378
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-grass-large
+ rotate: false
+ xy: 753, 74
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-grass-medium
+ rotate: false
+ xy: 1943, 815
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-grass-small
+ rotate: false
+ xy: 1375, 23
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-grass-tiny
+ rotate: false
+ xy: 1617, 551
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-grass-xlarge
+ rotate: false
+ xy: 101, 328
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ground-factory-large
+ rotate: false
+ xy: 753, 32
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ground-factory-medium
+ rotate: false
+ xy: 1977, 815
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ground-factory-small
+ rotate: false
+ xy: 1413, 192
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ground-factory-tiny
+ rotate: false
+ xy: 1617, 533
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ground-factory-xlarge
+ rotate: false
+ xy: 101, 278
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-hail-large
+ rotate: false
+ xy: 795, 74
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-hail-medium
+ rotate: false
+ xy: 2011, 815
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-hail-small
+ rotate: false
+ xy: 1397, 166
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-hail-tiny
+ rotate: false
+ xy: 1617, 515
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-hail-xlarge
+ rotate: false
+ xy: 101, 228
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-hotrock-large
+ rotate: false
+ xy: 795, 32
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-hotrock-medium
+ rotate: false
+ xy: 1144, 576
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-hotrock-small
+ rotate: false
+ xy: 1423, 166
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-hotrock-tiny
+ rotate: false
+ xy: 1606, 497
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-hotrock-xlarge
+ rotate: false
+ xy: 101, 178
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-hyper-processor-large
+ rotate: false
+ xy: 837, 74
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-hyper-processor-medium
+ rotate: false
+ xy: 1867, 778
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-hyper-processor-small
+ rotate: false
+ xy: 1397, 140
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-hyper-processor-tiny
+ rotate: false
+ xy: 1606, 479
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-hyper-processor-xlarge
+ rotate: false
+ xy: 101, 128
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ice-large
+ rotate: false
+ xy: 837, 32
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ice-medium
+ rotate: false
+ xy: 1869, 744
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ice-small
+ rotate: false
+ xy: 1423, 140
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ice-snow-large
+ rotate: false
+ xy: 864, 284
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ice-snow-medium
+ rotate: false
+ xy: 1451, 613
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ice-snow-small
+ rotate: false
+ xy: 1391, 114
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ice-snow-tiny
+ rotate: false
+ xy: 1606, 461
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ice-snow-xlarge
+ rotate: false
+ xy: 101, 78
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ice-tiny
+ rotate: false
+ xy: 1606, 443
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ice-wall-large
+ rotate: false
+ xy: 864, 242
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ice-wall-medium
+ rotate: false
+ xy: 1901, 778
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ice-wall-small
+ rotate: false
+ xy: 1391, 88
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ice-wall-tiny
+ rotate: false
+ xy: 1606, 425
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ice-wall-xlarge
+ rotate: false
+ xy: 101, 28
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ice-xlarge
+ rotate: false
+ xy: 231, 608
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-illuminator-large
+ rotate: false
+ xy: 861, 200
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-illuminator-medium
+ rotate: false
+ xy: 1903, 744
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-illuminator-small
+ rotate: false
+ xy: 1417, 114
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-illuminator-tiny
+ rotate: false
+ xy: 1606, 407
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-illuminator-xlarge
+ rotate: false
+ xy: 231, 558
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-impact-reactor-large
+ rotate: false
+ xy: 861, 158
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-impact-reactor-medium
+ rotate: false
+ xy: 1935, 781
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-impact-reactor-small
+ rotate: false
+ xy: 1391, 62
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-impact-reactor-tiny
+ rotate: false
+ xy: 1606, 389
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-impact-reactor-xlarge
+ rotate: false
+ xy: 745, 866
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-incinerator-large
+ rotate: false
+ xy: 872, 326
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-incinerator-medium
+ rotate: false
+ xy: 1969, 781
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-incinerator-small
+ rotate: false
+ xy: 1417, 88
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-incinerator-tiny
+ rotate: false
+ xy: 1606, 371
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-incinerator-xlarge
+ rotate: false
+ xy: 151, 508
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-interplanetary-accelerator-large
+ rotate: false
+ xy: 887, 116
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-interplanetary-accelerator-medium
+ rotate: false
+ xy: 2003, 781
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-interplanetary-accelerator-small
+ rotate: false
+ xy: 1417, 62
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-interplanetary-accelerator-tiny
+ rotate: false
+ xy: 1635, 654
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-interplanetary-accelerator-xlarge
+ rotate: false
+ xy: 151, 458
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-inverted-sorter-large
+ rotate: false
+ xy: 879, 74
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-inverted-sorter-medium
+ rotate: false
+ xy: 1937, 747
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-inverted-sorter-small
+ rotate: false
+ xy: 1401, 36
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-inverted-sorter-tiny
+ rotate: false
+ xy: 1635, 636
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-inverted-sorter-xlarge
+ rotate: false
+ xy: 201, 508
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-item-source-large
+ rotate: false
+ xy: 879, 32
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-item-source-medium
+ rotate: false
+ xy: 1971, 747
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-item-source-small
+ rotate: false
+ xy: 1427, 36
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-item-source-tiny
+ rotate: false
+ xy: 1635, 618
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-item-source-xlarge
+ rotate: false
+ xy: 151, 408
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-item-void-large
+ rotate: false
+ xy: 906, 284
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-item-void-medium
+ rotate: false
+ xy: 2005, 747
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-item-void-small
+ rotate: false
+ xy: 1401, 10
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-item-void-tiny
+ rotate: false
+ xy: 1635, 600
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-item-void-xlarge
+ rotate: false
+ xy: 201, 458
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-junction-large
+ rotate: false
+ xy: 906, 242
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-junction-medium
+ rotate: false
+ xy: 1835, 710
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-junction-small
+ rotate: false
+ xy: 1427, 10
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-junction-tiny
+ rotate: false
+ xy: 1635, 582
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-junction-xlarge
+ rotate: false
+ xy: 151, 358
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-kiln-large
+ rotate: false
+ xy: 903, 200
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-kiln-medium
+ rotate: false
+ xy: 1869, 710
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-kiln-small
+ rotate: false
+ xy: 1421, 221
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-kiln-tiny
+ rotate: false
+ xy: 1635, 564
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-kiln-xlarge
+ rotate: false
+ xy: 201, 408
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-lancer-large
+ rotate: false
+ xy: 903, 158
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-lancer-medium
+ rotate: false
+ xy: 1903, 710
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-lancer-small
+ rotate: false
+ xy: 1447, 216
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-lancer-tiny
+ rotate: false
+ xy: 1635, 546
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-lancer-xlarge
+ rotate: false
+ xy: 151, 308
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-large-logic-display-large
+ rotate: false
+ xy: 929, 116
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-large-logic-display-medium
+ rotate: false
+ xy: 1937, 713
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-large-logic-display-small
+ rotate: false
+ xy: 1473, 216
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-large-logic-display-tiny
+ rotate: false
+ xy: 1635, 528
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-large-logic-display-xlarge
+ rotate: false
+ xy: 201, 358
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-laser-drill-large
+ rotate: false
+ xy: 921, 74
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-laser-drill-medium
+ rotate: false
+ xy: 1971, 713
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-laser-drill-small
+ rotate: false
+ xy: 1443, 114
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-laser-drill-tiny
+ rotate: false
+ xy: 1653, 654
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-laser-drill-xlarge
+ rotate: false
+ xy: 151, 258
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-launch-pad-large
+ rotate: false
+ xy: 921, 32
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-launch-pad-large-large
+ rotate: false
+ xy: 963, 74
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-launch-pad-large-medium
+ rotate: false
+ xy: 2005, 713
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-launch-pad-large-small
+ rotate: false
+ xy: 1443, 88
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-launch-pad-large-tiny
+ rotate: false
+ xy: 1653, 636
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-launch-pad-large-xlarge
+ rotate: false
+ xy: 201, 308
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-launch-pad-medium
+ rotate: false
+ xy: 948, 322
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-launch-pad-small
+ rotate: false
+ xy: 1443, 62
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-launch-pad-tiny
+ rotate: false
+ xy: 1653, 618
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-launch-pad-xlarge
+ rotate: false
+ xy: 151, 208
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-liquid-junction-large
+ rotate: false
+ xy: 963, 32
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-liquid-junction-medium
+ rotate: false
+ xy: 948, 288
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-liquid-junction-small
+ rotate: false
+ xy: 1453, 36
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-liquid-junction-tiny
+ rotate: false
+ xy: 1653, 600
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-liquid-junction-xlarge
+ rotate: false
+ xy: 201, 258
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-liquid-router-large
+ rotate: false
+ xy: 821, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-liquid-router-medium
+ rotate: false
+ xy: 982, 322
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-liquid-router-small
+ rotate: false
+ xy: 1453, 10
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-liquid-router-tiny
+ rotate: false
+ xy: 1653, 582
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-liquid-router-xlarge
+ rotate: false
+ xy: 151, 158
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-liquid-source-large
+ rotate: false
+ xy: 863, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-liquid-source-medium
+ rotate: false
+ xy: 948, 254
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-liquid-source-small
+ rotate: false
+ xy: 1485, 642
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-liquid-source-tiny
+ rotate: false
+ xy: 1653, 564
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-liquid-source-xlarge
+ rotate: false
+ xy: 201, 208
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-liquid-tank-large
+ rotate: false
+ xy: 905, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-liquid-tank-medium
+ rotate: false
+ xy: 1016, 322
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-liquid-tank-small
+ rotate: false
+ xy: 1485, 616
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-liquid-tank-tiny
+ rotate: false
+ xy: 1653, 546
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-liquid-tank-xlarge
+ rotate: false
+ xy: 151, 108
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-liquid-void-large
+ rotate: false
+ xy: 947, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-liquid-void-medium
+ rotate: false
+ xy: 982, 288
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-liquid-void-small
+ rotate: false
+ xy: 1511, 642
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-liquid-void-tiny
+ rotate: false
+ xy: 1653, 528
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-liquid-void-xlarge
+ rotate: false
+ xy: 201, 158
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-logic-display-large
+ rotate: false
+ xy: 989, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-logic-display-medium
+ rotate: false
+ xy: 1016, 288
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-logic-display-small
+ rotate: false
+ xy: 1511, 616
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-logic-display-tiny
+ rotate: false
+ xy: 1635, 510
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-logic-display-xlarge
+ rotate: false
+ xy: 151, 58
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-logic-processor-large
+ rotate: false
+ xy: 1031, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-logic-processor-medium
+ rotate: false
+ xy: 982, 254
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-logic-processor-small
+ rotate: false
+ xy: 1675, 676
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-logic-processor-tiny
+ rotate: false
+ xy: 1653, 510
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-logic-processor-xlarge
+ rotate: false
+ xy: 201, 108
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-magmarock-large
+ rotate: false
+ xy: 1073, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-magmarock-medium
+ rotate: false
+ xy: 1016, 254
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-magmarock-small
+ rotate: false
+ xy: 1701, 676
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-magmarock-tiny
+ rotate: false
+ xy: 1611, 353
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-magmarock-xlarge
+ rotate: false
+ xy: 201, 58
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-mass-driver-large
+ rotate: false
+ xy: 1115, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-mass-driver-medium
+ rotate: false
+ xy: 948, 220
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-mass-driver-small
+ rotate: false
+ xy: 1727, 679
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-mass-driver-tiny
+ rotate: false
+ xy: 1611, 335
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-mass-driver-xlarge
+ rotate: false
+ xy: 251, 508
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-mechanical-drill-large
+ rotate: false
+ xy: 1157, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-mechanical-drill-medium
+ rotate: false
+ xy: 982, 220
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-mechanical-drill-small
+ rotate: false
+ xy: 1753, 679
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-mechanical-drill-tiny
+ rotate: false
+ xy: 1611, 317
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-mechanical-drill-xlarge
+ rotate: false
+ xy: 251, 458
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-mechanical-pump-large
+ rotate: false
+ xy: 1199, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-mechanical-pump-medium
+ rotate: false
+ xy: 1016, 220
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-mechanical-pump-small
+ rotate: false
+ xy: 1779, 679
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-mechanical-pump-tiny
+ rotate: false
+ xy: 1611, 299
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-mechanical-pump-xlarge
+ rotate: false
+ xy: 251, 408
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-meltdown-large
+ rotate: false
+ xy: 1241, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-meltdown-medium
+ rotate: false
+ xy: 945, 186
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-meltdown-small
+ rotate: false
+ xy: 1805, 679
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-meltdown-tiny
+ rotate: false
+ xy: 1611, 281
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-meltdown-xlarge
+ rotate: false
+ xy: 251, 358
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-melter-large
+ rotate: false
+ xy: 1283, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-melter-medium
+ rotate: false
+ xy: 979, 186
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-melter-small
+ rotate: false
+ xy: 1831, 684
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-melter-tiny
+ rotate: false
+ xy: 1671, 658
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-melter-xlarge
+ rotate: false
+ xy: 251, 308
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-memory-bank-large
+ rotate: false
+ xy: 1325, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-memory-bank-medium
+ rotate: false
+ xy: 1013, 186
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-memory-bank-small
+ rotate: false
+ xy: 1857, 684
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-memory-bank-tiny
+ rotate: false
+ xy: 1689, 658
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-memory-bank-xlarge
+ rotate: false
+ xy: 251, 258
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-memory-cell-large
+ rotate: false
+ xy: 1367, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-memory-cell-medium
+ rotate: false
+ xy: 971, 152
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-memory-cell-small
+ rotate: false
+ xy: 1883, 684
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-memory-cell-tiny
+ rotate: false
+ xy: 1671, 640
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-memory-cell-xlarge
+ rotate: false
+ xy: 251, 208
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-mend-projector-large
+ rotate: false
+ xy: 1409, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-mend-projector-medium
+ rotate: false
+ xy: 1005, 152
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-mend-projector-small
+ rotate: false
+ xy: 1909, 684
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-mend-projector-tiny
+ rotate: false
+ xy: 1707, 658
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-mend-projector-xlarge
+ rotate: false
+ xy: 251, 158
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-mender-large
+ rotate: false
+ xy: 1451, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-mender-medium
+ rotate: false
+ xy: 971, 118
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-mender-small
+ rotate: false
+ xy: 1831, 658
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-mender-tiny
+ rotate: false
+ xy: 1671, 622
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-mender-xlarge
+ rotate: false
+ xy: 251, 108
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-message-large
+ rotate: false
+ xy: 1493, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-message-medium
+ rotate: false
+ xy: 1005, 118
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-message-small
+ rotate: false
+ xy: 1857, 658
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-message-tiny
+ rotate: false
+ xy: 1689, 640
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-message-xlarge
+ rotate: false
+ xy: 251, 58
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-metal-floor-2-large
+ rotate: false
+ xy: 1535, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-metal-floor-2-medium
+ rotate: false
+ xy: 1005, 84
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-metal-floor-2-small
+ rotate: false
+ xy: 1883, 658
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-metal-floor-2-tiny
+ rotate: false
+ xy: 1671, 604
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-metal-floor-2-xlarge
+ rotate: false
+ xy: 151, 8
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-metal-floor-3-large
+ rotate: false
+ xy: 1577, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-metal-floor-3-medium
+ rotate: false
+ xy: 1005, 50
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-metal-floor-3-small
+ rotate: false
+ xy: 1909, 658
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-metal-floor-3-tiny
+ rotate: false
+ xy: 1689, 622
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-metal-floor-3-xlarge
+ rotate: false
+ xy: 201, 8
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-metal-floor-5-large
+ rotate: false
+ xy: 1619, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-metal-floor-5-medium
+ rotate: false
+ xy: 1005, 16
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-metal-floor-5-small
+ rotate: false
+ xy: 1527, 697
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-metal-floor-5-tiny
+ rotate: false
+ xy: 1707, 640
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-metal-floor-5-xlarge
+ rotate: false
+ xy: 251, 8
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-metal-floor-damaged-large
+ rotate: false
+ xy: 1661, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-metal-floor-damaged-medium
+ rotate: false
+ xy: 1039, 152
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-metal-floor-damaged-small
+ rotate: false
+ xy: 1535, 671
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-metal-floor-damaged-tiny
+ rotate: false
+ xy: 1671, 586
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-metal-floor-damaged-xlarge
+ rotate: false
+ xy: 281, 619
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-metal-floor-large
+ rotate: false
+ xy: 1703, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-metal-floor-medium
+ rotate: false
+ xy: 1039, 118
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-metal-floor-small
+ rotate: false
+ xy: 1537, 645
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-metal-floor-tiny
+ rotate: false
+ xy: 1689, 604
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-metal-floor-xlarge
+ rotate: false
+ xy: 281, 569
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-micro-processor-large
+ rotate: false
+ xy: 1745, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-micro-processor-medium
+ rotate: false
+ xy: 1039, 84
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-micro-processor-small
+ rotate: false
+ xy: 1537, 619
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-micro-processor-tiny
+ rotate: false
+ xy: 1707, 622
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-micro-processor-xlarge
+ rotate: false
+ xy: 301, 519
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-moss-large
+ rotate: false
+ xy: 1787, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-moss-medium
+ rotate: false
+ xy: 1039, 50
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-moss-small
+ rotate: false
+ xy: 1937, 687
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-moss-tiny
+ rotate: false
+ xy: 1671, 568
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-moss-xlarge
+ rotate: false
+ xy: 301, 469
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-mud-large
+ rotate: false
+ xy: 1829, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-mud-medium
+ rotate: false
+ xy: 1039, 16
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-mud-small
+ rotate: false
+ xy: 1963, 687
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-mud-tiny
+ rotate: false
+ xy: 1689, 586
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-mud-xlarge
+ rotate: false
+ xy: 301, 419
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-multi-press-large
+ rotate: false
+ xy: 1871, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-multi-press-medium
+ rotate: false
+ xy: 1047, 186
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-multi-press-small
+ rotate: false
+ xy: 1989, 687
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-multi-press-tiny
+ rotate: false
+ xy: 1707, 604
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-multi-press-xlarge
+ rotate: false
+ xy: 301, 369
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-multiplicative-reconstructor-large
+ rotate: false
+ xy: 1913, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-multiplicative-reconstructor-medium
+ rotate: false
+ xy: 1073, 152
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-multiplicative-reconstructor-small
+ rotate: false
+ xy: 1935, 661
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-multiplicative-reconstructor-tiny
+ rotate: false
+ xy: 1671, 550
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-multiplicative-reconstructor-xlarge
+ rotate: false
+ xy: 301, 319
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-naval-factory-large
+ rotate: false
+ xy: 1955, 933
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-naval-factory-medium
+ rotate: false
+ xy: 1073, 118
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-naval-factory-small
+ rotate: false
+ xy: 1961, 661
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-naval-factory-tiny
+ rotate: false
+ xy: 1689, 568
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-naval-factory-xlarge
+ rotate: false
+ xy: 301, 269
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-oil-extractor-large
+ rotate: false
+ xy: 845, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-oil-extractor-medium
+ rotate: false
+ xy: 1073, 84
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-oil-extractor-small
+ rotate: false
+ xy: 1987, 661
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-oil-extractor-tiny
+ rotate: false
+ xy: 1707, 586
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-oil-extractor-xlarge
+ rotate: false
+ xy: 301, 219
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ore-coal-large
+ rotate: false
+ xy: 887, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ore-coal-medium
+ rotate: false
+ xy: 1073, 50
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ore-coal-small
+ rotate: false
+ xy: 2015, 687
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ore-coal-tiny
+ rotate: false
+ xy: 1671, 532
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ore-coal-xlarge
+ rotate: false
+ xy: 301, 169
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ore-copper-large
+ rotate: false
+ xy: 929, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ore-copper-medium
+ rotate: false
+ xy: 1073, 16
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ore-copper-small
+ rotate: false
+ xy: 2013, 661
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ore-copper-tiny
+ rotate: false
+ xy: 1689, 550
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ore-copper-xlarge
+ rotate: false
+ xy: 301, 119
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ore-lead-large
+ rotate: false
+ xy: 971, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ore-lead-medium
+ rotate: false
+ xy: 1573, 695
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ore-lead-small
+ rotate: false
+ xy: 1481, 346
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ore-lead-tiny
+ rotate: false
+ xy: 1707, 568
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ore-lead-xlarge
+ rotate: false
+ xy: 301, 69
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ore-scrap-large
+ rotate: false
+ xy: 1013, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ore-scrap-medium
+ rotate: false
+ xy: 1607, 695
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ore-scrap-small
+ rotate: false
+ xy: 1481, 320
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ore-scrap-tiny
+ rotate: false
+ xy: 1671, 514
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ore-scrap-xlarge
+ rotate: false
+ xy: 301, 19
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ore-thorium-large
+ rotate: false
+ xy: 1055, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ore-thorium-medium
+ rotate: false
+ xy: 1641, 698
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ore-thorium-small
+ rotate: false
+ xy: 1481, 294
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ore-thorium-tiny
+ rotate: false
+ xy: 1689, 532
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ore-thorium-xlarge
+ rotate: false
+ xy: 795, 878
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ore-titanium-large
+ rotate: false
+ xy: 1097, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ore-titanium-medium
+ rotate: false
+ xy: 1675, 702
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ore-titanium-small
+ rotate: false
+ xy: 1481, 268
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ore-titanium-tiny
+ rotate: false
+ xy: 1707, 550
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ore-titanium-xlarge
+ rotate: false
+ xy: 309, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-overdrive-dome-large
+ rotate: false
+ xy: 1139, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-overdrive-dome-medium
+ rotate: false
+ xy: 1709, 705
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-overdrive-dome-small
+ rotate: false
+ xy: 1499, 242
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-overdrive-dome-tiny
+ rotate: false
+ xy: 1689, 514
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-overdrive-dome-xlarge
+ rotate: false
+ xy: 309, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-overdrive-projector-large
+ rotate: false
+ xy: 1181, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-overdrive-projector-medium
+ rotate: false
+ xy: 1743, 705
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-overdrive-projector-small
+ rotate: false
+ xy: 1499, 216
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-overdrive-projector-tiny
+ rotate: false
+ xy: 1707, 532
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-overdrive-projector-xlarge
+ rotate: false
+ xy: 359, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-overflow-gate-large
+ rotate: false
+ xy: 1223, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-overflow-gate-medium
+ rotate: false
+ xy: 1777, 705
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-overflow-gate-small
+ rotate: false
+ xy: 1641, 672
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-overflow-gate-tiny
+ rotate: false
+ xy: 1707, 514
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-overflow-gate-xlarge
+ rotate: false
+ xy: 309, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-parallax-large
+ rotate: false
+ xy: 1265, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-parallax-medium
+ rotate: false
+ xy: 1081, 521
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-parallax-small
+ rotate: false
+ xy: 1727, 653
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-parallax-tiny
+ rotate: false
+ xy: 1725, 635
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-parallax-xlarge
+ rotate: false
+ xy: 359, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-payload-conveyor-large
+ rotate: false
+ xy: 1307, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-payload-conveyor-medium
+ rotate: false
+ xy: 1081, 487
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-payload-conveyor-small
+ rotate: false
+ xy: 1753, 653
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-payload-conveyor-tiny
+ rotate: false
+ xy: 1725, 617
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-payload-conveyor-xlarge
+ rotate: false
+ xy: 409, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-payload-router-large
+ rotate: false
+ xy: 1349, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-payload-router-medium
rotate: false
xy: 1081, 453
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spawn-small
+block-payload-router-small
rotate: false
- xy: 1593, 389
+ xy: 1779, 653
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spawn-tiny
+block-payload-router-tiny
rotate: false
- xy: 1409, 220
+ xy: 1743, 635
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spawn-xlarge
+block-payload-router-xlarge
rotate: false
- xy: 351, 416
+ xy: 359, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spectre-large
+block-pebbles-large
rotate: false
- xy: 1321, 681
+ xy: 1391, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spectre-medium
- rotate: false
- xy: 1115, 487
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-spectre-small
- rotate: false
- xy: 1626, 441
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-spectre-tiny
- rotate: false
- xy: 1427, 215
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-spectre-xlarge
- rotate: false
- xy: 401, 466
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-spore-cluster-large
- rotate: false
- xy: 1531, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-spore-cluster-medium
- rotate: false
- xy: 1149, 521
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-spore-cluster-small
- rotate: false
- xy: 1652, 467
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-spore-cluster-tiny
- rotate: false
- xy: 1445, 215
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-spore-cluster-xlarge
- rotate: false
- xy: 451, 516
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-spore-moss-large
- rotate: false
- xy: 1489, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-spore-moss-medium
- rotate: false
- xy: 1217, 555
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-spore-moss-small
- rotate: false
- xy: 1593, 363
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-spore-moss-tiny
- rotate: false
- xy: 1463, 215
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-spore-moss-xlarge
- rotate: false
- xy: 501, 566
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-spore-pine-large
- rotate: false
- xy: 1447, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-spore-pine-medium
+block-pebbles-medium
rotate: false
xy: 1081, 419
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spore-pine-small
+block-pebbles-small
rotate: false
- xy: 1626, 415
+ xy: 1805, 653
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spore-pine-tiny
+block-pebbles-tiny
rotate: false
- xy: 1481, 215
+ xy: 1725, 599
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spore-pine-xlarge
+block-pebbles-xlarge
+ rotate: false
+ xy: 409, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-conduit-large
+ rotate: false
+ xy: 1433, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-phase-conduit-medium
+ rotate: false
+ xy: 1115, 534
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-conduit-small
+ rotate: false
+ xy: 1831, 632
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-conduit-tiny
+ rotate: false
+ xy: 1743, 617
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-conduit-xlarge
+ rotate: false
+ xy: 459, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-large
+ rotate: false
+ xy: 1475, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-medium
+ rotate: false
+ xy: 1115, 500
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-small
+ rotate: false
+ xy: 1857, 632
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-tiny
+ rotate: false
+ xy: 1761, 635
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-xlarge
+ rotate: false
+ xy: 409, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-wall-large
+ rotate: false
+ xy: 1517, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-phase-wall-large-large
+ rotate: false
+ xy: 1559, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-phase-wall-large-medium
+ rotate: false
+ xy: 1115, 466
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-wall-large-small
+ rotate: false
+ xy: 1883, 632
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-wall-large-tiny
+ rotate: false
+ xy: 1725, 581
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-wall-large-xlarge
+ rotate: false
+ xy: 459, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-wall-medium
+ rotate: false
+ xy: 1115, 432
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-wall-small
+ rotate: false
+ xy: 1909, 632
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-wall-tiny
+ rotate: false
+ xy: 1743, 599
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-wall-xlarge
+ rotate: false
+ xy: 509, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-weaver-large
+ rotate: false
+ xy: 1601, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-phase-weaver-medium
+ rotate: false
+ xy: 1149, 542
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-weaver-small
+ rotate: false
+ xy: 1935, 635
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-weaver-tiny
+ rotate: false
+ xy: 1761, 617
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-weaver-xlarge
+ rotate: false
+ xy: 459, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-pine-large
+ rotate: false
+ xy: 1643, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-pine-medium
+ rotate: false
+ xy: 1149, 508
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-pine-small
+ rotate: false
+ xy: 1961, 635
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-pine-tiny
+ rotate: false
+ xy: 1779, 635
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-pine-xlarge
+ rotate: false
+ xy: 509, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-plastanium-compressor-large
+ rotate: false
+ xy: 1685, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-plastanium-compressor-medium
+ rotate: false
+ xy: 1149, 474
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-plastanium-compressor-small
+ rotate: false
+ xy: 1987, 635
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-plastanium-compressor-tiny
+ rotate: false
+ xy: 1725, 563
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-plastanium-compressor-xlarge
+ rotate: false
+ xy: 559, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-plastanium-conveyor-large
+ rotate: false
+ xy: 1727, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-plastanium-conveyor-medium
+ rotate: false
+ xy: 1149, 440
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-plastanium-conveyor-small
+ rotate: false
+ xy: 2013, 635
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-plastanium-conveyor-tiny
+ rotate: false
+ xy: 1743, 581
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-plastanium-conveyor-xlarge
+ rotate: false
+ xy: 509, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large
+ rotate: false
+ xy: 1769, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-large
+ rotate: false
+ xy: 1811, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-medium
+ rotate: false
+ xy: 1115, 398
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-small
+ rotate: false
+ xy: 1537, 593
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-tiny
+ rotate: false
+ xy: 1761, 599
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-xlarge
+ rotate: false
+ xy: 559, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-medium
+ rotate: false
+ xy: 1149, 406
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-small
+ rotate: false
+ xy: 1935, 609
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-tiny
+ rotate: false
+ xy: 1779, 617
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-xlarge
+ rotate: false
+ xy: 609, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-plated-conduit-large
+ rotate: false
+ xy: 1853, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-plated-conduit-medium
+ rotate: false
+ xy: 1081, 385
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-plated-conduit-small
+ rotate: false
+ xy: 1961, 609
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-plated-conduit-tiny
+ rotate: false
+ xy: 1797, 635
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-plated-conduit-xlarge
+ rotate: false
+ xy: 559, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-pneumatic-drill-large
+ rotate: false
+ xy: 1895, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-pneumatic-drill-medium
+ rotate: false
+ xy: 1115, 364
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-pneumatic-drill-small
+ rotate: false
+ xy: 1987, 609
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-pneumatic-drill-tiny
+ rotate: false
+ xy: 1725, 545
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-pneumatic-drill-xlarge
+ rotate: false
+ xy: 609, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-power-node-large
+ rotate: false
+ xy: 1937, 891
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-power-node-large-large
+ rotate: false
+ xy: 859, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-power-node-large-medium
+ rotate: false
+ xy: 1149, 372
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-power-node-large-small
+ rotate: false
+ xy: 2013, 609
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-power-node-large-tiny
+ rotate: false
+ xy: 1743, 563
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-power-node-large-xlarge
+ rotate: false
+ xy: 659, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-power-node-medium
+ rotate: false
+ xy: 1081, 351
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-power-node-small
+ rotate: false
+ xy: 1485, 590
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-power-node-tiny
+ rotate: false
+ xy: 1761, 581
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-power-node-xlarge
+ rotate: false
+ xy: 609, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-power-source-large
+ rotate: false
+ xy: 859, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-power-source-medium
+ rotate: false
+ xy: 1115, 330
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-power-source-small
+ rotate: false
+ xy: 1511, 590
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-power-source-tiny
+ rotate: false
+ xy: 1779, 599
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-power-source-xlarge
+ rotate: false
+ xy: 659, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-power-void-large
+ rotate: false
+ xy: 901, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-power-void-medium
+ rotate: false
+ xy: 1149, 338
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-power-void-small
+ rotate: false
+ xy: 1485, 564
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-power-void-tiny
+ rotate: false
+ xy: 1797, 617
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-power-void-xlarge
+ rotate: false
+ xy: 709, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-pulse-conduit-large
+ rotate: false
+ xy: 859, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-pulse-conduit-medium
+ rotate: false
+ xy: 1081, 317
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-pulse-conduit-small
+ rotate: false
+ xy: 1511, 564
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-pulse-conduit-tiny
+ rotate: false
+ xy: 1725, 527
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-pulse-conduit-xlarge
+ rotate: false
+ xy: 659, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-pulverizer-large
+ rotate: false
+ xy: 943, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-pulverizer-medium
+ rotate: false
+ xy: 1115, 296
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-pulverizer-small
+ rotate: false
+ xy: 1537, 567
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-pulverizer-tiny
+ rotate: false
+ xy: 1743, 545
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-pulverizer-xlarge
+ rotate: false
+ xy: 709, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-pyratite-mixer-large
+ rotate: false
+ xy: 901, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-pyratite-mixer-medium
+ rotate: false
+ xy: 1149, 304
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-pyratite-mixer-small
+ rotate: false
+ xy: 1485, 538
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-pyratite-mixer-tiny
+ rotate: false
+ xy: 1761, 563
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-pyratite-mixer-xlarge
+ rotate: false
+ xy: 709, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-repair-point-large
+ rotate: false
+ xy: 859, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-repair-point-medium
+ rotate: false
+ xy: 1081, 283
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-repair-point-small
+ rotate: false
+ xy: 1511, 538
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-repair-point-tiny
+ rotate: false
+ xy: 1779, 581
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-repair-point-xlarge
+ rotate: false
+ xy: 759, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-resupply-point-large
+ rotate: false
+ xy: 985, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-resupply-point-medium
+ rotate: false
+ xy: 1115, 262
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-resupply-point-small
+ rotate: false
+ xy: 1537, 541
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-resupply-point-tiny
+ rotate: false
+ xy: 1797, 599
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-resupply-point-xlarge
+ rotate: false
+ xy: 759, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-ripple-large
+ rotate: false
+ xy: 943, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ripple-medium
+ rotate: false
+ xy: 1149, 270
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ripple-small
+ rotate: false
+ xy: 1484, 512
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ripple-tiny
+ rotate: false
+ xy: 1743, 527
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ripple-xlarge
+ rotate: false
+ xy: 759, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-rotary-pump-large
+ rotate: false
+ xy: 901, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-rotary-pump-medium
+ rotate: false
+ xy: 1081, 249
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-rotary-pump-small
+ rotate: false
+ xy: 1484, 486
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-rotary-pump-tiny
+ rotate: false
+ xy: 1761, 545
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-rotary-pump-xlarge
+ rotate: false
+ xy: 809, 828
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-router-large
+ rotate: false
+ xy: 859, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-router-medium
+ rotate: false
+ xy: 1115, 228
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-router-small
+ rotate: false
+ xy: 1510, 512
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-router-tiny
+ rotate: false
+ xy: 1779, 563
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-router-xlarge
+ rotate: false
+ xy: 809, 778
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-rtg-generator-large
+ rotate: false
+ xy: 1027, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-rtg-generator-medium
+ rotate: false
+ xy: 1149, 236
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-rtg-generator-small
+ rotate: false
+ xy: 1484, 460
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-rtg-generator-tiny
+ rotate: false
+ xy: 1797, 581
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-rtg-generator-xlarge
+ rotate: false
+ xy: 809, 728
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-salt-large
+ rotate: false
+ xy: 985, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-salt-medium
+ rotate: false
+ xy: 1081, 215
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-salt-small
+ rotate: false
+ xy: 1510, 486
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-salt-tiny
+ rotate: false
+ xy: 1761, 527
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-salt-wall-large
+ rotate: false
+ xy: 943, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-salt-wall-medium
+ rotate: false
+ xy: 1115, 194
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-salt-wall-small
+ rotate: false
+ xy: 1484, 434
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-salt-wall-tiny
+ rotate: false
+ xy: 1779, 545
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-salt-wall-xlarge
+ rotate: false
+ xy: 809, 678
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-salt-xlarge
+ rotate: false
+ xy: 331, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-salvo-large
+ rotate: false
+ xy: 901, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-salvo-medium
+ rotate: false
+ xy: 1149, 202
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-salvo-small
+ rotate: false
+ xy: 1510, 460
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-salvo-tiny
+ rotate: false
+ xy: 1797, 563
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-salvo-xlarge
+ rotate: false
+ xy: 331, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-sand-boulder-large
+ rotate: false
+ xy: 1069, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-sand-boulder-medium
+ rotate: false
+ xy: 1107, 160
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-sand-boulder-small
+ rotate: false
+ xy: 1484, 408
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-sand-boulder-tiny
+ rotate: false
+ xy: 1779, 527
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-sand-boulder-xlarge
+ rotate: false
+ xy: 381, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-sand-large
+ rotate: false
+ xy: 1027, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-sand-medium
+ rotate: false
+ xy: 1107, 126
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-sand-small
+ rotate: false
+ xy: 1510, 434
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-sand-tiny
+ rotate: false
+ xy: 1797, 545
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-sand-wall-large
+ rotate: false
+ xy: 985, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-sand-wall-medium
+ rotate: false
+ xy: 1107, 92
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-sand-wall-small
+ rotate: false
+ xy: 1484, 382
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-sand-wall-tiny
+ rotate: false
+ xy: 1797, 527
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-sand-wall-xlarge
+ rotate: false
+ xy: 381, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-sand-water-large
+ rotate: false
+ xy: 943, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-sand-water-medium
+ rotate: false
+ xy: 1107, 58
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-sand-water-small
+ rotate: false
+ xy: 1510, 408
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-sand-water-tiny
+ rotate: false
+ xy: 1725, 509
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-sand-water-xlarge
+ rotate: false
+ xy: 431, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-sand-xlarge
+ rotate: false
+ xy: 431, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-scatter-large
+ rotate: false
+ xy: 901, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-scatter-medium
+ rotate: false
+ xy: 1107, 24
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scatter-small
+ rotate: false
+ xy: 1510, 382
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scatter-tiny
+ rotate: false
+ xy: 1743, 509
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scatter-xlarge
+ rotate: false
+ xy: 481, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-scorch-large
+ rotate: false
+ xy: 1111, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-scorch-medium
+ rotate: false
+ xy: 1149, 168
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scorch-small
+ rotate: false
+ xy: 1507, 356
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scorch-tiny
+ rotate: false
+ xy: 1761, 509
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scorch-xlarge
+ rotate: false
+ xy: 481, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-scrap-wall-gigantic-large
+ rotate: false
+ xy: 1069, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-scrap-wall-gigantic-medium
+ rotate: false
+ xy: 1141, 134
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scrap-wall-gigantic-small
+ rotate: false
+ xy: 1507, 330
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scrap-wall-gigantic-tiny
+ rotate: false
+ xy: 1779, 509
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scrap-wall-gigantic-xlarge
+ rotate: false
+ xy: 531, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-scrap-wall-huge-large
+ rotate: false
+ xy: 1027, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-scrap-wall-huge-medium
+ rotate: false
+ xy: 1141, 100
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scrap-wall-huge-small
+ rotate: false
+ xy: 1507, 304
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scrap-wall-huge-tiny
+ rotate: false
+ xy: 1797, 509
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scrap-wall-huge-xlarge
+ rotate: false
+ xy: 531, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-scrap-wall-large
+ rotate: false
+ xy: 985, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-scrap-wall-large-large
+ rotate: false
+ xy: 943, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-scrap-wall-large-medium
+ rotate: false
+ xy: 1141, 66
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scrap-wall-large-small
+ rotate: false
+ xy: 1507, 278
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scrap-wall-large-tiny
+ rotate: false
+ xy: 1624, 492
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scrap-wall-large-xlarge
+ rotate: false
+ xy: 581, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-scrap-wall-medium
+ rotate: false
+ xy: 1141, 32
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scrap-wall-small
+ rotate: false
+ xy: 1537, 515
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scrap-wall-tiny
+ rotate: false
+ xy: 1642, 492
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scrap-wall-xlarge
+ rotate: false
+ xy: 581, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-segment-large
+ rotate: false
+ xy: 1153, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-segment-medium
+ rotate: false
+ xy: 1175, 134
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-segment-small
+ rotate: false
+ xy: 1536, 489
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-segment-tiny
+ rotate: false
+ xy: 1624, 474
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-segment-xlarge
+ rotate: false
+ xy: 631, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-separator-large
+ rotate: false
+ xy: 1111, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-separator-medium
+ rotate: false
+ xy: 1175, 100
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-separator-small
+ rotate: false
+ xy: 1536, 463
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-separator-tiny
+ rotate: false
+ xy: 1642, 474
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-separator-xlarge
+ rotate: false
+ xy: 631, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-shale-boulder-large
+ rotate: false
+ xy: 1069, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-shale-boulder-medium
+ rotate: false
+ xy: 1175, 66
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-shale-boulder-small
+ rotate: false
+ xy: 1536, 437
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-shale-boulder-tiny
+ rotate: false
+ xy: 1624, 456
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-shale-boulder-xlarge
+ rotate: false
+ xy: 681, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-shale-large
+ rotate: false
+ xy: 1027, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-shale-medium
+ rotate: false
+ xy: 1175, 32
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-shale-small
+ rotate: false
+ xy: 1536, 411
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-shale-tiny
+ rotate: false
+ xy: 1642, 456
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-shale-wall-large
+ rotate: false
+ xy: 985, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-shale-wall-medium
+ rotate: false
+ xy: 1178, 576
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-shale-wall-small
+ rotate: false
+ xy: 1536, 385
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-shale-wall-tiny
+ rotate: false
+ xy: 1624, 438
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-shale-wall-xlarge
+ rotate: false
+ xy: 681, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-shale-xlarge
+ rotate: false
+ xy: 731, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-shock-mine-large
+ rotate: false
+ xy: 1195, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-shock-mine-medium
+ rotate: false
+ xy: 1212, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-shock-mine-small
+ rotate: false
+ xy: 1533, 356
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-shock-mine-tiny
+ rotate: false
+ xy: 1642, 438
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-shock-mine-xlarge
+ rotate: false
+ xy: 731, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-shrubs-large
+ rotate: false
+ xy: 1153, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-shrubs-medium
+ rotate: false
+ xy: 1246, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-shrubs-small
+ rotate: false
+ xy: 1533, 330
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-shrubs-tiny
+ rotate: false
+ xy: 1624, 420
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-shrubs-xlarge
+ rotate: false
+ xy: 781, 628
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-silicon-crucible-large
+ rotate: false
+ xy: 1111, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-silicon-crucible-medium
+ rotate: false
+ xy: 1280, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-silicon-crucible-small
+ rotate: false
+ xy: 1533, 304
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-silicon-crucible-tiny
+ rotate: false
+ xy: 1642, 420
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-silicon-crucible-xlarge
+ rotate: false
+ xy: 831, 628
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-silicon-smelter-large
+ rotate: false
+ xy: 1069, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-silicon-smelter-medium
+ rotate: false
+ xy: 1314, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-silicon-smelter-small
+ rotate: false
+ xy: 1533, 278
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-silicon-smelter-tiny
+ rotate: false
+ xy: 1624, 402
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-silicon-smelter-xlarge
+ rotate: false
+ xy: 781, 578
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-slag-large
+ rotate: false
+ xy: 1027, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-slag-medium
+ rotate: false
+ xy: 1348, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-slag-small
+ rotate: false
+ xy: 1525, 252
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-slag-tiny
+ rotate: false
+ xy: 1642, 402
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-slag-xlarge
+ rotate: false
+ xy: 831, 578
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-snow-boulder-large
+ rotate: false
+ xy: 1237, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-snow-boulder-medium
+ rotate: false
+ xy: 1382, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-snow-boulder-small
+ rotate: false
+ xy: 1525, 226
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-snow-boulder-tiny
+ rotate: false
+ xy: 1624, 384
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-snow-boulder-xlarge
+ rotate: false
+ xy: 351, 566
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-snow-large
+ rotate: false
+ xy: 1195, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-snow-medium
+ rotate: false
+ xy: 1416, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-snow-pine-large
+ rotate: false
+ xy: 1153, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-snow-pine-medium
+ rotate: false
+ xy: 1450, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-snow-pine-small
+ rotate: false
+ xy: 1525, 200
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-snow-pine-tiny
+ rotate: false
+ xy: 1642, 384
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-snow-pine-xlarge
+ rotate: false
+ xy: 351, 516
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-snow-small
+ rotate: false
+ xy: 1551, 252
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-snow-tiny
+ rotate: false
+ xy: 1660, 492
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-snow-wall-large
+ rotate: false
+ xy: 1111, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-snow-wall-medium
+ rotate: false
+ xy: 1183, 542
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-snow-wall-small
+ rotate: false
+ xy: 1551, 226
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-snow-wall-tiny
+ rotate: false
+ xy: 1660, 474
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-snow-wall-xlarge
+ rotate: false
+ xy: 401, 566
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-snow-xlarge
+ rotate: false
+ xy: 351, 466
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-solar-panel-large
+ rotate: false
+ xy: 1069, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-solar-panel-large-large
+ rotate: false
+ xy: 1279, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-solar-panel-large-medium
+ rotate: false
+ xy: 1183, 508
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-solar-panel-large-small
+ rotate: false
+ xy: 1551, 200
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-solar-panel-large-tiny
+ rotate: false
+ xy: 1660, 456
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-solar-panel-large-xlarge
+ rotate: false
+ xy: 401, 516
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-solar-panel-medium
+ rotate: false
+ xy: 1183, 474
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-solar-panel-small
+ rotate: false
+ xy: 1449, 190
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-solar-panel-tiny
+ rotate: false
+ xy: 1660, 438
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-solar-panel-xlarge
+ rotate: false
+ xy: 451, 566
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-sorter-large
+ rotate: false
+ xy: 1237, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-sorter-medium
+ rotate: false
+ xy: 1183, 440
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-sorter-small
+ rotate: false
+ xy: 1449, 164
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-sorter-tiny
+ rotate: false
+ xy: 1660, 420
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-sorter-xlarge
+ rotate: false
+ xy: 351, 416
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-space-large
+ rotate: false
+ xy: 1195, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-space-medium
+ rotate: false
+ xy: 1183, 406
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-space-small
+ rotate: false
+ xy: 1475, 190
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-space-tiny
+ rotate: false
+ xy: 1660, 402
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-space-xlarge
+ rotate: false
+ xy: 401, 466
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-spawn-large
+ rotate: false
+ xy: 1153, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-spawn-medium
+ rotate: false
+ xy: 1183, 372
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-spawn-small
+ rotate: false
+ xy: 1475, 164
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-spawn-tiny
+ rotate: false
+ xy: 1660, 384
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-spawn-xlarge
+ rotate: false
+ xy: 451, 516
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-spectre-large
+ rotate: false
+ xy: 1111, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-spectre-medium
+ rotate: false
+ xy: 1183, 338
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-spectre-small
+ rotate: false
+ xy: 1469, 138
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-spectre-tiny
+ rotate: false
+ xy: 1678, 496
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-spectre-xlarge
+ rotate: false
+ xy: 501, 566
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-spore-cluster-large
+ rotate: false
+ xy: 1321, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-spore-cluster-medium
+ rotate: false
+ xy: 1183, 304
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-spore-cluster-small
+ rotate: false
+ xy: 1469, 112
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-spore-cluster-tiny
+ rotate: false
+ xy: 1696, 496
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-spore-cluster-xlarge
rotate: false
xy: 351, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spore-press-large
+block-spore-moss-large
rotate: false
- xy: 1405, 723
+ xy: 1279, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spore-press-medium
+block-spore-moss-medium
rotate: false
- xy: 1115, 453
+ xy: 1183, 270
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spore-press-small
+block-spore-moss-small
rotate: false
- xy: 1619, 389
+ xy: 1469, 86
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spore-press-tiny
+block-spore-moss-tiny
rotate: false
- xy: 1499, 283
+ xy: 1678, 478
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spore-press-xlarge
+block-spore-moss-xlarge
rotate: false
xy: 401, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spore-wall-large
+block-spore-pine-large
rotate: false
- xy: 1363, 681
+ xy: 1237, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spore-wall-medium
+block-spore-pine-medium
rotate: false
- xy: 1149, 487
+ xy: 1183, 236
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spore-wall-small
+block-spore-pine-small
rotate: false
- xy: 1652, 441
+ xy: 1495, 138
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spore-wall-tiny
+block-spore-pine-tiny
rotate: false
- xy: 1517, 283
+ xy: 1696, 478
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spore-wall-xlarge
+block-spore-pine-xlarge
rotate: false
xy: 451, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-steam-generator-large
+block-spore-press-large
rotate: false
- xy: 1573, 849
+ xy: 1195, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-steam-generator-medium
+block-spore-press-medium
rotate: false
- xy: 1183, 521
+ xy: 1183, 202
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-steam-generator-small
+block-spore-press-small
rotate: false
- xy: 1619, 363
+ xy: 1495, 112
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-steam-generator-tiny
+block-spore-press-tiny
rotate: false
- xy: 1499, 265
+ xy: 1678, 460
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-steam-generator-xlarge
+block-spore-press-xlarge
rotate: false
xy: 501, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-stone-large
+block-spore-wall-large
rotate: false
- xy: 1531, 807
+ xy: 1153, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-stone-medium
+block-spore-wall-medium
rotate: false
- xy: 1251, 555
+ xy: 1183, 168
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-stone-small
+block-spore-wall-small
rotate: false
- xy: 1652, 415
+ xy: 1495, 86
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-stone-tiny
+block-spore-wall-tiny
rotate: false
- xy: 1535, 283
+ xy: 1696, 460
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-stone-wall-large
- rotate: false
- xy: 1489, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-stone-wall-medium
- rotate: false
- xy: 1115, 419
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-stone-wall-small
- rotate: false
- xy: 1645, 389
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-stone-wall-tiny
- rotate: false
- xy: 1499, 247
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-stone-wall-xlarge
+block-spore-wall-xlarge
rotate: false
xy: 551, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-stone-xlarge
+block-steam-generator-large
+ rotate: false
+ xy: 1363, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-steam-generator-medium
+ rotate: false
+ xy: 1217, 545
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-steam-generator-small
+ rotate: false
+ xy: 1479, 60
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-steam-generator-tiny
+ rotate: false
+ xy: 1678, 442
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-steam-generator-xlarge
rotate: false
xy: 351, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-surge-tower-large
+block-stone-large
rotate: false
- xy: 1447, 723
+ xy: 1321, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-surge-tower-medium
+block-stone-medium
rotate: false
- xy: 1149, 453
+ xy: 1217, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-surge-tower-small
+block-stone-small
rotate: false
- xy: 1645, 363
+ xy: 1479, 34
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-surge-tower-tiny
+block-stone-tiny
rotate: false
- xy: 1517, 265
+ xy: 1696, 442
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-surge-tower-xlarge
+block-stone-wall-large
+ rotate: false
+ xy: 1279, 765
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-stone-wall-medium
+ rotate: false
+ xy: 1251, 545
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-stone-wall-small
+ rotate: false
+ xy: 1479, 8
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-stone-wall-tiny
+ rotate: false
+ xy: 1678, 424
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-stone-wall-xlarge
rotate: false
xy: 401, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-surge-wall-large
- rotate: false
- xy: 1405, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-surge-wall-large-large
- rotate: false
- xy: 1615, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-surge-wall-large-medium
- rotate: false
- xy: 1183, 487
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-surge-wall-large-small
- rotate: false
- xy: 1679, 519
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-surge-wall-large-tiny
- rotate: false
- xy: 1499, 229
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-surge-wall-large-xlarge
+block-stone-xlarge
rotate: false
xy: 451, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-surge-wall-medium
+block-surge-tower-large
rotate: false
- xy: 1217, 521
+ xy: 1237, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-surge-tower-medium
+ rotate: false
+ xy: 1217, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-surge-wall-small
+block-surge-tower-small
rotate: false
- xy: 1678, 493
+ xy: 1505, 60
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-surge-wall-tiny
+block-surge-tower-tiny
rotate: false
- xy: 1517, 247
+ xy: 1696, 424
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-surge-wall-xlarge
+block-surge-tower-xlarge
rotate: false
xy: 501, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-swarmer-large
+block-surge-wall-large
rotate: false
- xy: 1573, 807
+ xy: 1195, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-swarmer-medium
+block-surge-wall-large-large
rotate: false
- xy: 1285, 555
+ xy: 1405, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-surge-wall-large-medium
+ rotate: false
+ xy: 1251, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-swarmer-small
+block-surge-wall-large-small
rotate: false
- xy: 1678, 467
+ xy: 1505, 34
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-swarmer-tiny
+block-surge-wall-large-tiny
rotate: false
- xy: 1535, 265
+ xy: 1678, 406
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-swarmer-xlarge
+block-surge-wall-large-xlarge
rotate: false
xy: 551, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-switch-large
+block-surge-wall-medium
rotate: false
- xy: 1531, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-switch-medium
- rotate: false
- xy: 1149, 419
+ xy: 1285, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-switch-small
+block-surge-wall-small
rotate: false
- xy: 1678, 441
+ xy: 1505, 8
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-switch-tiny
+block-surge-wall-tiny
rotate: false
- xy: 1517, 229
+ xy: 1696, 406
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-switch-xlarge
+block-surge-wall-xlarge
rotate: false
xy: 601, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tainted-water-large
+block-swarmer-large
rotate: false
- xy: 1489, 723
+ xy: 1363, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tainted-water-medium
+block-swarmer-medium
rotate: false
- xy: 1183, 453
+ xy: 1217, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tainted-water-small
+block-swarmer-small
rotate: false
- xy: 1678, 415
+ xy: 1501, 174
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tainted-water-tiny
+block-swarmer-tiny
rotate: false
- xy: 1535, 247
+ xy: 1678, 388
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tainted-water-xlarge
+block-swarmer-xlarge
rotate: false
xy: 351, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tar-large
+block-switch-large
rotate: false
- xy: 1447, 681
+ xy: 1321, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tar-medium
+block-switch-medium
rotate: false
- xy: 1217, 487
+ xy: 1251, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tar-small
+block-switch-small
rotate: false
- xy: 1671, 389
+ xy: 1527, 174
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tar-tiny
+block-switch-tiny
rotate: false
- xy: 1535, 229
+ xy: 1696, 388
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tar-xlarge
+block-switch-xlarge
rotate: false
xy: 401, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tendrils-large
+block-tainted-water-large
rotate: false
- xy: 1657, 849
+ xy: 1279, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tendrils-medium
+block-tainted-water-medium
rotate: false
- xy: 1251, 521
+ xy: 1285, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tendrils-small
+block-tainted-water-small
rotate: false
- xy: 1671, 363
+ xy: 1553, 174
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tendrils-tiny
+block-tainted-water-tiny
rotate: false
- xy: 1499, 211
+ xy: 1714, 491
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tendrils-xlarge
+block-tainted-water-xlarge
rotate: false
xy: 451, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tetrative-reconstructor-large
+block-tar-large
rotate: false
- xy: 1615, 807
+ xy: 1237, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tetrative-reconstructor-medium
+block-tar-medium
rotate: false
- xy: 1319, 555
+ xy: 1319, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tetrative-reconstructor-small
+block-tar-small
rotate: false
- xy: 1473, 341
+ xy: 1521, 148
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tetrative-reconstructor-tiny
+block-tar-tiny
rotate: false
- xy: 1517, 211
+ xy: 1714, 473
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tetrative-reconstructor-xlarge
+block-tar-xlarge
rotate: false
xy: 501, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thermal-generator-large
+block-tendrils-large
rotate: false
- xy: 1573, 765
+ xy: 1447, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thermal-generator-medium
+block-tendrils-medium
rotate: false
- xy: 1183, 419
+ xy: 1217, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thermal-generator-small
+block-tendrils-small
rotate: false
- xy: 1319, 299
+ xy: 1521, 122
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thermal-generator-tiny
+block-tendrils-tiny
rotate: false
- xy: 1535, 211
+ xy: 1732, 491
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thermal-generator-xlarge
+block-tendrils-xlarge
rotate: false
xy: 551, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thermal-pump-large
+block-tetrative-reconstructor-large
rotate: false
- xy: 1531, 723
+ xy: 1405, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thermal-pump-medium
+block-tetrative-reconstructor-medium
rotate: false
- xy: 1217, 453
+ xy: 1251, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thermal-pump-small
+block-tetrative-reconstructor-small
rotate: false
- xy: 1321, 273
+ xy: 1547, 148
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thermal-pump-tiny
+block-tetrative-reconstructor-tiny
rotate: false
- xy: 1553, 271
+ xy: 1714, 455
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thermal-pump-xlarge
+block-tetrative-reconstructor-xlarge
rotate: false
xy: 601, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thorium-reactor-large
+block-thermal-generator-large
rotate: false
- xy: 1489, 681
+ xy: 1363, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thorium-reactor-medium
+block-thermal-generator-medium
rotate: false
- xy: 1251, 487
+ xy: 1285, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thorium-reactor-small
+block-thermal-generator-small
rotate: false
- xy: 1321, 247
+ xy: 1521, 96
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thorium-reactor-tiny
+block-thermal-generator-tiny
rotate: false
- xy: 1571, 271
+ xy: 1732, 473
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thorium-reactor-xlarge
+block-thermal-generator-xlarge
rotate: false
xy: 651, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thorium-wall-large
+block-thermal-pump-large
rotate: false
- xy: 1699, 849
+ xy: 1321, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thorium-wall-large-large
+block-thermal-pump-medium
rotate: false
- xy: 1657, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-thorium-wall-large-medium
- rotate: false
- xy: 1285, 521
+ xy: 1319, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thorium-wall-large-small
+block-thermal-pump-small
rotate: false
- xy: 1321, 221
+ xy: 1547, 122
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thorium-wall-large-tiny
+block-thermal-pump-tiny
rotate: false
- xy: 1553, 253
+ xy: 1750, 491
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thorium-wall-large-xlarge
+block-thermal-pump-xlarge
rotate: false
xy: 351, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thorium-wall-medium
+block-thorium-reactor-large
rotate: false
- xy: 1353, 555
+ xy: 1279, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-thorium-reactor-medium
+ rotate: false
+ xy: 1353, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thorium-wall-small
+block-thorium-reactor-small
rotate: false
- xy: 1317, 195
+ xy: 1547, 96
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thorium-wall-tiny
+block-thorium-reactor-tiny
rotate: false
- xy: 1553, 235
+ xy: 1714, 437
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thorium-wall-xlarge
+block-thorium-reactor-xlarge
rotate: false
xy: 401, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thruster-large
+block-thorium-wall-large
rotate: false
- xy: 1615, 765
+ xy: 1489, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thruster-medium
+block-thorium-wall-large-large
rotate: false
- xy: 1217, 419
+ xy: 1447, 807
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-thorium-wall-large-medium
+ rotate: false
+ xy: 1217, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thruster-small
+block-thorium-wall-large-small
rotate: false
- xy: 1317, 169
+ xy: 1531, 70
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thruster-tiny
+block-thorium-wall-large-tiny
rotate: false
- xy: 1571, 253
+ xy: 1732, 455
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thruster-xlarge
+block-thorium-wall-large-xlarge
rotate: false
xy: 451, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-titanium-conveyor-large
+block-thorium-wall-medium
rotate: false
- xy: 1573, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-titanium-conveyor-medium
- rotate: false
- xy: 1251, 453
+ xy: 1251, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-titanium-conveyor-small
+block-thorium-wall-small
rotate: false
- xy: 1317, 143
+ xy: 1531, 44
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-titanium-conveyor-tiny
+block-thorium-wall-tiny
rotate: false
- xy: 1553, 217
+ xy: 1750, 473
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-titanium-conveyor-xlarge
+block-thorium-wall-xlarge
rotate: false
xy: 501, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-titanium-wall-large
+block-thruster-large
rotate: false
- xy: 1531, 681
+ xy: 1405, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-titanium-wall-large-large
+block-thruster-medium
rotate: false
- xy: 1741, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-titanium-wall-large-medium
- rotate: false
- xy: 1285, 487
+ xy: 1285, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-titanium-wall-large-small
+block-thruster-small
rotate: false
- xy: 1317, 117
+ xy: 1531, 18
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-titanium-wall-large-tiny
+block-thruster-tiny
rotate: false
- xy: 1571, 235
+ xy: 1768, 491
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-titanium-wall-large-xlarge
+block-thruster-xlarge
rotate: false
xy: 551, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-titanium-wall-medium
+block-titanium-conveyor-large
rotate: false
- xy: 1319, 521
+ xy: 1363, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-titanium-conveyor-medium
+ rotate: false
+ xy: 1319, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-titanium-wall-small
+block-titanium-conveyor-small
rotate: false
- xy: 1345, 305
+ xy: 1557, 70
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-titanium-wall-tiny
+block-titanium-conveyor-tiny
rotate: false
- xy: 1571, 217
+ xy: 1714, 419
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-titanium-wall-xlarge
+block-titanium-conveyor-xlarge
rotate: false
xy: 601, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tsunami-large
+block-titanium-wall-large
rotate: false
- xy: 1699, 807
+ xy: 1321, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tsunami-medium
+block-titanium-wall-large-large
rotate: false
- xy: 1387, 555
+ xy: 1531, 849
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-titanium-wall-large-medium
+ rotate: false
+ xy: 1353, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tsunami-small
+block-titanium-wall-large-small
rotate: false
- xy: 1347, 279
+ xy: 1557, 44
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tsunami-tiny
+block-titanium-wall-large-tiny
rotate: false
- xy: 1589, 262
+ xy: 1732, 437
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tsunami-xlarge
+block-titanium-wall-large-xlarge
rotate: false
xy: 651, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-underflow-gate-large
+block-titanium-wall-medium
rotate: false
- xy: 1657, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-underflow-gate-medium
- rotate: false
- xy: 1251, 419
+ xy: 1387, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-underflow-gate-small
+block-titanium-wall-small
rotate: false
- xy: 1347, 253
+ xy: 1557, 18
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-underflow-gate-tiny
+block-titanium-wall-tiny
rotate: false
- xy: 1589, 244
+ xy: 1750, 455
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-underflow-gate-xlarge
+block-titanium-wall-xlarge
rotate: false
xy: 701, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-unloader-large
+block-tsunami-large
rotate: false
- xy: 1615, 723
+ xy: 1489, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-unloader-medium
+block-tsunami-medium
rotate: false
- xy: 1285, 453
+ xy: 1217, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-unloader-small
+block-tsunami-small
rotate: false
- xy: 1347, 227
+ xy: 1573, 148
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-unloader-tiny
+block-tsunami-tiny
rotate: false
- xy: 1589, 226
+ xy: 1768, 473
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-unloader-xlarge
+block-tsunami-xlarge
rotate: false
xy: 351, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-vault-large
+block-underflow-gate-large
rotate: false
- xy: 1573, 681
+ xy: 1447, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-vault-medium
+block-underflow-gate-medium
rotate: false
- xy: 1319, 487
+ xy: 1251, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-vault-small
+block-underflow-gate-small
rotate: false
- xy: 1340, 91
+ xy: 1573, 122
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-vault-tiny
+block-underflow-gate-tiny
rotate: false
- xy: 1589, 208
+ xy: 1786, 491
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-vault-xlarge
+block-underflow-gate-xlarge
rotate: false
xy: 401, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-water-extractor-large
+block-unloader-large
rotate: false
- xy: 1783, 849
+ xy: 1405, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-water-extractor-medium
+block-unloader-medium
rotate: false
- xy: 1353, 521
+ xy: 1285, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-water-extractor-small
+block-unloader-small
rotate: false
- xy: 1347, 65
+ xy: 1573, 96
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-water-extractor-tiny
+block-unloader-tiny
rotate: false
- xy: 1607, 257
+ xy: 1714, 401
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-water-extractor-xlarge
+block-unloader-xlarge
rotate: false
xy: 451, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-water-large
+block-vault-large
rotate: false
- xy: 1741, 807
+ xy: 1363, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-water-medium
+block-vault-medium
rotate: false
- xy: 1285, 419
+ xy: 1319, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-water-small
+block-vault-small
rotate: false
- xy: 1027, 39
+ xy: 1583, 70
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-water-tiny
+block-vault-tiny
rotate: false
- xy: 1607, 239
+ xy: 1732, 419
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-water-xlarge
+block-vault-xlarge
rotate: false
xy: 501, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-wave-large
+block-water-extractor-large
rotate: false
- xy: 1699, 765
+ xy: 1573, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-wave-medium
+block-water-extractor-medium
rotate: false
- xy: 1319, 453
+ xy: 1353, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-wave-small
+block-water-extractor-small
rotate: false
- xy: 1027, 13
+ xy: 1583, 44
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-wave-tiny
+block-water-extractor-tiny
rotate: false
- xy: 1607, 221
+ xy: 1750, 437
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-wave-xlarge
+block-water-extractor-xlarge
rotate: false
xy: 551, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-white-tree-dead-large
+block-water-large
rotate: false
- xy: 1657, 723
+ xy: 1531, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-white-tree-dead-medium
+block-water-medium
rotate: false
- xy: 1353, 487
+ xy: 1387, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-white-tree-dead-small
+block-water-small
rotate: false
- xy: 1053, 39
+ xy: 1583, 18
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-white-tree-dead-tiny
+block-water-tiny
rotate: false
- xy: 1607, 203
+ xy: 1768, 455
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-white-tree-dead-xlarge
+block-water-xlarge
rotate: false
xy: 601, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-white-tree-large
+block-wave-large
rotate: false
- xy: 1615, 681
+ xy: 1489, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-white-tree-medium
+block-wave-medium
rotate: false
- xy: 1387, 521
+ xy: 1421, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-white-tree-small
+block-wave-small
rotate: false
- xy: 1053, 13
+ xy: 1562, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-white-tree-tiny
+block-wave-tiny
rotate: false
- xy: 1553, 199
+ xy: 1786, 473
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-white-tree-xlarge
+block-wave-xlarge
rotate: false
xy: 651, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+block-white-tree-dead-large
+ rotate: false
+ xy: 1447, 723
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-medium
+ rotate: false
+ xy: 1217, 307
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-small
+ rotate: false
+ xy: 1562, 463
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-tiny
+ rotate: false
+ xy: 1732, 401
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-xlarge
+ rotate: false
+ xy: 701, 516
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-white-tree-large
+ rotate: false
+ xy: 1405, 681
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-white-tree-medium
+ rotate: false
+ xy: 1251, 341
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-white-tree-small
+ rotate: false
+ xy: 1562, 437
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-white-tree-tiny
+ rotate: false
+ xy: 1750, 419
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-white-tree-xlarge
+ rotate: false
+ xy: 351, 116
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
button
rotate: false
- xy: 1273, 652
+ xy: 919, 594
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21149,7 +22689,7 @@ button
index: -1
button-disabled
rotate: false
- xy: 1007, 652
+ xy: 1657, 736
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21157,7 +22697,7 @@ button-disabled
index: -1
button-down
rotate: false
- xy: 1951, 812
+ xy: 1867, 812
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21165,7 +22705,7 @@ button-down
index: -1
button-edge-1
rotate: false
- xy: 1007, 623
+ xy: 1825, 778
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21173,7 +22713,7 @@ button-edge-1
index: -1
button-edge-2
rotate: false
- xy: 1045, 652
+ xy: 1489, 694
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21181,7 +22721,7 @@ button-edge-2
index: -1
button-edge-3
rotate: false
- xy: 1951, 783
+ xy: 837, 3
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21189,7 +22729,7 @@ button-edge-3
index: -1
button-edge-4
rotate: false
- xy: 1045, 623
+ xy: 875, 3
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21197,7 +22737,7 @@ button-edge-4
index: -1
button-right-disabled
rotate: false
- xy: 1045, 623
+ xy: 875, 3
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21205,7 +22745,7 @@ button-right-disabled
index: -1
button-edge-over-4
rotate: false
- xy: 1083, 652
+ xy: 913, 3
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21213,7 +22753,7 @@ button-edge-over-4
index: -1
button-over
rotate: false
- xy: 1083, 623
+ xy: 951, 3
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21221,7 +22761,7 @@ button-over
index: -1
button-red
rotate: false
- xy: 1121, 652
+ xy: 881, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21229,7 +22769,7 @@ button-red
index: -1
button-right
rotate: false
- xy: 1159, 623
+ xy: 881, 594
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21237,7 +22777,7 @@ button-right
index: -1
button-right-down
rotate: false
- xy: 1121, 623
+ xy: 881, 623
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21245,7 +22785,7 @@ button-right-down
index: -1
button-right-over
rotate: false
- xy: 1159, 652
+ xy: 919, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21253,7 +22793,7 @@ button-right-over
index: -1
button-select
rotate: false
- xy: 1079, 39
+ xy: 1562, 411
size: 24, 24
split: 4, 4, 4, 4
orig: 24, 24
@@ -21261,7 +22801,7 @@ button-select
index: -1
button-square
rotate: false
- xy: 1235, 652
+ xy: 995, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21269,7 +22809,7 @@ button-square
index: -1
button-square-down
rotate: false
- xy: 1197, 652
+ xy: 957, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21277,7 +22817,7 @@ button-square-down
index: -1
button-square-over
rotate: false
- xy: 1197, 623
+ xy: 919, 623
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21285,7 +22825,7 @@ button-square-over
index: -1
button-trans
rotate: false
- xy: 1235, 623
+ xy: 957, 623
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21293,49 +22833,49 @@ button-trans
index: -1
check-disabled
rotate: false
- xy: 1319, 419
+ xy: 1285, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-off
rotate: false
- xy: 1353, 453
+ xy: 1319, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on
rotate: false
- xy: 1387, 487
+ xy: 1353, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on-disabled
rotate: false
- xy: 1353, 419
+ xy: 1387, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on-over
rotate: false
- xy: 1387, 453
+ xy: 1421, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-over
rotate: false
- xy: 1387, 419
+ xy: 1217, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
clear
rotate: false
- xy: 1565, 325
+ xy: 795, 866
size: 10, 10
orig: 10, 10
offset: 0, 0
@@ -21349,7 +22889,7 @@ crater
index: -1
cursor
rotate: false
- xy: 1319, 351
+ xy: 1313, 165
size: 4, 4
orig: 4, 4
offset: 0, 0
@@ -21363,7 +22903,7 @@ discord-banner
index: -1
flat-down-base
rotate: false
- xy: 1273, 623
+ xy: 1033, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21378,7 +22918,7 @@ info-banner
index: -1
inventory
rotate: false
- xy: 1105, 23
+ xy: 1562, 369
size: 24, 40
split: 10, 10, 10, 14
orig: 24, 40
@@ -21386,147 +22926,147 @@ inventory
index: -1
item-blast-compound-icon
rotate: false
- xy: 1013, 385
+ xy: 1251, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-coal-icon
rotate: false
- xy: 1047, 385
+ xy: 1285, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-copper-icon
rotate: false
- xy: 1081, 385
+ xy: 1319, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-graphite-icon
rotate: false
- xy: 1115, 385
+ xy: 1353, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-lead-icon
rotate: false
- xy: 1149, 385
+ xy: 1387, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-metaglass-icon
rotate: false
- xy: 1183, 385
+ xy: 1421, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-phase-fabric-icon
rotate: false
- xy: 1217, 385
+ xy: 1217, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-plastanium-icon
rotate: false
- xy: 1251, 385
+ xy: 1251, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-pyratite-icon
rotate: false
- xy: 1285, 385
+ xy: 1285, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-sand-icon
rotate: false
- xy: 1319, 385
+ xy: 1319, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap-icon
rotate: false
- xy: 1353, 385
+ xy: 1353, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-silicon-icon
rotate: false
- xy: 1387, 385
+ xy: 1387, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-spore-pod-icon
rotate: false
- xy: 1421, 542
+ xy: 1421, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-surge-alloy-icon
rotate: false
- xy: 1421, 508
+ xy: 1217, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-thorium-icon
rotate: false
- xy: 1421, 474
+ xy: 1251, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-titanium-icon
rotate: false
- xy: 1421, 440
+ xy: 1285, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-cryofluid-icon
rotate: false
- xy: 1421, 406
+ xy: 1319, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-oil-icon
rotate: false
- xy: 1421, 372
+ xy: 1353, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-slag-icon
rotate: false
- xy: 1455, 529
+ xy: 1387, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-water-icon
rotate: false
- xy: 1455, 495
+ xy: 1421, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
logic-node
rotate: false
- xy: 1455, 461
+ xy: 1217, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -21547,7 +23087,7 @@ nomap
index: -1
pane
rotate: false
- xy: 1311, 623
+ xy: 957, 594
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21555,7 +23095,7 @@ pane
index: -1
pane-2
rotate: false
- xy: 1311, 652
+ xy: 995, 623
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21563,7 +23103,7 @@ pane-2
index: -1
scroll
rotate: false
- xy: 1079, 2
+ xy: 1559, 290
size: 24, 35
split: 10, 10, 6, 5
orig: 24, 35
@@ -21586,14 +23126,14 @@ scroll-knob-horizontal-black
index: -1
scroll-knob-vertical-black
rotate: false
- xy: 1131, 23
+ xy: 1559, 327
size: 24, 40
orig: 24, 40
offset: 0, 0
index: -1
scroll-knob-vertical-thin
rotate: false
- xy: 1697, 228
+ xy: 1815, 575
size: 12, 40
orig: 12, 40
offset: 0, 0
@@ -21607,42 +23147,42 @@ selection
index: -1
slider
rotate: false
- xy: 1533, 621
+ xy: 693, 273
size: 1, 8
orig: 1, 8
offset: 0, 0
index: -1
slider-knob
rotate: false
- xy: 945, 293
+ xy: 1050, 350
size: 29, 38
orig: 29, 38
offset: 0, 0
index: -1
slider-knob-down
rotate: false
- xy: 976, 293
+ xy: 1050, 310
size: 29, 38
orig: 29, 38
offset: 0, 0
index: -1
slider-knob-over
rotate: false
- xy: 2017, 901
+ xy: 1050, 270
size: 29, 38
orig: 29, 38
offset: 0, 0
index: -1
slider-vertical
rotate: false
- xy: 1681, 342
+ xy: 1235, 38
size: 8, 1
orig: 8, 1
offset: 0, 0
index: -1
underline
rotate: false
- xy: 1425, 652
+ xy: 1071, 623
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21650,7 +23190,7 @@ underline
index: -1
underline-2
rotate: false
- xy: 1349, 652
+ xy: 1071, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21658,7 +23198,7 @@ underline-2
index: -1
underline-disabled
rotate: false
- xy: 1349, 623
+ xy: 1033, 623
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21666,7 +23206,7 @@ underline-disabled
index: -1
underline-red
rotate: false
- xy: 1387, 652
+ xy: 995, 594
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21674,7 +23214,7 @@ underline-red
index: -1
underline-white
rotate: false
- xy: 1387, 623
+ xy: 1109, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21682,42 +23222,42 @@ underline-white
index: -1
unit-alpha-large
rotate: false
- xy: 1825, 849
+ xy: 1615, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-alpha-medium
rotate: false
- xy: 1455, 427
+ xy: 1251, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-alpha-small
rotate: false
- xy: 1157, 39
+ xy: 1585, 343
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-alpha-tiny
rotate: false
- xy: 1571, 199
+ xy: 1768, 437
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-alpha-xlarge
rotate: false
- xy: 701, 516
+ xy: 401, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-antumbra-large
rotate: false
- xy: 1979, 891
+ xy: 1951, 849
size: 36, 40
orig: 36, 40
offset: 0, 0
@@ -21731,182 +23271,182 @@ unit-antumbra-medium
index: -1
unit-antumbra-small
rotate: false
- xy: 511, 6
+ xy: 1811, 713
size: 21, 24
orig: 21, 24
offset: 0, 0
index: -1
unit-antumbra-tiny
rotate: false
- xy: 619, 47
+ xy: 1125, 6
size: 14, 16
orig: 14, 16
offset: 0, 0
index: -1
unit-antumbra-xlarge
rotate: false
- xy: 551, 183
+ xy: 651, 283
size: 43, 48
orig: 43, 48
offset: 0, 0
index: -1
unit-arkyid-large
rotate: false
- xy: 1783, 807
+ xy: 1573, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-arkyid-medium
rotate: false
- xy: 1455, 393
+ xy: 1285, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-arkyid-small
rotate: false
- xy: 1183, 39
+ xy: 1585, 317
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-arkyid-tiny
rotate: false
- xy: 1589, 190
+ xy: 1786, 455
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-arkyid-xlarge
rotate: false
- xy: 351, 116
+ xy: 451, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-atrax-large
rotate: false
- xy: 1741, 776
+ xy: 753, 1
size: 40, 29
orig: 40, 29
offset: 0, 0
index: -1
unit-atrax-medium
rotate: false
- xy: 80, 3
+ xy: 914, 331
size: 32, 23
orig: 32, 23
offset: 0, 0
index: -1
unit-atrax-small
rotate: false
- xy: 976, 81
+ xy: 1457, 650
size: 24, 17
orig: 24, 17
offset: 0, 0
index: -1
unit-atrax-tiny
rotate: false
- xy: 1421, 576
+ xy: 1379, 179
size: 16, 11
orig: 16, 11
offset: 0, 0
index: -1
unit-atrax-xlarge
rotate: false
- xy: 401, 180
+ xy: 501, 280
size: 48, 34
orig: 48, 34
offset: 0, 0
index: -1
unit-beta-large
rotate: false
- xy: 1699, 725
+ xy: 1531, 767
size: 40, 38
orig: 40, 38
offset: 0, 0
index: -1
unit-beta-medium
rotate: false
- xy: 877, 369
+ xy: 1319, 275
size: 32, 30
orig: 32, 30
offset: 0, 0
index: -1
unit-beta-small
rotate: false
- xy: 1209, 40
+ xy: 1585, 292
size: 24, 23
orig: 24, 23
offset: 0, 0
index: -1
unit-beta-tiny
rotate: false
- xy: 1607, 186
+ xy: 1583, 1
size: 16, 15
orig: 16, 15
offset: 0, 0
index: -1
unit-beta-xlarge
rotate: false
- xy: 451, 218
+ xy: 551, 318
size: 48, 46
orig: 48, 46
offset: 0, 0
index: -1
unit-bryde-large
rotate: false
- xy: 1657, 681
+ xy: 1489, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-bryde-medium
rotate: false
- xy: 911, 367
+ xy: 1353, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-bryde-small
rotate: false
- xy: 1235, 39
+ xy: 1585, 266
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-bryde-tiny
rotate: false
- xy: 1625, 252
+ xy: 1750, 401
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-bryde-xlarge
rotate: false
- xy: 501, 266
+ xy: 601, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-corvus-large
rotate: false
- xy: 1867, 863
+ xy: 1447, 695
size: 40, 26
orig: 40, 26
offset: 0, 0
index: -1
unit-corvus-medium
rotate: false
- xy: 1489, 507
+ xy: 877, 368
size: 31, 20
orig: 31, 20
offset: 0, 0
index: -1
unit-corvus-small
rotate: false
- xy: 1105, 6
+ xy: 1531, 1
size: 24, 15
orig: 24, 15
offset: 0, 0
@@ -21920,336 +23460,336 @@ unit-corvus-tiny
index: -1
unit-corvus-xlarge
rotate: false
- xy: 551, 333
+ xy: 651, 433
size: 48, 31
orig: 48, 31
offset: 0, 0
index: -1
unit-crawler-large
rotate: false
- xy: 1825, 807
+ xy: 1657, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-crawler-medium
rotate: false
- xy: 945, 367
+ xy: 1387, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-crawler-small
rotate: false
- xy: 1261, 39
+ xy: 1577, 240
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-crawler-tiny
rotate: false
- xy: 1625, 234
+ xy: 1768, 419
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-crawler-xlarge
rotate: false
- xy: 601, 366
+ xy: 701, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-dagger-large
rotate: false
- xy: 1741, 734
+ xy: 1615, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-dagger-medium
rotate: false
- xy: 979, 367
+ xy: 1421, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-dagger-small
rotate: false
- xy: 1287, 39
+ xy: 1577, 214
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-dagger-tiny
rotate: false
- xy: 1643, 252
+ xy: 1786, 437
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-dagger-xlarge
rotate: false
- xy: 651, 416
+ xy: 351, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-eclipse-large
rotate: false
- xy: 1783, 765
+ xy: 1531, 725
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-eclipse-medium
rotate: false
- xy: 911, 333
+ xy: 1251, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-eclipse-small
rotate: false
- xy: 1313, 39
+ xy: 1579, 188
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-eclipse-tiny
rotate: false
- xy: 1625, 216
+ xy: 1768, 401
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-eclipse-xlarge
rotate: false
- xy: 701, 466
+ xy: 401, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-flare-large
rotate: false
- xy: 1699, 683
+ xy: 1573, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-flare-medium
rotate: false
- xy: 945, 333
+ xy: 1285, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-flare-small
rotate: false
- xy: 1339, 39
+ xy: 1603, 240
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-flare-tiny
rotate: false
- xy: 1643, 234
+ xy: 1786, 419
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-flare-xlarge
rotate: false
- xy: 351, 66
+ xy: 451, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-fortress-large
rotate: false
- xy: 443, 1
+ xy: 1699, 857
size: 40, 32
orig: 40, 32
offset: 0, 0
index: -1
unit-fortress-medium
rotate: false
- xy: 114, 1
+ xy: 80, 1
size: 32, 25
orig: 32, 25
offset: 0, 0
index: -1
unit-fortress-small
rotate: false
- xy: 1131, 2
+ xy: 1603, 219
size: 24, 19
orig: 24, 19
offset: 0, 0
index: -1
unit-fortress-tiny
rotate: false
- xy: 1703, 547
+ xy: 1579, 174
size: 16, 12
orig: 16, 12
offset: 0, 0
index: -1
unit-fortress-xlarge
rotate: false
- xy: 401, 140
+ xy: 501, 240
size: 48, 38
orig: 48, 38
offset: 0, 0
index: -1
unit-gamma-large
rotate: false
- xy: 1867, 821
+ xy: 1657, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-gamma-medium
rotate: false
- xy: 979, 333
+ xy: 1319, 241
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-gamma-small
rotate: false
- xy: 1157, 13
+ xy: 1605, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-gamma-tiny
rotate: false
- xy: 1661, 252
+ xy: 1786, 401
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-gamma-xlarge
rotate: false
- xy: 451, 168
+ xy: 551, 268
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-horizon-large
rotate: false
- xy: 1909, 849
+ xy: 1615, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-horizon-medium
rotate: false
- xy: 1013, 351
+ xy: 1353, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-horizon-small
rotate: false
- xy: 1183, 13
+ xy: 1605, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-horizon-tiny
rotate: false
- xy: 1625, 198
+ xy: 1714, 383
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-horizon-xlarge
rotate: false
- xy: 501, 216
+ xy: 601, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-mace-large
rotate: false
- xy: 1741, 692
+ xy: 1699, 815
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-mace-medium
rotate: false
- xy: 1047, 351
+ xy: 1387, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-mace-small
rotate: false
- xy: 1209, 14
+ xy: 1599, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-mace-tiny
rotate: false
- xy: 1643, 216
+ xy: 1732, 383
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-mace-xlarge
rotate: false
- xy: 551, 283
+ xy: 651, 383
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-mega-large
rotate: false
- xy: 1783, 723
+ xy: 1741, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-mega-medium
rotate: false
- xy: 1081, 351
+ xy: 1421, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-mega-small
rotate: false
- xy: 1235, 13
+ xy: 1599, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-mega-tiny
rotate: false
- xy: 1661, 234
+ xy: 1750, 383
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-mega-xlarge
rotate: false
- xy: 601, 316
+ xy: 701, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-minke-large
rotate: false
- xy: 1463, 610
+ xy: 1989, 849
size: 34, 40
orig: 34, 40
offset: 0, 0
index: -1
unit-minke-medium
rotate: false
- xy: 950, 141
+ xy: 1455, 435
size: 27, 32
orig: 27, 32
offset: 0, 0
@@ -22263,217 +23803,217 @@ unit-minke-small
index: -1
unit-minke-tiny
rotate: false
- xy: 1793, 538
+ xy: 989, 14
size: 13, 16
orig: 13, 16
offset: 0, 0
index: -1
unit-minke-xlarge
rotate: false
- xy: 551, 133
+ xy: 451, 25
size: 41, 48
orig: 41, 48
offset: 0, 0
index: -1
unit-mono-large
rotate: false
- xy: 1825, 765
+ xy: 1657, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-mono-medium
rotate: false
- xy: 1115, 351
+ xy: 1285, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-mono-small
rotate: false
- xy: 1261, 13
+ xy: 1625, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-mono-tiny
rotate: false
- xy: 1679, 252
+ xy: 1768, 383
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-mono-xlarge
rotate: false
- xy: 651, 366
+ xy: 401, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-nova-large
rotate: false
- xy: 1867, 779
+ xy: 1699, 773
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-nova-medium
rotate: false
- xy: 1149, 351
+ xy: 1319, 207
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-nova-small
rotate: false
- xy: 1287, 13
+ xy: 1625, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-nova-tiny
rotate: false
- xy: 1643, 198
+ xy: 1786, 383
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-nova-xlarge
rotate: false
- xy: 701, 416
+ xy: 451, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-oct-large
rotate: false
- xy: 1909, 807
+ xy: 1741, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-oct-medium
rotate: false
- xy: 1183, 351
+ xy: 1353, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-oct-small
rotate: false
- xy: 1313, 13
+ xy: 1609, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-oct-tiny
rotate: false
- xy: 1661, 216
+ xy: 1804, 491
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-oct-xlarge
rotate: false
- xy: 401, 90
+ xy: 501, 190
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-omura-large
rotate: false
- xy: 950, 251
+ xy: 1050, 228
size: 28, 40
orig: 28, 40
offset: 0, 0
index: -1
unit-omura-medium
rotate: false
- xy: 983, 572
+ xy: 2025, 874
size: 22, 32
orig: 22, 32
offset: 0, 0
index: -1
unit-omura-small
rotate: false
- xy: 1679, 226
+ xy: 1804, 465
size: 16, 24
orig: 16, 24
offset: 0, 0
index: -1
unit-omura-tiny
rotate: false
- xy: 1389, 307
+ xy: 481, 7
size: 11, 16
orig: 11, 16
offset: 0, 0
index: -1
unit-omura-xlarge
rotate: false
- xy: 1501, 631
+ xy: 1109, 602
size: 33, 48
orig: 33, 48
offset: 0, 0
index: -1
unit-poly-large
rotate: false
- xy: 1825, 723
+ xy: 1783, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-poly-medium
rotate: false
- xy: 1217, 351
+ xy: 1387, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-poly-small
rotate: false
- xy: 1339, 13
+ xy: 1609, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-poly-tiny
rotate: false
- xy: 1661, 198
+ xy: 1804, 447
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-poly-xlarge
rotate: false
- xy: 451, 118
+ xy: 551, 218
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-pulsar-large
rotate: false
- xy: 1867, 743
+ xy: 1573, 729
size: 40, 34
orig: 40, 34
offset: 0, 0
index: -1
unit-pulsar-medium
rotate: false
- xy: 1251, 356
+ xy: 1047, 390
size: 32, 27
orig: 32, 27
offset: 0, 0
index: -1
unit-pulsar-small
rotate: false
- xy: 1499, 341
+ xy: 1323, 1
size: 24, 20
orig: 24, 20
offset: 0, 0
index: -1
unit-pulsar-tiny
rotate: false
- xy: 1697, 364
+ xy: 1611, 266
size: 16, 13
orig: 16, 13
offset: 0, 0
@@ -22487,252 +24027,252 @@ unit-pulsar-xlarge
index: -1
unit-quad-large
rotate: false
- xy: 1909, 765
+ xy: 1783, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-quad-medium
rotate: false
- xy: 1489, 474
+ xy: 2016, 908
size: 31, 31
orig: 31, 31
offset: 0, 0
index: -1
unit-quad-small
rotate: false
- xy: 1525, 337
+ xy: 1609, 37
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-quad-tiny
rotate: false
- xy: 1643, 181
+ xy: 1804, 376
size: 15, 15
orig: 15, 15
offset: 0, 0
index: -1
unit-quad-xlarge
rotate: false
- xy: 501, 166
+ xy: 601, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-quasar-large
rotate: false
- xy: 881, 639
+ xy: 1825, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-quasar-medium
rotate: false
- xy: 1285, 351
+ xy: 1421, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-quasar-small
rotate: false
- xy: 1551, 337
+ xy: 1609, 11
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-quasar-tiny
rotate: false
- xy: 1679, 208
+ xy: 1804, 429
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-quasar-xlarge
rotate: false
- xy: 551, 233
+ xy: 651, 333
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-reign-large
rotate: false
- xy: 1783, 695
+ xy: 795, 4
size: 40, 26
orig: 40, 26
offset: 0, 0
index: -1
unit-reign-medium
rotate: false
- xy: 1489, 452
+ xy: 114, 6
size: 31, 20
orig: 31, 20
offset: 0, 0
index: -1
unit-reign-small
rotate: false
- xy: 1577, 346
+ xy: 1557, 1
size: 24, 15
orig: 24, 15
offset: 0, 0
index: -1
unit-reign-tiny
rotate: false
- xy: 1157, 1
+ xy: 1559, 278
size: 15, 10
orig: 15, 10
offset: 0, 0
index: -1
unit-reign-xlarge
rotate: false
- xy: 601, 283
+ xy: 701, 383
size: 48, 31
orig: 48, 31
offset: 0, 0
index: -1
unit-risso-large
rotate: false
- xy: 1993, 849
+ xy: 1979, 891
size: 35, 40
orig: 35, 40
offset: 0, 0
index: -1
unit-risso-medium
rotate: false
- xy: 2019, 747
+ xy: 1455, 545
size: 28, 32
orig: 28, 32
offset: 0, 0
index: -1
unit-risso-small
rotate: false
- xy: 1629, 311
+ xy: 1635, 16
size: 21, 24
orig: 21, 24
offset: 0, 0
index: -1
unit-risso-tiny
rotate: false
- xy: 1517, 579
+ xy: 1815, 635
size: 14, 16
orig: 14, 16
offset: 0, 0
index: -1
unit-risso-xlarge
rotate: false
- xy: 601, 233
+ xy: 701, 333
size: 43, 48
orig: 43, 48
offset: 0, 0
index: -1
unit-scepter-large
rotate: false
- xy: 881, 605
+ xy: 1741, 773
size: 40, 32
orig: 40, 32
offset: 0, 0
index: -1
unit-scepter-medium
rotate: false
- xy: 1319, 357
+ xy: 1319, 179
size: 32, 26
orig: 32, 26
offset: 0, 0
index: -1
unit-scepter-small
rotate: false
- xy: 1603, 342
+ xy: 1349, 2
size: 24, 19
orig: 24, 19
offset: 0, 0
index: -1
unit-scepter-tiny
rotate: false
- xy: 1391, 218
+ xy: 1635, 1
size: 16, 13
orig: 16, 13
offset: 0, 0
index: -1
unit-scepter-xlarge
rotate: false
- xy: 651, 325
+ xy: 451, 75
size: 48, 39
orig: 48, 39
offset: 0, 0
index: -1
unit-sei-large
rotate: false
- xy: 923, 639
+ xy: 1825, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-sei-medium
rotate: false
- xy: 1489, 529
+ xy: 1353, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-sei-small
rotate: false
- xy: 1629, 337
+ xy: 1635, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-sei-tiny
rotate: false
- xy: 1699, 346
+ xy: 1804, 411
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-sei-xlarge
rotate: false
- xy: 701, 366
+ xy: 501, 140
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-spiroct-large
rotate: false
- xy: 965, 648
+ xy: 1615, 732
size: 40, 31
orig: 40, 31
offset: 0, 0
index: -1
unit-spiroct-medium
rotate: false
- xy: 1489, 425
+ xy: 1387, 218
size: 31, 25
orig: 31, 25
offset: 0, 0
index: -1
unit-spiroct-small
rotate: false
- xy: 1655, 342
+ xy: 1375, 2
size: 24, 19
orig: 24, 19
offset: 0, 0
index: -1
unit-spiroct-tiny
rotate: false
- xy: 2029, 647
+ xy: 1245, 1
size: 15, 12
orig: 15, 12
offset: 0, 0
index: -1
unit-spiroct-xlarge
rotate: false
- xy: 401, 50
+ xy: 551, 178
size: 48, 38
orig: 48, 38
offset: 0, 0
index: -1
unit-toxopid-large
rotate: false
- xy: 1536, 639
+ xy: 1144, 610
size: 33, 40
orig: 33, 40
offset: 0, 0
@@ -22746,98 +24286,98 @@ unit-toxopid-medium
index: -1
unit-toxopid-small
rotate: false
- xy: 2027, 823
+ xy: 1658, 16
size: 20, 24
orig: 20, 24
offset: 0, 0
index: -1
unit-toxopid-tiny
rotate: false
- xy: 1717, 347
+ xy: 1815, 617
size: 13, 16
orig: 13, 16
offset: 0, 0
index: -1
unit-toxopid-xlarge
rotate: false
- xy: 1951, 841
+ xy: 1867, 841
size: 40, 48
orig: 40, 48
offset: 0, 0
index: -1
unit-vela-large
rotate: false
- xy: 923, 605
+ xy: 1783, 773
size: 40, 32
orig: 40, 32
offset: 0, 0
index: -1
unit-vela-medium
rotate: false
- xy: 1353, 357
+ xy: 1387, 245
size: 32, 26
orig: 32, 26
offset: 0, 0
index: -1
unit-vela-small
rotate: false
- xy: 1577, 325
+ xy: 1635, 68
size: 24, 19
orig: 24, 19
offset: 0, 0
index: -1
unit-vela-tiny
rotate: false
- xy: 814, 199
+ xy: 1653, 1
size: 16, 13
orig: 16, 13
offset: 0, 0
index: -1
unit-vela-xlarge
rotate: false
- xy: 451, 77
+ xy: 401, 25
size: 48, 39
orig: 48, 39
offset: 0, 0
index: -1
unit-zenith-large
rotate: false
- xy: 965, 606
+ xy: 1909, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-zenith-medium
rotate: false
- xy: 1387, 351
+ xy: 1421, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-zenith-small
rotate: false
- xy: 1603, 316
+ xy: 1635, 42
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-zenith-tiny
rotate: false
- xy: 1625, 180
+ xy: 1804, 393
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-zenith-xlarge
rotate: false
- xy: 501, 116
+ xy: 601, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
wavepane
rotate: false
- xy: 1425, 623
+ xy: 1033, 594
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -22845,7 +24385,7 @@ wavepane
index: -1
white-pane
rotate: false
- xy: 1463, 652
+ xy: 1147, 652
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -22853,14 +24393,14 @@ white-pane
index: -1
whiteui
rotate: false
- xy: 821, 928
+ xy: 746, 378
size: 3, 3
orig: 3, 3
offset: 0, 0
index: -1
window-empty
rotate: false
- xy: 980, 230
+ xy: 1455, 372
size: 27, 61
split: 4, 4, 2, 2
orig: 27, 61
diff --git a/core/assets/sprites/fallback/sprites2.png b/core/assets/sprites/fallback/sprites2.png
index aa17fbbe89..0995568b05 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 05f78947ea..5c81c1eccb 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 45619c04fa..90298a2f7d 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 87ee3a7b46..15530aba49 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/sprites7.png b/core/assets/sprites/fallback/sprites7.png
index dd3d40dc80..779d61531f 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/fallback/sprites8.png b/core/assets/sprites/fallback/sprites8.png
index 212d169c38..c75d4e998d 100644
Binary files a/core/assets/sprites/fallback/sprites8.png and b/core/assets/sprites/fallback/sprites8.png differ
diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas
index 75be83066e..50eb7c4272 100644
--- a/core/assets/sprites/sprites.atlas
+++ b/core/assets/sprites/sprites.atlas
@@ -4,2018 +4,2529 @@ size: 4096,4096
format: rgba8888
filter: nearest,nearest
repeat: none
+interplanetary-accelerator
+ rotate: false
+ xy: 831, 221
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+interplanetary-accelerator-team
+ rotate: false
+ xy: 2757, 3339
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
launch-pad
rotate: false
- xy: 1951, 2545
+ xy: 1553, 301
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+launch-pad-icon-logic
+ rotate: false
+ xy: 1553, 301
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
launch-pad-large
rotate: false
- xy: 1703, 3035
+ xy: 1297, 1715
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
launch-pad-light
rotate: false
- xy: 2245, 2643
+ xy: 1651, 399
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
launchpod
rotate: false
- xy: 2013, 1618
+ xy: 2551, 1987
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
force-projector
rotate: false
- xy: 2918, 2757
+ xy: 1553, 933
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+force-projector-icon-logic
+ rotate: false
+ xy: 1553, 933
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
force-projector-top
rotate: false
- xy: 1657, 2643
+ xy: 1553, 835
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
mend-projector
rotate: false
- xy: 2029, 760
+ xy: 2187, 1909
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+mend-projector-icon-logic
+ rotate: false
+ xy: 2187, 1909
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mend-projector-top
rotate: false
- xy: 2091, 1156
+ xy: 2253, 1909
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mender
rotate: false
- xy: 3323, 2187
+ xy: 2081, 1124
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+mender-icon-logic
+ rotate: false
+ xy: 2081, 1124
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mender-top
rotate: false
- xy: 2439, 812
+ xy: 2119, 1183
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
overdrive-dome
rotate: false
- xy: 2245, 2447
+ xy: 1749, 443
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+overdrive-dome-icon-logic
+ rotate: false
+ xy: 1749, 443
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-dome-top
rotate: false
- xy: 2343, 2447
+ xy: 1749, 345
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-projector
rotate: false
- xy: 2095, 1090
+ xy: 2319, 1905
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+overdrive-projector-icon-logic
+ rotate: false
+ xy: 2319, 1905
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
overdrive-projector-top
rotate: false
- xy: 2095, 1024
+ xy: 2385, 1905
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
shock-mine
rotate: false
- xy: 3585, 2319
+ xy: 2326, 1545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-loader
rotate: false
- xy: 1899, 2937
+ xy: 1421, 2333
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-loader-icon-logic
+ rotate: false
+ xy: 1421, 2333
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-unloader
rotate: false
- xy: 1644, 2741
+ xy: 1533, 2011
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-unloader-icon-logic
+ rotate: false
+ xy: 1533, 2011
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
bridge-arrow
rotate: false
- xy: 2361, 1746
+ xy: 2732, 1627
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor
rotate: false
- xy: 2361, 1576
+ xy: 2054, 1430
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+bridge-conveyor-icon-logic
+ rotate: false
+ xy: 2054, 1430
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-bridge
rotate: false
- xy: 2361, 1542
+ xy: 2054, 1396
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-end
rotate: false
- xy: 2279, 718
+ xy: 3554, 2043
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
center
rotate: false
- xy: 2279, 684
+ xy: 3622, 2043
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-0
rotate: false
- xy: 1981, 1518
+ xy: 2844, 2643
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+armored-conveyor-icon-logic
+ rotate: false
+ xy: 2844, 2643
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-armored-conveyor-full
rotate: false
- xy: 1981, 1518
+ xy: 2844, 2643
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-1
rotate: false
- xy: 1053, 8
+ xy: 3104, 2565
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-2
rotate: false
- xy: 2319, 1160
+ xy: 3104, 2531
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-0-3
rotate: false
- xy: 2277, 1076
+ xy: 2517, 2011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-0
rotate: false
- xy: 1113, 2285
+ xy: 3602, 2247
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-1
rotate: false
- xy: 4005, 3587
+ xy: 1740, 1326
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-2
rotate: false
- xy: 1087, 8
+ xy: 3770, 2101
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-1-3
rotate: false
- xy: 2319, 1126
+ xy: 2612, 1821
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-0
rotate: false
- xy: 2277, 1042
+ xy: 4055, 3587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-1
rotate: false
- xy: 1113, 2251
+ xy: 1774, 1326
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-2
rotate: false
- xy: 4039, 3587
+ xy: 2612, 1787
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-2-3
rotate: false
- xy: 1121, 8
+ xy: 2612, 1753
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-0
rotate: false
- xy: 2277, 1008
+ xy: 2612, 1719
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-1
rotate: false
- xy: 1155, 8
+ xy: 2612, 1685
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-2
rotate: false
- xy: 2277, 974
+ xy: 2646, 1763
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-3-3
rotate: false
- xy: 1189, 8
+ xy: 2680, 1763
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-0
rotate: false
- xy: 2277, 940
+ xy: 2646, 1729
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-1
rotate: false
- xy: 2277, 906
+ xy: 2714, 1763
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-2
rotate: false
- xy: 1654, 3015
+ xy: 2646, 1695
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-4-3
rotate: false
- xy: 3559, 2622
+ xy: 2680, 1729
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-1
rotate: false
- xy: 2347, 642
+ xy: 3860, 2010
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-2
rotate: false
- xy: 2313, 608
+ xy: 2664, 1593
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-3
rotate: false
- xy: 2347, 608
+ xy: 2698, 1593
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-0
rotate: false
- xy: 2313, 574
+ xy: 2732, 1593
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-1
rotate: false
- xy: 2347, 574
+ xy: 3894, 2058
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-2
rotate: false
- xy: 2313, 540
+ xy: 3894, 2024
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-3
rotate: false
- xy: 2347, 540
+ xy: 3928, 2058
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-0
rotate: false
- xy: 2313, 506
+ xy: 3928, 2024
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-1
rotate: false
- xy: 2347, 506
+ xy: 3962, 2058
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-2
rotate: false
- xy: 2313, 472
+ xy: 3962, 2024
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-3
rotate: false
- xy: 2347, 472
+ xy: 3996, 2057
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-0
rotate: false
- xy: 2313, 438
+ xy: 4030, 2057
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-1
rotate: false
- xy: 2347, 438
+ xy: 3996, 2023
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-2
rotate: false
- xy: 2317, 404
+ xy: 4030, 2023
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-3
rotate: false
- xy: 2351, 404
+ xy: 3894, 1990
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-0
rotate: false
- xy: 2381, 710
+ xy: 3928, 1990
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-1
rotate: false
- xy: 2381, 676
+ xy: 3962, 1990
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-2
rotate: false
- xy: 2381, 642
+ xy: 3996, 1989
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-3
rotate: false
- xy: 2381, 608
+ xy: 4030, 1989
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor
rotate: false
- xy: 3347, 2337
+ xy: 2251, 1115
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plastanium-conveyor-icon-logic
+ rotate: false
+ xy: 2251, 1115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-0
rotate: false
- xy: 3347, 2303
+ xy: 2285, 1115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-1
rotate: false
- xy: 3381, 2337
+ xy: 2081, 1090
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-2
rotate: false
- xy: 3381, 2303
+ xy: 2115, 1081
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-edge
rotate: false
- xy: 3415, 2337
+ xy: 2149, 1081
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-conveyor-stack
rotate: false
- xy: 3415, 2303
+ xy: 2183, 1081
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-1
rotate: false
- xy: 2511, 2109
+ xy: 2582, 1549
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-2
rotate: false
- xy: 2395, 2075
+ xy: 2616, 1549
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-3
rotate: false
- xy: 2395, 2041
+ xy: 2548, 1519
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-0
rotate: false
- xy: 2429, 2075
+ xy: 2582, 1515
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-1
rotate: false
- xy: 2395, 2007
+ xy: 2616, 1515
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-2
rotate: false
- xy: 2463, 2075
+ xy: 2650, 1559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-3
rotate: false
- xy: 2429, 2041
+ xy: 2650, 1525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-0
rotate: false
- xy: 2395, 1973
+ xy: 2684, 1559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-1
rotate: false
- xy: 2497, 2075
+ xy: 2684, 1525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-2
rotate: false
- xy: 2463, 2041
+ xy: 2718, 1559
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-3
rotate: false
- xy: 2429, 2007
+ xy: 2718, 1525
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-0
rotate: false
- xy: 2395, 1939
+ xy: 2412, 1511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-1
rotate: false
- xy: 2497, 2041
+ xy: 2378, 1503
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-2
rotate: false
- xy: 2463, 2007
+ xy: 2446, 1501
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-3
rotate: false
- xy: 2429, 1973
+ xy: 2480, 1501
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-0
rotate: false
- xy: 2395, 1905
+ xy: 2514, 1501
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-1
rotate: false
- xy: 2497, 2007
+ xy: 2548, 1485
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-2
rotate: false
- xy: 2463, 1973
+ xy: 2582, 1481
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-3
rotate: false
- xy: 2429, 1939
+ xy: 2616, 1481
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cross
rotate: false
- xy: 3085, 2227
+ xy: 2183, 1591
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
distributor
rotate: false
- xy: 2845, 2331
+ xy: 1917, 361
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+distributor-icon-logic
+ rotate: false
+ xy: 1917, 361
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
inverted-sorter
rotate: false
- xy: 3245, 2357
+ xy: 2224, 1557
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+inverted-sorter-icon-logic
+ rotate: false
+ xy: 2224, 1557
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
junction
rotate: false
- xy: 3211, 2283
+ xy: 2221, 1353
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+junction-icon-logic
+ rotate: false
+ xy: 2221, 1353
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mass-driver-base
rotate: false
- xy: 2343, 2545
+ xy: 1553, 7
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overflow-gate
rotate: false
- xy: 2449, 710
+ xy: 2115, 1149
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+overflow-gate-icon-logic
+ rotate: false
+ xy: 2115, 1149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
payload-conveyor
rotate: false
- xy: 2441, 2447
+ xy: 1749, 247
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-conveyor-edge
rotate: false
- xy: 2539, 2447
+ xy: 1749, 149
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-conveyor-top
rotate: false
- xy: 2637, 2643
+ xy: 1749, 51
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-top
rotate: false
- xy: 2637, 2643
+ xy: 1749, 51
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router
rotate: false
- xy: 2637, 2545
+ xy: 1647, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-edge
rotate: false
- xy: 2637, 2447
+ xy: 1745, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-over
rotate: false
- xy: 2735, 2647
+ xy: 1843, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
phase-conveyor
rotate: false
- xy: 2449, 540
+ xy: 2285, 1149
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-conveyor-icon-logic
+ rotate: false
+ xy: 2285, 1149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-arrow
rotate: false
- xy: 2449, 506
+ xy: 2115, 1115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-bridge
rotate: false
- xy: 2449, 472
+ xy: 2149, 1115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-end
rotate: false
- xy: 2449, 438
+ xy: 2183, 1115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
router
rotate: false
- xy: 3493, 2201
+ xy: 2514, 1603
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+router-icon-logic
+ rotate: false
+ xy: 2514, 1603
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sorter
rotate: false
- xy: 3527, 2253
+ xy: 2326, 1443
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+sorter-icon-logic
+ rotate: false
+ xy: 2326, 1443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
underflow-gate
rotate: false
- xy: 2463, 1939
+ xy: 2684, 1491
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+underflow-gate-icon-logic
+ rotate: false
+ xy: 2684, 1491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
blast-drill
rotate: false
- xy: 1805, 1148
+ xy: 3880, 2812
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-drill-rim
rotate: false
- xy: 3263, 3099
+ xy: 3008, 2633
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-drill-rotator
rotate: false
- xy: 3393, 3099
+ xy: 3138, 2657
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-drill-top
rotate: false
- xy: 1899, 1018
+ xy: 3268, 2657
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
drill-top
rotate: false
- xy: 2911, 2265
+ xy: 1917, 163
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-liquid
rotate: false
- xy: 2911, 2265
+ xy: 1917, 163
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
laser-drill
rotate: false
- xy: 1657, 2447
+ xy: 1553, 497
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
laser-drill-rim
rotate: false
- xy: 1951, 2643
+ xy: 1651, 595
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
laser-drill-rotator
rotate: false
- xy: 2049, 2643
+ xy: 1553, 399
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
laser-drill-top
rotate: false
- xy: 2147, 2643
+ xy: 1651, 497
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
mechanical-drill
rotate: false
- xy: 2029, 1024
+ xy: 2385, 1971
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mechanical-drill-rotator
rotate: false
- xy: 2029, 958
+ xy: 2451, 1971
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mechanical-drill-top
rotate: false
- xy: 2029, 892
+ xy: 2055, 1909
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
oil-extractor
rotate: false
- xy: 2539, 2545
+ xy: 1749, 835
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-liquid
rotate: false
- xy: 1951, 2447
+ xy: 1749, 737
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-rotator
rotate: false
- xy: 2049, 2447
+ xy: 1749, 639
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-top
rotate: false
- xy: 2147, 2447
+ xy: 1749, 541
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
pneumatic-drill
rotate: false
- xy: 2147, 430
+ xy: 2715, 1797
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pneumatic-drill-rotator
rotate: false
- xy: 2647, 2245
+ xy: 1063, 3145
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pneumatic-drill-top
rotate: false
- xy: 2713, 2249
+ xy: 1129, 3145
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor
rotate: false
- xy: 2145, 1958
+ xy: 2795, 2241
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor-liquid
rotate: false
- xy: 2145, 1892
+ xy: 2861, 2241
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor-rotator
rotate: false
- xy: 2145, 1826
+ xy: 2927, 2241
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
water-extractor-top
rotate: false
- xy: 2145, 1760
+ xy: 2993, 2241
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-border
rotate: false
- xy: 2353, 1152
+ xy: 2680, 1661
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-middle
rotate: false
- xy: 2379, 914
+ xy: 2017, 1256
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-select
rotate: false
- xy: 1524, 2635
+ xy: 4048, 2575
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-liquid
rotate: false
- xy: 2279, 446
+ xy: 2085, 1226
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
place-arrow
rotate: false
- xy: 2735, 2549
+ xy: 1941, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
bridge-conduit
rotate: false
- xy: 2361, 1712
+ xy: 2047, 1566
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+bridge-conduit-icon-logic
+ rotate: false
+ xy: 2047, 1566
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-arrow
rotate: false
- xy: 2361, 1678
+ xy: 2054, 1532
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-arrow
rotate: false
- xy: 2361, 1678
+ xy: 2054, 1532
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-bridge
rotate: false
- xy: 2361, 1644
+ xy: 2054, 1498
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-end
rotate: false
- xy: 2361, 1610
+ xy: 2054, 1464
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom
rotate: false
- xy: 2279, 582
+ xy: 2072, 1362
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-0
rotate: false
- xy: 2279, 548
+ xy: 2085, 1328
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-1
rotate: false
- xy: 2279, 514
+ xy: 2085, 1294
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-2
rotate: false
- xy: 2279, 480
+ xy: 2085, 1260
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-3
rotate: false
- xy: 2279, 480
+ xy: 2085, 1260
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-4
rotate: false
- xy: 2279, 480
+ xy: 2085, 1260
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-0
rotate: false
- xy: 2313, 710
+ xy: 3758, 2033
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-1
rotate: false
- xy: 2347, 710
+ xy: 3792, 2033
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-2
rotate: false
- xy: 2313, 676
+ xy: 3826, 2044
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-3
rotate: false
- xy: 2347, 676
+ xy: 3860, 2044
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-3
rotate: false
- xy: 2347, 676
+ xy: 3860, 2044
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-4
rotate: false
- xy: 2313, 642
+ xy: 3826, 2010
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-junction
rotate: false
- xy: 3313, 2289
+ xy: 2221, 1319
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-junction-icon-logic
+ rotate: false
+ xy: 2221, 1319
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-overflow-gate
rotate: false
- xy: 3153, 2199
+ xy: 2221, 1285
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-overflow-gate-top
rotate: false
- xy: 3187, 2249
+ xy: 2255, 1319
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-bottom
rotate: false
- xy: 3187, 2215
+ xy: 2221, 1251
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-liquid
rotate: false
- xy: 3221, 2249
+ xy: 2255, 1285
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-top
rotate: false
- xy: 3221, 2215
+ xy: 2255, 1251
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-tank-bottom
rotate: false
- xy: 2049, 2545
+ xy: 1553, 203
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
liquid-tank-liquid
rotate: false
- xy: 2147, 2545
+ xy: 1651, 301
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
liquid-tank-top
rotate: false
- xy: 2343, 2643
+ xy: 1553, 105
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
mechanical-pump
rotate: false
- xy: 3187, 2181
+ xy: 2289, 1285
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+mechanical-pump-icon-logic
+ rotate: false
+ xy: 2289, 1285
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mechanical-pump-liquid
rotate: false
- xy: 3221, 2181
+ xy: 2289, 1251
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rotary-pump-liquid
rotate: false
- xy: 3221, 2181
+ xy: 2289, 1251
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
thermal-pump-liquid
rotate: false
- xy: 3221, 2181
+ xy: 2289, 1251
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit
rotate: false
- xy: 2449, 676
+ xy: 2149, 1149
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-conduit-icon-logic
+ rotate: false
+ xy: 2149, 1149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-arrow
rotate: false
- xy: 2449, 642
+ xy: 2183, 1149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-bridge
rotate: false
- xy: 2449, 608
+ xy: 2217, 1149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-end
rotate: false
- xy: 2449, 574
+ xy: 2251, 1149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-cap
rotate: false
- xy: 3449, 2303
+ xy: 2251, 1081
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-0
rotate: false
- xy: 3483, 2337
+ xy: 2285, 1081
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-1
rotate: false
- xy: 3483, 2303
+ xy: 895, 2323
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-2
rotate: false
- xy: 3357, 2269
+ xy: 895, 2289
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-3
rotate: false
- xy: 3357, 2235
+ xy: 895, 2255
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-4
rotate: false
- xy: 3391, 2269
+ xy: 2412, 1613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-0
rotate: false
- xy: 3391, 2201
+ xy: 2967, 1763
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-1
rotate: false
- xy: 3425, 2235
+ xy: 2933, 1731
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-2
rotate: false
- xy: 3459, 2269
+ xy: 2967, 1729
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-4
rotate: false
- xy: 3425, 2201
+ xy: 3007, 1831
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rotary-pump
rotate: false
- xy: 2079, 1882
+ xy: 1981, 1087
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+rotary-pump-icon-logic
+ rotate: false
+ xy: 1981, 1087
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thermal-pump
rotate: false
- xy: 3127, 2671
+ xy: 2205, 2353
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+thermal-pump-icon-logic
+ rotate: false
+ xy: 2205, 2353
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
hyper-processor
rotate: false
- xy: 1853, 2643
+ xy: 1651, 835
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+hyper-processor-icon-logic
+ rotate: false
+ xy: 1651, 835
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
large-logic-display
rotate: false
- xy: 1307, 1646
+ xy: 1057, 683
+ size: 192, 192
+ orig: 192, 192
+ offset: 0, 0
+ index: -1
+large-logic-display-icon-logic
+ rotate: false
+ xy: 1057, 683
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
logic-display
rotate: false
- xy: 2245, 2545
+ xy: 1651, 203
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+logic-display-icon-logic
+ rotate: false
+ xy: 1651, 203
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
logic-processor
rotate: false
- xy: 2013, 1552
+ xy: 2617, 1987
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+logic-processor-icon-logic
+ rotate: false
+ xy: 2617, 1987
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
memory-bank
rotate: false
- xy: 2029, 826
+ xy: 2121, 1909
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+memory-bank-icon-logic
+ rotate: false
+ xy: 2121, 1909
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
memory-cell
rotate: false
- xy: 3289, 2187
+ xy: 2081, 1158
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+memory-cell-icon-logic
+ rotate: false
+ xy: 2081, 1158
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
message
rotate: false
- xy: 2439, 778
+ xy: 2153, 1183
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+message-icon-logic
+ rotate: false
+ xy: 2153, 1183
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
micro-processor
rotate: false
- xy: 2439, 744
+ xy: 2187, 1183
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+micro-processor-icon-logic
+ rotate: false
+ xy: 2187, 1183
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
switch
rotate: false
- xy: 2409, 2109
+ xy: 2548, 1553
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+switch-icon-logic
+ rotate: false
+ xy: 2548, 1553
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
switch-on
rotate: false
- xy: 2443, 2109
+ xy: 2582, 1583
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery
rotate: false
- xy: 3593, 2622
+ xy: 2680, 1695
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+battery-icon-logic
+ rotate: false
+ xy: 2680, 1695
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery-large
rotate: false
- xy: 1935, 1224
+ xy: 1255, 2549
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+battery-large-icon-logic
+ rotate: false
+ xy: 1255, 2549
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
battery-large-top
rotate: false
- xy: 3231, 2989
+ xy: 1255, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
battery-top
rotate: false
- xy: 2291, 80
+ xy: 2714, 1729
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
combustion-generator
rotate: false
- xy: 2279, 650
+ xy: 3690, 2043
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+combustion-generator-icon-logic
+ rotate: false
+ xy: 3690, 2043
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
combustion-generator-top
rotate: false
- xy: 2279, 616
+ xy: 3724, 2043
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
differential-generator
rotate: false
- xy: 2330, 2741
+ xy: 1544, 1325
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+differential-generator-icon-logic
+ rotate: false
+ xy: 1544, 1325
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
differential-generator-liquid
rotate: false
- xy: 2526, 2839
+ xy: 1642, 1423
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
differential-generator-top
rotate: false
- xy: 2428, 2741
+ xy: 1642, 1325
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
diode
rotate: false
- xy: 3085, 2193
+ xy: 2088, 1557
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+diode-icon-logic
+ rotate: false
+ xy: 2088, 1557
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
diode-arrow
rotate: false
- xy: 3119, 2267
+ xy: 2088, 1523
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
illuminator
rotate: false
- xy: 3279, 2391
+ xy: 2122, 1455
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+illuminator-icon-logic
+ rotate: false
+ xy: 2122, 1455
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
illuminator-top
rotate: false
- xy: 3313, 2391
+ xy: 2156, 1489
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
impact-reactor
rotate: false
- xy: 3913, 3079
+ xy: 3918, 2422
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-bottom
rotate: false
- xy: 1817, 1908
+ xy: 3658, 2401
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-light
rotate: false
- xy: 1817, 1778
+ xy: 3788, 2292
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-0
rotate: false
- xy: 1817, 1648
+ xy: 3918, 2292
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-1
rotate: false
- xy: 1817, 1518
+ xy: 1305, 2105
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-2
rotate: false
- xy: 2143, 238
+ xy: 1305, 1975
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
impact-reactor-plasma-3
rotate: false
- xy: 2143, 108
+ xy: 1305, 1845
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
power-node
rotate: false
- xy: 3357, 2201
+ xy: 2865, 1757
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+power-node-icon-logic
+ rotate: false
+ xy: 2865, 1757
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-node-large
rotate: false
- xy: 2779, 2249
+ xy: 781, 13
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+power-node-large-icon-logic
+ rotate: false
+ xy: 781, 13
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
power-source
rotate: false
- xy: 3391, 2235
+ xy: 2899, 1757
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+power-source-icon-logic
+ rotate: false
+ xy: 2899, 1757
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-void
rotate: false
- xy: 3425, 2269
+ xy: 2933, 1765
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+power-void-icon-logic
+ rotate: false
+ xy: 2933, 1765
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rtg-generator
rotate: false
- xy: 2079, 1816
+ xy: 1985, 1021
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+rtg-generator-icon-logic
+ rotate: false
+ xy: 1985, 1021
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
rtg-generator-top
rotate: false
- xy: 3357, 2167
+ xy: 3035, 1763
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel
rotate: false
- xy: 3527, 2287
+ xy: 2326, 1477
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+solar-panel-icon-logic
+ rotate: false
+ xy: 2326, 1477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel-large
rotate: false
- xy: 3029, 2671
+ xy: 2107, 2353
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+solar-panel-large-icon-logic
+ rotate: false
+ xy: 2107, 2353
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
steam-generator
rotate: false
- xy: 2213, 562
+ xy: 2049, 163
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-cap
rotate: false
- xy: 2213, 496
+ xy: 2049, 97
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-top
rotate: false
- xy: 2213, 430
+ xy: 2049, 31
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-turbine0
rotate: false
- xy: 2037, 2222
+ xy: 2691, 2377
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
steam-generator-turbine1
rotate: false
- xy: 2103, 2222
+ xy: 2757, 2377
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
surge-tower
rotate: false
- xy: 2027, 2156
+ xy: 2691, 2311
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+surge-tower-icon-logic
+ rotate: false
+ xy: 2691, 2311
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thermal-generator
rotate: false
- xy: 2159, 2156
+ xy: 2889, 2307
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+thermal-generator-icon-logic
+ rotate: false
+ xy: 2889, 2307
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thorium-reactor
rotate: false
- xy: 3029, 2573
+ xy: 1729, 2255
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+thorium-reactor-icon-logic
+ rotate: false
+ xy: 1729, 2255
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-reactor-lights
rotate: false
- xy: 3029, 2475
+ xy: 1729, 2157
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-reactor-top
rotate: false
- xy: 3127, 2573
+ xy: 1827, 2255
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
alloy-smelter
rotate: false
- xy: 1919, 1420
+ xy: 1157, 2501
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+alloy-smelter-icon-logic
+ rotate: false
+ xy: 1157, 2501
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
alloy-smelter-top
rotate: false
- xy: 1935, 1322
+ xy: 1157, 2403
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
blast-mixer
rotate: false
- xy: 1825, 2043
+ xy: 1255, 2385
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+blast-mixer-icon-logic
+ rotate: false
+ xy: 1255, 2385
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-forge
rotate: false
- xy: 3281, 2695
+ xy: 1451, 2431
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-forge-icon-logic
+ rotate: false
+ xy: 1451, 2431
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
coal-centrifuge
rotate: false
- xy: 3874, 2651
+ xy: 2485, 2111
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+coal-centrifuge-icon-logic
+ rotate: false
+ xy: 2485, 2111
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cryofluid-mixer-bottom
rotate: false
- xy: 3029, 2409
+ xy: 1919, 757
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cryofluid-mixer-liquid
rotate: false
- xy: 3095, 2409
+ xy: 1919, 691
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cryofluid-mixer-top
rotate: false
- xy: 3373, 2371
+ xy: 1919, 625
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator
rotate: false
- xy: 3439, 2371
+ xy: 1919, 559
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator-middle
rotate: false
- xy: 2833, 2397
+ xy: 1919, 493
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator-top
rotate: false
- xy: 2899, 2397
+ xy: 1919, 427
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
disassembler
rotate: false
- xy: 2526, 2741
+ xy: 1575, 1227
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+disassembler-icon-logic
+ rotate: false
+ xy: 1575, 1227
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
disassembler-liquid
rotate: false
- xy: 2624, 2839
+ xy: 1575, 1129
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
disassembler-spinner
rotate: false
- xy: 2624, 2741
+ xy: 1673, 1227
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
graphite-press
rotate: false
- xy: 2013, 1948
+ xy: 1917, 31
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+graphite-press-icon-logic
+ rotate: false
+ xy: 1917, 31
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
incinerator
rotate: false
- xy: 3211, 2351
+ xy: 2190, 1523
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+incinerator-icon-logic
+ rotate: false
+ xy: 2190, 1523
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-source
rotate: false
- xy: 2415, 472
+ xy: 2276, 1387
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-source-icon-logic
+ rotate: false
+ xy: 2276, 1387
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-void
rotate: false
- xy: 3313, 2323
+ xy: 2187, 1319
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-void-icon-logic
+ rotate: false
+ xy: 2187, 1319
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
kiln
rotate: false
- xy: 2013, 1882
+ xy: 2485, 2045
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+kiln-icon-logic
+ rotate: false
+ xy: 2485, 2045
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
kiln-top
rotate: false
- xy: 2013, 1816
+ xy: 2551, 2053
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
silicon-smelter-top
rotate: false
- xy: 2013, 1816
+ xy: 2551, 2053
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
liquid-source
rotate: false
- xy: 3289, 2255
+ xy: 2187, 1217
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-source-icon-logic
+ rotate: false
+ xy: 2187, 1217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-void
rotate: false
- xy: 3289, 2221
+ xy: 2221, 1217
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-void-icon-logic
+ rotate: false
+ xy: 2221, 1217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
melter
rotate: false
- xy: 3255, 2187
+ xy: 2085, 1192
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+melter-icon-logic
+ rotate: false
+ xy: 2085, 1192
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
multi-press
rotate: false
- xy: 2539, 2643
+ xy: 1651, 7
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+multi-press-icon-logic
+ rotate: false
+ xy: 1651, 7
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
phase-weaver
rotate: false
- xy: 2095, 826
+ xy: 2583, 1921
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
phase-weaver-bottom
rotate: false
- xy: 2095, 760
+ xy: 2517, 1855
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
phase-weaver-weave
rotate: false
- xy: 2147, 694
+ xy: 2583, 1855
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-compressor
rotate: false
- xy: 2147, 628
+ xy: 2649, 1863
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+plastanium-compressor-icon-logic
+ rotate: false
+ xy: 2649, 1863
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-compressor-top
rotate: false
- xy: 2147, 562
+ xy: 2715, 1863
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pulverizer
rotate: false
- xy: 3459, 2235
+ xy: 3007, 1797
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulverizer-rotator
rotate: false
- xy: 3459, 2201
+ xy: 3001, 1763
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pyratite-mixer
rotate: false
- xy: 2911, 2199
+ xy: 913, 13
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+pyratite-mixer-icon-logic
+ rotate: false
+ xy: 913, 13
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator
rotate: false
- xy: 2099, 1222
+ xy: 1985, 427
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+separator-icon-logic
+ rotate: false
+ xy: 1985, 427
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator-liquid
rotate: false
- xy: 2157, 1156
+ xy: 1983, 361
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator-spinner
rotate: false
- xy: 2161, 1090
+ xy: 1983, 295
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
silicon-crucible
rotate: false
- xy: 2931, 2561
+ xy: 1911, 2353
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+silicon-crucible-icon-logic
+ rotate: false
+ xy: 1911, 2353
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
silicon-crucible-top
rotate: false
- xy: 2931, 2463
+ xy: 2009, 2353
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
silicon-smelter
rotate: false
- xy: 2161, 1024
+ xy: 1983, 229
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+silicon-smelter-icon-logic
+ rotate: false
+ xy: 1983, 229
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press
rotate: false
- xy: 2161, 958
+ xy: 1983, 163
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-frame0
rotate: false
- xy: 2161, 892
+ xy: 1983, 97
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-frame1
rotate: false
- xy: 2161, 826
+ xy: 1983, 31
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-frame2
rotate: false
- xy: 2161, 760
+ xy: 2049, 361
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-liquid
rotate: false
- xy: 2213, 694
+ xy: 2049, 295
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-press-top
rotate: false
- xy: 2213, 628
+ xy: 2049, 229
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+basalt-boulder1
+ rotate: false
+ xy: 2729, 2195
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+basalt-boulder2
+ rotate: false
+ xy: 2012, 1850
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
boulder1
rotate: false
- xy: 1604, 2999
+ xy: 2062, 1809
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
boulder2
rotate: false
- xy: 3796, 2610
+ xy: 2162, 1859
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dacite-boulder1
rotate: false
- xy: 2221, 2086
+ xy: 2112, 1709
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dacite-boulder2
rotate: false
- xy: 2211, 2036
+ xy: 2162, 1759
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
sand-boulder1
rotate: false
- xy: 3391, 2167
+ xy: 3035, 1729
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-boulder2
rotate: false
- xy: 3425, 2167
+ xy: 2319, 1149
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-boulder1
rotate: false
- xy: 3551, 2321
+ xy: 2292, 1443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-boulder2
rotate: false
- xy: 3585, 2353
+ xy: 2326, 1579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
snow-boulder1
rotate: false
- xy: 2315, 1286
+ xy: 2949, 2041
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
snow-boulder2
rotate: false
- xy: 2357, 1486
+ xy: 2899, 1941
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spore-cluster1
rotate: false
- xy: 1641, 6
+ xy: 2999, 2023
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
spore-cluster2
rotate: false
- xy: 2277, 1152
+ xy: 2999, 1981
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
spore-cluster3
rotate: false
- xy: 2277, 1110
+ xy: 2999, 1939
size: 40, 40
orig: 40, 40
offset: 0, 0
@@ -2050,266 +2561,273 @@ white-tree-shadow
index: -1
container
rotate: false
- xy: 4022, 2709
+ xy: 2683, 2127
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
container-team
rotate: false
- xy: 4006, 2643
+ xy: 1885, 1549
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
core-foundation
rotate: false
- xy: 2017, 628
+ xy: 3268, 2527
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-foundation-team
rotate: false
- xy: 2017, 498
+ xy: 3398, 2527
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-nucleus
rotate: false
- xy: 1401, 460
+ xy: 1410, 2627
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-nucleus-team
rotate: false
- xy: 1397, 298
+ xy: 1582, 2761
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-shard
rotate: false
- xy: 1840, 2839
+ xy: 1631, 2109
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
core-shard-team
rotate: false
- xy: 1742, 2741
+ xy: 1631, 2011
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
unloader
rotate: false
- xy: 2429, 1905
+ xy: 2718, 1491
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+unloader-icon-logic
+ rotate: false
+ xy: 2718, 1491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unloader-center
rotate: false
- xy: 2395, 1837
+ xy: 2412, 1477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
vault
rotate: false
- xy: 3323, 2511
+ xy: 1729, 1961
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
vault-team
rotate: false
- xy: 3421, 2511
+ xy: 2023, 2255
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
arc-heat
rotate: false
- xy: 2820, 2855
+ xy: 3104, 2599
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-1
rotate: false
- xy: 2291, 46
+ xy: 2612, 1651
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-2
rotate: false
- xy: 1895, 2212
+ xy: 1923, 1954
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-3
rotate: false
- xy: 3329, 3001
+ xy: 1353, 2529
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-4
rotate: false
- xy: 1899, 888
+ xy: 3398, 2657
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
foreshadow-heat
rotate: false
- xy: 3783, 3079
+ xy: 3788, 2422
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
hail-heat
rotate: false
- xy: 781, 1
+ xy: 3709, 3033
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
lancer-heat
rotate: false
- xy: 2013, 1684
+ xy: 2683, 2061
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
meltdown-heat
rotate: false
- xy: 1963, 3035
+ xy: 1297, 1455
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
ripple-heat
rotate: false
- xy: 2833, 2659
+ xy: 2137, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
salvo-heat
rotate: false
- xy: 2079, 1684
+ xy: 1985, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scorch-heat
rotate: false
- xy: 3493, 2167
+ xy: 2319, 1081
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tsunami-liquid
rotate: false
- xy: 3225, 2597
+ xy: 1925, 2255
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
tsunami-top
rotate: false
- xy: 3225, 2499
+ xy: 1827, 2157
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
wave-liquid
rotate: false
- xy: 2145, 1628
+ xy: 3125, 2221
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
wave-top
rotate: false
- xy: 2145, 1562
+ xy: 3191, 2163
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
additive-reconstructor
rotate: false
- xy: 2873, 3103
+ xy: 3806, 2112
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
additive-reconstructor-top
rotate: false
- xy: 1559, 2571
+ xy: 1427, 1747
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
air-factory
rotate: false
- xy: 1559, 2473
+ xy: 1427, 1649
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
command-center
rotate: false
- xy: 3961, 2775
+ xy: 2551, 2119
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
command-center-team
rotate: false
- xy: 3956, 2709
+ xy: 2597, 2185
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
exponential-reconstructor
rotate: false
- xy: 1127, 3211
+ xy: 2531, 3307
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
exponential-reconstructor-top
rotate: false
- xy: 2531, 3307
+ xy: 831, 899
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
factory-in-3
rotate: false
- xy: 2722, 2843
+ xy: 1673, 1129
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
factory-in-5
rotate: false
- xy: 1563, 608
+ xy: 2068, 2741
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
factory-in-7
rotate: false
- xy: 831, 899
+ xy: 831, 673
size: 224, 224
orig: 224, 224
offset: 0, 0
@@ -2323,21 +2841,21 @@ factory-in-9
index: -1
factory-out-3
rotate: false
- xy: 2722, 2745
+ xy: 1575, 1031
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
factory-out-5
rotate: false
- xy: 1563, 446
+ xy: 2230, 2741
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
factory-out-7
rotate: false
- xy: 831, 673
+ xy: 831, 447
size: 224, 224
orig: 224, 224
offset: 0, 0
@@ -2351,56 +2869,63 @@ factory-out-9
index: -1
factory-top-3
rotate: false
- xy: 2820, 2757
+ xy: 1673, 1031
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
ground-factory
rotate: false
- xy: 1755, 2643
+ xy: 1553, 737
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
multiplicative-reconstructor
rotate: false
- xy: 1559, 284
+ xy: 2392, 2741
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
multiplicative-reconstructor-top
rotate: false
- xy: 1559, 122
+ xy: 2554, 2741
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
naval-factory
rotate: false
- xy: 2441, 2545
+ xy: 1749, 933
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
rally-point
rotate: false
- xy: 2079, 2014
+ xy: 979, 13
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
repair-point-base
rotate: false
- xy: 3493, 2235
+ xy: 2480, 1603
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
resupply-point
rotate: false
- xy: 2079, 1948
+ xy: 1981, 1153
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+resupply-point-icon-logic
+ rotate: false
+ xy: 1981, 1153
size: 64, 64
orig: 64, 64
offset: 0, 0
@@ -2421,224 +2946,329 @@ tetrative-reconstructor-top
index: -1
copper-wall
rotate: false
- xy: 2381, 574
+ xy: 2096, 1625
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+copper-wall-icon-logic
+ rotate: false
+ xy: 2096, 1625
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
copper-wall-large
rotate: false
- xy: 2317, 2301
+ xy: 1896, 1351
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+copper-wall-large-icon-logic
+ rotate: false
+ xy: 1896, 1351
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door
rotate: false
- xy: 3119, 2233
+ xy: 2122, 1557
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+door-icon-logic
+ rotate: false
+ xy: 2122, 1557
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
door-large
rotate: false
- xy: 2911, 2331
+ xy: 1917, 295
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+door-large-icon-logic
+ rotate: false
+ xy: 1917, 295
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door-large-open
rotate: false
- xy: 2845, 2265
+ xy: 1917, 229
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door-open
rotate: false
- xy: 3119, 2199
+ xy: 2088, 1489
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall
rotate: false
- xy: 2453, 404
+ xy: 2217, 1115
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-wall-icon-logic
+ rotate: false
+ xy: 2217, 1115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall-large
rotate: false
- xy: 2095, 892
+ xy: 2517, 1921
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+phase-wall-large-icon-logic
+ rotate: false
+ xy: 2517, 1921
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-wall
rotate: false
- xy: 3449, 2337
+ xy: 2217, 1081
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plastanium-wall-icon-logic
+ rotate: false
+ xy: 2217, 1081
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-wall-large
rotate: false
- xy: 2147, 496
+ xy: 2649, 1797
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+plastanium-wall-large-icon-logic
+ rotate: false
+ xy: 2649, 1797
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-gigantic
rotate: false
- xy: 2613, 3035
+ xy: 2962, 2373
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+scrap-wall-gigantic-icon-logic
+ rotate: false
+ xy: 2962, 2373
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scrap-wall-huge2
rotate: false
- xy: 2833, 2463
+ xy: 1715, 2353
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-huge3
rotate: false
- xy: 2931, 2659
+ xy: 1813, 2353
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-large1
rotate: false
- xy: 2079, 1552
+ xy: 1985, 757
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-large2
rotate: false
- xy: 2083, 1486
+ xy: 1985, 691
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-large3
rotate: false
- xy: 2083, 1420
+ xy: 1985, 625
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall-large4
rotate: false
- xy: 2099, 1354
+ xy: 1985, 559
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scrap-wall2
rotate: false
- xy: 3517, 2355
+ xy: 2292, 1579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall3
rotate: false
- xy: 3517, 2321
+ xy: 2292, 1545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall4
rotate: false
- xy: 3551, 2355
+ xy: 2292, 1511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall5
rotate: false
- xy: 3551, 2355
+ xy: 2292, 1511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-wall
rotate: false
- xy: 2375, 2109
+ xy: 2514, 1535
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+surge-wall-icon-logic
+ rotate: false
+ xy: 2514, 1535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-wall-large
rotate: false
- xy: 2093, 2156
+ xy: 2757, 2311
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+surge-wall-large-icon-logic
+ rotate: false
+ xy: 2757, 2311
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thorium-wall
rotate: false
- xy: 2477, 2109
+ xy: 2616, 1583
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+thorium-wall-icon-logic
+ rotate: false
+ xy: 2616, 1583
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
thorium-wall-large
rotate: false
- xy: 2155, 2090
+ xy: 2955, 2307
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+thorium-wall-large-icon-logic
+ rotate: false
+ xy: 2955, 2307
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thruster
rotate: false
- xy: 2743, 2941
+ xy: 1445, 1195
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
titanium-wall
rotate: false
- xy: 2395, 1871
+ xy: 2650, 1491
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+titanium-wall-icon-logic
+ rotate: false
+ xy: 2650, 1491
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall-large
rotate: false
- xy: 2169, 2222
+ xy: 3021, 2307
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+titanium-wall-large-icon-logic
+ rotate: false
+ xy: 3021, 2307
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
bullet
rotate: false
- xy: 4043, 3285
+ xy: 2001, 1900
size: 52, 52
orig: 52, 52
offset: 0, 0
index: -1
bullet-back
rotate: false
- xy: 4043, 3231
+ xy: 4010, 2813
size: 52, 52
orig: 52, 52
offset: 0, 0
index: -1
casing
rotate: false
- xy: 3517, 2303
+ xy: 1572, 2771
size: 8, 16
orig: 8, 16
offset: 0, 0
index: -1
circle-end
rotate: false
- xy: 1440, 2754
+ xy: 3434, 2326
size: 100, 199
orig: 100, 199
offset: 0, 0
@@ -2652,217 +3282,287 @@ circle-mid
index: -1
circle-shadow
rotate: false
- xy: 1356, 2422
+ xy: 3753, 3136
size: 201, 201
orig: 201, 201
offset: 0, 0
index: -1
error
rotate: false
- xy: 2211, 1636
+ xy: 2312, 1805
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
large-bomb
rotate: false
- xy: 2189, 6
+ xy: 3308, 2311
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
large-bomb-back
rotate: false
- xy: 2873, 2855
+ xy: 3092, 2287
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
laser
rotate: false
- xy: 567, 93
+ xy: 397, 2439
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
laser-end
rotate: false
- xy: 3299, 2425
+ xy: 1822, 1467
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
+launch-arrow
+ rotate: false
+ xy: 2153, 1251
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+transfer-arrow
+ rotate: false
+ xy: 2153, 1251
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
minelaser
rotate: false
- xy: 2973, 3293
+ xy: 3782, 2303
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
minelaser-end
rotate: false
- xy: 3373, 2437
+ xy: 1822, 1393
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
missile
rotate: false
- xy: 1683, 10
+ xy: 1217, 2609
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
missile-back
rotate: false
- xy: 1113, 2319
+ xy: 1049, 1266
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
parallax-laser
rotate: false
- xy: 2751, 3257
+ xy: 929, 2307
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
parallax-laser-end
rotate: false
- xy: 3447, 2437
+ xy: 1822, 1319
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
particle
rotate: false
- xy: 1109, 2601
+ xy: 2999, 2065
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
scale_marker
rotate: false
- xy: 1501, 1088
+ xy: 1, 1
size: 4, 4
orig: 4, 4
offset: 0, 0
index: -1
shell
rotate: false
- xy: 3967, 3583
+ xy: 2009, 1562
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
shell-back
rotate: false
- xy: 2683, 2941
+ xy: 4017, 3583
size: 36, 36
orig: 36, 36
offset: 0, 0
index: -1
transfer
rotate: false
- xy: 397, 2439
+ xy: 397, 2389
size: 4, 48
orig: 4, 48
offset: 0, 0
index: -1
-transfer-arrow
- rotate: false
- xy: 2497, 1973
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
white
rotate: false
- xy: 3652, 2791
+ xy: 2089, 2173
size: 3, 3
orig: 3, 3
offset: 0, 0
index: -1
+additive-reconstructor-icon-logic
+ rotate: false
+ xy: 3904, 2092
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-additive-reconstructor-full
+ rotate: false
+ xy: 3904, 2092
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+air-factory-icon-logic
+ rotate: false
+ xy: 1427, 1551
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+block-air-factory-full
+ rotate: false
+ xy: 1427, 1551
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+alpha-icon-logic
+ rotate: false
+ xy: 1541, 1031
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
alpha-outline
rotate: false
- xy: 3225, 2719
+ xy: 1525, 3115
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-wreck0
rotate: false
- xy: 3323, 2645
+ xy: 1749, 1
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-wreck1
rotate: false
- xy: 2590, 2251
+ xy: 2641, 2381
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-wreck2
rotate: false
- xy: 3035, 2245
+ xy: 2641, 2331
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+antumbra-icon-logic
+ rotate: false
+ xy: 3029, 2207
+ size: 28, 32
+ orig: 28, 32
+ offset: 0, 0
+ index: -1
antumbra-outline
rotate: false
- xy: 935, 2357
+ xy: 2015, 3065
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-wreck0
rotate: false
- xy: 895, 2115
+ xy: 2233, 3065
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-wreck1
rotate: false
- xy: 895, 1873
+ xy: 2451, 3065
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-wreck2
rotate: false
- xy: 895, 1631
+ xy: 2669, 3065
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
arc
rotate: false
- xy: 1947, 1518
+ xy: 2844, 2677
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+arc-icon-logic
+ rotate: false
+ xy: 1389, 100
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-arc-full
+ rotate: false
+ xy: 1389, 100
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
arkyid-foot
rotate: false
- xy: 3652, 2605
+ xy: 1073, 2599
size: 70, 70
orig: 70, 70
offset: 0, 0
index: -1
+arkyid-icon-logic
+ rotate: false
+ xy: 2649, 1953
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
arkyid-joint-base
rotate: false
- xy: 3601, 2533
+ xy: 1145, 2599
size: 70, 70
orig: 70, 70
offset: 0, 0
index: -1
arkyid-leg
rotate: false
- xy: 1063, 3315
+ xy: 2631, 2431
size: 56, 56
orig: 56, 56
offset: 0, 0
@@ -2876,42 +3576,42 @@ arkyid-leg-base
index: -1
arkyid-outline
rotate: false
- xy: 3263, 3229
+ xy: 3956, 3209
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
arkyid-wreck0
rotate: false
- xy: 3393, 3229
+ xy: 3750, 2812
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
arkyid-wreck1
rotate: false
- xy: 1397, 6
+ xy: 3956, 3079
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
arkyid-wreck2
rotate: false
- xy: 1805, 1278
+ xy: 3947, 2949
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
artillery-mount-outline
rotate: false
- xy: 3724, 2605
+ xy: 1771, 1101
size: 70, 70
orig: 70, 70
offset: 0, 0
index: -1
artillery-outline
rotate: false
- xy: 4043, 3115
+ xy: 3720, 2077
size: 48, 56
orig: 48, 56
offset: 0, 0
@@ -2923,282 +3623,380 @@ atrax-foot
orig: 40, 40
offset: 0, 0
index: -1
+atrax-icon-logic
+ rotate: false
+ xy: 3104, 2506
+ size: 32, 23
+ orig: 32, 23
+ offset: 0, 0
+ index: -1
atrax-joint
rotate: false
- xy: 1317, 3183
+ xy: 1519, 2403
size: 26, 26
orig: 26, 26
offset: 0, 0
index: -1
atrax-leg
rotate: false
- xy: 1279, 3183
+ xy: 1885, 1954
size: 36, 26
orig: 36, 26
offset: 0, 0
index: -1
atrax-leg-base
rotate: false
- xy: 1817, 1408
+ xy: 2691, 2283
size: 36, 26
orig: 36, 26
offset: 0, 0
index: -1
atrax-outline
rotate: false
- xy: 1935, 1158
+ xy: 691, 27
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
atrax-wreck0
rotate: false
- xy: 3907, 3013
+ xy: 91, 7
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
atrax-wreck1
rotate: false
- xy: 691, 27
+ xy: 181, 7
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
atrax-wreck2
rotate: false
- xy: 91, 7
+ xy: 1729, 1895
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
beam-weapon-outline
rotate: false
- xy: 3477, 2611
+ xy: 4010, 2210
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
+beta-icon-logic
+ rotate: false
+ xy: 2495, 3775
+ size: 32, 30
+ orig: 32, 30
+ offset: 0, 0
+ index: -1
beta-outline
rotate: false
- xy: 2683, 2979
+ xy: 1063, 3255
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-wreck0
rotate: false
- xy: 3016, 2799
+ xy: 3380, 2153
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-wreck1
rotate: false
- xy: 3161, 2419
+ xy: 3438, 2153
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-wreck2
rotate: false
- xy: 2965, 2407
+ xy: 3496, 2123
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
-block-additive-reconstructor-full
+blast-compound-icon-logic
rotate: false
- xy: 3281, 2891
- size: 96, 96
- orig: 96, 96
- offset: 0, 0
- index: -1
-block-air-factory-full
- rotate: false
- xy: 3281, 2793
- size: 96, 96
- orig: 96, 96
- offset: 0, 0
- index: -1
-block-arc-full
- rotate: false
- xy: 2291, 12
+ xy: 2714, 1695
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-basalt-full
+item-blast-compound-medium
rotate: false
- xy: 2357, 1186
+ xy: 2714, 1695
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-blast-drill-full
+blast-drill-icon-logic
rotate: false
- xy: 1899, 758
+ xy: 2878, 2633
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
+block-blast-drill-full
+ rotate: false
+ xy: 2878, 2633
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+block-basalt-boulder-full
+ rotate: false
+ xy: 2012, 1750
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-basalt-full
+ rotate: false
+ xy: 2646, 1661
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
block-boulder-full
rotate: false
- xy: 1001, 1131
+ xy: 2012, 1700
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-char-full
rotate: false
- xy: 2353, 1118
+ xy: 2714, 1661
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-command-center-full
rotate: false
- xy: 1961, 2212
+ xy: 2023, 2112
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+command-center-icon-logic
+ rotate: false
+ xy: 2023, 2112
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-conduit-full
rotate: false
- xy: 2391, 1186
+ xy: 2020, 1528
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+conduit-icon-logic
+ rotate: false
+ xy: 2020, 1528
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-container-full
rotate: false
- xy: 1895, 2146
+ xy: 2021, 2046
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+container-icon-logic
+ rotate: false
+ xy: 2021, 2046
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-conveyor-full
rotate: false
- xy: 2387, 1152
+ xy: 2020, 1494
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-0
rotate: false
- xy: 2387, 1152
+ xy: 2020, 1494
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+conveyor-icon-logic
+ rotate: false
+ xy: 2020, 1494
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-core-foundation-full
rotate: false
- xy: 1887, 628
+ xy: 3528, 2657
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+core-foundation-icon-logic
+ rotate: false
+ xy: 3528, 2657
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-core-nucleus-full
rotate: false
- xy: 1423, 784
+ xy: 887, 1142
+ size: 160, 160
+ orig: 160, 160
+ offset: 0, 0
+ index: -1
+core-nucleus-icon-logic
+ rotate: false
+ xy: 887, 1142
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
block-core-shard-full
rotate: false
- xy: 3379, 2903
+ xy: 1451, 2529
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+core-shard-icon-logic
+ rotate: false
+ xy: 1451, 2529
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-craters-full
rotate: false
- xy: 2387, 1118
+ xy: 2020, 1460
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-cryofluid-mixer-full
rotate: false
- xy: 1961, 2146
+ xy: 2089, 2107
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+cryofluid-mixer-icon-logic
+ rotate: false
+ xy: 2089, 2107
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-cultivator-full
rotate: false
- xy: 1891, 2080
+ xy: 2155, 2107
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+cultivator-icon-logic
+ rotate: false
+ xy: 2155, 2107
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-cyclone-full
rotate: false
- xy: 3379, 2805
+ xy: 1353, 2431
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+cyclone-icon-logic
+ rotate: false
+ xy: 1353, 2431
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-dacite-boulder-full
rotate: false
- xy: 3035, 2195
+ xy: 2062, 1859
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-dacite-full
rotate: false
- xy: 2319, 1092
+ xy: 2020, 1426
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dacite-wall-full
rotate: false
- xy: 2311, 1058
+ xy: 2020, 1392
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-metal-full
rotate: false
- xy: 2311, 1024
+ xy: 1195, 3135
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-darksand-full
rotate: false
- xy: 2311, 990
+ xy: 3770, 2067
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dirt-full
rotate: false
- xy: 2311, 956
+ xy: 3804, 2078
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dirt-wall-full
rotate: false
- xy: 2311, 922
+ xy: 3838, 2078
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dune-wall-full
rotate: false
- xy: 2353, 1084
+ xy: 3500, 2292
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-duo-full
rotate: false
- xy: 2387, 1084
+ xy: 2981, 1899
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+duo-icon-logic
+ rotate: false
+ xy: 2981, 1899
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3210,513 +4008,786 @@ block-exponential-reconstructor-full
orig: 224, 224
offset: 0, 0
index: -1
+exponential-reconstructor-icon-logic
+ rotate: false
+ xy: 2837, 3581
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
block-foreshadow-full
rotate: false
- xy: 1887, 498
+ xy: 3658, 2661
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+foreshadow-icon-logic
+ rotate: false
+ xy: 3658, 2661
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-fuse-full
rotate: false
- xy: 3379, 2707
+ xy: 1549, 2501
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+fuse-icon-logic
+ rotate: false
+ xy: 1549, 2501
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-grass-full
rotate: false
- xy: 2345, 1050
+ xy: 3015, 1905
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ground-factory-full
rotate: false
- xy: 3379, 2609
+ xy: 1549, 2403
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+ground-factory-icon-logic
+ rotate: false
+ xy: 1549, 2403
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-hail-full
rotate: false
- xy: 2345, 1016
+ xy: 2562, 1621
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+hail-icon-logic
+ rotate: false
+ xy: 2562, 1621
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-hotrock-full
rotate: false
- xy: 2379, 1050
+ xy: 2004, 1358
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-full
rotate: false
- xy: 2345, 982
+ xy: 1983, 1324
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-snow-full
rotate: false
- xy: 2379, 1016
+ xy: 1983, 1290
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-wall-full
rotate: false
- xy: 2345, 948
+ xy: 1983, 1256
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-impact-reactor-full
rotate: false
- xy: 1887, 368
+ xy: 3788, 2682
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
+impact-reactor-icon-logic
+ rotate: false
+ xy: 3788, 2682
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+block-interplanetary-accelerator-full
+ rotate: false
+ xy: 3063, 3581
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+interplanetary-accelerator-icon-logic
+ rotate: false
+ xy: 3063, 3581
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
block-lancer-full
rotate: false
- xy: 1957, 2080
+ xy: 2221, 2107
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+lancer-icon-logic
+ rotate: false
+ xy: 2221, 2107
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-laser-drill-full
rotate: false
- xy: 1703, 2937
+ xy: 1323, 2333
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+laser-drill-icon-logic
+ rotate: false
+ xy: 1323, 2333
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-liquid-router-full
rotate: false
- xy: 2379, 982
+ xy: 1983, 1222
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-router-icon-logic
+ rotate: false
+ xy: 1983, 1222
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-liquid-tank-full
rotate: false
- xy: 1801, 2937
+ xy: 1323, 2235
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+liquid-tank-icon-logic
+ rotate: false
+ xy: 1323, 2235
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-magmarock-full
rotate: false
- xy: 2379, 948
+ xy: 2017, 1324
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-mass-driver-full
rotate: false
- xy: 1997, 2937
+ xy: 1421, 2235
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+mass-driver-icon-logic
+ rotate: false
+ xy: 1421, 2235
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-mechanical-drill-full
rotate: false
- xy: 1947, 2014
+ xy: 2287, 2107
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+mechanical-drill-icon-logic
+ rotate: false
+ xy: 2287, 2107
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-meltdown-full
rotate: false
- xy: 1883, 238
+ xy: 3918, 2682
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+meltdown-icon-logic
+ rotate: false
+ xy: 3918, 2682
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-metal-floor-damaged-full
rotate: false
- xy: 2345, 914
+ xy: 2017, 1290
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-moss-full
rotate: false
- xy: 2311, 888
+ xy: 2017, 1222
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-mud-full
rotate: false
- xy: 2277, 872
+ xy: 2038, 1358
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-multiplicative-reconstructor-full
rotate: false
- xy: 1401, 622
+ xy: 1582, 2923
+ size: 160, 160
+ orig: 160, 160
+ offset: 0, 0
+ index: -1
+multiplicative-reconstructor-icon-logic
+ rotate: false
+ xy: 1582, 2923
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
block-naval-factory-full
rotate: false
- xy: 2095, 2937
+ xy: 1435, 2137
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+naval-factory-icon-logic
+ rotate: false
+ xy: 1435, 2137
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-oil-extractor-full
rotate: false
- xy: 2193, 2937
+ xy: 1435, 2039
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+oil-extractor-icon-logic
+ rotate: false
+ xy: 1435, 2039
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-ore-coal-full
rotate: false
- xy: 2345, 880
+ xy: 2051, 1324
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-copper-full
rotate: false
- xy: 2379, 880
+ xy: 2051, 1290
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-lead-full
rotate: false
- xy: 2269, 838
+ xy: 2051, 1256
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-scrap-full
rotate: false
- xy: 2269, 804
+ xy: 2051, 1222
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-thorium-full
rotate: false
- xy: 2269, 770
+ xy: 2047, 1188
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-titanium-full
rotate: false
- xy: 2311, 854
+ xy: 2047, 1154
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-parallax-full
rotate: false
- xy: 1947, 1948
+ xy: 2087, 2041
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+parallax-icon-logic
+ rotate: false
+ xy: 2087, 2041
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-payload-conveyor-full
rotate: false
- xy: 2291, 2937
+ xy: 1435, 1941
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-conveyor-icon
rotate: false
- xy: 2291, 2937
+ xy: 1435, 1941
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+payload-conveyor-icon-logic
+ rotate: false
+ xy: 1435, 1941
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-payload-router-full
rotate: false
- xy: 2389, 2937
+ xy: 1519, 2305
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-icon
rotate: false
- xy: 2389, 2937
+ xy: 1519, 2305
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+payload-router-icon-logic
+ rotate: false
+ xy: 1519, 2305
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-pebbles-full
rotate: false
- xy: 2345, 846
+ xy: 2047, 1120
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-phase-weaver-full
rotate: false
- xy: 1947, 1882
+ xy: 2153, 2041
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+phase-weaver-icon-logic
+ rotate: false
+ xy: 2153, 2041
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-plated-conduit-full
rotate: false
- xy: 2379, 846
+ xy: 2981, 1865
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plated-conduit-icon-logic
+ rotate: false
+ xy: 2981, 1865
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pneumatic-drill-full
rotate: false
- xy: 1947, 1816
+ xy: 2219, 2041
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+pneumatic-drill-icon-logic
+ rotate: false
+ xy: 2219, 2041
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-pulse-conduit-full
rotate: false
- xy: 2303, 820
+ xy: 3015, 1871
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+pulse-conduit-icon-logic
+ rotate: false
+ xy: 3015, 1871
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pulverizer-full
rotate: false
- xy: 2303, 786
+ xy: 2973, 1831
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+pulverizer-icon-logic
+ rotate: false
+ xy: 2973, 1831
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-repair-point-full
rotate: false
- xy: 2337, 812
+ xy: 2973, 1797
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+repair-point-icon-logic
+ rotate: false
+ xy: 2973, 1797
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ripple-full
rotate: false
- xy: 2487, 2937
+ xy: 1617, 2305
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+ripple-icon-logic
+ rotate: false
+ xy: 1617, 2305
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-salt-wall-full
rotate: false
- xy: 2371, 812
+ xy: 4048, 2779
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-salvo-full
rotate: false
- xy: 1947, 1750
+ xy: 2285, 2041
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+salvo-icon-logic
+ rotate: false
+ xy: 2285, 2041
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-sand-boulder-full
rotate: false
- xy: 2337, 778
+ xy: 4048, 2745
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-full
rotate: false
- xy: 2371, 778
+ xy: 4048, 2711
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-wall-full
rotate: false
- xy: 2303, 752
+ xy: 4048, 2677
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scatter-full
rotate: false
- xy: 1947, 1684
+ xy: 2353, 2103
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+scatter-icon-logic
+ rotate: false
+ xy: 2353, 2103
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-scorch-full
rotate: false
- xy: 2337, 744
+ xy: 4048, 2643
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+scorch-icon-logic
+ rotate: false
+ xy: 4048, 2643
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-full
rotate: false
- xy: 2371, 744
+ xy: 4048, 2609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall1
rotate: false
- xy: 2371, 744
+ xy: 4048, 2609
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+scrap-wall-icon-logic
+ rotate: false
+ xy: 4048, 2609
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-huge-full
rotate: false
- xy: 2585, 2937
+ xy: 1533, 2207
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-huge1
rotate: false
- xy: 2585, 2937
+ xy: 1533, 2207
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+scrap-wall-huge-icon-logic
+ rotate: false
+ xy: 1533, 2207
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-scrap-wall-large-full
rotate: false
- xy: 1947, 1618
+ xy: 2351, 2037
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+scrap-wall-large-icon-logic
+ rotate: false
+ xy: 2351, 2037
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-segment-full
rotate: false
- xy: 1947, 1552
+ xy: 2419, 2103
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+segment-icon-logic
+ rotate: false
+ xy: 2419, 2103
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-shale-boulder-full
rotate: false
- xy: 1638, 2965
+ xy: 4048, 2541
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-full
rotate: false
- xy: 2575, 2159
+ xy: 4048, 2507
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-wall-full
rotate: false
- xy: 2575, 2125
+ xy: 4048, 2473
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shrubs-full
rotate: false
- xy: 2361, 2052
+ xy: 4048, 2439
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-boulder-full
rotate: false
- xy: 1554, 2999
+ xy: 2112, 1859
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-snow-full
rotate: false
- xy: 2361, 2018
+ xy: 4048, 2405
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-wall-full
rotate: false
- xy: 2361, 1984
+ xy: 4048, 2371
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spectre-full
rotate: false
- xy: 1883, 108
+ xy: 3138, 2527
+ size: 128, 128
+ orig: 128, 128
+ offset: 0, 0
+ index: -1
+spectre-icon-logic
+ rotate: false
+ xy: 3138, 2527
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
block-spore-cluster-full
rotate: false
- xy: 1891, 2038
+ xy: 758, 3251
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spore-moss-full
rotate: false
- xy: 2361, 1950
+ xy: 4048, 2337
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-press-full
rotate: false
- xy: 3829, 2792
+ xy: 2417, 2037
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+spore-press-icon-logic
+ rotate: false
+ xy: 2417, 2037
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-spore-wall-full
rotate: false
- xy: 2361, 1916
+ xy: 4048, 2303
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-steam-generator-full
rotate: false
- xy: 3895, 2783
+ xy: 1847, 2
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+steam-generator-icon-logic
+ rotate: false
+ xy: 1847, 2
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-stone-full
rotate: false
- xy: 2361, 1882
+ xy: 2596, 1617
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-stone-wall-full
rotate: false
- xy: 2361, 1848
+ xy: 2630, 1617
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-swarmer-full
rotate: false
- xy: 3824, 2726
+ xy: 2625, 2259
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+swarmer-icon-logic
+ rotate: false
+ xy: 2625, 2259
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-tendrils-full
rotate: false
- xy: 2361, 1814
+ xy: 2664, 1627
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3728,142 +4799,219 @@ block-tetrative-reconstructor-full
orig: 288, 288
offset: 0, 0
index: -1
+tetrative-reconstructor-icon-logic
+ rotate: false
+ xy: 1, 1233
+ size: 288, 288
+ orig: 288, 288
+ offset: 0, 0
+ index: -1
block-titanium-conveyor-full
rotate: false
- xy: 2361, 1780
+ xy: 2698, 1627
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-0
rotate: false
- xy: 2361, 1780
+ xy: 2698, 1627
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+titanium-conveyor-icon-logic
+ rotate: false
+ xy: 2698, 1627
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-tsunami-full
rotate: false
- xy: 1644, 2839
+ xy: 1533, 2109
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+tsunami-icon-logic
+ rotate: false
+ xy: 1533, 2109
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-vault-full
rotate: false
- xy: 1742, 2839
+ xy: 1631, 2207
+ size: 96, 96
+ orig: 96, 96
+ offset: 0, 0
+ index: -1
+vault-icon-logic
+ rotate: false
+ xy: 1631, 2207
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-water-extractor-full
rotate: false
- xy: 3890, 2717
+ xy: 2465, 2177
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+water-extractor-icon-logic
+ rotate: false
+ xy: 2465, 2177
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-wave-full
rotate: false
- xy: 3808, 2660
+ xy: 2531, 2185
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+wave-icon-logic
+ rotate: false
+ xy: 2531, 2185
+ size: 64, 64
+ orig: 64, 64
+ offset: 0, 0
+ index: -1
+bryde-icon-logic
+ rotate: false
+ xy: 3588, 2043
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
bryde-outline
rotate: false
- xy: 1663, 1124
+ xy: 3040, 2787
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-wreck0
rotate: false
- xy: 1757, 982
+ xy: 3182, 2787
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-wreck1
rotate: false
- xy: 1757, 840
+ xy: 3324, 2787
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-wreck2
rotate: false
- xy: 2979, 3217
+ xy: 3466, 2787
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
+coal-icon-logic
+ rotate: false
+ xy: 3656, 2043
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-coal-medium
+ rotate: false
+ xy: 3656, 2043
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
command-center-team-crux
rotate: false
- xy: 3940, 2643
+ xy: 2617, 2119
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
command-center-team-sharded
rotate: false
- xy: 4027, 2775
+ xy: 2663, 2193
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
container-team-crux
rotate: false
- xy: 2185, 2301
+ xy: 1896, 1483
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
container-team-sharded
rotate: false
- xy: 2251, 2301
+ xy: 1896, 1417
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+copper-icon-logic
+ rotate: false
+ xy: 2062, 1625
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-copper-medium
+ rotate: false
+ xy: 2062, 1625
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
core-foundation-team-crux
rotate: false
- xy: 2017, 368
+ xy: 3528, 2527
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-foundation-team-sharded
rotate: false
- xy: 2013, 238
+ xy: 3658, 2531
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-nucleus-team-crux
rotate: false
- xy: 1397, 136
+ xy: 1572, 2599
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-nucleus-team-sharded
rotate: false
- xy: 1501, 2066
+ xy: 1744, 2903
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-shard-team-crux
rotate: false
- xy: 1938, 2839
+ xy: 1533, 1913
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
core-shard-team-sharded
rotate: false
- xy: 1840, 2741
+ xy: 1631, 1913
size: 96, 96
orig: 96, 96
offset: 0, 0
@@ -3875,23 +5023,30 @@ corvus-foot
orig: 90, 90
offset: 0, 0
index: -1
+corvus-icon-logic
+ rotate: false
+ xy: 725, 2921
+ size: 31, 20
+ orig: 31, 20
+ offset: 0, 0
+ index: -1
corvus-joint
rotate: false
- xy: 2147, 368
+ xy: 1063, 3311
size: 60, 60
orig: 60, 60
offset: 0, 0
index: -1
corvus-joint-base
rotate: false
- xy: 3745, 2533
+ xy: 1845, 1247
size: 70, 70
orig: 70, 70
offset: 0, 0
index: -1
toxopid-joint-base
rotate: false
- xy: 3745, 2533
+ xy: 1845, 1247
size: 70, 70
orig: 70, 70
offset: 0, 0
@@ -3912,420 +5067,420 @@ corvus-leg-base
index: -1
corvus-outline
rotate: false
- xy: 2757, 3201
+ xy: 3105, 3213
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-wreck0
rotate: false
- xy: 1016, 2927
+ xy: 3321, 3213
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-wreck1
rotate: false
- xy: 1016, 2785
+ xy: 3321, 3071
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-wreck2
rotate: false
- xy: 983, 2643
+ xy: 3537, 3217
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
cracks-1-0
rotate: false
- xy: 2381, 540
+ xy: 2130, 1625
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-1
rotate: false
- xy: 2381, 506
+ xy: 2164, 1625
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-2
rotate: false
- xy: 2381, 472
+ xy: 2198, 1625
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-3
rotate: false
- xy: 2381, 438
+ xy: 2232, 1625
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-4
rotate: false
- xy: 2385, 404
+ xy: 2266, 1625
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-5
rotate: false
- xy: 3587, 2421
+ xy: 2300, 1613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-6
rotate: false
- xy: 3587, 2387
+ xy: 2081, 1591
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-7
rotate: false
- xy: 3085, 2261
+ xy: 2115, 1591
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-2-0
rotate: false
- xy: 2383, 2301
+ xy: 1917, 1285
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-1
rotate: false
- xy: 2449, 2301
+ xy: 1917, 1219
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-2
rotate: false
- xy: 2515, 2301
+ xy: 1915, 1153
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-3
rotate: false
- xy: 2581, 2301
+ xy: 1915, 1087
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-4
rotate: false
- xy: 2647, 2311
+ xy: 1919, 1021
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-5
rotate: false
- xy: 3521, 2389
+ xy: 1919, 955
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-6
rotate: false
- xy: 2713, 2315
+ xy: 1919, 889
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-2-7
rotate: false
- xy: 2779, 2315
+ xy: 1919, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cracks-3-0
rotate: false
- xy: 2036, 2839
+ xy: 1525, 1815
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-1
rotate: false
- xy: 1938, 2741
+ xy: 1525, 1717
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-2
rotate: false
- xy: 2134, 2839
+ xy: 1623, 1815
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-3
rotate: false
- xy: 2036, 2741
+ xy: 1525, 1619
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-4
rotate: false
- xy: 2232, 2839
+ xy: 1623, 1717
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-5
rotate: false
- xy: 2134, 2741
+ xy: 1623, 1619
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-6
rotate: false
- xy: 2330, 2839
+ xy: 1525, 1521
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-3-7
rotate: false
- xy: 2232, 2741
+ xy: 1623, 1521
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
cracks-4-0
rotate: false
- xy: 2013, 108
+ xy: 3788, 2552
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-1
rotate: false
- xy: 2973, 3087
+ xy: 3918, 2552
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-2
rotate: false
- xy: 3103, 3087
+ xy: 1423, 856
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-3
rotate: false
- xy: 3523, 3209
+ xy: 1423, 726
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-4
rotate: false
- xy: 3653, 3209
+ xy: 1423, 596
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-5
rotate: false
- xy: 3783, 3209
+ xy: 1423, 466
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-6
rotate: false
- xy: 3913, 3209
+ xy: 1423, 336
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-4-7
rotate: false
- xy: 3523, 3079
+ xy: 1423, 206
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
cracks-5-0
rotate: false
- xy: 1501, 1904
+ xy: 1906, 2903
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-1
rotate: false
- xy: 1501, 1742
+ xy: 2068, 2903
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-2
rotate: false
- xy: 1501, 1580
+ xy: 2230, 2903
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-3
rotate: false
- xy: 1501, 1418
+ xy: 2392, 2903
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-4
rotate: false
- xy: 1501, 1256
+ xy: 2554, 2903
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-5
rotate: false
- xy: 1501, 1094
+ xy: 2716, 2903
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-6
rotate: false
- xy: 1595, 932
+ xy: 1744, 2741
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-5-7
rotate: false
- xy: 1585, 770
+ xy: 1906, 2741
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
cracks-6-0
rotate: false
- xy: 1153, 2228
+ xy: 3753, 2942
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-1
rotate: false
- xy: 1347, 2228
+ xy: 1111, 2041
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-2
rotate: false
- xy: 1113, 2034
+ xy: 1111, 1847
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-3
rotate: false
- xy: 1113, 1840
+ xy: 1103, 1653
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-4
rotate: false
- xy: 1307, 2034
+ xy: 1103, 1459
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-5
rotate: false
- xy: 1113, 1646
+ xy: 1090, 1265
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-6
rotate: false
- xy: 1307, 1840
+ xy: 1057, 1071
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-6-7
rotate: false
- xy: 1113, 1452
+ xy: 1057, 877
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
cracks-7-0
rotate: false
- xy: 3063, 3581
+ xy: 3289, 3581
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-1
rotate: false
- xy: 3289, 3581
+ xy: 3515, 3581
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-2
rotate: false
- xy: 3515, 3581
+ xy: 3741, 3581
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-3
rotate: false
- xy: 3741, 3581
+ xy: 1627, 3307
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-4
rotate: false
- xy: 1627, 3307
+ xy: 1853, 3307
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-5
rotate: false
- xy: 1853, 3307
+ xy: 2079, 3307
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-6
rotate: false
- xy: 2079, 3307
+ xy: 2305, 3307
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
cracks-7-7
rotate: false
- xy: 2305, 3307
+ xy: 1127, 3211
size: 224, 224
orig: 224, 224
offset: 0, 0
@@ -4442,86 +5597,121 @@ cracks-9-7
orig: 288, 288
offset: 0, 0
index: -1
+crawler-icon-logic
+ rotate: false
+ xy: 2149, 1591
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
crawler-leg
rotate: false
- xy: 2165, 1346
+ xy: 2062, 1709
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-outline
rotate: false
- xy: 2165, 1296
+ xy: 2162, 1809
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-wreck0
rotate: false
- xy: 2165, 1246
+ xy: 2112, 1759
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-wreck1
rotate: false
- xy: 2235, 2186
+ xy: 2262, 1859
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-wreck2
rotate: false
- xy: 2225, 2136
+ xy: 2212, 1809
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+cryofluid-icon-logic
+ rotate: false
+ xy: 2217, 1591
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+liquid-cryofluid-medium
+ rotate: false
+ xy: 2217, 1591
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
cyclone
rotate: false
- xy: 2428, 2839
+ xy: 1544, 1423
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
+dagger-icon-logic
+ rotate: false
+ xy: 2251, 1591
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
dagger-leg
rotate: false
- xy: 2211, 1886
+ xy: 2212, 1759
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-outline
rotate: false
- xy: 2211, 1836
+ xy: 2212, 1709
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-wreck0
rotate: false
- xy: 2211, 1786
+ xy: 2262, 1759
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-wreck1
rotate: false
- xy: 2211, 1736
+ xy: 2262, 1709
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-wreck2
rotate: false
- xy: 2211, 1686
+ xy: 2312, 1855
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
duo
rotate: false
- xy: 3211, 2385
+ xy: 2122, 1523
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+eclipse-icon-logic
+ rotate: false
+ xy: 2156, 1557
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4556,151 +5746,193 @@ eclipse-wreck2
index: -1
eruption-outline
rotate: false
- xy: 2267, 372
+ xy: 2312, 1747
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
flamethrower-outline
rotate: false
- xy: 2273, 206
+ xy: 2412, 1797
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
+flare-icon-logic
+ rotate: false
+ xy: 2088, 1455
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
flare-outline
rotate: false
- xy: 2211, 1528
+ xy: 2462, 1805
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flare-wreck0
rotate: false
- xy: 2207, 1478
+ xy: 2512, 1805
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flare-wreck1
rotate: false
- xy: 2285, 2186
+ xy: 2562, 1805
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flare-wreck2
rotate: false
- xy: 2275, 2136
+ xy: 2362, 1739
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
foreshadow
rotate: false
- xy: 3653, 3079
+ xy: 1423, 76
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
+fortress-icon-logic
+ rotate: false
+ xy: 2595, 3538
+ size: 32, 25
+ orig: 32, 25
+ offset: 0, 0
+ index: -1
fortress-leg
rotate: false
- xy: 3829, 2940
+ xy: 1721, 1524
size: 80, 60
orig: 80, 60
offset: 0, 0
index: -1
fortress-outline
rotate: false
- xy: 2649, 3225
+ xy: 3536, 2281
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-wreck0
rotate: false
- xy: 1440, 2672
+ xy: 3638, 2319
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-wreck1
rotate: false
- xy: 1985, 26
+ xy: 3638, 2237
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-wreck2
rotate: false
- xy: 2087, 26
+ xy: 3206, 2331
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fuse
rotate: false
- xy: 1657, 2545
+ xy: 1651, 933
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
+gamma-icon-logic
+ rotate: false
+ xy: 2122, 1489
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
gamma-outline
rotate: false
- xy: 1817, 770
+ xy: 1847, 398
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
gamma-wreck0
rotate: false
- xy: 2617, 2377
+ xy: 1847, 328
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
gamma-wreck1
rotate: false
- xy: 1897, 2278
+ xy: 1847, 258
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
gamma-wreck2
rotate: false
- xy: 1967, 2278
+ xy: 1847, 188
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
+graphite-icon-logic
+ rotate: false
+ xy: 2156, 1523
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+item-graphite-medium
+ rotate: false
+ xy: 2156, 1523
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
hail
rotate: false
- xy: 3245, 2391
+ xy: 2190, 1557
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
heal-shotgun-weapon-outline
rotate: false
- xy: 2820, 2889
+ xy: 1575, 3311
size: 50, 50
orig: 50, 50
offset: 0, 0
index: -1
heal-weapon-mount-outline
rotate: false
- xy: 2261, 1986
+ xy: 2512, 1755
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
heal-weapon-outline
rotate: false
- xy: 2261, 1936
+ xy: 2562, 1755
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+horizon-icon-logic
+ rotate: false
+ xy: 2088, 1421
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
horizon-outline
rotate: false
xy: 323, 2341
@@ -4710,371 +5942,399 @@ horizon-outline
index: -1
horizon-wreck0
rotate: false
- xy: 3993, 2841
+ xy: 2551, 2251
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
horizon-wreck1
rotate: false
- xy: 3734, 2682
+ xy: 2391, 2169
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
horizon-wreck2
rotate: false
- xy: 3225, 2425
+ xy: 1811, 1541
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
+interplanetary-accelerator-team-crux
+ rotate: false
+ xy: 2983, 3355
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
+interplanetary-accelerator-team-sharded
+ rotate: false
+ xy: 3209, 3355
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
item-blast-compound-large
rotate: false
- xy: 2273, 1236
+ xy: 1647, 2409
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-item-blast-compound-medium
- rotate: false
- xy: 3313, 2357
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
item-blast-compound-small
rotate: false
- xy: 693, 2331
+ xy: 2690, 2715
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-blast-compound-tiny
rotate: false
- xy: 3187, 2283
+ xy: 2088, 1403
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-blast-compound-xlarge
rotate: false
- xy: 2261, 1886
+ xy: 2312, 1697
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-coal-large
rotate: false
- xy: 758, 3251
+ xy: 2333, 2507
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-item-coal-medium
- rotate: false
- xy: 2325, 88
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
item-coal-small
rotate: false
- xy: 1601, 3441
+ xy: 3040, 2929
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-coal-tiny
rotate: false
- xy: 1569, 3307
+ xy: 2292, 1425
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-coal-xlarge
rotate: false
- xy: 2261, 1836
+ xy: 2362, 1689
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-copper-large
rotate: false
- xy: 1016, 3073
+ xy: 1195, 3169
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-item-copper-medium
- rotate: false
- xy: 2325, 20
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
item-copper-small
rotate: false
- xy: 691, 1
+ xy: 1157, 2377
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-copper-tiny
rotate: false
- xy: 1151, 2625
+ xy: 2360, 1595
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-copper-xlarge
rotate: false
- xy: 2261, 1786
+ xy: 2412, 1697
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-graphite-large
rotate: false
- xy: 983, 2601
+ xy: 1063, 3213
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-item-graphite-medium
- rotate: false
- xy: 2413, 1050
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
item-graphite-small
rotate: false
- xy: 3347, 2399
+ xy: 1995, 2054
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-graphite-tiny
rotate: false
- xy: 1169, 2625
+ xy: 2360, 1577
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-graphite-xlarge
rotate: false
- xy: 2261, 1736
+ xy: 2462, 1705
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-lead-large
rotate: false
- xy: 1440, 2630
+ xy: 1896, 1622
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-lead-medium
rotate: false
- xy: 2413, 982
+ xy: 2190, 1455
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+lead-icon-logic
+ rotate: false
+ xy: 2190, 1455
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-lead-small
rotate: false
- xy: 719, 2331
+ xy: 691, 1
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-lead-tiny
rotate: false
- xy: 4079, 3061
+ xy: 2360, 1559
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-lead-xlarge
rotate: false
- xy: 2261, 1686
+ xy: 2512, 1705
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-metaglass-large
rotate: false
- xy: 1063, 3215
+ xy: 1962, 1358
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-metaglass-medium
rotate: false
- xy: 2413, 914
+ xy: 2190, 1421
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+metaglass-icon-logic
+ rotate: false
+ xy: 2190, 1421
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-metaglass-small
rotate: false
- xy: 1601, 3415
+ xy: 1689, 2425
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-metaglass-tiny
rotate: false
- xy: 4079, 3043
+ xy: 2360, 1541
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-metaglass-xlarge
rotate: false
- xy: 2261, 1636
+ xy: 2562, 1705
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-phase-fabric-large
rotate: false
- xy: 1554, 2957
+ xy: 3554, 2137
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-phase-fabric-medium
rotate: false
- xy: 2413, 846
+ xy: 2224, 1421
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+phase-fabric-icon-logic
+ rotate: false
+ xy: 2224, 1421
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-phase-fabric-small
rotate: false
- xy: 717, 1
+ xy: 693, 2331
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-phase-fabric-tiny
rotate: false
- xy: 4079, 3025
+ xy: 2360, 1523
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-phase-fabric-xlarge
rotate: false
- xy: 2261, 1586
+ xy: 2012, 1650
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-plastanium-large
rotate: false
- xy: 2273, 114
+ xy: 1799, 9
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-plastanium-medium
rotate: false
- xy: 2405, 778
+ xy: 2258, 1523
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+plastanium-icon-logic
+ rotate: false
+ xy: 2258, 1523
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-plastanium-small
rotate: false
- xy: 3347, 2373
+ xy: 3066, 2929
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-plastanium-tiny
rotate: false
- xy: 4079, 3007
+ xy: 2360, 1505
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-plastanium-xlarge
rotate: false
- xy: 2261, 1536
+ xy: 2062, 1659
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-pyratite-large
rotate: false
- xy: 2273, 1194
+ xy: 2931, 1841
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-pyratite-medium
rotate: false
- xy: 2415, 710
+ xy: 2258, 1455
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+pyratite-icon-logic
+ rotate: false
+ xy: 2258, 1455
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-pyratite-small
rotate: false
- xy: 745, 2331
+ xy: 1183, 2377
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-pyratite-tiny
rotate: false
- xy: 1187, 2625
+ xy: 2360, 1487
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-pyratite-xlarge
rotate: false
- xy: 2335, 2193
+ xy: 2112, 1659
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-sand-large
rotate: false
- xy: 2227, 850
+ xy: 3740, 2311
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-sand-medium
rotate: false
- xy: 2415, 642
+ xy: 2106, 1387
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+sand-icon-logic
+ rotate: false
+ xy: 2106, 1387
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-sand-small
rotate: false
- xy: 1601, 3389
+ xy: 717, 1
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-sand-tiny
rotate: false
- xy: 4079, 2989
+ xy: 2360, 1469
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-sand-xlarge
rotate: false
- xy: 2385, 2193
+ xy: 2162, 1659
size: 48, 48
orig: 48, 48
offset: 0, 0
@@ -5088,578 +6348,676 @@ item-scrap-large
index: -1
item-scrap-medium
rotate: false
- xy: 2415, 574
+ xy: 2174, 1387
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+scrap-icon-logic
+ rotate: false
+ xy: 2174, 1387
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap-small
rotate: false
- xy: 743, 1
+ xy: 719, 2331
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-scrap-tiny
rotate: false
- xy: 2279, 752
+ xy: 693, 2603
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-scrap-xlarge
rotate: false
- xy: 2435, 2193
+ xy: 2212, 1659
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-silicon-large
rotate: false
- xy: 1025, 2601
+ xy: 3709, 2991
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-silicon-medium
rotate: false
- xy: 2415, 506
+ xy: 2242, 1387
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+silicon-icon-logic
+ rotate: false
+ xy: 2242, 1387
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-silicon-small
rotate: false
- xy: 771, 2331
+ xy: 1209, 2377
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-silicon-tiny
rotate: false
- xy: 3151, 2351
+ xy: 3753, 3341
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-silicon-xlarge
rotate: false
- xy: 2485, 2193
+ xy: 2262, 1659
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-spore-pod-large
rotate: false
- xy: 1482, 2630
+ xy: 2333, 2465
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-spore-pod-medium
rotate: false
- xy: 2419, 404
+ xy: 2119, 1319
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+spore-pod-icon-logic
+ rotate: false
+ xy: 2119, 1319
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-spore-pod-small
rotate: false
- xy: 1601, 3363
+ xy: 743, 1
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-spore-pod-tiny
rotate: false
- xy: 693, 2603
+ xy: 1744, 3067
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-spore-pod-xlarge
rotate: false
- xy: 2535, 2193
+ xy: 2009, 1600
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-surge-alloy-large
rotate: false
- xy: 1596, 2957
+ xy: 2931, 1799
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-surge-alloy-medium
rotate: false
- xy: 3177, 2335
+ xy: 2119, 1285
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+surge-alloy-icon-logic
+ rotate: false
+ xy: 2119, 1285
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-surge-alloy-small
rotate: false
- xy: 797, 2331
+ xy: 745, 2331
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-surge-alloy-tiny
rotate: false
- xy: 2595, 3547
+ xy: 3945, 3863
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-surge-alloy-xlarge
rotate: false
- xy: 3161, 2369
+ xy: 2312, 1647
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-thorium-large
rotate: false
- xy: 2315, 1194
+ xy: 3740, 2269
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-thorium-medium
rotate: false
- xy: 3211, 2317
+ xy: 2187, 1353
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+thorium-icon-logic
+ rotate: false
+ xy: 2187, 1353
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-thorium-small
rotate: false
- xy: 1601, 3337
+ xy: 771, 2331
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-thorium-tiny
rotate: false
- xy: 983, 2839
+ xy: 3040, 2769
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-thorium-xlarge
rotate: false
- xy: 2215, 1428
+ xy: 2362, 1639
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
item-titanium-large
rotate: false
- xy: 2227, 808
+ xy: 758, 3167
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
item-titanium-medium
rotate: false
- xy: 3279, 2323
+ xy: 2153, 1285
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+titanium-icon-logic
+ rotate: false
+ xy: 2153, 1285
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-titanium-small
rotate: false
- xy: 823, 2331
+ xy: 797, 2331
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
item-titanium-tiny
rotate: false
- xy: 1353, 3419
+ xy: 3750, 2794
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
item-titanium-xlarge
rotate: false
- xy: 2215, 1378
+ xy: 2412, 1647
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
lancer
rotate: false
- xy: 2013, 1750
+ xy: 2617, 2053
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
large-artillery-outline
rotate: false
- xy: 2215, 1242
+ xy: 2512, 1637
size: 48, 66
orig: 48, 66
offset: 0, 0
index: -1
large-bullet-mount-outline
rotate: false
- xy: 1969, 2348
+ xy: 1843, 1146
size: 70, 97
orig: 70, 97
offset: 0, 0
index: -1
large-laser-mount-outline
rotate: false
- xy: 1853, 2449
- size: 96, 192
- orig: 96, 192
+ xy: 1651, 693
+ size: 96, 140
+ orig: 96, 140
offset: 0, 0
index: -1
large-purple-mount-outline
rotate: false
- xy: 2113, 2348
+ xy: 1847, 948
size: 70, 97
orig: 70, 97
offset: 0, 0
index: -1
large-weapon-outline
rotate: false
- xy: 2257, 1478
+ xy: 2779, 2191
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-cryofluid-large
rotate: false
- xy: 758, 3167
+ xy: 3709, 2949
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-liquid-cryofluid-medium
- rotate: false
- xy: 3279, 2289
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
liquid-cryofluid-small
rotate: false
- xy: 849, 2331
+ xy: 823, 2331
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-cryofluid-tiny
rotate: false
- xy: 1229, 876
+ xy: 1238, 3079
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-cryofluid-xlarge
rotate: false
- xy: 2265, 1428
+ xy: 2829, 2191
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-oil-large
rotate: false
- xy: 1067, 2601
+ xy: 758, 3125
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
liquid-oil-medium
rotate: false
- xy: 3153, 2233
+ xy: 2187, 1251
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+oil-icon-logic
+ rotate: false
+ xy: 2187, 1251
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-oil-small
rotate: false
- xy: 1601, 3311
+ xy: 849, 2331
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-oil-tiny
rotate: false
- xy: 1401, 786
+ xy: 3638, 2509
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-oil-xlarge
rotate: false
- xy: 2265, 1378
+ xy: 2879, 2191
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-slag-large
rotate: false
- xy: 2227, 766
+ xy: 2999, 2149
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
liquid-slag-medium
rotate: false
- xy: 3255, 2221
+ xy: 2153, 1217
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+slag-icon-logic
+ rotate: false
+ xy: 2153, 1217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-slag-small
rotate: false
- xy: 725, 2917
+ xy: 1995, 2028
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-slag-tiny
rotate: false
- xy: 1663, 1106
+ xy: 1353, 2629
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-slag-xlarge
rotate: false
- xy: 2265, 1328
+ xy: 2929, 2191
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
liquid-water-large
rotate: false
- xy: 758, 3125
+ xy: 2999, 2107
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
liquid-water-medium
rotate: false
- xy: 3323, 2221
+ xy: 2289, 1353
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+water-icon-logic
+ rotate: false
+ xy: 2289, 1353
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-water-small
rotate: false
- xy: 2495, 3781
+ xy: 2021, 2020
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
liquid-water-tiny
rotate: false
- xy: 3945, 3863
+ xy: 1549, 2609
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
liquid-water-xlarge
rotate: false
- xy: 2265, 1278
+ xy: 2979, 2191
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+mace-icon-logic
+ rotate: false
+ xy: 2289, 1319
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
mace-leg
rotate: false
- xy: 2033, 1354
+ xy: 2055, 1975
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-outline
rotate: false
- xy: 2033, 1288
+ xy: 2121, 1975
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-wreck0
rotate: false
- xy: 2033, 1222
+ xy: 2187, 1975
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-wreck1
rotate: false
- xy: 2025, 1156
+ xy: 2253, 1975
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-wreck2
rotate: false
- xy: 2029, 1090
+ xy: 2319, 1971
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mass-driver
rotate: false
- xy: 2441, 2643
+ xy: 1651, 105
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
+mega-icon-logic
+ rotate: false
+ xy: 2289, 1217
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
mega-outline
rotate: false
- xy: 3179, 2871
+ xy: 3398, 2209
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-wreck0
rotate: false
- xy: 3077, 2769
+ xy: 3500, 2179
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-wreck1
rotate: false
- xy: 3179, 2769
+ xy: 3602, 2135
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-wreck2
rotate: false
- xy: 1542, 2853
+ xy: 3704, 2135
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
meltdown
rotate: false
- xy: 1833, 3035
+ xy: 1297, 1585
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
+minke-icon-logic
+ rotate: false
+ xy: 725, 2865
+ size: 27, 32
+ orig: 27, 32
+ offset: 0, 0
+ index: -1
minke-outline
rotate: false
- xy: 3477, 2796
+ xy: 1721, 1689
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-wreck0
rotate: false
- xy: 3567, 2899
+ xy: 1721, 1586
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-wreck1
rotate: false
- xy: 3477, 2693
+ xy: 2121, 2173
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-wreck2
rotate: false
- xy: 3567, 2796
+ xy: 2211, 2173
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
missiles-mount-outline
rotate: false
- xy: 2311, 2036
+ xy: 2799, 2141
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+mono-icon-logic
+ rotate: false
+ xy: 2221, 1183
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
mono-outline
rotate: false
- xy: 2311, 1886
+ xy: 2849, 2141
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-wreck0
rotate: false
- xy: 2311, 1836
+ xy: 2749, 1991
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-wreck1
rotate: false
- xy: 2311, 1786
+ xy: 2799, 2041
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-wreck2
rotate: false
- xy: 2311, 1736
+ xy: 2849, 2091
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-purple-weapon-outline
rotate: false
- xy: 2311, 1636
+ xy: 2749, 1941
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-weapon-outline
rotate: false
- xy: 2311, 1536
+ xy: 2849, 2041
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+nova-icon-logic
+ rotate: false
+ xy: 2255, 1183
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
nova-leg
rotate: false
- xy: 2425, 2143
+ xy: 2949, 2141
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
nova-outline
rotate: false
- xy: 1063, 3257
+ xy: 1896, 1780
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-wreck0
rotate: false
- xy: 2358, 2243
+ xy: 1896, 1722
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-wreck1
rotate: false
- xy: 2416, 2243
+ xy: 1896, 1664
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-wreck2
rotate: false
- xy: 2474, 2243
+ xy: 1954, 1838
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
+oct-icon-logic
+ rotate: false
+ xy: 2289, 1183
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
oct-outline
rotate: false
xy: 403, 3695
@@ -5690,11 +7048,18 @@ oct-wreck2
index: -1
omura-cannon-outline
rotate: false
- xy: 1057, 894
+ xy: 1251, 986
size: 192, 277
orig: 192, 277
offset: 0, 0
index: -1
+omura-icon-logic
+ rotate: false
+ xy: 3410, 2379
+ size: 22, 32
+ orig: 22, 32
+ offset: 0, 0
+ index: -1
omura-outline
rotate: false
xy: 291, 545
@@ -5725,301 +7090,357 @@ omura-wreck2
index: -1
parallax
rotate: false
- xy: 2095, 958
+ xy: 2451, 1905
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+poly-icon-logic
+ rotate: false
+ xy: 2831, 1757
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
poly-outline
rotate: false
- xy: 1623, 3107
+ xy: 1954, 1664
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-wreck0
rotate: false
- xy: 2149, 1504
+ xy: 3322, 2095
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-wreck1
rotate: false
- xy: 2149, 1446
+ xy: 3380, 2095
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-wreck2
rotate: false
- xy: 1565, 3049
+ xy: 3438, 2095
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
+pulsar-icon-logic
+ rotate: false
+ xy: 2047, 1091
+ size: 32, 27
+ orig: 32, 27
+ offset: 0, 0
+ index: -1
pulsar-leg
rotate: false
- xy: 2845, 2199
+ xy: 847, 13
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pulsar-outline
rotate: false
- xy: 2037, 2288
+ xy: 1354, 1265
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-wreck0
rotate: false
- xy: 2107, 2288
+ xy: 1847, 128
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-wreck1
rotate: false
- xy: 1801, 2235
+ xy: 1847, 68
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-wreck2
rotate: false
- xy: 2687, 2387
+ xy: 1389, 16
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
+quad-icon-logic
+ rotate: false
+ xy: 983, 2824
+ size: 31, 31
+ orig: 31, 31
+ offset: 0, 0
+ index: -1
quad-outline
rotate: false
- xy: 831, 7
+ xy: 935, 2377
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-wreck0
rotate: false
- xy: 2757, 3343
+ xy: 1016, 2893
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-wreck1
rotate: false
- xy: 2979, 3359
+ xy: 1016, 2671
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-wreck2
rotate: false
- xy: 3201, 3359
+ xy: 1353, 3215
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
+quasar-icon-logic
+ rotate: false
+ xy: 3001, 1729
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
quasar-leg
rotate: false
- xy: 1307, 12
+ xy: 2313, 2287
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-outline
rotate: false
- xy: 3519, 2529
+ xy: 2385, 2407
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-wreck0
rotate: false
- xy: 3997, 2997
+ xy: 2467, 2407
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-wreck1
rotate: false
- xy: 3993, 2915
+ xy: 2549, 2407
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-wreck2
rotate: false
- xy: 3829, 2858
+ xy: 2395, 2325
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
+reign-icon-logic
+ rotate: false
+ xy: 725, 2899
+ size: 31, 20
+ orig: 31, 20
+ offset: 0, 0
+ index: -1
reign-leg
rotate: false
- xy: 1663, 1534
+ xy: 2382, 2489
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
reign-outline
rotate: false
- xy: 1353, 3183
+ xy: 2887, 2955
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
reign-weapon-outline
rotate: false
- xy: 3657, 2759
+ xy: 1811, 1615
size: 83, 138
orig: 83, 138
offset: 0, 0
index: -1
reign-wreck0
rotate: false
- xy: 1569, 3165
+ xy: 3103, 2929
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
reign-wreck1
rotate: false
- xy: 1785, 3165
+ xy: 3319, 2929
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
reign-wreck2
rotate: false
- xy: 2001, 3165
+ xy: 935, 2235
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
repair-point
rotate: false
- xy: 3493, 2269
+ xy: 2446, 1603
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
ripple
rotate: false
- xy: 2735, 2451
+ xy: 2039, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
+risso-icon-logic
+ rotate: false
+ xy: 2748, 1763
+ size: 28, 32
+ orig: 28, 32
+ offset: 0, 0
+ index: -1
risso-outline
rotate: false
- xy: 2257, 2367
+ xy: 1847, 788
size: 70, 78
orig: 70, 78
offset: 0, 0
index: -1
risso-wreck0
rotate: false
- xy: 2329, 2367
+ xy: 1847, 708
size: 70, 78
orig: 70, 78
offset: 0, 0
index: -1
risso-wreck1
rotate: false
- xy: 2401, 2367
+ xy: 1847, 628
size: 70, 78
orig: 70, 78
offset: 0, 0
index: -1
risso-wreck2
rotate: false
- xy: 2473, 2367
+ xy: 1847, 548
size: 70, 78
orig: 70, 78
offset: 0, 0
index: -1
salvo
rotate: false
- xy: 2079, 1750
+ xy: 1985, 955
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scatter
rotate: false
- xy: 2079, 1618
+ xy: 1985, 823
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+scepter-icon-logic
+ rotate: false
+ xy: 2757, 3311
+ size: 32, 26
+ orig: 32, 26
+ offset: 0, 0
+ index: -1
scepter-leg
rotate: false
- xy: 2483, 3035
+ xy: 2832, 2373
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
vela-leg
rotate: false
- xy: 2483, 3035
+ xy: 2832, 2373
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scepter-outline
rotate: false
- xy: 1251, 946
+ xy: 1251, 702
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-weapon-outline
rotate: false
- xy: 2977, 2199
+ xy: 1962, 1456
size: 56, 102
orig: 56, 102
offset: 0, 0
index: -1
scepter-wreck0
rotate: false
- xy: 1057, 610
+ xy: 1251, 560
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-wreck1
rotate: false
- xy: 1053, 468
+ xy: 1251, 418
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-wreck2
rotate: false
- xy: 1053, 326
+ xy: 1251, 276
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scorch
rotate: false
- xy: 3459, 2167
+ xy: 2319, 1115
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
segment
rotate: false
- xy: 2099, 1288
+ xy: 1985, 493
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+sei-icon-logic
+ rotate: false
+ xy: 2292, 1477
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
sei-launcher-outline
rotate: false
- xy: 3747, 2838
+ xy: 2559, 2325
size: 80, 80
orig: 80, 80
offset: 0, 0
@@ -6052,184 +7473,198 @@ sei-wreck2
orig: 240, 240
offset: 0, 0
index: -1
+shock-mine-icon-logic
+ rotate: false
+ xy: 2326, 1511
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
small-basic-weapon-outline
rotate: false
- xy: 2307, 1486
+ xy: 2899, 2041
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
small-mount-weapon-outline
rotate: false
- xy: 2315, 1386
+ xy: 2849, 1941
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spectre
rotate: false
- xy: 2743, 3071
+ xy: 1414, 1325
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
spiroct-foot
rotate: false
- xy: 1609, 2425
+ xy: 3740, 2353
size: 46, 46
orig: 46, 46
offset: 0, 0
index: -1
+spiroct-icon-logic
+ rotate: false
+ xy: 983, 2797
+ size: 31, 25
+ orig: 31, 25
+ offset: 0, 0
+ index: -1
spiroct-joint
rotate: false
- xy: 3527, 2219
+ xy: 2310, 1409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spiroct-leg
rotate: false
- xy: 3323, 2609
+ xy: 1525, 3079
size: 48, 34
orig: 48, 34
offset: 0, 0
index: -1
spiroct-leg-base
rotate: false
- xy: 4043, 3079
+ xy: 3967, 3585
size: 48, 34
orig: 48, 34
offset: 0, 0
index: -1
spiroct-outline
rotate: false
- xy: 1801, 2295
+ xy: 2121, 2276
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-weapon-outline
rotate: false
- xy: 2365, 1370
+ xy: 2781, 1883
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
spiroct-wreck0
rotate: false
- xy: 3523, 3002
+ xy: 1827, 1982
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-wreck1
rotate: false
- xy: 3619, 3002
+ xy: 1925, 2080
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-wreck2
rotate: false
- xy: 3715, 3002
+ xy: 2023, 2178
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
splash-0
rotate: false
- xy: 3527, 2185
+ xy: 2344, 1409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-1
rotate: false
- xy: 3527, 2151
+ xy: 2378, 1605
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-10
rotate: false
- xy: 3595, 2183
+ xy: 2446, 1535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-11
rotate: false
- xy: 3595, 2149
+ xy: 2480, 1535
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-2
rotate: false
- xy: 3561, 2285
+ xy: 2412, 1579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-3
rotate: false
- xy: 3561, 2251
+ xy: 2378, 1571
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-4
rotate: false
- xy: 3561, 2217
+ xy: 2446, 1569
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-5
rotate: false
- xy: 3561, 2183
+ xy: 2480, 1569
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-6
rotate: false
- xy: 3561, 2149
+ xy: 2514, 1569
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-7
rotate: false
- xy: 3595, 2285
+ xy: 2548, 1587
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-8
rotate: false
- xy: 3595, 2251
+ xy: 2412, 1545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
splash-9
rotate: false
- xy: 3595, 2217
+ xy: 2378, 1537
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
swarmer
rotate: false
- xy: 2089, 2090
+ xy: 2823, 2307
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
toxopid-cannon-outline
rotate: false
- xy: 1232, 2625
+ xy: 895, 1507
size: 206, 220
orig: 206, 220
offset: 0, 0
@@ -6241,6 +7676,13 @@ toxopid-foot
orig: 90, 90
offset: 0, 0
index: -1
+toxopid-icon-logic
+ rotate: false
+ xy: 2334, 1613
+ size: 26, 32
+ orig: 26, 32
+ offset: 0, 0
+ index: -1
toxopid-leg
rotate: false
xy: 3945, 4023
@@ -6257,98 +7699,98 @@ toxopid-leg-base
index: -1
toxopid-outline
rotate: false
- xy: 1725, 386
+ xy: 2878, 2763
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-wreck0
rotate: false
- xy: 1721, 194
+ xy: 1734, 2549
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-wreck1
rotate: false
- xy: 1721, 2
+ xy: 1896, 2549
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-wreck2
rotate: false
- xy: 1541, 2230
+ xy: 2058, 2549
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
tsunami
rotate: false
- xy: 3127, 2475
+ xy: 1729, 2059
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
unit-alpha-full
rotate: false
- xy: 2365, 1320
+ xy: 2781, 1833
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-antumbra-full
rotate: false
- xy: 895, 1389
+ xy: 2887, 3097
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
unit-arkyid-full
rotate: false
- xy: 2873, 2957
+ xy: 1445, 1065
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
unit-atrax-full
rotate: false
- xy: 181, 7
+ xy: 983, 2605
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
unit-beta-full
rotate: false
- xy: 3035, 2353
+ xy: 1962, 1400
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
unit-bryde-full
rotate: false
- xy: 3121, 3217
+ xy: 3608, 2791
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
unit-corvus-full
rotate: false
- xy: 2217, 3165
+ xy: 895, 2093
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
unit-crawler-full
rotate: false
- xy: 2365, 1270
+ xy: 2831, 1891
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-dagger-full
rotate: false
- xy: 2315, 1236
+ xy: 2831, 1841
size: 48, 48
orig: 48, 48
offset: 0, 0
@@ -6362,63 +7804,63 @@ unit-eclipse-full
index: -1
unit-flare-full
rotate: false
- xy: 2365, 1220
+ xy: 2881, 1891
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-fortress-full
rotate: false
- xy: 1542, 2771
+ xy: 3806, 2210
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
unit-gamma-full
rotate: false
- xy: 2757, 2381
+ xy: 1459, 6
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
unit-horizon-full
rotate: false
- xy: 3521, 2455
+ xy: 1771, 1245
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
unit-mace-full
rotate: false
- xy: 2145, 2024
+ xy: 2729, 2245
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
unit-mega-full
rotate: false
- xy: 1542, 2669
+ xy: 3908, 2190
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
unit-minke-full
rotate: false
- xy: 3657, 2899
+ xy: 2301, 2173
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
unit-mono-full
rotate: false
- xy: 2227, 1142
+ xy: 2881, 1841
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-nova-full
rotate: false
- xy: 3035, 2295
+ xy: 3554, 2077
size: 56, 56
orig: 56, 56
offset: 0, 0
@@ -6439,49 +7881,49 @@ unit-omura-full
index: -1
unit-poly-full
rotate: false
- xy: 3093, 2351
+ xy: 3612, 2077
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
unit-pulsar-full
rotate: false
- xy: 1825, 2175
+ xy: 1925, 2020
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
unit-quad-full
rotate: false
- xy: 3423, 3359
+ xy: 1575, 3085
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
unit-quasar-full
rotate: false
- xy: 3742, 2756
+ xy: 2395, 2243
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
unit-reign-full
rotate: false
- xy: 2433, 3165
+ xy: 895, 1951
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
unit-risso-full
rotate: false
- xy: 2545, 2367
+ xy: 1847, 468
size: 70, 78
orig: 70, 78
offset: 0, 0
index: -1
unit-scepter-full
rotate: false
- xy: 1053, 184
+ xy: 1251, 134
size: 170, 140
orig: 170, 140
offset: 0, 0
@@ -6495,301 +7937,322 @@ unit-sei-full
index: -1
unit-spiroct-full
rotate: false
- xy: 3811, 3002
+ xy: 2217, 2276
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
unit-toxopid-full
rotate: false
- xy: 1663, 2038
+ xy: 2220, 2549
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
unit-vela-full
rotate: false
- xy: 1053, 42
+ xy: 1151, 2235
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
unit-zenith-full
rotate: false
- xy: 1279, 3069
+ xy: 1047, 11
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
vault-team-crux
rotate: false
- xy: 1703, 2349
+ xy: 1827, 2059
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
vault-team-sharded
rotate: false
- xy: 1703, 2251
+ xy: 1925, 2157
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
+vela-icon-logic
+ rotate: false
+ xy: 1435, 1847
+ size: 32, 26
+ orig: 32, 26
+ offset: 0, 0
+ index: -1
vela-outline
rotate: false
- xy: 1229, 520
+ xy: 1238, 2931
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-wreck0
rotate: false
- xy: 1225, 236
+ xy: 1238, 2647
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-wreck1
rotate: false
- xy: 1225, 94
+ xy: 1410, 2931
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-wreck2
rotate: false
- xy: 1423, 946
+ xy: 1410, 2789
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
wave
rotate: false
- xy: 2145, 1694
+ xy: 3059, 2221
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
+zenith-icon-logic
+ rotate: false
+ xy: 2378, 1469
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
zenith-missiles-outline
rotate: false
- xy: 2227, 892
+ xy: 2931, 1883
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
zenith-outline
rotate: false
- xy: 3003, 2973
+ xy: 1238, 3097
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-wreck0
rotate: false
- xy: 3117, 2973
+ xy: 3092, 2389
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-wreck1
rotate: false
- xy: 1527, 8
+ xy: 3206, 2413
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-wreck2
rotate: false
- xy: 1440, 2955
+ xy: 3320, 2413
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
item-blast-compound
rotate: false
- xy: 3279, 2357
+ xy: 2122, 1421
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-coal
rotate: false
- xy: 2315, 122
+ xy: 2156, 1455
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-copper
rotate: false
- xy: 2325, 54
+ xy: 2190, 1489
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-graphite
rotate: false
- xy: 2590, 2217
+ xy: 2224, 1523
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-lead
rotate: false
- xy: 2413, 1016
+ xy: 2156, 1421
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-metaglass
rotate: false
- xy: 2413, 948
+ xy: 2224, 1489
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-phase-fabric
rotate: false
- xy: 2413, 880
+ xy: 2224, 1455
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-plastanium
rotate: false
- xy: 2405, 812
+ xy: 2258, 1557
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-pyratite
rotate: false
- xy: 2405, 744
+ xy: 2258, 1489
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-sand
rotate: false
- xy: 2415, 676
+ xy: 2258, 1421
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap
rotate: false
- xy: 2415, 608
+ xy: 2140, 1387
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-silicon
rotate: false
- xy: 2415, 540
+ xy: 2208, 1387
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-spore-pod
rotate: false
- xy: 2415, 438
+ xy: 2119, 1353
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-surge-alloy
rotate: false
- xy: 3143, 2317
+ xy: 2153, 1353
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-thorium
rotate: false
- xy: 3177, 2301
+ xy: 2153, 1319
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-titanium
rotate: false
- xy: 3245, 2323
+ xy: 2119, 1251
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-cryofluid
rotate: false
- xy: 3245, 2289
+ xy: 2187, 1285
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-oil
rotate: false
- xy: 3153, 2267
+ xy: 2255, 1353
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-slag
rotate: false
- xy: 3255, 2255
+ xy: 2119, 1217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-water
rotate: false
- xy: 3323, 2255
+ xy: 2255, 1217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
blank
rotate: false
- xy: 3734, 2756
+ xy: 1721, 1521
size: 1, 1
orig: 1, 1
offset: 0, 0
index: -1
circle
rotate: false
- xy: 1153, 2422
+ xy: 887, 1304
size: 201, 201
orig: 201, 201
offset: 0, 0
index: -1
+circle-small
+ rotate: false
+ xy: 1575, 3415
+ size: 50, 50
+ orig: 50, 50
+ offset: 0, 0
+ index: -1
shape-3
rotate: false
- xy: 2235, 2236
+ xy: 3257, 2144
size: 63, 63
orig: 63, 63
offset: 0, 0
index: -1
alpha
rotate: false
- xy: 781, 43
+ xy: 1525, 3165
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
alpha-cell
rotate: false
- xy: 1559, 2423
+ xy: 507, 93
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
antumbra
rotate: false
- xy: 3645, 3339
+ xy: 3879, 3339
size: 216, 240
orig: 216, 240
offset: 0, 0
index: -1
antumbra-cell
rotate: false
- xy: 3863, 3339
+ xy: 1797, 3065
size: 216, 240
orig: 216, 240
offset: 0, 0
@@ -6810,49 +8273,49 @@ arkyid-cell
index: -1
atrax
rotate: false
- xy: 1, 7
+ xy: 1435, 1875
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
atrax-base
rotate: false
- xy: 1825, 2109
+ xy: 1819, 1895
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
atrax-cell
rotate: false
- xy: 1001, 1181
+ xy: 1, 7
size: 88, 64
orig: 88, 64
offset: 0, 0
index: -1
beta
rotate: false
- xy: 1507, 3127
+ xy: 3322, 2153
size: 56, 54
orig: 56, 54
offset: 0, 0
index: -1
beta-cell
rotate: false
- xy: 3093, 2301
+ xy: 2012, 1800
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
bryde
rotate: false
- xy: 1663, 1266
+ xy: 3945, 3881
size: 140, 140
orig: 140, 140
offset: 0, 0
index: -1
bryde-cell
rotate: false
- xy: 3945, 3881
+ xy: 2690, 2443
size: 140, 140
orig: 140, 140
offset: 0, 0
@@ -6866,56 +8329,56 @@ corvus
index: -1
corvus-base
rotate: false
- xy: 1663, 1912
+ xy: 2382, 2615
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
corvus-cell
rotate: false
- xy: 887, 1247
+ xy: 831, 79
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
corvus-weapon-heat
rotate: false
- xy: 1063, 3069
+ xy: 3105, 3071
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
crawler
rotate: false
- xy: 3817, 2560
+ xy: 2062, 1759
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-base
rotate: false
- xy: 3817, 2510
+ xy: 2112, 1809
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
crawler-cell
rotate: false
- xy: 2165, 1396
+ xy: 2212, 1859
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger
rotate: false
- xy: 2211, 1986
+ xy: 2262, 1809
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dagger-base
rotate: false
- xy: 2211, 1936
+ xy: 2162, 1709
size: 48, 48
orig: 48, 48
offset: 0, 0
@@ -6936,42 +8399,42 @@ eclipse-cell
index: -1
flare
rotate: false
- xy: 2273, 156
+ xy: 2462, 1855
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
fortress
rotate: false
- xy: 1883, 26
+ xy: 3536, 2445
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
fortress-base
rotate: false
- xy: 2013, 2014
+ xy: 1917, 97
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
fortress-cell
rotate: false
- xy: 1817, 1436
+ xy: 3536, 2363
size: 100, 80
orig: 100, 80
offset: 0, 0
index: -1
gamma
rotate: false
- xy: 1747, 770
+ xy: 1771, 1031
size: 68, 68
orig: 68, 68
offset: 0, 0
index: -1
gamma-cell
rotate: false
- xy: 1507, 3069
+ xy: 1885, 1896
size: 56, 56
orig: 56, 56
offset: 0, 0
@@ -6985,91 +8448,91 @@ horizon
index: -1
horizon-cell
rotate: false
- xy: 1641, 48
+ xy: 2477, 2251
size: 72, 72
orig: 72, 72
offset: 0, 0
index: -1
mace
rotate: false
- xy: 2023, 2080
+ xy: 2683, 1995
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-base
rotate: false
- xy: 2017, 1486
+ xy: 2683, 1929
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mace-cell
rotate: false
- xy: 2017, 1420
+ xy: 1989, 1954
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mega
rotate: false
- xy: 2975, 2855
+ xy: 3194, 2229
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
mega-cell
rotate: false
- xy: 3077, 2871
+ xy: 3296, 2209
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
minke
rotate: false
- xy: 3477, 2899
+ xy: 1721, 1792
size: 88, 101
orig: 88, 101
offset: 0, 0
index: -1
minke-cell
rotate: false
- xy: 2093, 3035
+ xy: 1284, 1325
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
mono
rotate: false
- xy: 2311, 1986
+ xy: 2749, 2041
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mono-cell
rotate: false
- xy: 2311, 1936
+ xy: 2799, 2091
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
nova
rotate: false
- xy: 2300, 2243
+ xy: 1943, 1896
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
nova-base
rotate: false
- xy: 2375, 2143
+ xy: 2899, 2091
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
nova-cell
rotate: false
- xy: 2209, 372
+ xy: 1896, 1838
size: 56, 56
orig: 56, 56
offset: 0, 0
@@ -7095,13 +8558,6 @@ omura
orig: 280, 400
offset: 0, 0
index: -1
-omura-cannon-heat
- rotate: false
- xy: 1113, 1173
- size: 192, 277
- orig: 192, 277
- offset: 0, 0
- index: -1
omura-cell
rotate: false
xy: 291, 947
@@ -7111,140 +8567,140 @@ omura-cell
index: -1
poly
rotate: false
- xy: 2532, 2243
+ xy: 1954, 1780
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
poly-cell
rotate: false
- xy: 1565, 3107
+ xy: 1954, 1722
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
power-cell
rotate: false
- xy: 1623, 3049
+ xy: 3496, 2065
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
pulsar
rotate: false
- xy: 2649, 3165
+ xy: 1284, 1265
size: 68, 58
orig: 68, 58
offset: 0, 0
index: -1
pulsar-base
rotate: false
- xy: 2475, 2143
+ xy: 2799, 1941
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
pulsar-cell
rotate: false
- xy: 507, 93
+ xy: 1647, 2549
size: 58, 48
orig: 58, 48
offset: 0, 0
index: -1
quad
rotate: false
- xy: 831, 451
+ xy: 3435, 3359
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quad-cell
rotate: false
- xy: 831, 229
+ xy: 3657, 3359
size: 220, 220
orig: 220, 220
offset: 0, 0
index: -1
quasar
rotate: false
- xy: 3652, 2677
+ xy: 1740, 1442
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-base
rotate: false
- xy: 3911, 2931
+ xy: 1740, 1360
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
quasar-cell
rotate: false
- xy: 1225, 12
+ xy: 2303, 2369
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
reign
rotate: false
- xy: 1385, 3325
+ xy: 3537, 3075
size: 214, 140
orig: 214, 140
offset: 0, 0
index: -1
reign-base
rotate: false
- xy: 1663, 1786
+ xy: 2536, 2615
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
reign-cell
rotate: false
- xy: 1663, 1660
+ xy: 2690, 2585
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
risso
rotate: false
- xy: 2185, 2367
+ xy: 1847, 868
size: 70, 78
orig: 70, 78
offset: 0, 0
index: -1
risso-cell
rotate: false
- xy: 2833, 2561
+ xy: 2235, 2451
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scepter
rotate: false
- xy: 1057, 752
+ xy: 1251, 844
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
scepter-base
rotate: false
- xy: 2223, 3035
+ xy: 2844, 2503
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
vela-base
rotate: false
- xy: 2223, 3035
+ xy: 2844, 2503
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scepter-cell
rotate: false
- xy: 2353, 3035
+ xy: 2974, 2503
size: 128, 128
orig: 128, 128
offset: 0, 0
@@ -7265,287 +8721,287 @@ sei-cell
index: -1
spiroct
rotate: false
- xy: 3427, 3022
+ xy: 1427, 1474
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
spiroct-cell
rotate: false
- xy: 1801, 2372
+ xy: 1445, 988
size: 94, 75
orig: 94, 75
offset: 0, 0
index: -1
toxopid
rotate: false
- xy: 1725, 578
+ xy: 2716, 2711
size: 160, 190
orig: 160, 190
offset: 0, 0
index: -1
toxopid-cannon
rotate: false
- xy: 1232, 2847
+ xy: 895, 1729
size: 206, 220
orig: 206, 220
offset: 0, 0
index: -1
toxopid-cell
rotate: false
- xy: 1663, 1408
+ xy: 2536, 2489
size: 152, 124
orig: 152, 124
offset: 0, 0
index: -1
vanguard
rotate: false
- xy: 2227, 1092
+ xy: 2949, 1933
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
vanguard-cell
rotate: false
- xy: 2227, 1042
+ xy: 2781, 1783
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
vela
rotate: false
- xy: 1251, 804
+ xy: 3537, 2933
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-cell
rotate: false
- xy: 1229, 662
+ xy: 1353, 3073
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
vela-weapon-heat
rotate: false
- xy: 1225, 378
+ xy: 1238, 2789
size: 170, 140
orig: 170, 140
offset: 0, 0
index: -1
artillery
rotate: false
- xy: 4043, 3173
+ xy: 3670, 2077
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
artillery-mount
rotate: false
- xy: 3673, 2533
+ xy: 1771, 1173
size: 70, 70
orig: 70, 70
offset: 0, 0
index: -1
beam-weapon
rotate: false
- xy: 3747, 2920
+ xy: 4010, 2867
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
eruption
rotate: false
- xy: 2211, 1578
+ xy: 2362, 1847
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
flakgun
rotate: false
- xy: 2273, 322
+ xy: 2412, 1855
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
flamethrower
rotate: false
- xy: 2273, 264
+ xy: 2362, 1789
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
heal-shotgun-weapon
rotate: false
- xy: 1251, 1121
+ xy: 1575, 3363
size: 50, 50
orig: 50, 50
offset: 0, 0
index: -1
heal-weapon
rotate: false
- xy: 2271, 2086
+ xy: 2412, 1747
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
heal-weapon-mount
rotate: false
- xy: 2261, 2036
+ xy: 2462, 1755
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
large-artillery
rotate: false
- xy: 2215, 1310
+ xy: 2462, 1637
size: 48, 66
orig: 48, 66
offset: 0, 0
index: -1
large-bullet-mount
rotate: false
- xy: 1897, 2348
+ xy: 4002, 2091
size: 70, 97
orig: 70, 97
offset: 0, 0
index: -1
large-laser-mount
rotate: false
- xy: 1755, 2449
- size: 96, 192
- orig: 96, 192
+ xy: 1553, 595
+ size: 96, 140
+ orig: 96, 140
offset: 0, 0
index: -1
large-purple-mount
rotate: false
- xy: 2041, 2348
+ xy: 1843, 1047
size: 70, 97
orig: 70, 97
offset: 0, 0
index: -1
large-weapon
rotate: false
- xy: 2223, 1192
+ xy: 2562, 1655
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
missiles
rotate: false
- xy: 2325, 2136
+ xy: 2749, 2141
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
missiles-mount
rotate: false
- xy: 2321, 2086
+ xy: 2749, 2091
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-purple-weapon
rotate: false
- xy: 2311, 1686
+ xy: 2899, 2141
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
mount-weapon
rotate: false
- xy: 2311, 1586
+ xy: 2799, 1991
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
omura-cannon
rotate: false
- xy: 1307, 1367
+ xy: 1057, 404
size: 192, 277
orig: 192, 277
offset: 0, 0
index: -1
omura-cannon-heat
rotate: false
- xy: 1307, 1088
+ xy: 1057, 125
size: 192, 277
orig: 192, 277
offset: 0, 0
index: -1
reign-weapon
rotate: false
- xy: 3567, 2656
+ xy: 1811, 1755
size: 83, 138
orig: 83, 138
offset: 0, 0
index: -1
scepter-weapon
rotate: false
- xy: 2977, 2303
+ xy: 1951, 1560
size: 56, 102
orig: 56, 102
offset: 0, 0
index: -1
sei-launcher
rotate: false
- xy: 3911, 2849
+ xy: 2477, 2325
size: 80, 80
orig: 80, 80
offset: 0, 0
index: -1
small-basic-weapon
rotate: false
- xy: 2525, 2143
+ xy: 2849, 1991
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
small-mount-weapon
rotate: false
- xy: 2315, 1436
+ xy: 2949, 2091
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
small-weapon
rotate: false
- xy: 2315, 1336
+ xy: 2899, 1991
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spiroct-weapon
rotate: false
- xy: 2365, 1428
+ xy: 2949, 1983
size: 48, 56
orig: 48, 56
offset: 0, 0
index: -1
weapon
rotate: false
- xy: 2227, 992
+ xy: 2831, 1791
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
zenith-missiles
rotate: false
- xy: 2227, 942
+ xy: 2881, 1791
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
zenith
rotate: false
- xy: 1393, 3069
+ xy: 1161, 11
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
zenith-cell
rotate: false
- xy: 887, 1133
+ xy: 1275, 20
size: 112, 112
orig: 112, 112
offset: 0, 0
@@ -11168,2261 +12624,2275 @@ filter: nearest,nearest
repeat: none
additive-reconstructor-icon-editor
rotate: false
- xy: 2297, 397
+ xy: 2523, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
air-factory-icon-editor
rotate: false
- xy: 2395, 397
+ xy: 2621, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
alloy-smelter-icon-editor
rotate: false
- xy: 2493, 397
+ xy: 2719, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
arc-icon-editor
rotate: false
- xy: 4061, 461
+ xy: 2771, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
armored-conveyor-icon-editor
rotate: false
- xy: 205, 9
+ xy: 2771, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+basalt-boulder-icon-editor
+ rotate: false
+ xy: 2621, 339
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
basalt-icon-editor
rotate: false
- xy: 4061, 427
+ xy: 2805, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-basalt1
rotate: false
- xy: 4061, 427
+ xy: 2805, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery-icon-editor
rotate: false
- xy: 239, 9
+ xy: 2805, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
battery-large-icon-editor
rotate: false
- xy: 2591, 397
+ xy: 2817, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
blast-drill-icon-editor
rotate: false
- xy: 163, 43
+ xy: 163, 35
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
blast-mixer-icon-editor
rotate: false
- xy: 1749, 299
+ xy: 1631, 259
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
block-border-editor
rotate: false
- xy: 273, 9
+ xy: 2839, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-forge-icon-editor
rotate: false
- xy: 2689, 397
+ xy: 2915, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-loader-icon-editor
rotate: false
- xy: 2787, 397
+ xy: 3013, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
block-unloader-icon-editor
rotate: false
- xy: 2885, 397
+ xy: 3111, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
boulder-icon-editor
rotate: false
- xy: 1423, 185
+ xy: 2555, 207
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
bridge-conduit-icon-editor
rotate: false
- xy: 307, 9
+ xy: 2839, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-icon-editor
rotate: false
- xy: 341, 9
+ xy: 2873, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
char-icon-editor
rotate: false
- xy: 375, 9
+ xy: 2873, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-char1
rotate: false
- xy: 375, 9
+ xy: 2873, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
clear-editor
rotate: false
- xy: 645, 202
+ xy: 645, 194
size: 1, 1
orig: 1, 1
offset: 0, 0
index: -1
cliff-icon-editor
rotate: false
- xy: 409, 9
+ xy: 2907, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
coal-centrifuge-icon-editor
rotate: false
- xy: 1815, 299
+ xy: 1631, 193
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
combustion-generator-icon-editor
rotate: false
- xy: 443, 9
+ xy: 2907, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
command-center-icon-editor
rotate: false
- xy: 1881, 299
+ xy: 1631, 127
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
conduit-icon-editor
rotate: false
- xy: 477, 9
+ xy: 2941, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
container-icon-editor
rotate: false
- xy: 1947, 299
+ xy: 1697, 259
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
conveyor-icon-editor
rotate: false
- xy: 511, 9
+ xy: 2941, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
copper-wall-icon-editor
rotate: false
- xy: 1423, 151
+ xy: 2975, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
copper-wall-large-icon-editor
rotate: false
- xy: 2013, 299
+ xy: 1697, 193
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
core-foundation-icon-editor
rotate: false
- xy: 1517, 365
+ xy: 1743, 357
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
core-nucleus-icon-editor
rotate: false
- xy: 1, 11
+ xy: 1, 3
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
core-shard-icon-editor
rotate: false
- xy: 2983, 397
+ xy: 3209, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
craters-icon-editor
rotate: false
- xy: 1457, 151
+ xy: 2975, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-craters1
rotate: false
- xy: 1457, 151
+ xy: 2975, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cryofluid-mixer-icon-editor
rotate: false
- xy: 2079, 299
+ xy: 1697, 127
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cultivator-icon-editor
rotate: false
- xy: 2145, 299
+ xy: 1763, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
cyclone-icon-editor
rotate: false
- xy: 3081, 397
+ xy: 3307, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
dacite-boulder-icon-editor
rotate: false
- xy: 1473, 185
+ xy: 2621, 289
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
dacite-icon-editor
rotate: false
- xy: 1491, 151
+ xy: 3009, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dacite1
rotate: false
- xy: 1491, 151
+ xy: 3009, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dacite-wall-icon-editor
rotate: false
- xy: 1337, 135
+ xy: 3009, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-metal-icon-editor
rotate: false
- xy: 1371, 135
+ xy: 3043, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-1-icon-editor
rotate: false
- xy: 2277, 297
+ xy: 3043, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-1
rotate: false
- xy: 2277, 297
+ xy: 3043, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-2-icon-editor
rotate: false
- xy: 2311, 297
+ xy: 3077, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-2
rotate: false
- xy: 2311, 297
+ xy: 3077, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-3-icon-editor
rotate: false
- xy: 2345, 297
+ xy: 3077, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-3
rotate: false
- xy: 2345, 297
+ xy: 3077, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-4-icon-editor
rotate: false
- xy: 2379, 297
+ xy: 3111, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-4
rotate: false
- xy: 2379, 297
+ xy: 3111, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-5-icon-editor
rotate: false
- xy: 2413, 297
+ xy: 3111, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-5
rotate: false
- xy: 2413, 297
+ xy: 3111, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dark-panel-6-icon-editor
rotate: false
- xy: 2447, 297
+ xy: 3145, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dark-panel-6
rotate: false
- xy: 2447, 297
+ xy: 3145, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
darksand-icon-editor
rotate: false
- xy: 2481, 297
+ xy: 3145, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand1
rotate: false
- xy: 2481, 297
+ xy: 3145, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
darksand-tainted-water-icon-editor
rotate: false
- xy: 2515, 297
+ xy: 3179, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
darksand-water-icon-editor
rotate: false
- xy: 2549, 297
+ xy: 3179, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
deepwater-icon-editor
rotate: false
- xy: 2583, 297
+ xy: 3213, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-deepwater
rotate: false
- xy: 2583, 297
+ xy: 3213, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
differential-generator-icon-editor
rotate: false
- xy: 3179, 397
+ xy: 3405, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
diode-icon-editor
rotate: false
- xy: 2617, 297
+ xy: 3213, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dirt-icon-editor
rotate: false
- xy: 2651, 297
+ xy: 3247, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dirt1
rotate: false
- xy: 2651, 297
+ xy: 3247, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
dirt-wall-icon-editor
rotate: false
- xy: 2685, 297
+ xy: 3247, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
disassembler-icon-editor
rotate: false
- xy: 3277, 397
+ xy: 3503, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
distributor-icon-editor
rotate: false
- xy: 2211, 299
+ xy: 1763, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
door-icon-editor
rotate: false
- xy: 2719, 297
+ xy: 3281, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
door-large-icon-editor
rotate: false
- xy: 2297, 331
+ xy: 1829, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
dune-wall-icon-editor
rotate: false
- xy: 2753, 297
+ xy: 3281, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
duo-icon-editor
rotate: false
- xy: 2787, 297
+ xy: 3315, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-basalt2
rotate: false
- xy: 2821, 297
+ xy: 3315, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-basalt3
rotate: false
- xy: 2855, 297
+ xy: 3349, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-char2
rotate: false
- xy: 2889, 297
+ xy: 3349, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-char3
rotate: false
- xy: 2923, 297
+ xy: 3383, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-craters2
rotate: false
- xy: 2957, 297
+ xy: 3383, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-craters3
rotate: false
- xy: 2991, 297
+ xy: 3417, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dacite2
rotate: false
- xy: 3025, 297
+ xy: 3417, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dacite3
rotate: false
- xy: 3059, 297
+ xy: 3451, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-tainted-water1
rotate: false
- xy: 3161, 297
+ xy: 3485, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-tainted-water2
rotate: false
- xy: 3195, 297
+ xy: 3519, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-tainted-water3
rotate: false
- xy: 3229, 297
+ xy: 3519, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-water1
rotate: false
- xy: 3263, 297
+ xy: 3553, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-water2
rotate: false
- xy: 3297, 297
+ xy: 3553, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand-water3
rotate: false
- xy: 3331, 297
+ xy: 3587, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand2
rotate: false
- xy: 3093, 297
+ xy: 3451, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-darksand3
rotate: false
- xy: 3127, 297
+ xy: 3485, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dirt2
rotate: false
- xy: 3365, 297
+ xy: 3587, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-dirt3
rotate: false
- xy: 3399, 297
+ xy: 3621, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-grass1
rotate: false
- xy: 3433, 297
+ xy: 3621, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
grass-icon-editor
rotate: false
- xy: 3433, 297
+ xy: 3621, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-grass2
rotate: false
- xy: 3467, 297
+ xy: 3655, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-grass3
rotate: false
- xy: 3501, 297
+ xy: 3655, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-hotrock1
rotate: false
- xy: 3535, 297
+ xy: 3689, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
hotrock-icon-editor
rotate: false
- xy: 3535, 297
+ xy: 3689, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-hotrock2
rotate: false
- xy: 3569, 297
+ xy: 3689, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-hotrock3
rotate: false
- xy: 3603, 297
+ xy: 3723, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice-snow1
rotate: false
- xy: 3739, 297
+ xy: 3791, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
ice-snow-icon-editor
rotate: false
- xy: 3739, 297
+ xy: 3791, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice-snow2
rotate: false
- xy: 3773, 297
+ xy: 3791, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice-snow3
rotate: false
- xy: 3807, 297
+ xy: 3825, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice1
rotate: false
- xy: 3637, 297
+ xy: 3723, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
ice-icon-editor
rotate: false
- xy: 3637, 297
+ xy: 3723, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice2
rotate: false
- xy: 3671, 297
+ xy: 3757, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ice3
rotate: false
- xy: 3705, 297
+ xy: 3757, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-magmarock1
rotate: false
- xy: 3841, 297
+ xy: 3825, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
magmarock-icon-editor
rotate: false
- xy: 3841, 297
+ xy: 3825, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-magmarock2
rotate: false
- xy: 3875, 297
+ xy: 3859, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-magmarock3
rotate: false
- xy: 3909, 297
+ xy: 3859, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor
rotate: false
- xy: 3943, 297
+ xy: 3893, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-icon-editor
rotate: false
- xy: 3943, 297
+ xy: 3893, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-2
rotate: false
- xy: 3977, 297
+ xy: 3893, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-2-icon-editor
rotate: false
- xy: 3977, 297
+ xy: 3893, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-3
rotate: false
- xy: 4011, 297
+ xy: 3927, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-3-icon-editor
rotate: false
- xy: 4011, 297
+ xy: 3927, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-5
rotate: false
- xy: 4045, 297
+ xy: 3927, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-5-icon-editor
rotate: false
- xy: 4045, 297
+ xy: 3927, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-damaged1
rotate: false
- xy: 1339, 101
+ xy: 3961, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
metal-floor-damaged-icon-editor
rotate: false
- xy: 1339, 101
+ xy: 3961, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-damaged2
rotate: false
- xy: 1339, 67
+ xy: 3961, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-metal-floor-damaged3
rotate: false
- xy: 1373, 101
+ xy: 3995, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-moss1
rotate: false
- xy: 1373, 67
+ xy: 3995, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
moss-icon-editor
rotate: false
- xy: 1373, 67
+ xy: 3995, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-moss2
rotate: false
- xy: 1339, 33
+ xy: 4029, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-moss3
rotate: false
- xy: 1373, 33
+ xy: 4063, 355
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-mud1
rotate: false
- xy: 915, 39
+ xy: 4029, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mud-icon-editor
rotate: false
- xy: 915, 39
+ xy: 4029, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-mud2
rotate: false
- xy: 949, 39
+ xy: 4063, 321
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-mud3
rotate: false
- xy: 983, 39
+ xy: 163, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-coal1
rotate: false
- xy: 1017, 39
+ xy: 197, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-coal2
rotate: false
- xy: 1051, 39
+ xy: 231, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-coal3
rotate: false
- xy: 1085, 39
+ xy: 265, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-copper1
rotate: false
- xy: 1753, 265
+ xy: 299, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-copper2
rotate: false
- xy: 1753, 231
+ xy: 333, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-copper3
rotate: false
- xy: 1787, 265
+ xy: 367, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-lead1
rotate: false
- xy: 1787, 231
+ xy: 401, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-lead2
rotate: false
- xy: 1821, 265
+ xy: 435, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-lead3
rotate: false
- xy: 1821, 231
+ xy: 469, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-scrap1
rotate: false
- xy: 1855, 265
+ xy: 503, 1
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-scrap2
rotate: false
- xy: 1855, 231
+ xy: 553, 33
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-scrap3
rotate: false
- xy: 1889, 265
+ xy: 587, 33
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-thorium1
rotate: false
- xy: 1889, 231
+ xy: 651, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-thorium2
rotate: false
- xy: 1923, 265
+ xy: 685, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-thorium3
rotate: false
- xy: 1923, 231
+ xy: 719, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-titanium1
rotate: false
- xy: 1957, 265
+ xy: 753, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-titanium2
rotate: false
- xy: 1957, 231
+ xy: 787, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-ore-titanium3
rotate: false
- xy: 1991, 265
+ xy: 821, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-pebbles1
rotate: false
- xy: 1991, 231
+ xy: 855, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-pebbles2
rotate: false
- xy: 2025, 265
+ xy: 889, 65
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-pebbles3
rotate: false
- xy: 2025, 231
+ xy: 1435, 63
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-salt
rotate: false
- xy: 2059, 265
+ xy: 1469, 63
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
salt-icon-editor
rotate: false
- xy: 2059, 265
+ xy: 1469, 63
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand-water1
rotate: false
- xy: 2127, 265
+ xy: 1763, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand-water2
rotate: false
- xy: 2127, 231
+ xy: 1797, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand-water3
rotate: false
- xy: 2161, 265
+ xy: 1831, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand1
rotate: false
- xy: 2059, 231
+ xy: 1503, 63
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-icon-editor
rotate: false
- xy: 2059, 231
+ xy: 1503, 63
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand2
rotate: false
- xy: 2093, 265
+ xy: 1537, 63
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-sand3
rotate: false
- xy: 2093, 231
+ xy: 1571, 63
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-shale1
rotate: false
- xy: 2161, 231
+ xy: 1865, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-icon-editor
rotate: false
- xy: 2161, 231
+ xy: 1865, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-shale2
rotate: false
- xy: 2195, 265
+ xy: 1899, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-shale3
rotate: false
- xy: 2195, 231
+ xy: 1933, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-slag
rotate: false
- xy: 2229, 265
+ xy: 1967, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
slag-icon-editor
rotate: false
- xy: 2229, 265
+ xy: 1967, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-snow1
rotate: false
- xy: 2229, 231
+ xy: 2001, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-snow2
rotate: false
- xy: 2263, 263
+ xy: 2035, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-snow3
rotate: false
- xy: 2297, 263
+ xy: 2069, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-space
rotate: false
- xy: 2331, 263
+ xy: 2103, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
space-icon-editor
rotate: false
- xy: 2331, 263
+ xy: 2103, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spawn
rotate: false
- xy: 2365, 263
+ xy: 2137, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spore-moss1
rotate: false
- xy: 2399, 263
+ xy: 2171, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spore-moss-icon-editor
rotate: false
- xy: 2399, 263
+ xy: 2171, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spore-moss2
rotate: false
- xy: 2433, 263
+ xy: 2205, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-spore-moss3
rotate: false
- xy: 2467, 263
+ xy: 2239, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-stone1
rotate: false
- xy: 2501, 263
+ xy: 2273, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
stone-icon-editor
rotate: false
- xy: 2501, 263
+ xy: 2273, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-stone2
rotate: false
- xy: 2535, 263
+ xy: 2307, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-stone3
rotate: false
- xy: 2569, 263
+ xy: 2341, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tainted-water
rotate: false
- xy: 2603, 263
+ xy: 2375, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tainted-water-icon-editor
rotate: false
- xy: 2603, 263
+ xy: 2375, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tar
rotate: false
- xy: 2637, 263
+ xy: 2409, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tar-icon-editor
rotate: false
- xy: 2637, 263
+ xy: 2409, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tendrils1
rotate: false
- xy: 2671, 263
+ xy: 2443, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tendrils2
rotate: false
- xy: 2705, 263
+ xy: 2477, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-tendrils3
rotate: false
- xy: 2739, 263
+ xy: 2511, 125
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
editor-water
rotate: false
- xy: 2773, 263
+ xy: 2621, 255
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
water-icon-editor
rotate: false
- xy: 2773, 263
+ xy: 2621, 255
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
exponential-reconstructor-icon-editor
rotate: false
- xy: 935, 269
+ xy: 935, 261
size: 224, 224
orig: 224, 224
offset: 0, 0
index: -1
force-projector-icon-editor
rotate: false
- xy: 3375, 397
+ xy: 3601, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
foreshadow-icon-editor
rotate: false
- xy: 293, 43
+ xy: 293, 35
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
fuse-icon-editor
rotate: false
- xy: 3473, 397
+ xy: 3699, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
graphite-press-icon-editor
rotate: false
- xy: 2363, 331
+ xy: 1763, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
ground-factory-icon-editor
rotate: false
- xy: 3571, 397
+ xy: 3797, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
hail-icon-editor
rotate: false
- xy: 2807, 263
+ xy: 2655, 255
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
hyper-processor-icon-editor
rotate: false
- xy: 3669, 397
+ xy: 3895, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
ice-wall-icon-editor
rotate: false
- xy: 2841, 263
+ xy: 2689, 255
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
illuminator-icon-editor
rotate: false
- xy: 2875, 263
+ xy: 2723, 255
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
impact-reactor-icon-editor
rotate: false
- xy: 1647, 365
+ xy: 1873, 357
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
incinerator-icon-editor
rotate: false
- xy: 2909, 263
+ xy: 2771, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+interplanetary-accelerator-icon-editor
+ rotate: false
+ xy: 1161, 261
+ size: 224, 224
+ orig: 224, 224
+ offset: 0, 0
+ index: -1
inverted-sorter-icon-editor
rotate: false
- xy: 2943, 263
+ xy: 2805, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-source-icon-editor
rotate: false
- xy: 2977, 263
+ xy: 2839, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-void-icon-editor
rotate: false
- xy: 3011, 263
+ xy: 2873, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
junction-icon-editor
rotate: false
- xy: 3045, 263
+ xy: 2907, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
kiln-icon-editor
rotate: false
- xy: 2429, 331
+ xy: 1829, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
lancer-icon-editor
rotate: false
- xy: 2495, 331
+ xy: 1895, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
large-logic-display-icon-editor
rotate: false
- xy: 1161, 301
+ xy: 1387, 293
size: 192, 192
orig: 192, 192
offset: 0, 0
index: -1
laser-drill-icon-editor
rotate: false
- xy: 3767, 397
+ xy: 3993, 389
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
launch-pad-icon-editor
rotate: false
- xy: 3865, 397
+ xy: 553, 67
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
launch-pad-large-icon-editor
rotate: false
- xy: 423, 43
+ xy: 423, 35
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
liquid-junction-icon-editor
rotate: false
- xy: 3079, 263
+ xy: 2941, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-icon-editor
rotate: false
- xy: 3113, 263
+ xy: 2975, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-source-icon-editor
rotate: false
- xy: 3147, 263
+ xy: 3009, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-tank-icon-editor
rotate: false
- xy: 3963, 397
+ xy: 651, 99
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
liquid-void-icon-editor
rotate: false
- xy: 3181, 263
+ xy: 3043, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
logic-display-icon-editor
rotate: false
- xy: 553, 75
+ xy: 749, 99
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
logic-processor-icon-editor
rotate: false
- xy: 2561, 331
+ xy: 1829, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mass-driver-icon-editor
rotate: false
- xy: 651, 107
+ xy: 847, 99
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
mechanical-drill-icon-editor
rotate: false
- xy: 2627, 331
+ xy: 1895, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mechanical-pump-icon-editor
rotate: false
- xy: 3215, 263
+ xy: 3077, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
meltdown-icon-editor
rotate: false
- xy: 1777, 365
+ xy: 2003, 357
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
melter-icon-editor
rotate: false
- xy: 3249, 263
+ xy: 3111, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
memory-bank-icon-editor
rotate: false
- xy: 2693, 331
+ xy: 1961, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
memory-cell-icon-editor
rotate: false
- xy: 3283, 263
+ xy: 3145, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mend-projector-icon-editor
rotate: false
- xy: 2759, 331
+ xy: 1895, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
mender-icon-editor
rotate: false
- xy: 3317, 263
+ xy: 3179, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
message-icon-editor
rotate: false
- xy: 3351, 263
+ xy: 3213, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
micro-processor-icon-editor
rotate: false
- xy: 3385, 263
+ xy: 3247, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
multi-press-icon-editor
rotate: false
- xy: 749, 107
+ xy: 945, 163
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
multiplicative-reconstructor-icon-editor
rotate: false
- xy: 1355, 333
+ xy: 1581, 325
size: 160, 160
orig: 160, 160
offset: 0, 0
index: -1
naval-factory-icon-editor
rotate: false
- xy: 847, 107
+ xy: 1043, 163
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
oil-extractor-icon-editor
rotate: false
- xy: 945, 171
+ xy: 1141, 163
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-dome-icon-editor
rotate: false
- xy: 1043, 171
+ xy: 1239, 163
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
overdrive-projector-icon-editor
rotate: false
- xy: 2825, 331
+ xy: 1961, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
overflow-gate-icon-editor
rotate: false
- xy: 3419, 263
+ xy: 3281, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
parallax-icon-editor
rotate: false
- xy: 2891, 331
+ xy: 2027, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
payload-conveyor-icon-editor
rotate: false
- xy: 945, 73
+ xy: 945, 65
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
payload-router-icon-editor
rotate: false
- xy: 1043, 73
+ xy: 1043, 65
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
pebbles-icon-editor
rotate: false
- xy: 3453, 263
+ xy: 3315, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-icon-editor
rotate: false
- xy: 3487, 263
+ xy: 3349, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-icon-editor
rotate: false
- xy: 3521, 263
+ xy: 3383, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall-icon-editor
rotate: false
- xy: 3555, 263
+ xy: 3417, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall-large-icon-editor
rotate: false
- xy: 2957, 331
+ xy: 1961, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
phase-weaver-icon-editor
rotate: false
- xy: 3023, 331
+ xy: 2027, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
pine-icon-editor
rotate: false
- xy: 1553, 217
+ xy: 2671, 339
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
plastanium-compressor-icon-editor
rotate: false
- xy: 3089, 331
+ xy: 2093, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plastanium-conveyor-icon-editor
rotate: false
- xy: 3589, 263
+ xy: 3451, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-wall-icon-editor
rotate: false
- xy: 3623, 263
+ xy: 3485, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-wall-large-icon-editor
rotate: false
- xy: 3155, 331
+ xy: 2027, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
plated-conduit-icon-editor
rotate: false
- xy: 3657, 263
+ xy: 3519, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pneumatic-drill-icon-editor
rotate: false
- xy: 3221, 331
+ xy: 2093, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
power-node-icon-editor
rotate: false
- xy: 3691, 263
+ xy: 3553, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-node-large-icon-editor
rotate: false
- xy: 3287, 331
+ xy: 2159, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
power-source-icon-editor
rotate: false
- xy: 3725, 263
+ xy: 3587, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-void-icon-editor
rotate: false
- xy: 3759, 263
+ xy: 3621, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-icon-editor
rotate: false
- xy: 3793, 263
+ xy: 3655, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulverizer-icon-editor
rotate: false
- xy: 3827, 263
+ xy: 3689, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pyratite-mixer-icon-editor
rotate: false
- xy: 3353, 331
+ xy: 2093, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
repair-point-icon-editor
rotate: false
- xy: 3861, 263
+ xy: 3723, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
resupply-point-icon-editor
rotate: false
- xy: 3419, 331
+ xy: 2159, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
ripple-icon-editor
rotate: false
- xy: 1161, 203
+ xy: 1141, 65
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
rotary-pump-icon-editor
rotate: false
- xy: 3485, 331
+ xy: 2225, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
router-icon-editor
rotate: false
- xy: 3895, 263
+ xy: 3757, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rtg-generator-icon-editor
rotate: false
- xy: 3551, 331
+ xy: 2159, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
salt-wall-icon-editor
rotate: false
- xy: 3929, 263
+ xy: 3791, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
salvo-icon-editor
rotate: false
- xy: 3617, 331
+ xy: 2225, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
sand-boulder-icon-editor
rotate: false
- xy: 3963, 263
+ xy: 3825, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-wall-icon-editor
rotate: false
- xy: 3997, 263
+ xy: 3859, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sand-water-icon-editor
rotate: false
- xy: 4031, 263
+ xy: 3893, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scatter-icon-editor
rotate: false
- xy: 3683, 331
+ xy: 2291, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
scorch-icon-editor
rotate: false
- xy: 2263, 229
+ xy: 3927, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall-gigantic-icon-editor
rotate: false
- xy: 1907, 365
+ xy: 2133, 357
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
scrap-wall-huge-icon-editor
rotate: false
- xy: 1259, 203
+ xy: 1239, 65
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
scrap-wall-icon-editor
rotate: false
- xy: 2297, 229
+ xy: 3961, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall-large-icon-editor
rotate: false
- xy: 3749, 331
+ xy: 2225, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
segment-icon-editor
rotate: false
- xy: 3815, 331
+ xy: 2291, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
separator-icon-editor
rotate: false
- xy: 3881, 331
+ xy: 2357, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
shale-boulder-icon-editor
rotate: false
- xy: 2331, 229
+ xy: 3995, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shale-wall-icon-editor
rotate: false
- xy: 2365, 229
+ xy: 4029, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shock-mine-icon-editor
rotate: false
- xy: 2399, 229
+ xy: 4063, 287
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shrubs-icon-editor
rotate: false
- xy: 2433, 229
+ xy: 1631, 93
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
silicon-crucible-icon-editor
rotate: false
- xy: 1141, 105
+ xy: 1337, 163
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
silicon-smelter-icon-editor
rotate: false
- xy: 3947, 331
+ xy: 2291, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
snow-boulder-icon-editor
rotate: false
- xy: 1603, 217
+ xy: 2671, 289
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
snow-icon-editor
rotate: false
- xy: 2467, 229
+ xy: 1665, 93
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
snow-pine-icon-editor
rotate: false
- xy: 1653, 217
+ xy: 2721, 339
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
snow-wall-icon-editor
rotate: false
- xy: 2501, 229
+ xy: 1699, 93
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel-icon-editor
rotate: false
- xy: 2535, 229
+ xy: 2605, 221
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel-large-icon-editor
rotate: false
- xy: 1239, 105
+ xy: 1337, 65
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
sorter-icon-editor
rotate: false
- xy: 2569, 229
+ xy: 2639, 221
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spawn-icon-editor
rotate: false
- xy: 2603, 229
+ xy: 2673, 221
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spectre-icon-editor
rotate: false
- xy: 2037, 365
+ xy: 2263, 357
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
spore-cluster-icon-editor
rotate: false
- xy: 163, 1
+ xy: 2555, 165
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
spore-pine-icon-editor
rotate: false
- xy: 1703, 217
+ xy: 2721, 289
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
spore-press-icon-editor
rotate: false
- xy: 4013, 331
+ xy: 2357, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
spore-wall-icon-editor
rotate: false
- xy: 2637, 229
+ xy: 2707, 221
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
steam-generator-icon-editor
rotate: false
- xy: 553, 9
+ xy: 2423, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
stone-wall-icon-editor
rotate: false
- xy: 2671, 229
+ xy: 2757, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-tower-icon-editor
rotate: false
- xy: 651, 41
+ xy: 2357, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
surge-wall-icon-editor
rotate: false
- xy: 2705, 229
+ xy: 2791, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-wall-large-icon-editor
rotate: false
- xy: 717, 41
+ xy: 2423, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
swarmer-icon-editor
rotate: false
- xy: 783, 41
+ xy: 2423, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
switch-icon-editor
rotate: false
- xy: 2739, 229
+ xy: 2825, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tendrils-icon-editor
rotate: false
- xy: 2773, 229
+ xy: 2859, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
tetrative-reconstructor-icon-editor
rotate: false
- xy: 645, 205
+ xy: 645, 197
size: 288, 288
orig: 288, 288
offset: 0, 0
index: -1
thermal-generator-icon-editor
rotate: false
- xy: 849, 41
+ xy: 2489, 291
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thermal-pump-icon-editor
rotate: false
- xy: 1357, 235
+ xy: 1435, 195
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-reactor-icon-editor
rotate: false
- xy: 1455, 235
+ xy: 1435, 97
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
thorium-wall-icon-editor
rotate: false
- xy: 2807, 229
+ xy: 2893, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
thorium-wall-large-icon-editor
rotate: false
- xy: 1141, 39
+ xy: 2489, 225
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
thruster-icon-editor
rotate: false
- xy: 2167, 365
+ xy: 2393, 357
size: 128, 128
orig: 128, 128
offset: 0, 0
index: -1
titanium-conveyor-icon-editor
rotate: false
- xy: 2841, 229
+ xy: 2927, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall-icon-editor
rotate: false
- xy: 2875, 229
+ xy: 2961, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall-large-icon-editor
rotate: false
- xy: 1207, 39
+ xy: 2489, 159
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
tsunami-icon-editor
rotate: false
- xy: 1553, 267
+ xy: 1533, 195
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
underflow-gate-icon-editor
rotate: false
- xy: 2909, 229
+ xy: 2995, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unloader-icon-editor
rotate: false
- xy: 2943, 229
+ xy: 3029, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
vault-icon-editor
rotate: false
- xy: 1651, 267
+ xy: 1533, 97
size: 96, 96
orig: 96, 96
offset: 0, 0
index: -1
water-extractor-icon-editor
rotate: false
- xy: 1273, 39
+ xy: 2555, 323
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
wave-icon-editor
rotate: false
- xy: 1357, 169
+ xy: 2555, 257
size: 64, 64
orig: 64, 64
offset: 0, 0
index: -1
white-tree-dead-icon-editor
rotate: false
- xy: 1, 173
+ xy: 1, 165
size: 320, 320
orig: 320, 320
offset: 0, 0
index: -1
white-tree-icon-editor
rotate: false
- xy: 323, 173
+ xy: 323, 165
size: 320, 320
orig: 320, 320
offset: 0, 0
@@ -13442,7 +14912,7 @@ alpha-bg
index: -1
bar
rotate: false
- xy: 2343, 150
+ xy: 2975, 91
size: 27, 36
split: 9, 9, 9, 9
orig: 27, 36
@@ -13450,7 +14920,7 @@ bar
index: -1
bar-top
rotate: false
- xy: 3550, 139
+ xy: 3005, 167
size: 27, 36
split: 9, 10, 9, 10
orig: 27, 36
@@ -13458,28 +14928,28 @@ bar-top
index: -1
block-additive-reconstructor-large
rotate: false
- xy: 1004, 371
+ xy: 1059, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-additive-reconstructor-medium
rotate: false
- xy: 3587, 253
+ xy: 3125, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-additive-reconstructor-small
rotate: false
- xy: 1605, 219
+ xy: 1101, 162
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-additive-reconstructor-tiny
rotate: false
- xy: 881, 1
+ xy: 3687, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13493,28 +14963,28 @@ block-additive-reconstructor-xlarge
index: -1
block-air-factory-large
rotate: false
- xy: 1046, 371
+ xy: 1101, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-air-factory-medium
rotate: false
- xy: 3621, 253
+ xy: 3159, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-air-factory-small
rotate: false
- xy: 1731, 96
+ xy: 2975, 65
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-air-factory-tiny
rotate: false
- xy: 309, 160
+ xy: 3705, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13528,28 +14998,28 @@ block-air-factory-xlarge
index: -1
block-alloy-smelter-large
rotate: false
- xy: 1004, 329
+ xy: 1143, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-alloy-smelter-medium
rotate: false
- xy: 3655, 253
+ xy: 3193, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-alloy-smelter-small
rotate: false
- xy: 1731, 70
+ xy: 1101, 136
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-alloy-smelter-tiny
rotate: false
- xy: 2169, 29
+ xy: 3789, 395
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13563,28 +15033,28 @@ block-alloy-smelter-xlarge
index: -1
block-arc-large
rotate: false
- xy: 1088, 371
+ xy: 1185, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-arc-medium
rotate: false
- xy: 901, 155
+ xy: 3227, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-arc-small
rotate: false
- xy: 1731, 44
+ xy: 1127, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-arc-tiny
rotate: false
- xy: 2187, 29
+ xy: 3862, 357
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13598,28 +15068,28 @@ block-arc-xlarge
index: -1
block-armored-conveyor-large
rotate: false
- xy: 1046, 329
+ xy: 1227, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-armored-conveyor-medium
rotate: false
- xy: 935, 153
+ xy: 3261, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-armored-conveyor-small
rotate: false
- xy: 3810, 245
+ xy: 1101, 110
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-armored-conveyor-tiny
rotate: false
- xy: 2205, 29
+ xy: 3935, 319
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -13631,4314 +15101,4384 @@ block-armored-conveyor-xlarge
orig: 48, 48
offset: 0, 0
index: -1
-block-basalt-large
+block-basalt-boulder-large
rotate: false
- xy: 1130, 371
+ xy: 1269, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-basalt-medium
+block-basalt-boulder-medium
rotate: false
- xy: 969, 153
+ xy: 3295, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-basalt-small
+block-basalt-boulder-small
rotate: false
- xy: 2372, 162
+ xy: 1127, 117
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-basalt-tiny
+block-basalt-boulder-tiny
rotate: false
- xy: 2223, 29
+ xy: 309, 160
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-basalt-xlarge
+block-basalt-boulder-xlarge
rotate: false
xy: 259, 257
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-battery-large
+block-basalt-large
rotate: false
- xy: 1088, 329
+ xy: 1311, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-battery-large-large
+block-basalt-medium
rotate: false
- xy: 1172, 371
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-battery-large-medium
- rotate: false
- xy: 2639, 219
+ xy: 3329, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-battery-large-small
+block-basalt-small
rotate: false
- xy: 2372, 136
+ xy: 1153, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-battery-large-tiny
+block-basalt-tiny
rotate: false
- xy: 2241, 29
+ xy: 3789, 377
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-battery-large-xlarge
+block-basalt-xlarge
rotate: false
xy: 181, 46
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-battery-medium
+block-battery-large
rotate: false
- xy: 2673, 211
+ xy: 1353, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-battery-large-large
+ rotate: false
+ xy: 1395, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-battery-large-medium
+ rotate: false
+ xy: 3363, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-battery-small
+block-battery-large-small
rotate: false
- xy: 2398, 151
+ xy: 1101, 84
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-battery-tiny
+block-battery-large-tiny
rotate: false
- xy: 2259, 29
+ xy: 3935, 301
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-battery-xlarge
+block-battery-large-xlarge
rotate: false
xy: 259, 207
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-blast-drill-large
+block-battery-medium
rotate: false
- xy: 1130, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-blast-drill-medium
- rotate: false
- xy: 2707, 211
+ xy: 3397, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-blast-drill-small
+block-battery-small
rotate: false
- xy: 2424, 151
+ xy: 1153, 117
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-blast-drill-tiny
+block-battery-tiny
rotate: false
- xy: 2277, 29
+ xy: 3935, 283
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-blast-drill-xlarge
+block-battery-xlarge
rotate: false
xy: 259, 157
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-blast-mixer-large
+block-blast-drill-large
rotate: false
- xy: 1214, 371
+ xy: 1437, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-blast-mixer-medium
+block-blast-drill-medium
rotate: false
- xy: 2741, 224
+ xy: 3431, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-blast-mixer-small
+block-blast-drill-small
rotate: false
- xy: 2398, 125
+ xy: 1127, 91
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-blast-mixer-tiny
+block-blast-drill-tiny
rotate: false
- xy: 257, 2
+ xy: 3935, 265
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-blast-mixer-xlarge
+block-blast-drill-xlarge
rotate: false
xy: 857, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-block-forge-large
+block-blast-mixer-large
rotate: false
- xy: 1172, 329
+ xy: 1479, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-block-forge-medium
+block-blast-mixer-medium
rotate: false
- xy: 2775, 224
+ xy: 3465, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-block-forge-small
+block-blast-mixer-small
rotate: false
- xy: 2424, 125
+ xy: 1179, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-block-forge-tiny
+block-blast-mixer-tiny
rotate: false
- xy: 2384, 81
+ xy: 3935, 247
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-block-forge-xlarge
+block-blast-mixer-xlarge
rotate: false
xy: 907, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-block-loader-large
+block-block-forge-large
rotate: false
- xy: 1256, 371
+ xy: 1521, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-block-loader-medium
+block-block-forge-medium
rotate: false
- xy: 2809, 224
+ xy: 3499, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-block-loader-small
+block-block-forge-small
rotate: false
- xy: 3825, 219
+ xy: 1101, 58
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-block-loader-tiny
+block-block-forge-tiny
rotate: false
- xy: 2402, 81
+ xy: 3935, 229
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-block-loader-xlarge
+block-block-forge-xlarge
rotate: false
xy: 957, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-block-unloader-large
+block-block-loader-large
rotate: false
- xy: 1214, 329
+ xy: 1563, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-block-unloader-medium
+block-block-loader-medium
rotate: false
- xy: 2843, 224
+ xy: 3533, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-block-unloader-small
+block-block-loader-small
rotate: false
- xy: 3836, 245
+ xy: 1179, 117
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-block-unloader-tiny
+block-block-loader-tiny
rotate: false
- xy: 2420, 81
+ xy: 3935, 211
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-block-unloader-xlarge
+block-block-loader-xlarge
rotate: false
xy: 1007, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-boulder-large
+block-block-unloader-large
rotate: false
- xy: 1298, 371
+ xy: 1605, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-boulder-medium
+block-block-unloader-medium
rotate: false
- xy: 2877, 224
+ xy: 3567, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-boulder-small
+block-block-unloader-small
rotate: false
- xy: 3825, 193
+ xy: 1153, 91
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-boulder-tiny
+block-block-unloader-tiny
rotate: false
- xy: 2438, 81
+ xy: 3935, 193
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-boulder-xlarge
+block-block-unloader-xlarge
rotate: false
xy: 1057, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-bridge-conduit-large
+block-boulder-large
rotate: false
- xy: 1256, 329
+ xy: 1647, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-bridge-conduit-medium
+block-boulder-medium
rotate: false
- xy: 2911, 224
+ xy: 3601, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-bridge-conduit-small
+block-boulder-small
rotate: false
- xy: 3824, 167
+ xy: 1127, 65
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-bridge-conduit-tiny
+block-boulder-tiny
rotate: false
- xy: 2381, 63
+ xy: 1863, 165
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-bridge-conduit-xlarge
+block-boulder-xlarge
rotate: false
xy: 1107, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-bridge-conveyor-large
+block-bridge-conduit-large
rotate: false
- xy: 1340, 371
+ xy: 1689, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-bridge-conveyor-medium
+block-bridge-conduit-medium
rotate: false
- xy: 2945, 224
+ xy: 3635, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-bridge-conveyor-small
+block-bridge-conduit-small
rotate: false
- xy: 3851, 219
+ xy: 1101, 32
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-bridge-conveyor-tiny
+block-bridge-conduit-tiny
rotate: false
- xy: 2381, 45
+ xy: 1863, 147
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-bridge-conveyor-xlarge
+block-bridge-conduit-xlarge
rotate: false
xy: 1157, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-char-large
+block-bridge-conveyor-large
rotate: false
- xy: 1298, 329
+ xy: 1731, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-char-medium
+block-bridge-conveyor-medium
rotate: false
- xy: 2979, 224
+ xy: 3669, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-char-small
+block-bridge-conveyor-small
rotate: false
- xy: 3851, 193
+ xy: 1179, 91
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-char-tiny
+block-bridge-conveyor-tiny
rotate: false
- xy: 2399, 63
+ xy: 1863, 129
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-char-xlarge
+block-bridge-conveyor-xlarge
rotate: false
xy: 1207, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cliff-large
+block-char-large
rotate: false
- xy: 1382, 371
+ xy: 1773, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cliff-medium
+block-char-medium
rotate: false
- xy: 3013, 224
+ xy: 3703, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cliff-small
+block-char-small
rotate: false
- xy: 3850, 167
+ xy: 1153, 65
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cliff-tiny
+block-char-tiny
rotate: false
- xy: 2381, 27
+ xy: 3953, 312
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cliff-xlarge
+block-char-xlarge
rotate: false
xy: 1257, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-coal-centrifuge-large
+block-cliff-large
rotate: false
- xy: 1340, 329
+ xy: 1815, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-coal-centrifuge-medium
+block-cliff-medium
rotate: false
- xy: 3047, 224
+ xy: 3737, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-coal-centrifuge-small
+block-cliff-small
rotate: false
- xy: 3862, 245
+ xy: 1127, 39
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-coal-centrifuge-tiny
+block-cliff-tiny
rotate: false
- xy: 2399, 45
+ xy: 3971, 312
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-coal-centrifuge-xlarge
+block-cliff-xlarge
rotate: false
xy: 1307, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-combustion-generator-large
+block-coal-centrifuge-large
rotate: false
- xy: 1424, 371
+ xy: 1857, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-combustion-generator-medium
+block-coal-centrifuge-medium
rotate: false
- xy: 3081, 224
+ xy: 1463, 157
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-combustion-generator-small
+block-coal-centrifuge-small
rotate: false
- xy: 3877, 219
+ xy: 1179, 65
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-combustion-generator-tiny
+block-coal-centrifuge-tiny
rotate: false
- xy: 2417, 63
+ xy: 3953, 294
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-combustion-generator-xlarge
+block-coal-centrifuge-xlarge
rotate: false
xy: 1357, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-command-center-large
+block-combustion-generator-large
rotate: false
- xy: 1382, 329
+ xy: 1899, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-command-center-medium
+block-combustion-generator-medium
rotate: false
- xy: 3115, 224
+ xy: 2101, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-command-center-small
+block-combustion-generator-small
rotate: false
- xy: 3877, 193
+ xy: 1153, 39
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-command-center-tiny
+block-combustion-generator-tiny
rotate: false
- xy: 2381, 9
+ xy: 3989, 312
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-command-center-xlarge
+block-combustion-generator-xlarge
rotate: false
xy: 1407, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-conduit-large
+block-command-center-large
rotate: false
- xy: 1466, 371
+ xy: 1941, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-conduit-medium
+block-command-center-medium
rotate: false
- xy: 3149, 224
+ xy: 2135, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-conduit-small
+block-command-center-small
rotate: false
- xy: 3876, 167
+ xy: 1179, 39
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-conduit-tiny
+block-command-center-tiny
rotate: false
- xy: 2399, 27
+ xy: 3953, 276
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-conduit-xlarge
+block-command-center-xlarge
rotate: false
xy: 1457, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-container-large
+block-conduit-large
rotate: false
- xy: 1424, 329
+ xy: 1983, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-container-medium
+block-conduit-medium
rotate: false
- xy: 3183, 224
+ xy: 2169, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-container-small
+block-conduit-small
rotate: false
- xy: 3888, 245
+ xy: 1205, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-container-tiny
+block-conduit-tiny
rotate: false
- xy: 2417, 45
+ xy: 3971, 294
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-container-xlarge
+block-conduit-xlarge
rotate: false
xy: 1507, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-conveyor-large
+block-container-large
rotate: false
- xy: 1508, 371
+ xy: 2025, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-conveyor-medium
+block-container-medium
rotate: false
- xy: 3217, 224
+ xy: 2203, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-conveyor-small
+block-container-small
rotate: false
- xy: 3903, 219
+ xy: 1205, 117
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-conveyor-tiny
+block-container-tiny
rotate: false
- xy: 2435, 63
+ xy: 3953, 258
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-conveyor-xlarge
+block-container-xlarge
rotate: false
xy: 1557, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-copper-wall-large
+block-conveyor-large
rotate: false
- xy: 1466, 329
+ xy: 2067, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-copper-wall-large-large
+block-conveyor-medium
rotate: false
- xy: 1550, 371
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-copper-wall-large-medium
- rotate: false
- xy: 3251, 224
+ xy: 2237, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-copper-wall-large-small
+block-conveyor-small
rotate: false
- xy: 3903, 193
+ xy: 1205, 91
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-copper-wall-large-tiny
+block-conveyor-tiny
rotate: false
- xy: 2399, 9
+ xy: 3971, 276
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-copper-wall-large-xlarge
+block-conveyor-xlarge
rotate: false
xy: 1607, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-copper-wall-medium
+block-copper-wall-large
rotate: false
- xy: 3285, 224
+ xy: 2109, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-copper-wall-large-large
+ rotate: false
+ xy: 2151, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-copper-wall-large-medium
+ rotate: false
+ xy: 2271, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-copper-wall-small
+block-copper-wall-large-small
rotate: false
- xy: 3902, 167
+ xy: 1205, 65
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-copper-wall-tiny
+block-copper-wall-large-tiny
rotate: false
- xy: 2417, 27
+ xy: 3989, 294
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-copper-wall-xlarge
+block-copper-wall-large-xlarge
rotate: false
xy: 1657, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-core-foundation-large
+block-copper-wall-medium
rotate: false
- xy: 1508, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-core-foundation-medium
- rotate: false
- xy: 3319, 224
+ xy: 2305, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-core-foundation-small
+block-copper-wall-small
rotate: false
- xy: 3914, 245
+ xy: 1205, 39
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-core-foundation-tiny
+block-copper-wall-tiny
rotate: false
- xy: 2435, 45
+ xy: 3953, 240
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-core-foundation-xlarge
+block-copper-wall-xlarge
rotate: false
xy: 1707, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-core-nucleus-large
+block-core-foundation-large
rotate: false
- xy: 1592, 371
+ xy: 2193, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-core-nucleus-medium
+block-core-foundation-medium
rotate: false
- xy: 3353, 224
+ xy: 2339, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-core-nucleus-small
+block-core-foundation-small
rotate: false
- xy: 3929, 219
+ xy: 3784, 287
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-core-nucleus-tiny
+block-core-foundation-tiny
rotate: false
- xy: 2417, 9
+ xy: 3971, 258
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-core-nucleus-xlarge
+block-core-foundation-xlarge
rotate: false
xy: 1757, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-core-shard-large
+block-core-nucleus-large
rotate: false
- xy: 1550, 329
+ xy: 2235, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-core-shard-medium
+block-core-nucleus-medium
rotate: false
- xy: 3387, 224
+ xy: 2373, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-core-shard-small
+block-core-nucleus-small
rotate: false
- xy: 3929, 193
+ xy: 1101, 6
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-core-shard-tiny
+block-core-nucleus-tiny
rotate: false
- xy: 2435, 27
+ xy: 3989, 276
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-core-shard-xlarge
+block-core-nucleus-xlarge
rotate: false
xy: 1807, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-craters-large
+block-core-shard-large
rotate: false
- xy: 1634, 371
+ xy: 2277, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-craters-medium
+block-core-shard-medium
rotate: false
- xy: 1799, 211
+ xy: 2407, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-craters-small
+block-core-shard-small
rotate: false
- xy: 3928, 167
+ xy: 1127, 13
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-craters-tiny
+block-core-shard-tiny
rotate: false
- xy: 2435, 9
+ xy: 3953, 222
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-craters-xlarge
+block-core-shard-xlarge
rotate: false
xy: 1857, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cryofluid-mixer-large
+block-craters-large
rotate: false
- xy: 1592, 329
+ xy: 2319, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cryofluid-mixer-medium
+block-craters-medium
rotate: false
- xy: 1833, 211
+ xy: 2441, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cryofluid-mixer-small
+block-craters-small
rotate: false
- xy: 3940, 245
+ xy: 1153, 13
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cryofluid-mixer-tiny
+block-craters-tiny
rotate: false
- xy: 2462, 107
+ xy: 3971, 240
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cryofluid-mixer-xlarge
+block-craters-xlarge
rotate: false
xy: 1907, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cultivator-large
+block-cryofluid-mixer-large
rotate: false
- xy: 1676, 371
+ xy: 2361, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cultivator-medium
+block-cryofluid-mixer-medium
rotate: false
- xy: 1867, 211
+ xy: 2475, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cultivator-small
+block-cryofluid-mixer-small
rotate: false
- xy: 3955, 219
+ xy: 1179, 13
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cultivator-tiny
+block-cryofluid-mixer-tiny
rotate: false
- xy: 1809, 11
+ xy: 3989, 258
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cultivator-xlarge
+block-cryofluid-mixer-xlarge
rotate: false
xy: 1957, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-cyclone-large
+block-cultivator-large
rotate: false
- xy: 1634, 329
+ xy: 2403, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-cyclone-medium
+block-cultivator-medium
rotate: false
- xy: 1901, 211
+ xy: 2509, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-cyclone-small
+block-cultivator-small
rotate: false
- xy: 3955, 193
+ xy: 1205, 13
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-cyclone-tiny
+block-cultivator-tiny
rotate: false
- xy: 1827, 11
+ xy: 3953, 204
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-cyclone-xlarge
+block-cultivator-xlarge
rotate: false
xy: 2007, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dacite-boulder-large
+block-cyclone-large
rotate: false
- xy: 1718, 371
+ xy: 2445, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dacite-boulder-medium
+block-cyclone-medium
rotate: false
- xy: 1935, 211
+ xy: 2543, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dacite-boulder-small
+block-cyclone-small
rotate: false
- xy: 3954, 167
+ xy: 3736, 160
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dacite-boulder-tiny
+block-cyclone-tiny
rotate: false
- xy: 1845, 11
+ xy: 3971, 222
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dacite-boulder-xlarge
+block-cyclone-xlarge
rotate: false
xy: 2057, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dacite-large
+block-dacite-boulder-large
rotate: false
- xy: 1676, 329
+ xy: 2487, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dacite-medium
+block-dacite-boulder-medium
rotate: false
- xy: 1969, 219
+ xy: 2577, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dacite-small
+block-dacite-boulder-small
rotate: false
- xy: 3966, 245
+ xy: 3063, 177
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dacite-tiny
+block-dacite-boulder-tiny
rotate: false
- xy: 1863, 11
+ xy: 3989, 240
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dacite-wall-large
- rotate: false
- xy: 1760, 371
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dacite-wall-medium
- rotate: false
- xy: 2003, 211
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-dacite-wall-small
- rotate: false
- xy: 3981, 219
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-dacite-wall-tiny
- rotate: false
- xy: 1881, 11
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-dacite-wall-xlarge
+block-dacite-boulder-xlarge
rotate: false
xy: 2107, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dacite-xlarge
+block-dacite-large
+ rotate: false
+ xy: 2529, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dacite-medium
+ rotate: false
+ xy: 2611, 224
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dacite-small
+ rotate: false
+ xy: 3063, 151
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dacite-tiny
+ rotate: false
+ xy: 3971, 204
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-dacite-wall-large
+ rotate: false
+ xy: 2571, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dacite-wall-medium
+ rotate: false
+ xy: 2645, 224
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dacite-wall-small
+ rotate: false
+ xy: 3089, 185
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dacite-wall-tiny
+ rotate: false
+ xy: 3989, 222
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-dacite-wall-xlarge
rotate: false
xy: 2157, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-metal-large
- rotate: false
- xy: 1718, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dark-metal-medium
- rotate: false
- xy: 2037, 211
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-dark-metal-small
- rotate: false
- xy: 3981, 193
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-dark-metal-tiny
- rotate: false
- xy: 1899, 11
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-dark-metal-xlarge
+block-dacite-xlarge
rotate: false
xy: 2207, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-1-large
+block-dark-metal-large
rotate: false
- xy: 1802, 371
+ xy: 2613, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-1-medium
+block-dark-metal-medium
rotate: false
- xy: 2071, 211
+ xy: 2679, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-1-small
+block-dark-metal-small
rotate: false
- xy: 3980, 167
+ xy: 3089, 159
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-1-tiny
+block-dark-metal-tiny
rotate: false
- xy: 1917, 11
+ xy: 3989, 204
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-1-xlarge
+block-dark-metal-xlarge
rotate: false
xy: 2257, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-2-large
+block-dark-panel-1-large
rotate: false
- xy: 1760, 329
+ xy: 2655, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-2-medium
+block-dark-panel-1-medium
rotate: false
- xy: 2105, 211
+ xy: 2713, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-2-small
+block-dark-panel-1-small
rotate: false
- xy: 3992, 245
+ xy: 2975, 39
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-2-tiny
+block-dark-panel-1-tiny
rotate: false
- xy: 1935, 11
+ xy: 4007, 295
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-2-xlarge
+block-dark-panel-1-xlarge
rotate: false
xy: 2307, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-3-large
+block-dark-panel-2-large
rotate: false
- xy: 1844, 371
+ xy: 2697, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-3-medium
+block-dark-panel-2-medium
rotate: false
- xy: 2139, 211
+ xy: 2747, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-3-small
+block-dark-panel-2-small
rotate: false
- xy: 4018, 245
+ xy: 3063, 125
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-3-tiny
+block-dark-panel-2-tiny
rotate: false
- xy: 1953, 11
+ xy: 4025, 295
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-3-xlarge
+block-dark-panel-2-xlarge
rotate: false
xy: 2357, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-4-large
+block-dark-panel-3-large
rotate: false
- xy: 1802, 329
+ xy: 2739, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-4-medium
+block-dark-panel-3-medium
rotate: false
- xy: 2173, 211
+ xy: 2781, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-4-small
+block-dark-panel-3-small
rotate: false
- xy: 4007, 219
+ xy: 3089, 133
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-4-tiny
+block-dark-panel-3-tiny
rotate: false
- xy: 1971, 11
+ xy: 4007, 277
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-4-xlarge
+block-dark-panel-3-xlarge
rotate: false
xy: 2407, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-5-large
+block-dark-panel-4-large
rotate: false
- xy: 1886, 371
+ xy: 2781, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-5-medium
+block-dark-panel-4-medium
rotate: false
- xy: 2207, 211
+ xy: 2815, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-5-small
+block-dark-panel-4-small
rotate: false
- xy: 4007, 193
+ xy: 3115, 185
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-5-tiny
+block-dark-panel-4-tiny
rotate: false
- xy: 2169, 11
+ xy: 4007, 259
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-5-xlarge
+block-dark-panel-4-xlarge
rotate: false
xy: 2457, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dark-panel-6-large
+block-dark-panel-5-large
rotate: false
- xy: 1844, 329
+ xy: 2823, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dark-panel-6-medium
+block-dark-panel-5-medium
rotate: false
- xy: 2241, 211
+ xy: 2849, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dark-panel-6-small
+block-dark-panel-5-small
rotate: false
- xy: 4006, 167
+ xy: 3115, 159
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dark-panel-6-tiny
+block-dark-panel-5-tiny
rotate: false
- xy: 2187, 11
+ xy: 4025, 277
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dark-panel-6-xlarge
+block-dark-panel-5-xlarge
rotate: false
xy: 2507, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-darksand-large
+block-dark-panel-6-large
rotate: false
- xy: 1928, 371
+ xy: 2865, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-darksand-medium
+block-dark-panel-6-medium
rotate: false
- xy: 2275, 211
+ xy: 2883, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-darksand-small
+block-dark-panel-6-small
rotate: false
- xy: 4033, 219
+ xy: 3115, 133
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-darksand-tainted-water-large
+block-dark-panel-6-tiny
rotate: false
- xy: 1886, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-darksand-tainted-water-medium
- rotate: false
- xy: 2309, 211
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-darksand-tainted-water-small
- rotate: false
- xy: 4033, 193
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-darksand-tainted-water-tiny
- rotate: false
- xy: 2205, 11
+ xy: 4007, 241
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-darksand-tainted-water-xlarge
+block-dark-panel-6-xlarge
rotate: false
xy: 2557, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-darksand-tiny
+block-darksand-large
rotate: false
- xy: 2223, 11
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-darksand-water-large
- rotate: false
- xy: 1970, 371
+ xy: 2907, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-darksand-water-medium
+block-darksand-medium
rotate: false
- xy: 1969, 185
+ xy: 2917, 224
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-darksand-water-small
+block-darksand-small
rotate: false
- xy: 4032, 167
+ xy: 3141, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-darksand-water-tiny
+block-darksand-tainted-water-large
rotate: false
- xy: 2241, 11
+ xy: 2949, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-darksand-tainted-water-medium
+ rotate: false
+ xy: 1127, 169
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-darksand-tainted-water-small
+ rotate: false
+ xy: 3167, 193
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-darksand-tainted-water-tiny
+ rotate: false
+ xy: 4025, 259
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-darksand-water-xlarge
+block-darksand-tainted-water-xlarge
rotate: false
xy: 2607, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-darksand-xlarge
+block-darksand-tiny
+ rotate: false
+ xy: 4007, 223
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-darksand-water-large
+ rotate: false
+ xy: 2991, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-darksand-water-medium
+ rotate: false
+ xy: 1161, 169
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-darksand-water-small
+ rotate: false
+ xy: 3141, 167
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-darksand-water-tiny
+ rotate: false
+ xy: 4025, 241
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-darksand-water-xlarge
rotate: false
xy: 2657, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-deepwater-large
- rotate: false
- xy: 1928, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-deepwater-medium
- rotate: false
- xy: 2003, 177
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-deepwater-small
- rotate: false
- xy: 4059, 226
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-deepwater-tiny
- rotate: false
- xy: 2259, 11
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-deepwater-xlarge
+block-darksand-xlarge
rotate: false
xy: 2707, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-differential-generator-large
+block-deepwater-large
rotate: false
- xy: 2012, 371
+ xy: 3033, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-differential-generator-medium
+block-deepwater-medium
rotate: false
- xy: 2037, 177
+ xy: 1195, 169
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-differential-generator-small
+block-deepwater-small
rotate: false
- xy: 4059, 200
+ xy: 3193, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-differential-generator-tiny
+block-deepwater-tiny
rotate: false
- xy: 2277, 11
+ xy: 4007, 205
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-differential-generator-xlarge
+block-deepwater-xlarge
rotate: false
xy: 2757, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-diode-large
+block-differential-generator-large
rotate: false
- xy: 1970, 329
+ xy: 3075, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-diode-medium
+block-differential-generator-medium
rotate: false
- xy: 2071, 177
+ xy: 3771, 253
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-diode-small
+block-differential-generator-small
rotate: false
- xy: 4059, 174
+ xy: 3141, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-diode-tiny
+block-differential-generator-tiny
rotate: false
- xy: 2295, 18
+ xy: 4025, 223
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-diode-xlarge
+block-differential-generator-xlarge
rotate: false
xy: 2807, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dirt-large
+block-diode-large
rotate: false
- xy: 2054, 371
+ xy: 3117, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-dirt-medium
+block-diode-medium
rotate: false
- xy: 2105, 177
+ xy: 2203, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dirt-small
+block-diode-small
rotate: false
- xy: 4058, 148
+ xy: 3167, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dirt-tiny
+block-diode-tiny
rotate: false
- xy: 2462, 89
+ xy: 4025, 205
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dirt-wall-large
- rotate: false
- xy: 2012, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dirt-wall-medium
- rotate: false
- xy: 2139, 177
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-dirt-wall-small
- rotate: false
- xy: 2445, 177
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-dirt-wall-tiny
- rotate: false
- xy: 2069, 8
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-dirt-wall-xlarge
+block-diode-xlarge
rotate: false
xy: 2857, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dirt-xlarge
+block-dirt-large
+ rotate: false
+ xy: 3159, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dirt-medium
+ rotate: false
+ xy: 2237, 190
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dirt-small
+ rotate: false
+ xy: 3219, 193
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dirt-tiny
+ rotate: false
+ xy: 1881, 159
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-dirt-wall-large
+ rotate: false
+ xy: 3201, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-dirt-wall-medium
+ rotate: false
+ xy: 2271, 190
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-dirt-wall-small
+ rotate: false
+ xy: 3167, 141
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-dirt-wall-tiny
+ rotate: false
+ xy: 1881, 141
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-dirt-wall-xlarge
rotate: false
xy: 2907, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-disassembler-large
- rotate: false
- xy: 2096, 371
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-disassembler-medium
- rotate: false
- xy: 2173, 177
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-disassembler-small
- rotate: false
- xy: 2450, 151
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-disassembler-tiny
- rotate: false
- xy: 2087, 8
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-disassembler-xlarge
+block-dirt-xlarge
rotate: false
xy: 2957, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-distributor-large
+block-disassembler-large
rotate: false
- xy: 2054, 329
+ xy: 3243, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-distributor-medium
+block-disassembler-medium
rotate: false
- xy: 2207, 177
+ xy: 2305, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-distributor-small
+block-disassembler-small
rotate: false
- xy: 2450, 125
+ xy: 3193, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-distributor-tiny
+block-disassembler-tiny
rotate: false
- xy: 2453, 63
+ xy: 1899, 159
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-distributor-xlarge
+block-disassembler-xlarge
rotate: false
xy: 3007, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-door-large
+block-distributor-large
rotate: false
- xy: 2138, 371
+ xy: 3285, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-door-large-large
+block-distributor-medium
rotate: false
- xy: 2096, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-door-large-medium
- rotate: false
- xy: 2241, 177
+ xy: 2339, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-door-large-small
+block-distributor-small
rotate: false
- xy: 2471, 193
+ xy: 3245, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-door-large-tiny
+block-distributor-tiny
rotate: false
- xy: 2453, 45
+ xy: 1899, 141
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-door-large-xlarge
+block-distributor-xlarge
rotate: false
xy: 3057, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-door-medium
+block-door-large
rotate: false
- xy: 2275, 177
+ xy: 3327, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-door-large-large
+ rotate: false
+ xy: 3369, 371
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-door-large-medium
+ rotate: false
+ xy: 2373, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-door-small
+block-door-large-small
rotate: false
- xy: 2497, 185
+ xy: 3193, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-door-tiny
+block-door-large-tiny
rotate: false
- xy: 2453, 27
+ xy: 1917, 159
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-door-xlarge
+block-door-large-xlarge
rotate: false
xy: 3107, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-dune-wall-large
+block-door-medium
rotate: false
- xy: 2180, 371
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-dune-wall-medium
- rotate: false
- xy: 2309, 177
+ xy: 2407, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-dune-wall-small
+block-door-small
rotate: false
- xy: 2523, 185
+ xy: 3219, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-dune-wall-tiny
+block-door-tiny
rotate: false
- xy: 2453, 9
+ xy: 1917, 141
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-dune-wall-xlarge
+block-door-xlarge
rotate: false
xy: 3157, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-duo-large
+block-dune-wall-large
rotate: false
- xy: 2138, 329
+ xy: 3411, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-duo-medium
+block-dune-wall-medium
rotate: false
- xy: 881, 121
+ xy: 2441, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-duo-small
+block-dune-wall-small
rotate: false
- xy: 2549, 194
+ xy: 3219, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-duo-tiny
+block-dune-wall-tiny
rotate: false
- xy: 4047, 123
+ xy: 1935, 159
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-duo-xlarge
+block-dune-wall-xlarge
rotate: false
xy: 3207, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-exponential-reconstructor-large
+block-duo-large
rotate: false
- xy: 2222, 371
+ xy: 3453, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-exponential-reconstructor-medium
+block-duo-medium
rotate: false
- xy: 881, 87
+ xy: 2475, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-exponential-reconstructor-small
+block-duo-small
rotate: false
- xy: 2549, 168
+ xy: 3245, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-exponential-reconstructor-tiny
+block-duo-tiny
rotate: false
- xy: 4065, 130
+ xy: 1935, 141
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-exponential-reconstructor-xlarge
+block-duo-xlarge
rotate: false
xy: 3257, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-force-projector-large
+block-exponential-reconstructor-large
rotate: false
- xy: 2180, 329
+ xy: 3495, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-force-projector-medium
+block-exponential-reconstructor-medium
rotate: false
- xy: 881, 53
+ xy: 2509, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-force-projector-small
+block-exponential-reconstructor-small
rotate: false
- xy: 2575, 177
+ xy: 3245, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-force-projector-tiny
+block-exponential-reconstructor-tiny
rotate: false
- xy: 4047, 105
+ xy: 1953, 159
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-force-projector-xlarge
+block-exponential-reconstructor-xlarge
rotate: false
xy: 3307, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-foreshadow-large
+block-force-projector-large
rotate: false
- xy: 2264, 371
+ xy: 3537, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-foreshadow-medium
+block-force-projector-medium
rotate: false
- xy: 881, 19
+ xy: 2543, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-foreshadow-small
+block-force-projector-small
rotate: false
- xy: 2601, 177
+ xy: 3271, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-foreshadow-tiny
+block-force-projector-tiny
rotate: false
- xy: 4065, 112
+ xy: 1971, 159
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-foreshadow-xlarge
+block-force-projector-xlarge
rotate: false
xy: 3357, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-fuse-large
+block-foreshadow-large
rotate: false
- xy: 2222, 329
+ xy: 3579, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-fuse-medium
+block-foreshadow-medium
rotate: false
- xy: 915, 119
+ xy: 2577, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-fuse-small
+block-foreshadow-small
rotate: false
- xy: 2575, 151
+ xy: 3271, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-fuse-tiny
+block-foreshadow-tiny
rotate: false
- xy: 4065, 94
+ xy: 1953, 141
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-fuse-xlarge
+block-foreshadow-xlarge
rotate: false
xy: 3407, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-graphite-press-large
+block-fuse-large
rotate: false
- xy: 2306, 371
+ xy: 3621, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-graphite-press-medium
+block-fuse-medium
rotate: false
- xy: 915, 85
+ xy: 2611, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-graphite-press-small
+block-fuse-small
rotate: false
- xy: 2601, 151
+ xy: 3271, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-graphite-press-tiny
+block-fuse-tiny
rotate: false
- xy: 3809, 311
+ xy: 1971, 141
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-graphite-press-xlarge
+block-fuse-xlarge
rotate: false
xy: 3457, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-grass-large
+block-graphite-press-large
rotate: false
- xy: 2264, 329
+ xy: 3663, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-grass-medium
+block-graphite-press-medium
rotate: false
- xy: 949, 119
+ xy: 2645, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-grass-small
+block-graphite-press-small
rotate: false
- xy: 3581, 159
+ xy: 3297, 195
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-grass-tiny
+block-graphite-press-tiny
rotate: false
- xy: 2476, 175
+ xy: 1881, 123
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-grass-xlarge
+block-graphite-press-xlarge
rotate: false
xy: 3507, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ground-factory-large
+block-grass-large
rotate: false
- xy: 2348, 371
+ xy: 3705, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ground-factory-medium
+block-grass-medium
rotate: false
- xy: 915, 51
+ xy: 2679, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ground-factory-small
+block-grass-small
rotate: false
- xy: 3607, 159
+ xy: 3297, 169
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ground-factory-tiny
+block-grass-tiny
rotate: false
- xy: 2476, 157
+ xy: 1899, 123
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ground-factory-xlarge
+block-grass-xlarge
rotate: false
xy: 3557, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-hail-large
+block-ground-factory-large
rotate: false
- xy: 2306, 329
+ xy: 3747, 371
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-hail-medium
+block-ground-factory-medium
rotate: false
- xy: 949, 85
+ xy: 2713, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-hail-small
+block-ground-factory-small
rotate: false
- xy: 3633, 159
+ xy: 3297, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-hail-tiny
+block-ground-factory-tiny
rotate: false
- xy: 2476, 139
+ xy: 1917, 123
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-hail-xlarge
+block-ground-factory-xlarge
rotate: false
xy: 3607, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-hotrock-large
+block-hail-large
rotate: false
- xy: 2390, 371
+ xy: 1054, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-hotrock-medium
+block-hail-medium
rotate: false
- xy: 949, 51
+ xy: 2747, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-hotrock-small
+block-hail-small
rotate: false
- xy: 3659, 159
+ xy: 3323, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-hotrock-tiny
+block-hail-tiny
rotate: false
- xy: 2494, 167
+ xy: 1935, 123
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-hotrock-xlarge
+block-hail-xlarge
rotate: false
xy: 3657, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-hyper-processor-large
+block-hotrock-large
rotate: false
- xy: 2348, 329
+ xy: 1096, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-hyper-processor-medium
+block-hotrock-medium
rotate: false
- xy: 915, 17
+ xy: 2781, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-hyper-processor-small
+block-hotrock-small
rotate: false
- xy: 3685, 157
+ xy: 3349, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-hyper-processor-tiny
+block-hotrock-tiny
rotate: false
- xy: 2512, 167
+ xy: 1953, 123
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-hyper-processor-xlarge
+block-hotrock-xlarge
rotate: false
xy: 3707, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ice-large
+block-hyper-processor-large
rotate: false
- xy: 2432, 371
+ xy: 1138, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ice-medium
+block-hyper-processor-medium
rotate: false
- xy: 949, 17
+ xy: 2815, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ice-small
+block-hyper-processor-small
rotate: false
- xy: 3579, 133
+ xy: 3323, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ice-snow-large
+block-hyper-processor-tiny
rotate: false
- xy: 2390, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-ice-snow-medium
- rotate: false
- xy: 983, 119
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-ice-snow-small
- rotate: false
- xy: 3605, 133
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-ice-snow-tiny
- rotate: false
- xy: 2494, 149
+ xy: 1971, 123
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ice-snow-xlarge
+block-hyper-processor-xlarge
rotate: false
xy: 3757, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ice-tiny
+block-ice-large
rotate: false
- xy: 2530, 167
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-ice-wall-large
- rotate: false
- xy: 2474, 371
+ xy: 1180, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ice-wall-medium
+block-ice-medium
rotate: false
- xy: 983, 85
+ xy: 2849, 190
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ice-wall-small
+block-ice-small
rotate: false
- xy: 3631, 133
+ xy: 3375, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ice-wall-tiny
+block-ice-snow-large
rotate: false
- xy: 2512, 149
+ xy: 1222, 329
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ice-snow-medium
+ rotate: false
+ xy: 2883, 190
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ice-snow-small
+ rotate: false
+ xy: 3349, 167
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ice-snow-tiny
+ rotate: false
+ xy: 1989, 133
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ice-wall-xlarge
+block-ice-snow-xlarge
rotate: false
xy: 3807, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ice-xlarge
+block-ice-tiny
+ rotate: false
+ xy: 3953, 186
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ice-wall-large
+ rotate: false
+ xy: 1264, 329
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-ice-wall-medium
+ rotate: false
+ xy: 2917, 190
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-ice-wall-small
+ rotate: false
+ xy: 3401, 193
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-ice-wall-tiny
+ rotate: false
+ xy: 3971, 186
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-ice-wall-xlarge
rotate: false
xy: 3857, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-illuminator-large
- rotate: false
- xy: 2432, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-illuminator-medium
- rotate: false
- xy: 983, 51
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-illuminator-small
- rotate: false
- xy: 3657, 133
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-illuminator-tiny
- rotate: false
- xy: 2530, 149
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-illuminator-xlarge
+block-ice-xlarge
rotate: false
xy: 3907, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-impact-reactor-large
+block-illuminator-large
rotate: false
- xy: 2516, 371
+ xy: 1306, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-impact-reactor-medium
+block-illuminator-medium
rotate: false
- xy: 983, 17
+ xy: 1513, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-impact-reactor-small
+block-illuminator-small
rotate: false
- xy: 3683, 131
+ xy: 3375, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-impact-reactor-tiny
+block-illuminator-tiny
rotate: false
- xy: 2548, 150
+ xy: 3989, 186
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-impact-reactor-xlarge
+block-illuminator-xlarge
rotate: false
xy: 3957, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-incinerator-large
+block-impact-reactor-large
rotate: false
- xy: 2474, 329
+ xy: 1348, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-incinerator-medium
+block-impact-reactor-medium
rotate: false
- xy: 2741, 190
+ xy: 1547, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-incinerator-small
+block-impact-reactor-small
rotate: false
- xy: 1731, 185
+ xy: 3427, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-incinerator-tiny
+block-impact-reactor-tiny
rotate: false
- xy: 2494, 131
+ xy: 4007, 187
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-incinerator-xlarge
+block-impact-reactor-xlarge
rotate: false
xy: 4007, 463
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-inverted-sorter-large
+block-incinerator-large
rotate: false
- xy: 2558, 371
+ xy: 1390, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-inverted-sorter-medium
+block-incinerator-medium
rotate: false
- xy: 2775, 190
+ xy: 1581, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-inverted-sorter-small
+block-incinerator-small
rotate: false
- xy: 1757, 205
+ xy: 3401, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-inverted-sorter-tiny
+block-incinerator-tiny
rotate: false
- xy: 2512, 131
+ xy: 4025, 187
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-inverted-sorter-xlarge
+block-incinerator-xlarge
rotate: false
xy: 345, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-item-source-large
+block-interplanetary-accelerator-large
rotate: false
- xy: 2516, 329
+ xy: 1432, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-item-source-medium
+block-interplanetary-accelerator-medium
rotate: false
- xy: 2809, 190
+ xy: 1615, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-item-source-small
+block-interplanetary-accelerator-small
rotate: false
- xy: 1757, 96
+ xy: 3453, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-item-source-tiny
+block-interplanetary-accelerator-tiny
rotate: false
- xy: 2530, 131
+ xy: 3935, 175
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-item-source-xlarge
+block-interplanetary-accelerator-xlarge
rotate: false
xy: 395, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-item-void-large
+block-inverted-sorter-large
rotate: false
- xy: 2600, 371
+ xy: 1474, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-item-void-medium
+block-inverted-sorter-medium
rotate: false
- xy: 2843, 190
+ xy: 1649, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-item-void-small
+block-inverted-sorter-small
rotate: false
- xy: 1757, 70
+ xy: 3427, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-item-void-tiny
+block-inverted-sorter-tiny
rotate: false
- xy: 2548, 132
+ xy: 3953, 168
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-item-void-xlarge
+block-inverted-sorter-xlarge
rotate: false
xy: 445, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-junction-large
+block-item-source-large
rotate: false
- xy: 2558, 329
+ xy: 1516, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-junction-medium
+block-item-source-medium
rotate: false
- xy: 2877, 190
+ xy: 1683, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-junction-small
+block-item-source-small
rotate: false
- xy: 1757, 44
+ xy: 3453, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-junction-tiny
+block-item-source-tiny
rotate: false
- xy: 2566, 133
+ xy: 3971, 168
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-junction-xlarge
+block-item-source-xlarge
rotate: false
xy: 495, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-kiln-large
+block-item-void-large
rotate: false
- xy: 2642, 371
+ xy: 1558, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-kiln-medium
+block-item-void-medium
rotate: false
- xy: 2911, 190
+ xy: 1717, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-kiln-small
+block-item-void-small
rotate: false
- xy: 3711, 145
+ xy: 3323, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-kiln-tiny
+block-item-void-tiny
rotate: false
- xy: 2584, 133
+ xy: 3989, 168
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-kiln-xlarge
+block-item-void-xlarge
rotate: false
xy: 545, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-lancer-large
+block-junction-large
rotate: false
- xy: 2600, 329
+ xy: 1600, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-lancer-medium
+block-junction-medium
rotate: false
- xy: 2945, 190
+ xy: 1751, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-lancer-small
+block-junction-small
rotate: false
- xy: 3737, 145
+ xy: 3349, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-lancer-tiny
+block-junction-tiny
rotate: false
- xy: 2602, 133
+ xy: 4007, 169
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-lancer-xlarge
+block-junction-xlarge
rotate: false
xy: 595, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-large-logic-display-large
+block-kiln-large
rotate: false
- xy: 2684, 371
+ xy: 1642, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-large-logic-display-medium
+block-kiln-medium
rotate: false
- xy: 2979, 190
+ xy: 1785, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-large-logic-display-small
+block-kiln-small
rotate: false
- xy: 3763, 145
+ xy: 3375, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-large-logic-display-tiny
+block-kiln-tiny
rotate: false
- xy: 2620, 133
+ xy: 4025, 169
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-large-logic-display-xlarge
+block-kiln-xlarge
rotate: false
xy: 645, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-laser-drill-large
+block-lancer-large
rotate: false
- xy: 2642, 329
+ xy: 1684, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-laser-drill-medium
+block-lancer-medium
rotate: false
- xy: 3013, 190
+ xy: 1819, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-laser-drill-small
+block-lancer-small
rotate: false
- xy: 3789, 145
+ xy: 3401, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-laser-drill-tiny
+block-lancer-tiny
rotate: false
- xy: 1989, 11
+ xy: 1863, 111
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-laser-drill-xlarge
+block-lancer-xlarge
rotate: false
xy: 695, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-launch-pad-large
+block-large-logic-display-large
rotate: false
- xy: 2726, 371
+ xy: 1726, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-launch-pad-large-large
+block-large-logic-display-medium
rotate: false
- xy: 2684, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-launch-pad-large-medium
- rotate: false
- xy: 3047, 190
+ xy: 1853, 217
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-launch-pad-large-small
+block-large-logic-display-small
rotate: false
- xy: 3815, 141
+ xy: 3427, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-launch-pad-large-tiny
+block-large-logic-display-tiny
rotate: false
- xy: 2007, 8
+ xy: 1881, 105
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-launch-pad-large-xlarge
+block-large-logic-display-xlarge
rotate: false
xy: 231, 96
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-launch-pad-medium
+block-laser-drill-large
rotate: false
- xy: 3081, 190
+ xy: 1768, 329
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-laser-drill-medium
+ rotate: false
+ xy: 1887, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-launch-pad-small
+block-laser-drill-small
rotate: false
- xy: 3841, 141
+ xy: 3453, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-launch-pad-tiny
+block-laser-drill-tiny
rotate: false
- xy: 2025, 8
+ xy: 1899, 105
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-launch-pad-xlarge
+block-laser-drill-xlarge
rotate: false
xy: 231, 46
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-liquid-junction-large
+block-launch-pad-large
rotate: false
- xy: 2768, 371
+ xy: 1810, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-liquid-junction-medium
+block-launch-pad-large-large
rotate: false
- xy: 3115, 190
+ xy: 1852, 329
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-launch-pad-large-medium
+ rotate: false
+ xy: 1921, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-liquid-junction-small
+block-launch-pad-large-small
rotate: false
- xy: 3867, 141
+ xy: 1421, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-liquid-junction-tiny
+block-launch-pad-large-tiny
rotate: false
- xy: 2043, 3
+ xy: 1917, 105
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-liquid-junction-xlarge
+block-launch-pad-large-xlarge
rotate: false
xy: 745, 354
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-liquid-router-large
+block-launch-pad-medium
rotate: false
- xy: 2726, 329
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-liquid-router-medium
- rotate: false
- xy: 3149, 190
+ xy: 1955, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-liquid-router-small
+block-launch-pad-small
rotate: false
- xy: 3893, 141
+ xy: 1837, 151
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-liquid-router-tiny
+block-launch-pad-tiny
rotate: false
- xy: 3887, 312
+ xy: 1935, 105
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-liquid-router-xlarge
+block-launch-pad-xlarge
rotate: false
xy: 281, 107
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-liquid-source-large
+block-liquid-junction-large
rotate: false
- xy: 2810, 371
+ xy: 1894, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-liquid-source-medium
+block-liquid-junction-medium
rotate: false
- xy: 3183, 190
+ xy: 1989, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-liquid-source-small
+block-liquid-junction-small
rotate: false
- xy: 3919, 141
+ xy: 1837, 125
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-liquid-source-tiny
+block-liquid-junction-tiny
rotate: false
- xy: 3887, 294
+ xy: 1953, 105
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-liquid-source-xlarge
+block-liquid-junction-xlarge
rotate: false
xy: 281, 57
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-liquid-tank-large
+block-liquid-router-large
rotate: false
- xy: 2768, 329
+ xy: 1936, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-liquid-tank-medium
+block-liquid-router-medium
rotate: false
- xy: 3217, 190
+ xy: 2023, 220
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-liquid-tank-small
+block-liquid-router-small
rotate: false
- xy: 3945, 141
+ xy: 3089, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-liquid-tank-tiny
+block-liquid-router-tiny
rotate: false
- xy: 3887, 276
+ xy: 1971, 105
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-liquid-tank-xlarge
+block-liquid-router-xlarge
rotate: false
xy: 795, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-liquid-void-large
+block-liquid-source-large
rotate: false
- xy: 2852, 371
+ xy: 1978, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-liquid-void-medium
+block-liquid-source-medium
rotate: false
- xy: 3251, 190
+ xy: 2057, 203
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-liquid-void-small
+block-liquid-source-small
rotate: false
- xy: 3971, 141
+ xy: 3115, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-liquid-void-tiny
+block-liquid-source-tiny
rotate: false
- xy: 3905, 305
+ xy: 1989, 115
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-liquid-void-xlarge
+block-liquid-source-xlarge
rotate: false
xy: 309, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-logic-display-large
+block-liquid-tank-large
rotate: false
- xy: 2810, 329
+ xy: 2020, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-logic-display-medium
+block-liquid-tank-medium
rotate: false
- xy: 3285, 190
+ xy: 2023, 186
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-logic-display-small
+block-liquid-tank-small
rotate: false
- xy: 3997, 141
+ xy: 3141, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-logic-display-tiny
+block-liquid-tank-tiny
rotate: false
- xy: 3923, 305
+ xy: 1989, 97
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-logic-display-xlarge
+block-liquid-tank-xlarge
rotate: false
xy: 309, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-logic-processor-large
+block-liquid-void-large
rotate: false
- xy: 2894, 371
+ xy: 2062, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-logic-processor-medium
+block-liquid-void-medium
rotate: false
- xy: 3319, 190
+ xy: 1989, 185
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-logic-processor-small
+block-liquid-void-small
rotate: false
- xy: 4023, 141
+ xy: 3167, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-logic-processor-tiny
+block-liquid-void-tiny
rotate: false
- xy: 3941, 305
+ xy: 3862, 339
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-logic-processor-xlarge
+block-liquid-void-xlarge
rotate: false
xy: 359, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-magmarock-large
+block-logic-display-large
rotate: false
- xy: 2852, 329
+ xy: 2104, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-magmarock-medium
+block-logic-display-medium
rotate: false
- xy: 3353, 190
+ xy: 2057, 169
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-magmarock-small
+block-logic-display-small
rotate: false
- xy: 3709, 119
+ xy: 3193, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-magmarock-tiny
+block-logic-display-tiny
rotate: false
- xy: 3905, 287
+ xy: 3858, 321
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-magmarock-xlarge
+block-logic-display-xlarge
rotate: false
xy: 309, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mass-driver-large
+block-logic-processor-large
rotate: false
- xy: 2936, 371
+ xy: 2146, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mass-driver-medium
+block-logic-processor-medium
rotate: false
- xy: 3387, 190
+ xy: 2091, 185
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mass-driver-small
+block-logic-processor-small
rotate: false
- xy: 3735, 119
+ xy: 3219, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mass-driver-tiny
+block-logic-processor-tiny
rotate: false
- xy: 3923, 287
+ xy: 1229, 196
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mass-driver-xlarge
+block-logic-processor-xlarge
rotate: false
xy: 359, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mechanical-drill-large
+block-magmarock-large
rotate: false
- xy: 2894, 329
+ xy: 2188, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mechanical-drill-medium
+block-magmarock-medium
rotate: false
- xy: 1631, 222
+ xy: 2023, 152
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mechanical-drill-small
+block-magmarock-small
rotate: false
- xy: 3761, 119
+ xy: 3245, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mechanical-drill-tiny
+block-magmarock-tiny
rotate: false
- xy: 3941, 287
+ xy: 1229, 178
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mechanical-drill-xlarge
+block-magmarock-xlarge
rotate: false
xy: 409, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mechanical-pump-large
+block-mass-driver-large
rotate: false
- xy: 2978, 371
+ xy: 2230, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mechanical-pump-medium
+block-mass-driver-medium
rotate: false
- xy: 1665, 213
+ xy: 2057, 135
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mechanical-pump-small
+block-mass-driver-small
rotate: false
- xy: 3787, 119
+ xy: 3271, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mechanical-pump-tiny
+block-mass-driver-tiny
rotate: false
- xy: 3959, 295
+ xy: 1247, 187
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mechanical-pump-xlarge
+block-mass-driver-xlarge
rotate: false
xy: 359, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-meltdown-large
+block-mechanical-drill-large
rotate: false
- xy: 2936, 329
+ xy: 2272, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-meltdown-medium
+block-mechanical-drill-medium
rotate: false
- xy: 1699, 211
+ xy: 2091, 151
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-meltdown-small
+block-mechanical-drill-small
rotate: false
- xy: 3813, 115
+ xy: 3297, 117
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-meltdown-tiny
+block-mechanical-drill-tiny
rotate: false
- xy: 3977, 295
+ xy: 1265, 187
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-meltdown-xlarge
+block-mechanical-drill-xlarge
rotate: false
xy: 409, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-melter-large
+block-mechanical-pump-large
rotate: false
- xy: 3020, 371
+ xy: 2314, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-melter-medium
+block-mechanical-pump-medium
rotate: false
- xy: 3421, 211
+ xy: 2125, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-melter-small
+block-mechanical-pump-small
rotate: false
- xy: 3839, 115
+ xy: 3323, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-melter-tiny
+block-mechanical-pump-tiny
rotate: false
- xy: 3959, 277
+ xy: 1247, 169
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-melter-xlarge
+block-mechanical-pump-xlarge
rotate: false
xy: 459, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-memory-bank-large
+block-meltdown-large
rotate: false
- xy: 2978, 329
+ xy: 2356, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-memory-bank-medium
+block-meltdown-medium
rotate: false
- xy: 3455, 211
+ xy: 2159, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-memory-bank-small
+block-meltdown-small
rotate: false
- xy: 3865, 115
+ xy: 3349, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-memory-bank-tiny
+block-meltdown-tiny
rotate: false
- xy: 3977, 277
+ xy: 1265, 169
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-memory-bank-xlarge
+block-meltdown-xlarge
rotate: false
xy: 409, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-memory-cell-large
+block-melter-large
rotate: false
- xy: 3062, 371
+ xy: 2398, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-memory-cell-medium
+block-melter-medium
rotate: false
- xy: 3421, 177
+ xy: 2125, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-memory-cell-small
+block-melter-small
rotate: false
- xy: 3891, 115
+ xy: 3375, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-memory-cell-tiny
+block-melter-tiny
rotate: false
- xy: 2471, 71
+ xy: 1283, 185
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-memory-cell-xlarge
+block-melter-xlarge
rotate: false
xy: 459, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mend-projector-large
+block-memory-bank-large
rotate: false
- xy: 3020, 329
+ xy: 2440, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mend-projector-medium
+block-memory-bank-medium
rotate: false
- xy: 3455, 177
+ xy: 2159, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mend-projector-small
+block-memory-bank-small
rotate: false
- xy: 3917, 115
+ xy: 3401, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mend-projector-tiny
+block-memory-bank-tiny
rotate: false
- xy: 2471, 53
+ xy: 1301, 185
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mend-projector-xlarge
+block-memory-bank-xlarge
rotate: false
xy: 509, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mender-large
+block-memory-cell-large
rotate: false
- xy: 3104, 371
+ xy: 2482, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mender-medium
+block-memory-cell-medium
rotate: false
- xy: 2555, 220
+ xy: 2193, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mender-small
+block-memory-cell-small
rotate: false
- xy: 3943, 115
+ xy: 3427, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mender-tiny
+block-memory-cell-tiny
rotate: false
- xy: 2471, 35
+ xy: 1319, 185
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mender-xlarge
+block-memory-cell-xlarge
rotate: false
xy: 459, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-message-large
+block-mend-projector-large
rotate: false
- xy: 3062, 329
+ xy: 2524, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-message-medium
+block-mend-projector-medium
rotate: false
- xy: 2589, 203
+ xy: 2227, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-message-small
+block-mend-projector-small
rotate: false
- xy: 3969, 115
+ xy: 3453, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-message-tiny
+block-mend-projector-tiny
rotate: false
- xy: 2471, 17
+ xy: 1283, 167
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-message-xlarge
+block-mend-projector-xlarge
rotate: false
xy: 509, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-2-large
+block-mender-large
rotate: false
- xy: 3146, 371
+ xy: 2566, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-2-medium
+block-mender-medium
rotate: false
- xy: 2471, 219
+ xy: 2261, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-2-small
+block-mender-small
rotate: false
- xy: 3995, 115
+ xy: 3141, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-2-tiny
+block-mender-tiny
rotate: false
- xy: 2548, 114
+ xy: 1301, 167
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-2-xlarge
+block-mender-xlarge
rotate: false
xy: 559, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-3-large
+block-message-large
rotate: false
- xy: 3104, 329
+ xy: 2608, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-3-medium
+block-message-medium
rotate: false
- xy: 2505, 211
+ xy: 2295, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-3-small
+block-message-small
rotate: false
- xy: 4021, 115
+ xy: 3167, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-3-tiny
+block-message-tiny
rotate: false
- xy: 2566, 115
+ xy: 1319, 167
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-3-xlarge
+block-message-xlarge
rotate: false
xy: 509, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-5-large
+block-metal-floor-2-large
rotate: false
- xy: 3188, 371
+ xy: 2650, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-5-medium
+block-metal-floor-2-medium
rotate: false
- xy: 3552, 211
+ xy: 2329, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-5-small
+block-metal-floor-2-small
rotate: false
- xy: 1760, 179
+ xy: 3193, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-5-tiny
+block-metal-floor-2-tiny
rotate: false
- xy: 2584, 115
+ xy: 1337, 157
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-5-xlarge
+block-metal-floor-2-xlarge
rotate: false
xy: 559, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-damaged-large
+block-metal-floor-3-large
rotate: false
- xy: 3146, 329
+ xy: 2692, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-damaged-medium
+block-metal-floor-3-medium
rotate: false
- xy: 3587, 219
+ xy: 2363, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-damaged-small
+block-metal-floor-3-small
rotate: false
- xy: 1760, 153
+ xy: 3219, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-damaged-tiny
+block-metal-floor-3-tiny
rotate: false
- xy: 2602, 115
+ xy: 1355, 157
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-damaged-xlarge
+block-metal-floor-3-xlarge
rotate: false
xy: 609, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-large
+block-metal-floor-5-large
rotate: false
- xy: 3230, 371
+ xy: 2734, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-medium
+block-metal-floor-5-medium
rotate: false
- xy: 3621, 219
+ xy: 2397, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-small
+block-metal-floor-5-small
rotate: false
- xy: 1760, 127
+ xy: 3245, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-tiny
+block-metal-floor-5-tiny
rotate: false
- xy: 2620, 115
+ xy: 3802, 201
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-xlarge
+block-metal-floor-5-xlarge
rotate: false
xy: 559, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-micro-processor-large
+block-metal-floor-damaged-large
rotate: false
- xy: 3188, 329
+ xy: 2776, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-micro-processor-medium
+block-metal-floor-damaged-medium
rotate: false
- xy: 3655, 219
+ xy: 2431, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-micro-processor-small
+block-metal-floor-damaged-small
rotate: false
- xy: 1786, 185
+ xy: 3271, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-micro-processor-tiny
+block-metal-floor-damaged-tiny
rotate: false
- xy: 2566, 97
+ xy: 3820, 203
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-micro-processor-xlarge
+block-metal-floor-damaged-xlarge
rotate: false
xy: 609, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-moss-large
+block-metal-floor-large
rotate: false
- xy: 3272, 371
+ xy: 2818, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-moss-medium
+block-metal-floor-medium
rotate: false
- xy: 3689, 217
+ xy: 2465, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-moss-small
+block-metal-floor-small
rotate: false
- xy: 1786, 159
+ xy: 3297, 91
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-moss-tiny
+block-metal-floor-tiny
rotate: false
- xy: 2584, 97
+ xy: 3838, 203
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-moss-xlarge
+block-metal-floor-xlarge
rotate: false
xy: 659, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mud-large
+block-micro-processor-large
rotate: false
- xy: 3230, 329
+ xy: 2860, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mud-medium
+block-micro-processor-medium
rotate: false
- xy: 3723, 205
+ xy: 2499, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mud-small
+block-micro-processor-small
rotate: false
- xy: 1812, 185
+ xy: 3323, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mud-tiny
+block-micro-processor-tiny
rotate: false
- xy: 2602, 97
+ xy: 3856, 203
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mud-xlarge
+block-micro-processor-xlarge
rotate: false
xy: 609, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-multi-press-large
+block-moss-large
rotate: false
- xy: 3314, 371
+ xy: 2902, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-multi-press-medium
+block-moss-medium
rotate: false
- xy: 3757, 205
+ xy: 2533, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-multi-press-small
+block-moss-small
rotate: false
- xy: 1812, 159
+ xy: 3349, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-multi-press-tiny
+block-moss-tiny
rotate: false
- xy: 2620, 97
+ xy: 3057, 81
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-multi-press-xlarge
+block-moss-xlarge
rotate: false
xy: 659, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-multiplicative-reconstructor-large
+block-mud-large
rotate: false
- xy: 3272, 329
+ xy: 2944, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-multiplicative-reconstructor-medium
+block-mud-medium
rotate: false
- xy: 993, 211
+ xy: 2567, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-multiplicative-reconstructor-small
+block-mud-small
rotate: false
- xy: 1786, 133
+ xy: 3375, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-multiplicative-reconstructor-tiny
+block-mud-tiny
rotate: false
- xy: 2627, 172
+ xy: 3056, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-multiplicative-reconstructor-xlarge
+block-mud-xlarge
rotate: false
xy: 709, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-naval-factory-large
+block-multi-press-large
rotate: false
- xy: 3356, 371
+ xy: 2986, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-naval-factory-medium
+block-multi-press-medium
rotate: false
- xy: 1027, 211
+ xy: 2601, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-naval-factory-small
+block-multi-press-small
rotate: false
- xy: 1838, 185
+ xy: 3401, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-naval-factory-tiny
+block-multi-press-tiny
rotate: false
- xy: 2627, 154
+ xy: 3053, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-naval-factory-xlarge
+block-multi-press-xlarge
rotate: false
xy: 659, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-oil-extractor-large
+block-multiplicative-reconstructor-large
rotate: false
- xy: 3314, 329
+ xy: 3028, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-oil-extractor-medium
+block-multiplicative-reconstructor-medium
rotate: false
- xy: 1061, 211
+ xy: 2635, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-oil-extractor-small
+block-multiplicative-reconstructor-small
rotate: false
- xy: 1838, 159
+ xy: 3427, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-oil-extractor-tiny
+block-multiplicative-reconstructor-tiny
rotate: false
- xy: 2638, 136
+ xy: 3053, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-oil-extractor-xlarge
+block-multiplicative-reconstructor-xlarge
rotate: false
xy: 709, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ore-coal-large
+block-naval-factory-large
rotate: false
- xy: 3398, 371
+ xy: 3070, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ore-coal-medium
+block-naval-factory-medium
rotate: false
- xy: 1095, 211
+ xy: 2669, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ore-coal-small
+block-naval-factory-small
rotate: false
- xy: 1812, 133
+ xy: 3453, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ore-coal-tiny
+block-naval-factory-tiny
rotate: false
- xy: 2638, 118
+ xy: 3074, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ore-coal-xlarge
+block-naval-factory-xlarge
rotate: false
xy: 709, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ore-copper-large
+block-oil-extractor-large
rotate: false
- xy: 3356, 329
+ xy: 3112, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ore-copper-medium
+block-oil-extractor-medium
rotate: false
- xy: 1129, 211
+ xy: 2703, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ore-copper-small
+block-oil-extractor-small
rotate: false
- xy: 1864, 185
+ xy: 3762, 160
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ore-copper-tiny
+block-oil-extractor-tiny
rotate: false
- xy: 2638, 100
+ xy: 3071, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ore-copper-xlarge
+block-oil-extractor-xlarge
rotate: false
xy: 759, 304
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ore-lead-large
+block-ore-coal-large
rotate: false
- xy: 3440, 371
+ xy: 3154, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ore-lead-medium
+block-ore-coal-medium
rotate: false
- xy: 1163, 211
+ xy: 2737, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ore-lead-small
+block-ore-coal-small
rotate: false
- xy: 1864, 159
+ xy: 3788, 166
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ore-lead-tiny
+block-ore-coal-tiny
rotate: false
- xy: 2638, 82
+ xy: 3092, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ore-lead-xlarge
+block-ore-coal-xlarge
rotate: false
xy: 759, 254
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ore-scrap-large
+block-ore-copper-large
rotate: false
- xy: 3398, 329
+ xy: 3196, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ore-scrap-medium
+block-ore-copper-medium
rotate: false
- xy: 1197, 211
+ xy: 2771, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ore-scrap-small
+block-ore-copper-small
rotate: false
- xy: 1838, 133
+ xy: 3034, 114
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ore-scrap-tiny
+block-ore-copper-tiny
rotate: false
- xy: 2480, 96
+ xy: 3071, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ore-scrap-xlarge
+block-ore-copper-xlarge
rotate: false
xy: 759, 204
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ore-thorium-large
+block-ore-lead-large
rotate: false
- xy: 3482, 371
+ xy: 3238, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ore-thorium-medium
+block-ore-lead-medium
rotate: false
- xy: 1231, 211
+ xy: 2805, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ore-thorium-small
+block-ore-lead-small
rotate: false
- xy: 1890, 185
+ xy: 3060, 99
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ore-thorium-tiny
+block-ore-lead-tiny
rotate: false
- xy: 2489, 78
+ xy: 3089, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ore-thorium-xlarge
+block-ore-lead-xlarge
rotate: false
xy: 809, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ore-titanium-large
+block-ore-scrap-large
rotate: false
- xy: 3440, 329
+ xy: 3280, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ore-titanium-medium
+block-ore-scrap-medium
rotate: false
- xy: 1265, 211
+ xy: 2839, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ore-titanium-small
+block-ore-scrap-small
rotate: false
- xy: 1890, 159
+ xy: 3567, 165
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ore-titanium-tiny
+block-ore-scrap-tiny
rotate: false
- xy: 2489, 60
+ xy: 3110, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ore-titanium-xlarge
+block-ore-scrap-xlarge
rotate: false
xy: 809, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-overdrive-dome-large
+block-ore-thorium-large
rotate: false
- xy: 3524, 371
+ xy: 3322, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-overdrive-dome-medium
+block-ore-thorium-medium
rotate: false
- xy: 1299, 211
+ xy: 2873, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-overdrive-dome-small
+block-ore-thorium-small
rotate: false
- xy: 1864, 133
+ xy: 3593, 159
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-overdrive-dome-tiny
+block-ore-thorium-tiny
rotate: false
- xy: 2489, 42
+ xy: 3089, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-overdrive-dome-xlarge
+block-ore-thorium-xlarge
rotate: false
xy: 809, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-overdrive-projector-large
+block-ore-titanium-large
rotate: false
- xy: 3482, 329
+ xy: 3364, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-overdrive-projector-medium
+block-ore-titanium-medium
rotate: false
- xy: 1333, 211
+ xy: 2907, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-overdrive-projector-small
+block-ore-titanium-small
rotate: false
- xy: 1916, 185
+ xy: 3619, 159
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-overdrive-projector-tiny
+block-ore-titanium-tiny
rotate: false
- xy: 2489, 24
+ xy: 3107, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-overdrive-projector-xlarge
+block-ore-titanium-xlarge
rotate: false
xy: 809, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-overflow-gate-large
+block-overdrive-dome-large
rotate: false
- xy: 3566, 371
+ xy: 3406, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-overflow-gate-medium
+block-overdrive-dome-medium
rotate: false
- xy: 1367, 211
+ xy: 2091, 117
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-overflow-gate-small
+block-overdrive-dome-small
rotate: false
- xy: 1916, 159
+ xy: 3479, 171
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-overflow-gate-tiny
+block-overdrive-dome-tiny
rotate: false
- xy: 2498, 96
+ xy: 3107, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-overflow-gate-xlarge
+block-overdrive-dome-xlarge
rotate: false
xy: 281, 7
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-parallax-large
+block-overdrive-projector-large
rotate: false
- xy: 3524, 329
+ xy: 3448, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-parallax-medium
+block-overdrive-projector-medium
rotate: false
- xy: 1401, 211
+ xy: 2125, 109
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-parallax-small
+block-overdrive-projector-small
rotate: false
- xy: 1890, 133
+ xy: 3505, 171
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-parallax-tiny
+block-overdrive-projector-tiny
rotate: false
- xy: 2507, 78
+ xy: 3125, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-parallax-xlarge
+block-overdrive-projector-xlarge
rotate: false
xy: 331, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-payload-conveyor-large
+block-overflow-gate-large
rotate: false
- xy: 3608, 371
+ xy: 3490, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-payload-conveyor-medium
+block-overflow-gate-medium
rotate: false
- xy: 1435, 211
+ xy: 2159, 109
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-payload-conveyor-small
+block-overflow-gate-small
rotate: false
- xy: 1942, 185
+ xy: 3479, 145
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-payload-conveyor-tiny
+block-overflow-gate-tiny
rotate: false
- xy: 2507, 60
+ xy: 3125, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-payload-conveyor-xlarge
+block-overflow-gate-xlarge
rotate: false
xy: 331, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-payload-router-large
+block-parallax-large
rotate: false
- xy: 3566, 329
+ xy: 3532, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-payload-router-medium
+block-parallax-medium
rotate: false
- xy: 1469, 211
+ xy: 2193, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-payload-router-small
+block-parallax-small
rotate: false
- xy: 1942, 159
+ xy: 3479, 119
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-payload-router-tiny
+block-parallax-tiny
rotate: false
- xy: 2507, 42
+ xy: 3143, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-payload-router-xlarge
+block-parallax-xlarge
rotate: false
xy: 381, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-pebbles-large
+block-payload-conveyor-large
rotate: false
- xy: 3650, 371
+ xy: 3574, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-pebbles-medium
+block-payload-conveyor-medium
rotate: false
- xy: 1503, 211
+ xy: 2227, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-pebbles-small
+block-payload-conveyor-small
rotate: false
- xy: 1916, 133
+ xy: 3505, 145
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-pebbles-tiny
+block-payload-conveyor-tiny
rotate: false
- xy: 2507, 24
+ xy: 3143, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-pebbles-xlarge
+block-payload-conveyor-xlarge
rotate: false
xy: 331, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-phase-conduit-large
+block-payload-router-large
rotate: false
- xy: 3608, 329
+ xy: 3616, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phase-conduit-medium
+block-payload-router-medium
rotate: false
- xy: 1537, 211
+ xy: 2261, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-phase-conduit-small
+block-payload-router-small
rotate: false
- xy: 1942, 133
+ xy: 3479, 93
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-phase-conduit-tiny
+block-payload-router-tiny
rotate: false
- xy: 2516, 96
+ xy: 3161, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-phase-conduit-xlarge
+block-payload-router-xlarge
rotate: false
xy: 381, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-phase-conveyor-large
+block-pebbles-large
rotate: false
- xy: 3650, 329
+ xy: 3658, 329
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phase-conveyor-medium
+block-pebbles-medium
rotate: false
- xy: 1571, 211
+ xy: 2295, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-phase-conveyor-small
+block-pebbles-small
rotate: false
- xy: 1968, 159
+ xy: 3505, 119
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-phase-conveyor-tiny
+block-pebbles-tiny
rotate: false
- xy: 2525, 78
+ xy: 3161, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-phase-conveyor-xlarge
+block-pebbles-xlarge
rotate: false
xy: 431, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+block-phase-conduit-large
+ rotate: false
+ xy: 3700, 329
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-phase-conduit-medium
+ rotate: false
+ xy: 2329, 122
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-conduit-small
+ rotate: false
+ xy: 3505, 93
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-conduit-tiny
+ rotate: false
+ xy: 3179, 45
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-conduit-xlarge
+ rotate: false
+ xy: 381, 54
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-large
+ rotate: false
+ xy: 3742, 329
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-medium
+ rotate: false
+ xy: 2363, 122
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-small
+ rotate: false
+ xy: 3531, 159
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-tiny
+ rotate: false
+ xy: 3179, 27
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-conveyor-xlarge
+ rotate: false
+ xy: 431, 104
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
block-phase-wall-large
rotate: false
- xy: 959, 271
+ xy: 1009, 230
size: 40, 40
orig: 40, 40
offset: 0, 0
@@ -17952,56 +19492,56 @@ block-phase-wall-large-large
index: -1
block-phase-wall-large-medium
rotate: false
- xy: 1003, 177
+ xy: 2397, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-phase-wall-large-small
rotate: false
- xy: 1968, 133
+ xy: 3531, 133
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-phase-wall-large-tiny
rotate: false
- xy: 2525, 60
+ xy: 3197, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-phase-wall-large-xlarge
rotate: false
- xy: 381, 54
+ xy: 481, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-phase-wall-medium
rotate: false
- xy: 1037, 177
+ xy: 2431, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-phase-wall-small
rotate: false
- xy: 1994, 151
+ xy: 3531, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-phase-wall-tiny
rotate: false
- xy: 2525, 42
+ xy: 3197, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-phase-wall-xlarge
rotate: false
- xy: 431, 104
+ xy: 431, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
@@ -18015,28 +19555,28 @@ block-phase-weaver-large
index: -1
block-phase-weaver-medium
rotate: false
- xy: 1071, 177
+ xy: 2465, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-phase-weaver-small
rotate: false
- xy: 2020, 151
+ xy: 3557, 139
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-phase-weaver-tiny
rotate: false
- xy: 2525, 24
+ xy: 3215, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-phase-weaver-xlarge
rotate: false
- xy: 481, 154
+ xy: 481, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
@@ -18050,3080 +19590,3080 @@ block-pine-large
index: -1
block-pine-medium
rotate: false
- xy: 1105, 177
+ xy: 2499, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pine-small
rotate: false
- xy: 2046, 151
+ xy: 3557, 113
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-pine-tiny
rotate: false
- xy: 2534, 96
+ xy: 3215, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-pine-xlarge
rotate: false
- xy: 431, 54
+ xy: 531, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-plastanium-compressor-large
rotate: false
- xy: 3692, 335
+ xy: 881, 129
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-plastanium-compressor-medium
rotate: false
- xy: 1139, 177
+ xy: 2533, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-plastanium-compressor-small
rotate: false
- xy: 2072, 151
+ xy: 3583, 133
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-plastanium-compressor-tiny
rotate: false
- xy: 2543, 78
+ xy: 3233, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-plastanium-compressor-xlarge
rotate: false
- xy: 481, 104
+ xy: 481, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-plastanium-conveyor-large
rotate: false
- xy: 909, 231
+ xy: 881, 87
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-plastanium-conveyor-medium
rotate: false
- xy: 1173, 177
+ xy: 2567, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-plastanium-conveyor-small
rotate: false
- xy: 2098, 151
+ xy: 3609, 133
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-plastanium-conveyor-tiny
rotate: false
- xy: 2543, 60
+ xy: 3233, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-plastanium-conveyor-xlarge
rotate: false
- xy: 531, 154
+ xy: 531, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-plastanium-wall-large
rotate: false
- xy: 951, 229
+ xy: 881, 45
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-plastanium-wall-large-large
rotate: false
- xy: 902, 189
+ xy: 923, 131
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-plastanium-wall-large-medium
rotate: false
- xy: 1207, 177
+ xy: 2601, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-plastanium-wall-large-small
rotate: false
- xy: 2124, 151
+ xy: 3583, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-plastanium-wall-large-tiny
rotate: false
- xy: 2543, 42
+ xy: 3251, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-plastanium-wall-large-xlarge
rotate: false
- xy: 481, 54
+ xy: 581, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-plastanium-wall-medium
rotate: false
- xy: 1241, 177
+ xy: 2635, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-plastanium-wall-small
rotate: false
- xy: 2150, 151
+ xy: 3609, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-plastanium-wall-tiny
rotate: false
- xy: 2543, 24
+ xy: 3251, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-plastanium-wall-xlarge
rotate: false
- xy: 531, 104
+ xy: 531, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-plated-conduit-large
rotate: false
- xy: 944, 187
+ xy: 923, 89
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-plated-conduit-medium
rotate: false
- xy: 1275, 177
+ xy: 2669, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-plated-conduit-small
rotate: false
- xy: 2176, 151
+ xy: 3531, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-plated-conduit-tiny
rotate: false
- xy: 2561, 79
+ xy: 3269, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-plated-conduit-xlarge
rotate: false
- xy: 581, 154
+ xy: 581, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-pneumatic-drill-large
rotate: false
- xy: 1004, 287
+ xy: 923, 47
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-pneumatic-drill-medium
rotate: false
- xy: 1309, 177
+ xy: 2703, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pneumatic-drill-small
rotate: false
- xy: 2202, 151
+ xy: 3557, 87
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-pneumatic-drill-tiny
rotate: false
- xy: 2561, 61
+ xy: 3269, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-pneumatic-drill-xlarge
rotate: false
- xy: 531, 54
+ xy: 631, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-power-node-large
rotate: false
- xy: 1046, 287
+ xy: 881, 3
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-power-node-large-large
rotate: false
- xy: 1088, 287
+ xy: 923, 5
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-power-node-large-medium
rotate: false
- xy: 1343, 177
+ xy: 2737, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-power-node-large-small
rotate: false
- xy: 2228, 151
+ xy: 3583, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-power-node-large-tiny
rotate: false
- xy: 2579, 79
+ xy: 3287, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-power-node-large-xlarge
rotate: false
- xy: 581, 104
+ xy: 581, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-power-node-medium
rotate: false
- xy: 1377, 177
+ xy: 2771, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-power-node-small
rotate: false
- xy: 2254, 151
+ xy: 3609, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-power-node-tiny
rotate: false
- xy: 2561, 43
+ xy: 3305, 47
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-power-node-xlarge
rotate: false
- xy: 631, 154
+ xy: 631, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-power-source-large
rotate: false
- xy: 1130, 287
+ xy: 959, 197
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-power-source-medium
rotate: false
- xy: 1411, 177
+ xy: 2805, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-power-source-small
rotate: false
- xy: 2280, 151
+ xy: 3557, 61
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-power-source-tiny
rotate: false
- xy: 2579, 61
+ xy: 3287, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-power-source-xlarge
rotate: false
- xy: 581, 54
+ xy: 681, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-power-void-large
rotate: false
- xy: 1172, 287
+ xy: 1001, 188
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-power-void-medium
rotate: false
- xy: 1445, 177
+ xy: 2839, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-power-void-small
rotate: false
- xy: 2306, 151
+ xy: 3583, 55
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-power-void-tiny
rotate: false
- xy: 2597, 79
+ xy: 3305, 29
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-power-void-xlarge
rotate: false
- xy: 631, 104
+ xy: 631, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-pulse-conduit-large
rotate: false
- xy: 1214, 287
+ xy: 1043, 188
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-pulse-conduit-medium
rotate: false
- xy: 1479, 177
+ xy: 2873, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pulse-conduit-small
rotate: false
- xy: 1994, 125
+ xy: 3609, 55
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-pulse-conduit-tiny
rotate: false
- xy: 2561, 25
+ xy: 3323, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-pulse-conduit-xlarge
rotate: false
- xy: 681, 154
+ xy: 681, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-pulverizer-large
rotate: false
- xy: 1256, 287
+ xy: 1051, 230
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-pulverizer-medium
rotate: false
- xy: 1513, 177
+ xy: 2907, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pulverizer-small
rotate: false
- xy: 2020, 125
+ xy: 3635, 133
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-pulverizer-tiny
rotate: false
- xy: 2579, 43
+ xy: 3341, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-pulverizer-xlarge
rotate: false
- xy: 631, 54
+ xy: 731, 154
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-pyratite-mixer-large
rotate: false
- xy: 1298, 287
+ xy: 1085, 188
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-pyratite-mixer-medium
rotate: false
- xy: 1547, 177
+ xy: 2193, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pyratite-mixer-small
rotate: false
- xy: 2046, 125
+ xy: 3635, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-pyratite-mixer-tiny
rotate: false
- xy: 2597, 61
+ xy: 3359, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-pyratite-mixer-xlarge
rotate: false
- xy: 681, 104
+ xy: 681, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-repair-point-large
rotate: false
- xy: 1340, 287
+ xy: 1054, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-repair-point-medium
rotate: false
- xy: 1581, 177
+ xy: 2227, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-repair-point-small
rotate: false
- xy: 2072, 125
+ xy: 3635, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-repair-point-tiny
rotate: false
- xy: 2615, 79
+ xy: 3377, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-repair-point-xlarge
rotate: false
- xy: 731, 154
+ xy: 731, 104
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-resupply-point-large
rotate: false
- xy: 1382, 287
+ xy: 1096, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-resupply-point-medium
rotate: false
- xy: 1017, 143
+ xy: 2261, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-resupply-point-small
rotate: false
- xy: 2098, 125
+ xy: 3635, 55
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-resupply-point-tiny
rotate: false
- xy: 2579, 25
+ xy: 3395, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-resupply-point-xlarge
rotate: false
- xy: 681, 54
+ xy: 731, 54
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-ripple-large
rotate: false
- xy: 1424, 287
+ xy: 1138, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-ripple-medium
rotate: false
- xy: 1017, 109
+ xy: 2295, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ripple-small
rotate: false
- xy: 2124, 125
+ xy: 3645, 159
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-ripple-tiny
rotate: false
- xy: 2597, 43
+ xy: 3413, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-ripple-xlarge
rotate: false
- xy: 731, 104
+ xy: 331, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-rotary-pump-large
rotate: false
- xy: 1466, 287
+ xy: 1180, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-rotary-pump-medium
rotate: false
- xy: 1051, 143
+ xy: 2329, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-rotary-pump-small
rotate: false
- xy: 2150, 125
+ xy: 3671, 159
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-rotary-pump-tiny
rotate: false
- xy: 2615, 61
+ xy: 3431, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-rotary-pump-xlarge
rotate: false
- xy: 731, 54
+ xy: 381, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-router-large
rotate: false
- xy: 1508, 287
+ xy: 1222, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-router-medium
rotate: false
- xy: 1017, 75
+ xy: 2363, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-router-small
rotate: false
- xy: 2176, 125
+ xy: 3661, 133
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-router-tiny
rotate: false
- xy: 2597, 25
+ xy: 3449, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-router-xlarge
rotate: false
- xy: 331, 4
+ xy: 431, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-rtg-generator-large
rotate: false
- xy: 1550, 287
+ xy: 1264, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-rtg-generator-medium
rotate: false
- xy: 1051, 109
+ xy: 2397, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-rtg-generator-small
rotate: false
- xy: 2202, 125
+ xy: 3661, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-rtg-generator-tiny
rotate: false
- xy: 2615, 43
+ xy: 3323, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-rtg-generator-xlarge
rotate: false
- xy: 381, 4
+ xy: 481, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-salt-large
rotate: false
- xy: 1592, 287
+ xy: 1306, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-salt-medium
rotate: false
- xy: 1085, 143
+ xy: 2431, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-salt-small
rotate: false
- xy: 2228, 125
+ xy: 3661, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-salt-tiny
rotate: false
- xy: 2615, 25
+ xy: 3341, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-salt-wall-large
rotate: false
- xy: 1634, 287
+ xy: 1348, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-salt-wall-medium
rotate: false
- xy: 1017, 41
+ xy: 2465, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-salt-wall-small
rotate: false
- xy: 2254, 125
+ xy: 3661, 55
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-salt-wall-tiny
rotate: false
- xy: 2633, 64
+ xy: 3359, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-salt-wall-xlarge
rotate: false
- xy: 431, 4
+ xy: 531, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-salt-xlarge
rotate: false
- xy: 481, 4
+ xy: 581, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-salvo-large
rotate: false
- xy: 1676, 287
+ xy: 1390, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-salvo-medium
rotate: false
- xy: 1051, 75
+ xy: 2499, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-salvo-small
rotate: false
- xy: 2280, 125
+ xy: 3697, 149
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-salvo-tiny
rotate: false
- xy: 2633, 46
+ xy: 3377, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-salvo-xlarge
rotate: false
- xy: 531, 4
+ xy: 631, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-sand-boulder-large
rotate: false
- xy: 1718, 287
+ xy: 1432, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-sand-boulder-medium
rotate: false
- xy: 1085, 109
+ xy: 2533, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-boulder-small
rotate: false
- xy: 2306, 125
+ xy: 3687, 123
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-sand-boulder-tiny
rotate: false
- xy: 2633, 28
+ xy: 3395, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-sand-boulder-xlarge
rotate: false
- xy: 581, 4
+ xy: 681, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-sand-large
rotate: false
- xy: 1760, 287
+ xy: 1474, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-sand-medium
rotate: false
- xy: 1119, 143
+ xy: 2567, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-small
rotate: false
- xy: 2332, 124
+ xy: 3687, 97
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-sand-tiny
rotate: false
- xy: 2489, 6
+ xy: 3413, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-sand-wall-large
rotate: false
- xy: 1802, 287
+ xy: 1516, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-sand-wall-medium
rotate: false
- xy: 1051, 41
+ xy: 2601, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-wall-small
rotate: false
- xy: 1786, 107
+ xy: 3687, 71
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-sand-wall-tiny
rotate: false
- xy: 2507, 6
+ xy: 3431, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-sand-wall-xlarge
rotate: false
- xy: 631, 4
+ xy: 731, 4
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-sand-water-large
rotate: false
- xy: 1844, 287
+ xy: 1558, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-sand-water-medium
rotate: false
- xy: 1085, 75
+ xy: 2635, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-water-small
rotate: false
- xy: 1812, 107
+ xy: 3687, 45
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-sand-water-tiny
rotate: false
- xy: 2525, 6
+ xy: 3449, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-sand-water-xlarge
rotate: false
- xy: 681, 4
+ xy: 781, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-sand-xlarge
rotate: false
- xy: 731, 4
+ xy: 781, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-scatter-large
rotate: false
- xy: 1886, 287
+ xy: 1600, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-scatter-medium
rotate: false
- xy: 1119, 109
+ xy: 2669, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scatter-small
rotate: false
- xy: 1838, 107
+ xy: 3713, 123
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-scatter-tiny
rotate: false
- xy: 2543, 6
+ xy: 3305, 11
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-scatter-xlarge
rotate: false
- xy: 781, 116
+ xy: 781, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-scorch-large
rotate: false
- xy: 1928, 287
+ xy: 1642, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-scorch-medium
rotate: false
- xy: 1153, 143
+ xy: 2703, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scorch-small
rotate: false
- xy: 1864, 107
+ xy: 3713, 97
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-scorch-tiny
rotate: false
- xy: 2561, 7
+ xy: 3323, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-scorch-xlarge
rotate: false
- xy: 781, 66
+ xy: 831, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-scrap-wall-gigantic-large
rotate: false
- xy: 1970, 287
+ xy: 1684, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-scrap-wall-gigantic-medium
rotate: false
- xy: 1085, 41
+ xy: 2737, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-gigantic-small
rotate: false
- xy: 1890, 107
+ xy: 3713, 71
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-scrap-wall-gigantic-tiny
rotate: false
- xy: 2579, 7
+ xy: 3341, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-scrap-wall-gigantic-xlarge
rotate: false
- xy: 781, 16
+ xy: 831, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-scrap-wall-huge-large
rotate: false
- xy: 2012, 287
+ xy: 1726, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-scrap-wall-huge-medium
rotate: false
- xy: 1119, 75
+ xy: 2771, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-huge-small
rotate: false
- xy: 1916, 107
+ xy: 3713, 45
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-scrap-wall-huge-tiny
rotate: false
- xy: 2597, 7
+ xy: 3359, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-scrap-wall-huge-xlarge
rotate: false
- xy: 831, 116
+ xy: 831, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-scrap-wall-large
rotate: false
- xy: 2054, 287
+ xy: 1768, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-scrap-wall-large-large
rotate: false
- xy: 2096, 287
+ xy: 1810, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-scrap-wall-large-medium
rotate: false
- xy: 1153, 109
+ xy: 2805, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-large-small
rotate: false
- xy: 1942, 107
+ xy: 3739, 134
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-scrap-wall-large-tiny
rotate: false
- xy: 2615, 7
+ xy: 3377, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-scrap-wall-large-xlarge
rotate: false
- xy: 831, 66
+ xy: 859, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-scrap-wall-medium
rotate: false
- xy: 1187, 143
+ xy: 2839, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-small
rotate: false
- xy: 1968, 107
+ xy: 3739, 108
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-scrap-wall-tiny
rotate: false
- xy: 2633, 10
+ xy: 3395, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-scrap-wall-xlarge
rotate: false
- xy: 831, 16
+ xy: 909, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-segment-large
rotate: false
- xy: 2138, 287
+ xy: 1852, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-segment-medium
rotate: false
- xy: 1119, 41
+ xy: 2873, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-segment-small
rotate: false
- xy: 1783, 81
+ xy: 3739, 82
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-segment-tiny
rotate: false
- xy: 2651, 64
+ xy: 3413, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-segment-xlarge
rotate: false
- xy: 859, 413
+ xy: 959, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-separator-large
rotate: false
- xy: 2180, 287
+ xy: 1894, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-separator-medium
rotate: false
- xy: 1153, 75
+ xy: 2907, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-separator-small
rotate: false
- xy: 1783, 55
+ xy: 3739, 56
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-separator-tiny
rotate: false
- xy: 2651, 46
+ xy: 3431, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-separator-xlarge
rotate: false
- xy: 909, 413
+ xy: 1009, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-shale-boulder-large
rotate: false
- xy: 2222, 287
+ xy: 1936, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-shale-boulder-medium
rotate: false
- xy: 1187, 109
+ xy: 1853, 183
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-boulder-small
rotate: false
- xy: 1809, 81
+ xy: 3765, 134
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-shale-boulder-tiny
rotate: false
- xy: 2651, 28
+ xy: 3449, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-shale-boulder-xlarge
rotate: false
- xy: 959, 413
+ xy: 1059, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-shale-large
rotate: false
- xy: 2264, 287
+ xy: 1978, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-shale-medium
rotate: false
- xy: 1221, 143
+ xy: 1887, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-small
rotate: false
- xy: 1809, 55
+ xy: 3765, 108
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-shale-tiny
rotate: false
- xy: 2651, 10
+ xy: 3467, 23
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-shale-wall-large
rotate: false
- xy: 2306, 287
+ xy: 2020, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-shale-wall-medium
rotate: false
- xy: 1153, 41
+ xy: 1921, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-wall-small
rotate: false
- xy: 1835, 81
+ xy: 3765, 82
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-shale-wall-tiny
rotate: false
- xy: 2645, 201
+ xy: 3485, 23
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-shale-wall-xlarge
rotate: false
- xy: 1009, 413
+ xy: 1109, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-shale-xlarge
rotate: false
- xy: 1059, 413
+ xy: 1159, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-shock-mine-large
rotate: false
- xy: 2348, 287
+ xy: 2062, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-shock-mine-medium
rotate: false
- xy: 1187, 75
+ xy: 1955, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shock-mine-small
rotate: false
- xy: 1835, 55
+ xy: 3765, 56
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-shock-mine-tiny
rotate: false
- xy: 2627, 201
+ xy: 3467, 5
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-shock-mine-xlarge
rotate: false
- xy: 1109, 413
+ xy: 1209, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-shrubs-large
rotate: false
- xy: 2390, 287
+ xy: 2104, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-shrubs-medium
rotate: false
- xy: 1221, 109
+ xy: 1989, 151
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shrubs-small
rotate: false
- xy: 1861, 81
+ xy: 3791, 140
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-shrubs-tiny
rotate: false
- xy: 2645, 183
+ xy: 3485, 5
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-shrubs-xlarge
rotate: false
- xy: 1159, 413
+ xy: 1259, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-silicon-crucible-large
rotate: false
- xy: 2432, 287
+ xy: 2146, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-silicon-crucible-medium
rotate: false
- xy: 1255, 143
+ xy: 2023, 118
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-silicon-crucible-small
rotate: false
- xy: 1861, 55
+ xy: 3791, 114
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-silicon-crucible-tiny
rotate: false
- xy: 2645, 165
+ xy: 3503, 7
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-silicon-crucible-xlarge
rotate: false
- xy: 1209, 413
+ xy: 1309, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-silicon-smelter-large
rotate: false
- xy: 2474, 287
+ xy: 2188, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-silicon-smelter-medium
rotate: false
- xy: 1187, 41
+ xy: 2057, 101
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-silicon-smelter-small
rotate: false
- xy: 1887, 81
+ xy: 3791, 88
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-silicon-smelter-tiny
rotate: false
- xy: 2663, 193
+ xy: 3862, 303
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-silicon-smelter-xlarge
rotate: false
- xy: 1259, 413
+ xy: 1359, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-slag-large
rotate: false
- xy: 2516, 287
+ xy: 2230, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-slag-medium
rotate: false
- xy: 1221, 75
+ xy: 2091, 83
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-slag-small
rotate: false
- xy: 1887, 55
+ xy: 3791, 62
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-slag-tiny
rotate: false
- xy: 2681, 193
+ xy: 3862, 285
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-slag-xlarge
rotate: false
- xy: 1309, 413
+ xy: 1409, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-snow-boulder-large
rotate: false
- xy: 2558, 287
+ xy: 2272, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-snow-boulder-medium
rotate: false
- xy: 1255, 109
+ xy: 2125, 75
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-boulder-small
rotate: false
- xy: 1913, 81
+ xy: 3739, 30
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-snow-boulder-tiny
rotate: false
- xy: 2663, 175
+ xy: 4043, 292
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-snow-boulder-xlarge
rotate: false
- xy: 1359, 413
+ xy: 1459, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-snow-large
rotate: false
- xy: 2600, 287
+ xy: 2314, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-snow-medium
rotate: false
- xy: 1289, 143
+ xy: 2159, 75
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-pine-large
rotate: false
- xy: 2642, 287
+ xy: 2356, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-snow-pine-medium
rotate: false
- xy: 1221, 41
+ xy: 2193, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-pine-small
rotate: false
- xy: 1913, 55
+ xy: 3765, 30
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-snow-pine-tiny
rotate: false
- xy: 2699, 193
+ xy: 4043, 274
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-snow-pine-xlarge
rotate: false
- xy: 1409, 413
+ xy: 1509, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-snow-small
rotate: false
- xy: 1939, 81
+ xy: 3791, 36
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-snow-tiny
rotate: false
- xy: 2681, 175
+ xy: 4061, 292
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-snow-wall-large
rotate: false
- xy: 2684, 287
+ xy: 2398, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-snow-wall-medium
rotate: false
- xy: 1255, 75
+ xy: 2227, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-snow-wall-small
rotate: false
- xy: 1939, 55
+ xy: 3791, 10
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-snow-wall-tiny
rotate: false
- xy: 2717, 193
+ xy: 4079, 292
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-snow-wall-xlarge
rotate: false
- xy: 1459, 413
+ xy: 1559, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-snow-xlarge
rotate: false
- xy: 1509, 413
+ xy: 1609, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-solar-panel-large
rotate: false
- xy: 2726, 287
+ xy: 2440, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-solar-panel-large-large
rotate: false
- xy: 2768, 287
+ xy: 2482, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-solar-panel-large-medium
rotate: false
- xy: 1289, 109
+ xy: 2261, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-solar-panel-large-small
rotate: false
- xy: 1965, 81
+ xy: 3784, 345
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-solar-panel-large-tiny
rotate: false
- xy: 2699, 175
+ xy: 4043, 256
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-solar-panel-large-xlarge
rotate: false
- xy: 1559, 413
+ xy: 1659, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-solar-panel-medium
rotate: false
- xy: 1323, 143
+ xy: 2295, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-solar-panel-small
rotate: false
- xy: 1965, 55
+ xy: 3784, 319
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-solar-panel-tiny
rotate: false
- xy: 2717, 175
+ xy: 4061, 274
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-solar-panel-xlarge
rotate: false
- xy: 1609, 413
+ xy: 1709, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-sorter-large
rotate: false
- xy: 2810, 287
+ xy: 2524, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-sorter-medium
rotate: false
- xy: 1255, 41
+ xy: 2329, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sorter-small
rotate: false
- xy: 1994, 99
+ xy: 3810, 351
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-sorter-tiny
rotate: false
- xy: 2663, 157
+ xy: 4079, 274
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-sorter-xlarge
rotate: false
- xy: 1659, 413
+ xy: 1759, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-space-large
rotate: false
- xy: 2852, 287
+ xy: 2566, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-space-medium
rotate: false
- xy: 1289, 75
+ xy: 2363, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-space-small
rotate: false
- xy: 2020, 99
+ xy: 3810, 325
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-space-tiny
rotate: false
- xy: 2681, 157
+ xy: 4043, 238
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-space-xlarge
rotate: false
- xy: 1709, 413
+ xy: 1809, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-spawn-large
rotate: false
- xy: 2894, 287
+ xy: 2608, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spawn-medium
rotate: false
- xy: 1323, 109
+ xy: 2397, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spawn-small
rotate: false
- xy: 2046, 99
+ xy: 3810, 299
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-spawn-tiny
rotate: false
- xy: 2699, 157
+ xy: 4061, 256
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-spawn-xlarge
rotate: false
- xy: 1759, 413
+ xy: 1859, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-spectre-large
rotate: false
- xy: 2936, 287
+ xy: 2650, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spectre-medium
rotate: false
- xy: 1357, 143
+ xy: 2431, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spectre-small
rotate: false
- xy: 2072, 99
+ xy: 3810, 273
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-spectre-tiny
rotate: false
- xy: 2717, 157
+ xy: 4079, 256
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-spectre-xlarge
rotate: false
- xy: 1809, 413
+ xy: 1909, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-spore-cluster-large
rotate: false
- xy: 2978, 287
+ xy: 2692, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spore-cluster-medium
rotate: false
- xy: 1289, 41
+ xy: 2465, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-cluster-small
rotate: false
- xy: 2098, 99
+ xy: 3805, 247
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-spore-cluster-tiny
rotate: false
- xy: 2735, 172
+ xy: 4043, 220
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-spore-cluster-xlarge
rotate: false
- xy: 1859, 413
+ xy: 1959, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-spore-moss-large
rotate: false
- xy: 3020, 287
+ xy: 2734, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spore-moss-medium
rotate: false
- xy: 1323, 75
+ xy: 2499, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-moss-small
rotate: false
- xy: 2124, 99
+ xy: 3805, 221
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-spore-moss-tiny
rotate: false
- xy: 2753, 172
+ xy: 4061, 238
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-spore-moss-xlarge
rotate: false
- xy: 1909, 413
+ xy: 2009, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-spore-pine-large
rotate: false
- xy: 3062, 287
+ xy: 2776, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spore-pine-medium
rotate: false
- xy: 1357, 109
+ xy: 2533, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-pine-small
rotate: false
- xy: 2150, 99
+ xy: 3086, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-spore-pine-tiny
rotate: false
- xy: 2771, 172
+ xy: 4079, 238
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-spore-pine-xlarge
rotate: false
- xy: 1959, 413
+ xy: 2059, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-spore-press-large
rotate: false
- xy: 3104, 287
+ xy: 2818, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spore-press-medium
rotate: false
- xy: 1391, 143
+ xy: 2567, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-press-small
rotate: false
- xy: 2176, 99
+ xy: 3112, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-spore-press-tiny
rotate: false
- xy: 2789, 172
+ xy: 4043, 202
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-spore-press-xlarge
rotate: false
- xy: 2009, 413
+ xy: 2109, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-spore-wall-large
rotate: false
- xy: 3146, 287
+ xy: 2860, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-spore-wall-medium
rotate: false
- xy: 1323, 41
+ xy: 2601, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spore-wall-small
rotate: false
- xy: 2202, 99
+ xy: 3831, 247
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-spore-wall-tiny
rotate: false
- xy: 2807, 172
+ xy: 4061, 220
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-spore-wall-xlarge
rotate: false
- xy: 2059, 413
+ xy: 2159, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-steam-generator-large
rotate: false
- xy: 3188, 287
+ xy: 2902, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-steam-generator-medium
rotate: false
- xy: 1357, 75
+ xy: 2635, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-steam-generator-small
rotate: false
- xy: 2228, 99
+ xy: 3831, 221
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-steam-generator-tiny
rotate: false
- xy: 2825, 172
+ xy: 4079, 220
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-steam-generator-xlarge
rotate: false
- xy: 2109, 413
+ xy: 2209, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-stone-large
rotate: false
- xy: 3230, 287
+ xy: 2944, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-stone-medium
rotate: false
- xy: 1391, 109
+ xy: 2669, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-stone-small
rotate: false
- xy: 2254, 99
+ xy: 3138, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-stone-tiny
rotate: false
- xy: 2843, 172
+ xy: 4043, 184
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-stone-wall-large
rotate: false
- xy: 3272, 287
+ xy: 2986, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-stone-wall-medium
rotate: false
- xy: 1425, 143
+ xy: 2703, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-stone-wall-small
rotate: false
- xy: 2280, 99
+ xy: 3164, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-stone-wall-tiny
rotate: false
- xy: 2861, 172
+ xy: 4061, 202
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-stone-wall-xlarge
rotate: false
- xy: 2159, 413
+ xy: 2259, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-stone-xlarge
rotate: false
- xy: 2209, 413
+ xy: 2309, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-surge-tower-large
rotate: false
- xy: 3314, 287
+ xy: 3028, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-surge-tower-medium
rotate: false
- xy: 1357, 41
+ xy: 2737, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-surge-tower-small
rotate: false
- xy: 2306, 99
+ xy: 3190, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-surge-tower-tiny
rotate: false
- xy: 2879, 172
+ xy: 4079, 202
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-surge-tower-xlarge
rotate: false
- xy: 2259, 413
+ xy: 2359, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-surge-wall-large
rotate: false
- xy: 3356, 287
+ xy: 3070, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-surge-wall-large-large
rotate: false
- xy: 3398, 287
+ xy: 3112, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-surge-wall-large-medium
rotate: false
- xy: 1391, 75
+ xy: 2771, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-surge-wall-large-small
rotate: false
- xy: 2332, 98
+ xy: 3216, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-surge-wall-large-tiny
rotate: false
- xy: 2897, 172
+ xy: 4061, 184
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-surge-wall-large-xlarge
rotate: false
- xy: 2309, 413
+ xy: 2409, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-surge-wall-medium
rotate: false
- xy: 1425, 109
+ xy: 2805, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-surge-wall-small
rotate: false
- xy: 1991, 73
+ xy: 3242, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-surge-wall-tiny
rotate: false
- xy: 2915, 172
+ xy: 4079, 184
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-surge-wall-xlarge
rotate: false
- xy: 2359, 413
+ xy: 2459, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-swarmer-large
rotate: false
- xy: 3440, 287
+ xy: 3154, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-swarmer-medium
rotate: false
- xy: 1459, 143
+ xy: 2839, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-swarmer-small
rotate: false
- xy: 2017, 73
+ xy: 3268, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-swarmer-tiny
rotate: false
- xy: 2933, 172
+ xy: 4043, 166
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-swarmer-xlarge
rotate: false
- xy: 2409, 413
+ xy: 2509, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-switch-large
rotate: false
- xy: 3482, 287
+ xy: 3196, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-switch-medium
rotate: false
- xy: 1391, 41
+ xy: 2873, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-switch-small
rotate: false
- xy: 2043, 73
+ xy: 3297, 65
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-switch-tiny
rotate: false
- xy: 2951, 172
+ xy: 4061, 166
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-switch-xlarge
rotate: false
- xy: 2459, 413
+ xy: 2559, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-tainted-water-large
rotate: false
- xy: 3524, 287
+ xy: 3238, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-tainted-water-medium
rotate: false
- xy: 1425, 75
+ xy: 2907, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-tainted-water-small
rotate: false
- xy: 2069, 73
+ xy: 3323, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-tainted-water-tiny
rotate: false
- xy: 2969, 172
+ xy: 4079, 166
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-tainted-water-xlarge
rotate: false
- xy: 2509, 413
+ xy: 2609, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-tar-large
rotate: false
- xy: 3566, 287
+ xy: 3280, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-tar-medium
rotate: false
- xy: 1459, 109
+ xy: 1505, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-tar-small
rotate: false
- xy: 2095, 73
+ xy: 3349, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-tar-tiny
rotate: false
- xy: 2987, 172
+ xy: 2007, 100
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-tar-xlarge
rotate: false
- xy: 2559, 413
+ xy: 2659, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-tendrils-large
rotate: false
- xy: 3608, 287
+ xy: 3322, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-tendrils-medium
rotate: false
- xy: 1493, 143
+ xy: 1539, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-tendrils-small
rotate: false
- xy: 2121, 73
+ xy: 3375, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-tendrils-tiny
rotate: false
- xy: 3005, 172
+ xy: 2025, 100
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-tendrils-xlarge
rotate: false
- xy: 2609, 413
+ xy: 2709, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-tetrative-reconstructor-large
rotate: false
- xy: 3650, 287
+ xy: 3364, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-tetrative-reconstructor-medium
rotate: false
- xy: 1425, 41
+ xy: 1573, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-tetrative-reconstructor-small
rotate: false
- xy: 2147, 73
+ xy: 3401, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-tetrative-reconstructor-tiny
rotate: false
- xy: 3023, 172
+ xy: 2007, 82
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-tetrative-reconstructor-xlarge
rotate: false
- xy: 2659, 413
+ xy: 2759, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-thermal-generator-large
rotate: false
- xy: 3692, 293
+ xy: 3406, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-thermal-generator-medium
rotate: false
- xy: 1459, 75
+ xy: 1607, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-thermal-generator-small
rotate: false
- xy: 2173, 73
+ xy: 3427, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-thermal-generator-tiny
rotate: false
- xy: 3041, 172
+ xy: 2025, 82
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-thermal-generator-xlarge
rotate: false
- xy: 2709, 413
+ xy: 2809, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-thermal-pump-large
rotate: false
- xy: 3734, 323
+ xy: 3448, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-thermal-pump-medium
rotate: false
- xy: 1493, 109
+ xy: 1641, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-thermal-pump-small
rotate: false
- xy: 2199, 73
+ xy: 3453, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-thermal-pump-tiny
rotate: false
- xy: 3059, 172
+ xy: 2043, 83
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-thermal-pump-xlarge
rotate: false
- xy: 2759, 413
+ xy: 2859, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-thorium-reactor-large
rotate: false
- xy: 3734, 281
+ xy: 3490, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-thorium-reactor-medium
rotate: false
- xy: 1527, 143
+ xy: 1675, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-thorium-reactor-small
rotate: false
- xy: 2225, 73
+ xy: 3479, 67
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-thorium-reactor-tiny
rotate: false
- xy: 3077, 172
+ xy: 2061, 83
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-thorium-reactor-xlarge
rotate: false
- xy: 2809, 413
+ xy: 2909, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-thorium-wall-large
rotate: false
- xy: 3692, 251
+ xy: 3532, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-thorium-wall-large-large
rotate: false
- xy: 3734, 239
+ xy: 3574, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-thorium-wall-large-medium
rotate: false
- xy: 1459, 41
+ xy: 1709, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-thorium-wall-large-small
rotate: false
- xy: 2251, 73
+ xy: 3505, 67
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-thorium-wall-large-tiny
rotate: false
- xy: 3095, 172
+ xy: 1231, 151
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-thorium-wall-large-xlarge
rotate: false
- xy: 2859, 413
+ xy: 2959, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-thorium-wall-medium
rotate: false
- xy: 1493, 75
+ xy: 1743, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-thorium-wall-small
rotate: false
- xy: 2277, 73
+ xy: 3531, 55
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-thorium-wall-tiny
rotate: false
- xy: 3113, 172
+ xy: 1249, 151
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-thorium-wall-xlarge
rotate: false
- xy: 2909, 413
+ xy: 3009, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-thruster-large
rotate: false
- xy: 1001, 245
+ xy: 3616, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-thruster-medium
rotate: false
- xy: 1527, 109
+ xy: 1777, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-thruster-small
rotate: false
- xy: 2303, 73
+ xy: 3557, 35
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-thruster-tiny
rotate: false
- xy: 3131, 172
+ xy: 1231, 133
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-thruster-xlarge
rotate: false
- xy: 2959, 413
+ xy: 3059, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-titanium-conveyor-large
rotate: false
- xy: 1043, 245
+ xy: 3658, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-titanium-conveyor-medium
rotate: false
- xy: 1561, 143
+ xy: 1811, 177
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-titanium-conveyor-small
rotate: false
- xy: 2329, 72
+ xy: 3583, 29
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-titanium-conveyor-tiny
rotate: false
- xy: 3149, 172
+ xy: 1231, 115
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-titanium-conveyor-xlarge
rotate: false
- xy: 3009, 413
+ xy: 3109, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-titanium-wall-large
rotate: false
- xy: 1085, 245
+ xy: 3700, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-titanium-wall-large-large
rotate: false
- xy: 1127, 245
+ xy: 3742, 287
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-titanium-wall-large-medium
rotate: false
- xy: 1493, 41
+ xy: 1497, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-titanium-wall-large-small
rotate: false
- xy: 1991, 47
+ xy: 3609, 29
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-titanium-wall-large-tiny
rotate: false
- xy: 3167, 172
+ xy: 1249, 133
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-titanium-wall-large-xlarge
rotate: false
- xy: 3059, 413
+ xy: 3159, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-titanium-wall-medium
rotate: false
- xy: 1527, 75
+ xy: 1531, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-titanium-wall-small
rotate: false
- xy: 2017, 47
+ xy: 3635, 29
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-titanium-wall-tiny
rotate: false
- xy: 3185, 172
+ xy: 1231, 97
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-titanium-wall-xlarge
rotate: false
- xy: 3109, 413
+ xy: 3209, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-tsunami-large
rotate: false
- xy: 1169, 245
+ xy: 1093, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-tsunami-medium
rotate: false
- xy: 1561, 109
+ xy: 1565, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-tsunami-small
rotate: false
- xy: 2043, 47
+ xy: 3661, 29
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-tsunami-tiny
rotate: false
- xy: 3203, 172
+ xy: 1231, 79
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-tsunami-xlarge
rotate: false
- xy: 3159, 413
+ xy: 3259, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-underflow-gate-large
rotate: false
- xy: 1211, 245
+ xy: 1135, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-underflow-gate-medium
rotate: false
- xy: 1527, 41
+ xy: 1599, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-underflow-gate-small
rotate: false
- xy: 2069, 47
+ xy: 3687, 19
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-underflow-gate-tiny
rotate: false
- xy: 3221, 172
+ xy: 1249, 115
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-underflow-gate-xlarge
rotate: false
- xy: 3209, 413
+ xy: 3309, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-unloader-large
rotate: false
- xy: 1253, 245
+ xy: 1177, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-unloader-medium
rotate: false
- xy: 1561, 75
+ xy: 1633, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-unloader-small
rotate: false
- xy: 2095, 47
+ xy: 3713, 19
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-unloader-tiny
rotate: false
- xy: 3239, 172
+ xy: 1231, 61
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-unloader-xlarge
rotate: false
- xy: 3259, 413
+ xy: 3359, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-vault-large
rotate: false
- xy: 1295, 245
+ xy: 1219, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-vault-medium
rotate: false
- xy: 1561, 41
+ xy: 1667, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-vault-small
rotate: false
- xy: 2121, 47
+ xy: 3739, 4
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-vault-tiny
rotate: false
- xy: 3257, 172
+ xy: 1249, 97
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-vault-xlarge
rotate: false
- xy: 3309, 413
+ xy: 3409, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-water-extractor-large
rotate: false
- xy: 1337, 245
+ xy: 1261, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-water-extractor-medium
rotate: false
- xy: 1017, 7
+ xy: 1701, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-water-extractor-small
rotate: false
- xy: 2147, 47
+ xy: 3765, 4
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-water-extractor-tiny
rotate: false
- xy: 3275, 172
+ xy: 1249, 79
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-water-extractor-xlarge
rotate: false
- xy: 3359, 413
+ xy: 3459, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-water-large
rotate: false
- xy: 1379, 245
+ xy: 1303, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-water-medium
rotate: false
- xy: 1051, 7
+ xy: 1735, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-water-small
rotate: false
- xy: 2173, 47
+ xy: 3005, 107
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-water-tiny
rotate: false
- xy: 3293, 172
+ xy: 1231, 43
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-water-xlarge
rotate: false
- xy: 3409, 413
+ xy: 3509, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-wave-large
rotate: false
- xy: 1421, 245
+ xy: 1345, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-wave-medium
rotate: false
- xy: 1085, 7
+ xy: 1769, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-wave-small
rotate: false
- xy: 2199, 47
+ xy: 3004, 81
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-wave-tiny
rotate: false
- xy: 3311, 172
+ xy: 1249, 61
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-wave-xlarge
rotate: false
- xy: 3459, 413
+ xy: 3559, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-white-tree-dead-large
rotate: false
- xy: 1463, 245
+ xy: 1387, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-white-tree-dead-medium
rotate: false
- xy: 1119, 7
+ xy: 1803, 143
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-white-tree-dead-small
rotate: false
- xy: 2225, 47
+ xy: 3001, 55
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-white-tree-dead-tiny
rotate: false
- xy: 3329, 172
+ xy: 1231, 25
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-white-tree-dead-xlarge
rotate: false
- xy: 3509, 413
+ xy: 3609, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
block-white-tree-large
rotate: false
- xy: 1505, 245
+ xy: 1429, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-white-tree-medium
rotate: false
- xy: 1153, 7
+ xy: 965, 163
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-white-tree-small
rotate: false
- xy: 2251, 47
+ xy: 3001, 29
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-white-tree-tiny
rotate: false
- xy: 3347, 172
+ xy: 1249, 43
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-white-tree-xlarge
rotate: false
- xy: 3559, 413
+ xy: 3659, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
button
rotate: false
- xy: 2989, 258
+ xy: 2527, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21195,7 +22735,7 @@ button-edge-over-4
index: -1
button-over
rotate: false
- xy: 4059, 281
+ xy: 2185, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21203,7 +22743,7 @@ button-over
index: -1
button-red
rotate: false
- xy: 4059, 252
+ xy: 2223, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21211,7 +22751,7 @@ button-red
index: -1
button-right
rotate: false
- xy: 2799, 258
+ xy: 2337, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21219,7 +22759,7 @@ button-right
index: -1
button-right-down
rotate: false
- xy: 2723, 258
+ xy: 2261, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21227,7 +22767,7 @@ button-right-down
index: -1
button-right-over
rotate: false
- xy: 2761, 258
+ xy: 2299, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21235,7 +22775,7 @@ button-right-over
index: -1
button-select
rotate: false
- xy: 2277, 47
+ xy: 3479, 41
size: 24, 24
split: 4, 4, 4, 4
orig: 24, 24
@@ -21243,7 +22783,7 @@ button-select
index: -1
button-square
rotate: false
- xy: 2913, 258
+ xy: 2451, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21251,7 +22791,7 @@ button-square
index: -1
button-square-down
rotate: false
- xy: 2837, 258
+ xy: 2375, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21259,7 +22799,7 @@ button-square-down
index: -1
button-square-over
rotate: false
- xy: 2875, 258
+ xy: 2413, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21267,7 +22807,7 @@ button-square-over
index: -1
button-trans
rotate: false
- xy: 2951, 258
+ xy: 2489, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21275,42 +22815,42 @@ button-trans
index: -1
check-disabled
rotate: false
- xy: 1187, 7
+ xy: 965, 129
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-off
rotate: false
- xy: 1221, 7
+ xy: 965, 95
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on
rotate: false
- xy: 1255, 7
+ xy: 965, 61
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on-disabled
rotate: false
- xy: 1289, 7
+ xy: 965, 27
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on-over
rotate: false
- xy: 1323, 7
+ xy: 999, 154
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-over
rotate: false
- xy: 1357, 7
+ xy: 1033, 154
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -21324,14 +22864,14 @@ clear
index: -1
crater
rotate: false
- xy: 1789, 1
+ xy: 3479, 199
size: 18, 18
orig: 18, 18
offset: 0, 0
index: -1
cursor
rotate: false
- xy: 2003, 247
+ xy: 1881, 177
size: 4, 4
orig: 4, 4
offset: 0, 0
@@ -21345,7 +22885,7 @@ discord-banner
index: -1
flat-down-base
rotate: false
- xy: 3027, 258
+ xy: 2565, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21360,7 +22900,7 @@ info-banner
index: -1
inventory
rotate: false
- xy: 3835, 271
+ xy: 3505, 25
size: 24, 40
split: 10, 10, 10, 14
orig: 24, 40
@@ -21368,147 +22908,147 @@ inventory
index: -1
item-blast-compound-icon
rotate: false
- xy: 1391, 7
+ xy: 999, 120
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-coal-icon
rotate: false
- xy: 1425, 7
+ xy: 1067, 154
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-copper-icon
rotate: false
- xy: 1459, 7
+ xy: 999, 86
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-graphite-icon
rotate: false
- xy: 1493, 7
+ xy: 1033, 120
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-lead-icon
rotate: false
- xy: 1527, 7
+ xy: 999, 52
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-metaglass-icon
rotate: false
- xy: 1561, 7
+ xy: 1033, 86
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-phase-fabric-icon
rotate: false
- xy: 1595, 143
+ xy: 1067, 120
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-plastanium-icon
rotate: false
- xy: 1595, 109
+ xy: 1033, 52
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-pyratite-icon
rotate: false
- xy: 1595, 75
+ xy: 1067, 86
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-sand-icon
rotate: false
- xy: 1595, 41
+ xy: 1067, 52
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap-icon
rotate: false
- xy: 1595, 7
+ xy: 999, 18
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-silicon-icon
rotate: false
- xy: 1615, 177
+ xy: 1033, 18
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-spore-pod-icon
rotate: false
- xy: 1629, 143
+ xy: 1067, 18
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-surge-alloy-icon
rotate: false
- xy: 1629, 109
+ xy: 2941, 156
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-thorium-icon
rotate: false
- xy: 1629, 75
+ xy: 2941, 122
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-titanium-icon
rotate: false
- xy: 1629, 41
+ xy: 2941, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-cryofluid-icon
rotate: false
- xy: 1629, 7
+ xy: 2941, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-oil-icon
rotate: false
- xy: 1649, 179
+ xy: 3090, 211
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-slag-icon
rotate: false
- xy: 1663, 145
+ xy: 3125, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-water-icon
rotate: false
- xy: 1663, 111
+ xy: 3159, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
logic-node
rotate: false
- xy: 1663, 77
+ xy: 3193, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -21529,7 +23069,7 @@ nomap
index: -1
pane
rotate: false
- xy: 3103, 258
+ xy: 2641, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21537,7 +23077,7 @@ pane
index: -1
pane-2
rotate: false
- xy: 3065, 258
+ xy: 2603, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21545,7 +23085,7 @@ pane-2
index: -1
scroll
rotate: false
- xy: 2303, 36
+ xy: 3836, 273
size: 24, 35
split: 10, 10, 6, 5
orig: 24, 35
@@ -21553,7 +23093,7 @@ scroll
index: -1
scroll-horizontal
rotate: false
- xy: 3407, 261
+ xy: 2945, 261
size: 35, 24
split: 6, 5, 10, 10
orig: 35, 24
@@ -21561,56 +23101,56 @@ scroll-horizontal
index: -1
scroll-knob-horizontal-black
rotate: false
- xy: 859, 172
+ xy: 1471, 261
size: 40, 24
orig: 40, 24
offset: 0, 0
index: -1
scroll-knob-vertical-black
rotate: false
- xy: 3861, 271
+ xy: 3531, 13
size: 24, 40
orig: 24, 40
offset: 0, 0
index: -1
scroll-knob-vertical-thin
rotate: false
- xy: 3995, 271
+ xy: 845, 379
size: 12, 40
orig: 12, 40
offset: 0, 0
index: -1
selection
rotate: false
- xy: 1001, 310
+ xy: 821, 463
size: 1, 1
orig: 1, 1
offset: 0, 0
index: -1
slider
rotate: false
- xy: 3689, 277
+ xy: 3001, 81
size: 1, 8
orig: 1, 8
offset: 0, 0
index: -1
slider-knob
rotate: false
- xy: 3489, 197
+ xy: 2951, 221
size: 29, 38
orig: 29, 38
offset: 0, 0
index: -1
slider-knob-down
rotate: false
- xy: 3520, 197
+ xy: 2982, 205
size: 29, 38
orig: 29, 38
offset: 0, 0
index: -1
slider-knob-over
rotate: false
- xy: 3489, 157
+ xy: 3013, 205
size: 29, 38
orig: 29, 38
offset: 0, 0
@@ -21624,7 +23164,7 @@ slider-vertical
index: -1
underline
rotate: false
- xy: 3293, 258
+ xy: 2831, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21632,7 +23172,7 @@ underline
index: -1
underline-2
rotate: false
- xy: 3141, 258
+ xy: 2679, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21640,7 +23180,7 @@ underline-2
index: -1
underline-disabled
rotate: false
- xy: 3179, 258
+ xy: 2717, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21648,7 +23188,7 @@ underline-disabled
index: -1
underline-red
rotate: false
- xy: 3217, 258
+ xy: 2755, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21656,7 +23196,7 @@ underline-red
index: -1
underline-white
rotate: false
- xy: 3255, 258
+ xy: 2793, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -21664,35 +23204,35 @@ underline-white
index: -1
unit-alpha-large
rotate: false
- xy: 1547, 245
+ xy: 1127, 203
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-alpha-medium
rotate: false
- xy: 1663, 43
+ xy: 3227, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-alpha-small
rotate: false
- xy: 2329, 46
+ xy: 3557, 9
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-alpha-tiny
rotate: false
- xy: 3365, 172
+ xy: 1249, 25
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-alpha-xlarge
rotate: false
- xy: 3609, 413
+ xy: 3709, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
@@ -21706,189 +23246,189 @@ unit-antumbra-large
index: -1
unit-antumbra-medium
rotate: false
- xy: 3776, 271
+ xy: 3044, 203
size: 28, 32
orig: 28, 32
offset: 0, 0
index: -1
unit-antumbra-small
rotate: false
- xy: 257, 20
+ xy: 2951, 195
size: 21, 24
orig: 21, 24
offset: 0, 0
index: -1
unit-antumbra-tiny
rotate: false
- xy: 2623, 219
+ xy: 3723, 1
size: 14, 16
orig: 14, 16
offset: 0, 0
index: -1
unit-antumbra-xlarge
rotate: false
- xy: 959, 363
+ xy: 909, 173
size: 43, 48
orig: 43, 48
offset: 0, 0
index: -1
unit-arkyid-large
rotate: false
- xy: 1589, 245
+ xy: 1169, 203
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-arkyid-medium
rotate: false
- xy: 1663, 9
+ xy: 3261, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-arkyid-small
rotate: false
- xy: 2358, 110
+ xy: 3583, 3
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-arkyid-tiny
rotate: false
- xy: 3383, 172
+ xy: 1231, 7
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-arkyid-xlarge
rotate: false
- xy: 3659, 413
+ xy: 3759, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-atrax-large
rotate: false
- xy: 1631, 256
+ xy: 1211, 214
size: 40, 29
orig: 40, 29
offset: 0, 0
index: -1
unit-atrax-medium
rotate: false
- xy: 1683, 186
+ xy: 965, 2
size: 32, 23
orig: 32, 23
offset: 0, 0
index: -1
unit-atrax-small
rotate: false
- xy: 1731, 25
+ xy: 3609, 10
size: 24, 17
orig: 24, 17
offset: 0, 0
index: -1
unit-atrax-tiny
rotate: false
- xy: 2723, 245
+ xy: 2185, 245
size: 16, 11
orig: 16, 11
offset: 0, 0
index: -1
unit-atrax-xlarge
rotate: false
- xy: 3709, 427
+ xy: 3809, 427
size: 48, 34
orig: 48, 34
offset: 0, 0
index: -1
unit-beta-large
rotate: false
- xy: 1673, 247
+ xy: 1253, 205
size: 40, 38
orig: 40, 38
offset: 0, 0
index: -1
unit-beta-medium
rotate: false
- xy: 3776, 239
+ xy: 3295, 221
size: 32, 30
orig: 32, 30
offset: 0, 0
index: -1
unit-beta-small
rotate: false
- xy: 2358, 85
+ xy: 3635, 4
size: 24, 23
orig: 24, 23
offset: 0, 0
index: -1
unit-beta-tiny
rotate: false
- xy: 881, 155
+ xy: 1051, 1
size: 16, 15
orig: 16, 15
offset: 0, 0
index: -1
unit-beta-xlarge
rotate: false
- xy: 3759, 415
+ xy: 3859, 415
size: 48, 46
orig: 48, 46
offset: 0, 0
index: -1
unit-bryde-large
rotate: false
- xy: 1715, 245
+ xy: 1295, 203
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-bryde-medium
rotate: false
- xy: 3791, 205
+ xy: 3329, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-bryde-small
rotate: false
- xy: 2355, 59
+ xy: 3661, 3
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-bryde-tiny
rotate: false
- xy: 3401, 172
+ xy: 1249, 7
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-bryde-xlarge
rotate: false
- xy: 3809, 413
+ xy: 3909, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-corvus-large
rotate: false
- xy: 1757, 259
+ xy: 1337, 217
size: 40, 26
orig: 40, 26
offset: 0, 0
index: -1
unit-corvus-medium
rotate: false
- xy: 1697, 1
+ xy: 3703, 197
size: 31, 20
orig: 31, 20
offset: 0, 0
index: -1
unit-corvus-small
rotate: false
- xy: 3859, 313
+ xy: 999, 1
size: 24, 15
orig: 24, 15
offset: 0, 0
@@ -21902,336 +23442,336 @@ unit-corvus-tiny
index: -1
unit-corvus-xlarge
rotate: false
- xy: 3859, 430
+ xy: 3959, 430
size: 48, 31
orig: 48, 31
offset: 0, 0
index: -1
unit-crawler-large
rotate: false
- xy: 1799, 245
+ xy: 1379, 203
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-crawler-medium
rotate: false
- xy: 3825, 329
+ xy: 3363, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-crawler-small
rotate: false
- xy: 2355, 33
+ xy: 3857, 247
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-crawler-tiny
rotate: false
- xy: 2735, 154
+ xy: 3820, 185
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-crawler-xlarge
rotate: false
- xy: 3909, 413
+ xy: 4009, 413
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-dagger-large
rotate: false
- xy: 1841, 245
+ xy: 1421, 203
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-dagger-medium
rotate: false
- xy: 1697, 152
+ xy: 3397, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-dagger-small
rotate: false
- xy: 2329, 20
+ xy: 3857, 221
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-dagger-tiny
rotate: false
- xy: 2753, 154
+ xy: 3838, 185
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-dagger-xlarge
rotate: false
- xy: 3959, 413
+ xy: 3959, 380
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-eclipse-large
rotate: false
- xy: 1883, 245
+ xy: 1337, 175
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-eclipse-medium
rotate: false
- xy: 1697, 118
+ xy: 3431, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-eclipse-small
rotate: false
- xy: 2355, 7
+ xy: 3883, 349
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-eclipse-tiny
rotate: false
- xy: 2771, 154
+ xy: 3856, 185
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-eclipse-xlarge
rotate: false
- xy: 4009, 413
+ xy: 4009, 363
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-flare-large
rotate: false
- xy: 1925, 245
+ xy: 1379, 161
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-flare-medium
rotate: false
- xy: 1697, 84
+ xy: 3465, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-flare-small
rotate: false
- xy: 2384, 99
+ xy: 3909, 337
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-flare-tiny
rotate: false
- xy: 2789, 154
+ xy: 3814, 167
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-flare-xlarge
rotate: false
- xy: 3859, 380
+ xy: 3809, 377
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-fortress-large
rotate: false
- xy: 1967, 253
+ xy: 1421, 169
size: 40, 32
orig: 40, 32
offset: 0, 0
index: -1
unit-fortress-medium
rotate: false
- xy: 1697, 57
+ xy: 3499, 226
size: 32, 25
orig: 32, 25
offset: 0, 0
index: -1
unit-fortress-small
rotate: false
- xy: 1757, 23
+ xy: 3883, 328
size: 24, 19
orig: 24, 19
offset: 0, 0
index: -1
unit-fortress-tiny
rotate: false
- xy: 2476, 125
+ xy: 1, 2
size: 16, 12
orig: 16, 12
offset: 0, 0
index: -1
unit-fortress-xlarge
rotate: false
- xy: 3909, 373
+ xy: 3859, 375
size: 48, 38
orig: 48, 38
offset: 0, 0
index: -1
unit-gamma-large
rotate: false
- xy: 2009, 245
+ xy: 1513, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-gamma-medium
rotate: false
- xy: 1697, 23
+ xy: 3533, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-gamma-small
rotate: false
- xy: 1783, 29
+ xy: 3909, 311
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-gamma-tiny
rotate: false
- xy: 2807, 154
+ xy: 3832, 167
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-gamma-xlarge
rotate: false
- xy: 3959, 363
+ xy: 3909, 363
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-horizon-large
rotate: false
- xy: 2051, 245
+ xy: 1555, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-horizon-medium
rotate: false
- xy: 3586, 185
+ xy: 3567, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-horizon-small
rotate: false
- xy: 2410, 99
+ xy: 3883, 302
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-horizon-tiny
rotate: false
- xy: 2825, 154
+ xy: 3850, 167
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-horizon-xlarge
rotate: false
- xy: 4009, 363
+ xy: 3959, 330
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-mace-large
rotate: false
- xy: 2093, 245
+ xy: 1597, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-mace-medium
rotate: false
- xy: 3620, 185
+ xy: 3601, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-mace-small
rotate: false
- xy: 1809, 29
+ xy: 3909, 285
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-mace-tiny
rotate: false
- xy: 2843, 154
+ xy: 3817, 149
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-mace-xlarge
rotate: false
- xy: 3709, 377
+ xy: 4009, 313
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-mega-large
rotate: false
- xy: 2135, 245
+ xy: 1639, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-mega-medium
rotate: false
- xy: 3654, 185
+ xy: 3635, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-mega-small
rotate: false
- xy: 2436, 99
+ xy: 3883, 276
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-mega-tiny
rotate: false
- xy: 2861, 154
+ xy: 3817, 131
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-mega-xlarge
rotate: false
- xy: 3759, 365
+ xy: 859, 363
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-minke-large
rotate: false
- xy: 3481, 245
+ xy: 3019, 245
size: 34, 40
orig: 34, 40
offset: 0, 0
index: -1
unit-minke-medium
rotate: false
- xy: 3806, 271
+ xy: 3005, 133
size: 27, 32
orig: 27, 32
offset: 0, 0
@@ -22245,385 +23785,385 @@ unit-minke-small
index: -1
unit-minke-tiny
rotate: false
- xy: 4044, 253
+ xy: 1447, 151
size: 13, 16
orig: 13, 16
offset: 0, 0
index: -1
unit-minke-xlarge
rotate: false
- xy: 859, 198
+ xy: 1009, 272
size: 41, 48
orig: 41, 48
offset: 0, 0
index: -1
unit-mono-large
rotate: false
- xy: 2177, 245
+ xy: 1681, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-mono-medium
rotate: false
- xy: 3688, 183
+ xy: 3669, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-mono-small
rotate: false
- xy: 1835, 29
+ xy: 3883, 250
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-mono-tiny
rotate: false
- xy: 2879, 154
+ xy: 3835, 149
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-mono-xlarge
rotate: false
- xy: 3809, 363
+ xy: 859, 313
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-nova-large
rotate: false
- xy: 2219, 245
+ xy: 1723, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-nova-medium
rotate: false
- xy: 3722, 171
+ xy: 3703, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-nova-small
rotate: false
- xy: 1861, 29
+ xy: 3909, 259
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-nova-tiny
rotate: false
- xy: 2897, 154
+ xy: 3817, 113
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-nova-xlarge
rotate: false
- xy: 3859, 330
+ xy: 859, 263
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-oct-large
rotate: false
- xy: 2261, 245
+ xy: 1765, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-oct-medium
rotate: false
- xy: 3756, 171
+ xy: 3737, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-oct-small
rotate: false
- xy: 1887, 29
+ xy: 3883, 224
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-oct-tiny
rotate: false
- xy: 2915, 154
+ xy: 3835, 131
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-oct-xlarge
rotate: false
- xy: 3909, 323
+ xy: 909, 363
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-omura-large
rotate: false
- xy: 3520, 155
+ xy: 2975, 163
size: 28, 40
orig: 28, 40
offset: 0, 0
index: -1
unit-omura-medium
rotate: false
- xy: 1733, 211
+ xy: 257, 12
size: 22, 32
orig: 22, 32
offset: 0, 0
index: -1
unit-omura-small
rotate: false
- xy: 2933, 146
+ xy: 3817, 87
size: 16, 24
orig: 16, 24
offset: 0, 0
index: -1
unit-omura-tiny
rotate: false
- xy: 4084, 156
+ xy: 3723, 157
size: 11, 16
orig: 11, 16
offset: 0, 0
index: -1
unit-omura-xlarge
rotate: false
- xy: 3517, 237
+ xy: 3055, 237
size: 33, 48
orig: 33, 48
offset: 0, 0
index: -1
unit-poly-large
rotate: false
- xy: 2303, 245
+ xy: 1807, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-poly-medium
rotate: false
- xy: 3790, 171
+ xy: 3771, 219
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-poly-small
rotate: false
- xy: 1913, 29
+ xy: 3909, 233
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-poly-tiny
rotate: false
- xy: 2951, 154
+ xy: 3835, 113
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-poly-xlarge
rotate: false
- xy: 3959, 313
+ xy: 909, 313
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-pulsar-large
rotate: false
- xy: 2345, 251
+ xy: 1849, 251
size: 40, 34
orig: 40, 34
offset: 0, 0
index: -1
unit-pulsar-medium
rotate: false
- xy: 2345, 222
+ xy: 3499, 197
size: 32, 27
orig: 32, 27
offset: 0, 0
index: -1
unit-pulsar-small
rotate: false
- xy: 1763, 1
+ xy: 3909, 211
size: 24, 20
orig: 24, 20
offset: 0, 0
index: -1
unit-pulsar-tiny
rotate: false
- xy: 1, 1
+ xy: 1093, 230
size: 16, 13
orig: 16, 13
offset: 0, 0
index: -1
unit-pulsar-xlarge
rotate: false
- xy: 4009, 321
+ xy: 859, 221
size: 48, 40
orig: 48, 40
offset: 0, 0
index: -1
unit-quad-large
rotate: false
- xy: 2387, 245
+ xy: 1891, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-quad-medium
rotate: false
- xy: 3776, 332
+ xy: 3736, 186
size: 31, 31
orig: 31, 31
offset: 0, 0
index: -1
unit-quad-small
rotate: false
- xy: 1939, 29
+ xy: 3883, 198
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-quad-tiny
rotate: false
- xy: 3692, 396
+ xy: 1069, 1
size: 15, 15
orig: 15, 15
offset: 0, 0
index: -1
unit-quad-xlarge
rotate: false
- xy: 4009, 271
+ xy: 909, 263
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-quasar-large
rotate: false
- xy: 2429, 245
+ xy: 1933, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-quasar-medium
rotate: false
- xy: 2343, 188
+ xy: 3533, 185
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-quasar-small
rotate: false
- xy: 1965, 29
+ xy: 3909, 185
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-quasar-tiny
rotate: false
- xy: 2969, 154
+ xy: 3817, 69
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-quasar-xlarge
rotate: false
- xy: 859, 363
+ xy: 959, 363
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-reign-large
rotate: false
- xy: 1757, 231
+ xy: 1471, 233
size: 40, 26
orig: 40, 26
offset: 0, 0
index: -1
unit-reign-medium
rotate: false
- xy: 1730, 1
+ xy: 3703, 175
size: 31, 20
orig: 31, 20
offset: 0, 0
index: -1
unit-reign-small
rotate: false
- xy: 1991, 30
+ xy: 1025, 1
size: 24, 15
orig: 24, 15
offset: 0, 0
index: -1
unit-reign-tiny
rotate: false
- xy: 3734, 365
+ xy: 3862, 273
size: 15, 10
orig: 15, 10
offset: 0, 0
index: -1
unit-reign-xlarge
rotate: false
- xy: 859, 330
+ xy: 959, 330
size: 48, 31
orig: 48, 31
offset: 0, 0
index: -1
unit-risso-large
rotate: false
- xy: 3444, 245
+ xy: 2982, 245
size: 35, 40
orig: 35, 40
offset: 0, 0
index: -1
unit-risso-medium
rotate: false
- xy: 3551, 177
+ xy: 2975, 129
size: 28, 32
orig: 28, 32
offset: 0, 0
index: -1
unit-risso-small
rotate: false
- xy: 2447, 219
+ xy: 3935, 337
size: 21, 24
orig: 21, 24
offset: 0, 0
index: -1
unit-risso-tiny
rotate: false
- xy: 2539, 227
+ xy: 3074, 219
size: 14, 16
orig: 14, 16
offset: 0, 0
index: -1
unit-risso-xlarge
rotate: false
- xy: 959, 313
+ xy: 1009, 322
size: 43, 48
orig: 43, 48
offset: 0, 0
index: -1
unit-scepter-large
rotate: false
- xy: 2471, 253
+ xy: 1975, 253
size: 40, 32
orig: 40, 32
offset: 0, 0
index: -1
unit-scepter-medium
rotate: false
- xy: 2379, 217
+ xy: 3567, 191
size: 32, 26
orig: 32, 26
offset: 0, 0
index: -1
unit-scepter-small
rotate: false
- xy: 2017, 26
+ xy: 3031, 93
size: 24, 19
orig: 24, 19
offset: 0, 0
@@ -22637,84 +24177,84 @@ unit-scepter-tiny
index: -1
unit-scepter-xlarge
rotate: false
- xy: 859, 289
+ xy: 959, 289
size: 48, 39
orig: 48, 39
offset: 0, 0
index: -1
unit-sei-large
rotate: false
- xy: 2513, 245
+ xy: 1463, 191
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-sei-medium
rotate: false
- xy: 2413, 211
+ xy: 3601, 185
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-sei-small
rotate: false
- xy: 2043, 21
+ xy: 3030, 67
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-sei-tiny
rotate: false
- xy: 2987, 154
+ xy: 3835, 95
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-sei-xlarge
rotate: false
- xy: 909, 363
+ xy: 859, 171
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
unit-spiroct-large
rotate: false
- xy: 2555, 254
+ xy: 2017, 254
size: 40, 31
orig: 40, 31
offset: 0, 0
index: -1
unit-spiroct-medium
rotate: false
- xy: 3776, 305
+ xy: 3769, 192
size: 31, 25
orig: 31, 25
offset: 0, 0
index: -1
unit-spiroct-small
rotate: false
- xy: 2069, 26
+ xy: 3027, 46
size: 24, 19
orig: 24, 19
offset: 0, 0
index: -1
unit-spiroct-tiny
rotate: false
- xy: 3692, 382
+ xy: 3835, 81
size: 15, 12
orig: 15, 12
offset: 0, 0
index: -1
unit-spiroct-xlarge
rotate: false
- xy: 909, 323
+ xy: 909, 223
size: 48, 38
orig: 48, 38
offset: 0, 0
index: -1
unit-toxopid-large
rotate: false
- xy: 3552, 245
+ xy: 3090, 245
size: 33, 40
orig: 33, 40
offset: 0, 0
@@ -22728,42 +24268,42 @@ unit-toxopid-medium
index: -1
unit-toxopid-small
rotate: false
- xy: 2147, 21
+ xy: 3836, 323
size: 20, 24
orig: 20, 24
offset: 0, 0
index: -1
unit-toxopid-tiny
rotate: false
- xy: 899, 1
+ xy: 2007, 133
size: 13, 16
orig: 13, 16
offset: 0, 0
index: -1
unit-toxopid-xlarge
rotate: false
- xy: 2597, 237
+ xy: 2059, 237
size: 40, 48
orig: 40, 48
offset: 0, 0
index: -1
unit-vela-large
rotate: false
- xy: 2639, 253
+ xy: 2101, 253
size: 40, 32
orig: 40, 32
offset: 0, 0
index: -1
unit-vela-medium
rotate: false
- xy: 2377, 189
+ xy: 3635, 191
size: 32, 26
orig: 32, 26
offset: 0, 0
index: -1
unit-vela-small
rotate: false
- xy: 2095, 26
+ xy: 3027, 25
size: 24, 19
orig: 24, 19
offset: 0, 0
@@ -22777,49 +24317,49 @@ unit-vela-tiny
index: -1
unit-vela-xlarge
rotate: false
- xy: 859, 248
+ xy: 1009, 372
size: 48, 39
orig: 48, 39
offset: 0, 0
index: -1
unit-zenith-large
rotate: false
- xy: 2681, 245
+ xy: 2143, 245
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
unit-zenith-medium
rotate: false
- xy: 2411, 177
+ xy: 3669, 185
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unit-zenith-small
rotate: false
- xy: 2121, 21
+ xy: 3836, 349
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
unit-zenith-tiny
rotate: false
- xy: 3005, 154
+ xy: 3817, 51
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
unit-zenith-xlarge
rotate: false
- xy: 909, 273
+ xy: 959, 239
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
wavepane
rotate: false
- xy: 3331, 258
+ xy: 2869, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -22827,7 +24367,7 @@ wavepane
index: -1
white-pane
rotate: false
- xy: 3369, 258
+ xy: 2907, 258
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -22835,14 +24375,14 @@ white-pane
index: -1
whiteui
rotate: false
- xy: 821, 416
+ xy: 859, 166
size: 3, 3
orig: 3, 3
offset: 0, 0
index: -1
window-empty
rotate: false
- xy: 1731, 122
+ xy: 3034, 140
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 71293fe7a0..b5ee5dfea3 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 4a26e4dbe9..803ae731e6 100644
Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ
diff --git a/core/assets/sprites/sprites4.png b/core/assets/sprites/sprites4.png
index 20eed12539..55ce07e63a 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 2fe5605d60..cbf2bd9569 100644
Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ
diff --git a/core/src/mindustry/ClientLauncher.java b/core/src/mindustry/ClientLauncher.java
index 553c4ce2cc..3777da85c7 100644
--- a/core/src/mindustry/ClientLauncher.java
+++ b/core/src/mindustry/ClientLauncher.java
@@ -9,6 +9,7 @@ import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
import arc.util.async.*;
+import mindustry.ai.*;
import mindustry.core.*;
import mindustry.ctype.*;
import mindustry.game.EventType.*;
@@ -74,7 +75,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
Fonts.loadDefaultFont();
//load fallback atlas if max texture size is below 4096
- assets.load(new AssetDescriptor<>(Gl.getInt(Gl.maxTextureSize) >= 4096 ? "sprites/sprites.atlas" : "sprites/fallback/sprites.atlas", TextureAtlas.class)).loaded = t -> {
+ assets.load(new AssetDescriptor<>(Gl.getInt(Gl.maxTextureSize) >= 4096 ? "sprites/sprites.atlas" : "sprites/fallback/sprites.atlas", TextureAtlas.class)).loaded = t -> {
atlas = (TextureAtlas)t;
Fonts.mergeFontAtlas(atlas);
};
@@ -103,6 +104,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
assets.load(schematics);
assets.loadRun("contentinit", ContentLoader.class, () -> content.init(), () -> content.load());
+ assets.loadRun("baseparts", BaseRegistry.class, () -> {}, () -> bases.load());
}
@Override
diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java
index 2cf07cbea6..e41b9a08b7 100644
--- a/core/src/mindustry/Vars.java
+++ b/core/src/mindustry/Vars.java
@@ -10,11 +10,10 @@ import arc.util.*;
import arc.util.Log.*;
import mindustry.ai.*;
import mindustry.async.*;
-import mindustry.audio.*;
import mindustry.core.*;
import mindustry.entities.*;
-import mindustry.game.*;
import mindustry.game.EventType.*;
+import mindustry.game.*;
import mindustry.gen.*;
import mindustry.input.*;
import mindustry.io.*;
@@ -36,8 +35,8 @@ public class Vars implements Loadable{
public static boolean loadLocales = true;
/** Whether the logger is loaded. */
public static boolean loadedLogger = false, loadedFileLogger = false;
- /** Whether to show the cliff button in the editor*/
- public static boolean addCliffButton = false;
+ /** Whether to enable various experimental features (e.g. cliffs) */
+ public static boolean experimental = false;
/** Maximum extra padding around deployment schematics. */
public static final int maxLoadoutSchematicPad = 5;
/** Maximum schematic size.*/
@@ -67,7 +66,7 @@ public class Vars implements Loadable{
/** URL of the github issue report template.*/
public static final String reportIssueURL = "https://github.com/Anuken/Mindustry/issues/new?labels=bug&template=bug_report.md";
/** list of built-in servers.*/
- public static final Seq defaultServers = Seq.with();
+ public static final Seq defaultServers = Seq.with();
/** maximum distance between mine and core that supports automatic transferring */
public static final float mineTransferRange = 220f;
/** max chat message length */
@@ -89,7 +88,7 @@ public class Vars implements Loadable{
/** duration of time between turns in ticks */
public static final float turnDuration = 2 * Time.toMinutes;
/** chance of an invasion per turn, 1 = 100% */
- public static final float baseInvasionChance = 1f / 30f;
+ public static final float baseInvasionChance = 1f / 50f;
/** how many turns have to pass before invasions start */
public static final int invasionGracePeriod = 20;
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */
@@ -187,8 +186,7 @@ public class Vars implements Loadable{
public static ContentLoader content;
public static GameState state;
public static EntityCollisions collisions;
- public static DefaultWaves defaultWaves;
- public static LoopControl loops;
+ public static Waves waves;
public static Platform platform = new Platform(){};
public static Mods mods;
public static Schematics schematics;
@@ -235,6 +233,7 @@ public class Vars implements Loadable{
}
Arrays.sort(locales, Structs.comparing(l -> l.getDisplayName(l), String.CASE_INSENSITIVE_ORDER));
+ locales = Seq.with(locales).and(new Locale("router")).toArray(Locale.class);
}
Version.init();
@@ -255,8 +254,7 @@ public class Vars implements Loadable{
if(mods == null) mods = new Mods();
content = new ContentLoader();
- loops = new LoopControl();
- defaultWaves = new DefaultWaves();
+ waves = new Waves();
collisions = new EntityCollisions();
world = new World();
universe = new Universe();
@@ -318,20 +316,25 @@ public class Vars implements Loadable{
settings.setAppName(appName);
- Writer writer = settings.getDataDirectory().child("last_log.txt").writer(false);
- LogHandler log = Log.logger;
- //ignore it
- Log.logger = (level, text) -> {
- log.log(level, text);
+ try{
+ Writer writer = settings.getDataDirectory().child("last_log.txt").writer(false);
+ LogHandler log = Log.logger;
+ //ignore it
+ Log.logger = (level, text) -> {
+ log.log(level, text);
- try{
- writer.write("[" + Character.toUpperCase(level.name().charAt(0)) +"] " + Log.removeColors(text) + "\n");
- writer.flush();
- }catch(IOException e){
- e.printStackTrace();
- //ignore it
- }
- };
+ try{
+ writer.write("[" + Character.toUpperCase(level.name().charAt(0)) +"] " + Log.removeColors(text) + "\n");
+ writer.flush();
+ }catch(IOException e){
+ e.printStackTrace();
+ //ignore it
+ }
+ };
+ }catch(Exception e){
+ //handle log file not being found
+ Log.err(e);
+ }
loadedFileLogger = true;
}
@@ -387,6 +390,11 @@ public class Vars implements Loadable{
Locale.setDefault(locale);
Core.bundle = I18NBundle.createBundle(handle, locale);
+
+ //router
+ if(locale.getDisplayName().equals("router")){
+ bundle.debug("router");
+ }
}
}
}
diff --git a/core/src/mindustry/ai/BaseAI.java b/core/src/mindustry/ai/BaseAI.java
index 2c1fb11617..7900b6608c 100644
--- a/core/src/mindustry/ai/BaseAI.java
+++ b/core/src/mindustry/ai/BaseAI.java
@@ -1,5 +1,7 @@
package mindustry.ai;
+import arc.*;
+import arc.input.*;
import arc.math.*;
import arc.math.geom.*;
import arc.struct.*;
@@ -17,16 +19,18 @@ import mindustry.world.*;
import mindustry.world.blocks.defense.*;
import mindustry.world.blocks.production.*;
import mindustry.world.blocks.storage.*;
+import mindustry.world.blocks.storage.CoreBlock.*;
import static mindustry.Vars.*;
public class BaseAI{
private static final Vec2 axis = new Vec2(), rotator = new Vec2();
private static final float correctPercent = 0.5f;
- private static final float step = 5;
private static final int attempts = 4;
private static final float emptyChance = 0.01f;
- private static final int timerStep = 0, timerSpawn = 1;
+ private static final int timerStep = 0, timerSpawn = 1, timerRefreshPath = 2;
+ private static final int pathStep = 50;
+ private static final Seq tmpTiles = new Seq<>();
private static int correct = 0, incorrect = 0;
@@ -36,6 +40,13 @@ public class BaseAI{
TeamData data;
Interval timer = new Interval(4);
+ IntSet path = new IntSet();
+ IntSet calcPath = new IntSet();
+ @Nullable Tile calcTile;
+ boolean calculating, startedCalculating;
+ int calcCount = 0;
+ int totalCalcs = 0;
+
public BaseAI(TeamData data){
this.data = data;
}
@@ -53,8 +64,76 @@ public class BaseAI{
}
}
+ //refresh path
+ if(!calculating && (timer.get(timerRefreshPath, 3f * Time.toMinutes) || !startedCalculating) && data.hasCore()){
+ calculating = true;
+ startedCalculating = true;
+ calcPath.clear();
+ }
+
+ //didn't find tile in time
+ if(calculating && calcCount >= world.width() * world.height()){
+ calculating = false;
+ calcCount = 0;
+ calcPath.clear();
+ totalCalcs ++;
+ }
+
+ //calculate path for units so schematics are not placed on it
+ if(calculating){
+ if(calcTile == null){
+ Vars.spawner.eachGroundSpawn((x, y) -> calcTile = world.tile(x, y));
+ if(calcTile == null){
+ calculating = false;
+ }
+ }else{
+ var field = pathfinder.getField(state.rules.waveTeam, Pathfinder.costGround, Pathfinder.fieldCore);
+
+ int[][] weights = field.weights;
+ for(int i = 0; i < pathStep; i++){
+ int minCost = Integer.MAX_VALUE;
+ int cx = calcTile.x, cy = calcTile.y;
+ boolean foundAny = false;
+ for(Point2 p : Geometry.d4){
+ int nx = cx + p.x, ny = cy + p.y;
+
+ Tile other = world.tile(nx, ny);
+ if(other != null && weights[nx][ny] < minCost && weights[nx][ny] != -1){
+ minCost = weights[nx][ny];
+ calcTile = other;
+ foundAny = true;
+ }
+ }
+
+ //didn't find anything, break out of loop, this will trigger a clear later
+ if(!foundAny){
+ calcCount = Integer.MAX_VALUE;
+ break;
+ }
+
+ calcPath.add(calcTile.pos());
+
+ //found the end.
+ if(calcTile.build instanceof CoreBuild b && b.team == state.rules.defaultTeam){
+ //clean up calculations and flush results
+ calculating = false;
+ calcCount = 0;
+ path.clear();
+ path.addAll(calcPath);
+ calcPath.clear();
+ calcTile = null;
+ totalCalcs ++;
+
+ break;
+ }
+
+ calcCount ++;
+ }
+ }
+ }
+
//only schedule when there's something to build.
- if(data.blocks.isEmpty() && timer.get(timerStep, step)){
+ if(totalCalcs > 0 && data.blocks.isEmpty() && timer.get(timerStep, Mathf.lerp(20f, 4f, data.team.rules().aiTier))){
if(!triedWalls){
tryWalls();
triedWalls = true;
@@ -123,6 +202,13 @@ public class BaseAI{
if(!Build.validPlace(tile.block, data.team, realX, realY, tile.rotation)){
return false;
}
+ Tile wtile = world.tile(realX, realY);
+
+ //may intersect AI path
+ tmpTiles.clear();
+ if(tile.block.solid && wtile != null && wtile.getLinkedTilesAs(tile.block, tmpTiles).contains(t -> path.contains(t.pos()))){
+ return false;
+ }
}
//make sure at least X% of resource requirements are met
@@ -191,7 +277,8 @@ public class BaseAI{
}
}
- if(any && Build.validPlace(wall, data.team, tile.x, tile.y, 0)){
+ tmpTiles.clear();
+ if(any && Build.validPlace(wall, data.team, tile.x, tile.y, 0) && !tile.getLinkedTilesAs(wall, tmpTiles).contains(t -> path.contains(t.pos()))){
data.blocks.add(new BlockPlan(tile.x, tile.y, (short)0, wall.id, null));
}
}
diff --git a/core/src/mindustry/ai/BaseRegistry.java b/core/src/mindustry/ai/BaseRegistry.java
index 269b79d3bf..735e9162ef 100644
--- a/core/src/mindustry/ai/BaseRegistry.java
+++ b/core/src/mindustry/ai/BaseRegistry.java
@@ -82,7 +82,7 @@ public class BaseRegistry{
}
schem.tiles.removeAll(s -> s.block.buildVisibility == BuildVisibility.sandboxOnly);
- part.tier = schem.tiles.sumf(s -> Mathf.pow(s.block.buildCost / s.block.buildCostMultiplier, 1.2f));
+ part.tier = schem.tiles.sumf(s -> Mathf.pow(s.block.buildCost / s.block.buildCostMultiplier, 1.4f));
if(part.core != null){
cores.add(part);
@@ -99,7 +99,9 @@ public class BaseRegistry{
part.centerY = part.schematic.height/2;
}
- if(part.required != null) reqParts.get(part.required, Seq::new).add(part);
+ if(part.required != null && part.core == null){
+ reqParts.get(part.required, Seq::new).add(part);
+ }
}catch(IOException e){
throw new RuntimeException(e);
diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java
index a75b0758ea..683d04cc78 100644
--- a/core/src/mindustry/ai/BlockIndexer.java
+++ b/core/src/mindustry/ai/BlockIndexer.java
@@ -56,18 +56,7 @@ public class BlockIndexer{
public BlockIndexer(){
Events.on(TileChangeEvent.class, event -> {
- if(typeMap.get(event.tile.pos()) != null){
- TileIndex index = typeMap.get(event.tile.pos());
- for(BlockFlag flag : index.flags){
- getFlagged(index.team)[flag.ordinal()].remove(event.tile);
- }
-
- if(index.flags.contains(BlockFlag.unitModifier)){
- updateCap(index.team);
- }
- }
- process(event.tile);
- updateQuadrant(event.tile);
+ updateIndices(event.tile);
});
Events.on(WorldLoadEvent.class, event -> {
@@ -111,6 +100,21 @@ public class BlockIndexer{
});
}
+ public void updateIndices(Tile tile){
+ if(typeMap.get(tile.pos()) != null){
+ TileIndex index = typeMap.get(tile.pos());
+ for(BlockFlag flag : index.flags){
+ getFlagged(index.team)[flag.ordinal()].remove(tile);
+ }
+
+ if(index.flags.contains(BlockFlag.unitModifier)){
+ updateCap(index.team);
+ }
+ }
+ process(tile);
+ updateQuadrant(tile);
+ }
+
private TileArray[] getFlagged(Team team){
return flagMap[team.id];
}
@@ -208,16 +212,30 @@ public class BlockIndexer{
public Seq getEnemy(Team team, BlockFlag type){
returnArray.clear();
Seq data = state.teams.present;
- for(int i = 0; i < data.size; i++){
- Team enemy = data.items[i].team;
- if(enemy == team) continue;
- TileArray set = getFlagged(enemy)[type.ordinal()];
- if(set != null){
- for(Tile tile : set){
- returnArray.add(tile);
+ //when team data is not initialized, scan through every team. this is terrible
+ if(data.isEmpty()){
+ for(Team enemy : Team.all){
+ if(enemy == team) continue;
+ TileArray set = getFlagged(enemy)[type.ordinal()];
+ if(set != null){
+ for(Tile tile : set){
+ returnArray.add(tile);
+ }
+ }
+ }
+ }else{
+ for(int i = 0; i < data.size; i++){
+ Team enemy = data.items[i].team;
+ if(enemy == team) continue;
+ TileArray set = getFlagged(enemy)[type.ordinal()];
+ if(set != null){
+ for(Tile tile : set){
+ returnArray.add(tile);
+ }
}
}
}
+
return returnArray;
}
@@ -233,7 +251,7 @@ public class BlockIndexer{
for(int i = 0; i < activeTeams.size; i++){
Team enemy = activeTeams.items[i];
- if(enemy == team) continue;
+ if(enemy == team || team == Team.derelict) continue;
Building entity = indexer.findTile(enemy, x, y, range, pred, true);
if(entity != null){
@@ -262,10 +280,7 @@ public class BlockIndexer{
for(int ty = ry * quadrantSize; ty < (ry + 1) * quadrantSize && ty < world.height(); ty++){
Building e = world.build(tx, ty);
- if(e == null) continue;
-
- if(e.team != team || !pred.get(e) || !e.block.targetable)
- continue;
+ if(e == null || e.team != team || !pred.get(e) || !e.block.targetable || e.team == Team.derelict) continue;
float ndst = e.dst2(x, y);
if(ndst < range2 && (closest == null ||
@@ -312,6 +327,11 @@ public class BlockIndexer{
return null;
}
+ /** Find the closest ore block relative to a position. */
+ public Tile findClosestOre(Unit unit, Item item){
+ return findClosestOre(unit.x, unit.y, item);
+ }
+
/** @return extra unit cap of a team. This is added onto the base value. */
public int getExtraUnits(Team team){
return unitCaps[team.id];
@@ -457,8 +477,8 @@ public class BlockIndexer{
}
public static class TileArray implements Iterable{
- private Seq tiles = new Seq<>(false, 16);
- private IntSet contained = new IntSet();
+ Seq tiles = new Seq<>(false, 16);
+ IntSet contained = new IntSet();
public void add(Tile tile){
if(contained.add(tile.pos())){
diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java
index 78a596bb9d..392481b3ac 100644
--- a/core/src/mindustry/ai/Pathfinder.java
+++ b/core/src/mindustry/ai/Pathfinder.java
@@ -7,6 +7,7 @@ import arc.struct.*;
import arc.util.*;
import arc.util.async.*;
import mindustry.annotations.Annotations.*;
+import mindustry.content.*;
import mindustry.core.*;
import mindustry.game.EventType.*;
import mindustry.game.*;
@@ -86,6 +87,8 @@ public class Pathfinder implements Runnable{
tiles[tile.x][tile.y] = packTile(tile);
}
+ preloadPath(getField(state.rules.waveTeam, costGround, fieldCore));
+
start();
});
@@ -116,7 +119,7 @@ public class Pathfinder implements Runnable{
tile.getTeamID(),
tile.solid(),
tile.floor().isLiquid,
- tile.staticDarkness() >= 2,
+ tile.staticDarkness() >= 2 || (tile.floor().solid && tile.block() == Blocks.air),
nearLiquid,
nearGround,
nearSolid,
@@ -350,13 +353,7 @@ public class Pathfinder implements Runnable{
threadList.add(path);
//add to main thread's list of paths
- Core.app.post(() -> {
- mainList.add(path);
- //TODO
- //if(fieldMap[team.id] != null){
- // fieldMap[team.id].put(target, path);
- //}
- });
+ Core.app.post(() -> mainList.add(path));
//fill with impassables by default
for(int x = 0; x < world.width(); x++){
@@ -444,13 +441,12 @@ public class Pathfinder implements Runnable{
public void getPositions(IntSeq out){
out.add(Point2.pack(World.toTile(position.getX()), World.toTile(position.getY())));
}
-
}
/**
* Data for a flow field to some set of destinations.
* Concrete subclasses must specify a way to fetch costs and destinations.
- * */
+ */
public static abstract class Flowfield{
/** Refresh rate in milliseconds. Return any number <= 0 to disable. */
protected int refreshRate;
diff --git a/core/src/mindustry/ai/formations/Formation.java b/core/src/mindustry/ai/formations/Formation.java
index 16db811b2f..db2ce02e14 100644
--- a/core/src/mindustry/ai/formations/Formation.java
+++ b/core/src/mindustry/ai/formations/Formation.java
@@ -17,10 +17,8 @@ import arc.struct.*;
* @author davebaol
*/
public class Formation{
-
/** A list of slots assignments. */
public Seq slotAssignments;
-
/** The anchor point of this formation. */
public Vec3 anchor;
/** The formation pattern */
@@ -138,7 +136,6 @@ public class Formation{
* @return {@code false} if no more slots are available; {@code true} otherwise.
*/
public boolean addMember(FormationMember member){
-
// Check if the pattern supports one more slot
if(pattern.supportsSlots(slotAssignments.size + 1)){
// Add a new slot assignment
diff --git a/core/src/mindustry/ai/formations/FreeSlotAssignmentStrategy.java b/core/src/mindustry/ai/formations/FreeSlotAssignmentStrategy.java
index 35fd74f789..89e51054d2 100644
--- a/core/src/mindustry/ai/formations/FreeSlotAssignmentStrategy.java
+++ b/core/src/mindustry/ai/formations/FreeSlotAssignmentStrategy.java
@@ -16,8 +16,9 @@ public class FreeSlotAssignmentStrategy implements SlotAssignmentStrategy{
public void updateSlotAssignments(Seq assignments){
// A very simple assignment algorithm: we simply go through
// each assignment in the list and assign sequential slot numbers
- for(int i = 0; i < assignments.size; i++)
+ for(int i = 0; i < assignments.size; i++){
assignments.get(i).slotNumber = i;
+ }
}
@Override
diff --git a/core/src/mindustry/ai/formations/SoftRoleSlotAssignmentStrategy.java b/core/src/mindustry/ai/formations/SoftRoleSlotAssignmentStrategy.java
index f3f3c09bed..59c933c205 100644
--- a/core/src/mindustry/ai/formations/SoftRoleSlotAssignmentStrategy.java
+++ b/core/src/mindustry/ai/formations/SoftRoleSlotAssignmentStrategy.java
@@ -51,7 +51,6 @@ public class SoftRoleSlotAssignmentStrategy extends BoundedSlotAssignmentStrateg
@Override
public void updateSlotAssignments(Seq assignments){
-
// Holds a list of member and slot data for each member.
Seq memberData = new Seq<>();
@@ -125,7 +124,6 @@ public class SoftRoleSlotAssignmentStrategy extends BoundedSlotAssignmentStrateg
// Some sensible action should be taken, such as reporting to the player.
throw new ArcRuntimeException("SoftRoleSlotAssignmentStrategy cannot find valid slot assignment for member " + memberDatum.member);
}
-
}
static class CostAndSlot implements Comparable{
diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java
index c3558ca58a..a82a220070 100644
--- a/core/src/mindustry/ai/types/BuilderAI.java
+++ b/core/src/mindustry/ai/types/BuilderAI.java
@@ -14,21 +14,16 @@ import static mindustry.Vars.*;
public class BuilderAI extends AIController{
float buildRadius = 1500;
boolean found = false;
- @Nullable Builderc following;
+ @Nullable Unit following;
@Override
public void updateMovement(){
- Builderc builder = (Builderc)unit;
-
- if(builder.moving()){
- builder.lookAt(builder.vel().angle());
- }
if(target != null && shouldShoot()){
unit.lookAt(target);
}
- builder.updateBuilding(true);
+ unit.updateBuilding = true;
if(following != null){
//try to follow and mimic someone
@@ -36,21 +31,21 @@ public class BuilderAI extends AIController{
//validate follower
if(!following.isValid() || !following.activelyBuilding()){
following = null;
- builder.plans().clear();
+ unit.plans.clear();
return;
}
//set to follower's first build plan, whatever that is
- builder.plans().clear();
- builder.plans().addFirst(following.buildPlan());
+ unit.plans.clear();
+ unit.plans.addFirst(following.buildPlan());
}
- if(builder.buildPlan() != null){
+ if(unit.buildPlan() != null){
//approach request if building
- BuildPlan req = builder.buildPlan();
+ BuildPlan req = unit.buildPlan();
boolean valid =
- (req.tile().build instanceof ConstructBuild && req.tile().bc().cblock == req.block) ||
+ (req.tile() != null && 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));
@@ -60,7 +55,7 @@ public class BuilderAI extends AIController{
moveTo(req.tile(), buildingRange - 20f);
}else{
//discard invalid request
- builder.plans().removeFirst();
+ unit.plans.removeFirst();
}
}else{
@@ -71,16 +66,16 @@ public class BuilderAI extends AIController{
Units.nearby(unit.team, unit.x, unit.y, buildRadius, u -> {
if(found) return;
- if(u instanceof Builderc b && u != unit && ((Builderc)u).activelyBuilding()){
- BuildPlan plan = b.buildPlan();
+ if(u.canBuild() && u != unit && u.activelyBuilding()){
+ BuildPlan plan = u.buildPlan();
Building build = world.build(plan.x, plan.y);
if(build instanceof ConstructBuild cons){
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;
+ if(dist / unit.speed() < cons.buildCost * 0.9f){
+ following = u;
found = true;
}
}
@@ -98,7 +93,7 @@ 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.
- builder.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config));
+ unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config));
//shift build plan to tail so next unit builds something else.
blocks.addLast(blocks.removeFirst());
}else{
@@ -119,7 +114,7 @@ public class BuilderAI extends AIController{
public boolean useFallback(){
return state.rules.waves && unit.team == state.rules.waveTeam && !unit.team.rules().ai;
}
-
+
@Override
public boolean shouldShoot(){
return !((Builderc)unit).isBuilding();
diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java
index 7262ae216a..bf7367731d 100644
--- a/core/src/mindustry/ai/types/FlyingAI.java
+++ b/core/src/mindustry/ai/types/FlyingAI.java
@@ -55,7 +55,7 @@ public class FlyingAI extends AIController{
vec.setAngle(Mathf.slerpDelta(unit.vel().angle(), vec.angle(), 0.6f));
}
- vec.setLength(unit.type.speed);
+ vec.setLength(unit.speed());
unit.moveAt(vec);
}
diff --git a/core/src/mindustry/ai/types/FormationAI.java b/core/src/mindustry/ai/types/FormationAI.java
index 3c5a2b99b4..2379b28e07 100644
--- a/core/src/mindustry/ai/types/FormationAI.java
+++ b/core/src/mindustry/ai/types/FormationAI.java
@@ -6,7 +6,6 @@ import arc.util.*;
import mindustry.ai.formations.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
-import mindustry.type.*;
import mindustry.world.blocks.storage.CoreBlock.*;
public class FormationAI extends AIController implements FormationMember{
@@ -27,9 +26,8 @@ public class FormationAI extends AIController implements FormationMember{
@Override
public void updateUnit(){
- UnitType type = unit.type;
- if(leader.dead){
+ if(leader == null || leader.dead){
unit.resetController();
return;
}
@@ -51,23 +49,23 @@ public class FormationAI extends AIController implements FormationMember{
Vec2 realtarget = vec.set(target);
- float margin = 3f;
+ float margin = 4f;
float speed = unit.realSpeed();
if(unit.dst(realtarget) <= margin){
- unit.vel.approachDelta(Vec2.ZERO, speed * type.accel / 2f);
+ //unit.vel.approachDelta(Vec2.ZERO, speed * type.accel / 2f);
}else{
unit.moveAt(realtarget.sub(unit).limit(speed));
}
- if(unit instanceof Minerc mine && leader instanceof Minerc com){
- if(mine.validMine(com.mineTile())){
- mine.mineTile(com.mineTile());
+ if(unit.canMine() && leader.canMine()){
+ if(leader.mineTile != null && unit.validMine(leader.mineTile)){
+ unit.mineTile(leader.mineTile);
CoreBuild core = unit.team.core();
- if(core != null && com.mineTile().drop() != null && unit.within(core, unit.type.range) && !unit.acceptsItem(com.mineTile().drop())){
+ if(core != null && leader.mineTile.drop() != null && unit.within(core, unit.type.range) && !unit.acceptsItem(leader.mineTile.drop())){
if(core.acceptStack(unit.stack.item, unit.stack.amount, unit) > 0){
Call.transferItemTo(unit.stack.item, unit.stack.amount, unit.x, unit.y, core);
@@ -75,14 +73,13 @@ public class FormationAI extends AIController implements FormationMember{
}
}
}else{
- mine.mineTile(null);
+ unit.mineTile(null);
}
-
}
- if(unit instanceof Builderc build && leader instanceof Builderc com && com.activelyBuilding()){
- build.clearBuilding();
- build.addBuild(com.buildPlan());
+ if(unit.canBuild() && leader.canBuild() && leader.activelyBuilding()){
+ unit.clearBuilding();
+ unit.addBuild(leader.buildPlan());
}
}
diff --git a/core/src/mindustry/ai/types/LogicAI.java b/core/src/mindustry/ai/types/LogicAI.java
index 1166c2ff96..d2f759150b 100644
--- a/core/src/mindustry/ai/types/LogicAI.java
+++ b/core/src/mindustry/ai/types/LogicAI.java
@@ -14,7 +14,7 @@ import static mindustry.Vars.*;
public class LogicAI extends AIController{
/** Minimum delay between item transfers. */
- public static final float transferDelay = 60f * 3f;
+ public static final float transferDelay = 60f * 2f;
/** Time after which the unit resets its controlled and reverts to a normal unit. */
public static final float logicControlTimeout = 10f * 60f;
@@ -44,8 +44,8 @@ public class LogicAI extends AIController{
@Override
protected void updateMovement(){
- if(itemTimer > 0) itemTimer -= Time.delta;
- if(payTimer > 0) payTimer -= Time.delta;
+ if(itemTimer >= 0) itemTimer -= Time.delta;
+ if(payTimer >= 0) payTimer -= Time.delta;
if(targetTimer > 0f){
targetTimer -= Time.delta;
@@ -92,9 +92,7 @@ public class LogicAI extends AIController{
}
}
case stop -> {
- if(unit instanceof Builderc build){
- build.clearBuilding();
- }
+ unit.clearBuilding();
}
}
@@ -104,9 +102,7 @@ public class LogicAI extends AIController{
//look where moving if there's nothing to aim at
if(!shoot){
- if(unit.moving()){
- unit.lookAt(unit.vel().angle());
- }
+ unit.lookAt(unit.prefRotation());
}else if(unit.hasWeapons()){ //if there is, look at the object
unit.lookAt(unit.mounts[0].aimX, unit.mounts[0].aimY);
}
diff --git a/core/src/mindustry/ai/types/MinerAI.java b/core/src/mindustry/ai/types/MinerAI.java
index aa7d1403c5..97d8198bb2 100644
--- a/core/src/mindustry/ai/types/MinerAI.java
+++ b/core/src/mindustry/ai/types/MinerAI.java
@@ -17,21 +17,21 @@ public class MinerAI extends AIController{
protected void updateMovement(){
Building core = unit.closestCore();
- if(!(unit instanceof Minerc miner) || core == null) return;
+ if(!(unit.canMine()) || core == null) return;
- if(miner.mineTile() != null && !miner.mineTile().within(unit, unit.type.range)){
- miner.mineTile(null);
+ if(unit.mineTile != null && !unit.mineTile.within(unit, unit.type.range)){
+ unit.mineTile(null);
}
if(mining){
if(timer.get(timerTarget2, 60 * 4) || targetItem == null){
- targetItem = unit.team.data().mineItems.min(i -> indexer.hasOre(i) && miner.canMine(i), i -> core.items.get(i));
+ targetItem = unit.team.data().mineItems.min(i -> indexer.hasOre(i) && unit.canMine(i), i -> core.items.get(i));
}
//core full of the target item, do nothing
if(targetItem != null && core.acceptStack(targetItem, 1, unit) == 0){
unit.clearItem();
- miner.mineTile(null);
+ unit.mineTile(null);
return;
}
@@ -39,15 +39,15 @@ public class MinerAI extends AIController{
if(unit.stack.amount >= unit.type.itemCapacity || (targetItem != null && !unit.acceptsItem(targetItem))){
mining = false;
}else{
- if(retarget() && targetItem != null){
- ore = indexer.findClosestOre(unit.x, unit.y, targetItem);
+ if(timer.get(timerTarget, 60) && targetItem != null){
+ ore = indexer.findClosestOre(unit, targetItem);
}
if(ore != null){
- moveTo(ore, unit.type.range / 2f);
+ moveTo(ore, unit.type.range / 2f, 20f);
if(unit.within(ore, unit.type.range)){
- miner.mineTile(ore);
+ unit.mineTile = ore;
}
if(ore.block() != Blocks.air){
@@ -56,7 +56,7 @@ public class MinerAI extends AIController{
}
}
}else{
- miner.mineTile(null);
+ unit.mineTile = null;
if(unit.stack.amount == 0){
mining = true;
@@ -79,5 +79,4 @@ public class MinerAI extends AIController{
@Override
protected void updateTargeting(){
}
-
}
diff --git a/core/src/mindustry/ai/types/RepairAI.java b/core/src/mindustry/ai/types/RepairAI.java
index 36504f908d..db20cc7d60 100644
--- a/core/src/mindustry/ai/types/RepairAI.java
+++ b/core/src/mindustry/ai/types/RepairAI.java
@@ -23,7 +23,7 @@ public class RepairAI extends AIController{
}
if(target != null){
- if(!target.within(unit, unit.type.range * 0.65f) && target instanceof Building){
+ if(!target.within(unit, unit.type.range * 0.65f) && target instanceof Building b && b.team == unit.team){
moveTo(target, unit.type.range * 0.65f);
}
@@ -36,12 +36,11 @@ public class RepairAI extends AIController{
Building target = Units.findDamagedTile(unit.team, unit.x, unit.y);
if(target instanceof ConstructBuild) target = null;
-
+
if(target == null){
super.updateTargeting();
}else{
this.target = target;
}
}
-
}
diff --git a/core/src/mindustry/ai/types/SuicideAI.java b/core/src/mindustry/ai/types/SuicideAI.java
index 0ef3ece228..1143f31675 100644
--- a/core/src/mindustry/ai/types/SuicideAI.java
+++ b/core/src/mindustry/ai/types/SuicideAI.java
@@ -31,7 +31,7 @@ public class SuicideAI extends GroundAI{
if(!Units.invalidateTarget(target, unit, unit.range()) && unit.hasWeapons()){
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 b ? b.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));
@@ -65,10 +65,9 @@ public class SuicideAI extends GroundAI{
if(!blocked){
moveToTarget = true;
//move towards target directly
- unit.moveAt(vec.set(target).sub(unit).limit(unit.type.speed));
+ unit.moveAt(vec.set(target).sub(unit).limit(unit.speed()));
}
}
-
}
if(!moveToTarget){
diff --git a/core/src/mindustry/audio/LoopControl.java b/core/src/mindustry/audio/LoopControl.java
deleted file mode 100644
index 65e3789463..0000000000
--- a/core/src/mindustry/audio/LoopControl.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package mindustry.audio;
-
-import arc.*;
-import arc.audio.*;
-import arc.math.*;
-import arc.math.geom.*;
-import arc.struct.*;
-import mindustry.*;
-
-public class LoopControl{
- private ObjectMap sounds = new ObjectMap<>();
-
- public void play(Sound sound, Position pos, float volume){
- if(Vars.headless) return;
-
- float baseVol = sound.calcFalloff(pos.getX(), pos.getY());
- float vol = baseVol * volume;
-
- SoundData data = sounds.get(sound, SoundData::new);
- data.volume += vol;
- data.volume = Mathf.clamp(data.volume, 0f, 1f);
- data.total += baseVol;
- data.sum.add(pos.getX() * baseVol, pos.getY() * baseVol);
- }
-
- public void update(){
- float avol = Core.settings.getInt("ambientvol", 100) / 100f;
-
- sounds.each((sound, data) -> {
- data.curVolume = Mathf.lerpDelta(data.curVolume, data.volume * avol, 0.2f);
-
- boolean play = data.curVolume > 0.01f;
- float pan = Mathf.zero(data.total, 0.0001f) ? 0f : sound.calcPan(data.sum.x / data.total, data.sum.y / data.total);
- if(data.soundID <= 0){
- if(play){
- data.soundID = sound.loop(data.curVolume, 1f, pan);
- }
- }else{
- if(data.curVolume <= 0.01f){
- sound.stop();
- data.soundID = -1;
- return;
- }
- sound.setPan(data.soundID, pan, data.curVolume);
- }
-
- data.volume = 0f;
- data.total = 0f;
- data.sum.setZero();
- });
- }
-
- private static class SoundData{
- float volume;
- float total;
- Vec2 sum = new Vec2();
-
- int soundID;
- float curVolume;
- }
-}
diff --git a/core/src/mindustry/audio/MusicControl.java b/core/src/mindustry/audio/SoundControl.java
similarity index 54%
rename from core/src/mindustry/audio/MusicControl.java
rename to core/src/mindustry/audio/SoundControl.java
index 52358af758..bed176f972 100644
--- a/core/src/mindustry/audio/MusicControl.java
+++ b/core/src/mindustry/audio/SoundControl.java
@@ -2,45 +2,99 @@ package mindustry.audio;
import arc.*;
import arc.audio.*;
+import arc.audio.Filters.*;
+import arc.files.*;
import arc.math.*;
+import arc.math.geom.*;
import arc.struct.*;
import arc.util.*;
+import mindustry.*;
+import mindustry.content.*;
import mindustry.game.EventType.*;
import mindustry.gen.*;
import static mindustry.Vars.*;
-/** Controls playback of multiple music tracks.*/
-public class MusicControl{
- protected static final float finTime = 120f, foutTime = 120f, musicInterval = 60 * 60 * 3f, musicChance = 0.6f, musicWaveChance = 0.5f;
+/** Controls playback of multiple audio tracks.*/
+public class SoundControl{
+ protected static final float finTime = 120f, foutTime = 120f, musicInterval = 60 * 60 * 3f, musicChance = 0.6f, musicWaveChance = 0.46f;
/** normal, ambient music, plays at any time */
public Seq ambientMusic = Seq.with();
/** darker music, used in times of conflict */
public Seq darkMusic = Seq.with();
+ /** music used explicitly after boss spawns */
+ public Seq bossMusic = Seq.with();
protected Music lastRandomPlayed;
- protected Interval timer = new Interval();
+ protected Interval timer = new Interval(4);
protected @Nullable Music current;
protected float fade;
protected boolean silenced;
- public MusicControl(){
+ protected AudioBus uiBus = new AudioBus();
+ protected boolean wasPlaying;
+ protected AudioFilter filter = new BiquadFilter(){{
+ set(0, 500, 1);
+ }};
+
+ protected ObjectMap sounds = new ObjectMap<>();
+
+ public SoundControl(){
Events.on(ClientLoadEvent.class, e -> reload());
//only run music 10 seconds after a wave spawns
- Events.on(WaveEvent.class, e -> Time.run(60f * 10f, () -> {
- if(Mathf.chance(musicWaveChance)){
+ Events.on(WaveEvent.class, e -> Time.run(Mathf.random(8f, 15f) * 60f, () -> {
+ boolean boss = state.rules.spawns.contains(group -> group.getSpawned(state.wave - 2) > 0 && group.effect == StatusEffects.boss);
+
+ if(boss){
+ playOnce(bossMusic.random(lastRandomPlayed));
+ }else if(Mathf.chance(musicWaveChance)){
playRandom();
}
}));
+
+ setupFilters();
+ }
+
+ protected void setupFilters(){
+ Core.audio.soundBus.setFilter(0, filter);
+ Core.audio.soundBus.setFilterParam(0, Filters.paramWet, 0f);
}
protected void reload(){
current = null;
fade = 0f;
- ambientMusic = Seq.with(Musics.game1, Musics.game3, Musics.game4, Musics.game6);
- darkMusic = Seq.with(Musics.game2, Musics.game5, Musics.game7);
+ ambientMusic = Seq.with(Musics.game1, Musics.game3, Musics.game6, Musics.game8, Musics.game9);
+ darkMusic = Seq.with(Musics.game2, Musics.game5, Musics.game7, Musics.game4);
+ bossMusic = Seq.with(Musics.boss1, Musics.boss2, Musics.game2, Musics.game5);
+
+ //setup UI bus for all sounds that are in the UI folder
+ for(var sound : Core.assets.getAll(Sound.class, new Seq<>())){
+ var file = Fi.get(Core.assets.getAssetFileName(sound));
+ if(file.parent().name().equals("ui")){
+ sound.setBus(uiBus);
+ }
+ }
+ }
+
+ public void loop(Sound sound, float volume){
+ if(Vars.headless) return;
+
+ loop(sound, Core.camera.position, volume);
+ }
+
+ public void loop(Sound sound, Position pos, float volume){
+ if(Vars.headless) return;
+
+ float baseVol = sound.calcFalloff(pos.getX(), pos.getY());
+ float vol = baseVol * volume;
+
+ SoundData data = sounds.get(sound, SoundData::new);
+ data.volume += vol;
+ data.volume = Mathf.clamp(data.volume, 0f, 1f);
+ data.total += baseVol;
+ data.sum.add(pos.getX() * baseVol, pos.getY() * baseVol);
}
public void stop(){
@@ -54,6 +108,32 @@ public class MusicControl{
/** Update and play the right music track.*/
public void update(){
+ boolean paused = state.isGame() && Core.scene.hasDialog();
+ boolean playing = state.isGame();
+
+ //check if current track is finished
+ if(current != null && !current.isPlaying()){
+ current = null;
+ fade = 0f;
+ }
+
+ //fade the lowpass filter in/out, poll every 30 ticks just in case performance is an issue
+ if(timer.get(1, 30f)){
+ Core.audio.soundBus.fadeFilterParam(0, Filters.paramWet, paused ? 1f : 0f, 0.4f);
+ }
+
+ //play/stop ordinary effects
+ if(playing != wasPlaying){
+ wasPlaying = playing;
+
+ if(playing){
+ Core.audio.soundBus.play();
+ setupFilters();
+ }else{
+ Core.audio.soundBus.stop();
+ }
+ }
+
if(state.isMenu()){
silenced = false;
if(ui.planet.isShown()){
@@ -78,10 +158,46 @@ public class MusicControl{
}
}
}
+
+ updateLoops();
+ }
+
+ protected void updateLoops(){
+ //clear loops when in menu
+ if(!state.isGame()){
+ sounds.clear();
+ return;
+ }
+
+ float avol = Core.settings.getInt("ambientvol", 100) / 100f;
+
+ sounds.each((sound, data) -> {
+ data.curVolume = Mathf.lerpDelta(data.curVolume, data.volume * avol, 0.2f);
+
+ boolean play = data.curVolume > 0.01f;
+ float pan = Mathf.zero(data.total, 0.0001f) ? 0f : sound.calcPan(data.sum.x / data.total, data.sum.y / data.total);
+ if(data.soundID <= 0 || !Core.audio.isPlaying(data.soundID)){
+ if(play){
+ data.soundID = sound.loop(data.curVolume, 1f, pan);
+ Core.audio.protect(data.soundID, true);
+ }
+ }else{
+ if(data.curVolume <= 0.001f){
+ sound.stop();
+ data.soundID = -1;
+ return;
+ }
+ Core.audio.set(data.soundID, pan, data.curVolume);
+ }
+
+ data.volume = 0f;
+ data.total = 0f;
+ data.sum.setZero();
+ });
}
/** Plays a random track.*/
- protected void playRandom(){
+ public void playRandom(){
if(isDark()){
playOnce(darkMusic.random(lastRandomPlayed));
}else{
@@ -170,12 +286,6 @@ public class MusicControl{
current = music;
current.setVolume(1f);
current.setLooping(false);
- current.setCompletionListener(m -> {
- if(current == m){
- current = null;
- fade = 0f;
- }
- });
current.play();
}
@@ -187,4 +297,13 @@ public class MusicControl{
protected void silence(){
play(null);
}
+
+ protected static class SoundData{
+ float volume;
+ float total;
+ Vec2 sum = new Vec2();
+
+ int soundID;
+ float curVolume;
+ }
}
diff --git a/core/src/mindustry/audio/SoundLoop.java b/core/src/mindustry/audio/SoundLoop.java
index 99d6837251..d10eb02214 100644
--- a/core/src/mindustry/audio/SoundLoop.java
+++ b/core/src/mindustry/audio/SoundLoop.java
@@ -1,5 +1,6 @@
package mindustry.audio;
+import arc.*;
import arc.audio.*;
import arc.math.*;
import arc.util.*;
@@ -18,7 +19,7 @@ public class SoundLoop{
}
public void update(float x, float y, boolean play){
- if(baseVolume < 0) return;
+ if(baseVolume <= 0) return;
if(id < 0){
if(play){
@@ -31,18 +32,19 @@ public class SoundLoop{
}else{
volume = Mathf.clamp(volume - fadeSpeed * Time.delta);
if(volume <= 0.001f){
- sound.stop(id);
+ Core.audio.stop(id);
id = -1;
return;
}
}
- sound.setPan(id, sound.calcPan(x, y), sound.calcVolume(x, y) * volume * baseVolume);
+
+ Core.audio.set(id, sound.calcPan(x, y), sound.calcVolume(x, y) * volume * baseVolume);
}
}
public void stop(){
if(id != -1){
- sound.stop(id);
+ Core.audio.stop(id);
id = -1;
volume = baseVolume = -1;
}
diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java
index 1ab4e13252..b6f8e76b14 100644
--- a/core/src/mindustry/content/Blocks.java
+++ b/core/src/mindustry/content/Blocks.java
@@ -39,8 +39,8 @@ public class Blocks implements ContentList{
//environment
air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space,
dacite, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, 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,
+ iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, grass, salt,
+ metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall,
darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal,
pebbles, tendrils,
@@ -89,7 +89,7 @@ public class Blocks implements ContentList{
message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank,
//campaign
- launchPad, launchPadLarge,
+ launchPad, launchPadLarge, interplanetaryAccelerator,
//misc experimental
blockForge, blockLoader, blockUnloader;
@@ -102,6 +102,8 @@ public class Blocks implements ContentList{
{
alwaysReplace = true;
hasShadow = false;
+ useColor = false;
+ wall = this;
}
@Override public void drawBase(Tile tile){}
@@ -172,12 +174,14 @@ public class Blocks implements ContentList{
isLiquid = true;
cacheLayer = CacheLayer.water;
albedo = 0.5f;
+ attributes.set(Attribute.spores, 0.15f);
}};
darksandTaintedWater = new ShallowLiquid("darksand-tainted-water"){{
speedMultiplier = 0.75f;
statusDuration = 60f;
albedo = 0.5f;
+ attributes.set(Attribute.spores, 0.1f);
}};
sandWater = new ShallowLiquid("sand-water"){{
@@ -284,6 +288,10 @@ public class Blocks implements ContentList{
attributes.set(Attribute.water, 1f);
cacheLayer = CacheLayer.mud;
albedo = 0.35f;
+ walkSound = Sounds.mud;
+ walkSoundVolume = 0.08f;
+ walkSoundPitchMin = 0.4f;
+ walkSoundPitchMax = 0.5f;
}};
((ShallowLiquid)darksandTaintedWater).set(Blocks.taintedWater, Blocks.darksand);
@@ -318,6 +326,11 @@ public class Blocks implements ContentList{
attributes.set(Attribute.water, 0.3f);
}};
+ shale = new Floor("shale"){{
+ variants = 3;
+ attributes.set(Attribute.oil, 1f);
+ }};
+
stoneWall = new StaticWall("stone-wall"){{
variants = 2;
}};
@@ -326,15 +339,6 @@ public class Blocks implements ContentList{
variants = 2;
}};
- boulder = new Boulder("boulder"){{
- variants = 2;
- }};
-
- snowBoulder = new Boulder("snow-boulder"){{
- variants = 2;
- snow.asFloor().decoration = ice.asFloor().decoration = iceSnow.asFloor().decoration = this;
- }};
-
dirtWall = new StaticWall("dirt-wall"){{
variants = 2;
}};
@@ -364,6 +368,12 @@ public class Blocks implements ContentList{
saltWall = new StaticWall("salt-wall");
+ shrubs = new StaticWall("shrubs");
+
+ shaleWall = new StaticWall("shale-wall"){{
+ variants = 2;
+ }};
+
sporePine = new StaticTree("spore-pine"){{
variants = 0;
}};
@@ -376,8 +386,6 @@ public class Blocks implements ContentList{
variants = 0;
}};
- shrubs = new StaticWall("shrubs");
-
whiteTreeDead = new TreeBlock("white-tree-dead");
whiteTree = new TreeBlock("white-tree");
@@ -386,13 +394,13 @@ public class Blocks implements ContentList{
variants = 3;
}};
- shale = new Floor("shale"){{
- variants = 3;
- attributes.set(Attribute.oil, 1f);
+ boulder = new Boulder("boulder"){{
+ variants = 2;
}};
- shaleWall = new StaticWall("shale-wall"){{
+ snowBoulder = new Boulder("snow-boulder"){{
variants = 2;
+ snow.asFloor().decoration = ice.asFloor().decoration = iceSnow.asFloor().decoration = salt.asFloor().decoration = this;
}};
shaleBoulder = new Boulder("shale-boulder"){{
@@ -407,6 +415,10 @@ public class Blocks implements ContentList{
variants = 2;
}};
+ basaltBoulder = new Boulder("basalt-boulder"){{
+ variants = 2;
+ }};
+
moss = new Floor("moss"){{
variants = 3;
attributes.set(Attribute.spores, 0.15f);
@@ -528,7 +540,7 @@ public class Blocks implements ContentList{
hasLiquids = false;
flameColor = Color.valueOf("ffef99");
- consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.sand, 2));
+ consumes.items(with(Items.coal, 1, Items.sand, 2));
consumes.power(0.50f);
}};
@@ -544,7 +556,7 @@ public class Blocks implements ContentList{
itemCapacity = 30;
boostScale = 0.15f;
- consumes.items(new ItemStack(Items.coal, 4), new ItemStack(Items.sand, 6), new ItemStack(Items.pyratite, 1));
+ consumes.items(with(Items.coal, 4, Items.sand, 6, Items.pyratite, 1));
consumes.power(4f);
}};
@@ -557,7 +569,7 @@ public class Blocks implements ContentList{
hasPower = hasItems = true;
flameColor = Color.valueOf("ffc099");
- consumes.items(new ItemStack(Items.lead, 1), new ItemStack(Items.sand, 1));
+ consumes.items(with(Items.lead, 1, Items.sand, 1));
consumes.power(0.60f);
}};
@@ -588,7 +600,10 @@ public class Blocks implements ContentList{
hasPower = true;
drawer = new DrawWeave();
- consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10));
+ ambientSound = Sounds.techloop;
+ ambientSoundVolume = 0.02f;
+
+ consumes.items(with(Items.thorium, 4, Items.sand, 10));
consumes.power(5f);
itemCapacity = 20;
}};
@@ -602,7 +617,7 @@ public class Blocks implements ContentList{
hasPower = true;
consumes.power(4f);
- consumes.items(new ItemStack(Items.copper, 3), new ItemStack(Items.lead, 4), new ItemStack(Items.titanium, 2), new ItemStack(Items.silicon, 3));
+ consumes.items(with(Items.copper, 3, Items.lead, 4, Items.titanium, 2, Items.silicon, 3));
}};
cryofluidMixer = new LiquidConverter("cryofluid-mixer"){{
@@ -623,17 +638,6 @@ public class Blocks implements ContentList{
consumes.liquid(Liquids.water, 0.2f);
}};
- blastMixer = new GenericCrafter("blast-mixer"){{
- requirements(Category.crafting, with(Items.lead, 30, Items.titanium, 20));
- hasItems = true;
- hasPower = true;
- outputItem = new ItemStack(Items.blastCompound, 1);
- size = 2;
-
- consumes.items(new ItemStack(Items.pyratite, 1), new ItemStack(Items.sporePod, 1));
- consumes.power(0.40f);
- }};
-
pyratiteMixer = new GenericSmelter("pyratite-mixer"){{
requirements(Category.crafting, with(Items.copper, 50, Items.lead, 25));
flameColor = Color.clear;
@@ -644,7 +648,18 @@ public class Blocks implements ContentList{
size = 2;
consumes.power(0.20f);
- consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2));
+ consumes.items(with(Items.coal, 1, Items.lead, 2, Items.sand, 2));
+ }};
+
+ blastMixer = new GenericCrafter("blast-mixer"){{
+ requirements(Category.crafting, with(Items.lead, 30, Items.titanium, 20));
+ hasItems = true;
+ hasPower = true;
+ outputItem = new ItemStack(Items.blastCompound, 1);
+ size = 2;
+
+ consumes.items(with(Items.pyratite, 1, Items.sporePod, 1));
+ consumes.power(0.40f);
}};
melter = new GenericCrafter("melter"){{
@@ -716,6 +731,8 @@ public class Blocks implements ContentList{
updateEffect = Fx.pulverizeSmall;
hasItems = hasPower = true;
drawer = new DrawRotator();
+ ambientSound = Sounds.grinding;
+ ambientSoundVolume = 0.025f;
consumes.item(Items.scrap, 1);
consumes.power(0.50f);
@@ -912,7 +929,7 @@ public class Blocks implements ContentList{
size = 3;
phaseRadiusBoost = 80f;
radius = 101.7f;
- breakage = 750f;
+ shieldHealth = 750f;
cooldownNormal = 1.5f;
cooldownLiquid = 1.2f;
cooldownBrokenBase = 0.35f;
@@ -1140,7 +1157,7 @@ public class Blocks implements ContentList{
}};
battery = new Battery("battery"){{
- requirements(Category.power, with(Items.copper, 4, Items.lead, 20));
+ requirements(Category.power, with(Items.copper, 5, Items.lead, 20));
consumes.powerBuffered(4000f);
}};
@@ -1154,6 +1171,9 @@ public class Blocks implements ContentList{
requirements(Category.power, with(Items.copper, 25, Items.lead, 15));
powerProduction = 1f;
itemDuration = 120f;
+
+ ambientSound = Sounds.smelter;
+ ambientSoundVolume = 0.03f;
}};
thermalGenerator = new ThermalGenerator("thermal-generator"){{
@@ -1162,6 +1182,8 @@ public class Blocks implements ContentList{
generateEffect = Fx.redgeneratespark;
size = 2;
floating = true;
+ ambientSound = Sounds.hum;
+ ambientSoundVolume = 0.06f;
}};
steamGenerator = new BurnerGenerator("steam-generator"){{
@@ -1171,6 +1193,9 @@ public class Blocks implements ContentList{
consumes.liquid(Liquids.water, 0.1f);
hasLiquids = true;
size = 2;
+
+ ambientSound = Sounds.smelter;
+ ambientSoundVolume = 0.05f;
}};
differentialGenerator = new SingleTypeGenerator("differential-generator"){{
@@ -1180,6 +1205,8 @@ public class Blocks implements ContentList{
hasLiquids = true;
hasItems = true;
size = 3;
+ ambientSound = Sounds.steam;
+ ambientSoundVolume = 0.03f;
consumes.item(Items.pyratite).optional(true, false);
consumes.liquid(Liquids.cryofluid, 0.1f);
@@ -1189,22 +1216,24 @@ public class Blocks implements ContentList{
requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phaseFabric, 25, Items.plastanium, 75, Items.thorium, 50));
size = 2;
powerProduction = 4.5f;
- itemDuration = 60 * 18f;
+ itemDuration = 60 * 15f;
}};
solarPanel = new SolarGenerator("solar-panel"){{
requirements(Category.power, with(Items.lead, 10, Items.silicon, 15));
- powerProduction = 0.07f;
+ powerProduction = 0.08f;
}};
largeSolarPanel = new SolarGenerator("solar-panel-large"){{
requirements(Category.power, with(Items.lead, 100, Items.silicon, 145, Items.phaseFabric, 15));
size = 3;
- powerProduction = 0.95f;
+ powerProduction = 1f;
}};
thoriumReactor = new NuclearReactor("thorium-reactor"){{
requirements(Category.power, with(Items.lead, 300, Items.silicon, 200, Items.graphite, 150, Items.thorium, 150, Items.metaglass, 50));
+ ambientSound = Sounds.hum;
+ ambientSoundVolume = 0.24f;
size = 3;
health = 700;
itemDuration = 360f;
@@ -1220,6 +1249,9 @@ public class Blocks implements ContentList{
health = 900;
powerProduction = 130f;
itemDuration = 140f;
+ ambientSound = Sounds.pulse;
+ ambientSoundVolume = 0.07f;
+
consumes.power(25f);
consumes.item(Items.blastCompound);
consumes.liquid(Liquids.cryofluid, 0.25f);
@@ -1326,7 +1358,7 @@ public class Blocks implements ContentList{
//region storage
coreShard = new CoreBlock("core-shard"){{
- requirements(Category.effect, BuildVisibility.hidden, with(Items.copper, 2000, Items.lead, 1000));
+ requirements(Category.effect, BuildVisibility.editorOnly, with(Items.copper, 1000, Items.lead, 800));
alwaysUnlocked = true;
unitType = UnitTypes.alpha;
@@ -1400,7 +1432,7 @@ public class Blocks implements ContentList{
restitution = 0.03f;
range = 100;
shootCone = 15f;
- ammoUseEffect = Fx.shellEjectSmall;
+ ammoUseEffect = Fx.casing1;
health = 250;
inaccuracy = 2f;
rotateSpeed = 10f;
@@ -1460,7 +1492,7 @@ public class Blocks implements ContentList{
inaccuracy = 1f;
shootCone = 10f;
health = 260;
- shootSound = Sounds.artillery;
+ shootSound = Sounds.bang;
}};
wave = new LiquidTurret("wave"){{
@@ -1480,7 +1512,7 @@ public class Blocks implements ContentList{
shootEffect = Fx.shootLiquid;
range = 110f;
health = 250 * size * size;
- shootSound = Sounds.splash;
+ flags = EnumSet.of(BlockFlag.turret, BlockFlag.extinguisher);
}};
lancer = new ChargeTurret("lancer"){{
@@ -1541,10 +1573,10 @@ public class Blocks implements ContentList{
hasPower = true;
size = 2;
- force = 5f;
- scaledForce = 5.5f;
- range = 160f;
- damage = 0.4f;
+ force = 8f;
+ scaledForce = 7f;
+ range = 230f;
+ damage = 0.3f;
health = 160 * size * size;
rotateSpeed = 10;
@@ -1589,7 +1621,7 @@ public class Blocks implements ContentList{
shootShake = 1f;
burstSpacing = 3f;
shots = 4;
- ammoUseEffect = Fx.shellEjectBig;
+ ammoUseEffect = Fx.casing2;
health = 240 * size * size;
shootSound = Sounds.shootBig;
}};
@@ -1628,7 +1660,6 @@ public class Blocks implements ContentList{
shootEffect = Fx.shootLiquid;
range = 190f;
health = 250 * size * size;
- shootSound = Sounds.splash;
}};
fuse = new ItemTurret("fuse"){{
@@ -1650,17 +1681,19 @@ public class Blocks implements ContentList{
float brange = range + 10f;
ammo(
- Items.thorium, new ShrapnelBulletType(){{
- length = brange;
- damage = 105f;
- ammoMultiplier = 5f;
- }},
Items.titanium, new ShrapnelBulletType(){{
length = brange;
damage = 66f;
ammoMultiplier = 4f;
width = 17f;
reloadMultiplier = 1.3f;
+ }},
+ Items.thorium, new ShrapnelBulletType(){{
+ length = brange;
+ damage = 105f;
+ ammoMultiplier = 5f;
+ toColor = Pal.thoriumPink;
+ shootEffect = smokeEffect = Fx.thoriumShoot;
}}
);
}};
@@ -1681,7 +1714,7 @@ public class Blocks implements ContentList{
inaccuracy = 12f;
reloadTime = 60f;
ammoEjectBack = 5f;
- ammoUseEffect = Fx.shellEjectBig;
+ ammoUseEffect = Fx.casing3Double;
ammoPerShot = 2;
cooldown = 0.03f;
velocityInaccuracy = 0.2f;
@@ -1738,8 +1771,7 @@ public class Blocks implements ContentList{
rotateSpeed = 2.5f;
reloadTime = 200f;
- restitution = 0.2f;
- ammoUseEffect = Fx.shellEjectBig;
+ ammoUseEffect = Fx.casing3Double;
recoilAmount = 5f;
restitution = 0.009f;
cooldown = 0.009f;
@@ -1747,13 +1779,13 @@ public class Blocks implements ContentList{
shots = 1;
size = 4;
shootCone = 2f;
- shootSound = Sounds.shootBig;
+ shootSound = Sounds.railgun;
unitSort = (u, x, y) -> -u.maxHealth;
- coolantMultiplier = 0.09f;
+ coolantMultiplier = 0.2f;
health = 150 * size * size;
- consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true, true);
+ coolantUsage = 1f;
consumes.powerCond(10f, TurretBuild::isActive);
}};
@@ -1768,7 +1800,7 @@ public class Blocks implements ContentList{
reloadTime = 6f;
coolantMultiplier = 0.5f;
restitution = 0.1f;
- ammoUseEffect = Fx.shellEjectBig;
+ ammoUseEffect = Fx.casing3;
range = 200f;
inaccuracy = 3f;
recoilAmount = 3f;
@@ -1781,7 +1813,7 @@ public class Blocks implements ContentList{
shootSound = Sounds.shootBig;
health = 160 * size * size;
- consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true, true);
+ coolantUsage = 1f;
}};
meltdown = new LaserTurret("meltdown"){{
@@ -1797,8 +1829,8 @@ public class Blocks implements ContentList{
shootDuration = 220f;
powerUse = 17f;
shootSound = Sounds.laserbig;
- activeSound = Sounds.beam;
- activeSoundVolume = 2f;
+ loopSound = Sounds.beam;
+ loopSoundVolume = 2f;
shootType = new ContinuousLaserBulletType(70){{
length = 200f;
@@ -1987,9 +2019,9 @@ public class Blocks implements ContentList{
illuminator = new LightBlock("illuminator"){{
requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 12, Items.silicon, 8));
- brightness = 0.67f;
- radius = 140f;
- consumes.power(0.06f);
+ brightness = 0.75f;
+ radius = 120f;
+ consumes.power(0.05f);
}};
//endregion
@@ -1998,6 +2030,12 @@ public class Blocks implements ContentList{
//looked up by name, no ref needed
new LegacyMechPad("legacy-mech-pad");
new LegacyUnitFactory("legacy-unit-factory");
+ new LegacyUnitFactory("legacy-unit-factory-air"){{
+ replacement = Blocks.airFactory;
+ }};
+ new LegacyUnitFactory("legacy-unit-factory-ground"){{
+ replacement = Blocks.groundFactory;
+ }};
//endregion
//region campaign
@@ -2013,7 +2051,6 @@ public class Blocks implements ContentList{
//TODO remove
launchPadLarge = new LaunchPad("launch-pad-large"){{
- //requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.titanium, 200, Items.silicon, 150, Items.lead, 250, Items.plastanium, 75));
size = 4;
itemCapacity = 300;
launchTime = 60f * 35;
@@ -2021,6 +2058,15 @@ public class Blocks implements ContentList{
consumes.power(6f);
}};
+ interplanetaryAccelerator = new Accelerator("interplanetary-accelerator"){{
+ requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 16000, Items.silicon, 11000, Items.thorium, 13000, Items.titanium, 12000, Items.surgeAlloy, 6000, Items.phaseFabric, 5000));
+ researchCostMultiplier = 0.1f;
+ size = 7;
+ hasPower = true;
+ consumes.power(10f);
+ buildCostMultiplier = 0.5f;
+ }};
+
//endregion campaign
//region logic
@@ -2033,7 +2079,7 @@ public class Blocks implements ContentList{
}};
microProcessor = new LogicBlock("micro-processor"){{
- requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 50));
+ requirements(Category.logic, with(Items.copper, 80, Items.lead, 50, Items.silicon, 30));
instructionsPerTick = 2;
@@ -2041,7 +2087,7 @@ 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));
+ requirements(Category.logic, with(Items.lead, 320, Items.silicon, 60, Items.graphite, 60, Items.thorium, 50));
instructionsPerTick = 8;
@@ -2051,7 +2097,7 @@ public class Blocks implements ContentList{
}};
hyperProcessor = new LogicBlock("hyper-processor"){{
- requirements(Category.logic, with(Items.lead, 450, Items.silicon, 150, Items.thorium, 75, Items.surgeAlloy, 50));
+ requirements(Category.logic, with(Items.lead, 450, Items.silicon, 130, Items.thorium, 75, Items.surgeAlloy, 50));
consumes.liquid(Liquids.cryofluid, 0.08f);
hasLiquids = true;
diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java
index e2d42c0ef0..c7fa47a62b 100644
--- a/core/src/mindustry/content/Bullets.java
+++ b/core/src/mindustry/content/Bullets.java
@@ -30,18 +30,33 @@ public class Bullets implements ContentList{
missileExplosive, missileIncendiary, missileSurge,
//standard
- standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary, standardMechSmall,
- standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig,
+ standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary,
+ standardDenseBig, standardThoriumBig, standardIncendiaryBig,
//liquid
waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot,
//environment, misc.
- damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig, frag;
+ damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig;
@Override
public void load(){
+ //lightning bullets need to be initialized first.
+ damageLightning = new BulletType(0.0001f, 0f){{
+ lifetime = Fx.lightning.lifetime;
+ hitEffect = Fx.hitLancer;
+ despawnEffect = Fx.none;
+ status = StatusEffects.shocked;
+ statusDuration = 10f;
+ hittable = false;
+ }};
+
+ //this is just a copy of the damage lightning bullet that doesn't damage air units
+ damageLightningGround = new BulletType(0.0001f, 0f){};
+ JsonIO.copy(damageLightning, damageLightningGround);
+ damageLightningGround.collidesAir = false;
+
artilleryDense = new ArtilleryBulletType(3f, 20, "shell"){{
hitEffect = Fx.flakExplosion;
knockback = 0.8f;
@@ -102,6 +117,7 @@ public class Bullets implements ContentList{
status = StatusEffects.burning;
frontColor = Pal.lightishOrange;
backColor = Pal.lightOrange;
+ makeFire = true;
trailEffect = Fx.incendTrail;
}};
@@ -265,6 +281,7 @@ public class Bullets implements ContentList{
homingPower = 0.08f;
splashDamageRadius = 20f;
splashDamage = 20f;
+ makeFire = true;
hitEffect = Fx.blastExplosion;
status = StatusEffects.burning;
}};
@@ -278,6 +295,7 @@ public class Bullets implements ContentList{
splashDamage = 25f;
hitEffect = Fx.blastExplosion;
despawnEffect = Fx.blastExplosion;
+ lightningDamage = 10;
lightning = 2;
lightningLength = 10;
}};
@@ -323,27 +341,11 @@ public class Bullets implements ContentList{
frontColor = Pal.lightishOrange;
backColor = Pal.lightOrange;
status = StatusEffects.burning;
+ makeFire = true;
inaccuracy = 3f;
lifetime = 60f;
}};
- standardGlaive = new BasicBulletType(4f, 7.5f, "bullet"){{
- width = 10f;
- height = 12f;
- frontColor = Color.valueOf("feb380");
- backColor = Color.valueOf("ea8878");
- status = StatusEffects.burning;
- lifetime = 60f;
- }};
-
- standardMechSmall = new BasicBulletType(4f, 9, "bullet"){{
- width = 11f;
- height = 14f;
- lifetime = 40f;
- inaccuracy = 5f;
- despawnEffect = Fx.hitBulletSmall;
- }};
-
standardDenseBig = new BasicBulletType(7f, 55, "bullet"){{
width = 15f;
height = 21f;
@@ -356,6 +358,7 @@ public class Bullets implements ContentList{
shootEffect = Fx.shootBig;
pierceCap = 2;
pierceBuilding = true;
+ knockback = 0.7f;
}};
standardIncendiaryBig = new BasicBulletType(7f, 60, "bullet"){{
@@ -365,24 +368,12 @@ public class Bullets implements ContentList{
backColor = Pal.lightOrange;
status = StatusEffects.burning;
shootEffect = Fx.shootBig;
+ makeFire = true;
pierceCap = 2;
pierceBuilding = true;
+ knockback = 0.7f;
}};
- damageLightning = new BulletType(0.0001f, 0f){{
- lifetime = Fx.lightning.lifetime;
- hitEffect = Fx.hitLancer;
- despawnEffect = Fx.none;
- status = StatusEffects.shocked;
- statusDuration = 10f;
- hittable = false;
- }};
-
- //this is just a copy of the damage lightning bullet that doesn't damage air units
- damageLightningGround = new BulletType(0.0001f, 0f){};
- JsonIO.copy(damageLightning, damageLightningGround);
- damageLightningGround.collidesAir = false;
-
healBullet = new LaserBoltBulletType(5.2f, 13){{
healPercent = 3f;
collidesTeam = true;
@@ -437,7 +428,7 @@ public class Bullets implements ContentList{
}
};
- basicFlame = new BulletType(3.35f, 15f){{
+ basicFlame = new BulletType(3.35f, 16f){{
ammoMultiplier = 3f;
hitSize = 7f;
lifetime = 18f;
@@ -452,7 +443,7 @@ public class Bullets implements ContentList{
hittable = false;
}};
- pyraFlame = new BulletType(3.35f, 22f){{
+ pyraFlame = new BulletType(3.35f, 25f){{
ammoMultiplier = 4f;
hitSize = 7f;
lifetime = 18f;
@@ -489,9 +480,9 @@ public class Bullets implements ContentList{
knockback = 1.7f;
puddleSize = 8f;
drag = 0.001f;
- ammoMultiplier = 2f;
+ ammoMultiplier = 0.4f;
statusDuration = 60f * 4f;
- damage = 0.1f;
+ damage = 0.2f;
}};
heavyCryoShot = new LiquidBulletType(Liquids.cryofluid){{
@@ -500,9 +491,9 @@ public class Bullets implements ContentList{
knockback = 1.3f;
puddleSize = 8f;
drag = 0.001f;
- ammoMultiplier = 2f;
+ ammoMultiplier = 0.4f;
statusDuration = 60f * 4f;
- damage = 0.1f;
+ damage = 0.2f;
}};
heavySlagShot = new LiquidBulletType(Liquids.slag){{
@@ -510,9 +501,9 @@ public class Bullets implements ContentList{
speed = 4f;
knockback = 1.3f;
puddleSize = 8f;
- damage = 5f;
+ damage = 4.75f;
drag = 0.001f;
- ammoMultiplier = 2f;
+ ammoMultiplier = 0.4f;
statusDuration = 60f * 4f;
}};
@@ -522,19 +513,11 @@ public class Bullets implements ContentList{
knockback = 1.3f;
puddleSize = 8f;
drag = 0.001f;
- ammoMultiplier = 2f;
+ ammoMultiplier = 0.4f;
statusDuration = 60f * 4f;
- damage = 0.1f;
+ damage = 0.2f;
}};
driverBolt = new MassDriverBolt();
-
- frag = new BasicBulletType(5f, 8, "bullet"){{
- width = 8f;
- height = 9f;
- shrinkY = 0.5f;
- lifetime = 50f;
- drag = 0.04f;
- }};
}
}
diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java
index 5d0c45348d..ef2973f19e 100644
--- a/core/src/mindustry/content/Fx.java
+++ b/core/src/mindustry/content/Fx.java
@@ -257,33 +257,33 @@ public class Fx{
randLenVectors(e.id, 9, 3 + 20f * e.finpow(), (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.4f);
});
- }).ground(),
+ }).layer(Layer.debris),
unitLand = new Effect(30, e -> {
color(Tmp.c1.set(e.color).mul(1.1f));
randLenVectors(e.id, 6, 17f * e.finpow(), (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.3f);
});
- }).ground(),
+ }).layer(Layer.debris),
unitLandSmall = new Effect(30, e -> {
color(Tmp.c1.set(e.color).mul(1.1f));
randLenVectors(e.id, (int)(6 * e.rotation), 12f * e.finpow() * e.rotation, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 3f + 0.1f);
});
- }).ground(),
+ }).layer(Layer.debris),
unitPickup = new Effect(18, e -> {
color(Pal.lightishGray);
stroke(e.fin() * 2f);
Lines.poly(e.x, e.y, 4, 13f * e.fout());
- }).ground(),
+ }).layer(Layer.debris),
landShock = new Effect(12, e -> {
color(Pal.lancerLaser);
stroke(e.fout() * 3f);
Lines.poly(e.x, e.y, 12, 20f * e.fout());
- }).ground(),
+ }).layer(Layer.debris),
pickup = new Effect(18, e -> {
color(Pal.lightishGray);
@@ -389,7 +389,6 @@ public class Fx{
float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
});
-
}),
hitBulletBig = new Effect(13, e -> {
@@ -400,7 +399,6 @@ public class Fx{
float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1.5f);
});
-
}),
hitFlameSmall = new Effect(14, e -> {
@@ -411,7 +409,6 @@ public class Fx{
float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
});
-
}),
hitLiquid = new Effect(16, e -> {
@@ -420,7 +417,6 @@ public class Fx{
randLenVectors(e.id, 5, e.fin() * 15f, e.rotation, 60f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 2f);
});
-
}),
hitLancer = new Effect(12, e -> {
@@ -431,7 +427,6 @@ public class Fx{
float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f);
});
-
}),
hitMeltdown = new Effect(12, e -> {
@@ -442,7 +437,6 @@ public class Fx{
float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f);
});
-
}),
hitMeltHeal = new Effect(12, e -> {
@@ -453,7 +447,6 @@ public class Fx{
float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f);
});
-
}),
instBomb = new Effect(15f, 100f, e -> {
@@ -553,8 +546,8 @@ public class Fx{
}),
flakExplosion = new Effect(20, e -> {
-
color(Pal.bulletYellow);
+
e.scaled(6, i -> {
stroke(3f * i.fout());
Lines.circle(e.x, e.y, 3f + i.fin() * 10f);
@@ -572,12 +565,11 @@ public class Fx{
randLenVectors(e.id + 1, 4, 1f + 23f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
});
-
}),
plasticExplosion = new Effect(24, e -> {
-
color(Pal.plastaniumFront);
+
e.scaled(7, i -> {
stroke(3f * i.fout());
Lines.circle(e.x, e.y, 3f + i.fin() * 24f);
@@ -595,12 +587,11 @@ public class Fx{
randLenVectors(e.id + 1, 4, 1f + 25f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
});
-
}),
plasticExplosionFlak = new Effect(28, e -> {
-
color(Pal.plastaniumFront);
+
e.scaled(7, i -> {
stroke(3f * i.fout());
Lines.circle(e.x, e.y, 3f + i.fin() * 34f);
@@ -618,12 +609,11 @@ public class Fx{
randLenVectors(e.id + 1, 4, 1f + 30f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
});
-
}),
blastExplosion = new Effect(22, e -> {
-
color(Pal.missileYellow);
+
e.scaled(6, i -> {
stroke(3f * i.fout());
Lines.circle(e.x, e.y, 3f + i.fin() * 15f);
@@ -641,12 +631,11 @@ public class Fx{
randLenVectors(e.id + 1, 4, 1f + 23f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
});
-
}),
sapExplosion = new Effect(25, e -> {
-
color(Pal.sapBullet);
+
e.scaled(6, i -> {
stroke(3f * i.fout());
Lines.circle(e.x, e.y, 3f + i.fin() * 80f);
@@ -664,12 +653,11 @@ public class Fx{
randLenVectors(e.id + 1, 8, 1f + 60f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
});
-
}),
massiveExplosion = new Effect(30, e -> {
-
color(Pal.missileYellow);
+
e.scaled(7, i -> {
stroke(3f * i.fout());
Lines.circle(e.x, e.y, 4f + i.fin() * 30f);
@@ -687,7 +675,6 @@ public class Fx{
randLenVectors(e.id + 1, 6, 1f + 29f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 4f);
});
-
}),
artilleryTrail = new Effect(50, e -> {
@@ -712,8 +699,8 @@ public class Fx{
}),
flakExplosionBig = new Effect(30, e -> {
-
color(Pal.bulletYellowBack);
+
e.scaled(6, i -> {
stroke(3f * i.fout());
Lines.circle(e.x, e.y, 3f + i.fin() * 25f);
@@ -731,7 +718,6 @@ public class Fx{
randLenVectors(e.id + 1, 4, 1f + 23f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
});
-
}),
burning = new Effect(35f, e -> {
@@ -740,7 +726,6 @@ public class Fx{
randLenVectors(e.id, 3, 2f + e.fin() * 7f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.1f + e.fout() * 1.4f);
});
-
}),
fire = new Effect(50f, e -> {
@@ -761,7 +746,6 @@ public class Fx{
randLenVectors(e.id, 1, 2f + e.fin() * 7f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.2f + e.fslope() * 1.5f);
});
-
}),
steam = new Effect(35f, e -> {
@@ -770,7 +754,6 @@ public class Fx{
randLenVectors(e.id, 2, 2f + e.fin() * 7f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.2f + e.fslope() * 1.5f);
});
-
}),
fireballsmoke = new Effect(25f, e -> {
@@ -779,7 +762,6 @@ public class Fx{
randLenVectors(e.id, 1, 2f + e.fin() * 7f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.2f + e.fout() * 1.5f);
});
-
}),
ballfire = new Effect(25f, e -> {
@@ -788,7 +770,6 @@ public class Fx{
randLenVectors(e.id, 2, 2f + e.fin() * 7f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.2f + e.fout() * 1.5f);
});
-
}),
freezing = new Effect(40f, e -> {
@@ -797,7 +778,6 @@ public class Fx{
randLenVectors(e.id, 2, 1f + e.fin() * 2f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 1.2f);
});
-
}),
melting = new Effect(40f, e -> {
@@ -806,7 +786,6 @@ public class Fx{
randLenVectors(e.id, 2, 1f + e.fin() * 3f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, .2f + e.fout() * 1.2f);
});
-
}),
wet = new Effect(80f, e -> {
@@ -815,7 +794,7 @@ public class Fx{
Fill.circle(e.x, e.y, e.fout() * 1f);
}),
-
+
muddy = new Effect(80f, e -> {
color(Color.valueOf("432722"));
alpha(Mathf.clamp(e.fin() * 2f));
@@ -829,7 +808,6 @@ public class Fx{
randLenVectors(e.id, 2, 1f + e.fin() * 2f, (x, y) -> {
Fill.square(e.x + x, e.y + y, e.fslope() * 1.1f, 45f);
});
-
}),
sporeSlowed = new Effect(40f, e -> {
@@ -844,7 +822,6 @@ public class Fx{
randLenVectors(e.id, 2, 1f + e.fin() * 2f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 1f);
});
-
}),
overdriven = new Effect(20f, e -> {
@@ -853,7 +830,6 @@ public class Fx{
randLenVectors(e.id, 2, 1f + e.fin() * 2f, (x, y) -> {
Fill.square(e.x + x, e.y + y, e.fout() * 2.3f + 0.5f);
});
-
}),
overclocked = new Effect(50f, e -> {
@@ -962,7 +938,6 @@ public class Fx{
randLenVectors(e.id + 1, 9, 1f + 23f * e.finpow(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
});
-
}),
blockExplosionSmoke = new Effect(30, e -> {
@@ -972,7 +947,6 @@ public class Fx{
Fill.circle(e.x + x, e.y + y, e.fout() * 3f);
Fill.circle(e.x + x / 2f, e.y + y / 2f, e.fout() * 1f);
});
-
}),
shootSmall = new Effect(8, e -> {
@@ -1002,7 +976,6 @@ public class Fx{
randLenVectors(e.id, 5, e.finpow() * 6f, e.rotation, 20f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 1.5f);
});
-
}),
shootBig = new Effect(9, e -> {
@@ -1025,7 +998,6 @@ public class Fx{
randLenVectors(e.id, 8, e.finpow() * 19f, e.rotation, 10f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 2f + 0.2f);
});
-
}),
shootBigSmoke2 = new Effect(18f, e -> {
@@ -1034,7 +1006,6 @@ public class Fx{
randLenVectors(e.id, 9, e.finpow() * 23f, e.rotation, 20f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 2.4f + 0.2f);
});
-
}),
shootSmallFlame = new Effect(32f, 80f, e -> {
@@ -1043,7 +1014,6 @@ public class Fx{
randLenVectors(e.id, 8, e.finpow() * 60f, e.rotation, 10f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.5f);
});
-
}),
shootPyraFlame = new Effect(33f, 80f, e -> {
@@ -1052,7 +1022,6 @@ public class Fx{
randLenVectors(e.id, 10, e.finpow() * 70f, e.rotation, 10f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.6f);
});
-
}),
shootLiquid = new Effect(40f, 80f, e -> {
@@ -1061,69 +1030,104 @@ public class Fx{
randLenVectors(e.id, 6, e.finpow() * 60f, e.rotation, 11f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.5f + e.fout() * 2.5f);
});
-
}),
- shellEjectSmall = new Effect(30f, e -> {
+ casing1 = new Effect(30f, e -> {
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
+ alpha(e.fout(0.3f));
float rot = Math.abs(e.rotation) + 90f;
-
- int i = Mathf.sign(e.rotation);
+ int i = -Mathf.sign(e.rotation);
float len = (2f + e.finpow() * 6f) * i;
float lr = rot + e.fin() * 30f * i;
- Fill.rect(e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
- e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
- 1f, 2f, rot + e.fin() * 50f * i);
+ Fill.rect(
+ e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
+ e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
+ 1f, 2f, rot + e.fin() * 50f * i
+ );
- }).ground(400f),
+ }).layer(Layer.bullet),
- shellEjectMedium = new Effect(34f, e -> {
+ casing2 = new Effect(34f, e -> {
color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
- float rot = e.rotation + 90f;
+ alpha(e.fout(0.5f));
+ float rot = Math.abs(e.rotation) + 90f;
+ int i = -Mathf.sign(e.rotation);
+ float len = (2f + e.finpow() * 10f) * i;
+ float lr = rot + e.fin() * 20f * i;
+ rect(Core.atlas.find("casing"),
+ e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
+ e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
+ 2f, 3f, rot + e.fin() * 50f * i
+ );
+ }).layer(Layer.bullet),
+
+ casing3 = new Effect(40f, e -> {
+ color(Pal.lightOrange, Pal.lightishGray, Pal.lightishGray, e.fin());
+ alpha(e.fout(0.5f));
+ float rot = Math.abs(e.rotation) + 90f;
+ int i = -Mathf.sign(e.rotation);
+ float len = (4f + e.finpow() * 9f) * i;
+ float lr = rot + Mathf.randomSeedRange(e.id + i + 6, 20f * e.fin()) * i;
+
+ rect(Core.atlas.find("casing"),
+ e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
+ e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
+ 2.5f, 4f,
+ rot + e.fin() * 50f * i
+ );
+ }).layer(Layer.bullet),
+
+ casing4 = new Effect(45f, e -> {
+ color(Pal.lightOrange, Pal.lightishGray, Pal.lightishGray, e.fin());
+ alpha(e.fout(0.5f));
+ float rot = Math.abs(e.rotation) + 90f;
+ int i = -Mathf.sign(e.rotation);
+ float len = (4f + e.finpow() * 9f) * i;
+ float lr = rot + Mathf.randomSeedRange(e.id + i + 6, 20f * e.fin()) * i;
+
+ rect(Core.atlas.find("casing"),
+ e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
+ e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
+ 3f, 6f,
+ rot + e.fin() * 50f * i
+ );
+ }).layer(Layer.bullet),
+
+ casing2Double = new Effect(34f, e -> {
+ color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
+ alpha(e.fout(0.5f));
+ float rot = Math.abs(e.rotation) + 90f;
for(int i : Mathf.signs){
float len = (2f + e.finpow() * 10f) * i;
float lr = rot + e.fin() * 20f * i;
rect(Core.atlas.find("casing"),
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
- 2f, 3f, rot);
+ 2f, 3f, rot + e.fin() * 50f * i
+ );
}
- color(Color.lightGray, Color.gray, e.fin());
+ }).layer(Layer.bullet),
+
+ casing3Double = new Effect(40f, e -> {
+ color(Pal.lightOrange, Pal.lightishGray, Pal.lightishGray, e.fin());
+ alpha(e.fout(0.5f));
+ float rot = Math.abs(e.rotation) + 90f;
for(int i : Mathf.signs){
- float ex = e.x, ey = e.y, fout = e.fout();
- randLenVectors(e.id, 4, 1f + e.finpow() * 11f, e.rotation + 90f * i, 20f, (x, y) -> {
- Fill.circle(ex + x, ey + y, fout * 1.5f);
- });
- }
-
- }).ground(400f),
-
- shellEjectBig = new Effect(22f, e -> {
- color(Pal.lightOrange, Color.lightGray, Pal.lightishGray, e.fin());
- float rot = e.rotation + 90f;
- for(int i : Mathf.signs){
- float len = (4f + e.finpow() * 8f) * i;
+ float len = (4f + e.finpow() * 9f) * i;
float lr = rot + Mathf.randomSeedRange(e.id + i + 6, 20f * e.fin()) * i;
+
rect(Core.atlas.find("casing"),
e.x + trnsx(lr, len) + Mathf.randomSeedRange(e.id + i + 7, 3f * e.fin()),
e.y + trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
2.5f, 4f,
- rot + e.fin() * 30f * i + Mathf.randomSeedRange(e.id + i + 9, 40f * e.fin()));
+ rot + e.fin() * 50f * i
+ );
}
- color(Color.lightGray);
-
- for(int i : Mathf.signs){
- float ex = e.x, ey = e.y, fout = e.fout();
- randLenVectors(e.id, 4, -e.finpow() * 15f, e.rotation + 90f * i, 25f, (x, y) -> {
- Fill.circle(ex + x, ey + y, fout * 2f);
- });
- }
-
- }).ground(400f),
+ }).layer(Layer.bullet),
railShoot = new Effect(24f, e -> {
e.scaled(10f, b -> {
@@ -1161,7 +1165,6 @@ public class Fx{
for(int i : Mathf.signs){
Drawf.tri(e.x, e.y, 4f * e.fout(), 29f, e.rotation + 90f * i);
}
-
}),
lancerLaserShootSmoke = new Effect(26f, e -> {
@@ -1171,7 +1174,6 @@ public class Fx{
randLenVectors(e.id, 7, length, e.rotation, 0f, (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fout() * 9f);
});
-
}),
lancerLaserCharge = new Effect(38f, e -> {
@@ -1180,7 +1182,6 @@ public class Fx{
randLenVectors(e.id, 2, 1f + 20f * e.fout(), e.rotation, 120f, (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 3f + 1f);
});
-
}),
lancerLaserChargeBegin = new Effect(60f, e -> {
@@ -1197,7 +1198,6 @@ public class Fx{
randLenVectors(e.id, 2, 1f + 20f * e.fout(), e.rotation, 120f, (x, y) -> {
Drawf.tri(e.x + x, e.y + y, e.fslope() * 3f + 1, e.fslope() * 3f + 1, Mathf.angle(x, y));
});
-
}),
sparkShoot = new Effect(12f, e -> {
@@ -1207,7 +1207,6 @@ public class Fx{
randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 3f, (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 5f + 0.5f);
});
-
}),
lightningShoot = new Effect(12f, e -> {
@@ -1217,7 +1216,15 @@ public class Fx{
randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 50f, (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f);
});
+ }),
+ thoriumShoot = new Effect(12f, e -> {
+ color(Color.white, Pal.thoriumPink, e.fin());
+ stroke(e.fout() * 1.2f + 0.5f);
+
+ randLenVectors(e.id, 7, 25f * e.finpow(), e.rotation, 50f, (x, y) -> {
+ lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f);
+ });
}),
reactorsmoke = new Effect(17, e -> {
@@ -1328,21 +1335,21 @@ public class Fx{
Fill.square(e.x + x, e.y + y, e.fout() * 2.5f + 0.5f, 45);
});
}),
-
+
pulverizeSmall = new Effect(30, e -> {
randLenVectors(e.id, 3, e.fin() * 5f, (x, y) -> {
color(Pal.stoneGray);
Fill.square(e.x + x, e.y + y, e.fout() * 1f + 0.5f, 45);
});
}),
-
+
pulverizeMedium = new Effect(30, e -> {
randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> {
color(Pal.stoneGray);
Fill.square(e.x + x, e.y + y, e.fout() * 1f + 0.5f, 45);
});
}),
-
+
producesmoke = new Effect(12, e -> {
randLenVectors(e.id, 8, 4f + e.fin() * 18f, (x, y) -> {
color(Color.white, Pal.accent, e.fin());
@@ -1357,21 +1364,21 @@ public class Fx{
Fill.circle(e.x + x, e.y + y, 0.5f + fout * 4f);
});
}),
-
+
smeltsmoke = new Effect(15, e -> {
randLenVectors(e.id, 6, 4f + e.fin() * 5f, (x, y) -> {
color(Color.white, e.color, e.fin());
Fill.square(e.x + x, e.y + y, 0.5f + e.fout() * 2f, 45);
});
}),
-
+
formsmoke = new Effect(40, e -> {
randLenVectors(e.id, 6, 5f + e.fin() * 8f, (x, y) -> {
color(Pal.plasticSmoke, Color.lightGray, e.fin());
Fill.square(e.x + x, e.y + y, 0.2f + e.fout() * 2f, 45);
});
}),
-
+
blastsmoke = new Effect(26, e -> {
randLenVectors(e.id, 12, 1f + e.fin() * 23f, (x, y) -> {
float size = 2f + e.fout() * 6f;
@@ -1379,7 +1386,7 @@ public class Fx{
Fill.circle(e.x + x, e.y + y, size/2f);
});
}),
-
+
lava = new Effect(18, e -> {
randLenVectors(e.id, 3, 1f + e.fin() * 10f, (x, y) -> {
float size = e.fslope() * 4f;
@@ -1387,50 +1394,58 @@ public class Fx{
Fill.circle(e.x + x, e.y + y, size/2f);
});
}),
-
+
dooropen = new Effect(10, e -> {
stroke(e.fout() * 1.6f);
Lines.square(e.x, e.y, tilesize / 2f + e.fin() * 2f);
}),
-
+
doorclose = new Effect(10, e -> {
stroke(e.fout() * 1.6f);
Lines.square(e.x, e.y, tilesize / 2f + e.fout() * 2f);
}),
+
dooropenlarge = new Effect(10, e -> {
stroke(e.fout() * 1.6f);
Lines.square(e.x, e.y, tilesize + e.fin() * 2f);
}),
+
doorcloselarge = new Effect(10, e -> {
stroke(e.fout() * 1.6f);
Lines.square(e.x, e.y, tilesize + e.fout() * 2f);
}),
+
purify = new Effect(10, e -> {
color(Color.royal, Color.gray, e.fin());
stroke(2f);
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
}),
+
purifyoil = new Effect(10, e -> {
color(Color.black, Color.gray, e.fin());
stroke(2f);
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
}),
+
purifystone = new Effect(10, e -> {
color(Color.orange, Color.gray, e.fin());
stroke(2f);
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
}),
+
generate = new Effect(11, e -> {
color(Color.orange, Color.yellow, e.fin());
stroke(1f);
Lines.spikes(e.x, e.y, e.fin() * 5f, 2, 8);
}),
+
mine = new Effect(20, e -> {
randLenVectors(e.id, 6, 3f + e.fin() * 6f, (x, y) -> {
color(e.color, Color.lightGray, e.fin());
Fill.square(e.x + x, e.y + y, e.fout() * 2f, 45);
});
}),
+
mineBig = new Effect(30, e -> {
randLenVectors(e.id, 6, 4f + e.fin() * 8f, (x, y) -> {
color(e.color, Color.lightGray, e.fin());
@@ -1444,12 +1459,14 @@ public class Fx{
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.5f, 45);
});
}),
+
smelt = new Effect(20, e -> {
randLenVectors(e.id, 6, 2f + e.fin() * 5f, (x, y) -> {
color(Color.white, e.color, e.fin());
Fill.square(e.x + x, e.y + y, 0.5f + e.fout() * 2f, 45);
});
}),
+
teleportActivate = new Effect(50, e -> {
color(e.color);
@@ -1463,8 +1480,8 @@ public class Fx{
randLenVectors(e.id, 30, 4f + 40f * e.fin(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 4f + 1f);
});
-
}),
+
teleport = new Effect(60, e -> {
color(e.color);
stroke(e.fin() * 2f);
@@ -1473,8 +1490,8 @@ public class Fx{
randLenVectors(e.id, 20, 6f + 20f * e.fout(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 4f + 1f);
});
-
}),
+
teleportOut = new Effect(20, e -> {
color(e.color);
stroke(e.fout() * 2f);
@@ -1483,7 +1500,6 @@ public class Fx{
randLenVectors(e.id, 20, 4f + 20f * e.fin(), (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 4f + 1f);
});
-
}),
ripple = new Effect(30, e -> {
@@ -1492,7 +1508,7 @@ public class Fx{
color(Tmp.c1.set(e.color).mul(1.5f));
stroke(e.fout() * 1.4f);
Lines.circle(e.x, e.y, (2f + e.fin() * 4f) * e.rotation);
- }).ground(),
+ }).layer(Layer.debris),
bubble = new Effect(20, e -> {
color(Tmp.c1.set(e.color).shiftValue(0.1f));
@@ -1567,7 +1583,6 @@ public class Fx{
float radius = unit.hitSize() * 1.3f;
-
e.scaled(16f, c -> {
color(Pal.shield);
stroke(c.fout() * 2f + 0.1f);
diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java
index e07203313c..9450c441da 100644
--- a/core/src/mindustry/content/Planets.java
+++ b/core/src/mindustry/content/Planets.java
@@ -9,6 +9,7 @@ import mindustry.type.*;
public class Planets implements ContentList{
public static Planet
sun,
+ //tantros,
serpulo;
@Override
@@ -32,10 +33,21 @@ public class Planets implements ContentList{
);
}};
+ /*tantros = new Planet("tantros", sun, 2, 0.8f){{
+ generator = new TantrosPlanetGenerator();
+ meshLoader = () -> new HexMesh(this, 4);
+ atmosphereColor = Color.valueOf("3db899");
+ startSector = 10;
+ atmosphereRadIn = -0.01f;
+ atmosphereRadOut = 0.3f;
+ }};*/
+
serpulo = new Planet("serpulo", sun, 3, 1){{
generator = new SerpuloPlanetGenerator();
meshLoader = () -> new HexMesh(this, 6);
atmosphereColor = Color.valueOf("3c1b8f");
+ atmosphereRadIn = 0.02f;
+ atmosphereRadOut = 0.3f;
startSector = 15;
}};
}
diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java
index e516bab740..75583b19bf 100644
--- a/core/src/mindustry/content/SectorPresets.java
+++ b/core/src/mindustry/content/SectorPresets.java
@@ -8,15 +8,16 @@ import static mindustry.content.Planets.*;
public class SectorPresets implements ContentList{
public static SectorPreset
groundZero,
- craters, frozenForest, ruinousShores, stainedMountains, tarFields, fungalPass,
- saltFlats, overgrowth,
- desolateRift, nuclearComplex;
+ craters, biomassFacility, frozenForest, ruinousShores, windsweptIslands, stainedMountains, tarFields,
+ fungalPass, extractionOutpost, saltFlats, overgrowth,
+ impact0078, desolateRift, nuclearComplex, planetaryTerminal;
@Override
public void load(){
groundZero = new SectorPreset("groundZero", serpulo, 15){{
alwaysUnlocked = true;
+ addStartingItems = true;
captureWave = 10;
difficulty = 1;
}};
@@ -30,42 +31,68 @@ public class SectorPresets implements ContentList{
difficulty = 2;
}};
+ biomassFacility = new SectorPreset("biomassFacility", serpulo, 81){{
+ captureWave = 20;
+ difficulty = 3;
+ }};
+
craters = new SectorPreset("craters", serpulo, 18){{
captureWave = 20;
difficulty = 2;
}};
- ruinousShores = new SectorPreset("ruinousShores", serpulo, 19){{
+ ruinousShores = new SectorPreset("ruinousShores", serpulo, 213){{
captureWave = 30;
difficulty = 3;
}};
+ windsweptIslands = new SectorPreset("windsweptIslands", serpulo, 246){{
+ captureWave = 30;
+ difficulty = 4;
+ }};
+
stainedMountains = new SectorPreset("stainedMountains", serpulo, 20){{
captureWave = 30;
difficulty = 3;
}};
- fungalPass = new SectorPreset("fungalPass", serpulo, 21){{
- difficulty = 4;
+ extractionOutpost = new SectorPreset("extractionOutpost", serpulo, 165){{
+ difficulty = 5;
+ useAI = false;
}};
- overgrowth = new SectorPreset("overgrowth", serpulo, 22){{
+ fungalPass = new SectorPreset("fungalPass", serpulo, 21){{
+ difficulty = 4;
+ useAI = false;
+ }};
+
+ overgrowth = new SectorPreset("overgrowth", serpulo, 134){{
difficulty = 5;
+ useAI = false;
}};
tarFields = new SectorPreset("tarFields", serpulo, 23){{
- captureWave = 50;
+ captureWave = 40;
difficulty = 5;
}};
+ impact0078 = new SectorPreset("impact0078", serpulo, 227){{
+ captureWave = 45;
+ difficulty = 7;
+ }};
+
desolateRift = new SectorPreset("desolateRift", serpulo, 123){{
- captureWave = 40;
+ captureWave = 30;
difficulty = 8;
}};
nuclearComplex = new SectorPreset("nuclearComplex", serpulo, 130){{
- captureWave = 60;
+ captureWave = 50;
difficulty = 7;
}};
+
+ planetaryTerminal = new SectorPreset("planetaryTerminal", serpulo, 93){{
+ difficulty = 10;
+ }};
}
}
diff --git a/core/src/mindustry/content/StatusEffects.java b/core/src/mindustry/content/StatusEffects.java
index 4cdfadec76..c07a990f2b 100644
--- a/core/src/mindustry/content/StatusEffects.java
+++ b/core/src/mindustry/content/StatusEffects.java
@@ -6,6 +6,8 @@ import arc.math.*;
import mindustry.ctype.*;
import mindustry.game.EventType.*;
import mindustry.type.*;
+import mindustry.graphics.*;
+
import static mindustry.Vars.*;
@@ -18,6 +20,7 @@ public class StatusEffects implements ContentList{
none = new StatusEffect("none");
burning = new StatusEffect("burning"){{
+ color = Pal.lightFlame;
damage = 0.12f; //over 8 seconds, this would be 60 damage
effect = Fx.burning;
@@ -32,6 +35,7 @@ public class StatusEffects implements ContentList{
}};
freezing = new StatusEffect("freezing"){{
+ color = Color.valueOf("6ecdec");
speedMultiplier = 0.6f;
healthMultiplier = 0.8f;
effect = Fx.freezing;
@@ -47,10 +51,12 @@ public class StatusEffects implements ContentList{
}};
unmoving = new StatusEffect("unmoving"){{
+ color = Pal.gray;
speedMultiplier = 0.001f;
}};
slow = new StatusEffect("slow"){{
+ color = Pal.lightishGray;
speedMultiplier = 0.4f;
}};
@@ -63,7 +69,7 @@ public class StatusEffects implements ContentList{
init(() -> {
trans(shocked, ((unit, time, newTime, result) -> {
unit.damagePierce(14f);
- if(unit.team() == state.rules.waveTeam){
+ if(unit.team == state.rules.waveTeam){
Events.fire(Trigger.shock);
}
result.set(this, time);
@@ -80,6 +86,7 @@ public class StatusEffects implements ContentList{
}};
melting = new StatusEffect("melting"){{
+ color = Color.valueOf("ffa166");
speedMultiplier = 0.8f;
healthMultiplier = 0.8f;
damage = 0.3f;
@@ -92,6 +99,7 @@ public class StatusEffects implements ContentList{
}};
sapped = new StatusEffect("sapped"){{
+ color = Pal.sap;
speedMultiplier = 0.7f;
healthMultiplier = 0.8f;
effect = Fx.sapped;
@@ -99,12 +107,14 @@ public class StatusEffects implements ContentList{
}};
sporeSlowed = new StatusEffect("spore-slowed"){{
+ color = Pal.spore;
speedMultiplier = 0.8f;
effect = Fx.sapped;
effectChance = 0.04f;
}};
tarred = new StatusEffect("tarred"){{
+ color = Color.valueOf("313131");
speedMultiplier = 0.6f;
effect = Fx.oily;
@@ -115,6 +125,7 @@ public class StatusEffects implements ContentList{
}};
overdrive = new StatusEffect("overdrive"){{
+ color = Pal.accent;
healthMultiplier = 0.95f;
speedMultiplier = 1.15f;
damageMultiplier = 1.4f;
@@ -124,6 +135,7 @@ public class StatusEffects implements ContentList{
}};
overclock = new StatusEffect("overclock"){{
+ color = Pal.accent;
speedMultiplier = 1.15f;
damageMultiplier = 1.15f;
reloadMultiplier = 1.25f;
@@ -132,20 +144,27 @@ public class StatusEffects implements ContentList{
}};
shielded = new StatusEffect("shielded"){{
+ color = Pal.accent;
healthMultiplier = 3f;
}};
boss = new StatusEffect("boss"){{
+ color = Pal.health;
permanent = true;
- damageMultiplier = 2f;
- healthMultiplier = 2f;
+ damageMultiplier = 1.3f;
+ healthMultiplier = 1.5f;
}};
- shocked = new StatusEffect("shocked");
+ shocked = new StatusEffect("shocked"){{
+ color = Pal.lancerLaser;
+ }};
- blasted = new StatusEffect("blasted");
+ blasted = new StatusEffect("blasted"){{
+ color = Color.valueOf("ff795e");
+ }};
corroded = new StatusEffect("corroded"){{
+ color = Pal.plastanium;
damage = 0.1f;
}};
}
diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java
index 6118ca7b74..59a89d427e 100644
--- a/core/src/mindustry/content/TechTree.java
+++ b/core/src/mindustry/content/TechTree.java
@@ -11,7 +11,6 @@ import static mindustry.content.Blocks.*;
import static mindustry.content.SectorPresets.craters;
import static mindustry.content.SectorPresets.*;
import static mindustry.content.UnitTypes.*;
-import static mindustry.type.ItemStack.*;
public class TechTree implements ContentList{
static ObjectMap map = new ObjectMap<>();
@@ -30,7 +29,10 @@ public class TechTree implements ContentList{
node(junction, () -> {
node(router, () -> {
- node(launchPad, () -> {
+ node(launchPad, Seq.with(new SectorComplete(extractionOutpost)), () -> {
+ node(interplanetaryAccelerator, Seq.with(new SectorComplete(planetaryTerminal)), () -> {
+
+ });
});
node(distributor);
@@ -40,15 +42,15 @@ public class TechTree implements ContentList{
node(underflowGate);
});
});
- node(container, () -> {
+ node(container, Seq.with(new SectorComplete(biomassFacility)), () -> {
node(unloader);
- node(vault, () -> {
+ node(vault, Seq.with(new SectorComplete(stainedMountains)), () -> {
});
});
node(itemBridge, () -> {
- node(titaniumConveyor, () -> {
+ node(titaniumConveyor, Seq.with(new SectorComplete(craters)), () -> {
node(phaseConveyor, () -> {
node(massDriver, () -> {
@@ -88,7 +90,7 @@ public class TechTree implements ContentList{
node(bridgeConduit);
- node(pulseConduit, () -> {
+ node(pulseConduit, Seq.with(new SectorComplete(windsweptIslands)), () -> {
node(phaseConduit, () -> {
});
@@ -108,185 +110,153 @@ public class TechTree implements ContentList{
});
});
- node(Items.coal, with(Items.lead, 3000), () -> {
- node(Items.graphite, with(Items.coal, 1000), () -> {
+ node(graphitePress, () -> {
+ node(pneumaticDrill, Seq.with(new SectorComplete(frozenForest)), () -> {
+ node(cultivator, Seq.with(new SectorComplete(biomassFacility)), () -> {
- node(graphitePress, () -> {
- node(Items.titanium, with(Items.graphite, 6000, Items.copper, 10000, Items.lead, 10000), () -> {
- node(pneumaticDrill, () -> {
- node(Items.sporePod, with(Items.coal, 5000, Items.graphite, 5000, Items.lead, 5000), () -> {
- node(cultivator, () -> {
+ });
- });
- });
+ node(laserDrill, () -> {
+ node(blastDrill, Seq.with(new SectorComplete(nuclearComplex)), () -> {
- node(Items.thorium, with(Items.titanium, 10000, Items.lead, 15000, Items.copper, 30000), () -> {
- node(laserDrill, () -> {
- node(blastDrill, () -> {
-
- });
-
- node(waterExtractor, () -> {
- node(oilExtractor, () -> {
-
- });
- });
- });
- });
- });
});
- node(Items.pyratite, with(Items.coal, 6000, Items.lead, 10000, Items.sand, 5000), () -> {
- node(pyratiteMixer, () -> {
- node(Items.blastCompound, with(Items.pyratite, 3000, Items.sporePod, 3000), () -> {
- node(blastMixer, () -> {
+ node(waterExtractor, () -> {
+ node(oilExtractor, () -> {
- });
- });
});
});
-
- node(Items.silicon, with(Items.coal, 4000, Items.sand, 4000), () -> {
- node(siliconSmelter, () -> {
-
- node(Liquids.oil, with(Items.coal, 8000, Items.pyratite, 6000, Items.sand, 20000), () -> {
- node(sporePress, () -> {
- node(coalCentrifuge, () -> {
- node(multiPress, () -> {
- node(siliconCrucible, () -> {
-
- });
- });
- });
-
- node(Items.plastanium, with(Items.titanium, 10000, Items.silicon, 10000), () -> {
- node(plastaniumCompressor, () -> {
- node(Items.phaseFabric, with(Items.thorium, 15000, Items.sand, 30000, Items.silicon, 5000), () -> {
- node(phaseWeaver, () -> {
-
- });
- });
- });
- });
- });
- });
-
- node(Items.metaglass, with(Items.sand, 6000, Items.lead, 10000), () -> {
- node(kiln, () -> {
- node(incinerator, () -> {
- node(Items.scrap, with(Items.copper, 20000, Items.sand, 10000), () -> {
- node(Liquids.slag, with(Items.scrap, 4000), () -> {
- node(melter, () -> {
- node(Items.surgeAlloy, with(Items.thorium, 20000, Items.silicon, 30000, Items.lead, 40000), () -> {
- node(surgeSmelter, () -> {
-
- });
- });
-
- node(separator, () -> {
- node(pulverizer, () -> {
- node(disassembler, () -> {
-
- });
- });
- });
-
- node(Liquids.cryofluid, with(Items.titanium, 8000, Items.metaglass, 5000), () -> {
- node(cryofluidMixer, () -> {
-
- });
- });
- });
- });
- });
- });
- });
- });
-
- node(microProcessor, () -> {
- node(switchBlock, () -> {
- node(message, () -> {
- node(logicDisplay, () -> {
- node(largeLogicDisplay, () -> {
-
- });
- });
-
- node(memoryCell, () -> {
- node(memoryBank, () -> {
-
- });
- });
- });
-
- node(logicProcessor, () -> {
- node(hyperProcessor, () -> {
-
- });
- });
- });
- });
- });
- });
-
- node(illuminator, () -> {
- });
});
});
+ node(pyratiteMixer, () -> {
+ node(blastMixer, () -> {
- node(combustionGenerator, () -> {
- node(powerNode, () -> {
- node(powerNodeLarge, () -> {
- node(diode, () -> {
- node(surgeTower, () -> {
+ });
+ });
+
+ node(siliconSmelter, () -> {
+
+ node(sporePress, () -> {
+ node(coalCentrifuge, () -> {
+ node(multiPress, () -> {
+ node(siliconCrucible, () -> {
});
});
});
- node(battery, () -> {
- node(batteryLarge, () -> {
+ node(plastaniumCompressor, Seq.with(new SectorComplete(windsweptIslands)), () -> {
+ node(phaseWeaver, Seq.with(new SectorComplete(tarFields)), () -> {
});
});
+ });
- node(mender, () -> {
- node(mendProjector, () -> {
- node(forceProjector, () -> {
- node(overdriveProjector, () -> {
- node(overdriveDome, () -> {
+ node(kiln, Seq.with(new SectorComplete(craters)), () -> {
+ node(incinerator, () -> {
+ node(melter, () -> {
+ node(surgeSmelter, () -> {
+
+ });
+
+ node(separator, () -> {
+ node(pulverizer, () -> {
+ node(disassembler, () -> {
});
});
});
- node(repairPoint, () -> {
+ node(cryofluidMixer, () -> {
});
});
});
+ });
- node(steamGenerator, () -> {
- node(thermalGenerator, () -> {
- node(differentialGenerator, () -> {
- node(thoriumReactor, Seq.with(new Research(Liquids.cryofluid)), () -> {
- node(impactReactor, () -> {
+ node(microProcessor, () -> {
+ node(switchBlock, () -> {
+ node(message, () -> {
+ node(logicDisplay, () -> {
+ node(largeLogicDisplay, () -> {
- });
+ });
+ });
- node(rtgGenerator, () -> {
+ node(memoryCell, () -> {
+ node(memoryBank, () -> {
+
+ });
+ });
+ });
+
+ node(logicProcessor, () -> {
+ node(hyperProcessor, () -> {
+
+ });
+ });
+ });
+ });
+ });
+
+ node(illuminator, () -> {
+
+ });
+ });
+
+
+ node(combustionGenerator, Seq.with(new Research(Items.coal)), () -> {
+ node(powerNode, () -> {
+ node(powerNodeLarge, () -> {
+ node(diode, () -> {
+ node(surgeTower, () -> {
+
+ });
+ });
+ });
+
+ node(battery, () -> {
+ node(batteryLarge, () -> {
+
+ });
+ });
+
+ node(mender, () -> {
+ node(mendProjector, () -> {
+ node(forceProjector, Seq.with(new SectorComplete(impact0078)), () -> {
+ node(overdriveProjector, Seq.with(new SectorComplete(impact0078)), () -> {
+ node(overdriveDome, Seq.with(new SectorComplete(impact0078)), () -> {
+
+ });
+ });
+ });
+
+ node(repairPoint, () -> {
+
+ });
+ });
+ });
+
+ node(steamGenerator, Seq.with(new SectorComplete(craters)), () -> {
+ node(thermalGenerator, () -> {
+ node(differentialGenerator, () -> {
+ node(thoriumReactor, Seq.with(new Research(Liquids.cryofluid)), () -> {
+ node(impactReactor, () -> {
+
+ });
+
+ node(rtgGenerator, () -> {
- });
});
});
});
});
+ });
- node(solarPanel, () -> {
- node(largeSolarPanel, () -> {
+ node(solarPanel, () -> {
+ node(largeSolarPanel, () -> {
- });
});
});
});
@@ -321,12 +291,11 @@ public class TechTree implements ContentList{
});
node(scatter, () -> {
- node(hail, () -> {
-
+ node(hail, Seq.with(new SectorComplete(craters)), () -> {
node(salvo, () -> {
node(swarmer, () -> {
node(cyclone, () -> {
- node(spectre, () -> {
+ node(spectre, Seq.with(new SectorComplete(nuclearComplex)), () -> {
});
});
@@ -356,8 +325,8 @@ public class TechTree implements ContentList{
});
node(lancer, () -> {
- node(foreshadow, () -> {
- node(meltdown, () -> {
+ node(meltdown, () -> {
+ node(foreshadow, () -> {
});
});
@@ -436,7 +405,7 @@ public class TechTree implements ContentList{
});
});
- node(navalFactory, () -> {
+ node(navalFactory, Seq.with(new SectorComplete(ruinousShores)), () -> {
node(risso, () -> {
node(minke, () -> {
node(bryde, () -> {
@@ -451,10 +420,11 @@ public class TechTree implements ContentList{
});
});
- node(additiveReconstructor, () -> {
- node(multiplicativeReconstructor, () -> {
+ node(additiveReconstructor, Seq.with(new SectorComplete(biomassFacility)), () -> {
+ node(multiplicativeReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> {
node(exponentialReconstructor, () -> {
node(tetrativeReconstructor, () -> {
+
});
});
});
@@ -479,30 +449,71 @@ public class TechTree implements ContentList{
new Research(kiln),
new Research(mechanicalPump)
), () -> {
-
- node(tarFields, Seq.with(
+ node(windsweptIslands, Seq.with(
new SectorComplete(ruinousShores),
- new Research(coalCentrifuge),
- new Research(conduit),
- new Research(wave)
+ new Research(pneumaticDrill),
+ new Research(hail),
+ new Research(siliconSmelter),
+ new Research(steamGenerator)
), () -> {
- node(desolateRift, Seq.with(
- new SectorComplete(tarFields),
- new Research(thermalGenerator),
- new Research(thoriumReactor)
+ node(tarFields, Seq.with(
+ new SectorComplete(windsweptIslands),
+ new Research(coalCentrifuge),
+ new Research(conduit),
+ new Research(wave)
+ ), () -> {
+ //TODO change positions?
+ node(impact0078, Seq.with(
+ new SectorComplete(tarFields),
+ new Research(Items.thorium),
+ new Research(coreFoundation)
+ ), () -> {
+ node(desolateRift, Seq.with(
+ new SectorComplete(impact0078),
+ new Research(thermalGenerator),
+ new Research(thoriumReactor)
+ ), () -> {
+ node(planetaryTerminal, Seq.with(
+ new SectorComplete(desolateRift),
+ new SectorComplete(nuclearComplex),
+ new SectorComplete(overgrowth),
+ new SectorComplete(extractionOutpost),
+ new SectorComplete(saltFlats),
+ new Research(risso),
+ new Research(minke),
+ new Research(bryde),
+ new Research(spectre),
+ new Research(launchPad),
+ new Research(impactReactor),
+ new Research(additiveReconstructor),
+ new Research(exponentialReconstructor)
+ ), () -> {
+
+ });
+ });
+ });
+ });
+
+ node(extractionOutpost, Seq.with(
+ new SectorComplete(stainedMountains),
+ new SectorComplete(windsweptIslands),
+ new Research(groundFactory),
+ new Research(nova),
+ new Research(airFactory),
+ new Research(mono)
), () -> {
});
- });
- node(saltFlats, Seq.with(
- new SectorComplete(ruinousShores),
- new Research(groundFactory),
- new Research(airFactory),
- new Research(door),
- new Research(waterExtractor)
- ), () -> {
+ node(saltFlats, Seq.with(
+ new SectorComplete(windsweptIslands),
+ new Research(groundFactory),
+ new Research(airFactory),
+ new Research(door),
+ new Research(waterExtractor)
+ ), () -> {
+ });
});
});
@@ -511,6 +522,7 @@ public class TechTree implements ContentList{
new SectorComplete(fungalPass),
new Research(cultivator),
new Research(sporePress),
+ new Research(additiveReconstructor),
new Research(UnitTypes.mace),
new Research(UnitTypes.flare)
), () -> {
@@ -518,25 +530,90 @@ public class TechTree implements ContentList{
});
});
- node(stainedMountains, Seq.with(
+ node(biomassFacility, Seq.with(
new SectorComplete(frozenForest),
- new Research(pneumaticDrill),
new Research(powerNode),
- new Research(steamGenerator)
+ new Research(steamGenerator),
+ new Research(scatter),
+ new Research(graphitePress)
), () -> {
- node(fungalPass, Seq.with(
- new SectorComplete(stainedMountains),
- new Research(groundFactory),
- new Research(door),
+ node(stainedMountains, Seq.with(
+ new SectorComplete(biomassFacility),
+ new Research(pneumaticDrill),
new Research(siliconSmelter)
), () -> {
- node(nuclearComplex, Seq.with(
- new SectorComplete(fungalPass),
- new Research(thermalGenerator),
- new Research(laserDrill)
+ node(fungalPass, Seq.with(
+ new SectorComplete(stainedMountains),
+ new Research(groundFactory),
+ new Research(door),
+ new Research(siliconSmelter)
), () -> {
+ node(nuclearComplex, Seq.with(
+ new SectorComplete(fungalPass),
+ new Research(thermalGenerator),
+ new Research(laserDrill)
+ ), () -> {
+
+ });
+ });
+ });
+ });
+ });
+ });
+
+ nodeProduce(Items.copper, () -> {
+ nodeProduce(Liquids.water, () -> {
+
+ });
+
+ nodeProduce(Items.lead, () -> {
+ nodeProduce(Items.titanium, () -> {
+ nodeProduce(Liquids.cryofluid, () -> {
+
+ });
+
+ nodeProduce(Items.thorium, () -> {
+ nodeProduce(Items.surgeAlloy, () -> {
});
+
+ nodeProduce(Items.phaseFabric, () -> {
+
+ });
+ });
+ });
+
+ nodeProduce(Items.metaglass, () -> {
+
+ });
+ });
+
+ nodeProduce(Items.sand, () -> {
+ nodeProduce(Items.scrap, () -> {
+ nodeProduce(Liquids.slag, () -> {
+
+ });
+ });
+
+ nodeProduce(Items.coal, () -> {
+ nodeProduce(Items.graphite, () -> {
+ nodeProduce(Items.silicon, () -> {
+
+ });
+ });
+
+ nodeProduce(Items.pyratite, () -> {
+ nodeProduce(Items.blastCompound, () -> {
+
+ });
+ });
+
+ nodeProduce(Items.sporePod, () -> {
+
+ });
+
+ nodeProduce(Liquids.oil, () -> {
+
});
});
});
@@ -583,6 +660,14 @@ public class TechTree implements ContentList{
return node(block, () -> {});
}
+ static TechNode nodeProduce(UnlockableContent content, Seq objectives, Runnable children){
+ return node(content, content.researchRequirements(), objectives.and(new Produce(content)), children);
+ }
+
+ static TechNode nodeProduce(UnlockableContent content, Runnable children){
+ return nodeProduce(content, new Seq<>(), children);
+ }
+
@Nullable
public static TechNode get(UnlockableContent content){
return map.get(content);
@@ -605,8 +690,6 @@ public class TechTree implements ContentList{
public final ItemStack[] finishedRequirements;
/** Extra objectives needed to research this. */
public Seq objectives = new Seq<>();
- /** Time required to research this content, in seconds. */
- public float time;
/** Nodes that depend on this node. */
public final Seq children = new Seq<>();
@@ -617,7 +700,6 @@ public class TechTree implements ContentList{
this.content = content;
this.requirements = requirements;
this.depth = parent == null ? 0 : parent.depth + 1;
- this.time = Seq.with(requirements).mapFloat(i -> i.item.cost * i.amount).sum() * 10;
this.finishedRequirements = new ItemStack[requirements.length];
//load up the requirements that have been finished if settings are available
@@ -632,6 +714,14 @@ public class TechTree implements ContentList{
all.add(this);
}
+ /** Resets finished requirements and saves. */
+ public void reset(){
+ for(ItemStack stack : finishedRequirements){
+ stack.amount = 0;
+ }
+ save();
+ }
+
/** Removes this node from the tech tree. */
public void remove(){
all.remove(this);
diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java
index 03937d09eb..ed54cf324f 100644
--- a/core/src/mindustry/content/UnitTypes.java
+++ b/core/src/mindustry/content/UnitTypes.java
@@ -17,11 +17,13 @@ import static mindustry.Vars.*;
public class UnitTypes implements ContentList{
//region definitions
+ //(the wall of shame - should fix the legacy stuff eventually...)
+
//mech
public static @EntityDef({Unitc.class, Mechc.class}) UnitType mace, dagger, crawler, fortress, scepter, reign;
- //mech + builder + miner
- public static @EntityDef({Unitc.class, Mechc.class, Builderc.class, Minerc.class}) UnitType nova, pulsar, quasar;
+ //mech
+ public static @EntityDef(value = {Unitc.class, Mechc.class}, legacy = true) UnitType nova, pulsar, quasar;
//mech
public static @EntityDef({Unitc.class, Mechc.class}) UnitType vela;
@@ -29,29 +31,29 @@ public class UnitTypes implements ContentList{
//legs
public static @EntityDef({Unitc.class, Legsc.class}) UnitType corvus, atrax;
- //legs + building
- public static @EntityDef({Unitc.class, Legsc.class, Builderc.class}) UnitType spiroct, arkyid, toxopid;
+ //legs
+ public static @EntityDef(value = {Unitc.class, Legsc.class}, legacy = true) UnitType spiroct, arkyid, toxopid;
- //air (no special traits)
+ //air
public static @EntityDef({Unitc.class}) UnitType flare, eclipse, horizon, zenith, antumbra;
- //air + mining
- public static @EntityDef({Unitc.class, Minerc.class}) UnitType mono;
+ //air
+ public static @EntityDef(value = {Unitc.class}, legacy = true) UnitType mono;
- //air + building + mining
- public static @EntityDef({Unitc.class, Builderc.class, Minerc.class}) UnitType poly;
+ //air
+ public static @EntityDef(value = {Unitc.class}, legacy = true) UnitType poly;
- //air + building + mining + payload
- public static @EntityDef({Unitc.class, Builderc.class, Minerc.class, Payloadc.class}) UnitType mega;
+ //air + payload
+ public static @EntityDef({Unitc.class, Payloadc.class}) UnitType mega;
- //air + building + payload
- public static @EntityDef({Unitc.class, Builderc.class, Payloadc.class}) UnitType quad;
+ //air + payload
+ public static @EntityDef(value = {Unitc.class, Payloadc.class}, legacy = true) UnitType quad;
- //air + building + payload
- public static @EntityDef({Unitc.class, Builderc.class, Payloadc.class, AmmoDistributec.class}) UnitType oct;
+ //air + payload + ammo distribution
+ public static @EntityDef({Unitc.class, Payloadc.class, AmmoDistributec.class}) UnitType oct;
- //air + building + mining
- public static @EntityDef({Unitc.class, Builderc.class, Minerc.class}) UnitType alpha, beta, gamma;
+ //air
+ public static @EntityDef(value = {Unitc.class}, legacy = true) UnitType alpha, beta, gamma;
//water
public static @EntityDef({Unitc.class, WaterMovec.class}) UnitType risso, minke, bryde, sei, omura;
@@ -74,7 +76,7 @@ public class UnitTypes implements ContentList{
x = 4f;
y = 2f;
top = false;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
bullet = Bullets.standardCopper;
}});
}};
@@ -111,7 +113,7 @@ public class UnitTypes implements ContentList{
}};
fortress = new UnitType("fortress"){{
- speed = 0.38f;
+ speed = 0.39f;
hitSize = 13f;
rotateSpeed = 3f;
targetAir = false;
@@ -126,7 +128,7 @@ public class UnitTypes implements ContentList{
reload = 60f;
recoil = 4f;
shake = 2f;
- ejectEffect = Fx.shellEjectMedium;
+ ejectEffect = Fx.casing2;
shootSound = Sounds.artillery;
bullet = new ArtilleryBulletType(2f, 8, "shell"){{
hitEffect = Fx.blastExplosion;
@@ -136,7 +138,7 @@ public class UnitTypes implements ContentList{
collides = true;
collidesTiles = true;
splashDamageRadius = 24f;
- splashDamage = 38f;
+ splashDamage = 45f;
backColor = Pal.bulletYellowBack;
frontColor = Pal.bulletYellow;
}};
@@ -165,8 +167,8 @@ public class UnitTypes implements ContentList{
reload = 45f;
recoil = 5f;
shake = 2f;
- ejectEffect = Fx.shellEjectBig;
- shootSound = Sounds.artillery;
+ ejectEffect = Fx.casing3;
+ shootSound = Sounds.bang;
shots = 3;
inaccuracy = 3f;
shotDelay = 4f;
@@ -189,7 +191,7 @@ public class UnitTypes implements ContentList{
x = 8.5f;
y = 6f;
rotate = true;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
bullet = Bullets.standardCopper;
}},
new Weapon("mount-weapon"){{
@@ -197,7 +199,7 @@ public class UnitTypes implements ContentList{
x = 8.5f;
y = -7f;
rotate = true;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
bullet = Bullets.standardCopper;
}}
@@ -225,8 +227,8 @@ public class UnitTypes implements ContentList{
reload = 9f;
recoil = 5f;
shake = 2f;
- ejectEffect = Fx.shellEjectBig;
- shootSound = Sounds.artillery;
+ ejectEffect = Fx.casing4;
+ shootSound = Sounds.bang;
bullet = new BasicBulletType(13f, 60){{
pierce = true;
@@ -271,7 +273,7 @@ public class UnitTypes implements ContentList{
boostMultiplier = 1.5f;
speed = 0.55f;
hitSize = 8f;
- health = 110f;
+ health = 120f;
buildSpeed = 0.8f;
armor = 1f;
commandLimit = 8;
@@ -287,8 +289,14 @@ public class UnitTypes implements ContentList{
alternate = false;
ejectEffect = Fx.none;
recoil = 2f;
- bullet = Bullets.healBullet;
- shootSound = Sounds.pew;
+ shootSound = Sounds.lasershoot;
+
+ bullet = new LaserBoltBulletType(5.2f, 14){{
+ healPercent = 5f;
+ collidesTeam = true;
+ backColor = Pal.heal;
+ frontColor = Color.white;
+ }};
}});
}};
@@ -297,7 +305,7 @@ public class UnitTypes implements ContentList{
boostMultiplier = 1.6f;
speed = 0.7f;
hitSize = 10f;
- health = 300f;
+ health = 320f;
buildSpeed = 0.9f;
armor = 4f;
@@ -323,7 +331,7 @@ public class UnitTypes implements ContentList{
spacing = 0f;
ejectEffect = Fx.none;
recoil = 2.5f;
- shootSound = Sounds.pew;
+ shootSound = Sounds.spark;
bullet = new LightningBulletType(){{
lightningColor = hitColor = Pal.heal;
@@ -331,6 +339,19 @@ public class UnitTypes implements ContentList{
lightningLength = 7;
lightningLengthRand = 7;
shootEffect = Fx.shootHeal;
+ //Does not actually do anything; Just here to make stats work
+ healPercent = 2f;
+
+ lightningType = new BulletType(0.0001f, 0f){{
+ lifetime = Fx.lightning.lifetime;
+ hitEffect = Fx.hitLancer;
+ despawnEffect = Fx.none;
+ status = StatusEffects.shocked;
+ statusDuration = 10f;
+ hittable = false;
+ healPercent = 2f;
+ collidesTeam = true;
+ }};
}};
}});
}};
@@ -367,11 +388,13 @@ public class UnitTypes implements ContentList{
shootSound = Sounds.laser;
bullet = new LaserBulletType(){{
- damage = 40f;
+ damage = 45f;
recoil = 1f;
sideAngle = 45f;
sideWidth = 1f;
sideLength = 70f;
+ healPercent = 10f;
+ collidesTeam = true;
colors = new Color[]{Pal.heal.cpy().a(0.4f), Pal.heal, Color.white};
}};
}});
@@ -398,6 +421,7 @@ public class UnitTypes implements ContentList{
armor = 7f;
canBoost = true;
landShake = 4f;
+ immunities = ObjectSet.with(StatusEffects.burning);
commandLimit = 8;
@@ -410,14 +434,16 @@ public class UnitTypes implements ContentList{
firstShotDelay = Fx.greenLaserChargeSmall.lifetime - 1f;
- reload = 320f;
+ reload = 160f;
recoil = 0f;
- shootSound = Sounds.laser;
+ chargeSound = Sounds.lasercharge2;
+ shootSound = Sounds.beam;
continuous = true;
cooldownTime = 200f;
- bullet = new ContinuousLaserBulletType(20){{
- length = 150f;
+ bullet = new ContinuousLaserBulletType(){{
+ damage = 23f;
+ length = 160f;
hitEffect = Fx.hitMeltHeal;
drawSize = 420f;
lifetime = 160f;
@@ -427,10 +453,14 @@ public class UnitTypes implements ContentList{
shootEffect = Fx.greenLaserChargeSmall;
- incendChance = 0.05f;
+ incendChance = 0.075f;
incendSpread = 5f;
incendAmount = 1;
+ //constant healing
+ healPercent = 1f;
+ collidesTeam = true;
+
colors = new Color[]{Pal.heal.cpy().a(.2f), Pal.heal.cpy().a(.5f), Pal.heal.cpy().mul(1.2f), Color.white};
}};
@@ -443,7 +473,6 @@ public class UnitTypes implements ContentList{
mineTier = 1;
hitSize = 29f;
health = 18000f;
- buildSpeed = 1.7f;
armor = 9f;
landShake = 1.5f;
rotateSpeed = 1.5f;
@@ -468,6 +497,9 @@ public class UnitTypes implements ContentList{
drawShields = false;
weapons.add(new Weapon("corvus-weapon"){{
+ shootSound = Sounds.laserblast;
+ chargeSound = Sounds.lasercharge;
+ soundPitchMin = 1f;
top = false;
mirror = false;
shake = 14f;
@@ -475,7 +507,6 @@ public class UnitTypes implements ContentList{
x = y = 0;
reload = 350f;
recoil = 0f;
- shootSound = Sounds.laser;
cooldownTime = 350f;
@@ -485,7 +516,7 @@ public class UnitTypes implements ContentList{
bullet = new LaserBulletType(){{
length = 460f;
- damage = 550f;
+ damage = 560f;
width = 75f;
lifetime = 65f;
@@ -501,6 +532,9 @@ public class UnitTypes implements ContentList{
shootEffect = Fx.greenLaserCharge;
+ healPercent = 25f;
+ collidesTeam = true;
+
sideAngle = 15f;
sideWidth = 0f;
sideLength = 0f;
@@ -585,7 +619,7 @@ public class UnitTypes implements ContentList{
drag = 0.4f;
hitSize = 12f;
rotateSpeed = 3f;
- health = 760;
+ health = 800;
immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting);
legCount = 6;
legLength = 13f;
@@ -608,15 +642,15 @@ public class UnitTypes implements ContentList{
ejectEffect = Fx.none;
recoil = 2f;
rotate = true;
- shootSound = Sounds.flame;
+ shootSound = Sounds.sap;
x = 8.5f;
y = -1.5f;
bullet = new SapBulletType(){{
- sapStrength = 0.3f;
+ sapStrength = 0.4f;
length = 75f;
- damage = 15;
+ damage = 18;
shootEffect = Fx.shootSmall;
hitColor = color = Color.valueOf("bf92f9");
despawnEffect = Fx.none;
@@ -631,11 +665,12 @@ public class UnitTypes implements ContentList{
rotate = true;
x = 4f;
y = 3f;
+ shootSound = Sounds.sap;
bullet = new SapBulletType(){{
- sapStrength = 0.65f;
+ sapStrength = 0.8f;
length = 40f;
- damage = 13;
+ damage = 15;
shootEffect = Fx.shootSmall;
hitColor = color = Color.valueOf("bf92f9");
despawnEffect = Fx.none;
@@ -667,6 +702,7 @@ public class UnitTypes implements ContentList{
rippleScale = 2f;
legSpeed = 0.2f;
ammoType = AmmoTypes.power;
+ buildSpeed = 1f;
legSplashDamage = 32;
legSplashRange = 30;
@@ -677,9 +713,9 @@ public class UnitTypes implements ContentList{
groundLayer = Layer.legUnit;
BulletType sapper = new SapBulletType(){{
- sapStrength = 0.83f;
+ sapStrength = 0.85f;
length = 55f;
- damage = 34;
+ damage = 37;
shootEffect = Fx.shootSmall;
hitColor = color = Color.valueOf("bf92f9");
despawnEffect = Fx.none;
@@ -695,6 +731,7 @@ public class UnitTypes implements ContentList{
y = 8f;
rotate = true;
bullet = sapper;
+ shootSound = Sounds.sap;
}},
new Weapon("spiroct-weapon"){{
reload = 15f;
@@ -702,6 +739,7 @@ public class UnitTypes implements ContentList{
y = 6f;
rotate = true;
bullet = sapper;
+ shootSound = Sounds.sap;
}},
new Weapon("spiroct-weapon"){{
reload = 23f;
@@ -709,6 +747,7 @@ public class UnitTypes implements ContentList{
y = 0f;
rotate = true;
bullet = sapper;
+ shootSound = Sounds.sap;
}},
new Weapon("large-purple-mount"){{
y = -7f;
@@ -717,8 +756,8 @@ public class UnitTypes implements ContentList{
reload = 45;
shake = 3f;
rotateSpeed = 2f;
- ejectEffect = Fx.shellEjectSmall;
- shootSound = Sounds.shootBig;
+ ejectEffect = Fx.casing1;
+ shootSound = Sounds.artillery;
rotate = true;
occlusion = 8f;
recoil = 3f;
@@ -766,6 +805,7 @@ public class UnitTypes implements ContentList{
rippleScale = 3f;
legSpeed = 0.19f;
ammoType = AmmoTypes.powerHigh;
+ buildSpeed = 1f;
legSplashDamage = 80;
legSplashRange = 60;
@@ -783,7 +823,7 @@ public class UnitTypes implements ContentList{
reload = 30;
shake = 4f;
rotateSpeed = 2f;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
shootSound = Sounds.shootBig;
rotate = true;
occlusion = 12f;
@@ -815,8 +855,8 @@ public class UnitTypes implements ContentList{
shake = 10f;
recoil = 10f;
rotateSpeed = 1f;
- ejectEffect = Fx.shellEjectBig;
- shootSound = Sounds.shootBig;
+ ejectEffect = Fx.casing3;
+ shootSound = Sounds.artillery;
rotate = true;
occlusion = 30f;
@@ -875,20 +915,29 @@ public class UnitTypes implements ContentList{
health = 75;
engineOffset = 5.5f;
range = 140f;
+ targetAir = false;
+ commandLimit = 4;
weapons.add(new Weapon(){{
y = 0f;
x = 2f;
reload = 13f;
- ejectEffect = Fx.shellEjectSmall;
- bullet = Bullets.standardCopper;
- shootSound = Sounds.shoot;
+ ejectEffect = Fx.casing1;
+ bullet = new BasicBulletType(2.5f, 9){{
+ width = 7f;
+ height = 9f;
+ lifetime = 45f;
+ shootEffect = Fx.shootSmall;
+ smokeEffect = Fx.shootSmallSmoke;
+ ammoMultiplier = 2;
+ }};
+ shootSound = Sounds.pew;
}});
}};
horizon = new UnitType("horizon"){{
- health = 350;
- speed = 2f;
+ health = 340;
+ speed = 1.7f;
accel = 0.08f;
drag = 0.016f;
flying = true;
@@ -897,20 +946,21 @@ public class UnitTypes implements ContentList{
engineOffset = 7.8f;
range = 140f;
faceTarget = false;
- armor = 4f;
+ armor = 3f;
targetFlag = BlockFlag.factory;
+ commandLimit = 5;
weapons.add(new Weapon(){{
minShootVelocity = 0.75f;
x = 3f;
shootY = 0f;
- reload = 11f;
+ reload = 12f;
shootCone = 180f;
ejectEffect = Fx.none;
inaccuracy = 15f;
ignoreRotation = true;
shootSound = Sounds.none;
- bullet = new BombBulletType(28f, 25f){{
+ bullet = new BombBulletType(27f, 25f){{
width = 10f;
height = 14f;
hitEffect = Fx.flakExplosion;
@@ -945,6 +995,7 @@ public class UnitTypes implements ContentList{
shots = 2;
inaccuracy = 5f;
velocityRnd = 0.2f;
+ shootSound = Sounds.missile;
bullet = new MissileBulletType(3f, 12){{
width = 8f;
@@ -1002,10 +1053,10 @@ public class UnitTypes implements ContentList{
y = 8f;
x = 17f;
reload = 20f;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
rotateSpeed = 8f;
bullet = missiles;
- shootSound = Sounds.shoot;
+ shootSound = Sounds.missile;
rotate = true;
occlusion = 6f;
}},
@@ -1014,9 +1065,9 @@ public class UnitTypes implements ContentList{
x = 17f;
reload = 35;
rotateSpeed = 8f;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
bullet = missiles;
- shootSound = Sounds.shoot;
+ shootSound = Sounds.missile;
rotate = true;
occlusion = 6f;
}},
@@ -1027,7 +1078,7 @@ public class UnitTypes implements ContentList{
reload = 12;
shake = 1f;
rotateSpeed = 2f;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
shootSound = Sounds.shootBig;
rotate = true;
occlusion = 8f;
@@ -1097,7 +1148,7 @@ public class UnitTypes implements ContentList{
y = 27f;
rotateSpeed = 2f;
reload = 9f;
- shootSound = Sounds.flame;
+ shootSound = Sounds.shoot;
occlusion = 7f;
rotate = true;
recoil = 0.5f;
@@ -1108,7 +1159,7 @@ public class UnitTypes implements ContentList{
y = -13f;
x = 20f;
reload = 12f;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
rotateSpeed = 7f;
shake = 1f;
shootSound = Sounds.shoot;
@@ -1127,7 +1178,7 @@ public class UnitTypes implements ContentList{
flying = true;
drag = 0.06f;
accel = 0.12f;
- speed = 1.1f;
+ speed = 1.5f;
health = 100;
engineSize = 1.8f;
engineOffset = 5.7f;
@@ -1154,7 +1205,6 @@ public class UnitTypes implements ContentList{
engineOffset = 6.5f;
hitSize = 8f;
lowAltitude = true;
- isCounted = false;
ammoType = AmmoTypes.power;
@@ -1170,7 +1220,7 @@ public class UnitTypes implements ContentList{
reload = 30f;
ejectEffect = Fx.none;
recoil = 2f;
- shootSound = Sounds.pew;
+ shootSound = Sounds.missile;
shots = 1;
velocityRnd = 0.5f;
inaccuracy = 15f;
@@ -1186,6 +1236,7 @@ public class UnitTypes implements ContentList{
smokeEffect = Fx.hitLaser;
hitEffect = despawnEffect = Fx.hitLaser;
frontColor = Color.white;
+ hitSound = Sounds.none;
healPercent = 5.5f;
collidesTeam = true;
@@ -1199,9 +1250,10 @@ public class UnitTypes implements ContentList{
defaultController = RepairAI::new;
mineTier = 3;
+ mineSpeed = 4f;
health = 500;
armor = 5f;
- speed = 2.3f;
+ speed = 2.5f;
accel = 0.06f;
drag = 0.017f;
lowAltitude = true;
@@ -1211,12 +1263,13 @@ public class UnitTypes implements ContentList{
hitSize = 15f;
engineSize = 3f;
payloadCapacity = (2 * 2) * tilePayload;
- buildSpeed = 2.5f;
+ buildSpeed = 2.6f;
ammoType = AmmoTypes.power;
weapons.add(
new Weapon("heal-weapon-mount"){{
+ shootSound = Sounds.lasershoot;
reload = 25f;
x = 8f;
y = -6f;
@@ -1224,6 +1277,7 @@ public class UnitTypes implements ContentList{
bullet = Bullets.healBulletBig;
}},
new Weapon("heal-weapon-mount"){{
+ shootSound = Sounds.lasershoot;
reload = 15f;
x = 4f;
y = 5f;
@@ -1260,6 +1314,9 @@ public class UnitTypes implements ContentList{
reload = 55f;
minShootVelocity = 0.01f;
+ soundPitchMin = 1f;
+ shootSound = Sounds.plasmadrop;
+
bullet = new BasicBulletType(){{
sprite = "large-bomb";
width = height = 120/4f;
@@ -1271,9 +1328,10 @@ public class UnitTypes implements ContentList{
frontColor = Color.white;
mixColorTo = Color.white;
+ hitSound = Sounds.plasmaboom;
+
shootCone = 180f;
ejectEffect = Fx.none;
- shootSound = Sounds.none;
despawnShake = 4f;
collidesAir = false;
@@ -1291,7 +1349,7 @@ public class UnitTypes implements ContentList{
collides = false;
healPercent = 15f;
- splashDamage = 320f;
+ splashDamage = 240f;
splashDamageRadius = 120f;
}};
}});
@@ -1342,7 +1400,7 @@ public class UnitTypes implements ContentList{
shootY = 4f;
y = 1.5f;
rotate = true;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
bullet = Bullets.standardCopper;
}});
@@ -1352,7 +1410,8 @@ public class UnitTypes implements ContentList{
x = 0f;
y = -5f;
rotate = true;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
+ shootSound = Sounds.missile;
bullet = new MissileBulletType(2.7f, 12, "missile"){{
width = 8f;
height = 8f;
@@ -1398,7 +1457,8 @@ public class UnitTypes implements ContentList{
rotate = true;
rotateSpeed = 5f;
inaccuracy = 10f;
- ejectEffect = Fx.shellEjectSmall;
+ ejectEffect = Fx.casing1;
+ shootSound = Sounds.shoot;
bullet = Bullets.flakLead;
}});
@@ -1410,8 +1470,9 @@ public class UnitTypes implements ContentList{
inaccuracy = 2f;
rotateSpeed = 2f;
shake = 1.5f;
- ejectEffect = Fx.shellEjectMedium;
- bullet = Bullets.artilleryIncendiary;
+ ejectEffect = Fx.casing2;
+ shootSound = Sounds.bang;
+ bullet = Bullets.artilleryDense;
}});
}};
@@ -1446,7 +1507,8 @@ public class UnitTypes implements ContentList{
shots = 1;
inaccuracy = 3f;
- ejectEffect = Fx.shellEjectBig;
+ ejectEffect = Fx.casing3;
+ shootSound = Sounds.artillery;
bullet = new ArtilleryBulletType(3.2f, 12){{
trailMult = 0.8f;
@@ -1485,6 +1547,7 @@ public class UnitTypes implements ContentList{
shotDelay = 3f;
inaccuracy = 5f;
velocityRnd = 0.1f;
+ shootSound = Sounds.missile;
ejectEffect = Fx.none;
bullet = new MissileBulletType(2.7f, 12){{
@@ -1543,11 +1606,11 @@ public class UnitTypes implements ContentList{
inaccuracy = 7f;
ejectEffect = Fx.none;
shake = 3f;
- shootSound = Sounds.shootBig;
+ shootSound = Sounds.missile;
xRand = 8f;
shotDelay = 1f;
- bullet = new MissileBulletType(4.2f, 30){{
+ bullet = new MissileBulletType(4.2f, 40){{
homingPower = 0.12f;
width = 8f;
height = 8f;
@@ -1555,8 +1618,8 @@ public class UnitTypes implements ContentList{
drag = -0.003f;
homingRange = 80f;
keepVelocity = false;
- splashDamageRadius = 30f;
- splashDamage = 35f;
+ splashDamageRadius = 35f;
+ splashDamage = 45f;
lifetime = 56f;
trailColor = Pal.bulletYellowBack;
backColor = Pal.bulletYellowBack;
@@ -1569,7 +1632,7 @@ public class UnitTypes implements ContentList{
}});
weapons.add(new Weapon("large-bullet-mount"){{
- reload = 80f;
+ reload = 60f;
cooldownTime = 90f;
x = 70f/4f;
y = -66f/4f;
@@ -1579,12 +1642,12 @@ public class UnitTypes implements ContentList{
shake = 2f;
recoil = 3f;
occlusion = 12f;
- ejectEffect = Fx.shellEjectBig;
+ ejectEffect = Fx.casing3;
shots = 3;
shotDelay = 4f;
inaccuracy = 1f;
- bullet = new BasicBulletType(7f, 50){{
+ bullet = new BasicBulletType(7f, 55){{
width = 13f;
height = 19f;
shootEffect = Fx.shootBig;
@@ -1624,14 +1687,15 @@ public class UnitTypes implements ContentList{
shake = 6f;
recoil = 10.5f;
occlusion = 50f;
+ shootSound = Sounds.railgun;
shots = 1;
ejectEffect = Fx.none;
bullet = new RailBulletType(){{
shootEffect = Fx.railShoot;
- speed = 67f;
- lifetime = 8f;
+ length = 500;
+ updateEffectSeg = 60f;
pierceEffect = Fx.railHit;
updateEffect = Fx.railTrail;
hitEffect = Fx.massiveExplosion;
@@ -1650,7 +1714,7 @@ public class UnitTypes implements ContentList{
isCounted = false;
flying = true;
- mineSpeed = 6f;
+ mineSpeed = 6.5f;
mineTier = 1;
buildSpeed = 0.5f;
drag = 0.05f;
@@ -1662,12 +1726,14 @@ public class UnitTypes implements ContentList{
engineOffset = 6f;
hitSize = 8f;
commandLimit = 3;
+ alwaysUnlocked = true;
weapons.add(new Weapon("small-basic-weapon"){{
reload = 17f;
x = 2.75f;
y = 1f;
top = false;
+ ejectEffect = Fx.casing1;
bullet = new BasicBulletType(2.5f, 10){{
width = 7f;
@@ -1675,7 +1741,7 @@ public class UnitTypes implements ContentList{
lifetime = 60f;
shootEffect = Fx.shootSmall;
smokeEffect = Fx.shootSmallSmoke;
- tileDamageMultiplier = 0.03f;
+ tileDamageMultiplier = 0.02f;
}};
}});
}};
@@ -1698,7 +1764,7 @@ public class UnitTypes implements ContentList{
hitSize = 9f;
rotateShooting = false;
lowAltitude = true;
- commandLimit = 5;
+ commandLimit = 4;
weapons.add(new Weapon("small-mount-weapon"){{
top = false;
@@ -1709,6 +1775,7 @@ public class UnitTypes implements ContentList{
shots = 2;
shotDelay = 4f;
spacing = 0f;
+ ejectEffect = Fx.casing1;
bullet = new BasicBulletType(3f, 10){{
width = 7f;
@@ -1716,7 +1783,7 @@ public class UnitTypes implements ContentList{
lifetime = 60f;
shootEffect = Fx.shootSmall;
smokeEffect = Fx.shootSmallSmoke;
- tileDamageMultiplier = 0.03f;
+ tileDamageMultiplier = 0.02f;
}};
}});
}};
@@ -1736,8 +1803,8 @@ public class UnitTypes implements ContentList{
itemCapacity = 70;
health = 220f;
engineOffset = 6f;
- hitSize = 10f;
- commandLimit = 7;
+ hitSize = 11f;
+ commandLimit = 5;
weapons.add(new Weapon("small-mount-weapon"){{
top = false;
@@ -1748,6 +1815,7 @@ public class UnitTypes implements ContentList{
spacing = 2f;
inaccuracy = 3f;
shotDelay = 3f;
+ ejectEffect = Fx.casing1;
bullet = new BasicBulletType(3.5f, 10){{
width = 6.5f;
@@ -1755,7 +1823,7 @@ public class UnitTypes implements ContentList{
lifetime = 70f;
shootEffect = Fx.shootSmall;
smokeEffect = Fx.shootSmallSmoke;
- tileDamageMultiplier = 0.03f;
+ tileDamageMultiplier = 0.02f;
homingPower = 0.04f;
}};
}});
@@ -1771,6 +1839,7 @@ public class UnitTypes implements ContentList{
health = 1;
rotateSpeed = 360f;
itemCapacity = 0;
+ commandLimit = 0;
}
@Override
diff --git a/core/src/mindustry/content/Weathers.java b/core/src/mindustry/content/Weathers.java
index b120b7ef2b..86dac06f7b 100644
--- a/core/src/mindustry/content/Weathers.java
+++ b/core/src/mindustry/content/Weathers.java
@@ -3,6 +3,7 @@ package mindustry.content;
import arc.graphics.*;
import arc.util.*;
import mindustry.ctype.*;
+import mindustry.gen.*;
import mindustry.type.*;
import mindustry.type.weather.*;
import mindustry.world.meta.*;
@@ -18,20 +19,30 @@ public class Weathers implements ContentList{
@Override
public void load(){
snow = new ParticleWeather("snow"){{
+ particleRegion = "particle";
sizeMax = 13f;
sizeMin = 2.6f;
density = 1200f;
attrs.set(Attribute.light, -0.15f);
+
+ sound = Sounds.windhowl;
+ soundVol = 0f;
+ soundVolOscMag = 1.5f;
+ soundVolOscScl = 1100f;
+ soundVolMin = 0.02f;
}};
rain = new RainWeather("rain"){{
attrs.set(Attribute.light, -0.2f);
attrs.set(Attribute.water, 0.2f);
status = StatusEffects.wet;
+ sound = Sounds.rain;
+ soundVol = 0.25f;
}};
sandstorm = new ParticleWeather("sandstorm"){{
color = noiseColor = Color.valueOf("f7cba4");
+ particleRegion = "particle";
drawNoise = true;
useWindVector = true;
sizeMax = 140f;
@@ -39,16 +50,18 @@ public class Weathers implements ContentList{
minAlpha = 0f;
maxAlpha = 0.2f;
density = 1500f;
- baseSpeed = 6.1f;
+ baseSpeed = 5.4f;
attrs.set(Attribute.light, -0.1f);
attrs.set(Attribute.water, -0.1f);
- opacityMultiplier = 0.8f;
+ opacityMultiplier = 0.5f;
force = 0.1f;
+ sound = Sounds.wind;
+ soundVol = 0.3f;
}};
sporestorm = new ParticleWeather("sporestorm"){{
color = noiseColor = Color.valueOf("7457ce");
- particleRegion = "circle";
+ particleRegion = "circle-small";
drawNoise = true;
statusGround = false;
useWindVector = true;
@@ -61,8 +74,10 @@ public class Weathers implements ContentList{
attrs.set(Attribute.spores, 1f);
attrs.set(Attribute.light, -0.15f);
status = StatusEffects.sporeSlowed;
- opacityMultiplier = 0.85f;
+ opacityMultiplier = 0.75f;
force = 0.1f;
+ sound = Sounds.wind;
+ soundVol = 0.3f;
}};
fog = new ParticleWeather("fog"){{
diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java
index 975bc4d1f8..b7c0fbd0e0 100644
--- a/core/src/mindustry/core/ContentLoader.java
+++ b/core/src/mindustry/core/ContentLoader.java
@@ -160,8 +160,8 @@ public class ContentLoader{
public void removeLast(){
if(lastAdded != null && contentMap[lastAdded.getContentType().ordinal()].peek() == lastAdded){
contentMap[lastAdded.getContentType().ordinal()].pop();
- if(lastAdded instanceof MappableContent){
- contentNameMap[lastAdded.getContentType().ordinal()].remove(((MappableContent)lastAdded).name);
+ if(lastAdded instanceof MappableContent c){
+ contentNameMap[lastAdded.getContentType().ordinal()].remove(c.name);
}
}
}
diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java
index 3d904c1826..cd1768b25c 100644
--- a/core/src/mindustry/core/Control.java
+++ b/core/src/mindustry/core/Control.java
@@ -11,6 +11,7 @@ import arc.struct.*;
import arc.util.*;
import mindustry.audio.*;
import mindustry.content.*;
+import mindustry.content.TechTree.*;
import mindustry.core.GameState.*;
import mindustry.entities.*;
import mindustry.game.EventType.*;
@@ -21,6 +22,7 @@ import mindustry.input.*;
import mindustry.io.*;
import mindustry.io.SaveIO.*;
import mindustry.maps.Map;
+import mindustry.net.*;
import mindustry.type.*;
import mindustry.ui.dialogs.*;
import mindustry.world.*;
@@ -41,8 +43,7 @@ import static mindustry.Vars.*;
*/
public class Control implements ApplicationListener, Loadable{
public Saves saves;
- public MusicControl music;
- public Tutorial tutorial;
+ public SoundControl sound;
public InputHandler input;
private Interval timer = new Interval(2);
@@ -51,15 +52,11 @@ public class Control implements ApplicationListener, Loadable{
public Control(){
saves = new Saves();
- tutorial = new Tutorial();
- music = new MusicControl();
+ sound = new SoundControl();
Events.on(StateChangeEvent.class, event -> {
if((event.from == State.playing && event.to == State.menu) || (event.from == State.menu && event.to != State.menu)){
Time.runTask(5f, platform::updateRPC);
- for(Sound sound : assets.getAll(Sound.class, new Seq<>())){
- sound.stop();
- }
}
});
@@ -88,7 +85,6 @@ public class Control implements ApplicationListener, Loadable{
Events.on(ResetEvent.class, event -> {
player.reset();
- tutorial.reset();
hiscore = false;
saves.resetSave();
@@ -130,6 +126,14 @@ public class Control implements ApplicationListener, Loadable{
Events.on(UnlockEvent.class, e -> ui.hudfrag.showUnlock(e.content));
+ Events.on(UnlockEvent.class, e -> {
+ checkAutoUnlocks();
+ });
+
+ Events.on(SectorCaptureEvent.class, e -> {
+ checkAutoUnlocks();
+ });
+
Events.on(BlockBuildEndEvent.class, e -> {
if(e.team == player.team()){
if(e.breaking){
@@ -156,8 +160,8 @@ public class Control implements ApplicationListener, Loadable{
Events.on(GameOverEvent.class, e -> {
if(state.isCampaign() && !net.client() && !headless){
- //delete the save, it is gone.
- if(saves.getCurrent() != null && !state.rules.tutorial){
+ //save gameover sate immediately
+ if(saves.getCurrent() != null){
saves.getCurrent().save();
}
}
@@ -178,9 +182,18 @@ 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));
+ camera.position.set(core);
+ player.set(core);
+
Time.run(Fx.coreLand.lifetime, () -> {
Fx.launch.at(core);
Effect.shake(5f, 5f, core);
+
+ if(state.isCampaign()){
+ ui.announce("[accent]" + state.rules.sector.name() + "\n" +
+ (state.rules.sector.info.resources.any() ? "[lightgray]" + bundle.get("sectors.resources") + "[white] " +
+ state.rules.sector.info.resources.toString(" ", u -> u.emoji()) : ""), 5);
+ }
});
});
@@ -204,6 +217,17 @@ public class Control implements ApplicationListener, Loadable{
saves.load();
}
+ /** Automatically unlocks things with no requirements. */
+ void checkAutoUnlocks(){
+ if(net.client()) return;
+
+ for(TechNode node : TechTree.all){
+ if(!node.content.unlocked() && node.requirements.length == 0 && !node.objectives.contains(o -> !o.complete())){
+ node.content.unlock();
+ }
+ }
+ }
+
void createPlayer(){
player = Player.create();
player.name = Core.settings.getString("name");
@@ -253,18 +277,26 @@ public class Control implements ApplicationListener, Loadable{
}
public void playSector(@Nullable Sector origin, Sector sector){
+ playSector(origin, sector, new WorldReloader());
+ }
+
+ void playSector(@Nullable Sector origin, Sector sector, WorldReloader reloader){
ui.loadAnd(() -> {
+ if(saves.getCurrent() != null && state.isGame()){
+ control.saves.getCurrent().save();
+ control.saves.resetSave();
+ }
+
ui.planet.hide();
SaveSlot slot = sector.save;
sector.planet.setLastSector(sector);
if(slot != null && !clearSectors){
try{
- net.reset();
+ reloader.begin();
slot.load();
slot.setAutosave(true);
state.rules.sector = sector;
- state.secinfo = state.rules.sector.info;
//if there is no base, simulate a new game and place the right loadout at the spawn position
if(state.rules.defaultTeam.cores().isEmpty()){
@@ -275,15 +307,19 @@ public class Control implements ApplicationListener, Loadable{
sector.save = null;
slot.delete();
//play again
- playSector(origin, sector);
+ playSector(origin, sector, reloader);
return;
}
//reset wave so things are more fair
state.wave = 1;
- //kill all units, since they should be dead anwyay
+ //reset win wave??
+ state.rules.winWave = state.rules.attackMode ? -1 : sector.preset != null ? sector.preset.captureWave : 40;
+
+ //kill all units, since they should be dead anyway
Groups.unit.clear();
+ Groups.fire.clear();
Tile spawn = world.tile(sector.info.spawnPosition);
Schematics.placeLaunchLoadout(spawn.x, spawn.y);
@@ -292,10 +328,12 @@ public class Control implements ApplicationListener, Loadable{
player.set(spawn.x * tilesize, spawn.y * tilesize);
camera.position.set(player);
+ Events.fire(new SectorLaunchEvent(sector));
Events.fire(Trigger.newGame);
}
state.set(State.playing);
+ reloader.end();
}catch(SaveException e){
Log.err(e);
@@ -306,78 +344,21 @@ public class Control implements ApplicationListener, Loadable{
}
ui.planet.hide();
}else{
- net.reset();
- logic.reset();
+ reloader.begin();
world.loadSector(sector);
state.rules.sector = sector;
//assign origin when launching
- state.secinfo.origin = origin;
- state.secinfo.destination = origin;
+ sector.info.origin = origin;
+ sector.info.destination = origin;
logic.play();
control.saves.saveSector(sector);
+ Events.fire(new SectorLaunchEvent(sector));
Events.fire(Trigger.newGame);
+ reloader.end();
}
});
}
- public void playTutorial(){
- ui.showInfo("@indev.notready");
- //TODO implement
- //ui.showInfo("death");
- /*
- Zone zone = Zones.groundZero;
- ui.loadAnd(() -> {
- logic.reset();
- net.reset();
-
- world.beginMapLoad();
-
- world.resize(zone.generator.width, zone.generator.height);
- zone.generator.generate(world.tiles);
-
- Tile coreb = null;
-
- out:
- for(int x = 0; x < world.width(); x++){
- for(int y = 0; y < world.height(); y++){
- if(world.rawTile(x, y).block() instanceof CoreBlock){
- coreb = world.rawTile(x, y);
- break out;
- }
- }
- }
-
- Geometry.circle(coreb.x, coreb.y, 10, (cx, cy) -> {
- Tile tile = world.ltile(cx, cy);
- if(tile != null && tile.team() == state.rules.defaultTeam && !(tile.block() instanceof CoreBlock)){
- tile.remove();
- }
- });
-
- Geometry.circle(coreb.x, coreb.y, 5, (cx, cy) -> world.tile(cx, cy).clearOverlay());
-
- world.endMapLoad();
-
- zone.rules.get(state.rules);
- //TODO assign zone!!
- //state.rules.zone = zone;
- for(Building core : state.teams.playerCores()){
- for(ItemStack stack : zone.getStartingItems()){
- core.items.add(stack.item, stack.amount);
- }
- }
- Building core = state.teams.playerCores().first();
- core.items.clear();
-
- logic.play();
- state.rules.waveTimer = false;
- state.rules.waveSpacing = 60f * 30;
- state.rules.buildCostMultiplier = 0.3f;
- state.rules.tutorial = true;
- Events.fire(Trigger.newGame);
- });*/
- }
-
public boolean isHighScore(){
return hiscore;
}
@@ -389,11 +370,15 @@ public class Control implements ApplicationListener, Loadable{
try{
SaveIO.save(control.saves.getCurrent().file);
Log.info("Saved on exit.");
- }catch(Throwable e){
- e.printStackTrace();
+ }catch(Throwable t){
+ Log.err(t);
}
}
+ for(Music music : assets.getAll(Music.class, new Seq<>())){
+ music.stop();
+ }
+
content.dispose();
net.dispose();
Musics.dispose();
@@ -403,13 +388,15 @@ public class Control implements ApplicationListener, Loadable{
@Override
public void pause(){
- wasPaused = state.is(State.paused);
- if(state.is(State.playing)) state.set(State.paused);
+ if(settings.getBool("backgroundpause", true)){
+ wasPaused = state.is(State.paused);
+ if(state.is(State.playing)) state.set(State.paused);
+ }
}
@Override
public void resume(){
- if(state.is(State.paused) && !wasPaused){
+ if(state.is(State.paused) && !wasPaused && settings.getBool("backgroundpause", true)){
state.set(State.playing);
}
}
@@ -418,19 +405,6 @@ public class Control implements ApplicationListener, Loadable{
public void init(){
platform.updateRPC();
- //just a regular reminder
- if(!OS.prop("user.name").equals("anuke") && !OS.hasEnv("iknowwhatimdoing")){
- app.post(() -> app.post(() -> {
- ui.showStartupInfo("@indev.popup");
- }));
- }
-
- //play tutorial on start
- //TODO no tutorial right now
- if(!settings.getBool("playedtutorial", false)){
- //Core.app.post(() -> Core.app.post(this::playTutorial));
- }
-
//display UI scale changed dialog
if(Core.settings.getBool("uiscalechanged", false)){
Core.app.post(() -> Core.app.post(() -> {
@@ -463,10 +437,6 @@ public class Control implements ApplicationListener, Loadable{
dialog.show();
}));
}
-
- if(android){
- Sounds.empty.loop(0f, 1f, 0f);
- }
}
@Override
@@ -484,8 +454,7 @@ public class Control implements ApplicationListener, Loadable{
input.updateState();
- music.update();
- loops.update();
+ sound.update();
if(Core.input.keyTap(Binding.fullscreen)){
boolean full = settings.getBool("fullscreen");
@@ -500,15 +469,17 @@ public class Control implements ApplicationListener, Loadable{
if(state.isGame()){
input.update();
- if(state.rules.tutorial){
- tutorial.update();
- }
-
//auto-update rpc every 5 seconds
if(timer.get(0, 60 * 5)){
platform.updateRPC();
}
+ //unlock core items
+ var core = state.rules.defaultTeam.core();
+ if(!net.client() && core != null && state.isCampaign()){
+ core.items.each((i, a) -> i.unlock());
+ }
+
if(Core.input.keyTap(Binding.pause) && !scene.hasDialog() && !scene.hasKeyboard() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
state.set(state.is(State.playing) ? State.paused : State.playing);
}
diff --git a/core/src/mindustry/core/GameState.java b/core/src/mindustry/core/GameState.java
index 41f14074c8..3eed5e0164 100644
--- a/core/src/mindustry/core/GameState.java
+++ b/core/src/mindustry/core/GameState.java
@@ -26,8 +26,6 @@ public class GameState{
public GameStats stats = new GameStats();
/** Global attributes of the environment, calculated by weather. */
public Attributes envAttrs = new Attributes();
- /** Sector information. Only valid in the campaign. */
- public SectorInfo secinfo = new SectorInfo();
/** Team data. Gets reset every new game. */
public Teams teams = new Teams();
/** Number of enemies in the game; only used clientside in servers. */
@@ -71,7 +69,7 @@ public class GameState{
}
public boolean isPaused(){
- return (is(State.paused) && !net.active()) || (gameOver && !net.active()) || (serverPaused && !isMenu());
+ return (is(State.paused) && !net.active()) || (gameOver && (!net.active() || isCampaign())) || (serverPaused && !isMenu());
}
public boolean isPlaying(){
diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java
index a96ea101a9..5f6bd2c1a9 100644
--- a/core/src/mindustry/core/Logic.java
+++ b/core/src/mindustry/core/Logic.java
@@ -34,7 +34,6 @@ public class Logic implements ApplicationListener{
Events.on(BlockDestroyEvent.class, event -> {
//blocks that get broken are appended to the team's broken block queue
Tile tile = event.tile;
- Block block = tile.block();
//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;
@@ -55,15 +54,14 @@ public class Logic implements ApplicationListener{
}
});
- Events.on(LaunchItemEvent.class, e -> state.secinfo.handleItemExport(e.stack));
-
//when loading a 'damaged' sector, propagate the damage
Events.on(SaveLoadEvent.class, e -> {
if(state.isCampaign()){
- state.secinfo.write();
+ SectorInfo info = state.rules.sector.info;
+ info.write();
//how much wave time has passed
- int wavesPassed = state.secinfo.wavesPassed;
+ int wavesPassed = info.wavesPassed;
//wave has passed, remove all enemies, they are assumed to be dead
if(wavesPassed > 0){
@@ -81,13 +79,20 @@ public class Logic implements ApplicationListener{
state.wavetime = state.rules.waveSpacing;
SectorDamage.applyCalculatedDamage();
+
+ //make sure damaged buildings are counted
+ for(Tile tile : world.tiles){
+ if(tile.build != null && tile.build.damaged()){
+ indexer.notifyTileDamaged(tile.build);
+ }
+ }
}
//reset values
- state.secinfo.damage = 0f;
- state.secinfo.wavesPassed = 0;
- state.secinfo.hasCore = true;
- state.secinfo.secondsPassed = 0;
+ info.damage = 0f;
+ info.wavesPassed = 0;
+ info.hasCore = true;
+ info.secondsPassed = 0;
state.rules.sector.saveInfo();
}
@@ -96,9 +101,13 @@ public class Logic implements ApplicationListener{
Events.on(WorldLoadEvent.class, e -> {
//enable infinite ammo for wave team by default
state.rules.waveTeam.rules().infiniteAmmo = true;
+
if(state.isCampaign()){
- //enable building AI
- state.rules.waveTeam.rules().ai = true;
+ //enable building AI on campaign unless the preset disables it
+ if(!(state.getSector().preset != null && !state.getSector().preset.useAI)){
+ state.rules.waveTeam.rules().ai = true;
+ }
+ state.rules.waveTeam.rules().aiTier = state.getSector().threat;
state.rules.waveTeam.rules().infiniteResources = true;
}
@@ -113,6 +122,30 @@ public class Logic implements ApplicationListener{
}
});
+ Events.on(SectorCaptureEvent.class, e -> {
+ if(!net.client() && e.sector == state.getSector() && e.sector.isBeingPlayed()){
+ for(Tile tile : world.tiles){
+ //convert all blocks to neutral, randomly killing them
+ if(tile.isCenter() && tile.build != null && tile.build.team == state.rules.waveTeam){
+ Building b = tile.build;
+ Time.run(Mathf.random(0f, 60f * 6f), () -> {
+ Call.setTeam(b, Team.derelict);
+ if(Mathf.chance(0.25)){
+ b.kill();
+ }
+ });
+ }
+ }
+
+ //kill all units
+ Groups.unit.each(u -> {
+ if(u.team == state.rules.waveTeam){
+ Time.run(Mathf.random(0f, 60f * 5f), u::kill);
+ }
+ });
+ }
+ });
+
}
/** Adds starting items, resets wave time, and sets state to playing. */
@@ -181,37 +214,21 @@ public class Logic implements ApplicationListener{
//if there's a "win" wave and no enemies are present, win automatically
if(state.rules.waves && (state.enemies == 0 && state.rules.winWave > 0 && state.wave >= state.rules.winWave && !spawner.isSpawning()) ||
(state.rules.attackMode && state.rules.waveTeam.cores().isEmpty())){
- //the sector has been conquered - waves get disabled
- state.rules.waves = false;
- //disable attack mode
- state.rules.attackMode = false;
- //fire capture event
- Events.fire(new SectorCaptureEvent(state.rules.sector));
-
- //save, just in case
- if(!headless){
- control.saves.saveSector(state.rules.sector);
- }
+ Call.sectorCapture();
}
}else{
if(!state.rules.attackMode && state.teams.playerCores().size == 0 && !state.gameOver){
state.gameOver = true;
Events.fire(new GameOverEvent(state.rules.waveTeam));
}else if(state.rules.attackMode){
- Team alive = null;
+ //count # of teams alive
+ int countAlive = state.teams.getActive().count(TeamData::hasCore);
- for(TeamData team : state.teams.getActive()){
- if(team.hasCore()){
- if(alive != null){
- return;
- }
- alive = team.team;
- }
- }
-
- if(alive != null && !state.gameOver){
- Events.fire(new GameOverEvent(alive));
+ if((countAlive <= 1 || (!state.rules.pvp && state.rules.defaultTeam.core() == null)) && !state.gameOver){
+ //find team that won
+ TeamData left = state.teams.getActive().find(TeamData::hasCore);
+ Events.fire(new GameOverEvent(left == null ? Team.derelict : left.team));
state.gameOver = true;
}
}
@@ -234,6 +251,24 @@ public class Logic implements ApplicationListener{
}
}
+ @Remote(called = Loc.server)
+ public static void sectorCapture(){
+ //the sector has been conquered - waves get disabled
+ state.rules.waves = false;
+ //disable attack mode
+ state.rules.attackMode = false;
+
+ if(state.rules.sector == null) return;
+
+ //fire capture event
+ Events.fire(new SectorCaptureEvent(state.rules.sector));
+
+ //save, just in case
+ if(!headless && !net.client()){
+ control.saves.saveSector(state.rules.sector);
+ }
+ }
+
@Remote(called = Loc.both)
public static void updateGameOver(Team winner){
state.gameOver = true;
@@ -252,7 +287,7 @@ public class Logic implements ApplicationListener{
if(!(content instanceof UnlockableContent u)) return;
state.rules.researched.add(u.name);
- ui.hudfrag.showUnlock(u);
+ Events.fire(new UnlockEvent(u));
}
@Override
@@ -279,7 +314,7 @@ public class Logic implements ApplicationListener{
state.teams.updateTeamStats();
if(state.isCampaign()){
- state.secinfo.update();
+ state.rules.sector.info.update();
}
if(state.isCampaign()){
@@ -325,5 +360,4 @@ public class Logic implements ApplicationListener{
public boolean isWaitingWave(){
return (state.rules.waitEnemies || (state.wave >= state.rules.winWave && state.rules.winWave > 0)) && state.enemies > 0;
}
-
}
diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java
index 3c6214fd85..841e7e42a7 100644
--- a/core/src/mindustry/core/NetClient.java
+++ b/core/src/mindustry/core/NetClient.java
@@ -21,6 +21,7 @@ import mindustry.net.Administration.*;
import mindustry.net.Net.*;
import mindustry.net.*;
import mindustry.net.Packets.*;
+import mindustry.ui.*;
import mindustry.world.*;
import mindustry.world.modules.*;
@@ -32,7 +33,7 @@ import static mindustry.Vars.*;
public class NetClient implements ApplicationListener{
private static final float dataTimeout = 60 * 18;
private static final float playerSyncTime = 2;
- public final static float viewScale = 2f;
+ public static final float viewScale = 2f;
private long ping;
private Interval timer = new Interval(5);
@@ -234,7 +235,7 @@ public class NetClient implements ApplicationListener{
ui.join.connect(ip, port);
}
-
+
@Remote(targets = Loc.client)
public static void ping(Player player, long time){
Call.pingResponse(player.con, time);
@@ -293,6 +294,13 @@ public class NetClient implements ApplicationListener{
setHudText(message);
}
+ @Remote(variants = Variant.both)
+ public static void announce(String message){
+ if(message == null) return;
+
+ ui.announce(message);
+ }
+
@Remote(variants = Variant.both)
public static void infoMessage(String message){
if(message == null) return;
@@ -315,15 +323,15 @@ public class NetClient implements ApplicationListener{
}
@Remote(variants = Variant.both, unreliable = true)
- public static void onEffect(Effect effect, float x, float y, float rotation, Color color){
+ public static void effect(Effect effect, float x, float y, float rotation, Color color){
if(effect == null) return;
effect.at(x, y, rotation, color);
}
@Remote(variants = Variant.both)
- public static void onEffectReliable(Effect effect, float x, float y, float rotation, Color color){
- onEffect(effect, x, y, rotation, color);
+ public static void effectReliable(Effect effect, float x, float y, float rotation, Color color){
+ effect(effect, x, y, rotation, color);
}
@Remote(variants = Variant.both)
@@ -332,6 +340,13 @@ public class NetClient implements ApplicationListener{
ui.showInfoToast(message, duration);
}
+
+ @Remote(variants = Variant.both)
+ public static void warningToast(int unicode, String text){
+ if(text == null || Fonts.icon.getData().getGlyph((char)unicode) == null) return;
+
+ ui.hudfrag.showToast(Fonts.getGlyph(Fonts.icon, (char)unicode), text);
+ }
@Remote(variants = Variant.both)
public static void setRules(Rules rules){
@@ -433,7 +448,7 @@ public class NetClient implements ApplicationListener{
tile.build.readAll(Reads.get(input), tile.build.version());
}
}catch(Exception e){
- e.printStackTrace();
+ Log.err(e);
}
}
@@ -564,19 +579,19 @@ public class NetClient implements ApplicationListener{
BuildPlan[] requests = null;
if(player.isBuilder()){
//limit to 10 to prevent buffer overflows
- int usedRequests = Math.min(player.builder().plans().size, 10);
+ int usedRequests = Math.min(player.unit().plans().size, 10);
int totalLength = 0;
//prevent buffer overflow by checking config length
for(int i = 0; i < usedRequests; i++){
- BuildPlan plan = player.builder().plans().get(i);
- if(plan.config instanceof byte[]){
- int length = ((byte[])plan.config).length;
+ BuildPlan plan = player.unit().plans().get(i);
+ if(plan.config instanceof byte[] b){
+ int length = b.length;
totalLength += length;
}
- if(totalLength > 2048){
+ if(totalLength > 1024){
usedRequests = i + 1;
break;
}
@@ -584,7 +599,7 @@ public class NetClient implements ApplicationListener{
requests = new BuildPlan[usedRequests];
for(int i = 0; i < usedRequests; i++){
- requests[i] = player.builder().plans().get(i);
+ requests[i] = player.unit().plans().get(i);
}
}
@@ -598,9 +613,9 @@ public class NetClient implements ApplicationListener{
unit.x, unit.y,
player.unit().aimX(), player.unit().aimY(),
unit.rotation,
- unit instanceof Mechc ? ((Mechc)unit).baseRotation() : 0,
+ unit instanceof Mechc m ? m.baseRotation() : 0,
unit.vel.x, unit.vel.y,
- player.miner().mineTile(),
+ player.unit().mineTile,
player.boosting, player.shooting, ui.chatfrag.shown(), control.input.isBuilding,
requests,
Core.camera.position.x, Core.camera.position.y,
diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java
index 00f0bc78e8..5c4c12dea1 100644
--- a/core/src/mindustry/core/NetServer.java
+++ b/core/src/mindustry/core/NetServer.java
@@ -41,7 +41,7 @@ public class NetServer implements ApplicationListener{
private static final Vec2 vector = new Vec2();
private static final Rect viewport = new Rect();
/** If a player goes away of their server-side coordinates by this distance, they get teleported back. */
- private static final float correctDist = 16f;
+ private static final float correctDist = tilesize * 8f;
public final Administration admins = new Administration();
public final CommandHandler clientCommands = new CommandHandler("/");
@@ -164,7 +164,7 @@ public class NetServer implements ApplicationListener{
info.id = packet.uuid;
admins.save();
Call.infoMessage(con, "You are not whitelisted here.");
- Log.info("&lcDo &lywhitelist-add @&lc to whitelist the player &lb'@'", packet.uuid, packet.name);
+ info("&lcDo &lywhitelist-add @&lc to whitelist the player &lb'@'", packet.uuid, packet.name);
con.kick(KickReason.whitelist);
return;
}
@@ -226,8 +226,8 @@ public class NetServer implements ApplicationListener{
writeBuffer.reset();
player.write(outputBuffer);
}catch(Throwable t){
- t.printStackTrace();
con.kick(KickReason.nameEmpty);
+ err(t);
return;
}
@@ -248,10 +248,10 @@ public class NetServer implements ApplicationListener{
try{
RemoteReadServer.readPacket(packet.reader(), packet.type, con.player);
}catch(ValidateException e){
- Log.debug("Validation failed for '@': @", e.player, e.getMessage());
+ debug("Validation failed for '@': @", e.player, e.getMessage());
}catch(RuntimeException e){
if(e.getCause() instanceof ValidateException v){
- Log.debug("Validation failed for '@': @", v.player, v.getMessage());
+ debug("Validation failed for '@': @", v.player, v.getMessage());
}else{
throw e;
}
@@ -305,7 +305,7 @@ public class NetServer implements ApplicationListener{
player.sendMessage("[scarlet]You must be admin to use this command.");
return;
}
-
+
Groups.player.each(Player::admin, a -> a.sendMessage(args[0], player, "[#" + Pal.adminChat.toString() + "]" + NetClient.colorizeName(player.id, player.name)));
});
@@ -418,7 +418,7 @@ public class NetServer implements ApplicationListener{
VoteSession session = new VoteSession(currentlyKicking, found);
session.vote(player, 1);
- vtime.reset();
+ vtime.reset();
currentlyKicking[0] = session;
}
}else{
@@ -493,7 +493,7 @@ public class NetServer implements ApplicationListener{
data.stream = new ByteArrayInputStream(stream.toByteArray());
player.con.sendStream(data);
- Log.debug("Packed @ bytes of world data.", stream.size());
+ debug("Packed @ bytes of world data.", stream.size());
}
public void addPacketHandler(String type, Cons2 handler){
@@ -505,7 +505,7 @@ public class NetServer implements ApplicationListener{
}
public static void onDisconnect(Player player, String reason){
- //singleplayer multiplayer wierdness
+ //singleplayer multiplayer weirdness
if(player.con == null){
player.remove();
return;
@@ -519,7 +519,7 @@ public class NetServer implements ApplicationListener{
}
String message = Strings.format("&lb@&fi&lk has disconnected. &fi&lk[&lb@&fi&lk] (@)", player.name, player.uuid(), reason);
- if(Config.showConnectMessages.bool()) Log.info(message);
+ if(Config.showConnectMessages.bool()) info(message);
}
player.remove();
@@ -539,7 +539,7 @@ public class NetServer implements ApplicationListener{
public static void serverPacketUnreliable(Player player, String type, String contents){
serverPacketReliable(player, type, contents);
}
-
+
private static boolean invalid(float f){
return Float.isInfinite(f) || Float.isNaN(f);
}
@@ -600,8 +600,8 @@ public class NetServer implements ApplicationListener{
player.unit().aim(pointerX, pointerY);
if(player.isBuilder()){
- player.builder().clearBuilding();
- player.builder().updateBuilding(building);
+ player.unit().clearBuilding();
+ player.unit().updateBuilding(building);
if(requests != null){
for(BuildPlan req : requests){
@@ -625,14 +625,12 @@ public class NetServer implements ApplicationListener{
con.rejectedRequests.add(req);
continue;
}
- player.builder().plans().addLast(req);
+ player.unit().plans().addLast(req);
}
}
}
- if(player.isMiner()){
- player.miner().mineTile(mining);
- }
+ player.unit().mineTile = mining;
con.rejectedRequests.clear();
@@ -640,12 +638,12 @@ public class NetServer implements ApplicationListener{
Unit unit = player.unit();
long elapsed = Time.timeSinceMillis(con.lastReceivedClientTime);
- float maxSpeed = ((player.unit().type.canBoost && player.unit().isFlying()) ? player.unit().type.boostMultiplier : 1f) * player.unit().type.speed;
+ float maxSpeed = unit.realSpeed();
if(unit.isGrounded()){
maxSpeed *= unit.floorSpeedMultiplier();
}
- float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.1f;
+ float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.2f;
//ignore the position if the player thinks they're dead, or the unit is wrong
boolean ignorePosition = dead || unit.id != unitID;
@@ -702,15 +700,14 @@ public class NetServer implements ApplicationListener{
@Remote(targets = Loc.client, called = Loc.server)
public static void adminRequest(Player player, Player other, AdminAction action){
-
if(!player.admin){
- Log.warn("ACCESS DENIED: Player @ / @ attempted to perform admin action '@' on '@' without proper security access.",
+ warn("ACCESS DENIED: Player @ / @ attempted to perform admin action '@' on '@' without proper security access.",
player.name, player.con.address, action.name(), other == null ? null : other.name);
return;
}
if(other == null || ((other.admin && !player.isLocal()) && other != player)){
- Log.warn("@ attempted to perform admin action on nonexistant or admin player.", player.name);
+ warn("@ attempted to perform admin action on nonexistant or admin player.", player.name);
return;
}
@@ -722,10 +719,10 @@ public class NetServer implements ApplicationListener{
netServer.admins.banPlayerIP(other.con.address);
netServer.admins.banPlayerID(other.con.uuid);
other.kick(KickReason.banned);
- Log.info("&lc@ has banned @.", player.name, other.name);
+ info("&lc@ has banned @.", player.name, other.name);
}else if(action == AdminAction.kick){
other.kick(KickReason.kick);
- Log.info("&lc@ has kicked @.", player.name, other.name);
+ info("&lc@ has kicked @.", player.name, other.name);
}else if(action == AdminAction.trace){
TraceInfo info = new TraceInfo(other.con.address, other.uuid(), other.con.modclient, other.con.mobile);
if(player.con != null){
@@ -733,7 +730,7 @@ public class NetServer implements ApplicationListener{
}else{
NetClient.traceInfo(other, info);
}
- Log.info("&lc@ has requested trace info of @.", player.name, other.name);
+ info("&lc@ has requested trace info of @.", player.name, other.name);
}
}
@@ -748,7 +745,7 @@ public class NetServer implements ApplicationListener{
if(Config.showConnectMessages.bool()){
Call.sendMessage("[accent]" + player.name + "[accent] has connected.");
String message = Strings.format("&lb@&fi&lk has connected. &fi&lk[&lb@&fi&lk]", player.name, player.uuid());
- Log.info(message);
+ info(message);
}
if(!Config.motd.string().equalsIgnoreCase("off")){
@@ -773,7 +770,6 @@ public class NetServer implements ApplicationListener{
@Override
public void update(){
-
if(!headless && !closing && net.server() && state.isMenu()){
closing = true;
ui.loadfrag.show("@server.closing");
@@ -799,7 +795,7 @@ public class NetServer implements ApplicationListener{
net.host(Config.port.num());
info("Opened a server on port @.", Config.port.num());
}catch(BindException e){
- Log.err("Unable to host: Port already in use! Make sure no other servers are running on the same port in your network.");
+ err("Unable to host: Port already in use! Make sure no other servers are running on the same port in your network.");
state.set(State.menu);
}catch(IOException e){
err(e);
@@ -915,7 +911,6 @@ public class NetServer implements ApplicationListener{
}
String checkColor(String str){
-
for(int i = 1; i < str.length(); i++){
if(str.charAt(i) == ']'){
String color = str.substring(1, i);
@@ -941,7 +936,6 @@ public class NetServer implements ApplicationListener{
}
void sync(){
-
try{
Groups.player.each(p -> !p.isLocal(), player -> {
if(player.con == null || !player.con.isConnected()){
@@ -965,7 +959,7 @@ public class NetServer implements ApplicationListener{
}
}catch(IOException e){
- e.printStackTrace();
+ Log.err(e);
}
}
diff --git a/core/src/mindustry/core/Platform.java b/core/src/mindustry/core/Platform.java
index 7eae8136c0..1e77fbbe61 100644
--- a/core/src/mindustry/core/Platform.java
+++ b/core/src/mindustry/core/Platform.java
@@ -117,9 +117,10 @@ public interface Platform{
* @param cons Selection listener
* @param open Whether to open or save files
* @param extension File extension to filter
+ * @param title The title of the native dialog
*/
- default void showFileChooser(boolean open, String extension, Cons cons){
- new FileChooser(open ? "@open" : "@save", file -> file.extEquals(extension), open, file -> {
+ default void showFileChooser(boolean open, String title, String extension, Cons cons){
+ new FileChooser(title, file -> file.extEquals(extension), open, file -> {
if(!open){
cons.get(file.parent().child(file.nameWithoutExtension() + "." + extension));
}else{
@@ -128,6 +129,10 @@ public interface Platform{
}).show();
}
+ default void showFileChooser(boolean open, String extension, Cons cons){
+ showFileChooser(open, open ? "@open": "@save", extension, cons);
+ }
+
/**
* Show a file chooser for multiple file types.
* @param cons Selection listener
diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java
index 47b7500e10..bdc9b77601 100644
--- a/core/src/mindustry/core/Renderer.java
+++ b/core/src/mindustry/core/Renderer.java
@@ -27,10 +27,11 @@ public class Renderer implements ApplicationListener{
public final Pixelator pixelator = new Pixelator();
public PlanetRenderer planets;
+ public @Nullable Bloom bloom;
public FrameBuffer effectBuffer = new FrameBuffer();
public float laserOpacity = 1f;
- private Bloom bloom;
+ //TODO unused
private FxProcessor fx = new FxProcessor();
private Color clearColor = new Color(0f, 0f, 0f, 1f);
private float targetscale = Scl.scl(4);
@@ -53,7 +54,7 @@ public class Renderer implements ApplicationListener{
public void init(){
planets = new PlanetRenderer();
- if(settings.getBool("bloom")){
+ if(settings.getBool("bloom", !ios)){
setupBloom();
}
}
@@ -120,10 +121,6 @@ public class Renderer implements ApplicationListener{
@Override
public void resize(int width, int height){
- if(settings.getBool("bloom")){
- setupBloom();
- }
-
fx.resize(width, height);
}
@@ -142,9 +139,9 @@ public class Renderer implements ApplicationListener{
}
bloom = new Bloom(true);
}catch(Throwable e){
- e.printStackTrace();
settings.put("bloom", false);
ui.showErrorMessage("@error.bloom");
+ Log.err(e);
}
}
@@ -239,6 +236,7 @@ public class Renderer implements ApplicationListener{
}
if(bloom != null){
+ bloom.resize(graphics.getWidth() / 4, graphics.getHeight() / 4);
Draw.draw(Layer.bullet - 0.01f, bloom::capture);
Draw.draw(Layer.effect + 0.01f, bloom::render);
}
@@ -366,5 +364,4 @@ public class Renderer implements ApplicationListener{
buffer.dispose();
}
-
}
diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java
index f0a4757966..4437bb4d48 100644
--- a/core/src/mindustry/core/UI.java
+++ b/core/src/mindustry/core/UI.java
@@ -42,6 +42,7 @@ public class UI implements ApplicationListener, Loadable{
public MinimapFragment minimapfrag;
public PlayerListFragment listfrag;
public LoadingFragment loadfrag;
+ public HintsFragment hints;
public WidgetGroup menuGroup, hudGroup;
@@ -104,7 +105,7 @@ public class UI implements ApplicationListener, Loadable{
Tooltips.getInstance().textProvider = text -> new Tooltip(t -> t.background(Styles.black5).margin(4f).add(text));
Core.settings.setErrorHandler(e -> {
- e.printStackTrace();
+ Log.err(e);
Core.app.post(() -> showErrorMessage("Failed to access local storage.\nSettings will not be saved."));
});
@@ -140,12 +141,6 @@ public class UI implements ApplicationListener, Loadable{
}
}
- //draw overlay for buttons
- if(state.rules.tutorial){
- control.tutorial.draw();
- Draw.flush();
- }
-
Events.fire(Trigger.uiDrawEnd);
}
@@ -156,6 +151,7 @@ public class UI implements ApplicationListener, Loadable{
menufrag = new MenuFragment();
hudfrag = new HudFragment();
+ hints = new HintsFragment();
chatfrag = new ChatFragment();
minimapfrag = new MinimapFragment();
listfrag = new PlayerListFragment();
@@ -328,20 +324,21 @@ public class UI implements ApplicationListener, Loadable{
/** Shows a label in the world. This label is behind everything. Does not fade. */
public void showLabel(String info, float duration, float worldx, float worldy){
- Table table = new Table();
- table.setFillParent(true);
+ var table = new Table(Styles.black3).margin(4);
table.touchable = Touchable.disabled;
table.update(() -> {
if(state.isMenu()) table.remove();
+ Vec2 v = Core.camera.project(worldx, worldy);
+ table.setPosition(v.x, v.y, Align.center);
});
table.actions(Actions.delay(duration), Actions.remove());
- table.align(Align.center).table(Styles.black3, t -> t.margin(4).add(info).style(Styles.outlineLabel)).update(t -> {
- Vec2 v = Core.camera.project(worldx, worldy);
- t.setPosition(v.x, v.y, Align.center);
- });
+ table.add(info).style(Styles.outlineLabel);
+ table.pack();
table.act(0f);
//make sure it's at the back
Core.scene.root.addChildAt(0, table);
+
+ table.getChildren().first().act(0f);
}
public void showInfo(String info){
@@ -356,6 +353,7 @@ public class UI implements ApplicationListener, Loadable{
hide();
listener.run();
}).size(110, 50).pad(4);
+ closeOnBack();
}}.show();
}
@@ -364,6 +362,7 @@ public class UI implements ApplicationListener, Loadable{
getCell(cont).growX();
cont.margin(15).add(info).width(400f).wrap().get().setAlignment(Align.left);
buttons.button("@ok", this::hide).size(110, 50).pad(4);
+ closeOnBack();
}}.show();
}
@@ -378,6 +377,7 @@ public class UI implements ApplicationListener, Loadable{
cont.add(text).pad(2f).growX().wrap().get().setAlignment(Align.center);
cont.row();
cont.button("@ok", this::hide).size(120, 50).pad(4);
+ closeOnBack();
}}.show();
}
@@ -388,7 +388,7 @@ public class UI implements ApplicationListener, Loadable{
public void showException(String text, Throwable exc){
loadfrag.hide();
new Dialog(""){{
- String message = Strings.getFinalMesage(exc);
+ String message = Strings.getFinalMessage(exc);
setFillParent(true);
cont.margin(15);
@@ -405,6 +405,7 @@ public class UI implements ApplicationListener, Loadable{
cont.button("@ok", this::hide).size(110, 50).fillX().left();
cont.row();
cont.add(col).colspan(2).pad(2);
+ closeOnBack();
}}.show();
}
@@ -420,6 +421,7 @@ public class UI implements ApplicationListener, Loadable{
cont.add(text).width(400f).wrap().get().setAlignment(align, align);
cont.row();
buttons.button("@ok", this::hide).size(110, 50).pad(4);
+ closeOnBack();
}}.show();
}
@@ -427,6 +429,7 @@ public class UI implements ApplicationListener, Loadable{
new Dialog(titleText){{
cont.margin(15).add(text).width(400f).wrap().left().get().setAlignment(Align.left, Align.left);
buttons.button("@ok", this::hide).size(110, 50).pad(4);
+ closeOnBack();
}}.show();
}
@@ -436,6 +439,7 @@ public class UI implements ApplicationListener, Loadable{
titleTable.row();
titleTable.image().color(Pal.accent).height(3f).growX().pad(2f);
buttons.button("@ok", this::hide).size(110, 50).pad(4);
+ closeOnBack();
}}.show();
}
@@ -487,13 +491,20 @@ public class UI implements ApplicationListener, Loadable{
dialog.show();
}
+ /** Display text in the middle of the screen, then fade out. */
public void announce(String text){
- Table t = new Table();
+ announce(text, 3);
+ }
+
+ /** Display text in the middle of the screen, then fade out. */
+ public void announce(String text, float duration){
+ Table t = new Table(Styles.black3);
t.touchable = Touchable.disabled;
- t.background(Styles.black3).margin(8f)
- .add(text).style(Styles.outlineLabel).labelAlign(Align.center);
+ t.margin(8f).add(text).style(Styles.outlineLabel).labelAlign(Align.center);
t.update(() -> t.setPosition(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, Align.center));
- t.actions(Actions.fadeOut(3, Interp.pow4In), Actions.remove());
+ t.actions(Actions.fadeOut(duration, Interp.pow4In), Actions.remove());
+ t.pack();
+ t.act(0.1f);
Core.scene.add(t);
}
@@ -511,7 +522,7 @@ public class UI implements ApplicationListener, Loadable{
//TODO move?
- public static String formatAmount(long number){
+ public static String formatAmount(int number){
if(number >= 1_000_000_000){
return Strings.fixed(number / 1_000_000_000f, 1) + "[gray]" + Core.bundle.get("unit.billions") + "[]";
}else if(number >= 1_000_000){
diff --git a/core/src/mindustry/core/Version.java b/core/src/mindustry/core/Version.java
index c2744700a4..bfde8ab511 100644
--- a/core/src/mindustry/core/Version.java
+++ b/core/src/mindustry/core/Version.java
@@ -46,6 +46,10 @@ public class Version{
}
}
+ public static String buildString(){
+ return build < 0 ? "custom" : build + (revision == 0 ? "" : "." + revision);
+ }
+
/** get menu version without colors */
public static String combined(){
if(build == -1){
diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java
index 60beec266b..c4819ed222 100644
--- a/core/src/mindustry/core/World.java
+++ b/core/src/mindustry/core/World.java
@@ -200,8 +200,8 @@ public class World{
for(Tile tile : tiles){
//remove legacy blocks; they need to stop existing
- if(tile.block() instanceof LegacyBlock){
- tile.remove();
+ if(tile.block() instanceof LegacyBlock l){
+ l.removeSelf(tile);
continue;
}
@@ -445,7 +445,6 @@ public class World{
int err = dx - dy;
int e2;
while(true){
-
if(cons.accept(x0, y0)) return true;
if(x0 == x1 && y0 == y1) return false;
diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java
index 9020cd0ff1..7848882206 100644
--- a/core/src/mindustry/ctype/UnlockableContent.java
+++ b/core/src/mindustry/ctype/UnlockableContent.java
@@ -20,10 +20,14 @@ public abstract class UnlockableContent extends MappableContent{
public Stats stats = new Stats();
/** Localized, formal name. Never null. Set to internal name if not found in bundle. */
public String localizedName;
- /** Localized description. May be null. */
- public @Nullable String description;
+ /** Localized description & details. May be null. */
+ public @Nullable String description, details;
/** Whether this content is always unlocked in the tech tree. */
public boolean alwaysUnlocked = false;
+ /** Whether to show the description in the research dialog preview. */
+ public boolean inlineDescription = true;
+ /** Special logic icon ID. */
+ public int iconId = 0;
/** Icons by Cicon ID.*/
protected TextureRegion[] cicons = new TextureRegion[Cicon.all.length];
/** Unlock state. Loaded from settings. Do not modify outside of the constructor. */
@@ -34,6 +38,7 @@ public abstract class UnlockableContent extends MappableContent{
this.localizedName = Core.bundle.get(getContentType() + "." + this.name + ".name", this.name);
this.description = Core.bundle.getOrNull(getContentType() + "." + this.name + ".description");
+ this.details = Core.bundle.getOrNull(getContentType() + "." + this.name + ".details");
this.unlocked = Core.settings != null && Core.settings.getBool(this.name + "-unlocked", false);
}
@@ -49,7 +54,7 @@ public abstract class UnlockableContent extends MappableContent{
}
}
- /** Intializes stats on demand. Should only be called once. Only called before something is displayed. */
+ /** Initializes stats on demand. Should only be called once. Only called before something is displayed. */
public void setStats(){
}
@@ -74,9 +79,11 @@ public abstract class UnlockableContent extends MappableContent{
cicons[icon.ordinal()] =
Core.atlas.find(getContentType().name() + "-" + name + "-" + icon.name(),
Core.atlas.find(getContentType().name() + "-" + name + "-full",
+ Core.atlas.find(name + "-" + icon.name(),
+ Core.atlas.find(name + "-full",
Core.atlas.find(name,
Core.atlas.find(getContentType().name() + "-" + name,
- Core.atlas.find(name + "1")))));
+ Core.atlas.find(name + "1")))))));
}
return cicons[icon.ordinal()];
}
@@ -113,7 +120,7 @@ public abstract class UnlockableContent extends MappableContent{
}
/** Unlocks this content, but does not fire any events. */
- public void quiteUnlock(){
+ public void quietUnlock(){
if(!unlocked()){
unlocked = true;
Core.settings.put(name + "-unlocked", true);
@@ -121,10 +128,18 @@ public abstract class UnlockableContent extends MappableContent{
}
public boolean unlocked(){
- if(net.client()) return state.rules.researched.contains(name);
+ if(net != null && net.client()) return alwaysUnlocked || state.rules.researched.contains(name);
return unlocked || alwaysUnlocked;
}
+ /** Locks this content again. */
+ public void clearUnlock(){
+ if(unlocked){
+ unlocked = false;
+ Core.settings.put(name + "-unlocked", false);
+ }
+ }
+
/** @return whether this content is unlocked, or the player is in a custom (non-campaign) game. */
public boolean unlockedNow(){
return unlocked() || !state.isCampaign();
diff --git a/core/src/mindustry/editor/DrawOperation.java b/core/src/mindustry/editor/DrawOperation.java
index 7910de4892..53134663ea 100755
--- a/core/src/mindustry/editor/DrawOperation.java
+++ b/core/src/mindustry/editor/DrawOperation.java
@@ -13,7 +13,7 @@ public class DrawOperation{
private MapEditor editor;
private LongSeq array = new LongSeq();
- public DrawOperation(MapEditor editor) {
+ public DrawOperation(MapEditor editor){
this.editor = editor;
}
@@ -37,7 +37,7 @@ public class DrawOperation{
}
}
- private void updateTile(int i) {
+ private void updateTile(int i){
long l = array.get(i);
array.set(i, TileOp.get(TileOp.x(l), TileOp.y(l), TileOp.type(l), getTile(editor.tile(TileOp.x(l), TileOp.y(l)), TileOp.type(l))));
setTile(editor.tile(TileOp.x(l), TileOp.y(l)), TileOp.type(l), TileOp.value(l));
diff --git a/core/src/mindustry/editor/EditorTile.java b/core/src/mindustry/editor/EditorTile.java
index f735bd790c..e4be334888 100644
--- a/core/src/mindustry/editor/EditorTile.java
+++ b/core/src/mindustry/editor/EditorTile.java
@@ -50,9 +50,19 @@ public class EditorTile extends Tile{
return;
}
- op(OpType.block, block.id);
- if(rotation != 0) op(OpType.rotation, (byte)rotation);
- if(team != Team.derelict) op(OpType.team, (byte)team.id);
+ if(!isCenter()){
+ EditorTile cen = (EditorTile)build.tile;
+ cen.op(OpType.rotation, (byte)build.rotation);
+ cen.op(OpType.team, (byte)build.team.id);
+ cen.op(OpType.block, block.id);
+ update();
+ }else{
+ if(build != null) op(OpType.rotation, (byte)build.rotation);
+ if(build != null) op(OpType.team, (byte)build.team.id);
+ op(OpType.block, block.id);
+
+ }
+
super.setBlock(type, team, rotation);
}
@@ -66,6 +76,8 @@ public class EditorTile extends Tile{
if(getTeamID() == team.id) return;
op(OpType.team, (byte)getTeamID());
super.setTeam(team);
+
+ getLinkedTiles(t -> ui.editor.editor.renderer.updatePoint(t.x, t.y));
}
@Override
diff --git a/core/src/mindustry/editor/MapEditor.java b/core/src/mindustry/editor/MapEditor.java
index 1c33964e08..c460d7c042 100644
--- a/core/src/mindustry/editor/MapEditor.java
+++ b/core/src/mindustry/editor/MapEditor.java
@@ -137,7 +137,7 @@ public class MapEditor{
if(isFloor){
tile.setFloor(drawBlock.asFloor());
- }else{
+ }else if(!(tile.block().isMultiblock() && !drawBlock.isMultiblock())){
if(drawBlock.rotate && tile.build != null && tile.build.rotation != rotation){
addTileOp(TileOp.get(tile.x, tile.y, (byte)OpType.rotation.ordinal(), (byte)rotation));
}
@@ -157,7 +157,7 @@ public class MapEditor{
boolean hasOverlap(int x, int y){
Tile tile = world.tile(x, y);
//allow direct replacement of blocks of the same size
- if(tile != null && tile.isCenter() && tile.block() != drawBlock && tile.block().size == drawBlock.size){
+ if(tile != null && tile.isCenter() && tile.block() != drawBlock && tile.block().size == drawBlock.size && tile.x == x && tile.y == y){
return false;
}
@@ -168,12 +168,10 @@ public class MapEditor{
for(int dy = 0; dy < drawBlock.size; dy++){
int worldx = dx + offsetx + x;
int worldy = dy + offsety + y;
- if(!(worldx == x && worldy == y)){
- Tile other = world.tile(worldx, worldy);
+ Tile other = world.tile(worldx, worldy);
- if(other != null && other.block().isMultiblock()){
- return true;
- }
+ if(other != null && other.block().isMultiblock()){
+ return true;
}
}
}
diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java
index dfad7c03ab..91927a0630 100644
--- a/core/src/mindustry/editor/MapEditorDialog.java
+++ b/core/src/mindustry/editor/MapEditorDialog.java
@@ -42,6 +42,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
private MapGenerateDialog generateDialog;
private ScrollPane pane;
private BaseDialog menu;
+ private Table blockSelection;
private Rules lastSavedRules;
private boolean saved = false;
private boolean shownWithMap = false;
@@ -258,6 +259,11 @@ public class MapEditorDialog extends Dialog implements Disposable{
Groups.unit.clear();
Groups.build.clear();
logic.play();
+
+ if(player.team().core() == null){
+ player.set(world.width() * tilesize/2f, world.height() * tilesize/2f);
+ player.unit(UnitTypes.alpha.spawn(player.team(), player.x, player.y));
+ }
});
}
@@ -565,7 +571,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
}).growX().top();
}
- if(addCliffButton){
+ if(experimental){
mid.row();
mid.table(t -> {
@@ -660,9 +666,9 @@ public class MapEditorDialog extends Dialog implements Disposable{
ui.showConfirm("@confirm", "@editor.unsaved", this::hide);
}
- private void addBlockSelection(Table table){
- Table content = new Table();
- pane = new ScrollPane(content);
+ private void addBlockSelection(Table cont){
+ blockSelection = new Table();
+ pane = new ScrollPane(blockSelection);
pane.setFadeScrollBars(false);
pane.setOverscroll(true, false);
pane.exited(() -> {
@@ -670,9 +676,22 @@ public class MapEditorDialog extends Dialog implements Disposable{
Core.scene.setScrollFocus(view);
}
});
- ButtonGroup group = new ButtonGroup<>();
- int i = 0;
+ cont.table(search -> {
+ search.image(Icon.zoom).padRight(8);
+ search.field("", this::rebuildBlockSelection)
+ .name("editor/search").maxTextLength(maxNameLength).get().setMessageText("@players.search");
+ }).pad(-2);
+ cont.row();
+ cont.table(Tex.underline, extra -> extra.labelWrap(() -> editor.drawBlock.localizedName).width(200f).center()).growX();
+ cont.row();
+ cont.add(pane).expandY().top().left();
+
+ rebuildBlockSelection("");
+ }
+
+ private void rebuildBlockSelection(String searchText){
+ blockSelection.clear();
blocksOut.clear();
blocksOut.addAll(Vars.content.blocks());
@@ -686,28 +705,32 @@ public class MapEditorDialog extends Dialog implements Disposable{
return Integer.compare(b1.id, b2.id);
});
+ int i = 0;
+
for(Block block : blocksOut){
TextureRegion region = block.icon(Cicon.medium);
- if(!Core.atlas.isFound(region) || !block.inEditor || (block.buildVisibility == BuildVisibility.debugOnly)) continue;
+ if(!Core.atlas.isFound(region) || !block.inEditor
+ || block.buildVisibility == BuildVisibility.debugOnly
+ || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.toLowerCase()))
+ ) continue;
ImageButton button = new ImageButton(Tex.whiteui, Styles.clearTogglei);
button.getStyle().imageUp = new TextureRegionDrawable(region);
button.clicked(() -> editor.drawBlock = block);
button.resizeImage(8 * 4f);
button.update(() -> button.setChecked(editor.drawBlock == block));
- group.add(button);
- content.add(button).size(50f);
+ blockSelection.add(button).size(50f).tooltip(block.localizedName);
+
+ if(i == 0) editor.drawBlock = block;
if(++i % 4 == 0){
- content.row();
+ blockSelection.row();
}
}
- group.getButtons().get(2).setChecked(true);
-
- table.table(Tex.underline, extra -> extra.labelWrap(() -> editor.drawBlock.localizedName).width(200f).center()).growX();
- table.row();
- table.add(pane).growY().fillX();
+ if(i == 0){
+ blockSelection.add("@none").color(Color.lightGray).padLeft(80f).padTop(10f);
+ }
}
}
diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java
index c0292cbf74..f6a87f77b1 100644
--- a/core/src/mindustry/editor/MapGenerateDialog.java
+++ b/core/src/mindustry/editor/MapGenerateDialog.java
@@ -29,7 +29,8 @@ public class MapGenerateDialog extends BaseDialog{
private final Prov[] filterTypes = new Prov[]{
NoiseFilter::new, ScatterFilter::new, TerrainFilter::new, DistortFilter::new,
RiverNoiseFilter::new, OreFilter::new, OreMedianFilter::new, MedianFilter::new,
- BlendFilter::new, MirrorFilter::new, ClearFilter::new, CoreSpawnFilter::new, EnemySpawnFilter::new
+ BlendFilter::new, MirrorFilter::new, ClearFilter::new, CoreSpawnFilter::new,
+ EnemySpawnFilter::new, SpawnPathFilter::new
};
private final MapEditor editor;
private final boolean applied;
@@ -44,9 +45,8 @@ public class MapGenerateDialog extends BaseDialog{
private AsyncExecutor executor = new AsyncExecutor(1);
private AsyncResult result;
boolean generating;
- private GenTile returnTile = new GenTile();
- private GenTile[][] buffer1, buffer2;
+ private long[] buffer1, buffer2;
private Cons> applier;
CachedTile ctile = new CachedTile(){
//nothing.
@@ -54,6 +54,11 @@ public class MapGenerateDialog extends BaseDialog{
protected void changeBuild(Team team, Prov entityprov, int rotation){
}
+
+ @Override
+ public void setBlock(Block type, Team team, int rotation, Prov entityprov){
+ this.block = type;
+ }
};
/** @param applied whether or not to use the applied in-game mode. */
@@ -65,7 +70,7 @@ public class MapGenerateDialog extends BaseDialog{
shown(this::setup);
addCloseButton();
if(applied){
- buttons.button("@editor.apply", () -> {
+ buttons.button("@editor.apply", Icon.ok, () -> {
ui.loadAnd(() -> {
apply();
hide();
@@ -78,14 +83,14 @@ public class MapGenerateDialog extends BaseDialog{
update();
}).size(160f, 64f);
}
- buttons.button("@editor.randomize", () -> {
+ buttons.button("@editor.randomize", Icon.refresh, () -> {
for(GenerateFilter filter : filters){
filter.randomize();
}
update();
}).size(160f, 64f);
- buttons.button("@add", Icon.add, this::showAdd).height(64f).width(140f);
+ buttons.button("@add", Icon.add, this::showAdd).height(64f).width(150f);
if(!applied){
hidden(this::apply);
@@ -107,38 +112,36 @@ public class MapGenerateDialog extends BaseDialog{
/** Applies the specified filters to the editor. */
public void applyToEditor(Seq filters){
//writeback buffer
- GenTile[][] writeTiles = new GenTile[editor.width()][editor.height()];
-
- for(int x = 0; x < editor.width(); x++){
- for(int y = 0; y < editor.height(); y++){
- writeTiles[x][y] = new GenTile();
- }
- }
+ long[] writeTiles = new long[editor.width() * editor.height()];
for(GenerateFilter filter : filters){
input.begin(filter, editor.width(), editor.height(), editor::tile);
+
//write to buffer
for(int x = 0; x < editor.width(); x++){
for(int y = 0; y < editor.height(); y++){
Tile tile = editor.tile(x, y);
- input.apply(x, y, tile.floor(), tile.block(), tile.overlay());
+ input.apply(x, y, tile.block(), tile.floor(), tile.overlay());
filter.apply(input);
- writeTiles[x][y].set(input.floor, input.block, input.ore, tile.team());
+ writeTiles[x + y*world.width()] = PackTile.get(input.block.id, input.floor.id, input.overlay.id);
}
}
editor.load(() -> {
//read from buffer back into tiles
- for(int x = 0; x < editor.width(); x++){
- for(int y = 0; y < editor.height(); y++){
- Tile tile = editor.tile(x, y);
- GenTile write = writeTiles[x][y];
+ for(int i = 0; i < editor.width() * editor.height(); i++){
+ Tile tile = world.tiles.geti(i);
+ long write = writeTiles[i];
- tile.setFloor((Floor)content.block(write.floor));
- tile.setBlock(content.block(write.block));
- tile.setTeam(Team.get(write.team));
- tile.setOverlay(content.block(write.ore));
+ Block block = content.block(PackTile.block(write)), floor = content.block(PackTile.floor(write)), overlay = content.block(PackTile.overlay(write));
+
+ //don't mess up synthetic stuff.
+ if(!tile.synthetic() && !block.synthetic()){
+ tile.setBlock(block);
}
+
+ tile.setFloor((Floor)floor);
+ tile.setOverlay(overlay);
}
});
}
@@ -201,15 +204,8 @@ public class MapGenerateDialog extends BaseDialog{
rebuildFilters();
}
- GenTile[][] create(){
- GenTile[][] out = new GenTile[editor.width() / scaling][editor.height() / scaling];
-
- for(int x = 0; x < out.length; x++){
- for(int y = 0; y < out[0].length; y++){
- out[x][y] = new GenTile();
- }
- }
- return out;
+ long[] create(){
+ return new long[(editor.width() / scaling) * (editor.height() / scaling)];
}
void rebuildFilters(){
@@ -295,7 +291,7 @@ public class MapGenerateDialog extends BaseDialog{
for(Prov gen : filterTypes){
GenerateFilter filter = gen.get();
- if((!applied && filter.isBuffered()) || (filter.isPost() && applied)) continue;
+ if((filter.isPost() && applied)) continue;
selection.cont.button(filter.name(), () -> {
filters.add(filter);
@@ -317,9 +313,15 @@ public class MapGenerateDialog extends BaseDialog{
selection.show();
}
- GenTile dset(Tile tile){
- returnTile.set(tile);
- return returnTile;
+ long pack(Tile tile){
+ return PackTile.get(tile.blockID(), tile.floorID(), tile.overlayID());
+ }
+
+ Tile unpack(long tile){
+ ctile.setFloor((Floor)content.block(PackTile.floor(tile)));
+ ctile.setBlock(content.block(PackTile.block(tile)));
+ ctile.setOverlay(content.block(PackTile.overlay(tile)));
+ return ctile;
}
void apply(){
@@ -350,6 +352,7 @@ public class MapGenerateDialog extends BaseDialog{
result = executor.submit(() -> {
try{
+ int w = pixmap.getWidth();
world.setGenerating(true);
generating = true;
@@ -357,24 +360,24 @@ public class MapGenerateDialog extends BaseDialog{
//write to buffer1 for reading
for(int px = 0; px < pixmap.getWidth(); px++){
for(int py = 0; py < pixmap.getHeight(); py++){
- buffer1[px][py].set(editor.tile(px * scaling, py * scaling));
+ buffer1[px + py*w] = pack(editor.tile(px * scaling, py * scaling));
}
}
}
for(GenerateFilter filter : copy){
- input.begin(filter, editor.width(), editor.height(), (x, y) -> buffer1[Mathf.clamp(x / scaling, 0, pixmap.getWidth()-1)][Mathf.clamp(y / scaling, 0, pixmap.getHeight()-1)].tile());
+ input.begin(filter, editor.width(), editor.height(), (x, y) -> unpack(buffer1[Mathf.clamp(x / scaling, 0, pixmap.getWidth()-1) + w* Mathf.clamp(y / scaling, 0, pixmap.getHeight()-1)]));
//read from buffer1 and write to buffer2
pixmap.each((px, py) -> {
int x = px * scaling, y = py * scaling;
- GenTile tile = buffer1[px][py];
- input.apply(x, y, content.block(tile.floor), content.block(tile.block), content.block(tile.ore));
+ long tile = buffer1[px + py * w];
+ input.apply(x, y, content.block(PackTile.block(tile)), content.block(PackTile.floor(tile)), content.block(PackTile.overlay(tile)));
filter.apply(input);
- buffer2[px][py].set(input.floor, input.block, input.ore, Team.get(tile.team));
+ buffer2[px + py * w] = PackTile.get(input.block.id, input.floor.id, input.overlay.id);
});
- pixmap.each((px, py) -> buffer1[px][py].set(buffer2[px][py]));
+ pixmap.each((px, py) -> buffer1[px + py*w] = buffer2[px + py*w]);
}
for(int px = 0; px < pixmap.getWidth(); px++){
@@ -383,10 +386,10 @@ public class MapGenerateDialog extends BaseDialog{
//get result from buffer1 if there's filters left, otherwise get from editor directly
if(filters.isEmpty()){
Tile tile = editor.tile(px * scaling, py * scaling);
- color = MapIO.colorFor(tile.floor(), tile.block(), tile.overlay(), Team.derelict);
+ color = MapIO.colorFor(tile.block(), tile.floor(), tile.overlay(), Team.derelict);
}else{
- GenTile tile = buffer1[px][py];
- color = MapIO.colorFor(content.block(tile.floor), content.block(tile.block), content.block(tile.ore), Team.derelict);
+ long tile = buffer1[px + py*w];
+ color = MapIO.colorFor(content.block(PackTile.block(tile)), content.block(PackTile.floor(tile)), content.block(PackTile.overlay(tile)), Team.derelict);
}
pixmap.draw(px, pixmap.getHeight() - 1 - py, color);
}
@@ -401,44 +404,9 @@ public class MapGenerateDialog extends BaseDialog{
});
}catch(Exception e){
generating = false;
- e.printStackTrace();
+ Log.err(e);
}
world.setGenerating(false);
});
}
-
- private class GenTile{
- public byte team;
- public short block, floor, ore;
-
- GenTile(){
- }
-
- public void set(Block floor, Block wall, Block ore, Team team){
- this.floor = floor.id;
- this.block = wall.id;
- this.ore = (!floor.asFloor().hasSurface() && ore.asFloor().needsSurface) ? 0 : ore.id;
- this.team = (byte)team.id;
- }
-
- public void set(GenTile other){
- this.floor = other.floor;
- this.block = other.block;
- this.ore = other.ore;
- this.team = other.team;
- }
-
- public GenTile set(Tile other){
- set(other.floor(), other.block(), other.overlay(), other.team());
- return this;
- }
-
- Tile tile(){
- ctile.setFloor((Floor)content.block(floor));
- ctile.setBlock(content.block(block));
- ctile.setOverlay(content.block(ore));
- ctile.setTeam(Team.get(team));
- return ctile;
- }
- }
}
diff --git a/core/src/mindustry/editor/MapResizeDialog.java b/core/src/mindustry/editor/MapResizeDialog.java
index b3e190b020..afb0356bfa 100644
--- a/core/src/mindustry/editor/MapResizeDialog.java
+++ b/core/src/mindustry/editor/MapResizeDialog.java
@@ -8,7 +8,7 @@ import arc.util.*;
import mindustry.ui.dialogs.*;
public class MapResizeDialog extends BaseDialog{
- private static final int minSize = 50, maxSize = 500, increment = 50;
+ public static int minSize = 50, maxSize = 500, increment = 50;
int width, height;
public MapResizeDialog(MapEditor editor, Intc2 cons){
diff --git a/core/src/mindustry/editor/MapView.java b/core/src/mindustry/editor/MapView.java
index a54c0f49b8..4db21dec66 100644
--- a/core/src/mindustry/editor/MapView.java
+++ b/core/src/mindustry/editor/MapView.java
@@ -321,7 +321,7 @@ public class MapView extends Element implements GestureListener{
}
private boolean active(){
- return Core.scene.getKeyboardFocus() != null
+ return Core.scene != null && Core.scene.getKeyboardFocus() != null
&& Core.scene.getKeyboardFocus().isDescendantOf(ui.editor)
&& ui.editor.isShown() && tool == EditorTool.zoom &&
Core.scene.hit(Core.input.mouse().x, Core.input.mouse().y, true) == this;
diff --git a/core/src/mindustry/editor/WaveGraph.java b/core/src/mindustry/editor/WaveGraph.java
index 2436c62c2a..e908e7d934 100644
--- a/core/src/mindustry/editor/WaveGraph.java
+++ b/core/src/mindustry/editor/WaveGraph.java
@@ -81,7 +81,7 @@ public class WaveGraph extends Table{
for(int i = 0; i < values.length; i++){
float sum = 0;
for(UnitType type : used.orderedItems()){
- sum += type.health * values[i][type.id];
+ sum += (type.health) * values[i][type.id];
}
float cx = graphX + i*spacing, cy = 2f + graphY + sum * (graphH - 4f) / maxHealth;
@@ -160,7 +160,7 @@ public class WaveGraph extends Table{
used.add(spawn.type);
}
max = Math.max(max, values[index][spawn.type.id]);
- healthsum += spawned * spawn.type.health;
+ healthsum += spawned * (spawn.type.health);
sum += spawned;
}
maxTotal = Math.max(maxTotal, sum);
diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java
index d5b957e143..a98d03a923 100644
--- a/core/src/mindustry/editor/WaveInfoDialog.java
+++ b/core/src/mindustry/editor/WaveInfoDialog.java
@@ -1,7 +1,6 @@
package mindustry.editor;
import arc.*;
-import arc.input.*;
import arc.math.*;
import arc.scene.event.*;
import arc.scene.ui.*;
@@ -35,15 +34,9 @@ public class WaveInfoDialog extends BaseDialog{
super("@waves.title");
shown(this::setup);
- hidden(() -> {
- state.rules.spawns = groups;
- });
+ hidden(() -> state.rules.spawns = groups);
- keyDown(key -> {
- if(key == KeyCode.escape || key == KeyCode.back){
- Core.app.post(this::hide);
- }
- });
+ addCloseListener();
onResize(this::setup);
addCloseButton();
@@ -71,7 +64,7 @@ public class WaveInfoDialog extends BaseDialog{
}).disabled(b -> Core.app.getClipboardText() == null || Core.app.getClipboardText().isEmpty());
dialog.cont.row();
dialog.cont.button("@settings.reset", () -> ui.showConfirm("@confirm", "@settings.clear.confirm", () -> {
- groups = JsonIO.copy(defaultWaves.get());
+ groups = JsonIO.copy(waves.get());
buildGroups();
dialog.hide();
}));
@@ -101,6 +94,14 @@ public class WaveInfoDialog extends BaseDialog{
view(1);
}
});
+
+ if(experimental){
+ buttons.button("Random", Icon.refresh, () -> {
+ groups.clear();
+ groups = Waves.generate(1f / 10f);
+ updateWaves();
+ }).width(200f);
+ }
}
void view(int amount){
@@ -124,7 +125,7 @@ public class WaveInfoDialog extends BaseDialog{
}
void setup(){
- groups = JsonIO.copy(state.rules.spawns.isEmpty() ? defaultWaves.get() : state.rules.spawns);
+ groups = JsonIO.copy(state.rules.spawns.isEmpty() ? waves.get() : state.rules.spawns);
cont.clear();
cont.stack(new Table(Tex.clear, main -> {
@@ -159,7 +160,7 @@ public class WaveInfoDialog extends BaseDialog{
t.margin(0).defaults().pad(3).padLeft(5f).growX().left();
t.button(b -> {
b.left();
- b.image(group.type.icon(mindustry.ui.Cicon.medium)).size(32f).padRight(3);
+ b.image(group.type.icon(Cicon.medium)).size(32f).padRight(3).scaling(Scaling.fit);
b.add(group.type.localizedName).color(Pal.accent);
b.add().growX();
@@ -262,7 +263,7 @@ public class WaveInfoDialog extends BaseDialog{
if(type.isHidden()) continue;
p.button(t -> {
t.left();
- t.image(type.icon(Cicon.medium)).size(40f).padRight(2f);
+ t.image(type.icon(Cicon.medium)).size(8 * 4).scaling(Scaling.fit).padRight(2f);
t.add(type.localizedName);
}, () -> {
lastType = type;
diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java
index b6c9abe807..a3dd3913f1 100644
--- a/core/src/mindustry/entities/Damage.java
+++ b/core/src/mindustry/entities/Damage.java
@@ -25,6 +25,7 @@ public class Damage{
private static Rect rect = new Rect();
private static Rect hitrect = new Rect();
private static Vec2 tr = new Vec2();
+ private static Seq units = new Seq<>();
private static GridBits bits = new GridBits(30, 30);
private static IntQueue propagation = new IntQueue();
private static IntSet collidedBlocks = new IntSet();
@@ -115,10 +116,18 @@ public class Damage{
tr.trns(angle, length);
Intc2 collider = (cx, cy) -> {
Building tile = world.build(cx, cy);
- if(tile != null && !collidedBlocks.contains(tile.pos()) && tile.team != team && tile.collide(hitter)){
- tile.collision(hitter);
- collidedBlocks.add(tile.pos());
- hitter.type.hit(hitter, tile.x, tile.y);
+ boolean collide = tile != null && collidedBlocks.add(tile.pos());
+
+ if(hitter.damage > 0){
+ if(collide && tile.team != team && tile.collide(hitter)){
+ tile.collision(hitter);
+ hitter.type.hit(hitter, tile.x, tile.y);
+ }
+
+ //try to heal the tile
+ if(collide && hitter.type.collides(hitter, tile)){
+ hitter.type.hitTile(hitter, tile, tile.health, false);
+ }
}
};
@@ -155,20 +164,27 @@ public class Damage{
rect.height += expand * 2;
Cons cons = e -> {
- if(!e.checkTarget(hitter.type.collidesAir, hitter.type.collidesGround)) return;
-
e.hitbox(hitrect);
Vec2 vec = Geometry.raycastRect(x, y, x2, y2, hitrect.grow(expand * 2));
- if(vec != null){
+ if(vec != null && hitter.damage > 0){
effect.at(vec.x, vec.y);
e.collision(hitter, vec.x, vec.y);
hitter.collision(e, vec.x, vec.y);
}
};
- Units.nearbyEnemies(team, rect, cons);
+ units.clear();
+
+ Units.nearbyEnemies(team, rect, u -> {
+ if(u.checkTarget(hitter.type.collidesAir, hitter.type.collidesGround)){
+ units.add(u);
+ }
+ });
+
+ units.sort(u -> u.dst2(hitter));
+ units.each(cons);
}
/**
@@ -402,8 +418,7 @@ public class Damage{
}
@Struct
- static
- class PropCellStruct{
+ static class PropCellStruct{
byte x;
byte y;
short damage;
diff --git a/core/src/mindustry/entities/Effect.java b/core/src/mindustry/entities/Effect.java
index 920729e608..6fa163b074 100644
--- a/core/src/mindustry/entities/Effect.java
+++ b/core/src/mindustry/entities/Effect.java
@@ -21,35 +21,46 @@ public class Effect{
private static final EffectContainer container = new EffectContainer();
private static final Seq all = new Seq<>();
- public final int id;
- public final Cons renderer;
- public final float lifetime;
- /** Clip size. */
- public float size;
+ private boolean initialized;
- public boolean ground;
- public float groundDuration;
+ public final int id;
+
+ public Cons renderer = e -> {};
+ public float lifetime = 50f;
+ /** Clip size. */
+ public float clip;
+
+ public float layer = Layer.effect;
+ public float layerDuration;
public Effect(float life, float clipsize, Cons renderer){
this.id = all.size;
this.lifetime = life;
this.renderer = renderer;
- this.size = clipsize;
+ this.clip = clipsize;
all.add(this);
}
public Effect(float life, Cons renderer){
- this(life,50f, renderer);
+ this(life, 50f, renderer);
}
- public Effect ground(){
- ground = true;
+ //for custom implementations
+ public Effect(){
+ this.id = all.size;
+ all.add(this);
+ }
+
+ public void init(){}
+
+ public Effect layer(float l){
+ layer = l;
return this;
}
- public Effect ground(float duration){
- ground = true;
- this.groundDuration = duration;
+ public Effect layer(float l, float duration){
+ layer = l;
+ this.layerDuration = duration;
return this;
}
@@ -87,14 +98,18 @@ public class Effect{
public float render(int id, Color color, float life, float lifetime, 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.z(layer);
Draw.reset();
- renderer.get(container);
+ render(container);
Draw.reset();
return container.lifetime;
}
+ public void render(EffectContainer e){
+ renderer.get(e);
+ }
+
public static @Nullable Effect get(int id){
return id >= all.size || id < 0 ? null : all.get(id);
}
@@ -122,9 +137,14 @@ public class Effect{
if(headless || effect == Fx.none) return;
if(Core.settings.getBool("effects")){
Rect view = Core.camera.bounds(Tmp.r1);
- Rect pos = Tmp.r2.setSize(effect.size).setCenter(x, y);
+ Rect pos = Tmp.r2.setSize(effect.clip).setCenter(x, y);
if(view.overlaps(pos)){
+ if(!effect.initialized){
+ effect.initialized = true;
+ effect.init();
+ }
+
EffectState entity = EffectState.create();
entity.effect = effect;
entity.rotation = rotation;
@@ -209,4 +229,4 @@ public class Effect{
}
}
-}
\ No newline at end of file
+}
diff --git a/core/src/mindustry/entities/EntityCollisions.java b/core/src/mindustry/entities/EntityCollisions.java
index b4139991a4..3425314810 100644
--- a/core/src/mindustry/entities/EntityCollisions.java
+++ b/core/src/mindustry/entities/EntityCollisions.java
@@ -115,7 +115,6 @@ public class EntityCollisions{
@SuppressWarnings("unchecked")
public void updatePhysics(EntityGroup group){
-
QuadTree tree = group.tree();
tree.clear();
@@ -141,7 +140,6 @@ public class EntityCollisions{
}
private void checkCollide(Hitboxc a, Hitboxc b){
-
a.hitbox(this.r1);
b.hitbox(this.r2);
@@ -218,7 +216,6 @@ public class EntityCollisions{
@SuppressWarnings("unchecked")
public void collide(EntityGroup groupa){
-
groupa.each(solid -> {
solid.hitbox(r1);
r1.x += (solid.lastX() - solid.getX());
diff --git a/core/src/mindustry/entities/EntityGroup.java b/core/src/mindustry/entities/EntityGroup.java
index 2135d9d6aa..6553e72d44 100644
--- a/core/src/mindustry/entities/EntityGroup.java
+++ b/core/src/mindustry/entities/EntityGroup.java
@@ -4,6 +4,7 @@ import arc.*;
import arc.func.*;
import arc.math.geom.*;
import arc.struct.*;
+import arc.util.*;
import mindustry.gen.*;
import java.util.*;
@@ -93,6 +94,7 @@ public class EntityGroup implements Iterable{
return map != null;
}
+ @Nullable
public T getByID(int id){
if(map == null) throw new RuntimeException("Mapping is not enabled for group " + id + "!");
return map.get(id);
@@ -183,16 +185,21 @@ public class EntityGroup implements Iterable{
array.each(Entityc::remove);
array.clear();
- if(map != null)
- map.clear();
+ if(map != null) map.clear();
clearing = false;
}
+ @Nullable
public T find(Boolf pred){
return array.find(pred);
}
+ @Nullable
+ public T first(){
+ return array.first();
+ }
+
@Override
public Iterator iterator(){
return array.iterator();
diff --git a/core/src/mindustry/entities/GroupDefs.java b/core/src/mindustry/entities/GroupDefs.java
index 60bdbb5fd3..3ddef67d65 100644
--- a/core/src/mindustry/entities/GroupDefs.java
+++ b/core/src/mindustry/entities/GroupDefs.java
@@ -11,5 +11,6 @@ class GroupDefs{
@GroupDef(value = Buildingc.class) G build;
@GroupDef(value = Syncc.class, mapping = true) G sync;
@GroupDef(value = Drawc.class) G draw;
+ @GroupDef(value = Firec.class) G fire;
@GroupDef(value = WeatherStatec.class) G weather;
}
diff --git a/core/src/mindustry/entities/Lightning.java b/core/src/mindustry/entities/Lightning.java
index 2d647bfb1e..61f42f2e72 100644
--- a/core/src/mindustry/entities/Lightning.java
+++ b/core/src/mindustry/entities/Lightning.java
@@ -4,6 +4,7 @@ import arc.graphics.*;
import arc.math.*;
import arc.math.geom.*;
import arc.struct.*;
+import arc.util.*;
import mindustry.content.*;
import mindustry.core.*;
import mindustry.entities.bullet.*;
@@ -33,16 +34,16 @@ public class Lightning{
createLightningInternal(bullet, lastSeed++, bullet.team, color, damage, x, y, targetAngle, length);
}
- private static void createLightningInternal(Bullet hitter, int seed, Team team, Color color, float damage, float x, float y, float rotation, int length){
+ private static void createLightningInternal(@Nullable Bullet hitter, int seed, Team team, Color color, float damage, float x, float y, float rotation, int length){
random.setSeed(seed);
hit.clear();
- BulletType bulletType = hitter != null && !hitter.type.collidesAir ? Bullets.damageLightningGround : Bullets.damageLightning;
+ BulletType hitCreate = hitter == null || hitter.type.lightningType == null ? Bullets.damageLightning : hitter.type.lightningType;
Seq lines = new Seq<>();
bhit = false;
for(int i = 0; i < length / 2; i++){
- bulletType.create(null, team, x, y, 0f, damage, 1f, 1f, hitter);
+ hitCreate.create(null, team, x, y, 0f, damage, 1f, 1f, hitter);
lines.add(new Vec2(x + Mathf.range(3f), y + Mathf.range(3f)));
if(lines.size > 1){
diff --git a/core/src/mindustry/entities/Predict.java b/core/src/mindustry/entities/Predict.java
index 03c41e5778..4186ef4bbb 100644
--- a/core/src/mindustry/entities/Predict.java
+++ b/core/src/mindustry/entities/Predict.java
@@ -53,13 +53,13 @@ public class Predict{
public static Vec2 intercept(Position src, Position dst, float v){
float ddx = 0, ddy = 0;
- if(dst instanceof Hitboxc){
- ddx += ((Hitboxc)dst).deltaX();
- ddy += ((Hitboxc)dst).deltaY();
+ if(dst instanceof Hitboxc h){
+ ddx += h.deltaX();
+ ddy += h.deltaY();
}
- if(src instanceof Hitboxc){
- ddx -= ((Hitboxc)src).deltaX()/(Time.delta);
- ddy -= ((Hitboxc)src).deltaY()/(Time.delta);
+ if(src instanceof Hitboxc h){
+ ddx -= h.deltaX()/(Time.delta);
+ ddy -= h.deltaY()/(Time.delta);
}
return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), ddx, ddy, v);
}
diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java
index e4591a0ed0..cd602327a6 100644
--- a/core/src/mindustry/entities/Units.java
+++ b/core/src/mindustry/entities/Units.java
@@ -197,7 +197,7 @@ public class Units{
cdist = 0f;
nearbyEnemies(team, x - range, y - range, range*2f, range*2f, e -> {
- if(e.dead() || !predicate.get(e)) return;
+ if(e.dead() || !predicate.get(e) || e.team == Team.derelict) return;
float dst2 = e.dst2(x, y);
if(dst2 < range*range && (result == null || dst2 < cdist)){
diff --git a/core/src/mindustry/entities/abilities/MoveLightningAbility.java b/core/src/mindustry/entities/abilities/MoveLightningAbility.java
new file mode 100644
index 0000000000..17d3eaa23a
--- /dev/null
+++ b/core/src/mindustry/entities/abilities/MoveLightningAbility.java
@@ -0,0 +1,46 @@
+package mindustry.entities.abilities;
+
+import arc.graphics.*;
+import arc.math.*;
+import arc.util.*;
+import arc.audio.*;
+import mindustry.content.*;
+import mindustry.entities.*;
+import mindustry.gen.*;
+
+public class MoveLightningAbility extends Ability{
+ //Lightning damage
+ public float damage = 35f;
+ //Chance of firing every tick. Set >= 1 to always fire lightning every tick at max speed.
+ public float chance = 0.15f;
+ //Length of the lightning
+ public int length = 12;
+ //Speeds for when to start lightninging and when to stop getting faster
+ public float minSpeed = 0.8f, maxSpeed = 1.2f;
+ //Lightning color
+ public Color color = Color.valueOf("a9d8ff");
+
+ public Effect shootEffect = Fx.sparkShoot;
+ public Sound shootSound = Sounds.spark;
+
+ MoveLightningAbility(){}
+
+ public MoveLightningAbility(float damage, int length, float chance, float minSpeed, float maxSpeed, Color color){
+ this.damage = damage;
+ this.length = length;
+ this.chance = chance;
+ this.minSpeed = minSpeed;
+ this.maxSpeed = maxSpeed;
+ this.color = color;
+ }
+
+ @Override
+ public void update(Unit unit){
+ float scl = Mathf.clamp((unit.vel().len() - minSpeed) / (maxSpeed - minSpeed));
+ if(Mathf.chance(Time.delta * chance * scl)){
+ shootEffect.at(unit.x, unit.y, unit.rotation, color);
+ Lightning.create(unit.team, color, damage, unit.x + unit.vel.x, unit.y + unit.vel.y, unit.rotation, length);
+ shootSound.at(unit);
+ }
+ }
+}
diff --git a/core/src/mindustry/entities/abilities/StatusFieldAbility.java b/core/src/mindustry/entities/abilities/StatusFieldAbility.java
index 857cfde5cf..a1bf47d408 100644
--- a/core/src/mindustry/entities/abilities/StatusFieldAbility.java
+++ b/core/src/mindustry/entities/abilities/StatusFieldAbility.java
@@ -28,7 +28,6 @@ public class StatusFieldAbility extends Ability{
timer += Time.delta;
if(timer >= reload){
-
Units.nearby(unit.team, unit.x, unit.y, range, other -> {
other.apply(effect, duration);
});
diff --git a/core/src/mindustry/entities/abilities/UnitSpawnAbility.java b/core/src/mindustry/entities/abilities/UnitSpawnAbility.java
index 95eb3bcf5b..422a02bbba 100644
--- a/core/src/mindustry/entities/abilities/UnitSpawnAbility.java
+++ b/core/src/mindustry/entities/abilities/UnitSpawnAbility.java
@@ -12,6 +12,8 @@ import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.ui.*;
+import static mindustry.Vars.*;
+
public class UnitSpawnAbility extends Ability{
public UnitType type;
public float spawnTime = 60f, spawnX, spawnY;
@@ -31,10 +33,9 @@ public class UnitSpawnAbility extends Ability{
@Override
public void update(Unit unit){
- timer += Time.delta;
+ timer += Time.delta * state.rules.unitBuildSpeedMultiplier;
if(timer >= spawnTime && Units.canCreate(unit.team, type)){
-
float x = unit.x + Angles.trnsx(unit.rotation, spawnY, spawnX), y = unit.y + Angles.trnsy(unit.rotation, spawnY, spawnX);
spawnEffect.at(x, y);
Unit u = type.create(unit.team);
diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java
index 8e06cf466e..f3d09de8ed 100644
--- a/core/src/mindustry/entities/bullet/BulletType.java
+++ b/core/src/mindustry/entities/bullet/BulletType.java
@@ -79,8 +79,10 @@ public abstract class BulletType extends Content{
public boolean backMove = true;
/** Bullet range override. */
public float range = -1f;
- /** Heal Bullet Percent **/
+ /** % of block health healed **/
public float healPercent = 0f;
+ /** whether to make fire on impact */
+ public boolean makeFire = false;
//additional effects
@@ -114,6 +116,8 @@ public abstract class BulletType extends Content{
public float lightningDamage = -1;
public float lightningCone = 360f;
public float lightningAngle = 0f;
+ /** The bullet created at lightning points. */
+ public @Nullable BulletType lightningType = null;
public float weaveScale = 1f;
public float weaveMag = -1f;
@@ -157,15 +161,18 @@ public abstract class BulletType extends Content{
return healPercent <= 0.001f || tile.team != bullet.team || tile.healthf() < 1f;
}
- public void hitTile(Bullet b, Building tile, float initialHealth){
- if(status == StatusEffects.burning) {
- Fires.create(tile.tile);
+ /** If direct is false, this is an indirect hit and the tile was already damaged.
+ * TODO this is a mess. */
+ public void hitTile(Bullet b, Building build, float initialHealth, boolean direct){
+ if(makeFire && build.team != b.team){
+ Fires.create(build.tile);
}
- hit(b);
- if(healPercent > 0f && 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());
+ if(healPercent > 0f && build.team == b.team && !(build.block instanceof ConstructBlock)){
+ Fx.healBlockFull.at(build.x, build.y, build.block.size, Pal.heal);
+ build.heal(healPercent / 100f * build.maxHealth());
+ }else if(build.team != b.team && direct){
+ hit(b);
}
}
@@ -202,21 +209,21 @@ public abstract class BulletType extends Content{
Damage.createIncend(x, y, incendSpread, incendAmount);
}
- if(splashDamageRadius > 0){
+ if(splashDamageRadius > 0 && !b.absorbed){
Damage.damage(b.team, x, y, splashDamageRadius, splashDamage * b.damageMultiplier(), collidesAir, collidesGround);
if(status != StatusEffects.none){
Damage.status(b.team, x, y, splashDamageRadius, status, statusDuration, collidesAir, collidesGround);
}
-
- if(healPercent > 0f) {
- indexer.eachBlock(b.team, x, y, splashDamageRadius, other -> other.damaged(), other -> {
+
+ if(healPercent > 0f){
+ indexer.eachBlock(b.team, x, y, splashDamageRadius, Building::damaged, other -> {
Fx.healBlockFull.at(other.x, other.y, other.block.size, Pal.heal);
other.heal(healPercent / 100f * other.maxHealth());
});
}
- if(status == StatusEffects.burning) {
+ if(makeFire){
indexer.eachBlock(null, x, y, splashDamageRadius, other -> other.team != b.team, other -> {
Fires.create(other.tile);
});
@@ -247,13 +254,9 @@ public abstract class BulletType extends Content{
}
public void init(Bullet b){
- if(pierceCap >= 1) {
- pierce = true;
- //pierceBuilding is not enabled by default, because a bullet may want to *not* pierce buildings
- }
- if(killShooter && b.owner() instanceof Healthc){
- ((Healthc)b.owner()).kill();
+ if(killShooter && b.owner() instanceof Healthc h){
+ h.kill();
}
if(instantDisappear){
@@ -280,6 +283,18 @@ public abstract class BulletType extends Content{
}
}
+ @Override
+ public void init(){
+ if(pierceCap >= 1){
+ pierce = true;
+ //pierceBuilding is not enabled by default, because a bullet may want to *not* pierce buildings
+ }
+
+ if(lightningType == null){
+ lightningType = !collidesAir ? Bullets.damageLightningGround : Bullets.damageLightning;
+ }
+ }
+
@Override
public ContentType getContentType(){
return ContentType.bullet;
diff --git a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java
index 4c52105b26..3e570c6309 100644
--- a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java
+++ b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java
@@ -13,6 +13,8 @@ public class ContinuousLaserBulletType extends BulletType{
public float length = 220f;
public float shake = 1f;
public float fadeTime = 16f;
+ public float lightStroke = 40f;
+ public float spaceMag = 35f;
public Color[] colors = {Color.valueOf("ec745855"), Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.white};
public float[] tscales = {1f, 0.7f, 0.5f, 0.2f};
public float[] strokes = {2f, 1.5f, 1f, 0.3f};
@@ -28,15 +30,15 @@ public class ContinuousLaserBulletType extends BulletType{
hitSize = 4;
drawSize = 420f;
lifetime = 16f;
- keepVelocity = false;
- pierce = true;
- hittable = false;
hitColor = colors[2];
- collidesTiles = false;
incendAmount = 1;
incendSpread = 5;
incendChance = 0.4f;
lightColor = Color.orange;
+ keepVelocity = false;
+ collides = false;
+ pierce = true;
+ hittable = false;
absorbable = false;
}
@@ -85,7 +87,7 @@ public class ContinuousLaserBulletType extends BulletType{
for(int s = 0; s < colors.length; s++){
Draw.color(Tmp.c1.set(colors[s]).mul(1f + Mathf.absin(Time.time(), 1f, 0.1f)));
for(int i = 0; i < tscales.length; i++){
- Tmp.v1.trns(b.rotation() + 180f, (lenscales[i] - 1f) * 35f);
+ Tmp.v1.trns(b.rotation() + 180f, (lenscales[i] - 1f) * spaceMag);
Lines.stroke((width + Mathf.absin(Time.time(), oscScl, oscMag)) * fout * strokes[s] * tscales[i]);
Lines.lineAngle(b.x + Tmp.v1.x, b.y + Tmp.v1.y, b.rotation(), baseLen * lenscales[i], false);
}
@@ -93,7 +95,7 @@ public class ContinuousLaserBulletType extends BulletType{
Tmp.v1.trns(b.rotation(), baseLen * 1.1f);
- Drawf.light(b.team, b.x, b.y, b.x + Tmp.v1.x, b.y + Tmp.v1.y, 40, lightColor, 0.7f);
+ Drawf.light(b.team, b.x, b.y, b.x + Tmp.v1.x, b.y + Tmp.v1.y, lightStroke, lightColor, 0.7f);
Draw.reset();
}
diff --git a/core/src/mindustry/entities/bullet/LaserBulletType.java b/core/src/mindustry/entities/bullet/LaserBulletType.java
index 6d43baf95c..25e8fbfb67 100644
--- a/core/src/mindustry/entities/bullet/LaserBulletType.java
+++ b/core/src/mindustry/entities/bullet/LaserBulletType.java
@@ -23,16 +23,17 @@ public class LaserBulletType extends BulletType{
public LaserBulletType(float damage){
super(0.01f, damage);
- keepVelocity = false;
hitEffect = Fx.hitLancer;
despawnEffect = Fx.none;
shootEffect = Fx.hitLancer;
smokeEffect = Fx.none;
- collides = false;
hitSize = 4;
lifetime = 16f;
+ keepVelocity = false;
+ collides = false;
pierce = true;
hittable = false;
+ absorbable = false;
}
public LaserBulletType(){
diff --git a/core/src/mindustry/entities/bullet/LightningBulletType.java b/core/src/mindustry/entities/bullet/LightningBulletType.java
index dbfbcc0301..585737f758 100644
--- a/core/src/mindustry/entities/bullet/LightningBulletType.java
+++ b/core/src/mindustry/entities/bullet/LightningBulletType.java
@@ -26,6 +26,11 @@ public class LightningBulletType extends BulletType{
return (lightningLength + lightningLengthRand/2f) * 6f;
}
+ @Override
+ public float estimateDPS(){
+ return super.estimateDPS() * Math.max(lightningLength / 4f, 1);
+ }
+
@Override
public void draw(Bullet b){
}
diff --git a/core/src/mindustry/entities/bullet/RailBulletType.java b/core/src/mindustry/entities/bullet/RailBulletType.java
index 8265f35e8b..dfc6f8d0ae 100644
--- a/core/src/mindustry/entities/bullet/RailBulletType.java
+++ b/core/src/mindustry/entities/bullet/RailBulletType.java
@@ -1,5 +1,7 @@
package mindustry.entities.bullet;
+import arc.math.geom.*;
+import arc.util.*;
import mindustry.content.*;
import mindustry.entities.*;
import mindustry.gen.*;
@@ -15,36 +17,54 @@ public class RailBulletType extends BulletType{
/** Multiplier of damage decreased per health pierced. */
public float pierceDamageFactor = 1f;
+ public float length = 100f;
+
+ public float updateEffectSeg = 20f;
+
public RailBulletType(){
pierceBuilding = true;
pierce = true;
reflectable = false;
hitEffect = Fx.none;
despawnEffect = Fx.none;
+ collides = false;
+ lifetime = 1f;
+ }
+
+ @Override
+ public float range(){
+ return length;
}
void handle(Bullet b, Posc pos, float initialHealth){
float sub = initialHealth*pierceDamageFactor;
- if(sub >= b.damage){
- //cause a despawn
- b.remove();
+ if(b.damage <= 0){
+ b.fdata = Math.min(b.fdata, b.dst(pos));
+ return;
+ }
+
+ if(b.damage > 0){
+ pierceEffect.at(pos.getX(), pos.getY(), b.rotation());
+
+ hitEffect.at(pos.getX(), pos.getY());
}
//subtract health from each consecutive pierce
b.damage -= Math.min(b.damage, sub);
-
- if(b.damage > 0){
- pierceEffect.at(pos.getX(), pos.getY(), b.rotation());
- }
-
- hitEffect.at(pos.getX(), pos.getY());
}
@Override
- public void update(Bullet b){
- if(b.timer(1, 0.9f)){
- updateEffect.at(b.x, b.y, b.rotation());
+ public void init(Bullet b){
+ super.init(b);
+
+ b.fdata = length;
+ Damage.collideLine(b, b.team, b.type.hitEffect, b.x, b.y, b.rotation(), length, false);
+ float resultLen = b.fdata;
+
+ Vec2 nor = Tmp.v1.set(b.vel).nor();
+ for(float i = 0; i <= resultLen; i += updateEffectSeg){
+ updateEffect.at(b.x + nor.x * i, b.y + nor.y * i, b.rotation());
}
}
@@ -54,7 +74,7 @@ public class RailBulletType extends BulletType{
}
@Override
- public void hitTile(Bullet b, Building tile, float initialHealth){
- handle(b, tile, initialHealth);
+ public void hitTile(Bullet b, Building build, float initialHealth, boolean direct){
+ handle(b, build, initialHealth);
}
}
diff --git a/core/src/mindustry/entities/bullet/SapBulletType.java b/core/src/mindustry/entities/bullet/SapBulletType.java
index 5eb1d1e294..9d05a37e9a 100644
--- a/core/src/mindustry/entities/bullet/SapBulletType.java
+++ b/core/src/mindustry/entities/bullet/SapBulletType.java
@@ -19,7 +19,8 @@ public class SapBulletType extends BulletType{
public SapBulletType(){
speed = 0.0001f;
despawnEffect = Fx.none;
- pierce = true;
+ pierce = false;
+ collides = false;
hitSize = 0f;
hittable = false;
hitEffect = Fx.hitLiquid;
@@ -62,17 +63,15 @@ public class SapBulletType extends BulletType{
if(target != null){
float result = Math.min(target.health(), damage);
- if(b.owner instanceof Healthc){
- ((Healthc)b.owner).heal(result * sapStrength);
+ if(b.owner instanceof Healthc h){
+ h.heal(result * sapStrength);
}
}
if(target instanceof Hitboxc hit){
-
hit.collision(b, hit.x(), hit.y());
b.collision(hit, hit.x(), hit.y());
}else if(target instanceof Building tile){
-
if(tile.collide(b)){
tile.collision(b);
hit(b, tile.x, tile.y);
diff --git a/core/src/mindustry/entities/bullet/ShrapnelBulletType.java b/core/src/mindustry/entities/bullet/ShrapnelBulletType.java
index 01a7ad2d7e..236ede8887 100644
--- a/core/src/mindustry/entities/bullet/ShrapnelBulletType.java
+++ b/core/src/mindustry/entities/bullet/ShrapnelBulletType.java
@@ -24,9 +24,11 @@ public class ShrapnelBulletType extends BulletType{
shootEffect = smokeEffect = Fx.lightningShoot;
lifetime = 10f;
despawnEffect = Fx.none;
- pierce = true;
keepVelocity = false;
+ collides = false;
+ pierce = true;
hittable = false;
+ absorbable = false;
}
@Override
diff --git a/core/src/mindustry/entities/comp/BuilderComp.java b/core/src/mindustry/entities/comp/BuilderComp.java
index 0ef4d8bed0..12fd9e8029 100644
--- a/core/src/mindustry/entities/comp/BuilderComp.java
+++ b/core/src/mindustry/entities/comp/BuilderComp.java
@@ -13,6 +13,7 @@ import mindustry.entities.units.*;
import mindustry.game.EventType.*;
import mindustry.gen.*;
import mindustry.graphics.*;
+import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.*;
import mindustry.world.blocks.ConstructBlock.*;
@@ -22,20 +23,24 @@ import java.util.*;
import static mindustry.Vars.*;
@Component
-abstract class BuilderComp implements Unitc{
+abstract class BuilderComp implements Posc, Teamc, Rotc{
static final Vec2[] vecs = new Vec2[]{new Vec2(), new Vec2(), new Vec2(), new Vec2()};
@Import float x, y, rotation;
+ @Import UnitType type;
- @SyncLocal Queue plans = new Queue<>();
+ @SyncLocal Queue plans = new Queue<>(1);
@SyncLocal transient boolean updateBuilding = true;
+ public boolean canBuild(){
+ return type.buildSpeed > 0;
+ }
+
@Override
public void update(){
- if(!updateBuilding) return;
+ if(!updateBuilding || !canBuild()) return;
float finalPlaceDst = state.rules.infiniteResources ? Float.MAX_VALUE : buildingRange;
-
boolean infinite = state.rules.infiniteResources || team().rules().infiniteResources;
Iterator it = plans.iterator();
@@ -69,10 +74,6 @@ abstract class BuilderComp implements Unitc{
Tile tile = world.tile(current.x, current.y);
- if(within(tile, finalPlaceDst)){
- lookAt(angleTo(tile));
- }
-
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));
@@ -107,9 +108,9 @@ abstract class BuilderComp implements Unitc{
ConstructBuild entity = tile.bc();
if(current.breaking){
- entity.deconstruct(self(), core, 1f / entity.buildCost * Time.delta * type().buildSpeed * state.rules.buildSpeedMultiplier);
+ entity.deconstruct(self(), core, 1f / entity.buildCost * Time.delta * type.buildSpeed * state.rules.buildSpeedMultiplier);
}else{
- entity.construct(self(), core, 1f / entity.buildCost * Time.delta * type().buildSpeed * state.rules.buildSpeedMultiplier, current.config);
+ entity.construct(self(), core, 1f / entity.buildCost * Time.delta * type.buildSpeed * state.rules.buildSpeedMultiplier, current.config);
}
current.stuck = Mathf.equal(current.progress, entity.progress);
@@ -166,6 +167,8 @@ abstract class BuilderComp implements Unitc{
/** Add another build requests to the queue, if it doesn't exist there yet. */
void addBuild(BuildPlan place, boolean tail){
+ if(!canBuild()) return;
+
BuildPlan replace = null;
for(BuildPlan request : plans){
if(request.x == place.x && request.y == place.y){
@@ -188,6 +191,10 @@ abstract class BuilderComp implements Unitc{
}
boolean activelyBuilding(){
+ //not actively building when not near the build plan
+ if(isBuilding() && !within(buildPlan(), state.rules.infiniteResources ? Float.MAX_VALUE : buildingRange)){
+ return false;
+ }
return isBuilding() && updateBuilding;
}
@@ -197,9 +204,8 @@ abstract class BuilderComp implements Unitc{
return plans.size == 0 ? null : plans.first();
}
- @Override
public void draw(){
- if(!isBuilding() || !updateBuilding) return;
+ if(!isBuilding() || !updateBuilding || !canBuild()) return;
//TODO check correctness
Draw.z(Layer.flyingUnit);
diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java
index 84b6160d25..fca91f0417 100644
--- a/core/src/mindustry/entities/comp/BuildingComp.java
+++ b/core/src/mindustry/entities/comp/BuildingComp.java
@@ -29,6 +29,7 @@ import mindustry.logic.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.*;
+import mindustry.world.blocks.*;
import mindustry.world.blocks.ConstructBlock.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.payloads.*;
@@ -106,8 +107,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
this.block = block;
this.team = team;
- if(block.activeSound != Sounds.none){
- sound = new SoundLoop(block.activeSound, block.activeSoundVolume);
+ if(block.loopSound != Sounds.none){
+ sound = new SoundLoop(block.loopSound, block.loopSoundVolume);
}
health = block.health;
@@ -518,6 +519,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public void dumpLiquid(Liquid liquid){
int dump = this.cdump;
+ if(!net.client() && state.isCampaign() && team == state.rules.defaultTeam) liquid.unlock();
+
for(int i = 0; i < proximity.size; i++){
incrementDump(proximity.size);
Building other = proximity.get((i + dump) % proximity.size);
@@ -617,6 +620,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
*/
public void offload(Item item){
int dump = this.cdump;
+ if(!net.client() && state.isCampaign() && team == state.rules.defaultTeam) item.unlock();
for(int i = 0; i < proximity.size; i++){
incrementDump(proximity.size);
@@ -780,7 +784,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
/** @return whether this block should play its idle sound.*/
- public boolean shouldIdleSound(){
+ public boolean shouldAmbientSound(){
return shouldConsume();
}
@@ -869,7 +873,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public void placed(){
if(net.client()) return;
- if((block.consumesPower && !block.outputsPower) || (!block.consumesPower && block.outputsPower)){
+ if(block.consumesPower || block.outputsPower){
int range = 10;
tempTiles.clear();
Geometry.circle(tileX(), tileY(), range, (x, y) -> {
@@ -1118,7 +1122,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
/** Returns whether or not a hand cursor should be shown over this block. */
public Cursor getCursor(){
- return block.configurable ? SystemCursor.hand : SystemCursor.arrow;
+ return block.configurable && team == player.team() ? SystemCursor.hand : SystemCursor.arrow;
}
/**
@@ -1225,6 +1229,11 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
+ /** @return ambient sound volume scale. */
+ public float ambientVolume(){
+ return efficiency();
+ }
+
//endregion
//region overrides
@@ -1285,6 +1294,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
case powerNetStored -> power == null ? 0 : power.graph.getLastPowerStored();
case powerNetCapacity -> power == null ? 0 : power.graph.getLastCapacity();
case enabled -> enabled ? 1 : 0;
+ case controlled -> this instanceof ControlBlock c ? c.isControlled() ? 1 : 0 : 0;
case payloadCount -> getPayload() != null ? 1 : 0;
default -> 0;
};
@@ -1319,7 +1329,14 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
@Override
public void control(LAccess type, Object p1, double p2, double p3, double p4){
-
+ //don't execute configure instructions as the client
+ if(type == LAccess.configure && block.logicConfigurable && !net.client()){
+ //change config only if it's new
+ Object prev = senseObject(LAccess.config);
+ if(prev != p1){
+ configureAny(p1);
+ }
+ }
}
@Override
@@ -1341,6 +1358,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
@Final
@Override
public void update(){
+ if(state.isEditor()) return;
+
timeScaleDuration -= Time.delta;
if(timeScaleDuration <= 0f || !block.canOverdrive){
timeScale = 1f;
@@ -1354,12 +1373,18 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
}
- if(sound != null){
- sound.update(x, y, shouldActiveSound());
+ if(team == Team.derelict){
+ enabled = false;
}
- if(block.idleSound != Sounds.none && shouldIdleSound()){
- loops.play(block.idleSound, self(), block.idleSoundVolume);
+ if(!headless){
+ if(sound != null){
+ sound.update(x, y, shouldActiveSound());
+ }
+
+ if(block.ambientSound != Sounds.none && shouldAmbientSound()){
+ control.sound.loop(block.ambientSound, self(), block.ambientSoundVolume * ambientVolume());
+ }
}
if(enabled || !block.noUpdateDisabled){
diff --git a/core/src/mindustry/entities/comp/BulletComp.java b/core/src/mindustry/entities/comp/BulletComp.java
index 5a08710762..318f66facd 100644
--- a/core/src/mindustry/entities/comp/BulletComp.java
+++ b/core/src/mindustry/entities/comp/BulletComp.java
@@ -1,5 +1,6 @@
package mindustry.entities.comp;
+import arc.*;
import arc.func.*;
import arc.graphics.g2d.*;
import arc.math.*;
@@ -9,10 +10,12 @@ import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.core.*;
import mindustry.entities.bullet.*;
+import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.game.Teams.*;
import mindustry.gen.*;
import mindustry.graphics.*;
+import mindustry.world.blocks.defense.Wall.*;
import static mindustry.Vars.*;
@@ -27,6 +30,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
Object data;
BulletType type;
float fdata;
+ transient boolean absorbed;
@Override
public void getCollisions(Cons consumer){
@@ -64,6 +68,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
@Override
public void absorb(){
+ absorbed = true;
remove();
}
@@ -104,6 +109,10 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
}
type.hitEntity(self(), other, health);
+
+ if(owner instanceof WallBuild && player != null && team != player.team() && other instanceof Unit unit && unit.dead){
+ Events.fire(Trigger.phaseDeflectHit);
+ }
}
@Override
@@ -133,7 +142,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
}
}
- type.hitTile(self(), tile, health);
+ type.hitTile(self(), tile, health, true);
return !type.pierceBuilding;
}
@@ -142,7 +151,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
});
}
- if(type.pierceCap != -1 && collided.size >= type.pierceCap) {
+ if(type.pierceCap != -1 && collided.size >= type.pierceCap){
remove();
}
}
diff --git a/core/src/mindustry/entities/comp/CommanderComp.java b/core/src/mindustry/entities/comp/CommanderComp.java
index 2fe2bf83a0..0ce8d60d10 100644
--- a/core/src/mindustry/entities/comp/CommanderComp.java
+++ b/core/src/mindustry/entities/comp/CommanderComp.java
@@ -29,9 +29,14 @@ abstract class CommanderComp implements Entityc, Posc{
transient float minFormationSpeed;
public void update(){
+ if(controlling.isEmpty()){
+ formation = null;
+ }
+
if(formation != null){
formation.anchor.set(x, y, 0);
formation.updateSlots();
+ controlling.removeAll(u -> u.dead || !(u.controller() instanceof FormationAI ai && ai.leader == self()));
}
}
@@ -64,6 +69,8 @@ abstract class CommanderComp implements Entityc, Posc{
}
});
+ if(units.isEmpty()) return;
+
//sort by hitbox size, then by distance
units.sort(Structs.comps(Structs.comparingFloat(u -> -u.hitSize), Structs.comparingFloat(u -> u.dst2(this))));
units.truncate(type.commandLimit);
diff --git a/core/src/mindustry/entities/comp/EffectStateComp.java b/core/src/mindustry/entities/comp/EffectStateComp.java
index 776a696049..7238ea0728 100644
--- a/core/src/mindustry/entities/comp/EffectStateComp.java
+++ b/core/src/mindustry/entities/comp/EffectStateComp.java
@@ -22,6 +22,6 @@ abstract class EffectStateComp implements Posc, Drawc, Timedc, Rotc, Childc{
@Replace
public float clipSize(){
- return effect.size;
+ return effect.clip;
}
}
diff --git a/core/src/mindustry/entities/comp/FireComp.java b/core/src/mindustry/entities/comp/FireComp.java
index 84fcb6b3b5..43fc3cdae9 100644
--- a/core/src/mindustry/entities/comp/FireComp.java
+++ b/core/src/mindustry/entities/comp/FireComp.java
@@ -34,8 +34,8 @@ abstract class FireComp implements Timedc, Posc, Firec, Syncc{
Fx.fireSmoke.at(x + Mathf.range(4f), y + Mathf.range(4f));
}
- if(Mathf.chance(0.001 * Time.delta)){
- Sounds.fire.at(this);
+ if(!headless){
+ control.sound.loop(Sounds.fire, this, 0.07f);
}
time = Mathf.clamp(time + Time.delta, 0, lifetime());
diff --git a/core/src/mindustry/entities/comp/FlyingComp.java b/core/src/mindustry/entities/comp/FlyingComp.java
index 0c8c2f0277..be7b003baa 100644
--- a/core/src/mindustry/entities/comp/FlyingComp.java
+++ b/core/src/mindustry/entities/comp/FlyingComp.java
@@ -75,10 +75,14 @@ abstract class FlyingComp implements Posc, Velc, Healthc, Hitboxc{
wasFlying = isFlying();
}
- if(!hovering && isGrounded() && floor.isLiquid){
+ if(!hovering && isGrounded()){
if((splashTimer += Mathf.dst(deltaX(), deltaY())) >= (7f + hitSize()/8f)){
floor.walkEffect.at(x, y, hitSize() / 8f, floor.mapColor);
splashTimer = 0f;
+
+ if(!(this instanceof WaterMovec)){
+ floor.walkSound.at(x, y, Mathf.random(floor.walkSoundPitchMin, floor.walkSoundPitchMax), floor.walkSoundVolume);
+ }
}
}
diff --git a/core/src/mindustry/entities/comp/LaunchCoreComp.java b/core/src/mindustry/entities/comp/LaunchCoreComp.java
index 7283a9e220..4f642c8493 100644
--- a/core/src/mindustry/entities/comp/LaunchCoreComp.java
+++ b/core/src/mindustry/entities/comp/LaunchCoreComp.java
@@ -73,4 +73,4 @@ abstract class LaunchCoreComp implements Drawc, Timedc{
Fx.rocketSmokeLarge.at(cx() + Mathf.range(r), cy() + Mathf.range(r), fin());
}
}
-}
\ No newline at end of file
+}
diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java
index e6022ed91e..8ddb4793e4 100644
--- a/core/src/mindustry/entities/comp/LegsComp.java
+++ b/core/src/mindustry/entities/comp/LegsComp.java
@@ -112,6 +112,7 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{
Floor floor = Vars.world.floorWorld(l.base.x, l.base.y);
if(floor.isLiquid){
floor.walkEffect.at(l.base.x, l.base.y, type.rippleScale, floor.mapColor);
+ floor.walkSound.at(x, y, 1f, floor.walkSoundVolume);
}else{
Fx.unitLandSmall.at(l.base.x, l.base.y, type.rippleScale, floor.mapColor);
}
diff --git a/core/src/mindustry/entities/comp/MechComp.java b/core/src/mindustry/entities/comp/MechComp.java
index 94bb380c96..2d6f7441b6 100644
--- a/core/src/mindustry/entities/comp/MechComp.java
+++ b/core/src/mindustry/entities/comp/MechComp.java
@@ -39,7 +39,7 @@ abstract class MechComp implements Posc, Flyingc, Hitboxc, Unitc, Mechc, Elevati
float lastExtend = walkExtension;
- if(extendScl < lastExtend && base % 2f > 1f){
+ if(extendScl < lastExtend && base % 2f > 1f && !isFlying()){
int side = -Mathf.sign(extend);
float width = hitSize / 2f * side, length = type.mechStride * 1.35f;
diff --git a/core/src/mindustry/entities/comp/MinerComp.java b/core/src/mindustry/entities/comp/MinerComp.java
index 764e6ed4d3..9368918d8c 100644
--- a/core/src/mindustry/entities/comp/MinerComp.java
+++ b/core/src/mindustry/entities/comp/MinerComp.java
@@ -16,8 +16,8 @@ import mindustry.world.*;
import static mindustry.Vars.*;
@Component
-abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{
- @Import float x, y, rotation;
+abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{
+ @Import float x, y, rotation, hitSize;
@Import UnitType type;
transient float mineTimer;
@@ -28,16 +28,24 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{
}
public boolean offloadImmediately(){
- return isPlayer();
+ return this.self().isPlayer();
}
boolean mining(){
- return mineTile != null && !(((Object)this) instanceof Builderc && ((Builderc)(Object)this).activelyBuilding());
+ return mineTile != null && !this.self().activelyBuilding();
+ }
+
+ public boolean validMine(Tile tile, boolean checkDst){
+ return !(tile == null || tile.block() != Blocks.air || (!within(tile.worldx(), tile.worldy(), miningRange) && checkDst)
+ || tile.drop() == null || !canMine(tile.drop()));
}
public boolean validMine(Tile tile){
- return !(tile == null || tile.block() != Blocks.air || !within(tile.worldx(), tile.worldy(), miningRange)
- || tile.drop() == null || !canMine(tile.drop()));
+ return validMine(tile, true);
+ }
+
+ public boolean canMine(){
+ return type.mineSpeed > 0 && type.mineTier >= 0;
}
@Override
@@ -59,7 +67,6 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{
mineTimer = 0f;
}else if(mining()){
Item item = mineTile.drop();
- lookAt(angleTo(mineTile.worldx(), mineTile.worldy()));
mineTimer += Time.delta *type.mineSpeed;
if(Mathf.chance(0.06 * Time.delta)){
@@ -85,14 +92,16 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc, Unitc{
}
}
-
+ if(!headless){
+ control.sound.loop(type.mineSound, this, type.mineSoundVolume);
+ }
}
}
@Override
public void draw(){
if(!mining()) return;
- float focusLen = 4f + Mathf.absin(Time.time(), 1.1f, 0.5f);
+ float focusLen = hitSize / 2f + Mathf.absin(Time.time(), 1.1f, 0.5f);
float swingScl = 12f, swingMag = tilesize / 8f;
float flashScl = 0.3f;
diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java
index e2945d08f7..c89dc2b10b 100644
--- a/core/src/mindustry/entities/comp/PayloadComp.java
+++ b/core/src/mindustry/entities/comp/PayloadComp.java
@@ -1,5 +1,6 @@
package mindustry.entities.comp;
+import arc.*;
import arc.math.*;
import arc.struct.*;
import arc.util.*;
@@ -8,6 +9,7 @@ import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.core.*;
import mindustry.entities.*;
+import mindustry.game.EventType.*;
import mindustry.gen.*;
import mindustry.type.*;
import mindustry.world.*;
@@ -52,12 +54,14 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
if(Vars.net.client()){
Vars.netClient.clearRemovedEntity(unit.id);
}
+ Events.fire(new PickupEvent(self(), unit));
}
void pickup(Building tile){
tile.tile.remove();
payloads.add(new BuildPayload(tile));
Fx.unitPickup.at(tile);
+ Events.fire(new PickupEvent(self(), tile));
}
boolean dropLastPayload(){
diff --git a/core/src/mindustry/entities/comp/PlayerComp.java b/core/src/mindustry/entities/comp/PlayerComp.java
index 736a1b68e5..0f8236377c 100644
--- a/core/src/mindustry/entities/comp/PlayerComp.java
+++ b/core/src/mindustry/entities/comp/PlayerComp.java
@@ -28,7 +28,7 @@ import static mindustry.Vars.*;
@EntityDef(value = {Playerc.class}, serialize = false)
@Component(base = true)
abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Drawc{
- static final float deathDelay = 30f;
+ static final float deathDelay = 60f;
@Import float x, y;
@@ -48,11 +48,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
transient float textFadeTime;
public boolean isBuilder(){
- return unit instanceof Builderc;
- }
-
- public boolean isMiner(){
- return unit instanceof Minerc;
+ return unit.canBuild();
}
public @Nullable CoreBuild closestCore(){
@@ -78,6 +74,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
team = state.rules.defaultTeam;
admin = typing = false;
textFadeTime = 0f;
+ x = y = 0f;
if(!dead()){
unit.controller(unit.type.createController());
unit = Nulls.unit;
@@ -129,7 +126,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
}
}else if(core != null){
//have a small delay before death to prevent the camera from jumping around too quickly
- //(this is not for balance)
+ //(this is not for balance, it just looks better this way)
deathTimer += Time.delta;
if(deathTimer >= deathDelay){
//request spawn - this happens serverside only
@@ -163,14 +160,6 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
return unit;
}
- public Minerc miner(){
- return !(unit instanceof Minerc) ? Nulls.miner : (Minerc)unit;
- }
-
- public Builderc builder(){
- return !(unit instanceof Builderc) ? Nulls.builder : (Builderc)unit;
- }
-
public void unit(Unit unit){
if(unit == null) throw new IllegalArgumentException("Unit cannot be null. Use clearUnit() instead.");
if(this.unit == unit) return;
diff --git a/core/src/mindustry/entities/comp/ShieldComp.java b/core/src/mindustry/entities/comp/ShieldComp.java
index 274286b801..d4a1ec7e4b 100644
--- a/core/src/mindustry/entities/comp/ShieldComp.java
+++ b/core/src/mindustry/entities/comp/ShieldComp.java
@@ -22,9 +22,9 @@ abstract class ShieldComp implements Healthc, Posc{
@Replace
@Override
public void damage(float amount){
- amount /= healthMultiplier;
//apply armor
amount = Math.max(amount - armor, minArmorDamage * amount);
+ amount /= healthMultiplier;
hitTime = 1f;
diff --git a/core/src/mindustry/entities/comp/StatusComp.java b/core/src/mindustry/entities/comp/StatusComp.java
index fcce0d0a02..c4ea7be07a 100644
--- a/core/src/mindustry/entities/comp/StatusComp.java
+++ b/core/src/mindustry/entities/comp/StatusComp.java
@@ -114,13 +114,14 @@ abstract class StatusComp implements Posc, Flyingc{
StatusEntry entry = statuses.get(index++);
entry.time = Math.max(entry.time - Time.delta, 0);
- applied.set(entry.effect.id);
- if(entry.time <= 0 && !entry.effect.permanent){
+ if(entry.effect == null || (entry.time <= 0 && !entry.effect.permanent)){
Pools.free(entry);
index --;
statuses.remove(index);
}else{
+ applied.set(entry.effect.id);
+
speedMultiplier *= entry.effect.speedMultiplier;
healthMultiplier *= entry.effect.healthMultiplier;
damageMultiplier *= entry.effect.damageMultiplier;
diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java
index ca85eacd07..aa02f25022 100644
--- a/core/src/mindustry/entities/comp/UnitComp.java
+++ b/core/src/mindustry/entities/comp/UnitComp.java
@@ -1,6 +1,7 @@
package mindustry.entities.comp;
import arc.*;
+import arc.func.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.math.geom.*;
@@ -8,6 +9,7 @@ import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import mindustry.ai.*;
+import mindustry.ai.types.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.core.*;
@@ -29,12 +31,13 @@ import mindustry.world.blocks.payloads.*;
import static mindustry.Vars.*;
@Component(base = true)
-abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc, Commanderc, Displayable, Senseable, Ranged{
+abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc, Commanderc, Displayable, Senseable, Ranged, Minerc, Builderc{
@Import boolean hovering, dead;
- @Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health, ammo;
+ @Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health, ammo, minFormationSpeed;
@Import Team team;
@Import int id;
+ @Import @Nullable Tile mineTile;
private UnitController controller;
UnitType type;
@@ -66,9 +69,33 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
return type.hasWeapons();
}
+ public float speed(){
+ float strafePenalty = isGrounded() || !isPlayer() ? 1f : Mathf.lerp(1f, type.strafePenalty, Angles.angleDist(vel().angle(), rotation) / 180f);
+ //limit speed to minimum formation speed to preserve formation
+ return (isCommanding() ? minFormationSpeed * 0.98f : type.speed) * strafePenalty;
+ }
+
/** @return speed with boost multipliers factored in. */
public float realSpeed(){
- return Mathf.lerp(1f, type.canBoost ? type.boostMultiplier : 1f, elevation) * type.speed;
+ return Mathf.lerp(1f, type.canBoost ? type.boostMultiplier : 1f, elevation) * speed();
+ }
+
+ /** Iterates through this unit and everything it is controlling. */
+ public void eachGroup(Cons cons){
+ cons.get(self());
+ controlling().each(cons);
+ }
+
+ /** @return where the unit wants to look at. */
+ public float prefRotation(){
+ if(activelyBuilding()){
+ return angleTo(buildPlan());
+ }else if(mineTile() != null){
+ return angleTo(mineTile());
+ }else if(moving()){
+ return vel().angle();
+ }
+ return rotation;
}
@Override
@@ -97,7 +124,11 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
case shooting -> isShooting() ? 1 : 0;
case shootX -> World.conv(aimX());
case shootY -> World.conv(aimY());
+ case mining -> mining() ? 1 : 0;
+ case mineX -> mining() ? mineTile.x : -1;
+ case mineY -> mining() ? mineTile.y : -1;
case flag -> flag;
+ case controlled -> controller instanceof LogicAI || controller instanceof Player ? 1 : 0;
case payloadCount -> self() instanceof Payloadc pay ? pay.payloads().size : 0;
default -> 0;
};
@@ -230,12 +261,14 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
@Override
public void add(){
+ team.data().updateCount(type, 1);
//check if over unit cap
if(count() > cap() && !spawnedByCore && !dead){
Call.unitCapDeath(self());
team.data().updateCount(type, -1);
}
+
}
@Override
@@ -352,7 +385,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
//remove units spawned by the core
- if(spawnedByCore && !isPlayer()){
+ if(spawnedByCore && !isPlayer() && !dead){
Call.unitDespawn(self());
}
}
diff --git a/core/src/mindustry/entities/comp/WeaponsComp.java b/core/src/mindustry/entities/comp/WeaponsComp.java
index dec0105c14..b919f6fee1 100644
--- a/core/src/mindustry/entities/comp/WeaponsComp.java
+++ b/core/src/mindustry/entities/comp/WeaponsComp.java
@@ -4,6 +4,7 @@ import arc.math.*;
import arc.math.geom.*;
import arc.util.*;
import mindustry.annotations.Annotations.*;
+import mindustry.audio.*;
import mindustry.entities.*;
import mindustry.entities.bullet.*;
import mindustry.entities.units.*;
@@ -23,8 +24,8 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc, Statusc{
/** weapon mount array, never null */
@SyncLocal WeaponMount[] mounts = {};
- @ReadOnly transient float aimX, aimY;
@ReadOnly transient boolean isRotate;
+ transient float aimX, aimY;
boolean isShooting;
float ammo;
@@ -116,11 +117,20 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc, Statusc{
}else{
mount.bullet.rotation(weaponRotation + 90);
mount.bullet.set(shootX, shootY);
+ mount.reload = weapon.reload;
vel.add(Tmp.v1.trns(rotation + 180f, mount.bullet.type.recoil));
+ if(weapon.shootSound != Sounds.none && !headless){
+ if(mount.sound == null) mount.sound = new SoundLoop(weapon.shootSound, 1f);
+ mount.sound.update(x, y, true);
+ }
}
}else{
//heat decreases when not firing
mount.heat = Math.max(mount.heat - Time.delta * reloadMultiplier / mount.weapon.cooldownTime, 0);
+
+ if(mount.sound != null){
+ mount.sound.update(x, y, false);
+ }
}
//flip weapon shoot side for alternating weapons at half reload
@@ -152,7 +162,7 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc, Statusc{
mount.reload <= 0.0001f && //reload has to be 0
Angles.within(weapon.rotate ? mount.rotation : this.rotation, mount.targetRotation, mount.weapon.shootCone) //has to be within the cone
){
- shoot(mount, shootX, shootY, mount.aimX, mount.aimY, shootAngle, Mathf.sign(weapon.x));
+ shoot(mount, shootX, shootY, mount.aimX, mount.aimY, mountX, mountY, shootAngle, Mathf.sign(weapon.x));
mount.reload = weapon.reload;
@@ -162,13 +172,13 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc, Statusc{
}
}
- private void shoot(WeaponMount mount, float x, float y, float aimX, float aimY, float rotation, int side){
+ private void shoot(WeaponMount mount, float x, float y, float aimX, float aimY, float mountX, float mountY, float rotation, int side){
Weapon weapon = mount.weapon;
float baseX = this.x, baseY = this.y;
boolean delay = weapon.firstShotDelay + weapon.shotDelay > 0f;
- (delay ? weapon.chargeSound : weapon.shootSound).at(x, y, Mathf.random(0.8f, 1.0f));
+ (delay ? weapon.chargeSound : weapon.continuous ? Sounds.none : weapon.shootSound).at(x, y, Mathf.random(weapon.soundPitchMin, weapon.soundPitchMax));
BulletType ammo = weapon.bullet;
float lifeScl = ammo.scaleVelocity ? Mathf.clamp(Mathf.dst(x, y, aimX, aimY) / ammo.range()) : 1f;
@@ -195,7 +205,9 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc, Statusc{
vel.add(Tmp.v1.trns(rotation + 180f, ammo.recoil));
Effect.shake(weapon.shake, weapon.shake, x, y);
mount.heat = 1f;
- weapon.shootSound.at(x, y, Mathf.random(0.8f, 1.0f));
+ if(!weapon.continuous){
+ weapon.shootSound.at(x, y, Mathf.random(weapon.soundPitchMin, weapon.soundPitchMax));
+ }
});
}else{
vel.add(Tmp.v1.trns(rotation + 180f, ammo.recoil));
@@ -203,7 +215,7 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc, Statusc{
mount.heat = 1f;
}
- weapon.ejectEffect.at(x, y, rotation * side);
+ weapon.ejectEffect.at(mountX, mountY, rotation * side);
ammo.shootEffect.at(x, y, rotation, parentize ? this : null);
ammo.smokeEffect.at(x, y, rotation, parentize ? this : null);
apply(weapon.shootStatus, weapon.shootStatusDuration);
diff --git a/core/src/mindustry/entities/effect/MultiEffect.java b/core/src/mindustry/entities/effect/MultiEffect.java
new file mode 100644
index 0000000000..c1b0e7e6d4
--- /dev/null
+++ b/core/src/mindustry/entities/effect/MultiEffect.java
@@ -0,0 +1,32 @@
+package mindustry.entities.effect;
+
+import mindustry.entities.*;
+
+/** Renders multiple particle effects at once. */
+public class MultiEffect extends Effect{
+ public Effect[] effects = {};
+
+ public MultiEffect(){
+ clip = 100f;
+ }
+
+ public MultiEffect(Effect... effects){
+ this();
+ this.effects = effects;
+ }
+
+ @Override
+ public void init(){
+ for(Effect f : effects){
+ clip = Math.max(clip, f.clip);
+ }
+ }
+
+ @Override
+ public void render(EffectContainer e){
+ for(Effect f : effects){
+ e.scaled(f.lifetime, f::render);
+ clip = Math.max(clip, f.clip);
+ }
+ }
+}
diff --git a/core/src/mindustry/entities/effect/ParticleEffect.java b/core/src/mindustry/entities/effect/ParticleEffect.java
new file mode 100644
index 0000000000..f38fc00603
--- /dev/null
+++ b/core/src/mindustry/entities/effect/ParticleEffect.java
@@ -0,0 +1,55 @@
+package mindustry.entities.effect;
+
+import arc.*;
+import arc.graphics.*;
+import arc.graphics.g2d.*;
+import arc.math.*;
+import arc.util.*;
+import mindustry.entities.*;
+
+/** The most essential effect class. Can create particles in various shapes. */
+public class ParticleEffect extends Effect{
+ public Color colorFrom = Color.white.cpy(), colorTo = Color.white.cpy();
+ public int particles = 6;
+ public float cone = 180f, length = 20f, baseLength = 0f;
+ public Interp interp = Interp.linear;
+
+ //region only
+ public float sizeFrom = 2f, sizeTo = 0f;
+ public String region = "circle";
+
+ //line only
+ public boolean line;
+ public float strokeFrom = 2f, strokeTo = 0f, lenFrom = 4f, lenTo = 2f;
+
+ private @Nullable TextureRegion tex;
+
+ @Override
+ public void init(){
+ clip = Math.max(clip, length + Math.max(sizeFrom, sizeTo));
+ }
+
+ @Override
+ public void render(EffectContainer e){
+ if(tex == null) tex = Core.atlas.find(region);
+
+ float rawfin = e.fin();
+ float fin = e.fin(interp);
+ float rad = interp.apply(sizeFrom, sizeTo, rawfin) * 2;
+
+ Draw.color(colorFrom, colorTo, fin);
+
+ if(line){
+ Lines.stroke(interp.apply(strokeFrom, strokeTo, rawfin));
+ float len = interp.apply(lenFrom, lenTo, rawfin);
+
+ Angles.randLenVectors(e.id, particles, length * fin + baseLength, e.rotation, cone, (x, y) -> {
+ Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), len);
+ });
+ }else{
+ Angles.randLenVectors(e.id, particles, length * fin + baseLength, e.rotation, cone, (x, y) -> {
+ Draw.rect(tex, e.x + x, e.y + y, rad, rad);
+ });
+ }
+ }
+}
diff --git a/core/src/mindustry/entities/effect/WaveEffect.java b/core/src/mindustry/entities/effect/WaveEffect.java
new file mode 100644
index 0000000000..88ff7391d2
--- /dev/null
+++ b/core/src/mindustry/entities/effect/WaveEffect.java
@@ -0,0 +1,33 @@
+package mindustry.entities.effect;
+
+import arc.graphics.*;
+import arc.graphics.g2d.*;
+import arc.math.*;
+import mindustry.entities.*;
+
+/** Effect that renders a basic shockwave. */
+public class WaveEffect extends Effect{
+ public Color colorFrom = Color.white.cpy(), colorTo = Color.white.cpy();
+ public float sizeFrom = 0f, sizeTo = 100f;
+ public int sides = -1;
+ public float rotation = 0f;
+ public float strokeFrom = 2f, strokeTo = 0f;
+ public Interp interp = Interp.linear;
+
+ @Override
+ public void init(){
+ clip = Math.max(clip, Math.max(sizeFrom, sizeTo) + Math.max(strokeFrom, strokeTo));
+ }
+
+ @Override
+ public void render(EffectContainer e){
+ float fin = e.fin();
+ float ifin = e.fin(interp);
+
+ Draw.color(colorFrom, colorTo, ifin);
+ Lines.stroke(interp.apply(strokeFrom, strokeTo, fin));
+
+ float rad = interp.apply(sizeFrom, sizeTo, fin);
+ Lines.poly(e.x, e.y, sides <= 0 ? Lines.circleVertices(rad) : sides, rad, rotation + e.rotation);
+ }
+}
diff --git a/core/src/mindustry/entities/units/AIController.java b/core/src/mindustry/entities/units/AIController.java
index ca005fe25d..40d509b116 100644
--- a/core/src/mindustry/entities/units/AIController.java
+++ b/core/src/mindustry/entities/units/AIController.java
@@ -15,9 +15,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 static final int timerTarget3 = 2;
+ protected static final int timerTarget = 0, timerTarget2 = 1, timerTarget3 = 2;
protected Unit unit;
protected Interval timer = new Interval(4);
@@ -61,13 +59,10 @@ public class AIController implements UnitController{
}
protected void updateVisuals(){
-
if(unit.isFlying()){
unit.wobble();
- if(unit.moving()){
- unit.lookAt(unit.vel.angle());
- }
+ unit.lookAt(unit.prefRotation());
}
}
@@ -95,7 +90,7 @@ public class AIController implements UnitController{
if(tile == targetTile || (costType == Pathfinder.costWater && !targetTile.floor().isLiquid)) return;
- unit.moveAt(vec.trns(unit.angleTo(targetTile), unit.type.speed));
+ unit.moveAt(vec.trns(unit.angleTo(targetTile), unit.speed()));
}
protected void updateWeapons(){
@@ -112,6 +107,8 @@ public class AIController implements UnitController{
target = null;
}
+ unit.isShooting = false;
+
for(int i = 0; i < targets.length; i++){
WeaponMount mount = unit.mounts[i];
Weapon weapon = mount.weapon;
@@ -143,6 +140,12 @@ public class AIController implements UnitController{
mount.shoot = shoot;
mount.rotate = shoot;
+
+ unit.isShooting |= shoot;
+ if(shoot){
+ unit.aimX = mount.aimX;
+ unit.aimY = mount.aimY;
+ }
}
}
@@ -160,7 +163,7 @@ public class AIController implements UnitController{
}
protected boolean retarget(){
- return timer.get(timerTarget, 30);
+ return timer.get(timerTarget, 40);
}
protected Teamc findTarget(float x, float y, float range, boolean air, boolean ground){
@@ -176,7 +179,7 @@ public class AIController implements UnitController{
}
protected void circle(Position target, float circleLength){
- circle(target, circleLength, unit.type.speed);
+ circle(target, circleLength, unit.speed());
}
protected void circle(Position target, float circleLength, float speed){
diff --git a/core/src/mindustry/entities/units/BuildPlan.java b/core/src/mindustry/entities/units/BuildPlan.java
index 9d8e98a05f..16ec45cb07 100644
--- a/core/src/mindustry/entities/units/BuildPlan.java
+++ b/core/src/mindustry/entities/units/BuildPlan.java
@@ -9,7 +9,7 @@ import mindustry.world.*;
import static mindustry.Vars.*;
/** Class for storing build requests. Can be either a place or remove request. */
-public class BuildPlan{
+public class BuildPlan implements Position{
/** Position and rotation of this request. */
public int x, y, rotation;
/** Block being placed. If null, this is a breaking request.*/
@@ -127,11 +127,11 @@ public class BuildPlan{
}
public float drawx(){
- return x*tilesize + block.offset;
+ return x*tilesize + (block == null ? 0 : block.offset);
}
public float drawy(){
- return y*tilesize + block.offset;
+ return y*tilesize + (block == null ? 0 : block.offset);
}
public @Nullable Tile tile(){
@@ -142,6 +142,16 @@ public class BuildPlan{
return world.build(x, y);
}
+ @Override
+ public float getX(){
+ return drawx();
+ }
+
+ @Override
+ public float getY(){
+ return drawy();
+ }
+
@Override
public String toString(){
return "BuildRequest{" +
diff --git a/core/src/mindustry/entities/units/WeaponMount.java b/core/src/mindustry/entities/units/WeaponMount.java
index 80bf713f20..e5f61679c7 100644
--- a/core/src/mindustry/entities/units/WeaponMount.java
+++ b/core/src/mindustry/entities/units/WeaponMount.java
@@ -1,6 +1,7 @@
package mindustry.entities.units;
import arc.util.*;
+import mindustry.audio.*;
import mindustry.gen.*;
import mindustry.type.*;
@@ -25,6 +26,8 @@ public class WeaponMount{
public boolean side;
/** current bullet for continuous weapons */
public @Nullable Bullet bullet;
+ /** sound loop for continuous weapons */
+ public @Nullable SoundLoop sound;
public WeaponMount(Weapon weapon){
this.weapon = weapon;
diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java
index 1ab946c4ac..43ae282d4c 100644
--- a/core/src/mindustry/game/EventType.java
+++ b/core/src/mindustry/game/EventType.java
@@ -17,14 +17,12 @@ public class EventType{
phaseDeflectHit,
impactPower,
thoriumReactorOverheat,
- itemLaunch,
fireExtinguish,
newGame,
tutorialComplete,
flameAmmo,
turretCool,
enablePixelation,
- drown,
exclusionDeath,
suicideBomb,
openWiki,
@@ -96,6 +94,22 @@ public class EventType{
}
}
+ public static class SectorLaunchEvent{
+ public final Sector sector;
+
+ public SectorLaunchEvent(Sector sector){
+ this.sector = sector;
+ }
+ }
+
+ public static class SchematicCreateEvent{
+ public final Schematic schematic;
+
+ public SchematicCreateEvent(Schematic schematic){
+ this.schematic = schematic;
+ }
+ }
+
public static class CommandIssueEvent{
public final Building tile;
public final UnitCommand command;
@@ -187,6 +201,34 @@ public class EventType{
}
}
+ public static class PickupEvent{
+ public final Unit carrier;
+ public final @Nullable Unit unit;
+ public final @Nullable Building build;
+
+ public PickupEvent(Unit carrier, Unit unit){
+ this.carrier = carrier;
+ this.unit = unit;
+ this.build = null;
+ }
+
+ public PickupEvent(Unit carrier, Building build){
+ this.carrier = carrier;
+ this.build = build;
+ this.unit = null;
+ }
+ }
+
+ public static class UnitControlEvent{
+ public final Player player;
+ public final @Nullable Unit unit;
+
+ public UnitControlEvent(Player player, @Nullable Unit unit){
+ this.player = player;
+ this.unit = unit;
+ }
+ }
+
public static class GameOverEvent{
public final Team winner;
diff --git a/core/src/mindustry/game/GameStats.java b/core/src/mindustry/game/GameStats.java
index 8108f2ddad..19d404c802 100644
--- a/core/src/mindustry/game/GameStats.java
+++ b/core/src/mindustry/game/GameStats.java
@@ -22,37 +22,12 @@ public class GameStats{
/** Friendly buildings destroyed. */
public int buildingsDestroyed;
- //TODO fix
- public RankResult calculateRank(Sector zone, boolean launched){
+ //unused
+ public RankResult calculateRank(Sector sector){
float score = 0;
- //TODO implement wave/attack mode based score
- /*
- if(launched && zone.getRules().attackMode){
- score += 3f;
- }else if(wavesLasted >= zone.conditionWave){
- //each new launch period adds onto the rank 'points'
- score += (float)((wavesLasted - zone.conditionWave) / zone.launchPeriod + 1) * 1.2f;
- }*/
-
- //TODO implement
- int capacity = 3000;//zone.loadout.findCore().itemCapacity;
-
- //weigh used fractions
- float frac = 0f;
- Seq- obtainable = zone.save == null ? new Seq<>() : zone.info.resources.select(i -> i instanceof Item).as();
- for(Item item : obtainable){
- frac += Mathf.clamp((float)itemsDelivered.get(item, 0) / capacity) / (float)obtainable.size;
- }
-
- score += frac * 1.6f;
-
- if(!launched){
- score *= 0.5f;
- }
-
- int rankIndex = Mathf.clamp((int)(score), 0, Rank.values().length - 1);
- Rank rank = Rank.values()[rankIndex];
+ int rankIndex = Mathf.clamp((int)score, 0, Rank.all.length - 1);
+ Rank rank = Rank.all[rankIndex];
String sign = Math.abs((rankIndex + 0.5f) - score) < 0.2f || rank.name().contains("S") ? "" : (rankIndex + 0.5f) < score ? "-" : "+";
return new RankResult(rank, sign);
@@ -70,6 +45,8 @@ public class GameStats{
}
public enum Rank{
- F, D, C, B, A, S, SS
+ F, D, C, B, A, S, SS;
+
+ public static final Rank[] all = values();
}
}
diff --git a/core/src/mindustry/game/Objectives.java b/core/src/mindustry/game/Objectives.java
index 7fc844a180..acf7fad876 100644
--- a/core/src/mindustry/game/Objectives.java
+++ b/core/src/mindustry/game/Objectives.java
@@ -28,6 +28,26 @@ public class Objectives{
}
}
+ public static class Produce implements Objective{
+ public UnlockableContent content;
+
+ public Produce(UnlockableContent content){
+ this.content = content;
+ }
+
+ protected Produce(){}
+
+ @Override
+ public boolean complete(){
+ return content.unlocked();
+ }
+
+ @Override
+ public String display(){
+ return Core.bundle.format("requirement.produce", content.emoji() + " " + content.localizedName);
+ }
+ }
+
public static class SectorComplete extends SectorObjective{
public SectorComplete(SectorPreset zone){
@@ -38,7 +58,7 @@ public class Objectives{
@Override
public boolean complete(){
- return preset.sector.save != null && preset.sector.save.meta.wave >= preset.captureWave;
+ return preset.sector.save != null && !preset.sector.isAttacked() && preset.sector.hasBase();
}
@Override
diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java
index 2a927cc59b..c91a3fcb7f 100644
--- a/core/src/mindustry/game/Rules.java
+++ b/core/src/mindustry/game/Rules.java
@@ -32,8 +32,6 @@ public class Rules{
public boolean attackMode = false;
/** Whether this is the editor gamemode. */
public boolean editor = false;
- /** Whether the tutorial is enabled. False by default. */
- public boolean tutorial = false;
/** Whether a gameover can happen at all. Set this to false to implement custom gameover conditions. */
public boolean canGameOver = true;
/** Whether reactors can explode and damage other blocks. */
@@ -105,7 +103,7 @@ public class Rules{
/** Whether to use building AI. */
public boolean ai;
/** TODO Tier of blocks/designs that the AI uses for building. [0, 1]*/
- public float aiTier = 0f;
+ public float aiTier = 1f;
/** Whether, when AI is enabled, ships should be spawned from the core. */
public boolean aiCoreSpawn = true;
/** If true, blocks don't require power or resources. */
diff --git a/core/src/mindustry/game/Saves.java b/core/src/mindustry/game/Saves.java
index fcebb28a8f..c832f86471 100644
--- a/core/src/mindustry/game/Saves.java
+++ b/core/src/mindustry/game/Saves.java
@@ -77,7 +77,6 @@ public class Saves{
}
public void update(){
-
if(current != null && state.isGame()
&& !(state.isPaused() && Core.scene.hasDialog())){
if(lastTimestamp != 0){
@@ -86,15 +85,15 @@ public class Saves{
lastTimestamp = Time.millis();
}
- if(state.isGame() && !state.gameOver && current != null && current.isAutosave() && !state.rules.tutorial){
+ if(state.isGame() && !state.gameOver && current != null && current.isAutosave()){
time += Time.delta;
if(time > Core.settings.getInt("saveinterval") * 60){
saving = true;
try{
current.save();
- }catch(Throwable e){
- e.printStackTrace();
+ }catch(Throwable t){
+ Log.err(t);
}
Time.runTask(3f, () -> saving = false);
@@ -218,7 +217,7 @@ public class Saves{
previewFile().writePNG(renderer.minimap.getPixmap());
requestedPreview = false;
}catch(Throwable t){
- t.printStackTrace();
+ Log.err(t);
}
});
}
@@ -335,6 +334,9 @@ public class Saves{
}
public void delete(){
+ if(SaveIO.backupFileFor(file).exists()){
+ SaveIO.backupFileFor(file).delete();
+ }
file.delete();
saves.remove(this, true);
if(this == current){
diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java
index 20fe7c36c4..7cd51ecec4 100644
--- a/core/src/mindustry/game/Schematics.java
+++ b/core/src/mindustry/game/Schematics.java
@@ -33,6 +33,7 @@ import mindustry.world.blocks.power.*;
import mindustry.world.blocks.production.*;
import mindustry.world.blocks.sandbox.*;
import mindustry.world.blocks.storage.*;
+import mindustry.world.meta.*;
import java.io.*;
import java.util.zip.*;
@@ -107,13 +108,10 @@ public class Schematics implements Loadable{
if(shadowBuffer == null){
Core.app.post(() -> shadowBuffer = new FrameBuffer(maxSchematicSize + padding + 8, maxSchematicSize + padding + 8));
}
-
- //load base schematics
- bases.load();
}
private void loadLoadouts(){
- Seq.with(Loadouts.basicShard, Loadouts.basicFoundation, Loadouts.basicNucleus).each(s -> checkLoadout(s,false));
+ Seq.with(Loadouts.basicShard, Loadouts.basicFoundation, Loadouts.basicNucleus).each(s -> checkLoadout(s, false));
}
public void overwrite(Schematic target, Schematic newSchematic){
@@ -132,6 +130,7 @@ public class Schematics implements Loadable{
try{
write(newSchematic, target.file);
}catch(Exception e){
+ Log.err("Failed to overwrite schematic '@' (@)", newSchematic.name(), target.file);
Log.err(e);
ui.showException(e);
}
@@ -152,6 +151,7 @@ public class Schematics implements Loadable{
return s;
}catch(Throwable e){
+ Log.err("Failed to read schematic from file '@'", file);
Log.err(e);
}
return null;
@@ -187,6 +187,7 @@ public class Schematics implements Loadable{
try{
return getBuffer(schematic).getTexture();
}catch(Throwable t){
+ Log.err("Failed to get preview for schematic '@' (@)", schematic.name(), schematic.file);
Log.err(t);
errored.add(schematic);
return errorTexture;
@@ -280,7 +281,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, t.config).original(t.x, t.y, schem.width, schem.height))
- .removeAll(s -> !s.block.isVisible() || !s.block.unlockedNow());
+ .removeAll(s -> (!s.block.isVisible() && !(s.block instanceof CoreBlock)) || !s.block.unlockedNow());
}
/** @return all the valid loadouts for a specific core type. */
@@ -288,12 +289,18 @@ public class Schematics implements Loadable{
return loadouts.get(block, Seq::new);
}
+ public ObjectMap> getLoadouts(){
+ return loadouts;
+ }
+
/** Checks a schematic for deployment validity and adds it to the cache. */
private void checkLoadout(Schematic s, boolean validate){
Stile core = s.tiles.find(t -> t.block instanceof CoreBlock);
+ int cores = s.tiles.count(t -> t.block instanceof CoreBlock);
//make sure a core exists, and that the schematic is small enough.
- if(core == null || (validate && (s.width > core.block.size + maxLoadoutSchematicPad *2 || s.height > core.block.size + maxLoadoutSchematicPad *2))) return;
+ if(core == null || (validate && (s.width > core.block.size + maxLoadoutSchematicPad *2 || s.height > core.block.size + maxLoadoutSchematicPad *2
+ || s.tiles.contains(t -> t.block.buildVisibility == BuildVisibility.sandboxOnly || !t.block.unlocked()) || cores > 1))) return;
//place in the cache
loadouts.get((CoreBlock)core.block, Seq::new).add(s);
@@ -347,7 +354,7 @@ 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 ConstructBlock)){
+ if(linked != null && (linked.block.isVisible() || linked.block() instanceof CoreBlock) && !(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);
@@ -376,7 +383,7 @@ public class Schematics implements Loadable{
Building tile = world.build(cx, cy);
if(tile != null && !counted.contains(tile.pos()) && !(tile.block instanceof ConstructBlock)
- && (tile.block.isVisible() || (tile.block instanceof CoreBlock))){
+ && (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));
@@ -411,13 +418,27 @@ public class Schematics implements Loadable{
}
public static void placeLoadout(Schematic schem, int x, int y, Team team, Block resource){
+ placeLoadout(schem, x, y, team, resource, true);
+ }
+
+ public static void placeLoadout(Schematic schem, int x, int y, Team team, Block resource, boolean check){
Stile coreTile = schem.tiles.find(s -> s.block instanceof CoreBlock);
+ Seq seq = new Seq<>();
if(coreTile == null) throw new IllegalArgumentException("Loadout schematic has no core tile!");
int ox = x - coreTile.x, oy = y - coreTile.y;
schem.tiles.each(st -> {
Tile tile = world.tile(st.x + ox, st.y + oy);
if(tile == null) return;
+ //check for blocks that are in the way.
+ if(check && !(st.block instanceof CoreBlock)){
+ seq.clear();
+ tile.getLinkedTilesAs(st.block, seq);
+ if(seq.contains(t -> !t.block().alwaysReplace && !t.synthetic())){
+ return;
+ }
+ }
+
tile.setBlock(st.block, team, st.rotation);
Object config = st.config;
diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java
index 3b2b4df3dd..e8aa42262b 100644
--- a/core/src/mindustry/game/SectorInfo.java
+++ b/core/src/mindustry/game/SectorInfo.java
@@ -43,8 +43,12 @@ public class SectorInfo{
public boolean waves = true;
/** Whether attack mode is enabled here. */
public boolean attack = false;
+ /** Whether this sector has any enemy spawns. */
+ public boolean hasSpawns = true;
/** Wave # from state */
public int wave = 1, winWave = -1;
+ /** Waves this sector can survive if under attack. Based on wave in info. <0 means uncalculated. */
+ public int wavesSurvived = -1;
/** Time between waves. */
public float waveSpacing = 60 * 60 * 2;
/** Damage dealt to sector. */
@@ -57,6 +61,12 @@ public class SectorInfo{
public float secondsPassed;
/** Display name. */
public @Nullable String name;
+ /** Displayed icon. */
+ public @Nullable String icon;
+ /** Version of generated waves. When it doesn't match, new waves are generated. */
+ public int waveVersion = -1;
+ /** Whether this sector was indicated to the player or not. */
+ public boolean shown = false;
/** Special variables for simulation. */
public float sumHealth, sumRps, sumDps, waveHealthBase, waveHealthSlope, waveDpsBase, waveDpsSlope;
@@ -118,12 +128,17 @@ public class SectorInfo{
state.rules.winWave = winWave;
state.rules.attackMode = attack;
+ //assign new wave patterns when the version changes
+ if(waveVersion != Waves.waveVersion && state.rules.sector.preset == null){
+ state.rules.spawns = Waves.generate(state.rules.sector.threat);
+ }
+
CoreBuild entity = state.rules.defaultTeam.core();
if(entity != null){
entity.items.clear();
entity.items.add(items);
//ensure capacity.
- entity.items.each((i, a) -> entity.items.set(i, Math.min(a, entity.storageCapacity)));
+ entity.items.each((i, a) -> entity.items.set(i, Mathf.clamp(a, 0, entity.storageCapacity)));
}
}
@@ -143,6 +158,7 @@ public class SectorInfo{
spawnPosition = entity.pos();
}
+ waveVersion = Waves.waveVersion;
waveSpacing = state.rules.waveSpacing;
wave = state.wave;
winWave = state.rules.winWave;
@@ -154,9 +170,9 @@ public class SectorInfo{
secondsPassed = 0;
wavesPassed = 0;
damage = 0;
+ hasSpawns = spawner.countSpawns() > 0;
if(state.rules.sector != null){
- state.rules.sector.info = this;
state.rules.sector.saveInfo();
}
@@ -201,8 +217,7 @@ public class SectorInfo{
}
//get item delta
- //TODO is preventing negative production a good idea?
- int delta = Math.max(ent == null ? 0 : coreItemCounts[item.id], 0);
+ int delta = coreItemCounts[item.id];
//store means
stat.means.add(delta);
diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java
index 6a2972f074..da5edfd0db 100644
--- a/core/src/mindustry/game/Teams.java
+++ b/core/src/mindustry/game/Teams.java
@@ -133,10 +133,10 @@ public class Teams{
private void count(Unit unit){
unit.team.data().updateCount(unit.type, 1);
- if(unit instanceof Payloadc){
- ((Payloadc)unit).payloads().each(p -> {
- if(p instanceof UnitPayload){
- count(((UnitPayload)p).unit);
+ if(unit instanceof Payloadc payloadc){
+ payloadc.payloads().each(p -> {
+ if(p instanceof UnitPayload payload){
+ count(payload.unit);
}
});
}
@@ -261,11 +261,12 @@ public class Teams{
}
public void updateCount(UnitType type, int amount){
+ if(type == null) return;
unitCount = Math.max(amount + unitCount, 0);
if(typeCounts == null || typeCounts.length <= type.id){
typeCounts = new int[Vars.content.units().size];
}
- typeCounts [type.id] = Math.max(amount + typeCounts [type.id], 0);
+ typeCounts[type.id] = Math.max(amount + typeCounts[type.id], 0);
}
public QuadTree tree(){
diff --git a/core/src/mindustry/game/Tutorial.java b/core/src/mindustry/game/Tutorial.java
deleted file mode 100644
index d3e5bae56c..0000000000
--- a/core/src/mindustry/game/Tutorial.java
+++ /dev/null
@@ -1,308 +0,0 @@
-package mindustry.game;
-
-import arc.*;
-import arc.func.*;
-import arc.graphics.g2d.*;
-import arc.math.*;
-import arc.scene.*;
-import arc.scene.ui.*;
-import arc.scene.ui.layout.*;
-import arc.struct.*;
-import arc.util.*;
-import mindustry.content.*;
-import mindustry.game.EventType.*;
-import mindustry.gen.*;
-import mindustry.graphics.*;
-import mindustry.type.*;
-import mindustry.world.*;
-
-import static mindustry.Vars.*;
-
-/** Handles tutorial state. */
-public class Tutorial{
- private static final int mineCopper = 18;
- private static final int blocksToBreak = 3, blockOffset = -6;
-
- ObjectSet events = new ObjectSet<>();
- ObjectIntMap blocksPlaced = new ObjectIntMap<>();
- int sentence;
- public TutorialStage stage = TutorialStage.values()[0];
-
- public Tutorial(){
- Events.on(BlockBuildEndEvent.class, event -> {
- if(!event.breaking){
- blocksPlaced.increment(event.tile.block(), 1);
- }
- });
-
- Events.on(LineConfirmEvent.class, event -> events.add("lineconfirm"));
- Events.on(TurretAmmoDeliverEvent.class, event -> events.add("ammo"));
- Events.on(CoreItemDeliverEvent.class, event -> events.add("coreitem"));
- Events.on(BlockInfoEvent.class, event -> events.add("blockinfo"));
- Events.on(DepositEvent.class, event -> events.add("deposit"));
- Events.on(WithdrawEvent.class, event -> events.add("withdraw"));
-
- Events.on(ClientLoadEvent.class, e -> {
- for(TutorialStage stage : TutorialStage.values()){
- stage.load();
- }
- });
- }
-
- /** update tutorial state, transition if needed */
- public void update(){
- if(stage.done.get() && !canNext()){
- next();
- }else{
- stage.update();
- }
- }
-
- /** draw UI overlay */
- public void draw(){
- if(!Core.scene.hasDialog()){
- stage.draw();
- }
- }
-
- /** Resets tutorial state. */
- public void reset(){
- stage = TutorialStage.values()[0];
- stage.begin();
- blocksPlaced.clear();
- events.clear();
- sentence = 0;
- }
-
- /** Goes on to the next tutorial step. */
- public void next(){
- stage = TutorialStage.values()[Mathf.clamp(stage.ordinal() + 1, 0, TutorialStage.values().length)];
- stage.begin();
- blocksPlaced.clear();
- events.clear();
- sentence = 0;
- }
-
- public boolean canNext(){
- return sentence + 1 < stage.sentences.size;
- }
-
- public void nextSentence(){
- if(canNext()){
- sentence ++;
- }
- }
-
- public boolean canPrev(){
- return sentence > 0;
- }
-
- public void prevSentence(){
- if(canPrev()){
- sentence --;
- }
- }
-
- public enum TutorialStage{
- intro(
- line -> Core.bundle.format(line, item(Items.copper), mineCopper),
- () -> item(Items.copper) >= mineCopper
- ),
- drill(() -> placed(Blocks.mechanicalDrill, 1)){
- void draw(){
- outline("category-production");
- outline("block-mechanical-drill");
- outline("confirmplace");
- }
- },
- blockinfo(() -> event("blockinfo")){
- void draw(){
- outline("category-production");
- outline("block-mechanical-drill");
- outline("blockinfo");
- }
- },
- conveyor(() -> placed(Blocks.conveyor, 2) && event("lineconfirm") && event("coreitem")){
- void draw(){
- outline("category-distribution");
- outline("block-conveyor");
- }
- },
- turret(() -> placed(Blocks.duo, 1)){
- void draw(){
- outline("category-turret");
- outline("block-duo");
- }
- },
- drillturret(() -> event("ammo")),
- pause(() -> state.isPaused()){
- void draw(){
- if(mobile){
- outline("pause");
- }
- }
- },
- unpause(() -> !state.isPaused()){
- void draw(){
- if(mobile){
- outline("pause");
- }
- }
- },
- breaking(TutorialStage::blocksBroken){
- void begin(){
- placeBlocks();
- }
-
- void draw(){
- if(mobile){
- outline("breakmode");
- }
- }
- },
- withdraw(() -> event("withdraw")){
- void begin(){
- state.teams.playerCores().first().items.add(Items.copper, 10);
- }
- },
- deposit(() -> event("deposit")),
- waves(() -> state.wave > 2 && state.enemies <= 0 && !spawner.isSpawning()){
- void begin(){
- state.rules.waveTimer = true;
- logic.runWave();
- }
-
- void update(){
- if(state.wave > 2){
- state.rules.waveTimer = false;
- }
- }
- },
- launch(() -> false){
- void begin(){
- state.rules.waveTimer = false;
- state.wave = 5;
-
- //end tutorial, never show it again
- Events.fire(Trigger.tutorialComplete);
- Core.settings.put("playedtutorial", true);
- }
-
- void draw(){
- outline("waves");
- }
- },;
-
- protected String line = "";
- protected final Func text;
- protected Seq sentences;
- protected final Boolp done;
-
- TutorialStage(Func text, Boolp done){
- this.text = text;
- this.done = done;
- }
-
- TutorialStage(Boolp done){
- this(line -> line, done);
- }
-
- /** displayed tutorial stage text.*/
- public String text(){
- if(sentences == null){
- load();
- }
- String line = sentences.get(control.tutorial.sentence);
- return line.contains("{") ? text.get(line) : line;
- }
-
- void load(){
- this.line = Core.bundle.has("tutorial." + name() + ".mobile") && mobile ? "tutorial." + name() + ".mobile" : "tutorial." + name();
- this.sentences = Seq.select(Core.bundle.get(line).split("\n"), s -> !s.isEmpty());
- }
-
- /** called every frame when this stage is active.*/
- void update(){
-
- }
-
- /** called when a stage begins.*/
- void begin(){
-
- }
-
- /** called when a stage needs to draw itself, usually over highlighted UI elements. */
- void draw(){
-
- }
-
- //utility
-
- static void placeBlocks(){
- Building core = state.teams.playerCores().first();
- for(int i = 0; i < blocksToBreak; i++){
- world.tile(core.tile().x + blockOffset, core.tile().y + i).remove();
- world.tile(core.tile().x + blockOffset, core.tile().y + i).setBlock(Blocks.scrapWall, state.rules.defaultTeam);
- }
- }
-
- static boolean blocksBroken(){
- 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){
- return false;
- }
- }
- return true;
- }
-
- static boolean event(String name){
- return control.tutorial.events.contains(name);
- }
-
- static boolean placed(Block block, int amount){
- return placed(block) >= amount;
- }
-
- static int placed(Block block){
- return control.tutorial.blocksPlaced.get(block, 0);
- }
-
- static int item(Item item){
- return state.rules.defaultTeam.data().noCores() ? 0 : state.rules.defaultTeam.core().items.get(item);
- }
-
- static boolean toggled(String name){
- Element element = Core.scene.findVisible(name);
- if(element instanceof Button){
- return ((Button)element).isChecked();
- }
- return false;
- }
-
- static void outline(String name){
- Element element = Core.scene.findVisible(name);
- if(element != null && !toggled(name)){
- element.localToStageCoordinates(Tmp.v1.setZero());
- float sin = Mathf.sin(11f, Scl.scl(4f));
- Lines.stroke(Scl.scl(7f), Pal.place);
- Lines.rect(Tmp.v1.x - sin, Tmp.v1.y - sin, element.getWidth() + sin*2, element.getHeight() + sin*2);
-
- float size = Math.max(element.getWidth(), element.getHeight()) + Mathf.absin(11f/2f, Scl.scl(18f));
- float angle = Angles.angle(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, Tmp.v1.x + element.getWidth()/2f, Tmp.v1.y + element.getHeight()/2f);
- Tmp.v2.trns(angle + 180f, size*1.4f);
- float fs = Scl.scl(40f);
- float fs2 = Scl.scl(56f);
-
- Draw.color(Pal.gray);
- Drawf.tri(Tmp.v1.x + element.getWidth()/2f + Tmp.v2.x, Tmp.v1.y + element.getHeight()/2f + Tmp.v2.y, fs2, fs2, angle);
- Draw.color(Pal.place);
- Tmp.v2.setLength(Tmp.v2.len() - Scl.scl(4));
- Drawf.tri(Tmp.v1.x + element.getWidth()/2f + Tmp.v2.x, Tmp.v1.y + element.getHeight()/2f + Tmp.v2.y, fs, fs, angle);
- Draw.reset();
- }
- }
- }
-
-}
diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java
index 9b1064a791..1b0b1fc10b 100644
--- a/core/src/mindustry/game/Universe.java
+++ b/core/src/mindustry/game/Universe.java
@@ -21,15 +21,22 @@ public class Universe{
private int turn;
private float turnCounter;
- private Schematic lastLoadout;
+ private @Nullable Schematic lastLoadout;
private ItemSeq lastLaunchResources = new ItemSeq();
public Universe(){
load();
+ //load legacy research
+ Events.on(ClientLoadEvent.class, e -> {
+ if(Core.settings.has("unlocks")){
+ LegacyIO.readResearch();
+ }
+ });
+
//update base coverage on capture
Events.on(SectorCaptureEvent.class, e -> {
- if(state.isCampaign()){
+ if(!net.client() && state.isCampaign()){
state.getSector().planet.updateBaseCoverage();
}
});
@@ -84,7 +91,7 @@ public class Universe{
if(state.hasSector()){
//update sector light
float light = state.getSector().getLight();
- float alpha = Mathf.clamp(Mathf.map(light, 0f, 0.8f, 0.1f, 1f));
+ float alpha = Mathf.clamp(Mathf.map(light, 0f, 0.8f, 0.2f, 1f));
//assign and map so darkness is not 100% dark
state.rules.ambientLight.a = 1f - alpha;
@@ -92,6 +99,15 @@ public class Universe{
}
}
+ public void clearLoadoutInfo(){
+ lastLoadout = null;
+ lastLaunchResources = new ItemSeq();
+ Core.settings.remove("launch-resources-seq");
+ Core.settings.remove("lastloadout-core-shard");
+ Core.settings.remove("lastloadout-core-nucleus");
+ Core.settings.remove("lastloadout-core-foundation");
+ }
+
public ItemSeq getLaunchResources(){
lastLaunchResources = Core.settings.getJson("launch-resources-seq", ItemSeq.class, ItemSeq::new);
return lastLaunchResources;
@@ -141,8 +157,11 @@ public class Universe{
//increment seconds passed for this sector by the time that just passed with this turn
if(!sector.isBeingPlayed()){
- //increment time
- sector.info.secondsPassed += turnDuration/60f;
+
+ //increment time if attacked
+ if(sector.isAttacked()){
+ sector.info.secondsPassed += turnDuration/60f;
+ }
int wavesPassed = (int)(sector.info.secondsPassed*60f / sector.info.waveSpacing);
boolean attacked = sector.info.waves;
@@ -194,10 +213,10 @@ public class Universe{
}
//queue random invasions
- if(!sector.isAttacked() && turn > invasionGracePeriod){
+ if(!sector.isAttacked() && turn > invasionGracePeriod && sector.info.hasSpawns){
//invasion chance depends on # of nearby bases
- if(Mathf.chance(baseInvasionChance * sector.near().count(Sector::hasEnemyBase))){
- int waveMax = Math.max(sector.info.winWave, sector.isBeingPlayed() ? state.wave : 0) + Mathf.random(2, 5) * 5;
+ if(Mathf.chance(baseInvasionChance * Math.min(sector.near().count(Sector::hasEnemyBase), 1))){
+ int waveMax = Math.max(sector.info.winWave, sector.isBeingPlayed() ? state.wave : sector.info.wave + sector.info.wavesPassed) + Mathf.random(2, 5) * 5;
//assign invasion-related things
if(sector.isBeingPlayed()){
@@ -261,11 +280,6 @@ public class Universe{
private void load(){
seconds = Core.settings.getInt("utimei");
turn = Core.settings.getInt("turn");
-
- if(Core.settings.has("unlocks")){
- LegacyIO.readResearch();
- Core.settings.remove("unlocks");
- }
}
}
diff --git a/core/src/mindustry/game/DefaultWaves.java b/core/src/mindustry/game/Waves.java
similarity index 79%
rename from core/src/mindustry/game/DefaultWaves.java
rename to core/src/mindustry/game/Waves.java
index d33af5a41a..586fb285c1 100644
--- a/core/src/mindustry/game/DefaultWaves.java
+++ b/core/src/mindustry/game/Waves.java
@@ -9,7 +9,9 @@ import mindustry.type.*;
import static mindustry.content.UnitTypes.*;
-public class DefaultWaves{
+public class Waves{
+ public static final int waveVersion = 3;
+
private Seq spawns;
public Seq get(){
@@ -39,7 +41,7 @@ public class DefaultWaves{
unitScaling = 1.7f;
spacing = 2;
max = 4;
- shieldScaling = 15f;
+ shieldScaling = 25f;
}},
new SpawnGroup(pulsar){{
@@ -62,7 +64,7 @@ public class DefaultWaves{
unitScaling = 1;
unitAmount = 4;
spacing = 2;
- shieldScaling = 10f;
+ shieldScaling = 20f;
max = 14;
}},
@@ -79,7 +81,8 @@ public class DefaultWaves{
spacing = 3;
unitScaling = 1;
max = 10;
- shieldScaling = 10f;
+ shieldScaling = 30f;
+ shields = 100;
effect = StatusEffects.overdrive;
}},
@@ -178,7 +181,7 @@ public class DefaultWaves{
unitAmount = 2;
unitScaling = 3;
spacing = 4;
- shieldScaling = 20;
+ shieldScaling = 30;
}},
new SpawnGroup(atrax){{
@@ -186,7 +189,7 @@ public class DefaultWaves{
unitAmount = 4;
unitScaling = 1;
spacing = 3;
- shieldScaling = 5f;
+ shieldScaling = 10f;
}},
new SpawnGroup(scepter){{
@@ -194,7 +197,7 @@ public class DefaultWaves{
unitAmount = 1;
unitScaling = 1;
spacing = 30;
- shieldScaling = 10f;
+ shieldScaling = 30f;
}},
new SpawnGroup(reign){{
@@ -202,7 +205,7 @@ public class DefaultWaves{
unitAmount = 1;
unitScaling = 1;
spacing = 40;
- shieldScaling = 20f;
+ shieldScaling = 30f;
}},
new SpawnGroup(antumbra){{
@@ -210,7 +213,7 @@ public class DefaultWaves{
unitAmount = 1;
unitScaling = 1;
spacing = 40;
- shieldScaling = 20f;
+ shieldScaling = 30f;
}},
new SpawnGroup(vela){{
@@ -218,7 +221,7 @@ public class DefaultWaves{
unitAmount = 1;
unitScaling = 1;
spacing = 30;
- shieldScaling = 20f;
+ shieldScaling = 30f;
}},
new SpawnGroup(corvus){{
@@ -236,7 +239,7 @@ public class DefaultWaves{
unitScaling = 3;
spacing = 4;
shields = 40f;
- shieldScaling = 20f;
+ shieldScaling = 30f;
}},
new SpawnGroup(toxopid){{
@@ -252,20 +255,17 @@ public class DefaultWaves{
return spawns == null ? new Seq<>() : spawns;
}
- //TODO move elsewhere
public static Seq generate(float difficulty){
- return generate(new Rand(), difficulty);
+ //apply power curve to make starting sectors easier
+ return generate(Mathf.pow(difficulty, 1.12f), new Rand(), false);
}
- //TODO move elsewhere
- public static Seq generate(Rand rand, float difficulty){
+ public static Seq generate(float difficulty, Rand rand, boolean attack){
UnitType[][] species = {
{dagger, mace, fortress, scepter, reign},
{nova, pulsar, quasar, vela, corvus},
{crawler, atrax, spiroct, arkyid, toxopid},
- //{risso, minke, bryde, sei, omura}, //questionable choices
- {poly, poly, mega, quad, quad},
- {flare, horizon, zenith, antumbra, eclipse}
+ {flare, horizon, zenith, rand.chance(0.5) ? quad : antumbra, rand.chance(0.1) ? quad : eclipse}
};
//required progression:
@@ -277,6 +277,7 @@ public class DefaultWaves{
int cap = 150;
float shieldStart = 30, shieldsPerWave = 20 + difficulty*30f;
+ float[] scaling = {1, 1, 1.5f, 3f, 4f};
Intc createProgression = start -> {
//main sequence
@@ -285,18 +286,19 @@ public class DefaultWaves{
for(int i = start; i < cap;){
int f = i;
- int next = rand.random(8, 16);
+ int next = rand.random(8, 16) + (int)Mathf.lerp(4f, 0f, difficulty) + curTier * 4;
float shieldAmount = Math.max((i - shieldStart) * shieldsPerWave, 0);
int space = start == 0 ? 1 : rand.random(1, 2);
+ int ctier = curTier;
//main progression
out.add(new SpawnGroup(curSpecies[Math.min(curTier, curSpecies.length - 1)]){{
- unitAmount = f == 0 ? 1 : 10;
+ unitAmount = f == start ? 1 : 6 / (int)scaling[ctier];
begin = f;
end = f + next >= cap ? never : f + next;
- max = 14;
- unitScaling = rand.random(1f, 3f);
+ max = 13;
+ unitScaling = (difficulty < 0.4f ? rand.random(2.5f, 4f) : rand.random(1f, 4f)) * scaling[ctier];
shields = shieldAmount;
shieldScaling = shieldsPerWave;
spacing = space;
@@ -304,18 +306,18 @@ public class DefaultWaves{
//extra progression that tails out, blends in
out.add(new SpawnGroup(curSpecies[Math.min(curTier, curSpecies.length - 1)]){{
- unitAmount = 6;
- begin = f + next;
- end = f + next + rand.random(8, 12);
- max = 11;
- unitScaling = rand.random(2f);
- spacing = rand.random(2, 3);
- shields = shieldAmount;
+ unitAmount = 3 / (int)scaling[ctier];
+ begin = f + next - 1;
+ end = f + next + rand.random(6, 10);
+ max = 6;
+ unitScaling = rand.random(1f, 2f);
+ spacing = rand.random(2, 4);
+ shields = shieldAmount/2f;
shieldScaling = shieldsPerWave;
}});
- i += next;
- if(curTier < 3 || rand.chance(0.2)){
+ i += next + 1;
+ if(curTier < 3 || (rand.chance(0.05) && difficulty > 0.8)){
curTier ++;
}
@@ -331,18 +333,20 @@ public class DefaultWaves{
createProgression.get(0);
- int step = 5 + rand.random(3);
+ int step = 5 + rand.random(5);
while(step <= cap){
createProgression.get(step);
- step += (int)(rand.random(13, 25) * Mathf.lerp(1f, 0.5f, difficulty));
+ step += (int)(rand.random(15, 30) * Mathf.lerp(1f, 0.5f, difficulty));
}
- int bossWave = (int)(rand.random(30, 60) * Mathf.lerp(1f, 0.7f, difficulty));
+ int bossWave = (int)(rand.random(50, 70) * Mathf.lerp(1f, 0.5f, difficulty));
int bossSpacing = (int)(rand.random(25, 40) * Mathf.lerp(1f, 0.6f, difficulty));
+ int bossTier = difficulty < 0.5 ? 3 : 4;
+
//main boss progression
- out.add(new SpawnGroup(Structs.random(species)[4]){{
+ out.add(new SpawnGroup(Structs.random(species)[bossTier]){{
unitAmount = 1;
begin = bossWave;
spacing = bossSpacing;
@@ -354,7 +358,7 @@ public class DefaultWaves{
}});
//alt boss progression
- out.add(new SpawnGroup(Structs.random(species)[4]){{
+ out.add(new SpawnGroup(Structs.random(species)[bossTier]){{
unitAmount = 1;
begin = bossWave + rand.random(3, 5) * bossSpacing;
spacing = bossSpacing;
@@ -368,7 +372,7 @@ public class DefaultWaves{
int finalBossStart = 120 + rand.random(30);
//final boss waves
- out.add(new SpawnGroup(Structs.random(species)[4]){{
+ out.add(new SpawnGroup(Structs.random(species)[bossTier]){{
unitAmount = 1;
begin = finalBossStart;
spacing = bossSpacing/2;
@@ -380,7 +384,7 @@ public class DefaultWaves{
}});
//final boss waves (alt)
- out.add(new SpawnGroup(Structs.random(species)[4]){{
+ out.add(new SpawnGroup(Structs.random(species)[bossTier]){{
unitAmount = 1;
begin = finalBossStart + 15;
spacing = bossSpacing/2;
@@ -391,6 +395,21 @@ public class DefaultWaves{
effect = StatusEffects.boss;
}});
+ //add megas to heal the base.
+ if(attack && difficulty >= 0.5){
+ int amount = Mathf.random(1, 3 + (int)(difficulty*2));
+
+ for(int i = 0; i < amount; i++){
+ int wave = Mathf.random(3, 20);
+ out.add(new SpawnGroup(mega){{
+ unitAmount = 1;
+ begin = wave;
+ end = wave;
+ max = 16;
+ }});
+ }
+ }
+
//shift back waves on higher difficulty for a harder start
int shift = Math.max((int)(difficulty * 15 - 5), 0);
diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java
index afe2e3182b..a5a78811f5 100644
--- a/core/src/mindustry/graphics/BlockRenderer.java
+++ b/core/src/mindustry/graphics/BlockRenderer.java
@@ -23,7 +23,7 @@ public class BlockRenderer implements Disposable{
public static final int crackRegions = 8, maxCrackSize = 9;
private static final int initialRequests = 32 * 32;
- private static final int expandr = 9;
+ private static final int expandr = 10;
private static final Color shadowColor = new Color(0, 0, 0, 0.71f);
public final FloorRenderer floor = new FloorRenderer();
@@ -293,7 +293,7 @@ public class BlockRenderer implements Disposable{
entity.drawLight();
}else if(tile.block().emitLight){
tile.block().drawEnvironmentLight(tile);
- }else if(tile.floor().emitLight){
+ }else if(tile.floor().emitLight && !tile.block().solid && world.getDarkness(tile.x, tile.y) < 3){ //only draw floor light under non-solid blocks
tile.floor().drawEnvironmentLight(tile);
}
}
diff --git a/core/src/mindustry/graphics/CacheLayer.java b/core/src/mindustry/graphics/CacheLayer.java
index b0273799e4..01ef5e5bff 100644
--- a/core/src/mindustry/graphics/CacheLayer.java
+++ b/core/src/mindustry/graphics/CacheLayer.java
@@ -62,20 +62,10 @@ public enum CacheLayer{
endShader(Shaders.space);
}
},
- normal(5),
- walls(3);
+ normal,
+ walls;
public static final CacheLayer[] all = values();
- /** Capacity multiplier. */
- public final int capacity;
-
- CacheLayer(){
- this(2);
- }
-
- CacheLayer(int capacity){
- this.capacity = capacity;
- }
public void begin(){
diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java
index f1d45bebc3..b8d1f1e522 100644
--- a/core/src/mindustry/graphics/Drawf.java
+++ b/core/src/mindustry/graphics/Drawf.java
@@ -51,7 +51,7 @@ public class Drawf{
}
private static boolean allowLight(Team team){
- return team == Team.derelict || team == Vars.player.team() || state.rules.enemyLights;
+ return renderer != null && (team == Team.derelict || team == Vars.player.team() || state.rules.enemyLights);
}
public static void selected(Building tile, Color color){
@@ -136,16 +136,24 @@ public class Drawf{
Draw.reset();
}
- public static void square(float x, float y, float radius, Color color){
+ public static void square(float x, float y, float radius, float rotation, Color color){
Lines.stroke(3f, Pal.gray);
- Lines.square(x, y, radius + 1f, 45);
+ Lines.square(x, y, radius + 1f, rotation);
Lines.stroke(1f, color);
- Lines.square(x, y, radius + 1f, 45);
+ Lines.square(x, y, radius + 1f, rotation);
Draw.reset();
}
+ public static void square(float x, float y, float radius, float rotation){
+ square(x, y, radius, rotation, Pal.accent);
+ }
+
+ public static void square(float x, float y, float radius, Color color){
+ square(x, y, radius, 45, color);
+ }
+
public static void square(float x, float y, float radius){
- square(x, y, radius, Pal.accent);
+ square(x, y, radius, 45);
}
public static void arrow(float x, float y, float x2, float y2, float length, float radius){
diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java
index a3b7ff21c8..3e8d4e1fcb 100644
--- a/core/src/mindustry/graphics/FloorRenderer.java
+++ b/core/src/mindustry/graphics/FloorRenderer.java
@@ -32,7 +32,8 @@ public class FloorRenderer implements Disposable{
/**Queues up a cache change for a tile. Only runs in render loop. */
public void recacheTile(Tile tile){
- recacheSet.add(Point2.pack(tile.x / chunksize, tile.y / chunksize));
+ //currently a no-op
+ //recacheSet.add(Point2.pack(tile.x / chunksize, tile.y / chunksize));
}
public void drawFloor(){
@@ -216,7 +217,6 @@ public class FloorRenderer implements Disposable{
}
Core.batch = current;
- cbatch.reserve(layer.capacity * chunksize * chunksize);
chunk[layer.ordinal()] = cbatch.endCache();
}
diff --git a/core/src/mindustry/graphics/InverseKinematics.java b/core/src/mindustry/graphics/InverseKinematics.java
index a920dc6527..133eae78ff 100644
--- a/core/src/mindustry/graphics/InverseKinematics.java
+++ b/core/src/mindustry/graphics/InverseKinematics.java
@@ -26,4 +26,4 @@ public class InverseKinematics{
return dist > 0 && dist < lengthA;
}
-}
\ No newline at end of file
+}
diff --git a/core/src/mindustry/graphics/LightRenderer.java b/core/src/mindustry/graphics/LightRenderer.java
index 0a05c7409b..ebf1cf9187 100644
--- a/core/src/mindustry/graphics/LightRenderer.java
+++ b/core/src/mindustry/graphics/LightRenderer.java
@@ -198,4 +198,4 @@ public class LightRenderer{
lights.clear();
}
-}
\ No newline at end of file
+}
diff --git a/core/src/mindustry/graphics/LoadRenderer.java b/core/src/mindustry/graphics/LoadRenderer.java
index 35674837d6..ca66e601bf 100644
--- a/core/src/mindustry/graphics/LoadRenderer.java
+++ b/core/src/mindustry/graphics/LoadRenderer.java
@@ -48,7 +48,7 @@ public class LoadRenderer implements Disposable{
new Bar("s_proc#", OS.cores / 16f, OS.cores < 4),
new Bar("c_aprog", () -> assets != null, () -> assets.getProgress(), () -> false),
new Bar("g_vtype", graphics.getGLVersion().type == Type.GLES ? 0.5f : 1f, graphics.getGLVersion().type == Type.GLES),
- new Bar("s_mem#", () -> true, () -> Core.app.getJavaHeap() / 1024f / 1024f / 200f, () -> Core.app.getJavaHeap() > 1024*1024*110),
+ new Bar("s_mem#", () -> true, () -> Core.app.getJavaHeap() / 1024f / 1024f / 200f, () -> Core.app.getJavaHeap() > 1024 * 1024 * 110),
new Bar("v_ver#", () -> Version.build != 0, () -> Version.build == -1 ? 0.3f : (Version.build - 103f) / 10f, () -> !Version.modifier.equals("release")),
new Bar("s_osv", OS.isWindows ? 0.35f : OS.isLinux ? 0.9f : OS.isMac ? 0.5f : 0.2f, OS.isMac),
new Bar("v_worlds#", () -> Vars.control != null && Vars.control.saves != null, () -> Vars.control.saves.getSaveSlots().size / 30f, () -> Vars.control.saves.getSaveSlots().size > 30),
@@ -463,7 +463,7 @@ public class LoadRenderer implements Disposable{
Font font = assets.get("tech");
font.setColor(Pal.accent);
Draw.color(Color.black);
- font.draw(red + "[[[[ " + key + " ]]\n"+orange+"<" + Version.modifier + " " + (Version.build == 0 ? " [init]" : Version.build == -1 ? " custom" : " " + Version.build) + ">", w/2f, h/2f + 110*s, Align.center);
+ font.draw(red + "[[[[ " + key + " ]]\n" + orange + "<" + Version.modifier + " " + (Version.build == 0 ? "[init]" : Version.buildString()) + ">", w/2f, h/2f + 110*s, Align.center);
}
Draw.flush();
diff --git a/core/src/mindustry/graphics/MenuRenderer.java b/core/src/mindustry/graphics/MenuRenderer.java
index 2899efcdba..87ab169670 100644
--- a/core/src/mindustry/graphics/MenuRenderer.java
+++ b/core/src/mindustry/graphics/MenuRenderer.java
@@ -244,7 +244,7 @@ public class MenuRenderer implements Disposable{
float size = Math.max(icon.width, icon.height) * Draw.scl * 1.6f;
flyers((x, y) -> {
- Draw.rect(flyerType.region, x - 12f, y - 13f, flyerRot - 90);
+ Draw.rect(icon, x - 12f, y - 13f, flyerRot - 90);
});
flyers((x, y) -> {
@@ -264,7 +264,7 @@ public class MenuRenderer implements Disposable{
(engineSize + Mathf.absin(Time.time(), 2f, engineSize / 4f)) / 2f);
Draw.color();
- Draw.rect(flyerType.region, x, y, flyerRot - 90);
+ Draw.rect(icon, x, y, flyerRot - 90);
});
}
diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java
index 1c34b4424e..b3c39bfa27 100644
--- a/core/src/mindustry/graphics/MinimapRenderer.java
+++ b/core/src/mindustry/graphics/MinimapRenderer.java
@@ -158,7 +158,7 @@ public class MinimapRenderer implements Disposable{
private int colorFor(Tile tile){
if(tile == null) return 0;
int bc = tile.block().minimapColor(tile);
- Color color = Tmp.c1.set(bc == 0 ? MapIO.colorFor(tile.floor(), tile.block(), tile.overlay(), tile.team()) : bc);
+ Color color = Tmp.c1.set(bc == 0 ? MapIO.colorFor(tile.block(), tile.floor(), tile.overlay(), tile.team()) : bc);
color.mul(1f - Mathf.clamp(world.getDarkness(tile.x, tile.y) / 4f));
return color.rgba();
diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java
index 9bb3a95fa3..6cc1a1a851 100644
--- a/core/src/mindustry/graphics/OverlayRenderer.java
+++ b/core/src/mindustry/graphics/OverlayRenderer.java
@@ -28,7 +28,7 @@ public class OverlayRenderer{
if(player.dead()) return;
if(player.isBuilder()){
- player.builder().drawBuildRequests();
+ player.unit().drawBuildRequests();
}
input.drawBottom();
@@ -36,7 +36,7 @@ public class OverlayRenderer{
public void drawTop(){
- if(!player.dead()){
+ if(!player.dead() && ui.hudfrag.shown){
if(Core.settings.getBool("playerindicators")){
for(Player player : Groups.player){
if(Vars.player != player && Vars.player.team() == player.team()){
@@ -154,7 +154,7 @@ public class OverlayRenderer{
input.drawOverSelect();
- if(ui.hudfrag.blockfrag.hover() instanceof Unit unit && unit.controller() instanceof LogicAI ai && ai.controller instanceof Building build){
+ if(ui.hudfrag.blockfrag.hover() instanceof Unit unit && unit.controller() instanceof LogicAI ai && ai.controller instanceof Building build && build.isValid()){
Drawf.square(build.x, build.y, build.block.size * tilesize/2f + 2f);
if(!unit.within(build, unit.hitSize * 2f)){
Drawf.arrow(unit.x, unit.y, build.x, build.y, unit.hitSize *2f, 4f);
@@ -171,7 +171,7 @@ 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 && player.within(tile, itemTransferRange)){
+ if(input.canDropItem() && 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.stroke(1f, Pal.place);
diff --git a/core/src/mindustry/graphics/Pal.java b/core/src/mindustry/graphics/Pal.java
index 8bb3cd9e70..1b2b10ff94 100644
--- a/core/src/mindustry/graphics/Pal.java
+++ b/core/src/mindustry/graphics/Pal.java
@@ -5,6 +5,8 @@ import arc.graphics.*;
public class Pal{
public static Color
+ thoriumPink = Color.valueOf("f9a3c7"),
+
items = Color.valueOf("2ea756"),
command = Color.valueOf("eab678"),
@@ -96,5 +98,11 @@ public class Pal{
plasticSmoke = Color.valueOf("f1e479"),
- adminChat = Color.valueOf("ff4000");
+ adminChat = Color.valueOf("ff4000"),
+
+ logicBlocks = Color.valueOf("d4816b"),
+ logicControl = Color.valueOf("6bb2b2"),
+ logicOperations = Color.valueOf("877bad"),
+ logicIo = Color.valueOf("a08a8a"),
+ logicUnits = Color.valueOf("c7b59d");
}
diff --git a/core/src/mindustry/graphics/Shaders.java b/core/src/mindustry/graphics/Shaders.java
index cefb7b1bab..fbe0404b9f 100644
--- a/core/src/mindustry/graphics/Shaders.java
+++ b/core/src/mindustry/graphics/Shaders.java
@@ -71,8 +71,8 @@ public class Shaders{
setUniformf("u_rcampos", Tmp.v31.set(camera.position).sub(planet.position));
setUniformf("u_light", planet.getLightNormal());
setUniformf("u_color", planet.atmosphereColor.r, planet.atmosphereColor.g, planet.atmosphereColor.b);
- setUniformf("u_innerRadius", planet.radius + 0.02f);
- setUniformf("u_outerRadius", planet.radius * 1.3f);
+ setUniformf("u_innerRadius", planet.radius + planet.atmosphereRadIn);
+ setUniformf("u_outerRadius", planet.radius + planet.atmosphereRadOut);
setUniformMatrix4("u_model", planet.getTransform(mat).val);
setUniformMatrix4("u_projection", camera.combined.val);
diff --git a/core/src/mindustry/graphics/g3d/MeshBuilder.java b/core/src/mindustry/graphics/g3d/MeshBuilder.java
index dc26cec9f5..89668e2858 100644
--- a/core/src/mindustry/graphics/g3d/MeshBuilder.java
+++ b/core/src/mindustry/graphics/g3d/MeshBuilder.java
@@ -77,8 +77,6 @@ public class MeshBuilder{
if(c.length > 5){
verts(c[0].v, c[4].v, c[5].v, nor, color);
- }else{
- verts(c[0].v, c[3].v, c[4].v, nor, color);
}
}
@@ -105,6 +103,7 @@ public class MeshBuilder{
private static Mesh end(){
Mesh last = mesh;
+ last.getVerticesBuffer().limit(last.getVerticesBuffer().position());
mesh = null;
return last;
}
diff --git a/core/src/mindustry/graphics/g3d/PlanetGrid.java b/core/src/mindustry/graphics/g3d/PlanetGrid.java
index 380f937658..9b72970087 100644
--- a/core/src/mindustry/graphics/g3d/PlanetGrid.java
+++ b/core/src/mindustry/graphics/g3d/PlanetGrid.java
@@ -188,23 +188,23 @@ public class PlanetGrid{
}
static int pos(Ptile t, Ptile n){
- for(int i = 0; i < t.edgeCount; i++)
- if(t.tiles[i] == n)
- return i;
+ for(int i = 0; i < t.edgeCount; i++){
+ if(t.tiles[i] == n) return i;
+ }
return -1;
}
static int pos(Ptile t, Corner c){
- for(int i = 0; i < t.edgeCount; i++)
- if(t.corners[i] == c)
- return i;
+ for(int i = 0; i < t.edgeCount; i++){
+ if(t.corners[i] == c) return i;
+ }
return -1;
}
static int pos(Corner c, Corner n){
- for(int i = 0; i < 3; i++)
- if(c.corners[i] == n)
- return i;
+ for(int i = 0; i < 3; i++){
+ if(c.corners[i] == n) return i;
+ }
return -1;
}
diff --git a/core/src/mindustry/graphics/g3d/PlanetRenderer.java b/core/src/mindustry/graphics/g3d/PlanetRenderer.java
index 405d668333..46fcef4edf 100644
--- a/core/src/mindustry/graphics/g3d/PlanetRenderer.java
+++ b/core/src/mindustry/graphics/g3d/PlanetRenderer.java
@@ -18,10 +18,10 @@ import mindustry.type.*;
public class PlanetRenderer implements Disposable{
public static final float outlineRad = 1.17f, camLength = 4f;
public static final Color
- outlineColor = Pal.accent.cpy().a(1f),
- hoverColor = Pal.accent.cpy().a(0.5f),
- borderColor = Pal.accent.cpy().a(0.3f),
- shadowColor = new Color(0, 0, 0, 0.7f);
+ outlineColor = Pal.accent.cpy().a(1f),
+ hoverColor = Pal.accent.cpy().a(0.5f),
+ borderColor = Pal.accent.cpy().a(0.3f),
+ shadowColor = new Color(0, 0, 0, 0.7f);
private static final Seq points = new Seq<>();
@@ -57,6 +57,7 @@ public class PlanetRenderer implements Disposable{
camPos.set(0, 0f, camLength);
projector.setScaling(1f / 150f);
cam.fov = 60f;
+ cam.far = 150f;
}
/** Render the entire planet scene to the screen. */
@@ -93,13 +94,15 @@ public class PlanetRenderer implements Disposable{
renderPlanet(solarSystem);
+ renderTransparent(solarSystem);
+
endBloom();
Events.fire(Trigger.universeDrawEnd);
Gl.enable(Gl.blend);
- irenderer.renderProjections();
+ irenderer.renderProjections(planet);
Gl.disable(Gl.cullFace);
Gl.disable(Gl.depthTest);
@@ -119,17 +122,27 @@ public class PlanetRenderer implements Disposable{
public void renderPlanet(Planet planet){
if(!planet.visible()) return;
-
+
//render planet at offsetted position in the world
planet.draw(cam.combined, planet.getTransform(mat));
renderOrbit(planet);
+ for(Planet child : planet.children){
+ renderPlanet(child);
+ }
+ }
+
+ public void renderTransparent(Planet planet){
+ if(!planet.visible()) return;
+
if(planet.isLandable() && planet == this.planet){
renderSectors(planet);
}
if(planet.parent != null && planet.hasAtmosphere && Core.settings.getBool("atmosphere")){
+ Gl.depthMask(false);
+
Blending.additive.apply();
Shaders.atmosphere.camera = cam;
@@ -140,10 +153,12 @@ public class PlanetRenderer implements Disposable{
atmosphere.render(Shaders.atmosphere, Gl.triangles);
Blending.normal.apply();
+
+ Gl.depthMask(true);
}
for(Planet child : planet.children){
- renderPlanet(child);
+ renderTransparent(child);
}
}
@@ -152,7 +167,7 @@ public class PlanetRenderer implements Disposable{
Vec3 center = planet.parent.position;
float radius = planet.orbitRadius;
- int points = (int)(radius * 50);
+ int points = (int)(radius * 10);
Angles.circleVectors(points, radius, (cx, cy) -> batch.vertex(Tmp.v32.set(center).add(cx, 0, cy), Pal.gray));
batch.flush(Gl.lineLoop);
}
@@ -177,17 +192,23 @@ public class PlanetRenderer implements Disposable{
}
public void drawArc(Planet planet, Vec3 a, Vec3 b){
+ drawArc(planet, a, b, Pal.accent, Color.clear, 1f);
+ }
+ public void drawArc(Planet planet, Vec3 a, Vec3 b, Color from, Color to, float length){
+ drawArc(planet, a, b, from, to, length, 80f, 25);
+ }
+
+ public void drawArc(Planet planet, Vec3 a, Vec3 b, Color from, Color to, float length, float timeScale, int pointCount){
Vec3 avg = Tmp.v31.set(b).add(a).scl(0.5f);
- avg.setLength(planet.radius*2f);
+ avg.setLength(planet.radius*(1f+length));
points.clear();
points.addAll(Tmp.v33.set(b).setLength(outlineRad), Tmp.v31, Tmp.v34.set(a).setLength(outlineRad));
Tmp.bz3.set(points);
- float points = 25;
- for(int i = 0; i < points + 1; i++){
- float f = i / points;
- Tmp.c1.set(Pal.accent).lerp(Color.clear, (f+Time.globalTime()/80f)%1f);
+ for(int i = 0; i < pointCount + 1; i++){
+ float f = i / (float)pointCount;
+ Tmp.c1.set(from).lerp(to, (f+Time.globalTime()/timeScale)%1f);
batch.color(Tmp.c1);
batch.vertex(Tmp.bz3.valueAt(Tmp.v32, f));
@@ -312,6 +333,6 @@ public class PlanetRenderer implements Disposable{
public interface PlanetInterfaceRenderer{
void renderSectors(Planet planet);
- void renderProjections();
+ void renderProjections(Planet planet);
}
}
diff --git a/core/src/mindustry/input/Binding.java b/core/src/mindustry/input/Binding.java
index 75655412cb..0f1ecd4339 100644
--- a/core/src/mindustry/input/Binding.java
+++ b/core/src/mindustry/input/Binding.java
@@ -58,6 +58,8 @@ public enum Binding implements KeyBind{
fullscreen(KeyCode.f11),
pause(KeyCode.space),
minimap(KeyCode.m),
+ research(KeyCode.b),
+ planet_map(KeyCode.n),
toggle_menus(KeyCode.c),
screenshot(KeyCode.p),
toggle_power_lines(KeyCode.f5),
diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java
index 049853c864..ddc84131ba 100644
--- a/core/src/mindustry/input/DesktopInput.java
+++ b/core/src/mindustry/input/DesktopInput.java
@@ -43,11 +43,11 @@ public class DesktopInput extends InputHandler{
/** Whether player is currently deleting removal requests. */
public boolean deleting = false, shouldShoot = false, panning = false;
/** Mouse pan speed. */
- public float panScale = 0.005f, panSpeed = 4.5f, panBoostSpeed = 9f;
+ public float panScale = 0.005f, panSpeed = 4.5f, panBoostSpeed = 11f;
@Override
public void buildUI(Group group){
-
+ //respawn hints
group.fill(t -> {
t.visible(() -> Core.settings.getBool("hints") && ui.hudfrag.shown && !player.dead() && !player.unit().spawnedByCore() && !(Core.settings.getBool("hints") && lastSchematic != null && !selectRequests.isEmpty()));
t.bottom();
@@ -57,12 +57,13 @@ public class DesktopInput extends InputHandler{
}).margin(6f);
});
+ //building hints
group.fill(t -> {
t.bottom();
t.visible(() -> {
- t.color.a = Mathf.lerpDelta(t.color.a, player.builder().isBuilding() ? 1f : 0f, 0.15f);
+ t.color.a = Mathf.lerpDelta(t.color.a, player.unit().isBuilding() ? 1f : 0f, 0.15f);
- return Core.settings.getBool("hints") && selectRequests.isEmpty() && t.color.a > 0.01f;
+ return ui.hudfrag.shown && Core.settings.getBool("hints") && selectRequests.isEmpty() && t.color.a > 0.01f;
});
t.touchable(() -> t.color.a < 0.1f ? Touchable.disabled : Touchable.childrenOnly);
t.table(Styles.black6, b -> {
@@ -75,8 +76,9 @@ public class DesktopInput extends InputHandler{
}).margin(10f);
});
+ //schematic controls
group.fill(t -> {
- t.visible(() -> lastSchematic != null && !selectRequests.isEmpty());
+ t.visible(() -> ui.hudfrag.shown && lastSchematic != null && !selectRequests.isEmpty());
t.bottom();
t.table(Styles.black6, b -> {
b.defaults().left();
@@ -184,7 +186,7 @@ public class DesktopInput extends InputHandler{
boolean panCam = false;
float camSpeed = (!Core.input.keyDown(Binding.boost) ? panSpeed : panBoostSpeed) * Time.delta;
- if(input.keyDown(Binding.pan)){
+ if(input.keyDown(Binding.pan) && !scene.hasField() && !scene.hasDialog()){
panCam = true;
panning = true;
}
@@ -194,7 +196,7 @@ public class DesktopInput extends InputHandler{
}
//TODO awful UI state checking code
- if(((player.dead() || state.isPaused()) && !ui.chatfrag.shown()) && (!scene.hasField() && !scene.hasDialog())){
+ if(((player.dead() || state.isPaused()) && !ui.chatfrag.shown()) && !scene.hasField() && !scene.hasDialog()){
if(input.keyDown(Binding.mouse_move)){
panCam = true;
}
@@ -235,8 +237,10 @@ public class DesktopInput extends InputHandler{
player.shooting = false;
}
- if(state.isGame() && Core.input.keyTap(Binding.minimap) && !scene.hasDialog() && !(scene.getKeyboardFocus() instanceof TextField)){
- ui.minimapfrag.toggle();
+ if(state.isGame() && !scene.hasDialog() && !(scene.getKeyboardFocus() instanceof TextField)){
+ if(Core.input.keyTap(Binding.minimap)) ui.minimapfrag.toggle();
+ if(Core.input.keyTap(Binding.planet_map) && state.isCampaign()) ui.planet.toggle();
+ if(Core.input.keyTap(Binding.research) && state.isCampaign()) ui.research.toggle();
}
if(state.isMenu() || Core.scene.hasDialog()) return;
@@ -279,7 +283,7 @@ public class DesktopInput extends InputHandler{
if(isPlacing() && mode == placing){
updateLine(selectX, selectY);
- }else if(!selectRequests.isEmpty()){
+ }else if(!selectRequests.isEmpty() && !ui.chatfrag.shown()){
rotateRequests(selectRequests, Mathf.sign(Core.input.axisTap(Binding.rotate)));
}
}
@@ -291,7 +295,7 @@ public class DesktopInput extends InputHandler{
cursorType = cursor.build.getCursor();
}
- if(isPlacing() || !selectRequests.isEmpty()){
+ if((isPlacing() && player.isBuilder()) || !selectRequests.isEmpty()){
cursorType = SystemCursor.hand;
}
@@ -345,6 +349,10 @@ public class DesktopInput extends InputHandler{
ui.schematics.show();
}).tooltip("@schematics");
+ table.button(Icon.book, Styles.clearPartiali, () -> {
+ ui.database.show();
+ }).tooltip("@database");
+
table.button(Icon.tree, Styles.clearPartiali, () -> {
ui.research.show();
}).visible(() -> state.isCampaign()).tooltip("@research");
@@ -352,8 +360,6 @@ public class DesktopInput extends InputHandler{
table.button(Icon.map, Styles.clearPartiali, () -> {
ui.planet.show();
}).visible(() -> state.isCampaign()).tooltip("@planetmap");
-
- table.add();
}
void pollInput(){
@@ -365,7 +371,7 @@ public class DesktopInput extends InputHandler{
int rawCursorX = World.toTile(Core.input.mouseWorld().x), rawCursorY = World.toTile(Core.input.mouseWorld().y);
// automatically pause building if the current build queue is empty
- if(Core.settings.getBool("buildautopause") && isBuilding && !player.builder().isBuilding()){
+ if(Core.settings.getBool("buildautopause") && isBuilding && !player.unit().isBuilding()){
isBuilding = false;
buildWasAutoPaused = true;
}
@@ -382,12 +388,12 @@ public class DesktopInput extends InputHandler{
schematicY += shiftY;
}
- if(Core.input.keyTap(Binding.deselect)){
- player.miner().mineTile(null);
+ if(Core.input.keyTap(Binding.deselect) && !isPlacing()){
+ player.unit().mineTile = null;
}
if(Core.input.keyTap(Binding.clear_building)){
- player.builder().clearBuilding();
+ player.unit().clearBuilding();
}
if(Core.input.keyTap(Binding.schematic_select) && !Core.scene.hasKeyboard() && mode != breaking){
@@ -400,7 +406,6 @@ public class DesktopInput extends InputHandler{
ui.schematics.hide();
}else{
ui.schematics.show();
- ui.schematics.focusSearchField();
}
}
@@ -480,8 +485,8 @@ public class DesktopInput extends InputHandler{
deleting = true;
}else if(selected != null){
//only begin shooting if there's no cursor event
- if(!tileTapped(selected.build) && !tryTapPlayer(Core.input.mouseWorld().x, Core.input.mouseWorld().y) && (player.builder().plans().size == 0 || !player.builder().updateBuilding()) && !droppingItem &&
- !tryBeginMine(selected) && player.miner().mineTile() == null && !Core.scene.hasKeyboard()){
+ if(!tryTapPlayer(Core.input.mouseWorld().x, Core.input.mouseWorld().y) && !tileTapped(selected.build) && !player.unit().activelyBuilding() && !droppingItem &&
+ !tryBeginMine(selected) && player.unit().mineTile == null && !Core.scene.hasKeyboard()){
player.shooting = shouldShoot;
}
}else if(!Core.scene.hasKeyboard()){ //if it's out of bounds, shooting is just fine
@@ -506,7 +511,7 @@ public class DesktopInput extends InputHandler{
if(Core.input.keyDown(Binding.select) && mode == none && !isPlacing() && deleting){
BuildPlan req = getRequest(cursorX, cursorY);
if(req != null && req.breaking){
- player.builder().plans().remove(req);
+ player.unit().plans().remove(req);
}
}else{
deleting = false;
@@ -547,7 +552,7 @@ public class DesktopInput extends InputHandler{
if(sreq != null){
if(getRequest(sreq.x, sreq.y, sreq.block.size, sreq) != null){
- player.builder().plans().remove(sreq, true);
+ player.unit().plans().remove(sreq, true);
}
sreq = null;
}
@@ -601,16 +606,7 @@ public class DesktopInput extends InputHandler{
boolean omni = unit.type.omniMovement;
boolean ground = unit.isGrounded();
- float strafePenalty = ground ? 1f : Mathf.lerp(1f, unit.type.strafePenalty, Angles.angleDist(unit.vel().angle(), unit.rotation()) / 180f);
- float baseSpeed = unit.type.speed;
-
- //limit speed to minimum formation speed to preserve formation
- if(unit.isCommanding()){
- //add a tiny multiplier to let units catch up just in case
- baseSpeed = unit.minFormationSpeed * 0.95f;
- }
-
- float speed = baseSpeed * Mathf.lerp(1f, unit.type.canBoost ? unit.type.boostMultiplier : 1f, unit.elevation) * strafePenalty;
+ float speed = unit.realSpeed();
float xa = Core.input.axis(Binding.move_x);
float ya = Core.input.axis(Binding.move_y);
boolean boosted = (unit instanceof Mechc && unit.isFlying());
@@ -626,9 +622,7 @@ public class DesktopInput extends InputHandler{
if(aimCursor){
unit.lookAt(mouseAngle);
}else{
- if(!movement.isZero()){
- unit.lookAt(unit.vel.isZero() ? movement.angle() : unit.vel.angle());
- }
+ unit.lookAt(unit.prefRotation());
}
if(omni){
@@ -649,7 +643,6 @@ public class DesktopInput extends InputHandler{
//update payload input
if(unit instanceof Payloadc){
-
if(Core.input.keyTap(Binding.pickupCargo)){
tryPickupPayload();
}
@@ -660,7 +653,7 @@ public class DesktopInput extends InputHandler{
}
//update commander unit
- if(Core.input.keyTap(Binding.command)){
+ if(Core.input.keyTap(Binding.command) && unit.type.commandLimit > 0){
Call.unitCommand(player);
}
}
diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java
index 99103da3d7..c2ab8423c9 100644
--- a/core/src/mindustry/input/InputHandler.java
+++ b/core/src/mindustry/input/InputHandler.java
@@ -46,14 +46,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
final static float playerSelectRange = mobile ? 17f : 11f;
/** Maximum line length. */
final static int maxLength = 100;
- final static Vec2 stackTrns = new Vec2();
final static Rect r1 = new Rect(), r2 = new Rect();
- final static Seq units = new Seq<>();
- /** Distance on the back from where items originate. */
- final static float backTrns = 3f;
public final OverlayFragment frag = new OverlayFragment();
+ public Interval controlInterval = new Interval();
public @Nullable Block block;
public boolean overrideLineRotation;
public int rotation;
@@ -87,7 +84,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
to.addItem(item, removed);
for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){
- Time.run(j * 3f, () -> Call.transferItemEffect(item, build.x, build.y, to));
+ Time.run(j * 3f, () -> transferItemEffect(item, build.x, build.y, to));
}
}
@@ -100,7 +97,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
@Remote(called = Loc.server, unreliable = true)
public static void transferItemTo(Item item, int amount, float x, float y, Building build){
if(build == null || build.items == null) return;
- for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){
+ for(int i = 0; i < Mathf.clamp(amount / 5, 1, 8); i++){
Time.run(i * 3, () -> createItemTransfer(item, amount, x, y, build, () -> {}));
}
build.items.add(item, amount);
@@ -126,29 +123,53 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
@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()) || !player.within(tile, buildingRange) || player.dead()) 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;
- action.itemAmount = fa;
- }))) throw new ValidateException(player, "Player cannot request items.");
-
- int removed = tile.removeStack(item, amount);
-
- player.unit().addItem(item, removed);
- Events.fire(new WithdrawEvent(tile, player, item, amount));
- for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){
- Time.run(j * 3f, () -> Call.transferItemEffect(item, tile.x, tile.y, player.unit()));
+ action.itemAmount = amount;
+ }))){
+ throw new ValidateException(player, "Player cannot request items.");
}
+
+ //remove item for every controlling unit
+ player.unit().eachGroup(unit -> {
+ Call.takeItems(tile, item, unit.maxAccepted(item), unit);
+
+ if(unit == player.unit()){
+ Events.fire(new WithdrawEvent(tile, player, item, amount));
+ }
+ });
+ }
+
+ @Remote(targets = Loc.both, forward = true, called = Loc.server)
+ public static void transferInventory(Player player, Building tile){
+ if(player == null || tile == null || !player.within(tile, buildingRange) || tile.items == null || player.dead()) return;
+
+ if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, tile) ||
+ !netServer.admins.allowAction(player, ActionType.depositItem, tile.tile, action -> {
+ action.itemAmount = player.unit().stack.amount;
+ action.item = player.unit().item();
+ }))){
+ throw new ValidateException(player, "Player cannot transfer an item.");
+ }
+
+ //deposit for every controlling unit
+ player.unit().eachGroup(unit -> {
+ Item item = unit.item();
+ int accepted = tile.acceptStack(item, unit.stack.amount, unit);
+
+ Call.transferItemTo(unit, item, accepted, unit.x, unit.y, tile);
+
+ if(unit == player.unit()){
+ Events.fire(new DepositEvent(tile, player, item, accepted));
+ }
+ });
}
@Remote(variants = Variant.one)
public static void removeQueueBlock(int x, int y, boolean breaking){
- player.builder().removeBuild(x, y, breaking);
+ player.unit().removeBuild(x, y, breaking);
}
@Remote(targets = Loc.both, called = Loc.server)
@@ -276,37 +297,6 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
tile.noSleep();
}
- @Remote(targets = Loc.both, forward = true, called = Loc.server)
- public static void transferInventory(Player player, Building tile){
- if(player == null || tile == null || !player.within(tile, buildingRange) || tile.items == null || player.dead()) return;
-
- if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, tile) ||
- !netServer.admins.allowAction(player, ActionType.depositItem, tile.tile, action -> {
- action.itemAmount = player.unit().stack.amount;
- action.item = player.unit().item();
- }))){
- throw new ValidateException(player, "Player cannot transfer an item.");
- }
-
- Item item = player.unit().item();
- int amount = player.unit().stack.amount;
- int accepted = tile.acceptStack(item, amount, player.unit());
- player.unit().stack.amount -= accepted;
-
- Core.app.post(() -> Events.fire(new DepositEvent(tile, player, item, accepted)));
-
- tile.getStackOffset(item, stackTrns);
- tile.handleStack(item, accepted, player.unit());
-
- createItemTransfer(
- item,
- amount,
- player.x + Angles.trnsx(player.unit().rotation + 180f, backTrns), player.y + Angles.trnsy(player.unit().rotation + 180f, backTrns),
- new Vec2(tile.x + stackTrns.x, tile.y + stackTrns.y),
- () -> {}
- );
- }
-
@Remote(targets = Loc.both, called = Loc.both, forward = true)
public static void tileConfig(@Nullable Player player, Building tile, @Nullable Object value){
if(tile == null) return;
@@ -329,8 +319,13 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
public static void unitControl(Player player, @Nullable Unit unit){
if(player == null) return;
+ //make sure player is allowed to control the unit
+ if(net.server() && !netServer.admins.allowAction(player, ActionType.control, action -> action.unit = unit)){
+ throw new ValidateException(player, "Player cannot control a unit.");
+ }
+
//clear player unit when they possess a core
- if((unit instanceof BlockUnitc && ((BlockUnitc)unit).tile() instanceof CoreBuild)){
+ if(unit instanceof BlockUnitc block && block.tile() instanceof CoreBuild build){
Fx.spawn.at(player);
if(net.client()){
control.input.controlledType = null;
@@ -338,8 +333,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
player.clearUnit();
player.deathTimer = 61f;
- ((CoreBuild)((BlockUnitc)unit).tile()).requestSpawn(player);
-
+ build.requestSpawn(player);
}else if(unit == null){ //just clear the unit (is this used?)
player.clearUnit();
//make sure it's AI controlled, so players can't overwrite each other
@@ -353,6 +347,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Fx.unitSpirit.at(player.x, player.y, 0f, unit);
}
}
+
+ Events.fire(new UnitControlEvent(player, unit));
}
@Remote(targets = Loc.both, called = Loc.both, forward = true)
@@ -369,6 +365,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
public static void unitCommand(Player player){
if(player == null || player.dead() || !(player.unit() instanceof Commanderc commander)) return;
+ //make sure player is allowed to make the command
+ if(net.server() && !netServer.admins.allowAction(player, ActionType.command, action -> {})){
+ throw new ValidateException(player, "Player cannot command a unit.");
+ }
+
if(commander.isCommanding()){
commander.clearCommand();
}else if(player.unit().type.commandLimit > 0){
@@ -382,7 +383,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
public Eachable allRequests(){
return cons -> {
- for(BuildPlan request : player.builder().plans()) cons.get(request);
+ for(BuildPlan request : player.unit().plans()) cons.get(request);
for(BuildPlan request : selectRequests) cons.get(request);
for(BuildPlan request : lineRequests) cons.get(request);
};
@@ -400,7 +401,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
player.typing = ui.chatfrag.shown();
if(player.isBuilder()){
- player.builder().updateBuilding(isBuilding);
+ player.unit().updateBuilding(isBuilding);
}
if(player.shooting && !wasShooting && player.unit().hasWeapons() && state.rules.unitAmmo && player.unit().ammo <= 0){
@@ -417,7 +418,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type == controlledType && !u.dead);
if(unit != null){
- Call.unitControl(player, unit);
+ //only trying controlling once a second to prevent packet spam
+ if(!net.client() || controlInterval.get(0, 70f)){
+ Call.unitControl(player, unit);
+ }
}
}
}
@@ -542,6 +546,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
schematics.add(lastSchematic);
ui.showInfoFade("@schematic.saved");
ui.schematics.showInfo(lastSchematic);
+ Events.fire(new SchematicCreateEvent(lastSchematic));
}
});
}
@@ -648,7 +653,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
return r2.overlaps(r1);
};
- for(BuildPlan req : player.builder().plans()){
+ for(BuildPlan req : player.unit().plans()){
if(test.get(req)) return req;
}
@@ -673,7 +678,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Draw.color(Pal.remove);
Lines.stroke(1f);
- for(BuildPlan req : player.builder().plans()){
+ for(BuildPlan req : player.unit().plans()){
if(req.breaking) continue;
if(req.bounds(Tmp.r2).overlaps(Tmp.r1)){
drawBreaking(req);
@@ -735,7 +740,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
for(BuildPlan req : requests){
if(req.block != null && validPlace(req.x, req.y, req.block, req.rotation)){
BuildPlan copy = req.copy();
- player.builder().addBuild(copy);
+ player.unit().addBuild(copy);
}
}
}
@@ -773,7 +778,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
/** 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);
+ removeSelection(x1, y1, x2, y2, flush, maxLength);
}
/** Remove everything from the queue in a selection. */
@@ -799,7 +804,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
//remove build requests
Tmp.r1.set(result.x * tilesize, result.y * tilesize, (result.x2 - result.x) * tilesize, (result.y2 - result.y) * tilesize);
- Iterator it = player.builder().plans().iterator();
+ Iterator it = player.unit().plans().iterator();
while(it.hasNext()){
BuildPlan req = it.next();
if(!req.breaking && req.bounds(Tmp.r2).overlaps(Tmp.r1)){
@@ -920,7 +925,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
boolean tryBeginMine(Tile tile){
if(canMine(tile)){
//if a block is clicked twice, reset it
- player.miner().mineTile(player.miner().mineTile() == tile ? null : tile);
+ player.unit().mineTile = player.unit().mineTile == tile ? null : tile;
return true;
}
return false;
@@ -928,10 +933,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
boolean canMine(Tile tile){
return !Core.scene.hasMouse()
- && tile.drop() != null && player.miner().canMine(tile.drop())
- && !(tile.floor().playerUnmineable && tile.overlay().itemDrop == null)
- && player.unit().acceptsItem(tile.drop())
- && tile.block() == Blocks.air && player.dst(tile.worldx(), tile.worldy()) <= miningRange;
+ && tile.drop() != null
+ && player.unit().validMine(tile)
+ && !(tile.floor().playerUnmineable && tile.overlay().itemDrop == null)
+ && player.unit().acceptsItem(tile.drop())
+ && tile.block() == Blocks.air;
}
/** Returns the tile at the specified MOUSE coordinates. */
@@ -980,7 +986,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
public @Nullable Unit selectedUnit(){
- Unit unit = Units.closest(player.team(), Core.input.mouseWorld().x, Core.input.mouseWorld().y, 40f, u -> u.isAI());
+ Unit unit = Units.closest(player.team(), Core.input.mouseWorld().x, Core.input.mouseWorld().y, 40f, Unitc::isAI);
if(unit != null){
unit.hitbox(Tmp.r1);
Tmp.r1.grow(6f);
@@ -1038,7 +1044,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
public boolean canShoot(){
- return block == null && !onConfigurable() && !isDroppingItem() && !(player.builder().updateBuilding() && player.builder().isBuilding()) &&
+ return block == null && !onConfigurable() && !isDroppingItem() && !player.unit().activelyBuilding() &&
!(player.unit() instanceof Mechc && player.unit().isFlying());
}
@@ -1050,6 +1056,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
return droppingItem;
}
+ public boolean canDropItem(){
+ return droppingItem && !canTapPlayer(Core.input.mouseWorldX(), Core.input.mouseWorldY());
+ }
+
public void tryDropItems(@Nullable Building tile, float x, float y){
if(!droppingItem || player.unit().stack.amount <= 0 || canTapPlayer(x, y) || state.isPaused() ){
droppingItem = false;
@@ -1084,7 +1094,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
public boolean validPlace(int x, int y, Block type, int rotation, BuildPlan ignore){
- for(BuildPlan req : player.builder().plans()){
+ for(BuildPlan req : player.unit().plans()){
if(req != ignore
&& !req.breaking
&& req.block.bounds(req.x, req.y, Tmp.r1).overlaps(type.bounds(x, y, Tmp.r2))
@@ -1102,15 +1112,15 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
public void placeBlock(int x, int y, Block block, int rotation){
BuildPlan req = getRequest(x, y);
if(req != null){
- player.builder().plans().remove(req);
+ player.unit().plans().remove(req);
}
- player.builder().addBuild(new BuildPlan(x, y, rotation, block, block.nextConfig()));
+ player.unit().addBuild(new BuildPlan(x, y, rotation, block, block.nextConfig()));
}
public void breakBlock(int x, int y){
Tile tile = world.tile(x, y);
if(tile != null && tile.build != null) tile = tile.build.tile;
- player.builder().addBuild(new BuildPlan(tile.x, tile.y));
+ player.unit().addBuild(new BuildPlan(tile.x, tile.y));
}
public void drawArrow(Block block, int x, int y, int rotation){
@@ -1156,7 +1166,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
if(block instanceof PowerNode){
Seq skip = new Seq<>();
-
+
for(int i = 1; i < points.size; i++){
int overlaps = 0;
Point2 point = points.get(i);
@@ -1196,7 +1206,14 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
line.x = point.x;
line.y = point.y;
if(!overrideLineRotation || diagonal){
- line.rotation = next != null ? Tile.relativeTo(point.x, point.y, next.x, next.y) : baseRotation;
+ if(next != null){
+ line.rotation = Tile.relativeTo(point.x, point.y, next.x, next.y);
+ }else if(block.conveyorPlacement && i > 0){
+ Point2 prev = points.get(i - 1);
+ line.rotation = Tile.relativeTo(prev.x, prev.y, point.x, point.y);
+ }else{
+ line.rotation = baseRotation;
+ }
}else{
line.rotation = rotation;
}
diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java
index 63df6c151b..8baf077073 100644
--- a/core/src/mindustry/input/MobileInput.java
+++ b/core/src/mindustry/input/MobileInput.java
@@ -79,16 +79,13 @@ public class MobileInput extends InputHandler implements GestureListener{
Unit unit = Units.closestEnemy(player.team(), x, y, 20f, u -> !u.dead);
if(unit != null){
- player.miner().mineTile(null);
+ player.unit().mineTile = null;
target = unit;
}else{
Building tile = world.buildWorld(x, y);
- if(tile != null && player.team().isEnemy(tile.team)){
- player.miner().mineTile(null);
- target = tile;
- }else if(tile != null && player.unit().type.canHeal && tile.team == player.team() && tile.damaged()){
- player.miner().mineTile(null);
+ if((tile != null && player.team().isEnemy(tile.team) && tile.team != Team.derelict) || (tile != null && player.unit().type.canHeal && tile.team == player.team() && tile.damaged())){
+ player.unit().mineTile = null;
target = tile;
}
}
@@ -117,7 +114,7 @@ public class MobileInput extends InputHandler implements GestureListener{
}
}
- for(BuildPlan req : player.builder().plans()){
+ for(BuildPlan req : player.unit().plans()){
Tile other = world.tile(req.x, req.y);
if(other == null || req.breaking) continue;
@@ -205,7 +202,7 @@ public class MobileInput extends InputHandler implements GestureListener{
boolean arrow = block != null && block.rotate;
i.getImage().setRotationOrigin(!arrow ? 0 : rotation * 90, Align.center);
- i.getStyle().imageUp = arrow ? Icon.right : Icon.paste;
+ i.getStyle().imageUp = arrow ? Icon.right : Icon.copy;
i.setChecked(!arrow && schematicMode);
});
@@ -222,10 +219,10 @@ public class MobileInput extends InputHandler implements GestureListener{
BuildPlan copy = request.copy();
if(other == null){
- player.builder().addBuild(copy);
+ player.unit().addBuild(copy);
}else if(!other.breaking && other.x == request.x && other.y == request.y && other.block.size == request.block.size){
- player.builder().plans().remove(other);
- player.builder().addBuild(copy);
+ player.unit().plans().remove(other);
+ player.unit().addBuild(copy);
}
}
@@ -248,14 +245,14 @@ public class MobileInput extends InputHandler implements GestureListener{
Boolp schem = () -> lastSchematic != null && !selectRequests.isEmpty();
group.fill(t -> {
- t.visible(() -> (player.builder().isBuilding() || block != null || mode == breaking || !selectRequests.isEmpty()) && !schem.get());
+ t.visible(() -> (player.unit().isBuilding() || block != null || mode == breaking || !selectRequests.isEmpty()) && !schem.get());
t.bottom().left();
t.button("@cancel", Icon.cancel, () -> {
- player.builder().clearBuilding();
+ player.unit().clearBuilding();
selectRequests.clear();
mode = none;
block = null;
- }).width(155f).margin(12f);
+ }).width(155f).height(50f).margin(12f);
});
group.fill(t -> {
@@ -327,7 +324,6 @@ public class MobileInput extends InputHandler implements GestureListener{
@Override
public void drawTop(){
-
//draw schematic selection
if(mode == schematicSelect){
drawSelection(lineStartX, lineStartY, lastLineX, lastLineY, Vars.maxSchematicSize);
@@ -613,7 +609,7 @@ public class MobileInput extends InputHandler implements GestureListener{
//reset payload target
payloadTarget = null;
//apply command on double tap when own unit is tapped
- if(Mathf.within(worldx, worldy, player.unit().x, player.unit().y, player.unit().hitSize * 0.6f + 8f)){
+ if(!player.dead() && Mathf.within(worldx, worldy, player.unit().x, player.unit().y, player.unit().hitSize * 0.6f + 8f) && player.unit().type.commandLimit > 0){
Call.unitCommand(player);
}else{
//control a unit/block
@@ -855,17 +851,8 @@ public class MobileInput extends InputHandler implements GestureListener{
targetPos.set(Core.camera.position);
float attractDst = 15f;
- float strafePenalty = legs ? 1f : Mathf.lerp(1f, type.strafePenalty, Angles.angleDist(unit.vel.angle(), unit.rotation) / 180f);
- float baseSpeed = unit.type.speed;
-
- //limit speed to minimum formation speed to preserve formation
- if(unit.isCommanding()){
- //add a tiny multiplier to let units catch up just in case
- baseSpeed = unit.minFormationSpeed * 0.98f;
- }
-
- float speed = baseSpeed * Mathf.lerp(1f, type.canBoost ? type.boostMultiplier : 1f, unit.elevation) * strafePenalty;
+ float speed = unit.realSpeed();
float range = unit.hasWeapons() ? unit.range() : 0f;
float bulletSpeed = unit.hasWeapons() ? type.weapons.first().bullet.speed : 0f;
float mouseAngle = unit.angleTo(unit.aimX(), unit.aimY());
@@ -874,9 +861,7 @@ public class MobileInput extends InputHandler implements GestureListener{
if(aimCursor){
unit.lookAt(mouseAngle);
}else{
- if(unit.moving()){
- unit.lookAt(unit.vel.angle());
- }
+ unit.lookAt(unit.prefRotation());
}
if(payloadTarget != null && unit instanceof Payloadc pay){
@@ -906,7 +891,7 @@ public class MobileInput extends InputHandler implements GestureListener{
if(player.within(targetPos, attractDst)){
movement.setZero();
- unit.vel.approachDelta(Vec2.ZERO, type.speed * type.accel / 2f);
+ unit.vel.approachDelta(Vec2.ZERO, unit.speed() * type.accel / 2f);
}
float expansion = 3f;
@@ -929,7 +914,7 @@ public class MobileInput extends InputHandler implements GestureListener{
}
//update shooting if not building + not mining
- if(!player.builder().isBuilding() && player.miner().mineTile() == null){
+ if(!player.unit().isBuilding() && player.unit().mineTile == null){
//autofire targeting
if(manualShooting){
@@ -948,7 +933,9 @@ public class MobileInput extends InputHandler implements GestureListener{
}
}
- unit.aim(Tmp.v1.trns(unit.rotation, 1000f).add(unit));
+ //when not shooting, aim at mouse cursor
+ //this may be a bad idea, aiming for a point far in front could work better, test it out
+ unit.aim(Core.input.mouseWorldX(), Core.input.mouseWorldY());
}else{
Vec2 intercept = Predict.intercept(unit, target, bulletSpeed);
diff --git a/core/src/mindustry/input/Placement.java b/core/src/mindustry/input/Placement.java
index d2c3eb7d41..1d713f7f75 100644
--- a/core/src/mindustry/input/Placement.java
+++ b/core/src/mindustry/input/Placement.java
@@ -188,7 +188,6 @@ public class Placement{
* @param maxLength maximum length of area
*/
public static NormalizeResult normalizeArea(int tilex, int tiley, int endx, int endy, int rotation, boolean snap, int maxLength){
-
if(snap){
if(Math.abs(tilex - endx) > Math.abs(tiley - endy)){
endy = tiley;
diff --git a/core/src/mindustry/io/MapIO.java b/core/src/mindustry/io/MapIO.java
index f88ebf9a37..18f6a712bd 100644
--- a/core/src/mindustry/io/MapIO.java
+++ b/core/src/mindustry/io/MapIO.java
@@ -80,20 +80,13 @@ public class MapIO{
@Override
public void setBlock(Block type){
super.setBlock(type);
- int c = colorFor(Blocks.air, block(), Blocks.air, team());
+
+ int c = colorFor(block(), Blocks.air, Blocks.air, team());
if(c != black){
walls.draw(x, floors.getHeight() - 1 - y, c);
floors.draw(x, floors.getHeight() - 1 - y + 1, shade);
}
}
-
- @Override
- public void setTeam(Team team){
- super.setTeam(team);
- if(block instanceof CoreBlock){
- map.teams.add(team.id);
- }
- }
};
ver.region("content", stream, counter, ver::readContentHeader);
@@ -107,6 +100,27 @@ public class MapIO{
world.setGenerating(false);
}
+ @Override
+ public void onReadBuilding(){
+ //read team colors
+ if(tile.build != null){
+ int c = tile.build.team.color.rgba8888();
+ int size = tile.block().size;
+ int offsetx = -(size - 1) / 2;
+ int offsety = -(size - 1) / 2;
+ for(int dx = 0; dx < size; dx++){
+ for(int dy = 0; dy < size; dy++){
+ int drawx = tile.x + dx + offsetx, drawy = tile.y + dy + offsety;
+ walls.draw(drawx, floors.getHeight() - 1 - drawy, c);
+ }
+ }
+
+ if(tile.build.block instanceof CoreBlock){
+ map.teams.add(tile.build.team.id);
+ }
+ }
+ }
+
@Override
public Tile tile(int index){
tile.x = (short)(index % map.width);
@@ -119,7 +133,7 @@ public class MapIO{
if(overlayID != 0){
floors.draw(x, floors.getHeight() - 1 - y, colorFor(Blocks.air, Blocks.air, content.block(overlayID), Team.derelict));
}else{
- floors.draw(x, floors.getHeight() - 1 - y, colorFor(content.block(floorID), Blocks.air, Blocks.air, Team.derelict));
+ floors.draw(x, floors.getHeight() - 1 - y, colorFor(Blocks.air, content.block(floorID), Blocks.air, Team.derelict));
}
if(content.block(overlayID) == Blocks.spawn){
map.spawns ++;
@@ -141,17 +155,17 @@ public class MapIO{
for(int x = 0; x < pixmap.getWidth(); x++){
for(int y = 0; y < pixmap.getHeight(); y++){
Tile tile = tiles.getn(x, y);
- pixmap.draw(x, pixmap.getHeight() - 1 - y, colorFor(tile.floor(), tile.block(), tile.overlay(), tile.team()));
+ pixmap.draw(x, pixmap.getHeight() - 1 - y, colorFor(tile.block(), tile.floor(), tile.overlay(), tile.team()));
}
}
return pixmap;
}
- public static int colorFor(Block floor, Block wall, Block ore, Team team){
+ public static int colorFor(Block wall, Block floor, Block overlay, Team team){
if(wall.synthetic()){
return team.color.rgba();
}
- return (wall.solid ? wall.mapColor : ore == Blocks.air ? floor.mapColor : ore.mapColor).rgba();
+ return (wall.solid ? wall.mapColor : !overlay.useColor ? floor.mapColor : overlay.mapColor).rgba();
}
public static Pixmap writeImage(Tiles tiles){
diff --git a/core/src/mindustry/io/SaveFileReader.java b/core/src/mindustry/io/SaveFileReader.java
index 0aef1a19df..69e1ea67cc 100644
--- a/core/src/mindustry/io/SaveFileReader.java
+++ b/core/src/mindustry/io/SaveFileReader.java
@@ -2,6 +2,7 @@ package mindustry.io;
import arc.struct.*;
import arc.struct.ObjectMap.*;
+import arc.util.*;
import arc.util.io.*;
import mindustry.world.*;
@@ -23,12 +24,12 @@ public abstract class SaveFileReader{
"spirit-factory", "legacy-unit-factory",
"phantom-factory", "legacy-unit-factory",
"wraith-factory", "legacy-unit-factory",
- "ghoul-factory", "legacy-unit-factory",
- "revenant-factory", "legacy-unit-factory",
+ "ghoul-factory", "legacy-unit-factory-air",
+ "revenant-factory", "legacy-unit-factory-air",
"dagger-factory", "legacy-unit-factory",
"crawler-factory", "legacy-unit-factory",
- "titan-factory", "legacy-unit-factory",
- "fortress-factory", "legacy-unit-factory",
+ "titan-factory", "legacy-unit-factory-ground",
+ "fortress-factory", "legacy-unit-factory-ground",
"mass-conveyor", "payload-conveyor",
"vestige", "scepter",
@@ -60,9 +61,11 @@ public abstract class SaveFileReader{
protected final DataOutputStream dataBytesSmall = new DataOutputStream(byteOutputSmall);
protected int lastRegionLength;
+ protected @Nullable CounterInputStream currCounter;
- protected void region(String name, DataInput stream, CounterInputStream counter, IORunner cons) throws IOException{
+ public void region(String name, DataInput stream, CounterInputStream counter, IORunner cons) throws IOException{
counter.resetCount();
+ this.currCounter = counter;
int length;
try{
length = readChunk(stream, cons);
@@ -70,12 +73,12 @@ public abstract class SaveFileReader{
throw new IOException("Error reading region \"" + name + "\".", e);
}
- if(length != counter.count() - 4){
- throw new IOException("Error reading region \"" + name + "\": read length mismatch. Expected: " + length + "; Actual: " + (counter.count() - 4));
+ if(length != counter.count - 4){
+ throw new IOException("Error reading region \"" + name + "\": read length mismatch. Expected: " + length + "; Actual: " + (counter.count - 4));
}
}
- protected void region(String name, DataOutput stream, IORunner cons) throws IOException{
+ public void region(String name, DataOutput stream, IORunner cons) throws IOException{
try{
writeChunk(stream, cons);
}catch(Throwable e){
@@ -153,7 +156,7 @@ public abstract class SaveFileReader{
public abstract void write(DataOutputStream stream) throws IOException;
- protected interface IORunner{
+ public interface IORunner{
void accept(T stream) throws IOException;
}
}
diff --git a/core/src/mindustry/io/SaveVersion.java b/core/src/mindustry/io/SaveVersion.java
index b76a5156e8..76e3b1cc5c 100644
--- a/core/src/mindustry/io/SaveVersion.java
+++ b/core/src/mindustry/io/SaveVersion.java
@@ -72,7 +72,7 @@ public abstract class SaveVersion extends SaveFileReader{
public void writeMeta(DataOutput stream, StringMap tags) throws IOException{
//prepare campaign data for writing
if(state.isCampaign()){
- state.secinfo.prepare();
+ state.rules.sector.info.prepare();
state.rules.sector.saveInfo();
}
@@ -107,14 +107,9 @@ public abstract class SaveVersion extends SaveFileReader{
state.wavetime = map.getFloat("wavetime", state.rules.waveSpacing);
state.stats = JsonIO.read(GameStats.class, map.get("stats", "{}"));
state.rules = JsonIO.read(Rules.class, map.get("rules", "{}"));
- if(state.rules.spawns.isEmpty()) state.rules.spawns = defaultWaves.get();
+ if(state.rules.spawns.isEmpty()) state.rules.spawns = waves.get();
lastReadBuild = map.getInt("build", -1);
- //load in sector info
- if(state.rules.sector != null){
- state.secinfo = state.rules.sector.info;
- }
-
if(!headless){
Tmp.v1.tryFromString(map.get("viewpos"));
Core.camera.position.set(Tmp.v1);
@@ -268,6 +263,8 @@ public abstract class SaveVersion extends SaveFileReader{
//skip the entity region, as the entity and its IO code are now gone
skipChunk(stream, true);
}
+
+ context.onReadBuilding();
}
}else if(hadData){
tile.setBlock(block);
diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java
index 2c2c19dcfc..5eb9467e3c 100644
--- a/core/src/mindustry/io/TypeIO.java
+++ b/core/src/mindustry/io/TypeIO.java
@@ -333,7 +333,7 @@ public class TypeIO{
//1: prev controller was not a player, carry on
//2: prev controller was a player, so replace this controller with *anything else*
//...since AI doesn't update clientside it doesn't matter
- return (!(prev instanceof AIController) || (prev instanceof FormationAI)) ? new GroundAI() : prev;
+ return (!(prev instanceof AIController) || (prev instanceof FormationAI) || (prev instanceof LogicAI)) ? new GroundAI() : prev;
}
}
diff --git a/core/src/mindustry/io/legacy/LegacyIO.java b/core/src/mindustry/io/legacy/LegacyIO.java
index 0bb84f3fc7..9ca0533855 100644
--- a/core/src/mindustry/io/legacy/LegacyIO.java
+++ b/core/src/mindustry/io/legacy/LegacyIO.java
@@ -2,6 +2,7 @@ package mindustry.io.legacy;
import arc.*;
import arc.struct.*;
+import arc.util.*;
import mindustry.*;
import mindustry.ctype.*;
import mindustry.ui.dialogs.JoinDialog.*;
@@ -70,15 +71,14 @@ public class LegacyIO{
String name = stream.readUTF();
Content out = Vars.content.getByName(type, name);
if(out instanceof UnlockableContent u){
- u.unlock();
+ u.quietUnlock();
}
}
}
}
}
}catch(Exception e){
- e.printStackTrace();
+ Log.err(e);
}
}
-
}
diff --git a/core/src/mindustry/io/legacy/LegacySaveVersion.java b/core/src/mindustry/io/legacy/LegacySaveVersion.java
index a511868356..bb7d7eff11 100644
--- a/core/src/mindustry/io/legacy/LegacySaveVersion.java
+++ b/core/src/mindustry/io/legacy/LegacySaveVersion.java
@@ -26,7 +26,6 @@ public abstract class LegacySaveVersion extends SaveVersion{
if(!generating) context.begin();
try{
-
context.resize(width, height);
//read floor and create tiles first
@@ -85,6 +84,8 @@ public abstract class LegacySaveVersion extends SaveVersion{
}catch(Throwable e){
throw new IOException("Failed to read tile entity of block: " + block, e);
}
+
+ context.onReadBuilding();
}else{
int consecutives = stream.readUnsignedByte();
diff --git a/core/src/mindustry/logic/DataType.java b/core/src/mindustry/logic/DataType.java
deleted file mode 100644
index 49090d69f6..0000000000
--- a/core/src/mindustry/logic/DataType.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package mindustry.logic;
-
-import arc.graphics.*;
-import mindustry.graphics.*;
-
-/** The types of data a node field can be. */
-public enum DataType{
- /** A double. Used for integer calculations as well. */
- number(Pal.place),
- /** Any type of content, e.g. item. */
- content(Color.cyan),
- /** A building of a tile. */
- building(Pal.items),
- /** A unit on the map. */
- unit(Pal.health),
- /** Java string */
- string(Color.royal);
-
- public final Color color;
-
- DataType(Color color){
- this.color = color;
- }
-}
\ No newline at end of file
diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java
index 0d678554d1..ab1d7ca687 100644
--- a/core/src/mindustry/logic/LAccess.java
+++ b/core/src/mindustry/logic/LAccess.java
@@ -27,9 +27,13 @@ public enum LAccess{
shootX,
shootY,
shooting,
+ mineX,
+ mineY,
+ mining,
team,
type,
flag,
+ controlled,
name,
config,
payloadCount,
@@ -38,12 +42,13 @@ public enum LAccess{
//values with parameters are considered controllable
enabled("to"), //"to" is standard for single parameter access
shoot("x", "y", "shoot"),
- shootp(true, "unit", "shoot")
-
- ;
+ shootp(true, "unit", "shoot"),
+ configure(true, 30, "to");
public final String[] params;
public final boolean isObj;
+ /** Tick cooldown between invocations. */
+ public float cooldown = -1;
public static final LAccess[]
all = values(),
@@ -59,4 +64,10 @@ public enum LAccess{
this.params = params;
isObj = obj;
}
+
+ LAccess(boolean obj, float cooldown, String... params){
+ this.params = params;
+ this.cooldown = cooldown;
+ isObj = obj;
+ }
}
diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java
index 57c2004320..e06927cca2 100644
--- a/core/src/mindustry/logic/LAssembler.java
+++ b/core/src/mindustry/logic/LAssembler.java
@@ -14,12 +14,13 @@ import mindustry.world.*;
/** "Compiles" a sequence of statements into instructions. */
public class LAssembler{
public static ObjectMap> customParsers = new ObjectMap<>();
+ public static final int maxTokenLength = 40;
private int lastVar;
/** Maps names to variable IDs. */
- ObjectMap vars = new ObjectMap<>();
+ public ObjectMap vars = new ObjectMap<>();
/** All instructions to be executed. */
- LInstruction[] instructions;
+ public LInstruction[] instructions;
public LAssembler(){
//instruction counter
@@ -96,16 +97,18 @@ public class LAssembler{
if(data == null || data.isEmpty()) return new Seq<>();
Seq statements = new Seq<>();
- String[] lines = data.split("[;\n]+");
+ String[] lines = data.split("\n");
int index = 0;
for(String line : lines){
//comments
- if(line.startsWith("#")) continue;
+ if(line.startsWith("#") || line.isEmpty()) continue;
+ //remove trailing semicolons in case someone adds them in for no reason
+ if(line.endsWith(";")) line = line.substring(0, line.length() - 1);
if(index++ > max) break;
line = line.replace("\t", "").trim();
-
+
try{
String[] arr;
@@ -120,7 +123,7 @@ public class LAssembler{
if(c == '"'){
inString = !inString;
}else if(c == ' ' && !inString){
- tokens.add(line.substring(lastIdx, i));
+ tokens.add(line.substring(lastIdx, Math.min(i, lastIdx + maxTokenLength)));
lastIdx = i + 1;
}
}
diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java
index e16aab6621..92c8f61d53 100644
--- a/core/src/mindustry/logic/LCanvas.java
+++ b/core/src/mindustry/logic/LCanvas.java
@@ -18,14 +18,17 @@ import mindustry.graphics.*;
import mindustry.ui.*;
public class LCanvas extends Table{
+ public static final int maxJumpsDrawn = 100;
//ew static variables
static LCanvas canvas;
- DragLayout statements;
+ public DragLayout statements;
+ public ScrollPane pane;
+ public Group jumps;
StatementElem dragging;
- ScrollPane pane;
- Group jumps;
+ StatementElem hovered;
float targetWidth;
+ int jumpCount = 0;
public LCanvas(){
canvas = this;
@@ -69,18 +72,24 @@ public class LCanvas extends Table{
}
}
- void add(LStatement statement){
+ @Override
+ public void draw(){
+ jumpCount = 0;
+ super.draw();
+ }
+
+ public void add(LStatement statement){
statements.addChild(new StatementElem(statement));
}
- String save(){
+ public String save(){
Seq st = statements.getChildren().as().map(s -> s.st);
st.each(LStatement::saveUI);
return LAssembler.write(st);
}
- void load(String asm){
+ public void load(String asm){
jumps.clear();
Seq statements = LAssembler.read(asm);
@@ -97,10 +106,23 @@ public class LCanvas extends Table{
this.statements.layout();
}
+ StatementElem checkHovered(){
+ Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true);
+ if(e != null){
+ while(e != null && !(e instanceof StatementElem)){
+ e = e.parent;
+ }
+ }
+ if(e == null || isDescendantOf(e)) return null;
+ return (StatementElem)e;
+ }
+
@Override
public void act(float delta){
super.act(delta);
+ hovered = checkHovered();
+
if(Core.input.isTouched()){
float y = Core.input.mouseY();
float dst = Math.min(y - this.y, Core.graphics.getHeight() - y);
@@ -239,14 +261,14 @@ public class LCanvas extends Table{
}
public class StatementElem extends Table{
- LStatement st;
+ public LStatement st;
public StatementElem(LStatement st){
this.st = st;
st.elem = this;
background(Tex.whitePane);
- setColor(st.category().color);
+ setColor(st.color());
margin(0f);
touchable = Touchable.enabled;
@@ -261,7 +283,7 @@ public class LCanvas extends Table{
t.add().growX();
t.button(Icon.copy, Styles.logici, () -> {
- }).padRight(6).get().tapped(() -> copy());
+ }).padRight(6).get().tapped(this::copy);
t.button(Icon.cancel, Styles.logici, () -> {
remove();
@@ -319,7 +341,7 @@ public class LCanvas extends Table{
marginBottom(7);
}
- void copy(){
+ public void copy(){
LStatement copy = st.copy();
if(copy != null){
StatementElem s = new StatementElem(copy);
@@ -351,9 +373,8 @@ public class LCanvas extends Table{
boolean selecting;
float mx, my;
ClickListener listener;
- StatementElem hovered;
- JumpCurve curve;
+ public JumpCurve curve;
public JumpButton(Prov getter, Cons setter){
super(Tex.logicNode, Styles.colori);
@@ -380,7 +401,7 @@ public class LCanvas extends Table{
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode code){
localToStageCoordinates(Tmp.v1.set(x, y));
- StatementElem elem = hovered();
+ StatementElem elem = canvas.hovered;
if(elem != null && !isDescendantOf(elem)){
setter.get(elem);
@@ -403,13 +424,6 @@ public class LCanvas extends Table{
curve = new JumpCurve(this);
}
- @Override
- public void act(float delta){
- super.act(delta);
-
- hovered = hovered();
- }
-
@Override
protected void setScene(Scene stage){
super.setScene(stage);
@@ -420,21 +434,10 @@ public class LCanvas extends Table{
canvas.jumps.addChild(curve);
}
}
-
- StatementElem hovered(){
- Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true);
- if(e != null){
- while(e != null && !(e instanceof StatementElem)){
- e = e.parent;
- }
- }
- if(e == null || isDescendantOf(e)) return null;
- return (StatementElem)e;
- }
}
public static class JumpCurve extends Element{
- JumpButton button;
+ public JumpButton button;
public JumpCurve(JumpButton button){
this.button = button;
@@ -451,7 +454,13 @@ public class LCanvas extends Table{
@Override
public void draw(){
- Element hover = button.to.get() == null && button.selecting ? button.hovered : button.to.get();
+ canvas.jumpCount ++;
+
+ if(canvas.jumpCount > maxJumpsDrawn && !button.selecting && !button.listener.isOver()){
+ return;
+ }
+
+ Element hover = button.to.get() == null && button.selecting ? canvas.hovered : button.to.get();
boolean draw = false;
Vec2 t = Tmp.v1, r = Tmp.v2;
@@ -483,19 +492,33 @@ public class LCanvas extends Table{
}
}
- void drawCurve(float x, float y, float x2, float y2){
+ public void drawCurve(float x, float y, float x2, float y2){
Lines.stroke(4f, button.color);
Draw.alpha(parentAlpha);
float dist = 100f;
+ //square jumps
+ if(false){
+ float len = Scl.scl(Mathf.randomSeed(hashCode(), 10, 50));
+
+ float maxX = Math.max(x, x2) + len;
+
+ Lines.beginLine();
+ Lines.linePoint(x, y);
+ Lines.linePoint(maxX, y);
+ Lines.linePoint(maxX, y2);
+ Lines.linePoint(x2, y2);
+ Lines.endLine();
+ return;
+ }
+
Lines.curve(
x, y,
x + dist, y,
x2 + dist, y2,
x2, y2,
- Math.max(20, (int)(Mathf.dst(x, y, x2, y2) / 6))
- );
+ Math.max(18, (int)(Mathf.dst(x, y, x2, y2) / 6)));
}
}
}
diff --git a/core/src/mindustry/logic/LCategory.java b/core/src/mindustry/logic/LCategory.java
deleted file mode 100644
index 849e2f64bd..0000000000
--- a/core/src/mindustry/logic/LCategory.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package mindustry.logic;
-
-import arc.graphics.*;
-import mindustry.graphics.*;
-
-public enum LCategory{
- blocks(Pal.accentBack),
- control(Color.cyan.cpy().shiftSaturation(-0.6f).mul(0.7f)),
- operations(Pal.place.cpy().shiftSaturation(-0.5f).mul(0.7f)),
- io(Pal.remove.cpy().shiftSaturation(-0.5f).mul(0.7f)),
- units(Pal.bulletYellowBack.cpy().shiftSaturation(-0.3f).mul(0.8f));
-
- public final Color color;
-
- LCategory(Color color){
- this.color = color;
- }
-}
\ No newline at end of file
diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java
index be029c2305..244746ef81 100644
--- a/core/src/mindustry/logic/LExecutor.java
+++ b/core/src/mindustry/logic/LExecutor.java
@@ -15,6 +15,7 @@ import mindustry.game.Teams.*;
import mindustry.gen.*;
import mindustry.type.*;
import mindustry.world.*;
+import mindustry.world.blocks.logic.*;
import mindustry.world.blocks.logic.LogicDisplay.*;
import mindustry.world.blocks.logic.MemoryBlock.*;
import mindustry.world.blocks.logic.MessageBlock.*;
@@ -31,15 +32,15 @@ public class LExecutor{
//special variables
public static final int
- varCounter = 0,
- varTime = 1,
- varUnit = 2,
- varThis = 3;
+ varCounter = 0,
+ varTime = 1,
+ varUnit = 2,
+ varThis = 3;
public static final int
- maxGraphicsBuffer = 256,
- maxDisplayBuffer = 1024,
- maxTextBuffer = 256;
+ maxGraphicsBuffer = 256,
+ maxDisplayBuffer = 1024,
+ maxTextBuffer = 256;
public LInstruction[] instructions = {};
public Var[] vars = {};
@@ -60,8 +61,9 @@ public class LExecutor{
vars[varTime].numval = Time.millis();
//reset to start
- if(vars[varCounter].numval >= instructions.length
- || vars[varCounter].numval < 0) 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);
@@ -83,9 +85,9 @@ public class LExecutor{
dest.constant = var.constant;
- if(var.value instanceof Number){
+ if(var.value instanceof Number number){
dest.isobj = false;
- dest.numval = ((Number)var.value).doubleValue();
+ dest.numval = number.doubleValue();
}else{
dest.isobj = true;
dest.objval = var.value;
@@ -97,7 +99,7 @@ public class LExecutor{
public @Nullable Building building(int index){
Object o = vars[index].objval;
- return vars[index].isobj && o instanceof Building ? (Building)o : null;
+ return vars[index].isobj && o instanceof Building building ? building : null;
}
public @Nullable Object obj(int index){
@@ -197,11 +199,14 @@ public class LExecutor{
//bind to the next unit
exec.setconst(varUnit, seq.get(index));
}
- index ++;
+ index++;
}else{
//no units of this type found
exec.setconst(varUnit, null);
}
+ }else if(exec.obj(type) instanceof Unit u && u.team == exec.team){
+ //bind to specific unit object
+ exec.setconst(varUnit, u);
}else{
exec.setconst(varUnit, null);
}
@@ -223,6 +228,7 @@ public class LExecutor{
this.outX = outX;
this.outY = outY;
this.outFound = outFound;
+ this.outBuild = outBuild;
}
public UnitLocateI(){
@@ -245,7 +251,7 @@ public class LExecutor{
switch(locate){
case ore -> {
if(exec.obj(ore) instanceof Item item){
- res = indexer.findClosestOre(unit.x, unit.y, item);
+ res = indexer.findClosestOre(unit, item);
}
}
case building -> {
@@ -272,8 +278,9 @@ public class LExecutor{
cache.found = false;
exec.setnum(outFound, 0);
}
- exec.setobj(outFound, res != null && res.build != null && res.build.team == exec.team ? res.build : null);
+ exec.setobj(outBuild, res != null && res.build != null && res.build.team == exec.team ? cache.build = res.build : null);
}else{
+ exec.setobj(outBuild, cache.build);
exec.setbool(outFound, cache.found);
exec.setnum(outX, cache.x);
exec.setnum(outY, cache.y);
@@ -284,20 +291,22 @@ public class LExecutor{
static class Cache{
float x, y;
boolean found;
+ Building build;
}
}
/** Controls the unit based on some parameters. */
public static class UnitControlI implements LInstruction{
public LUnitControl type = LUnitControl.move;
- public int p1, p2, p3, p4;
+ public int p1, p2, p3, p4, p5;
- public UnitControlI(LUnitControl type, int p1, int p2, int p3, int p4){
+ public UnitControlI(LUnitControl type, int p1, int p2, int p3, int p4, int p5){
this.type = type;
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
this.p4 = p4;
+ this.p5 = p5;
}
public UnitControlI(){
@@ -312,13 +321,8 @@ public class LExecutor{
((LogicAI)unit.controller()).controller = exec.building(varThis);
//clear old state
- if(unit instanceof Minerc miner){
- miner.mineTile(null);
- }
-
- if(unit instanceof Builderc builder){
- builder.clearBuilding();
- }
+ unit.mineTile = null;
+ unit.clearBuilding();
return (LogicAI)unit.controller();
}
@@ -348,12 +352,8 @@ public class LExecutor{
//stop mining/building
if(type == LUnitControl.stop){
- if(unit instanceof Minerc miner){
- miner.mineTile(null);
- }
- if(unit instanceof Builderc build){
- build.clearBuilding();
- }
+ unit.mineTile = null;
+ unit.clearBuilding();
}
}
case within -> {
@@ -381,8 +381,8 @@ public class LExecutor{
}
case mine -> {
Tile tile = world.tileWorld(x1, y1);
- if(unit instanceof Minerc miner){
- miner.mineTile(miner.validMine(tile) ? tile : null);
+ if(unit.canMine()){
+ unit.mineTile = unit.validMine(tile) ? tile : null;
}
}
case payDrop -> {
@@ -423,25 +423,25 @@ public class LExecutor{
}
}
case build -> {
- if(unit instanceof Builderc builder && exec.obj(p3) instanceof Block block){
+ if(unit.canBuild() && exec.obj(p3) instanceof Block block){
int x = World.toTile(x1), y = World.toTile(y1);
int rot = exec.numi(p4);
//reset state of last request when necessary
- if(ai.plan.x != x || ai.plan.y != y || ai.plan.block != block || builder.plans().isEmpty()){
+ if(ai.plan.x != x || ai.plan.y != y || ai.plan.block != block || unit.plans.isEmpty()){
ai.plan.progress = 0;
ai.plan.initialized = false;
ai.plan.stuck = false;
}
ai.plan.set(x, y, rot, block);
- ai.plan.config = null;
+ ai.plan.config = exec.obj(p5) instanceof Content c ? c : null;
- builder.clearBuilding();
+ unit.clearBuilding();
if(ai.plan.tile() != null){
- builder.updateBuilding(true);
- builder.addBuild(ai.plan);
+ unit.updateBuilding = true;
+ unit.addBuild(ai.plan);
}
}
}
@@ -462,9 +462,8 @@ public class LExecutor{
if(ai.itemTimer > 0) return;
Building build = exec.building(p1);
- int amount = exec.numi(p2);
- int dropped = Math.min(unit.stack.amount, amount);
- if(build != null && dropped > 0 && unit.within(build, logicItemTransferRange)){
+ int dropped = Math.min(unit.stack.amount, exec.numi(p2));
+ if(build != null && build.isValid() && dropped > 0 && unit.within(build, logicItemTransferRange + build.block.size * tilesize/2f)){
int accepted = build.acceptStack(unit.item(), dropped, unit);
if(accepted > 0){
Call.transferItemTo(unit, unit.item(), accepted, unit.x, unit.y, build);
@@ -478,7 +477,7 @@ public class LExecutor{
Building build = exec.building(p1);
int amount = exec.numi(p3);
- if(build != null && exec.obj(p2) instanceof Item item && unit.within(build, logicItemTransferRange)){
+ if(build != null && build.isValid() && build.items != null && exec.obj(p2) instanceof Item item && unit.within(build, logicItemTransferRange + build.block.size * tilesize/2f)){
int taken = Math.min(build.items.get(item), Math.min(amount, unit.maxAccepted(item)));
if(taken > 0){
@@ -498,6 +497,7 @@ public class LExecutor{
public int target;
public LAccess type = LAccess.enabled;
public int p1, p2, p3, p4;
+ public Interval timer = new Interval(1);
public ControlI(LAccess type, int target, int p1, int p2, int p3, int p4){
this.type = type;
@@ -513,7 +513,7 @@ public class LExecutor{
@Override
public void run(LExecutor exec){
Object obj = exec.obj(target);
- if(obj instanceof Building b && b.team == exec.team && exec.linkIds.contains(b.id)){
+ if(obj instanceof Building b && b.team == exec.team && exec.linkIds.contains(b.id) && (type.cooldown <= 0 || timer.get(type.cooldown))){
if(type.isObj){
b.control(type, exec.obj(p1), exec.num(p2), exec.num(p3), exec.num(p4));
}else{
@@ -819,9 +819,15 @@ public class LExecutor{
//graphics on headless servers are useless.
if(Vars.headless) return;
+ int num1 = exec.numi(p1);
+
+ if(type == LogicDisplay.commandImage){
+ num1 = exec.obj(p1) instanceof UnlockableContent u ? u.iconId : 0;
+ }
+
//add graphics calls, cap graphics buffer size
if(exec.graphicsBuffer.size < maxGraphicsBuffer){
- exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), exec.numi(p1), exec.numi(p2), exec.numi(p3), exec.numi(p4)));
+ exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), num1, exec.numi(p2), exec.numi(p3), exec.numi(p4)));
}
}
}
@@ -872,10 +878,11 @@ public class LExecutor{
if(v.isobj && value != 0){
String strValue =
v.objval == null ? "null" :
- v.objval instanceof String ? (String)v.objval :
+ v.objval instanceof String s ? s :
+ v.objval instanceof MappableContent content ? content.name :
v.objval instanceof Content ? "[content]" :
- v.objval instanceof Building ? "[building]" :
- v.objval instanceof Unit ? "[unit]" :
+ v.objval instanceof Building build ? build.block.name :
+ v.objval instanceof Unit unit ? unit.type.name :
"[object]";
exec.textBuffer.append(strValue);
diff --git a/core/src/mindustry/logic/LStatement.java b/core/src/mindustry/logic/LStatement.java
index 9fdc6407ef..bf8637ac63 100644
--- a/core/src/mindustry/logic/LStatement.java
+++ b/core/src/mindustry/logic/LStatement.java
@@ -2,6 +2,7 @@ package mindustry.logic;
import arc.*;
import arc.func.*;
+import arc.graphics.*;
import arc.math.*;
import arc.scene.*;
import arc.scene.actions.*;
@@ -21,7 +22,7 @@ public abstract class LStatement{
public transient @Nullable StatementElem elem;
public abstract void build(Table table);
- public abstract LCategory category();
+ public abstract Color color();
public abstract LInstruction build(LAssembler builder);
public LStatement copy(){
@@ -39,7 +40,7 @@ public abstract class LStatement{
protected Cell field(Table table, String value, Cons setter){
return table.field(value, Styles.nodeField, setter)
- .size(144f, 40f).pad(2f).color(table.color).addInputDialog();
+ .size(144f, 40f).pad(2f).color(table.color).maxTextLength(LAssembler.maxTokenLength).addInputDialog();
}
protected Cell fields(Table table, String desc, String value, Cons setter){
diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java
index 517d53bcc6..f7f5d2ea4f 100644
--- a/core/src/mindustry/logic/LStatements.java
+++ b/core/src/mindustry/logic/LStatements.java
@@ -8,6 +8,7 @@ import arc.scene.ui.layout.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
import mindustry.gen.*;
+import mindustry.graphics.*;
import mindustry.logic.LCanvas.*;
import mindustry.logic.LExecutor.*;
import mindustry.type.*;
@@ -29,8 +30,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.control;
+ public Color color(){
+ return Pal.logicControl;
}
@Override
@@ -47,8 +48,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.operations;
+ public Color color(){
+ return Pal.logicOperations;
}
@Override
@@ -79,8 +80,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.io;
+ public Color color(){
+ return Pal.logicIo;
}
@Override
@@ -111,8 +112,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.io;
+ public Color color(){
+ return Pal.logicIo;
}
@Override
@@ -143,6 +144,12 @@ public class LStatements{
if(type == GraphicsType.color){
p2 = "255";
}
+
+ if(type == GraphicsType.image){
+ p1 = "@copper";
+ p2 = "32";
+ p3 = "0";
+ }
rebuild(table);
}, 2, cell -> cell.size(100, 50)));
}, Styles.logict, () -> {}).size(90, 40).color(table.color).left().padLeft(2);
@@ -205,6 +212,15 @@ public class LStatements{
fields(s, "x3", p3, v -> p3 = v);
fields(s, "y3", p4, v -> p4 = v);
}
+ case image -> {
+ fields(s, "x", x, v -> x = v);
+ fields(s, "y", y, v -> y = v);
+ row(s);
+ fields(s, "image", p1, v -> p1 = v);
+ fields(s, "size", p2, v -> p2 = v);
+ row(s);
+ fields(s, "rotation", p3, v -> p3 = v);
+ }
}
}).expand().left();
}
@@ -218,8 +234,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.io;
+ public Color color(){
+ return Pal.logicIo;
}
@Override
@@ -243,8 +259,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.io;
+ public Color color(){
+ return Pal.logicIo;
}
}
@@ -259,8 +275,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.blocks;
+ public Color color(){
+ return Pal.logicBlocks;
}
@Override
@@ -280,8 +296,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.blocks;
+ public Color color(){
+ return Pal.logicBlocks;
}
@Override
@@ -304,8 +320,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.blocks;
+ public Color color(){
+ return Pal.logicBlocks;
}
@Override
@@ -357,8 +373,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.blocks;
+ public Color color(){
+ return Pal.logicBlocks;
}
@Override
@@ -428,8 +444,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.blocks;
+ public Color color(){
+ return Pal.logicBlocks;
}
@Override
@@ -531,8 +547,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.blocks;
+ public Color color(){
+ return Pal.logicBlocks;
}
@Override
@@ -556,8 +572,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.operations;
+ public Color color(){
+ return Pal.logicOperations;
}
@Override
@@ -614,8 +630,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.operations;
+ public Color color(){
+ return Pal.logicOperations;
}
}
@@ -632,8 +648,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.control;
+ public Color color(){
+ return Pal.logicControl;
}
}
@@ -697,8 +713,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.control;
+ public Color color(){
+ return Pal.logicControl;
}
}
@@ -735,8 +751,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.units;
+ public Color color(){
+ return Pal.logicUnits;
}
@Override
@@ -748,7 +764,7 @@ public class LStatements{
@RegisterStatement("ucontrol")
public static class UnitControlStatement extends LStatement{
public LUnitControl type = LUnitControl.move;
- public String p1 = "0", p2 = "0", p3 = "0", p4 = "0";
+ public String p1 = "0", p2 = "0", p3 = "0", p4 = "0", p5 = "0";
@Override
public void build(Table table){
@@ -777,20 +793,24 @@ public class LStatements{
int c = 0;
for(int i = 0; i < type.params.length; i++){
- fields(table, type.params[i], i == 0 ? p1 : i == 1 ? p2 : i == 2 ? p3 : p4, i == 0 ? v -> p1 = v : i == 1 ? v -> p2 = v : i == 2 ? v -> p3 = v : v -> p4 = v).width(110f);
+ fields(table, type.params[i], i == 0 ? p1 : i == 1 ? p2 : i == 2 ? p3 : i == 3 ? p4 : p5, i == 0 ? v -> p1 = v : i == 1 ? v -> p2 = v : i == 2 ? v -> p3 = v : i == 3 ? v -> p4 = v : v -> p5 = v).width(100f);
if(++c % 2 == 0) row(table);
+
+ if(i == 3){
+ table.row();
+ }
}
}
@Override
- public LCategory category(){
- return LCategory.units;
+ public Color color(){
+ return Pal.logicUnits;
}
@Override
public LInstruction build(LAssembler builder){
- return new UnitControlI(type, builder.var(p1), builder.var(p2), builder.var(p3), builder.var(p4));
+ return new UnitControlI(type, builder.var(p1), builder.var(p2), builder.var(p3), builder.var(p4), builder.var(p5));
}
}
@@ -804,8 +824,8 @@ public class LStatements{
}
@Override
- public LCategory category(){
- return LCategory.units;
+ public Color color(){
+ return Pal.logicUnits;
}
@Override
@@ -861,7 +881,7 @@ public class LStatements{
table.table(ts -> {
ts.color.set(table.color);
- field(ts, ore, str -> ore = str);
+ fields(ts, ore, str -> ore = str);
ts.button(b -> {
b.image(Icon.pencilSmall);
@@ -905,14 +925,16 @@ public class LStatements{
table.add(" found ").left();
fields(table, outFound, str -> outFound = str);
- table.add(" building ").left();
- fields(table, outBuild, str -> outBuild = str);
+ if(locate != LLocate.ore){
+ table.add(" building ").left();
+ fields(table, outBuild, str -> outBuild = str);
+ }
}
@Override
- public LCategory category(){
- return LCategory.units;
+ public Color color(){
+ return Pal.logicUnits;
}
@Override
diff --git a/core/src/mindustry/logic/LUnitControl.java b/core/src/mindustry/logic/LUnitControl.java
index b4c7f8254c..41f00da025 100644
--- a/core/src/mindustry/logic/LUnitControl.java
+++ b/core/src/mindustry/logic/LUnitControl.java
@@ -14,7 +14,7 @@ public enum LUnitControl{
payTake("takeUnits"),
mine("x", "y"),
flag("value"),
- build("x", "y", "block", "rotation"),
+ build("x", "y", "block", "rotation", "config"),
getBlock("x", "y", "type", "building"),
within("x", "y", "radius", "result");
diff --git a/core/src/mindustry/logic/LogicDialog.java b/core/src/mindustry/logic/LogicDialog.java
index 44fcddd2c0..51b6468c77 100644
--- a/core/src/mindustry/logic/LogicDialog.java
+++ b/core/src/mindustry/logic/LogicDialog.java
@@ -11,7 +11,7 @@ import mindustry.ui.dialogs.*;
import static mindustry.Vars.*;
public class LogicDialog extends BaseDialog{
- LCanvas canvas;
+ public LCanvas canvas;
Cons consumer = s -> {};
public LogicDialog(){
@@ -21,9 +21,11 @@ public class LogicDialog extends BaseDialog{
canvas = new LCanvas();
shouldPause = true;
- addCloseButton();
- buttons.getCells().first().width(170f);
+ addCloseListener();
+
+ buttons.defaults().size(160f, 64f);
+ buttons.button("@back", Icon.left, this::hide).name("back");
buttons.button("@edit", Icon.edit, () -> {
BaseDialog dialog = new BaseDialog("@editor.export");
@@ -51,7 +53,7 @@ public class LogicDialog extends BaseDialog{
dialog.addCloseButton();
dialog.show();
- }).width(170f);
+ }).name("edit");
buttons.button("@add", Icon.add, () -> {
BaseDialog dialog = new BaseDialog("@add");
@@ -63,7 +65,7 @@ public class LogicDialog extends BaseDialog{
if(example instanceof InvalidStatement || example.hidden()) continue;
TextButtonStyle style = new TextButtonStyle(Styles.cleart);
- style.fontColor = example.category().color;
+ style.fontColor = example.color();
style.font = Fonts.outline;
t.button(example.name(), style, () -> {
@@ -75,13 +77,13 @@ public class LogicDialog extends BaseDialog{
});
dialog.addCloseButton();
dialog.show();
- }).width(170f).disabled(t -> canvas.statements.getChildren().size >= LExecutor.maxInstructions);
+ }).disabled(t -> canvas.statements.getChildren().size >= LExecutor.maxInstructions);
- add(canvas).grow();
+ add(canvas).grow().name("canvas");
row();
- add(buttons).growX();
+ add(buttons).growX().name("canvas");
hidden(() -> consumer.get(canvas.save()));
diff --git a/core/src/mindustry/logic/LogicOp.java b/core/src/mindustry/logic/LogicOp.java
index 40d02a8345..658a7cdeb8 100644
--- a/core/src/mindustry/logic/LogicOp.java
+++ b/core/src/mindustry/logic/LogicOp.java
@@ -10,25 +10,28 @@ public enum LogicOp{
div("/", (a, b) -> a / b),
idiv("//", (a, b) -> Math.floor(a / b)),
mod("%", (a, b) -> a % b),
+ pow("^", Math::pow),
+
equal("==", (a, b) -> Math.abs(a - b) < 0.000001 ? 1 : 0, (a, b) -> Structs.eq(a, b) ? 1 : 0),
notEqual("not", (a, b) -> Math.abs(a - b) < 0.000001 ? 0 : 1, (a, b) -> !Structs.eq(a, b) ? 1 : 0),
+ land("and", (a, b) -> a != 0 && b != 0 ? 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) -> (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),
+ and("b-and", (a, b) -> (long)a & (long)b),
xor("xor", (a, b) -> (long)a ^ (long)b),
+ not("flip", a -> ~(long)(a)),
+
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 -> ~(long)(a)),
abs("abs", a -> Math.abs(a)),
log("log", Math::log),
log10("log10", Math::log10),
@@ -38,9 +41,7 @@ public enum LogicOp{
floor("floor", Math::floor),
ceil("ceil", Math::ceil),
sqrt("sqrt", Math::sqrt),
- rand("rand", d -> Mathf.rand.nextDouble() * d),
-
- ;
+ rand("rand", d -> Mathf.rand.nextDouble() * d);
public static final LogicOp[] all = values();
diff --git a/core/src/mindustry/maps/Map.java b/core/src/mindustry/maps/Map.java
index 0fdc818139..1f9ab65cdd 100644
--- a/core/src/mindustry/maps/Map.java
+++ b/core/src/mindustry/maps/Map.java
@@ -70,11 +70,11 @@ public class Map implements Comparable