diff --git a/.gitignore b/.gitignore index 10fca2d7f0..e9f029335a 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ config/ changelog *.gif /core/assets/saves/ +/out/ version.properties diff --git a/android/src/mindustry/android/AndroidLauncher.java b/android/src/mindustry/android/AndroidLauncher.java index 6d13c02f5a..9ddd1602f6 100644 --- a/android/src/mindustry/android/AndroidLauncher.java +++ b/android/src/mindustry/android/AndroidLauncher.java @@ -19,6 +19,7 @@ import arc.util.serialization.*; import mindustry.*; import mindustry.game.Saves.*; import mindustry.io.*; +import mindustry.net.*; import mindustry.ui.dialogs.*; import java.io.*; @@ -144,6 +145,7 @@ public class AndroidLauncher extends AndroidApplication{ }, new AndroidApplicationConfiguration(){{ useImmersiveMode = true; hideStatusBar = true; + errorHandler = CrashSender::log; }}); checkFiles(getIntent()); diff --git a/annotations/src/main/java/mindustry/annotations/AssetsAnnotationProcessor.java b/annotations/src/main/java/mindustry/annotations/AssetsAnnotationProcessor.java index 3ccb3d0729..0a1c0be2e9 100644 --- a/annotations/src/main/java/mindustry/annotations/AssetsAnnotationProcessor.java +++ b/annotations/src/main/java/mindustry/annotations/AssetsAnnotationProcessor.java @@ -1,5 +1,9 @@ package mindustry.annotations; +import arc.files.*; +import arc.scene.style.*; +import arc.struct.*; +import arc.util.serialization.*; import com.squareup.javapoet.*; import mindustry.annotations.Annotations.*; @@ -8,7 +12,6 @@ import javax.lang.model.*; import javax.lang.model.element.*; import javax.tools.Diagnostic.*; import javax.tools.*; -import java.nio.file.*; import java.util.*; @SupportedSourceVersion(SourceVersion.RELEASE_8) @@ -34,9 +37,9 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{ if(round++ != 0) return false; //only process 1 round try{ - path = Paths.get(Utils.filer.createResource(StandardLocation.CLASS_OUTPUT, "no", "no") + path = Fi.get(Utils.filer.createResource(StandardLocation.CLASS_OUTPUT, "no", "no") .toUri().toURL().toString().substring(System.getProperty("os.name").contains("Windows") ? 6 : "file:".length())) - .getParent().getParent().getParent().getParent().getParent().getParent().toString(); + .parent().parent().parent().parent().parent().parent().toString(); path = path.replace("%20", " "); processSounds("Sounds", path + "/assets/sounds", "arc.audio.Sound"); @@ -51,53 +54,51 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{ } void processUI(Set elements) throws Exception{ - String[] iconSizes = {"small", "smaller", "tiny"}; - TypeSpec.Builder type = TypeSpec.classBuilder("Tex").addModifiers(Modifier.PUBLIC); TypeSpec.Builder ictype = TypeSpec.classBuilder("Icon").addModifiers(Modifier.PUBLIC); + TypeSpec.Builder ichtype = TypeSpec.classBuilder("Iconc").addModifiers(Modifier.PUBLIC); 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); String resources = path + "/assets-raw/sprites/ui"; - Files.walk(Paths.get(resources)).forEach(p -> { - if(Files.isDirectory(p) || p.getFileName().toString().equals(".DS_Store")) return; + Jval icons = Jval.read(Fi.get(path + "/assets-raw/fontgen/config.json").readString()); - String filename = p.getFileName().toString(); + ictype.addField(FieldSpec.builder(ParameterizedTypeName.get(ObjectMap.class, String.class, TextureRegionDrawable.class), + "icons", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("new ObjectMap<>()").build()); + + for(Jval val : icons.get("glyphs").asArray()){ + String name = capitalize(val.getString("css", "")); + int code = val.getInt("code", 0); + ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("(char)" + code).build()); + + ictype.addField(TextureRegionDrawable.class, name + "Sm", Modifier.PUBLIC, Modifier.STATIC); + icload.addStatement(name + "Sm = mindustry.ui.Fonts.getGlyph(mindustry.ui.Fonts.def, (char)" + code + ")"); + + ictype.addField(TextureRegionDrawable.class, name, Modifier.PUBLIC, Modifier.STATIC); + icload.addStatement(name + " = mindustry.ui.Fonts.getGlyph(mindustry.ui.Fonts.icon, (char)" + code + ")"); + + icload.addStatement("icons.put($S, " + name + ")", name); + } + + Fi.get(resources).walk(p -> { + if(p.nameWithoutExtension().equals(".DS_Store")) return; + + String filename = p.name(); filename = filename.substring(0, filename.indexOf(".")); - ArrayList names = new ArrayList<>(); - names.add(""); - if(filename.contains("icon")){ - names.addAll(Arrays.asList(iconSizes)); - } + String sfilen = filename; + String dtype = p.name().endsWith(".9.png") ? "arc.scene.style.NinePatchDrawable" : "arc.scene.style.TextureRegionDrawable"; - for(String suffix : names){ - suffix = suffix.isEmpty() ? "" : "-" + suffix; + String varname = capitalize(sfilen); - String sfilen = filename + suffix; - String dtype = p.getFileName().toString().endsWith(".9.png") ? "arc.scene.style.NinePatchDrawable" : "arc.scene.style.TextureRegionDrawable"; + if(SourceVersion.isKeyword(varname)) varname += "s"; - String varname = capitalize(sfilen); - TypeSpec.Builder ttype = type; - MethodSpec.Builder tload = load; - if(varname.startsWith("icon")){ - varname = varname.substring("icon".length()); - varname = Character.toLowerCase(varname.charAt(0)) + varname.substring(1); - ttype = ictype; - tload = icload; - if(SourceVersion.isKeyword(varname)) varname += "i"; - } - - if(SourceVersion.isKeyword(varname)) varname += "s"; - - ttype.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC); - tload.addStatement(varname + " = ("+dtype+")arc.Core.atlas.drawable($S)", sfilen); - } + type.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC); + load.addStatement(varname + " = ("+dtype+")arc.Core.atlas.drawable($S)", sfilen); }); for(Element elem : elements){ - TypeElement t = (TypeElement)elem; - t.getEnclosedElements().stream().filter(e -> e.getKind() == ElementKind.FIELD).forEach(field -> { + Array.with(((TypeElement)elem).getEnclosedElements()).each(e -> e.getKind() == ElementKind.FIELD, field -> { String fname = field.getSimpleName().toString(); if(fname.startsWith("default")){ loadStyles.addStatement("arc.Core.scene.addStyle(" + field.asType().toString() + ".class, mindustry.ui.Styles." + fname + ")"); @@ -106,6 +107,7 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{ } ictype.addMethod(icload.build()); + JavaFile.builder(packageName, ichtype.build()).build().writeTo(Utils.filer); JavaFile.builder(packageName, ictype.build()).build().writeTo(Utils.filer); type.addMethod(load.build()); @@ -119,10 +121,9 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{ MethodSpec.Builder loadBegin = MethodSpec.methodBuilder("load").addModifiers(Modifier.PUBLIC, Modifier.STATIC); HashSet names = new HashSet<>(); - Files.list(Paths.get(path)).forEach(p -> { - String fname = p.getFileName().toString(); - String name = p.getFileName().toString(); - name = name.substring(0, name.indexOf(".")); + Fi.get(path).walk(p -> { + String fname = p.name(); + String name = p.nameWithoutExtension(); if(names.contains(name)){ Utils.messager.printMessage(Kind.ERROR, "Duplicate file name: " + p.toString() + "!"); diff --git a/build.gradle b/build.gradle index 9096a04d0a..fa8bf4d7aa 100644 --- a/build.gradle +++ b/build.gradle @@ -310,6 +310,7 @@ project(":annotations"){ dependencies{ compile 'com.squareup:javapoet:1.11.0' + compile "com.github.Anuken.Arc:arc-core:b77767039334b2658f44d69e72d1ef6bc84f95b0" compile files("${System.getProperty('java.home')}/../lib/tools.jar") } } diff --git a/core/assets-raw/fontgen/config.json b/core/assets-raw/fontgen/config.json new file mode 100644 index 0000000000..7d79a71094 --- /dev/null +++ b/core/assets-raw/fontgen/config.json @@ -0,0 +1,824 @@ +{ + "name": "", + "css_prefix_text": "icon-", + "css_use_suffix": false, + "hinting": true, + "units_per_em": 1000, + "ascent": 850, + "glyphs": [ + { + "uid": "c08a1cde48d96cba21d8c05fa7d7feb1", + "css": "file-text-fill", + "code": 61788, + "src": "fontawesome" + }, + { + "uid": "178053298e3e5b03551d754d4b9acd8b", + "css": "file", + "code": 61787, + "src": "fontawesome" + }, + { + "uid": "5408be43f7c42bccee419c6be53fdef5", + "css": "file-text", + "code": 61686, + "src": "fontawesome" + }, + { + "uid": "555ef8c86832e686fef85f7af2eb7cde", + "css": "left", + "code": 59394, + "src": "fontawesome" + }, + { + "uid": "ad6b3fbb5324abe71a9c0b6609cbb9f1", + "css": "right", + "code": 59395, + "src": "fontawesome" + }, + { + "uid": "95376bf082bfec6ce06ea1cda7bd7ead", + "css": "up", + "code": 59396, + "src": "fontawesome" + }, + { + "uid": "1c4068ed75209e21af36017df8871802", + "css": "down", + "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", + "code": 59399, + "src": "typicons" + }, + { + "uid": "12f4ece88e46abd864e40b35e05b11cd", + "css": "ok", + "code": 59392, + "src": "fontawesome" + }, + { + "uid": "6a7ed3214c9049148cbdb01825e5efc2", + "css": "image", + "code": 59400, + "src": "typicons" + }, + { + "uid": "vyuzsm6wijlfwtjo4ifkoblfmsepk6g8", + "css": "star", + "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", + "code": 62208, + "src": "fontawesome" + }, + { + "uid": "3c961c1a8d874815856fc6637dc5a13c", + "css": "file-image", + "code": 61893, + "src": "fontawesome" + }, + { + "uid": "1gf923f9wvaezxmfon515dglxa3drf0e", + "css": "add", + "code": 59411, + "src": "typicons" + }, + { + "uid": "k7sao112253txym1egnte7822irbyphe", + "css": "eye", + "code": 59412, + "src": "typicons" + }, + { + "uid": "jqzwo6i8oicjbn049sh2856d8anrqoli", + "css": "edit", + "code": 59414, + "src": "typicons" + }, + { + "uid": "b90868gfogj970a1g0dnot6hm5r4uj55", + "css": "chat", + "code": 59415, + "src": "typicons" + }, + { + "uid": "890649841b2c37d56ff90065872fecf3", + "css": "chart-bar", + "code": 59417, + "src": "typicons" + }, + { + "uid": "db7651b88bb33a590710f551bfbbd371", + "css": "plane-outline", + "code": 59418, + "src": "typicons" + }, + { + "uid": "bczb7qup4axmc490xmuuv8qdhcnbgeyf", + "css": "user", + "code": 59420, + "src": "typicons" + }, + { + "uid": "4109c474ff99cad28fd5a2c38af2ec6f", + "css": "filter", + "code": 61616, + "src": "fontawesome" + }, + { + "uid": "f8aa663c489bcbd6e68ec8147dca841e", + "css": "folder", + "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", + "code": 59428, + "src": "fontawesome" + }, + { + "uid": "d870630ff8f81e6de3958ecaeac532f2", + "css": "left-open", + "code": 59429, + "src": "fontawesome" + }, + { + "uid": "fe6697b391355dec12f3d86d6d490397", + "css": "up-open", + "code": 59430, + "src": "fontawesome" + }, + { + "uid": "87d337fee4866c2c28f6082994ce0f41", + "css": "map", + "code": 59431, + "src": "typicons" + }, + { + "uid": "5qynhqqaenby227l5kogqj8sdk5s4e7h", + "css": "rotate", + "code": 59427, + "src": "typicons" + }, + { + "uid": "3e290a111c0f3ee3acbf7b5f17ccc04a", + "css": "play", + "code": 59433, + "src": "typicons" + }, + { + "uid": "e44ef09cb81413287d702eefa65dd790", + "css": "pause", + "code": 59434, + "src": "typicons" + }, + { + "uid": "lu2wqmd7v9zp21knhy4eifo41wjp4cnx", + "css": "list", + "code": 59435, + "src": "typicons" + }, + { + "uid": "5211af474d3a9848f67f945e2ccaf143", + "css": "cancel", + "code": 59436, + "src": "fontawesome" + }, + { + "uid": "fhkechw94uv9ydw6tukba3ka2hhoif4n", + "css": "move", + "code": 59438, + "src": "typicons" + }, + { + "uid": "287ee2cac4ded1712253c7b03ff4a5db", + "css": "pipette", + "code": 59439, + "src": "typicons" + }, + { + "uid": "e45e9f27ce40ba9837cc984076d98067", + "css": "zoom", + "code": 59441, + "src": "elusive" + }, + { + "uid": "0e26e70b4aa537cc206f41b21dcf2fcc", + "css": "lock", + "code": 59442, + "src": "elusive" + }, + { + "uid": "8f562a6dca9c14c9c8268bdb64efa89f", + "css": "lock-open", + "code": 59443, + "src": "elusive" + }, + { + "uid": "fa10777b2d88cc64cd6e4f26ef0e5264", + "css": "terminal", + "code": 61728, + "src": "fontawesome" + }, + { + "uid": "28r0xthd180mg0wnfh8ek3mtn761hs11", + "css": "undo", + "code": 59445, + "src": "typicons" + }, + { + "uid": "7p5gflyid3o4gtesy94a6erq94e4pz7u", + "css": "redo", + "code": 59446, + "src": "typicons" + }, + { + "uid": "3d4ea8a78dc34efe891f3a0f3d961274", + "css": "info", + "code": 61737, + "src": "fontawesome" + }, + { + "uid": "e82cedfa1d5f15b00c5a81c9bd731ea2", + "css": "info-circle", + "code": 59447, + "src": "fontawesome" + }, + { + "uid": "8a1d446e5555e76f82ddb1c8b526f579", + "css": "tree", + "code": 59448, + "src": "entypo" + }, + { + "uid": "813cb2527308990d4870591d9d76f8cd", + "css": "right-open-out", + "code": 59449, + "src": "typicons" + }, + { + "uid": "6zhrgcf3co77hnljttd3b2mrc8z5fiq5", + "css": "right-open", + "code": 59450, + "src": "typicons" + }, + { + "uid": "fd8d9ae4422e55d3ca23f55d9cf4b20a", + "css": "waves", + "code": 59451, + "src": "typicons" + }, + { + "uid": "5c49851100aa021825b346d16d7f3abf", + "css": "temperatire", + "code": 59452, + "src": "typicons" + }, + { + "uid": "e3699d145bd628d2a35d4a508b616f0c", + "css": "filters", + "code": 59454, + "src": "iconic" + }, + { + "uid": "d2c499942f8a7c037d5a94f123eeb478", + "css": "layers", + "code": 59455, + "src": "iconic" + }, + { + "uid": "b9be509237c9abea9c258d677777b713", + "css": "pick", + "code": 59456, + "src": "iconic" + }, + { + "uid": "ebc57fa8400e4ede049ac5dc665210e1", + "css": "eraser", + "code": 61741, + "src": "fontawesome" + }, + { + "uid": "51727ca007aa35ceabcaffc28934faee", + "css": "book-open", + "code": 59393, + "src": "entypo" + }, + { + "uid": "da72ab64b02d997ff0521339f2997233", + "css": "grid", + "code": 61481, + "src": "mfglabs" + }, + { + "uid": "f8d887df13c5f95ede5fb0e2cdb042b1", + "css": "flip-x", + "code": 59410, + "src": "elusive" + }, + { + "uid": "f8b0d36761ba4c7e51d0af49d3386713", + "css": "flip-y", + "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, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M347 419.5C318.5 419.5 296 444.5 296 475 296 505.5 319 530.5 347 530.5 375.5 530.5 398 505.5 398 475 398.5 444.5 375.5 419.5 347 419.5ZM529.5 419.5C501 419.5 478.5 444.5 478.5 475 478.5 505.5 501.5 530.5 529.5 530.5 558 530.5 580.5 505.5 580.5 475 580.5 444.5 558 419.5 529.5 419.5ZM772.5 0H102.5C46 0 0 46 0 103V779C0 836 46 882 102.5 882H669.5L643 789.5 707 849 767.5 905 875 1000V103C875 46 829 0 772.5 0ZM579.5 653C579.5 653 561.5 631.5 546.5 612.5 612 594 637 553 637 553 616.5 566.5 597 576 579.5 582.5 554.5 593 530.5 600 507 604 459 613 415 610.5 377.5 603.5 349 598 324.5 590 304 582 292.5 577.5 280 572 267.5 565 266 564 264.5 563.5 263 562.5 262 562 261.5 561.5 261 561 252 556 247 552.5 247 552.5 247 552.5 271 592.5 334.5 611.5 319.5 630.5 301 653 301 653 190.5 649.5 148.5 577 148.5 577 148.5 416 220.5 285.5 220.5 285.5 292.5 231.5 361 233 361 233L366 239C276 265 234.5 304.5 234.5 304.5 234.5 304.5 245.5 298.5 264 290 317.5 266.5 360 260 377.5 258.5 380.5 258 383 257.5 386 257.5 416.5 253.5 451 252.5 487 256.5 534.5 262 585.5 276 637.5 304.5 637.5 304.5 598 267 513 241L520 233C520 233 588.5 231.5 660.5 285.5 660.5 285.5 732.5 416 732.5 577 732.5 577 690 649.5 579.5 653Z", + "width": 875 + }, + "search": [ + "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", + "code": 62081, + "src": "fontawesome" + }, + { + "uid": "4a0bb1ac004980bb3837560d4c9e8cee", + "css": "github_", + "code": 62216, + "src": "brandico" + }, + { + "uid": "909f99f11c6b6551bf757b6e809f98f3", + "css": "googleplay", + "code": 59453, + "src": "zocial" + }, + { + "uid": "aaf371ab44841e9aaffebd179d324ce4", + "css": "android", + "code": 59461, + "src": "zocial" + }, + { + "uid": "b846892636bd74112998bb159bdddf27", + "css": "trello", + "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" + ] + } + ] +} diff --git a/core/assets-raw/fontgen/icons/admin.svg b/core/assets-raw/fontgen/icons/admin.svg new file mode 100644 index 0000000000..8b6e5e5220 --- /dev/null +++ b/core/assets-raw/fontgen/icons/admin.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/book.svg b/core/assets-raw/fontgen/icons/book.svg new file mode 100644 index 0000000000..4ce30ae7ee --- /dev/null +++ b/core/assets-raw/fontgen/icons/book.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/crafting.svg b/core/assets-raw/fontgen/icons/crafting.svg new file mode 100644 index 0000000000..7f2e56d27c --- /dev/null +++ b/core/assets-raw/fontgen/icons/crafting.svg @@ -0,0 +1,77 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/defense.svg b/core/assets-raw/fontgen/icons/defense.svg new file mode 100644 index 0000000000..0891560c0a --- /dev/null +++ b/core/assets-raw/fontgen/icons/defense.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/distribution.svg b/core/assets-raw/fontgen/icons/distribution.svg new file mode 100644 index 0000000000..f60b2f7251 --- /dev/null +++ b/core/assets-raw/fontgen/icons/distribution.svg @@ -0,0 +1,60 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/effect.svg b/core/assets-raw/fontgen/icons/effect.svg new file mode 100644 index 0000000000..004fecdb71 --- /dev/null +++ b/core/assets-raw/fontgen/icons/effect.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/exit.svg b/core/assets-raw/fontgen/icons/exit.svg new file mode 100644 index 0000000000..2a9a6ddc8f --- /dev/null +++ b/core/assets-raw/fontgen/icons/exit.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/fill.svg b/core/assets-raw/fontgen/icons/fill.svg new file mode 100644 index 0000000000..4435469aac --- /dev/null +++ b/core/assets-raw/fontgen/icons/fill.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/hammer.svg b/core/assets-raw/fontgen/icons/hammer.svg new file mode 100644 index 0000000000..a9ec0312f5 --- /dev/null +++ b/core/assets-raw/fontgen/icons/hammer.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/host.svg b/core/assets-raw/fontgen/icons/host.svg new file mode 100644 index 0000000000..e927c7af2f --- /dev/null +++ b/core/assets-raw/fontgen/icons/host.svg @@ -0,0 +1,72 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/itchio.svg b/core/assets-raw/fontgen/icons/itchio.svg new file mode 100644 index 0000000000..d26eb1780a --- /dev/null +++ b/core/assets-raw/fontgen/icons/itchio.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/line.svg b/core/assets-raw/fontgen/icons/line.svg new file mode 100644 index 0000000000..91e2e2fb29 --- /dev/null +++ b/core/assets-raw/fontgen/icons/line.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/link.svg b/core/assets-raw/fontgen/icons/link.svg new file mode 100644 index 0000000000..34b8a163d7 --- /dev/null +++ b/core/assets-raw/fontgen/icons/link.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/liquid.svg b/core/assets-raw/fontgen/icons/liquid.svg new file mode 100644 index 0000000000..6eb50596d8 --- /dev/null +++ b/core/assets-raw/fontgen/icons/liquid.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/paste.svg b/core/assets-raw/fontgen/icons/paste.svg new file mode 100644 index 0000000000..67a323b6ea --- /dev/null +++ b/core/assets-raw/fontgen/icons/paste.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/pencil.svg b/core/assets-raw/fontgen/icons/pencil.svg new file mode 100644 index 0000000000..f2bfa70403 --- /dev/null +++ b/core/assets-raw/fontgen/icons/pencil.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/power.svg b/core/assets-raw/fontgen/icons/power.svg new file mode 100644 index 0000000000..6d6a5063f2 --- /dev/null +++ b/core/assets-raw/fontgen/icons/power.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/production.svg b/core/assets-raw/fontgen/icons/production.svg new file mode 100644 index 0000000000..74f0f882a9 --- /dev/null +++ b/core/assets-raw/fontgen/icons/production.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/refresh.svg b/core/assets-raw/fontgen/icons/refresh.svg new file mode 100644 index 0000000000..1cde3c7e11 --- /dev/null +++ b/core/assets-raw/fontgen/icons/refresh.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/save.svg b/core/assets-raw/fontgen/icons/save.svg new file mode 100644 index 0000000000..d2b0776e95 --- /dev/null +++ b/core/assets-raw/fontgen/icons/save.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/spray.svg b/core/assets-raw/fontgen/icons/spray.svg new file mode 100644 index 0000000000..a1b0cf95f7 --- /dev/null +++ b/core/assets-raw/fontgen/icons/spray.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/terrain.svg b/core/assets-raw/fontgen/icons/terrain.svg new file mode 100644 index 0000000000..acb45bd0de --- /dev/null +++ b/core/assets-raw/fontgen/icons/terrain.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/trash.svg b/core/assets-raw/fontgen/icons/trash.svg new file mode 100644 index 0000000000..22ed1dee35 --- /dev/null +++ b/core/assets-raw/fontgen/icons/trash.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/turret.svg b/core/assets-raw/fontgen/icons/turret.svg new file mode 100644 index 0000000000..12009fa1f3 --- /dev/null +++ b/core/assets-raw/fontgen/icons/turret.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/units.svg b/core/assets-raw/fontgen/icons/units.svg new file mode 100644 index 0000000000..969b63e096 --- /dev/null +++ b/core/assets-raw/fontgen/icons/units.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/icons/upgrade.svg b/core/assets-raw/fontgen/icons/upgrade.svg new file mode 100644 index 0000000000..9cee75f283 --- /dev/null +++ b/core/assets-raw/fontgen/icons/upgrade.svg @@ -0,0 +1,62 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/core/assets-raw/fontgen/merge.pe b/core/assets-raw/fontgen/merge.pe new file mode 100755 index 0000000000..2dfaf77598 --- /dev/null +++ b/core/assets-raw/fontgen/merge.pe @@ -0,0 +1,3 @@ +Open("core/assets/fonts/font.ttf") +MergeFonts("core/assets-raw/fontgen/out/font.ttf") +Generate("core/assets/fonts/font.ttf") diff --git a/core/assets-raw/sprites/blocks/production/separator-liquid.png b/core/assets-raw/sprites/blocks/production/separator-liquid.png index f9adfeb523..0f81574062 100644 Binary files a/core/assets-raw/sprites/blocks/production/separator-liquid.png and b/core/assets-raw/sprites/blocks/production/separator-liquid.png differ diff --git a/core/assets-raw/sprites/blocks/production/separator-spinner.png b/core/assets-raw/sprites/blocks/production/separator-spinner.png new file mode 100644 index 0000000000..d5e9c620c8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/separator-spinner.png differ diff --git a/core/assets-raw/sprites/blocks/production/separator.png b/core/assets-raw/sprites/blocks/production/separator.png index a3810f08d8..cefbb02633 100644 Binary files a/core/assets-raw/sprites/blocks/production/separator.png and b/core/assets-raw/sprites/blocks/production/separator.png differ diff --git a/core/assets-raw/sprites/ui/icons/icon-about.png b/core/assets-raw/sprites/ui/icons/icon-about.png deleted file mode 100644 index 3943975b97..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-about.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-add.png b/core/assets-raw/sprites/ui/icons/icon-add.png deleted file mode 100644 index 328c8ca469..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-add.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-admin-badge.png b/core/assets-raw/sprites/ui/icons/icon-admin-badge.png deleted file mode 100644 index 6a2afe9e24..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-admin-badge.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-admin.png b/core/assets-raw/sprites/ui/icons/icon-admin.png deleted file mode 100644 index f4101c0423..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-admin.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-arrow-16.png b/core/assets-raw/sprites/ui/icons/icon-arrow-16.png deleted file mode 100644 index 954b1995fd..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-arrow-16.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-arrow-down.png b/core/assets-raw/sprites/ui/icons/icon-arrow-down.png deleted file mode 100644 index bf9e1ff860..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-arrow-down.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-arrow-left.png b/core/assets-raw/sprites/ui/icons/icon-arrow-left.png deleted file mode 100644 index 15678f32b1..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-arrow-left.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-arrow-right.png b/core/assets-raw/sprites/ui/icons/icon-arrow-right.png deleted file mode 100644 index b09556172d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-arrow-right.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-arrow-up.png b/core/assets-raw/sprites/ui/icons/icon-arrow-up.png deleted file mode 100644 index 8a7546126d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-arrow-up.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-arrow.png b/core/assets-raw/sprites/ui/icons/icon-arrow.png deleted file mode 100644 index 954b1995fd..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-arrow.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-back.png b/core/assets-raw/sprites/ui/icons/icon-back.png deleted file mode 100644 index ef470961d6..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-back.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-ban.png b/core/assets-raw/sprites/ui/icons/icon-ban.png deleted file mode 100644 index 1ee4a5c3bf..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-ban.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-break.png b/core/assets-raw/sprites/ui/icons/icon-break.png deleted file mode 100644 index c4b079735c..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-break.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-cancel.png b/core/assets-raw/sprites/ui/icons/icon-cancel.png deleted file mode 100644 index 03ea12174f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-cancel.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-changelog.png b/core/assets-raw/sprites/ui/icons/icon-changelog.png deleted file mode 100644 index e6fbf8d3c1..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-changelog.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-chat.png b/core/assets-raw/sprites/ui/icons/icon-chat.png deleted file mode 100644 index 85f52fa41c..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-chat.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-check.png b/core/assets-raw/sprites/ui/icons/icon-check.png deleted file mode 100644 index db96907362..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-check.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-command-attack.png b/core/assets-raw/sprites/ui/icons/icon-command-attack.png deleted file mode 100644 index 655f819338..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-command-attack.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-command-patrol.png b/core/assets-raw/sprites/ui/icons/icon-command-patrol.png deleted file mode 100644 index acf89f181a..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-command-patrol.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-command-rally.png b/core/assets-raw/sprites/ui/icons/icon-command-rally.png deleted file mode 100644 index 4271a5a321..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-command-rally.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-command-retreat.png b/core/assets-raw/sprites/ui/icons/icon-command-retreat.png deleted file mode 100644 index f40dcfe5cf..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-command-retreat.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-copy.png b/core/assets-raw/sprites/ui/icons/icon-copy.png deleted file mode 100644 index 0f03ee5d04..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-copy.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-crafting.png b/core/assets-raw/sprites/ui/icons/icon-crafting.png deleted file mode 100644 index 3f7022e87b..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-crafting.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-cursor.png b/core/assets-raw/sprites/ui/icons/icon-cursor.png deleted file mode 100644 index 1025a08a9e..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-cursor.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-database.png b/core/assets-raw/sprites/ui/icons/icon-database.png deleted file mode 100644 index 059fd6f219..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-database.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-defense.png b/core/assets-raw/sprites/ui/icons/icon-defense.png deleted file mode 100644 index 2ae509685e..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-defense.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-dev-builds.png b/core/assets-raw/sprites/ui/icons/icon-dev-builds.png deleted file mode 100644 index 27f46b6624..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-dev-builds.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-diagonal.png b/core/assets-raw/sprites/ui/icons/icon-diagonal.png deleted file mode 100644 index 262be1cebc..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-diagonal.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-discord.png b/core/assets-raw/sprites/ui/icons/icon-discord.png deleted file mode 100644 index 76bc4c8c43..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-discord.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-distribution.png b/core/assets-raw/sprites/ui/icons/icon-distribution.png deleted file mode 100644 index 3a202b38e8..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-distribution.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-donate.png b/core/assets-raw/sprites/ui/icons/icon-donate.png deleted file mode 100644 index cad39eb1ba..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-donate.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-dots.png b/core/assets-raw/sprites/ui/icons/icon-dots.png deleted file mode 100644 index a8d656d6cc..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-dots.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-editor.png b/core/assets-raw/sprites/ui/icons/icon-editor.png deleted file mode 100644 index 6cb0a64f9f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-editor.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-effect.png b/core/assets-raw/sprites/ui/icons/icon-effect.png deleted file mode 100644 index 212034645b..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-effect.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-elevation.png b/core/assets-raw/sprites/ui/icons/icon-elevation.png deleted file mode 100644 index cbc30c8cc1..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-elevation.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-eraser.png b/core/assets-raw/sprites/ui/icons/icon-eraser.png deleted file mode 100644 index fc72acc9f2..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-eraser.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-exit.png b/core/assets-raw/sprites/ui/icons/icon-exit.png deleted file mode 100644 index fe1de5d9e4..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-exit.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-f-droid.png b/core/assets-raw/sprites/ui/icons/icon-f-droid.png deleted file mode 100644 index 1a2eca14f2..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-f-droid.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-fdroid.png b/core/assets-raw/sprites/ui/icons/icon-fdroid.png deleted file mode 100644 index 24c7cb884d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-fdroid.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-feathub.png b/core/assets-raw/sprites/ui/icons/icon-feathub.png deleted file mode 100644 index ae1d06bf00..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-feathub.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-file-image.png b/core/assets-raw/sprites/ui/icons/icon-file-image.png deleted file mode 100644 index 254ea95f3d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-file-image.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-file-text.png b/core/assets-raw/sprites/ui/icons/icon-file-text.png deleted file mode 100644 index 41b4fbc342..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-file-text.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-file.png b/core/assets-raw/sprites/ui/icons/icon-file.png deleted file mode 100644 index 0f41e17cbf..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-file.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-fill.png b/core/assets-raw/sprites/ui/icons/icon-fill.png deleted file mode 100644 index 79bc8b2c39..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-fill.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-flip.png b/core/assets-raw/sprites/ui/icons/icon-flip.png deleted file mode 100644 index d81d741434..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-flip.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-floppy-16.png b/core/assets-raw/sprites/ui/icons/icon-floppy-16.png deleted file mode 100644 index 6fd3f90850..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-floppy-16.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-floppy.png b/core/assets-raw/sprites/ui/icons/icon-floppy.png deleted file mode 100644 index e8ba657ab7..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-floppy.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-folder-parent.png b/core/assets-raw/sprites/ui/icons/icon-folder-parent.png deleted file mode 100644 index 160f2be902..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-folder-parent.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-folder.png b/core/assets-raw/sprites/ui/icons/icon-folder.png deleted file mode 100644 index c55313ef32..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-folder.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-github.png b/core/assets-raw/sprites/ui/icons/icon-github.png deleted file mode 100644 index 0de41be50d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-github.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-google-play.png b/core/assets-raw/sprites/ui/icons/icon-google-play.png deleted file mode 100644 index 8464c51159..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-google-play.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-grid.png b/core/assets-raw/sprites/ui/icons/icon-grid.png deleted file mode 100644 index 5427571a16..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-grid.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-home.png b/core/assets-raw/sprites/ui/icons/icon-home.png deleted file mode 100644 index b97dba2a11..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-home.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-host.png b/core/assets-raw/sprites/ui/icons/icon-host.png deleted file mode 100644 index 6253c986bd..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-host.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-info.png b/core/assets-raw/sprites/ui/icons/icon-info.png deleted file mode 100644 index 7e2bb40037..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-info.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-itch.io.png b/core/assets-raw/sprites/ui/icons/icon-itch.io.png deleted file mode 100644 index b5bca0e50a..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-itch.io.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-item.png b/core/assets-raw/sprites/ui/icons/icon-item.png deleted file mode 100644 index 9dd6da2249..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-item.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-line.png b/core/assets-raw/sprites/ui/icons/icon-line.png deleted file mode 100644 index 5ce2cfdc78..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-line.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-link.png b/core/assets-raw/sprites/ui/icons/icon-link.png deleted file mode 100644 index 71446afcc0..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-link.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-liquid-consume.png b/core/assets-raw/sprites/ui/icons/icon-liquid-consume.png deleted file mode 100644 index 48c93ed9d2..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-liquid-consume.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-liquid.png b/core/assets-raw/sprites/ui/icons/icon-liquid.png deleted file mode 100644 index 1306834469..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-liquid.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-load-image.png b/core/assets-raw/sprites/ui/icons/icon-load-image.png deleted file mode 100644 index 88a162b628..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-load-image.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-load-map.png b/core/assets-raw/sprites/ui/icons/icon-load-map.png deleted file mode 100644 index 4aa244ab7c..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-load-map.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-load.png b/core/assets-raw/sprites/ui/icons/icon-load.png deleted file mode 100644 index ecbd0c08cf..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-load.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-loading.png b/core/assets-raw/sprites/ui/icons/icon-loading.png deleted file mode 100644 index 0fd2d5265d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-loading.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-locked.png b/core/assets-raw/sprites/ui/icons/icon-locked.png deleted file mode 100644 index cdf11fe658..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-locked.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-map.png b/core/assets-raw/sprites/ui/icons/icon-map.png deleted file mode 100644 index 92ff76d74f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-map.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-menu-large.png b/core/assets-raw/sprites/ui/icons/icon-menu-large.png deleted file mode 100644 index 36175b9942..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-menu-large.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-menu.png b/core/assets-raw/sprites/ui/icons/icon-menu.png deleted file mode 100644 index 0469f99721..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-menu.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-missing.png b/core/assets-raw/sprites/ui/icons/icon-missing.png deleted file mode 100644 index 6a9c5d9012..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-missing.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-mode-attack.png b/core/assets-raw/sprites/ui/icons/icon-mode-attack.png deleted file mode 100644 index c6aac86259..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-mode-attack.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-mode-pvp.png b/core/assets-raw/sprites/ui/icons/icon-mode-pvp.png deleted file mode 100644 index a98bb81e01..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-mode-pvp.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-mode-survival.png b/core/assets-raw/sprites/ui/icons/icon-mode-survival.png deleted file mode 100644 index c88da7b3b6..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-mode-survival.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-none.png b/core/assets-raw/sprites/ui/icons/icon-none.png deleted file mode 100644 index fcf22bc9da..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-none.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-paste.png b/core/assets-raw/sprites/ui/icons/icon-paste.png deleted file mode 100644 index 606165ed34..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-paste.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-pause.png b/core/assets-raw/sprites/ui/icons/icon-pause.png deleted file mode 100644 index 7471836eaa..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-pause.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-pencil.png b/core/assets-raw/sprites/ui/icons/icon-pencil.png deleted file mode 100644 index 053a283d08..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-pencil.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-pick.png b/core/assets-raw/sprites/ui/icons/icon-pick.png deleted file mode 100644 index dfd7743030..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-pick.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-play-2.png b/core/assets-raw/sprites/ui/icons/icon-play-2.png deleted file mode 100644 index c001e60b04..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-play-2.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-play-custom.png b/core/assets-raw/sprites/ui/icons/icon-play-custom.png deleted file mode 100644 index 78716a2fb0..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-play-custom.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-play.png b/core/assets-raw/sprites/ui/icons/icon-play.png deleted file mode 100644 index 8530e6b09d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-play.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-players.png b/core/assets-raw/sprites/ui/icons/icon-players.png deleted file mode 100644 index be4746291f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-players.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-power.png b/core/assets-raw/sprites/ui/icons/icon-power.png deleted file mode 100644 index 57fbb2f2bd..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-power.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-production.png b/core/assets-raw/sprites/ui/icons/icon-production.png deleted file mode 100644 index fe6c3523c0..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-production.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-quit.png b/core/assets-raw/sprites/ui/icons/icon-quit.png deleted file mode 100644 index 26a9634945..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-quit.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-reddit.png b/core/assets-raw/sprites/ui/icons/icon-reddit.png deleted file mode 100644 index 16be9726df..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-reddit.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-redo.png b/core/assets-raw/sprites/ui/icons/icon-redo.png deleted file mode 100644 index 4c53eb56ef..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-redo.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-refresh.png b/core/assets-raw/sprites/ui/icons/icon-refresh.png deleted file mode 100644 index cd1050f017..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-refresh.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-rename.png b/core/assets-raw/sprites/ui/icons/icon-rename.png deleted file mode 100644 index 4a6731a31b..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-rename.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-resize.png b/core/assets-raw/sprites/ui/icons/icon-resize.png deleted file mode 100644 index ee53c8470f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-resize.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-rotate-arrow.png b/core/assets-raw/sprites/ui/icons/icon-rotate-arrow.png deleted file mode 100644 index 22039f3020..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-rotate-arrow.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-rotate-left.png b/core/assets-raw/sprites/ui/icons/icon-rotate-left.png deleted file mode 100644 index 9b05efec5f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-rotate-left.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-rotate-right.png b/core/assets-raw/sprites/ui/icons/icon-rotate-right.png deleted file mode 100644 index 2009c9394d..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-rotate-right.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-rotate.png b/core/assets-raw/sprites/ui/icons/icon-rotate.png deleted file mode 100644 index 3c989a555f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-rotate.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-save-image.png b/core/assets-raw/sprites/ui/icons/icon-save-image.png deleted file mode 100644 index 5234c4f2f4..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-save-image.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-save-map.png b/core/assets-raw/sprites/ui/icons/icon-save-map.png deleted file mode 100644 index 9066752d13..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-save-map.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-save.png b/core/assets-raw/sprites/ui/icons/icon-save.png deleted file mode 100644 index 1ed3fc4549..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-save.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-settings.png b/core/assets-raw/sprites/ui/icons/icon-settings.png deleted file mode 100644 index 51a969c401..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-settings.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-spray.png b/core/assets-raw/sprites/ui/icons/icon-spray.png deleted file mode 100644 index 17198d657b..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-spray.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-terrain.png b/core/assets-raw/sprites/ui/icons/icon-terrain.png deleted file mode 100644 index cc9c57380e..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-terrain.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-tools.png b/core/assets-raw/sprites/ui/icons/icon-tools.png deleted file mode 100644 index 2ece1ae8f4..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-tools.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-trash-16.png b/core/assets-raw/sprites/ui/icons/icon-trash-16.png deleted file mode 100644 index a1de49233b..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-trash-16.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-trash.png b/core/assets-raw/sprites/ui/icons/icon-trash.png deleted file mode 100644 index e0f419f2f3..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-trash.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-tree.png b/core/assets-raw/sprites/ui/icons/icon-tree.png deleted file mode 100644 index 0731f6a7e5..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-tree.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-trello.png b/core/assets-raw/sprites/ui/icons/icon-trello.png deleted file mode 100644 index 8e63ab3208..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-trello.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-turret.png b/core/assets-raw/sprites/ui/icons/icon-turret.png deleted file mode 100644 index 32fd01b464..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-turret.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-tutorial.png b/core/assets-raw/sprites/ui/icons/icon-tutorial.png deleted file mode 100644 index 40ba90a5e4..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-tutorial.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-undo.png b/core/assets-raw/sprites/ui/icons/icon-undo.png deleted file mode 100644 index cf5dd4c154..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-undo.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-units.png b/core/assets-raw/sprites/ui/icons/icon-units.png deleted file mode 100644 index 1ee9cd9f55..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-units.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-unlocks.png b/core/assets-raw/sprites/ui/icons/icon-unlocks.png deleted file mode 100644 index 36b637b0b9..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-unlocks.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-upgrade.png b/core/assets-raw/sprites/ui/icons/icon-upgrade.png deleted file mode 100644 index 80e416aebe..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-upgrade.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-wiki.png b/core/assets-raw/sprites/ui/icons/icon-wiki.png deleted file mode 100644 index a4395e4ed5..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-wiki.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-workshop.png b/core/assets-raw/sprites/ui/icons/icon-workshop.png deleted file mode 100644 index 74e43e701f..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-workshop.png and /dev/null differ diff --git a/core/assets-raw/sprites/ui/icons/icon-zoom.png b/core/assets-raw/sprites/ui/icons/icon-zoom.png deleted file mode 100644 index 02736c1a4b..0000000000 Binary files a/core/assets-raw/sprites/ui/icons/icon-zoom.png and /dev/null differ diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 2c09d6393d..cd22f0d91a 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -37,7 +37,7 @@ be.noupdates = Aktualizace nebyla nalezena. be.check = Zkontrolovat aktualizace schematic = Šablona -schematic.add = Ukládám šablonu... +schematic.add = Uložit šablonu... schematics = Šablony schematic.replace = Šablona tohoto jména již existuje. Chceš ji nahradit? schematic.import = Importuji šablonu... @@ -61,16 +61,16 @@ stat.deconstructed = Budov rozebráno:[accent] {0} stat.delivered = Materiálu vysláno: stat.rank = Celková známka: [accent]{0} -launcheditems = [accent]Vyslané předměty[] -launchinfo = [unlaunched][Je třeba [LAUNCH] Tvé jádro, abys získal věci vyznačené modře. +launcheditems = [accent]Získané předměty[] +launchinfo = [unlaunched]Je třeba vyslat zpět Tvé jádro, abys získal věci vyznačené modře.[] map.delete = Jsi si jistý, že chceš smazat mapu "[accent]{0}[]"? level.highscore = Nejvyšší skóre: [accent]{0}[] level.select = Výběr úrovně -level.mode = Herní mód: +level.mode = Herní režim: showagain = Znovu neukazovat coreattack = < Jádro je pod útokem! > nearpoint = [ [scarlet]IHNED OPUSŤTE PROSTOR VÝSADKU[] ]\nNebezpečí okamžité smrti! -database = Databáze objektů ve hře +database = Katalog objektů savegame = Uložit hru loadgame = Načíst hru joingame = Připojit se ke hře @@ -100,7 +100,7 @@ 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 = Mody -mods.none = [LIGHT_GRAY]Modifikace nebyly nalezeny.[] +mods.none = [lightgray]Modifikace nebyly nalezeny.[] mods.guide = Průvodce modifikacemi mods.report = Nahlásit závadu mods.openfolder = Otevřít složku s modifikacemi @@ -121,7 +121,7 @@ mod.import = Importovat modifikaci mod.import.github = Import modifikaci z GitHubu mod.item.remove = Tato položka je součástí [accent]'{0}'[] modifikace. Pokud ji chcete odstranit, odinstalujte tuto modifikaci. mod.remove.confirm = Tato modifikace bude odstraněna. -mod.author = [LIGHT_GRAY]Autor:[] {0} +mod.author = [lightgray]Autor:[] {0} mod.missing = Toto uložení hra obsahuje modifikace, které byly nedávno aktualizovány, nebo již nejsou nainstalovány. Použití tohoto uložení může vést k chybám. Jsi si jist, že chceš nahrát toto uložení hry?\n[lightgray]Modifikace:\n{0} mod.preview.missing = Než vystavíš svou modifikaci v dílně, musíš přidat obrázek pro náhled.\nUmísti obrázek pojmenovaný [accent]preview.png[] do složky modifikace a zkus to znovu. mod.folder.missing = V dílně mohou být vystaveny pouze modifikace ve formě složky.\nAbys převedl modifikaci na formu složky, jednoduše rozbal zip soubor do složky a smaž starý zip soubor. Potom znovu spusť hru nebo znovu načti modifikace. @@ -157,8 +157,8 @@ server.kicked.customClient = Tento server nepodporuje upravené verze hry. Stáh server.kicked.gameover = Konec hry! server.kicked.serverRestarting = Server se restartuje. server.versions = Verze klienta: [accent]{0}[]\nVerze serveru: [accent]{1}[] -host.info = Tento [accent]hostitel[] hostuje server na portu [scarlet]6567[]. \nKdokoliv na stejné [LIGHT_GRAY]síti Wifi nebo LAN (místní)[] by měl vidět server ve svém listu serverů.\n\nJestliže chcete, aby se uživatelé připojovali odkudkoliv pomocí adresy IP, může být nezbytné nastavit [accent]přesměrování portů[].\n\n[LIGHT_GRAY]Poznámka: Jestliže má někdo problém s připojením k LAN hře, ujisti se, že má program Mindustry povolený přístup k místní síti v nastavení místního firewallu. -join.info = Zde můžeš vložit [accent]adresu IP serveru[], ke kterému se chceš připojit, nebo zkusit nalézt [accent]servery v místní síti[], ke kterým se můžeš připojit.\nJsou podporovány režimy hry více hráčů přes LAN i WAN.\n\n[LIGHT_GRAY]Poznámka: Neexistuje automatický globální seznam serverů Mindustry. Pokud se chceš k někomu připojit pomocí adresy IP, budeš ji muset znát od hostitele. +host.info = Tento [accent]hostitel[] hostuje server na portu [scarlet]6567[]. \nKdokoliv na stejné [lightgray]síti Wifi nebo LAN (místní)[] by měl vidět server ve svém listu serverů.\n\nJestliže chcete, aby se uživatelé připojovali odkudkoliv pomocí adresy IP, může být nezbytné nastavit [accent]přesměrování portů[].\n\n[lightgray]Poznámka: Jestliže má někdo problém s připojením k LAN hře, měl by se předem ujistit, že má program Mindustry povolený přístup k místní síti v nastavení místního firewallu. +join.info = Zde můžeš vložit [accent]adresu IP serveru[], ke kterému se chceš připojit, nebo zkusit nalézt [accent]servery v místní síti[], ke kterým se můžeš připojit.\nJsou podporovány režimy hry více hráčů přes LAN i WAN.\n\n[lightgray]Poznámka: Neexistuje automatický globální seznam serverů Mindustry. Pokud se chceš k někomu připojit pomocí adresy IP, budeš ji muset znát od hostitele. hostserver = Hostovat hru více hráčů invitefriends = Pozvat přátele hostserver.mobile = Hostovat\nhru @@ -251,13 +251,14 @@ copylink = Zkopírovat odkaz back = Zpět data.export = Exportovat data data.import = Importovat data +data.openfolder = Otevřít složku s daty data.exported = Data byla exportována. data.invalid = Herní data nejsou v pořádku. data.import.confirm = Import externích dat smaže [scarlet]všechna[] Tvá současná herní data.\n[accent]Toto nelze vrátit zpět![]\n\nPo importu dat se hra bezprostředně sama ukončí. classic.export = Exportovat data pro verzi Classic classic.export.text = [accent]Mindustry[] mělo významnou aktualizaci.\nByly detekovány uložení hry nebo mapy pro předchozí verzi Classic (v3.5 build 40). Chtěl bys exportovat tato uložení do domovského zařízení Tvého telefonu, pro pozdější použití v této verzi Mindustry Classic? quit.confirm = Jsi si jistý, že chceš ukončit hru? -quit.confirm.tutorial = Jsi si jistý?Výuku je možné znovu spustit v [accent]Volby->Hra->Spustit znovu výuku[]. +quit.confirm.tutorial = Jsi si jistý?\Výuku je možné znovu spustit v [accent]Volby->Hra->Spustit znovu výuku[]. loading = [accent]Načítám... reloading = [accent]Načítám modifikace... saving = [accent]Ukládám... @@ -286,7 +287,7 @@ map.invalid = Chyba v načítání mapy: poškozený nebo neplatný soubor mapy. workshop.update = Aktualizovat položku workshop.error = Chyba při načítání podrobností z dílny: {0} map.publish.confirm = Jsi si jistý, že chceš vystavit tuto mapu?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami dílny (EULA), jinak se Tvoje mapa nezobrazí.[] -workshop.menu = Vybwer si, co bys chtěl dělat s touto položkou. +workshop.menu = Vyber si, co bys chtěl dělat s touto položkou. workshop.info = Informace o položce changelog = Seznam změn (volitelně): eula = Smluvní podmínky platformy Steam @@ -294,7 +295,7 @@ missing = Tato položka byla smazána nebo přesunuta.\n[lightgray]Položka bude publishing = [accent]Publikuji... publish.confirm = Opravdu chceš toto vystavit?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami dílny (EULA), jinak se Tvoje položky nezobrazí.[] publish.error = Chyba při vystavování položky: {0} -steam.error = Nepodařilo se inicializovat služby platformy Steam.Chyba: {0} +steam.error = Nepodařilo se inicializovat služby platformy Steam.\Chyba: {0} editor.brush = Štětec editor.openin = Otevřít v editoru @@ -335,7 +336,7 @@ editor.removeunit = Odstranit jednotku editor.teams = Týmy editor.errorload = Chyba při načítání souboru. editor.errorsave = Chyba při ukládání souboru. -editor.errorimage = Toto je obrázek, ne mapa.\nPokud chceš importovat mapu z verze 3.5/sestavení 40, použij položku nabídky 'Importovat starou mapu'. +editor.errorimage = Toto je obrázek, ne mapa.\n\Pokud chceš importovat mapu z verze 3.5/sestavení 40, použij položku nabídky 'Importovat starou mapu'. editor.errorlegacy = Tato mapa je příliš stará a používá formát mapy, který už není podporován. editor.errornot = Toto není soubor mapy. editor.errorheader = Tento soubor mapy je buď neplatný nebo poškozen. @@ -437,15 +438,15 @@ editor = Editor mapeditor = Editor map abandon = Opustit -abandon.text = Tato zóna a všechny její zdroje připadnou nepříteli. +abandon.text = Tato mapa a všechny její zdroje připadnou nepříteli. 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.unlock = Odemknuto {0} -resume = Zpět k mapě:\n[lightgray]{0}[] +resume = Zpět do mapy:\n[lightgray]{0}[] bestwave = [lightgray]Nejvyšší vlna: {0} -launch = Vyslat do této zóny Tvé jádro +launch = Vyslat do této mapy Tvé jádro launch.title = Vyslání bylo úspěšné launch.next = [lightgray]další možnost bude až ve vlně {0}[] launch.unable2 = [scarlet]Není možno se vyslat.[] @@ -455,9 +456,9 @@ uncover = Odkrýt mapu configure = Přizpůsobit vybavení bannedblocks = Zakázané bloky addall = Přidat vše -configure.locked = [lightgray]Dosáhni vlny {0},\naby sis mohl přizpůsobit vybavení pro mapu. +configure.locked = [lightgray]{0},\naby sis mohl přizpůsobit vybavení pro mapu.[] configure.invalid = Hodnota musí být číslo mezi 0 a {0}. -zone.unlocked = [lightgray]Mapa {0} byla odemknuta. +zone.unlocked = [lightgray]Mapa {0} byla odemknuta.[] zone.requirement.complete = Bylo dosaženo vlny {0},\nčímž byla splněna podmínka pro mapu {1}. zone.config.unlocked = Odemknuto přizpůsobení vybavení pro mapu:[lightgray]\n{0}[] zone.resources = [lightgray]Byly detekovány tyto suroviny:[] @@ -495,24 +496,24 @@ zone.fungalPass.name = Plísňový průsmyk zone.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. zone.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. -zone.desertWastes.description = Tyto pustiny jsou rozsáhlé, nepředvídatelné a skrz naskrz se hemží opuštěnými budovami.\nV této oblasti nalezneš uhlí. Spal ho v generátorech na energii nebo syntetizuj na grafit.\n\n[lightgray]Tato výsadková zóna není zaručena[] +zone.desertWastes.description = Tyto pustiny jsou rozsáhlé, nepředvídatelné a skrz naskrz se hemží opuštěnými budovami.\nV této oblasti nalezneš uhlí. Spal ho v generátorech na energii nebo syntetizuj na grafit.\n\n[lightgray]Toto místo přistání nelze zaručit.[] zone.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. zone.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. zone.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. -zone.stainedMountains.description = Dále ve vnitrozemí leží hory, dosud neposkvrněny spórami.\nVytěž titánium, 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. -zone.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 Dagger a znič s jejich pomocí jádro základny. Získej znovu to, co bylo již dávno ztraceno. -zone.tarFields.description = Rozhraní produkční ropné 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í ropy.[] -zone.desolateRift.description = Extrémně nebezpečná zóna. Na úkor prostoru se zde nachází přehršel surovin. Vysoká pravděpodobnost zničení. Opusť tuto oblast co nejdříve to půjde. Nenech se zmást dlouhými prodlevami mezi vlnami nepřátel. +zone.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. +zone.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. +zone.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.[] +zone.desolateRift.description = Extrémně nebezpečná mapa. Na úkor prostoru se zde nachází přehršel surovin. Vysoká pravděpodobnost zničení. Opusť tuto oblast co nejdříve to půjde. Nenech se zmást dlouhými prodlevami mezi vlnami nepřátel. zone.nuclearComplex.description = Bývalá továrna na zpracování thoria, dnes v troskách.\n[lightgray]Objev thorium a jeho široké využití.[]\n\nNepřátelské jednotky se zde nacházejí v hojném počtu, a neustále prohledávají oblast. -zone.fungalPass.description = Přechodová oblast mezi vysokými horami a spórami nasycenou zemí. Nachází se zde malá průzkumná základna Tvého nepřítele.\nZnič ji.\nPoužij jednotky Dagger a Crawler. Znič obě nepřátelské jádra. +zone.fungalPass.description = Přechodová oblast mezi vysokými horami a spórami nasycenou zemí. Nachází se zde malá průzkumná základna Tvého nepřítele.\nZnič ji.\nPoužij mechy Dýka a Slídil. Znič obě nepřátelské jádra. zone.impact0078.description = zone.crags.description = settings.language = Jazyk settings.data = Data hry settings.reset = Nastavit na původní hodnoty -settings.rebind = Přemapovat -settings.resetKey = Vrátit změny +settings.rebind = Změnit +settings.resetKey = Původní settings.controls = Ovládání settings.game = Hra settings.sound = Zvuky @@ -541,7 +542,7 @@ blocks.itemsmoved = Rychlost pohybu blocks.launchtime = Čas mezi vysláním blocks.shootrange = Dostřel blocks.size = Velikost -blocks.liquidcapacity = Kapacita tekutin +blocks.liquidcapacity = Kapacita kapalin blocks.powerrange = Rozsah energie blocks.powerconnections = Nejvyšší počet spojení blocks.poweruse = Spotřeba energie @@ -566,287 +567,288 @@ blocks.ammo = Střelivo bar.drilltierreq = Je vyžadován lepší vrt bar.drillspeed = Rychlost vrtu: {0}/s -bar.pumpspeed = Pump Speed: {0}/s -bar.efficiency = Efektivita: {0}% +bar.pumpspeed = Rychlost pumpy: {0}/s +bar.efficiency = Účinnost: {0}% bar.powerbalance = Energie: {0} bar.powerstored = Uskladněno: {0}/{1} bar.poweramount = Energie celkem: {0} bar.poweroutput = Výstup energie: {0} bar.items = Předměty: {0} -bar.capacity = Kpacita: {0} -bar.liquid = Tekutiny +bar.capacity = Kapacita: {0} +bar.liquid = Chlazení bar.heat = Teplo bar.power = Energie -bar.progress = Proces stavby +bar.progress = Stavba v průběhu bar.spawned = Jednotek: {0}/{1} -bar.input = Input -bar.output = Output +bar.input = Vstup +bar.output = Výstup -bullet.damage = [stat]{0}[lightgray] poškození -bullet.splashdamage = [stat]{0}[lightgray] AOE ~[stat] {1}[lightgray] bloků +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.homing = [stat]samonaváděcí bullet.shock = [stat]šokové bullet.frag = [stat]trhavé bullet.knockback = [stat]{0}[lightgray] odhození -bullet.freezing = [stat]ledové -bullet.tarred = [stat]tarové -bullet.multiplier = [stat]{0}[lightgray]x násobič střeliva -bullet.reload = [stat]{0}[lightgray]x nabití +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 -unit.blocks = Bloky -unit.powersecond = jednotek energie/sekunda -unit.liquidsecond = jednotek tekutin/sekundu +unit.blocks = bloky +unit.powersecond = energie/sekunda +unit.liquidsecond = kapalin/sekundu unit.itemssecond = předmětů/sekundu -unit.liquidunits = jednotek tekutin +unit.liquidunits = jednotek kapalin unit.powerunits = jednotek energie unit.degrees = úhly unit.seconds = sekundy -unit.persecond = /sek -unit.timesspeed = x rychlost +unit.persecond = /s +unit.timesspeed = x větší rychlost unit.percent = % unit.items = předměty -unit.thousands = k -unit.millions = mil +unit.thousands = t +unit.millions = m category.general = Všeobecné category.power = Energie -category.liquids = Tekutiny +category.liquids = Kapaliny category.items = Předměty -category.crafting = Vyžaduje +category.crafting = Vstup/Výstup category.shooting = Střílí category.optional = Volitelné vylepšení setting.landscape.name = Uzamknout krajinu setting.shadows.name = Stíny -setting.blockreplace.name = Automatic Block Suggestions +setting.blockreplace.name = Automatický návrh bloků setting.linear.name = Lineární filtrování -setting.hints.name = Hints -setting.buildautopause.name = Auto-Pause Building +setting.hints.name = Rady a tipy +setting.buildautopause.name = Automaticky pozastavit stavění setting.animatedwater.name = Animovaná voda setting.animatedshields.name = Animované štíty -setting.antialias.name = Antialias[LIGHT_GRAY] (vyžaduje restart)[] -setting.indicators.name = Indikátor pro spojence -setting.autotarget.name = Automaticky zaměřuje -setting.keyboard.name = Ovládání myš+klávesnice +setting.antialias.name = Použít antialias [lightgray](vyžaduje restart)[] +setting.indicators.name = Indikátor pro spojence/nepřátele +setting.autotarget.name = Automaticky zaměřovat +setting.keyboard.name = Ovládání myší a klávesnicí setting.touchscreen.name = Ovládání dotykovým displejem -setting.fpscap.name = Max FPS -setting.fpscap.none = žádný +setting.fpscap.name = Strop FPS (snímků/s) +setting.fpscap.none = Žádný setting.fpscap.text = {0} FPS -setting.uiscale.name = Škálování rozhraní[lightgray] (vyžaduje restart)[] -setting.swapdiagonal.name = Vždy pokládat diagonálně -setting.difficulty.training = Trénink -setting.difficulty.easy = lehká -setting.difficulty.normal = normální -setting.difficulty.hard = težká -setting.difficulty.insane = šílená +setting.uiscale.name = Škálování uživatelského rozhraní[lightgray] (vyžaduje restart)[] +setting.swapdiagonal.name = Vždy pokládat úhlopříčně +setting.difficulty.training = Zácviková +setting.difficulty.easy = Lehká +setting.difficulty.normal = Normální +setting.difficulty.hard = Těžká +setting.difficulty.insane = Šílená setting.difficulty.name = Obtížnost: -setting.screenshake.name = Třes obrazu +setting.screenshake.name = Chvění obrazovky setting.effects.name = Zobrazit efekty -setting.destroyedblocks.name = Display Destroyed Blocks -setting.conveyorpathfinding.name = Conveyor Placement Pathfinding -setting.coreselect.name = Allow Schematic Cores +setting.destroyedblocks.name = Zobrazit zničené bloky +setting.conveyorpathfinding.name = Hledat cestu při umisťování pásu +setting.coreselect.name = Povolit jádra v šablonách setting.sensitivity.name = Citlivost ovladače setting.saveinterval.name = Interval automatického ukládání -setting.seconds = {0} Sekund -setting.blockselecttimeout.name = Block Select Timeout -setting.milliseconds = {0} milliseconds +setting.seconds = {0} sekund +setting.blockselecttimeout.name = Časový limit pro výběr bloku +setting.milliseconds = {0} milisekund setting.fullscreen.name = Celá obrazovka -setting.borderlesswindow.name = Bezokrajové okno[LIGHT_GRAY] (může vyžadovat restart) -setting.fps.name = Ukázat snímky/sekundu -setting.blockselectkeys.name = Show Block Select Keys +setting.borderlesswindow.name = Bezokrajové okno[lightgray] (může vyžadovat restart)[] +setting.fps.name = Ukázat FPS a ping +setting.blockselectkeys.name = Ukázat klávesy při práci s blokem setting.vsync.name = Vertikální synchronizace -setting.pixelate.name = Pixelizovat [LIGHT_GRAY](může snížit výkon) -setting.minimap.name = Ukázat minimapu -setting.position.name = Show Player Position +setting.pixelate.name = Rozpixlovat [lightgray](může snížit výkon)[] +setting.minimap.name = Ukázat mapičku +setting.position.name = Ukázat pozici hráče setting.musicvol.name = Hlasitost hudby -setting.ambientvol.name = Ambient Volume +setting.ambientvol.name = Hlasitost prostředí setting.mutemusic.name = Ztišit hudbu -setting.sfxvol.name = SFX hlasitost -setting.mutesound.name = Ztišit zvuky -setting.crashreport.name = Poslat anonymní spis o zhroucení hry -setting.savecreate.name = Auto-Create Saves -setting.publichost.name = Public Game Visibility -setting.chatopacity.name = Chat Opacity -setting.lasersopacity.name = Power Laser Opacity -setting.playerchat.name = Displej v herním četu -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. -public.beta = Note that beta versions of the game cannot make public lobbies. -uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings... +setting.sfxvol.name = Hlasitost efektů +setting.mutesound.name = Ztišit zvuk +setting.crashreport.name = Poslat anonymní hlášení o spadnutí Mindustry +setting.savecreate.name = Automaticky ukládat hru +setting.publichost.name = Veřejná viditelnost hry +setting.chatopacity.name = Průsvitnost kanálu zpráv +setting.lasersopacity.name = Průsvitnost energetického laseru +setting.bridgeopacity.name = Průsvitnost přemostění +setting.playerchat.name = Zobrazit bublinu se zprávami hráče +public.confirm = Chceš Tvoji hru zpřístupnit veřejnosti?\n[accent]Kdokoli se bude moci připojit ke tvé hře.[]\n[lightgray]Toto se dá později změnit v nabídce Volby->Hra->Veřejná viditelnost hry. +public.beta = Poznámka: nevydané verze her nemůžou být veřejné. +uiscale.reset = Škálování uživatelskho rozhraní se změnilo.\nZmáčkni "OK", abys potvrdil toto nastavení.\n[scarlet]Návrat k původním hodnotám proběhne za [accent]{0}[] vteřin...[] uiscale.cancel = Ukončit a odejít -setting.bloom.name = Bloom -keybind.title = Přenastavit klávesy -keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only basic movement is supported. +setting.bloom.name = Použít filtr Bloom +keybind.title = Změnit klávesy +keybinds.mobile = [scarlet]Většina kláves nefunguje v mobilní verzi hry. Je podporován jen základní pohyb.[] category.general.name = Všeobecné category.view.name = Pohled -category.multiplayer.name = Multiplayer +category.multiplayer.name = Hra více hráčů command.attack = Útok -command.rally = Rally +command.rally = Shromáždění command.retreat = Ústup -placement.blockselectkeys = \n[lightgray]Key: [{0}, -keybind.clear_building.name = Clear Building -keybind.press = Stiskni klívesu... -keybind.press.axis = Stiskni osu nebo klávesu... -keybind.screenshot.name = Sníměk mapy -keybind.toggle_power_lines.name = Toggle Power Lasers -keybind.move_x.name = Pohyb na X -keybind.move_y.name = Pohyb na Y -keybind.mouse_move.name = Follow Mouse -keybind.dash.name = Sprint -keybind.schematic_select.name = Select Region -keybind.schematic_menu.name = Šablona Menu -keybind.schematic_flip_x.name = Flip Šablona X -keybind.schematic_flip_y.name = Flip Šablona Y -keybind.category_prev.name = Previous Category -keybind.category_next.name = Next Category -keybind.block_select_left.name = Block Select Left -keybind.block_select_right.name = Block Select Right -keybind.block_select_up.name = Block Select Up -keybind.block_select_down.name = Block Select Down -keybind.block_select_01.name = Category/Block Select 1 -keybind.block_select_02.name = Category/Block Select 2 -keybind.block_select_03.name = Category/Block Select 3 -keybind.block_select_04.name = Category/Block Select 4 -keybind.block_select_05.name = Category/Block Select 5 -keybind.block_select_06.name = Category/Block Select 6 -keybind.block_select_07.name = Category/Block Select 7 -keybind.block_select_08.name = Category/Block Select 8 -keybind.block_select_09.name = Category/Block Select 9 -keybind.block_select_10.name = Category/Block Select 10 -keybind.fullscreen.name = Toggle Fullscreen +placement.blockselectkeys = \n[lightgray]Klávesa:[] [{0}, +keybind.clear_building.name = Vyčistit stavění +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.move_x.name = Pohyb vodorovně +keybind.move_y.name = Pohyb svisle +keybind.mouse_move.name = Následovat myš +keybind.dash.name = Sprintovat +keybind.schematic_select.name = Vybrat oblast +keybind.schematic_menu.name = Nabídka šablon +keybind.schematic_flip_x.name = Překlopit šablona podle svislé osy +keybind.schematic_flip_y.name = Překlopit šablona podle vodorovné osy +keybind.category_prev.name = Předchozí kategorie +keybind.category_next.name = Další kategorie +keybind.block_select_left.name = Výběr bloku vlevo +keybind.block_select_right.name = Výběr bloku vpravo +keybind.block_select_up.name = Výběr bloku nahoře +keybind.block_select_down.name = Výběr bloku dole +keybind.block_select_01.name = Výběr kategorie/bloku 1 +keybind.block_select_02.name = Výběr kategorie/bloku 2 +keybind.block_select_03.name = Výběr kategorie/bloku 3 +keybind.block_select_04.name = Výběr kategorie/bloku 4 +keybind.block_select_05.name = Výběr kategorie/bloku 5 +keybind.block_select_06.name = Výběr kategorie/bloku 6 +keybind.block_select_07.name = Výběr kategorie/bloku 7 +keybind.block_select_08.name = Výběr kategorie/bloku 8 +keybind.block_select_09.name = Výběr kategorie/bloku 9 +keybind.block_select_10.name = Výběr kategorie/bloku 10 +keybind.fullscreen.name = Přepnout zobrazení na celou obrazovku keybind.select.name = Vybrat/Střílet -keybind.diagonal_placement.name = Diagonal Placement -keybind.pick.name = Pick Block -keybind.break_block.name = Break Block +keybind.diagonal_placement.name = Umisťovat úhlopříčně +keybind.pick.name = Vybrat blok +keybind.break_block.name = Rozbít blok keybind.deselect.name = Odznačit keybind.shoot.name = Střílet -keybind.zoom.name = přiblížení +keybind.zoom.name = Přiblížení keybind.menu.name = Hlavní nabídka -keybind.pause.name = pauza -keybind.pause_building.name = Pause/Resume Building -keybind.minimap.name = Minimapa -keybind.chat.name = Chat +keybind.pause.name = Pozastavení hry +keybind.pause_building.name = Pozastavit nebo spustit stavění +keybind.minimap.name = Mapička +keybind.chat.name = Kanál zpráv keybind.player_list.name = Seznam hráčů -keybind.console.name = Konzole +keybind.console.name = Terminál keybind.rotate.name = Otočit -keybind.rotateplaced.name = Rotate Existing (Hold) -keybind.toggle_menus.name = Přepínání nabídek -keybind.chat_history_prev.name = Předchozí historie chatu -keybind.chat_history_next.name = Další historie chatu -keybind.chat_scroll.name = Chat posun +keybind.rotateplaced.name = Otočit existující (podržet + klávesa pro Otočení) +keybind.toggle_menus.name = Přepnout zobrazení nabídek +keybind.chat_history_prev.name = Pohyb v historii zpráv zpět +keybind.chat_history_next.name = Pohyb v historii zpráv dopředu +keybind.chat_scroll.name = Rolování kanálu zpráv keybind.drop_unit.name = Zahodit jednotku -keybind.zoom_minimap.name = Přiblížit minimapu -mode.help.title = Popis módů -mode.survival.name = Survival -mode.survival.description = Normální mód. Limitované suroviny a automatické přepínání vln. -mode.sandbox.name = Sandbox -mode.sandbox.description = Nekonečné zdroje a žádný čas pro vlny nepřátel. +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.sandbox.name = Pískoviště +mode.sandbox.description = Zdroje jsou nekonečné, vlny nepřátel nemají automatické načasování. mode.editor.name = Editor -mode.pvp.name = PvP -mode.pvp.description = Bojuj proti ostatním hráčům v lokální síti. +mode.pvp.name = Hráči proti sobě +mode.pvp.description = Bojuj proti ostatním hráčům v lokální síti.\n[gray]Vyžaduje na mapě přítomnost alespoň dvou rozdílně zbarvených jader.[] mode.attack.name = Útok mode.attack.description = Znič nepřátelskou základnu.\n[gray]Vyžaduje přítomnost červeného jádra na mapě.[] -mode.custom = Custom Rules +mode.custom = Vlastní pravidla -rules.infiniteresources = Nekonečno surovin -rules.reactorexplosions = Reactor Explosions +rules.infiniteresources = Neomezeně surovin +rules.reactorexplosions = Výbuch reaktoru rules.wavetimer = Časovač vln rules.waves = Vlny -rules.attack = Attack Mode -rules.enemyCheat = Infinite AI Resources -rules.unitdrops = Unit Drops -rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier -rules.unithealthmultiplier = Unit Health Multiplier -rules.blockhealthmultiplier = Block Health Multiplier -rules.playerhealthmultiplier = Hráčovy životy(multiplejer) -rules.playerdamagemultiplier = Hráčův útok (multiplejer) -rules.unitdamagemultiplier = Demič jedmotek (Multiplejer) -rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) -rules.respawntime = Spaumovací čas:[LIGHT_GRAY] (sec) -rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) -rules.buildcostmultiplier = Build Cost Multiplier -rules.buildspeedmultiplier = Build Speed Multiplier -rules.waitForWaveToEnd = Vllny čekají na nepřátele -rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles) -rules.respawns = Max respawns per wave -rules.limitedRespawns = Limit Respawns +rules.attack = Režim útoku +rules.enemyCheat = Neomezeně surovin pro umělou inteligenci +rules.unitdrops = Sesílání jednotek +rules.unitbuildspeedmultiplier = Násobek rychlosti výroby jednotek +rules.unithealthmultiplier = Násobek zdraví jednotek +rules.blockhealthmultiplier = Násobek zdraví bloků +rules.playerhealthmultiplier = Násobek zdraví hráče +rules.playerdamagemultiplier = Násobek útoku hráče +rules.unitdamagemultiplier = Násobek poškození jednotkami +rules.enemycorebuildradius = Poloměr, ve kterém se okolo nepřítelského jádra nesmí stavět: [lightgray](dlaždic)[] +rules.respawntime = Čas znovuzrození: [lightgray](vteřin)[] +rules.wavespacing = Čas rozestupu mezi vlnami: [lightgray](vteřin)[] +rules.buildcostmultiplier = Násobek ceny stavění +rules.buildspeedmultiplier = Násobek rychlosti stavění +rules.waitForWaveToEnd = Vlny čekají na nepřátele +rules.dropzoneradius = Poloměr oblasti pro sestoupení: [lightgray](dlaždic)[] +rules.respawns = Maximální počet znovuvylíhnutí za vlnu +rules.limitedRespawns = Maximální počet znovuzrození rules.title.waves = Vlny -rules.title.respawns = Respawns -rules.title.resourcesbuilding = surovyny & Stavby +rules.title.respawns = Znovuzrození +rules.title.resourcesbuilding = Suroviny a stavění rules.title.player = Hráči rules.title.enemy = Nepřátelé rules.title.unit = Jednotky -rules.title.experimental = Experimental -rules.lighting = Lighting -rules.ambientlight = Ambient Light +rules.title.experimental = Experimentální +rules.lighting = Světlo +rules.ambientlight = Světlo prostředí content.item.name = Předměty -content.liquid.name = Tekutiny +content.liquid.name = Kapaliny content.unit.name = Jednotky -content.block.name = Blocks -content.mech.name = Mechy +content.block.name = Bloky +content.mech.name = Mechové item.copper.name = Měď item.lead.name = Olovo item.coal.name = Uhlí -item.graphite.name = Graphite -item.titanium.name = Titánium +item.graphite.name = Grafit +item.titanium.name = Titan item.thorium.name = Thorium item.silicon.name = Křemík -item.plastanium.name = Plastanium +item.plastanium.name = Plastan item.phase-fabric.name = Fázová tkanina -item.surge-alloy.name = Impulzní slitina -item.spore-pod.name = Spore Pod +item.surge-alloy.name = Rázová slitina +item.spore-pod.name = Syntetizér spór item.sand.name = Písek -item.blast-compound.name = Výbušná směs -item.pyratite.name = Pyratite +item.blast-compound.name = Výbušnina +item.pyratite.name = Pyratit item.metaglass.name = Metasklo item.scrap.name = Šrot liquid.water.name = Voda -liquid.slag.name = Rostavené železo -liquid.oil.name = Ropa -liquid.cryofluid.name = Cryofluid +liquid.slag.name = Roztavený kov +liquid.oil.name = Nafta +liquid.cryofluid.name = Chladící kapalina mech.alpha-mech.name = Alfa -mech.alpha-mech.weapon = Těžký Opakovač -mech.alpha-mech.ability = Roj dronů +mech.alpha-mech.weapon = Těžký kulomet +mech.alpha-mech.ability = Regenerace mech.delta-mech.name = Delta mech.delta-mech.weapon = Obloukový generátor -mech.delta-mech.ability = Průtok +mech.delta-mech.ability = Výboj mech.tau-mech.name = Tau -mech.tau-mech.weapon = Restruktní laser -mech.tau-mech.ability = Opravná dávka +mech.tau-mech.weapon = Restrukturní laser +mech.tau-mech.ability = Dávkové léčení mech.omega-mech.name = Omega -mech.omega-mech.weapon = Rojové střely +mech.omega-mech.weapon = Roj raket mech.omega-mech.ability = Obrněná konfigurace mech.dart-ship.name = Šipka -mech.dart-ship.weapon = Opakovač +mech.dart-ship.weapon = Kulomet mech.javelin-ship.name = Oštěp -mech.javelin-ship.weapon = Dávka raket -mech.javelin-ship.ability = Výbojový posilovač +mech.javelin-ship.weapon = Sprška raket +mech.javelin-ship.ability = Posilovač výboje mech.trident-ship.name = Trojzubec -mech.trident-ship.weapon = Bombová zátoka -mech.glaive-ship.name = Glaiva -mech.glaive-ship.weapon = Plamenný opakovač -item.corestorable = [lightgray]Storable in Core: {0} -item.explosiveness = [LIGHT_GRAY]Výbušnost: {0}% -item.flammability = [LIGHT_GRAY]Zápalnost: {0}% -item.radioactivity = [LIGHT_GRAY]Radioaktivita: {0}% -unit.health = [LIGHT_GRAY]Životy: {0} -unit.speed = [LIGHT_GRAY]Rychlost: {0} -mech.weapon = [LIGHT_GRAY]Zbraň: {0} -mech.health = [LIGHT_GRAY]Životy: {0} -mech.itemcapacity = [LIGHT_GRAY]Kapacita předmětů: {0} -mech.minespeed = [LIGHT_GRAY]Rychlost těžení: {0} -mech.minepower = [LIGHT_GRAY]Síla těžení: {0} -mech.ability = [LIGHT_GRAY]Schopnost: {0} -mech.buildspeed = [LIGHT_GRAY]Rychlost stavění: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0} -liquid.viscosity = [LIGHT_GRAY]Viskozita: {0} -liquid.temperature = [LIGHT_GRAY]Teplota: {0} +mech.trident-ship.weapon = Bombový útok +mech.glaive-ship.name = Šavle +mech.glaive-ship.weapon = Plamenomet +item.corestorable = [lightgray]Úložné místo v jídře: {0}[] +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}[] +mech.weapon = [lightgray]Zbraň: {0}[] +mech.health = [lightgray]Životy: {0}[] +mech.itemcapacity = [lightgray]Kapacita předmětů: {0}[] +mech.minespeed = [lightgray]Rychlost těžení: {0}[] +mech.minepower = [lightgray]Síla těžení: {0}[] +mech.ability = [lightgray]Schopnost: {0}[] +mech.buildspeed = [lightgray]Rychlost stavění: {0}%[] +liquid.heatcapacity = [lightgray]Teplotní kapacita: {0}[] +liquid.viscosity = [lightgray]Viskozita: {0}[] +liquid.temperature = [lightgray]Teplota: {0}[] -block.sand-boulder.name = Balvan písku +block.sand-boulder.name = Pískovec block.grass.name = Tráva block.salt.name = Sůl block.saltrocks.name = Solný kámen block.pebbles.name = Oblázky -block.tendrils.name = Tendrils +block.tendrils.name = Úponky block.sandrocks.name = Písečný kámen block.spore-pine.name = Spórová borovice block.sporerocks.name = Spórové kamení @@ -859,127 +861,127 @@ block.moss.name = Mech block.shrubs.name = Křoví block.spore-moss.name = Spórový mech block.shalerocks.name = Břidlicové kamení -block.scrap-wall.name = Stará zeď -block.scrap-wall-large.name = Velá stará zeď -block.scrap-wall-huge.name = Obří stará zeď -block.scrap-wall-gigantic.name = Gigantická stará zeď -block.thruster.name = Thruster -block.kiln.name = Pec -block.graphite-press.name = Graphitový lis -block.multi-press.name = Všětraný lis -block.constructing = {0} [LIGHT_GRAY](Ve výstavbě) -block.spawn.name = Nepřátelský spawn -block.core-shard.name = Core: Shard -block.core-foundation.name = Core: Foundation -block.core-nucleus.name = Core: Nucleus +block.scrap-wall.name = Rozpadlá zeď +block.scrap-wall-large.name = Velká rozpadlá zeď +block.scrap-wall-huge.name = Obří rozpadlá zeď +block.scrap-wall-gigantic.name = Gigantická rozpadlá zeď +block.thruster.name = Pohon +block.kiln.name = Vysoká pec +block.graphite-press.name = Lis na grafit +block.multi-press.name = Všestranný lis +block.constructing = {0} [lightgray](ve výstavbě)[] +block.spawn.name = Nepřátelská líheň +block.core-shard.name = Jádro: Odštěpek +block.core-foundation.name = Jádro: Základ +block.core-nucleus.name = Jádro: Atom block.deepwater.name = Hluboká voda block.water.name = Voda -block.tainted-water.name = Tainted Water -block.darksand-tainted-water.name = Dark Sand Tainted Water -block.tar.name = Tar +block.tainted-water.name = Zamořená voda +block.darksand-tainted-water.name = Zamořená voda s černým pískem +block.tar.name = Dehet block.stone.name = Kámen block.sand.name = Písek block.darksand.name = Černý písek block.ice.name = Led block.snow.name = Sníh block.craters.name = Krátery -block.sand-water.name = Písková voda -block.darksand-water.name = Černá písková voda +block.sand-water.name = Voda s pískem +block.darksand-water.name = Voda s černým pískem block.char.name = Char -block.holostone.name = Holo stone -block.ice-snow.name = Ice Snow -block.rocks.name = Kameny -block.icerocks.name = Ledové kameny -block.snowrocks.name = Sněhové kameny -block.dunerocks.name = Dune Rocks -block.pine.name = Pine -block.white-tree-dead.name = White Tree Dead -block.white-tree.name = White Tree -block.spore-cluster.name = Spore Cluster -block.metal-floor.name = Železná podlaha -block.metal-floor-2.name = Železná Podlaha -block.metal-floor-3.name = železná Podlaha3 -block.metal-floor-5.name = Železná podlaha 5 -block.metal-floor-damaged.name = Rozbytáb -block.dark-panel-1.name = Dark Panel 1 -block.dark-panel-2.name = Dark Panel 2 -block.dark-panel-3.name = Dark Panel 3 -block.dark-panel-4.name = Dark Panel 4 -block.dark-panel-5.name = Dark Panel 5 -block.dark-panel-6.name = Dark Panel 6 -block.dark-metal.name = Dark Metal -block.ignarock.name = Igna Rock -block.hotrock.name = Hot Rock +block.holostone.name = Blok kamene +block.ice-snow.name = Zasněžený led +block.rocks.name = Skály +block.icerocks.name = Ledové skály +block.snowrocks.name = Sněhové skály +block.dunerocks.name = Písečné duny +block.pine.name = Borovice +block.white-tree-dead.name = Bílá souška +block.white-tree.name = Bílý strom +block.spore-cluster.name = Shluk spór +block.metal-floor.name = Kovový povrch 1 +block.metal-floor-2.name = Kovový povrch 2 +block.metal-floor-3.name = Kovový povrch 3 +block.metal-floor-5.name = Kovový povrch 4 +block.metal-floor-damaged.name = Poškozený kovový povrch +block.dark-panel-1.name = Tmavá deska 1 +block.dark-panel-2.name = Tmavá deska 2 +block.dark-panel-3.name = Tmavá deska 3 +block.dark-panel-4.name = Tmavá deska 4 +block.dark-panel-5.name = Tmavá deska 5 +block.dark-panel-6.name = Tmavá deska 6 +block.dark-metal.name = Tmavý kov +block.ignarock.name = Třaskavec +block.hotrock.name = Horký kámen block.magmarock.name = Magmatický kámen block.cliffs.name = Útesy block.copper-wall.name = Měděná zeď block.copper-wall-large.name = Velká měděná zeď -block.titanium-wall.name = Titaniová zeď -block.titanium-wall-large.name = Velká titaniová zeď -block.plastanium-wall.name = Plastaniová zeď -block.plastanium-wall-large.name = Velká plastaniová zeď -block.phase-wall.name = Fázová stěna -block.phase-wall-large.name = Velká fázová stěna -block.thorium-wall.name = Thoriová stěna -block.thorium-wall-large.name = Velká thoriová stěna +block.titanium-wall.name = Titanová zeď +block.titanium-wall-large.name = Velká titanová zeď +block.plastanium-wall.name = Plastanová zeď +block.plastanium-wall-large.name = Velká plastanová zeď +block.phase-wall.name = Fázová zeď +block.phase-wall-large.name = Velká fázová zeď +block.thorium-wall.name = Thoriová zeď +block.thorium-wall-large.name = Velká thoriová zeď block.door.name = Dveře block.door-large.name = Velké dveře -block.duo.name = Duo -block.scorch.name = Scorch -block.scatter.name = Scatter -block.hail.name = Hail -block.lancer.name = Lancer +block.duo.name = Střálna Duo +block.scorch.name = Palivec +block.scatter.name = Rozsévač +block.hail.name = Kroupomet +block.lancer.name = Kopiník block.conveyor.name = Dopravník -block.titanium-conveyor.name = Titániový dopravník +block.titanium-conveyor.name = Titanoový dopravník block.armored-conveyor.name = Obrněný dopravník -block.armored-conveyor.description = Přepravuje předměty stejně rychle jako titaniový přepravník. Je obrněný a déle vydrží, avšak nepřijímá předměty z boku z ničeho jiného než jiných přepravní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 = Distributor -block.sorter.name = Dělička +block.distributor.name = Rozdělovač +block.sorter.name = Třídička block.inverted-sorter.name = Obrácená třídička block.message.name = Zpráva -block.illuminator.name = Illuminator -block.illuminator.description = A small, compact, configurable light source. Requires power to function. -block.overflow-gate.name = Brána přetečení -block.silicon-smelter.name = Silicon Smelter +block.illuminator.name = Osvětlovač +block.illuminator.description = Malý, kompaktní, konfigurovatelný zdroj světla. Vyžaduje pro svoje fungování energii. +block.overflow-gate.name = Přepadová brána +block.silicon-smelter.name = Křemíková huť block.phase-weaver.name = Tkalcovna pro fázovou tkaninu block.pulverizer.name = Rozmělňovač -block.cryofluidmixer.name = Cryofluid mixér +block.cryofluidmixer.name = Míchačka na chladící kapalinu block.melter.name = Tavírna block.incinerator.name = Spalovna -block.spore-press.name = Spore Press -block.separator.name = Separátor -block.coal-centrifuge.name = Coal Centrifuge +block.spore-press.name = Lis na spóry +block.separator.name = Oddělovač +block.coal-centrifuge.name = Odstředivka na uhlí block.power-node.name = Energetický uzel block.power-node-large.name = Velký energetický uzel -block.surge-tower.name = Surge Tower -block.diode.name = Battery Diode +block.surge-tower.name = Přepěťová věž +block.diode.name = Bateriová dioda block.battery.name = Baterie block.battery-large.name = Velká baterie block.combustion-generator.name = Spalovací generátor block.turbine-generator.name = Turbínový generátor -block.differential-generator.name = Differential Generator -block.impact-reactor.name = Impact Reactor +block.differential-generator.name = Rozdílový Generator +block.impact-reactor.name = Rázový reaktor block.mechanical-drill.name = Mechanický vrt block.pneumatic-drill.name = Pneumatický vrt block.laser-drill.name = Laserový vrt -block.water-extractor.name = Vodní extraktor +block.water-extractor.name = Vrt na vodu block.cultivator.name = Kultivátor -block.dart-mech-pad.name = Dart Mech Pad -block.delta-mech-pad.name = Plošina pro Delta Mech -block.javelin-ship-pad.name = Plošina pro Oštěp Mech +block.dart-mech-pad.name = Plošina pro mecha Alfa +block.delta-mech-pad.name = Plošina pro mecha Delta +block.javelin-ship-pad.name = Plošina pro loď Oštěp block.trident-ship-pad.name = Plošina pro loď Trojzubec -block.glaive-ship-pad.name = Plošina pro loď Glaiva -block.omega-mech-pad.name = Plošina pro Omega Mech -block.tau-mech-pad.name = Plošina pro Tau Mech +block.glaive-ship-pad.name = Plošina pro loď Šavle +block.omega-mech-pad.name = Plošina pro mecha Omega +block.tau-mech-pad.name = Plošina pro mecha Tau block.conduit.name = Potrubí -block.mechanical-pump.name = Mechanická pumpa +block.mechanical-pump.name = Mechanické čerpadlo block.item-source.name = Zdroj předmětů -block.item-void.name = Prázdnota pro předměty -block.liquid-source.name = Zdroj tekutin -block.liquid-void.name = Liquid Void -block.power-void.name = Prázdnota pro energii +block.item-void.name = Černá díra na předměty (/dev/null) +block.liquid-source.name = Zdroj kapalin +block.liquid-void.name = Černá díra na kapaliny (/dev/null) +block.power-void.name = Černá díra na energii (/dev/null) block.power-source.name = Nekonečný zdroj energie block.unloader.name = Odbavovač block.vault.name = Trezor @@ -988,262 +990,262 @@ block.swarmer.name = Rojiště block.salvo.name = Salva block.ripple.name = Vlnění block.phase-conveyor.name = Fázový přepravník -block.bridge-conveyor.name = Mostový přepravník -block.plastanium-compressor.name = Kompresor na plastanium -block.pyratite-mixer.name = Pyratit mixér -block.blast-mixer.name = Výbušninový mixér +block.bridge-conveyor.name = Přemostění přepravníku +block.plastanium-compressor.name = Kompresor na plastan +block.pyratite-mixer.name = Míchačka na pyratit +block.blast-mixer.name = Míchačka na výbušninu block.solar-panel.name = Solární panel block.solar-panel-large.name = Velký solární panel -block.oil-extractor.name = Ropný extraktor +block.oil-extractor.name = Vrt na naftu block.command-center.name = Řídící středisko -block.draug-factory.name = Draug Miner Drone Factory -block.spirit-factory.name = Továrna na Spirit drony -block.phantom-factory.name = Továrna na Fantom drony -block.wraith-factory.name = Továrna na Wraithy -block.ghoul-factory.name = Továrna na Ghůl bombardéry -block.dagger-factory.name = Továrna na Dagger mechy -block.crawler-factory.name = Továrna na Crawler mechy -block.titan-factory.name = Továrna na Titán mechy -block.fortress-factory.name = Továrna na Fortress mechy -block.revenant-factory.name = Továrna na Revenanty -block.repair-point.name = Opravný bod +block.draug-factory.name = Továrna na těžící drony Dragoun +block.spirit-factory.name = Továrna na opravovací drony Spirit +block.phantom-factory.name = Továrna na stavící drony Fantóm +block.wraith-factory.name = Továrna na stíhačky Přízrak +block.ghoul-factory.name = Továrna na bombardéry Ghúl +block.dagger-factory.name = Továrna na mechy Dýka +block.crawler-factory.name = Továrna na mechy Slídil +block.titan-factory.name = Továrna na mechy Titán +block.fortress-factory.name = Továrna na mechy Pevnost +block.revenant-factory.name = Továrna na stíhačky Mstitel +block.repair-point.name = Opravovací bod block.pulse-conduit.name = Pulzní potrubí -block.plated-conduit.name = Plated Conduit +block.plated-conduit.name = Plátované potrubí block.phase-conduit.name = Fázové potrubí -block.liquid-router.name = Směrovač tekutin -block.liquid-tank.name = Nádrž na tekutiny -block.liquid-junction.name = Křižovatka tekutin -block.bridge-conduit.name = Mostové potrubí -block.rotary-pump.name = Rotační pumpa +block.liquid-router.name = Směrovač kapalin +block.liquid-tank.name = Nádrž na kapaliny +block.liquid-junction.name = Křižovatka kapalin +block.bridge-conduit.name = Přemostění potrubí +block.rotary-pump.name = Rotační čerpadlo block.thorium-reactor.name = Thoriový reaktor -block.mass-driver.name = Hromadný distributor +block.mass-driver.name = Hromadný přenašeč block.blast-drill.name = Tlakovzdušný vrt -block.thermal-pump.name = Termální pumpa -block.thermal-generator.name = Termální generátor -block.alloy-smelter.name = Slitinová pec -block.mender.name = Mender +block.thermal-pump.name = Tepelné čerpadlo +block.thermal-generator.name = Tepelný generátor +block.alloy-smelter.name = Slitinová huť +block.mender.name = Opravář block.mend-projector.name = Opravný projektor -block.surge-wall.name = Impulzní stěna -block.surge-wall-large.name = Velká impulzní stěna +block.surge-wall.name = Rázová stěna +block.surge-wall-large.name = Velká rázová stěna block.cyclone.name = Cyklón -block.fuse.name = Fůze +block.fuse.name = Fúze block.shock-mine.name = Šoková mina -block.overdrive-projector.name = Vysokorychlostní projektor +block.overdrive-projector.name = Urychlující projektor block.force-projector.name = Silový projektor block.arc.name = Oblouk -block.rtg-generator.name = RTG generátor -block.spectre.name = Spektr -block.meltdown.name = Meltdown +block.rtg-generator.name = RTG +block.spectre.name = Duch +block.meltdown.name = Tavička block.container.name = Kontejnér -block.launch-pad.name = Launch Pad -block.launch-pad-large.name = Large Launch Pad -team.blue.name = modrá -team.crux.name = červená -team.sharded.name = orange -team.orange.name = oranžová -team.derelict.name = derelict -team.green.name = zelená -team.purple.name = fialová -unit.spirit.name = Spirit dron -unit.draug.name = Draug Miner Drone -unit.phantom.name = Fantom dron -unit.dagger.name = Dagger -unit.crawler.name = Crawler -unit.titan.name = Titán -unit.ghoul.name = Ghůl bombardér -unit.wraith.name = Wraith -unit.fortress.name = Pevnost -unit.revenant.name = Revenant -unit.eruptor.name = Eruptor -unit.chaos-array.name = Chaos Array -unit.eradicator.name = Eradicator -unit.lich.name = Lich -unit.reaper.name = Reaper +block.launch-pad.name = Vysílací plošina +block.launch-pad-large.name = Velká vysílací plošina +team.blue.name = modrý +team.crux.name = červený +team.sharded.name = oranžový +team.orange.name = oranžový +team.derelict.name = opuštěný +team.green.name = zelený +team.purple.name = fialový +unit.spirit.name = Opravovací dron Spirit +unit.draug.name = Těžící dron Dragoun +unit.phantom.name = Stavící drom Fantóm +unit.dagger.name = Mech Dýka +unit.crawler.name = Mech Slídil +unit.titan.name = Mech Titán +unit.ghoul.name = Bombardér Ghúl +unit.wraith.name = Stíhačka Přízrak +unit.fortress.name = Mech Pevnost +unit.revenant.name = Stíhačka Mstitel +unit.eruptor.name = Lávovec +unit.chaos-array.name = Čirý chaos +unit.eradicator.name = Likvidátor +unit.lich.name = Kostěj nesmrtelný +unit.reaper.name = Rozparovač tutorial.next = [lightgray] -tutorial.intro = Vítej ve [scarlet]výuce Mindustry.[]\nZačni [accent] těžením mědi[] - klikni na měděnou žílu v blízkosti jádra.\n\n[accent]{0}/{1} copper -tutorial.intro.mobile = Vítej ve [scarlet]výuce Mindustry.[]\nPohybuj se táhnutím do stran.\nPřibližuj a oddaluj [accent]2 prsty [].\nZačni [accent] těžením mědi[] - přibliž se k měděné žíle v blízkosti jádra a klepni na ni.\n\n[accent]{0}/{1} mědi -tutorial.drill = Manuální těžba je neefektivní.\n[accent]Vrty []budou těžit automaticky.\nPostav jeden na měděnou rudu. -tutorial.drill.mobile = Manuální těžba je neefektivní.\n[accent]Vrty []budou těžit automaticky.\nKlepni na vrt v záložce dole vpravo.\nVyber [accent] mechanický vrt[].\nPolož ho klepnutím na měděnou žílu a následně potvrď [accent] fajfkou[] níže.\nStiskni [accent] X [] pro zrušení stavby. -tutorial.blockinfo = Každý blok má jiné vlastnosti. Každý vrt může těžit pouze některé suroviny.\nNa tyto vlastnosti se můžeš podívat [accent] klepnutím na "?" ve stavebním menu.[]\n\n[accent] Nyní se podívej na vlastnosti mechanického vrtu.[] -tutorial.conveyor = [accent]Dopravníky[] jsou zapotřebí k dopravě materiálu k jádru.\nVytvoř řadu dopravníků od vrtu až k jádru -tutorial.conveyor.mobile = [accent]Dopravníky[] jsou zapotřebí k dopravě materiálu k jádru.\nVytvoř řadu dopravníku od vrtu až k jádru.\n[accent] Pokládej dopravníky v řadě dlouhým stiskem prstu[] a táhnutím v požadovaném směru.\n\n[accent]{0}/{1} přepravníků položeno v řadě\n[accent]0/1 předmětů doručeno -tutorial.turret = Defenzivní stavby musí být postaveny za účelem obrany vůči[LIGHT_GRAY] nepříteli[].\nPostav střílnu Duo blízko svého jádra. -tutorial.drillturret = Duo střílny požadují[accent] měděnou munici []jako střelivo.\nPolož mechanický vrt blízko střílny pro zásobování mědí. -tutorial.pause = Během boje můžeš[accent] pauznout hru.[]\nBěhem pauzy je možné plánovat stavbu budov.\n\n[accent]Pauzni mezerníkem. -tutorial.pause.mobile = Během boje můžeš[accent] pauznout hru.[]\nBěhem pauzy je možné plánovat stavbu budov.\n\n[accent]Pauzu dáš tímhle tlačítkem vlevo nahoře. -tutorial.unpause = Teď zmáčkni mezerník znova a odpauzuj hru. -tutorial.unpause.mobile = Teď ho zmáčkni znova a odpauzuj hru. -tutorial.breaking = Často je nutné bloky i ničit.\n[accent]Drž pravé tlačítko[] a táhni pro výběr oblasti bloků ke zničení.[]\n\n[accent]Znič všechny bloky šrotu vlevo od Tvého jádra. -tutorial.breaking.mobile = Často je nutné bloky i ničit.\n[accent]Vyber rozebírací mód[] a klepni na blok, který chceš zničit.\nZnič celou oblast delším stiskem prstu[] a táhnutím v nějakém směru.\nZmáčkni fajfku pro potvrzení zničení.\n\n[accent]Znič všechny bloky šrotu vlevo od Tvého jádra. -tutorial.withdraw = Někdy je třeba odebírat předměty přímo z bloků.\n[accent]Klikni na blok[], ve kterém jsou předměty a pak [accent]klikni na předmět[] z jeho inventáře.\nVícero předmětů může být odebráno [accent]kliknutím a držením[].\n\n[accent]Odeber nějakou měď z jádra.[] -tutorial.deposit = Vložit předměty dovnitř bloku můžeš přetažením z Tvé lodi na cílový blok.\n\n[accent]Vlož svou měď zpět do jádra.[] -tutorial.waves = [LIGHT_GRAY] Nepřítel[] se přibližuje.\n\nUbraň své jádro po dobu 2 vln, postav více střílen. -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. +tutorial.intro = Vítej ve [scarlet]výuce Mindustry[]. Zde se dozvíš základy hraní.\nPoznámka: výuka předpokládá [accent]výchozí klávesy[] v nastavení, pokud jsi je změnil, bude třeba to vzít v potaz.\nPoužij [accent][[WASD][] pro pohyb a [accent]kolečko myši[] pro přibližování a oddalování.\nZačni [accent]těžením mědi[]. Přibliž se k měděné žíle u Tvého jádra a klikni na ni pro zahájení těžby.\n\n[accent]{0}/{1} mědi[] +tutorial.intro.mobile = Vítej ve [scarlet]výuce Mindustry[].\nPohybuj se táhnutím prstem do strany.\nPřibližuj a oddaluj mapu [accent]2 prsty[].\nZačni [accent] těžením mědi[]. Přibliž se k měděné žíle u Tvého jádra a ťupni na ni pro zahájení těžby.\n\n[accent]{0}/{1} mědi[] +tutorial.drill = Sám vidíš, že ruční těžba není moc efektivní.\n[accent]Vrty[] umožňují těžit automaticky.\nKlikni na vrt v nabídce v pravém dolním rohu.\nVyber [accent]mechanický vrt[]. Umisti jej kliknutím na měděnou žílu.\nTaké můžeš vybrat mechanický vrt stiskem kláves [accent][[2][] a následně [accent][[1][] rychle po sobě, nezávisle na tom, jaká záložka je v nabídce zrovna otevřena.\n[accent]Pravým klikem[] přerušíš stavění. +tutorial.drill.mobile = Sám vidíš, že ruční těžba není moc efektivní.\n[accent]Vrty[] umožňují těžit automaticky.\nŤupni na vrt v nabídce v pravém dolním rohu.\nVyber [accent]mechanický vrt[]. Umisti jej klikutím na měděnou žílu ťupnutím a následně zaškrtni [accent]fajfku[] na spodku nabídky pro potvrzení volby.\nŤupnutím na [accent]X[] přerušíš stavění. +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.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.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[]. +tutorial.breaking.mobile = Bloky je třeba nejen stavět, ale Často rozbít.\n[accent]Ťupnu na ikonku kladiva dole[] a pak ťupni na blok, který chceš rozbít.\nRozbití více bloků se provádí delším podržením prstu a táhnutím.\nRozbití dokončíš ťupnutím na fajfku.\n\n[accent]Znič všechen šrot vlevo od Tvého jádra použitím blokového výběru[]. +tutorial.withdraw = Někdy je třeba odebírat předměty přímo z bloků.\n[accent]Klikni na blok[], ve kterém jsou předměty a pak [accent]klikni na předmět[] z inventáře bloku.\nVícero předmětů může být odebráno [accent]ťupnutím a držením[].\n\n[accent]Odeber trochu mědi z jádra[]. +tutorial.deposit = Vložit předměty do bloku můžeš přetažením z Tvé lodi na cílový blok.\n\n[accent]Vlož odebranou měď zprátky do Tvého jádra[]. +tutorial.waves = [lightgray]Nepřítel[] se přibližuje.\n\nUbraň své jádro po dobu 2 vln. [accent]Klikni levým tlačítkem[] pro střílení.\nPostav více střílen a vrtů. Natěž více mědi. +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 = Užitečný strukturální materiál. Používá se rozsáhle v ostatních typech bloků. -item.lead.description = Základní počáteční materiál. Požívá se rozsáhle v elektronice a v blocích pro transport tekutin. -item.metaglass.description = Velmi důležitá součást všeho, co se týká tekutin -item.graphite.description = Stlačený uhlík, používaný v elektronických komponentách a též jako munice. -item.sand.description = Běžný materiál rozšířeně používaný v spalování slitin. -item.coal.description = Běžné a snadno dostupné palivo, pochází z Ostravy. -item.titanium.description = Vzácný, velice lehký kov, používá se rozsáhle v trasportu tekutin, vrtech a letounech. -item.thorium.description = Hustý, radioaktivní materiál, používá se jako strukturální podpora a jako nuklearní palivo. -item.scrap.description = Staré železo které se dá přepracovat na grafit měď olovo titánium a písek -item.silicon.description = Extrémně užitečný polovodič, aplikuje se v solárních panelech a v komplexní elektronice. -item.plastanium.description = Lehký, kujný materiál, používá se v pokročilém letectví a jako fragmentační střelivo. -item.phase-fabric.description = Skoro beztížná substance používaná v pokročilé elektronice a v sebeopravné technologii. -item.surge-alloy.description = Pokročilá slitina s unikátními elektronickými vlastnostmi. -item.spore-pod.description = Used for conversion into oil, explosives and fuel. -item.blast-compound.description = Těkavá směs používaná v bombácha a výbušninách. Dá se spalovat ale jako palivo se nedoporučuje. -item.pyratite.description = Extrémně vznětlivá substance, používá ve vznětovém střelivu. -liquid.water.description = Nejčastěji se používá ke chlazení a zpracování odpadu. -liquid.slag.description = Rostavený scrap pou žívá se k vírobě olova mědi a grafitu. -liquid.oil.description = Může být spálen, vybouchnout nebo použit jako chlazení. -liquid.cryofluid.description = Nejefektivnější tekutina pro chlazení. -mech.alpha-mech.description = Standartní mech. Má slušnou rychlost a poškození; Může vytvořit až 3 drony Pro zvýšenou ofenzivní způsobilost. -mech.delta-mech.description = Rychlý, lehce obrněný mech vytvořený pro udeř a uteč akce. Působí malé poškození vůči struktůrám, ale může zneškodnit velkou skupinu nepřátelských jednotek velmi rychle svýmy elektro-obloukovými zbraněmi -mech.tau-mech.description = Podpůrný mech. Léčí spojenecké stavby a jednotky střelbou do nich. Může léčit i spojence ve svém poli působení. -mech.omega-mech.description = Objemný a velice dovře obrněný mech, určen pro útok v přední linii. Jeho schopnost obrnění blokuje až 90% příchozího poškození. -mech.dart-ship.description = Standartní loď. Poměrně rychlá a lehká, má malou ofenzívu a pomalou rychlost těžení. -mech.javelin-ship.description = Loď stylu udeř a uteč. Zpočátku pomalý ale umí akcelerovat do obrovské rychlosti a létat u nepřátelských základen a působit značné škody svými elektrickými zbraněmi a raketami. -mech.trident-ship.description = Těžký bombardér. Docela dobře obrněný. -mech.glaive-ship.description = Obrovská, dobře obrněná střelecká loď. Vybavena zápalným opakovačem. Dobrá akcelerace a maximální rychlost. -unit.draug.description = Jednoduchý těžící dron. Levný a postradatelný. Automaticky těží měď a olovo v blízkosti. Natěžené suroviny donese do nejbližšího jádra. -unit.spirit.description = Startovní dron. Standardně se objevuje u jádra. Automaticky těží rudy a opravuje stavby. -unit.phantom.description = Pokročilý dron. Automaticky těží rudy a opravuje stavby. Podstatně víc efektivní než Spirit dron. -unit.dagger.description = Základní pozemní jednotka. Efektivní ve velkém počtu. -unit.crawler.description = Pozemní jednotka zkonstruovaná z okřesané železné kostry a připlácnutých výbušnin. Vydrží málo a exploduje při kontaktu. -unit.titan.description = Pokročilá, obrněná pozemní jednotka. Útočí jak na pozemní tak vzdušné nepřátelské jednotky. -unit.fortress.description = Težká, pozemní artilérní jednotka. -unit.eruptor.description = Těžký protibudovní mech. Střílí proud žhavé kapaliny na nepřátelské budovy. Zapaluje a roztavuje vše v cestě. -unit.wraith.description = Rychlý, udeř a uteč stíhací letoun. -unit.ghoul.description = Těžký, kobercový bombardér. -unit.revenant.description = A heavy, hovering missile array. +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. +mech.alpha-mech.description = Standardní mech. Je založen na mechovi Dýka, s vylepšeným brněním a schopnostmi stavět. Dává více poškození, než Šipka. +mech.delta-mech.description = Rychlý, lehce obrněný mech stvořený pro bleskové útočné akce. Proti stavbám sice způsobuje jen malé poškození, ale umí zlikvidovat početné skupiny nepřátelských jednotek velmi rychle pomocí výbojových zbraní. +mech.tau-mech.description = Podpůrný mech. Léčí spojenecké bloky pomocí vystřelení opravných dávek. V dosahu svého působení může léčit i spojenecké jednotky. +mech.omega-mech.description = Objemný a velice dobře obrněný mech, určený pro útok v přední linii. Jeho plátování zblokuje až 90% příchozího poškození. +mech.dart-ship.description = Standardní loď. Umí rychle težit suroviny. Je dostatečně rychlá a lehká, ale má jen malou útočnou schopnost. +mech.javelin-ship.description = Loď pro bleskové útoky. Zpočátku je pomalá, ale dokáže zrychlit na velkou rychlost a přelétávat nad nepřátelskými základnami. Způsobuje přitom značné škody svými energetickými zbraněmi a raketami. +mech.trident-ship.description = Těžký bombardér. Umí dvě věci: pomáhat při stavění a ničit nepřátelské opevnění. Je dostatečně dobře obrněn. +mech.glaive-ship.description = Obrovská, dobře obrněná střelecká loď. Je vybavena plamenometem a má výbornou schopnost manévrů. +unit.draug.description = Jednoduchý těžící dron. Levný a postradatelný. Automaticky těží měď a olovo ve své blízkosti. Natěžené suroviny donese do nejbližšího jádra. +unit.spirit.description = Modifikovaný dron Dragoun, upravený pro opravu staveb, namísto těžení. Automaticky opravuje poškozené bloky v oblasti svého působení. +unit.phantom.description = Pokročilý dron. Následuje uživatele. Pomáhá při stavění. +unit.dagger.description = Základní pozemní jednotka. Levná výroba. Zdrcující ve velkém houfu. +unit.crawler.description = Pozemní jednotka sestávající z oholené železné kostry s přilepenými výbušninami. Vydrží málo a exploduje při kontaktu s nepřáteli. +unit.titan.description = Vyspělá obrněná pozemní jednotka. Útočí jak na pozemní, tak vzdušné nepřátelské cíle. Je vybavena dvěma změnšenými plamenomety třídy Palivec. +unit.fortress.description = Těžký dělostřelecký mech. Je vybaven dvěma upravenými kanóny typu Kroupomet pro útok dalekého dosahu proti nepřátelským jednotkám a stavbám. +unit.eruptor.description = Těžký mech navržený na ničení budov. Pálí proudy rozžhaveného kovu na nepřátelská opevnění. Taví a zapaluje vše v cestě. +unit.wraith.description = Rychlá stíhačka pro bleskové útoky. Cílí na generátory energie. +unit.ghoul.description = Těžký bombardér pro kobercový nálet. Trhá nepřátelské struktury, cílí na kritickou infrastrukturu. +unit.revenant.description = Těžký vznášející se mrak raket. 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ů graphitu. -block.multi-press.description = Vylepšená verze graphitového lisu. Využívá vodu a energii k rychlejšímu a efektivnějšímu zpracování uhlí. -block.silicon-smelter.description = Redukuje písek s vysoce čistým koksem za účelem výroby křemíku. -block.kiln.description = Přetavuje písek a olovo do metaskla. Vyžaduje malé množství energie. -block.plastanium-compressor.description = Produkuje plastánium za pomocí titánia a ropy. -block.phase-weaver.description = Produkuje fázovou tkaninu z radioaktivního thoria a velkého množství písku. -block.alloy-smelter.description = Produkuje impulzní slitinu z titánia, olova, křemíku a mědi. -block.cryofluidmixer.description = Kombinuje vodu a titánium do cryofluid, která je více efektivní pro chlazení. -block.blast-mixer.description = Používá ropu k přeměně pyratitu do méně hořlavé ale více explozivní těkavé směsi. -block.pyratite-mixer.description = Míchá uhlí, olovo a písek do velice hořlavého pyratitu. -block.melter.description = Taví kámen při velice vysokých teplotách na lávu. -block.separator.description = Vystaví kámen velkému tlaku vody k získání různých materiálů obsažené v kameni. -block.spore-press.description = Vylisuje ze spórů ropu. -block.pulverizer.description = Drtí kámen na písek. Užitečné když se v oblasti nenalézá písek. -block.coal-centrifuge.description = Solidifes oil into chunks of coal. -block.incinerator.description = Zbaví tě přebytku předmětů. -block.power-void.description = Prázdnota pro veškerou energii vstupující do něj. Jen pro Sandbox. -block.power-source.description = Nekonečný zdroj energie. Jen pro Sandbox. -block.item-source.description = Nekonečný zdroj předmětů. Jen pro Sandbox. -block.item-void.description = Likviduje jakéhokoliv vstupní předmět bež použití energie. Jen pro Sandbox. -block.liquid-source.description = Nekonečný zdroj tekutin. Jen pro Sandbox. -block.liquid-void.description = Removes any liquids. Sandbox only. -block.copper-wall.description = Levný defenzivní blok.\nUžitečný k obraně Tvé základny a střílen v prvotních vlnách nepřátel. -block.copper-wall-large.description = Levný defenzivní blok.\nUžitečný k obraně Tvé základny a střílen v prvotních vlnách nepřátel.\nZabírá více polí. -block.titanium-wall.description = Středně dobrý obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům. -block.titanium-wall-large.description = Středně dobrý obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům.\nZabírá více polí. -block.plastanium-wall.description = Speciální typ zdi, která je schopná absorbovat elektrické oblouky a blokuje energetické připojení. -block.plastanium-wall-large.description = Speciální typ zdi, která je schopná absorbovat elektrické oblouky a blokuje energetické připojení.\nZabírá více polí. -block.thorium-wall.description = Sílný defenzivní blok.\nDobrá obrana vůči nepřátelům. -block.thorium-wall-large.description = Sílný defenzivní blok.\nDobrá obrana vůči nepřátelům..\nZabírá více polí. -block.phase-wall.description = Není tak silná, jako zeď Thoria, ale odráží nepřátelské projektily dokud nejsou moc silné. -block.phase-wall-large.description = Není tak silná, jako zeď Thoria, ale odráží nepřátelské projektily dokud nejsou moc silné.\nZabírá více polí. -block.surge-wall.description = Nejsilnější defenzivní blok.\nMá malou šanci vystřelit elektrický paprsek vůči útočníkovi. -block.surge-wall-large.description = Nejsilnější defenzivní blok.\nMá malou šanci vystřelit elektrický paprsek vůči útočníkovi.\nZabírá více polí. -block.door.description = Malé dveře, které se dají otevřít nebo zavřít kliknutím na ně.\nKdyž otevřené nepřátelé mohou střílet a dostat se skrz. -block.door-large.description = Velké dveře, které se dají otevřít nebo zavřít kliknutím na ně.\nKdyž otevřené nepřátelé mohou střílet a dostat se skrz.\nZabírá více polí. -block.mender.description = Pravidelně opravuje bloky ve svém okolí. Mezi vlnami opraví zátarasy.\nVolitelně lze využít křemíku pro posílení dosahu a efektivity. -block.mend-projector.description = Kontinuálně léčí bloky v poli svého působení. -block.overdrive-projector.description = Zrychluje funkce blízkých struktůr jako jsou vrty a dopravníky. -block.force-projector.description = Vytvoří okolo sebe šestihrané silové pole, chrání jednotky a budovy uvnitř sebe vůči střelám. -block.shock-mine.description = Působí poškození nepřátelským jednotkám při sešlápnutí. Skoro neviditelné nepřáteli. -block.conveyor.description = Základní blok přepravy předmětů. Nese předměty kupředu a automaticky plní střílny nebo bloky výroby do kterých směřují. dá se otáčet do různých směrů. -block.titanium-conveyor.description = Pokročilý blok přepravy předmětů. Nese předměty rychleji jak standardní dopravníky. -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álny na rozdílné místa. -block.bridge-conveyor.description = Pokročilý blok přepravy předmětů. Dovoluje transport předmětů až přez tři pole jakéhokoliv terénu nebo budovy. -block.phase-conveyor.description = Pokročilý blok přepravy předmětů. Využívá energii k přepravě od jednoho bodu k druhému po velice dlouhé vzdálenosti. -block.sorter.description = Třídí předměty. Jestli je předmět shodný s výběrem, je mu dovoleno projít. Naopak neshodné předměty jsou vypuštěny do prava nebo do leva. -block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead. -block.router.description = Příijmá předměty z jednoho směru a posílá je rovnoměrně do zbylých tří směrů. Užitečný při rozdělení jednoho zdroje směřující do různých cílů. -block.distributor.description = Pokročilý směrovač, který z libovolného počtu vstupů vytvoří libovolný počet výstupu a rozdělí přísun předmětů rovnoměrně do každého z nich, obdoba Multiplexeru a Demultiplexeru. -block.overflow-gate.description = Kombinace distributoru a děličky která má výstup do leva nebo do prava jen pokud je přední strana zablokovaná. -block.mass-driver.description = Ultimátní blok přepravy předmětů. Sbírá několik druhů předmětů a vystřelí je k dalšímu hromadnému distributoru přes veliké vzdálenosti. -block.mechanical-pump.description = Levná pumpa s pomalým tokem, ale nevyžaduje energii k provozu. -block.rotary-pump.description = Pokročilá pumpa která, zdvojnásobuje přísun tekutin za použití energie. -block.thermal-pump.description = Ultimátní pumpa. Trojnásobně rychlejší než mechanická pumpa a jediná pumpa která dokáže pracovat s lávou. -block.conduit.description = Základní blok přepravy tekutin. Funguje jako dopravník, ale na tekutiny, chápeš ne ? Užívá se s extraktory, pumpami nebo jiným potrubím. -block.pulse-conduit.description = Pokročilý blok přepravy tekutin. Přepravuje tekutiny rychleji a více než standardní potrubí. -block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. -block.liquid-router.description = Příjmá tekutiny z jednoho směru a vypouští je rovnoměrně do zbylých tří směrů. Dokáže uložit na krátkou dobu nějaký obsah tekutin. Užitečný při rozdělení jednoho zdroje směřující do různých cílů. -block.liquid-tank.description = Uloží velké množství tekutin. Použíj ho pro vyrovnávací zásoby vody když je příděl nestabilní nebo jako záložní chlazení pro generátory. -block.liquid-junction.description = Chová se jako most pro dvě křížící se potrubí. Užitečný v situacích když dvě rozdílné potrubí nesou rozdílný obsah na rozdílná místa. -block.bridge-conduit.description = Pokročilý blok přepravy tekutin. Dovoluje transportovat tekutiny až přez tři pole jakéhokoliv terénu nebo budovy. -block.phase-conduit.description = Pokročilý blok přepravy tekutin. Používá energii k teleportu tekutin do druhého bodu přez několik polí. -block.power-node.description = Vysílá energii mezi propojenými uzly. Dokáže se propojit až se čtyřmi uzly či stavbami najednou. Uzel bude dostávat zásobu energie a bude ji distribuovat mezi připojené bloky. -block.power-node-large.description = Má větší dosah než standardní energetický uzel and a dokáže propojit až 6 staveb nebo uzly. -block.surge-tower.description = Energetický uzel s extrémním dosahem, ale méně dostupnými přípojkami. -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 = Ukládá energii kdykoliv kdy je nadbytek ,poskytuje energii kdykolik když je pokles energie v síti, tak dlouho doku zbývá kapacita. -block.battery-large.description = Uloží více energie než standardní baterie. -block.combustion-generator.description = Generuje energii spalováním ropy nebo jinných hořlavých materiálů. -block.thermal-generator.description = Generuje obrovské množství energie z lávy. -block.turbine-generator.description = Více efektivní než spalovací generátor, ale vyžaduje dodatečný přísun vody. +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.cryofluidmixer.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. +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.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.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 distributoru 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.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.combustion-generator.description = Generuje energii spalováním hořlaných materiálů, jako je například uhlí. +block.thermal-generator.description = Pokud je umístěn na teplotně aktivní místo (jako je magmatický kámen), dokáže z tepla generovat energii. +block.turbine-generator.description = Pokročilý spalovací generátor. Efektivnější, ale vyžaduje dodatečný přísun vody pro produkci páry. block.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 = Rádioizotopní Termoelektrický Generátor nevyžaduje chlazení, za to generuje méně energie než Thoriový generátor. -block.solar-panel.description = Poskytuje malé množství energie ze slunce. -block.solar-panel-large.description = Poskytuje mnohem lepší zdroj energie než standardní solární panel, za to je mnohem nákladnější na stavbu. -block.thorium-reactor.description = Generuje obrovské množství energie z radioaktivního thoria. Vyžaduje konstantní chlazení. Způsobí velikou explozi je-li zásobován nedostatečným množstvím chlazení. Výstup energie závisí na plnosti obsahu generátoru, základní generování energie se aktivuje při poloviční kapacitě. -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 = Levný vrt. Při položení na vhodné pole, natrvalo a pomalu produkuje materiál na který byl položen. -block.pneumatic-drill.description = Vylepšený vrt, který je rychlejší a je schopen zpracovat tvrdší materiály za pomocí tlaku. -block.laser-drill.description = Dovoluje vrtat ještě rychleji díky laserové technologii, požaduje energii k provozu. Dodatečně, dokáže vrtat žíly radioaktivního thoria. -block.blast-drill.description = Ultimátní vrt, vyžaduje velké množství energie k provozu. -block.water-extractor.description = Extrahuje vodu ze země. Vhodný k použití když se v oblasti nenachází zdroj vody. -block.cultivator.description = Kultivuje půdu vodou za účelem získání biohmoty. -block.oil-extractor.description = Vyžaduje velké množství energie na extrakci ropy z písku. Použíj ho když se v oblasti nenachází žádný zdroj ropy. -block.core-shard.description = První verze jádra. V případě, že je zničeno, veškerý kontakt s regionem je ztracen. Nedopusťte aby se to stalo. -block.core-foundation.description = Druhá, lépe obrněná verze jádra. Pojme více surovin. -block.core-nucleus.description = Třetí a finální iterace vývoje jádra. Extrémně obrněná, extrémně prostorná. -block.vault.description = Ukládá velké množství předmětů každého typu. Připojené kontejnéry, trezory nebo jádra se budou chovat jako samostatné skladovací jednotky. [LIGHT_GRAY]Odbavovač[] lze použít pro odbavení předmětů z trezoru. -block.container.description = Ukládá malé množství předmětů každého typu. Připojené kontejnéry, trezory nebo jádra se budou chovat jako samostatné skladovací jednotky. [LIGHT_GRAY]Odbavovač[] lze použít pro odbavení předmětů z kontejnéru. -block.unloader.description = Vykládá předměty z kontejnéru, trezoru nebo jádra na dopravník nebo přímo do produktivních bloků. Druh předmětu pro vykládání lze změnit kliknutím na odbavovač. -block.launch-pad.description = Posílá dávky předmětů do vesmíru bez nutnosti vysílat jádro. Nedokončený. -block.launch-pad-large.description = Vylepšený Launch Pad. Větší úložný prostor, častěji vysílán do vesmíru. -block.duo.description = Malá, levná střílna. -block.scatter.description = Protivzdušná střílna střední velikosti. Střílí hrstky olova nebo šrotu. -block.scorch.description = Spálí nepřátele v blízkosti na prach. Velmi efektivní na malé vzdálenosti. -block.hail.description = Malá artilérní střílna. -block.wave.description = Středně vělká, rychle pálící střílna, která střílí krystalizované bubliny. -block.lancer.description = Středně velká střílna, která střílí nabité elektrické paprsky. -block.arc.description = Malá střílna, která střílí elektřinu v náhodném oblouku po nepřátelských jednotkách. -block.swarmer.description = Středně velká střílna, která střílí rakety v dávkách. -block.salvo.description = Středně velká střílna, která střílí v salvách. -block.fuse.description = Velká střílna, která střílí paprsky krátkého dosahu. -block.ripple.description = Velká artilérní střílna, která vystřelí několik projektilů najednou. -block.cyclone.description = Velká rychle pálící střílna. -block.spectre.description = Velká střílna, která vystřelí dva mocné projektily naráz. -block.meltdown.description = Velká střílna, která vystřelí mocný paprsek dalekého dosahu. -block.command-center.description = Umožňuje zadávat příkazy k pohybu spojeneckých jednotek po mapě.\nUmožňuje výběr mezi patrolováním, útokem na nepřítele, či návratem k jádru nebo továrně. Pokud se na mapě nenachází nepřátelské jádro, jednotky budou patrolovat v útočném režimu. -block.draug-factory.description = Produkuje těžící Draug drony. -block.spirit-factory.description = Produkuje lehké drony, kteří teží minerály a opravují budovy -block.phantom-factory.description = Produkuje pokročilé drony kteří jsou podstatně efektivnější jak spirit droni. -block.wraith-factory.description = Produkuje rychlé, udeř a uteč stíhače. -block.ghoul-factory.description = Produkuje těžké kobercové bombardéry. -block.revenant-factory.description = Produkuje vzdušné, težké laserové stíhače.. -block.dagger-factory.description = Produkuje standardní pozemní jednotky. -block.crawler-factory.description = Produces fast self-destructing swarm units. -block.titan-factory.description = Produkuje pokročilé, orněné pozemní jednotky. -block.fortress-factory.description = Produkuje těžké artilérní, pozmení jednotky. -block.repair-point.description = Kontinuálně léčí nejbližší budovy a jednotky. -block.dart-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za základního útočného mecha.\nAktivuj kliknutím, když se nacházíš nad platformou. -block.delta-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za rychlého, lehce obrněného mecha určeného pro udeř a uteč operace.\nAktivuj kliknutím, když se nacházíš nad platformou. -block.tau-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za na podpůrného mecha, který léčí spojenecké budovy a jednotky.\nAktivuj kliknutím, když se nacházíš nad platformou. -block.omega-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za objemného dobře obrněného mecha, určeného pro útok v přední linii.\nAktivuj kliknutím, když se nacházíš nad platformou. -block.javelin-ship-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za silný a rychlý stíhač s bleskovými zbraněmi.\nAktivuj kliknutím, když se nacházíš nad platformou. -block.trident-ship-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za docela dobře obrněného těžkého bombardéru.\nAktivuj kliknutím, když se nacházíš nad platformou. -block.glaive-ship-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za velkou, dobře obrněnou střeleckou loď.\nAktivuj kliknutím, když se nacházíš nad platformou. +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.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.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.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 nebo pláty šrotu na nepřátelské jednotky. +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 dělší 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í trojice energetických paprsků 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.command-center.description = Vydává příkazy spojeneckým jednotkám na mapě.\nInstruuje jednotky k útoku na nepřítelské jádro, návratu do jádra nebo továrny a ke shromáždění se. Pokud se na mapě nepřátelské jádro nenachází, jednotky budou v útočném režimu držet hlídku. +block.draug-factory.description = Vyrábí těžící drony Dragoun. +block.spirit-factory.description = Vyrábí drony, které opravují budovy. +block.phantom-factory.description = Vyrábí drony s pokročilou konstrukcí. +block.wraith-factory.description = Produkuje rychlé stíhače pro bleskový útok. +block.ghoul-factory.description = Vyrábí těžké bombardéry pro kobercové nálety. +block.revenant-factory.description = Vyrábí těžké jednotky na bázi raket. +block.dagger-factory.description = Vyrábí základní pozemní jednotky. +block.crawler-factory.description = Vyrábí roje rychlých sebezničujících jednotek. +block.titan-factory.description = Vyrábí pokročilé obrněné pozemní jednotky. +block.fortress-factory.description = Vyrábí těžké dělostřelecké pozemní jednotky. +block.repair-point.description = Nepřetržitě léčí nejbližší poškozenou jednotku v poli své působnosti. +block.dart-mech-pad.description = Umožňuje přeměnu Tvého vozidla na základního útočného mecha.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou. +block.delta-mech-pad.description = Umožňuje přeměnu Tvého vozidla na lehkého obrněného mecha pro bleskový útok.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou. +block.tau-mech-pad.description = Umožňuje přeměnu Tvého vozidla na pokročilého podpůrného mecha.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou. +block.omega-mech-pad.description = Umožňuje přeměnu Tvého vozidla na těžce obrněného mecha s raketami.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou. +block.javelin-ship-pad.description = Umožňuje přeměnu Tvého vozidla na rychlou, lehce obrněnou stíhačku.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou. +block.trident-ship-pad.description = Umožňuje přeměnu Tvého vozidla na těžkého podpůrného bombardéra.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou. +block.glaive-ship-pad.description = Umožňuje přeměnu Tvého vozidla na velkou, dobře obrněnou střeleckou loď.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou. diff --git a/core/assets/fonts/font.ttf b/core/assets/fonts/font.ttf index 6b585dcbdd..6280981559 100644 Binary files a/core/assets/fonts/font.ttf and b/core/assets/fonts/font.ttf differ diff --git a/core/assets/fonts/icon.ttf b/core/assets/fonts/icon.ttf new file mode 100644 index 0000000000..ac50ebe006 Binary files /dev/null and b/core/assets/fonts/icon.ttf differ diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties new file mode 100755 index 0000000000..7c91ca4bb9 --- /dev/null +++ b/core/assets/icons/icons.properties @@ -0,0 +1,219 @@ +63743=spawn|block-spawn-medium +63742=deepwater|block-deepwater-medium +63741=water|block-water-medium +63740=tainted-water|block-tainted-water-medium +63739=darksand-tainted-water|block-darksand-tainted-water-medium +63738=sand-water|block-sand-water-medium +63737=darksand-water|block-darksand-water-medium +63736=tar|block-tar-medium +63735=stone|block-stone-medium +63734=craters|block-craters-medium +63733=char|block-char-medium +63732=ignarock|block-ignarock-medium +63731=hotrock|block-hotrock-medium +63730=magmarock|block-magmarock-medium +63729=sand|block-sand-medium +63728=darksand|block-darksand-medium +63727=holostone|block-holostone-medium +63726=grass|block-grass-medium +63725=salt|block-salt-medium +63724=snow|block-snow-medium +63723=ice|block-ice-medium +63722=ice-snow|block-ice-snow-medium +63721=cliffs|block-cliffs-medium +63720=rocks|block-rocks-medium +63719=sporerocks|block-sporerocks-medium +63718=rock|block-rock-medium +63717=snowrock|block-snowrock-medium +63716=icerocks|block-icerocks-medium +63715=snowrocks|block-snowrocks-medium +63714=dunerocks|block-dunerocks-medium +63713=sandrocks|block-sandrocks-medium +63712=saltrocks|block-saltrocks-medium +63711=spore-pine|block-spore-pine-medium +63710=snow-pine|block-snow-pine-medium +63709=pine|block-pine-medium +63708=shrubs|block-shrubs-medium +63707=white-tree-dead|block-white-tree-dead-medium +63706=white-tree|block-white-tree-medium +63705=spore-cluster|block-spore-cluster-medium +63704=shale|block-shale-medium +63703=shalerocks|block-shalerocks-medium +63702=shale-boulder|block-shale-boulder-medium +63701=sand-boulder|block-sand-boulder-medium +63700=moss|block-moss-medium +63699=spore-moss|block-spore-moss-medium +63698=metal-floor|block-metal-floor-medium +63697=metal-floor-damaged|block-metal-floor-damaged-medium +63696=metal-floor-2|block-metal-floor-2-medium +63695=metal-floor-3|block-metal-floor-3-medium +63694=metal-floor-5|block-metal-floor-5-medium +63693=dark-panel-1|block-dark-panel-1-medium +63692=dark-panel-2|block-dark-panel-2-medium +63691=dark-panel-3|block-dark-panel-3-medium +63690=dark-panel-4|block-dark-panel-4-medium +63689=dark-panel-5|block-dark-panel-5-medium +63688=dark-panel-6|block-dark-panel-6-medium +63687=dark-metal|block-dark-metal-medium +63686=pebbles|block-pebbles-medium +63685=tendrils|block-tendrils-medium +63684=ore-copper|block-ore-copper-medium +63683=ore-lead|block-ore-lead-medium +63682=ore-scrap|block-ore-scrap-medium +63681=ore-coal|block-ore-coal-medium +63680=ore-titanium|block-ore-titanium-medium +63679=ore-thorium|block-ore-thorium-medium +63678=graphite-press|block-graphite-press-medium +63677=multi-press|block-multi-press-medium +63676=silicon-smelter|block-silicon-smelter-medium +63675=kiln|block-kiln-medium +63674=plastanium-compressor|block-plastanium-compressor-medium +63673=phase-weaver|block-phase-weaver-medium +63672=alloy-smelter|block-alloy-smelter-medium +63671=cryofluidmixer|block-cryofluidmixer-medium +63670=blast-mixer|block-blast-mixer-medium +63669=pyratite-mixer|block-pyratite-mixer-medium +63668=melter|block-melter-medium +63667=separator|block-separator-medium +63666=spore-press|block-spore-press-medium +63665=pulverizer|block-pulverizer-medium +63664=coal-centrifuge|block-coal-centrifuge-medium +63663=incinerator|block-incinerator-medium +63662=copper-wall|block-copper-wall-medium +63661=copper-wall-large|block-copper-wall-large-medium +63660=titanium-wall|block-titanium-wall-medium +63659=titanium-wall-large|block-titanium-wall-large-medium +63658=plastanium-wall|block-plastanium-wall-medium +63657=plastanium-wall-large|block-plastanium-wall-large-medium +63656=thorium-wall|block-thorium-wall-medium +63655=thorium-wall-large|block-thorium-wall-large-medium +63654=phase-wall|block-phase-wall-medium +63653=phase-wall-large|block-phase-wall-large-medium +63652=surge-wall|block-surge-wall-medium +63651=surge-wall-large|block-surge-wall-large-medium +63650=door|block-door-medium +63649=door-large|block-door-large-medium +63648=scrap-wall|block-scrap-wall-medium +63647=scrap-wall-large|block-scrap-wall-large-medium +63646=scrap-wall-huge|block-scrap-wall-huge-medium +63645=scrap-wall-gigantic|block-scrap-wall-gigantic-medium +63644=thruster|block-thruster-medium +63643=mender|block-mender-medium +63642=mend-projector|block-mend-projector-medium +63641=overdrive-projector|block-overdrive-projector-medium +63640=force-projector|block-force-projector-medium +63639=shock-mine|block-shock-mine-medium +63638=conveyor|block-conveyor-medium +63637=titanium-conveyor|block-titanium-conveyor-medium +63636=armored-conveyor|block-armored-conveyor-medium +63635=junction|block-junction-medium +63634=bridge-conveyor|block-bridge-conveyor-medium +63633=phase-conveyor|block-phase-conveyor-medium +63632=sorter|block-sorter-medium +63631=inverted-sorter|block-inverted-sorter-medium +63630=router|block-router-medium +63629=distributor|block-distributor-medium +63628=overflow-gate|block-overflow-gate-medium +63627=mass-driver|block-mass-driver-medium +63626=mechanical-pump|block-mechanical-pump-medium +63625=rotary-pump|block-rotary-pump-medium +63624=thermal-pump|block-thermal-pump-medium +63623=conduit|block-conduit-medium +63622=pulse-conduit|block-pulse-conduit-medium +63621=plated-conduit|block-plated-conduit-medium +63620=liquid-router|block-liquid-router-medium +63619=liquid-tank|block-liquid-tank-medium +63618=liquid-junction|block-liquid-junction-medium +63617=bridge-conduit|block-bridge-conduit-medium +63616=phase-conduit|block-phase-conduit-medium +63615=power-node|block-power-node-medium +63614=power-node-large|block-power-node-large-medium +63613=surge-tower|block-surge-tower-medium +63612=diode|block-diode-medium +63611=battery|block-battery-medium +63610=battery-large|block-battery-large-medium +63609=combustion-generator|block-combustion-generator-medium +63608=thermal-generator|block-thermal-generator-medium +63607=turbine-generator|block-turbine-generator-medium +63606=differential-generator|block-differential-generator-medium +63605=rtg-generator|block-rtg-generator-medium +63604=solar-panel|block-solar-panel-medium +63603=solar-panel-large|block-solar-panel-large-medium +63602=thorium-reactor|block-thorium-reactor-medium +63601=impact-reactor|block-impact-reactor-medium +63600=mechanical-drill|block-mechanical-drill-medium +63599=pneumatic-drill|block-pneumatic-drill-medium +63598=laser-drill|block-laser-drill-medium +63597=blast-drill|block-blast-drill-medium +63596=water-extractor|block-water-extractor-medium +63595=cultivator|block-cultivator-medium +63594=oil-extractor|block-oil-extractor-medium +63593=core-shard|block-core-shard-medium +63592=core-foundation|block-core-foundation-medium +63591=core-nucleus|block-core-nucleus-medium +63590=vault|block-vault-medium +63589=container|block-container-medium +63588=unloader|block-unloader-medium +63587=launch-pad|block-launch-pad-medium +63586=launch-pad-large|block-launch-pad-large-medium +63585=duo|block-duo-medium +63584=scatter|block-scatter-medium +63583=scorch|block-scorch-medium +63582=hail|block-hail-medium +63581=wave|block-wave-medium +63580=lancer|block-lancer-medium +63579=arc|block-arc-medium +63578=swarmer|block-swarmer-medium +63577=salvo|block-salvo-medium +63576=fuse|block-fuse-medium +63575=ripple|block-ripple-medium +63574=cyclone|block-cyclone-medium +63573=spectre|block-spectre-medium +63572=meltdown|block-meltdown-medium +63571=draug-factory|block-draug-factory-medium +63570=spirit-factory|block-spirit-factory-medium +63569=phantom-factory|block-phantom-factory-medium +63568=command-center|block-command-center-medium +63567=wraith-factory|block-wraith-factory-medium +63566=ghoul-factory|block-ghoul-factory-medium +63565=revenant-factory|block-revenant-factory-medium +63564=dagger-factory|block-dagger-factory-medium +63563=crawler-factory|block-crawler-factory-medium +63562=titan-factory|block-titan-factory-medium +63561=fortress-factory|block-fortress-factory-medium +63560=repair-point|block-repair-point-medium +63559=dart-mech-pad|block-dart-mech-pad-medium +63558=delta-mech-pad|block-delta-mech-pad-medium +63557=tau-mech-pad|block-tau-mech-pad-medium +63556=omega-mech-pad|block-omega-mech-pad-medium +63555=javelin-ship-pad|block-javelin-ship-pad-medium +63554=trident-ship-pad|block-trident-ship-pad-medium +63553=glaive-ship-pad|block-glaive-ship-pad-medium +63552=power-source|block-power-source-medium +63551=power-void|block-power-void-medium +63550=item-source|block-item-source-medium +63549=item-void|block-item-void-medium +63548=liquid-source|block-liquid-source-medium +63547=liquid-void|block-liquid-void-medium +63546=message|block-message-medium +63545=illuminator|block-illuminator-medium +63544=copper|item-copper-icon +63543=lead|item-lead-icon +63542=metaglass|item-metaglass-icon +63541=graphite|item-graphite-icon +63540=sand|item-sand-icon +63539=coal|item-coal-icon +63538=titanium|item-titanium-icon +63537=thorium|item-thorium-icon +63536=scrap|item-scrap-icon +63535=silicon|item-silicon-icon +63534=plastanium|item-plastanium-icon +63533=phase-fabric|item-phase-fabric-icon +63532=surge-alloy|item-surge-alloy-icon +63531=spore-pod|item-spore-pod-icon +63530=blast-compound|item-blast-compound-icon +63529=pyratite|item-pyratite-icon +63528=water|liquid-water-icon +63527=slag|liquid-slag-icon +63526=oil|liquid-oil-icon +63525=cryofluid|liquid-cryofluid-icon diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index 65838bd5f5..8e3bae6726 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/sprites.atlas b/core/assets/sprites/sprites.atlas index c23fb40fb5..d6c3e7aedd 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -20,7 +20,7 @@ mend-projector-top index: -1 mender-top rotate: false - xy: 1754, 891 + xy: 1481, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -34,448 +34,448 @@ overdrive-projector-top index: -1 shock-mine rotate: false - xy: 1607, 789 + xy: 1489, 407 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 1920, 1095 + xy: 1861, 1139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 1954, 1095 + xy: 1328, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 1988, 1129 + xy: 1328, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 1954, 1061 + xy: 1328, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-0 rotate: false - xy: 1278, 971 + xy: 890, 851 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-full rotate: false - xy: 1278, 971 + xy: 890, 851 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-1 rotate: false - xy: 890, 851 + xy: 389, 15 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-2 rotate: false - xy: 1278, 937 + xy: 423, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-0-3 rotate: false - xy: 389, 15 + xy: 457, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-0 rotate: false - xy: 423, 10 + xy: 491, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-1 rotate: false - xy: 457, 10 + xy: 525, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-2 rotate: false - xy: 491, 10 + xy: 559, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-1-3 rotate: false - xy: 525, 10 + xy: 593, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-0 rotate: false - xy: 559, 10 + xy: 627, 12 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-1 rotate: false - xy: 593, 10 + xy: 661, 12 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-2 rotate: false - xy: 627, 12 + xy: 911, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-2-3 rotate: false - xy: 661, 12 + xy: 945, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-0 rotate: false - xy: 1236, 887 + xy: 695, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-1 rotate: false - xy: 1312, 971 + xy: 729, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-2 rotate: false - xy: 1312, 937 + xy: 763, 10 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-3-3 rotate: false - xy: 911, 11 + xy: 1158, 1181 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-0 rotate: false - xy: 945, 11 + xy: 1158, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-1 rotate: false - xy: 1278, 903 + xy: 1192, 1181 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-2 rotate: false - xy: 1312, 903 + xy: 1158, 1113 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 armored-conveyor-4-3 rotate: false - xy: 1209, 827 + xy: 1192, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-1 rotate: false - xy: 1954, 1027 + xy: 1356, 903 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 1988, 1027 + xy: 1356, 869 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 1368, 1035 + xy: 1345, 835 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 1402, 1027 + xy: 1345, 801 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 1436, 1019 + xy: 1345, 767 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 1470, 1019 + xy: 1345, 733 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 1504, 1019 + xy: 1345, 699 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 1301, 835 + xy: 1345, 665 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 1335, 835 + xy: 1345, 631 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 1369, 843 + xy: 1345, 597 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 1369, 809 + xy: 1345, 563 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 1538, 993 + xy: 1345, 529 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 1572, 993 + xy: 1345, 495 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 1606, 993 + xy: 1397, 1175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 1640, 993 + xy: 1396, 1141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 1674, 993 + xy: 1396, 1107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 1708, 993 + xy: 1396, 1073 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 1742, 993 + xy: 1396, 1039 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 1776, 993 + xy: 1396, 1005 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 1675, 857 + xy: 1489, 339 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 1641, 789 + xy: 1489, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 1675, 823 + xy: 1387, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 1709, 857 + xy: 1421, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 1675, 789 + xy: 1455, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 1709, 823 + xy: 1489, 271 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 1743, 857 + xy: 1492, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 1709, 789 + xy: 1492, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 1743, 823 + xy: 1492, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 1777, 857 + xy: 1515, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 1743, 789 + xy: 1515, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 1777, 823 + xy: 1515, 747 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 1811, 857 + xy: 1515, 713 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 1777, 789 + xy: 1515, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 1811, 823 + xy: 1515, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 1845, 857 + xy: 1515, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 1811, 789 + xy: 1515, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 1845, 823 + xy: 1515, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 1879, 857 + xy: 1515, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -489,21 +489,21 @@ mass-driver-base index: -1 phase-conveyor-arrow rotate: false - xy: 1822, 925 + xy: 1481, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1856, 959 + xy: 1481, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 1822, 891 + xy: 1481, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -650,56 +650,56 @@ pneumatic-drill-top index: -1 water-extractor rotate: false - xy: 1135, 1365 + xy: 1201, 1431 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 1201, 1431 + xy: 1201, 1365 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 1201, 1365 + xy: 1135, 1299 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 1135, 1299 + xy: 1267, 1431 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-border rotate: false - xy: 1209, 691 + xy: 1192, 1113 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-middle rotate: false - xy: 1580, 1129 + xy: 1209, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 1818, 1163 + xy: 1311, 841 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 1682, 1027 + xy: 1362, 1039 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -825,175 +825,175 @@ rubble-8-1 index: -1 bridge-conduit-arrow rotate: false - xy: 1954, 1129 + xy: 1895, 1139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 1954, 1129 + xy: 1895, 1139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 1988, 1163 + xy: 1929, 1139 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 1920, 1061 + xy: 1329, 1189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 1988, 1061 + xy: 1328, 1019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 1546, 1027 + xy: 1363, 1175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 1580, 1027 + xy: 1362, 1141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 1614, 1027 + xy: 1362, 1107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 1614, 1027 + xy: 1362, 1107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 1614, 1027 + xy: 1362, 1107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-6 rotate: false - xy: 1614, 1027 + xy: 1362, 1107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-5 rotate: false - xy: 1648, 1027 + xy: 1362, 1073 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 1716, 1027 + xy: 1362, 1005 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 1750, 1027 + xy: 1328, 985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 1784, 1027 + xy: 1322, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 1818, 1027 + xy: 1322, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 1818, 1027 + xy: 1322, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 1852, 1027 + xy: 1322, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-5 rotate: false - xy: 1886, 1027 + xy: 1362, 971 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-6 rotate: false - xy: 1920, 1027 + xy: 1356, 937 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate rotate: false - xy: 1652, 891 + xy: 1413, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-overflow-gate-top rotate: false - xy: 1686, 925 + xy: 1447, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 1720, 959 + xy: 1413, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 1686, 891 + xy: 1447, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 1720, 925 + xy: 1413, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1021,133 +1021,133 @@ liquid-tank-top index: -1 phase-conduit-arrow rotate: false - xy: 1788, 925 + xy: 1481, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 1822, 959 + xy: 1481, 747 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 1788, 891 + xy: 1481, 713 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-cap rotate: false - xy: 1856, 925 + xy: 1481, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-0 rotate: false - xy: 1890, 959 + xy: 1481, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-1 rotate: false - xy: 1856, 891 + xy: 1481, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-2 rotate: false - xy: 1890, 925 + xy: 1481, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-3 rotate: false - xy: 1924, 959 + xy: 1353, 461 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-4 rotate: false - xy: 1890, 891 + xy: 1353, 427 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-5 rotate: false - xy: 1924, 925 + xy: 1353, 393 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plated-conduit-top-6 rotate: false - xy: 1958, 959 + xy: 1353, 359 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 1958, 925 + xy: 1353, 291 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 1992, 959 + xy: 1387, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 1958, 891 + xy: 1387, 407 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 1992, 925 + xy: 1421, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-5 rotate: false - xy: 1992, 891 + xy: 1387, 373 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-6 rotate: false - xy: 1505, 849 + xy: 1421, 407 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery rotate: false - xy: 1209, 793 + xy: 1226, 1181 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-full rotate: false - xy: 1209, 793 + xy: 1226, 1181 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1168,7 +1168,7 @@ block-battery-large-full index: -1 combustion-generator-top rotate: false - xy: 1988, 1095 + xy: 1328, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1189,14 +1189,14 @@ differential-generator-top index: -1 diode-arrow rotate: false - xy: 1335, 801 + xy: 1379, 699 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator-top rotate: false - xy: 1380, 891 + xy: 1379, 563 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1252,14 +1252,14 @@ impact-reactor-plasma-3 index: -1 power-source rotate: false - xy: 1924, 891 + xy: 1353, 325 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 1539, 789 + xy: 1421, 339 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1280,7 +1280,7 @@ thorium-reactor-lights index: -1 turbine-generator-top rotate: false - xy: 1069, 1431 + xy: 1069, 1365 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1406,21 +1406,21 @@ plastanium-compressor-top index: -1 pulverizer rotate: false - xy: 1505, 815 + xy: 1455, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 1505, 781 + xy: 1387, 339 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 1539, 857 + xy: 1421, 373 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1432,51 +1432,58 @@ separator-liquid orig: 64, 64 offset: 0, 0 index: -1 -spore-press +separator-spinner rotate: false - xy: 1143, 596 + xy: 1143, 662 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -spore-press-frame0 +spore-press rotate: false xy: 1143, 530 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -spore-press-frame1 +spore-press-frame0 rotate: false xy: 1143, 464 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -spore-press-frame2 +spore-press-frame1 rotate: false xy: 1185, 398 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -spore-press-liquid +spore-press-frame2 rotate: false xy: 1185, 332 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -spore-press-top +spore-press-liquid rotate: false xy: 1185, 266 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 +spore-press-top + rotate: false + xy: 1177, 200 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 unloader-center rotate: false - xy: 1879, 823 + xy: 1523, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1490,7 +1497,7 @@ arc-heat index: -1 block-1 rotate: false - xy: 1209, 759 + xy: 1158, 1079 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1518,7 +1525,7 @@ block-4 index: -1 hail-heat rotate: false - xy: 1069, 1257 + xy: 887, 1593 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -1567,14 +1574,14 @@ salvo-panel-right index: -1 scorch-heat rotate: false - xy: 1607, 857 + xy: 1421, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 1267, 1365 + xy: 1201, 1299 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1693,7 +1700,7 @@ rally-point index: -1 repair-point-base rotate: false - xy: 1573, 857 + xy: 1387, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1714,7 +1721,7 @@ revenant-factory-top index: -1 spirit-factory-top rotate: false - xy: 1143, 662 + xy: 1143, 596 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1728,7 +1735,7 @@ titan-factory index: -1 wraith-factory-top rotate: false - xy: 1201, 1299 + xy: 1333, 1431 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1742,14 +1749,14 @@ door-large-open index: -1 door-open rotate: false - xy: 1369, 775 + xy: 1379, 665 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 insulator-wall rotate: false - xy: 1380, 993 + xy: 1379, 529 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1805,49 +1812,49 @@ scrap-wall-large4 index: -1 scrap-wall2 rotate: false - xy: 1573, 789 + xy: 1455, 339 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 1607, 823 + xy: 1455, 305 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 1641, 857 + xy: 1489, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 1641, 857 + xy: 1489, 441 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bullet rotate: false - xy: 1095, 7 + xy: 1153, 14 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 bullet-back rotate: false - xy: 1149, 14 + xy: 1207, 14 size: 52, 52 orig: 52, 52 offset: 0, 0 index: -1 casing rotate: false - xy: 2038, 2031 + xy: 1176, 993 size: 8, 16 orig: 8, 16 offset: 0, 0 @@ -1861,7 +1868,7 @@ circle-end index: -1 circle-mid rotate: false - xy: 2022, 1030 + xy: 1549, 648 size: 1, 199 orig: 1, 199 offset: 0, 0 @@ -1875,7 +1882,7 @@ circle-shadow index: -1 error rotate: false - xy: 1991, 1331 + xy: 1749, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -1931,35 +1938,35 @@ scale_marker index: -1 scorch1 rotate: false - xy: 1243, 673 + xy: 1523, 339 size: 28, 100 orig: 28, 100 offset: 0, 0 index: -1 scorch2 rotate: false - xy: 1243, 571 + xy: 1553, 339 size: 28, 100 orig: 28, 100 offset: 0, 0 index: -1 scorch3 rotate: false - xy: 1243, 469 + xy: 1498, 1053 size: 28, 100 orig: 28, 100 offset: 0, 0 index: -1 scorch4 rotate: false - xy: 1251, 367 + xy: 1498, 951 size: 28, 100 orig: 28, 100 offset: 0, 0 index: -1 scorch5 rotate: false - xy: 1273, 673 + xy: 1526, 849 size: 28, 100 orig: 28, 100 offset: 0, 0 @@ -1973,28 +1980,28 @@ shell index: -1 shell-back rotate: false - xy: 1186, 861 + xy: 1371, 1209 size: 36, 36 orig: 36, 36 offset: 0, 0 index: -1 shot rotate: false - xy: 1641, 823 + xy: 1489, 373 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 transfer rotate: false - xy: 979, 259 + xy: 2043, 1231 size: 4, 48 orig: 4, 48 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 1845, 789 + xy: 1515, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2008,7 +2015,7 @@ transfer-end index: -1 white rotate: false - xy: 1209, 464 + xy: 1251, 266 size: 3, 3 orig: 3, 3 offset: 0, 0 @@ -2022,7 +2029,7 @@ arc index: -1 block-arc-full rotate: false - xy: 1209, 725 + xy: 1226, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2036,42 +2043,42 @@ block-blast-drill-full index: -1 block-bridge-conduit-full rotate: false - xy: 1209, 657 + xy: 1260, 1181 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit rotate: false - xy: 1209, 657 + xy: 1260, 1181 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-full rotate: false - xy: 1209, 623 + xy: 1158, 1045 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor rotate: false - xy: 1209, 623 + xy: 1158, 1045 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-full rotate: false - xy: 1209, 589 + xy: 1260, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-full rotate: false - xy: 1209, 555 + xy: 1226, 1113 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2092,14 +2099,14 @@ coal-centrifuge index: -1 block-combustion-generator-full rotate: false - xy: 1209, 521 + xy: 1192, 1079 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 1209, 521 + xy: 1192, 1079 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2120,7 +2127,7 @@ command-center index: -1 block-conduit-full rotate: false - xy: 1209, 487 + xy: 1294, 1181 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2141,28 +2148,28 @@ container index: -1 block-conveyor-full rotate: false - xy: 695, 10 + xy: 1158, 1011 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-0 rotate: false - xy: 695, 10 + xy: 1158, 1011 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-full rotate: false - xy: 729, 10 + xy: 1294, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall rotate: false - xy: 729, 10 + xy: 1294, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2225,7 +2232,7 @@ core-shard index: -1 block-craters-full rotate: false - xy: 763, 10 + xy: 1260, 1113 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2267,70 +2274,70 @@ block-dagger-factory-full index: -1 block-dark-metal-full rotate: false - xy: 1334, 1013 + xy: 1226, 1079 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-1-full rotate: false - xy: 1346, 979 + xy: 1192, 1045 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-2-full rotate: false - xy: 1346, 945 + xy: 1294, 1113 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-3-full rotate: false - xy: 1346, 911 + xy: 1260, 1079 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-4-full rotate: false - xy: 1270, 869 + xy: 1226, 1045 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-5-full rotate: false - xy: 1304, 869 + xy: 1192, 1011 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-6-full rotate: false - xy: 1346, 877 + xy: 1294, 1079 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-full rotate: false - xy: 1342, 1181 + xy: 1260, 1045 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-tainted-water-full rotate: false - xy: 1342, 1147 + xy: 1226, 1011 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-water-full rotate: false - xy: 1342, 1113 + xy: 1294, 1045 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2351,7 +2358,7 @@ dart-mech-pad index: -1 block-deepwater-full rotate: false - xy: 1342, 1079 + xy: 1260, 1011 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2386,14 +2393,14 @@ differential-generator index: -1 block-diode-full rotate: false - xy: 1376, 1205 + xy: 1294, 1011 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 diode rotate: false - xy: 1376, 1205 + xy: 1294, 1011 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2414,14 +2421,14 @@ distributor index: -1 block-door-full rotate: false - xy: 1376, 1171 + xy: 1186, 977 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door rotate: false - xy: 1376, 1171 + xy: 1186, 977 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2449,14 +2456,14 @@ block-draug-factory-full index: -1 block-dunerocks-full rotate: false - xy: 1376, 1137 + xy: 1186, 943 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 1376, 1103 + xy: 1220, 977 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2526,70 +2533,70 @@ graphite-press index: -1 block-grass-full rotate: false - xy: 1410, 1197 + xy: 1186, 909 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 1410, 1163 + xy: 1254, 977 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 1410, 1129 + xy: 1220, 943 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 1410, 1095 + xy: 1186, 875 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 1376, 1069 + xy: 1288, 977 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 1410, 1061 + xy: 1254, 943 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 1444, 1189 + xy: 1220, 909 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 1444, 1155 + xy: 1288, 943 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-illuminator-full rotate: false - xy: 1478, 1189 + xy: 1254, 909 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 illuminator rotate: false - xy: 1478, 1189 + xy: 1254, 909 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2603,56 +2610,56 @@ block-impact-reactor-full index: -1 block-incinerator-full rotate: false - xy: 1444, 1121 + xy: 1220, 875 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 incinerator rotate: false - xy: 1444, 1121 + xy: 1220, 875 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-inverted-sorter-full rotate: false - xy: 1478, 1155 + xy: 1288, 909 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 1478, 1155 + xy: 1288, 909 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-source-full rotate: false - xy: 1444, 1087 + xy: 1254, 875 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 1444, 1087 + xy: 1254, 875 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-void-full rotate: false - xy: 1478, 1121 + xy: 1288, 875 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 1478, 1121 + xy: 1288, 875 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2673,14 +2680,14 @@ javelin-ship-pad index: -1 block-junction-full rotate: false - xy: 1478, 1087 + xy: 1209, 841 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 1478, 1087 + xy: 1209, 841 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2743,35 +2750,35 @@ launch-pad-large index: -1 block-liquid-junction-full rotate: false - xy: 1444, 1053 + xy: 1209, 807 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 1444, 1053 + xy: 1209, 807 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 1478, 1053 + xy: 1243, 841 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-source-full rotate: false - xy: 1512, 1189 + xy: 1209, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 1512, 1189 + xy: 1209, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2785,21 +2792,21 @@ block-liquid-tank-full index: -1 block-liquid-void-full rotate: false - xy: 1512, 1155 + xy: 1277, 841 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-void rotate: false - xy: 1512, 1155 + xy: 1277, 841 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-magmarock-full rotate: false - xy: 1512, 1121 + xy: 1243, 807 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2820,14 +2827,14 @@ block-mechanical-drill-full index: -1 block-mechanical-pump-full rotate: false - xy: 1512, 1087 + xy: 1209, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 1512, 1087 + xy: 1209, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2841,14 +2848,14 @@ block-meltdown-full index: -1 block-melter-full rotate: false - xy: 1512, 1053 + xy: 1277, 807 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 1512, 1053 + xy: 1277, 807 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2869,70 +2876,70 @@ mend-projector index: -1 block-mender-full rotate: false - xy: 1546, 1197 + xy: 1243, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender rotate: false - xy: 1546, 1197 + xy: 1243, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-message-full rotate: false - xy: 1546, 1163 + xy: 1209, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 1546, 1163 + xy: 1209, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-2-full rotate: false - xy: 1580, 1197 + xy: 1277, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-3-full rotate: false - xy: 1546, 1129 + xy: 1243, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-5-full rotate: false - xy: 1580, 1163 + xy: 1209, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 1614, 1197 + xy: 1277, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-full rotate: false - xy: 1546, 1095 + xy: 1243, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 1614, 1163 + xy: 1277, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2974,256 +2981,46 @@ omega-mech-pad index: -1 block-ore-coal-full rotate: false - xy: 1648, 1197 + xy: 1243, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-coal-medium - rotate: false - xy: 1648, 1197 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-coal-large - rotate: false - xy: 887, 1635 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-coal-small - rotate: false - xy: 873, 1 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-coal-tiny - rotate: false - xy: 797, 26 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-coal-xlarge - rotate: false - xy: 1448, 1381 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-ore-copper-full rotate: false - xy: 1546, 1061 + xy: 1209, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-copper-medium - rotate: false - xy: 1546, 1061 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-copper-large - rotate: false - xy: 887, 1593 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-copper-small - rotate: false - xy: 1342, 1053 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-copper-tiny - rotate: false - xy: 797, 8 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-copper-xlarge - rotate: false - xy: 1498, 1381 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-ore-lead-full rotate: false - xy: 1580, 1095 + xy: 1277, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-lead-medium - rotate: false - xy: 1580, 1095 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-lead-large - rotate: false - xy: 887, 1551 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-lead-small - rotate: false - xy: 1224, 861 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-lead-tiny - rotate: false - xy: 204, 1129 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-lead-xlarge - rotate: false - xy: 1548, 1381 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-ore-scrap-full rotate: false - xy: 1614, 1129 + xy: 1243, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-scrap-medium - rotate: false - xy: 1614, 1129 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-scrap-large - rotate: false - xy: 607, 1375 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-scrap-small - rotate: false - xy: 259, 1379 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-scrap-tiny - rotate: false - xy: 566, 929 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-scrap-xlarge - rotate: false - xy: 1598, 1381 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-ore-thorium-full rotate: false - xy: 1648, 1163 + xy: 1209, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-thorium-medium - rotate: false - xy: 1648, 1163 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-thorium-large - rotate: false - xy: 673, 1243 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-thorium-small - rotate: false - xy: 960, 966 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-thorium-tiny - rotate: false - xy: 660, 831 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-thorium-xlarge - rotate: false - xy: 1648, 1381 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-ore-titanium-full rotate: false - xy: 1682, 1197 + xy: 1277, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ore-titanium-medium - rotate: false - xy: 1682, 1197 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ore-titanium-large - rotate: false - xy: 945, 752 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ore-titanium-small - rotate: false - xy: 901, 1820 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ore-titanium-tiny - rotate: false - xy: 749, 733 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-ore-titanium-xlarge - rotate: false - xy: 1698, 1381 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 block-overdrive-projector-full rotate: false xy: 821, 1545 @@ -3240,21 +3037,21 @@ overdrive-projector index: -1 block-overflow-gate-full rotate: false - xy: 1580, 1061 + xy: 1243, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 1580, 1061 + xy: 1243, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 1614, 1095 + xy: 1209, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3268,42 +3065,42 @@ block-phantom-factory-full index: -1 block-phase-conduit-full rotate: false - xy: 1648, 1129 + xy: 1277, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 1648, 1129 + xy: 1277, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-conveyor-full rotate: false - xy: 1682, 1163 + xy: 1243, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 1682, 1163 + xy: 1243, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-wall-full rotate: false - xy: 1716, 1197 + xy: 1209, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 1716, 1197 + xy: 1209, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3331,7 +3128,7 @@ block-phase-weaver-full index: -1 block-pine-full rotate: false - xy: 1748, 1381 + xy: 1549, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -3352,14 +3149,14 @@ plastanium-compressor index: -1 block-plastanium-wall-full rotate: false - xy: 1614, 1061 + xy: 1277, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 1614, 1061 + xy: 1277, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3380,7 +3177,7 @@ plastanium-wall-large index: -1 block-plated-conduit-full rotate: false - xy: 1648, 1095 + xy: 1243, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3394,14 +3191,14 @@ block-pneumatic-drill-full index: -1 block-power-node-full rotate: false - xy: 1682, 1129 + xy: 1209, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node rotate: false - xy: 1682, 1129 + xy: 1209, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3422,35 +3219,35 @@ power-node-large index: -1 block-power-source-full rotate: false - xy: 1716, 1163 + xy: 1277, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-void-full rotate: false - xy: 1750, 1197 + xy: 1243, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1750, 1197 + xy: 1243, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 1648, 1061 + xy: 1277, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 1682, 1095 + xy: 1243, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3471,7 +3268,7 @@ pyratite-mixer index: -1 block-repair-point-full rotate: false - xy: 1716, 1129 + xy: 1277, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3492,14 +3289,14 @@ block-ripple-full index: -1 block-rock-full rotate: false - xy: 1798, 1381 + xy: 1599, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-rocks-full rotate: false - xy: 1750, 1163 + xy: 1251, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3520,14 +3317,14 @@ rotary-pump index: -1 block-router-full rotate: false - xy: 1784, 1197 + xy: 1251, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 1784, 1197 + xy: 1251, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3548,14 +3345,14 @@ rtg-generator index: -1 block-salt-full rotate: false - xy: 1682, 1061 + xy: 1251, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 1716, 1095 + xy: 1251, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3569,28 +3366,28 @@ block-salvo-full index: -1 block-sand-boulder-full rotate: false - xy: 1750, 1129 + xy: 1251, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 1784, 1163 + xy: 1285, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-water-full rotate: false - xy: 1818, 1197 + xy: 1285, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 1716, 1061 + xy: 1285, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3604,21 +3401,21 @@ block-scatter-full index: -1 block-scorch-full rotate: false - xy: 1750, 1095 + xy: 1285, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 1784, 1129 + xy: 1285, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 1784, 1129 + xy: 1285, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3674,35 +3471,35 @@ separator index: -1 block-shale-boulder-full rotate: false - xy: 1852, 1197 + xy: 1311, 807 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 1750, 1061 + xy: 1311, 773 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-full rotate: false - xy: 1784, 1095 + xy: 1311, 739 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shock-mine-full rotate: false - xy: 1818, 1129 + xy: 1311, 705 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 1852, 1163 + xy: 1311, 671 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3723,42 +3520,42 @@ silicon-smelter index: -1 block-snow-full rotate: false - xy: 1886, 1197 + xy: 1311, 637 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-snow-pine-full rotate: false - xy: 1848, 1381 + xy: 1649, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrock-full rotate: false - xy: 1898, 1381 + xy: 1699, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 block-snowrocks-full rotate: false - xy: 1784, 1061 + xy: 1311, 603 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-full rotate: false - xy: 1818, 1095 + xy: 1311, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 1818, 1095 + xy: 1311, 569 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3779,21 +3576,21 @@ solar-panel-large index: -1 block-sorter-full rotate: false - xy: 1852, 1129 + xy: 1311, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 1852, 1129 + xy: 1311, 535 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spawn-full rotate: false - xy: 1886, 1163 + xy: 1311, 501 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3814,21 +3611,21 @@ block-spirit-factory-full index: -1 block-spore-cluster-full rotate: false - xy: 1011, 1544 + xy: 887, 1635 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-spore-moss-full rotate: false - xy: 1920, 1197 + xy: 1311, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spore-pine-full rotate: false - xy: 1948, 1381 + xy: 1749, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -3842,14 +3639,14 @@ block-spore-press-full index: -1 block-sporerocks-full rotate: false - xy: 1818, 1061 + xy: 1319, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 1852, 1095 + xy: 1319, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3870,14 +3667,14 @@ surge-tower index: -1 block-surge-wall-full rotate: false - xy: 1886, 1129 + xy: 1319, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 1886, 1129 + xy: 1319, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3905,14 +3702,14 @@ block-swarmer-full index: -1 block-tainted-water-full rotate: false - xy: 1920, 1163 + xy: 1319, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tar-full rotate: false - xy: 1954, 1197 + xy: 1319, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3933,7 +3730,7 @@ tau-mech-pad index: -1 block-tendrils-full rotate: false - xy: 1852, 1061 + xy: 1975, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3982,14 +3779,14 @@ thorium-reactor index: -1 block-thorium-wall-full rotate: false - xy: 1886, 1095 + xy: 2009, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 1886, 1095 + xy: 2009, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4031,28 +3828,28 @@ block-titan-factory-full index: -1 block-titanium-conveyor-full rotate: false - xy: 1920, 1129 + xy: 1725, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 1920, 1129 + xy: 1725, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-wall-full rotate: false - xy: 1954, 1163 + xy: 1759, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall rotate: false - xy: 1954, 1163 + xy: 1759, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4101,14 +3898,14 @@ turbine-generator index: -1 block-unloader-full rotate: false - xy: 1988, 1197 + xy: 1793, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader rotate: false - xy: 1988, 1197 + xy: 1793, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4136,7 +3933,7 @@ block-water-extractor-full index: -1 block-water-full rotate: false - xy: 1886, 1061 + xy: 1827, 1147 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4171,56 +3968,56 @@ block-wraith-factory-full index: -1 cracks-1-0 rotate: false - xy: 1810, 993 + xy: 1396, 971 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 1844, 993 + xy: 1390, 937 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 1878, 993 + xy: 1390, 903 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 1912, 993 + xy: 1390, 869 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 1946, 993 + xy: 1379, 835 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 1980, 993 + xy: 1379, 801 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 2014, 993 + xy: 1379, 767 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 1301, 801 + xy: 1379, 733 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4458,7 +4255,7 @@ cyclone index: -1 duo rotate: false - xy: 1380, 959 + xy: 1379, 631 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4472,525 +4269,525 @@ fuse index: -1 hail rotate: false - xy: 1380, 925 + xy: 1379, 597 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-large rotate: false - xy: 1219, 1257 + xy: 887, 1551 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-blast-compound-medium rotate: false - xy: 1414, 951 + xy: 1431, 1189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 1913, 865 + xy: 1499, 1197 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-blast-compound-tiny rotate: false - xy: 623, 1709 + xy: 797, 26 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-blast-compound-xlarge rotate: false - xy: 1575, 1281 + xy: 1999, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-coal-large rotate: false - xy: 1219, 1215 + xy: 607, 1375 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-coal-medium rotate: false - xy: 1414, 917 + xy: 1431, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 1879, 797 + xy: 873, 1 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-coal-tiny rotate: false - xy: 649, 1399 + xy: 797, 8 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-coal-xlarge rotate: false - xy: 1625, 1281 + xy: 1849, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-copper-large rotate: false - xy: 1208, 1007 + xy: 673, 1243 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-copper-medium rotate: false - xy: 1482, 985 + xy: 1430, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper-small rotate: false - xy: 1243, 775 + xy: 1499, 1171 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-copper-tiny rotate: false - xy: 987, 776 + xy: 204, 1129 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-copper-xlarge rotate: false - xy: 1675, 1281 + xy: 1899, 1273 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-graphite-large rotate: false - xy: 1011, 1502 + xy: 945, 752 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-graphite-medium rotate: false - xy: 1482, 951 + xy: 1430, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite-small rotate: false - xy: 1251, 341 + xy: 259, 1379 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-graphite-tiny rotate: false - xy: 924, 867 + xy: 566, 929 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-graphite-xlarge rotate: false - xy: 1725, 1281 + xy: 1949, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-lead-large rotate: false - xy: 1011, 1460 + xy: 1011, 1544 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-lead-medium rotate: false - xy: 1414, 883 + xy: 1464, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead-small rotate: false - xy: 1273, 647 + xy: 960, 966 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-lead-tiny rotate: false - xy: 924, 849 + xy: 660, 831 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-lead-xlarge rotate: false - xy: 1775, 1281 + xy: 1999, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-metaglass-large rotate: false - xy: 99, 2 + xy: 1069, 1257 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-metaglass-medium rotate: false - xy: 1482, 883 + xy: 1464, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass-small rotate: false - xy: 285, 1379 + xy: 1237, 1273 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-metaglass-tiny rotate: false - xy: 1345, 1239 + xy: 749, 733 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-metaglass-xlarge rotate: false - xy: 1825, 1281 + xy: 1325, 1315 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-phase-fabric-large rotate: false - xy: 1261, 1215 + xy: 1725, 1189 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-phase-fabric-medium rotate: false - xy: 1403, 815 + xy: 1464, 1019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 1913, 839 + xy: 901, 1820 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-phase-fabric-tiny rotate: false - xy: 1345, 1221 + xy: 623, 1709 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-phase-fabric-xlarge rotate: false - xy: 1875, 1281 + xy: 1375, 1297 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-plastanium-large rotate: false - xy: 1303, 1215 + xy: 1011, 1502 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-plastanium-medium rotate: false - xy: 1403, 781 + xy: 1430, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 1939, 865 + xy: 1251, 271 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-plastanium-tiny rotate: false - xy: 1516, 1001 + xy: 1425, 1329 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-plastanium-xlarge rotate: false - xy: 1925, 1281 + xy: 1325, 1265 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-pyratite-large rotate: false - xy: 1258, 1173 + xy: 1111, 1257 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-pyratite-medium rotate: false - xy: 1471, 849 + xy: 1424, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite-small rotate: false - xy: 1269, 775 + xy: 1523, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-pyratite-tiny rotate: false - xy: 2026, 975 + xy: 1825, 1305 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-pyratite-xlarge rotate: false - xy: 1975, 1281 + xy: 1375, 1247 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-sand-large rotate: false - xy: 1258, 1131 + xy: 1011, 1460 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-sand-medium rotate: false - xy: 1471, 815 + xy: 1458, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand-small rotate: false - xy: 1295, 775 + xy: 285, 1379 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-sand-tiny rotate: false - xy: 1209, 469 + xy: 649, 1399 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-sand-xlarge rotate: false - xy: 1267, 1257 + xy: 1425, 1273 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-scrap-large rotate: false - xy: 1300, 1173 + xy: 1153, 1257 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-scrap-medium rotate: false - xy: 1516, 959 + xy: 1424, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap-small rotate: false - xy: 1251, 315 + xy: 1277, 271 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-scrap-tiny rotate: false - xy: 1250, 869 + xy: 987, 776 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-scrap-xlarge rotate: false - xy: 1317, 1257 + xy: 1425, 1223 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-silicon-large rotate: false - xy: 1258, 1089 + xy: 1195, 1257 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-silicon-medium rotate: false - xy: 1550, 959 + xy: 1413, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon-small rotate: false - xy: 1273, 621 + xy: 1523, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-silicon-tiny rotate: false - xy: 1347, 783 + xy: 924, 867 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-silicon-xlarge rotate: false - xy: 1367, 1239 + xy: 1475, 1273 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-spore-pod-large rotate: false - xy: 1300, 1131 + xy: 1119, 1215 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-spore-pod-medium rotate: false - xy: 1550, 925 + xy: 1447, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 1939, 839 + xy: 1549, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1303, 731 + xy: 924, 849 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-spore-pod-xlarge rotate: false - xy: 1417, 1231 + xy: 1475, 1223 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-surge-alloy-large rotate: false - xy: 1300, 1089 + xy: 1161, 1215 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-surge-alloy-medium rotate: false - xy: 1550, 891 + xy: 1447, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1965, 865 + xy: 1303, 271 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 1329, 757 + xy: 1119, 1197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-surge-alloy-xlarge rotate: false - xy: 1467, 1223 + xy: 1525, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-thorium-large rotate: false - xy: 1258, 1047 + xy: 99, 2 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-thorium-medium rotate: false - xy: 1618, 959 + xy: 1447, 747 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 1321, 775 + xy: 1549, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 1251, 271 + xy: 1158, 993 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5004,35 +4801,35 @@ item-thorium-xlarge index: -1 item-titanium-large rotate: false - xy: 1300, 1047 + xy: 1203, 1215 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 item-titanium-medium rotate: false - xy: 1618, 925 + xy: 1447, 713 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 1303, 749 + xy: 1301, 245 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 1273, 577 + xy: 2025, 1263 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 item-titanium-xlarge rotate: false - xy: 1575, 1231 + xy: 1575, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5046,140 +4843,140 @@ lancer index: -1 liquid-cryofluid-large rotate: false - xy: 1250, 1005 + xy: 1767, 1181 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-cryofluid-medium rotate: false - xy: 1618, 891 + xy: 1447, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 1251, 289 + xy: 1301, 219 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 1991, 847 + xy: 1387, 477 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-cryofluid-xlarge rotate: false - xy: 1775, 1231 + xy: 1675, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-oil-large rotate: false - xy: 1292, 1005 + xy: 1245, 1215 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-oil-medium rotate: false - xy: 1686, 959 + xy: 1447, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 1273, 595 + xy: 1301, 193 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 222, 1129 + xy: 1329, 279 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-oil-xlarge rotate: false - xy: 1825, 1231 + xy: 1675, 1231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-slag-large rotate: false - xy: 1236, 963 + xy: 1287, 1215 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-slag-medium rotate: false - xy: 1720, 891 + xy: 1447, 509 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1965, 839 + xy: 1301, 167 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 584, 929 + xy: 1301, 123 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-slag-xlarge rotate: false - xy: 1875, 1231 + xy: 1725, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-water-large rotate: false - xy: 1236, 921 + xy: 1329, 1223 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 liquid-water-medium rotate: false - xy: 1788, 959 + xy: 1447, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 1991, 865 + xy: 1301, 141 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 678, 831 + xy: 222, 1129 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquid-water-xlarge rotate: false - xy: 1925, 1231 + xy: 1725, 1231 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5193,21 +4990,21 @@ mass-driver index: -1 mech-alpha-mech-full rotate: false - xy: 1975, 1231 + xy: 1775, 1273 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mech-dart-ship-full rotate: false - xy: 1119, 1249 + xy: 1775, 1223 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mech-delta-mech-full rotate: false - xy: 1169, 1249 + xy: 1825, 1231 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5221,28 +5018,28 @@ mech-glaive-ship-full index: -1 mech-javelin-ship-full rotate: false - xy: 1119, 1199 + xy: 1875, 1223 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mech-omega-mech-full rotate: false - xy: 1333, 1374 + xy: 1243, 70 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 mech-tau-mech-full rotate: false - xy: 1243, 70 + xy: 1267, 1307 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 mech-trident-ship-full rotate: false - xy: 1267, 1307 + xy: 157, 25 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5256,7 +5053,7 @@ meltdown index: -1 repair-point rotate: false - xy: 1539, 823 + xy: 1455, 407 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5284,7 +5081,7 @@ scatter index: -1 scorch rotate: false - xy: 1573, 823 + xy: 1455, 373 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5298,7 +5095,7 @@ spectre index: -1 swarmer rotate: false - xy: 1177, 200 + xy: 1177, 134 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -5312,14 +5109,14 @@ unit-chaos-array-full index: -1 unit-crawler-full rotate: false - xy: 1208, 1149 + xy: 1575, 1181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unit-dagger-full rotate: false - xy: 1208, 1099 + xy: 1625, 1181 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5333,217 +5130,217 @@ unit-eradicator-full index: -1 unit-eruptor-full rotate: false - xy: 1069, 1365 + xy: 1135, 1431 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-fortress-full rotate: false - xy: 1135, 1431 + xy: 1069, 1299 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 unit-titan-full rotate: false - xy: 1069, 1299 + xy: 1135, 1365 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wave rotate: false - xy: 1267, 1431 + xy: 1267, 1365 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 1414, 985 + xy: 1379, 495 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 1448, 985 + xy: 1465, 1189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 1448, 951 + xy: 1465, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 1448, 917 + xy: 1464, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 1482, 917 + xy: 1430, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 1448, 883 + xy: 1430, 1019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 1403, 849 + xy: 1430, 985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 1437, 849 + xy: 1464, 985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 1437, 815 + xy: 1464, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 1437, 781 + xy: 1424, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 1471, 781 + xy: 1458, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 1516, 925 + xy: 1458, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 1516, 891 + xy: 1413, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 1584, 959 + xy: 1413, 747 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 1584, 925 + xy: 1413, 713 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 1584, 891 + xy: 1413, 679 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 1652, 959 + xy: 1413, 645 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 1652, 925 + xy: 1413, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 1754, 959 + xy: 1447, 543 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 1754, 925 + xy: 1413, 475 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 alpha-mech rotate: false - xy: 1398, 1447 + xy: 1399, 1447 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-mech-base rotate: false - xy: 1203, 18 + xy: 1261, 20 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alpha-mech-leg rotate: false - xy: 1253, 20 + xy: 1399, 1397 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-mech rotate: false - xy: 1791, 1331 + xy: 1549, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-mech-base rotate: false - xy: 1841, 1331 + xy: 1599, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-mech-leg rotate: false - xy: 1891, 1331 + xy: 1649, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 omega-mech rotate: false - xy: 157, 25 + xy: 215, 25 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5557,42 +5354,42 @@ omega-mech-armor index: -1 omega-mech-base rotate: false - xy: 215, 25 + xy: 273, 25 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 omega-mech-leg rotate: false - xy: 273, 25 + xy: 331, 25 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 tau-mech rotate: false - xy: 979, 3 + xy: 1037, 3 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 tau-mech-base rotate: false - xy: 1186, 949 + xy: 1975, 1181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau-mech-leg rotate: false - xy: 1186, 899 + xy: 1525, 1181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dart-ship rotate: false - xy: 1741, 1331 + xy: 1499, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5606,21 +5403,21 @@ glaive-ship index: -1 javelin-ship rotate: false - xy: 1625, 1231 + xy: 1575, 1231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 javelin-ship-shield rotate: false - xy: 1675, 1231 + xy: 1625, 1281 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 trident-ship rotate: false - xy: 1037, 3 + xy: 1095, 3 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5641,7 +5438,7 @@ circle index: -1 shape-3 rotate: false - xy: 1333, 1432 + xy: 1333, 1366 size: 63, 63 orig: 63, 63 offset: 0, 0 @@ -5669,49 +5466,49 @@ chaos-array-leg index: -1 crawler rotate: false - xy: 1441, 1331 + xy: 1899, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-base rotate: false - xy: 1491, 1331 + xy: 1949, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-leg rotate: false - xy: 1541, 1331 + xy: 1999, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger rotate: false - xy: 1591, 1331 + xy: 1398, 1347 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-base rotate: false - xy: 1641, 1331 + xy: 1448, 1323 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-leg rotate: false - xy: 1691, 1331 + xy: 1267, 1257 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 draug rotate: false - xy: 1941, 1331 + xy: 1699, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5802,14 +5599,14 @@ lich index: -1 phantom rotate: false - xy: 331, 25 + xy: 815, 7 size: 56, 56 orig: 56, 56 offset: 0, 0 index: -1 power-cell rotate: false - xy: 815, 7 + xy: 979, 3 size: 56, 56 orig: 56, 56 offset: 0, 0 @@ -5830,63 +5627,63 @@ revenant index: -1 spirit rotate: false - xy: 1158, 1049 + xy: 1875, 1173 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titan rotate: false - xy: 1177, 134 + xy: 1177, 68 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-leg rotate: false - xy: 1177, 68 + xy: 1069, 1431 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 wraith rotate: false - xy: 1208, 1049 + xy: 1675, 1181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 artillery-equip rotate: false - xy: 1325, 1307 + xy: 1449, 1373 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 blaster-equip rotate: false - xy: 1398, 1397 + xy: 1499, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 bomber-equip rotate: false - xy: 1998, 1381 + xy: 1799, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 missiles-equip rotate: false - xy: 1998, 1381 + xy: 1799, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 chain-blaster-equip rotate: false - xy: 1391, 1347 + xy: 1849, 1381 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -5907,63 +5704,63 @@ eradication-equip index: -1 eruption-equip rotate: false - xy: 1375, 1289 + xy: 1799, 1323 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 flakgun-equip rotate: false - xy: 1425, 1281 + xy: 1849, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 flamethrower-equip rotate: false - xy: 1475, 1273 + xy: 1899, 1323 size: 48, 56 orig: 48, 56 offset: 0, 0 index: -1 heal-blaster-equip rotate: false - xy: 1525, 1281 + xy: 1949, 1331 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lich-missiles-equip rotate: false - xy: 1725, 1231 + xy: 1625, 1231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 reaper-gun-equip rotate: false - xy: 1169, 1199 + xy: 1925, 1223 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 revenant-missiles-equip rotate: false - xy: 1158, 1149 + xy: 1975, 1231 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 1158, 1099 + xy: 1825, 1181 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 swarmer-equip rotate: false - xy: 1158, 999 + xy: 1925, 1173 size: 48, 48 orig: 48, 48 offset: 0, 0 @@ -9487,7 +9284,7 @@ alpha-bg index: -1 bar rotate: false - xy: 1500, 131 + xy: 1771, 806 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -9495,7 +9292,7 @@ bar index: -1 bar-top rotate: false - xy: 751, 578 + xy: 1740, 766 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -9510,7 +9307,7 @@ block-alloy-smelter-large index: -1 block-alloy-smelter-medium rotate: false - xy: 1223, 647 + xy: 1339, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9524,7 +9321,7 @@ block-alloy-smelter-small index: -1 block-alloy-smelter-tiny rotate: false - xy: 821, 928 + xy: 929, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9545,21 +9342,21 @@ block-arc-large index: -1 block-arc-medium rotate: false - xy: 1257, 647 + xy: 1373, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 80, 2 + xy: 43, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 301, 1 + xy: 947, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9573,28 +9370,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 909, 933 + xy: 451, 374 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 1291, 647 + xy: 1407, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 1571, 290 + xy: 895, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 319, 1 + xy: 301, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9608,35 +9405,35 @@ block-armored-conveyor-xlarge index: -1 block-battery-large rotate: false - xy: 951, 933 + xy: 501, 424 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-large rotate: false - xy: 993, 933 + xy: 551, 474 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-medium rotate: false - xy: 1325, 647 + xy: 1441, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-large-small rotate: false - xy: 106, 2 + xy: 1301, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-large-tiny rotate: false - xy: 839, 928 + xy: 319, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9650,21 +9447,21 @@ block-battery-large-xlarge index: -1 block-battery-medium rotate: false - xy: 1359, 647 + xy: 1475, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-small rotate: false - xy: 1571, 264 + xy: 1709, 738 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-tiny rotate: false - xy: 2031, 705 + xy: 131, 540 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9678,28 +9475,28 @@ block-battery-xlarge index: -1 block-blast-drill-large rotate: false - xy: 1035, 933 + xy: 601, 524 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-drill-medium rotate: false - xy: 1393, 647 + xy: 1509, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-small rotate: false - xy: 2021, 915 + xy: 1829, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-drill-tiny rotate: false - xy: 2031, 687 + xy: 309, 698 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9713,28 +9510,28 @@ block-blast-drill-xlarge index: -1 block-blast-mixer-large rotate: false - xy: 1077, 933 + xy: 651, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-mixer-medium rotate: false - xy: 1427, 647 + xy: 1543, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-mixer-small rotate: false - xy: 1571, 238 + xy: 69, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-mixer-tiny rotate: false - xy: 2031, 669 + xy: 331, 598 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9748,28 +9545,28 @@ block-blast-mixer-xlarge index: -1 block-bridge-conduit-large rotate: false - xy: 1119, 933 + xy: 351, 224 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conduit-medium rotate: false - xy: 1461, 647 + xy: 1577, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conduit-small rotate: false - xy: 751, 2 + xy: 921, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conduit-tiny rotate: false - xy: 2031, 651 + xy: 1985, 928 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9783,28 +9580,28 @@ block-bridge-conduit-xlarge index: -1 block-bridge-conveyor-large rotate: false - xy: 1161, 933 + xy: 401, 274 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conveyor-medium rotate: false - xy: 1495, 647 + xy: 1611, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-small rotate: false - xy: 777, 2 + xy: 1327, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conveyor-tiny rotate: false - xy: 1361, 1 + xy: 859, 682 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9818,28 +9615,28 @@ block-bridge-conveyor-xlarge index: -1 block-char-large rotate: false - xy: 1203, 933 + xy: 451, 332 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-char-medium rotate: false - xy: 1529, 647 + xy: 1645, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-small rotate: false - xy: 803, 2 + xy: 1829, 792 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-char-tiny rotate: false - xy: 1379, 1 + xy: 1709, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9853,28 +9650,28 @@ block-char-xlarge index: -1 block-cliffs-large rotate: false - xy: 1245, 933 + xy: 693, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliffs-medium rotate: false - xy: 1563, 647 + xy: 882, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-small rotate: false - xy: 829, 2 + xy: 1855, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliffs-tiny rotate: false - xy: 131, 540 + xy: 965, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9888,28 +9685,28 @@ block-cliffs-xlarge index: -1 block-coal-centrifuge-large rotate: false - xy: 1287, 933 + xy: 351, 182 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-coal-centrifuge-medium rotate: false - xy: 1597, 647 + xy: 916, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-coal-centrifuge-small rotate: false - xy: 855, 2 + xy: 95, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-coal-centrifuge-tiny rotate: false - xy: 309, 698 + xy: 963, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9923,28 +9720,28 @@ block-coal-centrifuge-xlarge index: -1 block-combustion-generator-large rotate: false - xy: 1329, 933 + xy: 735, 574 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-combustion-generator-medium rotate: false - xy: 1631, 647 + xy: 950, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-combustion-generator-small rotate: false - xy: 1534, 223 + xy: 947, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-combustion-generator-tiny rotate: false - xy: 331, 598 + xy: 309, 680 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9958,28 +9755,28 @@ block-combustion-generator-xlarge index: -1 block-command-center-large rotate: false - xy: 1371, 933 + xy: 351, 140 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-command-center-medium rotate: false - xy: 1665, 647 + xy: 984, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-command-center-small rotate: false - xy: 1534, 197 + xy: 1353, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-command-center-tiny rotate: false - xy: 1971, 663 + xy: 331, 580 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9993,28 +9790,28 @@ block-command-center-xlarge index: -1 block-conduit-large rotate: false - xy: 1413, 933 + xy: 351, 98 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-conduit-medium rotate: false - xy: 1699, 647 + xy: 1018, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-small rotate: false - xy: 1532, 171 + xy: 1855, 792 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-conduit-tiny rotate: false - xy: 881, 581 + xy: 983, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10028,28 +9825,28 @@ block-conduit-xlarge index: -1 block-container-large rotate: false - xy: 1455, 933 + xy: 351, 56 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-container-medium rotate: false - xy: 1733, 647 + xy: 1052, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-container-small rotate: false - xy: 1560, 212 + xy: 1881, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-container-tiny rotate: false - xy: 132, 10 + xy: 963, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10063,28 +9860,28 @@ block-container-xlarge index: -1 block-conveyor-large rotate: false - xy: 1497, 933 + xy: 351, 14 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-conveyor-medium rotate: false - xy: 1767, 647 + xy: 1086, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-small rotate: false - xy: 1560, 186 + xy: 121, 2 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-conveyor-tiny rotate: false - xy: 2021, 897 + xy: 981, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10098,35 +9895,35 @@ block-conveyor-xlarge index: -1 block-copper-wall-large rotate: false - xy: 1539, 933 + xy: 451, 290 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-copper-wall-large-large rotate: false - xy: 1581, 933 + xy: 493, 374 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-copper-wall-large-medium rotate: false - xy: 1801, 647 + xy: 1120, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-large-small rotate: false - xy: 1558, 160 + xy: 973, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-copper-wall-large-tiny rotate: false - xy: 881, 10 + xy: 1001, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10140,21 +9937,21 @@ block-copper-wall-large-xlarge index: -1 block-copper-wall-medium rotate: false - xy: 1835, 647 + xy: 1154, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-small rotate: false - xy: 1532, 145 + xy: 1379, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-copper-wall-tiny rotate: false - xy: 1917, 387 + xy: 981, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10168,28 +9965,28 @@ block-copper-wall-xlarge index: -1 block-core-foundation-large rotate: false - xy: 1623, 933 + xy: 493, 332 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-foundation-medium rotate: false - xy: 1869, 647 + xy: 1188, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-small rotate: false - xy: 1558, 134 + xy: 1881, 792 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-foundation-tiny rotate: false - xy: 309, 680 + xy: 999, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10203,28 +10000,28 @@ block-core-foundation-xlarge index: -1 block-core-nucleus-large rotate: false - xy: 1665, 933 + xy: 493, 290 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-nucleus-medium rotate: false - xy: 1903, 647 + xy: 1222, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-nucleus-small rotate: false - xy: 1586, 212 + xy: 1907, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-nucleus-tiny rotate: false - xy: 331, 580 + xy: 1019, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10238,28 +10035,28 @@ block-core-nucleus-xlarge index: -1 block-core-shard-large rotate: false - xy: 1707, 933 + xy: 543, 424 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-shard-medium rotate: false - xy: 1937, 647 + xy: 1256, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-shard-small rotate: false - xy: 1586, 186 + xy: 999, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-shard-tiny rotate: false - xy: 1917, 369 + xy: 999, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10273,28 +10070,28 @@ block-core-shard-xlarge index: -1 block-craters-large rotate: false - xy: 1749, 933 + xy: 535, 382 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-craters-medium rotate: false - xy: 919, 589 + xy: 1290, 870 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-craters-small rotate: false - xy: 1584, 160 + xy: 1405, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-craters-tiny rotate: false - xy: 1935, 387 + xy: 1017, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10308,28 +10105,28 @@ block-craters-xlarge index: -1 block-crawler-factory-large rotate: false - xy: 1791, 933 + xy: 535, 340 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-crawler-factory-medium rotate: false - xy: 953, 589 + xy: 1679, 899 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-crawler-factory-small rotate: false - xy: 1584, 134 + xy: 1907, 792 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-crawler-factory-tiny rotate: false - xy: 1935, 369 + xy: 1037, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10343,28 +10140,28 @@ block-crawler-factory-xlarge index: -1 block-cryofluidmixer-large rotate: false - xy: 1833, 933 + xy: 535, 298 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cryofluidmixer-medium rotate: false - xy: 987, 589 + xy: 1713, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-small rotate: false - xy: 1529, 119 + xy: 1933, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cryofluidmixer-tiny rotate: false - xy: 1953, 387 + xy: 1017, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10378,28 +10175,28 @@ block-cryofluidmixer-xlarge index: -1 block-cultivator-large rotate: false - xy: 1875, 933 + xy: 593, 474 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cultivator-medium rotate: false - xy: 1021, 589 + xy: 1747, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cultivator-small rotate: false - xy: 1555, 108 + xy: 1025, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cultivator-tiny rotate: false - xy: 1953, 369 + xy: 1035, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10413,28 +10210,28 @@ block-cultivator-xlarge index: -1 block-cyclone-large rotate: false - xy: 1917, 933 + xy: 585, 432 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cyclone-medium rotate: false - xy: 1055, 589 + xy: 1781, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cyclone-small rotate: false - xy: 1581, 108 + xy: 1431, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cyclone-tiny rotate: false - xy: 1971, 387 + xy: 1055, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10448,28 +10245,28 @@ block-cyclone-xlarge index: -1 block-dagger-factory-large rotate: false - xy: 1959, 933 + xy: 643, 524 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dagger-factory-medium rotate: false - xy: 1089, 589 + xy: 1815, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dagger-factory-small rotate: false - xy: 1600, 355 + xy: 1933, 792 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dagger-factory-tiny rotate: false - xy: 1971, 369 + xy: 1035, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10483,28 +10280,28 @@ block-dagger-factory-xlarge index: -1 block-dark-metal-large rotate: false - xy: 845, 883 + xy: 635, 482 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-metal-medium rotate: false - xy: 1123, 589 + xy: 1849, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-metal-small rotate: false - xy: 1600, 329 + xy: 1959, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-metal-tiny rotate: false - xy: 1989, 387 + xy: 1053, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10518,28 +10315,28 @@ block-dark-metal-xlarge index: -1 block-dark-panel-1-large rotate: false - xy: 859, 841 + xy: 685, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-1-medium rotate: false - xy: 1157, 589 + xy: 1883, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-1-small rotate: false - xy: 1600, 303 + xy: 1051, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-1-tiny rotate: false - xy: 1989, 369 + xy: 1073, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10553,28 +10350,28 @@ block-dark-panel-1-xlarge index: -1 block-dark-panel-2-large rotate: false - xy: 859, 799 + xy: 727, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-2-medium rotate: false - xy: 1191, 589 + xy: 1917, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-2-small rotate: false - xy: 1597, 277 + xy: 1457, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-2-tiny rotate: false - xy: 2007, 387 + xy: 1053, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10588,28 +10385,28 @@ block-dark-panel-2-xlarge index: -1 block-dark-panel-3-large rotate: false - xy: 859, 757 + xy: 393, 224 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-3-medium rotate: false - xy: 1225, 613 + xy: 1951, 912 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-3-small rotate: false - xy: 1597, 251 + xy: 1959, 792 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-3-tiny rotate: false - xy: 2007, 369 + xy: 1071, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10623,28 +10420,28 @@ block-dark-panel-3-xlarge index: -1 block-dark-panel-4-large rotate: false - xy: 859, 715 + xy: 393, 182 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-4-medium rotate: false - xy: 1259, 613 + xy: 1324, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-4-small rotate: false - xy: 1607, 108 + xy: 1077, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-4-tiny rotate: false - xy: 1397, 3 + xy: 1091, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10658,28 +10455,28 @@ block-dark-panel-4-xlarge index: -1 block-dark-panel-5-large rotate: false - xy: 887, 883 + xy: 393, 140 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-5-medium rotate: false - xy: 1293, 613 + xy: 1358, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-5-small rotate: false - xy: 1623, 277 + xy: 1483, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-5-tiny rotate: false - xy: 1415, 3 + xy: 1071, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10693,28 +10490,28 @@ block-dark-panel-5-xlarge index: -1 block-dark-panel-6-large rotate: false - xy: 929, 891 + xy: 393, 98 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-6-medium rotate: false - xy: 1327, 613 + xy: 1392, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-6-small rotate: false - xy: 1623, 251 + xy: 1103, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-6-tiny rotate: false - xy: 1433, 3 + xy: 1089, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10728,49 +10525,49 @@ block-dark-panel-6-xlarge index: -1 block-darksand-large rotate: false - xy: 971, 891 + xy: 393, 56 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-medium rotate: false - xy: 1361, 613 + xy: 1426, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-small rotate: false - xy: 1612, 225 + xy: 1509, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-tainted-water-large rotate: false - xy: 1013, 891 + xy: 393, 14 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-tainted-water-medium rotate: false - xy: 1395, 613 + xy: 1460, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-tainted-water-small rotate: false - xy: 1612, 199 + xy: 1129, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-tainted-water-tiny rotate: false - xy: 2025, 387 + xy: 1109, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10784,35 +10581,35 @@ block-darksand-tainted-water-xlarge index: -1 block-darksand-tiny rotate: false - xy: 2025, 369 + xy: 1089, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-darksand-water-large rotate: false - xy: 1055, 891 + xy: 443, 248 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-water-medium rotate: false - xy: 1429, 613 + xy: 1494, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-water-small rotate: false - xy: 1612, 173 + xy: 1535, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-water-tiny rotate: false - xy: 1683, 361 + xy: 1107, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10833,28 +10630,28 @@ block-darksand-xlarge index: -1 block-dart-mech-pad-large rotate: false - xy: 1097, 891 + xy: 485, 248 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dart-mech-pad-medium rotate: false - xy: 1463, 613 + xy: 1528, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dart-mech-pad-small rotate: false - xy: 1610, 147 + xy: 1155, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dart-mech-pad-tiny rotate: false - xy: 1701, 361 + xy: 1127, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10868,28 +10665,28 @@ block-dart-mech-pad-xlarge index: -1 block-deepwater-large rotate: false - xy: 1139, 891 + xy: 435, 206 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-deepwater-medium rotate: false - xy: 1497, 613 + xy: 1562, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-deepwater-small rotate: false - xy: 1638, 225 + xy: 1561, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-deepwater-tiny rotate: false - xy: 1719, 361 + xy: 1107, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10903,28 +10700,28 @@ block-deepwater-xlarge index: -1 block-delta-mech-pad-large rotate: false - xy: 1181, 891 + xy: 435, 164 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-delta-mech-pad-medium rotate: false - xy: 1531, 613 + xy: 1596, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-delta-mech-pad-small rotate: false - xy: 1638, 199 + xy: 1181, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-delta-mech-pad-tiny rotate: false - xy: 1737, 361 + xy: 1125, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10938,28 +10735,28 @@ block-delta-mech-pad-xlarge index: -1 block-differential-generator-large rotate: false - xy: 1223, 891 + xy: 477, 206 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-differential-generator-medium rotate: false - xy: 1565, 613 + xy: 1630, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-differential-generator-small rotate: false - xy: 1638, 173 + xy: 1587, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-differential-generator-tiny rotate: false - xy: 1755, 361 + xy: 1145, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10973,28 +10770,28 @@ block-differential-generator-xlarge index: -1 block-diode-large rotate: false - xy: 1265, 891 + xy: 435, 122 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-diode-medium rotate: false - xy: 1599, 613 + xy: 1664, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-diode-small rotate: false - xy: 1636, 147 + xy: 1207, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-diode-tiny rotate: false - xy: 1773, 361 + xy: 1125, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11008,28 +10805,28 @@ block-diode-xlarge index: -1 block-distributor-large rotate: false - xy: 1307, 891 + xy: 477, 164 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-distributor-medium rotate: false - xy: 1633, 613 + xy: 1698, 865 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-distributor-small rotate: false - xy: 1633, 121 + xy: 1613, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-distributor-tiny rotate: false - xy: 1791, 361 + xy: 1143, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11043,35 +10840,35 @@ block-distributor-xlarge index: -1 block-door-large rotate: false - xy: 1349, 891 + xy: 435, 80 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-door-large-large rotate: false - xy: 1391, 891 + xy: 477, 122 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-door-large-medium rotate: false - xy: 1667, 613 + xy: 1732, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-door-large-small rotate: false - xy: 1633, 95 + xy: 1233, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-door-large-tiny rotate: false - xy: 1809, 361 + xy: 1163, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11085,21 +10882,21 @@ block-door-large-xlarge index: -1 block-door-medium rotate: false - xy: 1701, 613 + xy: 1766, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-door-small rotate: false - xy: 1659, 121 + xy: 1639, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-door-tiny rotate: false - xy: 1678, 343 + xy: 1143, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11113,28 +10910,28 @@ block-door-xlarge index: -1 block-draug-factory-large rotate: false - xy: 1433, 891 + xy: 435, 38 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-draug-factory-medium rotate: false - xy: 1735, 613 + xy: 1800, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-draug-factory-small rotate: false - xy: 1659, 95 + xy: 1259, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-draug-factory-tiny rotate: false - xy: 1678, 325 + xy: 1161, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11148,28 +10945,28 @@ block-draug-factory-xlarge index: -1 block-dunerocks-large rotate: false - xy: 1475, 891 + xy: 477, 80 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dunerocks-medium rotate: false - xy: 1769, 613 + xy: 1834, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dunerocks-small rotate: false - xy: 1662, 147 + xy: 1665, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dunerocks-tiny rotate: false - xy: 1696, 343 + xy: 1181, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11183,28 +10980,28 @@ block-dunerocks-xlarge index: -1 block-duo-large rotate: false - xy: 1517, 891 + xy: 477, 38 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-duo-medium rotate: false - xy: 1803, 613 + xy: 1868, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-small rotate: false - xy: 1685, 121 + xy: 1285, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-duo-tiny rotate: false - xy: 1714, 343 + xy: 1161, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11218,28 +11015,28 @@ block-duo-xlarge index: -1 block-force-projector-large rotate: false - xy: 1559, 891 + xy: 577, 382 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-force-projector-medium rotate: false - xy: 1837, 613 + xy: 1902, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-force-projector-small rotate: false - xy: 1685, 95 + xy: 1311, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-force-projector-tiny rotate: false - xy: 1696, 325 + xy: 1179, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11253,28 +11050,28 @@ block-force-projector-xlarge index: -1 block-fortress-factory-large rotate: false - xy: 1601, 891 + xy: 577, 340 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-fortress-factory-medium rotate: false - xy: 1871, 613 + xy: 1936, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-fortress-factory-small rotate: false - xy: 1337, 147 + xy: 929, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-fortress-factory-tiny rotate: false - xy: 1732, 343 + xy: 1199, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11288,28 +11085,28 @@ block-fortress-factory-xlarge index: -1 block-fuse-large rotate: false - xy: 1643, 891 + xy: 577, 298 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-fuse-medium rotate: false - xy: 1905, 613 + xy: 1970, 878 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-fuse-small rotate: false - xy: 1363, 149 + xy: 955, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-fuse-tiny rotate: false - xy: 1714, 325 + xy: 1179, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11323,28 +11120,28 @@ block-fuse-xlarge index: -1 block-ghoul-factory-large rotate: false - xy: 1685, 891 + xy: 535, 256 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ghoul-factory-medium rotate: false - xy: 1939, 613 + xy: 1732, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ghoul-factory-small rotate: false - xy: 1337, 121 + xy: 981, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ghoul-factory-tiny rotate: false - xy: 1750, 343 + xy: 1197, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11358,28 +11155,28 @@ block-ghoul-factory-xlarge index: -1 block-glaive-ship-pad-large rotate: false - xy: 1727, 891 + xy: 577, 256 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-glaive-ship-pad-medium rotate: false - xy: 1225, 579 + xy: 1766, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-glaive-ship-pad-small rotate: false - xy: 1363, 123 + xy: 1007, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-glaive-ship-pad-tiny rotate: false - xy: 1732, 325 + xy: 1217, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11393,28 +11190,28 @@ block-glaive-ship-pad-xlarge index: -1 block-graphite-press-large rotate: false - xy: 1769, 891 + xy: 627, 432 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-graphite-press-medium rotate: false - xy: 1259, 579 + xy: 1800, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-graphite-press-small rotate: false - xy: 1335, 95 + xy: 1033, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-graphite-press-tiny rotate: false - xy: 1768, 343 + xy: 1197, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11428,28 +11225,28 @@ block-graphite-press-xlarge index: -1 block-grass-large rotate: false - xy: 1811, 891 + xy: 619, 390 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-grass-medium rotate: false - xy: 1293, 579 + xy: 1834, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-grass-small rotate: false - xy: 1335, 69 + xy: 1059, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-grass-tiny rotate: false - xy: 1750, 325 + xy: 1215, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11463,28 +11260,28 @@ block-grass-xlarge index: -1 block-hail-large rotate: false - xy: 1853, 891 + xy: 619, 348 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-hail-medium rotate: false - xy: 1327, 579 + xy: 1868, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hail-small rotate: false - xy: 1335, 43 + xy: 1085, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-hail-tiny rotate: false - xy: 1786, 343 + xy: 1235, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11498,28 +11295,28 @@ block-hail-xlarge index: -1 block-holostone-large rotate: false - xy: 1895, 891 + xy: 619, 306 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-holostone-medium rotate: false - xy: 1361, 579 + xy: 1902, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-small rotate: false - xy: 1335, 17 + xy: 1111, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-holostone-tiny rotate: false - xy: 1768, 325 + xy: 1215, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11533,28 +11330,28 @@ block-holostone-xlarge index: -1 block-hotrock-large rotate: false - xy: 1937, 891 + xy: 619, 264 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-hotrock-medium rotate: false - xy: 1395, 579 + xy: 1936, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-small rotate: false - xy: 1389, 125 + xy: 1137, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-hotrock-tiny rotate: false - xy: 1804, 343 + xy: 1233, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11568,49 +11365,49 @@ block-hotrock-xlarge index: -1 block-ice-large rotate: false - xy: 901, 841 + xy: 677, 482 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ice-medium rotate: false - xy: 1429, 579 + xy: 1970, 844 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-small rotate: false - xy: 1415, 125 + xy: 1163, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ice-snow-large rotate: false - xy: 901, 799 + xy: 669, 440 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ice-snow-medium rotate: false - xy: 1463, 579 + xy: 859, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-small rotate: false - xy: 1441, 125 + xy: 1189, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ice-snow-tiny rotate: false - xy: 1786, 325 + xy: 1253, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11624,7 +11421,7 @@ block-ice-snow-xlarge index: -1 block-ice-tiny rotate: false - xy: 1804, 325 + xy: 1233, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11638,28 +11435,28 @@ block-ice-xlarge index: -1 block-icerocks-large rotate: false - xy: 901, 757 + xy: 719, 490 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-icerocks-medium rotate: false - xy: 1497, 579 + xy: 893, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-small rotate: false - xy: 1467, 117 + xy: 1215, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-icerocks-tiny rotate: false - xy: 1727, 7 + xy: 1251, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11673,28 +11470,28 @@ block-icerocks-xlarge index: -1 block-ignarock-large rotate: false - xy: 901, 715 + xy: 769, 532 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-ignarock-medium rotate: false - xy: 1531, 579 + xy: 859, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-small rotate: false - xy: 1493, 105 + xy: 1241, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-ignarock-tiny rotate: false - xy: 1745, 7 + xy: 1271, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11708,28 +11505,28 @@ block-ignarock-xlarge index: -1 block-illuminator-large rotate: false - xy: 943, 849 + xy: 761, 490 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-illuminator-medium rotate: false - xy: 1565, 579 + xy: 927, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-illuminator-small rotate: false - xy: 1519, 93 + xy: 1267, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-illuminator-tiny rotate: false - xy: 1763, 7 + xy: 1251, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11743,28 +11540,28 @@ block-illuminator-xlarge index: -1 block-impact-reactor-large rotate: false - xy: 943, 807 + xy: 811, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-impact-reactor-medium rotate: false - xy: 1599, 579 + xy: 859, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-impact-reactor-small rotate: false - xy: 1545, 82 + xy: 1293, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-impact-reactor-tiny rotate: false - xy: 1891, 350 + xy: 1269, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11778,28 +11575,28 @@ block-impact-reactor-xlarge index: -1 block-incinerator-large rotate: false - xy: 985, 849 + xy: 853, 536 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-incinerator-medium rotate: false - xy: 1633, 579 + xy: 893, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-incinerator-small rotate: false - xy: 1571, 82 + xy: 1323, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-incinerator-tiny rotate: false - xy: 1909, 350 + xy: 1289, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11813,28 +11610,28 @@ block-incinerator-xlarge index: -1 block-inverted-sorter-large rotate: false - xy: 943, 765 + xy: 519, 206 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-inverted-sorter-medium rotate: false - xy: 1667, 579 + xy: 961, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-inverted-sorter-small rotate: false - xy: 1597, 82 + xy: 1323, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-inverted-sorter-tiny rotate: false - xy: 1927, 351 + xy: 1269, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11848,28 +11645,28 @@ block-inverted-sorter-xlarge index: -1 block-item-source-large rotate: false - xy: 985, 807 + xy: 519, 164 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-item-source-medium rotate: false - xy: 1701, 579 + xy: 859, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-source-small rotate: false - xy: 1623, 69 + xy: 1349, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-item-source-tiny rotate: false - xy: 1945, 351 + xy: 1287, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11883,28 +11680,28 @@ block-item-source-xlarge index: -1 block-item-void-large rotate: false - xy: 1027, 849 + xy: 519, 122 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-item-void-medium rotate: false - xy: 1735, 579 + xy: 927, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-void-small rotate: false - xy: 1649, 69 + xy: 1323, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-item-void-tiny rotate: false - xy: 1963, 351 + xy: 1307, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11918,28 +11715,28 @@ block-item-void-xlarge index: -1 block-javelin-ship-pad-large rotate: false - xy: 943, 723 + xy: 519, 80 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-javelin-ship-pad-medium rotate: false - xy: 1769, 579 + xy: 893, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-javelin-ship-pad-small rotate: false - xy: 1675, 69 + xy: 1349, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-javelin-ship-pad-tiny rotate: false - xy: 1981, 351 + xy: 1287, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11953,28 +11750,28 @@ block-javelin-ship-pad-xlarge index: -1 block-junction-large rotate: false - xy: 985, 765 + xy: 519, 38 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-junction-medium rotate: false - xy: 1803, 579 + xy: 995, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-junction-small rotate: false - xy: 1701, 69 + xy: 1375, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-junction-tiny rotate: false - xy: 1999, 351 + xy: 1305, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -11988,28 +11785,28 @@ block-junction-xlarge index: -1 block-kiln-large rotate: false - xy: 1027, 807 + xy: 561, 214 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-kiln-medium rotate: false - xy: 1837, 579 + xy: 859, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-kiln-small rotate: false - xy: 1605, 387 + xy: 1323, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-kiln-tiny rotate: false - xy: 2017, 351 + xy: 1325, 494 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12023,28 +11820,28 @@ block-kiln-xlarge index: -1 block-lancer-large rotate: false - xy: 1069, 849 + xy: 561, 172 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-lancer-medium rotate: false - xy: 1871, 579 + xy: 961, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-lancer-small rotate: false - xy: 1631, 389 + xy: 1349, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-lancer-tiny rotate: false - xy: 1822, 343 + xy: 1305, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12058,28 +11855,28 @@ block-lancer-xlarge index: -1 block-laser-drill-large rotate: false - xy: 985, 723 + xy: 561, 130 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-laser-drill-medium rotate: false - xy: 1905, 579 + xy: 927, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-laser-drill-small rotate: false - xy: 1673, 455 + xy: 1375, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-laser-drill-tiny rotate: false - xy: 1822, 325 + xy: 1323, 476 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12093,35 +11890,35 @@ block-laser-drill-xlarge index: -1 block-launch-pad-large rotate: false - xy: 1027, 765 + xy: 561, 88 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-launch-pad-large-large rotate: false - xy: 1069, 807 + xy: 561, 46 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-launch-pad-large-medium rotate: false - xy: 1939, 579 + xy: 893, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-launch-pad-large-small rotate: false - xy: 1699, 457 + xy: 1401, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-launch-pad-large-tiny rotate: false - xy: 1840, 345 + xy: 1323, 458 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12135,21 +11932,21 @@ block-launch-pad-large-xlarge index: -1 block-launch-pad-medium rotate: false - xy: 901, 555 + xy: 1029, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-launch-pad-small rotate: false - xy: 1725, 457 + xy: 1349, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-launch-pad-tiny rotate: false - xy: 1858, 345 + xy: 1739, 657 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12163,28 +11960,28 @@ block-launch-pad-xlarge index: -1 block-liquid-junction-large rotate: false - xy: 1111, 849 + xy: 603, 214 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-junction-medium rotate: false - xy: 901, 521 + xy: 995, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-junction-small rotate: false - xy: 1751, 457 + xy: 1375, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-junction-tiny rotate: false - xy: 1840, 327 + xy: 1739, 639 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12198,28 +11995,28 @@ block-liquid-junction-xlarge index: -1 block-liquid-router-large rotate: false - xy: 1027, 723 + xy: 603, 172 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-router-medium rotate: false - xy: 935, 555 + xy: 961, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-router-small rotate: false - xy: 1777, 457 + xy: 1401, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-router-tiny rotate: false - xy: 1858, 327 + xy: 1739, 621 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12233,28 +12030,28 @@ block-liquid-router-xlarge index: -1 block-liquid-source-large rotate: false - xy: 1069, 765 + xy: 603, 130 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-source-medium rotate: false - xy: 901, 487 + xy: 927, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-source-small rotate: false - xy: 1803, 457 + xy: 1427, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-source-tiny rotate: false - xy: 1701, 307 + xy: 1739, 603 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12268,28 +12065,28 @@ block-liquid-source-xlarge index: -1 block-liquid-tank-large rotate: false - xy: 1111, 807 + xy: 603, 88 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-tank-medium rotate: false - xy: 935, 521 + xy: 893, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-tank-small rotate: false - xy: 1829, 457 + xy: 1375, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-tank-tiny rotate: false - xy: 1701, 289 + xy: 997, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12303,28 +12100,28 @@ block-liquid-tank-xlarge index: -1 block-liquid-void-large rotate: false - xy: 1153, 849 + xy: 603, 46 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-liquid-void-medium rotate: false - xy: 969, 555 + xy: 1063, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-void-small rotate: false - xy: 1855, 457 + xy: 1401, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-liquid-void-tiny rotate: false - xy: 1719, 307 + xy: 997, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12338,28 +12135,28 @@ block-liquid-void-xlarge index: -1 block-magmarock-large rotate: false - xy: 1069, 723 + xy: 661, 390 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-magmarock-medium rotate: false - xy: 901, 453 + xy: 1029, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-magmarock-small rotate: false - xy: 1881, 457 + xy: 1427, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-magmarock-tiny rotate: false - xy: 1701, 271 + xy: 1015, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12373,28 +12170,28 @@ block-magmarock-xlarge index: -1 block-mass-driver-large rotate: false - xy: 1111, 765 + xy: 661, 348 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mass-driver-medium rotate: false - xy: 935, 487 + xy: 995, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mass-driver-small rotate: false - xy: 1907, 457 + xy: 1453, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mass-driver-tiny rotate: false - xy: 1719, 289 + xy: 997, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12408,28 +12205,28 @@ block-mass-driver-xlarge index: -1 block-mechanical-drill-large rotate: false - xy: 1153, 807 + xy: 661, 306 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mechanical-drill-medium rotate: false - xy: 969, 521 + xy: 961, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mechanical-drill-small rotate: false - xy: 1933, 457 + xy: 1401, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mechanical-drill-tiny rotate: false - xy: 1737, 307 + xy: 1033, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12443,28 +12240,28 @@ block-mechanical-drill-xlarge index: -1 block-mechanical-pump-large rotate: false - xy: 1195, 849 + xy: 661, 264 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mechanical-pump-medium rotate: false - xy: 1003, 555 + xy: 927, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mechanical-pump-small rotate: false - xy: 1959, 457 + xy: 1427, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mechanical-pump-tiny rotate: false - xy: 1719, 271 + xy: 1015, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12478,28 +12275,28 @@ block-mechanical-pump-xlarge index: -1 block-meltdown-large rotate: false - xy: 1111, 723 + xy: 645, 222 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-meltdown-medium rotate: false - xy: 901, 419 + xy: 1097, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-meltdown-small rotate: false - xy: 1985, 457 + xy: 1453, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-meltdown-tiny rotate: false - xy: 1755, 307 + xy: 997, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12513,28 +12310,28 @@ block-meltdown-xlarge index: -1 block-melter-large rotate: false - xy: 1153, 765 + xy: 645, 180 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-melter-medium rotate: false - xy: 935, 453 + xy: 1063, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-melter-small rotate: false - xy: 2011, 457 + xy: 1479, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-melter-tiny rotate: false - xy: 1737, 289 + xy: 1051, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12548,28 +12345,28 @@ block-melter-xlarge index: -1 block-mend-projector-large rotate: false - xy: 1195, 807 + xy: 645, 138 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mend-projector-medium rotate: false - xy: 969, 487 + xy: 1029, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mend-projector-small rotate: false - xy: 1673, 429 + xy: 1427, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mend-projector-tiny rotate: false - xy: 1773, 307 + xy: 1033, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12583,28 +12380,28 @@ block-mend-projector-xlarge index: -1 block-mender-large rotate: false - xy: 1237, 849 + xy: 645, 96 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-mender-medium rotate: false - xy: 1003, 521 + xy: 995, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-mender-small rotate: false - xy: 1699, 431 + xy: 1453, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-mender-tiny rotate: false - xy: 1755, 289 + xy: 1015, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12618,28 +12415,28 @@ block-mender-xlarge index: -1 block-message-large rotate: false - xy: 1153, 723 + xy: 645, 54 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-message-medium rotate: false - xy: 1037, 555 + xy: 961, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-message-small rotate: false - xy: 1725, 431 + xy: 1479, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-message-tiny rotate: false - xy: 1737, 271 + xy: 997, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12653,28 +12450,28 @@ block-message-xlarge index: -1 block-metal-floor-2-large rotate: false - xy: 1195, 765 + xy: 687, 222 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-2-medium rotate: false - xy: 901, 385 + xy: 1131, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-2-small rotate: false - xy: 1751, 431 + xy: 1505, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-2-tiny rotate: false - xy: 1791, 307 + xy: 1069, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12688,28 +12485,28 @@ block-metal-floor-2-xlarge index: -1 block-metal-floor-3-large rotate: false - xy: 1237, 807 + xy: 687, 180 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-3-medium rotate: false - xy: 935, 419 + xy: 1097, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-3-small rotate: false - xy: 1777, 431 + xy: 1453, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-3-tiny rotate: false - xy: 1773, 289 + xy: 1051, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12723,28 +12520,28 @@ block-metal-floor-3-xlarge index: -1 block-metal-floor-5-large rotate: false - xy: 1279, 849 + xy: 687, 138 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-5-medium rotate: false - xy: 969, 453 + xy: 1063, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-5-small rotate: false - xy: 1803, 431 + xy: 1479, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-5-tiny rotate: false - xy: 1755, 271 + xy: 1033, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12758,28 +12555,28 @@ block-metal-floor-5-xlarge index: -1 block-metal-floor-damaged-large rotate: false - xy: 1195, 723 + xy: 687, 96 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-damaged-medium rotate: false - xy: 1003, 487 + xy: 1029, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-damaged-small rotate: false - xy: 1829, 431 + xy: 1505, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-damaged-tiny rotate: false - xy: 1809, 307 + xy: 1015, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12793,28 +12590,28 @@ block-metal-floor-damaged-xlarge index: -1 block-metal-floor-large rotate: false - xy: 1237, 765 + xy: 687, 54 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-metal-floor-medium rotate: false - xy: 1037, 521 + xy: 995, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-small rotate: false - xy: 1855, 431 + xy: 1531, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-metal-floor-tiny rotate: false - xy: 1791, 289 + xy: 997, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12828,28 +12625,28 @@ block-metal-floor-xlarge index: -1 block-moss-large rotate: false - xy: 1279, 807 + xy: 803, 490 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-moss-medium rotate: false - xy: 1071, 555 + xy: 1165, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-small rotate: false - xy: 1881, 431 + xy: 1479, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-moss-tiny rotate: false - xy: 1773, 271 + xy: 1087, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12863,28 +12660,28 @@ block-moss-xlarge index: -1 block-multi-press-large rotate: false - xy: 1321, 849 + xy: 845, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-multi-press-medium rotate: false - xy: 901, 351 + xy: 1131, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-multi-press-small rotate: false - xy: 1907, 431 + xy: 1505, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-multi-press-tiny rotate: false - xy: 1809, 289 + xy: 1069, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12898,28 +12695,28 @@ block-multi-press-xlarge index: -1 block-oil-extractor-large rotate: false - xy: 1237, 723 + xy: 561, 4 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-oil-extractor-medium rotate: false - xy: 935, 385 + xy: 1097, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-oil-extractor-small rotate: false - xy: 1933, 431 + xy: 1531, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-oil-extractor-tiny rotate: false - xy: 1791, 271 + xy: 1051, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12933,28 +12730,28 @@ block-oil-extractor-xlarge index: -1 block-omega-mech-pad-large rotate: false - xy: 1279, 765 + xy: 603, 4 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-omega-mech-pad-medium rotate: false - xy: 969, 419 + xy: 1063, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-omega-mech-pad-small rotate: false - xy: 1959, 431 + xy: 1557, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-omega-mech-pad-tiny rotate: false - xy: 1809, 271 + xy: 1033, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -12966,3299 +12763,3509 @@ block-omega-mech-pad-xlarge orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-projector-large +block-ore-coal-large rotate: false - xy: 1321, 807 + xy: 645, 12 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-projector-medium +block-ore-coal-medium rotate: false - xy: 1003, 453 + xy: 1029, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-projector-small +block-ore-coal-small rotate: false - xy: 1985, 431 + xy: 1505, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-projector-tiny +block-ore-coal-tiny rotate: false - xy: 1827, 307 + xy: 1015, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-projector-xlarge +block-ore-coal-xlarge rotate: false xy: 251, 208 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overflow-gate-large +block-ore-copper-large rotate: false - xy: 1363, 849 + xy: 687, 12 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overflow-gate-medium +block-ore-copper-medium rotate: false - xy: 1037, 487 + xy: 1199, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overflow-gate-small +block-ore-copper-small rotate: false - xy: 2011, 431 + xy: 1531, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overflow-gate-tiny +block-ore-copper-tiny rotate: false - xy: 1827, 289 + xy: 997, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overflow-gate-xlarge +block-ore-copper-xlarge rotate: false xy: 251, 158 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pebbles-large +block-ore-lead-large rotate: false - xy: 1279, 723 + xy: 711, 440 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pebbles-medium +block-ore-lead-medium rotate: false - xy: 1071, 521 + xy: 1165, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pebbles-small +block-ore-lead-small rotate: false - xy: 1363, 97 + xy: 1557, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pebbles-tiny +block-ore-lead-tiny rotate: false - xy: 1827, 271 + xy: 1105, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pebbles-xlarge +block-ore-lead-xlarge rotate: false xy: 251, 108 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phantom-factory-large +block-ore-scrap-large rotate: false - xy: 1321, 765 + xy: 703, 398 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phantom-factory-medium +block-ore-scrap-medium rotate: false - xy: 1105, 555 + xy: 1131, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phantom-factory-small +block-ore-scrap-small rotate: false - xy: 1389, 99 + xy: 1583, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phantom-factory-tiny +block-ore-scrap-tiny rotate: false - xy: 1845, 309 + xy: 1087, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phantom-factory-xlarge +block-ore-scrap-xlarge rotate: false xy: 251, 58 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conduit-large +block-ore-thorium-large rotate: false - xy: 1363, 807 + xy: 703, 356 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conduit-medium +block-ore-thorium-medium rotate: false - xy: 901, 317 + xy: 1097, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conduit-small +block-ore-thorium-small rotate: false - xy: 1415, 99 + xy: 1531, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conduit-tiny +block-ore-thorium-tiny rotate: false - xy: 1845, 291 + xy: 1069, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conduit-xlarge +block-ore-thorium-xlarge rotate: false xy: 151, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conveyor-large +block-ore-titanium-large rotate: false - xy: 1405, 849 + xy: 703, 314 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-ore-titanium-medium rotate: false - xy: 935, 351 + xy: 1063, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-ore-titanium-small rotate: false - xy: 1441, 99 + xy: 1557, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-ore-titanium-tiny rotate: false - xy: 1845, 273 + xy: 1051, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-ore-titanium-xlarge rotate: false xy: 201, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large +block-overdrive-projector-large rotate: false - xy: 1321, 723 + xy: 703, 272 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-large +block-overdrive-projector-medium rotate: false - xy: 1363, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-medium - rotate: false - xy: 969, 385 + xy: 1233, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-large-small +block-overdrive-projector-small rotate: false - xy: 1467, 91 + xy: 1583, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-large-tiny +block-overdrive-projector-tiny rotate: false - xy: 1863, 309 + xy: 1033, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-large-xlarge +block-overdrive-projector-xlarge rotate: false xy: 251, 8 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-medium +block-overflow-gate-large rotate: false - xy: 1003, 419 + xy: 753, 448 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-overflow-gate-medium + rotate: false + xy: 1199, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-small +block-overflow-gate-small rotate: false - xy: 1493, 79 + xy: 1609, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-tiny +block-overflow-gate-tiny rotate: false - xy: 1863, 291 + xy: 1015, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-xlarge +block-overflow-gate-xlarge rotate: false xy: 281, 619 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-weaver-large +block-pebbles-large rotate: false - xy: 1405, 807 + xy: 795, 448 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-pebbles-medium rotate: false - xy: 1037, 453 + xy: 1165, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-pebbles-small rotate: false - xy: 1519, 67 + xy: 1557, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-pebbles-tiny rotate: false - xy: 1863, 273 + xy: 997, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-pebbles-xlarge rotate: false xy: 281, 569 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large +block-phantom-factory-large rotate: false - xy: 1447, 849 + xy: 887, 494 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pine-medium +block-phantom-factory-medium rotate: false - xy: 1071, 487 + xy: 1131, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pine-small +block-phantom-factory-small rotate: false - xy: 1361, 71 + xy: 1583, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pine-tiny +block-phantom-factory-tiny rotate: false - xy: 1716, 253 + xy: 1123, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pine-xlarge +block-phantom-factory-xlarge rotate: false xy: 301, 519 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-compressor-large +block-phase-conduit-large rotate: false - xy: 1363, 723 + xy: 745, 398 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-compressor-medium +block-phase-conduit-medium rotate: false - xy: 1105, 521 + xy: 1097, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-compressor-small +block-phase-conduit-small rotate: false - xy: 1361, 45 + xy: 1609, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-compressor-tiny +block-phase-conduit-tiny rotate: false - xy: 1716, 235 + xy: 1105, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-compressor-xlarge +block-phase-conduit-xlarge rotate: false xy: 301, 469 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-large +block-phase-conveyor-large rotate: false - xy: 1405, 765 + xy: 745, 356 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-wall-large-large +block-phase-conveyor-medium rotate: false - xy: 1447, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-medium - rotate: false - xy: 1139, 555 + xy: 1267, 836 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-large-small +block-phase-conveyor-small rotate: false - xy: 1361, 19 + xy: 1635, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-large-tiny +block-phase-conveyor-tiny rotate: false - xy: 1734, 253 + xy: 1087, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-large-xlarge +block-phase-conveyor-xlarge rotate: false xy: 301, 419 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-medium +block-phase-wall-large rotate: false - xy: 901, 283 + xy: 745, 314 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-large + rotate: false + xy: 745, 272 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-medium + rotate: false + xy: 1233, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-small +block-phase-wall-large-small rotate: false - xy: 1545, 56 + xy: 1583, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-tiny +block-phase-wall-large-tiny rotate: false - xy: 1716, 217 + xy: 1069, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-xlarge +block-phase-wall-large-xlarge rotate: false xy: 301, 369 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plated-conduit-large +block-phase-wall-medium rotate: false - xy: 1489, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plated-conduit-medium - rotate: false - xy: 935, 317 + xy: 1199, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plated-conduit-small +block-phase-wall-small rotate: false - xy: 1571, 56 + xy: 1609, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plated-conduit-tiny +block-phase-wall-tiny rotate: false - xy: 1752, 253 + xy: 1051, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plated-conduit-xlarge +block-phase-wall-xlarge rotate: false xy: 301, 319 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pneumatic-drill-large +block-phase-weaver-large rotate: false - xy: 1405, 723 + xy: 729, 230 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pneumatic-drill-medium +block-phase-weaver-medium rotate: false - xy: 969, 351 + xy: 1165, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pneumatic-drill-small +block-phase-weaver-small rotate: false - xy: 1597, 56 + xy: 1635, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pneumatic-drill-tiny +block-phase-weaver-tiny rotate: false - xy: 1734, 235 + xy: 1033, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pneumatic-drill-xlarge +block-phase-weaver-xlarge rotate: false xy: 301, 269 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-large +block-pine-large rotate: false - xy: 1447, 765 + xy: 729, 188 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-node-large-large +block-pine-medium rotate: false - xy: 1489, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-medium - rotate: false - xy: 1003, 385 + xy: 1131, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-large-small +block-pine-small rotate: false - xy: 1623, 43 + xy: 1661, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-large-tiny +block-pine-tiny rotate: false - xy: 1716, 199 + xy: 1015, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-large-xlarge +block-pine-xlarge rotate: false xy: 301, 219 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-medium +block-plastanium-compressor-large rotate: false - xy: 1037, 419 + xy: 729, 146 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-compressor-medium + rotate: false + xy: 1267, 802 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-small +block-plastanium-compressor-small rotate: false - xy: 1649, 43 + xy: 1609, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-tiny +block-plastanium-compressor-tiny rotate: false - xy: 1716, 181 + xy: 997, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-xlarge +block-plastanium-compressor-xlarge rotate: false xy: 301, 169 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-source-large +block-plastanium-wall-large rotate: false - xy: 1531, 849 + xy: 729, 104 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-source-medium +block-plastanium-wall-large-large rotate: false - xy: 1071, 453 + xy: 729, 62 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-medium + rotate: false + xy: 1233, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-source-small +block-plastanium-wall-large-small rotate: false - xy: 1675, 43 + xy: 1635, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-source-tiny +block-plastanium-wall-large-tiny rotate: false - xy: 1770, 253 + xy: 1141, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-source-xlarge +block-plastanium-wall-large-xlarge rotate: false xy: 301, 119 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-void-large +block-plastanium-wall-medium rotate: false - xy: 1447, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-void-medium - rotate: false - xy: 1105, 487 + xy: 1199, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-void-small +block-plastanium-wall-small rotate: false - xy: 1701, 43 + xy: 1661, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-void-tiny +block-plastanium-wall-tiny rotate: false - xy: 1752, 235 + xy: 1123, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-void-xlarge +block-plastanium-wall-xlarge rotate: false xy: 301, 69 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulse-conduit-large +block-plated-conduit-large rotate: false - xy: 1489, 765 + xy: 729, 20 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulse-conduit-medium +block-plated-conduit-medium rotate: false - xy: 1139, 521 + xy: 1165, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulse-conduit-small +block-plated-conduit-small rotate: false - xy: 1631, 363 + xy: 1635, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulse-conduit-tiny +block-plated-conduit-tiny rotate: false - xy: 1734, 217 + xy: 1105, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulse-conduit-xlarge +block-plated-conduit-xlarge rotate: false xy: 301, 19 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulverizer-large +block-pneumatic-drill-large rotate: false - xy: 1531, 807 + xy: 787, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulverizer-medium +block-pneumatic-drill-medium rotate: false - xy: 1173, 555 + xy: 1267, 768 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulverizer-small +block-pneumatic-drill-small rotate: false - xy: 1626, 337 + xy: 1661, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulverizer-tiny +block-pneumatic-drill-tiny rotate: false - xy: 1788, 253 + xy: 1087, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulverizer-xlarge +block-pneumatic-drill-xlarge rotate: false xy: 795, 878 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pyratite-mixer-large +block-power-node-large rotate: false - xy: 1573, 849 + xy: 787, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pyratite-mixer-medium +block-power-node-large-large rotate: false - xy: 901, 249 + xy: 787, 322 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-medium + rotate: false + xy: 1233, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pyratite-mixer-small +block-power-node-large-small rotate: false - xy: 1626, 311 + xy: 1661, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pyratite-mixer-tiny +block-power-node-large-tiny rotate: false - xy: 1770, 235 + xy: 1069, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pyratite-mixer-xlarge +block-power-node-large-xlarge rotate: false xy: 309, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-repair-point-large +block-power-node-medium rotate: false - xy: 1489, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-repair-point-medium - rotate: false - xy: 935, 283 + xy: 1199, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-repair-point-small +block-power-node-small rotate: false - xy: 1652, 337 + xy: 1337, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-repair-point-tiny +block-power-node-tiny rotate: false - xy: 1752, 217 + xy: 1051, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-repair-point-xlarge +block-power-node-xlarge rotate: false xy: 309, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-revenant-factory-large +block-power-source-large rotate: false - xy: 1531, 765 + xy: 787, 280 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-revenant-factory-medium +block-power-source-medium rotate: false - xy: 969, 317 + xy: 1267, 734 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-revenant-factory-small +block-power-source-small rotate: false - xy: 1652, 311 + xy: 1337, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-revenant-factory-tiny +block-power-source-tiny rotate: false - xy: 1734, 199 + xy: 1033, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-revenant-factory-xlarge +block-power-source-xlarge rotate: false xy: 359, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ripple-large +block-power-void-large rotate: false - xy: 1573, 807 + xy: 771, 230 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ripple-medium +block-power-void-medium rotate: false - xy: 1003, 351 + xy: 1233, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ripple-small +block-power-void-small rotate: false - xy: 1649, 285 + xy: 1363, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ripple-tiny +block-power-void-tiny rotate: false - xy: 1734, 181 + xy: 1015, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ripple-xlarge +block-power-void-xlarge rotate: false xy: 309, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rock-large +block-pulse-conduit-large rotate: false - xy: 1615, 849 + xy: 771, 188 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rock-medium +block-pulse-conduit-medium rotate: false - xy: 1037, 385 + xy: 1267, 700 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rock-small +block-pulse-conduit-small rotate: false - xy: 1649, 259 + xy: 1363, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rock-tiny +block-pulse-conduit-tiny rotate: false - xy: 1806, 253 + xy: 1159, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rock-xlarge +block-pulse-conduit-xlarge rotate: false xy: 359, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rocks-large +block-pulverizer-large rotate: false - xy: 1531, 723 + xy: 771, 146 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rocks-medium +block-pulverizer-medium rotate: false - xy: 1071, 419 + xy: 881, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rocks-small +block-pulverizer-small rotate: false - xy: 1675, 285 + xy: 1389, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rocks-tiny +block-pulverizer-tiny rotate: false - xy: 1788, 235 + xy: 1141, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rocks-xlarge +block-pulverizer-xlarge rotate: false xy: 409, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rotary-pump-large +block-pyratite-mixer-large rotate: false - xy: 1573, 765 + xy: 771, 104 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rotary-pump-medium +block-pyratite-mixer-medium rotate: false - xy: 1105, 453 + xy: 881, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rotary-pump-small +block-pyratite-mixer-small rotate: false - xy: 1675, 259 + xy: 1389, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rotary-pump-tiny +block-pyratite-mixer-tiny rotate: false - xy: 1770, 217 + xy: 1123, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rotary-pump-xlarge +block-pyratite-mixer-xlarge rotate: false xy: 359, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-router-large +block-repair-point-large rotate: false - xy: 1615, 807 + xy: 771, 62 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-router-medium +block-repair-point-medium rotate: false - xy: 1139, 487 + xy: 915, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-router-small +block-repair-point-small rotate: false - xy: 1664, 233 + xy: 1415, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-router-tiny +block-repair-point-tiny rotate: false - xy: 1752, 199 + xy: 1105, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-router-xlarge +block-repair-point-xlarge rotate: false xy: 409, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rtg-generator-large +block-revenant-factory-large rotate: false - xy: 1657, 849 + xy: 771, 20 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rtg-generator-medium +block-revenant-factory-medium rotate: false - xy: 1173, 521 + xy: 881, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rtg-generator-small +block-revenant-factory-small rotate: false - xy: 1664, 207 + xy: 1415, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rtg-generator-tiny +block-revenant-factory-tiny rotate: false - xy: 1824, 253 + xy: 1087, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rtg-generator-xlarge +block-revenant-factory-xlarge rotate: false xy: 459, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salt-large +block-ripple-large rotate: false - xy: 1573, 723 + xy: 837, 448 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salt-medium +block-ripple-medium rotate: false - xy: 901, 215 + xy: 949, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salt-small +block-ripple-small rotate: false - xy: 1664, 181 + xy: 1441, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salt-tiny +block-ripple-tiny rotate: false - xy: 1806, 235 + xy: 1069, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salt-xlarge +block-ripple-xlarge rotate: false xy: 409, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-saltrocks-large +block-rock-large rotate: false - xy: 1615, 765 + xy: 829, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-saltrocks-medium +block-rock-medium rotate: false - xy: 935, 249 + xy: 915, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-saltrocks-small +block-rock-small rotate: false - xy: 1690, 233 + xy: 1441, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-saltrocks-tiny +block-rock-tiny rotate: false - xy: 1788, 217 + xy: 1051, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-saltrocks-xlarge +block-rock-xlarge rotate: false xy: 459, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salvo-large +block-rocks-large rotate: false - xy: 1657, 807 + xy: 829, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salvo-medium +block-rocks-medium rotate: false - xy: 969, 283 + xy: 983, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salvo-small +block-rocks-small rotate: false - xy: 1690, 207 + xy: 1467, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salvo-tiny +block-rocks-tiny rotate: false - xy: 1770, 199 + xy: 1033, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salvo-xlarge +block-rocks-xlarge rotate: false xy: 509, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-boulder-large +block-rotary-pump-large rotate: false - xy: 1699, 849 + xy: 829, 322 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-boulder-medium +block-rotary-pump-medium rotate: false - xy: 1003, 317 + xy: 949, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-boulder-small +block-rotary-pump-small rotate: false - xy: 1690, 181 + xy: 1467, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-boulder-tiny +block-rotary-pump-tiny rotate: false - xy: 1752, 181 + xy: 1015, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-boulder-xlarge +block-rotary-pump-xlarge rotate: false xy: 459, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-large +block-router-large rotate: false - xy: 1615, 723 + xy: 829, 280 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-medium +block-router-medium rotate: false - xy: 1037, 351 + xy: 915, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-small +block-router-small rotate: false - xy: 1688, 155 + xy: 1493, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-tiny +block-router-tiny rotate: false - xy: 1740, 163 + xy: 1177, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-water-large - rotate: false - xy: 1657, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-water-medium - rotate: false - xy: 1071, 385 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-water-small - rotate: false - xy: 1639, 421 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-water-tiny - rotate: false - xy: 1824, 235 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-water-xlarge +block-router-xlarge rotate: false xy: 509, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-xlarge +block-rtg-generator-large + rotate: false + xy: 879, 452 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-rtg-generator-medium + rotate: false + xy: 1017, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-rtg-generator-small + rotate: false + xy: 1493, 547 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-rtg-generator-tiny + rotate: false + xy: 1159, 422 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-rtg-generator-xlarge rotate: false xy: 559, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sandrocks-large +block-salt-large rotate: false - xy: 1699, 807 + xy: 813, 238 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sandrocks-medium +block-salt-medium rotate: false - xy: 1105, 419 + xy: 983, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sandrocks-small +block-salt-small rotate: false - xy: 1389, 73 + xy: 1519, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sandrocks-tiny +block-salt-tiny rotate: false - xy: 1806, 217 + xy: 1141, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sandrocks-xlarge +block-salt-xlarge rotate: false xy: 509, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scatter-large +block-saltrocks-large rotate: false - xy: 1741, 849 + xy: 813, 196 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scatter-medium +block-saltrocks-medium rotate: false - xy: 1139, 453 + xy: 949, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scatter-small +block-saltrocks-small rotate: false - xy: 1415, 73 + xy: 1519, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scatter-tiny +block-saltrocks-tiny rotate: false - xy: 1788, 199 + xy: 1123, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scatter-xlarge +block-saltrocks-xlarge rotate: false xy: 559, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scorch-large +block-salvo-large rotate: false - xy: 1657, 723 + xy: 813, 154 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scorch-medium +block-salvo-medium rotate: false - xy: 1173, 487 + xy: 1051, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scorch-small +block-salvo-small rotate: false - xy: 1441, 73 + xy: 1545, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scorch-tiny +block-salvo-tiny rotate: false - xy: 1770, 181 + xy: 1105, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scorch-xlarge +block-salvo-xlarge rotate: false xy: 609, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-large +block-sand-boulder-large rotate: false - xy: 1699, 765 + xy: 813, 112 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-medium +block-sand-boulder-medium rotate: false - xy: 901, 181 + xy: 1017, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-small +block-sand-boulder-small rotate: false - xy: 1467, 65 + xy: 1545, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-tiny +block-sand-boulder-tiny rotate: false - xy: 1758, 163 + xy: 1087, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-xlarge +block-sand-boulder-xlarge rotate: false xy: 559, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-huge-large +block-sand-large rotate: false - xy: 1741, 807 + xy: 813, 70 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-huge-medium +block-sand-medium rotate: false - xy: 935, 215 + xy: 983, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-huge-small +block-sand-small rotate: false - xy: 1493, 53 + xy: 1571, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-huge-tiny +block-sand-tiny rotate: false - xy: 1824, 217 + xy: 1069, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-huge-xlarge +block-sand-water-large + rotate: false + xy: 813, 28 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-water-medium + rotate: false + xy: 1085, 666 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-water-small + rotate: false + xy: 1571, 547 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-water-tiny + rotate: false + xy: 1051, 314 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-water-xlarge rotate: false xy: 609, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-large - rotate: false - xy: 1783, 849 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-large - rotate: false - xy: 1699, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-medium - rotate: false - xy: 969, 249 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scrap-wall-large-small - rotate: false - xy: 1519, 41 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scrap-wall-large-tiny - rotate: false - xy: 1806, 199 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scrap-wall-large-xlarge +block-sand-xlarge rotate: false xy: 659, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-medium +block-sandrocks-large rotate: false - xy: 1003, 283 + xy: 855, 238 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sandrocks-medium + rotate: false + xy: 1051, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-small +block-sandrocks-small rotate: false - xy: 1387, 47 + xy: 1597, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-tiny +block-sandrocks-tiny rotate: false - xy: 1788, 181 + xy: 1033, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-xlarge +block-sandrocks-xlarge rotate: false xy: 609, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-separator-large +block-scatter-large rotate: false - xy: 1741, 765 + xy: 855, 196 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-separator-medium +block-scatter-medium rotate: false - xy: 1037, 317 + xy: 1017, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-separator-small +block-scatter-small rotate: false - xy: 1413, 47 + xy: 1597, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-separator-tiny +block-scatter-tiny rotate: false - xy: 1776, 163 + xy: 1195, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-separator-xlarge +block-scatter-xlarge rotate: false xy: 659, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-boulder-large +block-scorch-large rotate: false - xy: 1783, 807 + xy: 855, 154 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-boulder-medium +block-scorch-medium rotate: false - xy: 1071, 351 + xy: 1119, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-boulder-small +block-scorch-small rotate: false - xy: 1387, 21 + xy: 1623, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-boulder-tiny +block-scorch-tiny rotate: false - xy: 1824, 199 + xy: 1177, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-boulder-xlarge +block-scorch-xlarge rotate: false xy: 709, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-large +block-scrap-wall-gigantic-large rotate: false - xy: 1825, 849 + xy: 855, 112 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-medium +block-scrap-wall-gigantic-medium rotate: false - xy: 1105, 385 + xy: 1085, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-small +block-scrap-wall-gigantic-small rotate: false - xy: 1439, 47 + xy: 1623, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-tiny +block-scrap-wall-gigantic-tiny rotate: false - xy: 1806, 181 + xy: 1159, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-xlarge +block-scrap-wall-gigantic-xlarge rotate: false xy: 659, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shalerocks-large +block-scrap-wall-huge-large rotate: false - xy: 1741, 723 + xy: 855, 70 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shalerocks-medium +block-scrap-wall-huge-medium rotate: false - xy: 1139, 419 + xy: 1051, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shalerocks-small +block-scrap-wall-huge-small rotate: false - xy: 1413, 21 + xy: 1649, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shalerocks-tiny +block-scrap-wall-huge-tiny rotate: false - xy: 1794, 163 + xy: 1141, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shalerocks-xlarge +block-scrap-wall-huge-xlarge rotate: false xy: 709, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shock-mine-large +block-scrap-wall-large rotate: false - xy: 1783, 765 + xy: 855, 28 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shock-mine-medium +block-scrap-wall-large-large rotate: false - xy: 1173, 453 + xy: 921, 452 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-medium + rotate: false + xy: 1153, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shock-mine-small +block-scrap-wall-large-small rotate: false - xy: 1439, 21 + xy: 1649, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shock-mine-tiny +block-scrap-wall-large-tiny rotate: false - xy: 1824, 181 + xy: 1123, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shock-mine-xlarge +block-scrap-wall-large-xlarge rotate: false xy: 709, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shrubs-large +block-scrap-wall-medium rotate: false - xy: 1825, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shrubs-medium - rotate: false - xy: 901, 147 + xy: 1119, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shrubs-small +block-scrap-wall-small rotate: false - xy: 1465, 39 + xy: 1985, 818 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shrubs-tiny +block-scrap-wall-tiny rotate: false - xy: 1812, 163 + xy: 1105, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shrubs-xlarge +block-scrap-wall-xlarge rotate: false xy: 759, 816 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-smelter-large +block-separator-large rotate: false - xy: 1867, 849 + xy: 871, 406 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-smelter-medium +block-separator-medium rotate: false - xy: 935, 181 + xy: 1085, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-smelter-small +block-separator-small rotate: false - xy: 1465, 13 + xy: 1985, 792 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-smelter-tiny +block-separator-tiny rotate: false - xy: 1830, 163 + xy: 1087, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-smelter-xlarge +block-separator-xlarge rotate: false xy: 759, 766 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-large +block-shale-boulder-large rotate: false - xy: 1783, 723 + xy: 871, 364 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-medium +block-shale-boulder-medium rotate: false - xy: 969, 215 + xy: 1187, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-large +block-shale-boulder-small rotate: false - xy: 1825, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-pine-medium - rotate: false - xy: 1003, 249 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-pine-small - rotate: false - xy: 1491, 27 + xy: 1691, 703 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-pine-tiny +block-shale-boulder-tiny rotate: false - xy: 1763, 145 + xy: 1069, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-pine-xlarge +block-shale-boulder-xlarge rotate: false xy: 759, 716 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-small +block-shale-large rotate: false - xy: 1491, 1 + xy: 871, 322 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-shale-medium + rotate: false + xy: 1153, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-shale-small + rotate: false + xy: 1687, 677 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-tiny +block-shale-tiny rotate: false - xy: 1781, 145 + xy: 1051, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-xlarge +block-shale-xlarge rotate: false xy: 809, 828 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrock-large +block-shalerocks-large rotate: false - xy: 1867, 807 + xy: 871, 280 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrock-medium +block-shalerocks-medium rotate: false - xy: 1037, 283 + xy: 1119, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrock-small +block-shalerocks-small rotate: false - xy: 1517, 15 + xy: 1687, 651 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrock-tiny +block-shalerocks-tiny rotate: false - xy: 1763, 127 + xy: 1213, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrock-xlarge +block-shalerocks-xlarge rotate: false xy: 809, 778 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-large +block-shock-mine-large rotate: false - xy: 1909, 849 + xy: 913, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrocks-medium +block-shock-mine-medium rotate: false - xy: 1071, 317 + xy: 1221, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrocks-small +block-shock-mine-small rotate: false - xy: 1545, 30 + xy: 1687, 625 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrocks-tiny +block-shock-mine-tiny rotate: false - xy: 1781, 127 + xy: 1195, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrocks-xlarge +block-shock-mine-xlarge rotate: false xy: 809, 728 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-large +block-shrubs-large rotate: false - xy: 1825, 723 + xy: 913, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-solar-panel-large-large +block-shrubs-medium rotate: false - xy: 1867, 765 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-medium - rotate: false - xy: 1105, 351 + xy: 1187, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-large-small +block-shrubs-small rotate: false - xy: 1571, 30 + xy: 1687, 599 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-large-tiny +block-shrubs-tiny rotate: false - xy: 1799, 145 + xy: 1177, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-large-xlarge +block-shrubs-xlarge rotate: false xy: 809, 678 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-medium +block-silicon-smelter-large rotate: false - xy: 1139, 385 + xy: 913, 326 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-silicon-smelter-medium + rotate: false + xy: 1153, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-small +block-silicon-smelter-small rotate: false - xy: 1597, 30 + xy: 1675, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-tiny +block-silicon-smelter-tiny rotate: false - xy: 1763, 109 + xy: 1159, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-xlarge +block-silicon-smelter-xlarge rotate: false xy: 331, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sorter-large +block-snow-large rotate: false - xy: 1909, 807 + xy: 913, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sorter-medium +block-snow-medium rotate: false - xy: 1173, 419 + xy: 1255, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sorter-small +block-snow-pine-large rotate: false - xy: 1543, 4 + xy: 897, 238 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-pine-medium + rotate: false + xy: 1221, 632 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-small + rotate: false + xy: 1675, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sorter-tiny +block-snow-pine-tiny rotate: false - xy: 1781, 109 + xy: 1141, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sorter-xlarge +block-snow-pine-xlarge rotate: false xy: 331, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spawn-large +block-snow-small rotate: false - xy: 1867, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spawn-medium - rotate: false - xy: 901, 113 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-spawn-small - rotate: false - xy: 1569, 4 + xy: 1319, 512 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spawn-tiny +block-snow-tiny rotate: false - xy: 1799, 127 + xy: 1123, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spawn-xlarge +block-snow-xlarge rotate: false xy: 381, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spectre-large +block-snowrock-large rotate: false - xy: 1909, 765 + xy: 897, 196 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spectre-medium +block-snowrock-medium rotate: false - xy: 935, 147 + xy: 1187, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spectre-small +block-snowrock-small rotate: false - xy: 1595, 4 + xy: 1345, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spectre-tiny +block-snowrock-tiny rotate: false - xy: 1817, 145 + xy: 1105, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spectre-xlarge +block-snowrock-xlarge rotate: false xy: 381, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spirit-factory-large +block-snowrocks-large rotate: false - xy: 1909, 723 + xy: 897, 154 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spirit-factory-medium +block-snowrocks-medium rotate: false - xy: 969, 181 + xy: 1255, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spirit-factory-small +block-snowrocks-small rotate: false - xy: 1623, 17 + xy: 1371, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spirit-factory-tiny +block-snowrocks-tiny rotate: false - xy: 1799, 109 + xy: 1087, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spirit-factory-xlarge +block-snowrocks-xlarge rotate: false xy: 431, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-cluster-large +block-solar-panel-large rotate: false - xy: 1951, 849 + xy: 897, 112 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-cluster-medium +block-solar-panel-large-large rotate: false - xy: 1003, 215 + xy: 897, 70 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-medium + rotate: false + xy: 1221, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-cluster-small +block-solar-panel-large-small rotate: false - xy: 1649, 17 + xy: 1397, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-cluster-tiny +block-solar-panel-large-tiny rotate: false - xy: 1817, 127 + xy: 1069, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-cluster-xlarge +block-solar-panel-large-xlarge rotate: false xy: 431, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-moss-large +block-solar-panel-medium rotate: false - xy: 1951, 807 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spore-moss-medium - rotate: false - xy: 1037, 249 + xy: 1255, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-moss-small +block-solar-panel-small rotate: false - xy: 1675, 17 + xy: 1423, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-moss-tiny +block-solar-panel-tiny rotate: false - xy: 1817, 109 + xy: 1231, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-moss-xlarge +block-solar-panel-xlarge rotate: false xy: 481, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-pine-large +block-sorter-large rotate: false - xy: 1951, 765 + xy: 897, 28 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-pine-medium +block-sorter-medium rotate: false - xy: 1071, 283 + xy: 895, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-pine-small +block-sorter-small rotate: false - xy: 1701, 17 + xy: 1449, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-pine-tiny +block-sorter-tiny rotate: false - xy: 1835, 145 + xy: 1213, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-pine-xlarge +block-sorter-xlarge rotate: false xy: 481, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-press-large +block-spawn-large rotate: false - xy: 1951, 723 + xy: 939, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-press-medium +block-spawn-medium rotate: false - xy: 1105, 317 + xy: 929, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-press-small +block-spawn-small rotate: false - xy: 1699, 405 + xy: 1475, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-press-tiny +block-spawn-tiny rotate: false - xy: 1835, 127 + xy: 1195, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-press-xlarge +block-spawn-xlarge rotate: false xy: 531, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sporerocks-large +block-spectre-large rotate: false - xy: 1979, 891 + xy: 939, 200 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sporerocks-medium +block-spectre-medium rotate: false - xy: 1139, 351 + xy: 963, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sporerocks-small +block-spectre-small rotate: false - xy: 1725, 405 + xy: 1501, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sporerocks-tiny +block-spectre-tiny rotate: false - xy: 1835, 109 + xy: 1177, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sporerocks-xlarge +block-spectre-xlarge rotate: false xy: 531, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-stone-large +block-spirit-factory-large rotate: false - xy: 1993, 849 + xy: 939, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-stone-medium +block-spirit-factory-medium rotate: false - xy: 1173, 385 + xy: 997, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-stone-small +block-spirit-factory-small rotate: false - xy: 1751, 405 + xy: 1527, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-stone-tiny +block-spirit-factory-tiny rotate: false - xy: 1779, 91 + xy: 1159, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-stone-xlarge +block-spirit-factory-xlarge rotate: false xy: 581, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-tower-large +block-spore-cluster-large rotate: false - xy: 1993, 807 + xy: 939, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-tower-medium +block-spore-cluster-medium rotate: false - xy: 901, 79 + xy: 1031, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-tower-small +block-spore-cluster-small rotate: false - xy: 1777, 405 + xy: 1553, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-tower-tiny +block-spore-cluster-tiny rotate: false - xy: 1779, 73 + xy: 1141, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-tower-xlarge +block-spore-cluster-xlarge rotate: false xy: 581, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-large +block-spore-moss-large rotate: false - xy: 1993, 765 + xy: 939, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-wall-large-large +block-spore-moss-medium rotate: false - xy: 1993, 723 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-medium - rotate: false - xy: 935, 113 + xy: 1065, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-large-small +block-spore-moss-small rotate: false - xy: 1803, 405 + xy: 1579, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-large-tiny +block-spore-moss-tiny rotate: false - xy: 1797, 91 + xy: 1123, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-large-xlarge +block-spore-moss-xlarge rotate: false xy: 631, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-medium +block-spore-pine-large rotate: false - xy: 969, 147 + xy: 939, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-spore-pine-medium + rotate: false + xy: 1099, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-small +block-spore-pine-small rotate: false - xy: 1829, 405 + xy: 1605, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-tiny +block-spore-pine-tiny rotate: false - xy: 1779, 55 + xy: 1105, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-xlarge +block-spore-pine-xlarge rotate: false xy: 631, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-swarmer-large +block-spore-press-large rotate: false - xy: 943, 681 + xy: 955, 410 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-swarmer-medium +block-spore-press-medium rotate: false - xy: 1003, 181 + xy: 1133, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-swarmer-small +block-spore-press-small rotate: false - xy: 1855, 405 + xy: 1631, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-swarmer-tiny +block-spore-press-tiny rotate: false - xy: 1797, 73 + xy: 1087, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-swarmer-xlarge +block-spore-press-xlarge rotate: false xy: 681, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tainted-water-large +block-sporerocks-large rotate: false - xy: 985, 681 + xy: 955, 368 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tainted-water-medium +block-sporerocks-medium rotate: false - xy: 1037, 215 + xy: 1167, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tainted-water-small +block-sporerocks-small rotate: false - xy: 1881, 405 + xy: 1657, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tainted-water-tiny +block-sporerocks-tiny rotate: false - xy: 1815, 91 + xy: 1249, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tainted-water-xlarge +block-sporerocks-xlarge rotate: false xy: 681, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tar-large +block-stone-large rotate: false - xy: 1027, 681 + xy: 955, 326 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tar-medium +block-stone-medium rotate: false - xy: 1071, 249 + xy: 1201, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tar-small +block-stone-small rotate: false - xy: 1907, 405 + xy: 1683, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tar-tiny +block-stone-tiny rotate: false - xy: 1779, 37 + xy: 1231, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tar-xlarge +block-stone-xlarge rotate: false xy: 731, 666 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tau-mech-pad-large +block-surge-tower-large rotate: false - xy: 1069, 681 + xy: 955, 284 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tau-mech-pad-medium +block-surge-tower-medium rotate: false - xy: 1105, 283 + xy: 1235, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tau-mech-pad-small +block-surge-tower-small rotate: false - xy: 1933, 405 + xy: 1701, 573 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tau-mech-pad-tiny +block-surge-tower-tiny rotate: false - xy: 1797, 55 + xy: 1213, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tau-mech-pad-xlarge +block-surge-tower-xlarge rotate: false xy: 731, 616 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tendrils-large +block-surge-wall-large rotate: false - xy: 1111, 681 + xy: 981, 242 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tendrils-medium +block-surge-wall-large-large rotate: false - xy: 1139, 317 + xy: 981, 200 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-wall-large-medium + rotate: false + xy: 1269, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tendrils-small +block-surge-wall-large-small rotate: false - xy: 1959, 405 + xy: 1701, 547 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tendrils-tiny +block-surge-wall-large-tiny rotate: false - xy: 1815, 73 + xy: 1195, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tendrils-xlarge +block-surge-wall-large-xlarge rotate: false xy: 781, 628 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-generator-large +block-surge-wall-medium rotate: false - xy: 1153, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thermal-generator-medium - rotate: false - xy: 1173, 351 + xy: 1289, 666 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-generator-small +block-surge-wall-small rotate: false - xy: 1985, 405 + xy: 1709, 521 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-generator-tiny +block-surge-wall-tiny rotate: false - xy: 1833, 91 + xy: 1177, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-generator-xlarge +block-surge-wall-xlarge rotate: false xy: 831, 628 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-pump-large +block-swarmer-large rotate: false - xy: 1195, 681 + xy: 981, 158 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-pump-medium +block-swarmer-medium rotate: false - xy: 901, 45 + xy: 1289, 632 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-pump-small +block-swarmer-small rotate: false - xy: 2011, 405 + xy: 1829, 766 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-pump-tiny +block-swarmer-tiny rotate: false - xy: 1797, 37 + xy: 1159, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-pump-xlarge +block-swarmer-xlarge rotate: false xy: 781, 578 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-reactor-large +block-tainted-water-large rotate: false - xy: 1237, 681 + xy: 981, 116 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-reactor-medium +block-tainted-water-medium rotate: false - xy: 935, 79 + xy: 1289, 598 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-reactor-small +block-tainted-water-small rotate: false - xy: 1714, 155 + xy: 1855, 766 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-reactor-tiny +block-tainted-water-tiny rotate: false - xy: 1815, 55 + xy: 1141, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-reactor-xlarge +block-tainted-water-xlarge rotate: false xy: 831, 578 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-large +block-tar-large rotate: false - xy: 1279, 681 + xy: 981, 74 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-tar-medium rotate: false - xy: 1321, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thorium-wall-large-medium - rotate: false - xy: 969, 113 + xy: 1303, 564 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-tar-small rotate: false - xy: 1711, 129 + xy: 1881, 766 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-tar-tiny rotate: false - xy: 1833, 73 + xy: 1123, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-tar-xlarge rotate: false xy: 351, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium +block-tau-mech-pad-large rotate: false - xy: 1003, 147 + xy: 981, 32 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-tau-mech-pad-medium + rotate: false + xy: 1301, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-small +block-tau-mech-pad-small rotate: false - xy: 1711, 103 + xy: 1907, 766 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-tiny +block-tau-mech-pad-tiny rotate: false - xy: 1815, 37 + xy: 1105, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-xlarge +block-tau-mech-pad-xlarge rotate: false xy: 351, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thruster-large +block-tendrils-large rotate: false - xy: 1363, 681 + xy: 821, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium +block-tendrils-medium rotate: false - xy: 1037, 181 + xy: 1301, 797 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thruster-small +block-tendrils-small rotate: false - xy: 1737, 129 + xy: 1933, 766 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thruster-tiny +block-tendrils-tiny rotate: false - xy: 1833, 55 + xy: 1267, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thruster-xlarge +block-tendrils-xlarge rotate: false xy: 401, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titan-factory-large +block-thermal-generator-large rotate: false - xy: 1405, 681 + xy: 863, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titan-factory-medium +block-thermal-generator-medium rotate: false - xy: 1071, 215 + xy: 1335, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titan-factory-small +block-thermal-generator-small rotate: false - xy: 1737, 103 + xy: 1959, 766 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titan-factory-tiny +block-thermal-generator-tiny rotate: false - xy: 1833, 37 + xy: 1249, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titan-factory-xlarge +block-thermal-generator-xlarge rotate: false xy: 351, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-conveyor-large +block-thermal-pump-large rotate: false - xy: 1447, 681 + xy: 905, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-conveyor-medium +block-thermal-pump-medium rotate: false - xy: 1105, 249 + xy: 1301, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-thermal-pump-small rotate: false - xy: 1727, 77 + xy: 1985, 766 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-thermal-pump-tiny rotate: false - xy: 1781, 19 + xy: 1231, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-thermal-pump-xlarge rotate: false xy: 401, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-thorium-reactor-large rotate: false - xy: 1489, 681 + xy: 947, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-wall-large-large +block-thorium-reactor-medium rotate: false - xy: 1531, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-wall-large-medium - rotate: false - xy: 1139, 283 + xy: 1369, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-large-small +block-thorium-reactor-small rotate: false - xy: 1727, 51 + xy: 1345, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-large-tiny +block-thorium-reactor-tiny rotate: false - xy: 1781, 1 + xy: 1213, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-large-xlarge +block-thorium-reactor-xlarge rotate: false xy: 451, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-medium +block-thorium-wall-large rotate: false - xy: 1173, 317 + xy: 989, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-large + rotate: false + xy: 1031, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-wall-large-medium + rotate: false + xy: 1335, 797 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-small +block-thorium-wall-large-small rotate: false - xy: 1727, 25 + xy: 1371, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-tiny +block-thorium-wall-large-tiny rotate: false - xy: 1799, 19 + xy: 1195, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-xlarge +block-thorium-wall-large-xlarge rotate: false xy: 351, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-trident-ship-pad-large +block-thorium-wall-medium rotate: false - xy: 1573, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-trident-ship-pad-medium - rotate: false - xy: 935, 45 + xy: 1301, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-trident-ship-pad-small +block-thorium-wall-small rotate: false - xy: 1753, 77 + xy: 1397, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-trident-ship-pad-tiny +block-thorium-wall-tiny rotate: false - xy: 1799, 1 + xy: 1177, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-trident-ship-pad-xlarge +block-thorium-wall-xlarge rotate: false xy: 401, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-turbine-generator-large +block-thruster-large rotate: false - xy: 1615, 681 + xy: 1073, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-turbine-generator-medium +block-thruster-medium rotate: false - xy: 969, 79 + xy: 1403, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-turbine-generator-small +block-thruster-small rotate: false - xy: 1753, 51 + xy: 1423, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-turbine-generator-tiny +block-thruster-tiny rotate: false - xy: 1817, 19 + xy: 1159, 332 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-turbine-generator-xlarge +block-thruster-xlarge rotate: false xy: 451, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-unloader-large +block-titan-factory-large rotate: false - xy: 1657, 681 + xy: 1115, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-unloader-medium +block-titan-factory-medium rotate: false - xy: 1003, 113 + xy: 1369, 797 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-unloader-small +block-titan-factory-small rotate: false - xy: 1753, 25 + xy: 1449, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-unloader-tiny +block-titan-factory-tiny rotate: false - xy: 1817, 1 + xy: 1141, 314 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-unloader-xlarge +block-titan-factory-xlarge rotate: false xy: 501, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-vault-large +block-titanium-conveyor-large rotate: false - xy: 1699, 681 + xy: 1157, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-vault-medium +block-titanium-conveyor-medium rotate: false - xy: 1037, 147 + xy: 1335, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-titanium-conveyor-small rotate: false - xy: 1657, 395 + xy: 1475, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-titanium-conveyor-tiny rotate: false - xy: 1835, 19 + xy: 1123, 296 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-titanium-conveyor-xlarge rotate: false xy: 351, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large +block-titanium-wall-large rotate: false - xy: 1741, 681 + xy: 1199, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-water-extractor-medium +block-titanium-wall-large-large rotate: false - xy: 1071, 181 + xy: 1241, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-medium + rotate: false + xy: 1437, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-extractor-small +block-titanium-wall-large-small rotate: false - xy: 1657, 369 + xy: 1501, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-extractor-tiny +block-titanium-wall-large-tiny rotate: false - xy: 1835, 1 + xy: 1285, 440 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-extractor-xlarge +block-titanium-wall-large-xlarge rotate: false xy: 401, 416 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-large +block-titanium-wall-medium rotate: false - xy: 1783, 681 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-water-medium - rotate: false - xy: 1105, 215 + xy: 1403, 797 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-water-small +block-titanium-wall-small rotate: false - xy: 1683, 379 + xy: 1527, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-water-tiny +block-titanium-wall-tiny rotate: false - xy: 1876, 332 + xy: 1267, 422 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-water-xlarge +block-titanium-wall-xlarge rotate: false xy: 451, 466 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-wave-large +block-trident-ship-pad-large rotate: false - xy: 1825, 681 + xy: 1283, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wave-medium +block-trident-ship-pad-medium rotate: false - xy: 1139, 249 + xy: 1369, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-trident-ship-pad-small rotate: false - xy: 1709, 379 + xy: 1553, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-trident-ship-pad-tiny rotate: false - xy: 1894, 332 + xy: 1249, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-trident-ship-pad-xlarge rotate: false xy: 501, 516 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large +block-turbine-generator-large rotate: false - xy: 1867, 681 + xy: 1325, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-dead-medium +block-turbine-generator-medium rotate: false - xy: 1173, 283 + xy: 1335, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-dead-small +block-turbine-generator-small rotate: false - xy: 1735, 379 + xy: 1579, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-dead-tiny +block-turbine-generator-tiny rotate: false - xy: 1912, 332 + xy: 1231, 386 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-dead-xlarge +block-turbine-generator-xlarge rotate: false xy: 551, 566 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-large +block-unloader-large rotate: false - xy: 1909, 681 + xy: 1367, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-white-tree-medium +block-unloader-medium rotate: false - xy: 969, 45 + xy: 1471, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-white-tree-small +block-unloader-small rotate: false - xy: 1761, 379 + xy: 1605, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-white-tree-tiny +block-unloader-tiny rotate: false - xy: 1930, 333 + xy: 1213, 368 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-white-tree-xlarge +block-unloader-xlarge rotate: false xy: 351, 316 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-wraith-factory-large +block-vault-large rotate: false - xy: 1951, 681 + xy: 1409, 933 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wraith-factory-medium +block-vault-medium rotate: false - xy: 1003, 79 + xy: 1437, 797 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wraith-factory-small +block-vault-small rotate: false - xy: 1787, 379 + xy: 1631, 495 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wraith-factory-tiny +block-vault-tiny rotate: false - xy: 1948, 333 + xy: 1195, 350 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wraith-factory-xlarge +block-vault-xlarge rotate: false xy: 401, 366 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-water-extractor-large + rotate: false + xy: 1451, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-extractor-medium + rotate: false + xy: 1403, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-extractor-small + rotate: false + xy: 1657, 495 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-extractor-tiny + rotate: false + xy: 1177, 332 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-extractor-xlarge + rotate: false + xy: 451, 416 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-water-large + rotate: false + xy: 1493, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-medium + rotate: false + xy: 1369, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-small + rotate: false + xy: 1683, 495 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-tiny + rotate: false + xy: 1159, 314 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-xlarge + rotate: false + xy: 501, 466 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-wave-large + rotate: false + xy: 1535, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-wave-medium + rotate: false + xy: 1505, 831 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-wave-small + rotate: false + xy: 1709, 495 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-wave-tiny + rotate: false + xy: 1141, 296 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-wave-xlarge + rotate: false + xy: 551, 516 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-dead-large + rotate: false + xy: 1577, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-dead-medium + rotate: false + xy: 1471, 797 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-dead-small + rotate: false + xy: 1717, 712 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-dead-tiny + rotate: false + xy: 1303, 440 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-dead-xlarge + rotate: false + xy: 601, 566 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-large + rotate: false + xy: 1619, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-medium + rotate: false + xy: 1437, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-small + rotate: false + xy: 1735, 738 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-tiny + rotate: false + xy: 1285, 422 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-xlarge + rotate: false + xy: 351, 266 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-wraith-factory-large + rotate: false + xy: 1661, 933 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-wraith-factory-medium + rotate: false + xy: 1403, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-wraith-factory-small + rotate: false + xy: 1743, 712 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-wraith-factory-tiny + rotate: false + xy: 1267, 404 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-wraith-factory-xlarge + rotate: false + xy: 401, 316 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 button rotate: false - xy: 1071, 652 + xy: 1035, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16266,7 +16273,7 @@ button index: -1 button-disabled rotate: false - xy: 859, 686 + xy: 1703, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16274,7 +16281,7 @@ button-disabled index: -1 button-down rotate: false - xy: 1993, 694 + xy: 1741, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16282,7 +16289,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 897, 686 + xy: 1779, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16290,7 +16297,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 821, 946 + xy: 1817, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16298,7 +16305,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 881, 657 + xy: 1855, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16306,7 +16313,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 881, 628 + xy: 1893, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16314,7 +16321,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 881, 599 + xy: 1931, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16322,7 +16329,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 1993, 665 + xy: 1969, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16330,7 +16337,7 @@ button-over index: -1 button-red rotate: false - xy: 919, 652 + xy: 435, 9 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16338,7 +16345,7 @@ button-red index: -1 button-right rotate: false - xy: 957, 623 + xy: 845, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16346,7 +16353,7 @@ button-right index: -1 button-right-down rotate: false - xy: 919, 623 + xy: 473, 9 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16354,7 +16361,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 957, 652 + xy: 511, 9 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16362,7 +16369,7 @@ button-right-over index: -1 button-select rotate: false - xy: 1813, 379 + xy: 1717, 686 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -16370,7 +16377,7 @@ button-select index: -1 button-square rotate: false - xy: 1033, 652 + xy: 959, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16378,7 +16385,7 @@ button-square index: -1 button-square-down rotate: false - xy: 995, 652 + xy: 883, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16386,7 +16393,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 995, 623 + xy: 921, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16394,7 +16401,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 1033, 623 + xy: 997, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16402,42 +16409,42 @@ button-trans index: -1 check-disabled rotate: false - xy: 1037, 113 + xy: 1539, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1071, 147 + xy: 1505, 797 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1105, 181 + xy: 1471, 763 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1139, 215 + xy: 1437, 729 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 1173, 249 + xy: 1573, 831 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 1003, 45 + xy: 1539, 797 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -16451,7 +16458,7 @@ clear index: -1 cursor rotate: false - xy: 2001, 969 + xy: 963, 452 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -16465,3204 +16472,12 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 1071, 623 + xy: 1073, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 offset: 0, 0 index: -1 -icon-about - rotate: false - xy: 451, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-about-small - rotate: false - xy: 1037, 79 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-about-smaller - rotate: false - xy: 1411, 343 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-about-tiny - rotate: false - xy: 1966, 333 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-add - rotate: false - xy: 501, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-add-small - rotate: false - xy: 1071, 113 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-add-smaller - rotate: false - xy: 1445, 377 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-add-tiny - rotate: false - xy: 1984, 333 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-admin - rotate: false - xy: 551, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-admin-badge - rotate: false - xy: 601, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-admin-badge-small - rotate: false - xy: 1105, 147 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-admin-badge-smaller - rotate: false - xy: 1479, 411 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-admin-badge-tiny - rotate: false - xy: 2002, 333 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-admin-small - rotate: false - xy: 1139, 181 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-admin-smaller - rotate: false - xy: 1513, 445 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-admin-tiny - rotate: false - xy: 2020, 333 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-arrow - rotate: false - xy: 351, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-arrow-16 - rotate: false - xy: 351, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-arrow-16-small - rotate: false - xy: 1173, 215 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-arrow-small - rotate: false - xy: 1173, 215 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-arrow-16-smaller - rotate: false - xy: 1547, 479 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-arrow-smaller - rotate: false - xy: 1547, 479 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-arrow-16-tiny - rotate: false - xy: 1881, 314 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-arrow-tiny - rotate: false - xy: 1881, 314 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-arrow-down - rotate: false - xy: 401, 316 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-arrow-down-small - rotate: false - xy: 1037, 45 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-arrow-down-smaller - rotate: false - xy: 1581, 513 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-arrow-down-tiny - rotate: false - xy: 1881, 296 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-arrow-left - rotate: false - xy: 451, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-arrow-left-small - rotate: false - xy: 1071, 79 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-arrow-left-smaller - rotate: false - xy: 1615, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-arrow-left-tiny - rotate: false - xy: 1899, 314 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-arrow-right - rotate: false - xy: 501, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-arrow-right-small - rotate: false - xy: 1105, 113 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-arrow-right-smaller - rotate: false - xy: 1207, 105 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-arrow-right-tiny - rotate: false - xy: 1881, 278 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-arrow-up - rotate: false - xy: 551, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-arrow-up-small - rotate: false - xy: 1139, 147 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-arrow-up-smaller - rotate: false - xy: 1241, 139 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-arrow-up-tiny - rotate: false - xy: 1899, 296 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-back - rotate: false - xy: 601, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-back-small - rotate: false - xy: 1173, 181 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-back-smaller - rotate: false - xy: 1275, 173 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-back-tiny - rotate: false - xy: 1899, 278 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-ban - rotate: false - xy: 651, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-ban-small - rotate: false - xy: 1071, 45 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-ban-smaller - rotate: false - xy: 1309, 207 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-ban-tiny - rotate: false - xy: 1917, 314 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-break - rotate: false - xy: 351, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-break-small - rotate: false - xy: 1105, 79 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-break-smaller - rotate: false - xy: 1343, 241 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-break-tiny - rotate: false - xy: 1917, 296 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-cancel - rotate: false - xy: 401, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-cancel-small - rotate: false - xy: 1139, 113 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-cancel-smaller - rotate: false - xy: 1377, 275 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-cancel-tiny - rotate: false - xy: 1917, 278 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-quit-tiny - rotate: false - xy: 1917, 278 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-changelog - rotate: false - xy: 451, 316 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-changelog-small - rotate: false - xy: 1173, 147 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-changelog-smaller - rotate: false - xy: 1411, 311 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-changelog-tiny - rotate: false - xy: 1935, 315 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-chat - rotate: false - xy: 501, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-chat-small - rotate: false - xy: 1105, 45 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-chat-smaller - rotate: false - xy: 1647, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-chat-tiny - rotate: false - xy: 1935, 297 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-check - rotate: false - xy: 551, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-check-small - rotate: false - xy: 1139, 79 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-check-smaller - rotate: false - xy: 1207, 73 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-check-tiny - rotate: false - xy: 1953, 315 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-command-attack - rotate: false - xy: 601, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-command-attack-small - rotate: false - xy: 1173, 113 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-command-attack-smaller - rotate: false - xy: 1679, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-command-attack-tiny - rotate: false - xy: 1935, 279 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-command-patrol - rotate: false - xy: 651, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-command-patrol-small - rotate: false - xy: 1139, 45 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-command-patrol-smaller - rotate: false - xy: 1207, 41 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-command-patrol-tiny - rotate: false - xy: 1953, 297 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-command-rally - rotate: false - xy: 701, 566 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-command-rally-small - rotate: false - xy: 1173, 79 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-command-rally-smaller - rotate: false - xy: 1711, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-command-rally-tiny - rotate: false - xy: 1971, 315 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-command-retreat - rotate: false - xy: 351, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-command-retreat-small - rotate: false - xy: 1173, 45 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-command-retreat-smaller - rotate: false - xy: 1743, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-command-retreat-tiny - rotate: false - xy: 1953, 279 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-copy - rotate: false - xy: 401, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-copy-small - rotate: false - xy: 901, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-copy-smaller - rotate: false - xy: 1775, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-copy-tiny - rotate: false - xy: 1971, 297 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-crafting - rotate: false - xy: 451, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-crafting-small - rotate: false - xy: 935, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-crafting-smaller - rotate: false - xy: 1807, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-crafting-tiny - rotate: false - xy: 1989, 315 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-cursor - rotate: false - xy: 501, 316 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-cursor-small - rotate: false - xy: 969, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-cursor-smaller - rotate: false - xy: 1839, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-cursor-tiny - rotate: false - xy: 1971, 279 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-database - rotate: false - xy: 551, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-database-small - rotate: false - xy: 1003, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-database-smaller - rotate: false - xy: 1871, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-database-tiny - rotate: false - xy: 1989, 297 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-defense - rotate: false - xy: 601, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-defense-small - rotate: false - xy: 1037, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-defense-smaller - rotate: false - xy: 1903, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-defense-tiny - rotate: false - xy: 2007, 315 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-dev-builds - rotate: false - xy: 651, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-dev-builds-small - rotate: false - xy: 1071, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-dev-builds-smaller - rotate: false - xy: 1935, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-dev-builds-tiny - rotate: false - xy: 1989, 279 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-diagonal - rotate: false - xy: 701, 516 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-diagonal-small - rotate: false - xy: 1105, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-diagonal-smaller - rotate: false - xy: 1207, 9 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-diagonal-tiny - rotate: false - xy: 2007, 297 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-discord - rotate: false - xy: 351, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-discord-small - rotate: false - xy: 1139, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-discord-smaller - rotate: false - xy: 1967, 547 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-discord-tiny - rotate: false - xy: 2007, 279 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-distribution - rotate: false - xy: 401, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-distribution-small - rotate: false - xy: 1173, 11 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-distribution-smaller - rotate: false - xy: 1411, 279 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-distribution-tiny - rotate: false - xy: 2025, 315 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-donate - rotate: false - xy: 451, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-donate-small - rotate: false - xy: 1207, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-donate-smaller - rotate: false - xy: 1443, 343 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-donate-tiny - rotate: false - xy: 2025, 297 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-dots - rotate: false - xy: 501, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-dots-small - rotate: false - xy: 1207, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-dots-smaller - rotate: false - xy: 1443, 311 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-dots-tiny - rotate: false - xy: 2025, 279 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-editor - rotate: false - xy: 551, 316 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-editor-small - rotate: false - xy: 1241, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-editor-smaller - rotate: false - xy: 1443, 279 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-editor-tiny - rotate: false - xy: 1881, 260 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-effect - rotate: false - xy: 601, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-effect-small - rotate: false - xy: 1207, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-effect-smaller - rotate: false - xy: 1477, 377 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-effect-tiny - rotate: false - xy: 1899, 260 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-elevation - rotate: false - xy: 651, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-elevation-small - rotate: false - xy: 1241, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-elevation-smaller - rotate: false - xy: 1475, 345 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-elevation-tiny - rotate: false - xy: 1917, 260 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-eraser - rotate: false - xy: 701, 466 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-eraser-small - rotate: false - xy: 1275, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-eraser-smaller - rotate: false - xy: 1475, 313 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-eraser-tiny - rotate: false - xy: 1935, 261 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-exit - rotate: false - xy: 351, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-exit-small - rotate: false - xy: 1207, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-exit-smaller - rotate: false - xy: 1475, 281 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-exit-tiny - rotate: false - xy: 1953, 261 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-f-droid - rotate: false - xy: 401, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-f-droid-small - rotate: false - xy: 1241, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-f-droid-smaller - rotate: false - xy: 1511, 411 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-f-droid-tiny - rotate: false - xy: 1971, 261 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-fdroid - rotate: false - xy: 451, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-fdroid-small - rotate: false - xy: 1275, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-fdroid-smaller - rotate: false - xy: 1509, 379 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-fdroid-tiny - rotate: false - xy: 1989, 261 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-feathub - rotate: false - xy: 501, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-feathub-small - rotate: false - xy: 1309, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-feathub-smaller - rotate: false - xy: 1545, 445 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-feathub-tiny - rotate: false - xy: 2007, 261 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-file - rotate: false - xy: 551, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-file-image - rotate: false - xy: 601, 316 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-file-image-small - rotate: false - xy: 1207, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-file-image-smaller - rotate: false - xy: 1543, 413 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-file-image-tiny - rotate: false - xy: 2025, 261 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-file-small - rotate: false - xy: 1241, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-file-smaller - rotate: false - xy: 1579, 479 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-file-text - rotate: false - xy: 651, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-file-text-small - rotate: false - xy: 1275, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-file-text-smaller - rotate: false - xy: 1577, 447 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-file-text-tiny - rotate: false - xy: 1842, 253 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-file-tiny - rotate: false - xy: 1842, 235 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-fill - rotate: false - xy: 701, 416 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-fill-small - rotate: false - xy: 1309, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-fill-smaller - rotate: false - xy: 1613, 513 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-fill-tiny - rotate: false - xy: 1842, 217 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-flip - rotate: false - xy: 401, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-flip-small - rotate: false - xy: 1343, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-flip-smaller - rotate: false - xy: 1611, 481 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-flip-tiny - rotate: false - xy: 1842, 199 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-floppy - rotate: false - xy: 451, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-floppy-16 - rotate: false - xy: 501, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-floppy-16-small - rotate: false - xy: 1207, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-floppy-16-smaller - rotate: false - xy: 1645, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-floppy-16-tiny - rotate: false - xy: 1842, 181 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-floppy-small - rotate: false - xy: 1241, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-floppy-smaller - rotate: false - xy: 1677, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-floppy-tiny - rotate: false - xy: 1848, 163 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-folder - rotate: false - xy: 551, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-folder-parent - rotate: false - xy: 601, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-folder-parent-small - rotate: false - xy: 1275, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-folder-parent-smaller - rotate: false - xy: 1709, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-folder-parent-tiny - rotate: false - xy: 1860, 255 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-folder-small - rotate: false - xy: 1309, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-folder-smaller - rotate: false - xy: 1741, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-folder-tiny - rotate: false - xy: 1860, 237 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-github - rotate: false - xy: 651, 316 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-github-small - rotate: false - xy: 1343, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-github-smaller - rotate: false - xy: 1773, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-github-tiny - rotate: false - xy: 1860, 219 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-google-play - rotate: false - xy: 701, 366 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-google-play-small - rotate: false - xy: 1377, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-google-play-smaller - rotate: false - xy: 1805, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-google-play-tiny - rotate: false - xy: 1860, 201 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-grid - rotate: false - xy: 451, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-grid-small - rotate: false - xy: 1207, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-grid-smaller - rotate: false - xy: 1837, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-grid-tiny - rotate: false - xy: 1860, 183 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-home - rotate: false - xy: 501, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-home-small - rotate: false - xy: 1241, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-home-smaller - rotate: false - xy: 1869, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-home-tiny - rotate: false - xy: 1878, 242 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-host - rotate: false - xy: 551, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-host-small - rotate: false - xy: 1275, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-host-smaller - rotate: false - xy: 1901, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-host-tiny - rotate: false - xy: 1878, 224 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-info - rotate: false - xy: 601, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-info-small - rotate: false - xy: 1309, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-info-smaller - rotate: false - xy: 1933, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-info-tiny - rotate: false - xy: 1896, 242 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-itch.io - rotate: false - xy: 651, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-itch.io-small - rotate: false - xy: 1343, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-itch.io-smaller - rotate: false - xy: 1965, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-itch.io-tiny - rotate: false - xy: 1878, 206 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-item - rotate: false - xy: 701, 316 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-item-small - rotate: false - xy: 1377, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-item-smaller - rotate: false - xy: 1239, 105 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-item-tiny - rotate: false - xy: 1896, 224 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-line - rotate: false - xy: 501, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-line-small - rotate: false - xy: 1411, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-line-smaller - rotate: false - xy: 1239, 73 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-line-tiny - rotate: false - xy: 1914, 242 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-link - rotate: false - xy: 551, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-link-small - rotate: false - xy: 1207, 307 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-link-smaller - rotate: false - xy: 1239, 41 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-link-tiny - rotate: false - xy: 1878, 188 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-liquid - rotate: false - xy: 601, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-liquid-consume - rotate: false - xy: 651, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-liquid-consume-small - rotate: false - xy: 1241, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-liquid-consume-smaller - rotate: false - xy: 1239, 9 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-liquid-consume-tiny - rotate: false - xy: 1896, 206 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-liquid-small - rotate: false - xy: 1275, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-liquid-smaller - rotate: false - xy: 1273, 139 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-liquid-tiny - rotate: false - xy: 1914, 224 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-load - rotate: false - xy: 701, 266 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-load-image - rotate: false - xy: 551, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-load-image-small - rotate: false - xy: 1309, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-load-image-smaller - rotate: false - xy: 1271, 107 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-load-image-tiny - rotate: false - xy: 1896, 188 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-load-map - rotate: false - xy: 601, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-load-map-small - rotate: false - xy: 1343, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-load-map-smaller - rotate: false - xy: 1271, 75 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-load-map-tiny - rotate: false - xy: 1914, 206 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-load-small - rotate: false - xy: 1377, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-load-smaller - rotate: false - xy: 1271, 43 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-load-tiny - rotate: false - xy: 1914, 188 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-loading - rotate: false - xy: 651, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-loading-small - rotate: false - xy: 1411, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-loading-smaller - rotate: false - xy: 1271, 11 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-loading-tiny - rotate: false - xy: 1853, 145 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-locked - rotate: false - xy: 701, 216 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-locked-small - rotate: false - xy: 1445, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-locked-smaller - rotate: false - xy: 1307, 173 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-locked-tiny - rotate: false - xy: 1853, 127 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-map - rotate: false - xy: 601, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-map-small - rotate: false - xy: 1207, 273 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-map-smaller - rotate: false - xy: 1305, 141 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-map-tiny - rotate: false - xy: 1853, 109 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-menu - rotate: false - xy: 651, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-menu-large - rotate: false - xy: 701, 166 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-menu-large-small - rotate: false - xy: 1241, 307 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-menu-large-smaller - rotate: false - xy: 1341, 207 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-menu-large-tiny - rotate: false - xy: 1851, 91 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-menu-small - rotate: false - xy: 1275, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-menu-smaller - rotate: false - xy: 1339, 175 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-menu-tiny - rotate: false - xy: 1851, 73 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-missing - rotate: false - xy: 651, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-missing-small - rotate: false - xy: 1309, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-missing-smaller - rotate: false - xy: 1375, 241 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-missing-tiny - rotate: false - xy: 1851, 55 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-mode-attack - rotate: false - xy: 701, 116 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-mode-attack-small - rotate: false - xy: 1343, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-mode-attack-smaller - rotate: false - xy: 1373, 209 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-mode-attack-tiny - rotate: false - xy: 1851, 37 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-mode-pvp - rotate: false - xy: 701, 66 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-mode-pvp-small - rotate: false - xy: 1377, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-mode-pvp-smaller - rotate: false - xy: 1409, 247 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-mode-pvp-tiny - rotate: false - xy: 1853, 19 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-mode-survival - rotate: false - xy: 351, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-mode-survival-small - rotate: false - xy: 1411, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-mode-survival-smaller - rotate: false - xy: 1441, 247 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-mode-survival-tiny - rotate: false - xy: 1853, 1 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-none - rotate: false - xy: 401, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-none-small - rotate: false - xy: 1445, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-none-smaller - rotate: false - xy: 1407, 215 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-none-tiny - rotate: false - xy: 1866, 165 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-paste - rotate: false - xy: 451, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-paste-small - rotate: false - xy: 1479, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-paste-smaller - rotate: false - xy: 1439, 215 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-paste-tiny - rotate: false - xy: 1884, 170 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-pause - rotate: false - xy: 501, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-pause-small - rotate: false - xy: 1207, 239 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-pause-smaller - rotate: false - xy: 1405, 183 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-pause-tiny - rotate: false - xy: 1902, 170 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-pencil - rotate: false - xy: 551, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-pencil-small - rotate: false - xy: 1241, 273 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-pencil-smaller - rotate: false - xy: 1437, 183 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-pencil-tiny - rotate: false - xy: 1920, 170 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-pick - rotate: false - xy: 601, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-pick-small - rotate: false - xy: 1275, 307 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-pick-smaller - rotate: false - xy: 1373, 177 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-pick-tiny - rotate: false - xy: 1871, 147 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-play - rotate: false - xy: 651, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-play-2 - rotate: false - xy: 701, 16 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-play-2-small - rotate: false - xy: 1309, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-play-2-smaller - rotate: false - xy: 1405, 151 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-play-2-tiny - rotate: false - xy: 1871, 129 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-play-tiny - rotate: false - xy: 1871, 129 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-play-custom - rotate: false - xy: 751, 528 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-play-custom-small - rotate: false - xy: 1343, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-play-custom-smaller - rotate: false - xy: 1437, 151 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-play-custom-tiny - rotate: false - xy: 1871, 111 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-play-small - rotate: false - xy: 1377, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-play-smaller - rotate: false - xy: 1507, 345 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-players - rotate: false - xy: 751, 478 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-players-small - rotate: false - xy: 1411, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-players-smaller - rotate: false - xy: 1507, 313 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-players-tiny - rotate: false - xy: 1889, 152 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-power - rotate: false - xy: 801, 528 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-power-small - rotate: false - xy: 1445, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-power-smaller - rotate: false - xy: 1507, 281 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-power-tiny - rotate: false - xy: 1889, 134 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-production - rotate: false - xy: 751, 428 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-production-small - rotate: false - xy: 1479, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-production-smaller - rotate: false - xy: 1475, 249 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-production-tiny - rotate: false - xy: 1907, 152 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-quit - rotate: false - xy: 801, 478 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-quit-small - rotate: false - xy: 1513, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-quit-smaller - rotate: false - xy: 1507, 249 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-reddit - rotate: false - xy: 751, 378 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-reddit-small - rotate: false - xy: 1207, 205 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-reddit-smaller - rotate: false - xy: 1541, 379 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-reddit-tiny - rotate: false - xy: 1889, 116 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-redo - rotate: false - xy: 801, 428 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-redo-small - rotate: false - xy: 1241, 239 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-redo-smaller - rotate: false - xy: 1539, 347 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-redo-tiny - rotate: false - xy: 1907, 134 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-refresh - rotate: false - xy: 751, 328 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-refresh-small - rotate: false - xy: 1275, 273 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-refresh-smaller - rotate: false - xy: 1539, 315 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-refresh-tiny - rotate: false - xy: 1907, 116 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-rename - rotate: false - xy: 801, 378 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-rename-small - rotate: false - xy: 1309, 307 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-rename-smaller - rotate: false - xy: 1539, 283 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-rename-tiny - rotate: false - xy: 1925, 152 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-resize - rotate: false - xy: 751, 278 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-resize-small - rotate: false - xy: 1343, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-resize-smaller - rotate: false - xy: 1539, 251 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-resize-tiny - rotate: false - xy: 1925, 134 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-rotate - rotate: false - xy: 801, 328 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-rotate-arrow - rotate: false - xy: 751, 228 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-rotate-arrow-small - rotate: false - xy: 1377, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-rotate-arrow-smaller - rotate: false - xy: 1575, 413 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-rotate-arrow-tiny - rotate: false - xy: 1925, 116 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-rotate-left - rotate: false - xy: 801, 278 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-rotate-left-small - rotate: false - xy: 1411, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-rotate-left-smaller - rotate: false - xy: 1573, 381 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-rotate-left-tiny - rotate: false - xy: 1889, 98 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-rotate-right - rotate: false - xy: 751, 178 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-rotate-right-small - rotate: false - xy: 1445, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-rotate-right-smaller - rotate: false - xy: 1609, 447 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-rotate-right-tiny - rotate: false - xy: 1907, 98 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-rotate-small - rotate: false - xy: 1479, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-rotate-smaller - rotate: false - xy: 1607, 415 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-rotate-tiny - rotate: false - xy: 1925, 98 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-save - rotate: false - xy: 801, 228 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-save-image - rotate: false - xy: 751, 128 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-save-image-small - rotate: false - xy: 1513, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-save-image-smaller - rotate: false - xy: 1643, 481 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-save-image-tiny - rotate: false - xy: 1871, 93 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-save-map - rotate: false - xy: 801, 178 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-save-map-small - rotate: false - xy: 1547, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-save-map-smaller - rotate: false - xy: 1641, 449 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-save-map-tiny - rotate: false - xy: 1869, 75 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-save-small - rotate: false - xy: 1207, 171 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-save-smaller - rotate: false - xy: 1675, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-save-tiny - rotate: false - xy: 1869, 57 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-settings - rotate: false - xy: 751, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-settings-small - rotate: false - xy: 1241, 205 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-settings-smaller - rotate: false - xy: 1707, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-settings-tiny - rotate: false - xy: 1869, 39 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-spray - rotate: false - xy: 801, 128 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-spray-small - rotate: false - xy: 1275, 239 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-spray-smaller - rotate: false - xy: 1739, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-spray-tiny - rotate: false - xy: 1871, 21 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-terrain - rotate: false - xy: 751, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-terrain-small - rotate: false - xy: 1309, 273 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-terrain-smaller - rotate: false - xy: 1771, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-terrain-tiny - rotate: false - xy: 1871, 3 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-tools - rotate: false - xy: 801, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-tools-small - rotate: false - xy: 1343, 307 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-tools-smaller - rotate: false - xy: 1803, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-tools-tiny - rotate: false - xy: 1889, 80 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-trash - rotate: false - xy: 801, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-trash-16 - rotate: false - xy: 851, 528 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-trash-16-small - rotate: false - xy: 1377, 341 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-trash-16-smaller - rotate: false - xy: 1835, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-trash-16-tiny - rotate: false - xy: 1907, 80 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-trash-small - rotate: false - xy: 1411, 375 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-trash-smaller - rotate: false - xy: 1867, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-trash-tiny - rotate: false - xy: 1925, 80 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-tree - rotate: false - xy: 851, 478 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-tree-small - rotate: false - xy: 1445, 409 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-tree-smaller - rotate: false - xy: 1899, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-tree-tiny - rotate: false - xy: 1887, 62 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-trello - rotate: false - xy: 851, 428 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-trello-small - rotate: false - xy: 1479, 443 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-trello-smaller - rotate: false - xy: 1931, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-trello-tiny - rotate: false - xy: 1905, 62 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-turret - rotate: false - xy: 851, 378 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-turret-small - rotate: false - xy: 1513, 477 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-turret-smaller - rotate: false - xy: 1963, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-turret-tiny - rotate: false - xy: 1887, 44 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-tutorial - rotate: false - xy: 851, 328 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-tutorial-small - rotate: false - xy: 1547, 511 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-tutorial-smaller - rotate: false - xy: 1997, 515 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-tutorial-tiny - rotate: false - xy: 1923, 62 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-undo - rotate: false - xy: 851, 278 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-undo-small - rotate: false - xy: 1581, 545 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-undo-smaller - rotate: false - xy: 1995, 483 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-undo-tiny - rotate: false - xy: 1905, 44 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-units - rotate: false - xy: 851, 228 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-units-small - rotate: false - xy: 1207, 137 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-units-smaller - rotate: false - xy: 1303, 107 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-units-tiny - rotate: false - xy: 1923, 44 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-unlocks - rotate: false - xy: 851, 178 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-unlocks-small - rotate: false - xy: 1241, 171 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-unlocks-smaller - rotate: false - xy: 1303, 75 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-unlocks-tiny - rotate: false - xy: 1889, 26 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-upgrade - rotate: false - xy: 851, 128 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-upgrade-small - rotate: false - xy: 1275, 205 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-upgrade-smaller - rotate: false - xy: 1303, 43 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-upgrade-tiny - rotate: false - xy: 1889, 8 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-wiki - rotate: false - xy: 851, 78 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-wiki-small - rotate: false - xy: 1309, 239 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-wiki-smaller - rotate: false - xy: 1303, 11 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-wiki-tiny - rotate: false - xy: 1907, 26 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-workshop - rotate: false - xy: 851, 28 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-workshop-small - rotate: false - xy: 1343, 273 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-workshop-smaller - rotate: false - xy: 1471, 215 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-workshop-tiny - rotate: false - xy: 1907, 8 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -icon-zoom - rotate: false - xy: 859, 925 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -icon-zoom-small - rotate: false - xy: 1377, 307 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -icon-zoom-smaller - rotate: false - xy: 1469, 183 - size: 30, 30 - orig: 30, 30 - offset: 0, 0 - index: -1 -icon-zoom-tiny - rotate: false - xy: 1925, 26 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 info-banner rotate: false xy: 259, 869 @@ -19672,12 +16487,152 @@ info-banner index: -1 inventory rotate: false - xy: 1839, 363 + xy: 1713, 644 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 offset: 0, 0 index: -1 +item-blast-compound-icon + rotate: false + xy: 1505, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-coal-icon + rotate: false + xy: 1471, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-copper-icon + rotate: false + xy: 1607, 831 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-graphite-icon + rotate: false + xy: 1573, 797 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-lead-icon + rotate: false + xy: 1539, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-metaglass-icon + rotate: false + xy: 1505, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-phase-fabric-icon + rotate: false + xy: 1641, 831 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-plastanium-icon + rotate: false + xy: 1607, 797 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-pyratite-icon + rotate: false + xy: 1573, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-sand-icon + rotate: false + xy: 1539, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-scrap-icon + rotate: false + xy: 1675, 831 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-silicon-icon + rotate: false + xy: 1641, 797 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-spore-pod-icon + rotate: false + xy: 1607, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-surge-alloy-icon + rotate: false + xy: 1573, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-thorium-icon + rotate: false + xy: 1675, 797 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +item-titanium-icon + rotate: false + xy: 1641, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-cryofluid-icon + rotate: false + xy: 1607, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-oil-icon + rotate: false + xy: 1675, 763 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-slag-icon + rotate: false + xy: 1641, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +liquid-water-icon + rotate: false + xy: 1675, 729 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 logo rotate: false xy: 1, 916 @@ -19694,7 +16649,7 @@ nomap index: -1 pane rotate: false - xy: 1109, 623 + xy: 1149, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19702,7 +16657,7 @@ pane index: -1 pane-2 rotate: false - xy: 1109, 652 + xy: 1111, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19710,7 +16665,7 @@ pane-2 index: -1 scroll rotate: false - xy: 1891, 368 + xy: 1743, 675 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -19718,7 +16673,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 43, 2 + xy: 845, 878 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -19733,14 +16688,14 @@ scroll-knob-horizontal-black index: -1 scroll-knob-vertical-black rotate: false - xy: 1865, 363 + xy: 1713, 602 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 2035, 855 + xy: 1757, 633 size: 12, 40 orig: 12, 40 offset: 0, 0 @@ -19754,28 +16709,28 @@ selection index: -1 slider rotate: false - xy: 1529, 159 + xy: 259, 659 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 1503, 209 + xy: 1709, 804 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 1469, 143 + xy: 1709, 764 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 1501, 169 + xy: 1740, 804 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -19789,7 +16744,7 @@ slider-vertical index: -1 underline rotate: false - xy: 1185, 623 + xy: 1301, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19797,7 +16752,7 @@ underline index: -1 underline-2 rotate: false - xy: 1147, 652 + xy: 1187, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19805,7 +16760,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 1147, 623 + xy: 1225, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19813,7 +16768,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 1185, 652 + xy: 1263, 904 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19821,14 +16776,14 @@ underline-red index: -1 whiteui rotate: false - xy: 1876, 327 + xy: 821, 928 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 1571, 316 + xy: 1800, 781 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 fb27149b8f..88910afa0a 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites3.png b/core/assets/sprites/sprites3.png index 7cd10c87d2..80dc51ef77 100644 Binary files a/core/assets/sprites/sprites3.png and b/core/assets/sprites/sprites3.png differ diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index 82e66a4467..019fdde69f 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 1925f51d0f..d1819b3a8f 100644 --- a/core/src/mindustry/ClientLauncher.java +++ b/core/src/mindustry/ClientLauncher.java @@ -18,6 +18,7 @@ import mindustry.graphics.*; import mindustry.maps.*; import mindustry.mod.*; import mindustry.net.Net; +import mindustry.ui.*; import static arc.Core.*; import static mindustry.Vars.*; @@ -55,14 +56,15 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform Vars.net = new Net(platform.getNet()); mods = new Mods(); - UI.loadSystemCursors(); + Fonts.loadSystemCursors(); assets.load(new Vars()); - UI.loadDefaultFont(); + Fonts.loadDefaultFont(); assets.load(new AssetDescriptor<>("sprites/sprites.atlas", TextureAtlas.class)).loaded = t -> { atlas = (TextureAtlas)t; + Fonts.mergeFontAtlas(atlas); }; assets.loadRun("maps", Map.class, () -> maps.loadPreviews()); diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 54864436c1..619c90e157 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -89,7 +89,7 @@ public class Vars implements Loadable{ public static final Color[] playerColors = { Color.valueOf("82759a"), Color.valueOf("c0c1c5"), - Color.valueOf("fff0e7"), + Color.valueOf("ffffff"), Color.valueOf("7d2953"), Color.valueOf("ff074e"), Color.valueOf("ff072a"), diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index 7a100b7778..ff17679630 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -207,6 +207,7 @@ public class BlockIndexer{ public TileEntity findTile(Team team, float x, float y, float range, Boolf pred, boolean usePriority){ TileEntity closest = null; float dst = 0; + float range2 = range*range; for(int rx = Math.max((int)((x - range) / tilesize / quadrantSize), 0); rx <= (int)((x + range) / tilesize / quadrantSize) && rx < quadWidth(); rx++){ for(int ry = Math.max((int)((y - range) / tilesize / quadrantSize), 0); ry <= (int)((y + range) / tilesize / quadrantSize) && ry < quadHeight(); ry++){ @@ -224,8 +225,12 @@ public class BlockIndexer{ TileEntity e = other.entity; - float ndst = Mathf.dst(x, y, e.x, e.y); - if(ndst < range && (closest == null || ndst < dst || (usePriority && closest.block.priority.ordinal() <= e.block.priority.ordinal()))){ + float ndst = Mathf.dst2(x, y, e.x, e.y); + if(ndst < range2 && (closest == null || + //this one is closer, and it is at least of equal priority + (ndst < dst && (!usePriority || closest.block.priority.ordinal() <= e.block.priority.ordinal())) || + //priority is used, and new block has higher priority regardless of range + (usePriority && closest.block.priority.ordinal() < e.block.priority.ordinal()))){ dst = ndst; closest = e; } diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 33d0eea48c..41103d219e 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -635,10 +635,6 @@ public class Blocks implements ContentList{ ); hasPower = true; craftTime = 35f; - spinnerLength = 1.5f; - spinnerRadius = 3.5f; - spinnerThickness = 1.5f; - spinnerSpeed = 3f; size = 2; consumes.power(1f); diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index cd9150c45d..89d2a600f8 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -171,6 +171,11 @@ public class NetClient implements ApplicationListener{ return; } + //special case; graphical server needs to see its message + if(!headless && player == Vars.player){ + Vars.ui.chatfrag.addMessage(message, colorizeName(player.id, player.name)); + } + //server console logging Log.info("&y{0}: &lb{1}", player.name, message); @@ -272,7 +277,6 @@ public class NetClient implements ApplicationListener{ netClient.removed.clear(); logic.reset(); - ui.chatfrag.clearMessages(); net.setClientLoaded(false); ui.loadfrag.show("$connecting.data"); diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index 9fead5492b..844447e7b8 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -230,7 +230,11 @@ public class NetServer implements ApplicationListener{ net.handleServer(InvokePacket.class, (con, packet) -> { if(con.player == null) return; - RemoteReadServer.readPacket(packet.writeBuffer, packet.type, con.player); + try{ + RemoteReadServer.readPacket(packet.writeBuffer, packet.type, con.player); + }catch(ValidateException e){ + Log.debug("Validation failed for '{0}': {1}", e.player, e.getMessage()); + } }); registerCommands(); @@ -504,6 +508,7 @@ public class NetServer implements ApplicationListener{ player.isShooting = shooting; player.isBuilding = building; player.buildQueue().clear(); + for(BuildRequest req : requests){ if(req == null) continue; Tile tile = world.tile(req.x, req.y); @@ -513,10 +518,23 @@ public class NetServer implements ApplicationListener{ continue; }else if(!req.breaking && tile.block() == req.block && (!req.block.rotate || tile.rotation() == req.rotation)){ continue; + }else if(connection.rejectedRequests.contains(r -> r.breaking == req.breaking && r.x == req.x && r.y == req.y)){ //check if request was recently rejected, and skip it if so + continue; + }else if(!netServer.admins.allowAction(player, req.breaking ? ActionType.breakBlock : ActionType.placeBlock, tile, action -> { //make sure request is allowed by the server + action.block = req.block; + action.rotation = req.rotation; + action.config = req.config; + })){ + //force the player to remove this request if that's not the case + Call.removeQueueBlock(player.con, req.x, req.y, req.breaking); + connection.rejectedRequests.add(req); + continue; } player.buildQueue().addLast(req); } + connection.rejectedRequests.clear(); + vector.set(x - player.getInterpolator().target.x, y - player.getInterpolator().target.y); vector.limit(maxMove); diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index e25c9482b8..1bd6d31e2a 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -2,29 +2,22 @@ package mindustry.core; import arc.*; import arc.Graphics.*; -import arc.Graphics.Cursor.*; import arc.Input.*; import arc.assets.*; -import arc.assets.loaders.*; -import arc.assets.loaders.resolvers.*; -import arc.struct.*; -import arc.files.*; -import arc.freetype.*; -import arc.freetype.FreeTypeFontGenerator.*; -import arc.freetype.FreetypeFontLoader.*; import arc.func.*; import arc.graphics.*; -import arc.graphics.Texture.*; import arc.graphics.g2d.*; import arc.input.*; import arc.math.*; import arc.scene.*; import arc.scene.actions.*; import arc.scene.event.*; +import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.TextField.*; import arc.scene.ui.Tooltip.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; import mindustry.core.GameState.*; import mindustry.editor.*; @@ -39,6 +32,8 @@ import static arc.scene.actions.Actions.*; import static mindustry.Vars.*; public class UI implements ApplicationListener, Loadable{ + public static PixmapPacker packer; + public MenuFragment menufrag; public HudFragment hudfrag; public ChatFragment chatfrag; @@ -77,7 +72,7 @@ public class UI implements ApplicationListener, Loadable{ public Cursor drillCursor, unloadCursor; public UI(){ - setupFonts(); + Fonts.loadFonts(); } @Override @@ -99,6 +94,7 @@ public class UI implements ApplicationListener, Loadable{ Icon.load(); Styles.load(); Tex.loadStyles(); + Fonts.loadContentIcons(); Dialog.setShowAction(() -> sequence(alpha(0f), fadeIn(0.1f))); Dialog.setHideAction(() -> sequence(fadeOut(0.1f))); @@ -116,7 +112,9 @@ public class UI implements ApplicationListener, Loadable{ Colors.put("unlaunched", Color.valueOf("8982ed")); Colors.put("highlight", Pal.accent.cpy().lerp(Color.white, 0.3f)); Colors.put("stat", Pal.stat); - loadExtraCursors(); + + drillCursor = Core.graphics.newCursor("drill"); + unloadCursor = Core.graphics.newCursor("unload"); } @Override @@ -124,64 +122,6 @@ public class UI implements ApplicationListener, Loadable{ return Array.with(new AssetDescriptor<>(Control.class), new AssetDescriptor<>("outline", BitmapFont.class), new AssetDescriptor<>("default", BitmapFont.class), new AssetDescriptor<>("chat", BitmapFont.class)); } - /** Called from a static context to make the cursor appear immediately upon startup.*/ - public static void loadSystemCursors(){ - SystemCursor.arrow.set(Core.graphics.newCursor("cursor")); - SystemCursor.hand.set(Core.graphics.newCursor("hand")); - SystemCursor.ibeam.set(Core.graphics.newCursor("ibeam")); - - Core.graphics.restoreCursor(); - } - - /** Called from a static context for use in the loading screen.*/ - public static void loadDefaultFont(){ - FileHandleResolver resolver = new InternalFileHandleResolver(); - Core.assets.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver)); - Core.assets.setLoader(BitmapFont.class, null, new FreetypeFontLoader(resolver){ - @Override - public BitmapFont loadSync(AssetManager manager, String fileName, Fi file, FreeTypeFontLoaderParameter parameter){ - if(fileName.equals("outline")){ - parameter.fontParameters.borderWidth = Scl.scl(2f); - parameter.fontParameters.spaceX -= parameter.fontParameters.borderWidth; - } - parameter.fontParameters.magFilter = TextureFilter.Linear; - parameter.fontParameters.minFilter = TextureFilter.Linear; - parameter.fontParameters.size = fontParameter().size; - return super.loadSync(manager, fileName, file, parameter); - } - }); - - FreeTypeFontParameter param = new FreeTypeFontParameter(){{ - borderColor = Color.darkGray; - incremental = true; - }}; - - Core.assets.load("outline", BitmapFont.class, new FreeTypeFontLoaderParameter("fonts/font.ttf", param)).loaded = t -> Fonts.outline = (BitmapFont)t; - } - - void loadExtraCursors(){ - drillCursor = Core.graphics.newCursor("drill"); - unloadCursor = Core.graphics.newCursor("unload"); - } - - public void setupFonts(){ - String fontName = "fonts/font.ttf"; - - FreeTypeFontParameter param = fontParameter(); - - Core.assets.load("default", BitmapFont.class, new FreeTypeFontLoaderParameter(fontName, param)).loaded = f -> Fonts.def = (BitmapFont)f; - Core.assets.load("chat", BitmapFont.class, new FreeTypeFontLoaderParameter(fontName, param)).loaded = f -> Fonts.chat = (BitmapFont)f; - } - - static FreeTypeFontParameter fontParameter(){ - return new FreeTypeFontParameter(){{ - size = (int)(Scl.scl(18f)); - shadowColor = Color.darkGray; - shadowOffsetY = 2; - incremental = true; - }}; - } - @Override public void update(){ if(disableUI || Core.scene == null) return; @@ -271,7 +211,17 @@ public class UI implements ApplicationListener, Loadable{ @Override public void dispose(){ - //generator.dispose(); + if(packer != null){ + packer.dispose(); + packer = null; + } + } + + public TextureRegionDrawable getIcon(String name){ + if(Icon.icons.containsKey(name)){ + return Icon.icons.get(name); + } + return Core.atlas.getDrawable("error"); } public void loadAnd(Runnable call){ diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index b9a28501b9..577157ff19 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -66,30 +66,30 @@ public class MapEditorDialog extends Dialog implements Disposable{ menu.cont.table(t -> { t.defaults().size(swidth, 60f).padBottom(5).padRight(5).padLeft(5); - t.addImageTextButton("$editor.savemap", Icon.floppy16Small, this::save); + t.addImageTextButton("$editor.savemap", Icon.save, this::save); - t.addImageTextButton("$editor.mapinfo", Icon.pencilSmall, () -> { + t.addImageTextButton("$editor.mapinfo", Icon.pencil, () -> { infoDialog.show(); menu.hide(); }); t.row(); - t.addImageTextButton("$editor.generate", Icon.editorSmall, () -> { + t.addImageTextButton("$editor.generate", Icon.terrain, () -> { generateDialog.show(generateDialog::applyToEditor); menu.hide(); }); - t.addImageTextButton("$editor.resize", Icon.resizeSmall, () -> { + t.addImageTextButton("$editor.resize", Icon.resize, () -> { resizeDialog.show(); menu.hide(); }); t.row(); - t.addImageTextButton("$editor.import", Icon.loadMapSmall, () -> + t.addImageTextButton("$editor.import", Icon.download, () -> createDialog("$editor.import", - "$editor.importmap", "$editor.importmap.description", Icon.loadMap, (Runnable)loadDialog::show, + "$editor.importmap", "$editor.importmap.description", Icon.download, (Runnable)loadDialog::show, "$editor.importfile", "$editor.importfile.description", Icon.file, (Runnable)() -> platform.showFileChooser(true, mapExtension, file -> ui.loadAnd(() -> { maps.tryCatchMapError(() -> { @@ -115,7 +115,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ }))) ); - t.addImageTextButton("$editor.export", Icon.saveMapSmall, () -> { + t.addImageTextButton("$editor.export", Icon.upload, () -> { if(!ios){ platform.showFileChooser(false, mapExtension, file -> { ui.loadAnd(() -> { @@ -148,7 +148,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ menu.cont.row(); if(steam){ - menu.cont.addImageTextButton("$editor.publish.workshop", Icon.linkSmall, () -> { + menu.cont.addImageTextButton("$editor.publish.workshop", Icon.link, () -> { Map builtin = maps.all().find(m -> m.name().equals(editor.getTags().get("name", "").trim())); if(editor.getTags().containsKey("steamid") && builtin != null && !builtin.custom){ @@ -181,11 +181,11 @@ public class MapEditorDialog extends Dialog implements Disposable{ menu.cont.row(); } - menu.cont.addImageTextButton("$editor.ingame", Icon.arrowSmall, this::playtest).padTop(!steam ? -3 : 1).size(swidth * 2f + 10, 60f); + menu.cont.addImageTextButton("$editor.ingame", Icon.right, this::playtest).padTop(!steam ? -3 : 1).size(swidth * 2f + 10, 60f); menu.cont.row(); - menu.cont.addImageTextButton("$quit", Icon.backSmall, () -> { + menu.cont.addImageTextButton("$quit", Icon.exit, () -> { tryExit(); menu.hide(); }).size(swidth * 2f + 10, 60f); @@ -427,7 +427,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ Cons addTool = tool -> { - ImageButton button = new ImageButton(Core.atlas.drawable("icon-" + tool.name() + "-small"), Styles.clearTogglei); + ImageButton button = new ImageButton(ui.getIcon(tool.name()), Styles.clearTogglei); button.clicked(() -> { view.setTool(tool); if(lastTable[0] != null){ @@ -503,16 +503,16 @@ public class MapEditorDialog extends Dialog implements Disposable{ tools.defaults().size(size, size); - tools.addImageButton(Icon.menuLargeSmall, Styles.cleari, menu::show); + tools.addImageButton(Icon.menu, Styles.cleari, menu::show); - ImageButton grid = tools.addImageButton(Icon.gridSmall, Styles.clearTogglei, () -> view.setGrid(!view.isGrid())).get(); + ImageButton grid = tools.addImageButton(Icon.grid, Styles.clearTogglei, () -> view.setGrid(!view.isGrid())).get(); addTool.get(EditorTool.zoom); tools.row(); - ImageButton undo = tools.addImageButton(Icon.undoSmall, Styles.cleari, editor::undo).get(); - ImageButton redo = tools.addImageButton(Icon.redoSmall, Styles.cleari, editor::redo).get(); + ImageButton undo = tools.addImageButton(Icon.undo, Styles.cleari, editor::undo).get(); + ImageButton redo = tools.addImageButton(Icon.redo, Styles.cleari, editor::redo).get(); addTool.get(EditorTool.pick); @@ -534,7 +534,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ addTool.get(EditorTool.fill); addTool.get(EditorTool.spray); - ImageButton rotate = tools.addImageButton(Icon.arrow16Small, Styles.cleari, () -> editor.rotation = (editor.rotation + 1) % 4).get(); + ImageButton rotate = tools.addImageButton(Icon.right, Styles.cleari, () -> editor.rotation = (editor.rotation + 1) % 4).get(); rotate.getImage().update(() -> { rotate.getImage().setRotation(editor.rotation * 90); rotate.getImage().setOrigin(Align.center); diff --git a/core/src/mindustry/editor/MapGenerateDialog.java b/core/src/mindustry/editor/MapGenerateDialog.java index 10182ee17e..da32ad259b 100644 --- a/core/src/mindustry/editor/MapGenerateDialog.java +++ b/core/src/mindustry/editor/MapGenerateDialog.java @@ -235,24 +235,24 @@ public class MapGenerateDialog extends FloatingDialog{ t.table(b -> { ImageButtonStyle style = Styles.cleari; b.defaults().size(50f); - b.addImageButton(Icon.refreshSmall, style, () -> { + b.addImageButton(Icon.refresh, style, () -> { filter.randomize(); update(); }); - b.addImageButton(Icon.arrowUpSmall, style, () -> { + b.addImageButton(Icon.upOpen, style, () -> { int idx = filters.indexOf(filter); filters.swap(idx, Math.max(0, idx - 1)); rebuildFilters(); update(); }); - b.addImageButton(Icon.arrowDownSmall, style, () -> { + b.addImageButton(Icon.downOpen, style, () -> { int idx = filters.indexOf(filter); filters.swap(idx, Math.min(filters.size - 1, idx + 1)); rebuildFilters(); update(); }); - b.addImageButton(Icon.trashSmall, style, () -> { + b.addImageButton(Icon.trash, style, () -> { filters.remove(filter); rebuildFilters(); update(); diff --git a/core/src/mindustry/editor/MapView.java b/core/src/mindustry/editor/MapView.java index 6787f418ab..f2d5b45dbd 100644 --- a/core/src/mindustry/editor/MapView.java +++ b/core/src/mindustry/editor/MapView.java @@ -189,7 +189,7 @@ public class MapView extends Element implements GestureListener{ lastTool = null; } - if(ui.editor.hasPane()) return; + if(Core.scene.getScrollFocus() != this) return; zoom += Core.input.axis(KeyCode.SCROLL) / 10f * zoom; clampZoom(); diff --git a/core/src/mindustry/entities/TargetPriority.java b/core/src/mindustry/entities/TargetPriority.java index ec36b03925..583710ca2c 100644 --- a/core/src/mindustry/entities/TargetPriority.java +++ b/core/src/mindustry/entities/TargetPriority.java @@ -1,5 +1,6 @@ package mindustry.entities; +/** A higher ordinal means a higher priority. Higher priority blocks will always get targeted over those of lower priority, regardless of distance. */ public enum TargetPriority{ base, turret diff --git a/core/src/mindustry/entities/traits/BuilderTrait.java b/core/src/mindustry/entities/traits/BuilderTrait.java index 02ae0bca5b..570f5eabf9 100644 --- a/core/src/mindustry/entities/traits/BuilderTrait.java +++ b/core/src/mindustry/entities/traits/BuilderTrait.java @@ -67,9 +67,9 @@ public interface BuilderTrait extends Entity, TeamTrait{ if(!(tile.block() instanceof BuildBlock)){ if(!current.initialized && canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){ - Call.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation); + Build.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation); }else if(!current.initialized && canCreateBlocks() && current.breaking && Build.validBreak(getTeam(), current.x, current.y)){ - Call.beginBreak(getTeam(), current.x, current.y); + Build.beginBreak(getTeam(), current.x, current.y); }else{ buildQueue().removeFirst(); return; @@ -118,6 +118,14 @@ public interface BuilderTrait extends Entity, TeamTrait{ return request.stuck && !core.items.has(request.block.requirements); } + default void removeRequest(int x, int y, boolean breaking){ + //remove matching request + int idx = player.buildQueue().indexOf(req -> req.breaking == breaking && req.x == x && req.y == y); + if(idx != -1){ + player.buildQueue().removeIndex(idx); + } + } + /** Returns the queue for storing build requests. */ Queue buildQueue(); diff --git a/core/src/mindustry/entities/type/Unit.java b/core/src/mindustry/entities/type/Unit.java index 42463dc508..05dd89a4d6 100644 --- a/core/src/mindustry/entities/type/Unit.java +++ b/core/src/mindustry/entities/type/Unit.java @@ -242,6 +242,10 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ return tile == null ? (Floor)Blocks.air : tile.floor(); } + public @Nullable Tile tileOn(){ + return world.tileWorld(x, y); + } + public void onRespawn(Tile tile){ } diff --git a/core/src/mindustry/game/GlobalData.java b/core/src/mindustry/game/GlobalData.java index 3dbf592a71..0e72ef7245 100644 --- a/core/src/mindustry/game/GlobalData.java +++ b/core/src/mindustry/game/GlobalData.java @@ -85,9 +85,15 @@ public class GlobalData{ if(amount > 0){ unlockContent(item); } + amount = Math.max(amount, 0); + modified = true; items.getAndIncrement(item, 0, amount); state.stats.itemsDelivered.getAndIncrement(item, 0, amount); + + //clamp overflow + if(items.get(item, 0) < 0) items.put(item, Integer.MAX_VALUE); + if(state.stats.itemsDelivered.get(item, 0) < 0) state.stats.itemsDelivered.put(item, Integer.MAX_VALUE); } public boolean hasItems(Array stacks){ diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java index 6033b4ff03..fa1327e3a6 100644 --- a/core/src/mindustry/graphics/FloorRenderer.java +++ b/core/src/mindustry/graphics/FloorRenderer.java @@ -201,7 +201,7 @@ public class FloorRenderer implements Disposable{ int chunksx = Mathf.ceil((float)(world.width()) / chunksize), chunksy = Mathf.ceil((float)(world.height()) / chunksize); cache = new Chunk[chunksx][chunksy]; - cbatch = new MultiCacheBatch(chunksize * chunksize * 4); + cbatch = new MultiCacheBatch(chunksize * chunksize * 5); Time.mark(); diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 8838dee9c9..0776d9e33e 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -67,7 +67,7 @@ public class DesktopInput extends InputHandler{ Core.keybinds.get(Binding.schematic_flip_y).key.toString())).style(Styles.outlineLabel); b.row(); b.table(a -> { - a.addImageTextButton("$schematic.add", Icon.saveSmall, this::showSchematicSave).colspan(2).size(250f, 50f).disabled(f -> lastSchematic == null || lastSchematic.file != null); + a.addImageTextButton("$schematic.add", Icon.save, this::showSchematicSave).colspan(2).size(250f, 50f).disabled(f -> lastSchematic == null || lastSchematic.file != null); }); }).margin(6f); }); @@ -256,7 +256,7 @@ public class DesktopInput extends InputHandler{ table.row(); table.left().margin(0f).defaults().size(48f).left(); - table.addImageButton(Icon.pasteSmall, Styles.clearPartiali, () -> { + table.addImageButton(Icon.paste, Styles.clearPartiali, () -> { ui.schematics.show(); }); } diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index e56244928e..8000fc4e19 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1,8 +1,6 @@ package mindustry.input; import arc.*; -import mindustry.annotations.Annotations.*; -import arc.struct.*; import arc.func.*; import arc.graphics.*; import arc.graphics.g2d.*; @@ -13,8 +11,10 @@ import arc.math.geom.*; import arc.scene.*; import arc.scene.event.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.ArcAnnotate.*; import arc.util.*; +import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.entities.effect.*; @@ -27,12 +27,13 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.input.Placement.*; import mindustry.net.*; +import mindustry.net.Administration.*; import mindustry.type.*; import mindustry.ui.fragments.*; import mindustry.world.*; import mindustry.world.blocks.*; import mindustry.world.blocks.BuildBlock.*; -import mindustry.world.blocks.power.PowerNode; +import mindustry.world.blocks.power.*; import java.util.*; @@ -66,6 +67,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ //methods to override + @Remote(variants = Variant.one) + public static void removeQueueBlock(int x, int y, boolean breaking){ + player.removeRequest(x, y, breaking); + } + @Remote(targets = Loc.client, called = Loc.server) public static void dropItem(Player player, float angle){ if(net.server() && player.item().amount <= 0){ @@ -78,8 +84,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, called = Loc.server, forward = true, unreliable = true) public static void rotateBlock(Player player, Tile tile, boolean direction){ - if(net.server() && !Units.canInteract(player, tile)){ - throw new ValidateException(player, "Player cannot drop an item."); + if(net.server() && (!Units.canInteract(player, tile) || + !netServer.admins.allowAction(player, ActionType.rotate, tile, action -> action.rotation = Mathf.mod(tile.rotation() + Mathf.sign(direction), 4)))){ + throw new ValidateException(player, "Player cannot rotate a block."); } tile.rotation(Mathf.mod(tile.rotation() + Mathf.sign(direction), 4)); @@ -93,7 +100,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, forward = true, called = Loc.server) public static void transferInventory(Player player, Tile tile){ if(player == null || player.timer == null) return; - if(net.server() && (player.item().amount <= 0 || player.isTransferring|| !Units.canInteract(player, tile))){ + if(net.server() && (player.item().amount <= 0 || player.isTransferring|| !Units.canInteract(player, tile) || + !netServer.admins.allowAction(player, ActionType.depositItem, tile, action -> { + action.itemAmount = player.item().amount; + action.item = player.item().item; + }))){ throw new ValidateException(player, "Player cannot transfer an item."); } @@ -143,14 +154,18 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ @Remote(targets = Loc.both, called = Loc.server, forward = true) public static void onTileTapped(Player player, Tile tile){ if(tile == null || player == null) return; - if(!Units.canInteract(player, tile)) return; + if(net.server() && (!Units.canInteract(player, tile) || + !netServer.admins.allowAction(player, ActionType.tapTile, tile, action -> {}))) throw new ValidateException(player, "Player cannot tap a tile."); tile.block().tapped(tile, player); Core.app.post(() -> Events.fire(new TapEvent(tile, player))); } @Remote(targets = Loc.both, called = Loc.both, forward = true) public static void onTileConfig(Player player, Tile tile, int value){ - if(tile == null || !Units.canInteract(player, tile)) return; + if(tile == null) return; + + if(net.server() && (!Units.canInteract(player, tile) || + !netServer.admins.allowAction(player, ActionType.configure, tile, action -> action.config = value))) throw new ValidateException(player, "Player cannot configure a tile."); tile.block().configured(tile, player, value); Core.app.post(() -> Events.fire(new TapConfigEvent(tile, player, value))); } diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 3b8e881085..8e0ed53d06 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -179,19 +179,19 @@ public class MobileInput extends InputHandler implements GestureListener{ table.row(); table.left().margin(0f).defaults().size(48f); - table.addImageButton(Icon.breakSmall, Styles.clearTogglePartiali, () -> { + table.addImageButton(Icon.hammer, Styles.clearTogglePartiali, () -> { mode = mode == breaking ? block == null ? none : placing : breaking; lastBlock = block; }).update(l -> l.setChecked(mode == breaking)).name("breakmode"); //diagonal swap button - table.addImageButton(Icon.diagonalSmall, Styles.clearTogglePartiali, () -> { + table.addImageButton(Icon.diagonal, Styles.clearTogglePartiali, () -> { Core.settings.put("swapdiagonal", !Core.settings.getBool("swapdiagonal")); Core.settings.save(); }).update(l -> l.setChecked(Core.settings.getBool("swapdiagonal"))); //rotate button - table.addImageButton(Icon.arrowSmall, Styles.clearTogglePartiali, () -> { + table.addImageButton(Icon.right, Styles.clearTogglePartiali, () -> { if(block != null && block.rotate){ rotation = Mathf.mod(rotation + 1, 4); }else{ @@ -205,12 +205,12 @@ 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.arrowSmall : Icon.pasteSmall; + i.getStyle().imageUp = arrow ? Icon.right : Icon.paste; i.setChecked(!arrow && schematicMode); }); //confirm button - table.addImageButton(Icon.checkSmall, Styles.clearPartiali, () -> { + table.addImageButton(Icon.ok, Styles.clearPartiali, () -> { for(BuildRequest request : selectRequests){ Tile tile = request.tile(); @@ -253,7 +253,7 @@ public class MobileInput extends InputHandler implements GestureListener{ group.fill(t -> { t.bottom().left().visible(() -> (player.isBuilding() || block != null || mode == breaking || !selectRequests.isEmpty()) && !schem.get()); - t.addImageTextButton("$cancel", Icon.cancelSmall, () -> { + t.addImageTextButton("$cancel", Icon.cancel, () -> { player.clearBuilding(); selectRequests.clear(); mode = none; @@ -269,15 +269,15 @@ public class MobileInput extends InputHandler implements GestureListener{ ImageButtonStyle style = Styles.clearPartiali; - b.addImageButton(Icon.floppySmall, style, this::showSchematicSave).disabled(f -> lastSchematic == null || lastSchematic.file != null); - b.addImageButton(Icon.cancelSmall, style, () -> { + b.addImageButton(Icon.save, style, this::showSchematicSave).disabled(f -> lastSchematic == null || lastSchematic.file != null); + b.addImageButton(Icon.cancel, style, () -> { selectRequests.clear(); }); b.row(); - b.addImageButton(Icon.flipSmall, style, () -> flipRequests(selectRequests, true)); - b.addImageButton(Icon.flipSmall, style, () -> flipRequests(selectRequests, false)).update(i -> i.getImage().setRotationOrigin(90f, Align.center)); + b.addImageButton(Icon.flipX, style, () -> flipRequests(selectRequests, true)); + b.addImageButton(Icon.flipY, style, () -> flipRequests(selectRequests, false)); b.row(); - b.addImageButton(Icon.rotateSmall, style, () -> rotateRequests(selectRequests, 1)); + b.addImageButton(Icon.rotate, style, () -> rotateRequests(selectRequests, 1)); }).margin(4f); }); diff --git a/core/src/mindustry/maps/filters/FilterOption.java b/core/src/mindustry/maps/filters/FilterOption.java index 6dba80f496..41698c0674 100644 --- a/core/src/mindustry/maps/filters/FilterOption.java +++ b/core/src/mindustry/maps/filters/FilterOption.java @@ -87,15 +87,15 @@ public abstract class FilterOption{ @Override public void build(Table table){ - table.addButton(b -> b.addImage(supplier.get().icon(mindustry.ui.Cicon.small)).update(i -> ((TextureRegionDrawable)i.getDrawable()) - .setRegion(supplier.get() == Blocks.air ? Core.atlas.find("icon-none") : supplier.get().icon(mindustry.ui.Cicon.small))).size(8 * 3), () -> { + table.addButton(b -> b.addImage(supplier.get().icon(Cicon.small)).update(i -> ((TextureRegionDrawable)i.getDrawable()) + .setRegion(supplier.get() == Blocks.air ? Core.atlas.find("Icon.none") : supplier.get().icon(Cicon.small))).size(8 * 3), () -> { FloatingDialog dialog = new FloatingDialog(""); dialog.setFillParent(false); int i = 0; for(Block block : Vars.content.blocks()){ if(!filter.get(block)) continue; - dialog.cont.addImage(block == Blocks.air ? Core.atlas.find("icon-none-small") : block.icon(Cicon.medium)).size(8 * 4).pad(3).get().clicked(() -> { + dialog.cont.addImage(block == Blocks.air ? Core.atlas.find("Icon.none-") : block.icon(Cicon.medium)).size(8 * 4).pad(3).get().clicked(() -> { consumer.get(block); dialog.hide(); changed.run(); diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index ef4af6a8ec..fd24040542 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -42,7 +42,7 @@ public class Mods implements Loadable{ private Array mods = new Array<>(); private ObjectMap, ModMeta> metas = new ObjectMap<>(); - private boolean requiresReload; + private boolean requiresReload, createdAtlas; public Mods(){ Events.on(ClientLoadEvent.class, e -> Core.app.post(this::checkWarnings)); @@ -112,13 +112,6 @@ public class Mods implements Loadable{ totalSprites += sprites.size + overrides.size; }); - for(AtlasRegion region : Core.atlas.getRegions()){ - PageType type = getPage(region); - if(!packer.has(type, region.name)){ - packer.add(type, region.name, Core.atlas.getPixmap(region)); - } - } - Log.debug("Time to pack textures: {0}", Time.elapsed()); } @@ -159,6 +152,16 @@ public class Mods implements Loadable{ //get textures packed if(totalSprites > 0){ + if(!createdAtlas) Core.atlas = new TextureAtlas(Core.files.internal("sprites/sprites.atlas")); + createdAtlas = true; + + for(AtlasRegion region : Core.atlas.getRegions()){ + PageType type = getPage(region); + if(!packer.has(type, region.name)){ + packer.add(type, region.name, Core.atlas.getPixmap(region)); + } + } + TextureFilter filter = Core.settings.getBool("linear") ? TextureFilter.Linear : TextureFilter.Nearest; //flush so generators can use these sprites @@ -389,12 +392,12 @@ public class Mods implements Loadable{ d.left().marginLeft(15f); for(Content c : m.erroredContent){ d.add(c.minfo.sourceFile.nameWithoutExtension()).left().padRight(10); - d.addImageTextButton("$details", Icon.arrowDownSmall, Styles.transt, () -> { + d.addImageTextButton("$details", Icon.downOpen, Styles.transt, () -> { new Dialog(""){{ setFillParent(true); cont.pane(e -> e.add(c.minfo.error)).grow(); cont.row(); - cont.addImageTextButton("$ok", Icon.backSmall, this::hide).size(240f, 60f); + cont.addImageTextButton("$ok", Icon.left, this::hide).size(240f, 60f); }}.show(); }).size(190f, 50f).left().marginLeft(6); d.row(); @@ -419,6 +422,7 @@ public class Mods implements Loadable{ //epic memory leak //TODO make it less epic Core.atlas = new TextureAtlas(Core.files.internal("sprites/sprites.atlas")); + createdAtlas = true; mods.each(LoadedMod::dispose); mods.clear(); diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java index 5ac96fbb0a..19a94fca36 100644 --- a/core/src/mindustry/mod/Scripts.java +++ b/core/src/mindustry/mod/Scripts.java @@ -2,6 +2,7 @@ package mindustry.mod; import arc.*; import arc.files.*; +import arc.struct.*; import arc.util.*; import arc.util.Log.*; import mindustry.*; @@ -9,6 +10,7 @@ import mindustry.mod.Mods.*; import org.mozilla.javascript.*; public class Scripts implements Disposable{ + private final Array blacklist = Array.with("net", "classaccess", ".io", "io.", "files", "reflect"); private final Context context; private final String wrapper; private Scriptable scope; @@ -18,9 +20,7 @@ public class Scripts implements Disposable{ Time.mark(); context = Vars.platform.getScriptContext(); - context.setClassShutter(type -> (ClassAccess.allowedClassNames.contains(type) || type.startsWith("$Proxy") || - type.startsWith("adapter") || type.contains("PrintStream") || - type.startsWith("mindustry")) && !type.equals("mindustry.mod.ClassAccess")); + context.setClassShutter(type -> !blacklist.contains(type.toLowerCase()::contains) || type.contains("mindustry.net")); context.getWrapFactory().setJavaPrimitiveWrap(false); scope = new ImporterTopLevel(context); diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index aa36705c39..ca5a30f5c4 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -325,7 +325,8 @@ public class Administration{ ObjectSet result = new ObjectSet<>(); for(PlayerInfo info : playerInfo.values()){ - if(info.lastName.toLowerCase().equals(name.toLowerCase()) || (info.names.contains(name, false)) + if(info.lastName.equalsIgnoreCase(name) || (info.names.contains(name, false)) + || Strings.stripColors(Strings.stripColors(info.lastName)).equals(name) || info.ips.contains(name, false) || info.id.equals(name)){ result.add(info); } @@ -334,6 +335,19 @@ public class Administration{ return result; } + /** Finds by name, using contains(). */ + public ObjectSet searchNames(String name){ + ObjectSet result = new ObjectSet<>(); + + for(PlayerInfo info : playerInfo.values()){ + if(info.names.contains(n -> n.toLowerCase().contains(name.toLowerCase()) || Strings.stripColors(n).trim().toLowerCase().contains(name))){ + result.add(info); + } + } + + return result; + } + public Array findByIPs(String ip){ Array result = new Array<>(); @@ -397,6 +411,7 @@ public class Administration{ /** Server configuration definition. Each config value can be a string, boolean or number. */ public enum Config{ name("The server name as displayed on clients.", "Server", "servername"), + desc("The server description, displayed under the name. Max 100 characters.", "off"), port("The port to host on.", Vars.port), autoUpdate("Whether to auto-update and exit when a new bleeding-edge update arrives.", false), showConnectMessages("Whether to display connect/disconnect messages.", true), @@ -529,6 +544,10 @@ public class Administration{ public @NonNull ActionType type; public @NonNull Tile tile; + /** valid for block placement events only */ + public @Nullable Block block; + public int rotation; + /** valid for configure and rotation-type events only. */ public int config; @@ -554,7 +573,7 @@ public class Administration{ } public enum ActionType{ - breakBlock, placeBlock, rotate, configure, withdrawItem, depositItem + breakBlock, placeBlock, rotate, configure, tapTile, withdrawItem, depositItem } } diff --git a/core/src/mindustry/net/ArcNetProvider.java b/core/src/mindustry/net/ArcNetProvider.java index 19ce42e48e..ccfdafb94f 100644 --- a/core/src/mindustry/net/ArcNetProvider.java +++ b/core/src/mindustry/net/ArcNetProvider.java @@ -21,7 +21,7 @@ import static mindustry.Vars.*; public class ArcNetProvider implements NetProvider{ final Client client; - final Prov packetSupplier = () -> new DatagramPacket(new byte[256], 256); + final Prov packetSupplier = () -> new DatagramPacket(new byte[512], 512); final Server server; final CopyOnWriteArrayList connections = new CopyOnWriteArrayList<>(); @@ -114,12 +114,7 @@ public class ArcNetProvider implements NetProvider{ try{ net.handleServerReceived(k, object); }catch(RuntimeException e){ - if(e.getCause() instanceof ValidateException){ - ValidateException v = (ValidateException)e.getCause(); - Log.err("Validation failed: {0} ({1})", v.player.name, v.getMessage()); - }else{ - e.printStackTrace(); - } + e.printStackTrace(); }catch(Exception e){ e.printStackTrace(); } diff --git a/core/src/mindustry/net/BeControl.java b/core/src/mindustry/net/BeControl.java index ee084f743a..844464764b 100644 --- a/core/src/mindustry/net/BeControl.java +++ b/core/src/mindustry/net/BeControl.java @@ -105,7 +105,7 @@ public class BeControl{ }); dialog.cont.add(new Bar(() -> length[0] == 0 ? Core.bundle.get("be.updating") : (int)(progress[0] * length[0]) / 1024/ 1024 + "/" + length[0]/1024/1024 + " MB", () -> Pal.accent, () -> progress[0])).width(400f).height(70f); - dialog.buttons.addImageTextButton("$cancel", Icon.cancelSmall, () -> { + dialog.buttons.addImageTextButton("$cancel", Icon.cancel, () -> { cancel[0] = true; dialog.hide(); }).size(210f, 64f); diff --git a/core/src/mindustry/net/CrashSender.java b/core/src/mindustry/net/CrashSender.java index 1b24b2af3a..bcc25cea43 100644 --- a/core/src/mindustry/net/CrashSender.java +++ b/core/src/mindustry/net/CrashSender.java @@ -21,6 +21,18 @@ import static mindustry.Vars.net; public class CrashSender{ + public static void log(Throwable exception){ + try{ + Core.settings.getDataDirectory().child("crashes").child("crash_" + System.currentTimeMillis() + ".txt").writeString(Strings.parseException(exception, true)); + }catch(Throwable ignored){ + } + + if(exception instanceof RuntimeException){ + throw (RuntimeException)exception; + } + throw new RuntimeException(exception); + } + public static void send(Throwable exception, Cons writeListener){ try{ diff --git a/core/src/mindustry/net/Host.java b/core/src/mindustry/net/Host.java index 5c3b010c45..c2319bc2b7 100644 --- a/core/src/mindustry/net/Host.java +++ b/core/src/mindustry/net/Host.java @@ -6,7 +6,7 @@ import mindustry.game.*; public class Host{ public final String name; public final String address; - public final String mapname; + public final String mapname, description; public final int wave; public final int players, playerLimit; public final int version; @@ -14,7 +14,7 @@ public class Host{ public final Gamemode mode; public int ping, port = Vars.port; - public Host(String name, String address, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit){ + public Host(String name, String address, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit, String description){ this.name = name; this.address = address; this.players = players; @@ -24,5 +24,6 @@ public class Host{ this.versionType = versionType; this.playerLimit = playerLimit; this.mode = mode; + this.description = description; } } diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java index 104ed2d431..6555957b5b 100644 --- a/core/src/mindustry/net/NetConnection.java +++ b/core/src/mindustry/net/NetConnection.java @@ -1,7 +1,9 @@ package mindustry.net; -import arc.util.*; +import arc.struct.*; import arc.util.ArcAnnotate.*; +import arc.util.*; +import mindustry.entities.traits.BuilderTrait.*; import mindustry.entities.type.*; import mindustry.gen.*; import mindustry.net.Administration.*; @@ -21,6 +23,8 @@ public abstract class NetConnection{ public int lastRecievedClientSnapshot = -1; /** Timestamp of last recieved snapshot. */ public long lastRecievedClientTime; + /** Build requests that have been recently rejected. This is cleared every snapshot. */ + public Array rejectedRequests = new Array<>(); public boolean hasConnected, hasBegunConnecting, hasDisconnected; public float viewWidth, viewHeight, viewX, viewY; diff --git a/core/src/mindustry/net/NetworkIO.java b/core/src/mindustry/net/NetworkIO.java index 1c6e1acba2..27811fed9f 100644 --- a/core/src/mindustry/net/NetworkIO.java +++ b/core/src/mindustry/net/NetworkIO.java @@ -63,9 +63,10 @@ public class NetworkIO{ public static ByteBuffer writeServerData(){ String name = (headless ? Config.name.string() : player.name); + String description = headless && !Config.desc.string().equals("off") ? Config.desc.string() : ""; String map = world.getMap() == null ? "None" : world.getMap().name(); - ByteBuffer buffer = ByteBuffer.allocate(256); + ByteBuffer buffer = ByteBuffer.allocate(512); writeString(buffer, name, 100); writeString(buffer, map); @@ -77,6 +78,8 @@ public class NetworkIO{ buffer.put((byte)Gamemode.bestFit(state.rules).ordinal()); buffer.putInt(netServer.admins.getPlayerLimit()); + + writeString(buffer, description, 100); return buffer; } @@ -89,8 +92,9 @@ public class NetworkIO{ String vertype = readString(buffer); Gamemode gamemode = Gamemode.all[buffer.get()]; int limit = buffer.getInt(); + String description = readString(buffer); - return new Host(host, hostAddress, map, wave, players, version, vertype, gamemode, limit); + return new Host(host, hostAddress, map, wave, players, version, vertype, gamemode, limit, description); } private static void writeString(ByteBuffer buffer, String string, int maxlen){ diff --git a/core/src/mindustry/ui/Fonts.java b/core/src/mindustry/ui/Fonts.java index 5c8699edee..1c4cfe7d56 100644 --- a/core/src/mindustry/ui/Fonts.java +++ b/core/src/mindustry/ui/Fonts.java @@ -1,9 +1,195 @@ package mindustry.ui; +import arc.*; +import arc.Graphics.Cursor.*; +import arc.assets.*; +import arc.assets.loaders.*; +import arc.assets.loaders.resolvers.*; +import arc.files.*; +import arc.freetype.*; +import arc.freetype.FreeTypeFontGenerator.*; +import arc.freetype.FreetypeFontLoader.*; +import arc.graphics.*; +import arc.graphics.Pixmap.*; +import arc.graphics.Texture.*; import arc.graphics.g2d.*; +import arc.graphics.g2d.BitmapFont.*; +import arc.graphics.g2d.PixmapPacker.*; +import arc.graphics.g2d.TextureAtlas.*; +import arc.math.geom.*; +import arc.scene.style.*; +import arc.scene.ui.layout.*; +import arc.struct.*; +import arc.util.*; +import mindustry.core.*; + +import java.util.*; public class Fonts{ + private static ObjectIntMap unicodeIcons = new ObjectIntMap<>(); + public static BitmapFont def; public static BitmapFont outline; public static BitmapFont chat; + public static BitmapFont icon; + + public static int getUnicode(String content){ + return unicodeIcons.get(content, 0); + } + + /** Called from a static context to make the cursor appear immediately upon startup.*/ + public static void loadSystemCursors(){ + SystemCursor.arrow.set(Core.graphics.newCursor("cursor")); + SystemCursor.hand.set(Core.graphics.newCursor("hand")); + SystemCursor.ibeam.set(Core.graphics.newCursor("ibeam")); + + Core.graphics.restoreCursor(); + } + + public static void loadFonts(){ + String fontName = "fonts/font.ttf"; + + FreeTypeFontParameter param = fontParameter(); + + Core.assets.load("default", BitmapFont.class, new FreeTypeFontLoaderParameter(fontName, param)).loaded = f -> Fonts.def = (BitmapFont)f; + Core.assets.load("chat", BitmapFont.class, new FreeTypeFontLoaderParameter(fontName, param)).loaded = f -> Fonts.chat = (BitmapFont)f; + Core.assets.load("icon", BitmapFont.class, new FreeTypeFontLoaderParameter("fonts/icon.ttf", new FreeTypeFontParameter(){{ + size = (int)(Scl.scl(30f)); + incremental = true; + }})).loaded = f -> Fonts.icon = (BitmapFont)f; + } + + public static void loadContentIcons(){ + Array fonts = Array.with(Fonts.chat, Fonts.def, Fonts.outline); + Texture uitex = Core.atlas.find("logo").getTexture(); + int size = (int)(Fonts.def.getData().lineHeight/Fonts.def.getData().scaleY); + + try(Scanner scan = new Scanner(Core.files.internal("icons/icons.properties").read(512))){ + while(scan.hasNextLine()){ + String line = scan.nextLine(); + String[] split = line.split("="); + String[] nametex = split[1].split("\\|"); + String character = split[0], texture = nametex[1]; + int ch = Integer.parseInt(character); + TextureRegion region = Core.atlas.find(texture); + + if(region.getTexture() != uitex) throw new IllegalArgumentException("Font icon '" + texture + "' is not in the UI texture."); + + unicodeIcons.put(nametex[0], ch); + + Glyph glyph = new Glyph(); + glyph.id = ch; + glyph.srcX = 0; + glyph.srcY = 0; + glyph.width = size; + glyph.height = size; + glyph.u = region.getU(); + glyph.v = region.getV2(); + glyph.u2 = region.getU2(); + glyph.v2 = region.getV(); + glyph.xoffset = 0; + glyph.yoffset = -size; + glyph.xadvance = size; + glyph.kerning = null; + glyph.fixedWidth = true; + glyph.page = 0; + fonts.each(f -> f.getData().setGlyph(ch, glyph)); + } + } + } + + /** Called from a static context for use in the loading screen.*/ + public static void loadDefaultFont(){ + UI.packer = new PixmapPacker(2048, 2048, Format.RGBA8888, 2, true); + FileHandleResolver resolver = new InternalFileHandleResolver(); + Core.assets.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver)); + Core.assets.setLoader(BitmapFont.class, null, new FreetypeFontLoader(resolver){ + @Override + public BitmapFont loadSync(AssetManager manager, String fileName, Fi file, FreeTypeFontLoaderParameter parameter){ + if(fileName.equals("outline")){ + parameter.fontParameters.borderWidth = Scl.scl(2f); + parameter.fontParameters.spaceX -= parameter.fontParameters.borderWidth; + } + parameter.fontParameters.magFilter = TextureFilter.Linear; + parameter.fontParameters.minFilter = TextureFilter.Linear; + parameter.fontParameters.packer = UI.packer; + return super.loadSync(manager, fileName, file, parameter); + } + }); + + FreeTypeFontParameter param = new FreeTypeFontParameter(){{ + borderColor = Color.darkGray; + size = (int)(Scl.scl(18f)); + incremental = true; + }}; + + Core.assets.load("outline", BitmapFont.class, new FreeTypeFontLoaderParameter("fonts/font.ttf", param)).loaded = t -> Fonts.outline = (BitmapFont)t; + } + + /** Merges the UI and font atlas together for better performance. */ + public static void mergeFontAtlas(TextureAtlas atlas){ + //grab all textures from the ui page, remove all the regions assigned to it, then copy them over to Fonts.packer and replace the texture in this atlas. + + //grab old UI texture and regions... + Texture texture = atlas.find("logo").getTexture(); + + Page page = UI.packer.getPages().first(); + + Array regions = atlas.getRegions().select(t -> t.getTexture() == texture); + for(AtlasRegion region : regions){ + //get new pack rect + page.setDirty(false); + Rect rect = UI.packer.pack(region.name + (region.splits != null ? ".9" : ""), atlas.getPixmap(region)); + //set new texture + region.setTexture(UI.packer.getPages().first().getTexture()); + //set its new position + region.set((int)rect.x, (int)rect.y, (int)rect.width, (int)rect.height); + //add old texture + atlas.getTextures().add(region.getTexture()); + } + + //remove old texture, it will no longer be used + atlas.getTextures().remove(texture); + texture.dispose(); + atlas.disposePixmap(texture); + + page.setDirty(true); + page.updateTexture(TextureFilter.Linear, TextureFilter.Linear, false); + } + + public static TextureRegionDrawable getGlyph(BitmapFont font, char glyph){ + Glyph g = font.getData().getGlyph(glyph); + if(g == null) throw new IllegalArgumentException("No glyph: " + glyph + " (" + (int)glyph + ")"); + + float size = Math.max(g.width, g.height); + float aspect = (float)g.height / g.width; + TextureRegionDrawable draw = new TextureRegionDrawable(new TextureRegion(font.getRegion().getTexture(), g.u, g.v2, g.u2, g.v)){ + @Override + public void draw(float x, float y, float width, float height){ + Draw.color(Tmp.c1.set(tint).mul(Draw.getColor()).toFloatBits()); + float cx = x + width/2f - g.width/2f, cy = y + height/2f - g.height/2f; + cx = (int)cx; + cy = (int)cy; + Draw.rect(region, cx + g.width/2f, cy + g.height/2f, g.width, g.height); + } + + @Override + public float imageSize(){ + return size; + } + }; + + draw.setMinWidth(size); + draw.setMinHeight(size); + return draw; + } + + static FreeTypeFontParameter fontParameter(){ + return new FreeTypeFontParameter(){{ + size = (int)(Scl.scl(18f)); + shadowColor = Color.darkGray; + shadowOffsetY = 2; + incremental = true; + }}; + } } diff --git a/core/src/mindustry/ui/ItemImage.java b/core/src/mindustry/ui/ItemImage.java index f04a8f0dab..aed8997f5f 100644 --- a/core/src/mindustry/ui/ItemImage.java +++ b/core/src/mindustry/ui/ItemImage.java @@ -27,7 +27,7 @@ public class ItemImage extends Stack{ if(stack.amount != 0){ Table t = new Table().left().bottom(); - t.add(stack.amount + "").name("item-label"); + t.add(stack.amount + "").name("item-label").style(Styles.outlineLabel); add(t); } } diff --git a/core/src/mindustry/ui/Links.java b/core/src/mindustry/ui/Links.java index a7b1afde19..7047c6d4d7 100644 --- a/core/src/mindustry/ui/Links.java +++ b/core/src/mindustry/ui/Links.java @@ -1,8 +1,10 @@ package mindustry.ui; import arc.Core; +import arc.scene.style.*; import arc.util.Strings; import arc.graphics.Color; +import mindustry.gen.*; import mindustry.graphics.Pal; public class Links{ @@ -10,17 +12,17 @@ public class Links{ private static void createLinks(){ links = new LinkEntry[]{ - new LinkEntry("discord", "https://discord.gg/mindustry", Color.valueOf("7289da")), - new LinkEntry("changelog", "https://github.com/Anuken/Mindustry/releases", Pal.accent.cpy()), - new LinkEntry("trello", "https://trello.com/b/aE2tcUwF", Color.valueOf("026aa7")), - new LinkEntry("wiki", "https://mindustrygame.github.io/wiki/", Color.valueOf("0f142f")), - new LinkEntry("feathub", "https://feathub.com/Anuken/Mindustry/", Color.valueOf("ebebeb")), - new LinkEntry("reddit", "https://www.reddit.com/r/Mindustry/", Color.valueOf("ee593b")), - new LinkEntry("itch.io", "https://anuke.itch.io/mindustry", Color.valueOf("fa5c5c")), - new LinkEntry("google-play", "https://play.google.com/store/apps/details?id=io.anuke.mindustry", Color.valueOf("689f38")), - new LinkEntry("f-droid", "https://f-droid.org/packages/io.anuke.mindustry/", Color.valueOf("026aa7")), - new LinkEntry("github", "https://github.com/Anuken/Mindustry/", Color.valueOf("24292e")), - new LinkEntry("dev-builds", "https://github.com/Anuken/MindustryBuilds", Color.valueOf("fafbfc")) + new LinkEntry("discord", "https://discord.gg/mindustry", Icon.discord, Color.valueOf("7289da")), + new LinkEntry("changelog", "https://github.com/Anuken/Mindustry/releases", Icon.list, Pal.accent.cpy()), + new LinkEntry("trello", "https://trello.com/b/aE2tcUwF", Icon.trello, Color.valueOf("026aa7")), + new LinkEntry("wiki", "https://mindustrygame.github.io/wiki/", Icon.book, Color.valueOf("0f142f")), + new LinkEntry("feathub", "https://feathub.com/Anuken/Mindustry/", Icon.add, Color.valueOf("ebebeb")), + new LinkEntry("reddit", "https://www.reddit.com/r/Mindustry/", Icon.redditAlien, Color.valueOf("ee593b")), + new LinkEntry("itch.io", "https://anuke.itch.io/mindustry", Icon.itchio, Color.valueOf("fa5c5c")), + new LinkEntry("google-play", "https://play.google.com/store/apps/details?id=io.anuke.mindustry", Icon.googleplay, Color.valueOf("689f38")), + new LinkEntry("f-droid", "https://f-droid.org/packages/io.anuke.mindustry/", Icon.android, Color.valueOf("026aa7")), + new LinkEntry("github", "https://github.com/Anuken/Mindustry/", Icon.github, Color.valueOf("24292e")), + new LinkEntry("dev-builds", "https://github.com/Anuken/MindustryBuilds", Icon.githubSquare, Color.valueOf("fafbfc")) }; } @@ -35,12 +37,14 @@ public class Links{ public static class LinkEntry{ public final String name, title, description, link; public final Color color; + public final Drawable icon; - public LinkEntry(String name, String link, Color color){ + public LinkEntry(String name, String link, Drawable icon, Color color){ this.name = name; this.color = color; this.description = Core.bundle.getNotNull("link." + name + ".description"); this.link = link; + this.icon = icon; String title = Core.bundle.getOrNull("link." + name + ".title"); this.title = title != null ? title : Strings.capitalize(name.replace("-", " ")); diff --git a/core/src/mindustry/ui/LiquidDisplay.java b/core/src/mindustry/ui/LiquidDisplay.java index 7ce5c0504e..6c645e6218 100644 --- a/core/src/mindustry/ui/LiquidDisplay.java +++ b/core/src/mindustry/ui/LiquidDisplay.java @@ -24,13 +24,13 @@ public class LiquidDisplay extends Table{ if(amount != 0){ Table t = new Table().left().bottom(); - t.add(Strings.autoFixed(amount, 1)); + t.add(Strings.autoFixed(amount, 1)).style(Styles.outlineLabel); add(t); } }}).size(8 * 4).padRight(3 + (amount != 0 && Strings.autoFixed(amount, 1).length() > 2 ? 8 : 0)); if(perSecond){ - add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.lightGray); + add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.lightGray).style(Styles.outlineLabel); } add(liquid.localizedName); diff --git a/core/src/mindustry/ui/dialogs/AboutDialog.java b/core/src/mindustry/ui/dialogs/AboutDialog.java index 7b64fdaf3a..83a5d8e20e 100644 --- a/core/src/mindustry/ui/dialogs/AboutDialog.java +++ b/core/src/mindustry/ui/dialogs/AboutDialog.java @@ -55,7 +55,7 @@ public class AboutDialog extends FloatingDialog{ table.table(i -> { i.background(Tex.buttonEdge3); - i.addImage(Core.atlas.drawable("icon-" + link.name)); + i.addImage(link.icon); }).size(h - 5, h); table.table(inset -> { diff --git a/core/src/mindustry/ui/dialogs/ColorPicker.java b/core/src/mindustry/ui/dialogs/ColorPicker.java index e5a9c60f01..0084903ebe 100644 --- a/core/src/mindustry/ui/dialogs/ColorPicker.java +++ b/core/src/mindustry/ui/dialogs/ColorPicker.java @@ -55,7 +55,7 @@ public class ColorPicker extends FloatingDialog{ buttons.clear(); addCloseButton(); - buttons.addImageTextButton("$ok", Icon.checkSmall, () -> { + buttons.addImageTextButton("$ok", Icon.ok, () -> { cons.get(current); hide(); }); diff --git a/core/src/mindustry/ui/dialogs/ControlsDialog.java b/core/src/mindustry/ui/dialogs/ControlsDialog.java index a7179a4d0a..a8ed813e42 100644 --- a/core/src/mindustry/ui/dialogs/ControlsDialog.java +++ b/core/src/mindustry/ui/dialogs/ControlsDialog.java @@ -17,7 +17,7 @@ public class ControlsDialog extends KeybindDialog{ @Override public void addCloseButton(){ - buttons.addImageTextButton("$back", Icon.arrowLeftSmall, this::hide).size(230f, 64f); + buttons.addImageTextButton("$back", Icon.left, this::hide).size(230f, 64f); keyDown(key -> { if(key == KeyCode.ESCAPE || key == KeyCode.BACK) diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 73eb5a9efa..c65efdd919 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -35,12 +35,12 @@ public class CustomRulesDialog extends FloatingDialog{ banDialog.addCloseButton(); banDialog.shown(this::rebuildBanned); - banDialog.buttons.addImageTextButton("$addall", Icon.arrow16Small, () -> { + banDialog.buttons.addImageTextButton("$addall", Icon.add, () -> { rules.bannedBlocks.addAll(content.blocks().select(Block::isBuildable)); rebuildBanned(); }).size(180, 64f); - banDialog.buttons.addImageTextButton("$clear", Icon.trash16Small, () -> { + banDialog.buttons.addImageTextButton("$clear", Icon.trash, () -> { rules.bannedBlocks.clear(); rebuildBanned(); }).size(180, 64f); @@ -72,7 +72,7 @@ public class CustomRulesDialog extends FloatingDialog{ b.addImage(block.icon(Cicon.medium)).size(Cicon.medium.size).padRight(3); b.add(block.localizedName).color(Color.lightGray).padLeft(3).growX().left().wrap(); - b.addImageButton(Icon.cancelSmall, Styles.clearPartiali, () -> { + b.addImageButton(Icon.cancel, Styles.clearPartiali, () -> { rules.bannedBlocks.remove(block); rebuildBanned(); }).size(70f).pad(-4f).padLeft(0f); @@ -84,7 +84,7 @@ public class CustomRulesDialog extends FloatingDialog{ } }).get().setScrollYForce(previousScroll); banDialog.cont.row(); - banDialog.cont.addImageTextButton("$add", Icon.addSmall, () -> { + banDialog.cont.addImageTextButton("$add", Icon.add, () -> { FloatingDialog dialog = new FloatingDialog("$add"); dialog.cont.pane(t -> { t.left().margin(14f); diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index a78c5c0ccb..09ca900184 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -1,6 +1,7 @@ package mindustry.ui.dialogs; import arc.*; +import arc.input.*; import arc.struct.*; import arc.graphics.*; import arc.scene.event.*; @@ -15,6 +16,8 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.ui.*; +import static mindustry.Vars.ui; + public class DatabaseDialog extends FloatingDialog{ public DatabaseDialog(){ @@ -55,7 +58,7 @@ public class DatabaseDialog extends FloatingDialog{ for(int i = 0; i < array.size; i++){ UnlockableContent unlock = (UnlockableContent)array.get(i); - Image image = unlocked(unlock) ? new Image(unlock.icon(Cicon.medium)) : new Image(Icon.lockedSmall, Pal.gray); + Image image = unlocked(unlock) ? new Image(unlock.icon(Cicon.medium)) : new Image(Icon.lockOpen, Pal.gray); list.add(image).size(8*4).pad(3); ClickListener listener = new ClickListener(); image.addListener(listener); @@ -65,7 +68,14 @@ public class DatabaseDialog extends FloatingDialog{ } if(unlocked(unlock)){ - image.clicked(() -> Vars.ui.content.show(unlock)); + image.clicked(() -> { + if(Core.input.keyDown(KeyCode.SHIFT_LEFT) && Fonts.getUnicode(unlock.name) != 0){ + Core.app.setClipboardText((char)Fonts.getUnicode(unlock.name) + ""); + ui.showInfoFade("$copied"); + }else{ + Vars.ui.content.show(unlock); + } + }); image.addListener(new Tooltip(t -> t.background(Tex.button).add(unlock.localizedName))); } diff --git a/core/src/mindustry/ui/dialogs/DeployDialog.java b/core/src/mindustry/ui/dialogs/DeployDialog.java index f782d84824..812043d4d1 100644 --- a/core/src/mindustry/ui/dialogs/DeployDialog.java +++ b/core/src/mindustry/ui/dialogs/DeployDialog.java @@ -236,7 +236,7 @@ public class DeployDialog extends FloatingDialog{ button.labelWrap(zone.localizedName).style(Styles.outlineLabel).width(140).growX().get().setAlignment(Align.center); }else{ Cons flasher = zone.canUnlock() && !hidden(zone) ? e -> e.update(() -> e.getColor().set(Color.white).lerp(Pal.accent, Mathf.absin(3f, 1f))) : e -> {}; - flasher.get(button.addImage(Icon.locked).get()); + flasher.get(button.addImage(Icon.lock).get()); button.row(); flasher.get(button.add("$locked").get()); } diff --git a/core/src/mindustry/ui/dialogs/FileChooser.java b/core/src/mindustry/ui/dialogs/FileChooser.java index 31003af1bf..0b12900fed 100644 --- a/core/src/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/mindustry/ui/dialogs/FileChooser.java @@ -92,15 +92,15 @@ public class FileChooser extends FloatingDialog{ Table icontable = new Table(); - ImageButton up = new ImageButton(Icon.folderParent); + ImageButton up = new ImageButton(Icon.upOpen); up.clicked(() -> { directory = directory.parent(); updateFiles(true); }); - ImageButton back = new ImageButton(Icon.arrowLeft); - ImageButton forward = new ImageButton(Icon.arrowRight); + ImageButton back = new ImageButton(Icon.left); + ImageButton forward = new ImageButton(Icon.right); forward.clicked(() -> stack.forward()); back.clicked(() -> stack.back()); @@ -185,7 +185,7 @@ public class FileChooser extends FloatingDialog{ files.top().left(); Fi[] names = getFileNames(); - Image upimage = new Image(Icon.folderParentSmall); + Image upimage = new Image(Icon.upOpen); TextButton upbutton = new TextButton(".." + directory.toString(), Styles.clearTogglet); upbutton.clicked(() -> { directory = directory.parent(); @@ -228,7 +228,7 @@ public class FileChooser extends FloatingDialog{ button.setChecked(filename.equals(filefield.getText())); }); - Image image = new Image(file.isDirectory() ? Icon.folderSmall : Icon.fileTextSmall); + Image image = new Image(file.isDirectory() ? Icon.folder : Icon.fileText); button.add(image).padRight(4f).padLeft(4); button.getCells().reverse(); diff --git a/core/src/mindustry/ui/dialogs/FloatingDialog.java b/core/src/mindustry/ui/dialogs/FloatingDialog.java index 6204eb6682..13ea53e480 100644 --- a/core/src/mindustry/ui/dialogs/FloatingDialog.java +++ b/core/src/mindustry/ui/dialogs/FloatingDialog.java @@ -56,7 +56,7 @@ public class FloatingDialog extends Dialog{ @Override public void addCloseButton(){ buttons.defaults().size(210f, 64f); - buttons.addImageTextButton("$back", Icon.arrowLeft, this::hide).size(210f, 64f); + buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f, 64f); keyDown(key -> { if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index d3e154b3b1..397fee4f64 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -122,7 +122,7 @@ public class JoinDialog extends FloatingDialog{ inner.add(button.getLabel()).growX(); - inner.addImageButton(Icon.arrowUpSmall, Styles.emptyi, () -> { + inner.addImageButton(Icon.upOpen, Styles.emptyi, () -> { int index = servers.indexOf(server); if(index > 0){ servers.remove(index); @@ -139,25 +139,25 @@ public class JoinDialog extends FloatingDialog{ } } - }).margin(3f).padTop(6f).top().right(); + }).margin(3f).pad(2).padTop(6f).top().right(); - inner.addImageButton(Icon.loadingSmall, Styles.emptyi, () -> { + inner.addImageButton(Icon.refresh, Styles.emptyi, () -> { refreshServer(server); - }).margin(3f).padTop(6f).top().right(); + }).margin(3f).pad(2).padTop(6f).top().right(); - inner.addImageButton(Icon.pencilSmall, Styles.emptyi, () -> { + inner.addImageButton(Icon.pencil, Styles.emptyi, () -> { renaming = server; add.show(); - }).margin(3f).padTop(6f).top().right(); + }).margin(3f).pad(2).padTop(6f).top().right(); - inner.addImageButton(Icon.trash16Small, Styles.emptyi, () -> { + inner.addImageButton(Icon.trash, Styles.emptyi, () -> { ui.showConfirm("$confirm", "$server.delete", () -> { servers.removeValue(server, true); saveServers(); setupRemote(); refreshRemote(); }); - }).margin(3f).pad(6).top().right(); + }).margin(3f).pad(2).pad(6).top().right(); button.row(); @@ -179,7 +179,7 @@ public class JoinDialog extends FloatingDialog{ net.pingHost(server.ip, server.port, host -> setupServer(server, host), e -> { server.content.clear(); - server.content.add("$host.invalid"); + server.content.add("$host.invalid").padBottom(4); }); } @@ -212,6 +212,10 @@ public class JoinDialog extends FloatingDialog{ content.table(t -> { t.add("[lightgray]" + host.name + " " + versionString).width(targetWidth() - 10f).left().get().setEllipsis(true); t.row(); + if(!host.description.isEmpty()){ + t.add("[gray]" + host.description).width(targetWidth() - 10f).left().wrap(); + t.row(); + } t.add("[lightgray]" + (Core.bundle.format("players" + (host.players == 1 && host.playerLimit <= 0 ? ".single" : ""), (host.players == 0 ? "[lightgray]" : "[accent]") + host.players + (host.playerLimit > 0 ? "[lightgray]/[accent]" + host.playerLimit : "")+ "[lightgray]"))).left(); t.row(); t.add("[lightgray]" + Core.bundle.format("save.map", host.mapname) + "[lightgray] / " + host.mode.toString()).width(targetWidth() - 10f).left().get().setEllipsis(true); @@ -303,7 +307,7 @@ public class JoinDialog extends FloatingDialog{ local.background(Tex.button); local.add("$hosts.none").pad(10f); local.add().growX(); - local.addImageButton(Icon.loading, this::refreshLocal).pad(-12f).padLeft(0).size(70f); + local.addImageButton(Icon.refresh, this::refreshLocal).pad(-12f).padLeft(0).size(70f); }else{ local.background(null); } diff --git a/core/src/mindustry/ui/dialogs/LoadDialog.java b/core/src/mindustry/ui/dialogs/LoadDialog.java index 78e504e6e0..c933ed953b 100644 --- a/core/src/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadDialog.java @@ -71,7 +71,7 @@ public class LoadDialog extends FloatingDialog{ title.table(t -> { t.right(); - t.addImageButton(Icon.floppy, Styles.emptytogglei, () -> { + t.addImageButton(Icon.save, Styles.emptytogglei, () -> { slot.setAutosave(!slot.isAutosave()); }).checked(slot.isAutosave()).right(); diff --git a/core/src/mindustry/ui/dialogs/LoadoutDialog.java b/core/src/mindustry/ui/dialogs/LoadoutDialog.java index 9f84c3a616..27aec170c2 100644 --- a/core/src/mindustry/ui/dialogs/LoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LoadoutDialog.java @@ -42,9 +42,9 @@ public class LoadoutDialog extends FloatingDialog{ } }); - buttons.addImageTextButton("$back", Icon.arrowLeft, this::hide).size(210f, 64f); + buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f, 64f); - buttons.addImageTextButton("$settings.reset", Icon.refreshSmall, () -> { + buttons.addImageTextButton("$settings.reset", Icon.refresh, () -> { resetter.run(); reseed(); updater.run(); @@ -83,7 +83,7 @@ public class LoadoutDialog extends FloatingDialog{ updater.run(); }).size(bsize); - t.addImageButton(Icon.pencilSmaller, Styles.cleari, () -> ui.showTextInput("$configure", stack.item.localizedName, 10, stack.amount + "", true, str -> { + t.addImageButton(Icon.pencil, Styles.cleari, () -> ui.showTextInput("$configure", stack.item.localizedName, 10, stack.amount + "", true, str -> { if(Strings.canParsePostiveInt(str)){ int amount = Strings.parseInt(str); if(amount >= 0 && amount <= capacity){ diff --git a/core/src/mindustry/ui/dialogs/MapPlayDialog.java b/core/src/mindustry/ui/dialogs/MapPlayDialog.java index 052d18e461..9efcfd8e04 100644 --- a/core/src/mindustry/ui/dialogs/MapPlayDialog.java +++ b/core/src/mindustry/ui/dialogs/MapPlayDialog.java @@ -68,7 +68,7 @@ public class MapPlayDialog extends FloatingDialog{ cont.add(selmode); cont.row(); - cont.addImageTextButton("$customize", Icon.toolsSmall, () -> dialog.show(rules, () -> rules = map.applyRules(selectedGamemode))).width(230); + cont.addImageTextButton("$customize", Icon.settings, () -> dialog.show(rules, () -> rules = map.applyRules(selectedGamemode))).width(230); cont.row(); cont.add(new BorderImage(map.safeTexture(), 3f)).size(mobile && !Core.graphics.isPortrait() ? 150f : 250f).get().setScaling(Scaling.fit); //only maps with survival are valid for high scores diff --git a/core/src/mindustry/ui/dialogs/MapsDialog.java b/core/src/mindustry/ui/dialogs/MapsDialog.java index 99b4f40778..2f99b9a06b 100644 --- a/core/src/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/mindustry/ui/dialogs/MapsDialog.java @@ -44,10 +44,10 @@ public class MapsDialog extends FloatingDialog{ buttons.clearChildren(); if(Core.graphics.isPortrait()){ - buttons.addImageTextButton("$back", Icon.arrowLeft, this::hide).size(210f*2f, 64f).colspan(2); + buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f*2f, 64f).colspan(2); buttons.row(); }else{ - buttons.addImageTextButton("$back", Icon.arrowLeft, this::hide).size(210f, 64f); + buttons.addImageTextButton("$back", Icon.left, this::hide).size(210f, 64f); } buttons.addImageTextButton("$editor.newmap", Icon.add, () -> { @@ -67,7 +67,7 @@ public class MapsDialog extends FloatingDialog{ }); }).size(210f, 64f); - buttons.addImageTextButton("$editor.importmap", Icon.load, () -> { + buttons.addImageTextButton("$editor.importmap", Icon.upload, () -> { platform.showFileChooser(true, mapExtension, file -> { ui.loadAnd(() -> { maps.tryCatchMapError(() -> { @@ -192,7 +192,7 @@ public class MapsDialog extends FloatingDialog{ table.row(); - table.addImageTextButton("$editor.openin", Icon.loadMapSmall, () -> { + table.addImageTextButton("$editor.openin", Icon.export, () -> { try{ Vars.ui.editor.beginEditMap(map.file); dialog.hide(); @@ -203,7 +203,7 @@ public class MapsDialog extends FloatingDialog{ } }).fillX().height(54f).marginLeft(10); - table.addImageTextButton(map.workshop && steam ? "$view.workshop" : "$delete", map.workshop && steam ? Icon.linkSmall : Icon.trash16Small, () -> { + table.addImageTextButton(map.workshop && steam ? "$view.workshop" : "$delete", map.workshop && steam ? Icon.link : Icon.trash, () -> { if(map.workshop && steam){ platform.viewListing(map); }else{ diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 30b96c3610..8320c9eab9 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -120,18 +120,18 @@ public class ModsDialog extends FloatingDialog{ title.add("[accent]" + mod.meta.displayName() + "[lightgray] v" + mod.meta.version + (mod.enabled() ? "" : "\n" + Core.bundle.get("mod.disabled") + "")).width(200f).wrap(); title.add().growX(); - title.addImageTextButton(mod.enabled() ? "$mod.disable" : "$mod.enable", mod.enabled() ? Icon.arrowDownSmall : Icon.arrowUpSmall, Styles.cleart, () -> { + title.addImageTextButton(mod.enabled() ? "$mod.disable" : "$mod.enable", mod.enabled() ? Icon.downOpen : Icon.upOpen, Styles.cleart, () -> { mods.setEnabled(mod, !mod.enabled()); setup(); }).height(50f).margin(8f).width(130f).disabled(!mod.isSupported()); if(steam && !mod.hasSteamID()){ - title.addImageButton(Icon.loadMapSmall, Styles.cleari, () -> { + title.addImageButton(Icon.download, Styles.cleari, () -> { platform.publish(mod); }).size(50f); } - title.addImageButton(mod.hasSteamID() ? Icon.linkSmall : Icon.trash16Small, Styles.cleari, () -> { + title.addImageButton(mod.hasSteamID() ? Icon.link : Icon.trash, Styles.cleari, () -> { if(!mod.hasSteamID()){ ui.showConfirm("$confirm", "$mod.remove.confirm", () -> { mods.removeMod(mod); diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index 01d776bd3b..60abddc270 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -35,29 +35,29 @@ public class PausedDialog extends FloatingDialog{ }); if(!mobile){ - float dw = 210f; - cont.defaults().width(dw).height(50).pad(5f); + float dw = 220f; + cont.defaults().width(dw).height(55).pad(5f); - cont.addButton("$back", this::hide).colspan(2).width(dw * 2 + 20f); + cont.addImageTextButton("$back", Icon.left, this::hide).colspan(2).width(dw * 2 + 20f); cont.row(); if(world.isZone()){ - cont.addButton("$techtree", ui.tech::show); + cont.addImageTextButton("$techtree", Icon.tree, ui.tech::show); }else{ - cont.addButton("$database", ui.database::show); + cont.addImageTextButton("$database", Icon.book, ui.database::show); } - cont.addButton("$settings", ui.settings::show); + cont.addImageTextButton("$settings", Icon.settings, ui.settings::show); if(!state.rules.tutorial){ if(!world.isZone() && !state.isEditor()){ cont.row(); - cont.addButton("$savegame", save::show); - cont.addButton("$loadgame", load::show).disabled(b -> net.active()); + cont.addImageTextButton("$savegame", Icon.save, save::show); + cont.addImageTextButton("$loadgame", Icon.upload, load::show).disabled(b -> net.active()); } cont.row(); - cont.addButton("$hostserver", () -> { + cont.addImageTextButton("$hostserver", Icon.host, () -> { if(net.server() && steam){ platform.inviteFriends(); }else{ @@ -72,26 +72,29 @@ public class PausedDialog extends FloatingDialog{ cont.row(); - cont.addButton("$quit", this::showQuitConfirm).colspan(2).width(dw + 10f).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit")); + cont.addImageTextButton("$quit", Icon.exit, this::showQuitConfirm).colspan(2).width(dw + 20f).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit")); }else{ cont.defaults().size(130f).pad(5); - cont.addRowImageTextButton("$back", Icon.play2, this::hide); - cont.addRowImageTextButton("$settings", Icon.tools, ui.settings::show); + cont.addRowImageTextButton("$back", Icon.play, this::hide); + cont.addRowImageTextButton("$settings", Icon.settings, ui.settings::show); if(!world.isZone() && !state.isEditor()){ cont.addRowImageTextButton("$save", Icon.save, save::show); cont.row(); - cont.addRowImageTextButton("$load", Icon.load, load::show).disabled(b -> net.active()); + cont.addRowImageTextButton("$load", Icon.download, load::show).disabled(b -> net.active()); }else{ cont.row(); } cont.addRowImageTextButton("$hostserver.mobile", Icon.host, ui.host::show).disabled(b -> net.active()); - cont.addRowImageTextButton("$quit", Icon.quit, this::showQuitConfirm).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit")); + cont.addRowImageTextButton("$quit", Icon.exit, this::showQuitConfirm).update(s -> { + s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit"); + s.getLabelCell().growX().wrap(); + }); } } diff --git a/core/src/mindustry/ui/dialogs/SchematicsDialog.java b/core/src/mindustry/ui/dialogs/SchematicsDialog.java index 1747cdf2a0..86408921b9 100644 --- a/core/src/mindustry/ui/dialogs/SchematicsDialog.java +++ b/core/src/mindustry/ui/dialogs/SchematicsDialog.java @@ -32,7 +32,7 @@ public class SchematicsDialog extends FloatingDialog{ shouldPause = true; addCloseButton(); - buttons.addImageTextButton("$schematic.import", Icon.loadMapSmall, this::showImport); + buttons.addImageTextButton("$schematic.import", Icon.download, this::showImport); shown(this::setup); onResize(this::setup); } @@ -79,15 +79,15 @@ public class SchematicsDialog extends FloatingDialog{ ImageButtonStyle style = Styles.clearPartiali; - buttons.addImageButton(Icon.infoSmall, style, () -> { + buttons.addImageButton(Icon.info, style, () -> { showInfo(s); }); - buttons.addImageButton(Icon.loadMapSmall, style, () -> { + buttons.addImageButton(Icon.download, style, () -> { showExport(s); }); - buttons.addImageButton(Icon.pencilSmall, style, () -> { + buttons.addImageButton(Icon.pencil, style, () -> { ui.showTextInput("$schematic.rename", "$name", s.name(), res -> { s.tags.put("name", res); s.save(); @@ -96,9 +96,9 @@ public class SchematicsDialog extends FloatingDialog{ }); if(s.hasSteamID()){ - buttons.addImageButton(Icon.linkSmall, style, () -> platform.viewListing(s)); + buttons.addImageButton(Icon.link, style, () -> platform.viewListing(s)); }else{ - buttons.addImageButton(Icon.trash16Small, style, () -> { + buttons.addImageButton(Icon.trash, style, () -> { if(s.mod != null){ ui.showInfo(Core.bundle.format("mod.item.remove", s.mod.meta.displayName())); }else{ @@ -154,7 +154,7 @@ public class SchematicsDialog extends FloatingDialog{ TextButtonStyle style = Styles.cleart; t.defaults().size(280f, 60f).left(); t.row(); - t.addImageTextButton("$schematic.copy.import", Icon.copySmall, style, () -> { + t.addImageTextButton("$schematic.copy.import", Icon.copy, style, () -> { dialog.hide(); try{ Schematic s = Schematics.readBase64(Core.app.getClipboardText()); @@ -168,7 +168,7 @@ public class SchematicsDialog extends FloatingDialog{ } }).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null || !Core.app.getClipboardText().startsWith(schematicBaseStart)); t.row(); - t.addImageTextButton("$schematic.importfile", Icon.saveMapSmall, style, () -> platform.showFileChooser(true, schematicExtension, file -> { + t.addImageTextButton("$schematic.importfile", Icon.download, style, () -> platform.showFileChooser(true, schematicExtension, file -> { dialog.hide(); try{ @@ -183,7 +183,7 @@ public class SchematicsDialog extends FloatingDialog{ })).marginLeft(12f); t.row(); if(steam){ - t.addImageTextButton("$schematic.browseworkshop", Icon.wikiSmall, style, () -> { + t.addImageTextButton("$schematic.browseworkshop", Icon.book, style, () -> { dialog.hide(); platform.openWorkshop(); }).marginLeft(12f); @@ -203,18 +203,18 @@ public class SchematicsDialog extends FloatingDialog{ TextButtonStyle style = Styles.cleart; t.defaults().size(280f, 60f).left(); if(steam && !s.hasSteamID()){ - t.addImageTextButton("$schematic.shareworkshop", Icon.wikiSmall, style, + t.addImageTextButton("$schematic.shareworkshop", Icon.book, style, () -> platform.publish(s)).marginLeft(12f); t.row(); dialog.hide(); } - t.addImageTextButton("$schematic.copy", Icon.copySmall, style, () -> { + t.addImageTextButton("$schematic.copy", Icon.copy, style, () -> { dialog.hide(); ui.showInfoFade("$copied"); Core.app.setClipboardText(schematics.writeBase64(s)); }).marginLeft(12f); t.row(); - t.addImageTextButton("$schematic.exportfile", Icon.saveMapSmall, style, () -> platform.showFileChooser(false, schematicExtension, file -> { + t.addImageTextButton("$schematic.exportfile", Icon.export, style, () -> platform.showFileChooser(false, schematicExtension, file -> { dialog.hide(); try{ Schematics.write(s, file); @@ -272,7 +272,7 @@ public class SchematicsDialog extends FloatingDialog{ if(wasSet){ super.draw(); }else{ - Draw.rect(Icon.loading.getRegion(), x + width/2f, y + height/2f, width/4f, height/4f); + Draw.rect(Icon.refresh.getRegion(), x + width/2f, y + height/2f, width/4f, height/4f); } Draw.color(checked ? Pal.accent : borderColor); diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index 6f3d5022bf..df13b270ec 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -84,7 +84,7 @@ public class SettingsMenuDialog extends SettingsDialog{ t.defaults().size(270f, 60f).left(); TextButtonStyle style = Styles.cleart; - t.addImageTextButton("$settings.cleardata", Icon.trash16Small, style, () -> ui.showConfirm("$confirm", "$settings.clearall.confirm", () -> { + t.addImageTextButton("$settings.cleardata", Icon.trash, style, () -> ui.showConfirm("$confirm", "$settings.clearall.confirm", () -> { ObjectMap map = new ObjectMap<>(); for(String value : Core.settings.keys()){ if(value.contains("usid") || value.contains("uuid")){ @@ -104,7 +104,7 @@ public class SettingsMenuDialog extends SettingsDialog{ t.row(); - t.addImageTextButton("$data.export", Icon.loadMapSmall, style, () -> { + t.addImageTextButton("$data.export", Icon.download, style, () -> { if(ios){ Fi file = Core.files.local("mindustry-data-export.zip"); try{ @@ -128,7 +128,7 @@ public class SettingsMenuDialog extends SettingsDialog{ t.row(); - t.addImageTextButton("$data.import", Icon.saveMapSmall, style, () -> ui.showConfirm("$confirm", "$data.import.confirm", () -> platform.showFileChooser(true, "zip", file -> { + t.addImageTextButton("$data.import", Icon.download, style, () -> ui.showConfirm("$confirm", "$data.import.confirm", () -> platform.showFileChooser(true, "zip", file -> { try{ data.importData(file); Core.app.exit(); @@ -146,7 +146,7 @@ public class SettingsMenuDialog extends SettingsDialog{ if(!ios){ t.row(); - t.addImageTextButton("$data.openfolder", Icon.folderSmall, style, () -> Core.app.openFolder(Core.settings.getDataDirectory().absolutePath())); + t.addImageTextButton("$data.openfolder", Icon.folder, style, () -> Core.app.openFolder(Core.settings.getDataDirectory().absolutePath())); } }); @@ -295,7 +295,7 @@ public class SettingsMenuDialog extends SettingsDialog{ if(Core.settings.getBool("borderlesswindow")){ Core.app.post(() -> Core.graphics.setUndecorated(true)); } - }else{ + }else if(!ios){ graphics.checkPref("landscape", false, b -> { if(b){ platform.beginForceLandscape(); @@ -362,7 +362,7 @@ public class SettingsMenuDialog extends SettingsDialog{ @Override public void addCloseButton(){ - buttons.addImageTextButton("$back", Icon.arrowLeftSmaller, () -> { + buttons.addImageTextButton("$back", Icon.leftOpen, () -> { if(prefs.getChildren().first() != menu){ back(); }else{ diff --git a/core/src/mindustry/ui/dialogs/TechTreeDialog.java b/core/src/mindustry/ui/dialogs/TechTreeDialog.java index 10a7c6f6eb..3a166c3995 100644 --- a/core/src/mindustry/ui/dialogs/TechTreeDialog.java +++ b/core/src/mindustry/ui/dialogs/TechTreeDialog.java @@ -60,7 +60,7 @@ public class TechTreeDialog extends FloatingDialog{ addCloseButton(); - buttons.addImageTextButton("$database", Icon.database, () -> { + buttons.addImageTextButton("$database", Icon.book, () -> { hide(); ui.database.show(); }).size(210f, 64f); @@ -324,7 +324,7 @@ public class TechTreeDialog extends FloatingDialog{ infoTable.table(b -> { b.margin(0).left().defaults().left(); - b.addImageButton(Icon.infoSmall, Styles.cleari, () -> ui.content.show(node.block)).growY().width(50f); + b.addImageButton(Icon.info, Styles.cleari, () -> ui.content.show(node.block)).growY().width(50f); b.add().grow(); b.table(desc -> { desc.left().defaults().left(); @@ -351,7 +351,7 @@ public class TechTreeDialog extends FloatingDialog{ if(mobile && locked(node)){ b.row(); - b.addImageTextButton("$research", Icon.checkSmall, Styles.nodet, () -> unlock(node)) + b.addImageTextButton("$research", Icon.ok, Styles.nodet, () -> unlock(node)) .disabled(i -> !data.hasItems(node.requirements)).growX().height(44f).colspan(3); } }); diff --git a/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java b/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java index 266c53b014..6b90a0ec1e 100644 --- a/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java +++ b/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java @@ -45,7 +45,7 @@ public class ZoneInfoDialog extends FloatingDialog{ if(i++ % 2 == 0){ iteminfo.row(); } - iteminfo.addImage(stack.item.icon(mindustry.ui.Cicon.small)).size(8 * 3).padRight(1); + iteminfo.addImage(stack.item.icon(Cicon.small)).size(8 * 3).padRight(1); iteminfo.add(stack.amount + "").color(Color.lightGray).padRight(5); } }; @@ -54,7 +54,7 @@ public class ZoneInfoDialog extends FloatingDialog{ cont.pane(cont -> { if(zone.locked()){ - cont.addImage(Icon.locked); + cont.addImage(Icon.lock); cont.row(); cont.add("$locked").padBottom(6); cont.row(); @@ -71,7 +71,7 @@ public class ZoneInfoDialog extends FloatingDialog{ for(Objective o : zones){ r.addImage(Icon.terrain).padRight(4); r.add(o.display()).color(Color.lightGray); - r.addImage(o.complete() ? Icon.checkSmall : Icon.cancelSmall, o.complete() ? Color.lightGray : Color.scarlet).padLeft(3); + r.addImage(o.complete() ? Icon.ok : Icon.cancel, o.complete() ? Color.lightGray : Color.scarlet).padLeft(3); r.row(); } }); @@ -85,9 +85,9 @@ public class ZoneInfoDialog extends FloatingDialog{ r.add("$research.list").colspan(2).left(); r.row(); for(Unlock blocko : blocks){ - r.addImage(blocko.block.icon(mindustry.ui.Cicon.small)).size(8 * 3).padRight(5); + r.addImage(blocko.block.icon(Cicon.small)).size(8 * 3).padRight(5); r.add(blocko.block.localizedName).color(Color.lightGray).left(); - r.addImage(blocko.block.unlocked() ? Icon.checkSmall : Icon.cancelSmall, blocko.block.unlocked() ? Color.lightGray : Color.scarlet).padLeft(3); + r.addImage(blocko.block.unlocked() ? Icon.ok : Icon.cancel, blocko.block.unlocked() ? Color.lightGray : Color.scarlet).padLeft(3); r.row(); } diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java index c4cc71cc5a..926c56460a 100644 --- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java @@ -1,8 +1,6 @@ package mindustry.ui.fragments; import arc.*; -import mindustry.annotations.Annotations.*; -import arc.struct.*; import arc.func.*; import arc.graphics.g2d.*; import arc.input.*; @@ -13,14 +11,18 @@ import arc.scene.actions.*; import arc.scene.event.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; +import mindustry.annotations.Annotations.*; import mindustry.core.GameState.*; import mindustry.entities.*; import mindustry.entities.type.*; import mindustry.game.EventType.*; import mindustry.gen.*; +import mindustry.net.Administration.*; +import mindustry.net.*; import mindustry.type.*; -import mindustry.ui.Cicon; +import mindustry.ui.*; import mindustry.world.*; import static mindustry.Vars.*; @@ -37,7 +39,14 @@ public class BlockInventoryFragment extends Fragment{ @Remote(called = Loc.server, targets = Loc.both, forward = true) public static void requestItem(Player player, Tile tile, Item item, int amount){ if(player == null || tile == null || !tile.interactable(player.getTeam())) return; - if(!Units.canInteract(player, tile)) return; + amount = Mathf.clamp(amount, 0, player.getItemCapacity()); + int fa = amount; + + if(net.server() && (!Units.canInteract(player, tile) || + !netServer.admins.allowAction(player, ActionType.withdrawItem, tile, action -> { + action.item = item; + action.itemAmount = fa; + }))) throw new ValidateException(player, "Player cannot request items."); int removed = tile.block().removeStack(tile, item, amount); diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index 688923924c..e3a7e3a227 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -62,12 +62,12 @@ public class HudFragment extends Fragment{ ImageButtonStyle style = Styles.clearTransi; - select.addImageButton(Icon.menuLargeSmall, style, ui.paused::show); - flip = select.addImageButton(Icon.arrowUpSmall, style, this::toggleMenus).get(); + select.addImageButton(Icon.menu, style, ui.paused::show); + flip = select.addImageButton(Icon.upOpen, style, this::toggleMenus).get(); - select.addImageButton(Icon.pasteSmall, style, ui.schematics::show); + select.addImageButton(Icon.paste, style, ui.schematics::show); - select.addImageButton(Icon.pauseSmall, style, () -> { + select.addImageButton(Icon.pause, style, () -> { if(net.active()){ ui.listfrag.toggle(); }else{ @@ -75,14 +75,14 @@ public class HudFragment extends Fragment{ } }).name("pause").update(i -> { if(net.active()){ - i.getStyle().imageUp = Icon.playersSmall; + i.getStyle().imageUp = Icon.user; }else{ i.setDisabled(false); - i.getStyle().imageUp = state.is(State.paused) ? Icon.playSmall : Icon.pauseSmall; + i.getStyle().imageUp = state.is(State.paused) ? Icon.play : Icon.pause; } }); - select.addImageButton(Icon.chatSmall, style,() -> { + select.addImageButton(Icon.chat, style,() -> { if(net.active() && mobile){ if(ui.chatfrag.shown()){ ui.chatfrag.hide(); @@ -96,9 +96,9 @@ public class HudFragment extends Fragment{ } }).update(i -> { if(net.active() && mobile){ - i.getStyle().imageUp = Icon.chatSmall; + i.getStyle().imageUp = Icon.chat; }else{ - i.getStyle().imageUp = Icon.databaseSmall; + i.getStyle().imageUp = Icon.book; } }); @@ -203,7 +203,7 @@ public class HudFragment extends Fragment{ float[] position = {0, 0}; t.row(); - t.addImageTextButton("$editor.removeunit", Icon.quit, Styles.togglet, () -> {}).fillX().update(b -> { + t.addImageTextButton("$editor.removeunit", Icon.cancel, Styles.togglet, () -> {}).fillX().update(b -> { boolean[] found = {false}; if(b.isChecked()){ Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true); @@ -319,7 +319,7 @@ public class HudFragment extends Fragment{ setDisabled(() -> !control.tutorial.canNext()); }}, new Table(f -> { - f.left().addImageButton(Icon.arrowLeftSmall, Styles.emptyi, () -> { + f.left().addImageButton(Icon.left, Styles.emptyi, () -> { control.tutorial.prevSentence(); }).width(44f).growY().visible(() -> control.tutorial.canPrev()); })); @@ -393,7 +393,7 @@ public class HudFragment extends Fragment{ } }); table.margin(12); - table.addImage(Icon.check).pad(3); + table.addImage(Icon.ok).pad(3); table.add(text).wrap().width(280f).get().setAlignment(Align.center, Align.center); table.pack(); @@ -562,7 +562,7 @@ public class HudFragment extends Fragment{ private void toggleMenus(){ if(flip != null){ - flip.getStyle().imageUp = shown ? Icon.arrowDownSmall : Icon.arrowUpSmall; + flip.getStyle().imageUp = shown ? Icon.downOpen : Icon.upOpen; } shown = !shown; @@ -650,7 +650,7 @@ public class HudFragment extends Fragment{ } private void addPlayButton(Table table){ - table.right().addImageButton(Icon.playSmaller, Styles.righti, 30f, () -> { + table.right().addImageButton(Icon.play, Styles.righti, 30f, () -> { if(net.client() && player.isAdmin){ Call.onAdminRequest(player, AdminAction.wave); }else if(inLaunchWave()){ diff --git a/core/src/mindustry/ui/fragments/MenuFragment.java b/core/src/mindustry/ui/fragments/MenuFragment.java index d68388ac69..3425de4a55 100644 --- a/core/src/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/mindustry/ui/fragments/MenuFragment.java @@ -60,7 +60,7 @@ public class MenuFragment extends Fragment{ parent.fill(c -> c.bottom().left().addButton("", Styles.infot, ui.about::show).size(84, 45)); parent.fill(c -> c.bottom().right().addButton("", Styles.discordt, ui.discord::show).size(84, 45)); }else if(becontrol.active()){ - parent.fill(c -> c.bottom().right().addImageTextButton("$be.check", Icon.refreshSmall, () -> { + parent.fill(c -> c.bottom().right().addImageTextButton("$be.check", Icon.refresh, () -> { ui.loadfrag.show(); becontrol.checkUpdate(result -> { ui.loadfrag.hide(); @@ -100,13 +100,13 @@ public class MenuFragment extends Fragment{ container.defaults().size(size).pad(5).padTop(4f); MobileButton - play = new MobileButton(Icon.play2, "$campaign", () -> checkPlay(ui.planet::show)), - custom = new MobileButton(Icon.playCustom, "$customgame", () -> checkPlay(ui.custom::show)), - maps = new MobileButton(Icon.load, "$loadgame", () -> checkPlay(ui.load::show)), + play = new MobileButton(Icon.play, "$campaign", () -> checkPlay(ui.planet::show)), + custom = new MobileButton(Icon.rightOpenOut, "$customgame", () -> checkPlay(ui.custom::show)), + maps = new MobileButton(Icon.download, "$loadgame", () -> checkPlay(ui.load::show)), join = new MobileButton(Icon.add, "$joingame", () -> checkPlay(ui.join::show)), - editor = new MobileButton(Icon.editor, "$editor", () -> checkPlay(ui.maps::show)), - tools = new MobileButton(Icon.tools, "$settings", ui.settings::show), - mods = new MobileButton(Icon.wiki, "$mods", ui.mods::show), + editor = new MobileButton(Icon.terrain, "$editor", () -> checkPlay(ui.maps::show)), + tools = new MobileButton(Icon.settings, "$settings", ui.settings::show), + mods = new MobileButton(Icon.book, "$mods", ui.mods::show), donate = new MobileButton(Icon.link, "$website", () -> Core.net.openURI("https://anuke.itch.io/mindustry")), exit = new MobileButton(Icon.exit, "$quit", () -> Core.app.exit()); @@ -164,20 +164,20 @@ public class MenuFragment extends Fragment{ t.defaults().width(width).height(70f); buttons(t, - new Buttoni("$play", Icon.play2Small, - new Buttoni("$campaign", Icon.play2Small, () -> checkPlay(ui.planet::show)), - new Buttoni("$joingame", Icon.addSmall, () -> checkPlay(ui.join::show)), - new Buttoni("$customgame", Icon.editorSmall, () -> checkPlay(ui.custom::show)), - new Buttoni("$loadgame", Icon.loadSmall, () -> checkPlay(ui.load::show)), - new Buttoni("$tutorial", Icon.infoSmall, () -> checkPlay(control::playTutorial)) + new Buttoni("$play", Icon.play, + new Buttoni("$campaign", Icon.play, () -> checkPlay(ui.planet::show)), + new Buttoni("$joingame", Icon.add, () -> checkPlay(ui.join::show)), + new Buttoni("$customgame", Icon.terrain, () -> checkPlay(ui.custom::show)), + new Buttoni("$loadgame", Icon.download, () -> checkPlay(ui.load::show)), + new Buttoni("$tutorial", Icon.info, () -> checkPlay(control::playTutorial)) ), - new Buttoni("$editor", Icon.editorSmall, () -> checkPlay(ui.maps::show)), steam ? new Buttoni("$workshop", Icon.saveSmall, platform::openWorkshop) : null, - new Buttoni(Core.bundle.get("mods") + "\n" + Core.bundle.get("mods.alpha"), Icon.wikiSmall, ui.mods::show), + new Buttoni("$editor", Icon.terrain, () -> checkPlay(ui.maps::show)), steam ? new Buttoni("$workshop", Icon.save, platform::openWorkshop) : null, + new Buttoni(Core.bundle.get("mods"), Icon.bookOpen, ui.mods::show), //not enough space for this button - //new Buttoni("$schematics", Icon.pasteSmall, ui.schematics::show), - new Buttoni("$settings", Icon.toolsSmall, ui.settings::show), - new Buttoni("$about.button", Icon.infoSmall, ui.about::show), - new Buttoni("$quit", Icon.exitSmall, Core.app::exit) + //new Buttoni("$schematics", Icon.paste, ui.schematics::show), + new Buttoni("$settings", Icon.settings, ui.settings::show), + new Buttoni("$about.button", Icon.info, ui.about::show), + new Buttoni("$quit", Icon.exit, Core.app::exit) ); }).width(width).growY(); diff --git a/core/src/mindustry/ui/fragments/MinimapFragment.java b/core/src/mindustry/ui/fragments/MinimapFragment.java index d13fed8936..4a5c60a8d1 100644 --- a/core/src/mindustry/ui/fragments/MinimapFragment.java +++ b/core/src/mindustry/ui/fragments/MinimapFragment.java @@ -100,7 +100,7 @@ public class MinimapFragment extends Fragment{ t.row(); t.add().growY(); t.row(); - t.addImageTextButton("$back", Icon.backSmall, () -> shown = false).size(220f, 60f).pad(10f); + t.addImageTextButton("$back", Icon.leftOpen, () -> shown = false).size(220f, 60f).pad(10f); }); } diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index f02b0ab54f..cf454a288f 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -1,14 +1,15 @@ package mindustry.ui.fragments; import arc.*; -import arc.struct.*; import arc.graphics.*; +import arc.input.*; import arc.math.geom.*; import arc.scene.*; import arc.scene.event.*; import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; import mindustry.content.*; import mindustry.entities.traits.BuilderTrait.*; @@ -19,7 +20,6 @@ import mindustry.graphics.*; import mindustry.input.*; import mindustry.type.*; import mindustry.ui.*; -import mindustry.ui.Cicon; import mindustry.world.*; import static mindustry.Vars.*; @@ -202,14 +202,18 @@ public class PlacementFragment extends Fragment{ blockTable.row(); } - ImageButton button = blockTable.addImageButton(Icon.lockedSmall, Styles.selecti, () -> { + ImageButton button = blockTable.addImageButton(new TextureRegionDrawable(block.icon(Cicon.medium)), Styles.selecti, () -> { if(unlocked(block)){ - control.input.block = control.input.block == block ? null : block; - selectedBlocks.put(currentCategory, control.input.block); + if(Core.input.keyDown(KeyCode.SHIFT_LEFT) && Fonts.getUnicode(block.name) != 0){ + Core.app.setClipboardText((char)Fonts.getUnicode(block.name) + ""); + ui.showInfoFade("$copied"); + }else{ + control.input.block = control.input.block == block ? null : block; + selectedBlocks.put(currentCategory, control.input.block); + } } }).size(46f).group(group).name("block-" + block.name).get(); - - button.getStyle().imageUp = new TextureRegionDrawable(block.icon(Cicon.medium)); + button.resizeImage(Cicon.medium.size); button.update(() -> { //color unplacable things gray TileEntity core = player.getClosestCore(); @@ -311,7 +315,7 @@ public class PlacementFragment extends Fragment{ if(state.rules.bannedBlocks.contains(lastDisplay)){ topTable.row(); topTable.table(b -> { - b.addImage(Icon.cancelSmall).padRight(2).color(Color.scarlet); + b.addImage(Icon.cancel).padRight(2).color(Color.scarlet); b.add("$banned"); b.left(); }).padTop(2).left(); @@ -378,7 +382,7 @@ public class PlacementFragment extends Fragment{ continue; } - categories.addImageButton(Core.atlas.drawable("icon-" + cat.name() + "-smaller"), Styles.clearToggleTransi, () -> { + categories.addImageButton(ui.getIcon(cat.name()), Styles.clearToggleTransi, () -> { currentCategory = cat; if(control.input.block != null){ control.input.block = getSelectedBlock(currentCategory); diff --git a/core/src/mindustry/ui/fragments/PlayerListFragment.java b/core/src/mindustry/ui/fragments/PlayerListFragment.java index ea6f6087c1..7a29b7ffb0 100644 --- a/core/src/mindustry/ui/fragments/PlayerListFragment.java +++ b/core/src/mindustry/ui/fragments/PlayerListFragment.java @@ -104,14 +104,14 @@ public class PlayerListFragment extends Fragment{ button.table(t -> { t.defaults().size(bs); - t.addImageButton(Icon.banSmall, Styles.clearPartiali, + t.addImageButton(Icon.hammer, Styles.clearPartiali, () -> ui.showConfirm("$confirm", "$confirmban", () -> Call.onAdminRequest(user, AdminAction.ban))); - t.addImageButton(Icon.cancelSmall, Styles.clearPartiali, + t.addImageButton(Icon.cancel, Styles.clearPartiali, () -> ui.showConfirm("$confirm", "$confirmkick", () -> Call.onAdminRequest(user, AdminAction.kick))); t.row(); - t.addImageButton(Icon.adminSmall, Styles.clearTogglePartiali, () -> { + t.addImageButton(Icon.admin, Styles.clearTogglePartiali, () -> { if(net.client()) return; String id = user.uuid; @@ -127,13 +127,13 @@ public class PlayerListFragment extends Fragment{ .touchable(() -> net.client() ? Touchable.disabled : Touchable.enabled) .checked(user.isAdmin); - t.addImageButton(Icon.zoomSmall, Styles.clearPartiali, () -> Call.onAdminRequest(user, AdminAction.trace)); + t.addImageButton(Icon.zoom, Styles.clearPartiali, () -> Call.onAdminRequest(user, AdminAction.trace)); }).padRight(12).size(bs + 10f, bs); - }else if((!user.isLocal && !user.isAdmin) && net.client() && playerGroup.size() >= 3 && player.getTeam() != user.getTeam()){ //votekick + }else if(!user.isLocal && !user.isAdmin && net.client() && playerGroup.size() >= 3 && player.getTeam() == user.getTeam()){ //votekick button.add().growY(); - button.addImageButton(Icon.banSmall, Styles.clearPartiali, + button.addImageButton(Icon.hammer, Styles.clearPartiali, () -> ui.showConfirm("$confirm", "$confirmvotekick", () -> Call.sendChatMessage("/votekick " + user.name))).size(h); } diff --git a/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java b/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java index 378359f631..020f345598 100644 --- a/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java +++ b/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java @@ -53,7 +53,7 @@ public class ScriptConsoleFragment extends Table{ clearChatInput(); } - return shown && Vars.net.active(); + return shown && !Vars.net.active(); }); update(() -> { diff --git a/core/src/mindustry/world/Build.java b/core/src/mindustry/world/Build.java index b8d41df4f0..1e20da65e8 100644 --- a/core/src/mindustry/world/Build.java +++ b/core/src/mindustry/world/Build.java @@ -1,17 +1,15 @@ package mindustry.world; -import mindustry.annotations.Annotations.Loc; -import mindustry.annotations.Annotations.Remote; -import arc.Core; -import arc.Events; -import arc.math.Mathf; +import arc.*; +import arc.math.*; import arc.math.geom.*; -import mindustry.content.Blocks; -import mindustry.entities.Units; -import mindustry.game.EventType.BlockBuildBeginEvent; -import mindustry.game.Team; -import mindustry.world.blocks.BuildBlock; -import mindustry.world.blocks.BuildBlock.BuildEntity; +import mindustry.annotations.Annotations.*; +import mindustry.content.*; +import mindustry.entities.*; +import mindustry.game.EventType.*; +import mindustry.game.*; +import mindustry.world.blocks.*; +import mindustry.world.blocks.BuildBlock.*; import static mindustry.Vars.*; diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index cb7498138d..697dda9401 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -98,7 +98,7 @@ public class MessageBlock extends Block{ public void buildConfiguration(Tile tile, Table table){ MessageBlockEntity entity = tile.ent(); - table.addImageButton(Icon.pencilSmall, () -> { + table.addImageButton(Icon.pencil, () -> { if(mobile){ Core.input.getTextInput(new TextInput(){{ text = entity.message; diff --git a/core/src/mindustry/world/blocks/power/LightBlock.java b/core/src/mindustry/world/blocks/power/LightBlock.java index ad65313954..82637dd410 100644 --- a/core/src/mindustry/world/blocks/power/LightBlock.java +++ b/core/src/mindustry/world/blocks/power/LightBlock.java @@ -52,7 +52,7 @@ public class LightBlock extends Block{ public void buildConfiguration(Tile tile, Table table){ LightEntity entity = tile.ent(); - table.addImageButton(Icon.pencilSmall, () -> { + table.addImageButton(Icon.pencil, () -> { ui.picker.show(Tmp.c1.set(entity.color).a(0.5f), false, res -> { entity.color = res.rgba(); lastColor = entity.color; diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index 64ab3783c2..7361b8f4bb 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -1,6 +1,6 @@ package mindustry.world.blocks.production; -import arc.graphics.*; +import arc.*; import arc.graphics.g2d.*; import arc.math.*; import arc.util.ArcAnnotate.*; @@ -15,15 +15,11 @@ import mindustry.world.meta.values.*; * Extracts a random list of items from an input item and an input liquid. */ public class Separator extends Block{ - protected @NonNull ItemStack[] results; - protected float craftTime; - protected float spinnerRadius = 2.5f; - protected float spinnerLength = 1f; - protected float spinnerThickness = 1f; - protected float spinnerSpeed = 2f; + public @NonNull ItemStack[] results; + public float craftTime; - protected Color color = Color.valueOf("858585"); - protected int liquidRegion; + public int liquidRegion, spinnerRegion; + public float spinnerSpeed = 3f; public Separator(String name){ super(name); @@ -33,6 +29,7 @@ public class Separator extends Block{ hasLiquids = true; liquidRegion = reg("-liquid"); + spinnerRegion = reg("-spinner"); entityType = GenericCrafterEntity::new; } @@ -70,10 +67,10 @@ public class Separator extends Block{ Draw.alpha(tile.entity.liquids.total() / liquidCapacity); Draw.rect(reg(liquidRegion), tile.drawx(), tile.drawy()); - Draw.color(color); - Lines.stroke(spinnerThickness); - Lines.spikes(tile.drawx(), tile.drawy(), spinnerRadius, spinnerLength, 3, entity.totalProgress * spinnerSpeed); Draw.reset(); + if(Core.atlas.isFound(reg(spinnerRegion))){ + Draw.rect(reg(spinnerRegion), tile.drawx(), tile.drawy(), entity.totalProgress * spinnerSpeed); + } } @Override diff --git a/core/src/mindustry/world/blocks/units/CommandCenter.java b/core/src/mindustry/world/blocks/units/CommandCenter.java index be82783269..6676ebf9c8 100644 --- a/core/src/mindustry/world/blocks/units/CommandCenter.java +++ b/core/src/mindustry/world/blocks/units/CommandCenter.java @@ -66,7 +66,7 @@ public class CommandCenter extends Block{ super.load(); for(UnitCommand cmd : UnitCommand.all){ - commandRegions[cmd.ordinal()] = Core.atlas.find("icon-command-" + cmd.name() + "-small"); + commandRegions[cmd.ordinal()] = Core.atlas.find("Icon.command-" + cmd.name() + "-"); } } @@ -91,7 +91,7 @@ public class CommandCenter extends Block{ Table buttons = new Table(); for(UnitCommand cmd : UnitCommand.all){ - buttons.addImageButton(Core.atlas.drawable("icon-command-" + cmd.name() + "-small"), Styles.clearToggleTransi, () -> tile.configure(cmd.ordinal())) + buttons.addImageButton(Core.atlas.drawable("Icon.command-" + cmd.name() + "-"), Styles.clearToggleTransi, () -> tile.configure(cmd.ordinal())) .size(44).group(group).update(b -> b.setChecked(entity.command == cmd)); } table.add(buttons); diff --git a/desktop/src/mindustry/desktop/steam/SNet.java b/desktop/src/mindustry/desktop/steam/SNet.java index cb23befebe..579b2b39c6 100644 --- a/desktop/src/mindustry/desktop/steam/SNet.java +++ b/desktop/src/mindustry/desktop/steam/SNet.java @@ -76,14 +76,7 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback, } net.handleServerReceived(con, output); - }catch(RuntimeException e){ - if(e.getCause() instanceof ValidateException){ - ValidateException v = (ValidateException)e.getCause(); - Log.err("Validation failed: {0} ({1})", v.player.name, v.getMessage()); - }else{ - Log.err(e); - } - }catch(Exception e){ + }catch(Throwable e){ Log.err(e); } }else if(currentServer != null && fromID == currentServer.getAccountID()){ @@ -322,7 +315,8 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback, Strings.parseInt(smat.getLobbyData(lobby, "version"), -1), smat.getLobbyData(lobby, "versionType"), Gamemode.valueOf(smat.getLobbyData(lobby, "gamemode")), - smat.getLobbyMemberLimit(lobby) + smat.getLobbyMemberLimit(lobby), + "" ); hosts.add(out); }catch(Exception e){ diff --git a/desktop/src/mindustry/desktop/steam/SWorkshop.java b/desktop/src/mindustry/desktop/steam/SWorkshop.java index 4ede21944e..92de0fec07 100644 --- a/desktop/src/mindustry/desktop/steam/SWorkshop.java +++ b/desktop/src/mindustry/desktop/steam/SWorkshop.java @@ -101,12 +101,12 @@ public class SWorkshop implements SteamUGCCallback{ dialog.cont.add("$workshop.menu").pad(20f); dialog.addCloseButton(); - dialog.buttons.addImageTextButton("$view.workshop", Icon.linkSmall, () -> { + dialog.buttons.addImageTextButton("$view.workshop", Icon.link, () -> { viewListingID(id); dialog.hide(); }).size(210f, 64f); - dialog.buttons.addImageTextButton("$workshop.update", Icon.upgradeSmall, () -> { + dialog.buttons.addImageTextButton("$workshop.update", Icon.up, () -> { new FloatingDialog("$workshop.update"){{ setFillParent(false); cont.margin(10).add("$changelog").padRight(6f); @@ -181,11 +181,11 @@ public class SWorkshop implements SteamUGCCallback{ dialog.setFillParent(false); dialog.cont.add("$publish.confirm").width(600f).wrap(); dialog.addCloseButton(); - dialog.buttons.addImageTextButton("$eula", Icon.linkSmall, + dialog.buttons.addImageTextButton("$eula", Icon.link, () -> SVars.net.friends.activateGameOverlayToWebPage("https://steamcommunity.com/sharedfiles/workshoplegalagreement")) .size(210f, 64f); - dialog.buttons.addImageTextButton("$ok", Icon.checkSmall, () -> { + dialog.buttons.addImageTextButton("$ok", Icon.ok, () -> { Log.info("Accepted, publishing item..."); itemHandlers.add(published); ugc.createItem(SVars.steamID, WorkshopFileType.Community); diff --git a/fastlane/metadata/android/zh-TW/full_description.txt b/fastlane/metadata/android/zh-TW/full_description.txt new file mode 100644 index 0000000000..6a0092cdbf --- /dev/null +++ b/fastlane/metadata/android/zh-TW/full_description.txt @@ -0,0 +1,14 @@ +建立精密的輸送帶供應鏈,提供砲塔彈藥,生產建築原料,保護您的建築物並抵禦入侵的敵人。在跨平臺的多人合作遊戲中和朋友一起玩,或在團隊 PvP 比賽中向他們挑戰。 + +包含了以下特色: +- 24 張內建地圖 +- 有科技樹與可解鎖區域的戰役 +- 可擊敗 4 波強大的魔王 +- 能源、液體與物品運輸系統 +- 19 種不同類型的無人機、機甲與飛船 +- 研究 120 種以上的科技 +- 75 種以上不同的環境方塊 +- 透過區域網路或專用伺服器遊玩跨平臺多人遊戲 +- 自訂遊戲規則:變更方塊花費、敵方屬性、起始物品、敵人來襲的間隔時間等 +- 強大的編輯器,有工具可將噪音、變形、平滑、腐蝕、對稱、礦物生成與隨機地形套用到您的地圖上 +- 設定敵人攻擊佈局 diff --git a/fastlane/metadata/android/zh-TW/short_description.txt b/fastlane/metadata/android/zh-TW/short_description.txt new file mode 100644 index 0000000000..fc87660b42 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/short_description.txt @@ -0,0 +1 @@ +一款側重資源管理的開放式塔防遊戲。 diff --git a/fastlane/metadata/android/zh-TW/summary.txt b/fastlane/metadata/android/zh-TW/summary.txt new file mode 100644 index 0000000000..fc87660b42 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/summary.txt @@ -0,0 +1 @@ +一款側重資源管理的開放式塔防遊戲。 diff --git a/fastlane/metadata/android/zh-TW/title.txt b/fastlane/metadata/android/zh-TW/title.txt new file mode 100644 index 0000000000..2beb939017 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/title.txt @@ -0,0 +1 @@ +Mindustry \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 8910adac73..06c53cec45 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=2868291fbe70f3719efaa18414162d127a9aa774 +archash=ff62d39e0fa294117a885010b05b2b29412b4024 diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index e32a5b302d..566656b4a5 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -805,6 +805,22 @@ public class ServerControl implements ApplicationListener{ } }); + handler.register("search", "", "Search players who have used part of a name.", arg -> { + + ObjectSet infos = netServer.admins.searchNames(arg[0]); + + if(infos.size > 0){ + info("&lgPlayers found: {0}", infos.size); + + int i = 0; + for(PlayerInfo info : infos){ + info("- &lc[{0}] &ly'{1}'&lc / &lm{2}", i++, info.lastName, info.id); + } + }else{ + info("Nobody with that name could be found."); + } + }); + handler.register("gc", "Trigger a grabage struct. Testing only.", arg -> { int pre = (int)(Core.app.getJavaHeap() / 1024 / 1024); System.gc(); diff --git a/tools/build.gradle b/tools/build.gradle index 033040e96d..fa4c1ca32b 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -303,19 +303,6 @@ task pack(dependsOn: classes){ workingDir = genFolder } - //upscale icon sprites using different method, which requires an OpenGL context - javaexec{ - if(System.getProperty("os.name").toLowerCase().contains("mac")){ - jvmArgs "-XstartOnFirstThread" - } - - jvmArgs("-Djava.awt.headless=true") - main = "mindustry.tools.Upscaler" - classpath = sourceSets.main.runtimeClasspath - standardInput = System.in - workingDir = "../core/assets-raw/sprites_out/ui/icons" - } - copy{ from "../core/assets-raw/sprites_out/ui/icons" into "../core/assets-raw/sprites_out/ui/" @@ -366,3 +353,10 @@ task updateBundles(dependsOn: classes, type: JavaExec){ standardInput = System.in workingDir = "../core/assets/bundles/" } + +task fontgen(dependsOn: classes, type: JavaExec){ + main = "mindustry.tools.FontGenerator" + classpath = sourceSets.main.runtimeClasspath + standardInput = System.in + workingDir = "../" +} diff --git a/tools/src/mindustry/tools/FontGenerator.java b/tools/src/mindustry/tools/FontGenerator.java new file mode 100644 index 0000000000..32bbc121cf --- /dev/null +++ b/tools/src/mindustry/tools/FontGenerator.java @@ -0,0 +1,53 @@ +package mindustry.tools; + +import arc.*; +import arc.files.*; +import arc.util.*; +import arc.util.io.*; + +import java.io.*; + +/* icon font pipeline: + 1. take set of pre-defined icons and SVGs + 2. use Fontello API to get a font with these + 3. combine fontello font and standard font, get output font + 4. use apache ttf API to generate a file with constants for every icon size+type (during annotation processing) + */ +public class FontGenerator{ + + //E000 to F8FF + public static void main(String[] args){ + Net net = Core.net = new Net(); + net.setBlock(true); + Fi folder = Fi.get("core/assets-raw/fontgen/out/"); + folder.mkdirs(); + + Log.info("Session..."); + + OS.exec("curl", "--fail", "--output", "core/assets-raw/fontgen/out/session", "--form", "config=@core/assets-raw/fontgen/config.json", "http://fontello.com"); + + Log.info("Zip..."); + + String session = folder.child("session").readString(); + net.httpGet("http://fontello.com/" + session + "/get", result -> { + try{ + Streams.copyStream(result.getResultAsStream(), folder.child("font.zip").write()); + }catch(IOException e){ + throw new RuntimeException(e); + } + }, Log::err); + + Log.info("Icon font..."); + + ZipFi zip = new ZipFi(folder.child("font.zip")); + Fi dest = folder.child("font.ttf"); + zip.list()[0].child("font").child("fontello.ttf").copyTo(dest); + dest.copyTo(Fi.get("core/assets/fonts/icon.ttf")); + + Log.info("Merge..."); + + OS.exec("fontforge", "-script", "core/assets-raw/fontgen/merge.pe"); + + Log.info("Done."); + } +} diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index d49a55e452..271166f3a2 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -176,6 +176,10 @@ public class Generators{ Image image = new Image(icon.size, icon.size); image.drawScaled(base); image.save(item.getContentType().name() + "-" + item.name + "-" + icon.name(), false); + + if(icon == Cicon.medium){ + image.save("../ui/" + item.getContentType() + "-" + item.name + "-icon"); + } } } }); @@ -254,12 +258,11 @@ public class Generators{ image.save("../blocks/environment/ore-" + item.name + (i + 1)); image.save("../editor/editor-ore-" + item.name + (i + 1)); - //save icons image.save("block-" + ore.name + "-full"); for(Cicon icon : Cicon.scaled){ Image scaled = new Image(icon.size, icon.size); scaled.drawScaled(image); - scaled.save("block-" + ore.name + "-" + icon.name()); + scaled.save("../ui/block-" + ore.name + "-" + icon.name()); } } }); diff --git a/tools/src/mindustry/tools/ImagePacker.java b/tools/src/mindustry/tools/ImagePacker.java index 74ff81e9b0..2ba0a6ee68 100644 --- a/tools/src/mindustry/tools/ImagePacker.java +++ b/tools/src/mindustry/tools/ImagePacker.java @@ -1,14 +1,19 @@ package mindustry.tools; import arc.*; -import arc.struct.*; import arc.files.*; import arc.graphics.g2d.*; import arc.graphics.g2d.TextureAtlas.*; +import arc.struct.*; import arc.util.*; import arc.util.Log.*; +import arc.util.io.*; import mindustry.*; +import mindustry.content.*; import mindustry.core.*; +import mindustry.ctype.*; +import mindustry.world.*; +import mindustry.world.blocks.*; import javax.imageio.*; import java.awt.image.*; @@ -18,7 +23,7 @@ public class ImagePacker{ static ObjectMap regionCache = new ObjectMap<>(); static ObjectMap imageCache = new ObjectMap<>(); - public static void main(String[] args){ + public static void main(String[] args) throws Exception{ Vars.headless = true; Log.setLogger(new NoopLogHandler()); @@ -93,6 +98,42 @@ public class ImagePacker{ Log.info("&ly[Generator]&lc Total time to generate: &lg{0}&lcms", Time.elapsed()); Log.info("&ly[Generator]&lc Total images created: &lg{0}", Image.total()); Image.dispose(); + + //format: + //character-ID=contentname:texture-name + Fi iconfile = Fi.get("../../../assets/icons/icons.properties"); + OrderedMap map = new OrderedMap<>(); + PropertiesUtils.load(map, iconfile.reader(256)); + + ObjectMap content2id = new ObjectMap<>(); + map.each((key, val) -> content2id.put(val.split("\\|")[0], key)); + + Array cont = Array.withArrays(Vars.content.blocks(), Vars.content.items(), Vars.content.liquids()); + cont.removeAll(u -> u instanceof BlockPart || u instanceof BuildBlock || u == Blocks.air); + + int minid = 0xF8FF; + for(String key : map.keys()){ + minid = Math.min(Integer.parseInt(key) - 1, minid); + } + + for(UnlockableContent c : cont){ + if(!content2id.containsKey(c.name)){ + map.put(minid + "", c.name + "|" + texname(c)); + minid --; + } + } + + Writer writer = iconfile.writer(false); + for(String key : map.keys()){ + writer.write(key + "=" + map.get(key) + "\n"); + } + + writer.close(); + } + + static String texname(UnlockableContent c){ + if(c instanceof Block) return "block-" + c.name + "-medium"; + return c.getContentType() + "-" + c.name + "-icon"; } static void generate(String name, Runnable run){ diff --git a/tools/src/mindustry/tools/ScriptStubGenerator.java b/tools/src/mindustry/tools/ScriptStubGenerator.java index be1d9dd27d..58dfd27b28 100644 --- a/tools/src/mindustry/tools/ScriptStubGenerator.java +++ b/tools/src/mindustry/tools/ScriptStubGenerator.java @@ -23,7 +23,7 @@ public class ScriptStubGenerator{ public static void main(String[] args){ String base = "mindustry"; Array blacklist = Array.with("plugin", "mod", "net", "io", "tools"); - Array nameBlacklist = Array.with("ClientLauncher", "NetClient", "NetServer", "ClassAccess"); + Array nameBlacklist = Array.with("ClassAccess"); Array> whitelist = Array.with(Draw.class, Fill.class, Lines.class, Core.class, TextureAtlas.class, TextureRegion.class, Time.class, System.class, PrintStream.class, AtlasRegion.class, String.class, Mathf.class, Angles.class, Color.class, Runnable.class, Object.class, Icon.class, Tex.class, Sounds.class, Musics.class, Call.class, Texture.class, TextureData.class, Pixmap.class, I18NBundle.class, Interval.class, DataInput.class, DataOutput.class, diff --git a/tools/src/mindustry/tools/SquareMarcher.java b/tools/src/mindustry/tools/SquareMarcher.java index 2261260b46..0caf7642ff 100644 --- a/tools/src/mindustry/tools/SquareMarcher.java +++ b/tools/src/mindustry/tools/SquareMarcher.java @@ -1,14 +1,11 @@ package mindustry.tools; -import arc.Core; -import arc.files.Fi; -import arc.graphics.Color; -import arc.graphics.Pixmap; -import arc.graphics.g2d.Draw; -import arc.graphics.g2d.Fill; -import arc.graphics.gl.FrameBuffer; -import arc.util.ScreenUtils; -import arc.util.Tmp; +import arc.*; +import arc.files.*; +import arc.graphics.*; +import arc.graphics.g2d.*; +import arc.graphics.gl.*; +import arc.util.*; public class SquareMarcher{ final int resolution; diff --git a/tools/src/mindustry/tools/Upscaler.java b/tools/src/mindustry/tools/Upscaler.java deleted file mode 100644 index de83fad5c0..0000000000 --- a/tools/src/mindustry/tools/Upscaler.java +++ /dev/null @@ -1,47 +0,0 @@ -package mindustry.tools; - -import arc.*; -import arc.backend.sdl.*; -import arc.files.*; -import arc.graphics.*; -import arc.graphics.g2d.*; -import arc.util.*; -import mindustry.ui.*; - -public class Upscaler{ - public static void main(String[] args){ - new SdlApplication(new ApplicationListener(){ - @Override - public void init(){ - scale(); - } - }, new SdlConfig(){{ - initialVisible = false; - }}); - } - - static void scale(){ - Core.batch = new SpriteBatch(); - Core.atlas = new TextureAtlas(); - Core.atlas.addRegion("white", Pixmaps.blankTextureRegion()); - Fi file = Core.files.local(""); - - Log.info("Upscaling icons..."); - Time.mark(); - Fi[] list = file.list(); - - for(IconSize size : IconSize.values()){ - String suffix = size == IconSize.def ? "" : "-" + size.name(); - SquareMarcher marcher = new SquareMarcher(size.size); - - for(Fi img : list){ - if(img.extension().equals("png")){ - marcher.render(new Pixmap(img), img.sibling(img.nameWithoutExtension() + suffix + ".png")); - } - } - } - - Log.info("Done upscaling icons in &lm{0}&lgs.", Time.elapsed()/1000f); - Core.app.exit(); - } -}