diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1da72dae..e6063e3e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,3 +44,10 @@ jobs: uses: ibiqlik/action-yamllint@v1.0.0 with: file_or_dir: translations/*.yaml + + - name: TSLint + run: | + cd gulp + yarn gulp translations.fullBuild + cd .. + yarn tslint diff --git a/README.md b/README.md index 6d4b357e..89cb9bbb 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ If you want to add a new feature or in generally contribute I recommend to get i ### Code -The game is based on a custom engine which itself is based on the YORG.io 3 game egine (Actually it shares almost the same core). +The game is based on a custom engine which itself is based on the YORG.io 3 game engine (Actually it shares almost the same core). The code within the engine is relatively clean with some code for the actual game on top being hacky. This project is based on ES5. Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop. diff --git a/gulp/package.json b/gulp/package.json index 97f52260..6279afc8 100644 --- a/gulp/package.json +++ b/gulp/package.json @@ -47,14 +47,13 @@ "query-string": "^6.8.1", "rusha": "^0.8.13", "serialize-error": "^3.0.0", - "sloc": "^0.2.1", "strictdom": "^1.0.1", "string-replace-webpack-plugin": "^0.1.3", "terser-webpack-plugin": "^1.1.0", "through2": "^3.0.1", "uglify-template-string-loader": "^1.1.0", "unused-files-webpack-plugin": "^3.4.0", - "webpack": "^4.31.0", + "webpack": "^4.43.0", "webpack-bundle-analyzer": "^3.0.3", "webpack-cli": "^3.1.0", "webpack-deep-scope-plugin": "^1.6.0", @@ -114,7 +113,7 @@ "speed-measure-webpack-plugin": "^1.3.1", "strip-json-comments": "^3.0.1", "trim": "^0.0.1", - "webpack-stream": "^5.1.0", + "webpack-stream": "^5.2.1", "yaml-loader": "^0.6.0" } } diff --git a/gulp/webpack.config.js b/gulp/webpack.config.js index 26923796..022e2773 100644 --- a/gulp/webpack.config.js +++ b/gulp/webpack.config.js @@ -94,16 +94,6 @@ module.exports = ({ watch = false, standalone = false }) => { }, ], }, - { - test: /\.worker\.js$/, - use: { - loader: "worker-loader", - options: { - fallback: false, - inline: true, - }, - }, - }, { test: /\.ya?ml$/, type: "json", // Required by Webpack v4 diff --git a/gulp/yarn.lock b/gulp/yarn.lock index 88d85386..37fbfbb0 100644 --- a/gulp/yarn.lock +++ b/gulp/yarn.lock @@ -1163,150 +1163,149 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== dependencies: - "@webassemblyjs/wast-printer" "1.8.5" + "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" + "@webassemblyjs/ast" "1.9.0" -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -1379,11 +1378,16 @@ acorn@^5.0.3, acorn@^5.5.0, acorn@^5.6.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7, acorn@^6.2.1: +acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7: version "6.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== +acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" @@ -1900,13 +1904,6 @@ async@~1.0.0: resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k= -async@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" - integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw= - dependencies: - lodash "^4.14.0" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2824,7 +2821,7 @@ check-types@^8.0.3: resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== -chokidar@^2.0.0, chokidar@^2.0.2: +chokidar@^2.0.0, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -2843,7 +2840,7 @@ chokidar@^2.0.0, chokidar@^2.0.2: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: +chokidar@^3.4.0, chokidar@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== @@ -2944,13 +2941,6 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= - dependencies: - colors "1.0.3" - cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" @@ -3115,7 +3105,7 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" -colors@1.0.3, colors@1.0.x: +colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= @@ -3159,13 +3149,6 @@ commander@~2.8.1: dependencies: graceful-readlink ">= 1.0.0" -commander@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= - dependencies: - graceful-readlink ">= 1.0.0" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -7978,7 +7961,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.0, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -7997,7 +7980,7 @@ loader-utils@^0.2.5, loader-utils@~0.2.2, loader-utils@~0.2.3, loader-utils@~0.2 json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.4.0: +loader-utils@^1.0.0, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -8341,7 +8324,7 @@ lodash@^3.0.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0, lodash@~4.17.10: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -8468,11 +8451,6 @@ make-iterator@^1.0.0: dependencies: kind-of "^6.0.2" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -11024,7 +11002,7 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -11204,7 +11182,7 @@ readable-stream@^3.0.2, readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^2.1.0, readdirp@^2.2.1: +readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== @@ -11880,6 +11858,13 @@ serialize-javascript@^1.7.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" + serve-index@1.9.1, serve-index@^1.1.4: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -12021,16 +12006,6 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -sloc@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/sloc/-/sloc-0.2.1.tgz#42ad891e76838c1a22bbd8483468e9d74c7f531e" - integrity sha512-8XJnwCFR4DatLz1s0nGFe6IJPJ+5pjRFhoBuBKq8SLgFI40eD7ak6jOXpzeG0tmIpyOc1zCs9bjKAxMFm1451A== - dependencies: - async "~2.1.4" - cli-table "^0.3.1" - commander "~2.9.0" - readdirp "^2.1.0" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -12839,7 +12814,7 @@ ternary-stream@^3.0.0: merge-stream "^2.0.0" through2 "^3.0.1" -terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.1: +terser-webpack-plugin@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== @@ -12854,6 +12829,21 @@ terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.1: webpack-sources "^1.4.0" worker-farm "^1.7.0" +terser-webpack-plugin@^1.4.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^3.1.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + terser@^4.0.0, terser@^4.1.2: version "4.3.1" resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz#09820bcb3398299c4b48d9a86aefc65127d0ed65" @@ -13715,14 +13705,23 @@ watch@^0.11.0: resolved "https://registry.yarnpkg.com/watch/-/watch-0.11.0.tgz#e8dba091b7456799a3af57978b986e77e1320406" integrity sha1-6NugkbdFZ5mjr1eXi5hud+EyBAY= -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" + integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== dependencies: - chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" webidl-conversions@^4.0.2: version "4.0.2" @@ -13785,7 +13784,7 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-stream@^5.1.0: +webpack-stream@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/webpack-stream/-/webpack-stream-5.2.1.tgz#35c992161399fe8cad9c10d4a5c258f022629b39" integrity sha512-WvyVU0K1/VB1NZ7JfsaemVdG0PXAQUqbjUNW4A58th4pULvKMQxG+y33HXTL02JvD56ko2Cub+E2NyPwrLBT/A== @@ -13807,16 +13806,16 @@ webpack-strip-block@^0.2.0: dependencies: loader-utils "^1.1.0" -webpack@^4.26.1, webpack@^4.31.0: - version "4.40.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.40.2.tgz#d21433d250f900bf0facbabe8f50d585b2dc30a7" - integrity sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A== +webpack@^4.26.1, webpack@^4.43.0: + version "4.43.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" @@ -13827,13 +13826,13 @@ webpack@^4.26.1, webpack@^4.31.0: loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" - watchpack "^1.6.0" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.1" webpack-sources "^1.4.1" websocket-driver@>=0.3.6: diff --git a/package.json b/package.json index 4317a8a1..bca0eac3 100644 --- a/package.json +++ b/package.json @@ -52,14 +52,13 @@ "query-string": "^6.8.1", "rusha": "^0.8.13", "serialize-error": "^3.0.0", - "sloc": "^0.2.1", "strictdom": "^1.0.1", "string-replace-webpack-plugin": "^0.1.3", "terser-webpack-plugin": "^1.1.0", "typescript": "3.9.3", "uglify-template-string-loader": "^1.1.0", "unused-files-webpack-plugin": "^3.4.0", - "webpack": "^4.31.0", + "webpack": "^4.43.0", "webpack-bundle-analyzer": "^3.0.3", "webpack-cli": "^3.1.0", "webpack-deep-scope-plugin": "^1.6.0", @@ -97,6 +96,6 @@ "speed-measure-webpack-plugin": "^1.3.1", "strip-json-comments": "^3.0.1", "trim": "^0.0.1", - "webpack-stream": "^5.1.0" + "yarn": "^1.22.4" } } diff --git a/res/ui/building_icons/advanced_processor.png b/res/ui/building_icons/advanced_processor.png index c1423b09..fe7cc8f2 100644 Binary files a/res/ui/building_icons/advanced_processor.png and b/res/ui/building_icons/advanced_processor.png differ diff --git a/res/ui/building_icons/belt.png b/res/ui/building_icons/belt.png index f9ed2542..628480fb 100644 Binary files a/res/ui/building_icons/belt.png and b/res/ui/building_icons/belt.png differ diff --git a/res/ui/building_icons/cutter.png b/res/ui/building_icons/cutter.png index ab69cfbd..6d0fc4d1 100644 Binary files a/res/ui/building_icons/cutter.png and b/res/ui/building_icons/cutter.png differ diff --git a/res/ui/building_icons/energy_generator.png b/res/ui/building_icons/energy_generator.png index ab724a7b..fc419cde 100644 Binary files a/res/ui/building_icons/energy_generator.png and b/res/ui/building_icons/energy_generator.png differ diff --git a/res/ui/building_icons/miner.png b/res/ui/building_icons/miner.png index 6bf727ec..fc7050ea 100644 Binary files a/res/ui/building_icons/miner.png and b/res/ui/building_icons/miner.png differ diff --git a/res/ui/building_icons/mixer.png b/res/ui/building_icons/mixer.png index 62e15780..87409438 100644 Binary files a/res/ui/building_icons/mixer.png and b/res/ui/building_icons/mixer.png differ diff --git a/res/ui/building_icons/painter.png b/res/ui/building_icons/painter.png index 60a1c784..4aa888b6 100644 Binary files a/res/ui/building_icons/painter.png and b/res/ui/building_icons/painter.png differ diff --git a/res/ui/building_icons/rotater.png b/res/ui/building_icons/rotater.png index fe0b2186..3fb355d6 100644 Binary files a/res/ui/building_icons/rotater.png and b/res/ui/building_icons/rotater.png differ diff --git a/res/ui/building_icons/splitter.png b/res/ui/building_icons/splitter.png index 29ea7123..fb889bab 100644 Binary files a/res/ui/building_icons/splitter.png and b/res/ui/building_icons/splitter.png differ diff --git a/res/ui/building_icons/stacker.png b/res/ui/building_icons/stacker.png index 3098ae3e..5a4dda42 100644 Binary files a/res/ui/building_icons/stacker.png and b/res/ui/building_icons/stacker.png differ diff --git a/res/ui/building_icons/trash.png b/res/ui/building_icons/trash.png index 8f094f2e..b6a34ae6 100644 Binary files a/res/ui/building_icons/trash.png and b/res/ui/building_icons/trash.png differ diff --git a/res/ui/building_icons/underground_belt.png b/res/ui/building_icons/underground_belt.png index 240e08a6..b52f4d8e 100644 Binary files a/res/ui/building_icons/underground_belt.png and b/res/ui/building_icons/underground_belt.png differ diff --git a/res/ui/building_icons/wire.png b/res/ui/building_icons/wire.png index e6ccb3a6..6bae2537 100644 Binary files a/res/ui/building_icons/wire.png and b/res/ui/building_icons/wire.png differ diff --git a/res/ui/building_icons/wire_crossings.png b/res/ui/building_icons/wire_crossings.png index 29ea7123..2ef869dc 100644 Binary files a/res/ui/building_icons/wire_crossings.png and b/res/ui/building_icons/wire_crossings.png differ diff --git a/res_built/atlas/atlas0_10.json b/res_built/atlas/atlas0_10.json index 86f1f8a3..044fb143 100644 --- a/res_built/atlas/atlas0_10.json +++ b/res_built/atlas/atlas0_10.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":333,"y":26,"w":13,"h":13}, + "frame": {"x":85,"y":167,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":350,"y":26,"w":13,"h":13}, + "frame": {"x":91,"y":258,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":470,"y":103,"w":13,"h":13}, + "frame": {"x":107,"y":332,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":504,"y":94,"w":13,"h":13}, + "frame": {"x":42,"y":434,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":504,"y":111,"w":13,"h":13}, + "frame": {"x":45,"y":467,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":516,"y":60,"w":13,"h":13}, + "frame": {"x":45,"y":484,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -50,7 +50,7 @@ }, "sprites/belt/forward_6.png": { - "frame": {"x":516,"y":77,"w":13,"h":13}, + "frame": {"x":45,"y":501,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -58,7 +58,7 @@ }, "sprites/belt/forward_7.png": { - "frame": {"x":526,"y":39,"w":13,"h":13}, + "frame": {"x":45,"y":518,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -66,7 +66,7 @@ }, "sprites/belt/forward_8.png": { - "frame": {"x":527,"y":22,"w":13,"h":13}, + "frame": {"x":59,"y":399,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -74,7 +74,7 @@ }, "sprites/belt/forward_9.png": { - "frame": {"x":530,"y":3,"w":13,"h":13}, + "frame": {"x":59,"y":416,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -82,7 +82,7 @@ }, "sprites/belt/forward_10.png": { - "frame": {"x":367,"y":26,"w":13,"h":13}, + "frame": {"x":91,"y":275,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -90,7 +90,7 @@ }, "sprites/belt/forward_11.png": { - "frame": {"x":384,"y":26,"w":13,"h":13}, + "frame": {"x":91,"y":292,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -98,7 +98,7 @@ }, "sprites/belt/forward_12.png": { - "frame": {"x":401,"y":26,"w":13,"h":13}, + "frame": {"x":108,"y":264,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -106,7 +106,7 @@ }, "sprites/belt/forward_13.png": { - "frame": {"x":396,"y":112,"w":13,"h":13}, + "frame": {"x":108,"y":281,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -114,7 +114,7 @@ }, "sprites/belt/forward_14.png": { - "frame": {"x":413,"y":112,"w":13,"h":13}, + "frame": {"x":108,"y":298,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -122,7 +122,7 @@ }, "sprites/belt/forward_15.png": { - "frame": {"x":430,"y":112,"w":13,"h":13}, + "frame": {"x":91,"y":309,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -130,7 +130,7 @@ }, "sprites/belt/forward_16.png": { - "frame": {"x":418,"y":49,"w":13,"h":13}, + "frame": {"x":90,"y":326,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -138,7 +138,7 @@ }, "sprites/belt/forward_17.png": { - "frame": {"x":435,"y":49,"w":13,"h":13}, + "frame": {"x":90,"y":343,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -146,7 +146,7 @@ }, "sprites/belt/forward_18.png": { - "frame": {"x":452,"y":49,"w":13,"h":13}, + "frame": {"x":90,"y":360,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -154,7 +154,7 @@ }, "sprites/belt/forward_19.png": { - "frame": {"x":465,"y":86,"w":13,"h":13}, + "frame": {"x":108,"y":315,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -162,7 +162,7 @@ }, "sprites/belt/forward_20.png": { - "frame": {"x":482,"y":65,"w":13,"h":13}, + "frame": {"x":107,"y":349,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -170,7 +170,7 @@ }, "sprites/belt/forward_21.png": { - "frame": {"x":492,"y":43,"w":13,"h":13}, + "frame": {"x":107,"y":366,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -178,7 +178,7 @@ }, "sprites/belt/forward_22.png": { - "frame": {"x":482,"y":82,"w":13,"h":13}, + "frame": {"x":90,"y":377,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -186,7 +186,7 @@ }, "sprites/belt/forward_23.png": { - "frame": {"x":487,"y":99,"w":13,"h":13}, + "frame": {"x":107,"y":383,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -194,7 +194,7 @@ }, "sprites/belt/forward_24.png": { - "frame": {"x":499,"y":60,"w":13,"h":13}, + "frame": {"x":52,"y":382,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -202,7 +202,7 @@ }, "sprites/belt/forward_25.png": { - "frame": {"x":509,"y":43,"w":13,"h":13}, + "frame": {"x":69,"y":380,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -210,7 +210,7 @@ }, "sprites/belt/forward_26.png": { - "frame": {"x":510,"y":22,"w":13,"h":13}, + "frame": {"x":42,"y":400,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -218,7 +218,7 @@ }, "sprites/belt/forward_27.png": { - "frame": {"x":499,"y":77,"w":13,"h":13}, + "frame": {"x":42,"y":417,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -226,7 +226,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":521,"y":94,"w":13,"h":13}, + "frame": {"x":59,"y":433,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -234,7 +234,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":521,"y":111,"w":13,"h":13}, + "frame": {"x":76,"y":397,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -242,7 +242,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":561,"y":20,"w":13,"h":13}, + "frame": {"x":59,"y":450,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -250,7 +250,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":572,"y":88,"w":13,"h":13}, + "frame": {"x":79,"y":512,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -258,7 +258,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":572,"y":105,"w":13,"h":13}, + "frame": {"x":96,"y":493,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -266,7 +266,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":584,"y":54,"w":13,"h":13}, + "frame": {"x":96,"y":510,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -274,7 +274,7 @@ }, "sprites/belt/left_6.png": { - "frame": {"x":594,"y":37,"w":13,"h":13}, + "frame": {"x":79,"y":529,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -282,7 +282,7 @@ }, "sprites/belt/left_7.png": { - "frame": {"x":595,"y":20,"w":13,"h":13}, + "frame": {"x":96,"y":527,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -290,7 +290,7 @@ }, "sprites/belt/left_8.png": { - "frame": {"x":598,"y":3,"w":13,"h":13}, + "frame": {"x":96,"y":544,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -298,7 +298,7 @@ }, "sprites/belt/left_9.png": { - "frame": {"x":584,"y":71,"w":13,"h":13}, + "frame": {"x":43,"y":628,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -306,7 +306,7 @@ }, "sprites/belt/left_10.png": { - "frame": {"x":533,"y":56,"w":13,"h":13}, + "frame": {"x":76,"y":414,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -314,7 +314,7 @@ }, "sprites/belt/left_11.png": { - "frame": {"x":543,"y":39,"w":13,"h":13}, + "frame": {"x":76,"y":431,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -322,7 +322,7 @@ }, "sprites/belt/left_12.png": { - "frame": {"x":544,"y":20,"w":13,"h":13}, + "frame": {"x":93,"y":408,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -330,7 +330,7 @@ }, "sprites/belt/left_13.png": { - "frame": {"x":547,"y":3,"w":13,"h":13}, + "frame": {"x":110,"y":400,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -338,7 +338,7 @@ }, "sprites/belt/left_14.png": { - "frame": {"x":533,"y":73,"w":13,"h":13}, + "frame": {"x":110,"y":417,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -346,7 +346,7 @@ }, "sprites/belt/left_15.png": { - "frame": {"x":538,"y":90,"w":13,"h":13}, + "frame": {"x":93,"y":425,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -354,7 +354,7 @@ }, "sprites/belt/left_16.png": { - "frame": {"x":538,"y":107,"w":13,"h":13}, + "frame": {"x":110,"y":434,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -362,7 +362,7 @@ }, "sprites/belt/left_17.png": { - "frame": {"x":550,"y":56,"w":13,"h":13}, + "frame": {"x":93,"y":442,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -370,7 +370,7 @@ }, "sprites/belt/left_18.png": { - "frame": {"x":550,"y":73,"w":13,"h":13}, + "frame": {"x":110,"y":451,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -378,7 +378,7 @@ }, "sprites/belt/left_19.png": { - "frame": {"x":560,"y":37,"w":13,"h":13}, + "frame": {"x":76,"y":448,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -386,7 +386,7 @@ }, "sprites/belt/left_20.png": { - "frame": {"x":564,"y":3,"w":13,"h":13}, + "frame": {"x":93,"y":459,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -394,7 +394,7 @@ }, "sprites/belt/left_21.png": { - "frame": {"x":555,"y":90,"w":13,"h":13}, + "frame": {"x":110,"y":468,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -402,7 +402,7 @@ }, "sprites/belt/left_22.png": { - "frame": {"x":555,"y":107,"w":13,"h":13}, + "frame": {"x":62,"y":467,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -410,7 +410,7 @@ }, "sprites/belt/left_23.png": { - "frame": {"x":567,"y":54,"w":13,"h":13}, + "frame": {"x":62,"y":484,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -418,7 +418,7 @@ }, "sprites/belt/left_24.png": { - "frame": {"x":577,"y":37,"w":13,"h":13}, + "frame": {"x":62,"y":501,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -426,7 +426,7 @@ }, "sprites/belt/left_25.png": { - "frame": {"x":578,"y":20,"w":13,"h":13}, + "frame": {"x":62,"y":518,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -434,7 +434,7 @@ }, "sprites/belt/left_26.png": { - "frame": {"x":581,"y":3,"w":13,"h":13}, + "frame": {"x":79,"y":478,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -442,7 +442,7 @@ }, "sprites/belt/left_27.png": { - "frame": {"x":567,"y":71,"w":13,"h":13}, + "frame": {"x":79,"y":495,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -450,7 +450,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":589,"y":88,"w":13,"h":13}, + "frame": {"x":43,"y":645,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -458,7 +458,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":589,"y":105,"w":13,"h":13}, + "frame": {"x":43,"y":662,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -466,7 +466,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":632,"y":3,"w":13,"h":13}, + "frame": {"x":61,"y":603,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -474,7 +474,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":640,"y":88,"w":13,"h":13}, + "frame": {"x":95,"y":612,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -482,7 +482,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":640,"y":105,"w":13,"h":13}, + "frame": {"x":61,"y":620,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -490,7 +490,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":652,"y":54,"w":13,"h":13}, + "frame": {"x":60,"y":637,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -498,7 +498,7 @@ }, "sprites/belt/right_6.png": { - "frame": {"x":662,"y":37,"w":13,"h":13}, + "frame": {"x":60,"y":654,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -506,7 +506,7 @@ }, "sprites/belt/right_7.png": { - "frame": {"x":663,"y":20,"w":13,"h":13}, + "frame": {"x":60,"y":671,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -514,7 +514,7 @@ }, "sprites/belt/right_8.png": { - "frame": {"x":666,"y":3,"w":13,"h":13}, + "frame": {"x":78,"y":631,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -522,7 +522,7 @@ }, "sprites/belt/right_9.png": { - "frame": {"x":652,"y":71,"w":13,"h":13}, + "frame": {"x":95,"y":629,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -530,7 +530,7 @@ }, "sprites/belt/right_10.png": { - "frame": {"x":601,"y":54,"w":13,"h":13}, + "frame": {"x":43,"y":679,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -538,7 +538,7 @@ }, "sprites/belt/right_11.png": { - "frame": {"x":611,"y":37,"w":13,"h":13}, + "frame": {"x":44,"y":536,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -546,7 +546,7 @@ }, "sprites/belt/right_12.png": { - "frame": {"x":612,"y":20,"w":13,"h":13}, + "frame": {"x":44,"y":553,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -554,7 +554,7 @@ }, "sprites/belt/right_13.png": { - "frame": {"x":615,"y":3,"w":13,"h":13}, + "frame": {"x":44,"y":570,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -562,7 +562,7 @@ }, "sprites/belt/right_14.png": { - "frame": {"x":601,"y":71,"w":13,"h":13}, + "frame": {"x":44,"y":587,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -570,7 +570,7 @@ }, "sprites/belt/right_15.png": { - "frame": {"x":606,"y":88,"w":13,"h":13}, + "frame": {"x":44,"y":604,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -578,7 +578,7 @@ }, "sprites/belt/right_16.png": { - "frame": {"x":606,"y":105,"w":13,"h":13}, + "frame": {"x":61,"y":535,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -586,7 +586,7 @@ }, "sprites/belt/right_17.png": { - "frame": {"x":618,"y":54,"w":13,"h":13}, + "frame": {"x":61,"y":552,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -594,7 +594,7 @@ }, "sprites/belt/right_18.png": { - "frame": {"x":628,"y":37,"w":13,"h":13}, + "frame": {"x":61,"y":569,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -602,7 +602,7 @@ }, "sprites/belt/right_19.png": { - "frame": {"x":629,"y":20,"w":13,"h":13}, + "frame": {"x":61,"y":586,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -610,7 +610,7 @@ }, "sprites/belt/right_20.png": { - "frame": {"x":618,"y":71,"w":13,"h":13}, + "frame": {"x":78,"y":546,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -618,7 +618,7 @@ }, "sprites/belt/right_21.png": { - "frame": {"x":623,"y":88,"w":13,"h":13}, + "frame": {"x":78,"y":563,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -626,7 +626,7 @@ }, "sprites/belt/right_22.png": { - "frame": {"x":623,"y":105,"w":13,"h":13}, + "frame": {"x":78,"y":580,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -634,7 +634,7 @@ }, "sprites/belt/right_23.png": { - "frame": {"x":635,"y":54,"w":13,"h":13}, + "frame": {"x":78,"y":597,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -642,7 +642,7 @@ }, "sprites/belt/right_24.png": { - "frame": {"x":645,"y":37,"w":13,"h":13}, + "frame": {"x":95,"y":561,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -650,7 +650,7 @@ }, "sprites/belt/right_25.png": { - "frame": {"x":646,"y":20,"w":13,"h":13}, + "frame": {"x":95,"y":578,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -658,7 +658,7 @@ }, "sprites/belt/right_26.png": { - "frame": {"x":649,"y":3,"w":13,"h":13}, + "frame": {"x":95,"y":595,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -666,7 +666,7 @@ }, "sprites/belt/right_27.png": { - "frame": {"x":635,"y":71,"w":13,"h":13}, + "frame": {"x":78,"y":614,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -674,7 +674,7 @@ }, "sprites/blueprints/advanced_processor.png": { - "frame": {"x":84,"y":82,"w":38,"h":38}, + "frame": {"x":82,"y":3,"w":38,"h":38}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, @@ -682,7 +682,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":657,"y":88,"w":13,"h":13}, + "frame": {"x":77,"y":648,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -690,7 +690,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":669,"y":54,"w":13,"h":13}, + "frame": {"x":77,"y":665,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -698,7 +698,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":669,"y":71,"w":13,"h":13}, + "frame": {"x":77,"y":682,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -706,7 +706,7 @@ }, "sprites/blueprints/cutter-quad.png": { - "frame": {"x":82,"y":3,"w":76,"h":19}, + "frame": {"x":3,"y":129,"w":76,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":76,"h":19}, @@ -714,7 +714,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":287,"y":80,"w":36,"h":19}, + "frame": {"x":3,"y":628,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -722,7 +722,7 @@ }, "sprites/blueprints/energy_generator.png": { - "frame": {"x":168,"y":82,"w":37,"h":37}, + "frame": {"x":3,"y":301,"w":37,"h":37}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":37,"h":37}, @@ -730,7 +730,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":369,"y":3,"w":19,"h":19}, + "frame": {"x":45,"y":198,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -738,7 +738,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":327,"y":90,"w":19,"h":19}, + "frame": {"x":45,"y":221,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -746,7 +746,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":250,"y":44,"w":37,"h":19}, + "frame": {"x":3,"y":536,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -754,7 +754,7 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":162,"y":3,"w":38,"h":38}, + "frame": {"x":3,"y":175,"w":38,"h":38}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, @@ -762,7 +762,7 @@ }, "sprites/blueprints/painter-mirrored.png": { - "frame": {"x":82,"y":49,"w":38,"h":19}, + "frame": {"x":82,"y":45,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -778,7 +778,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":124,"y":49,"w":38,"h":19}, + "frame": {"x":3,"y":467,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -786,7 +786,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":350,"y":90,"w":19,"h":19}, + "frame": {"x":45,"y":244,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -794,7 +794,7 @@ }, "sprites/blueprints/rotater-fl.png": { - "frame": {"x":367,"y":67,"w":19,"h":19}, + "frame": {"x":45,"y":267,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -802,7 +802,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":373,"y":90,"w":19,"h":19}, + "frame": {"x":68,"y":198,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -810,7 +810,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":372,"y":43,"w":19,"h":19}, + "frame": {"x":68,"y":221,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -818,7 +818,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":392,"y":3,"w":19,"h":19}, + "frame": {"x":68,"y":244,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -826,7 +826,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":287,"y":103,"w":36,"h":19}, + "frame": {"x":3,"y":651,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -834,7 +834,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":287,"y":3,"w":37,"h":19}, + "frame": {"x":3,"y":559,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -842,7 +842,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":209,"y":81,"w":35,"h":38}, + "frame": {"x":3,"y":383,"w":35,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, @@ -850,7 +850,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":390,"y":66,"w":19,"h":19}, + "frame": {"x":68,"y":267,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -858,7 +858,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":461,"y":3,"w":19,"h":18}, + "frame": {"x":67,"y":336,"w":19,"h":18}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, @@ -866,7 +866,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":464,"y":25,"w":19,"h":16}, + "frame": {"x":84,"y":127,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, @@ -874,7 +874,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":484,"y":3,"w":19,"h":16}, + "frame": {"x":83,"y":147,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -882,7 +882,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":442,"y":88,"w":19,"h":16}, + "frame": {"x":102,"y":173,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -890,23 +890,23 @@ }, "sprites/blueprints/wire_crossings-merger.png": { - "frame": {"x":507,"y":3,"w":19,"h":15}, + "frame": {"x":84,"y":81,"w":14,"h":19}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":19,"h":15}, + "spriteSourceSize": {"x":5,"y":0,"w":14,"h":19}, "sourceSize": {"w":19,"h":19} }, "sprites/blueprints/wire_crossings.png": { - "frame": {"x":287,"y":26,"w":19,"h":14}, + "frame": {"x":107,"y":104,"w":14,"h":19}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":5,"w":19,"h":14}, + "spriteSourceSize": {"x":5,"y":0,"w":14,"h":19}, "sourceSize": {"w":19,"h":19} }, "sprites/blueprints/wire_left.png": { - "frame": {"x":216,"y":68,"w":10,"h":9}, + "frame": {"x":79,"y":465,"w":10,"h":9}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":10,"h":9}, @@ -914,7 +914,7 @@ }, "sprites/blueprints/wire_right.png": { - "frame": {"x":230,"y":68,"w":9,"h":9}, + "frame": {"x":114,"y":225,"w":9,"h":9}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":4,"w":9,"h":9}, @@ -922,7 +922,7 @@ }, "sprites/blueprints/wire_top.png": { - "frame": {"x":679,"y":37,"w":6,"h":13}, + "frame": {"x":42,"y":383,"w":6,"h":13}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":6,"h":13}, @@ -930,7 +930,7 @@ }, "sprites/buildings/advanced_processor.png": { - "frame": {"x":126,"y":82,"w":38,"h":38}, + "frame": {"x":3,"y":217,"w":38,"h":38}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, @@ -938,7 +938,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":674,"y":88,"w":13,"h":13}, + "frame": {"x":95,"y":646,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -946,7 +946,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":657,"y":105,"w":13,"h":13}, + "frame": {"x":94,"y":663,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -954,7 +954,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":333,"y":26,"w":13,"h":13}, + "frame": {"x":85,"y":167,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -962,7 +962,7 @@ }, "sprites/buildings/cutter-quad.png": { - "frame": {"x":82,"y":26,"w":76,"h":19}, + "frame": {"x":3,"y":152,"w":76,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":76,"h":19}, @@ -970,7 +970,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":327,"y":67,"w":36,"h":19}, + "frame": {"x":3,"y":674,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -978,7 +978,7 @@ }, "sprites/buildings/energy_generator.png": { - "frame": {"x":246,"y":3,"w":37,"h":37}, + "frame": {"x":3,"y":342,"w":37,"h":37}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":37,"h":37}, @@ -994,7 +994,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":395,"y":43,"w":19,"h":19}, + "frame": {"x":104,"y":68,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1002,7 +1002,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":415,"y":3,"w":19,"h":19}, + "frame": {"x":84,"y":104,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1010,7 +1010,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":291,"y":44,"w":37,"h":19}, + "frame": {"x":3,"y":582,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -1018,7 +1018,7 @@ }, "sprites/buildings/painter-double.png": { - "frame": {"x":204,"y":3,"w":38,"h":38}, + "frame": {"x":3,"y":259,"w":38,"h":38}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, @@ -1026,7 +1026,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":166,"y":45,"w":38,"h":19}, + "frame": {"x":3,"y":490,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -1042,7 +1042,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":208,"y":45,"w":38,"h":19}, + "frame": {"x":3,"y":513,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -1050,7 +1050,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":396,"y":89,"w":19,"h":19}, + "frame": {"x":45,"y":290,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1058,7 +1058,7 @@ }, "sprites/buildings/rotater-fl.png": { - "frame": {"x":413,"y":66,"w":19,"h":19}, + "frame": {"x":68,"y":290,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1066,7 +1066,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":419,"y":89,"w":19,"h":19}, + "frame": {"x":44,"y":313,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1074,7 +1074,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":418,"y":26,"w":19,"h":19}, + "frame": {"x":44,"y":336,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1082,7 +1082,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":438,"y":3,"w":19,"h":19}, + "frame": {"x":67,"y":313,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1090,7 +1090,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":332,"y":44,"w":36,"h":19}, + "frame": {"x":45,"y":175,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -1098,7 +1098,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":328,"y":3,"w":37,"h":19}, + "frame": {"x":3,"y":605,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -1106,7 +1106,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":248,"y":81,"w":35,"h":38}, + "frame": {"x":3,"y":425,"w":35,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, @@ -1114,7 +1114,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":441,"y":26,"w":19,"h":19}, + "frame": {"x":44,"y":359,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -1122,7 +1122,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":436,"y":66,"w":19,"h":18}, + "frame": {"x":67,"y":358,"w":19,"h":18}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, @@ -1130,7 +1130,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":459,"y":66,"w":19,"h":16}, + "frame": {"x":91,"y":198,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, @@ -1138,7 +1138,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":469,"y":45,"w":19,"h":16}, + "frame": {"x":91,"y":218,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -1146,7 +1146,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":487,"y":23,"w":19,"h":16}, + "frame": {"x":91,"y":238,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -1154,23 +1154,23 @@ }, "sprites/buildings/wire_crossings-merger.png": { - "frame": {"x":447,"y":108,"w":19,"h":15}, + "frame": {"x":107,"y":127,"w":14,"h":19}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":19,"h":15}, + "spriteSourceSize": {"x":5,"y":0,"w":14,"h":19}, "sourceSize": {"w":19,"h":19} }, "sprites/buildings/wire_crossings.png": { - "frame": {"x":310,"y":26,"w":19,"h":14}, + "frame": {"x":106,"y":150,"w":14,"h":19}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":5,"w":19,"h":14}, + "spriteSourceSize": {"x":5,"y":0,"w":14,"h":19}, "sourceSize": {"w":19,"h":19} }, "sprites/buildings/wire_left.png": { - "frame": {"x":243,"y":68,"w":9,"h":9}, + "frame": {"x":114,"y":238,"w":9,"h":9}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":9,"h":9}, @@ -1178,7 +1178,7 @@ }, "sprites/buildings/wire_right.png": { - "frame": {"x":284,"y":67,"w":9,"h":9}, + "frame": {"x":114,"y":251,"w":9,"h":9}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":4,"w":9,"h":9}, @@ -1186,7 +1186,7 @@ }, "sprites/buildings/wire_top.png": { - "frame": {"x":680,"y":20,"w":5,"h":13}, + "frame": {"x":96,"y":476,"w":5,"h":13}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":5,"h":13}, @@ -1194,7 +1194,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":82,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":577,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1202,7 +1202,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":92,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":587,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1210,7 +1210,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":306,"y":67,"w":3,"h":3}, + "frame": {"x":44,"y":621,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -1218,7 +1218,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":313,"y":67,"w":3,"h":3}, + "frame": {"x":51,"y":621,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -1226,7 +1226,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":320,"y":67,"w":3,"h":3}, + "frame": {"x":70,"y":688,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -1234,7 +1234,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":256,"y":67,"w":10,"h":10}, + "frame": {"x":85,"y":184,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -1242,7 +1242,7 @@ }, "sprites/misc/energy_generator_overlay.png": { - "frame": {"x":172,"y":68,"w":18,"h":9}, + "frame": {"x":82,"y":68,"w":18,"h":9}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":27,"w":18,"h":9}, @@ -1250,7 +1250,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":383,"y":113,"w":3,"h":3}, + "frame": {"x":111,"y":666,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -1258,7 +1258,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":297,"y":67,"w":5,"h":5}, + "frame": {"x":112,"y":657,"w":5,"h":5}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":5,"h":5}, @@ -1266,7 +1266,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":256,"y":67,"w":10,"h":10}, + "frame": {"x":85,"y":184,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -1274,7 +1274,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":270,"y":67,"w":10,"h":10}, + "frame": {"x":93,"y":394,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -1282,7 +1282,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":194,"y":68,"w":18,"h":9}, + "frame": {"x":102,"y":91,"w":18,"h":9}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":18,"h":9}, @@ -1290,7 +1290,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":383,"y":120,"w":3,"h":3}, + "frame": {"x":111,"y":673,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -1298,7 +1298,7 @@ }, "sprites/misc/wires_overlay_tile.png": { - "frame": {"x":674,"y":105,"w":13,"h":13}, + "frame": {"x":94,"y":680,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -1306,7 +1306,7 @@ }, "sprites/wires/battery_empty.png": { - "frame": {"x":102,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":597,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1314,7 +1314,7 @@ }, "sprites/wires/battery_full.png": { - "frame": {"x":112,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":607,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1322,7 +1322,7 @@ }, "sprites/wires/battery_low.png": { - "frame": {"x":122,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":617,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1330,7 +1330,7 @@ }, "sprites/wires/battery_medium.png": { - "frame": {"x":132,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":627,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1338,7 +1338,7 @@ }, "sprites/wires/negative_energy.png": { - "frame": {"x":142,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":637,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1346,7 +1346,7 @@ }, "sprites/wires/pin_negative_accept.png": { - "frame": {"x":327,"y":113,"w":11,"h":12}, + "frame": {"x":42,"y":451,"w":11,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":11,"h":12}, @@ -1354,7 +1354,7 @@ }, "sprites/wires/pin_negative_eject.png": { - "frame": {"x":357,"y":113,"w":9,"h":12}, + "frame": {"x":114,"y":193,"w":9,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":9,"h":12}, @@ -1362,7 +1362,7 @@ }, "sprites/wires/pin_positive_accept.png": { - "frame": {"x":370,"y":113,"w":9,"h":12}, + "frame": {"x":114,"y":209,"w":9,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":9,"h":12}, @@ -1370,7 +1370,7 @@ }, "sprites/wires/pin_positive_eject.png": { - "frame": {"x":342,"y":113,"w":11,"h":12}, + "frame": {"x":112,"y":561,"w":11,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":11,"h":12}, @@ -1378,7 +1378,7 @@ }, "sprites/wires/positive_energy.png": { - "frame": {"x":152,"y":72,"w":6,"h":6}, + "frame": {"x":112,"y":647,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1386,7 +1386,7 @@ }, "sprites/wires/waste_piled.png": { - "frame": {"x":162,"y":72,"w":6,"h":6}, + "frame": {"x":60,"y":688,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -1397,8 +1397,8 @@ "version": "1.0", "image": "atlas0_10.png", "format": "RGBA8888", - "size": {"w":690,"h":128}, + "size": {"w":126,"h":698}, "scale": "0.1", - "smartupdate": "$TexturePacker:SmartUpdate:bf30498b7e1d76f2f7b9d1274acdd7cd:7220449b6cf5c4e08c60eab73ea85805:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:dfc84e4381978113df4ad0cd8a5aace9:4e9bd6f6c82aaaa8a4a583cab68dc719:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_10.png b/res_built/atlas/atlas0_10.png index 42bf1607..2fdd0720 100644 Binary files a/res_built/atlas/atlas0_10.png and b/res_built/atlas/atlas0_10.png differ diff --git a/res_built/atlas/atlas0_100.json b/res_built/atlas/atlas0_100.json index 7f8ef65f..b5980771 100644 --- a/res_built/atlas/atlas0_100.json +++ b/res_built/atlas/atlas0_100.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":1945,"y":1001,"w":100,"h":126}, + "frame": {"x":1515,"y":1539,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":1253,"y":1365,"w":100,"h":126}, + "frame": {"x":1436,"y":1712,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":1597,"y":1494,"w":100,"h":126}, + "frame": {"x":1671,"y":969,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":1719,"y":1624,"w":100,"h":126}, + "frame": {"x":1644,"y":1627,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":1719,"y":1754,"w":100,"h":126}, + "frame": {"x":1644,"y":1757,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":1805,"y":1494,"w":100,"h":126}, + "frame": {"x":1748,"y":1619,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -50,7 +50,7 @@ }, "sprites/belt/forward_6.png": { - "frame": {"x":1823,"y":1624,"w":100,"h":126}, + "frame": {"x":1748,"y":1749,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -58,7 +58,7 @@ }, "sprites/belt/forward_7.png": { - "frame": {"x":1823,"y":1754,"w":100,"h":126}, + "frame": {"x":1775,"y":1205,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -66,7 +66,7 @@ }, "sprites/belt/forward_8.png": { - "frame": {"x":1909,"y":1482,"w":100,"h":126}, + "frame": {"x":1879,"y":1205,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -74,7 +74,7 @@ }, "sprites/belt/forward_9.png": { - "frame": {"x":1927,"y":1612,"w":100,"h":126}, + "frame": {"x":1827,"y":1335,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -82,7 +82,7 @@ }, "sprites/belt/forward_10.png": { - "frame": {"x":1285,"y":1495,"w":100,"h":126}, + "frame": {"x":1194,"y":1863,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -90,7 +90,7 @@ }, "sprites/belt/forward_11.png": { - "frame": {"x":1303,"y":1625,"w":100,"h":126}, + "frame": {"x":1540,"y":1669,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -98,7 +98,7 @@ }, "sprites/belt/forward_12.png": { - "frame": {"x":1303,"y":1755,"w":100,"h":126}, + "frame": {"x":1332,"y":1842,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -106,7 +106,7 @@ }, "sprites/belt/forward_13.png": { - "frame": {"x":1273,"y":1096,"w":100,"h":126}, + "frame": {"x":1436,"y":1842,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -114,7 +114,7 @@ }, "sprites/belt/forward_14.png": { - "frame": {"x":1357,"y":1365,"w":100,"h":126}, + "frame": {"x":1540,"y":1799,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -122,7 +122,7 @@ }, "sprites/belt/forward_15.png": { - "frame": {"x":1461,"y":1364,"w":100,"h":126}, + "frame": {"x":2532,"y":589,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -130,7 +130,7 @@ }, "sprites/belt/forward_16.png": { - "frame": {"x":1565,"y":1364,"w":100,"h":126}, + "frame": {"x":2533,"y":719,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -138,7 +138,7 @@ }, "sprites/belt/forward_17.png": { - "frame": {"x":1669,"y":1364,"w":100,"h":126}, + "frame": {"x":2533,"y":849,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -146,7 +146,7 @@ }, "sprites/belt/forward_18.png": { - "frame": {"x":1389,"y":1495,"w":100,"h":126}, + "frame": {"x":1463,"y":978,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -154,7 +154,7 @@ }, "sprites/belt/forward_19.png": { - "frame": {"x":1493,"y":1494,"w":100,"h":126}, + "frame": {"x":1567,"y":977,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -162,7 +162,7 @@ }, "sprites/belt/forward_20.png": { - "frame": {"x":1407,"y":1625,"w":100,"h":126}, + "frame": {"x":1567,"y":1107,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -170,7 +170,7 @@ }, "sprites/belt/forward_21.png": { - "frame": {"x":1407,"y":1755,"w":100,"h":126}, + "frame": {"x":1671,"y":1099,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -178,7 +178,7 @@ }, "sprites/belt/forward_22.png": { - "frame": {"x":1511,"y":1624,"w":100,"h":126}, + "frame": {"x":1567,"y":1237,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -186,7 +186,7 @@ }, "sprites/belt/forward_23.png": { - "frame": {"x":1511,"y":1754,"w":100,"h":126}, + "frame": {"x":1671,"y":1229,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -194,7 +194,7 @@ }, "sprites/belt/forward_24.png": { - "frame": {"x":1615,"y":1624,"w":100,"h":126}, + "frame": {"x":1619,"y":1367,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -202,7 +202,7 @@ }, "sprites/belt/forward_25.png": { - "frame": {"x":1615,"y":1754,"w":100,"h":126}, + "frame": {"x":1619,"y":1497,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -210,7 +210,7 @@ }, "sprites/belt/forward_26.png": { - "frame": {"x":1701,"y":1494,"w":100,"h":126}, + "frame": {"x":1723,"y":1359,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -218,7 +218,7 @@ }, "sprites/belt/forward_27.png": { - "frame": {"x":1773,"y":1364,"w":100,"h":126}, + "frame": {"x":1723,"y":1489,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -226,7 +226,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":1377,"y":1130,"w":113,"h":113}, + "frame": {"x":1077,"y":1920,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -234,7 +234,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":1494,"y":1130,"w":113,"h":113}, + "frame": {"x":1842,"y":971,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -242,7 +242,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":1927,"y":1742,"w":113,"h":113}, + "frame": {"x":1959,"y":971,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -250,7 +250,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":1533,"y":2001,"w":113,"h":113}, + "frame": {"x":2310,"y":976,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -258,7 +258,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":1650,"y":2001,"w":113,"h":113}, + "frame": {"x":2334,"y":1210,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -266,7 +266,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":1767,"y":2001,"w":113,"h":113}, + "frame": {"x":2393,"y":1093,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -274,7 +274,7 @@ }, "sprites/belt/left_6.png": { - "frame": {"x":1884,"y":1976,"w":113,"h":113}, + "frame": {"x":2451,"y":1210,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -282,7 +282,7 @@ }, "sprites/belt/left_7.png": { - "frame": {"x":1884,"y":2093,"w":113,"h":113}, + "frame": {"x":2048,"y":1327,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -290,7 +290,7 @@ }, "sprites/belt/left_8.png": { - "frame": {"x":1306,"y":2002,"w":113,"h":113}, + "frame": {"x":2165,"y":1327,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -298,7 +298,7 @@ }, "sprites/belt/left_9.png": { - "frame": {"x":1306,"y":2119,"w":113,"h":113}, + "frame": {"x":2282,"y":1327,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -306,7 +306,7 @@ }, "sprites/belt/left_10.png": { - "frame": {"x":1611,"y":1130,"w":113,"h":113}, + "frame": {"x":1842,"y":1088,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -314,7 +314,7 @@ }, "sprites/belt/left_11.png": { - "frame": {"x":1728,"y":1130,"w":113,"h":113}, + "frame": {"x":1827,"y":1465,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -322,7 +322,7 @@ }, "sprites/belt/left_12.png": { - "frame": {"x":1929,"y":1131,"w":113,"h":113}, + "frame": {"x":1852,"y":1582,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -330,7 +330,7 @@ }, "sprites/belt/left_13.png": { - "frame": {"x":1271,"y":1248,"w":113,"h":113}, + "frame": {"x":1852,"y":1699,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -338,7 +338,7 @@ }, "sprites/belt/left_14.png": { - "frame": {"x":1388,"y":1247,"w":113,"h":113}, + "frame": {"x":1852,"y":1816,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -346,7 +346,7 @@ }, "sprites/belt/left_15.png": { - "frame": {"x":1505,"y":1247,"w":113,"h":113}, + "frame": {"x":1931,"y":1335,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -354,7 +354,7 @@ }, "sprites/belt/left_16.png": { - "frame": {"x":1622,"y":1247,"w":113,"h":113}, + "frame": {"x":1944,"y":1452,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -362,7 +362,7 @@ }, "sprites/belt/left_17.png": { - "frame": {"x":1739,"y":1247,"w":113,"h":113}, + "frame": {"x":1969,"y":1569,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -370,7 +370,7 @@ }, "sprites/belt/left_18.png": { - "frame": {"x":1923,"y":1248,"w":113,"h":113}, + "frame": {"x":1969,"y":1686,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -378,7 +378,7 @@ }, "sprites/belt/left_19.png": { - "frame": {"x":1877,"y":1365,"w":113,"h":113}, + "frame": {"x":1969,"y":1803,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -386,7 +386,7 @@ }, "sprites/belt/left_20.png": { - "frame": {"x":1927,"y":1859,"w":113,"h":113}, + "frame": {"x":1959,"y":1088,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -394,7 +394,7 @@ }, "sprites/belt/left_21.png": { - "frame": {"x":1115,"y":1870,"w":113,"h":113}, + "frame": {"x":1983,"y":1205,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -402,7 +402,7 @@ }, "sprites/belt/left_22.png": { - "frame": {"x":1299,"y":1885,"w":113,"h":113}, + "frame": {"x":2076,"y":976,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -410,7 +410,7 @@ }, "sprites/belt/left_23.png": { - "frame": {"x":1416,"y":1885,"w":113,"h":113}, + "frame": {"x":2193,"y":976,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -418,7 +418,7 @@ }, "sprites/belt/left_24.png": { - "frame": {"x":1533,"y":1884,"w":113,"h":113}, + "frame": {"x":2159,"y":1093,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -426,7 +426,7 @@ }, "sprites/belt/left_25.png": { - "frame": {"x":1650,"y":1884,"w":113,"h":113}, + "frame": {"x":2100,"y":1210,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -434,7 +434,7 @@ }, "sprites/belt/left_26.png": { - "frame": {"x":1767,"y":1884,"w":113,"h":113}, + "frame": {"x":2217,"y":1210,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -442,7 +442,7 @@ }, "sprites/belt/left_27.png": { - "frame": {"x":922,"y":1889,"w":113,"h":113}, + "frame": {"x":2276,"y":1093,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -450,7 +450,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":1423,"y":2118,"w":113,"h":113}, + "frame": {"x":2399,"y":1327,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -458,7 +458,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":1540,"y":2118,"w":113,"h":113}, + "frame": {"x":2061,"y":1444,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -466,7 +466,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":1540,"y":2352,"w":113,"h":113}, + "frame": {"x":2320,"y":1678,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -474,7 +474,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":1306,"y":2587,"w":113,"h":113}, + "frame": {"x":2554,"y":1795,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -482,7 +482,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":1423,"y":2586,"w":113,"h":113}, + "frame": {"x":2510,"y":979,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -490,7 +490,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":1540,"y":2586,"w":113,"h":113}, + "frame": {"x":1644,"y":1887,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -498,7 +498,7 @@ }, "sprites/belt/right_6.png": { - "frame": {"x":1657,"y":2586,"w":113,"h":113}, + "frame": {"x":1969,"y":1920,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -506,7 +506,7 @@ }, "sprites/belt/right_7.png": { - "frame": {"x":1774,"y":2561,"w":113,"h":113}, + "frame": {"x":2086,"y":1912,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -514,7 +514,7 @@ }, "sprites/belt/right_8.png": { - "frame": {"x":1891,"y":2561,"w":113,"h":113}, + "frame": {"x":2203,"y":1912,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -522,7 +522,7 @@ }, "sprites/belt/right_9.png": { - "frame": {"x":1104,"y":1987,"w":113,"h":113}, + "frame": {"x":2320,"y":1912,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -530,7 +530,7 @@ }, "sprites/belt/right_10.png": { - "frame": {"x":1657,"y":2118,"w":113,"h":113}, + "frame": {"x":2178,"y":1444,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -538,7 +538,7 @@ }, "sprites/belt/right_11.png": { - "frame": {"x":1423,"y":2235,"w":113,"h":113}, + "frame": {"x":2295,"y":1444,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -546,7 +546,7 @@ }, "sprites/belt/right_12.png": { - "frame": {"x":1540,"y":2235,"w":113,"h":113}, + "frame": {"x":2086,"y":1561,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -554,7 +554,7 @@ }, "sprites/belt/right_13.png": { - "frame": {"x":1657,"y":2235,"w":113,"h":113}, + "frame": {"x":2086,"y":1678,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -562,7 +562,7 @@ }, "sprites/belt/right_14.png": { - "frame": {"x":1306,"y":2236,"w":113,"h":113}, + "frame": {"x":2203,"y":1561,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -570,7 +570,7 @@ }, "sprites/belt/right_15.png": { - "frame": {"x":1774,"y":2210,"w":113,"h":113}, + "frame": {"x":2086,"y":1795,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -578,7 +578,7 @@ }, "sprites/belt/right_16.png": { - "frame": {"x":1891,"y":2210,"w":113,"h":113}, + "frame": {"x":2203,"y":1678,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -586,7 +586,7 @@ }, "sprites/belt/right_17.png": { - "frame": {"x":1774,"y":2327,"w":113,"h":113}, + "frame": {"x":2203,"y":1795,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -594,7 +594,7 @@ }, "sprites/belt/right_18.png": { - "frame": {"x":1891,"y":2327,"w":113,"h":113}, + "frame": {"x":2412,"y":1444,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -602,7 +602,7 @@ }, "sprites/belt/right_19.png": { - "frame": {"x":1423,"y":2352,"w":113,"h":113}, + "frame": {"x":2320,"y":1561,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -610,7 +610,7 @@ }, "sprites/belt/right_20.png": { - "frame": {"x":1657,"y":2352,"w":113,"h":113}, + "frame": {"x":2320,"y":1795,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -618,7 +618,7 @@ }, "sprites/belt/right_21.png": { - "frame": {"x":1306,"y":2353,"w":113,"h":113}, + "frame": {"x":2437,"y":1561,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -626,7 +626,7 @@ }, "sprites/belt/right_22.png": { - "frame": {"x":1306,"y":2470,"w":113,"h":113}, + "frame": {"x":2437,"y":1678,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -634,7 +634,7 @@ }, "sprites/belt/right_23.png": { - "frame": {"x":1423,"y":2469,"w":113,"h":113}, + "frame": {"x":2437,"y":1795,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -642,7 +642,7 @@ }, "sprites/belt/right_24.png": { - "frame": {"x":1540,"y":2469,"w":113,"h":113}, + "frame": {"x":2516,"y":1327,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -650,7 +650,7 @@ }, "sprites/belt/right_25.png": { - "frame": {"x":1657,"y":2469,"w":113,"h":113}, + "frame": {"x":2529,"y":1444,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -658,7 +658,7 @@ }, "sprites/belt/right_26.png": { - "frame": {"x":1774,"y":2444,"w":113,"h":113}, + "frame": {"x":2554,"y":1561,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -666,7 +666,7 @@ }, "sprites/belt/right_27.png": { - "frame": {"x":1891,"y":2444,"w":113,"h":113}, + "frame": {"x":2554,"y":1678,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -674,7 +674,7 @@ }, "sprites/blueprints/advanced_processor.png": { - "frame": {"x":3,"y":1702,"w":374,"h":358}, + "frame": {"x":3,"y":1316,"w":374,"h":358}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":10,"y":12,"w":374,"h":358}, @@ -682,7 +682,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":1873,"y":135,"w":114,"h":114}, + "frame": {"x":2607,"y":3,"w":114,"h":114}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":12,"w":114,"h":114}, @@ -690,7 +690,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":1871,"y":253,"w":114,"h":114}, + "frame": {"x":959,"y":1920,"w":114,"h":114}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":12,"y":12,"w":114,"h":114}, @@ -698,7 +698,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":1283,"y":957,"w":102,"h":126}, + "frame": {"x":1330,"y":1712,"w":102,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":12,"y":0,"w":102,"h":126}, @@ -706,7 +706,7 @@ }, "sprites/blueprints/cutter-quad.png": { - "frame": {"x":735,"y":395,"w":730,"h":191}, + "frame": {"x":1485,"y":3,"w":730,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":730,"h":191}, @@ -714,7 +714,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":381,"y":1707,"w":341,"h":191}, + "frame": {"x":1485,"y":198,"w":341,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":341,"h":191}, @@ -722,7 +722,7 @@ }, "sprites/blueprints/energy_generator.png": { - "frame": {"x":735,"y":590,"w":348,"h":364}, + "frame": {"x":381,"y":1319,"w":348,"h":364}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":20,"y":20,"w":348,"h":364}, @@ -730,7 +730,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":956,"y":2290,"w":182,"h":190}, + "frame": {"x":2163,"y":588,"w":182,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, @@ -738,7 +738,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":1786,"y":785,"w":182,"h":190}, + "frame": {"x":2128,"y":782,"w":182,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, @@ -746,7 +746,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":3,"y":2424,"w":347,"h":191}, + "frame": {"x":1123,"y":783,"w":347,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, @@ -754,7 +754,7 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":3,"y":931,"w":384,"h":382}, + "frame": {"x":735,"y":395,"w":384,"h":382}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":382}, @@ -762,7 +762,7 @@ }, "sprites/blueprints/painter-mirrored.png": { - "frame": {"x":1485,"y":3,"w":384,"h":192}, + "frame": {"x":2219,"y":3,"w":384,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":192}, @@ -778,7 +778,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":1483,"y":199,"w":384,"h":192}, + "frame": {"x":380,"y":1687,"w":384,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":192}, @@ -786,7 +786,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":922,"y":1694,"w":189,"h":191}, + "frame": {"x":2218,"y":393,"w":189,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, @@ -794,15 +794,15 @@ }, "sprites/blueprints/rotater-fl.png": { - "frame": {"x":550,"y":2460,"w":189,"h":191}, + "frame": {"x":1458,"y":587,"w":189,"h":191}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, + "spriteSourceSize": {"x":0,"y":0,"w":189,"h":191}, "sourceSize": {"w":192,"h":192} }, "sprites/blueprints/rotater.png": { - "frame": {"x":763,"y":2290,"w":189,"h":191}, + "frame": {"x":1474,"y":782,"w":189,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, @@ -810,7 +810,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":1857,"y":395,"w":188,"h":182}, + "frame": {"x":1783,"y":589,"w":188,"h":182}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":188,"h":182}, @@ -818,7 +818,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1117,"y":2484,"w":185,"h":182}, + "frame": {"x":2547,"y":393,"w":185,"h":182}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":4,"w":185,"h":182}, @@ -826,7 +826,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":724,"y":1347,"w":340,"h":191}, + "frame": {"x":1830,"y":198,"w":340,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":340,"h":191}, @@ -834,7 +834,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":726,"y":958,"w":347,"h":191}, + "frame": {"x":1112,"y":978,"w":347,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, @@ -842,7 +842,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":391,"y":931,"w":331,"h":384}, + "frame": {"x":1123,"y":395,"w":331,"h":384}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":29,"y":0,"w":331,"h":384}, @@ -850,7 +850,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":726,"y":1694,"w":192,"h":192}, + "frame": {"x":1826,"y":393,"w":192,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, @@ -858,7 +858,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":576,"y":2290,"w":183,"h":166}, + "frame": {"x":1432,"y":1369,"w":183,"h":166}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":26,"w":183,"h":166}, @@ -866,7 +866,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":913,"y":1542,"w":182,"h":148}, + "frame": {"x":569,"y":1883,"w":182,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":44,"w":182,"h":148}, @@ -874,7 +874,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":724,"y":1542,"w":185,"h":148}, + "frame": {"x":380,"y":1883,"w":185,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":185,"h":148}, @@ -882,7 +882,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":1099,"y":1534,"w":182,"h":148}, + "frame": {"x":959,"y":1768,"w":182,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":148}, @@ -890,23 +890,23 @@ }, "sprites/blueprints/wire_crossings-merger.png": { - "frame": {"x":380,"y":2290,"w":192,"h":136}, + "frame": {"x":2411,"y":393,"w":132,"h":192}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":192,"h":136}, + "spriteSourceSize": {"x":60,"y":0,"w":132,"h":192}, "sourceSize": {"w":192,"h":192} }, "sprites/blueprints/wire_crossings.png": { - "frame": {"x":1077,"y":1096,"w":192,"h":131}, + "frame": {"x":1857,"y":775,"w":132,"h":192}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":61,"w":192,"h":131}, + "spriteSourceSize": {"x":60,"y":0,"w":132,"h":192}, "sourceSize": {"w":192,"h":192} }, "sprites/blueprints/wire_left.png": { - "frame": {"x":423,"y":2625,"w":79,"h":79}, + "frame": {"x":2427,"y":974,"w":79,"h":79}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":47,"w":79,"h":79}, @@ -914,7 +914,7 @@ }, "sprites/blueprints/wire_right.png": { - "frame": {"x":340,"y":2625,"w":79,"h":80}, + "frame": {"x":2076,"y":1093,"w":79,"h":80}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":47,"y":46,"w":79,"h":80}, @@ -922,7 +922,7 @@ }, "sprites/blueprints/wire_top.png": { - "frame": {"x":2005,"y":3,"w":32,"h":126}, + "frame": {"x":2497,"y":782,"w":32,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":47,"y":0,"w":32,"h":126}, @@ -930,7 +930,7 @@ }, "sprites/buildings/advanced_processor.png": { - "frame": {"x":3,"y":2064,"w":373,"h":356}, + "frame": {"x":3,"y":1678,"w":373,"h":356}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":13,"w":373,"h":356}, @@ -938,7 +938,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1104,"y":2104,"w":113,"h":113}, + "frame": {"x":2437,"y":1912,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -946,7 +946,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":1142,"y":2221,"w":113,"h":113}, + "frame": {"x":2554,"y":1912,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -954,7 +954,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":1945,"y":1001,"w":100,"h":126}, + "frame": {"x":1515,"y":1539,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -970,7 +970,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":381,"y":1902,"w":339,"h":190}, + "frame": {"x":2174,"y":199,"w":339,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, @@ -978,7 +978,7 @@ }, "sprites/buildings/energy_generator.png": { - "frame": {"x":1087,"y":590,"w":346,"h":363}, + "frame": {"x":733,"y":1171,"w":346,"h":363}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":21,"y":21,"w":346,"h":363}, @@ -994,7 +994,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":934,"y":2485,"w":179,"h":188}, + "frame": {"x":2314,"y":782,"w":179,"h":188}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":1,"w":179,"h":188}, @@ -1002,7 +1002,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1825,"y":590,"w":179,"h":189}, + "frame": {"x":2349,"y":589,"w":179,"h":189}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":179,"h":189}, @@ -1010,7 +1010,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":1437,"y":785,"w":345,"h":190}, + "frame": {"x":1083,"y":1173,"w":345,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":19,"y":0,"w":345,"h":190}, @@ -1018,7 +1018,7 @@ }, "sprites/buildings/painter-double.png": { - "frame": {"x":3,"y":1317,"w":384,"h":381}, + "frame": {"x":3,"y":931,"w":384,"h":381}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":381}, @@ -1026,7 +1026,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":1469,"y":395,"w":384,"h":191}, + "frame": {"x":735,"y":781,"w":384,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":191}, @@ -1042,7 +1042,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":1437,"y":590,"w":384,"h":191}, + "frame": {"x":724,"y":976,"w":384,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":191}, @@ -1050,7 +1050,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":723,"y":2096,"w":187,"h":190}, + "frame": {"x":2517,"y":199,"w":187,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, @@ -1058,7 +1058,7 @@ }, "sprites/buildings/rotater-fl.png": { - "frame": {"x":914,"y":2096,"w":186,"h":190}, + "frame": {"x":1667,"y":775,"w":186,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":186,"h":190}, @@ -1066,7 +1066,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":724,"y":1902,"w":187,"h":190}, + "frame": {"x":768,"y":1628,"w":187,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, @@ -1074,7 +1074,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":743,"y":2485,"w":187,"h":180}, + "frame": {"x":768,"y":1822,"w":187,"h":180}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":5,"w":187,"h":180}, @@ -1082,7 +1082,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":1115,"y":1686,"w":184,"h":180}, + "frame": {"x":1975,"y":589,"w":184,"h":180}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":5,"w":184,"h":180}, @@ -1090,7 +1090,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":380,"y":2096,"w":339,"h":190}, + "frame": {"x":1483,"y":393,"w":339,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, @@ -1098,7 +1098,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":726,"y":1153,"w":345,"h":190}, + "frame": {"x":1083,"y":1367,"w":345,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":19,"y":0,"w":345,"h":190}, @@ -1106,7 +1106,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":391,"y":1319,"w":329,"h":384}, + "frame": {"x":391,"y":931,"w":329,"h":384}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":30,"y":0,"w":329,"h":384}, @@ -1114,7 +1114,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":354,"y":2430,"w":192,"h":191}, + "frame": {"x":2022,"y":393,"w":192,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":192,"h":191}, @@ -1122,7 +1122,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":1068,"y":1365,"w":181,"h":165}, + "frame": {"x":959,"y":1599,"w":181,"h":165}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":27,"w":181,"h":165}, @@ -1130,7 +1130,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":1575,"y":979,"w":181,"h":147}, + "frame": {"x":1145,"y":1712,"w":181,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":45,"w":181,"h":147}, @@ -1138,7 +1138,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":1389,"y":979,"w":182,"h":147}, + "frame": {"x":1144,"y":1561,"w":182,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":182,"h":147}, @@ -1146,7 +1146,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":1760,"y":979,"w":181,"h":147}, + "frame": {"x":1330,"y":1561,"w":181,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":181,"h":147}, @@ -1154,23 +1154,23 @@ }, "sprites/buildings/wire_crossings-merger.png": { - "frame": {"x":1087,"y":957,"w":192,"h":135}, + "frame": {"x":1993,"y":773,"w":131,"h":192}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":192,"h":135}, + "spriteSourceSize": {"x":61,"y":0,"w":131,"h":192}, "sourceSize": {"w":192,"h":192} }, "sprites/buildings/wire_crossings.png": { - "frame": {"x":1075,"y":1231,"w":192,"h":130}, + "frame": {"x":1432,"y":1173,"w":131,"h":192}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":62,"w":192,"h":130}, + "spriteSourceSize": {"x":61,"y":0,"w":131,"h":192}, "sourceSize": {"w":192,"h":192} }, "sprites/buildings/wire_left.png": { - "frame": {"x":1001,"y":2006,"w":78,"h":78}, + "frame": {"x":2510,"y":1096,"w":78,"h":78}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":48,"w":78,"h":78}, @@ -1178,7 +1178,7 @@ }, "sprites/buildings/wire_right.png": { - "frame": {"x":1423,"y":2002,"w":78,"h":78}, + "frame": {"x":2627,"y":983,"w":78,"h":78}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":48,"y":48,"w":78,"h":78}, @@ -1186,7 +1186,7 @@ }, "sprites/buildings/wire_top.png": { - "frame": {"x":2008,"y":581,"w":30,"h":126}, + "frame": {"x":1298,"y":1863,"w":30,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":48,"y":0,"w":30,"h":126}, @@ -1194,7 +1194,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":1039,"y":1889,"w":50,"h":64}, + "frame": {"x":2607,"y":121,"w":50,"h":64}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, @@ -1202,7 +1202,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":1774,"y":2118,"w":50,"h":64}, + "frame": {"x":2661,"y":121,"w":50,"h":64}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, @@ -1210,7 +1210,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":1505,"y":2002,"w":24,"h":32}, + "frame": {"x":2427,"y":1057,"w":24,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, @@ -1218,7 +1218,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":1253,"y":1495,"w":28,"h":28}, + "frame": {"x":2510,"y":1178,"w":28,"h":28}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":28,"h":28}, @@ -1226,7 +1226,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":2008,"y":711,"w":28,"h":28}, + "frame": {"x":2542,"y":1178,"w":28,"h":28}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":4,"w":28,"h":28}, @@ -1234,7 +1234,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":915,"y":2006,"w":82,"h":82}, + "frame": {"x":2637,"y":897,"w":82,"h":82}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, @@ -1242,7 +1242,7 @@ }, "sprites/misc/energy_generator_overlay.png": { - "frame": {"x":183,"y":2619,"w":153,"h":57}, + "frame": {"x":913,"y":1538,"w":153,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":183,"y":290,"w":153,"h":57}, @@ -1250,7 +1250,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":1884,"y":1884,"w":32,"h":32}, + "frame": {"x":2497,"y":912,"w":32,"h":32}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, @@ -1258,7 +1258,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":1423,"y":2084,"w":48,"h":30}, + "frame": {"x":1256,"y":1993,"w":48,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":48,"h":30}, @@ -1266,7 +1266,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":915,"y":2006,"w":82,"h":82}, + "frame": {"x":2637,"y":897,"w":82,"h":82}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, @@ -1274,7 +1274,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":1845,"y":1130,"w":80,"h":96}, + "frame": {"x":2637,"y":797,"w":80,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":80,"h":96}, @@ -1282,7 +1282,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":3,"y":2619,"w":176,"h":86}, + "frame": {"x":733,"y":1538,"w":176,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":4,"w":176,"h":86}, @@ -1290,7 +1290,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":1505,"y":2038,"w":24,"h":32}, + "frame": {"x":2455,"y":1057,"w":24,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, @@ -1298,7 +1298,7 @@ }, "sprites/misc/wires_overlay_tile.png": { - "frame": {"x":1873,"y":3,"w":128,"h":128}, + "frame": {"x":1651,"y":587,"w":128,"h":128}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, @@ -1306,7 +1306,7 @@ }, "sprites/wires/battery_empty.png": { - "frame": {"x":506,"y":2625,"w":38,"h":60}, + "frame": {"x":1525,"y":1108,"w":38,"h":60}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":2,"w":38,"h":60}, @@ -1314,7 +1314,7 @@ }, "sprites/wires/battery_full.png": { - "frame": {"x":1142,"y":2397,"w":58,"h":38}, + "frame": {"x":1651,"y":719,"w":58,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":14,"w":58,"h":38}, @@ -1322,7 +1322,7 @@ }, "sprites/wires/battery_low.png": { - "frame": {"x":1142,"y":2439,"w":58,"h":38}, + "frame": {"x":1194,"y":1993,"w":58,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":14,"w":58,"h":38}, @@ -1330,7 +1330,7 @@ }, "sprites/wires/battery_medium.png": { - "frame": {"x":1204,"y":2338,"w":58,"h":38}, + "frame": {"x":1540,"y":1929,"w":58,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":14,"w":58,"h":38}, @@ -1338,7 +1338,7 @@ }, "sprites/wires/negative_energy.png": { - "frame": {"x":1994,"y":1365,"w":42,"h":42}, + "frame": {"x":1145,"y":1863,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":11,"w":42,"h":42}, @@ -1346,7 +1346,7 @@ }, "sprites/wires/pin_negative_accept.png": { - "frame": {"x":1972,"y":783,"w":73,"h":105}, + "frame": {"x":2636,"y":579,"w":73,"h":105}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":27,"y":0,"w":73,"h":105}, @@ -1354,7 +1354,7 @@ }, "sprites/wires/pin_negative_eject.png": { - "frame": {"x":1856,"y":1230,"w":63,"h":100}, + "frame": {"x":1775,"y":969,"w":63,"h":100}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":32,"y":0,"w":63,"h":100}, @@ -1362,7 +1362,7 @@ }, "sprites/wires/pin_positive_accept.png": { - "frame": {"x":1232,"y":1870,"w":63,"h":100}, + "frame": {"x":1775,"y":1073,"w":63,"h":100}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":32,"y":0,"w":63,"h":100}, @@ -1370,7 +1370,7 @@ }, "sprites/wires/pin_positive_eject.png": { - "frame": {"x":1972,"y":892,"w":73,"h":105}, + "frame": {"x":2637,"y":688,"w":73,"h":105}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":27,"y":0,"w":73,"h":105}, @@ -1378,7 +1378,7 @@ }, "sprites/wires/positive_energy.png": { - "frame": {"x":1828,"y":2118,"w":42,"h":42}, + "frame": {"x":1713,"y":719,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":11,"w":42,"h":42}, @@ -1386,7 +1386,7 @@ }, "sprites/wires/waste_piled.png": { - "frame": {"x":1142,"y":2338,"w":58,"h":55}, + "frame": {"x":1463,"y":1108,"w":58,"h":55}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":4,"w":58,"h":55}, @@ -1397,8 +1397,8 @@ "version": "1.0", "image": "atlas0_100.png", "format": "RGBA8888", - "size": {"w":2048,"h":2708}, + "size": {"w":2735,"h":2037}, "scale": "1", - "smartupdate": "$TexturePacker:SmartUpdate:bf30498b7e1d76f2f7b9d1274acdd7cd:7220449b6cf5c4e08c60eab73ea85805:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:dfc84e4381978113df4ad0cd8a5aace9:4e9bd6f6c82aaaa8a4a583cab68dc719:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_100.png b/res_built/atlas/atlas0_100.png index e268ec93..a072216d 100644 Binary files a/res_built/atlas/atlas0_100.png and b/res_built/atlas/atlas0_100.png differ diff --git a/res_built/atlas/atlas0_25.json b/res_built/atlas/atlas0_25.json index 188c39ab..dee62306 100644 --- a/res_built/atlas/atlas0_25.json +++ b/res_built/atlas/atlas0_25.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":144,"y":597,"w":28,"h":32}, + "frame": {"x":452,"y":459,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":144,"y":633,"w":28,"h":32}, + "frame": {"x":452,"y":495,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":212,"y":763,"w":28,"h":32}, + "frame": {"x":246,"y":697,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":378,"y":541,"w":28,"h":32}, + "frame": {"x":382,"y":624,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":378,"y":577,"w":28,"h":32}, + "frame": {"x":350,"y":628,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":378,"y":613,"w":28,"h":32}, + "frame": {"x":318,"y":640,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -50,7 +50,7 @@ }, "sprites/belt/forward_6.png": { - "frame": {"x":378,"y":649,"w":28,"h":32}, + "frame": {"x":382,"y":660,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -58,7 +58,7 @@ }, "sprites/belt/forward_7.png": { - "frame": {"x":378,"y":685,"w":28,"h":32}, + "frame": {"x":350,"y":664,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -66,7 +66,7 @@ }, "sprites/belt/forward_8.png": { - "frame": {"x":378,"y":721,"w":28,"h":32}, + "frame": {"x":346,"y":802,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -74,7 +74,7 @@ }, "sprites/belt/forward_9.png": { - "frame": {"x":378,"y":757,"w":28,"h":32}, + "frame": {"x":378,"y":802,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -82,7 +82,7 @@ }, "sprites/belt/forward_10.png": { - "frame": {"x":144,"y":669,"w":28,"h":32}, + "frame": {"x":148,"y":723,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -90,7 +90,7 @@ }, "sprites/belt/forward_11.png": { - "frame": {"x":454,"y":363,"w":28,"h":32}, + "frame": {"x":148,"y":759,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -98,7 +98,7 @@ }, "sprites/belt/forward_12.png": { - "frame": {"x":148,"y":733,"w":28,"h":32}, + "frame": {"x":148,"y":795,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -106,7 +106,7 @@ }, "sprites/belt/forward_13.png": { - "frame": {"x":148,"y":769,"w":28,"h":32}, + "frame": {"x":218,"y":536,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -114,7 +114,7 @@ }, "sprites/belt/forward_14.png": { - "frame": {"x":180,"y":561,"w":28,"h":32}, + "frame": {"x":180,"y":712,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -122,7 +122,7 @@ }, "sprites/belt/forward_15.png": { - "frame": {"x":212,"y":553,"w":28,"h":32}, + "frame": {"x":180,"y":748,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -130,7 +130,7 @@ }, "sprites/belt/forward_16.png": { - "frame": {"x":212,"y":589,"w":28,"h":32}, + "frame": {"x":180,"y":784,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -138,7 +138,7 @@ }, "sprites/belt/forward_17.png": { - "frame": {"x":180,"y":733,"w":28,"h":32}, + "frame": {"x":218,"y":572,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -146,7 +146,7 @@ }, "sprites/belt/forward_18.png": { - "frame": {"x":180,"y":769,"w":28,"h":32}, + "frame": {"x":246,"y":625,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -154,7 +154,7 @@ }, "sprites/belt/forward_19.png": { - "frame": {"x":212,"y":727,"w":28,"h":32}, + "frame": {"x":246,"y":661,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -162,7 +162,7 @@ }, "sprites/belt/forward_20.png": { - "frame": {"x":212,"y":799,"w":28,"h":32}, + "frame": {"x":246,"y":733,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -170,7 +170,7 @@ }, "sprites/belt/forward_21.png": { - "frame": {"x":346,"y":546,"w":28,"h":32}, + "frame": {"x":246,"y":769,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -178,7 +178,7 @@ }, "sprites/belt/forward_22.png": { - "frame": {"x":346,"y":582,"w":28,"h":32}, + "frame": {"x":318,"y":568,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -186,7 +186,7 @@ }, "sprites/belt/forward_23.png": { - "frame": {"x":346,"y":618,"w":28,"h":32}, + "frame": {"x":350,"y":556,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -194,7 +194,7 @@ }, "sprites/belt/forward_24.png": { - "frame": {"x":346,"y":654,"w":28,"h":32}, + "frame": {"x":382,"y":552,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -202,7 +202,7 @@ }, "sprites/belt/forward_25.png": { - "frame": {"x":346,"y":690,"w":28,"h":32}, + "frame": {"x":318,"y":604,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -210,7 +210,7 @@ }, "sprites/belt/forward_26.png": { - "frame": {"x":346,"y":726,"w":28,"h":32}, + "frame": {"x":350,"y":592,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -218,7 +218,7 @@ }, "sprites/belt/forward_27.png": { - "frame": {"x":346,"y":762,"w":28,"h":32}, + "frame": {"x":382,"y":588,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -226,7 +226,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":245,"y":509,"w":30,"h":30}, + "frame": {"x":452,"y":531,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -234,7 +234,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":454,"y":399,"w":30,"h":30}, + "frame": {"x":343,"y":522,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -242,7 +242,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":312,"y":546,"w":30,"h":30}, + "frame": {"x":178,"y":610,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -250,7 +250,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":312,"y":614,"w":30,"h":30}, + "frame": {"x":212,"y":744,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -258,7 +258,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":278,"y":648,"w":30,"h":30}, + "frame": {"x":212,"y":778,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -266,7 +266,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":312,"y":648,"w":30,"h":30}, + "frame": {"x":284,"y":543,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -274,7 +274,7 @@ }, "sprites/belt/left_6.png": { - "frame": {"x":244,"y":679,"w":30,"h":30}, + "frame": {"x":250,"y":591,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -282,7 +282,7 @@ }, "sprites/belt/left_7.png": { - "frame": {"x":278,"y":682,"w":30,"h":30}, + "frame": {"x":284,"y":577,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -290,7 +290,7 @@ }, "sprites/belt/left_8.png": { - "frame": {"x":312,"y":682,"w":30,"h":30}, + "frame": {"x":414,"y":545,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -298,7 +298,7 @@ }, "sprites/belt/left_9.png": { - "frame": {"x":210,"y":693,"w":30,"h":30}, + "frame": {"x":284,"y":611,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -306,7 +306,7 @@ }, "sprites/belt/left_10.png": { - "frame": {"x":453,"y":433,"w":30,"h":30}, + "frame": {"x":150,"y":485,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -314,7 +314,7 @@ }, "sprites/belt/left_11.png": { - "frame": {"x":453,"y":467,"w":30,"h":30}, + "frame": {"x":150,"y":519,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -322,7 +322,7 @@ }, "sprites/belt/left_12.png": { - "frame": {"x":176,"y":597,"w":30,"h":30}, + "frame": {"x":144,"y":553,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -330,7 +330,7 @@ }, "sprites/belt/left_13.png": { - "frame": {"x":176,"y":631,"w":30,"h":30}, + "frame": {"x":144,"y":587,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -338,7 +338,7 @@ }, "sprites/belt/left_14.png": { - "frame": {"x":176,"y":665,"w":30,"h":30}, + "frame": {"x":144,"y":621,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -346,7 +346,7 @@ }, "sprites/belt/left_15.png": { - "frame": {"x":244,"y":543,"w":30,"h":30}, + "frame": {"x":144,"y":655,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -354,7 +354,7 @@ }, "sprites/belt/left_16.png": { - "frame": {"x":293,"y":512,"w":30,"h":30}, + "frame": {"x":144,"y":689,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -362,7 +362,7 @@ }, "sprites/belt/left_17.png": { - "frame": {"x":327,"y":512,"w":30,"h":30}, + "frame": {"x":184,"y":508,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -370,7 +370,7 @@ }, "sprites/belt/left_18.png": { - "frame": {"x":361,"y":507,"w":30,"h":30}, + "frame": {"x":184,"y":542,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -378,7 +378,7 @@ }, "sprites/belt/left_19.png": { - "frame": {"x":278,"y":546,"w":30,"h":30}, + "frame": {"x":178,"y":576,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -386,7 +386,7 @@ }, "sprites/belt/left_20.png": { - "frame": {"x":244,"y":577,"w":30,"h":30}, + "frame": {"x":178,"y":644,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -394,7 +394,7 @@ }, "sprites/belt/left_21.png": { - "frame": {"x":278,"y":580,"w":30,"h":30}, + "frame": {"x":178,"y":678,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -402,7 +402,7 @@ }, "sprites/belt/left_22.png": { - "frame": {"x":312,"y":580,"w":30,"h":30}, + "frame": {"x":250,"y":523,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -410,7 +410,7 @@ }, "sprites/belt/left_23.png": { - "frame": {"x":210,"y":625,"w":30,"h":30}, + "frame": {"x":250,"y":557,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -418,7 +418,7 @@ }, "sprites/belt/left_24.png": { - "frame": {"x":244,"y":611,"w":30,"h":30}, + "frame": {"x":212,"y":608,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -426,7 +426,7 @@ }, "sprites/belt/left_25.png": { - "frame": {"x":210,"y":659,"w":30,"h":30}, + "frame": {"x":212,"y":642,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -434,7 +434,7 @@ }, "sprites/belt/left_26.png": { - "frame": {"x":244,"y":645,"w":30,"h":30}, + "frame": {"x":212,"y":676,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -442,7 +442,7 @@ }, "sprites/belt/left_27.png": { - "frame": {"x":278,"y":614,"w":30,"h":30}, + "frame": {"x":212,"y":710,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -450,7 +450,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":176,"y":699,"w":30,"h":30}, + "frame": {"x":414,"y":579,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -458,7 +458,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":244,"y":713,"w":30,"h":30}, + "frame": {"x":448,"y":565,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -466,7 +466,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":429,"y":503,"w":30,"h":30}, + "frame": {"x":312,"y":778,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -474,7 +474,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":444,"y":537,"w":30,"h":30}, + "frame": {"x":414,"y":715,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -482,7 +482,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":444,"y":571,"w":30,"h":30}, + "frame": {"x":448,"y":701,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -490,7 +490,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":444,"y":605,"w":30,"h":30}, + "frame": {"x":380,"y":766,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -498,7 +498,7 @@ }, "sprites/belt/right_6.png": { - "frame": {"x":444,"y":639,"w":30,"h":30}, + "frame": {"x":414,"y":749,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -506,7 +506,7 @@ }, "sprites/belt/right_7.png": { - "frame": {"x":444,"y":673,"w":30,"h":30}, + "frame": {"x":448,"y":735,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -514,7 +514,7 @@ }, "sprites/belt/right_8.png": { - "frame": {"x":444,"y":707,"w":30,"h":30}, + "frame": {"x":414,"y":783,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -522,7 +522,7 @@ }, "sprites/belt/right_9.png": { - "frame": {"x":444,"y":741,"w":30,"h":30}, + "frame": {"x":448,"y":769,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -530,7 +530,7 @@ }, "sprites/belt/right_10.png": { - "frame": {"x":244,"y":747,"w":30,"h":30}, + "frame": {"x":278,"y":645,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -538,7 +538,7 @@ }, "sprites/belt/right_11.png": { - "frame": {"x":278,"y":716,"w":30,"h":30}, + "frame": {"x":278,"y":679,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -546,7 +546,7 @@ }, "sprites/belt/right_12.png": { - "frame": {"x":312,"y":716,"w":30,"h":30}, + "frame": {"x":278,"y":713,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -554,7 +554,7 @@ }, "sprites/belt/right_13.png": { - "frame": {"x":278,"y":750,"w":30,"h":30}, + "frame": {"x":278,"y":747,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -562,7 +562,7 @@ }, "sprites/belt/right_14.png": { - "frame": {"x":312,"y":750,"w":30,"h":30}, + "frame": {"x":278,"y":781,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -570,7 +570,7 @@ }, "sprites/belt/right_15.png": { - "frame": {"x":244,"y":781,"w":30,"h":30}, + "frame": {"x":448,"y":599,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -578,7 +578,7 @@ }, "sprites/belt/right_16.png": { - "frame": {"x":278,"y":784,"w":30,"h":30}, + "frame": {"x":414,"y":613,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -586,7 +586,7 @@ }, "sprites/belt/right_17.png": { - "frame": {"x":312,"y":784,"w":30,"h":30}, + "frame": {"x":312,"y":676,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -594,7 +594,7 @@ }, "sprites/belt/right_18.png": { - "frame": {"x":346,"y":798,"w":30,"h":30}, + "frame": {"x":312,"y":710,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -602,7 +602,7 @@ }, "sprites/belt/right_19.png": { - "frame": {"x":395,"y":507,"w":30,"h":30}, + "frame": {"x":312,"y":744,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -610,7 +610,7 @@ }, "sprites/belt/right_20.png": { - "frame": {"x":410,"y":541,"w":30,"h":30}, + "frame": {"x":448,"y":633,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -618,7 +618,7 @@ }, "sprites/belt/right_21.png": { - "frame": {"x":410,"y":575,"w":30,"h":30}, + "frame": {"x":414,"y":647,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -626,7 +626,7 @@ }, "sprites/belt/right_22.png": { - "frame": {"x":410,"y":609,"w":30,"h":30}, + "frame": {"x":346,"y":700,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -634,7 +634,7 @@ }, "sprites/belt/right_23.png": { - "frame": {"x":410,"y":643,"w":30,"h":30}, + "frame": {"x":346,"y":734,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -642,7 +642,7 @@ }, "sprites/belt/right_24.png": { - "frame": {"x":410,"y":677,"w":30,"h":30}, + "frame": {"x":346,"y":768,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -650,7 +650,7 @@ }, "sprites/belt/right_25.png": { - "frame": {"x":410,"y":711,"w":30,"h":30}, + "frame": {"x":414,"y":681,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -658,7 +658,7 @@ }, "sprites/belt/right_26.png": { - "frame": {"x":410,"y":745,"w":30,"h":30}, + "frame": {"x":448,"y":667,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -666,7 +666,7 @@ }, "sprites/belt/right_27.png": { - "frame": {"x":412,"y":779,"w":30,"h":30}, + "frame": {"x":380,"y":732,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -682,7 +682,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":446,"y":775,"w":30,"h":30}, + "frame": {"x":448,"y":803,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -698,7 +698,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":380,"y":793,"w":28,"h":32}, + "frame": {"x":382,"y":696,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -730,7 +730,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":352,"y":367,"w":47,"h":48}, + "frame": {"x":248,"y":419,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -738,7 +738,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":378,"y":315,"w":47,"h":48}, + "frame": {"x":299,"y":419,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -818,7 +818,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":248,"y":419,"w":47,"h":47}, + "frame": {"x":299,"y":471,"w":47,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, @@ -874,7 +874,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":401,"y":419,"w":48,"h":38}, + "frame": {"x":144,"y":443,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, @@ -882,7 +882,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":144,"y":443,"w":48,"h":38}, + "frame": {"x":196,"y":466,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, @@ -890,23 +890,23 @@ }, "sprites/blueprints/wire_crossings-merger.png": { - "frame": {"x":196,"y":466,"w":48,"h":35}, + "frame": {"x":352,"y":367,"w":34,"h":48}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":48,"h":35}, + "spriteSourceSize": {"x":14,"y":0,"w":34,"h":48}, "sourceSize": {"w":48,"h":48} }, "sprites/blueprints/wire_crossings.png": { - "frame": {"x":144,"y":485,"w":48,"h":34}, + "frame": {"x":378,"y":315,"w":34,"h":48}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":14,"w":48,"h":34}, + "spriteSourceSize": {"x":14,"y":0,"w":34,"h":48}, "sourceSize": {"w":48,"h":48} }, "sprites/blueprints/wire_left.png": { - "frame": {"x":412,"y":813,"w":21,"h":21}, + "frame": {"x":466,"y":373,"w":21,"h":21}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":11,"w":21,"h":21}, @@ -914,7 +914,7 @@ }, "sprites/blueprints/wire_right.png": { - "frame": {"x":437,"y":813,"w":21,"h":21}, + "frame": {"x":466,"y":398,"w":21,"h":21}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":11,"w":21,"h":21}, @@ -922,7 +922,7 @@ }, "sprites/blueprints/wire_top.png": { - "frame": {"x":279,"y":509,"w":10,"h":32}, + "frame": {"x":472,"y":259,"w":10,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":10,"h":32}, @@ -954,7 +954,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":144,"y":597,"w":28,"h":32}, + "frame": {"x":452,"y":459,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -994,7 +994,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":429,"y":311,"w":47,"h":48}, + "frame": {"x":350,"y":419,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -1002,7 +1002,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":403,"y":367,"w":47,"h":48}, + "frame": {"x":248,"y":471,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -1082,7 +1082,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":299,"y":419,"w":47,"h":47}, + "frame": {"x":350,"y":471,"w":47,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, @@ -1122,7 +1122,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":350,"y":419,"w":47,"h":42}, + "frame": {"x":416,"y":311,"w":47,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":6,"w":47,"h":42}, @@ -1130,7 +1130,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":300,"y":470,"w":47,"h":38}, + "frame": {"x":401,"y":419,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":10,"w":47,"h":38}, @@ -1138,7 +1138,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":351,"y":465,"w":47,"h":38}, + "frame": {"x":401,"y":461,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, @@ -1146,7 +1146,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":402,"y":461,"w":47,"h":38}, + "frame": {"x":401,"y":503,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, @@ -1154,23 +1154,23 @@ }, "sprites/buildings/wire_crossings-merger.png": { - "frame": {"x":248,"y":470,"w":48,"h":35}, + "frame": {"x":390,"y":367,"w":34,"h":48}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":48,"h":35}, + "spriteSourceSize": {"x":14,"y":0,"w":34,"h":48}, "sourceSize": {"w":48,"h":48} }, "sprites/buildings/wire_crossings.png": { - "frame": {"x":144,"y":523,"w":48,"h":34}, + "frame": {"x":428,"y":357,"w":34,"h":48}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":14,"w":48,"h":34}, + "spriteSourceSize": {"x":14,"y":0,"w":34,"h":48}, "sourceSize": {"w":48,"h":48} }, "sprites/buildings/wire_left.png": { - "frame": {"x":101,"y":472,"w":21,"h":21}, + "frame": {"x":318,"y":543,"w":21,"h":21}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":11,"w":21,"h":21}, @@ -1178,7 +1178,7 @@ }, "sprites/buildings/wire_right.png": { - "frame": {"x":101,"y":497,"w":21,"h":21}, + "frame": {"x":238,"y":812,"w":21,"h":21}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":11,"w":21,"h":21}, @@ -1186,7 +1186,7 @@ }, "sprites/buildings/wire_top.png": { - "frame": {"x":472,"y":259,"w":10,"h":32}, + "frame": {"x":101,"y":472,"w":10,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":10,"h":32}, @@ -1194,7 +1194,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":264,"y":818,"w":14,"h":16}, + "frame": {"x":430,"y":817,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -1202,7 +1202,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":282,"y":818,"w":14,"h":16}, + "frame": {"x":123,"y":442,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -1210,7 +1210,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":379,"y":107,"w":8,"h":8}, + "frame": {"x":184,"y":485,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -1218,7 +1218,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":379,"y":119,"w":8,"h":8}, + "frame": {"x":200,"y":820,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -1226,7 +1226,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":379,"y":131,"w":8,"h":8}, + "frame": {"x":379,"y":107,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -1234,7 +1234,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":462,"y":809,"w":22,"h":22}, + "frame": {"x":212,"y":812,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, @@ -1242,7 +1242,7 @@ }, "sprites/misc/energy_generator_overlay.png": { - "frame": {"x":196,"y":532,"w":40,"h":17}, + "frame": {"x":299,"y":522,"w":40,"h":17}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":45,"y":71,"w":40,"h":17}, @@ -1250,7 +1250,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":379,"y":143,"w":8,"h":8}, + "frame": {"x":379,"y":119,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -1258,7 +1258,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":123,"y":458,"w":12,"h":10}, + "frame": {"x":115,"y":494,"w":12,"h":10}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":12,"h":10}, @@ -1266,7 +1266,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":462,"y":809,"w":22,"h":22}, + "frame": {"x":212,"y":812,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, @@ -1274,7 +1274,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":144,"y":705,"w":22,"h":24}, + "frame": {"x":218,"y":508,"w":22,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":22,"h":24}, @@ -1282,7 +1282,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":196,"y":505,"w":45,"h":23}, + "frame": {"x":101,"y":508,"w":45,"h":23}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":45,"h":23}, @@ -1290,7 +1290,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":101,"y":522,"w":8,"h":8}, + "frame": {"x":379,"y":131,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -1298,7 +1298,7 @@ }, "sprites/misc/wires_overlay_tile.png": { - "frame": {"x":144,"y":561,"w":32,"h":32}, + "frame": {"x":452,"y":423,"w":32,"h":32}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, @@ -1306,7 +1306,7 @@ }, "sprites/wires/battery_empty.png": { - "frame": {"x":196,"y":805,"w":12,"h":16}, + "frame": {"x":263,"y":815,"w":12,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":12,"h":16}, @@ -1314,7 +1314,7 @@ }, "sprites/wires/battery_full.png": { - "frame": {"x":300,"y":818,"w":16,"h":12}, + "frame": {"x":180,"y":820,"w":16,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":16,"h":12}, @@ -1322,7 +1322,7 @@ }, "sprites/wires/battery_low.png": { - "frame": {"x":320,"y":818,"w":16,"h":12}, + "frame": {"x":123,"y":462,"w":16,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":16,"h":12}, @@ -1330,7 +1330,7 @@ }, "sprites/wires/battery_medium.png": { - "frame": {"x":123,"y":442,"w":16,"h":12}, + "frame": {"x":115,"y":478,"w":16,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":16,"h":12}, @@ -1346,7 +1346,7 @@ }, "sprites/wires/pin_negative_accept.png": { - "frame": {"x":148,"y":805,"w":20,"h":27}, + "frame": {"x":467,"y":311,"w":20,"h":27}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":20,"h":27}, @@ -1354,7 +1354,7 @@ }, "sprites/wires/pin_negative_eject.png": { - "frame": {"x":463,"y":501,"w":18,"h":26}, + "frame": {"x":377,"y":522,"w":18,"h":26}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":18,"h":26}, @@ -1370,7 +1370,7 @@ }, "sprites/wires/pin_positive_eject.png": { - "frame": {"x":172,"y":805,"w":20,"h":27}, + "frame": {"x":467,"y":342,"w":20,"h":27}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":20,"h":27}, @@ -1378,7 +1378,7 @@ }, "sprites/wires/positive_energy.png": { - "frame": {"x":126,"y":472,"w":12,"h":12}, + "frame": {"x":279,"y":815,"w":12,"h":12}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":12,"h":12}, @@ -1386,7 +1386,7 @@ }, "sprites/wires/waste_piled.png": { - "frame": {"x":244,"y":815,"w":16,"h":16}, + "frame": {"x":410,"y":817,"w":16,"h":16}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":16,"h":16}, @@ -1399,6 +1399,6 @@ "format": "RGBA8888", "size": {"w":490,"h":837}, "scale": "0.25", - "smartupdate": "$TexturePacker:SmartUpdate:bf30498b7e1d76f2f7b9d1274acdd7cd:7220449b6cf5c4e08c60eab73ea85805:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:dfc84e4381978113df4ad0cd8a5aace9:4e9bd6f6c82aaaa8a4a583cab68dc719:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_25.png b/res_built/atlas/atlas0_25.png index eed32078..c58d7738 100644 Binary files a/res_built/atlas/atlas0_25.png and b/res_built/atlas/atlas0_25.png differ diff --git a/res_built/atlas/atlas0_50.json b/res_built/atlas/atlas0_50.json index f991e46a..07a7a7fc 100644 --- a/res_built/atlas/atlas0_50.json +++ b/res_built/atlas/atlas0_50.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":737,"y":599,"w":51,"h":63}, + "frame": {"x":949,"y":270,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":1264,"y":502,"w":51,"h":63}, + "frame": {"x":849,"y":469,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":669,"y":816,"w":51,"h":63}, + "frame": {"x":958,"y":731,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":1310,"y":636,"w":51,"h":63}, + "frame": {"x":850,"y":859,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":1365,"y":632,"w":51,"h":63}, + "frame": {"x":905,"y":859,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":1420,"y":565,"w":51,"h":63}, + "frame": {"x":853,"y":926,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -50,7 +50,7 @@ }, "sprites/belt/forward_6.png": { - "frame": {"x":1420,"y":632,"w":51,"h":63}, + "frame": {"x":908,"y":926,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -58,7 +58,7 @@ }, "sprites/belt/forward_7.png": { - "frame": {"x":908,"y":627,"w":51,"h":63}, + "frame": {"x":893,"y":1054,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -66,7 +66,7 @@ }, "sprites/belt/forward_8.png": { - "frame": {"x":963,"y":627,"w":51,"h":63}, + "frame": {"x":948,"y":1048,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -74,7 +74,7 @@ }, "sprites/belt/forward_9.png": { - "frame": {"x":908,"y":694,"w":51,"h":63}, + "frame": {"x":850,"y":1126,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -82,7 +82,7 @@ }, "sprites/belt/forward_10.png": { - "frame": {"x":1319,"y":498,"w":51,"h":63}, + "frame": {"x":848,"y":703,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -90,7 +90,7 @@ }, "sprites/belt/forward_11.png": { - "frame": {"x":1374,"y":498,"w":51,"h":63}, + "frame": {"x":467,"y":1057,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -98,7 +98,7 @@ }, "sprites/belt/forward_12.png": { - "frame": {"x":1429,"y":491,"w":51,"h":63}, + "frame": {"x":908,"y":408,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -106,7 +106,7 @@ }, "sprites/belt/forward_13.png": { - "frame": {"x":550,"y":869,"w":51,"h":63}, + "frame": {"x":910,"y":536,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -114,7 +114,7 @@ }, "sprites/belt/forward_14.png": { - "frame": {"x":605,"y":868,"w":51,"h":63}, + "frame": {"x":965,"y":469,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -122,7 +122,7 @@ }, "sprites/belt/forward_15.png": { - "frame": {"x":1466,"y":270,"w":51,"h":63}, + "frame": {"x":965,"y":536,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -130,7 +130,7 @@ }, "sprites/belt/forward_16.png": { - "frame": {"x":1023,"y":566,"w":51,"h":63}, + "frame": {"x":848,"y":770,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -138,7 +138,7 @@ }, "sprites/belt/forward_17.png": { - "frame": {"x":1078,"y":561,"w":51,"h":63}, + "frame": {"x":903,"y":664,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -146,7 +146,7 @@ }, "sprites/belt/forward_18.png": { - "frame": {"x":1133,"y":561,"w":51,"h":63}, + "frame": {"x":903,"y":731,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -154,7 +154,7 @@ }, "sprites/belt/forward_19.png": { - "frame": {"x":669,"y":749,"w":51,"h":63}, + "frame": {"x":958,"y":664,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -162,7 +162,7 @@ }, "sprites/belt/forward_20.png": { - "frame": {"x":660,"y":883,"w":51,"h":63}, + "frame": {"x":964,"y":798,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -170,7 +170,7 @@ }, "sprites/belt/forward_21.png": { - "frame": {"x":715,"y":883,"w":51,"h":63}, + "frame": {"x":740,"y":803,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -178,7 +178,7 @@ }, "sprites/belt/forward_22.png": { - "frame": {"x":853,"y":626,"w":51,"h":63}, + "frame": {"x":740,"y":870,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -186,7 +186,7 @@ }, "sprites/belt/forward_23.png": { - "frame": {"x":853,"y":693,"w":51,"h":63}, + "frame": {"x":795,"y":859,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -194,7 +194,7 @@ }, "sprites/belt/forward_24.png": { - "frame": {"x":724,"y":793,"w":51,"h":63}, + "frame": {"x":728,"y":1059,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -202,7 +202,7 @@ }, "sprites/belt/forward_25.png": { - "frame": {"x":853,"y":760,"w":51,"h":63}, + "frame": {"x":798,"y":926,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -210,7 +210,7 @@ }, "sprites/belt/forward_26.png": { - "frame": {"x":1310,"y":569,"w":51,"h":63}, + "frame": {"x":783,"y":1059,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -218,7 +218,7 @@ }, "sprites/belt/forward_27.png": { - "frame": {"x":1365,"y":565,"w":51,"h":63}, + "frame": {"x":838,"y":1059,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -226,7 +226,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":573,"y":729,"w":57,"h":57}, + "frame": {"x":827,"y":286,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -234,7 +234,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":792,"y":586,"w":57,"h":57}, + "frame": {"x":888,"y":286,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -242,7 +242,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":731,"y":732,"w":57,"h":57}, + "frame": {"x":903,"y":798,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -250,7 +250,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":908,"y":761,"w":57,"h":57}, + "frame": {"x":789,"y":1126,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -258,7 +258,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":1024,"y":694,"w":57,"h":57}, + "frame": {"x":905,"y":1121,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -266,7 +266,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":969,"y":755,"w":57,"h":57}, + "frame": {"x":905,"y":1182,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -274,7 +274,7 @@ }, "sprites/belt/left_6.png": { - "frame": {"x":1030,"y":755,"w":57,"h":57}, + "frame": {"x":372,"y":1261,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -282,7 +282,7 @@ }, "sprites/belt/left_7.png": { - "frame": {"x":1085,"y":689,"w":57,"h":57}, + "frame": {"x":372,"y":1322,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -290,7 +290,7 @@ }, "sprites/belt/left_8.png": { - "frame": {"x":1091,"y":750,"w":57,"h":57}, + "frame": {"x":433,"y":1260,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -298,7 +298,7 @@ }, "sprites/belt/left_9.png": { - "frame": {"x":1146,"y":685,"w":57,"h":57}, + "frame": {"x":433,"y":1321,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -306,7 +306,7 @@ }, "sprites/belt/left_10.png": { - "frame": {"x":1100,"y":500,"w":57,"h":57}, + "frame": {"x":873,"y":347,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -314,7 +314,7 @@ }, "sprites/belt/left_11.png": { - "frame": {"x":1203,"y":502,"w":57,"h":57}, + "frame": {"x":847,"y":408,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -322,7 +322,7 @@ }, "sprites/belt/left_12.png": { - "frame": {"x":1460,"y":337,"w":57,"h":57}, + "frame": {"x":849,"y":536,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -330,7 +330,7 @@ }, "sprites/belt/left_13.png": { - "frame": {"x":864,"y":565,"w":57,"h":57}, + "frame": {"x":831,"y":597,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -338,7 +338,7 @@ }, "sprites/belt/left_14.png": { - "frame": {"x":962,"y":566,"w":57,"h":57}, + "frame": {"x":522,"y":1077,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -346,7 +346,7 @@ }, "sprites/belt/left_15.png": { - "frame": {"x":1188,"y":563,"w":57,"h":57}, + "frame": {"x":904,"y":475,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -354,7 +354,7 @@ }, "sprites/belt/left_16.png": { - "frame": {"x":1249,"y":569,"w":57,"h":57}, + "frame": {"x":934,"y":347,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -362,7 +362,7 @@ }, "sprites/belt/left_17.png": { - "frame": {"x":792,"y":647,"w":57,"h":57}, + "frame": {"x":963,"y":408,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -370,7 +370,7 @@ }, "sprites/belt/left_18.png": { - "frame": {"x":731,"y":671,"w":57,"h":57}, + "frame": {"x":892,"y":603,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -378,7 +378,7 @@ }, "sprites/belt/left_19.png": { - "frame": {"x":792,"y":708,"w":57,"h":57}, + "frame": {"x":953,"y":603,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -386,7 +386,7 @@ }, "sprites/belt/left_20.png": { - "frame": {"x":792,"y":769,"w":57,"h":57}, + "frame": {"x":737,"y":937,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -394,7 +394,7 @@ }, "sprites/belt/left_21.png": { - "frame": {"x":779,"y":830,"w":57,"h":57}, + "frame": {"x":731,"y":998,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -402,7 +402,7 @@ }, "sprites/belt/left_22.png": { - "frame": {"x":840,"y":830,"w":57,"h":57}, + "frame": {"x":792,"y":998,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -410,7 +410,7 @@ }, "sprites/belt/left_23.png": { - "frame": {"x":1188,"y":624,"w":57,"h":57}, + "frame": {"x":960,"y":865,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -418,7 +418,7 @@ }, "sprites/belt/left_24.png": { - "frame": {"x":1249,"y":630,"w":57,"h":57}, + "frame": {"x":963,"y":926,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -426,7 +426,7 @@ }, "sprites/belt/left_25.png": { - "frame": {"x":1018,"y":633,"w":57,"h":57}, + "frame": {"x":963,"y":987,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -434,7 +434,7 @@ }, "sprites/belt/left_26.png": { - "frame": {"x":963,"y":694,"w":57,"h":57}, + "frame": {"x":853,"y":993,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -442,7 +442,7 @@ }, "sprites/belt/left_27.png": { - "frame": {"x":1079,"y":628,"w":57,"h":57}, + "frame": {"x":728,"y":1126,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -450,7 +450,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":1152,"y":746,"w":57,"h":57}, + "frame": {"x":469,"y":1187,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -458,7 +458,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":1241,"y":691,"w":57,"h":57}, + "frame": {"x":494,"y":1248,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -466,7 +466,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":1091,"y":811,"w":57,"h":57}, + "frame": {"x":774,"y":1187,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -474,7 +474,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":1396,"y":886,"w":57,"h":57}, + "frame": {"x":921,"y":1243,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -482,7 +482,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":1457,"y":882,"w":57,"h":57}, + "frame": {"x":921,"y":1304,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -490,7 +490,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":969,"y":816,"w":57,"h":57}, + "frame": {"x":494,"y":1370,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -498,7 +498,7 @@ }, "sprites/belt/right_6.png": { - "frame": {"x":1030,"y":816,"w":57,"h":57}, + "frame": {"x":555,"y":1370,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -506,7 +506,7 @@ }, "sprites/belt/right_7.png": { - "frame": {"x":1091,"y":872,"w":57,"h":57}, + "frame": {"x":616,"y":1370,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -514,7 +514,7 @@ }, "sprites/belt/right_8.png": { - "frame": {"x":908,"y":822,"w":57,"h":57}, + "frame": {"x":677,"y":1370,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -522,7 +522,7 @@ }, "sprites/belt/right_9.png": { - "frame": {"x":969,"y":877,"w":57,"h":57}, + "frame": {"x":738,"y":1370,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -530,7 +530,7 @@ }, "sprites/belt/right_10.png": { - "frame": {"x":1302,"y":703,"w":57,"h":57}, + "frame": {"x":494,"y":1309,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -538,7 +538,7 @@ }, "sprites/belt/right_11.png": { - "frame": {"x":1213,"y":752,"w":57,"h":57}, + "frame": {"x":530,"y":1187,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -546,7 +546,7 @@ }, "sprites/belt/right_12.png": { - "frame": {"x":1274,"y":764,"w":57,"h":57}, + "frame": {"x":555,"y":1248,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -554,7 +554,7 @@ }, "sprites/belt/right_13.png": { - "frame": {"x":1335,"y":764,"w":57,"h":57}, + "frame": {"x":555,"y":1309,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -562,7 +562,7 @@ }, "sprites/belt/right_14.png": { - "frame": {"x":1363,"y":703,"w":57,"h":57}, + "frame": {"x":591,"y":1187,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -570,7 +570,7 @@ }, "sprites/belt/right_15.png": { - "frame": {"x":1424,"y":699,"w":57,"h":57}, + "frame": {"x":616,"y":1248,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -578,7 +578,7 @@ }, "sprites/belt/right_16.png": { - "frame": {"x":1396,"y":764,"w":57,"h":57}, + "frame": {"x":616,"y":1309,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -586,7 +586,7 @@ }, "sprites/belt/right_17.png": { - "frame": {"x":1457,"y":760,"w":57,"h":57}, + "frame": {"x":652,"y":1187,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -594,7 +594,7 @@ }, "sprites/belt/right_18.png": { - "frame": {"x":1152,"y":807,"w":57,"h":57}, + "frame": {"x":713,"y":1187,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -602,7 +602,7 @@ }, "sprites/belt/right_19.png": { - "frame": {"x":1213,"y":813,"w":57,"h":57}, + "frame": {"x":677,"y":1248,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -610,7 +610,7 @@ }, "sprites/belt/right_20.png": { - "frame": {"x":1274,"y":825,"w":57,"h":57}, + "frame": {"x":677,"y":1309,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -618,7 +618,7 @@ }, "sprites/belt/right_21.png": { - "frame": {"x":1335,"y":825,"w":57,"h":57}, + "frame": {"x":738,"y":1248,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -626,7 +626,7 @@ }, "sprites/belt/right_22.png": { - "frame": {"x":1396,"y":825,"w":57,"h":57}, + "frame": {"x":738,"y":1309,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -634,7 +634,7 @@ }, "sprites/belt/right_23.png": { - "frame": {"x":1457,"y":821,"w":57,"h":57}, + "frame": {"x":835,"y":1193,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -642,7 +642,7 @@ }, "sprites/belt/right_24.png": { - "frame": {"x":1152,"y":868,"w":57,"h":57}, + "frame": {"x":799,"y":1254,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -650,7 +650,7 @@ }, "sprites/belt/right_25.png": { - "frame": {"x":1213,"y":874,"w":57,"h":57}, + "frame": {"x":799,"y":1315,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -658,7 +658,7 @@ }, "sprites/belt/right_26.png": { - "frame": {"x":1274,"y":886,"w":57,"h":57}, + "frame": {"x":860,"y":1254,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -666,7 +666,7 @@ }, "sprites/belt/right_27.png": { - "frame": {"x":1335,"y":886,"w":57,"h":57}, + "frame": {"x":860,"y":1315,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -682,7 +682,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":294,"y":857,"w":58,"h":58}, + "frame": {"x":765,"y":278,"w":58,"h":58}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":5,"w":58,"h":58}, @@ -690,7 +690,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":573,"y":667,"w":58,"h":58}, + "frame": {"x":765,"y":340,"w":58,"h":58}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":58,"h":58}, @@ -698,7 +698,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":1466,"y":203,"w":53,"h":63}, + "frame": {"x":944,"y":203,"w":53,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":53,"h":63}, @@ -714,7 +714,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":1109,"y":303,"w":172,"h":96}, + "frame": {"x":194,"y":861,"w":172,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":172,"h":96}, @@ -722,7 +722,7 @@ }, "sprites/blueprints/energy_generator.png": { - "frame": {"x":195,"y":670,"w":175,"h":183}, + "frame": {"x":199,"y":474,"w":175,"h":183}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":175,"h":183}, @@ -730,7 +730,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":723,"y":399,"w":92,"h":96}, + "frame": {"x":373,"y":1160,"w":92,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, @@ -738,7 +738,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":819,"y":386,"w":92,"h":96}, + "frame": {"x":735,"y":603,"w":92,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, @@ -746,7 +746,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":1143,"y":103,"w":175,"h":96}, + "frame": {"x":556,"y":603,"w":175,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, @@ -754,7 +754,7 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":373,"y":203,"w":192,"h":192}, + "frame": {"x":751,"y":3,"w":192,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, @@ -762,7 +762,7 @@ }, "sprites/blueprints/painter-mirrored.png": { - "frame": {"x":751,"y":103,"w":192,"h":96}, + "frame": {"x":373,"y":303,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -778,7 +778,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":1121,"y":3,"w":192,"h":96}, + "frame": {"x":569,"y":303,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -786,7 +786,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":369,"y":499,"w":96,"h":96}, + "frame": {"x":553,"y":703,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -794,15 +794,15 @@ }, "sprites/blueprints/rotater-fl.png": { - "frame": {"x":469,"y":499,"w":96,"h":96}, + "frame": {"x":274,"y":1161,"w":95,"h":96}, "rotated": false, - "trimmed": false, - "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, + "trimmed": true, + "spriteSourceSize": {"x":0,"y":0,"w":95,"h":96}, "sourceSize": {"w":96,"h":96} }, "sprites/blueprints/rotater.png": { - "frame": {"x":569,"y":499,"w":96,"h":96}, + "frame": {"x":653,"y":703,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -810,7 +810,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":915,"y":389,"w":95,"h":93}, + "frame": {"x":641,"y":803,"w":95,"h":93}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":95,"h":93}, @@ -818,7 +818,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1109,"y":403,"w":93,"h":93}, + "frame": {"x":349,"y":1063,"w":93,"h":93}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":1,"w":93,"h":93}, @@ -826,7 +826,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":1285,"y":303,"w":171,"h":96}, + "frame": {"x":194,"y":961,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -834,7 +834,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":1109,"y":203,"w":175,"h":96}, + "frame": {"x":199,"y":661,"w":175,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, @@ -842,7 +842,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":569,"y":203,"w":167,"h":192}, + "frame": {"x":3,"y":1037,"w":167,"h":192}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":167,"h":192}, @@ -850,7 +850,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":374,"y":669,"w":96,"h":96}, + "frame": {"x":174,"y":1161,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -858,7 +858,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":1398,"y":403,"w":93,"h":84}, + "frame": {"x":752,"y":502,"w":93,"h":84}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":12,"w":93,"h":84}, @@ -866,7 +866,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":356,"y":869,"w":93,"h":75}, + "frame": {"x":535,"y":998,"w":93,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":21,"w":93,"h":75}, @@ -874,7 +874,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":864,"y":486,"w":94,"h":75}, + "frame": {"x":369,"y":984,"w":94,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":94,"h":75}, @@ -882,7 +882,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":453,"y":869,"w":93,"h":75}, + "frame": {"x":751,"y":199,"w":93,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":93,"h":75}, @@ -890,23 +890,23 @@ }, "sprites/blueprints/wire_crossings-merger.png": { - "frame": {"x":194,"y":857,"w":96,"h":69}, + "frame": {"x":947,"y":3,"w":66,"h":96}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":96,"h":69}, + "spriteSourceSize": {"x":30,"y":0,"w":66,"h":96}, "sourceSize": {"w":96,"h":96} }, "sprites/blueprints/wire_crossings.png": { - "frame": {"x":369,"y":599,"w":96,"h":66}, + "frame": {"x":472,"y":789,"w":66,"h":96}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":30,"w":96,"h":66}, + "spriteSourceSize": {"x":30,"y":0,"w":66,"h":96}, "sourceSize": {"w":96,"h":96} }, "sprites/blueprints/wire_left.png": { - "frame": {"x":1475,"y":563,"w":40,"h":40}, + "frame": {"x":921,"y":1365,"w":40,"h":40}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":23,"w":40,"h":40}, @@ -914,7 +914,7 @@ }, "sprites/blueprints/wire_right.png": { - "frame": {"x":1140,"y":628,"w":40,"h":41}, + "frame": {"x":831,"y":658,"w":40,"h":41}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":22,"w":40,"h":41}, @@ -922,7 +922,7 @@ }, "sprites/blueprints/wire_top.png": { - "frame": {"x":1495,"y":398,"w":17,"h":63}, + "frame": {"x":446,"y":1063,"w":17,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":17,"h":63}, @@ -930,7 +930,7 @@ }, "sprites/buildings/advanced_processor.png": { - "frame": {"x":740,"y":203,"w":187,"h":179}, + "frame": {"x":3,"y":854,"w":187,"h":179}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":6,"w":187,"h":179}, @@ -938,7 +938,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1030,"y":877,"w":57,"h":57}, + "frame": {"x":799,"y":1376,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -946,7 +946,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":901,"y":883,"w":57,"h":57}, + "frame": {"x":860,"y":1376,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -954,7 +954,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":737,"y":599,"w":51,"h":63}, + "frame": {"x":949,"y":270,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -962,7 +962,7 @@ }, "sprites/buildings/cutter-quad.png": { - "frame": {"x":751,"y":3,"w":366,"h":96}, + "frame": {"x":373,"y":203,"w":366,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":366,"h":96}, @@ -970,7 +970,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":373,"y":399,"w":171,"h":96}, + "frame": {"x":174,"y":1061,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -978,7 +978,7 @@ }, "sprites/buildings/energy_generator.png": { - "frame": {"x":931,"y":203,"w":174,"h":182}, + "frame": {"x":378,"y":403,"w":174,"h":182}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":10,"y":10,"w":174,"h":182}, @@ -994,7 +994,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":1014,"y":389,"w":91,"h":95}, + "frame": {"x":753,"y":703,"w":91,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, @@ -1002,7 +1002,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1206,"y":403,"w":91,"h":95}, + "frame": {"x":752,"y":403,"w":91,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, @@ -1010,7 +1010,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":1322,"y":103,"w":174,"h":96}, + "frame": {"x":378,"y":589,"w":174,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, @@ -1026,7 +1026,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":947,"y":103,"w":192,"h":96}, + "frame": {"x":556,"y":403,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -1042,7 +1042,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":1317,"y":3,"w":192,"h":96}, + "frame": {"x":556,"y":503,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -1050,7 +1050,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":474,"y":669,"w":95,"h":96}, + "frame": {"x":273,"y":1261,"w":95,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, @@ -1058,7 +1058,7 @@ }, "sprites/buildings/rotater-fl.png": { - "frame": {"x":474,"y":769,"w":95,"h":96}, + "frame": {"x":373,"y":789,"w":95,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":95,"h":96}, @@ -1066,7 +1066,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":669,"y":499,"w":95,"h":96}, + "frame": {"x":542,"y":803,"w":95,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, @@ -1074,7 +1074,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":3,"y":854,"w":94,"h":91}, + "frame": {"x":370,"y":889,"w":94,"h":91}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":94,"h":91}, @@ -1082,7 +1082,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":1301,"y":403,"w":93,"h":91}, + "frame": {"x":538,"y":903,"w":93,"h":91}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":2,"w":93,"h":91}, @@ -1090,7 +1090,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":548,"y":399,"w":171,"h":96}, + "frame": {"x":378,"y":689,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -1098,7 +1098,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":1288,"y":203,"w":174,"h":96}, + "frame": {"x":195,"y":761,"w":174,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, @@ -1106,7 +1106,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":199,"y":474,"w":166,"h":192}, + "frame": {"x":3,"y":1233,"w":166,"h":192}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":166,"h":192}, @@ -1114,7 +1114,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":374,"y":769,"w":96,"h":96}, + "frame": {"x":173,"y":1261,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -1122,7 +1122,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":768,"y":499,"w":92,"h":83}, + "frame": {"x":848,"y":199,"w":92,"h":83}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":13,"w":92,"h":83}, @@ -1130,7 +1130,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":635,"y":671,"w":92,"h":74}, + "frame": {"x":641,"y":900,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":22,"w":92,"h":74}, @@ -1138,7 +1138,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":573,"y":790,"w":92,"h":74}, + "frame": {"x":635,"y":978,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, @@ -1146,7 +1146,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":962,"y":488,"w":92,"h":74}, + "frame": {"x":632,"y":1056,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, @@ -1154,23 +1154,23 @@ }, "sprites/buildings/wire_crossings-merger.png": { - "frame": {"x":637,"y":599,"w":96,"h":68}, + "frame": {"x":947,"y":103,"w":66,"h":96}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":96,"h":68}, + "spriteSourceSize": {"x":30,"y":0,"w":66,"h":96}, "sourceSize": {"w":96,"h":96} }, "sprites/buildings/wire_crossings.png": { - "frame": {"x":469,"y":599,"w":96,"h":66}, + "frame": {"x":468,"y":889,"w":66,"h":96}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":30,"w":96,"h":66}, + "spriteSourceSize": {"x":30,"y":0,"w":66,"h":96}, "sourceSize": {"w":96,"h":96} }, "sprites/buildings/wire_left.png": { - "frame": {"x":1475,"y":607,"w":40,"h":40}, + "frame": {"x":965,"y":1365,"w":40,"h":40}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":23,"w":40,"h":40}, @@ -1178,7 +1178,7 @@ }, "sprites/buildings/wire_right.png": { - "frame": {"x":1475,"y":651,"w":40,"h":40}, + "frame": {"x":372,"y":1383,"w":40,"h":40}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":23,"w":40,"h":40}, @@ -1186,7 +1186,7 @@ }, "sprites/buildings/wire_top.png": { - "frame": {"x":1500,"y":103,"w":17,"h":63}, + "frame": {"x":1001,"y":203,"w":17,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":17,"h":63}, @@ -1194,7 +1194,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":634,"y":749,"w":26,"h":32}, + "frame": {"x":416,"y":1383,"w":26,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, @@ -1202,7 +1202,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":1484,"y":527,"w":26,"h":32}, + "frame": {"x":266,"y":1395,"w":26,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, @@ -1210,7 +1210,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":1500,"y":170,"w":14,"h":16}, + "frame": {"x":446,"y":1130,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -1218,7 +1218,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":724,"y":860,"w":15,"h":15}, + "frame": {"x":875,"y":684,"w":15,"h":15}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":15,"h":15}, @@ -1226,7 +1226,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":743,"y":860,"w":15,"h":15}, + "frame": {"x":416,"y":1419,"w":15,"h":15}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":15,"h":15}, @@ -1234,7 +1234,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":853,"y":891,"w":42,"h":42}, + "frame": {"x":914,"y":993,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, @@ -1242,7 +1242,7 @@ }, "sprites/misc/energy_generator_overlay.png": { - "frame": {"x":101,"y":902,"w":78,"h":30}, + "frame": {"x":266,"y":1361,"w":78,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":91,"y":144,"w":78,"h":30}, @@ -1250,7 +1250,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":1058,"y":545,"w":16,"h":16}, + "frame": {"x":174,"y":1037,"w":16,"h":16}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":16,"h":16}, @@ -1258,7 +1258,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":1495,"y":465,"w":24,"h":16}, + "frame": {"x":875,"y":664,"w":24,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":24,"h":16}, @@ -1266,7 +1266,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":853,"y":891,"w":42,"h":42}, + "frame": {"x":914,"y":993,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, @@ -1274,7 +1274,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":770,"y":891,"w":42,"h":48}, + "frame": {"x":827,"y":347,"w":42,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":42,"h":48}, @@ -1282,7 +1282,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":101,"y":854,"w":89,"h":44}, + "frame": {"x":173,"y":1361,"w":89,"h":44}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":89,"h":44}, @@ -1290,7 +1290,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":183,"y":930,"w":14,"h":16}, + "frame": {"x":1004,"y":270,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -1298,7 +1298,7 @@ }, "sprites/misc/wires_overlay_tile.png": { - "frame": {"x":569,"y":599,"w":64,"h":64}, + "frame": {"x":467,"y":989,"w":64,"h":64}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":64,"h":64}, @@ -1306,7 +1306,7 @@ }, "sprites/wires/battery_empty.png": { - "frame": {"x":1484,"y":491,"w":20,"h":32}, + "frame": {"x":348,"y":1361,"w":20,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":20,"h":32}, @@ -1314,7 +1314,7 @@ }, "sprites/wires/battery_full.png": { - "frame": {"x":1207,"y":718,"w":30,"h":21}, + "frame": {"x":921,"y":1409,"w":30,"h":21}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":6,"w":30,"h":21}, @@ -1322,7 +1322,7 @@ }, "sprites/wires/battery_low.png": { - "frame": {"x":1485,"y":695,"w":30,"h":21}, + "frame": {"x":955,"y":1409,"w":30,"h":21}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":6,"w":30,"h":21}, @@ -1330,7 +1330,7 @@ }, "sprites/wires/battery_medium.png": { - "frame": {"x":1485,"y":720,"w":30,"h":21}, + "frame": {"x":173,"y":1409,"w":30,"h":21}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":6,"w":30,"h":21}, @@ -1338,7 +1338,7 @@ }, "sprites/wires/negative_energy.png": { - "frame": {"x":294,"y":919,"w":22,"h":22}, + "frame": {"x":207,"y":1409,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":22,"h":22}, @@ -1346,7 +1346,7 @@ }, "sprites/wires/pin_negative_accept.png": { - "frame": {"x":1058,"y":488,"w":38,"h":53}, + "frame": {"x":583,"y":1077,"w":38,"h":53}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":38,"h":53}, @@ -1354,7 +1354,7 @@ }, "sprites/wires/pin_negative_eject.png": { - "frame": {"x":925,"y":565,"w":33,"h":51}, + "frame": {"x":966,"y":1115,"w":33,"h":51}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":15,"y":0,"w":33,"h":51}, @@ -1362,7 +1362,7 @@ }, "sprites/wires/pin_positive_accept.png": { - "frame": {"x":816,"y":891,"w":33,"h":51}, + "frame": {"x":966,"y":1170,"w":33,"h":51}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":15,"y":0,"w":33,"h":51}, @@ -1370,7 +1370,7 @@ }, "sprites/wires/pin_positive_eject.png": { - "frame": {"x":1161,"y":500,"w":38,"h":53}, + "frame": {"x":795,"y":802,"w":38,"h":53}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":38,"h":53}, @@ -1378,7 +1378,7 @@ }, "sprites/wires/positive_energy.png": { - "frame": {"x":320,"y":919,"w":22,"h":22}, + "frame": {"x":233,"y":1409,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":22,"h":22}, @@ -1386,7 +1386,7 @@ }, "sprites/wires/waste_piled.png": { - "frame": {"x":1207,"y":685,"w":30,"h":29}, + "frame": {"x":446,"y":1382,"w":30,"h":29}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":30,"h":29}, @@ -1397,8 +1397,8 @@ "version": "1.0", "image": "atlas0_50.png", "format": "RGBA8888", - "size": {"w":1522,"h":949}, + "size": {"w":1023,"h":1437}, "scale": "0.5", - "smartupdate": "$TexturePacker:SmartUpdate:bf30498b7e1d76f2f7b9d1274acdd7cd:7220449b6cf5c4e08c60eab73ea85805:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:dfc84e4381978113df4ad0cd8a5aace9:4e9bd6f6c82aaaa8a4a583cab68dc719:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_50.png b/res_built/atlas/atlas0_50.png index f5a7db1d..020e7ecf 100644 Binary files a/res_built/atlas/atlas0_50.png and b/res_built/atlas/atlas0_50.png differ diff --git a/res_built/atlas/atlas0_75.json b/res_built/atlas/atlas0_75.json index 34827276..e03e4e6b 100644 --- a/res_built/atlas/atlas0_75.json +++ b/res_built/atlas/atlas0_75.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":1358,"y":675,"w":77,"h":95}, + "frame": {"x":1103,"y":739,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":1676,"y":102,"w":77,"h":95}, + "frame": {"x":1184,"y":737,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":990,"y":1181,"w":77,"h":95}, + "frame": {"x":1468,"y":1511,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":1164,"y":1568,"w":77,"h":95}, + "frame": {"x":1661,"y":1220,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":1245,"y":1576,"w":77,"h":95}, + "frame": {"x":1580,"y":1301,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":1314,"y":1180,"w":77,"h":95}, + "frame": {"x":1661,"y":1319,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -50,7 +50,7 @@ }, "sprites/belt/forward_6.png": { - "frame": {"x":1317,"y":1279,"w":77,"h":95}, + "frame": {"x":1549,"y":1400,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -58,7 +58,7 @@ }, "sprites/belt/forward_7.png": { - "frame": {"x":1326,"y":1378,"w":77,"h":95}, + "frame": {"x":1549,"y":1499,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -66,7 +66,7 @@ }, "sprites/belt/forward_8.png": { - "frame": {"x":1326,"y":1477,"w":77,"h":95}, + "frame": {"x":1558,"y":1598,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -74,7 +74,7 @@ }, "sprites/belt/forward_9.png": { - "frame": {"x":1326,"y":1576,"w":77,"h":95}, + "frame": {"x":1630,"y":1418,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -82,7 +82,7 @@ }, "sprites/belt/forward_10.png": { - "frame": {"x":1678,"y":443,"w":77,"h":95}, + "frame": {"x":1355,"y":683,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -90,7 +90,7 @@ }, "sprites/belt/forward_11.png": { - "frame": {"x":1358,"y":774,"w":77,"h":95}, + "frame": {"x":1445,"y":759,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -98,7 +98,7 @@ }, "sprites/belt/forward_12.png": { - "frame": {"x":984,"y":1329,"w":77,"h":95}, + "frame": {"x":1445,"y":858,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -106,7 +106,7 @@ }, "sprites/belt/forward_13.png": { - "frame": {"x":984,"y":1428,"w":77,"h":95}, + "frame": {"x":1184,"y":836,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -114,7 +114,7 @@ }, "sprites/belt/forward_14.png": { - "frame": {"x":985,"y":1617,"w":77,"h":95}, + "frame": {"x":1177,"y":935,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -122,7 +122,7 @@ }, "sprites/belt/forward_15.png": { - "frame": {"x":1066,"y":1617,"w":77,"h":95}, + "frame": {"x":1238,"y":1180,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -130,7 +130,7 @@ }, "sprites/belt/forward_16.png": { - "frame": {"x":1096,"y":725,"w":77,"h":95}, + "frame": {"x":1238,"y":1279,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -138,7 +138,7 @@ }, "sprites/belt/forward_17.png": { - "frame": {"x":1177,"y":713,"w":77,"h":95}, + "frame": {"x":843,"y":1478,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -146,7 +146,7 @@ }, "sprites/belt/forward_18.png": { - "frame": {"x":1177,"y":812,"w":77,"h":95}, + "frame": {"x":847,"y":1330,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -154,7 +154,7 @@ }, "sprites/belt/forward_19.png": { - "frame": {"x":1191,"y":991,"w":77,"h":95}, + "frame": {"x":1468,"y":1412,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -162,7 +162,7 @@ }, "sprites/belt/forward_20.png": { - "frame": {"x":1071,"y":1181,"w":77,"h":95}, + "frame": {"x":1588,"y":1004,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -170,7 +170,7 @@ }, "sprites/belt/forward_21.png": { - "frame": {"x":1152,"y":1181,"w":77,"h":95}, + "frame": {"x":1669,"y":1022,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -178,7 +178,7 @@ }, "sprites/belt/forward_22.png": { - "frame": {"x":1155,"y":1280,"w":77,"h":95}, + "frame": {"x":1499,"y":1074,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -186,7 +186,7 @@ }, "sprites/belt/forward_23.png": { - "frame": {"x":1233,"y":1180,"w":77,"h":95}, + "frame": {"x":1499,"y":1173,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -194,7 +194,7 @@ }, "sprites/belt/forward_24.png": { - "frame": {"x":1236,"y":1279,"w":77,"h":95}, + "frame": {"x":1499,"y":1272,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -202,7 +202,7 @@ }, "sprites/belt/forward_25.png": { - "frame": {"x":1245,"y":1378,"w":77,"h":95}, + "frame": {"x":1580,"y":1103,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -210,7 +210,7 @@ }, "sprites/belt/forward_26.png": { - "frame": {"x":1164,"y":1469,"w":77,"h":95}, + "frame": {"x":1580,"y":1202,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -218,7 +218,7 @@ }, "sprites/belt/forward_27.png": { - "frame": {"x":1245,"y":1477,"w":77,"h":95}, + "frame": {"x":1661,"y":1121,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -226,7 +226,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":1439,"y":840,"w":86,"h":86}, + "frame": {"x":1672,"y":554,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -234,7 +234,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":1559,"y":655,"w":86,"h":86}, + "frame": {"x":1535,"y":624,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -242,7 +242,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":1348,"y":873,"w":86,"h":86}, + "frame": {"x":1706,"y":842,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -250,7 +250,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":1155,"y":1379,"w":86,"h":86}, + "frame": {"x":1304,"y":1052,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -258,7 +258,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":1074,"y":1526,"w":86,"h":86}, + "frame": {"x":1394,"y":1052,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -266,7 +266,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":1230,"y":1090,"w":86,"h":86}, + "frame": {"x":1319,"y":1142,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -274,7 +274,7 @@ }, "sprites/belt/left_6.png": { - "frame": {"x":1336,"y":963,"w":86,"h":86}, + "frame": {"x":1409,"y":1142,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -282,7 +282,7 @@ }, "sprites/belt/left_7.png": { - "frame": {"x":1336,"y":1053,"w":86,"h":86}, + "frame": {"x":1319,"y":1232,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -290,7 +290,7 @@ }, "sprites/belt/left_8.png": { - "frame": {"x":1426,"y":1020,"w":86,"h":86}, + "frame": {"x":1409,"y":1232,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -298,7 +298,7 @@ }, "sprites/belt/left_9.png": { - "frame": {"x":1426,"y":1110,"w":86,"h":86}, + "frame": {"x":1319,"y":1322,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -306,7 +306,7 @@ }, "sprites/belt/left_10.png": { - "frame": {"x":1649,"y":655,"w":86,"h":86}, + "frame": {"x":1625,"y":644,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -314,7 +314,7 @@ }, "sprites/belt/left_11.png": { - "frame": {"x":1559,"y":745,"w":86,"h":86}, + "frame": {"x":1265,"y":683,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -322,7 +322,7 @@ }, "sprites/belt/left_12.png": { - "frame": {"x":1649,"y":745,"w":86,"h":86}, + "frame": {"x":1265,"y":773,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -330,7 +330,7 @@ }, "sprites/belt/left_13.png": { - "frame": {"x":1559,"y":835,"w":86,"h":86}, + "frame": {"x":1436,"y":669,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -338,7 +338,7 @@ }, "sprites/belt/left_14.png": { - "frame": {"x":1649,"y":835,"w":86,"h":86}, + "frame": {"x":1355,"y":782,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -346,7 +346,7 @@ }, "sprites/belt/left_15.png": { - "frame": {"x":984,"y":1527,"w":86,"h":86}, + "frame": {"x":1526,"y":714,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -354,7 +354,7 @@ }, "sprites/belt/left_16.png": { - "frame": {"x":985,"y":1716,"w":86,"h":86}, + "frame": {"x":1616,"y":734,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -362,7 +362,7 @@ }, "sprites/belt/left_17.png": { - "frame": {"x":1075,"y":1716,"w":86,"h":86}, + "frame": {"x":1526,"y":804,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -370,7 +370,7 @@ }, "sprites/belt/left_18.png": { - "frame": {"x":1258,"y":775,"w":86,"h":86}, + "frame": {"x":1616,"y":824,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -378,7 +378,7 @@ }, "sprites/belt/left_19.png": { - "frame": {"x":1258,"y":865,"w":86,"h":86}, + "frame": {"x":1706,"y":752,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -386,7 +386,7 @@ }, "sprites/belt/left_20.png": { - "frame": {"x":1438,"y":930,"w":86,"h":86}, + "frame": {"x":1526,"y":894,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -394,7 +394,7 @@ }, "sprites/belt/left_21.png": { - "frame": {"x":1101,"y":911,"w":86,"h":86}, + "frame": {"x":1616,"y":914,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -402,7 +402,7 @@ }, "sprites/belt/left_22.png": { - "frame": {"x":1101,"y":1001,"w":86,"h":86}, + "frame": {"x":1706,"y":932,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -410,7 +410,7 @@ }, "sprites/belt/left_23.png": { - "frame": {"x":960,"y":1091,"w":86,"h":86}, + "frame": {"x":1265,"y":863,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -418,7 +418,7 @@ }, "sprites/belt/left_24.png": { - "frame": {"x":1050,"y":1091,"w":86,"h":86}, + "frame": {"x":1355,"y":872,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -426,7 +426,7 @@ }, "sprites/belt/left_25.png": { - "frame": {"x":1140,"y":1091,"w":86,"h":86}, + "frame": {"x":1258,"y":953,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -434,7 +434,7 @@ }, "sprites/belt/left_26.png": { - "frame": {"x":1065,"y":1280,"w":86,"h":86}, + "frame": {"x":1348,"y":962,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -442,7 +442,7 @@ }, "sprites/belt/left_27.png": { - "frame": {"x":1065,"y":1370,"w":86,"h":86}, + "frame": {"x":1214,"y":1043,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -450,7 +450,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":1516,"y":1020,"w":86,"h":86}, + "frame": {"x":1409,"y":1322,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -458,7 +458,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":1516,"y":1110,"w":86,"h":86}, + "frame": {"x":928,"y":1328,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -466,7 +466,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":1497,"y":1290,"w":86,"h":86}, + "frame": {"x":1015,"y":1688,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -474,7 +474,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":1587,"y":1560,"w":86,"h":86}, + "frame": {"x":1105,"y":1687,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -482,7 +482,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":1407,"y":1650,"w":86,"h":86}, + "frame": {"x":1198,"y":1558,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -490,7 +490,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":1497,"y":1650,"w":86,"h":86}, + "frame": {"x":1195,"y":1648,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -498,7 +498,7 @@ }, "sprites/belt/right_6.png": { - "frame": {"x":1587,"y":1650,"w":86,"h":86}, + "frame": {"x":1288,"y":1592,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -506,7 +506,7 @@ }, "sprites/belt/right_7.png": { - "frame": {"x":1165,"y":1740,"w":86,"h":86}, + "frame": {"x":1378,"y":1592,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -514,7 +514,7 @@ }, "sprites/belt/right_8.png": { - "frame": {"x":1255,"y":1675,"w":86,"h":86}, + "frame": {"x":1285,"y":1682,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -522,7 +522,7 @@ }, "sprites/belt/right_9.png": { - "frame": {"x":1345,"y":1740,"w":86,"h":86}, + "frame": {"x":1375,"y":1682,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -530,7 +530,7 @@ }, "sprites/belt/right_10.png": { - "frame": {"x":1528,"y":930,"w":86,"h":86}, + "frame": {"x":1018,"y":1328,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -538,7 +538,7 @@ }, "sprites/belt/right_11.png": { - "frame": {"x":1618,"y":925,"w":86,"h":86}, + "frame": {"x":1108,"y":1327,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -546,7 +546,7 @@ }, "sprites/belt/right_12.png": { - "frame": {"x":1606,"y":1020,"w":86,"h":86}, + "frame": {"x":928,"y":1418,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -554,7 +554,7 @@ }, "sprites/belt/right_13.png": { - "frame": {"x":1606,"y":1110,"w":86,"h":86}, + "frame": {"x":1018,"y":1418,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -562,7 +562,7 @@ }, "sprites/belt/right_14.png": { - "frame": {"x":1398,"y":1200,"w":86,"h":86}, + "frame": {"x":1108,"y":1417,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -570,7 +570,7 @@ }, "sprites/belt/right_15.png": { - "frame": {"x":1488,"y":1200,"w":86,"h":86}, + "frame": {"x":924,"y":1508,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -578,7 +578,7 @@ }, "sprites/belt/right_16.png": { - "frame": {"x":1578,"y":1200,"w":86,"h":86}, + "frame": {"x":1014,"y":1508,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -586,7 +586,7 @@ }, "sprites/belt/right_17.png": { - "frame": {"x":1668,"y":1200,"w":86,"h":86}, + "frame": {"x":925,"y":1598,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -594,7 +594,7 @@ }, "sprites/belt/right_18.png": { - "frame": {"x":1407,"y":1290,"w":86,"h":86}, + "frame": {"x":1015,"y":1598,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -602,7 +602,7 @@ }, "sprites/belt/right_19.png": { - "frame": {"x":1407,"y":1380,"w":86,"h":86}, + "frame": {"x":925,"y":1688,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -610,7 +610,7 @@ }, "sprites/belt/right_20.png": { - "frame": {"x":1407,"y":1470,"w":86,"h":86}, + "frame": {"x":1198,"y":1378,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -618,7 +618,7 @@ }, "sprites/belt/right_21.png": { - "frame": {"x":1497,"y":1380,"w":86,"h":86}, + "frame": {"x":1198,"y":1468,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -626,7 +626,7 @@ }, "sprites/belt/right_22.png": { - "frame": {"x":1587,"y":1290,"w":86,"h":86}, + "frame": {"x":1288,"y":1412,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -634,7 +634,7 @@ }, "sprites/belt/right_23.png": { - "frame": {"x":1407,"y":1560,"w":86,"h":86}, + "frame": {"x":1378,"y":1412,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -642,7 +642,7 @@ }, "sprites/belt/right_24.png": { - "frame": {"x":1497,"y":1470,"w":86,"h":86}, + "frame": {"x":1288,"y":1502,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -650,7 +650,7 @@ }, "sprites/belt/right_25.png": { - "frame": {"x":1587,"y":1380,"w":86,"h":86}, + "frame": {"x":1378,"y":1502,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -658,7 +658,7 @@ }, "sprites/belt/right_26.png": { - "frame": {"x":1497,"y":1560,"w":86,"h":86}, + "frame": {"x":1108,"y":1507,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -666,7 +666,7 @@ }, "sprites/belt/right_27.png": { - "frame": {"x":1587,"y":1470,"w":86,"h":86}, + "frame": {"x":1105,"y":1597,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -682,7 +682,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":1439,"y":658,"w":87,"h":87}, + "frame": {"x":3,"y":1688,"w":87,"h":87}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":8,"w":87,"h":87}, @@ -690,7 +690,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":1439,"y":749,"w":87,"h":87}, + "frame": {"x":94,"y":1688,"w":87,"h":87}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":8,"w":87,"h":87}, @@ -698,7 +698,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":1671,"y":3,"w":79,"h":95}, + "frame": {"x":1715,"y":653,"w":79,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":79,"h":95}, @@ -714,7 +714,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":553,"y":885,"w":256,"h":144}, + "frame": {"x":554,"y":886,"w":256,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":144}, @@ -722,7 +722,7 @@ }, "sprites/blueprints/energy_generator.png": { - "frame": {"x":847,"y":299,"w":262,"h":274}, + "frame": {"x":288,"y":996,"w":262,"h":274}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":14,"w":262,"h":274}, @@ -730,7 +730,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":956,"y":738,"w":136,"h":143}, + "frame": {"x":1671,"y":3,"w":136,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, @@ -738,7 +738,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":961,"y":885,"w":136,"h":143}, + "frame": {"x":1098,"y":1180,"w":136,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, @@ -746,7 +746,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":1411,"y":150,"w":261,"h":144}, + "frame": {"x":3,"y":1540,"w":261,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":261,"h":144}, @@ -778,7 +778,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":287,"y":1273,"w":288,"h":144}, + "frame": {"x":1411,"y":150,"w":288,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, @@ -786,7 +786,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":813,"y":1033,"w":143,"h":144}, + "frame": {"x":702,"y":1182,"w":143,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, @@ -794,15 +794,15 @@ }, "sprites/blueprints/rotater-fl.png": { - "frame": {"x":968,"y":577,"w":143,"h":144}, + "frame": {"x":849,"y":1180,"w":142,"h":144}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, + "spriteSourceSize": {"x":0,"y":0,"w":142,"h":144}, "sourceSize": {"w":144,"h":144} }, "sprites/blueprints/rotater.png": { - "frame": {"x":843,"y":1181,"w":143,"h":144}, + "frame": {"x":700,"y":1330,"w":143,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, @@ -810,7 +810,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":839,"y":1623,"w":142,"h":138}, + "frame": {"x":552,"y":1478,"w":142,"h":138}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":142,"h":138}, @@ -818,7 +818,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1393,"y":298,"w":139,"h":138}, + "frame": {"x":1241,"y":298,"w":139,"h":138}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":2,"w":139,"h":138}, @@ -826,7 +826,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":553,"y":1033,"w":256,"h":144}, + "frame": {"x":554,"y":1034,"w":256,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":144}, @@ -834,7 +834,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":555,"y":590,"w":261,"h":144}, + "frame": {"x":847,"y":591,"w":261,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":261,"h":144}, @@ -842,7 +842,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":3,"y":1540,"w":250,"h":288}, + "frame": {"x":847,"y":299,"w":250,"h":288}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":21,"y":0,"w":250,"h":288}, @@ -850,7 +850,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":820,"y":590,"w":144,"h":144}, + "frame": {"x":554,"y":1182,"w":144,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, @@ -858,7 +858,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":697,"y":1622,"w":138,"h":125}, + "frame": {"x":1101,"y":445,"w":138,"h":125}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":19,"w":138,"h":125}, @@ -866,7 +866,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":400,"y":1717,"w":138,"h":112}, + "frame": {"x":1527,"y":438,"w":138,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":32,"w":138,"h":112}, @@ -874,7 +874,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":257,"y":1717,"w":139,"h":112}, + "frame": {"x":1384,"y":438,"w":139,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":139,"h":112}, @@ -882,7 +882,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":1254,"y":444,"w":138,"h":112}, + "frame": {"x":1669,"y":438,"w":138,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":138,"h":112}, @@ -890,23 +890,23 @@ }, "sprites/blueprints/wire_crossings-merger.png": { - "frame": {"x":549,"y":1622,"w":144,"h":103}, + "frame": {"x":1703,"y":150,"w":99,"h":144}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":144,"h":103}, + "spriteSourceSize": {"x":45,"y":0,"w":99,"h":144}, "sourceSize": {"w":144,"h":144} }, "sprites/blueprints/wire_crossings.png": { - "frame": {"x":1399,"y":555,"w":144,"h":99}, + "frame": {"x":995,"y":1180,"w":99,"h":144}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":45,"w":144,"h":99}, + "spriteSourceSize": {"x":45,"y":0,"w":99,"h":144}, "sourceSize": {"w":144,"h":144} }, "sprites/blueprints/wire_left.png": { - "frame": {"x":1272,"y":1020,"w":60,"h":60}, + "frame": {"x":441,"y":1698,"w":60,"h":60}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":35,"w":60,"h":60}, @@ -914,7 +914,7 @@ }, "sprites/blueprints/wire_right.png": { - "frame": {"x":1272,"y":955,"w":60,"h":61}, + "frame": {"x":377,"y":1698,"w":60,"h":61}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":35,"y":34,"w":60,"h":61}, @@ -922,7 +922,7 @@ }, "sprites/blueprints/wire_top.png": { - "frame": {"x":1530,"y":658,"w":25,"h":95}, + "frame": {"x":1772,"y":298,"w":25,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":35,"y":0,"w":25,"h":95}, @@ -938,7 +938,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1435,"y":1740,"w":86,"h":86}, + "frame": {"x":1468,"y":1610,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -946,7 +946,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":1525,"y":1740,"w":86,"h":86}, + "frame": {"x":1498,"y":984,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -954,7 +954,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":1358,"y":675,"w":77,"h":95}, + "frame": {"x":1103,"y":739,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -970,7 +970,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":579,"y":1328,"w":256,"h":143}, + "frame": {"x":814,"y":886,"w":256,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":143}, @@ -978,7 +978,7 @@ }, "sprites/buildings/energy_generator.png": { - "frame": {"x":288,"y":996,"w":261,"h":273}, + "frame": {"x":287,"y":1274,"w":261,"h":273}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":15,"y":15,"w":261,"h":273}, @@ -994,7 +994,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":1113,"y":299,"w":136,"h":142}, + "frame": {"x":1074,"y":1034,"w":136,"h":142}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, @@ -1002,7 +1002,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1253,"y":298,"w":136,"h":142}, + "frame": {"x":1101,"y":299,"w":136,"h":142}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, @@ -1010,7 +1010,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":547,"y":738,"w":260,"h":143}, + "frame": {"x":839,"y":739,"w":260,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, @@ -1026,7 +1026,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":287,"y":1421,"w":288,"h":144}, + "frame": {"x":555,"y":590,"w":288,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, @@ -1042,7 +1042,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":257,"y":1569,"w":288,"h":144}, + "frame": {"x":547,"y":738,"w":288,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, @@ -1050,7 +1050,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":811,"y":738,"w":141,"h":143}, + "frame": {"x":698,"y":1478,"w":141,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, @@ -1058,7 +1058,7 @@ }, "sprites/buildings/rotater-fl.png": { - "frame": {"x":839,"y":1329,"w":141,"h":143}, + "frame": {"x":532,"y":1620,"w":141,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":141,"h":143}, @@ -1066,7 +1066,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":839,"y":1476,"w":141,"h":143}, + "frame": {"x":677,"y":1625,"w":141,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, @@ -1074,7 +1074,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":1536,"y":298,"w":141,"h":136}, + "frame": {"x":1384,"y":298,"w":141,"h":136}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":141,"h":136}, @@ -1082,7 +1082,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":1115,"y":573,"w":139,"h":136}, + "frame": {"x":1529,"y":298,"w":139,"h":136}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":3,"w":139,"h":136}, @@ -1090,7 +1090,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":579,"y":1475,"w":256,"h":143}, + "frame": {"x":814,"y":1033,"w":256,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":143}, @@ -1098,7 +1098,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":579,"y":1181,"w":260,"h":143}, + "frame": {"x":268,"y":1551,"w":260,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, @@ -1114,7 +1114,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":813,"y":885,"w":144,"h":144}, + "frame": {"x":552,"y":1330,"w":144,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, @@ -1122,7 +1122,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":1113,"y":445,"w":137,"h":124}, + "frame": {"x":1243,"y":440,"w":137,"h":124}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":20,"w":137,"h":124}, @@ -1130,7 +1130,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":1396,"y":440,"w":137,"h":111}, + "frame": {"x":1112,"y":574,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":33,"w":137,"h":111}, @@ -1138,7 +1138,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":1537,"y":438,"w":137,"h":111}, + "frame": {"x":1253,"y":568,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":137,"h":111}, @@ -1146,7 +1146,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":1258,"y":560,"w":137,"h":111}, + "frame": {"x":1394,"y":554,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":137,"h":111}, @@ -1154,23 +1154,23 @@ }, "sprites/buildings/wire_crossings-merger.png": { - "frame": {"x":542,"y":1729,"w":144,"h":102}, + "frame": {"x":1074,"y":886,"w":99,"h":144}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":0,"w":144,"h":102}, + "spriteSourceSize": {"x":45,"y":0,"w":99,"h":144}, "sourceSize": {"w":144,"h":144} }, "sprites/buildings/wire_crossings.png": { - "frame": {"x":1547,"y":553,"w":144,"h":98}, + "frame": {"x":822,"y":1625,"w":99,"h":144}, "rotated": false, "trimmed": true, - "spriteSourceSize": {"x":0,"y":46,"w":144,"h":98}, + "spriteSourceSize": {"x":45,"y":0,"w":99,"h":144}, "sourceSize": {"w":144,"h":144} }, "sprites/buildings/wire_left.png": { - "frame": {"x":1696,"y":1015,"w":60,"h":60}, + "frame": {"x":1465,"y":1700,"w":60,"h":60}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":35,"w":60,"h":60}, @@ -1178,7 +1178,7 @@ }, "sprites/buildings/wire_right.png": { - "frame": {"x":1696,"y":1079,"w":60,"h":60}, + "frame": {"x":1529,"y":1700,"w":60,"h":60}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":35,"y":35,"w":60,"h":60}, @@ -1186,7 +1186,7 @@ }, "sprites/buildings/wire_top.png": { - "frame": {"x":1530,"y":757,"w":25,"h":95}, + "frame": {"x":1762,"y":554,"w":25,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":35,"y":0,"w":25,"h":95}, @@ -1194,7 +1194,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":1696,"y":1143,"w":38,"h":48}, + "frame": {"x":1639,"y":1597,"w":38,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, @@ -1202,7 +1202,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":1708,"y":925,"w":38,"h":48}, + "frame": {"x":1593,"y":1697,"w":38,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, @@ -1210,7 +1210,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":1736,"y":201,"w":20,"h":24}, + "frame": {"x":1499,"y":1371,"w":20,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, @@ -1218,7 +1218,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":553,"y":1181,"w":22,"h":22}, + "frame": {"x":505,"y":1698,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":22,"h":22}, @@ -1226,7 +1226,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":553,"y":1207,"w":22,"h":22}, + "frame": {"x":1195,"y":1738,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":22,"h":22}, @@ -1234,7 +1234,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":1065,"y":1460,"w":62,"h":62}, + "frame": {"x":311,"y":1698,"w":62,"h":62}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, @@ -1242,7 +1242,7 @@ }, "sprites/misc/energy_generator_overlay.png": { - "frame": {"x":827,"y":1765,"w":116,"h":44}, + "frame": {"x":1112,"y":689,"w":116,"h":44}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":137,"y":217,"w":116,"h":44}, @@ -1250,7 +1250,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":1244,"y":955,"w":24,"h":24}, + "frame": {"x":1288,"y":1378,"w":24,"h":24}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":24,"h":24}, @@ -1258,7 +1258,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":1695,"y":622,"w":36,"h":24}, + "frame": {"x":1198,"y":1327,"w":36,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":36,"h":24}, @@ -1266,7 +1266,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":1065,"y":1460,"w":62,"h":62}, + "frame": {"x":311,"y":1698,"w":62,"h":62}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, @@ -1274,7 +1274,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":1681,"y":367,"w":62,"h":72}, + "frame": {"x":245,"y":1698,"w":62,"h":72}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":62,"h":72}, @@ -1282,7 +1282,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":690,"y":1751,"w":133,"h":66}, + "frame": {"x":1535,"y":554,"w":133,"h":66}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":133,"h":66}, @@ -1290,7 +1290,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":1736,"y":229,"w":20,"h":24}, + "frame": {"x":1683,"y":1517,"w":20,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, @@ -1298,7 +1298,7 @@ }, "sprites/misc/wires_overlay_tile.png": { - "frame": {"x":1258,"y":675,"w":96,"h":96}, + "frame": {"x":1672,"y":298,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -1306,7 +1306,7 @@ }, "sprites/wires/battery_empty.png": { - "frame": {"x":1131,"y":1469,"w":29,"h":46}, + "frame": {"x":1711,"y":1418,"w":29,"h":46}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":1,"w":29,"h":46}, @@ -1314,7 +1314,7 @@ }, "sprites/wires/battery_full.png": { - "frame": {"x":990,"y":1280,"w":44,"h":30}, + "frame": {"x":1672,"y":398,"w":44,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":10,"w":44,"h":30}, @@ -1322,7 +1322,7 @@ }, "sprites/wires/battery_low.png": { - "frame": {"x":1708,"y":977,"w":44,"h":30}, + "frame": {"x":1103,"y":838,"w":44,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":10,"w":44,"h":30}, @@ -1330,7 +1330,7 @@ }, "sprites/wires/battery_medium.png": { - "frame": {"x":1677,"y":1290,"w":44,"h":30}, + "frame": {"x":847,"y":1429,"w":44,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":10,"w":44,"h":30}, @@ -1338,7 +1338,7 @@ }, "sprites/wires/negative_energy.png": { - "frame": {"x":947,"y":1765,"w":32,"h":32}, + "frame": {"x":1262,"y":1133,"w":32,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":8,"w":32,"h":32}, @@ -1346,7 +1346,7 @@ }, "sprites/wires/pin_negative_accept.png": { - "frame": {"x":1676,"y":201,"w":56,"h":79}, + "frame": {"x":185,"y":1688,"w":56,"h":79}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":20,"y":0,"w":56,"h":79}, @@ -1354,7 +1354,7 @@ }, "sprites/wires/pin_negative_eject.png": { - "frame": {"x":1695,"y":542,"w":49,"h":76}, + "frame": {"x":1750,"y":1022,"w":49,"h":76}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":49,"h":76}, @@ -1362,7 +1362,7 @@ }, "sprites/wires/pin_positive_accept.png": { - "frame": {"x":1191,"y":911,"w":49,"h":76}, + "frame": {"x":1630,"y":1517,"w":49,"h":76}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":49,"h":76}, @@ -1370,7 +1370,7 @@ }, "sprites/wires/pin_positive_eject.png": { - "frame": {"x":1681,"y":284,"w":56,"h":79}, + "frame": {"x":1438,"y":962,"w":56,"h":79}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":20,"y":0,"w":56,"h":79}, @@ -1378,7 +1378,7 @@ }, "sprites/wires/positive_energy.png": { - "frame": {"x":1677,"y":1324,"w":32,"h":32}, + "frame": {"x":843,"y":1577,"w":32,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":8,"w":32,"h":32}, @@ -1386,7 +1386,7 @@ }, "sprites/wires/waste_piled.png": { - "frame": {"x":1096,"y":824,"w":44,"h":43}, + "frame": {"x":1214,"y":1133,"w":44,"h":43}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":44,"h":43}, @@ -1397,8 +1397,8 @@ "version": "1.0", "image": "atlas0_75.png", "format": "RGBA8888", - "size": {"w":1759,"h":1834}, + "size": {"w":1810,"h":1778}, "scale": "0.75", - "smartupdate": "$TexturePacker:SmartUpdate:bf30498b7e1d76f2f7b9d1274acdd7cd:7220449b6cf5c4e08c60eab73ea85805:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:dfc84e4381978113df4ad0cd8a5aace9:4e9bd6f6c82aaaa8a4a583cab68dc719:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_75.png b/res_built/atlas/atlas0_75.png index 066c604b..d865f650 100644 Binary files a/res_built/atlas/atlas0_75.png and b/res_built/atlas/atlas0_75.png differ diff --git a/res_raw/atlas.tps b/res_raw/atlas.tps index 87eacd70..a5a6abbd 100644 --- a/res_raw/atlas.tps +++ b/res_raw/atlas.tps @@ -449,6 +449,7 @@ sprites/blueprints/miner-chainable.png sprites/blueprints/miner.png sprites/blueprints/rotater-ccw.png + sprites/blueprints/rotater-fl.png sprites/blueprints/rotater.png sprites/blueprints/splitter-compact-inverse.png sprites/blueprints/splitter-compact.png @@ -459,6 +460,7 @@ sprites/blueprints/underground_belt_exit.png sprites/buildings/miner-chainable.png sprites/buildings/rotater-ccw.png + sprites/buildings/rotater-fl.png sprites/buildings/splitter-compact-inverse.png sprites/buildings/splitter-compact.png sprites/buildings/underground_belt_entry-tier2.png diff --git a/res_raw/sprites/blueprints/rotater-fl.png b/res_raw/sprites/blueprints/rotater-fl.png index ca5876a3..25a66453 100644 Binary files a/res_raw/sprites/blueprints/rotater-fl.png and b/res_raw/sprites/blueprints/rotater-fl.png differ diff --git a/res_raw/sprites/blueprints/wire_crossings-merger.png b/res_raw/sprites/blueprints/wire_crossings-merger.png index 82d9862c..f58ae10e 100644 Binary files a/res_raw/sprites/blueprints/wire_crossings-merger.png and b/res_raw/sprites/blueprints/wire_crossings-merger.png differ diff --git a/res_raw/sprites/blueprints/wire_crossings.png b/res_raw/sprites/blueprints/wire_crossings.png index 113af179..a1d44678 100644 Binary files a/res_raw/sprites/blueprints/wire_crossings.png and b/res_raw/sprites/blueprints/wire_crossings.png differ diff --git a/res_raw/sprites/buildings/wire_crossings-merger.png b/res_raw/sprites/buildings/wire_crossings-merger.png index 42cef3f8..ee0db056 100644 Binary files a/res_raw/sprites/buildings/wire_crossings-merger.png and b/res_raw/sprites/buildings/wire_crossings-merger.png differ diff --git a/res_raw/sprites/buildings/wire_crossings.png b/res_raw/sprites/buildings/wire_crossings.png index 814349ba..243fe45d 100644 Binary files a/res_raw/sprites/buildings/wire_crossings.png and b/res_raw/sprites/buildings/wire_crossings.png differ diff --git a/res_raw/sprites/misc/lock_direction_indicator.png b/res_raw/sprites/misc/lock_direction_indicator.png deleted file mode 100644 index fe693ba2..00000000 Binary files a/res_raw/sprites/misc/lock_direction_indicator.png and /dev/null differ diff --git a/src/css/common.scss b/src/css/common.scss index b2078fa2..5f599716 100644 --- a/src/css/common.scss +++ b/src/css/common.scss @@ -73,6 +73,9 @@ body { scrollbar-face-color: #888; scrollbar-track-color: rgba(255, 255, 255, 0.1); + // Firefox + scrollbar-color: #cdd0d4 rgba(#000, 0.05); + overflow: hidden; @include Text; @@ -369,7 +372,7 @@ canvas { } .pressed { - transform: scale(0.95) !important; + transform: scale(0.98) !important; animation: none !important; } diff --git a/src/css/ingame_hud/buildings_toolbar.scss b/src/css/ingame_hud/buildings_toolbar.scss index 65923db8..d394106d 100644 --- a/src/css/ingame_hud/buildings_toolbar.scss +++ b/src/css/ingame_hud/buildings_toolbar.scss @@ -29,7 +29,6 @@ .buildings { display: grid; grid-auto-flow: column; - @include S(margin-bottom, 2px); .building { color: $accentColorDark; @@ -43,7 +42,7 @@ @include S(width, 35px); @include S(height, 40px); - background: center center / 70% no-repeat; + background: center center / 65% no-repeat; &:not(.unlocked) { @include S(width, 20px); diff --git a/src/css/ingame_hud/dialogs.scss b/src/css/ingame_hud/dialogs.scss index d72265e7..9c9ce7a4 100644 --- a/src/css/ingame_hud/dialogs.scss +++ b/src/css/ingame_hud/dialogs.scss @@ -55,6 +55,7 @@ .dialogInner { opacity: 1; } + backdrop-filter: blur(D(3px)); } .dialogInner { diff --git a/src/css/states/about.scss b/src/css/states/about.scss index aeac1e38..02025e03 100644 --- a/src/css/states/about.scss +++ b/src/css/states/about.scss @@ -1,6 +1,23 @@ #state_AboutState { > .container .content { + @include S(max-width, 600px); @include PlainText; + padding: 0; + background: transparent; + } + + .head { + @include S(padding, 20px); + + img { + display: block; + margin: 0 auto; + @include S(max-width, 200px); + } + } + + .text { + @include S(margin, 10px); } a { diff --git a/src/css/states/changelog.scss b/src/css/states/changelog.scss index 109f1d36..1daa5f04 100644 --- a/src/css/states/changelog.scss +++ b/src/css/states/changelog.scss @@ -1,5 +1,6 @@ #state_ChangelogState { .content { + @include S(max-width, 800px); display: flex; flex-direction: column; } diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss index 07a47c2e..d61bc9d0 100644 --- a/src/css/states/main_menu.scss +++ b/src/css/states/main_menu.scss @@ -55,7 +55,7 @@ opacity: 0; display: none; transform: translate(50%, 50%); - filter: blur(10px); + filter: blur(D(3px)); $opacity: 0.2; &.loaded { @@ -178,6 +178,10 @@ transform: translateX(50%) rotate(-7deg) scale(1.1); } } + + @include DarkThemeOverride { + color: $colorBlueBright; + } } } @@ -201,33 +205,6 @@ flex-grow: 1; @include S(margin-bottom, 10px); } - - .contest { - flex-grow: 1; - background: rgb(32, 187, 166); - @include S(padding, 15px); - - h3 { - @include Heading; - color: #fff; - font-weight: bold; - text-transform: uppercase; - @include S(margin-bottom, 5px); - } - p { - color: #fff; - @include Text; - strong { - font-weight: bold; - } - @include S(margin-bottom, 5px); - } - - button { - background: #fff; - color: #333538; - } - } } .mainContainer { diff --git a/src/css/states/settings.scss b/src/css/states/settings.scss index f06c9b31..5a35a9a2 100644 --- a/src/css/states/settings.scss +++ b/src/css/states/settings.scss @@ -1,113 +1,188 @@ #state_SettingsState { - .content { - .versionbar { - @include S(margin-top, 20px); - @include SuperSmallText; - display: grid; - align-items: center; - grid-template-columns: 1fr auto; - .buildVersion { - display: flex; - flex-direction: column; - color: #aaadaf; + $colorCategoryButton: #eee; + $colorCategoryButtonSelected: #5f748b; + + .container .content { + display: flex; + overflow-y: scroll; + + .categoryContainer { + width: 100%; + + .category { + display: none; + + &.active { + display: block; + } + + .setting { + @include S(padding, 10px); + background: #eeeff5; + @include S(border-radius, $globalBorderRadius); + @include S(margin-bottom, 5px); + + label { + text-transform: uppercase; + @include Text; + } + + .desc { + @include S(margin-top, 5px); + @include SuperSmallText; + color: #aaadb2; + } + + > .row { + display: grid; + align-items: center; + grid-template-columns: 1fr auto; + } + + &.disabled { + // opacity: 0.3; + pointer-events: none; + * { + pointer-events: none !important; + cursor: default !important; + } + position: relative; + .standaloneOnlyHint { + @include PlainText; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + pointer-events: all; + display: flex; + align-items: center; + justify-content: center; + background: rgba(#fff, 0.5); + text-transform: uppercase; + color: $colorRedBright; + } + } + + .value.enum { + background: #fff; + @include PlainText; + display: flex; + align-items: flex-start; + pointer-events: all; + cursor: pointer; + justify-content: center; + @include S(min-width, 100px); + @include S(border-radius, $globalBorderRadius); + @include S(padding, 4px); + @include S(padding-right, 15px); + + background: #fff uiResource("icons/enum_selector.png") calc(100% - #{D(5px)}) + calc(50% + #{D(1px)}) / #{D(15px)} no-repeat; + + transition: background-color 0.12s ease-in-out; + &:hover { + background-color: #fafafa; + } + } + } } } - button.about { - background-color: $colorGreenBright; - } + .sidebar { + display: flex; + flex-direction: column; + @include S(min-width, 210px); + @include S(max-width, 320px); + width: 30%; + height: 100%; + position: sticky; + top: 0; + @include S(margin-left, 20px); + @include S(margin-right, 32px); - .setting { - @include S(padding, 10px); - background: #eeeff5; - @include S(border-radius, $globalBorderRadius); - @include S(margin-bottom, 5px); - - label { - text-transform: uppercase; - @include Text; + .other { + margin-top: auto; } - .desc { - @include S(margin-top, 5px); + button { + @include S(margin-top, 4px); + width: calc(100% - #{D(20px)}); + text-align: start; + + &::after { + content: unset; + } + } + + button.categoryButton, + button.about { + background-color: $colorCategoryButton; + color: #777a7f; + + &.active { + background-color: $colorCategoryButtonSelected; + color: #fff; + + &:hover { + opacity: 1; + } + } + + &.pressed { + transform: none !important; + } + } + + .versionbar { + @include S(margin-top, 20px); @include SuperSmallText; - color: #aaadb2; - } - - > .row { display: grid; align-items: center; grid-template-columns: 1fr auto; - } - - &.disabled { - // opacity: 0.3; - pointer-events: none; - * { - pointer-events: none !important; - cursor: default !important; - } - position: relative; - .standaloneOnlyHint { - @include PlainText; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - pointer-events: all; + .buildVersion { display: flex; - align-items: center; - justify-content: center; - background: rgba(#fff, 0.5); - text-transform: uppercase; - color: $colorRedBright; - } - } - - .value.enum { - background: #fff; - @include PlainText; - display: flex; - align-items: flex-start; - pointer-events: all; - cursor: pointer; - justify-content: center; - @include S(min-width, 100px); - @include S(border-radius, $globalBorderRadius); - @include S(padding, 4px); - @include S(padding-right, 15px); - - background: #fff uiResource("icons/enum_selector.png") calc(100% - #{D(5px)}) - calc(50% + #{D(1px)}) / #{D(15px)} no-repeat; - - transition: background-color 0.12s ease-in-out; - &:hover { - background-color: #fafafa; + flex-direction: column; + color: #aaadaf; } } } } @include DarkThemeOverride { - .content { - .setting { - background: darken($darkModeGameBackground, 10); + .container .content { + .sidebar { + button.categoryButton, + button.about { + background-color: #3f3f47; - .value.enum { - // dirty but works - filter: invert(0.85); - color: #222; - } - - .value.checkbox { - background-color: #74767b; - - &.checked { + &.active { background-color: $colorBlueBright; } } } + + .categoryContainer { + .category { + .setting { + background: darken($darkModeGameBackground, 10); + + .value.enum { + // dirty but works + filter: invert(0.78) sepia(40%) hue-rotate(190deg); + color: #222; + } + + .value.checkbox { + background-color: #74767b; + + &.checked { + background-color: $colorBlueBright; + } + } + } + } + } } } } diff --git a/src/css/textual_game_state.scss b/src/css/textual_game_state.scss index a8d7a31f..54c5dbb3 100644 --- a/src/css/textual_game_state.scss +++ b/src/css/textual_game_state.scss @@ -1,24 +1,18 @@ .gameState.textualState { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - $padding: 15px; - - .headerBar, - > .container .content { - @include S(width, 500px); - } + display: grid; + grid-template-rows: auto 1fr; + box-sizing: border-box; + @include S(padding, 32px); + height: 100vh; .headerBar { display: flex; - align-items: center; - justify-content: flex-start; h1 { - display: flex; - pointer-events: all; + display: grid; + grid-template-columns: auto 1fr; align-items: center; + pointer-events: all; cursor: pointer; @include SuperHeading; text-transform: uppercase; @@ -39,11 +33,17 @@ } > .container { + display: flex; + justify-content: center; + width: 100%; + overflow-y: auto; + > .content { + width: 100%; background: #fff; @include S(border-radius, $globalBorderRadius); @include S(padding, 10px); - height: calc(80vh - #{D(60px)}); + height: 100%; overflow-y: auto; box-sizing: border-box; pointer-events: all; diff --git a/src/js/application.js b/src/js/application.js index 1726bd2d..bf70239d 100644 --- a/src/js/application.js +++ b/src/js/application.js @@ -385,7 +385,7 @@ export class Application { } const scale = this.getEffectiveUiScale(); - waitNextFrame().then(() => document.documentElement.style.setProperty("--ui-scale", scale)); + waitNextFrame().then(() => document.documentElement.style.setProperty("--ui-scale", `${scale}`)); window.focus(); } } diff --git a/src/js/changelog.js b/src/js/changelog.js index ad91eee9..e908d062 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -4,8 +4,10 @@ export const CHANGELOG = [ date: "unreleased", entries: [ "WIRES", + "Reworked menu UI design (by dengr1605)", "Allow holding ALT in belt planner to reverse direction (by jakobhellermann)", "Clear cursor when trying to pipette the same building twice (by hexy)", + "Fixed level 18 stacker bug: If you experienced it already, you know it, if not, I don't want to spoiler (by hexy)", "Added keybinding to close menus (by isaisstillalive / Sandwichs-del)", "Fix rare crash regarding the buildings toolbar (by isaisstillalive)", "Fixed some phrases (by EnderDoom77)", @@ -24,7 +26,7 @@ export const CHANGELOG = [ version: "1.1.19", date: "02.07.2020", entries: [ - "There are now notifications every 15 minutes in the demo version to buy the full version (For further details and the reason, check the #surveys channel in the discord)", + "There are now notifications every 15 minutes in the demo version to buy the full version (For further details and the reason, check the #surveys channel in the Discord)", "I'm still working on the wires update, I hope to release it mid july!", ], }, @@ -151,7 +153,7 @@ export const CHANGELOG = [ version: "1.1.10", date: "12.06.2020", entries: [ - "There are now linux builds on steam! Please report any issues in the discord!", + "There are now linux builds on steam! Please report any issues in the Discord!", "Steam cloud saves are now available!", "Added and update more translations (Big thank you to all translators!)", "Prevent invalid connection if existing underground tunnel entrance exists (by jaysc)", @@ -221,7 +223,7 @@ export const CHANGELOG = [ entries: [ "The official trailer is now ready! Check it out here!", "The steam page is now live!", - "Experimental linux builds are now available! Please give me feedback on them in the discord", + "Experimental linux builds are now available! Please give me feedback on them in the Discord", "Allow hovering pinned shapes to enlarge them", "Allow deselecting blueprints with right click and 'Q'", "Move default key for deleting from 'X' to 'DEL'", diff --git a/src/js/core/animation_frame.js b/src/js/core/animation_frame.js index 0e921174..14147f7f 100644 --- a/src/js/core/animation_frame.js +++ b/src/js/core/animation_frame.js @@ -1,7 +1,6 @@ import { Signal } from "./signal"; -// @ts-ignore -import BackgroundAnimationFrameEmitterWorker from "../webworkers/background_animation_frame_emittter.worker"; +import BackgroundAnimationFrameEmitterWorker from "worker-loader?inline=true&fallback=false!../webworkers/background_animation_frame_emittter.worker"; import { createLogger } from "./logging"; const logger = createLogger("animation_frame"); @@ -14,12 +13,11 @@ export class AnimationFrame { this.frameEmitted = new Signal(); this.bgFrameEmitted = new Signal(); - this.lastTime = null; - this.bgLastTime = null; + this.lastTime = performance.now(); + this.bgLastTime = performance.now(); this.boundMethod = this.handleAnimationFrame.bind(this); - /** @type {Worker} */ this.backgroundWorker = new BackgroundAnimationFrameEmitterWorker(); this.backgroundWorker.addEventListener("error", err => { logger.error("Error in background fps worker:", err); @@ -27,22 +25,16 @@ export class AnimationFrame { this.backgroundWorker.addEventListener("message", this.handleBackgroundTick.bind(this)); } - /** - * - * @param {MessageEvent} event - */ - handleBackgroundTick(event) { + handleBackgroundTick() { const time = performance.now(); - if (!this.bgLastTime) { - // First update, first delta is always 16ms - this.bgFrameEmitted.dispatch(1000 / 60); - } else { - let dt = time - this.bgLastTime; - if (dt > maxDtMs) { - dt = resetDtMs; - } - this.bgFrameEmitted.dispatch(dt); + + let dt = time - this.bgLastTime; + + if (dt > maxDtMs) { + dt = resetDtMs; } + + this.bgFrameEmitted.dispatch(dt); this.bgLastTime = time; } @@ -52,18 +44,15 @@ export class AnimationFrame { } handleAnimationFrame(time) { - if (!this.lastTime) { - // First update, first delta is always 16ms - this.frameEmitted.dispatch(1000 / 60); - } else { - let dt = time - this.lastTime; - if (dt > maxDtMs) { - // warn(this, "Clamping", dt, "to", resetDtMs); - dt = resetDtMs; - } - this.frameEmitted.dispatch(dt); + let dt = time - this.lastTime; + + if (dt > maxDtMs) { + dt = resetDtMs; } + + this.frameEmitted.dispatch(dt); this.lastTime = time; + window.requestAnimationFrame(this.boundMethod); } } diff --git a/src/js/core/async_compression.js b/src/js/core/async_compression.js index b11f8fd5..9263cdab 100644 --- a/src/js/core/async_compression.js +++ b/src/js/core/async_compression.js @@ -1,7 +1,6 @@ -// @ts-ignore -import CompressionWorker from "../webworkers/compression.worker"; +import CompressionWorker from "worker-loader?inline=true&fallback=false!../webworkers/compression.worker"; import { createLogger } from "./logging"; -import { compressX64 } from "./lzstring"; + const logger = createLogger("async_compression"); export let compressionPrefix = String.fromCodePoint(1); @@ -35,7 +34,6 @@ if (!checkCryptPrefix(compressionPrefix)) { class AsynCompression { constructor() { - /** @type {Worker} */ this.worker = new CompressionWorker(); this.currentJobId = 1000; diff --git a/src/js/core/background_resources_loader.js b/src/js/core/background_resources_loader.js index ff99d23c..213e5869 100644 --- a/src/js/core/background_resources_loader.js +++ b/src/js/core/background_resources_loader.js @@ -7,6 +7,7 @@ import { createLogger } from "./logging"; import { Signal } from "./signal"; import { SOUNDS, MUSIC } from "../platform/sound"; import { AtlasDefinition, atlasFiles } from "./atlas_definitions"; +import { initBuildingCodesAfterResourcesLoaded } from "../game/meta_building_registry"; const logger = createLogger("background_loader"); @@ -116,6 +117,7 @@ export class BackgroundResourcesLoader { logger.log("⏰ Finish load: bare game"); Loader.createAtlasLinks(); this.bareGameReady = true; + initBuildingCodesAfterResourcesLoaded(); this.signalBareGameLoaded.dispatch(); this.internalStartLoadingAdditionalGameAssets(); }); diff --git a/src/js/core/read_write_proxy.js b/src/js/core/read_write_proxy.js index 5474467a..3444057a 100644 --- a/src/js/core/read_write_proxy.js +++ b/src/js/core/read_write_proxy.js @@ -8,7 +8,7 @@ import { FILE_NOT_FOUND } from "../platform/storage"; import { accessNestedPropertyReverse } from "./utils"; import { IS_DEBUG, globalConfig } from "./config"; import { ExplainedResult } from "./explained_result"; -import { decompressX64, compressX64 } from ".//lzstring"; +import { decompressX64, compressX64 } from "./lzstring"; import { asyncCompressor, compressionPrefix } from "./async_compression"; import { compressObject, decompressObject } from "../savegame/savegame_compressor"; diff --git a/src/js/core/sensitive_utils.encrypt.js b/src/js/core/sensitive_utils.encrypt.js index 710de478..0a8906e7 100644 --- a/src/js/core/sensitive_utils.encrypt.js +++ b/src/js/core/sensitive_utils.encrypt.js @@ -1,19 +1,12 @@ -import { globalConfig } from "./config"; -import { decompressX64, compressX64 } from "./lzstring"; +import { createHash } from "rusha"; -const Rusha = require("rusha"); - -const encryptKey = globalConfig.info.sgSalt; - -export function decodeHashedString(s) { - return decompressX64(s); -} +import { decompressX64 } from "./lzstring"; export function sha1(str) { - return Rusha.createHash().update(str).digest("hex"); + return createHash().update(str).digest("hex"); } // Window.location.host export function getNameOfProvider() { - return window[decodeHashedString("DYewxghgLgliB2Q")][decodeHashedString("BYewzgLgdghgtgUyA")]; + return window[decompressX64("DYewxghgLgliB2Q")][decompressX64("BYewzgLgdghgtgUyA")]; } diff --git a/src/js/core/sprites.js b/src/js/core/sprites.js index 26cd65b2..8427f2ef 100644 --- a/src/js/core/sprites.js +++ b/src/js/core/sprites.js @@ -158,7 +158,9 @@ export class AtlasSprite extends BaseSprite { const scale = parameters.desiredAtlasScale; const link = this.linksByResolution[scale]; - assert(link, "Link not known: " + scale + " (having " + Object.keys(this.linksByResolution) + ")"); + if (!link) { + assert(false, `Link not known: ${scale} (having ${Object.keys(this.linksByResolution)})`); + } const scaleW = w / link.w; const scaleH = h / link.h; diff --git a/src/js/game/blueprint.js b/src/js/game/blueprint.js index 4e322eb0..e1ac2dec 100644 --- a/src/js/game/blueprint.js +++ b/src/js/game/blueprint.js @@ -81,10 +81,6 @@ export class Blueprint { for (let i = 0; i < this.entities.length; ++i) { const entity = this.entities[i]; const staticComp = entity.components.StaticMapEntity; - if (!staticComp.blueprintSpriteKey) { - logger.warn("Blueprint entity without sprite!"); - return; - } const newPos = staticComp.origin.add(tile); const rect = staticComp.getTileSpaceBounds(); @@ -98,7 +94,7 @@ export class Blueprint { staticComp.drawSpriteOnFullEntityBounds( parameters, - Loader.getSprite(staticComp.blueprintSpriteKey), + staticComp.getBlueprintSprite(), 0, true, newPos diff --git a/src/js/game/building_codes.js b/src/js/game/building_codes.js new file mode 100644 index 00000000..ea331272 --- /dev/null +++ b/src/js/game/building_codes.js @@ -0,0 +1,72 @@ +import { MetaBuilding, defaultBuildingVariant } from "./meta_building"; +import { AtlasSprite } from "../core/sprites"; + +/** + * @typedef {{ + * metaClass: typeof MetaBuilding, + * metaInstance?: MetaBuilding, + * variant?: string, + * rotationVariant?: number, + * sprite?: AtlasSprite, + * blueprintSprite?: AtlasSprite, + * silhouetteColor?: string + * }} BuildingVariantIdentifier + */ + +/** + * Stores a lookup table for all building variants (for better performance) + * @type {Object} + */ +export const gBuildingVariants = { + // Set later +}; + +/** + * + * @param {*} id + * @param {*} meta + * @param {*} variant + * @param {*} rotationVariant + */ +export function registerBuildingVariant(id, meta, variant = defaultBuildingVariant, rotationVariant = 0) { + assert(!gBuildingVariants[id], "Duplicate id: " + id); + gBuildingVariants[id] = { + metaClass: meta, + variant, + rotationVariant, + }; +} + +/** + * + * @param {number} code + * @returns {BuildingVariantIdentifier} + */ +export function getBuildingDataFromCode(code) { + assert(gBuildingVariants[code], "Invalid building code: " + code); + return gBuildingVariants[code]; +} + +/** + * Finds the code for a given variant + * @param {MetaBuilding} metaBuilding + * @param {string} variant + * @param {number} rotationVariant + */ +export function getCodeFromBuildingData(metaBuilding, variant, rotationVariant) { + for (const key in gBuildingVariants) { + const data = gBuildingVariants[key]; + if ( + data.metaInstance.getId() === metaBuilding.getId() && + data.variant === variant && + data.rotationVariant === rotationVariant + ) { + return +key; + } + } + assertAlways( + false, + "Building not found by data: " + metaBuilding.getId() + " / " + variant + " / " + rotationVariant + ); + return 0; +} diff --git a/src/js/game/buildings/belt_base.js b/src/js/game/buildings/belt_base.js index b8e92150..a87589a3 100644 --- a/src/js/game/buildings/belt_base.js +++ b/src/js/game/buildings/belt_base.js @@ -1,4 +1,3 @@ -import { Loader } from "../../core/loader"; import { formatItemsPerSecond } from "../../core/utils"; import { enumAngleToDirection, enumDirection, Vector } from "../../core/vector"; import { SOUNDS } from "../../platform/sound"; @@ -40,6 +39,10 @@ export class MetaBeltBaseBuilding extends MetaBuilding { return SOUNDS.placeBelt; } + getSprite() { + return null; + } + /** * Creates the entity at the given location * @param {Entity} entity @@ -88,7 +91,6 @@ export class MetaBeltBaseBuilding extends MetaBuilding { updateVariants(entity, rotationVariant) { entity.components.Belt.direction = arrayBeltVariantToRotation[rotationVariant]; entity.components.ItemEjector.slots[0].direction = arrayBeltVariantToRotation[rotationVariant]; - entity.components.StaticMapEntity.spriteKey = null; } /** diff --git a/src/js/game/buildings/hub.js b/src/js/game/buildings/hub.js index 61a61f27..4f0e0d80 100644 --- a/src/js/game/buildings/hub.js +++ b/src/js/game/buildings/hub.js @@ -28,6 +28,11 @@ export class MetaHubBuilding extends MetaBuilding { return null; } + getSprite() { + // We render it ourself + return null; + } + /** * Creates the entity at the given location * @param {Entity} entity @@ -41,9 +46,6 @@ export class MetaHubBuilding extends MetaBuilding { }) ); - // We render the sprite ourself - entity.components.StaticMapEntity.spriteKey = null; - entity.addComponent(new UnremovableComponent()); entity.addComponent( new ItemAcceptorComponent({ diff --git a/src/js/game/buildings/underground_belt.js b/src/js/game/buildings/underground_belt.js index 99004b99..2c4f6a1d 100644 --- a/src/js/game/buildings/underground_belt.js +++ b/src/js/game/buildings/underground_belt.js @@ -71,6 +71,10 @@ export class MetaUndergroundBeltBuilding extends MetaBuilding { return super.getAvailableVariants(root); } + /** + * @param {number} rotationVariant + * @param {string} variant + */ getPreviewSprite(rotationVariant, variant) { let suffix = ""; if (variant !== defaultBuildingVariant) { @@ -87,6 +91,10 @@ export class MetaUndergroundBeltBuilding extends MetaBuilding { } } + /** + * @param {number} rotationVariant + * @param {string} variant + */ getBlueprintSprite(rotationVariant, variant) { let suffix = ""; if (variant !== defaultBuildingVariant) { @@ -103,6 +111,14 @@ export class MetaUndergroundBeltBuilding extends MetaBuilding { } } + /** + * @param {number} rotationVariant + * @param {string} variant + */ + getSprite(rotationVariant, variant) { + return this.getPreviewSprite(rotationVariant, variant); + } + /** * @param {GameRoot} root */ @@ -201,10 +217,6 @@ export class MetaUndergroundBeltBuilding extends MetaBuilding { */ updateVariants(entity, rotationVariant, variant) { entity.components.UndergroundBelt.tier = enumUndergroundBeltVariantToTier[variant]; - entity.components.StaticMapEntity.spriteKey = this.getPreviewSprite( - rotationVariant, - variant - ).spriteName; switch (arrayUndergroundRotationVariantToMode[rotationVariant]) { case enumUndergroundBeltMode.sender: { diff --git a/src/js/game/buildings/wire_crossings.js b/src/js/game/buildings/wire_crossings.js index 111d7ce4..cb3c933a 100644 --- a/src/js/game/buildings/wire_crossings.js +++ b/src/js/game/buildings/wire_crossings.js @@ -88,7 +88,7 @@ export class MetaWireCrossingsBuilding extends MetaBuilding { ]); entity.components.ItemEjector.setSlots([ - { pos: new Vector(0, 0), direction: enumDirection.left, layer: enumLayer.wires }, + { pos: new Vector(0, 0), direction: enumDirection.top, layer: enumLayer.wires }, { pos: new Vector(0, 0), direction: enumDirection.right, layer: enumLayer.wires }, ]); @@ -98,7 +98,7 @@ export class MetaWireCrossingsBuilding extends MetaBuilding { entity.components.ItemAcceptor.setSlots([ { pos: new Vector(0, 0), - directions: [enumDirection.left], + directions: [enumDirection.top], layer: enumLayer.wires, }, { @@ -109,7 +109,7 @@ export class MetaWireCrossingsBuilding extends MetaBuilding { ]); entity.components.ItemEjector.setSlots([ - { pos: new Vector(0, 0), direction: enumDirection.top, layer: enumLayer.wires }, + { pos: new Vector(0, 0), direction: enumDirection.bottom, layer: enumLayer.wires }, ]); break; } diff --git a/src/js/game/components/static_map_entity.js b/src/js/game/components/static_map_entity.js index 3f0794a4..6494aba1 100644 --- a/src/js/game/components/static_map_entity.js +++ b/src/js/game/components/static_map_entity.js @@ -5,6 +5,7 @@ import { AtlasSprite } from "../../core/sprites"; import { enumDirection, Vector } from "../../core/vector"; import { types } from "../../savegame/serialization"; import { Component } from "../component"; +import { getBuildingDataFromCode } from "../building_codes"; export class StaticMapEntityComponent extends Component { static getId() { @@ -17,21 +18,43 @@ export class StaticMapEntityComponent extends Component { tileSize: types.tileVector, rotation: types.float, originalRotation: types.float, - spriteKey: types.nullable(types.string), - blueprintSpriteKey: types.string, - silhouetteColor: types.nullable(types.string), + + // See building_codes.js + code: types.uint, }; } + /** + * Returns the sprite + * @returns {AtlasSprite} + */ + getSprite() { + return getBuildingDataFromCode(this.code).sprite; + } + + /** + * Returns the blueprint sprite + * @returns {AtlasSprite} + */ + getBlueprintSprite() { + return getBuildingDataFromCode(this.code).blueprintSprite; + } + + /** + * Returns the silhouette color + * @returns {string} + */ + getSilhouetteColor() { + return getBuildingDataFromCode(this.code).silhouetteColor; + } + duplicateWithoutContents() { return new StaticMapEntityComponent({ origin: this.origin.copy(), tileSize: this.tileSize.copy(), rotation: this.rotation, originalRotation: this.originalRotation, - spriteKey: this.spriteKey, - silhouetteColor: this.silhouetteColor, - blueprintSpriteKey: this.blueprintSpriteKey, + code: this.code, }); } @@ -42,18 +65,14 @@ export class StaticMapEntityComponent extends Component { * @param {Vector=} param0.tileSize Size of the entity in tiles * @param {number=} param0.rotation Rotation in degrees. Must be multiple of 90 * @param {number=} param0.originalRotation Original Rotation in degrees. Must be multiple of 90 - * @param {string=} param0.spriteKey Optional sprite - * @param {string} param0.blueprintSpriteKey Blueprint sprite, required - * @param {string=} param0.silhouetteColor Optional silhouette color override + * @param {number=} param0.code Building code */ constructor({ origin = new Vector(), tileSize = new Vector(1, 1), rotation = 0, originalRotation = 0, - spriteKey = null, - silhouetteColor = null, - blueprintSpriteKey = null, + code = 0, }) { super(); assert( @@ -63,11 +82,9 @@ export class StaticMapEntityComponent extends Component { this.origin = origin; this.tileSize = tileSize; - this.spriteKey = spriteKey; this.rotation = rotation; + this.code = code; this.originalRotation = originalRotation; - this.silhouetteColor = silhouetteColor; - this.blueprintSpriteKey = blueprintSpriteKey; } /** diff --git a/src/js/game/hud/parts/building_placer.js b/src/js/game/hud/parts/building_placer.js index d3a3c7ac..d5770d0a 100644 --- a/src/js/game/hud/parts/building_placer.js +++ b/src/js/game/hud/parts/building_placer.js @@ -18,6 +18,7 @@ import { DynamicDomAttach } from "../dynamic_dom_attach"; import { HUDBuildingPlacerLogic } from "./building_placer_logic"; import { makeOffscreenBuffer } from "../../../core/buffer_utils"; import { enumLayer } from "../../root"; +import { getCodeFromBuildingData } from "../../building_codes"; export class HUDBuildingPlacer extends HUDBuildingPlacerLogic { /** @@ -84,9 +85,8 @@ export class HUDBuildingPlacer extends HUDBuildingPlacerLogic { label: "lock-direction-indicator", }); - // Loader.getSprite("sprites/misc/lock_direction_indicator.png").draw(context, 0, 0, 48, 48); - context.fillStyle = THEME.map.directionLock[enumLayer.wires].color; - context.strokeStyle = THEME.map.directionLock[enumLayer.wires].color; + context.fillStyle = THEME.map.directionLock[layer].color; + context.strokeStyle = THEME.map.directionLock[layer].color; context.lineWidth = 2; const padding = 5; @@ -313,6 +313,11 @@ export class HUDBuildingPlacer extends HUDBuildingPlacerLogic { staticComp.rotation = rotation; staticComp.tileSize = metaBuilding.getDimensions(this.currentVariant.get()); metaBuilding.updateVariants(this.fakeEntity, rotationVariant, this.currentVariant.get()); + staticComp.code = getCodeFromBuildingData( + this.currentMetaBuilding.get(), + this.currentVariant.get(), + rotationVariant + ); const canBuild = this.root.logic.checkCanPlaceEntity(this.fakeEntity); diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index 563ce144..97a635a6 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -13,6 +13,7 @@ import { SOUNDS } from "../../../platform/sound"; import { MetaMinerBuilding, enumMinerVariants } from "../../buildings/miner"; import { enumHubGoalRewards } from "../../tutorial_goals"; import { enumLayer } from "../../root"; +import { getBuildingDataFromCode, getCodeFromBuildingData } from "../../building_codes"; /** * Contains all logic for the building placer - this doesn't include the rendering @@ -338,109 +339,27 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { } // Try to extract the building - const extracted = this.hack_reconstructMetaBuildingAndVariantFromBuilding(contents); + const buildingCode = contents.components.StaticMapEntity.code; + const extracted = getBuildingDataFromCode(buildingCode); // If the building we are picking is the same as the one we have, clear the cursor. if ( - !extracted || - (extracted.metaBuilding === this.currentMetaBuilding.get() && - extracted.variant === this.currentVariant.get()) + this.currentMetaBuilding.get() && + extracted.metaInstance.getId() === this.currentMetaBuilding.get().getId() && + extracted.variant === this.currentVariant.get() ) { this.currentMetaBuilding.set(null); return; } - this.currentMetaBuilding.set(extracted.metaBuilding); + this.currentMetaBuilding.set(extracted.metaInstance); this.currentVariant.set(extracted.variant); this.currentBaseRotation = contents.components.StaticMapEntity.rotation; } /** - * HACK! - * - * This attempts to reconstruct the meta building and its variant from a given entity - * @param {Entity} entity - * @returns {{ metaBuilding: MetaBuilding, variant: string }} + * Switches the side for the direction lock manually */ - hack_reconstructMetaBuildingAndVariantFromBuilding(entity) { - if (entity.components.Hub) { - // Hub is not copyable - return null; - } - - const matches = []; - const metaBuildings = gMetaBuildingRegistry.entries; - for (let i = 0; i < metaBuildings.length; ++i) { - const metaBuilding = metaBuildings[i]; - const availableVariants = metaBuilding.getAvailableVariants(this.root); - checkVariant: for (let k = 0; k < availableVariants.length; ++k) { - const variant = availableVariants[k]; - let unplaced = metaBuilding.createEntity({ - root: this.root, - variant, - origin: new Vector(0, 0), - rotation: 0, - originalRotation: 0, - rotationVariant: 0, - }); - - // Compare if both entities share the same components - for (let component in entity.components) { - if ((entity.components[component] == null) !== (unplaced.components[component] == null)) { - continue checkVariant; - } - } - - // Check for same item processor - if ( - entity.components.ItemProcessor && - entity.components.ItemProcessor.type != unplaced.components.ItemProcessor.type - ) { - continue checkVariant; - } - - // Check for underground belt - if ( - entity.components.UndergroundBelt && - entity.components.UndergroundBelt.tier != unplaced.components.UndergroundBelt.tier - ) { - continue checkVariant; - } - - // Check for same sprite key - except for underground belts - // since the sprite may vary here - if ( - !entity.components.UndergroundBelt && - entity.components.StaticMapEntity.spriteKey != - unplaced.components.StaticMapEntity.spriteKey - ) { - continue checkVariant; - } - - if (metaBuilding.id === "wire" && entity.layer !== enumLayer.wires) { - continue checkVariant; - } - - if (metaBuilding.id === "belt" && entity.layer !== enumLayer.regular) { - continue checkVariant; - } - matches.push({ metaBuilding, variant }); - } - } - - if (matches.length == 1) { - const staticEntity = entity.components.StaticMapEntity; - const key = staticEntity.spriteKey || staticEntity.blueprintSpriteKey; - assert( - key && - key.includes(matches[0].metaBuilding.id) && - (matches[0].variant === defaultBuildingVariant || key.includes(matches[0].variant)) - ); - return matches[0]; - } - return null; - } - switchDirectionLockSide() { this.currentDirectionLockSide = 1 - this.currentDirectionLockSide; } @@ -673,7 +592,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { origin: new Vector(0, 0), rotation: 0, tileSize: metaBuilding.getDimensions(this.currentVariant.get()).copy(), - blueprintSpriteKey: "", + code: getCodeFromBuildingData(metaBuilding, variant, 0), }) ); metaBuilding.updateVariants(this.fakeEntity, 0, this.currentVariant.get()); diff --git a/src/js/game/hud/parts/debug_info.js b/src/js/game/hud/parts/debug_info.js index cdd00540..100a19ef 100644 --- a/src/js/game/hud/parts/debug_info.js +++ b/src/js/game/hud/parts/debug_info.js @@ -88,8 +88,8 @@ export class HUDDebugInfo extends BaseHUDPart { const mouseTile = this.root.camera.screenToWorld(mousePos).toTileSpace(); const cameraTile = this.root.camera.center.toTileSpace(); - this.trackedMousePosition.set(`Pos: ${mouseTile.x} / ${mouseTile.y}`); - this.trackedCameraPosition.set(`Center: ${cameraTile.x} / ${cameraTile.y}`); + this.trackedMousePosition.set(`Mouse: ${mouseTile.x} / ${mouseTile.y}`); + this.trackedCameraPosition.set(`Camera: ${cameraTile.x} / ${cameraTile.y}`); } /** diff --git a/src/js/game/hud/parts/entity_debugger.js b/src/js/game/hud/parts/entity_debugger.js index 9fe1bd7c..80f15eea 100644 --- a/src/js/game/hud/parts/entity_debugger.js +++ b/src/js/game/hud/parts/entity_debugger.js @@ -15,7 +15,9 @@ export class HUDEntityDebugger extends BaseHUDPart { ` ); + /** @type {HTMLElement} */ this.mousePosElem = this.element.querySelector(".mousePos"); + /** @type {HTMLElement} */ this.chunkPosElem = this.element.querySelector(".chunkPos"); this.entityInfoElem = this.element.querySelector(".entityInfo"); } diff --git a/src/js/game/hud/parts/settings_menu.js b/src/js/game/hud/parts/settings_menu.js index c70d6afc..6034ab9d 100644 --- a/src/js/game/hud/parts/settings_menu.js +++ b/src/js/game/hud/parts/settings_menu.js @@ -23,7 +23,7 @@ export class HUDSettingsMenu extends BaseHUDPart { ${T.ingame.settingsMenu.beltsPlaced} ${T.ingame.settingsMenu.buildingsPlaced} ${T.ingame.settingsMenu.playtime} - + ` ); @@ -106,16 +106,22 @@ export class HUDSettingsMenu extends BaseHUDPart { this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); const totalMinutesPlayed = Math.ceil(this.root.time.now() / 60); - this.statsElement.querySelector(".playtime").innerText = T.global.time.xMinutes.replace( - "", - "" + totalMinutesPlayed - ); - this.statsElement.querySelector(".buildingsPlaced").innerText = formatBigNumberFull( + /** @type {HTMLElement} */ + const playtimeElement = this.statsElement.querySelector(".playtime"); + /** @type {HTMLElement} */ + const buildingsPlacedElement = this.statsElement.querySelector(".buildingsPlaced"); + /** @type {HTMLElement} */ + const beltsPlacedElement = this.statsElement.querySelector(".beltsPlaced"); + + playtimeElement.innerText = T.global.time.xMinutes.replace("", `${totalMinutesPlayed}`); + + buildingsPlacedElement.innerText = formatBigNumberFull( this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent).length - this.root.entityMgr.getAllWithComponent(BeltComponent).length ); - this.statsElement.querySelector(".beltsPlaced").innerText = formatBigNumberFull( + + beltsPlacedElement.innerText = formatBigNumberFull( this.root.entityMgr.getAllWithComponent(BeltComponent).length ); } diff --git a/src/js/game/meta_building.js b/src/js/game/meta_building.js index 514474c9..722dca13 100644 --- a/src/js/game/meta_building.js +++ b/src/js/game/meta_building.js @@ -5,6 +5,7 @@ import { SOUNDS } from "../platform/sound"; import { StaticMapEntityComponent } from "./components/static_map_entity"; import { Entity } from "./entity"; import { enumLayer, GameRoot } from "./root"; +import { getCodeFromBuildingData } from "./building_codes"; export const defaultBuildingVariant = "default"; @@ -157,20 +158,13 @@ export class MetaBuilding { createEntity({ root, origin, rotation, originalRotation, rotationVariant, variant }) { const entity = new Entity(root); entity.layer = this.getLayer(); - const blueprintSprite = this.getBlueprintSprite(rotationVariant, variant); entity.addComponent( new StaticMapEntityComponent({ - spriteKey: - "sprites/buildings/" + - this.id + - (variant === defaultBuildingVariant ? "" : "-" + variant) + - ".png", origin: new Vector(origin.x, origin.y), rotation, originalRotation, tileSize: this.getDimensions(variant).copy(), - silhouetteColor: this.getSilhouetteColor(), - blueprintSpriteKey: blueprintSprite ? blueprintSprite.spriteName : "", + code: getCodeFromBuildingData(this, variant, rotationVariant), }) ); this.setupEntityComponents(entity, root); @@ -178,6 +172,21 @@ export class MetaBuilding { return entity; } + /** + * Returns the sprite for a given variant + * @param {number} rotationVariant + * @param {string} variant + * @returns {AtlasSprite} + */ + getSprite(rotationVariant, variant) { + return Loader.getSprite( + "sprites/buildings/" + + this.id + + (variant === defaultBuildingVariant ? "" : "-" + variant) + + ".png" + ); + } + /** * Should compute the optimal rotation variant on the given tile * @param {object} param0 diff --git a/src/js/game/meta_building_registry.js b/src/js/game/meta_building_registry.js index 4e1fdd81..20ca6f41 100644 --- a/src/js/game/meta_building_registry.js +++ b/src/js/game/meta_building_registry.js @@ -1,20 +1,25 @@ import { gMetaBuildingRegistry } from "../core/global_registries"; -import { MetaBeltBaseBuilding } from "./buildings/belt_base"; -import { MetaCutterBuilding } from "./buildings/cutter"; -import { MetaMinerBuilding } from "./buildings/miner"; -import { MetaMixerBuilding } from "./buildings/mixer"; -import { MetaPainterBuilding } from "./buildings/painter"; -import { MetaRotaterBuilding } from "./buildings/rotater"; -import { MetaSplitterBuilding } from "./buildings/splitter"; -import { MetaStackerBuilding } from "./buildings/stacker"; -import { MetaTrashBuilding } from "./buildings/trash"; -import { MetaUndergroundBeltBuilding } from "./buildings/underground_belt"; -import { MetaHubBuilding } from "./buildings/hub"; -import { MetaEnergyGenerator } from "./buildings/energy_generator"; -import { MetaWireBaseBuilding } from "./buildings/wire_base"; +import { createLogger } from "../core/logging"; import { MetaAdvancedProcessorBuilding } from "./buildings/advanced_processor"; import { MetaBeltBuilding } from "./buildings/belt"; -import { MetaWireCrossingsBuilding } from "./buildings/wire_crossings"; +import { MetaBeltBaseBuilding } from "./buildings/belt_base"; +import { enumCutterVariants, MetaCutterBuilding } from "./buildings/cutter"; +import { MetaEnergyGenerator } from "./buildings/energy_generator"; +import { MetaHubBuilding } from "./buildings/hub"; +import { enumMinerVariants, MetaMinerBuilding } from "./buildings/miner"; +import { MetaMixerBuilding } from "./buildings/mixer"; +import { enumPainterVariants, MetaPainterBuilding } from "./buildings/painter"; +import { enumRotaterVariants, MetaRotaterBuilding } from "./buildings/rotater"; +import { enumSplitterVariants, MetaSplitterBuilding } from "./buildings/splitter"; +import { MetaStackerBuilding } from "./buildings/stacker"; +import { enumTrashVariants, MetaTrashBuilding } from "./buildings/trash"; +import { enumUndergroundBeltVariants, MetaUndergroundBeltBuilding } from "./buildings/underground_belt"; +import { MetaWireBaseBuilding } from "./buildings/wire_base"; +import { enumWireCrossingVariants, MetaWireCrossingsBuilding } from "./buildings/wire_crossings"; +import { gBuildingVariants, registerBuildingVariant } from "./building_codes"; +import { defaultBuildingVariant } from "./meta_building"; + +const logger = createLogger("building_registry"); export function initMetaBuildingRegistry() { gMetaBuildingRegistry.register(MetaSplitterBuilding); @@ -32,4 +37,106 @@ export function initMetaBuildingRegistry() { gMetaBuildingRegistry.register(MetaWireBaseBuilding); gMetaBuildingRegistry.register(MetaAdvancedProcessorBuilding); gMetaBuildingRegistry.register(MetaWireCrossingsBuilding); + + // Belt + registerBuildingVariant(1, MetaBeltBaseBuilding, defaultBuildingVariant, 0); + registerBuildingVariant(2, MetaBeltBaseBuilding, defaultBuildingVariant, 1); + registerBuildingVariant(3, MetaBeltBaseBuilding, defaultBuildingVariant, 2); + + // Splitter + registerBuildingVariant(4, MetaSplitterBuilding); + registerBuildingVariant(5, MetaSplitterBuilding, enumSplitterVariants.compact); + registerBuildingVariant(6, MetaSplitterBuilding, enumSplitterVariants.compactInverse); + + // Miner + registerBuildingVariant(7, MetaMinerBuilding); + registerBuildingVariant(8, MetaMinerBuilding, enumMinerVariants.chainable); + + // Cutter + registerBuildingVariant(9, MetaCutterBuilding); + registerBuildingVariant(10, MetaCutterBuilding, enumCutterVariants.quad); + + // Rotater + registerBuildingVariant(11, MetaRotaterBuilding); + registerBuildingVariant(12, MetaRotaterBuilding, enumRotaterVariants.ccw); + registerBuildingVariant(13, MetaRotaterBuilding, enumRotaterVariants.fl); + + // Stacker + registerBuildingVariant(14, MetaStackerBuilding); + + // Mixer + registerBuildingVariant(15, MetaMixerBuilding); + + // Painter + registerBuildingVariant(16, MetaPainterBuilding); + registerBuildingVariant(17, MetaPainterBuilding, enumPainterVariants.mirrored); + registerBuildingVariant(18, MetaPainterBuilding, enumPainterVariants.double); + registerBuildingVariant(19, MetaPainterBuilding, enumPainterVariants.quad); + + // Trash + registerBuildingVariant(20, MetaTrashBuilding); + registerBuildingVariant(21, MetaTrashBuilding, enumTrashVariants.storage); + + // Underground belt + registerBuildingVariant(22, MetaUndergroundBeltBuilding, defaultBuildingVariant, 0); + registerBuildingVariant(23, MetaUndergroundBeltBuilding, defaultBuildingVariant, 1); + registerBuildingVariant(24, MetaUndergroundBeltBuilding, enumUndergroundBeltVariants.tier2, 0); + registerBuildingVariant(25, MetaUndergroundBeltBuilding, enumUndergroundBeltVariants.tier2, 1); + + // Hub + registerBuildingVariant(26, MetaHubBuilding); + + // Energy generator + registerBuildingVariant(27, MetaEnergyGenerator); + + // Wire + registerBuildingVariant(28, MetaWireBaseBuilding, defaultBuildingVariant, 0); + registerBuildingVariant(29, MetaWireBaseBuilding, defaultBuildingVariant, 1); + registerBuildingVariant(30, MetaWireBaseBuilding, defaultBuildingVariant, 2); + + // Advanced processor + registerBuildingVariant(31, MetaAdvancedProcessorBuilding); + + // Wire crossing + registerBuildingVariant(32, MetaWireCrossingsBuilding); + registerBuildingVariant(33, MetaWireCrossingsBuilding, enumWireCrossingVariants.merger); + + // Propagate instances + for (const key in gBuildingVariants) { + gBuildingVariants[key].metaInstance = gMetaBuildingRegistry.findByClass( + gBuildingVariants[key].metaClass + ); + } + + for (const key in gBuildingVariants) { + const variant = gBuildingVariants[key]; + assert(variant.metaClass, "Variant has no meta: " + key); + + if (typeof variant.rotationVariant === "undefined") { + variant.rotationVariant = 0; + } + if (typeof variant.variant === "undefined") { + variant.variant = defaultBuildingVariant; + } + } + + logger.log("Registered", gMetaBuildingRegistry.getNumEntries(), "buildings"); + logger.log("Registered", Object.keys(gBuildingVariants).length, "building codes"); +} + +/** + * Once all sprites are loaded, propagates the cache + */ +export function initBuildingCodesAfterResourcesLoaded() { + logger.log("Propagating sprite cache"); + for (const key in gBuildingVariants) { + const variant = gBuildingVariants[key]; + + variant.sprite = variant.metaInstance.getSprite(variant.rotationVariant, variant.variant); + variant.blueprintSprite = variant.metaInstance.getBlueprintSprite( + variant.rotationVariant, + variant.variant + ); + variant.silhouetteColor = variant.metaInstance.getSilhouetteColor(); + } } diff --git a/src/js/game/shape_definition.js b/src/js/game/shape_definition.js index cb58b05d..f6117a52 100644 --- a/src/js/game/shape_definition.js +++ b/src/js/game/shape_definition.js @@ -513,57 +513,70 @@ export class ShapeDefinition extends BasicSerializableObject { * @param {ShapeDefinition} definition */ cloneAndStackWith(definition) { - const newLayers = this.internalCloneLayers(); - if (this.isEntirelyEmpty() || definition.isEntirelyEmpty()) { assert(false, "Can not stack entirely empty definition"); } - // Put layer for layer on top - for (let i = 0; i < definition.layers.length; ++i) { - const layerToAdd = definition.layers[i]; + const bottomShapeLayers = this.layers; + const bottomShapeHighestLayerByQuad = [-1, -1, -1, -1]; - // On which layer we can merge this upper layer - let mergeOnLayerIndex = null; - - // Go from top to bottom and check if there is anything intercepting it - for (let k = newLayers.length - 1; k >= 0; --k) { - const lowerLayer = newLayers[k]; - - let canMerge = true; - for (let quadrantIndex = 0; quadrantIndex < 4; ++quadrantIndex) { - const upperItem = layerToAdd[quadrantIndex]; - const lowerItem = lowerLayer[quadrantIndex]; - - if (upperItem && lowerItem) { - // so, we can't merge it because two items conflict - canMerge = false; - break; - } + for (let layer = bottomShapeLayers.length - 1; layer >= 0; --layer) { + const shapeLayer = bottomShapeLayers[layer]; + for (let quad = 0; quad < 4; ++quad) { + const shapeQuad = shapeLayer[quad]; + if (shapeQuad !== null && bottomShapeHighestLayerByQuad[quad] < layer) { + bottomShapeHighestLayerByQuad[quad] = layer; } - - // If we can merge it, store it - since we go from top to bottom - // we can simply override it - if (canMerge) { - mergeOnLayerIndex = k; - } - } - - if (mergeOnLayerIndex !== null) { - // Simply merge using an OR mask - for (let quadrantIndex = 0; quadrantIndex < 4; ++quadrantIndex) { - newLayers[mergeOnLayerIndex][quadrantIndex] = - newLayers[mergeOnLayerIndex][quadrantIndex] || layerToAdd[quadrantIndex]; - } - } else { - // Add new layer - newLayers.push(layerToAdd); } } - newLayers.splice(4); + const topShapeLayers = definition.layers; + const topShapeLowestLayerByQuad = [4, 4, 4, 4]; - return new ShapeDefinition({ layers: newLayers }); + for (let layer = 0; layer < topShapeLayers.length; ++layer) { + const shapeLayer = topShapeLayers[layer]; + for (let quad = 0; quad < 4; ++quad) { + const shapeQuad = shapeLayer[quad]; + if (shapeQuad !== null && topShapeLowestLayerByQuad[quad] > layer) { + topShapeLowestLayerByQuad[quad] = layer; + } + } + } + + /** + * We want to find the number `layerToMergeAt` such that when the top shape is placed at that + * layer, the smallest gap between shapes is only 1. Instead of doing a guess-and-check method to + * find the appropriate layer, we just calculate all the gaps assuming a merge at layer 0, even + * though they go negative, and calculating the number to add to it so the minimum gap is 1 (ends + * up being 1 - minimum). + */ + const gapsBetweenShapes = []; + for (let quad = 0; quad < 4; ++quad) { + gapsBetweenShapes.push(topShapeLowestLayerByQuad[quad] - bottomShapeHighestLayerByQuad[quad]); + } + const smallestGapBetweenShapes = Math.min(...gapsBetweenShapes); + // Can't merge at a layer lower than 0 + const layerToMergeAt = Math.max(1 - smallestGapBetweenShapes, 0); + + const mergedLayers = this.internalCloneLayers(); + for (let layer = mergedLayers.length; layer < layerToMergeAt + topShapeLayers.length; ++layer) { + mergedLayers.push([null, null, null, null]); + } + + for (let layer = 0; layer < topShapeLayers.length; ++layer) { + const layerMergingAt = layerToMergeAt + layer; + const bottomShapeLayer = mergedLayers[layerMergingAt]; + const topShapeLayer = topShapeLayers[layer]; + for (let quad = 0; quad < 4; quad++) { + assert(!(bottomShapeLayer[quad] && topShapeLayer[quad]), "Shape merge: Sub shape got lost"); + bottomShapeLayer[quad] = bottomShapeLayer[quad] || topShapeLayer[quad]; + } + } + + // Limit to 4 layers at max + mergedLayers.splice(4); + + return new ShapeDefinition({ layers: mergedLayers }); } /** diff --git a/src/js/game/systems/static_map_entity.js b/src/js/game/systems/static_map_entity.js index a212dcf6..886291a6 100644 --- a/src/js/game/systems/static_map_entity.js +++ b/src/js/game/systems/static_map_entity.js @@ -44,7 +44,7 @@ export class StaticMapEntitySystem extends GameSystem { const staticComp = entity.components.StaticMapEntity; if (drawOutlinesOnly) { const rect = staticComp.getTileSpaceBounds(); - parameters.context.fillStyle = staticComp.silhouetteColor || "#aaa"; + parameters.context.fillStyle = staticComp.getSilhouetteColor() || "#aaa"; const beltComp = entity.components.Belt; if (beltComp) { const sprite = this.beltOverviewSprites[beltComp.direction]; @@ -58,9 +58,8 @@ export class StaticMapEntitySystem extends GameSystem { ); } } else { - const spriteKey = staticComp.spriteKey; - if (spriteKey) { - const sprite = Loader.getSprite(spriteKey); + const sprite = staticComp.getSprite(); + if (sprite) { staticComp.drawSpriteOnFullEntityBounds(parameters, sprite, 2, false); } } @@ -91,9 +90,8 @@ export class StaticMapEntitySystem extends GameSystem { drawnUids.add(entity.uid); const staticComp = entity.components.StaticMapEntity; - const spriteKey = staticComp.spriteKey; - if (spriteKey) { - const sprite = Loader.getSprite(spriteKey); + const sprite = staticComp.getSprite(); + if (sprite) { staticComp.drawSpriteOnFullEntityBounds(parameters, sprite, 2, false); } } diff --git a/src/js/globals.d.ts b/src/js/globals.d.ts index bc99d55e..cc6118ca 100644 --- a/src/js/globals.d.ts +++ b/src/js/globals.d.ts @@ -36,11 +36,6 @@ declare interface CanvasRenderingContext2D { webkitImageSmoothingEnabled: boolean; } -declare interface HTMLCanvasElement { - opaque: boolean; - webkitOpaque: boolean; -} - // Just for compatibility with the shared code declare interface Logger { log(...args); @@ -127,13 +122,6 @@ declare interface NodeRequire { context(src: string, flag: boolean, regexp: RegExp): WebpackContext; } -// HTML Element -declare interface Element { - style: any; - innerText: string; - innerHTML: string; -} - declare interface Object { entries(obj: object): Array<[string, any]>; } @@ -202,3 +190,11 @@ declare interface TypedSignal> { removeAll(); } + +declare module "worker-loader?inline=true&fallback=false!*" { + class WebpackWorker extends Worker { + constructor(); + } + + export default WebpackWorker; +} diff --git a/src/js/languages.js b/src/js/languages.js index cac22bcf..c46c3e88 100644 --- a/src/js/languages.js +++ b/src/js/languages.js @@ -81,6 +81,13 @@ export const LANGUAGES = { region: "", }, + "tr": { + name: "Türkçe", + data: require("./built-temp/base-tr.json"), + code: "tr", + region: "", + }, + "zh-CN": { // simplified name: "中文简体", diff --git a/src/js/platform/ad_providers/adinplay.js b/src/js/platform/ad_providers/adinplay.js index 00a08fcb..3897ec04 100644 --- a/src/js/platform/ad_providers/adinplay.js +++ b/src/js/platform/ad_providers/adinplay.js @@ -102,7 +102,10 @@ export class AdinplayAdProvider extends AdProviderInterface { // Add the player const videoElement = this.adContainerMainElement.querySelector(".videoInner"); - this.adContainerMainElement.querySelector(".adInner").style.maxWidth = w + "px"; + /** @type {HTMLElement} */ + const adInnerElement = this.adContainerMainElement.querySelector(".adInner"); + + adInnerElement.style.maxWidth = w + "px"; const self = this; window.aiptag.cmd.player.push(function () { diff --git a/src/js/profile/application_settings.js b/src/js/profile/application_settings.js index 708c4d7b..50c34e0e 100644 --- a/src/js/profile/application_settings.js +++ b/src/js/profile/application_settings.js @@ -13,8 +13,14 @@ import { LANGUAGES } from "../languages"; const logger = createLogger("application_settings"); -const categoryGame = "game"; -const categoryApp = "app"; +/** + * @enum {string} + */ +export const enumCategories = { + general: "general", + userInterface: "userInterface", + advanced: "advanced", +}; export const uiScales = [ { @@ -122,7 +128,7 @@ export const allApplicationSettings = [ options: Object.keys(LANGUAGES), valueGetter: key => key, textGetter: key => LANGUAGES[key].name, - category: categoryApp, + category: enumCategories.general, restartRequired: true, changeCb: (app, id) => null, magicValue: "auto-detect", @@ -132,7 +138,7 @@ export const allApplicationSettings = [ options: uiScales.sort((a, b) => a.size - b.size), valueGetter: scale => scale.id, textGetter: scale => T.settings.labels.uiScale.scales[scale.id], - category: categoryApp, + category: enumCategories.userInterface, restartRequired: false, changeCb: /** @@ -143,7 +149,7 @@ export const allApplicationSettings = [ new BoolSetting( "fullscreen", - categoryApp, + enumCategories.general, /** * @param {Application} app */ @@ -157,7 +163,7 @@ export const allApplicationSettings = [ new BoolSetting( "soundsMuted", - categoryApp, + enumCategories.general, /** * @param {Application} app */ @@ -165,7 +171,7 @@ export const allApplicationSettings = [ ), new BoolSetting( "musicMuted", - categoryApp, + enumCategories.general, /** * @param {Application} app */ @@ -174,7 +180,7 @@ export const allApplicationSettings = [ new BoolSetting( "enableColorBlindHelper", - categoryApp, + enumCategories.general, /** * @param {Application} app */ @@ -182,13 +188,13 @@ export const allApplicationSettings = [ ), // GAME - new BoolSetting("offerHints", categoryGame, (app, value) => {}), + new BoolSetting("offerHints", enumCategories.userInterface, (app, value) => {}), new EnumSetting("theme", { options: Object.keys(THEMES), valueGetter: theme => theme, textGetter: theme => T.settings.labels.theme.themes[theme], - category: categoryGame, + category: enumCategories.userInterface, restartRequired: false, changeCb: /** @@ -205,7 +211,7 @@ export const allApplicationSettings = [ options: autosaveIntervals, valueGetter: interval => interval.id, textGetter: interval => T.settings.labels.autosaveInterval.intervals[interval.id], - category: categoryGame, + category: enumCategories.advanced, restartRequired: false, changeCb: /** @@ -218,7 +224,7 @@ export const allApplicationSettings = [ options: ["60", "100", "120", "144", "165", "250", G_IS_DEV ? "10" : "500"], valueGetter: rate => rate, textGetter: rate => rate + " Hz", - category: categoryGame, + category: enumCategories.advanced, restartRequired: false, changeCb: (app, id) => {}, enabled: !IS_DEMO, @@ -228,7 +234,7 @@ export const allApplicationSettings = [ options: scrollWheelSensitivities.sort((a, b) => a.scale - b.scale), valueGetter: scale => scale.id, textGetter: scale => T.settings.labels.scrollWheelSensitivity.sensitivity[scale.id], - category: categoryGame, + category: enumCategories.advanced, restartRequired: false, changeCb: /** @@ -241,17 +247,17 @@ export const allApplicationSettings = [ options: movementSpeeds.sort((a, b) => a.multiplier - b.multiplier), valueGetter: multiplier => multiplier.id, textGetter: multiplier => T.settings.labels.movementSpeed.speeds[multiplier.id], - category: categoryGame, + category: enumCategories.advanced, restartRequired: false, changeCb: (app, id) => {}, }), - new BoolSetting("alwaysMultiplace", categoryGame, (app, value) => {}), - new BoolSetting("enableTunnelSmartplace", categoryGame, (app, value) => {}), - new BoolSetting("vignette", categoryGame, (app, value) => {}), - new BoolSetting("compactBuildingInfo", categoryGame, (app, value) => {}), - new BoolSetting("disableCutDeleteWarnings", categoryGame, (app, value) => {}), - new BoolSetting("rotationByBuilding", categoryGame, (app, value) => {}), + new BoolSetting("alwaysMultiplace", enumCategories.advanced, (app, value) => {}), + new BoolSetting("enableTunnelSmartplace", enumCategories.advanced, (app, value) => {}), + new BoolSetting("vignette", enumCategories.userInterface, (app, value) => {}), + new BoolSetting("compactBuildingInfo", enumCategories.userInterface, (app, value) => {}), + new BoolSetting("disableCutDeleteWarnings", enumCategories.advanced, (app, value) => {}), + new BoolSetting("rotationByBuilding", enumCategories.advanced, (app, value) => {}), ]; export function getApplicationSettingById(id) { diff --git a/src/js/profile/setting_types.js b/src/js/profile/setting_types.js index 1255f961..9e361f66 100644 --- a/src/js/profile/setting_types.js +++ b/src/js/profile/setting_types.js @@ -40,7 +40,7 @@ export class BaseSetting { /** * @param {Application} app - * @param {Element} element + * @param {HTMLElement} element * @param {any} dialogs */ bind(app, element, dialogs) { @@ -188,7 +188,7 @@ export class BoolSetting extends BaseSetting { return `
${this.enabled ? "" : `${T.demo.settingNotAvailable}`} - +
diff --git a/src/js/savegame/savegame_compressor.js b/src/js/savegame/savegame_compressor.js index 4962171e..30c28879 100644 --- a/src/js/savegame/savegame_compressor.js +++ b/src/js/savegame/savegame_compressor.js @@ -44,16 +44,18 @@ function decompressInt(s) { } // Sanity -for (let i = 0; i < 10000; ++i) { - if (decompressInt(compressInt(i)) !== i) { - throw new Error( - "Bad compression for: " + - i + - " compressed: " + - compressInt(i) + - " decompressed: " + - decompressInt(compressInt(i)) - ); +if (G_IS_DEV) { + for (let i = 0; i < 10000; ++i) { + if (decompressInt(compressInt(i)) !== i) { + throw new Error( + "Bad compression for: " + + i + + " compressed: " + + compressInt(i) + + " decompressed: " + + decompressInt(compressInt(i)) + ); + } } } diff --git a/src/js/states/about.js b/src/js/states/about.js index 900adc5a..db06d8de 100644 --- a/src/js/states/about.js +++ b/src/js/states/about.js @@ -1,9 +1,7 @@ import { TextualGameState } from "../core/textual_game_state"; -import { SOUNDS } from "../platform/sound"; import { T } from "../translations"; -import { KEYMAPPINGS, getStringForKeyCode } from "../game/key_action_mapper"; -import { Dialog } from "../core/modal_dialog_elements"; import { THIRDPARTY_URLS } from "../core/config"; +import { cachebust } from "../core/cachebust"; export class AboutState extends TextualGameState { constructor() { @@ -15,9 +13,16 @@ export class AboutState extends TextualGameState { } getMainContentHTML() { - return T.about.body - .replace("", THIRDPARTY_URLS.github) - .replace("", THIRDPARTY_URLS.discord); + return ` +
+ shapez.io Logo +
+
+ ${T.about.body + .replace("", THIRDPARTY_URLS.github) + .replace("", THIRDPARTY_URLS.discord)} +
+ `; } onEnter() { diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index cf7a05ac..927f02f6 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -46,7 +46,7 @@ export class MainMenuState extends GameState { : "" }
- + @@ -92,10 +92,10 @@ export class MainMenuState extends GameState { ${T.mainMenu.subreddit} ${T.changelog.title} - + ${T.mainMenu.helpTranslate}
- +
${T.mainMenu.madeBy.replace( "", 'Tobias Springer' @@ -218,11 +218,6 @@ export class MainMenuState extends GameState { this.trackClicks(qs(".languageChoose"), this.onLanguageChooseClicked); this.trackClicks(qs(".helpTranslate"), this.onTranslationHelpLinkClicked); - const contestButton = qs(".participateContest"); - if (contestButton) { - this.trackClicks(contestButton, this.onContestClicked); - } - if (G_IS_STANDALONE) { this.trackClicks(qs(".exitAppButton"), this.onExitAppButtonClicked); } @@ -312,15 +307,6 @@ export class MainMenuState extends GameState { this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.reddit); } - onContestClicked() { - this.app.analytics.trackUiClick("contest_click"); - - this.dialogs.showInfo( - T.mainMenu.contests.contest_01_03062020.title, - T.mainMenu.contests.contest_01_03062020.longDesc - ); - } - onLanguageChooseClicked() { this.app.analytics.trackUiClick("choose_language"); const setting = /** @type {EnumSetting} */ (getApplicationSettingById("language")); diff --git a/src/js/states/preload.js b/src/js/states/preload.js index eee57f05..f1551893 100644 --- a/src/js/states/preload.js +++ b/src/js/states/preload.js @@ -37,7 +37,7 @@ export class PreloadState extends GameState { return false; } - onEnter(payload) { + onEnter() { this.htmlElement.classList.add("prefab_LoadingState"); const elementsToRemove = ["#loadingPreload", "#fontPreload"]; @@ -52,9 +52,13 @@ export class PreloadState extends GameState { const dialogsElement = document.body.querySelector(".modalDialogParent"); this.dialogs.initializeToElement(dialogsElement); + /** @type {HTMLElement} */ this.statusText = this.htmlElement.querySelector(".loadingStatus > .desc"); + /** @type {HTMLElement} */ this.statusBar = this.htmlElement.querySelector(".loadingStatus > .bar > .inner"); + /** @type {HTMLElement} */ this.statusBarText = this.htmlElement.querySelector(".loadingStatus > .bar > .status"); + this.currentStatus = "booting"; this.currentIndex = 0; @@ -251,12 +255,12 @@ export class PreloadState extends GameState { ${this.currentStatus} failed:
${text}
- +
Please send me an email with steps to reproduce and what you did before this happened:
- +
Build ${G_BUILD_VERSION} @ ${G_BUILD_COMMIT_HASH} diff --git a/src/js/states/settings.js b/src/js/states/settings.js index 4dce1fa3..5e22492a 100644 --- a/src/js/states/settings.js +++ b/src/js/states/settings.js @@ -1,6 +1,6 @@ import { TextualGameState } from "../core/textual_game_state"; import { formatSecondsToTimeAgo } from "../core/utils"; -import { allApplicationSettings } from "../profile/application_settings"; +import { allApplicationSettings, enumCategories } from "../profile/application_settings"; import { T } from "../translations"; export class SettingsState extends TextualGameState { @@ -15,50 +15,65 @@ export class SettingsState extends TextualGameState { getMainContentHTML() { return ` - ") + .join(""); } renderBuildText() { @@ -90,10 +105,33 @@ export class SettingsState extends TextualGameState { } this.initSettings(); + this.initCategoryButtons(); + + this.htmlElement.querySelector(".category").classList.add("active"); + this.htmlElement.querySelector(".categoryButton").classList.add("active"); + } + + setActiveCategory(category) { + const previousCategory = this.htmlElement.querySelector(".category.active"); + const previousCategoryButton = this.htmlElement.querySelector(".categoryButton.active"); + + if (previousCategory.getAttribute("data-category") == category) { + return; + } + + previousCategory.classList.remove("active"); + previousCategoryButton.classList.remove("active"); + + const newCategory = this.htmlElement.querySelector("[data-category='" + category + "']"); + const newCategoryButton = this.htmlElement.querySelector("[data-category-btn='" + category + "']"); + + newCategory.classList.add("active"); + newCategoryButton.classList.add("active"); } initSettings() { allApplicationSettings.forEach(setting => { + /** @type {HTMLElement} */ const element = this.htmlElement.querySelector("[data-setting='" + setting.id + "']"); setting.bind(this.app, element, this.dialogs); setting.syncValueToElement(); @@ -107,6 +145,20 @@ export class SettingsState extends TextualGameState { }); } + initCategoryButtons() { + Object.keys(enumCategories).forEach(key => { + const category = enumCategories[key]; + const button = this.htmlElement.querySelector("[data-category-btn='" + category + "']"); + this.trackClicks( + button, + () => { + this.setActiveCategory(category); + }, + { preventDefault: false } + ); + }); + } + onAboutClicked() { this.moveToStateAddGoBack("AboutState"); } diff --git a/src/js/tsconfig.json b/src/js/tsconfig.json index 5184bc42..8a151000 100644 --- a/src/js/tsconfig.json +++ b/src/js/tsconfig.json @@ -3,7 +3,7 @@ /* Basic Options */ "target": "es6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, - // "lib": [], /* Specify library files to be included in the compilation. */ + "lib": ["DOM","ES2018"], /* Specify library files to be included in the compilation. */ "allowJs": true /* Allow javascript files to be compiled. */, "checkJs": true /* Report errors in .js files. */, // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ @@ -54,5 +54,6 @@ // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ "resolveJsonModule": true - } + }, + "exclude": ["webworkers"] } diff --git a/src/js/webworkers/background_animation_frame_emittter.worker.js b/src/js/webworkers/background_animation_frame_emittter.worker.js index c927b2d3..5469f7aa 100644 --- a/src/js/webworkers/background_animation_frame_emittter.worker.js +++ b/src/js/webworkers/background_animation_frame_emittter.worker.js @@ -1,15 +1,14 @@ // We clamp high deltas so 30 fps is fairly ok -var bgFps = 30; -var desiredMsDelay = 1000 / bgFps; +const bgFps = 30; +const desiredMsDelay = 1000 / bgFps; -let lastTick = 0; +let lastTick = performance.now(); function tick() { - var now = performance.now(); - var delta = now - lastTick; + const now = performance.now(); + const delta = now - lastTick; lastTick = now; - // @ts-ignore postMessage({ delta }); } diff --git a/src/js/webworkers/compression.worker.js b/src/js/webworkers/compression.worker.js index 0bcb0ea6..5820a4a1 100644 --- a/src/js/webworkers/compression.worker.js +++ b/src/js/webworkers/compression.worker.js @@ -12,15 +12,9 @@ function accessNestedPropertyReverse(obj, keys) { const salt = accessNestedPropertyReverse(globalConfig, ["file", "info"]); -onmessage = function (event) { - const { jobId, job, data } = event.data; +onmessage = function ({ data: { jobId, job, data } }) { const result = performJob(job, data); - - // @ts-ignore - postMessage({ - jobId, - result, - }); + postMessage({ jobId, result }); }; function performJob(job, data) { diff --git a/src/js/webworkers/tsconfig.json b/src/js/webworkers/tsconfig.json new file mode 100644 index 00000000..dce06856 --- /dev/null +++ b/src/js/webworkers/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "lib": ["ES2018","WebWorker"] + }, + "exclude": [], + "extends": "../tsconfig", + "include": ["*.worker.js"] +} diff --git a/translations/README.md b/translations/README.md index a2420f1c..7695f022 100644 --- a/translations/README.md +++ b/translations/README.md @@ -59,7 +59,7 @@ If you want to edit an existing translation (Fixing typos, Updating it to a newe ## Adding a new language -Please DM me on discord (tobspr#5407), so I can add the language template for you. +Please DM me on Discord (tobspr#5407), so I can add the language template for you. Please use the following template: diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 443a8b38..31c5c2c1 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -490,6 +490,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -631,8 +634,9 @@ storyRewards: settings: title: Settings categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -843,9 +847,9 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community + This game wouldn't have been possible without the great Discord community around my games - You should really join the discord server!

+ target="_blank">Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-cat.yaml b/translations/base-cat.yaml index 4ce91039..4871f0ce 100644 --- a/translations/base-cat.yaml +++ b/translations/base-cat.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -496,6 +496,9 @@ buildings: ccw: name: Rotador (Antihorari) description: Rota formes en sentit antihorari 90 graus. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -634,8 +637,9 @@ storyRewards: settings: title: Opcions categories: - game: Joc - app: Aplicació + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Desenvolupament @@ -826,7 +830,7 @@ about: body: >- This game is open source and developed by Tobias Springer (this is me).

If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community around my games - You should really join the discord server!

+ This game wouldn't have been possible without the great Discord community around my games - You should really join the Discord server!

The soundtrack was made by Peppsen - He's awesome.

Finally, huge thanks to my best friend Niklas - Without our factorio sessions this game would never have existed. changelog: diff --git a/translations/base-cz.yaml b/translations/base-cz.yaml index 7c6c5810..e3752560 100644 --- a/translations/base-cz.yaml +++ b/translations/base-cz.yaml @@ -471,6 +471,9 @@ buildings: ccw: name: Rotor (opačný) description: Otáčí tvary o 90 stupňů proti směru hodinových ručiček + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -612,8 +615,9 @@ storyRewards: settings: title: Nastavení categories: - game: Hra - app: Aplikace + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Vývojová verze @@ -823,9 +827,9 @@ about: Pokud se chceš na hře podílet, podívej se na shapez.io na githubu.

- Tato hra by nebyla ani možná bez skvělé discord komunity + Tato hra by nebyla ani možná bez skvělé Discord komunity okolo Tobiasových her - Vážně by ses měl přijít mrknout na discord server!

+ target="_blank">Discord server!

Soundtrack udělal Peppsen - Je úžasnej.

diff --git a/translations/base-da.yaml b/translations/base-da.yaml index dc11535e..b7a5360e 100644 --- a/translations/base-da.yaml +++ b/translations/base-da.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -489,6 +489,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -634,8 +637,9 @@ storyRewards: settings: title: Settings categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -844,7 +848,7 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community around my games - You should really join the discord server!

+ This game wouldn't have been possible without the great Discord community around my games - You should really join the Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-de.yaml b/translations/base-de.yaml index 418ac40d..5f9b060c 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -23,7 +23,7 @@ steamPage: # This is the short text appearing on the steam page shortText: In shapez.io nutzt du die vorhandenen Ressourcen, um mit deinen Maschinen durch Kombination immer komplexere Formen zu erschaffen. - # This is the text shown above the discord link + # This is the text shown above the Discord link discordLink: Offizieller Discord - Hier kannst du mit mir schreiben! # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. @@ -484,6 +484,9 @@ buildings: ccw: name: Rotierer (CCW) description: Rotiert Formen gegen den Uhrzeigersinn um 90 Grad. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -633,8 +636,9 @@ storyRewards: settings: title: Einstellungen categories: - game: Spiel - app: Applikation + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Entwicklung diff --git a/translations/base-el.yaml b/translations/base-el.yaml index 9d3a5780..f42ea24f 100644 --- a/translations/base-el.yaml +++ b/translations/base-el.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -485,6 +485,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -631,8 +634,9 @@ storyRewards: settings: title: Settings categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -844,7 +848,7 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community + This game wouldn't have been possible without the great Discord community around my games - You should really join the discord server!

diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 74f8d150..38196d52 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -23,7 +23,7 @@ steamPage: # This is the short text appearing on the steam page shortText: shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. - # This is the text shown above the discord link + # This is the text shown above the Discord link discordLink: Official Discord - Chat with me! # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. @@ -647,8 +647,9 @@ storyRewards: settings: title: Settings categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -855,13 +856,13 @@ about: body: >- This game is open source and developed by Tobias Springer (this is me).

- If you want to contribute, check out shapez.io on github.

+ If you want to contribute, check out shapez.io on GitHub.

- This game wouldn't have been possible without the great discord community around my games - You should really join the discord server!

+ This game wouldn't have been possible without the great Discord community around my games - You should really join the Discord server!

The soundtrack was made by Peppsen - He's awesome.

- Finally, huge thanks to my best friend Niklas - Without our factorio sessions, this game would never have existed. + Finally, huge thanks to my best friend Niklas - Without our Factorio sessions, this game would never have existed. changelog: title: Changelog diff --git a/translations/base-es.yaml b/translations/base-es.yaml index f5efacfa..f5dbd619 100644 --- a/translations/base-es.yaml +++ b/translations/base-es.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -23,7 +23,7 @@ steamPage: # This is the short text appearing on the steam page shortText: shapez.io es un juego sobre construir fábricas para automatizar la creación y combinación de figuras cada vez más complejas en un mapa infinito. - # This is the text shown above the discord link + # This is the text shown above the Discord link discordLink: Discord oficial - ¡Chatea conmigo! # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. @@ -502,6 +502,9 @@ buildings: ccw: name: Rotador (Inverso) description: Rota las figuras en sentido antihorario 90 grados. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -642,8 +645,9 @@ storyRewards: settings: title: Opciones categories: - game: Juego - app: Aplicación + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Desarrollo diff --git a/translations/base-fi.yaml b/translations/base-fi.yaml index 784e48eb..7014c733 100644 --- a/translations/base-fi.yaml +++ b/translations/base-fi.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -499,6 +499,9 @@ buildings: ccw: name: Rotate (Vastapäivään) description: Kääntää muotoja 90 astetta vastapäivään. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -638,8 +641,9 @@ storyRewards: settings: title: Asetukset categories: - game: Peli - app: Sovellus + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Kehitys @@ -848,7 +852,7 @@ about: Jos haluat osallistua, tarkista shapez.io githubissa.

- Tämä peli ei olisi ollut mahdollinen ilman suurta discord yhteisöä pelini ympärillä - Sinun kannattaisi liittyä discord palvelimelleni!

+ Tämä peli ei olisi ollut mahdollinen ilman suurta Discord yhteisöä pelini ympärillä - Sinun kannattaisi liittyä Discord palvelimelleni!

Ääniraidan on tehnyt Peppsen - Hän on mahtava.

diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index 255d7848..34ce2944 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -486,6 +486,9 @@ buildings: ccw: name: Pivoteur inversé description: Fait pivoter une forme de 90 degrés vers la gauche. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -631,8 +634,9 @@ storyRewards: settings: title: Options categories: - game: Jeu - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Développement @@ -837,9 +841,9 @@ about: Si vous souhaitez contribuer, allez voir shapez.io sur github.

- Ce jeu n'aurait pu être réalisé sans la précieuse communauté discord autour de + Ce jeu n'aurait pu être réalisé sans la précieuse communauté Discord autour de mes jeux - Vous devriez vraiment envisager de joindre le serveur discord !

+ target="_blank">serveur Discord !

La bande son a été créée par Peppsen - Il est impressionnant !

diff --git a/translations/base-hr.yaml b/translations/base-hr.yaml index 1866cd1a..f870aa1a 100644 --- a/translations/base-hr.yaml +++ b/translations/base-hr.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -533,6 +533,9 @@ buildings: ccw: name: Obrtač (↺) description: Okreće oblike za 90 stupnjeva u smjeru suprotnom od kazaljke na satu. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -672,8 +675,9 @@ storyRewards: settings: title: Postavke categories: - game: Igra - app: Aplikacija + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -883,7 +887,7 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community around my games - You should really join the discord server!

+ This game wouldn't have been possible without the great Discord community around my games - You should really join the Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-hu.yaml b/translations/base-hu.yaml index f047d783..b1c1f456 100644 --- a/translations/base-hu.yaml +++ b/translations/base-hu.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -485,6 +485,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -630,8 +633,9 @@ storyRewards: settings: title: Beállítások categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -841,9 +845,9 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community + This game wouldn't have been possible without the great Discord community around my games - You should really join the discord server!

+ target="_blank">Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-ind.yaml b/translations/base-ind.yaml index 6150ebc0..781e55a9 100644 --- a/translations/base-ind.yaml +++ b/translations/base-ind.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -23,7 +23,7 @@ steamPage: # This is the short text appearing on the steam page shortText: shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. - # This is the text shown above the discord link + # This is the text shown above the Discord link discordLink: Official Discord - Chat with me! # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. @@ -503,6 +503,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter-clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -644,8 +647,9 @@ storyRewards: settings: title: Settings categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -854,7 +858,7 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community around my games - You should really join the discord server!

+ This game wouldn't have been possible without the great Discord community around my games - You should really join the Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-it.yaml b/translations/base-it.yaml index 430169f5..c8431c68 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -485,6 +485,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -631,8 +634,9 @@ storyRewards: settings: title: Impostazioni categories: - game: Gioco - app: Applicazione + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Sviluppo @@ -842,9 +846,9 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community + This game wouldn't have been possible without the great Discord community around my games - You should really join the discord server!

+ target="_blank">Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-ja.yaml b/translations/base-ja.yaml index d8bac714..edfc7219 100644 --- a/translations/base-ja.yaml +++ b/translations/base-ja.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -490,6 +490,9 @@ buildings: ccw: name: 回転機 (逆) description: 形を反時計回り方向に90度回転します。 + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -631,8 +634,9 @@ storyRewards: settings: title: 設定 categories: - game: ゲーム - app: アプリケーション + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -836,7 +840,7 @@ about: 開発に参加したい場合は以下をチェックしてみてください。shapez.io on github.

- このゲームはdiscordでの素晴らしいコミュニティなしには実現しませんでした。 - このサーバにも是非参加してください! discord server!

+ このゲームはdiscordでの素晴らしいコミュニティなしには実現しませんでした。 - このサーバにも是非参加してください! Discord server!

サウンドトラックはPeppsenにより製作されました。 - 彼は素晴らしいです

diff --git a/translations/base-kor.yaml b/translations/base-kor.yaml index e8f4b044..899507e1 100644 --- a/translations/base-kor.yaml +++ b/translations/base-kor.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -489,6 +489,9 @@ buildings: ccw: name: 회전기 (반시계방향) description: 도형을 반시계방향으로 90도 회전시킨다. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -630,8 +633,9 @@ storyRewards: settings: title: 설정 categories: - game: 게임 - app: 앱 + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: 개발 diff --git a/translations/base-lt.yaml b/translations/base-lt.yaml index f0732574..122dd3cc 100644 --- a/translations/base-lt.yaml +++ b/translations/base-lt.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -490,6 +490,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -631,8 +634,9 @@ storyRewards: settings: title: Settings categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -841,9 +845,9 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community + This game wouldn't have been possible without the great Discord community around my games - You should really join the discord server!

+ target="_blank">Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index ba50d3b7..8b29e557 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -141,7 +141,7 @@ mainMenu: changelog: Changelog importSavegame: Importeren openSourceHint: Dit spel is open source! - discordLink: Officiële discord-server (Engelstalig) + discordLink: Officiële Discord-server (Engelstalig) helpTranslate: Help met vertalen! # This is shown when using firefox and other browsers which are not supported. @@ -483,6 +483,9 @@ buildings: ccw: name: Roteerder (andersom) description: Draait vormen 90 graden tegen de klok in. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -629,8 +632,9 @@ storyRewards: settings: title: Opties categories: - game: Spel - app: Applicatie + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Ontwikkeling @@ -839,9 +843,9 @@ about: Als je ook bij wil dragen, ga dan naar shapez.io op github.

- Dit spel was niet mogelijk geweest zonder de geweldige discord community + Dit spel was niet mogelijk geweest zonder de geweldige Discord community rondom mijn spellen - Je zou eens lid moeten worden van de discord server (engelstalig)!

+ target="_blank">Discord server (engelstalig)!

De muziek is gemaakt door Peppsen - Hij is geweldig.

diff --git a/translations/base-no.yaml b/translations/base-no.yaml index 58a93884..0d91bcd4 100644 --- a/translations/base-no.yaml +++ b/translations/base-no.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -487,6 +487,9 @@ buildings: ccw: name: Roter (Mot klokken) description: Roter objekter mot klokken, 90 grader. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -628,8 +631,9 @@ storyRewards: settings: title: Instillinger categories: - game: Spill - app: Applikasjon + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Utvikling @@ -838,7 +842,7 @@ about: Hvis du ønsker å bidra, sjekk ut shapez.io på github.

- Spillet ville ikke vært mulig uten det fantastidke discord samfunnet rundt spillet mitt - Du burde virkelig bli med på discord serveren!

+ Spillet ville ikke vært mulig uten det fantastidke Discord samfunnet rundt spillet mitt - Du burde virkelig bli med på Discord serveren!

Lydsporet er laget av Peppsen - Han er rå.

diff --git a/translations/base-pl.yaml b/translations/base-pl.yaml index 08701773..b09895f6 100644 --- a/translations/base-pl.yaml +++ b/translations/base-pl.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -499,6 +499,9 @@ buildings: ccw: name: Obracacz (Przeciwny kierunek) description: Obraca kształt przeciwnie do ruchu wskazówek zegara o 90 stopni. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -652,8 +655,9 @@ storyRewards: settings: title: Ustawienia categories: - game: Gra - app: Aplikacja + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Wersja Rozwojowa diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index 4e9ecccb..14af1915 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -489,6 +489,9 @@ buildings: ccw: name: Rotacionador (Anti-horário) description: Gira as formas no sentido anti-horário em 90 graus. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -634,8 +637,9 @@ storyRewards: settings: title: opções categories: - game: Jogo - app: Aplicação + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Desenvolvedor @@ -845,9 +849,9 @@ about: Se quiser contribuir, confira shapez.io no github.

- O jogo não seria possível sem a comunidade incrível do discord sobre + O jogo não seria possível sem a comunidade incrível do Discord sobre os meus jogos - Junte-se à comunidade no servidor do discord!

+ target="_blank">servidor do Discord!

A trilha sonora foi feita por Peppsen - Ele é demais.

diff --git a/translations/base-pt-PT.yaml b/translations/base-pt-PT.yaml index c16cbdf6..8b6db461 100644 --- a/translations/base-pt-PT.yaml +++ b/translations/base-pt-PT.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -31,15 +31,15 @@ steamPage: [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] shapez.io é um jogo cujo objetivo é construir fábricas para automatizar a criação e fusão de formas geométricas num mapa infinito. - Ao entregar as formas pedidas, progredirás no jogo e desbloquearás melhorias para acelerar a produção da tua fábrica. + Ao entregar as formas pedidas, irás progredir no jogo e irás desbloquear melhorias para acelerar a produção da tua fábrica. Uma vez que a procura aumenta a cada nível, terás de aumentar a tua fábrica para fazer face às necessidades - Para isso, terás de explorar o [b]mapa infinito[/b] para encontrar todos os recursos! - Rapidamente precisarás de misturar cores e pintar as formas com elas - Combina os recursos de cores vermelha, verde e azul para produzir ainda mais cores e usá-las para pintar as formas geométricas com o intuito de satisfazer a procura. + Rapidamente irás precisar de misturar cores e pintar as formas com elas - Combina os recursos de cores vermelha, verde e azul para produzires mais cores e usá-las para pintar as formas geométricas com o intuito de satisfazer a procura. Este jogo conta com 18 níveis (Que deverão manter-te ocupado durante horas!) mas estou constantemente a adicionar novos conteúdos - Há muitas coisas planeadas! - Ao comprar o jogo, terás acesso à versão completa, que contém funcionalidades adicionais, e também a conteúdos desenvolvidos recentemente. + Ao comprares o jogo, terás acesso à versão completa, que contém funcionalidades adicionais, e também a conteúdos desenvolvidos recentemente. [b]Vantagens do jogo completo[/b] @@ -484,6 +484,9 @@ buildings: ccw: name: Rodar (CCW) description: Roda as formas 90º no sentido contrário ao dos ponteiros do relógio. + fl: + name: Rodar (180) + description: Roda as formas 180º. stacker: default: @@ -533,14 +536,14 @@ buildings: deliver: Entrega toGenerateEnergy: Para default: - name: Gerador + name: Gerador de energia description: Gera energia consumindo formas. wire_crossings: default: - name: Repartidor + name: Repartidor de fios description: Divide um fio elétrico em dois. merger: - name: Conector de junção + name: Conector de fios description: Junta dois fios elétricos num só. storyRewards: @@ -629,8 +632,9 @@ storyRewards: settings: title: Definições categories: - game: Jogo - app: Aplicação + general: Geral + userInterface: Interface de Utilizador + advanced: Avançado versionBadges: dev: Desenvolvimento @@ -828,7 +832,7 @@ keybindings: menuClose: Fechar Menu switchLayers: Troca de camadas advanced_processor: Inversor de Cor - energy_generator: Gerador + energy_generator: Gerador de energia wire: Fio Elétrico about: title: Sobre o jogo @@ -839,9 +843,9 @@ about: Se quiseres contribuir, dá uma olhadela em shapez.io no github.

- Este Jogo não seria possível sem a excelente comunidade do discord + Este Jogo não seria possível sem a excelente comunidade do Discord em torno dos meus jogos - Devias mesmo juntar-te ao servidor no discord!

+ target="_blank">servidor no Discord!

A banda sonora foi feita por Peppsen - Ele é Fantástico.

diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index 491551bb..0f9e2714 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -483,6 +483,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotește formele în inversul sensului acelor de ceasornic la 90 de grade. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -628,8 +631,9 @@ storyRewards: settings: title: Setări categories: - game: Joc - app: Aplicație + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Dezvoltare @@ -833,9 +837,9 @@ about: Dacă vrei să contribui, verifică shapez.io pe github.

- Acest joc nu ar fi fost posibil fără minunata comunitate de pe discord + Acest joc nu ar fi fost posibil fără minunata comunitate de pe Discord pe lângă jocurile mele - Chiar ar trebui să te alături server-ului de discord!

+ target="_blank">server-ului de Discord!

Coloana sonoră a fost făcută de Peppsen - Este uimitor.

diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 92f191e2..61f1ebf3 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -487,6 +487,9 @@ buildings: ccw: name: Вращатель (Обр.) description: Поворачивает фигуры против часовой стрелки на 90 градусов. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -632,8 +635,9 @@ storyRewards: settings: title: Настройки categories: - game: Игровые - app: Основные + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Разработчик diff --git a/translations/base-sl.yaml b/translations/base-sl.yaml index 8b71bcdd..7b451dc8 100644 --- a/translations/base-sl.yaml +++ b/translations/base-sl.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -23,7 +23,7 @@ steamPage: # This is the short text appearing on the steam page shortText: shapez.io je igra grajenja tovarne katere cilj je avtomatiziranje kreiranja in procesiranja vse bolj zapletenih oblik na neskončni ravnini. - # This is the text shown above the discord link + # This is the text shown above the Discord link discordLink: Uradni Discord - Pridruži se klepetu! # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. @@ -501,6 +501,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter-clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -640,8 +643,9 @@ storyRewards: settings: title: Settings categories: - game: Game - app: Application + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Development @@ -850,7 +854,7 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community around my games - You should really join the discord server!

+ This game wouldn't have been possible without the great Discord community around my games - You should really join the Discord server!

The soundtrack was made by Peppsen - He's awesome.

diff --git a/translations/base-sr.yaml b/translations/base-sr.yaml index 15a62d62..fb03f547 100644 --- a/translations/base-sr.yaml +++ b/translations/base-sr.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # # @@ -40,7 +40,7 @@ steamPage: # This is the short text appearing on the steam page shortText: shapez.io je igra o pravljenju fabrika za automatizaciju stvaranja i spajanja sve složenijih oblika na beskonačno velikoj mapi. - # This is the text shown above the discord link + # This is the text shown above the Discord link discordLink: Oficijalni Discord server # TODO # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. @@ -521,6 +521,9 @@ buildings: ccw: name: Obrtač (↺) description: Okreće oblike za 90 stepeni u smeru suprotnom od kazaljke na satu. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -662,8 +665,9 @@ storyRewards: settings: title: Podešavanja categories: - game: Igra - app: Aplikacija + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Razvoj @@ -872,7 +876,7 @@ about: Ako želite da doprinesete razvoju, bacite pogled na shapez.io github.

- Bez odlične discord zajednice ova igra, kao ni druge, ne bi postojala - Pridružite se discord serveru!

+ Bez odlične Discord zajednice ova igra, kao ni druge, ne bi postojala - Pridružite se Discord serveru!

Peppsen je komponovao muziku za igru - On je super.

diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index b0fa1c52..a2609184 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -118,7 +118,7 @@ global: # Short formats for times, e.g. '5h 23m' secondsShort: s minutesAndSecondsShort: m s - hoursAndMinutesShort: t s + hoursAndMinutesShort: t m xMinutes: minuter @@ -138,15 +138,15 @@ demoBanners: mainMenu: play: Spela - changelog: Changelog + changelog: Ändringslogg importSavegame: Importera - openSourceHint: Detta spel är open source! + openSourceHint: Detta spelet har öppen kod! discordLink: Officiell Discord Server helpTranslate: Hjälp till att översätta! # This is shown when using firefox and other browsers which are not supported. browserWarning: >- - Förlåt, men det är känt att spelet spelar långsamt på din browser! Skaffa den fristående versionen eller ladda ner chrome för den fulla upplevelsen. + Förlåt, men det är känt att spelet spelar långsamt på din browser! Skaffa den fristående versionen eller ladda ner Chrome för en bättre upplevelse. savegameLevel: Nivå savegameLevelUnknown: Okänd Nivå @@ -202,7 +202,7 @@ dialogs: editKeybinding: title: Ändra snabbtangenter - desc: Tryck ned tangenten eller musknappen du vill tillsätta, eller escape för att avbryta. + desc: Tryck ned tangenten eller musknappen du vill använda, eller escape för att avbryta. resetKeybindingsConfirmation: title: Återställ snabbtangenter @@ -218,34 +218,34 @@ dialogs: oneSavegameLimit: title: Begränsad mängd sparfiler - desc: Du kan bara ha en sparfil åt gången i demoversionen. Var snäll och ta bort det existerande eller skaffa den fristående versionen! + desc: Du kan bara ha en sparfil åt gången i demoversionen. Var snäll och ta bort den nuvarande eller skaffa den fristående versionen! updateSummary: title: Ny uppdatering! desc: >- - Här är ändringarna sen du sist spelade: + Här är ändringarna sen du senast spelade: upgradesIntroduction: title: Lås upp Uppgraderingar desc: >- - Alla former du producerar kan användas för att låsa upp uppgraderingar - Förstör inte dina gamla fabriker! + Alla former du producerar kan användas för att låsa upp uppgraderingar - Förstör inte dina gamla fabriker! Uppgraderingsmenyn finns i det övre högra hörnet på skärmen. massDeleteConfirm: title: Bekräfta borttagning desc: >- - Du tar nu bort ganska många byggnader ( för att vara exakt)! Är du säker på att du vill göra detta? + Du tar bort ganska många byggnader ( för att vara exakt)! Är du säker på att du vill göra detta? blueprintsNotUnlocked: title: Inte upplåst än desc: >- - Ritningar är inte än upplåsta! Klara fler nivåer för att låsa upp dem. + Nå level 12 för att låsa upp Ritningar. keybindingsIntroduction: title: Användbara tangentbindningar desc: >- Detta spel använder en stor mängd tangentbindningar som gör det lättare att bygga stora fabriker. - Här är några men se till att kolla in tangentbindningarna!

+ Här är några, men se till att kolla in tangentbindningarna!

CTRL + Dra: Välj en yta att kopiera / radera.
SHIFT: Håll ned för att placera flera av samma byggnad.
ALT: Invertera orientationen av placerade rullband.
@@ -253,10 +253,10 @@ dialogs: createMarker: title: Ny Markör desc: Ge den ett meningsfullt namn, du kan också inkludera en kort kod av en form (Vilket du kan generera här ) - titleEdit: Edit Marker + titleEdit: Ändra Markör markerDemoLimit: - desc: Du kan endast skapa två markörer i demoversionen. Skaffa den fristående versionen för ett oändligt antal! + desc: Du kan endast ha två markörer i demoversionen. Skaffa den fristående versionen för ett obegränsat antal! massCutConfirm: title: Bekräfta Klipp desc: >- @@ -267,11 +267,11 @@ dialogs: title: Exportera skärmdump desc: >- Du efterfrågade att exportera din fabrik som en skärmdump. - Vänligen notera att detta kan ta ett tag för en stor bas och i vissa fall till och med krascha ditt spel + Vänligen notera att detta kan ta ett tag för en stor bas och i vissa fall till och med krascha ditt spel! massCutInsufficientConfirm: - title: Confirm cut - desc: You can not afford to paste this area! Are you sure you want to cut it? + title: Bekräfta Klipp + desc: Du har inte råd att placera detta område! Är du säker att du vill klippa det? ingame: # This is shown in the top left corner and displays useful keybindings in @@ -284,10 +284,10 @@ ingame: placeMultiple: Placera flera reverseOrientation: Vänd orientation disableAutoOrientation: Stäng av automatisk orientation - toggleHud: Toggle HUD + toggleHud: Växla HUD placeBuilding: Placera Byggnad createMarker: Skapa Markör - delete: Förstör + delete: Ta bort pasteLastBlueprint: Klistra in ritning lockBeltDirection: Aktivera rullbandsplanerare plannerSwitchSide: Vänd planerarsidan @@ -295,7 +295,7 @@ ingame: copySelection: Kopiera clearSelection: Rensa vald pipette: Pipett - switchLayers: Switch layers + switchLayers: Byt lager # Everything related to placing buildings (I.e. as soon as you selected a building # from the toolbar) @@ -485,6 +485,9 @@ buildings: ccw: name: Roterare (CCW) description: Roterar former 90 motsols. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -630,8 +633,9 @@ storyRewards: settings: title: Inställningar categories: - game: Spelinställningar - app: Applikation + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: Utveckling @@ -842,7 +846,7 @@ about: Spelet hade inte varit möjligt utan den fantastiska discordgemenskapen runt mina spel - Du borde gå med i den discord server!

+ target="_blank">Discord server!

Musiken skapades av Peppsen - Han är grym!

diff --git a/translations/base-tr.yaml b/translations/base-tr.yaml index a7afbc0b..ef79d218 100644 --- a/translations/base-tr.yaml +++ b/translations/base-tr.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -31,7 +31,7 @@ steamPage: [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. - Upon delivering the requested shapes you will progress within the game and unlock upgrades to speed up your factory. + Upon delivering the requested shapes you will progress within the game and unlock upgrades to Hız up your factory. As the demand for shapes increases, you will have to scale up your factory to meet the demand - Don't forget about resources though, you will have to expand across the [b]infinite map[/b]! @@ -85,7 +85,7 @@ steamPage: discordLink: Official Discord - Chat with me! global: - loading: yükleniyor + loading: Yüklenİyor error: Hata # How big numbers are rendered, e.g. "10,000" @@ -116,9 +116,9 @@ global: xDaysAgo: gün önce # Short formats for times, e.g. '5h 23m' - secondsShort: s - minutesAndSecondsShort: d s - hoursAndMinutesShort: S m + secondsShort: sn + minutesAndSecondsShort: dk sn + hoursAndMinutesShort: sa dk xMinutes: dakika @@ -132,585 +132,589 @@ global: demoBanners: # This is the "advertisement" shown in the main menu and other various places - title: Demo Version + title: Deneme Sürümü intro: >- - Get the standalone to unlock all features! + Bütün özellikleri açmak için tam sürümü satın alın! mainMenu: play: Oyna - changelog: Changelog - importSavegame: Yükle + changelog: Değİşİklİk Günlüğü + importSavegame: Kayıt Yükle openSourceHint: Bu oyun açık kaynak kodlu! - discordLink: Resmi Discord Sunucusu - helpTranslate: Çeviriye yardım et! + discordLink: Resmİ Discord Sunucusu + helpTranslate: Çevİrİye yardım et! # This is shown when using firefox and other browsers which are not supported. browserWarning: >- - Sorry, but the game is known to run slow on your browser! Get the standalone version or download chrome for the full experience. + Üzgünüz, bu oyunun tarayıcınızda yavaş çalıştığı biliniyor! Tam sürümü satın alın veya iyi performans için Chrome tarayıcısını kullanın. savegameLevel: Seviye savegameLevelUnknown: Bilinmeyen seviye continue: Devam et - newGame: Yeni Oyun - madeBy: Made by + newGame: YENİ OYUN + madeBy: tarafından yapıldı subreddit: Reddit dialogs: buttons: ok: OK - delete: Sil + delete: SİL cancel: İptal later: Sonra restart: Yeniden başla reset: Sıfırla - getStandalone: Tam versiyona eriş + getStandalone: Tam sürüme eriş deleteGame: Ne yaptığımi biliyorum - viewUpdate: View Update - showUpgrades: Show Upgrades - showKeybindings: Show Keybindings + viewUpdate: Güncellemeleri Görüntüle + showUpgrades: Geliştirmeleri Göster + showKeybindings: Tuş Kısayollarını Göster importSavegameError: - title: Import Error + title: Kayıt yükleme hatası text: >- - Failed to import your savegame: + Oyun kaydı yükleme başarısız: importSavegameSuccess: - title: Savegame Imported + title: Oyun Kaydı Yüklendi text: >- - Kayıtlı oyun başarıyla yüklendi. + Oyun kaydı başarıyla yüklendi. gameLoadFailure: - title: Game is broken + title: Oyun bozuk text: >- - Failed to load your savegame: + Oyun yükleme başarısız: confirmSavegameDelete: - title: Confirm deletion + title: Silme işlemini onayla text: >- Oyunu silmek istediğinizden emin misiniz? savegameDeletionError: - title: Failed to delete + title: Silme başarısız text: >- - Failed to delete the savegame: + Oyun kaydını silme başarısız: restartRequired: - title: Restart required + title: Yeniden başlatma gerekiyor text: >- - You need to restart the game to apply the settings. + Değişiklikleri uygulamak için oyunu yeniden başlatılmalı. editKeybinding: - title: Change Keybinding - desc: Press the key or mouse button you want to assign, or escape to cancel. + title: Tuş Atamasını Değiştir + desc: Atamak isteğiniz tuşa veya fare butonun basın, veya iptal etmek için Esc tuşuna basın. resetKeybindingsConfirmation: - title: Reset keybindings - desc: This will reset all keybindings to their default values. Please confirm. + title: Tuş Atamasını Sıfırla + desc: Bu işlem bütün tuş atamalarını varsayılan durumuna sıfırlayacak. Lütfen onaylayın. keybindingsResetOk: - title: Keybindings reset - desc: The keybindings have been reset to their respective defaults! + title: Tuş Atamaları sıfırlandı + desc: Tuş atamaları varsayılan duruma sıfırlandı! featureRestriction: - title: Demo Version - desc: You tried to access a feature () which is not available in the demo. Consider to get the standalone for the full experience! + title: Deneme Sürümü + desc: Demoda olmayan bir özelliğe () erişmeye çalıştınız. Tam deneyim için tam versiyonu satın alın. oneSavegameLimit: - title: Limited savegames - desc: You can only have one savegame at a time in the demo version. Please remove the existing one or get the standalone! + title: Sınırlı Oyun Kaydı + desc: Deneme sürümünde sadece tek bir oyun kaydınız olabilir. Lütfen varolanı silin veya tam sürümü satın alın! updateSummary: - title: New update! + title: Yeni güncelleme! desc: >- - Here are the changes since you last played: + Son oynadığınızdan bu yana gelen değişikler: upgradesIntroduction: - title: Unlock Upgrades + title: Geliştirmeleri Aç desc: >- - All shapes you produce can be used to unlock upgrades - Don't destroy your old factories! - The upgrades tab can be found on the top right corner of the screen. + Ürettiğiniz her şekil geliştirmeler için kullanılabilir - Eski fabrikalarınızı silmeyin! + Güncellemeler sekmesini ekranınızın sağ üst köşesinde bulabilirsiniz. massDeleteConfirm: - title: Confirm delete + title: Silmeyi onayla desc: >- - You are deleting a lot of buildings ( to be exact)! Are you sure you want to do this? + Çok fazla yapı siliyorsunuz (tam olarak adet)! Bunu yapmak istediğinize emin misiniz? blueprintsNotUnlocked: - title: Not unlocked yet + title: Henüz açılmadı desc: >- - Complete level 12 to unlock Blueprints! + Taslakları açmak için 12. seviyeyi tamamlamalısınız! keybindingsIntroduction: - title: Useful keybindings + title: Kullanışlı tuş atamaları desc: >- - This game has a lot of keybindings which make it easier to build big factories. - Here are a few, but be sure to check out the keybindings!

- CTRL + Drag: Select area to delete.
- SHIFT: Hold to place multiple of one building.
- ALT: Invert orientation of placed belts.
+ Bu oyunda büyük fabrikalar inşa etmeyi kolaylaştıran çok fazla tuş ataması var. + Bunlardan bazıları şunlar, ama emin olmak için tuş atamalarını kontrol edin!

+ CTRL + Sürükle: Silmek için alan seç.
+ SHIFT: Çoklu yapı inşa etmek için basılı tutun
+ ALT: Yerleştirilen taşıma bantlarının yönünü ters çevirir.
createMarker: - title: New Marker - desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) - titleEdit: Edit Marker + title: Yeni Konum İşareti + desc: İşarete anlamlı bir isim verin, aynı zamanda (buradan oluşturabileceğiniz) bir şeklin sembolünü ekleyebilirsiniz. + titleEdit: Konum İşaretini Düzenle markerDemoLimit: - desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! + desc: Deneme sürümünde sadece iki adet yer imi oluşturabilirsiniz. Sınırsız yer imi için tam sürümü alın! massCutConfirm: - title: Confirm cut + title: Kesmeyi onayla desc: >- - You are cutting a lot of buildings ( to be exact)! Are you sure you - want to do this? + Çok fazla yapı kesiyorsunuz (tam olarak adet)! Bunu yapmak istediğinize emin misiniz? exportScreenshotWarning: - title: Export screenshot + title: Ekran görüntüsünü dışa aktar desc: >- - You requested to export your base as a screenshot. Please note that this can - be quite slow for a big base and even crash your game! + Fabrikanızın ekran görüntüsünü dışarı aktarmak istiyorsunuz. Lütfen dikkat edin, + büyük bir fabrika için bu işlem oldukça yavaş olabilir ve hatta oyununuz kapanabilir. massCutInsufficientConfirm: - title: Confirm cut - desc: You can not afford to paste this area! Are you sure you want to cut it? + title: Kesmeyi onayla + desc: Seçili yapıları yapıştırmak için yeterli kaynağınız yok! Kesmek istediğinize emin misiniz? + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation keybindingsOverlay: - moveMap: Move - selectBuildings: Select area - stopPlacement: Stop placement - rotateBuilding: Rotate building - placeMultiple: Place multiple - reverseOrientation: Reverse orientation - disableAutoOrientation: Disable auto orientation - toggleHud: Toggle HUD - placeBuilding: Place building - createMarker: Create Marker - delete: Destroy - pasteLastBlueprint: Paste last blueprint - lockBeltDirection: Enable belt planner + moveMap: Hareket Et + selectBuildings: Alan seç + stopPlacement: Yerleştİrmeyİ durdur + rotateBuilding: Yapıyı döndür + placeMultiple: Çoklu yerleştİr + reverseOrientation: Yönünü ters çevİr + disableAutoOrientation: Otomatik yönü devre dışı bırak + toggleHud: Kullanıcı arayüzünü aç/kapa + placeBuilding: Yapı yerleştİr + createMarker: Yer İmi oluştur + delete: SİL + pasteLastBlueprint: Son taslağı yapıştır + lockBeltDirection: Taşıma bandı planlayıcısını kullan plannerSwitchSide: Flip planner side - cutSelection: Cut - copySelection: Copy - clearSelection: Clear Selection - pipette: Pipette - switchLayers: Switch layers + cutSelection: Kes + copySelection: Kopyala + clearSelection: Seçİmİ temİzle + pipette: Pİpet + switchLayers: Katman değİştİr # Everything related to placing buildings (I.e. as soon as you selected a building # from the toolbar) buildingPlacement: # Buildings can have different variants which are unlocked at later levels, # and this is the hint shown when there are multiple variants available. - cycleBuildingVariants: Press to cycle variants. + cycleBuildingVariants: Yapının farklı türlerine geçmek için tuşuna bas. # Shows the hotkey in the ui, e.g. "Hotkey: Q" hotkeyLabel: >- - Hotkey: + Kısayol: infoTexts: - speed: Speed - range: Range - storage: Storage - oneItemPerSecond: 1 item / second - itemsPerSecond: items / s + Hız: Hız + range: Menzil + storage: Depo + oneItemPerSecond: 1 eşya / saniye + itemsPerSecond: eşya / sn itemsPerSecondDouble: (x2) - tiles: tiles + tiles: karo # The notification when completing a level levelCompleteNotification: # is replaced by the actual level, so this gets 'Level 03' for example. - levelTitle: Level - completed: Completed - unlockText: Unlocked ! - buttonNextLevel: Next Level + levelTitle: SEVİYE + completed: Tamamlandı + unlockText: Açıldı ! + buttonNextLevel: Sonrakİ Sevİye # Notifications on the lower right notifications: - newUpgrade: A new upgrade is available! - gameSaved: Your game has been saved. + newUpgrade: Yeni geliştirme mevcut! + gameSaved: Oyun kaydedildi. # The "Upgrades" window shop: - title: Upgrades - buttonUnlock: Upgrade + title: Geliştirmeler + buttonUnlock: Geliştir # Gets replaced to e.g. "Tier IX" - tier: Tier + tier: Aşama # The roman number for each tier tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X] - maximumLevel: MAXIMUM LEVEL (Speed x) + maximumLevel: SON SEVİYE (Hız x) # The "Statistics" window statistics: - title: Statistics + title: İstatistikler dataSources: stored: - title: Stored - description: Displaying amount of stored shapes in your central building. + title: Mevcut + description: Merkez yapınızda bulunan şekillerin miktarını gösterir. + produced: - title: Produced - description: Displaying all shapes your whole factory produces, including intermediate products. + title: Üretilen + description: Fabrikanızın ürettiği bütün şekilleri gösterir, ara ürünler dahil. delivered: - title: Delivered - description: Displaying shapes which are delivered to your central building. - noShapesProduced: No shapes have been produced so far. + title: Teslim Edilen + description: Merkez binanıza giden bütün şekilleri gösterir. + noShapesProduced: Henüz hiçbir şekil üretilmedi. # Displays the shapes per minute, e.g. '523 / m' - shapesPerMinute: / m + shapesPerMinute: / dk # Settings menu, when you press "ESC" settingsMenu: playtime: Oynama zamani buildingsPlaced: Yapılar - beltsPlaced: Belts + beltsPlaced: Taşıma bantları buttons: - continue: Continue - settings: Settings - menu: Return to menu + continue: Devam + settings: Ayarlar + menu: Ana Menüye Dön # Bottom left tutorial hints tutorialHints: - title: Need help? - showHint: Show hint - hideHint: Close + title: Yardım? + showHint: İpucu Göster + hideHint: Kapat # When placing a blueprint blueprintPlacer: - cost: Cost + cost: Bedel # Map markers waypoints: - waypoints: Markers - hub: HUB - description: Left-click a marker to jump to it, right-click to delete it.

Press to create a marker from the current view, or right-click to create a marker at the selected location. - creationSuccessNotification: Marker has been created. + waypoints: Yer İmi + hub: MERKEZ + description: Sol-tık ile Yer İmlerine git, sağ-tık ile yer imini sil.

Mevcut konumdan yer imi oluşturmak için 'a bas, sağ-tık ile mevcut konumda yer imi oluştur. + creationSuccessNotification: Yer İmi oluşturuldu. # Interactive tutorial interactiveTutorial: - title: Tutorial + title: Eğİtİm hints: - 1_1_extractor: Place an extractor on top of a circle shape to extract it! + 1_1_extractor: Daire üretmek için daire şekli üzerine bir üretici yerleştir! 1_2_conveyor: >- - Connect the extractor with a conveyor belt to your hub!

Tip: Click and drag the belt with your mouse! - + Üreticiyi taşıma bandı ile merkezine bağla!

İpucu: Taşıma bandı nı seç ve taşıma bandını farenin sol tuşu ile tıkla ve sürükle! 1_3_expand: >- - This is NOT an idle game! Build more extractors and belts to finish the goal quicker.

Tip: Hold SHIFT to place multiple extractors, and use R to rotate them. + Bu bir boşta kalma oyunu (idle game) değil! Hedefe ulaşmak için daha fazla üretici ve taşıma bandı yerleştir.

İpucu: Birden fazla üretici yerleştirmek için SHIFT tuşuna basılı tut, ve R tuşuyla taşıma bandının yönünü döndür. colors: red: Kırmızı - green: Yesil + green: Yeşil blue: Mavi yellow: Sarı purple: Mor - cyan: Cyan + cyan: Turkuaz white: Beyaz uncolored: Renksiz - black: Black + black: Siyah shapeViewer: - title: Layers - empty: Bos - copyKey: Copy Key + title: Katmanlar + empty: Boş + copyKey: Şekil Kodunu Kopyala # All shop upgrades shopUpgrades: belt: - name: Belts, Distributor & Tunnels - description: Speed x → x + name: Taşıma Bandı, Dağıtıcılar & Tüneller + description: Hız x → x miner: - name: Extraction - description: Speed x → x + name: Üretme + description: Hız x → x processors: - name: Cutting, Rotating & Stacking - description: Speed x → x + name: Kesme, Döndürme & Kaynaştırıcı + description: Hız x → x painting: - name: Mixing & Painting - description: Speed x → x + name: Karıştırma & Boyama + description: Hız x → x # Buildings and their name / description buildings: hub: - deliver: Deliver - toUnlock: to unlock - levelShortcut: LVL + deliver: "Teslİm et" + toUnlock: "Açılacak" + levelShortcut: SVY belt: default: - name: &belt Conveyor Belt - description: Transports items, hold and drag to place multiple. + name: &belt Taşıma Bandı + description: Eşyaları taşır, basılı birden fazla yerleştirmek için tutup sürükle. miner: # Internal name for the Extractor default: - name: &miner Extractor - description: Place over a shape or color to extract it. + name: &miner Üretİcİ + description: Bir şekli veya rengi üretmek için üzerlerini yerleştir. chainable: - name: Extractor (Chain) + name: Üretİcİ (Zİncİrleme) description: Place over a shape or color to extract it. Can be chained. underground_belt: # Internal name for the Tunnel default: - name: &underground_belt Tunnel - description: Allows to tunnel resources under buildings and belts. + name: &underground_belt Tünel + description: Yapıların ve taşıma bantlarının altından kaynak aktarımı sağlar. tier2: - name: Tunnel Tier II - description: Allows to tunnel resources under buildings and belts. + name: Tünel Aşama II + description: Yapıların, taşıma bantlarının ve normal tünellerin altından kaynak aktarımı sağlar. splitter: # Internal name for the Balancer default: - name: &splitter Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + name: &splitter Dengeleyici + description: Çok işlevli - bütün girdileri eşit olarak bütün çıkışlara dağıtır. compact: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Bİrleştİrİcİ (tekİl) + description: İki taşıma bandını bir çıktı verecek şekilde birleştirir. compact-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Birleştİrİcİ (tekİl) + description: İki taşıma bandını bir çıktı verecek şekilde birleştirir. cutter: default: - name: &cutter Cutter - description: Cuts shapes from top to bottom and outputs both halfs. If you use only one part, be sure to destroy the other part or it will stall! + name: &cutter Kesİcİ + description: Şekilleri yukarıdan aşağıya böler ve iki yarım parçayı çıktı olarak verir. Eğer sadece bir çıktıyı kullanıyorsanız diğer çıkan parçayı yok etmeyi unutmayın, yoksa kesim durur! quad: - name: Cutter (Quad) - description: Cuts shapes into four parts. If you use only one part, be sure to destroy the other part or it will stall! + name: Kesİcİ (Dörtlü) + description: Şekilleri dört parçaya böler. Eğer sadece bir çıktıyı kullanıyorsanız diğer çıkan parçaları yok etmeyi unutmayın, yoksa kesim durur! rotater: default: - name: &rotater Rotate - description: Rotates shapes clockwise by 90 degrees. + name: &rotater Döndürücü + description: Şekilleri saat yönünde 90 derece döndürür. ccw: - name: Rotate (CCW) - description: Rotates shapes counter clockwise by 90 degrees. + name: Döndürücü (Saat Yönünün Tersİ) + description: Şekilleri saat yönünün tersinde 90 derece döndürür. + fl: + name: Döndürücü (180) + description: Şekilleri 180 derece döndürür. stacker: default: - name: &stacker Stacker - description: Stacks both items. If they can not be merged, the right item is placed above the left item. + name: &stacker Kaynaştırıcı + description: İki eşyayı kaynaştırır. Eğer eşyalar kaynaştırılamazsa sağdaki eşya soldaki eşyanın üzerine kaynaştırılır. mixer: default: - name: &mixer Color Mixer - description: Mixes two colors using additive blending. + name: &mixer Renk Karıştırıcısı + description: Mixes two colors using additive blending. İki rengi eklemeli renk metoduyla birleştirir. painter: default: - name: &painter Painter - description: &painter_desc Colors the whole shape on the left input with the color from the right input. + name: &painter Boyayıcı + description: &painter_desc Sol girdideki bütün şekli sağ girdideki renk ile boyar. double: - name: Painter (Double) - description: Colors the shapes on the left inputs with the color from the top input. + name: Boyayıcı (Çİft) + description: Sol girdideki şekilleri yukarı girdideki renk ile boyar. quad: - name: Painter (Quad) - description: Allows to color each quadrant of the shape with a different color. + name: Boyayıcı (Dörtlü) + description: Şeklin her çeyreğinin farklı bir renkle boyanmasını sağlar. mirrored: name: *painter description: *painter_desc trash: default: - name: &trash Trash - description: Accepts inputs from all sides and destroys them. Forever. + name: &trash Çöp + description: Her yönden giren girdileri yok eder. Tamamen. storage: - name: Storage - description: Stores excess items, up to a given capacity. Can be used as an overflow gate. + name: Depo + description: Belirli bir sınıra kadar fazla eşyaları depolar. Taşırma kapısı olarak kullanıla bilir. wire: default: - name: Energy Wire - description: Allows you to transport energy. + name: Enerji Kablosu + description: Enerji aktarmayı sağlar. advanced_processor: default: - name: Color Inverter - description: Accepts a color or shape and inverts it. + name: Renk Ters Dönüştürücü + description: Bir rengi veya şeklin rengini ters dönüştürür. energy_generator: - deliver: Deliver - toGenerateEnergy: For + deliver: Teslİm et + toGenerateEnergy: İçİn default: - name: Energy Generator - description: Generates energy by consuming shapes. + name: Enerjİ Üretİcİ + description: Şekilleri tüketerek enerji üretir. wire_crossings: default: - name: Wire Splitter - description: Splits a energy wire into two. + name: Kablo Çoklayıcı + description: Bir kablo çıkışını ikiye çoğaltır. merger: - name: Wire Merger - description: Merges two energy wires into one. + name: Kablo Bİrleştİrİcİ + description: İki enerji kablosunu birleştirir storyRewards: # Those are the rewards gained from completing the store reward_cutter_and_trash: - title: Cutting Shapes - desc: You just unlocked the cutter - it cuts shapes half from top to bottom regardless of its orientation!

Be sure to get rid of the waste, or otherwise it will stall - For this purpose I gave you a trash, which destroys everything you put into it! + title: Şekİllerİ Kesmek + desc: Az önce kesici açıldı - kesici şekilleri yukarıdan aşağıya ikiye böler konumu ne olursa olsun!

Kullanılmayan çıktılardan kurtulmayı unutma, yoksa kesim durur. Bu sepeble size, herşeyi yok eden bir çöp verdim! reward_rotater: - title: Rotating - desc: The rotater has been unlocked! It rotates shapes clockwise by 90 degrees. + title: Döndürme + desc: Döndürücü açıldı! Döndürücü şekilleri saat yönüne 90 derece döndürür. reward_painter: - title: Painting + title: Boyama desc: >- - The painter has been unlocked - Extract some color veins (just as you do with shapes) and combine it with a shape in the painter to color them!

PS: If you are colorblind, there is a color blind mode in the settings! + Boyayıcı açıldı - Biraz renk üretin (tıpkı şekiller gibi) ve şekil boyamak için rengi boyayıcıda bir şekille birleştirin!

NOT: Renkleri daha kolay ayırt etmek için ayarlardan renk körü modunu kullanabilirsiniz! reward_mixer: - title: Color Mixing - desc: The mixer has been unlocked - Combine two colors using additive blending with this building! + title: Renk Karıştırma + desc: Karıştırıcı açıldı - Bu yapıyla iki rengi eklemeli renk metodu ile karıştırın! reward_stacker: - title: Combiner - desc: You can now combine shapes with the combiner! Both inputs are combined, and if they can be put next to each other, they will be fused. If not, the right input is stacked on top of the left input! + title: Kaynaştırıcı + desc: Artık kaynaştırıcı ile şekilleri birleştirebilirsiniz! İki şekil eğer yanyana koyulabilirse şekiller birleştirilir, yoksa sol girişteki şeklin üzerine kaynaştırılır! reward_splitter: - title: Splitter/Merger - desc: The multifunctional balancer has been unlocked - It can be used to build bigger factories by splitting and merging items onto multiple belts!

+ title: Ayırıcı/Bİrleştİrİcİ + desc: Çok fonksiyonlu dengeleyici açıldı - Eşyaları birden fazla taşıma bandı üzerinde ayırarak ve birleştirerek daha büyük fabrikalar kurabilmek için kullanılabilir!

reward_tunnel: - title: Tunnel - desc: The tunnel has been unlocked - You can now pipe items through belts and buildings with it! + title: Tünel + desc: Tünel açıldı - Artık eşyaları taşıma bantları ve yapılar altından geçirebilirsiniz! reward_rotater_ccw: - title: CCW Rotating - desc: You have unlocked a variant of the rotater - It allows to rotate counter clockwise! To build it, select the rotater and press 'T' to cycle its variants! + title: Saat yönünün tersİnde Döndürme + desc: Döndürücünün farklı bir türünü açtın - Şekiller artık saat yönünün tersinde döndürülebilir! İnşa etmek için döndürücüyü seç ve türler arası geçiş yapmak için 'T' tuşuna bas! reward_miner_chainable: - title: Chaining Extractor - desc: You have unlocked the chaining extractor! It can forward its resources to other extractors so you can more efficiently extract resources! + title: Zincirleme Üretİm + desc: Zincirleme üretici açıldı! Zincirleme üretici kendi kaynaklarını diğer üreticilere aktarabilir. Böylece daha etkili üretim sağlayabilirsin! reward_underground_belt_tier_2: - title: Tunnel Tier II - desc: You have unlocked a new variant of the tunnel - It has a bigger range, and you can also mix-n-match those tunnels now! + title: Tünel Aşama II + desc: You have unlocked a new variant of the tunnel - It has a bigger range, and you can also mix-n-match those tunnels now! Tünelin başka bir türünü açtın - Bu tünelin menzili daha yüksek ve tünel türlerini artık içiçe kullanabilirsin! reward_splitter_compact: - title: Compact Balancer + title: Tekİl Dengeleyİcİ desc: >- - You have unlocked a compact variant of the balancer - It accepts two inputs and merges them into one! + Dengeleyecinin daha küçük bir türünü açtın - İki taşıma bandından gelen eşyaları tek hatta birleştirir! reward_cutter_quad: - title: Quad Cutting - desc: You have unlocked a variant of the cutter - It allows you to cut shapes in four parts instead of just two! + title: Çeyreğİnİ Kesme + desc: Kesicinin yeni bir türünü açtın - Bu tür şekilleri iki parça yerine dört parçaya ayırabilir! reward_painter_double: - title: Double Painting - desc: You have unlocked a variant of the painter - It works as the regular painter but processes two shapes at once consuming just one color instead of two! + title: Çİfte Boyama + desc: Boyayıcının başka bir türünü açtın - Sıradan bir boyayıcı gibi çalışır, fakat iki şekli birden boyayarak iki boya yerine sadece bir boya harcar! reward_painter_quad: - title: Quad Painting - desc: You have unlocked a variant of the painter - It allows to paint each part of the shape individually! + title: Dörtlü Boyama + desc: Boyayıcının başka bir türünü açtın - Şeklin her parçasının bağımsız olarak boyanmasını sağlar! reward_storage: - title: Storage Buffer - desc: You have unlocked a variant of the trash - It allows to store items up to a given capacity! + title: Depo Sağlayıcı + desc: Çöpün farklı bir türünü açtın - Bu tür belirli bir sınıra kadar eşyaları depolamanı sağlar! reward_freeplay: - title: Freeplay - desc: You did it! You unlocked the free-play mode! This means that shapes are now randomly generated! (No worries, more content is planned for the standalone!) + title: Özgür Mod + desc: Başardın! Özgür mod açıldı! Merkeze istenilen şekiller artık rastgele oluşturulacak! (Merak etme, yeni içerikler planlanıyor!) - reward_blueprints: - title: Blueprints - desc: You can now copy and paste parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.

Pasting it is not free, you need to produce blueprint shapes to afford it! (Those you just delivered). + reward_blueprints: # 'Taslaklar' yerine 'planlar' da kullanılabilir. + title: Taslaklar + desc: Fabrikanın bölümlerini artık kopyalayıp yapıştırabilirsin! Bir alan seç (CTRL tuşuna bas ve fareyi sol-tık tuşuna basarak sürükle), ve kopyalamak için 'C' tuşuna bas.

Kopyaladığın taslağı bedel karşılığı yapıştırabilmek için taslak şekilleri üretmelisin! (Az önce teslim ettiğin şekiller). # Special reward, which is shown when there is no reward actually no_reward: - title: Next level + title: Sonrakİ Sevİye desc: >- - This level gave you no reward, but the next one will!

PS: Better don't destroy your existing factory - You need all those shapes later again to unlock upgrades! + Bu seviyede ödül yok, ama sonrakinde var!

NOT: En iyisi eski fabrikalarını yok etme - Ürettiğin bütün
şekillere geliştirmeleri açmak için- - Congratulations! By the way, more content is planned for the standalone! + Tebrikler! Bu arada, yeni içerikler planlanıyor! settings: - title: Settings + title: Ayarlar categories: - game: Game - app: Application + general: Genel + userInterface: Kullanıcı Arayüzü + advanced: Gelİşmİş - versionBadges: - dev: Development - staging: Staging - prod: Production - buildDate: Built + versionBadges: # Development, Staging, Production + dev: Geliştirme + staging: Yükseltme + prod: Üretim + buildDate: derlendi labels: uiScale: - title: Interface scale + title: Arayüz Ölçeğİ description: >- - Changes the size of the user interface. The interface will still scale based on your device resolution, but this setting controls the amount of scale. + Kullanıcı arayüzünün boyutunu değiştirir. Arayüz cihazınızın çözünürlüğüne göre ölçeklendirilir, ama ölçeğin miktarı burada ayarlanabilir. scales: - super_small: Super small - small: Small - regular: Regular - large: Large - huge: Huge + super_small: Çok Küçük + small: Küçük + regular: Normal + large: Büyük + huge: Çok Büyük scrollWheelSensitivity: - title: Zoom sensitivity + title: Yakınlaştırma Hassasİyeti description: >- - Changes how sensitive the zoom is (Either mouse wheel or trackpad). + Yakınlaştırmanın ne kadar hassas olduğunu ayarlar (Fare tekerleği veya dokunmatik farketmez). sensitivity: - super_slow: Super slow - slow: Slow - regular: Regular - fast: Fast - super_fast: Super fast + super_slow: Çok Yavaş + slow: Yavaş + regular: Normal + fast: Hızlı + super_fast: Çok Hızlı language: - title: Language + title: Dİl description: >- - Change the language. All translations are user contributed and might be incomplete! + Dili değiştirir. Bütün çevirmeler kullanıcı katkılarıyla oluşturulmuştur ve tam olmayabilir! fullscreen: - title: Fullscreen + title: Tam Ekran description: >- - It is recommended to play the game in fullscreen to get the best experience. Only available in the standalone. + En iyi oyun tecrübesi için oyunun tam ekranda oynanması tavsiye edilir. Sadece tam sürümde mevcut. soundsMuted: - title: Mute Sounds + title: Ses Efektlerİnİ Sustur description: >- - If enabled, mutes all sound effects. + Aktif edildiğinde bütün ses efektleri susturulur. musicMuted: - title: Mute Music + title: Müzİğİ Sustur description: >- - If enabled, mutes all music. + Aktif edildiğinde bütün müzikler susturulur. theme: - title: Game theme + title: Renk Teması description: >- - Choose the game theme (light / dark). + Renk temasını seçin (aydınlık / karanlık). themes: - dark: Dark - light: Light + dark: Karanlık + light: Aydınlık refreshRate: - title: Simulation Target + title: Sİmülasyon Hızı description: >- - If you have a 144hz monitor, change the refresh rate here so the game will properly simulate at higher refresh rates. This might actually decrease the FPS if your computer is too slow. + Eğer mönitörünüzün yenileme hızı (Hz) yüksekse oyunun akıcı bir şekilde çalışması için yenileme hızını buradan değiştirin. Eğer bilgisayarınız yavaşsa bu ayar oyunun gösterdiği kare hızını (FPS) düşürebilir. alwaysMultiplace: - title: Multiplace + title: Çoklu Yerleştirme description: >- - If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently. + Aktif edildiğinde bir yapı seçilip yerleştirildiğinde, yapıyı yerleştirmeye siz iptal edene kadar devam edebilirsiniz. Bu özellik SHIFT tuşuna sürekli basılı tutup yapı yerleştirmeyle aynıdır. offerHints: - title: Hints & Tutorials + title: İpuçları ve Eğİtİmler description: >- - Whether to offer hints and tutorials while playing. Also hides certain UI elements onto a given level to make it easier to get into the game. + İpuçları ve eğitimleri açar. Ayrıca bazı arayüz elemanlarını oyunun daha kolay öğrenilebilmesi için gizler. - movementSpeed: - title: Movement speed + movementHız: + title: Hareket hızı description: Changes how fast the view moves when using the keyboard. - speeds: + Hızs: super_slow: Super slow slow: Slow regular: Regular @@ -723,78 +727,73 @@ settings: When enabled, placing tunnels will automatically remove unnecessary belts. This also enables to drag tunnels and excess tunnels will get removed. vignette: - title: Vignette + title: Gölgelendİrme description: >- - Enables the vignette which darkens the screen corners and makes text easier - to read. + Gölgelendirmeyi açar. Gölgelendirme ekranın köşelerini karartır ve yazıları daha kolay okuyabilmeinizi sağlar. autosaveInterval: - title: Autosave Interval + title: Otomatik Kayıt Sıklığı description: >- - Controls how often the game saves automatically. You can also disable it - entirely here. + Oyunun hangi sıklıkta kaydedileceğini belirler. Ayrıca otomatik kayıt tamamen kapatılabilir. intervals: - one_minute: 1 Minute - two_minutes: 2 Minutes - five_minutes: 5 Minutes - ten_minutes: 10 Minutes - twenty_minutes: 20 Minutes - disabled: Disabled + one_minute: 1 Dakika + two_minutes: 2 Dakika + five_minutes: 5 Dakika + ten_minutes: 10 Dakika + twenty_minutes: 20 Dakika + disabled: Devredışı compactBuildingInfo: - title: Compact Building Infos + title: Derlİ Toplu Yapı Bilgileri description: >- - Shortens info boxes for buildings by only showing their ratios. Otherwise a - description and image is shown. + Yapıların bilgi kutularını sadece oranlarını göstecek şekilde kısaltır. Aksi taktirde yapının açıklaması ve resmi gösterilir. disableCutDeleteWarnings: - title: Disable Cut/Delete Warnings + title: Kes/Sİl Uyarılarını Devredışı Bırak description: >- - Disable the warning dialogs brought up when cutting/deleting more than 100 - entities. + 100 birimden fazla parçayı kesme/silme işlemlerinde beliren uyarı pencerelerini devredışı bırakır. enableColorBlindHelper: - title: Color Blind Mode - description: Enables various tools which allow to play the game if you are color blind. + title: Renk Körü Modu + description: Eğer renkleri seçemiyorsanız oyunu ayarlamak için çeşitli araç gereçleri aktif eder. rotationByBuilding: title: Rotation by building type description: >- - Each building type remembers the rotation you last set it to individually. - This may be more comfortable if you frequently switch between placing - different building types. + Her yapı türü en son kullanıldığı yönü hatırlar. + Yerleştirdiğiniz yapıları sıklıkla değiştiriyorsanız bu ayar oynanyışınızı rahatlatabilir. keybindings: - title: Keybindings + title: Tuş Atamaları hint: >- - Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options. + İpucu: CTRL, SHIFT ve ALT tuşlarından yararlanın! Farklı yerleştirme seçeneklerini kullanmanızı sağlarlar. - resetKeybindings: Reset Keyinbindings + resetKeybindings: Tuş Atamalarını Sıfırla categoryLabels: - general: Application - ingame: Game - navigation: Navigating - placement: Placement - massSelect: Mass Select - buildings: Building Shortcuts - placementModifiers: Placement Modifiers + general: Uygulama + ingame: Oyun + navigation: Hareket + placement: Yerleştİrme + massSelect: Çoklu Seçim + buildings: Yapı Kısayolları + placementModifiers: Yerleştİrme Özellİklerİ mappings: - confirm: Confirm - back: Back - mapMoveUp: Move Up - mapMoveRight: Move Right - mapMoveDown: Move Down - mapMoveLeft: Move Left - centerMap: Center Map + confirm: Kabul + back: Geri + mapMoveUp: Yukarı Git + mapMoveRight: Sağa Git + mapMoveDown: Aşagı Git + mapMoveLeft: Sola Git + centerMap: Haritayı Ortala - mapZoomIn: Zoom in - mapZoomOut: Zoom out - createMarker: Create Marker + mapZoomIn: Yakınlaş + mapZoomOut: Uzaklaş + createMarker: Yer İmi Oluştur - menuOpenShop: Upgrades - menuOpenStats: Statistics + menuOpenShop: Geliştirmeler + menuOpenStats: İstatistikler - toggleHud: Toggle HUD - toggleFPSInfo: Toggle FPS and Debug Info + toggleHud: Arayüzü Aç/Kapat + toggleFPSInfo: FPS ve Debug Bilgisini Aç/Kapat belt: *belt splitter: *splitter underground_belt: *underground_belt @@ -806,35 +805,35 @@ keybindings: painter: *painter trash: *trash - rotateWhilePlacing: Rotate + rotateWhilePlacing: Döndür rotateInverseModifier: >- - Modifier: Rotate CCW instead - cycleBuildingVariants: Cycle Variants - confirmMassDelete: Confirm Mass Delete - cycleBuildings: Cycle Buildings + Basılı Tut: Saat yönünün tersinde döndür + cycleBuildingVariants: Yapı türünü değiştir + confirmMassDelete: Çoklu Silme + cycleBuildings: Yapıyı değiştir - massSelectStart: Hold and drag to start - massSelectSelectMultiple: Select multiple areas - massSelectCopy: Copy area + massSelectStart: Basılı tutup seçme + massSelectSelectMultiple: Birden fazla alanı seçme + massSelectCopy: Alanı kopyala - placementDisableAutoOrientation: Disable automatic orientation - placeMultiple: Stay in placement mode - placeInverse: Invert automatic belt orientation - pasteLastBlueprint: Paste last blueprint - massSelectCut: Cut area - exportScreenshot: Export whole Base as Image - mapMoveFaster: Move Faster - lockBeltDirection: Enable belt planner - switchDirectionLockSide: "Planner: Switch side" - pipette: Pipette - menuClose: Close Menu - switchLayers: Switch layers - advanced_processor: Color Inverter - energy_generator: Energy Generator - wire: Energy Wire + placementDisableAutoOrientation: Otomatik Yönü devredışı bırak + placeMultiple: Yerleştirme modunda kal + placeInverse: Taşıma bandı yönünü ters çevir + pasteLastBlueprint: Son taslağı yapıştır + massSelectCut: Alanı yapıştır + exportScreenshot: Bütün merkezi resim olarak dışarı aktar + mapMoveFaster: Hızlı Hareket + lockBeltDirection: Taşıma bandı planlayıcısını akfitleştir + switchDirectionLockSide: "Planlayıcı: Taraf değiştir" + pipette: Pipet + menuClose: Menüyü Kapat + switchLayers: Katman değiştir + advanced_processor: Renk Ters Çevirici + energy_generator: Enerji Üretici + wire: Enerji Kablosu about: - title: About this Game + title: Oyun Hakkında body: >- This game is open source and developed by Tobias Springer (this is me).

@@ -842,9 +841,9 @@ about: If you want to contribute, check out shapez.io on github.

- This game wouldn't have been possible without the great discord community + This game wouldn't have been possible without the great Discord community around my games - You should really join the discord server!

+ target="_blank">Discord server!

The soundtrack was made by Peppsen - He's awesome.

@@ -854,14 +853,14 @@ about: factorio sessions this game would never have existed. changelog: - title: Changelog + title: Değİşİklİk Günlüğü demo: features: - restoringGames: Restoring savegames - importingGames: Importing savegames - oneGameLimit: Limited to one savegame - customizeKeybindings: Customizing Keybindings - exportingBase: Exporting whole Base as Image + restoringGames: Oyun kayıtlarını yükleme + importingGames: Oyun kayıtlarını indirme + oneGameLimit: Bir oyun kaydıyla sınırlı + customizeKeybindings: Tuş Atamalarını Değiştirme + exportingBase: Bütün merkezi resim olarak dışa aktarma - settingNotAvailable: Not available in the demo. + settingNotAvailable: Demo sürümünde mevcut değil diff --git a/translations/base-uk.yaml b/translations/base-uk.yaml index 6a562ade..92aba8d8 100644 --- a/translations/base-uk.yaml +++ b/translations/base-uk.yaml @@ -15,16 +15,22 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. -# +# Ґлосарій: +# map мапа +# keybinds гарячі клавіши +# upgrade поліпшення +# marker позначка +# area ділянка +# hub steamPage: # This is the short text appearing on the steam page - shortText: shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. + shortText: shapez.io — це гра про будування фабрик для автоматизації створення та обробки все більш складних форм на нескінченно розширюваній мапі. - # This is the text shown above the discord link - discordLink: Official Discord - Chat with me! + # This is the text shown above the Discord link + discordLink: Офіційний Discord сервер — поговори зі мною! # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # NOTICE: @@ -42,86 +48,86 @@ steamPage: This game features 18 progressive levels (Which should keep you busy for hours already!) but I'm constantly adding new content - There is a lot planned! - Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. + Купуючи гру, ви отримуєте доступ до окремої версії, яка має додаткові функції, а також ви отримаєте доступ до нещодавно розроблених функцій. [img]{STEAM_APP_IMAGE}/extras/header_standalone_advantages.png[/img] [list] - [*] Dark Mode - [*] Unlimited Waypoints - [*] Unlimited Savegames - [*] Additional settings - [*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. - [*] Coming soon: More Levels + [*] Темний режим + [*] Необмежені позначки + [*] Необмежені збереження + [*] Додаткові налаштування + [*] Незабаром: дроти й енергія! Гадаю, оновлення вийде у кінці липня 2020 року. + [*] Незабаром: більше рівнів. [*] Allows me to further develop shapez.io ❤️ [/list] [img]{STEAM_APP_IMAGE}/extras/header_future_updates.png[/img] - I am updating the game very often and trying to push an update at least every week! + Я оновлюю гру надпрочуд часто і намагаюся випускати оновлення щотижня! [list] - [*] Different maps and challenges (e.g. maps with obstacles) - [*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) - [*] A story mode where buildings have a cost - [*] Configurable map generator (Configure resource/shape size/density, seed and more) - [*] Additional types of shapes - [*] Performance improvements (The game already runs pretty well!) - [*] And much more! + [*] Різноманітні мапи та випробування (наприклад, мапи з перешкодами) + [*] Пазли (Надайте потрібну форму з обмеженою площею/набором будівель) + [*] Режим історії, де будівлі матимуть вартість + [*] Генератор мап, який можна налаштувати (ресурс/розмір/щільність форми, зерно та багато іншого) + [*] Додаткові типи форм + [*] Поліпшення продуктивності (Гра вже працює досить добре!) + [*] Та багато чого іншого! [/list] [img]{STEAM_APP_IMAGE}/extras/header_open_source.png[/img] - Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. - Be sure to check out my trello board for the full roadmap! + Будь-хто може зробити внесок, я активно беру участь у спільноті і намагаюся оцінити всі пропозиції і відгуки, та взяти до уваги, де це можливо. + Не забудьте перевірити мою дошку Trello заради повної дорожньої карти! [img]{STEAM_APP_IMAGE}/extras/header_links.png[/img] [list] - [*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] - [*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] - [*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url] - [*] [url=https://github.com/tobspr/shapez.io]Source code (GitHub)[/url] - [*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Help translate[/url] + [*] [url=https://discord.com/invite/HN7EVzV]Офіційний Discord[/url] + [*] [url=https://trello.com/b/ISQncpJP/shapezio]Дорожня карта[/url] + [*] [url=https://www.reddit.com/r/shapezio]Спільнота на Reddit[/url] + [*] [url=https://github.com/tobspr/shapez.io]Вихідний код на GitHub[/url] + [*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Допоможіть з перекладом[/url] [/list] global: - loading: Loading - error: Error + loading: Завантаження + error: Помилка # How big numbers are rendered, e.g. "10,000" - thousandsDivider: "," + thousandsDivider: " " # What symbol to use to seperate the integer part from the fractional part of a number, e.g. "0.4" - decimalSeparator: "." + decimalSeparator: "," # The suffix for large numbers, e.g. 1.3k, 400.2M, etc. suffix: - thousands: k - millions: M - billions: B - trillions: T + thousands: тис. + millions: млн + billions: млрд + trillions: трлн # Shown for infinitely big numbers - infinite: inf + infinite: неск. time: # Used for formatting past time dates - oneSecondAgo: one second ago - xSecondsAgo: seconds ago - oneMinuteAgo: one minute ago - xMinutesAgo: minutes ago - oneHourAgo: one hour ago - xHoursAgo: hours ago - oneDayAgo: one day ago - xDaysAgo: days ago + oneSecondAgo: одну секунду тому + xSecondsAgo: секунд тому + oneMinuteAgo: 1 хвилину тому + xMinutesAgo: хвилин тому + oneHourAgo: одну годину тому + xHoursAgo: годин тому + oneDayAgo: один день тому + xDaysAgo: днів тому # Short formats for times, e.g. '5h 23m' - secondsShort: s - minutesAndSecondsShort: m s - hoursAndMinutesShort: h m + secondsShort: сек. + minutesAndSecondsShort: хв. сек. + hoursAndMinutesShort: год. хв. - xMinutes: minutes + xMinutes: хв. keys: tab: TAB @@ -133,180 +139,180 @@ global: demoBanners: # This is the "advertisement" shown in the main menu and other various places - title: Demo Version + title: Демоверсія intro: >- - Get the standalone to unlock all features! + Завантажте окрему версію, щоб розблокувати всі функції! mainMenu: - play: Play - continue: Continue - newGame: New Game - changelog: Changelog + play: Грати + continue: Продовжити + newGame: Нова гра + changelog: Змінопис subreddit: Reddit - importSavegame: Import - openSourceHint: This game is open source! - discordLink: Official Discord Server - helpTranslate: Help translate! - madeBy: Made by + importSavegame: Імпортувати + openSourceHint: Ця гра з відкритим вихідним кодом! + discordLink: Офіційний Discord сервер + helpTranslate: Допоможіть перекласти! + madeBy: Зробив # This is shown when using firefox and other browsers which are not supported. browserWarning: >- - Sorry, but the game is known to run slow on your browser! Get the standalone version or download chrome for the full experience. + Вибачте, але гра, як відомо, працює повільно у вашому браузері! Завантажте окрему версію чи хром, щоб отримати більше задоволення від гри. - savegameLevel: Level - savegameLevelUnknown: Unknown Level + savegameLevel: Рівень + savegameLevelUnknown: Невідомий рівень dialogs: buttons: - ok: OK - delete: Delete - cancel: Cancel - later: Later - restart: Restart - reset: Reset - getStandalone: Get Standalone - deleteGame: I know what I am doing - viewUpdate: View Update - showUpgrades: Show Upgrades - showKeybindings: Show Keybindings + ok: Гаразд + delete: Видалити + cancel: Скасувати + later: Пізніше + restart: Перезавантажити + reset: Скинути + getStandalone: Завантажити гру + deleteGame: Я знаю, що роблю + viewUpdate: Переглянути оновлення + showUpgrades: Показати поліпшення + showKeybindings: Показати прив’язки клавіш importSavegameError: - title: Import Error + title: Помилка при імпортуванні text: >- - Failed to import your savegame: + Не вдалося імпортувати вашу збережену гру: importSavegameSuccess: - title: Savegame Imported + title: Збереження імпортовано text: >- - Your savegame has been successfully imported. + Вашу збережену гру успішно імпортовано. gameLoadFailure: - title: Game is broken + title: Гра поламана text: >- - Failed to load your savegame: + Не вдалося завантажити вашу збережену гру. confirmSavegameDelete: - title: Confirm deletion + title: Підтвердження text: >- - Are you sure you want to delete the game? + Ви справді хочете видалити гру? savegameDeletionError: - title: Failed to delete + title: Виникла помилка при видаленні text: >- - Failed to delete the savegame: + Не вдалося видалити збережену гру. restartRequired: - title: Restart required + title: Потрібне перезавантаження text: >- - You need to restart the game to apply the settings. + Перезавантажте гру, щоб налаштування вступили в дію. editKeybinding: - title: Change Keybinding - desc: Press the key or mouse button you want to assign, or escape to cancel. + title: Зміна гарячої клавіши + desc: Натисніть клавішу, яку ви хочете призначити, або escape для скасування. resetKeybindingsConfirmation: - title: Reset keybindings - desc: This will reset all keybindings to their default values. Please confirm. + title: Скинути гарячу клавіші + desc: Це скине всі прив'язки клавіш до їхніх значень за замовчуванням. Будь ласка, підтвердіть. keybindingsResetOk: - title: Keybindings reset - desc: The keybindings have been reset to their respective defaults! + title: Скинути гарячі клавіші + desc: Гарячі клавіши скинемуться до їхніх початкових значень! featureRestriction: - title: Demo Version - desc: You tried to access a feature () which is not available in the demo. Consider getting the standalone version for the full experience! + title: Демоверсія + desc: Ви спробували отримати доступ до функції (), яка недоступна в демонстраційній версії. Подумайте про отримання окремої версії, щоб насолодитися грою сповна! oneSavegameLimit: - title: Limited savegames - desc: You can only have one savegame at a time in the demo version. Please remove the existing one or get the standalone version! + title: Обмежені збереження + desc: Ви можете мати лише одне збереження одночасно в демоверсії. Будь ласка, видаліть збереження чи завантажте окрему версію гри! updateSummary: - title: New update! + title: Нове оновлення! desc: >- - Here are the changes since you last played: + Ось зміни з вашої останньої гри upgradesIntroduction: - title: Unlock Upgrades + title: Розблокування поліпшень desc: >- - All shapes you produce can be used to unlock upgrades - Don't destroy your old factories! - The upgrades tab can be found on the top right corner of the screen. + Усі форми, що ви виробляєте, можуть використовуватися для розблокування поліпшення - Не зруйновуйте ваші старі заводи! + Вкладку з поліпшеннями можна знайти в правому верхньому куті екрана. massDeleteConfirm: - title: Confirm delete + title: Підтвердження видалення desc: >- - You are deleting a lot of buildings ( to be exact)! Are you sure you want to do this? + Ви видаляєте багато будівль (, якщо бути точним)! Ви справді хочете зробити це? massCutConfirm: - title: Confirm cut + title: Підтвердження вирізання desc: >- - You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + Ви вирізаєте багато будівль(, якщо бути точним)! Ви справді хочете зробити це? massCutInsufficientConfirm: - title: Confirm cut + title: Підтвердити вирізання desc: >- - You can not afford to paste this area! Are you sure you want to cut it? + Ви не можете дозволити собі вставити цю область! Ви справді хочете вирізати це? blueprintsNotUnlocked: - title: Not unlocked yet + title: Ще не розблоковано desc: >- - Complete level 12 to unlock Blueprints! + Досягніть 13-го рівня, щоб розблокувати Blueprints! keybindingsIntroduction: - title: Useful keybindings + title: Корисні гарячі клавіши desc: >- - This game has a lot of keybindings which make it easier to build big factories. + Гра має багато гарічих клавіш, що полегшує будівництво великих заводів. Here are a few, but be sure to check out the keybindings!

CTRL + Drag: Select an area.
SHIFT: Hold to place multiple of one building.
ALT: Invert orientation of placed belts.
createMarker: - title: New Marker - desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) - titleEdit: Edit Marker + title: Нова позначка + desc: Дайте йому змістовну назву, you can also include a short key of a shape (Which you can generate here) + titleEdit: Редагувати позначку markerDemoLimit: - desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! + desc: Ви можете створити тільки 2 позначки в демоверсії. Отримайте окрему версії для створення необмеженної кількості позначок. exportScreenshotWarning: - title: Export screenshot - desc: You requested to export your base as a screenshot. Please note that this can be quite slow for a big base and even crash your game! + title: Експортувати зняток + desc: Ви просили експортувати свою базу як знімок екрана. Зверніть увагу, що для великої бази це може бути досить повільним процесом і може навіть зруйнувати вашу гру! ingame: # This is shown in the top left corner and displays useful keybindings in # every situation keybindingsOverlay: - moveMap: Move - selectBuildings: Select area + moveMap: Рухатися + selectBuildings: Виділити будівлі stopPlacement: Stop placement - rotateBuilding: Rotate building + rotateBuilding: Повернути будівлю placeMultiple: Place multiple reverseOrientation: Reverse orientation disableAutoOrientation: Disable auto-orientation toggleHud: Toggle HUD placeBuilding: Place building - createMarker: Create marker - delete: Delete + createMarker: Створити позначку + delete: Видалити pasteLastBlueprint: Paste last blueprint lockBeltDirection: Enable belt planner plannerSwitchSide: Flip planner side - cutSelection: Cut - copySelection: Copy + cutSelection: Вирізати + copySelection: Скопіювати clearSelection: Clear selection - pipette: Pipette - switchLayers: Switch layers + pipette: Піпетка + switchLayers: Змінити шари # Names of the colors, used for the color blind mode colors: - red: Red - green: Green - blue: Blue - yellow: Yellow - purple: Purple - cyan: Cyan - white: White - black: Black - uncolored: No color + red: Червоний + green: Зелений + blue: Синій + yellow: Жовтий + purple: Фіолетовий + cyan: Блакитний + white: Білий + black: Чорний + uncolored: Без кольору # Everything related to placing buildings (I.e. as soon as you selected a building # from the toolbar) @@ -320,126 +326,126 @@ ingame: Hotkey: infoTexts: - speed: Speed + speed: Швидкість range: Range - storage: Storage - oneItemPerSecond: 1 item / second - itemsPerSecond: items / s + storage: Сховище + oneItemPerSecond: 1 предмет за сек. + itemsPerSecond: предмет. за сек itemsPerSecondDouble: (x2) - tiles: tiles + tiles: плиток # The notification when completing a level levelCompleteNotification: # is replaced by the actual level, so this gets 'Level 03' for example. - levelTitle: Level - completed: Completed - unlockText: Unlocked ! - buttonNextLevel: Next Level + levelTitle: Рівень + completed: Завершено + unlockText: Розблоковано «»! + buttonNextLevel: Наступний рівень # Notifications on the lower right notifications: - newUpgrade: A new upgrade is available! - gameSaved: Your game has been saved. + newUpgrade: Нове оновлення розблоковано! + gameSaved: Вашу гру збережено. # The "Upgrades" window shop: - title: Upgrades - buttonUnlock: Upgrade + title: Поліпшення + buttonUnlock: Поліпшення # Gets replaced to e.g. "Tier IX" - tier: Tier + tier: Клас # The roman number for each tier tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X] - maximumLevel: MAXIMUM LEVEL (Speed x) + maximumLevel: МАКСИМАЛЬНИЙ РІВЕНЬ (Швидкість х) # The "Statistics" window statistics: - title: Statistics + title: Статистика dataSources: stored: - title: Stored + title: Зберігається description: Displaying amount of stored shapes in your central building. produced: - title: Produced + title: Виробляється description: Displaying all shapes your whole factory produces, including intermediate products. delivered: - title: Delivered + title: Доставлено description: Displaying shapes which are delivered to your central building. noShapesProduced: No shapes have been produced so far. # Displays the shapes per minute, e.g. '523 / m' - shapesPerMinute: / m + shapesPerMinute: за хв. # Settings menu, when you press "ESC" settingsMenu: - playtime: Playtime + playtime: У грі - buildingsPlaced: Buildings - beltsPlaced: Belts + buildingsPlaced: Будівлі + beltsPlaced: Стрічки buttons: - continue: Continue - settings: Settings - menu: Return to menu + continue: Продовжити + settings: Налаштування + menu: Повернутися до меню # Bottom left tutorial hints tutorialHints: - title: Need help? - showHint: Show hint - hideHint: Close + title: Потрібна допомога? + showHint: Показати підказку + hideHint: Закрити # When placing a blueprint blueprintPlacer: - cost: Cost + cost: Вартість # Map markers waypoints: - waypoints: Markers - hub: HUB + waypoints: Позначки + hub: Центр description: Left-click a marker to jump to it, right-click to delete it.

Press to create a marker from the current view, or right-click to create a marker at the selected location. creationSuccessNotification: Marker has been created. # Shape viewer shapeViewer: - title: Layers - empty: Empty + title: Шари + empty: Пустий copyKey: Copy Key # Interactive tutorial interactiveTutorial: - title: Tutorial + title: Навчання hints: - 1_1_extractor: Place an extractor on top of a circle shape to extract it! + 1_1_extractor: Розмістіть екстрактор поверх фігури кола, щоб отримати її! 1_2_conveyor: >- - Connect the extractor with a conveyor belt to your hub!

Tip: Click and drag the belt with your mouse! + З’єднайте екстрактор з вашим центром за допомогою конвеєрної стрічки!

Підказка: Натисніть і протягніть стрічку вашою мишею. 1_3_expand: >- - This is NOT an idle game! Build more extractors and belts to finish the goal quicker.

Tip: Hold SHIFT to place multiple extractors, and use R to rotate them. + У цій грі ВАМ НЕ ПОТРІБНО БЕЗДІЯТИ! Будуйте більше екстракторів і стрічок, щоб виконати свою мету швидше.

Підказка: Утримуйте SHIFT, щоб розмістити багато екстракторів, і використовуйте R, щоб обертати їх. # All shop upgrades shopUpgrades: belt: - name: Belts, Distributor & Tunnels - description: Speed x → x + name: Стрічки, розподілювачі і тунелі + description: Швидкість x → x miner: - name: Extraction - description: Speed x → x + name: Видобуток + description: Швидкість x → x processors: - name: Cutting, Rotating & Stacking - description: Speed x → x + name: Різання, обертання й укладання + description: Швидкість x → x painting: - name: Mixing & Painting - description: Speed x → x + name: Змішування і малювання + description: Швидкість x → x # Buildings and their name / description buildings: hub: - deliver: Deliver - toUnlock: to unlock - levelShortcut: LVL + deliver: Доставте, + toUnlock: щоб розблокувати + levelShortcut: РІВ belt: default: @@ -502,6 +508,9 @@ buildings: ccw: name: Rotate (CCW) description: Rotates shapes counter-clockwise by 90 degrees. + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -560,8 +569,8 @@ buildings: storyRewards: # Those are the rewards gained from completing the store reward_cutter_and_trash: - title: Cutting Shapes - desc: You just unlocked the cutter - it cuts shapes half from top to bottom regardless of its orientation!

Be sure to get rid of the waste, or otherwise it will stall - For this purpose I gave you a trash, which destroys everything you put into it! + title: Різання фігур + desc: Ви тільки-но розблокували різця. Він розрізає фігури наполовину з вершини до низу незалежно від його орієнтації!

Обов’язково позбудьтесь відходів або він зупиниться. Для цього є сміттєбак, який знищує все, що входить в нього. reward_rotater: title: Rotating @@ -582,7 +591,7 @@ storyRewards: reward_splitter: title: Splitter/Merger - desc: The multifunctional balancer has been unlocked - It can be used to build bigger factories by splitting and merging items onto multiple belts!

+ desc: Багатофункціональний балансир було розблоковано. Його можна використовувати для створення великих заводів, розділяючи та об’єднуючи предмети на кілька стрічок!

reward_tunnel: title: Tunnel @@ -631,20 +640,21 @@ storyRewards: # Special reward, which is shown when there is no reward actually no_reward: - title: Next level + title: Наступний рівень desc: >- - This level gave you no reward, but the next one will!

PS: Better don't destroy your existing factory - You need all those shapes later again to unlock upgrades! + Цей рівень не дав нагороди, але в наступному... щось буде.

До речі, краще не руйнуйте свій поточний завод. Вам знадобляться всі ті форми пізніше, щоб розблокувати поліпшення! no_reward_freeplay: - title: Next level + title: Наступний рівень desc: >- - Congratulations! By the way, more content is planned for the standalone! + Вітаємо! До речі, більше контенту планується в окремій версії! settings: - title: Settings + title: Налаштування categories: - game: Game - app: Application + general: Загальне + userInterface: Користувацький інтерфейс + advanced: Передове versionBadges: dev: Development @@ -654,102 +664,102 @@ settings: labels: uiScale: - title: Interface scale + title: Масштаб інтерфейсу description: >- - Changes the size of the user interface. The interface will still scale based on your device's resolution, but this setting controls the amount of scaling. + Змінює розмір користувацього інтерфейсу. Інтерфейс усе ще буде масштабуватися залежно від роздільної здатності вашого пристрою, але цей параметр контролює масштаб масштабування. scales: - super_small: Super small - small: Small - regular: Regular - large: Large - huge: Huge + super_small: Надзвичайно малий + small: Малий + regular: Звичайний + large: Великий + huge: Величезний autosaveInterval: - title: Autosave Interval + title: Проміжок між автозбереженнями description: >- - Controls how often the game saves automatically. You can also disable it entirely here. + Контролює, як часто гра автоматично зберігатиметься. Ви також можете повністю вимкнути його тут. intervals: - one_minute: 1 Minute - two_minutes: 2 Minutes - five_minutes: 5 Minutes - ten_minutes: 10 Minutes - twenty_minutes: 20 Minutes - disabled: Disabled + one_minute: 1 хвилина + two_minutes: 2 хвилини + five_minutes: 5 хвилин + ten_minutes: 10 хвилин + twenty_minutes: 20 хвилин + disabled: Вимкнено scrollWheelSensitivity: - title: Zoom sensitivity + title: Чутливість масштабування description: >- - Changes how sensitive the zoom is (Either mouse wheel or trackpad). + Змінює наскільки чутливе масштабування (колесо миші або трекпад). sensitivity: - super_slow: Super slow - slow: Slow - regular: Regular - fast: Fast - super_fast: Super fast + super_slow: Надзвичайно повільна + slow: Повільна + regular: Звичайна + fast: Швидка + super_fast: Надзвичайно швидка movementSpeed: - title: Movement speed + title: Швидкість руху description: >- - Changes how fast the view moves when using the keyboard. + Змінює Змінює швидкість руху бачення при використанні клавіатури. speeds: - super_slow: Super slow - slow: Slow - regular: Regular - fast: Fast - super_fast: Super Fast - extremely_fast: Extremely Fast + super_slow: Надзвичайно повільна + slow: Повільна + regular: Звичайна + fast: Швидка + super_fast: Надзвичайно швидка + extremely_fast: Екстремально швидка language: - title: Language + title: Мова description: >- - Change the language. All translations are user-contributed and might be incomplete! + Змініть мову. Усі переклади зроблені користувачами і можуть бути незавершеними! enableColorBlindHelper: - title: Color Blind Mode + title: Режим високої контрастності description: >- - Enables various tools which allow you to play the game if you are color blind. + Дозволяє використовувати різні інструменти, які дозволяють грати в гру, якщо ви є дальтоніком. fullscreen: - title: Fullscreen + title: Повноекранний режим description: >- - It is recommended to play the game in fullscreen to get the best experience. Only available in the standalone. + Щоб повністю насолодитися грою, рекомендується грати у повноекранному режимі. Не доступно тільки в демоверсії. soundsMuted: - title: Mute Sounds + title: Заглушити звуки description: >- - If enabled, mutes all sound effects. + Якщо увімкнено, то вимикає всі звукові ефекти. musicMuted: - title: Mute Music + title: Заглушити музику description: >- - If enabled, mutes all music. + Якщо увімкнено, то вимикає всю музику. theme: - title: Game theme + title: Тема гри description: >- - Choose the game theme (light / dark). + Оберіть тему гри (світлу чи темну). themes: - dark: Dark - light: Light + dark: Темна + light: Світла refreshRate: - title: Simulation Target + title: Частота оновлення description: >- - If you have a 144hz monitor, change the refresh rate here so the game will properly simulate at higher refresh rates. This might actually decrease the FPS if your computer is too slow. + Якщо ви маєте 144-герцовий монітор, то змініть частоту оновлення тут, щоб гра правильно працювала при більшій швидкості оновлення. Це може фактично знизити FPS, якщо ваш комп’ютер занадто повільний. alwaysMultiplace: - title: Multiplace + title: Мультирозміщення description: >- - If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently. + Якщо ввімкнено, всі будівлі залишатимуться вибраними після розміщення, доки ви не скасуєте це. Це еквівалентно постійному утримуванню SHIFT. offerHints: - title: Hints & Tutorials + title: Підказки & посібники description: >- - Whether to offer hints and tutorials while playing. Also hides certain UI elements up to a given level to make it easier to get into the game. + Якщо увімкнено, то пропонує підказки та посібники під час гри. Також приховує певні елементи інтерфейсу до заданого рівня, щоб полегшити потрапляння в гру. enableTunnelSmartplace: - title: Smart Tunnels + title: Розумні Tunnels description: >- When enabled, placing tunnels will automatically remove unnecessary belts. This also enables you to drag tunnels and excess tunnels will get removed. @@ -774,15 +784,15 @@ settings: Disables the warning dialogs brought up when cutting/deleting more than 100 entities. keybindings: - title: Keybindings + title: Гарячі клавіши hint: >- Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options. - resetKeybindings: Reset Keybindings + resetKeybindings: Скинути гарячі клавіші categoryLabels: - general: Application - ingame: Game + general: Застосунок + ingame: Гра navigation: Navigating placement: Placement massSelect: Mass Select @@ -790,8 +800,8 @@ keybindings: placementModifiers: Placement Modifiers mappings: - confirm: Confirm - back: Back + confirm: Підтвердити + back: Назад mapMoveUp: Move Up mapMoveRight: Move Right mapMoveDown: Move Down @@ -799,13 +809,13 @@ keybindings: mapMoveFaster: Move Faster centerMap: Center Map - mapZoomIn: Zoom in - mapZoomOut: Zoom out - createMarker: Create Marker + mapZoomIn: Приблизити + mapZoomOut: Віддалити + createMarker: Створити позначку - menuOpenShop: Upgrades - menuOpenStats: Statistics - menuClose: Close Menu + menuOpenShop: Поліпшення + menuOpenStats: Статистика + menuClose: Закрити меню toggleHud: Toggle HUD toggleFPSInfo: Toggle FPS and Debug Info @@ -825,12 +835,12 @@ keybindings: trash: *trash wire: *wire - pipette: Pipette - rotateWhilePlacing: Rotate + pipette: Pipetteї + rotateWhilePlacing: Повернути rotateInverseModifier: >- Modifier: Rotate CCW instead cycleBuildingVariants: Cycle Variants - confirmMassDelete: Delete area + confirmMassDelete: Видалити ділянку pasteLastBlueprint: Paste last blueprint cycleBuildings: Cycle Buildings lockBeltDirection: Enable belt planner @@ -838,36 +848,36 @@ keybindings: Planner: Switch side massSelectStart: Hold and drag to start - massSelectSelectMultiple: Select multiple areas - massSelectCopy: Copy area - massSelectCut: Cut area + massSelectSelectMultiple: + massSelectCopy: Копіювати ділянку + massSelectCut: Вирізати ділянку - placementDisableAutoOrientation: Disable automatic orientation + placementDisableAutoOrientation: Вимкнути автоматичну орієнтацію placeMultiple: Stay in placement mode placeInverse: Invert automatic belt orientation about: - title: About this Game + title: Про гру body: >- - This game is open source and developed by Tobias Springer (this is me).

+ Ця гра з відкритим вихідним кодом і розроблена Tobias Springer (це я).

- If you want to contribute, check out shapez.io on github.

+ Якщо ви хочете зробити внесок, то йдіть на github shapez.io.

- This game wouldn't have been possible without the great discord community around my games - You should really join the discord server!

+ Ця гра не була б можливою без великої Discord спільноти навколо моїх ігор. Гадаю, вам дійсно слід долучитися до серверу в discord!

- The soundtrack was made by Peppsen - He's awesome.

+ Звуковий трек був зроблений гравцем Peppsen — він просто приголомшливий.

- Finally, huge thanks to my best friend Niklas - Without our factorio sessions, this game would never have existed. + І нарешті, величезна подяка моєму найкращому другу Niklas, бо без наших сеансів у факторіо ця гра ніколи б не існувала. changelog: - title: Changelog + title: Змінопис demo: features: - restoringGames: Restoring savegames - importingGames: Importing savegames - oneGameLimit: Limited to one savegame - customizeKeybindings: Customizing Keybindings - exportingBase: Exporting whole Base as Image + restoringGames: Відновлення збережень + importingGames: Імпортування збережень + oneGameLimit: Обмежено одним збереженням + customizeKeybindings: Налаштування гарячих клавіш + exportingBase: Експортування цілої бази у вигляді зображення - settingNotAvailable: Not available in the demo. + settingNotAvailable: Недоступно в демоверсії. diff --git a/translations/base-zh-CN.yaml b/translations/base-zh-CN.yaml index 411bdde4..3aad1244 100644 --- a/translations/base-zh-CN.yaml +++ b/translations/base-zh-CN.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -181,7 +181,6 @@ mainMenu: savegameLevel: 第关 savegameLevelUnknown: 未知关卡 - # contestOver: This contest has ended - Join the discord to get noticed about new contests! continue: 继续游戏 newGame: 新游戏 madeBy: 作者: @@ -301,8 +300,8 @@ dialogs: 你将要导出你的工厂的截图。如果你的基地很大,截图过程将会很慢,且有可能导致游戏崩溃! massCutInsufficientConfirm: - title: Confirm cut - desc: You can not afford to paste this area! Are you sure you want to cut it? + title: 确认剪切 + desc: 你没有足够的图形来粘贴这个区域!你确定要剪切吗? ingame: # This is shown in the top left corner and displays useful keybindings in @@ -444,11 +443,11 @@ ingame: cyan: 青色 white: 白色 uncolored: 无色 - black: Black + black: 黑色 shapeViewer: title: 层 # TODO: find better translation empty: 空 - copyKey: Copy Key + copyKey: 复制短代码 # All shop upgrades shopUpgrades: @@ -518,6 +517,9 @@ buildings: ccw: name: 旋转机(逆时针) description: 将图形逆时针旋转90度。 + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -527,7 +529,7 @@ buildings: mixer: default: name: &mixer 混色机 - description: 将两个颜色混合在一起。(加法混合) + description: 用加法混色将两个颜色混合起来 painter: default: @@ -590,11 +592,11 @@ storyRewards: reward_painter: title: 上色 desc: >- - The painter has been unlocked - Extract some color veins (just as you do with shapes) and combine it with a shape in the painter to color them!

PS: If you are colorblind, there is a color blind mode in the settings! + 恭喜!你解锁了上色机。 开采一些颜色 (就像你开采图形一样) 将其在上色机中与图形结合来将图形上色!

PS: 如果你患有色盲,可以在设置中启用色盲模式! reward_mixer: title: 混合颜色 - desc: The mixer has been unlocked - Combine two colors using additive blending with this building! + desc: 恭喜!你解锁了混色机。这个建筑使用加法混色将两种颜色混合起来。 reward_stacker: title: 堆叠 @@ -614,7 +616,7 @@ storyRewards: reward_miner_chainable: title: 链式开采机 - desc: You have unlocked the chaining extractor! It can forward its resources to other extractors so you can more efficiently extract resources! + desc: 你解锁了链式开采机! 它能够把资源传递给其他开采机,让你可以更高效率的开采资源! reward_underground_belt_tier_2: title: 二级隧道 @@ -622,7 +624,7 @@ storyRewards: reward_splitter_compact: title: 小型合流机 - desc: You have unlocked a compact variant of the balancer - It accepts two inputs and merges them into one! + desc: 恭喜!你解锁了平衡机的变体。它能够接受两个输入,合并成一个输出! reward_cutter_quad: title: 四向切割机 @@ -638,7 +640,7 @@ storyRewards: reward_storage: title: 仓库 - desc: You have unlocked a variant of the trash - It allows to store items up to a given capacity! + desc: 恭喜!你解锁了垃圾桶的变体。他可以存储一定数量的物品! reward_freeplay: title: 自由模式 @@ -662,8 +664,9 @@ storyRewards: settings: title: 设置 categories: - game: 游戏内容 - app: 应用 + general: 通用 + userInterface: 用户界面 + advanced: 高级 versionBadges: dev: 开发版本 # Development @@ -789,11 +792,9 @@ settings: title: 色盲模式 description: 提供一些分辨颜色的工具。目前当鼠标移至颜色资源上方时,屏幕上方会显示颜色名称。 rotationByBuilding: - title: Rotation by building type + title: 记忆建筑方向 description: >- - Each building type remembers the rotation you last set it to individually. - This may be more comfortable if you frequently switch between placing - different building types. + 每一类建筑都会记住各自上一次的旋转方向。如果你经常在不同建筑类型之间切换,这个设置会让游戏更加舒适。 keybindings: title: 按键设置 diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 359106e8..6225a73b 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -15,7 +15,7 @@ # # Adding a new language: # -# If you want to add a new language, ask me in the discord and I will setup +# If you want to add a new language, ask me in the Discord and I will setup # the basic structure so the game also detects it. # @@ -512,6 +512,9 @@ buildings: ccw: name: 旋轉機(逆時針) description: 將圖形逆時針旋轉90度。 + fl: + name: Rotate (180) + description: Rotates shapes by 180 degrees. stacker: default: @@ -657,8 +660,9 @@ storyRewards: settings: title: 設置 categories: - game: 遊戲內容 - app: 應用 + general: General + userInterface: User Interface + advanced: Advanced versionBadges: dev: 開發版本 # Development diff --git a/yarn.lock b/yarn.lock index 631026b8..dff261d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1284,7 +1284,7 @@ acorn@^5.5.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.2.1: +acorn@^6.4.1: version "6.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== @@ -1300,14 +1300,14 @@ ajv-errors@^1.0.0: integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + version "3.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.1.tgz#b83ca89c5d42d69031f424cad49aada0236c6957" + integrity sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +ajv@^6.1.0: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1324,6 +1324,16 @@ ajv@^6.10.0: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.10.2, ajv@^6.12.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -1334,13 +1344,6 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" - integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== - dependencies: - ansi-wrap "^0.1.0" - ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -1353,13 +1356,6 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.11.0" -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= - dependencies: - ansi-wrap "0.1.0" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1400,11 +1396,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: "@types/color-name" "^1.1.1" color-convert "^2.0.1" -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - any-base@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" @@ -1418,6 +1409,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1565,13 +1564,6 @@ async@~0.2.10: resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= -async@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" - integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw= - dependencies: - lodash "^4.14.0" - atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -1744,6 +1736,11 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -1769,10 +1766,15 @@ bmp-js@^0.1.0: resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" + integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== body-parser@1.19.0: version "1.19.0" @@ -1819,6 +1821,13 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1855,7 +1864,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0: +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= @@ -1864,17 +1873,19 @@ browserify-rsa@^4.0.0: randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + version "4.2.0" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" + integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.2" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" browserify-zlib@^0.2.0: version "0.2.0" @@ -2213,6 +2224,21 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" + integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -2281,13 +2307,6 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= - dependencies: - colors "1.0.3" - cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" @@ -2316,11 +2335,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - clone-response@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -2328,25 +2342,6 @@ clone-response@1.0.2: dependencies: mimic-response "^1.0.0" -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -2396,11 +2391,6 @@ color-string@^1.5.2: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - color@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" @@ -2409,11 +2399,6 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= - colors@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -2446,13 +2431,6 @@ commander@~2.8.1: dependencies: graceful-readlink ">= 1.0.0" -commander@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= - dependencies: - graceful-readlink ">= 1.0.0" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -2588,7 +2566,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -2599,7 +2577,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -3147,10 +3125,10 @@ electron-to-chromium@^1.3.390: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.403.tgz#c8bab4e2e72bf78bc28bad1cc355c061f9cc1918" integrity sha512-JaoxV4RzdBAZOnsF4dAlZ2ijJW72MbqO5lNfOBHUWiBQl3Rwe+mk2RCUMrRI3rSClLJ8HSNQNqcry12H+0ZjFw== -elliptic@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== +elliptic@^6.0.0, elliptic@^6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -3214,9 +3192,9 @@ enhanced-resolve@4.1.0: tapable "^1.0.0" enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" @@ -3639,20 +3617,10 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -fancy-log@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: version "1.2.0" @@ -3798,6 +3766,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -3945,13 +3920,18 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -4030,7 +4010,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: +glob-parent@^5.0.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -4155,11 +4135,16 @@ got@^8.3.1: url-parse-lax "^3.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: +graceful-fs@^4.1.10: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -4251,12 +4236,13 @@ has@^1.0.0, has@^1.0.3: function-bind "^1.1.1" hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" @@ -4484,7 +4470,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4613,6 +4599,13 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.5, is-buffer@~1.1.1: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -4721,7 +4714,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -4745,6 +4738,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" @@ -5141,21 +5139,11 @@ lodash._reinterpolate@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.clone@^4.3.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.some@^4.2.2: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -5176,7 +5164,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0: +lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -5598,9 +5586,9 @@ mute-stream@0.0.8: integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== nanomatch@^1.2.9: version "1.2.13" @@ -5630,9 +5618,9 @@ negotiator@0.6.2: integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nice-try@^1.0.4: version "1.0.5" @@ -5713,7 +5701,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -6105,7 +6093,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: +parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.5" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== @@ -6155,11 +6143,6 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -6237,9 +6220,9 @@ path-type@^1.0.0: pinkie-promise "^2.0.0" pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -6262,6 +6245,11 @@ phonegap-plugin-mobile-accessibility@^1.0.5: resolved "https://registry.yarnpkg.com/phonegap-plugin-mobile-accessibility/-/phonegap-plugin-mobile-accessibility-1.0.5.tgz#95a8754d127508bc6e1ae259a53ce765836eac03" integrity sha1-lah1TRJ1CLxuGuJZpTznZYNurAM= +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -6315,16 +6303,6 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -plugin-error@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" - integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== - dependencies: - ansi-colors "^1.0.1" - arr-diff "^4.0.0" - arr-union "^3.1.0" - extend-shallow "^3.0.2" - pngjs@^3.0.0, pngjs@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" @@ -7047,7 +7025,7 @@ private@^0.1.8, private@~0.1.5: resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: +process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== @@ -7200,7 +7178,7 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -7260,7 +7238,16 @@ read-pkg@^1.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readdirp@^2.1.0, readdirp@^2.2.1: +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== @@ -7269,6 +7256,13 @@ readdirp@^2.1.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + recast@~0.11.12: version "0.11.23" resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" @@ -7391,11 +7385,6 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -7544,10 +7533,10 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex@^1.1.0: version "1.1.0" @@ -7662,6 +7651,13 @@ serialize-javascript@^2.1.2: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" + serve-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" @@ -7750,16 +7746,6 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -sloc@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/sloc/-/sloc-0.2.1.tgz#42ad891e76838c1a22bbd8483468e9d74c7f531e" - integrity sha512-8XJnwCFR4DatLz1s0nGFe6IJPJ+5pjRFhoBuBKq8SLgFI40eD7ak6jOXpzeG0tmIpyOc1zCs9bjKAxMFm1451A== - dependencies: - async "~2.1.4" - cli-table "^0.3.1" - commander "~2.9.0" - readdirp "^2.1.0" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -7835,9 +7821,9 @@ source-map-support@0.5.4: source-map "^0.6.0" source-map-support@~0.5.12: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -8079,7 +8065,7 @@ string.prototype.trimstart@^1.0.0: define-properties "^1.1.3" es-abstract "^1.17.5" -string_decoder@^1.0.0: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -8194,7 +8180,7 @@ supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -8268,7 +8254,7 @@ tempfile@^2.0.0: temp-dir "^1.0.0" uuid "^3.0.1" -terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.3: +terser-webpack-plugin@^1.1.0: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== @@ -8283,10 +8269,25 @@ terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" +terser-webpack-plugin@^1.4.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^3.1.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + terser@^4.1.2: - version "4.6.11" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.11.tgz#12ff99fdd62a26de2a82f508515407eb6ccd8a9f" - integrity sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA== + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -8310,11 +8311,6 @@ through@^2.3.6, through@^2.3.8, through@~2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= - timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -8379,6 +8375,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -8421,16 +8424,11 @@ tslib@1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== -tslib@^1.8.1: +tslib@^1.8.1, tslib@^1.9.0: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== - tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" @@ -8665,7 +8663,7 @@ utif@^2.0.1: dependencies: pako "^1.0.5" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -8737,18 +8735,6 @@ vendors@^1.0.0: resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== -vinyl@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" @@ -8761,14 +8747,23 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -watchpack@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== dependencies: chokidar "^2.1.8" + +watchpack@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" + integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== + dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" webpack-bundle-analyzer@^3.0.3: version "3.7.0" @@ -8826,21 +8821,6 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-stream@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/webpack-stream/-/webpack-stream-5.2.1.tgz#35c992161399fe8cad9c10d4a5c258f022629b39" - integrity sha512-WvyVU0K1/VB1NZ7JfsaemVdG0PXAQUqbjUNW4A58th4pULvKMQxG+y33HXTL02JvD56ko2Cub+E2NyPwrLBT/A== - dependencies: - fancy-log "^1.3.3" - lodash.clone "^4.3.2" - lodash.some "^4.2.2" - memory-fs "^0.4.1" - plugin-error "^1.0.1" - supports-color "^5.5.0" - through "^2.3.8" - vinyl "^2.1.0" - webpack "^4.26.1" - webpack-strip-block@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/webpack-strip-block/-/webpack-strip-block-0.2.0.tgz#c60d4a703e0eeee8895e7f1abe9b5fe914681470" @@ -8848,16 +8828,16 @@ webpack-strip-block@^0.2.0: dependencies: loader-utils "^1.1.0" -webpack@^4.26.1, webpack@^4.31.0: - version "4.42.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" - integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== +webpack@^4.43.0: + version "4.43.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/wasm-edit" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.2.1" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" @@ -8874,7 +8854,7 @@ webpack@^4.26.1, webpack@^4.31.0: schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" + watchpack "^1.6.1" webpack-sources "^1.4.1" whatwg-fetch@^3.0.0: @@ -9066,6 +9046,11 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.1" +yarn@^1.22.4: + version "1.22.4" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.4.tgz#01c1197ca5b27f21edc8bc472cd4c8ce0e5a470e" + integrity sha512-oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA== + yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"