1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-06-13 13:04:03 +00:00
This commit is contained in:
Git-Nivrak 2020-10-02 19:07:12 +03:00
commit 166cd7315e
121 changed files with 9171 additions and 7079 deletions

View File

@ -28,7 +28,7 @@ Your goal is to produce shapes by cutting, rotating, merging and painting parts
- Cd into `gulp` folder - Cd into `gulp` folder
- Run `yarn` and then `yarn gulp` - it should now open in your browser - Run `yarn` and then `yarn gulp` - it should now open in your browser
**Notice**: This will produce a debug build with several debugging flags enabled. If you want to disable them, modify `config.js`. **Notice**: This will produce a debug build with several debugging flags enabled. If you want to disable them, modify [`src/js/core/config.js`](src/js/core/config.js).
## Helping translate ## Helping translate

View File

@ -10,7 +10,7 @@
"start": "electron --disable-direct-composition --in-process-gpu ." "start": "electron --disable-direct-composition --in-process-gpu ."
}, },
"devDependencies": { "devDependencies": {
"electron": "^6.1.12" "electron": "10.1.3"
}, },
"dependencies": {} "dependencies": {}
} }

File diff suppressed because it is too large Load Diff

1
gulp/.gitignore vendored
View File

@ -1,2 +1 @@
additional_build_files additional_build_files
steampipe

View File

@ -8,23 +8,6 @@ const path = require("path");
const deleteEmpty = require("delete-empty"); const deleteEmpty = require("delete-empty");
const execSync = require("child_process").execSync; const execSync = require("child_process").execSync;
const lfsOutput = execSync("git lfs install", { encoding: "utf-8" });
if (!lfsOutput.toLowerCase().includes("git lfs initialized")) {
console.error(`
Git LFS is not installed, unable to build.
To install Git LFS on Linux:
- Arch:
sudo pacman -S git-lfs
- Debian/Ubuntu:
sudo apt install git-lfs
For other systems, see:
https://github.com/git-lfs/git-lfs/wiki/Installation
`);
process.exit(1);
}
// Load other plugins dynamically // Load other plugins dynamically
const $ = require("gulp-load-plugins")({ const $ = require("gulp-load-plugins")({
scope: ["devDependencies"], scope: ["devDependencies"],

View File

@ -47,6 +47,7 @@
"serialize-error": "^3.0.0", "serialize-error": "^3.0.0",
"strictdom": "^1.0.1", "strictdom": "^1.0.1",
"string-replace-webpack-plugin": "^0.1.3", "string-replace-webpack-plugin": "^0.1.3",
"strip-indent": "^3.0.0",
"terser-webpack-plugin": "^1.1.0", "terser-webpack-plugin": "^1.1.0",
"through2": "^3.0.1", "through2": "^3.0.1",
"uglify-template-string-loader": "^1.1.0", "uglify-template-string-loader": "^1.1.0",
@ -66,7 +67,6 @@
"babel-plugin-danger-remove-unused-import": "^1.1.2", "babel-plugin-danger-remove-unused-import": "^1.1.2",
"css-mqpacker": "^7.0.0", "css-mqpacker": "^7.0.0",
"cssnano": "^4.1.10", "cssnano": "^4.1.10",
"postcss-critical-split": "^2.5.3",
"electron-packager": "^14.0.6", "electron-packager": "^14.0.6",
"faster.js": "^1.1.0", "faster.js": "^1.1.0",
"glob": "^7.1.3", "glob": "^7.1.3",
@ -99,6 +99,7 @@
"jimp": "^0.6.1", "jimp": "^0.6.1",
"js-yaml": "^3.13.1", "js-yaml": "^3.13.1",
"postcss-assets": "^5.0.0", "postcss-assets": "^5.0.0",
"postcss-critical-split": "^2.5.3",
"postcss-preset-env": "^6.5.0", "postcss-preset-env": "^6.5.0",
"postcss-round-subpixels": "^1.2.0", "postcss-round-subpixels": "^1.2.0",
"postcss-unprefix": "^2.1.3", "postcss-unprefix": "^2.1.3",

View File

@ -1,9 +1,10 @@
require('colors'); require("colors");
const packager = require("electron-packager"); const packager = require("electron-packager");
const path = require("path"); const path = require("path");
const { getVersion } = require("./buildutils"); const { getVersion } = require("./buildutils");
const fs = require("fs"); const fs = require("fs");
const fse = require("fs-extra"); const fse = require("fs-extra");
const buildutils = require("./buildutils");
const execSync = require("child_process").execSync; const execSync = require("child_process").execSync;
function gulptasksStandalone($, gulp) { function gulptasksStandalone($, gulp) {
@ -47,6 +48,20 @@ function gulptasksStandalone($, gulp) {
cb(); cb();
}); });
gulp.task("standalone.prepareVDF", cb => {
const hash = buildutils.getRevision();
const steampipeDir = path.join(__dirname, "steampipe", "scripts");
const templateContents = fs
.readFileSync(path.join(steampipeDir, "app.vdf.template"), { encoding: "utf-8" })
.toString();
const convertedContents = templateContents.replace("$DESC$", "Commit " + hash);
fs.writeFileSync(path.join(steampipeDir, "app.vdf"), convertedContents);
cb();
});
gulp.task("standalone.prepare.minifyCode", () => { gulp.task("standalone.prepare.minifyCode", () => {
return gulp.src(path.join(electronBaseDir, "*.js")).pipe(gulp.dest(tempDestBuildDir)); return gulp.src(path.join(electronBaseDir, "*.js")).pipe(gulp.dest(tempDestBuildDir));
}); });
@ -101,20 +116,21 @@ function gulptasksStandalone($, gulp) {
overwrite: true, overwrite: true,
appBundleId: "io.shapez.standalone", appBundleId: "io.shapez.standalone",
appCategoryType: "public.app-category.games", appCategoryType: "public.app-category.games",
...(isRelease && platform === "darwin" && { ...(isRelease &&
platform === "darwin" && {
osxSign: { osxSign: {
identity: process.env.SHAPEZ_CLI_APPLE_CERT_NAME, "identity": process.env.SHAPEZ_CLI_APPLE_CERT_NAME,
"hardened-runtime": true, "hardened-runtime": true,
hardenedRuntime: true, "hardenedRuntime": true,
entitlements: 'entitlements.plist', "entitlements": "entitlements.plist",
'entitlements-inherit': 'entitlements.plist', "entitlements-inherit": "entitlements.plist",
'signature-flags': 'library' "signature-flags": "library",
}, },
osxNotarize: { osxNotarize: {
appleId: process.env.SHAPEZ_CLI_APPLE_ID, appleId: process.env.SHAPEZ_CLI_APPLE_ID,
appleIdPassword: "@keychain:SHAPEZ_CLI_APPLE_ID" appleIdPassword: "@keychain:SHAPEZ_CLI_APPLE_ID",
} },
}) }),
}).then( }).then(
appPaths => { appPaths => {
console.log("Packages created:", appPaths); console.log("Packages created:", appPaths);
@ -140,9 +156,13 @@ function gulptasksStandalone($, gulp) {
} }
if (process.platform === "win32" && platform === "darwin") { if (process.platform === "win32" && platform === "darwin") {
console.warn("Cross-building for macOS on Windows: dereferencing symlinks.\n".red + console.warn(
"This will nearly double app size and make code signature invalid. Sorry!\n".red.bold + "Cross-building for macOS on Windows: dereferencing symlinks.\n".red +
"For more information, see " + "https://github.com/electron/electron-packager/issues/71".underline); "This will nearly double app size and make code signature invalid. Sorry!\n"
.red.bold +
"For more information, see " +
"https://github.com/electron/electron-packager/issues/71".underline
);
// Clear up framework folders // Clear up framework folders
fs.writeFileSync( fs.writeFileSync(
@ -195,7 +215,9 @@ function gulptasksStandalone($, gulp) {
gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb)); gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb));
gulp.task("standalone.package.prod.linux32", cb => packageStandalone("linux", "ia32", cb)); gulp.task("standalone.package.prod.linux32", cb => packageStandalone("linux", "ia32", cb));
gulp.task("standalone.package.prod.darwin64", cb => packageStandalone("darwin", "x64", cb)); gulp.task("standalone.package.prod.darwin64", cb => packageStandalone("darwin", "x64", cb));
gulp.task("standalone.package.prod.darwin64.unsigned", cb => packageStandalone("darwin", "x64", cb, false)); gulp.task("standalone.package.prod.darwin64.unsigned", cb =>
packageStandalone("darwin", "x64", cb, false)
);
gulp.task( gulp.task(
"standalone.package.prod", "standalone.package.prod",

2
gulp/steampipe/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
steamtemp
app.vdf

View File

@ -0,0 +1,15 @@
"appbuild"
{
"appid" "1318690"
"desc" "$DESC$"
"buildoutput" "C:\work\shapez\shapez.io\gulp\steampipe\steamtemp"
"contentroot" ""
"setlive" ""
"preview" "0"
"local" ""
"depots"
{
"1318691" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\windows.vdf"
"1318692" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\linux.vdf"
}
}

View File

@ -0,0 +1,12 @@
"DepotBuildConfig"
{
"DepotID" "1318692"
"contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files\shapez.io-standalone-linux-x64"
"FileMapping"
{
"LocalPath" "*"
"DepotPath" "."
"recursive" "1"
}
"FileExclusion" "*.pdb"
}

View File

@ -0,0 +1,12 @@
"DepotBuildConfig"
{
"DepotID" "1318691"
"contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files\shapez.io-standalone-win32-x64"
"FileMapping"
{
"LocalPath" "*"
"DepotPath" "."
"recursive" "1"
}
"FileExclusion" "*.pdb"
}

View File

@ -0,0 +1,4 @@
@echo off
cmd /c gulp standalone.prepareVDF
steamcmd +login %STEAM_UPLOAD_SHAPEZ_ID% %STEAM_UPLOAD_SHAPEZ_USER% +run_app_build %cd%/scripts/app.vdf +quit
start https://partner.steamgames.com/apps/builds/1318690

View File

@ -1,6 +1,9 @@
const path = require("path"); const path = require("path");
const fs = require("fs");
const yaml = require("gulp-yaml"); const gulpYaml = require("gulp-yaml");
const YAML = require("yaml");
const stripIndent = require("strip-indent");
const trim = require("trim");
const translationsSourceDir = path.join(__dirname, "..", "translations"); const translationsSourceDir = path.join(__dirname, "..", "translations");
const translationsJsonDir = path.join(__dirname, "..", "src", "js", "built-temp"); const translationsJsonDir = path.join(__dirname, "..", "src", "js", "built-temp");
@ -10,11 +13,75 @@ function gulptasksTranslations($, gulp) {
return gulp return gulp
.src(path.join(translationsSourceDir, "*.yaml")) .src(path.join(translationsSourceDir, "*.yaml"))
.pipe($.plumber()) .pipe($.plumber())
.pipe(yaml({ space: 2, safe: true })) .pipe(gulpYaml({ space: 2, safe: true }))
.pipe(gulp.dest(translationsJsonDir)); .pipe(gulp.dest(translationsJsonDir));
}); });
gulp.task("translations.fullBuild", gulp.series("translations.convertToJson")); gulp.task("translations.fullBuild", gulp.series("translations.convertToJson"));
gulp.task("translations.prepareSteamPage", cb => {
const files = fs.readdirSync(translationsSourceDir);
files
.filter(name => name.endsWith(".yaml"))
.forEach(fname => {
const languageName = fname.replace(".yaml", "");
const abspath = path.join(translationsSourceDir, fname);
const destpath = path.join(translationsSourceDir, "tmp", languageName + "-store.txt");
const contents = fs.readFileSync(abspath, { encoding: "utf-8" });
const data = YAML.parse(contents);
const storePage = data.steamPage;
const content = `
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
${storePage.intro.replace(/\n/gi, "\n\n")}
[h2]${storePage.title_advantages}[/h2]
[list]
${storePage.advantages
.map(x => "[*] " + x.replace(/<b>/, "[b]").replace(/<\/b>/, "[/b]"))
.join("\n")}
[/list]
[h2]${storePage.title_future}[/h2]
[list]
${storePage.planned
.map(x => "[*] " + x.replace(/<b>/, "[b]").replace(/<\/b>/, "[/b]"))
.join("\n")}
[/list]
[h2]${storePage.title_open_source}[/h2]
${storePage.text_open_source.replace(/\n/gi, "\n\n")}
[h2]${storePage.title_links}[/h2]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]${storePage.links.discord}[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]${storePage.links.roadmap}[/url]
[*] [url=https://www.reddit.com/r/shapezio]${storePage.links.subreddit}[/url]
[*] [url=https://github.com/tobspr/shapez.io]${storePage.links.source_code}[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]${
storePage.links.translate
}[/url]
[/list]
`;
fs.writeFileSync(destpath, trim(content.replace(/(\n[ \t\r]*)/gi, "\n")), {
encoding: "utf-8",
});
});
cb();
});
} }
module.exports = { module.exports = {

View File

@ -8198,6 +8198,11 @@ min-document@^2.19.0:
dependencies: dependencies:
dom-walk "^0.1.0" dom-walk "^0.1.0"
min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@ -11945,6 +11950,13 @@ strip-indent@^1.0.1:
dependencies: dependencies:
get-stdin "^4.0.1" get-stdin "^4.0.1"
strip-indent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
dependencies:
min-indent "^1.0.0"
strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
res/ui/memes/cat1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

View File

@ -58,7 +58,7 @@
}, },
"sprites/belt/built/forward_7.png": "sprites/belt/built/forward_7.png":
{ {
"frame": {"x":1144,"y":1261,"w":116,"h":144}, "frame": {"x":1187,"y":1407,"w":116,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":116,"h":144}, "spriteSourceSize": {"x":14,"y":0,"w":116,"h":144},
@ -66,7 +66,7 @@
}, },
"sprites/belt/built/forward_8.png": "sprites/belt/built/forward_8.png":
{ {
"frame": {"x":1187,"y":1411,"w":116,"h":144}, "frame": {"x":1187,"y":1557,"w":116,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":116,"h":144}, "spriteSourceSize": {"x":14,"y":0,"w":116,"h":144},
@ -74,7 +74,7 @@
}, },
"sprites/belt/built/forward_9.png": "sprites/belt/built/forward_9.png":
{ {
"frame": {"x":1187,"y":1561,"w":116,"h":144}, "frame": {"x":1208,"y":1707,"w":116,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":116,"h":144}, "spriteSourceSize": {"x":14,"y":0,"w":116,"h":144},
@ -114,7 +114,7 @@
}, },
"sprites/belt/built/left_0.png": "sprites/belt/built/left_0.png":
{ {
"frame": {"x":1272,"y":1137,"w":130,"h":130}, "frame": {"x":1281,"y":1170,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -122,7 +122,7 @@
}, },
"sprites/belt/built/left_1.png": "sprites/belt/built/left_1.png":
{ {
"frame": {"x":1266,"y":1273,"w":130,"h":130}, "frame": {"x":1417,"y":1170,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -130,7 +130,7 @@
}, },
"sprites/belt/built/left_2.png": "sprites/belt/built/left_2.png":
{ {
"frame": {"x":1443,"y":1559,"w":130,"h":130}, "frame": {"x":1581,"y":1559,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -138,7 +138,7 @@
}, },
"sprites/belt/built/left_3.png": "sprites/belt/built/left_3.png":
{ {
"frame": {"x":1450,"y":1695,"w":130,"h":130}, "frame": {"x":1544,"y":1695,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -146,7 +146,7 @@
}, },
"sprites/belt/built/left_4.png": "sprites/belt/built/left_4.png":
{ {
"frame": {"x":1460,"y":1831,"w":130,"h":130}, "frame": {"x":1443,"y":1851,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -154,7 +154,7 @@
}, },
"sprites/belt/built/left_5.png": "sprites/belt/built/left_5.png":
{ {
"frame": {"x":1538,"y":1273,"w":130,"h":130}, "frame": {"x":1579,"y":1831,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -162,7 +162,7 @@
}, },
"sprites/belt/built/left_6.png": "sprites/belt/built/left_6.png":
{ {
"frame": {"x":1544,"y":1137,"w":130,"h":130}, "frame": {"x":1680,"y":1695,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -170,7 +170,7 @@
}, },
"sprites/belt/built/left_7.png": "sprites/belt/built/left_7.png":
{ {
"frame": {"x":1579,"y":1559,"w":130,"h":130}, "frame": {"x":1715,"y":1831,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -178,7 +178,7 @@
}, },
"sprites/belt/built/left_8.png": "sprites/belt/built/left_8.png":
{ {
"frame": {"x":1586,"y":1695,"w":130,"h":130}, "frame": {"x":1590,"y":450,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -186,7 +186,7 @@
}, },
"sprites/belt/built/left_9.png": "sprites/belt/built/left_9.png":
{ {
"frame": {"x":1596,"y":1831,"w":130,"h":130}, "frame": {"x":1449,"y":567,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -194,7 +194,7 @@
}, },
"sprites/belt/built/left_10.png": "sprites/belt/built/left_10.png":
{ {
"frame": {"x":1314,"y":1701,"w":130,"h":130}, "frame": {"x":1309,"y":1565,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -202,7 +202,7 @@
}, },
"sprites/belt/built/left_11.png": "sprites/belt/built/left_11.png":
{ {
"frame": {"x":1324,"y":1837,"w":130,"h":130}, "frame": {"x":1443,"y":1423,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -210,7 +210,7 @@
}, },
"sprites/belt/built/left_12.png": "sprites/belt/built/left_12.png":
{ {
"frame": {"x":1402,"y":1273,"w":130,"h":130}, "frame": {"x":1445,"y":1559,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -218,7 +218,7 @@
}, },
"sprites/belt/built/left_13.png": "sprites/belt/built/left_13.png":
{ {
"frame": {"x":1408,"y":1137,"w":130,"h":130}, "frame": {"x":1579,"y":1423,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -226,7 +226,7 @@
}, },
"sprites/belt/built/right_0.png": "sprites/belt/built/right_0.png":
{ {
"frame": {"x":1590,"y":450,"w":130,"h":130}, "frame": {"x":1585,"y":586,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -234,7 +234,7 @@
}, },
"sprites/belt/built/right_1.png": "sprites/belt/built/right_1.png":
{ {
"frame": {"x":1449,"y":567,"w":130,"h":130}, "frame": {"x":1449,"y":703,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -242,7 +242,7 @@
}, },
"sprites/belt/built/right_2.png": "sprites/belt/built/right_2.png":
{ {
"frame": {"x":1584,"y":858,"w":130,"h":130}, "frame": {"x":1651,"y":994,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -250,7 +250,7 @@
}, },
"sprites/belt/built/right_3.png": "sprites/belt/built/right_3.png":
{ {
"frame": {"x":1565,"y":994,"w":130,"h":130}, "frame": {"x":1553,"y":1130,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -258,7 +258,7 @@
}, },
"sprites/belt/built/right_4.png": "sprites/belt/built/right_4.png":
{ {
"frame": {"x":1701,"y":994,"w":130,"h":130}, "frame": {"x":1689,"y":1130,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -266,7 +266,7 @@
}, },
"sprites/belt/built/right_5.png": "sprites/belt/built/right_5.png":
{ {
"frame": {"x":1680,"y":1130,"w":130,"h":130}, "frame": {"x":1676,"y":1266,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -274,7 +274,7 @@
}, },
"sprites/belt/built/right_6.png": "sprites/belt/built/right_6.png":
{ {
"frame": {"x":1720,"y":858,"w":130,"h":130}, "frame": {"x":1715,"y":1402,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -282,7 +282,7 @@
}, },
"sprites/belt/built/right_7.png": "sprites/belt/built/right_7.png":
{ {
"frame": {"x":1816,"y":1130,"w":130,"h":130}, "frame": {"x":1717,"y":1538,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -290,7 +290,7 @@
}, },
"sprites/belt/built/right_8.png": "sprites/belt/built/right_8.png":
{ {
"frame": {"x":1837,"y":994,"w":130,"h":130}, "frame": {"x":1720,"y":858,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -298,7 +298,7 @@
}, },
"sprites/belt/built/right_9.png": "sprites/belt/built/right_9.png":
{ {
"frame": {"x":1726,"y":450,"w":130,"h":130}, "frame": {"x":1787,"y":994,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -306,7 +306,7 @@
}, },
"sprites/belt/built/right_10.png": "sprites/belt/built/right_10.png":
{ {
"frame": {"x":1585,"y":586,"w":130,"h":130}, "frame": {"x":1585,"y":722,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -314,7 +314,7 @@
}, },
"sprites/belt/built/right_11.png": "sprites/belt/built/right_11.png":
{ {
"frame": {"x":1449,"y":703,"w":130,"h":130}, "frame": {"x":1448,"y":839,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -322,7 +322,7 @@
}, },
"sprites/belt/built/right_12.png": "sprites/belt/built/right_12.png":
{ {
"frame": {"x":1585,"y":722,"w":130,"h":130}, "frame": {"x":1584,"y":858,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -330,7 +330,7 @@
}, },
"sprites/belt/built/right_13.png": "sprites/belt/built/right_13.png":
{ {
"frame": {"x":1448,"y":839,"w":130,"h":130}, "frame": {"x":1515,"y":994,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -386,7 +386,7 @@
}, },
"sprites/blueprints/belt_left.png": "sprites/blueprints/belt_left.png":
{ {
"frame": {"x":1721,"y":586,"w":130,"h":130}, "frame": {"x":1825,"y":1130,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -394,7 +394,7 @@
}, },
"sprites/blueprints/belt_right.png": "sprites/blueprints/belt_right.png":
{ {
"frame": {"x":1721,"y":722,"w":130,"h":130}, "frame": {"x":1812,"y":1266,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -402,7 +402,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":1309,"y":1409,"w":116,"h":144}, "frame": {"x":1216,"y":1857,"w":116,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":116,"h":144}, "spriteSourceSize": {"x":14,"y":0,"w":116,"h":144},
@ -418,7 +418,7 @@
}, },
"sprites/blueprints/constant_signal.png": "sprites/blueprints/constant_signal.png":
{ {
"frame": {"x":1856,"y":858,"w":105,"h":130}, "frame": {"x":1851,"y":1402,"w":105,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":20,"y":0,"w":105,"h":130}, "spriteSourceSize": {"x":20,"y":0,"w":105,"h":130},
@ -442,7 +442,7 @@
}, },
"sprites/blueprints/display.png": "sprites/blueprints/display.png":
{ {
"frame": {"x":1309,"y":1559,"w":128,"h":136}, "frame": {"x":1309,"y":1423,"w":128,"h":136},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":8,"w":128,"h":136}, "spriteSourceSize": {"x":8,"y":8,"w":128,"h":136},
@ -456,9 +456,17 @@
"spriteSourceSize": {"x":16,"y":0,"w":268,"h":144}, "spriteSourceSize": {"x":16,"y":0,"w":268,"h":144},
"sourceSize": {"w":288,"h":144} "sourceSize": {"w":288,"h":144}
}, },
"sprites/blueprints/item_producer.png":
{
"frame": {"x":1144,"y":1111,"w":131,"h":142},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":131,"h":142},
"sourceSize": {"w":144,"h":144}
},
"sprites/blueprints/lever.png": "sprites/blueprints/lever.png":
{ {
"frame": {"x":1857,"y":631,"w":100,"h":116}, "frame": {"x":1726,"y":450,"w":100,"h":116},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":22,"y":9,"w":100,"h":116}, "spriteSourceSize": {"x":22,"y":9,"w":100,"h":116},
@ -602,7 +610,7 @@
}, },
"sprites/blueprints/transistor-mirrored.png": "sprites/blueprints/transistor-mirrored.png":
{ {
"frame": {"x":1208,"y":1711,"w":100,"h":144}, "frame": {"x":1409,"y":1020,"w":100,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":44,"y":0,"w":100,"h":144}, "spriteSourceSize": {"x":44,"y":0,"w":100,"h":144},
@ -610,7 +618,7 @@
}, },
"sprites/blueprints/transistor.png": "sprites/blueprints/transistor.png":
{ {
"frame": {"x":1216,"y":1861,"w":102,"h":144}, "frame": {"x":1330,"y":1701,"w":102,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":102,"h":144}, "spriteSourceSize": {"x":0,"y":0,"w":102,"h":144},
@ -754,7 +762,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":1272,"y":1137,"w":130,"h":130}, "frame": {"x":1281,"y":1170,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":0,"y":14,"w":130,"h":130},
@ -762,7 +770,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":1590,"y":450,"w":130,"h":130}, "frame": {"x":1585,"y":586,"w":130,"h":130},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":14,"w":130,"h":130}, "spriteSourceSize": {"x":14,"y":14,"w":130,"h":130},
@ -786,7 +794,7 @@
}, },
"sprites/buildings/constant_signal.png": "sprites/buildings/constant_signal.png":
{ {
"frame": {"x":1862,"y":496,"w":104,"h":129}, "frame": {"x":1853,"y":1538,"w":104,"h":129},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":20,"y":0,"w":104,"h":129}, "spriteSourceSize": {"x":20,"y":0,"w":104,"h":129},
@ -832,9 +840,17 @@
"spriteSourceSize": {"x":14,"y":16,"w":548,"h":549}, "spriteSourceSize": {"x":14,"y":16,"w":548,"h":549},
"sourceSize": {"w":576,"h":576} "sourceSize": {"w":576,"h":576}
}, },
"sprites/buildings/item_producer.png":
{
"frame": {"x":1144,"y":1259,"w":130,"h":142},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":130,"h":142},
"sourceSize": {"w":144,"h":144}
},
"sprites/buildings/lever.png": "sprites/buildings/lever.png":
{ {
"frame": {"x":1674,"y":1273,"w":98,"h":114}, "frame": {"x":1721,"y":586,"w":98,"h":114},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":23,"y":10,"w":98,"h":114}, "spriteSourceSize": {"x":23,"y":10,"w":98,"h":114},
@ -842,7 +858,7 @@
}, },
"sprites/buildings/logic_gate-not.png": "sprites/buildings/logic_gate-not.png":
{ {
"frame": {"x":1144,"y":1111,"w":122,"h":144}, "frame": {"x":1281,"y":1020,"w":122,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":12,"y":0,"w":122,"h":144}, "spriteSourceSize": {"x":12,"y":0,"w":122,"h":144},
@ -978,7 +994,7 @@
}, },
"sprites/buildings/transistor-mirrored.png": "sprites/buildings/transistor-mirrored.png":
{ {
"frame": {"x":1537,"y":1409,"w":99,"h":144}, "frame": {"x":1338,"y":1851,"w":99,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":45,"y":0,"w":99,"h":144}, "spriteSourceSize": {"x":45,"y":0,"w":99,"h":144},
@ -986,7 +1002,7 @@
}, },
"sprites/buildings/transistor.png": "sprites/buildings/transistor.png":
{ {
"frame": {"x":1431,"y":1409,"w":100,"h":144}, "frame": {"x":1438,"y":1701,"w":100,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":100,"h":144}, "spriteSourceSize": {"x":1,"y":0,"w":100,"h":144},
@ -1010,7 +1026,7 @@
}, },
"sprites/buildings/underground_belt_entry.png": "sprites/buildings/underground_belt_entry.png":
{ {
"frame": {"x":1279,"y":1020,"w":137,"h":111}, "frame": {"x":1390,"y":1306,"w":137,"h":111},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":33,"w":137,"h":111}, "spriteSourceSize": {"x":5,"y":33,"w":137,"h":111},
@ -1018,7 +1034,7 @@
}, },
"sprites/buildings/underground_belt_exit-tier2.png": "sprites/buildings/underground_belt_exit-tier2.png":
{ {
"frame": {"x":1422,"y":1020,"w":137,"h":111}, "frame": {"x":1533,"y":1306,"w":137,"h":111},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":137,"h":111}, "spriteSourceSize": {"x":5,"y":0,"w":137,"h":111},
@ -1082,7 +1098,7 @@
}, },
"sprites/colors/blue.png": "sprites/colors/blue.png":
{ {
"frame": {"x":1972,"y":586,"w":54,"h":49}, "frame": {"x":1919,"y":685,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1090,7 +1106,7 @@
}, },
"sprites/colors/cyan.png": "sprites/colors/cyan.png":
{ {
"frame": {"x":1963,"y":641,"w":54,"h":49}, "frame": {"x":1579,"y":1967,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1098,7 +1114,7 @@
}, },
"sprites/colors/green.png": "sprites/colors/green.png":
{ {
"frame": {"x":1963,"y":696,"w":54,"h":49}, "frame": {"x":1639,"y":1967,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1106,7 +1122,7 @@
}, },
"sprites/colors/purple.png": "sprites/colors/purple.png":
{ {
"frame": {"x":1419,"y":1973,"w":54,"h":49}, "frame": {"x":1699,"y":1967,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1114,7 +1130,7 @@
}, },
"sprites/colors/red.png": "sprites/colors/red.png":
{ {
"frame": {"x":1479,"y":1967,"w":54,"h":49}, "frame": {"x":1759,"y":1967,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1122,7 +1138,7 @@
}, },
"sprites/colors/uncolored.png": "sprites/colors/uncolored.png":
{ {
"frame": {"x":1539,"y":1967,"w":54,"h":49}, "frame": {"x":1819,"y":1967,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1130,7 +1146,7 @@
}, },
"sprites/colors/white.png": "sprites/colors/white.png":
{ {
"frame": {"x":1599,"y":1967,"w":54,"h":49}, "frame": {"x":1979,"y":685,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1138,7 +1154,7 @@
}, },
"sprites/colors/yellow.png": "sprites/colors/yellow.png":
{ {
"frame": {"x":1659,"y":1967,"w":54,"h":49}, "frame": {"x":1923,"y":740,"w":54,"h":49},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":54,"h":49}, "spriteSourceSize": {"x":0,"y":4,"w":54,"h":49},
@ -1170,7 +1186,7 @@
}, },
"sprites/misc/processor_disabled.png": "sprites/misc/processor_disabled.png":
{ {
"frame": {"x":1888,"y":1266,"w":78,"h":81}, "frame": {"x":1916,"y":598,"w":78,"h":81},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":10,"y":10,"w":78,"h":81}, "spriteSourceSize": {"x":10,"y":10,"w":78,"h":81},
@ -1178,7 +1194,7 @@
}, },
"sprites/misc/processor_disconnected.png": "sprites/misc/processor_disconnected.png":
{ {
"frame": {"x":1972,"y":496,"w":65,"h":84}, "frame": {"x":1856,"y":830,"w":65,"h":84},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":17,"y":8,"w":65,"h":84}, "spriteSourceSize": {"x":17,"y":8,"w":65,"h":84},
@ -1186,7 +1202,7 @@
}, },
"sprites/misc/reader_overlay.png": "sprites/misc/reader_overlay.png":
{ {
"frame": {"x":1778,"y":1266,"w":104,"h":70}, "frame": {"x":1280,"y":1306,"w":104,"h":70},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":20,"y":38,"w":104,"h":70}, "spriteSourceSize": {"x":20,"y":38,"w":104,"h":70},
@ -1194,7 +1210,7 @@
}, },
"sprites/misc/slot_bad_arrow.png": "sprites/misc/slot_bad_arrow.png":
{ {
"frame": {"x":1674,"y":1513,"w":35,"h":35}, "frame": {"x":1216,"y":2007,"w":35,"h":35},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":35,"h":35}, "spriteSourceSize": {"x":2,"y":2,"w":35,"h":35},
@ -1210,7 +1226,7 @@
}, },
"sprites/misc/storage_overlay.png": "sprites/misc/storage_overlay.png":
{ {
"frame": {"x":1324,"y":1973,"w":89,"h":44}, "frame": {"x":1828,"y":780,"w":89,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":89,"h":44}, "spriteSourceSize": {"x":1,"y":1,"w":89,"h":44},
@ -1226,7 +1242,7 @@
}, },
"sprites/wires/boolean_false.png": "sprites/wires/boolean_false.png":
{ {
"frame": {"x":1768,"y":1630,"w":31,"h":41}, "frame": {"x":1832,"y":448,"w":31,"h":41},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":5,"w":31,"h":41}, "spriteSourceSize": {"x":9,"y":5,"w":31,"h":41},
@ -1242,7 +1258,7 @@
}, },
"sprites/wires/display/blue.png": "sprites/wires/display/blue.png":
{ {
"frame": {"x":1715,"y":1513,"w":47,"h":47}, "frame": {"x":1983,"y":740,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":1,"w":47,"h":47},
@ -1250,7 +1266,7 @@
}, },
"sprites/wires/display/cyan.png": "sprites/wires/display/cyan.png":
{ {
"frame": {"x":1715,"y":1566,"w":47,"h":47}, "frame": {"x":1927,"y":795,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":1,"w":47,"h":47},
@ -1258,7 +1274,7 @@
}, },
"sprites/wires/display/green.png": "sprites/wires/display/green.png":
{ {
"frame": {"x":1715,"y":1619,"w":47,"h":47}, "frame": {"x":1927,"y":848,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":1,"w":47,"h":47},
@ -1266,7 +1282,7 @@
}, },
"sprites/wires/display/purple.png": "sprites/wires/display/purple.png":
{ {
"frame": {"x":1768,"y":1524,"w":47,"h":47}, "frame": {"x":1927,"y":901,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":1,"w":47,"h":47},
@ -1274,7 +1290,7 @@
}, },
"sprites/wires/display/red.png": "sprites/wires/display/red.png":
{ {
"frame": {"x":1768,"y":1577,"w":47,"h":47}, "frame": {"x":1443,"y":1987,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":1,"w":47,"h":47},
@ -1282,7 +1298,7 @@
}, },
"sprites/wires/display/white.png": "sprites/wires/display/white.png":
{ {
"frame": {"x":1821,"y":1524,"w":47,"h":47}, "frame": {"x":1496,"y":1987,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":1,"w":47,"h":47},
@ -1290,7 +1306,7 @@
}, },
"sprites/wires/display/yellow.png": "sprites/wires/display/yellow.png":
{ {
"frame": {"x":1821,"y":1577,"w":47,"h":47}, "frame": {"x":1948,"y":1266,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":1,"w":47,"h":47},
@ -1298,7 +1314,7 @@
}, },
"sprites/wires/lever_on.png": "sprites/wires/lever_on.png":
{ {
"frame": {"x":1674,"y":1393,"w":101,"h":114}, "frame": {"x":1721,"y":706,"w":101,"h":114},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":21,"y":10,"w":101,"h":114}, "spriteSourceSize": {"x":21,"y":10,"w":101,"h":114},
@ -1314,7 +1330,7 @@
}, },
"sprites/wires/logical_ejector.png": "sprites/wires/logical_ejector.png":
{ {
"frame": {"x":1872,"y":1444,"w":60,"h":67}, "frame": {"x":1856,"y":920,"w":60,"h":67},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":44,"y":0,"w":60,"h":67}, "spriteSourceSize": {"x":44,"y":0,"w":60,"h":67},
@ -1322,7 +1338,7 @@
}, },
"sprites/wires/network_conflict.png": "sprites/wires/network_conflict.png":
{ {
"frame": {"x":1874,"y":1517,"w":47,"h":44}, "frame": {"x":1948,"y":1319,"w":47,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":2,"w":47,"h":44}, "spriteSourceSize": {"x":1,"y":2,"w":47,"h":44},
@ -1330,7 +1346,7 @@
}, },
"sprites/wires/network_empty.png": "sprites/wires/network_empty.png":
{ {
"frame": {"x":1874,"y":1567,"w":41,"h":48}, "frame": {"x":2000,"y":587,"w":41,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":41,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":41,"h":48},
@ -1338,7 +1354,7 @@
}, },
"sprites/wires/overlay_tile.png": "sprites/wires/overlay_tile.png":
{ {
"frame": {"x":1857,"y":753,"w":96,"h":96}, "frame": {"x":1832,"y":496,"w":96,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96},
@ -1370,7 +1386,7 @@
}, },
"sprites/wires/sets/conflict_turn.png": "sprites/wires/sets/conflict_turn.png":
{ {
"frame": {"x":1781,"y":1342,"w":85,"h":85}, "frame": {"x":1934,"y":496,"w":85,"h":85},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":59,"y":59,"w":85,"h":85}, "spriteSourceSize": {"x":59,"y":59,"w":85,"h":85},
@ -1402,7 +1418,7 @@
}, },
"sprites/wires/sets/first_turn.png": "sprites/wires/sets/first_turn.png":
{ {
"frame": {"x":1781,"y":1433,"w":85,"h":85}, "frame": {"x":1825,"y":598,"w":85,"h":85},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":59,"y":59,"w":85,"h":85}, "spriteSourceSize": {"x":59,"y":59,"w":85,"h":85},
@ -1418,7 +1434,7 @@
}, },
"sprites/wires/sets/second_forward.png": "sprites/wires/sets/second_forward.png":
{ {
"frame": {"x":1642,"y":1409,"w":26,"h":144}, "frame": {"x":1816,"y":1674,"w":26,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":59,"y":0,"w":26,"h":144}, "spriteSourceSize": {"x":59,"y":0,"w":26,"h":144},
@ -1434,7 +1450,7 @@
}, },
"sprites/wires/sets/second_turn.png": "sprites/wires/sets/second_turn.png":
{ {
"frame": {"x":1872,"y":1353,"w":85,"h":85}, "frame": {"x":1828,"y":689,"w":85,"h":85},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":59,"y":59,"w":85,"h":85}, "spriteSourceSize": {"x":59,"y":59,"w":85,"h":85},
@ -1455,6 +1471,6 @@
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":2048,"h":2048}, "size": {"w":2048,"h":2048},
"scale": "0.75", "scale": "0.75",
"smartupdate": "$TexturePacker:SmartUpdate:19330d11a27d320d8e46be8f211ea26a:6c32332cb8456652726098bfd11407a1:908b89f5ca8ff73e331a35a3b14d0604$" "smartupdate": "$TexturePacker:SmartUpdate:a1c027d325ef1c92a9318164b1241662:a9c9c3627ec9506697a7e24a7a287d67:908b89f5ca8ff73e331a35a3b14d0604$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -2,7 +2,7 @@
"sprites/belt/built/forward_0.png": "sprites/belt/built/forward_0.png":
{ {
"frame": {"x":803,"y":522,"w":40,"h":48}, "frame": {"x":903,"y":557,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -10,7 +10,7 @@
}, },
"sprites/belt/built/forward_1.png": "sprites/belt/built/forward_1.png":
{ {
"frame": {"x":887,"y":543,"w":40,"h":48}, "frame": {"x":949,"y":595,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -18,7 +18,7 @@
}, },
"sprites/belt/built/forward_2.png": "sprites/belt/built/forward_2.png":
{ {
"frame": {"x":144,"y":422,"w":40,"h":48}, "frame": {"x":190,"y":422,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -26,7 +26,7 @@
}, },
"sprites/belt/built/forward_3.png": "sprites/belt/built/forward_3.png":
{ {
"frame": {"x":190,"y":422,"w":40,"h":48}, "frame": {"x":236,"y":422,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -34,7 +34,7 @@
}, },
"sprites/belt/built/forward_4.png": "sprites/belt/built/forward_4.png":
{ {
"frame": {"x":236,"y":422,"w":40,"h":48}, "frame": {"x":282,"y":441,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -42,7 +42,7 @@
}, },
"sprites/belt/built/forward_5.png": "sprites/belt/built/forward_5.png":
{ {
"frame": {"x":282,"y":441,"w":40,"h":48}, "frame": {"x":328,"y":461,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -50,7 +50,7 @@
}, },
"sprites/belt/built/forward_6.png": "sprites/belt/built/forward_6.png":
{ {
"frame": {"x":328,"y":461,"w":40,"h":48}, "frame": {"x":374,"y":461,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -58,7 +58,7 @@
}, },
"sprites/belt/built/forward_7.png": "sprites/belt/built/forward_7.png":
{ {
"frame": {"x":374,"y":461,"w":40,"h":48}, "frame": {"x":420,"y":464,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -66,7 +66,7 @@
}, },
"sprites/belt/built/forward_8.png": "sprites/belt/built/forward_8.png":
{ {
"frame": {"x":420,"y":464,"w":40,"h":48}, "frame": {"x":506,"y":482,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -74,7 +74,7 @@
}, },
"sprites/belt/built/forward_9.png": "sprites/belt/built/forward_9.png":
{ {
"frame": {"x":506,"y":482,"w":40,"h":48}, "frame": {"x":552,"y":525,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -82,7 +82,7 @@
}, },
"sprites/belt/built/forward_10.png": "sprites/belt/built/forward_10.png":
{ {
"frame": {"x":933,"y":553,"w":40,"h":48}, "frame": {"x":6,"y":409,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -90,7 +90,7 @@
}, },
"sprites/belt/built/forward_11.png": "sprites/belt/built/forward_11.png":
{ {
"frame": {"x":6,"y":409,"w":40,"h":48}, "frame": {"x":52,"y":409,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -98,7 +98,7 @@
}, },
"sprites/belt/built/forward_12.png": "sprites/belt/built/forward_12.png":
{ {
"frame": {"x":52,"y":409,"w":40,"h":48}, "frame": {"x":98,"y":409,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -106,7 +106,7 @@
}, },
"sprites/belt/built/forward_13.png": "sprites/belt/built/forward_13.png":
{ {
"frame": {"x":98,"y":409,"w":40,"h":48}, "frame": {"x":144,"y":422,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -114,7 +114,7 @@
}, },
"sprites/belt/built/left_0.png": "sprites/belt/built/left_0.png":
{ {
"frame": {"x":887,"y":493,"w":44,"h":44}, "frame": {"x":395,"y":311,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -122,7 +122,7 @@
}, },
"sprites/belt/built/left_1.png": "sprites/belt/built/left_1.png":
{ {
"frame": {"x":937,"y":503,"w":44,"h":44}, "frame": {"x":445,"y":311,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -130,7 +130,7 @@
}, },
"sprites/belt/built/left_2.png": "sprites/belt/built/left_2.png":
{ {
"frame": {"x":292,"y":322,"w":44,"h":44}, "frame": {"x":392,"y":361,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -138,7 +138,7 @@
}, },
"sprites/belt/built/left_3.png": "sprites/belt/built/left_3.png":
{ {
"frame": {"x":342,"y":341,"w":44,"h":44}, "frame": {"x":442,"y":361,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -146,7 +146,7 @@
}, },
"sprites/belt/built/left_4.png": "sprites/belt/built/left_4.png":
{ {
"frame": {"x":392,"y":361,"w":44,"h":44}, "frame": {"x":492,"y":364,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -154,7 +154,7 @@
}, },
"sprites/belt/built/left_5.png": "sprites/belt/built/left_5.png":
{ {
"frame": {"x":442,"y":361,"w":44,"h":44}, "frame": {"x":542,"y":382,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -162,7 +162,7 @@
}, },
"sprites/belt/built/left_6.png": "sprites/belt/built/left_6.png":
{ {
"frame": {"x":492,"y":364,"w":44,"h":44}, "frame": {"x":592,"y":425,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -170,7 +170,7 @@
}, },
"sprites/belt/built/left_7.png": "sprites/belt/built/left_7.png":
{ {
"frame": {"x":542,"y":382,"w":44,"h":44}, "frame": {"x":642,"y":425,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -178,7 +178,7 @@
}, },
"sprites/belt/built/left_8.png": "sprites/belt/built/left_8.png":
{ {
"frame": {"x":592,"y":425,"w":44,"h":44}, "frame": {"x":692,"y":426,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -186,7 +186,7 @@
}, },
"sprites/belt/built/left_9.png": "sprites/belt/built/left_9.png":
{ {
"frame": {"x":642,"y":425,"w":44,"h":44}, "frame": {"x":742,"y":470,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -194,7 +194,7 @@
}, },
"sprites/belt/built/left_10.png": "sprites/belt/built/left_10.png":
{ {
"frame": {"x":395,"y":311,"w":44,"h":44}, "frame": {"x":192,"y":322,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -202,7 +202,7 @@
}, },
"sprites/belt/built/left_11.png": "sprites/belt/built/left_11.png":
{ {
"frame": {"x":445,"y":311,"w":44,"h":44}, "frame": {"x":242,"y":322,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -210,7 +210,7 @@
}, },
"sprites/belt/built/left_12.png": "sprites/belt/built/left_12.png":
{ {
"frame": {"x":192,"y":322,"w":44,"h":44}, "frame": {"x":292,"y":322,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -218,7 +218,7 @@
}, },
"sprites/belt/built/left_13.png": "sprites/belt/built/left_13.png":
{ {
"frame": {"x":242,"y":322,"w":44,"h":44}, "frame": {"x":342,"y":341,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -226,7 +226,7 @@
}, },
"sprites/belt/built/right_0.png": "sprites/belt/built/right_0.png":
{ {
"frame": {"x":692,"y":426,"w":44,"h":44}, "frame": {"x":6,"y":359,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -234,7 +234,7 @@
}, },
"sprites/belt/built/right_1.png": "sprites/belt/built/right_1.png":
{ {
"frame": {"x":742,"y":470,"w":44,"h":44}, "frame": {"x":56,"y":359,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -242,7 +242,7 @@
}, },
"sprites/belt/built/right_2.png": "sprites/belt/built/right_2.png":
{ {
"frame": {"x":206,"y":372,"w":44,"h":44}, "frame": {"x":306,"y":391,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -250,7 +250,7 @@
}, },
"sprites/belt/built/right_3.png": "sprites/belt/built/right_3.png":
{ {
"frame": {"x":256,"y":372,"w":44,"h":44}, "frame": {"x":356,"y":411,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -258,7 +258,7 @@
}, },
"sprites/belt/built/right_4.png": "sprites/belt/built/right_4.png":
{ {
"frame": {"x":306,"y":391,"w":44,"h":44}, "frame": {"x":406,"y":411,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -266,7 +266,7 @@
}, },
"sprites/belt/built/right_5.png": "sprites/belt/built/right_5.png":
{ {
"frame": {"x":356,"y":411,"w":44,"h":44}, "frame": {"x":456,"y":414,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -274,7 +274,7 @@
}, },
"sprites/belt/built/right_6.png": "sprites/belt/built/right_6.png":
{ {
"frame": {"x":406,"y":411,"w":44,"h":44}, "frame": {"x":506,"y":432,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -282,7 +282,7 @@
}, },
"sprites/belt/built/right_7.png": "sprites/belt/built/right_7.png":
{ {
"frame": {"x":456,"y":414,"w":44,"h":44}, "frame": {"x":556,"y":475,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -290,7 +290,7 @@
}, },
"sprites/belt/built/right_8.png": "sprites/belt/built/right_8.png":
{ {
"frame": {"x":506,"y":432,"w":44,"h":44}, "frame": {"x":606,"y":475,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -298,7 +298,7 @@
}, },
"sprites/belt/built/right_9.png": "sprites/belt/built/right_9.png":
{ {
"frame": {"x":556,"y":475,"w":44,"h":44}, "frame": {"x":656,"y":476,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -306,7 +306,7 @@
}, },
"sprites/belt/built/right_10.png": "sprites/belt/built/right_10.png":
{ {
"frame": {"x":6,"y":359,"w":44,"h":44}, "frame": {"x":106,"y":359,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -314,7 +314,7 @@
}, },
"sprites/belt/built/right_11.png": "sprites/belt/built/right_11.png":
{ {
"frame": {"x":56,"y":359,"w":44,"h":44}, "frame": {"x":156,"y":372,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -322,7 +322,7 @@
}, },
"sprites/belt/built/right_12.png": "sprites/belt/built/right_12.png":
{ {
"frame": {"x":106,"y":359,"w":44,"h":44}, "frame": {"x":206,"y":372,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -330,7 +330,7 @@
}, },
"sprites/belt/built/right_13.png": "sprites/belt/built/right_13.png":
{ {
"frame": {"x":156,"y":372,"w":44,"h":44}, "frame": {"x":256,"y":372,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -386,7 +386,7 @@
}, },
"sprites/blueprints/belt_left.png": "sprites/blueprints/belt_left.png":
{ {
"frame": {"x":606,"y":475,"w":44,"h":44}, "frame": {"x":706,"y":520,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -394,7 +394,7 @@
}, },
"sprites/blueprints/belt_right.png": "sprites/blueprints/belt_right.png":
{ {
"frame": {"x":656,"y":476,"w":44,"h":44}, "frame": {"x":756,"y":520,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -402,7 +402,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":552,"y":525,"w":40,"h":48}, "frame": {"x":598,"y":525,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -442,7 +442,7 @@
}, },
"sprites/blueprints/display.png": "sprites/blueprints/display.png":
{ {
"frame": {"x":837,"y":470,"w":44,"h":46}, "frame": {"x":888,"y":493,"w":44,"h":46},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":44,"h":46}, "spriteSourceSize": {"x":2,"y":2,"w":44,"h":46},
@ -456,6 +456,14 @@
"spriteSourceSize": {"x":4,"y":0,"w":91,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":91,"h":48},
"sourceSize": {"w":96,"h":48} "sourceSize": {"w":96,"h":48}
}, },
"sprites/blueprints/item_producer.png":
{
"frame": {"x":771,"y":416,"w":45,"h":48},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":45,"h":48},
"sourceSize": {"w":48,"h":48}
},
"sprites/blueprints/lever.png": "sprites/blueprints/lever.png":
{ {
"frame": {"x":864,"y":222,"w":35,"h":41}, "frame": {"x":864,"y":222,"w":35,"h":41},
@ -466,7 +474,7 @@
}, },
"sprites/blueprints/logic_gate-not.png": "sprites/blueprints/logic_gate-not.png":
{ {
"frame": {"x":755,"y":520,"w":42,"h":48}, "frame": {"x":855,"y":545,"w":42,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":42,"h":48}, "spriteSourceSize": {"x":3,"y":0,"w":42,"h":48},
@ -602,7 +610,7 @@
}, },
"sprites/blueprints/transistor-mirrored.png": "sprites/blueprints/transistor-mirrored.png":
{ {
"frame": {"x":979,"y":559,"w":34,"h":48}, "frame": {"x":466,"y":464,"w":34,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":34,"h":48}, "spriteSourceSize": {"x":14,"y":0,"w":34,"h":48},
@ -674,7 +682,7 @@
}, },
"sprites/blueprints/virtual_processor-stacker.png": "sprites/blueprints/virtual_processor-stacker.png":
{ {
"frame": {"x":771,"y":416,"w":44,"h":48}, "frame": {"x":895,"y":439,"w":44,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":44,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":44,"h":48},
@ -754,7 +762,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":887,"y":493,"w":44,"h":44}, "frame": {"x":395,"y":311,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":0,"y":4,"w":44,"h":44},
@ -762,7 +770,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":692,"y":426,"w":44,"h":44}, "frame": {"x":6,"y":359,"w":44,"h":44},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":44,"h":44}, "spriteSourceSize": {"x":4,"y":4,"w":44,"h":44},
@ -770,7 +778,7 @@
}, },
"sprites/buildings/belt_top.png": "sprites/buildings/belt_top.png":
{ {
"frame": {"x":803,"y":522,"w":40,"h":48}, "frame": {"x":903,"y":557,"w":40,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":40,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":40,"h":48},
@ -810,7 +818,7 @@
}, },
"sprites/buildings/display.png": "sprites/buildings/display.png":
{ {
"frame": {"x":944,"y":451,"w":44,"h":46}, "frame": {"x":938,"y":505,"w":44,"h":46},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":44,"h":46}, "spriteSourceSize": {"x":2,"y":2,"w":44,"h":46},
@ -832,9 +840,17 @@
"spriteSourceSize": {"x":4,"y":4,"w":184,"h":185}, "spriteSourceSize": {"x":4,"y":4,"w":184,"h":185},
"sourceSize": {"w":192,"h":192} "sourceSize": {"w":192,"h":192}
}, },
"sprites/buildings/item_producer.png":
{
"frame": {"x":844,"y":416,"w":45,"h":48},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":45,"h":48},
"sourceSize": {"w":48,"h":48}
},
"sprites/buildings/lever.png": "sprites/buildings/lever.png":
{ {
"frame": {"x":598,"y":525,"w":34,"h":40}, "frame": {"x":684,"y":570,"w":34,"h":40},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":2,"w":34,"h":40}, "spriteSourceSize": {"x":7,"y":2,"w":34,"h":40},
@ -842,7 +858,7 @@
}, },
"sprites/buildings/logic_gate-not.png": "sprites/buildings/logic_gate-not.png":
{ {
"frame": {"x":706,"y":520,"w":43,"h":48}, "frame": {"x":806,"y":524,"w":43,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":43,"h":48}, "spriteSourceSize": {"x":3,"y":0,"w":43,"h":48},
@ -978,7 +994,7 @@
}, },
"sprites/buildings/transistor-mirrored.png": "sprites/buildings/transistor-mirrored.png":
{ {
"frame": {"x":466,"y":464,"w":34,"h":48}, "frame": {"x":644,"y":526,"w":34,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":34,"h":48}, "spriteSourceSize": {"x":14,"y":0,"w":34,"h":48},
@ -1034,7 +1050,7 @@
}, },
"sprites/buildings/virtual_processor-painter.png": "sprites/buildings/virtual_processor-painter.png":
{ {
"frame": {"x":844,"y":416,"w":44,"h":48}, "frame": {"x":838,"y":470,"w":44,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":44,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":44,"h":48},
@ -1050,7 +1066,7 @@
}, },
"sprites/buildings/virtual_processor-stacker.png": "sprites/buildings/virtual_processor-stacker.png":
{ {
"frame": {"x":894,"y":439,"w":44,"h":48}, "frame": {"x":945,"y":451,"w":44,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":44,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":44,"h":48},
@ -1202,7 +1218,7 @@
}, },
"sprites/misc/slot_good_arrow.png": "sprites/misc/slot_good_arrow.png":
{ {
"frame": {"x":821,"y":428,"w":13,"h":13}, "frame": {"x":822,"y":428,"w":13,"h":13},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13},
@ -1226,7 +1242,7 @@
}, },
"sprites/wires/boolean_false.png": "sprites/wires/boolean_false.png":
{ {
"frame": {"x":821,"y":447,"w":12,"h":15}, "frame": {"x":822,"y":447,"w":12,"h":15},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":1,"w":12,"h":15}, "spriteSourceSize": {"x":2,"y":1,"w":12,"h":15},
@ -1338,7 +1354,7 @@
}, },
"sprites/wires/overlay_tile.png": "sprites/wires/overlay_tile.png":
{ {
"frame": {"x":849,"y":522,"w":32,"h":32}, "frame": {"x":949,"y":557,"w":32,"h":32},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
@ -1354,7 +1370,7 @@
}, },
"sprites/wires/sets/conflict_forward.png": "sprites/wires/sets/conflict_forward.png":
{ {
"frame": {"x":821,"y":468,"w":10,"h":48}, "frame": {"x":822,"y":468,"w":10,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":19,"y":0,"w":10,"h":48}, "spriteSourceSize": {"x":19,"y":0,"w":10,"h":48},
@ -1386,7 +1402,7 @@
}, },
"sprites/wires/sets/first_forward.png": "sprites/wires/sets/first_forward.png":
{ {
"frame": {"x":994,"y":451,"w":10,"h":48}, "frame": {"x":995,"y":451,"w":10,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":19,"y":0,"w":10,"h":48}, "spriteSourceSize": {"x":19,"y":0,"w":10,"h":48},
@ -1418,7 +1434,7 @@
}, },
"sprites/wires/sets/second_forward.png": "sprites/wires/sets/second_forward.png":
{ {
"frame": {"x":987,"y":505,"w":10,"h":48}, "frame": {"x":988,"y":505,"w":10,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":19,"y":0,"w":10,"h":48}, "spriteSourceSize": {"x":19,"y":0,"w":10,"h":48},
@ -1455,6 +1471,6 @@
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":1024,"h":1024}, "size": {"w":1024,"h":1024},
"scale": "0.25", "scale": "0.25",
"smartupdate": "$TexturePacker:SmartUpdate:19330d11a27d320d8e46be8f211ea26a:6c32332cb8456652726098bfd11407a1:908b89f5ca8ff73e331a35a3b14d0604$" "smartupdate": "$TexturePacker:SmartUpdate:a1c027d325ef1c92a9318164b1241662:a9c9c3627ec9506697a7e24a7a287d67:908b89f5ca8ff73e331a35a3b14d0604$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 286 KiB

View File

@ -10,7 +10,7 @@
}, },
"sprites/belt/built/forward_1.png": "sprites/belt/built/forward_1.png":
{ {
"frame": {"x":936,"y":1756,"w":78,"h":96}, "frame": {"x":568,"y":924,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -18,7 +18,7 @@
}, },
"sprites/belt/built/forward_2.png": "sprites/belt/built/forward_2.png":
{ {
"frame": {"x":174,"y":1858,"w":78,"h":96}, "frame": {"x":342,"y":1897,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -26,7 +26,7 @@
}, },
"sprites/belt/built/forward_3.png": "sprites/belt/built/forward_3.png":
{ {
"frame": {"x":174,"y":1744,"w":78,"h":96}, "frame": {"x":864,"y":1536,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -34,7 +34,7 @@
}, },
"sprites/belt/built/forward_4.png": "sprites/belt/built/forward_4.png":
{ {
"frame": {"x":348,"y":1690,"w":78,"h":96}, "frame": {"x":766,"y":1576,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -42,7 +42,7 @@
}, },
"sprites/belt/built/forward_5.png": "sprites/belt/built/forward_5.png":
{ {
"frame": {"x":258,"y":1747,"w":78,"h":96}, "frame": {"x":666,"y":1656,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -50,7 +50,7 @@
}, },
"sprites/belt/built/forward_6.png": "sprites/belt/built/forward_6.png":
{ {
"frame": {"x":432,"y":1700,"w":78,"h":96}, "frame": {"x":568,"y":1723,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -58,7 +58,7 @@
}, },
"sprites/belt/built/forward_7.png": "sprites/belt/built/forward_7.png":
{ {
"frame": {"x":342,"y":1792,"w":78,"h":96}, "frame": {"x":471,"y":1795,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -66,7 +66,7 @@
}, },
"sprites/belt/built/forward_8.png": "sprites/belt/built/forward_8.png":
{ {
"frame": {"x":258,"y":1849,"w":78,"h":96}, "frame": {"x":426,"y":1897,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -74,7 +74,7 @@
}, },
"sprites/belt/built/forward_9.png": "sprites/belt/built/forward_9.png":
{ {
"frame": {"x":342,"y":1894,"w":78,"h":96}, "frame": {"x":510,"y":1897,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -82,7 +82,7 @@
}, },
"sprites/belt/built/forward_10.png": "sprites/belt/built/forward_10.png":
{ {
"frame": {"x":6,"y":1858,"w":78,"h":96}, "frame": {"x":6,"y":1940,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -90,7 +90,7 @@
}, },
"sprites/belt/built/forward_11.png": "sprites/belt/built/forward_11.png":
{ {
"frame": {"x":6,"y":1744,"w":78,"h":96}, "frame": {"x":90,"y":1940,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -98,7 +98,7 @@
}, },
"sprites/belt/built/forward_12.png": "sprites/belt/built/forward_12.png":
{ {
"frame": {"x":90,"y":1858,"w":78,"h":96}, "frame": {"x":174,"y":1940,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -106,7 +106,7 @@
}, },
"sprites/belt/built/forward_13.png": "sprites/belt/built/forward_13.png":
{ {
"frame": {"x":90,"y":1744,"w":78,"h":96}, "frame": {"x":258,"y":1905,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -114,7 +114,7 @@
}, },
"sprites/belt/built/left_0.png": "sprites/belt/built/left_0.png":
{ {
"frame": {"x":203,"y":1372,"w":87,"h":87}, "frame": {"x":103,"y":1466,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -122,7 +122,7 @@
}, },
"sprites/belt/built/left_1.png": "sprites/belt/built/left_1.png":
{ {
"frame": {"x":104,"y":1415,"w":87,"h":87}, "frame": {"x":6,"y":1487,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -130,7 +130,7 @@
}, },
"sprites/belt/built/left_2.png": "sprites/belt/built/left_2.png":
{ {
"frame": {"x":575,"y":1465,"w":87,"h":87}, "frame": {"x":99,"y":1559,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -138,7 +138,7 @@
}, },
"sprites/belt/built/left_3.png": "sprites/belt/built/left_3.png":
{ {
"frame": {"x":668,"y":1490,"w":87,"h":87}, "frame": {"x":6,"y":1580,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -146,7 +146,7 @@
}, },
"sprites/belt/built/left_4.png": "sprites/belt/built/left_4.png":
{ {
"frame": {"x":761,"y":1569,"w":87,"h":87}, "frame": {"x":585,"y":1444,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -154,7 +154,7 @@
}, },
"sprites/belt/built/left_5.png": "sprites/belt/built/left_5.png":
{ {
"frame": {"x":854,"y":1570,"w":87,"h":87}, "frame": {"x":487,"y":1516,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -162,7 +162,7 @@
}, },
"sprites/belt/built/left_6.png": "sprites/belt/built/left_6.png":
{ {
"frame": {"x":197,"y":1465,"w":87,"h":87}, "frame": {"x":387,"y":1538,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -170,7 +170,7 @@
}, },
"sprites/belt/built/left_7.png": "sprites/belt/built/left_7.png":
{ {
"frame": {"x":99,"y":1508,"w":87,"h":87}, "frame": {"x":289,"y":1618,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -178,7 +178,7 @@
}, },
"sprites/belt/built/left_8.png": "sprites/belt/built/left_8.png":
{ {
"frame": {"x":6,"y":1553,"w":87,"h":87}, "frame": {"x":192,"y":1626,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -186,7 +186,7 @@
}, },
"sprites/belt/built/left_9.png": "sprites/belt/built/left_9.png":
{ {
"frame": {"x":290,"y":1465,"w":87,"h":87}, "frame": {"x":99,"y":1652,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -194,7 +194,7 @@
}, },
"sprites/belt/built/left_10.png": "sprites/belt/built/left_10.png":
{ {
"frame": {"x":6,"y":1460,"w":87,"h":87}, "frame": {"x":492,"y":1423,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -202,7 +202,7 @@
}, },
"sprites/belt/built/left_11.png": "sprites/belt/built/left_11.png":
{ {
"frame": {"x":296,"y":1372,"w":87,"h":87}, "frame": {"x":394,"y":1445,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -210,7 +210,7 @@
}, },
"sprites/belt/built/left_12.png": "sprites/belt/built/left_12.png":
{ {
"frame": {"x":389,"y":1411,"w":87,"h":87}, "frame": {"x":294,"y":1525,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -218,7 +218,7 @@
}, },
"sprites/belt/built/left_13.png": "sprites/belt/built/left_13.png":
{ {
"frame": {"x":482,"y":1421,"w":87,"h":87}, "frame": {"x":196,"y":1533,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -226,7 +226,7 @@
}, },
"sprites/belt/built/right_0.png": "sprites/belt/built/right_0.png":
{ {
"frame": {"x":383,"y":1504,"w":87,"h":87}, "frame": {"x":6,"y":1673,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -234,7 +234,7 @@
}, },
"sprites/belt/built/right_1.png": "sprites/belt/built/right_1.png":
{ {
"frame": {"x":476,"y":1514,"w":87,"h":87}, "frame": {"x":678,"y":1470,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -242,7 +242,7 @@
}, },
"sprites/belt/built/right_2.png": "sprites/belt/built/right_2.png":
{ {
"frame": {"x":192,"y":1558,"w":87,"h":87}, "frame": {"x":192,"y":1719,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -250,7 +250,7 @@
}, },
"sprites/belt/built/right_3.png": "sprites/belt/built/right_3.png":
{ {
"frame": {"x":99,"y":1601,"w":87,"h":87}, "frame": {"x":99,"y":1745,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -258,7 +258,7 @@
}, },
"sprites/belt/built/right_4.png": "sprites/belt/built/right_4.png":
{ {
"frame": {"x":6,"y":1646,"w":87,"h":87}, "frame": {"x":6,"y":1766,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -266,7 +266,7 @@
}, },
"sprites/belt/built/right_5.png": "sprites/belt/built/right_5.png":
{ {
"frame": {"x":285,"y":1558,"w":87,"h":87}, "frame": {"x":771,"y":1483,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -274,7 +274,7 @@
}, },
"sprites/belt/built/right_6.png": "sprites/belt/built/right_6.png":
{ {
"frame": {"x":378,"y":1597,"w":87,"h":87}, "frame": {"x":673,"y":1563,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -282,7 +282,7 @@
}, },
"sprites/belt/built/right_7.png": "sprites/belt/built/right_7.png":
{ {
"frame": {"x":471,"y":1607,"w":87,"h":87}, "frame": {"x":573,"y":1630,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -290,7 +290,7 @@
}, },
"sprites/belt/built/right_8.png": "sprites/belt/built/right_8.png":
{ {
"frame": {"x":564,"y":1651,"w":87,"h":87}, "frame": {"x":475,"y":1702,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -298,7 +298,7 @@
}, },
"sprites/belt/built/right_9.png": "sprites/belt/built/right_9.png":
{ {
"frame": {"x":657,"y":1676,"w":87,"h":87}, "frame": {"x":378,"y":1724,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -306,7 +306,7 @@
}, },
"sprites/belt/built/right_10.png": "sprites/belt/built/right_10.png":
{ {
"frame": {"x":569,"y":1558,"w":87,"h":87}, "frame": {"x":580,"y":1537,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -314,7 +314,7 @@
}, },
"sprites/belt/built/right_11.png": "sprites/belt/built/right_11.png":
{ {
"frame": {"x":662,"y":1583,"w":87,"h":87}, "frame": {"x":480,"y":1609,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -322,7 +322,7 @@
}, },
"sprites/belt/built/right_12.png": "sprites/belt/built/right_12.png":
{ {
"frame": {"x":755,"y":1662,"w":87,"h":87}, "frame": {"x":382,"y":1631,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -330,7 +330,7 @@
}, },
"sprites/belt/built/right_13.png": "sprites/belt/built/right_13.png":
{ {
"frame": {"x":848,"y":1663,"w":87,"h":87}, "frame": {"x":285,"y":1711,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -346,7 +346,7 @@
}, },
"sprites/blueprints/balancer-merger-inverse.png": "sprites/blueprints/balancer-merger-inverse.png":
{ {
"frame": {"x":791,"y":1193,"w":95,"h":93}, "frame": {"x":794,"y":1206,"w":95,"h":93},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":1,"w":95,"h":93}, "spriteSourceSize": {"x":0,"y":1,"w":95,"h":93},
@ -362,7 +362,7 @@
}, },
"sprites/blueprints/balancer-splitter-inverse.png": "sprites/blueprints/balancer-splitter-inverse.png":
{ {
"frame": {"x":892,"y":1207,"w":95,"h":93}, "frame": {"x":689,"y":1274,"w":95,"h":93},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":1,"w":95,"h":93}, "spriteSourceSize": {"x":0,"y":1,"w":95,"h":93},
@ -370,7 +370,7 @@
}, },
"sprites/blueprints/balancer-splitter.png": "sprites/blueprints/balancer-splitter.png":
{ {
"frame": {"x":454,"y":1216,"w":93,"h":93}, "frame": {"x":451,"y":1244,"w":93,"h":93},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":1,"w":93,"h":93}, "spriteSourceSize": {"x":3,"y":1,"w":93,"h":93},
@ -386,7 +386,7 @@
}, },
"sprites/blueprints/belt_left.png": "sprites/blueprints/belt_left.png":
{ {
"frame": {"x":750,"y":1755,"w":87,"h":87}, "frame": {"x":285,"y":1804,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -394,7 +394,7 @@
}, },
"sprites/blueprints/belt_right.png": "sprites/blueprints/belt_right.png":
{ {
"frame": {"x":843,"y":1756,"w":87,"h":87}, "frame": {"x":192,"y":1812,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -402,7 +402,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":516,"y":1744,"w":78,"h":96}, "frame": {"x":850,"y":1638,"w":78,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":78,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":78,"h":96},
@ -410,7 +410,7 @@
}, },
"sprites/blueprints/comparator.png": "sprites/blueprints/comparator.png":
{ {
"frame": {"x":461,"y":924,"w":96,"h":89}, "frame": {"x":461,"y":1023,"w":96,"h":89},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":89}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":89},
@ -456,6 +456,14 @@
"spriteSourceSize": {"x":10,"y":0,"w":180,"h":96}, "spriteSourceSize": {"x":10,"y":0,"w":180,"h":96},
"sourceSize": {"w":192,"h":96} "sourceSize": {"w":192,"h":96}
}, },
"sprites/blueprints/item_producer.png":
{
"frame": {"x":804,"y":799,"w":88,"h":95},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":88,"h":95},
"sourceSize": {"w":96,"h":96}
},
"sprites/blueprints/lever.png": "sprites/blueprints/lever.png":
{ {
"frame": {"x":285,"y":876,"w":68,"h":78}, "frame": {"x":285,"y":876,"w":68,"h":78},
@ -466,7 +474,7 @@
}, },
"sprites/blueprints/logic_gate-not.png": "sprites/blueprints/logic_gate-not.png":
{ {
"frame": {"x":563,"y":924,"w":83,"h":96}, "frame": {"x":563,"y":1026,"w":83,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":0,"w":83,"h":96}, "spriteSourceSize": {"x":7,"y":0,"w":83,"h":96},
@ -474,7 +482,7 @@
}, },
"sprites/blueprints/logic_gate-or.png": "sprites/blueprints/logic_gate-or.png":
{ {
"frame": {"x":795,"y":1105,"w":96,"h":82}, "frame": {"x":694,"y":1084,"w":96,"h":82},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":82}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":82},
@ -490,7 +498,7 @@
}, },
"sprites/blueprints/logic_gate.png": "sprites/blueprints/logic_gate.png":
{ {
"frame": {"x":461,"y":1019,"w":96,"h":89}, "frame": {"x":357,"y":1024,"w":96,"h":89},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":89}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":89},
@ -498,7 +506,7 @@
}, },
"sprites/blueprints/miner-chainable.png": "sprites/blueprints/miner-chainable.png":
{ {
"frame": {"x":243,"y":1270,"w":92,"h":96}, "frame": {"x":886,"y":1434,"w":92,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96},
@ -506,7 +514,7 @@
}, },
"sprites/blueprints/miner.png": "sprites/blueprints/miner.png":
{ {
"frame": {"x":341,"y":1270,"w":92,"h":96}, "frame": {"x":105,"y":1263,"w":92,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96},
@ -554,7 +562,7 @@
}, },
"sprites/blueprints/reader.png": "sprites/blueprints/reader.png":
{ {
"frame": {"x":796,"y":901,"w":95,"h":96}, "frame": {"x":796,"y":1002,"w":95,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96},
@ -626,7 +634,7 @@
}, },
"sprites/blueprints/underground_belt_entry-tier2.png": "sprites/blueprints/underground_belt_entry-tier2.png":
{ {
"frame": {"x":6,"y":1290,"w":93,"h":84}, "frame": {"x":180,"y":1173,"w":93,"h":84},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":12,"w":93,"h":84}, "spriteSourceSize": {"x":2,"y":12,"w":93,"h":84},
@ -634,7 +642,7 @@
}, },
"sprites/blueprints/underground_belt_entry.png": "sprites/blueprints/underground_belt_entry.png":
{ {
"frame": {"x":883,"y":1306,"w":93,"h":75}, "frame": {"x":890,"y":1353,"w":93,"h":75},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":21,"w":93,"h":75}, "spriteSourceSize": {"x":2,"y":21,"w":93,"h":75},
@ -642,7 +650,7 @@
}, },
"sprites/blueprints/underground_belt_exit-tier2.png": "sprites/blueprints/underground_belt_exit-tier2.png":
{ {
"frame": {"x":320,"y":1189,"w":94,"h":75}, "frame": {"x":351,"y":1182,"w":94,"h":75},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":94,"h":75}, "spriteSourceSize": {"x":2,"y":0,"w":94,"h":75},
@ -650,7 +658,7 @@
}, },
"sprites/blueprints/underground_belt_exit.png": "sprites/blueprints/underground_belt_exit.png":
{ {
"frame": {"x":883,"y":1387,"w":93,"h":75}, "frame": {"x":787,"y":1402,"w":93,"h":75},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":93,"h":75}, "spriteSourceSize": {"x":2,"y":0,"w":93,"h":75},
@ -658,7 +666,7 @@
}, },
"sprites/blueprints/virtual_processor-painter.png": "sprites/blueprints/virtual_processor-painter.png":
{ {
"frame": {"x":804,"y":799,"w":87,"h":96}, "frame": {"x":804,"y":900,"w":87,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":87,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":87,"h":96},
@ -666,7 +674,7 @@
}, },
"sprites/blueprints/virtual_processor-rotater.png": "sprites/blueprints/virtual_processor-rotater.png":
{ {
"frame": {"x":897,"y":950,"w":96,"h":94}, "frame": {"x":466,"y":923,"w":96,"h":94},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":96,"h":94}, "spriteSourceSize": {"x":0,"y":2,"w":96,"h":94},
@ -674,7 +682,7 @@
}, },
"sprites/blueprints/virtual_processor-stacker.png": "sprites/blueprints/virtual_processor-stacker.png":
{ {
"frame": {"x":555,"y":1128,"w":87,"h":96}, "frame": {"x":557,"y":1224,"w":87,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":87,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":87,"h":96},
@ -698,7 +706,7 @@
}, },
"sprites/blueprints/wire_tunnel.png": "sprites/blueprints/wire_tunnel.png":
{ {
"frame": {"x":685,"y":1288,"w":93,"h":91}, "frame": {"x":550,"y":1326,"w":93,"h":91},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":93,"h":91}, "spriteSourceSize": {"x":2,"y":2,"w":93,"h":91},
@ -706,7 +714,7 @@
}, },
"sprites/buildings/analyzer.png": "sprites/buildings/analyzer.png":
{ {
"frame": {"x":897,"y":848,"w":96,"h":96}, "frame": {"x":898,"y":848,"w":96,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96},
@ -714,7 +722,7 @@
}, },
"sprites/buildings/balancer-merger-inverse.png": "sprites/buildings/balancer-merger-inverse.png":
{ {
"frame": {"x":6,"y":1193,"w":94,"h":91}, "frame": {"x":790,"y":1305,"w":94,"h":91},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":94,"h":91}, "spriteSourceSize": {"x":0,"y":2,"w":94,"h":91},
@ -722,7 +730,7 @@
}, },
"sprites/buildings/balancer-merger.png": "sprites/buildings/balancer-merger.png":
{ {
"frame": {"x":784,"y":1292,"w":93,"h":91}, "frame": {"x":688,"y":1373,"w":93,"h":91},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":2,"w":93,"h":91}, "spriteSourceSize": {"x":3,"y":2,"w":93,"h":91},
@ -730,7 +738,7 @@
}, },
"sprites/buildings/balancer-splitter-inverse.png": "sprites/buildings/balancer-splitter-inverse.png":
{ {
"frame": {"x":180,"y":1141,"w":95,"h":91}, "frame": {"x":895,"y":1256,"w":95,"h":91},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":95,"h":91}, "spriteSourceSize": {"x":0,"y":2,"w":95,"h":91},
@ -738,7 +746,7 @@
}, },
"sprites/buildings/balancer-splitter.png": "sprites/buildings/balancer-splitter.png":
{ {
"frame": {"x":144,"y":1238,"w":93,"h":91}, "frame": {"x":6,"y":1193,"w":93,"h":91},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":2,"w":93,"h":91}, "spriteSourceSize": {"x":3,"y":2,"w":93,"h":91},
@ -754,7 +762,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":203,"y":1372,"w":87,"h":87}, "frame": {"x":103,"y":1466,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":9,"w":87,"h":87},
@ -762,7 +770,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":383,"y":1504,"w":87,"h":87}, "frame": {"x":6,"y":1673,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":87,"h":87}, "spriteSourceSize": {"x":9,"y":9,"w":87,"h":87},
@ -778,7 +786,7 @@
}, },
"sprites/buildings/comparator.png": "sprites/buildings/comparator.png":
{ {
"frame": {"x":694,"y":1002,"w":96,"h":89}, "frame": {"x":180,"y":1078,"w":96,"h":89},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":89}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":89},
@ -810,7 +818,7 @@
}, },
"sprites/buildings/display.png": "sprites/buildings/display.png":
{ {
"frame": {"x":258,"y":1651,"w":84,"h":90}, "frame": {"x":561,"y":1128,"w":84,"h":90},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":84,"h":90}, "spriteSourceSize": {"x":6,"y":6,"w":84,"h":90},
@ -832,6 +840,14 @@
"spriteSourceSize": {"x":9,"y":10,"w":366,"h":367}, "spriteSourceSize": {"x":9,"y":10,"w":366,"h":367},
"sourceSize": {"w":384,"h":384} "sourceSize": {"w":384,"h":384}
}, },
"sprites/buildings/item_producer.png":
{
"frame": {"x":201,"y":1432,"w":87,"h":95},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":87,"h":95},
"sourceSize": {"w":96,"h":96}
},
"sprites/buildings/lever.png": "sprites/buildings/lever.png":
{ {
"frame": {"x":108,"y":1074,"w":66,"h":77}, "frame": {"x":108,"y":1074,"w":66,"h":77},
@ -842,7 +858,7 @@
}, },
"sprites/buildings/logic_gate-not.png": "sprites/buildings/logic_gate-not.png":
{ {
"frame": {"x":563,"y":1026,"w":82,"h":96}, "frame": {"x":99,"y":1838,"w":82,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":82,"h":96}, "spriteSourceSize": {"x":8,"y":0,"w":82,"h":96},
@ -850,7 +866,7 @@
}, },
"sprites/buildings/logic_gate-or.png": "sprites/buildings/logic_gate-or.png":
{ {
"frame": {"x":693,"y":1097,"w":96,"h":83}, "frame": {"x":694,"y":995,"w":96,"h":83},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":83}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":83},
@ -858,7 +874,7 @@
}, },
"sprites/buildings/logic_gate-xor.png": "sprites/buildings/logic_gate-xor.png":
{ {
"frame": {"x":694,"y":901,"w":96,"h":95}, "frame": {"x":466,"y":822,"w":96,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":95}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":95},
@ -866,7 +882,7 @@
}, },
"sprites/buildings/logic_gate.png": "sprites/buildings/logic_gate.png":
{ {
"frame": {"x":897,"y":1050,"w":96,"h":88}, "frame": {"x":694,"y":901,"w":96,"h":88},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":88}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":88},
@ -874,7 +890,7 @@
}, },
"sprites/buildings/miner-chainable.png": "sprites/buildings/miner-chainable.png":
{ {
"frame": {"x":733,"y":1389,"w":91,"h":95}, "frame": {"x":104,"y":1365,"w":91,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95},
@ -882,7 +898,7 @@
}, },
"sprites/buildings/miner.png": "sprites/buildings/miner.png":
{ {
"frame": {"x":830,"y":1468,"w":91,"h":95}, "frame": {"x":6,"y":1386,"w":91,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95},
@ -930,7 +946,7 @@
}, },
"sprites/buildings/reader.png": "sprites/buildings/reader.png":
{ {
"frame": {"x":796,"y":1003,"w":95,"h":96}, "frame": {"x":897,"y":1052,"w":95,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96},
@ -938,7 +954,7 @@
}, },
"sprites/buildings/rotater-ccw.png": "sprites/buildings/rotater-ccw.png":
{ {
"frame": {"x":353,"y":1087,"w":95,"h":96}, "frame": {"x":796,"y":1104,"w":95,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96},
@ -946,7 +962,7 @@
}, },
"sprites/buildings/rotater-rotate180.png": "sprites/buildings/rotater-rotate180.png":
{ {
"frame": {"x":454,"y":1114,"w":95,"h":96}, "frame": {"x":693,"y":1172,"w":95,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96},
@ -954,7 +970,7 @@
}, },
"sprites/buildings/rotater.png": "sprites/buildings/rotater.png":
{ {
"frame": {"x":690,"y":1186,"w":95,"h":96}, "frame": {"x":897,"y":1154,"w":95,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96},
@ -994,7 +1010,7 @@
}, },
"sprites/buildings/trash.png": "sprites/buildings/trash.png":
{ {
"frame": {"x":364,"y":822,"w":96,"h":96}, "frame": {"x":897,"y":950,"w":96,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96},
@ -1002,7 +1018,7 @@
}, },
"sprites/buildings/underground_belt_entry-tier2.png": "sprites/buildings/underground_belt_entry-tier2.png":
{ {
"frame": {"x":537,"y":1332,"w":92,"h":83}, "frame": {"x":203,"y":1263,"w":92,"h":83},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":13,"w":92,"h":83}, "spriteSourceSize": {"x":3,"y":13,"w":92,"h":83},
@ -1010,7 +1026,7 @@
}, },
"sprites/buildings/underground_belt_entry.png": "sprites/buildings/underground_belt_entry.png":
{ {
"frame": {"x":105,"y":1335,"w":92,"h":74}, "frame": {"x":301,"y":1263,"w":92,"h":74},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":22,"w":92,"h":74}, "spriteSourceSize": {"x":3,"y":22,"w":92,"h":74},
@ -1018,7 +1034,7 @@
}, },
"sprites/buildings/underground_belt_exit-tier2.png": "sprites/buildings/underground_belt_exit-tier2.png":
{ {
"frame": {"x":6,"y":1380,"w":92,"h":74}, "frame": {"x":301,"y":1343,"w":92,"h":74},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74},
@ -1026,7 +1042,7 @@
}, },
"sprites/buildings/underground_belt_exit.png": "sprites/buildings/underground_belt_exit.png":
{ {
"frame": {"x":635,"y":1385,"w":92,"h":74}, "frame": {"x":203,"y":1352,"w":92,"h":74},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74},
@ -1034,7 +1050,7 @@
}, },
"sprites/buildings/virtual_processor-painter.png": "sprites/buildings/virtual_processor-painter.png":
{ {
"frame": {"x":553,"y":1230,"w":87,"h":96}, "frame": {"x":399,"y":1343,"w":87,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":87,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":87,"h":96},
@ -1050,7 +1066,7 @@
}, },
"sprites/buildings/virtual_processor-stacker.png": "sprites/buildings/virtual_processor-stacker.png":
{ {
"frame": {"x":927,"y":1468,"w":87,"h":96}, "frame": {"x":301,"y":1423,"w":87,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":87,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":87,"h":96},
@ -1058,7 +1074,7 @@
}, },
"sprites/buildings/virtual_processor-unstacker.png": "sprites/buildings/virtual_processor-unstacker.png":
{ {
"frame": {"x":183,"y":876,"w":96,"h":96}, "frame": {"x":364,"y":822,"w":96,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96},
@ -1074,7 +1090,7 @@
}, },
"sprites/buildings/wire_tunnel.png": "sprites/buildings/wire_tunnel.png":
{ {
"frame": {"x":439,"y":1315,"w":92,"h":90}, "frame": {"x":6,"y":1290,"w":92,"h":90},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":3,"w":92,"h":90}, "spriteSourceSize": {"x":3,"y":3,"w":92,"h":90},
@ -1114,7 +1130,7 @@
}, },
"sprites/colors/red.png": "sprites/colors/red.png":
{ {
"frame": {"x":651,"y":1051,"w":36,"h":34}, "frame": {"x":652,"y":1051,"w":36,"h":34},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":36,"h":34}, "spriteSourceSize": {"x":0,"y":2,"w":36,"h":34},
@ -1122,7 +1138,7 @@
}, },
"sprites/colors/uncolored.png": "sprites/colors/uncolored.png":
{ {
"frame": {"x":651,"y":1091,"w":36,"h":34}, "frame": {"x":652,"y":1091,"w":36,"h":34},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":36,"h":34}, "spriteSourceSize": {"x":0,"y":2,"w":36,"h":34},
@ -1130,7 +1146,7 @@
}, },
"sprites/colors/white.png": "sprites/colors/white.png":
{ {
"frame": {"x":648,"y":1131,"w":36,"h":34}, "frame": {"x":651,"y":1131,"w":36,"h":34},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":36,"h":34}, "spriteSourceSize": {"x":0,"y":2,"w":36,"h":34},
@ -1138,7 +1154,7 @@
}, },
"sprites/colors/yellow.png": "sprites/colors/yellow.png":
{ {
"frame": {"x":648,"y":1171,"w":36,"h":34}, "frame": {"x":651,"y":1171,"w":36,"h":34},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":36,"h":34}, "spriteSourceSize": {"x":0,"y":2,"w":36,"h":34},
@ -1162,7 +1178,7 @@
}, },
"sprites/misc/hub_direction_indicator.png": "sprites/misc/hub_direction_indicator.png":
{ {
"frame": {"x":646,"y":1328,"w":32,"h":32}, "frame": {"x":649,"y":1406,"w":32,"h":32},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
@ -1194,7 +1210,7 @@
}, },
"sprites/misc/slot_bad_arrow.png": "sprites/misc/slot_bad_arrow.png":
{ {
"frame": {"x":993,"y":1239,"w":24,"h":24}, "frame": {"x":321,"y":1202,"w":24,"h":24},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":24,"h":24}, "spriteSourceSize": {"x":1,"y":1,"w":24,"h":24},
@ -1202,7 +1218,7 @@
}, },
"sprites/misc/slot_good_arrow.png": "sprites/misc/slot_good_arrow.png":
{ {
"frame": {"x":993,"y":1207,"w":24,"h":26}, "frame": {"x":321,"y":1170,"w":24,"h":26},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":24,"h":26}, "spriteSourceSize": {"x":1,"y":0,"w":24,"h":26},
@ -1226,7 +1242,7 @@
}, },
"sprites/wires/boolean_false.png": "sprites/wires/boolean_false.png":
{ {
"frame": {"x":993,"y":1269,"w":21,"h":28}, "frame": {"x":996,"y":1256,"w":21,"h":28},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":3,"w":21,"h":28}, "spriteSourceSize": {"x":6,"y":3,"w":21,"h":28},
@ -1242,7 +1258,7 @@
}, },
"sprites/wires/display/blue.png": "sprites/wires/display/blue.png":
{ {
"frame": {"x":648,"y":1211,"w":33,"h":33}, "frame": {"x":651,"y":1211,"w":33,"h":33},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":33}, "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
@ -1250,7 +1266,7 @@
}, },
"sprites/wires/display/cyan.png": "sprites/wires/display/cyan.png":
{ {
"frame": {"x":282,"y":1132,"w":33,"h":33}, "frame": {"x":650,"y":1250,"w":33,"h":33},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":33}, "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
@ -1258,7 +1274,7 @@
}, },
"sprites/wires/display/green.png": "sprites/wires/display/green.png":
{ {
"frame": {"x":281,"y":1171,"w":33,"h":33}, "frame": {"x":650,"y":1289,"w":33,"h":33},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":33}, "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
@ -1266,7 +1282,7 @@
}, },
"sprites/wires/display/purple.png": "sprites/wires/display/purple.png":
{ {
"frame": {"x":108,"y":1157,"w":33,"h":33}, "frame": {"x":282,"y":1132,"w":33,"h":33},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":33}, "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
@ -1274,7 +1290,7 @@
}, },
"sprites/wires/display/red.png": "sprites/wires/display/red.png":
{ {
"frame": {"x":281,"y":1210,"w":33,"h":33}, "frame": {"x":282,"y":1171,"w":33,"h":33},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":33}, "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
@ -1282,7 +1298,7 @@
}, },
"sprites/wires/display/white.png": "sprites/wires/display/white.png":
{ {
"frame": {"x":646,"y":1250,"w":33,"h":33}, "frame": {"x":649,"y":1328,"w":33,"h":33},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":33}, "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
@ -1290,7 +1306,7 @@
}, },
"sprites/wires/display/yellow.png": "sprites/wires/display/yellow.png":
{ {
"frame": {"x":646,"y":1289,"w":33,"h":33}, "frame": {"x":649,"y":1367,"w":33,"h":33},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":33}, "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
@ -1322,7 +1338,7 @@
}, },
"sprites/wires/network_conflict.png": "sprites/wires/network_conflict.png":
{ {
"frame": {"x":106,"y":1234,"w":32,"h":30}, "frame": {"x":279,"y":1210,"w":32,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":1,"w":32,"h":30}, "spriteSourceSize": {"x":0,"y":1,"w":32,"h":30},
@ -1330,7 +1346,7 @@
}, },
"sprites/wires/network_empty.png": "sprites/wires/network_empty.png":
{ {
"frame": {"x":420,"y":1189,"w":28,"h":32}, "frame": {"x":146,"y":1157,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":3,"y":0,"w":28,"h":32},
@ -1346,7 +1362,7 @@
}, },
"sprites/wires/sets/conflict_cross.png": "sprites/wires/sets/conflict_cross.png":
{ {
"frame": {"x":6,"y":889,"w":96,"h":96}, "frame": {"x":183,"y":876,"w":96,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96},
@ -1354,7 +1370,7 @@
}, },
"sprites/wires/sets/conflict_forward.png": "sprites/wires/sets/conflict_forward.png":
{ {
"frame": {"x":999,"y":848,"w":18,"h":96}, "frame": {"x":1000,"y":848,"w":18,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":39,"y":0,"w":18,"h":96}, "spriteSourceSize": {"x":39,"y":0,"w":18,"h":96},
@ -1362,7 +1378,7 @@
}, },
"sprites/wires/sets/conflict_split.png": "sprites/wires/sets/conflict_split.png":
{ {
"frame": {"x":897,"y":1144,"w":96,"h":57}, "frame": {"x":459,"y":1118,"w":96,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":39,"w":96,"h":57}, "spriteSourceSize": {"x":0,"y":39,"w":96,"h":57},
@ -1378,7 +1394,7 @@
}, },
"sprites/wires/sets/first_cross.png": "sprites/wires/sets/first_cross.png":
{ {
"frame": {"x":6,"y":991,"w":96,"h":96}, "frame": {"x":6,"y":889,"w":96,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96},
@ -1394,7 +1410,7 @@
}, },
"sprites/wires/sets/first_split.png": "sprites/wires/sets/first_split.png":
{ {
"frame": {"x":357,"y":1024,"w":96,"h":57}, "frame": {"x":353,"y":1119,"w":96,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":39,"w":96,"h":57}, "spriteSourceSize": {"x":0,"y":39,"w":96,"h":57},
@ -1410,7 +1426,7 @@
}, },
"sprites/wires/sets/second_cross.png": "sprites/wires/sets/second_cross.png":
{ {
"frame": {"x":466,"y":822,"w":96,"h":96}, "frame": {"x":6,"y":991,"w":96,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96},
@ -1418,7 +1434,7 @@
}, },
"sprites/wires/sets/second_forward.png": "sprites/wires/sets/second_forward.png":
{ {
"frame": {"x":999,"y":1052,"w":18,"h":96}, "frame": {"x":998,"y":1052,"w":18,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":39,"y":0,"w":18,"h":96}, "spriteSourceSize": {"x":39,"y":0,"w":18,"h":96},
@ -1426,7 +1442,7 @@
}, },
"sprites/wires/sets/second_split.png": "sprites/wires/sets/second_split.png":
{ {
"frame": {"x":180,"y":1078,"w":96,"h":57}, "frame": {"x":455,"y":1181,"w":96,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":39,"w":96,"h":57}, "spriteSourceSize": {"x":0,"y":39,"w":96,"h":57},
@ -1442,7 +1458,7 @@
}, },
"sprites/wires/wires_preview.png": "sprites/wires/wires_preview.png":
{ {
"frame": {"x":106,"y":1196,"w":32,"h":32}, "frame": {"x":108,"y":1157,"w":32,"h":32},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
@ -1455,6 +1471,6 @@
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":1024,"h":2048}, "size": {"w":1024,"h":2048},
"scale": "0.5", "scale": "0.5",
"smartupdate": "$TexturePacker:SmartUpdate:19330d11a27d320d8e46be8f211ea26a:6c32332cb8456652726098bfd11407a1:908b89f5ca8ff73e331a35a3b14d0604$" "smartupdate": "$TexturePacker:SmartUpdate:a1c027d325ef1c92a9318164b1241662:a9c9c3627ec9506697a7e24a7a287d67:908b89f5ca8ff73e331a35a3b14d0604$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 KiB

After

Width:  |  Height:  |  Size: 723 KiB

View File

@ -268,6 +268,7 @@
<key type="filename">sprites/blueprints/comparator.png</key> <key type="filename">sprites/blueprints/comparator.png</key>
<key type="filename">sprites/blueprints/constant_signal.png</key> <key type="filename">sprites/blueprints/constant_signal.png</key>
<key type="filename">sprites/blueprints/display.png</key> <key type="filename">sprites/blueprints/display.png</key>
<key type="filename">sprites/blueprints/item_producer.png</key>
<key type="filename">sprites/blueprints/lever.png</key> <key type="filename">sprites/blueprints/lever.png</key>
<key type="filename">sprites/blueprints/logic_gate-not.png</key> <key type="filename">sprites/blueprints/logic_gate-not.png</key>
<key type="filename">sprites/blueprints/logic_gate-or.png</key> <key type="filename">sprites/blueprints/logic_gate-or.png</key>
@ -300,6 +301,7 @@
<key type="filename">sprites/buildings/comparator.png</key> <key type="filename">sprites/buildings/comparator.png</key>
<key type="filename">sprites/buildings/constant_signal.png</key> <key type="filename">sprites/buildings/constant_signal.png</key>
<key type="filename">sprites/buildings/display.png</key> <key type="filename">sprites/buildings/display.png</key>
<key type="filename">sprites/buildings/item_producer.png</key>
<key type="filename">sprites/buildings/lever.png</key> <key type="filename">sprites/buildings/lever.png</key>
<key type="filename">sprites/buildings/logic_gate-not.png</key> <key type="filename">sprites/buildings/logic_gate-not.png</key>
<key type="filename">sprites/buildings/logic_gate-or.png</key> <key type="filename">sprites/buildings/logic_gate-or.png</key>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -1,6 +1,6 @@
#ingame_HUD_BlueprintPlacer { #ingame_HUD_BlueprintPlacer {
position: absolute; position: absolute;
@include S(top, 50px); @include S(top, 70px);
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
color: #333; color: #333;
@ -13,6 +13,7 @@
@include S(width, 120px); @include S(width, 120px);
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@include S(border-radius, $globalBorderRadius);
.label { .label {
@include PlainText; @include PlainText;

View File

@ -0,0 +1,23 @@
#ingame_HUD_CatMemes {
position: absolute;
@include S(width, 150px);
@include S(height, 150px);
background: transparent center center / contain no-repeat;
right: 0;
@include S(bottom, 150px);
& {
/* @load-async */
background-image: uiResource("res/ui/memes/cat1.png") !important;
}
@include InlineAnimation(0.5s ease-in-out) {
0% {
transform: translateX(100%);
}
100% {
transform: none;
}
}
}

View File

@ -180,11 +180,13 @@
} }
.ingameItemChooser { .ingameItemChooser {
@include S(margin, 20px, 0); @include S(margin, 10px, 0);
display: grid; display: grid;
grid-auto-flow: column;
grid-auto-columns: 1fr;
@include S(grid-column-gap, 3px); @include S(grid-column-gap, 3px);
@include S(grid-row-gap, 5px);
grid-template-columns: repeat(10, 1fr);
align-items: center;
justify-items: center;
canvas { canvas {
pointer-events: all; pointer-events: all;

View File

@ -0,0 +1,169 @@
#ingame_HUD_StandaloneAdvantages {
.content {
@include S(width, 440px);
@include S(min-height, 300px);
}
p {
@include PlainText;
}
.points {
display: grid;
grid-template-columns: 1fr 1fr;
@include S(grid-column-gap, 10px);
@include S(grid-row-gap, 20px);
@include S(margin, 10px, 0, 20px);
grid-template-rows: #{D(40px)};
align-items: center;
}
.lowerBar {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
overflow: hidden;
> button {
transition: opacity 0.12s ease-in-out;
&:hover {
opacity: 0.85;
}
}
.otherCloseButton {
@include SuperSmallText;
@include S(margin-right, 30px);
color: #aaa;
@include S(margin, 0);
@include IncreasedClickArea(0px);
@include S(margin-top, 15px);
@include InlineAnimation(5s ease-in-out) {
0% {
opacity: 0.05;
}
50% {
opacity: 0.05;
}
100% {
opacity: 1;
}
}
}
.steamLinkButton {
@include IncreasedClickArea(5px);
@include S(margin, 0);
@include S(width, 180px);
@include S(height, 40px);
background: #171a23 center center / contain no-repeat;
@include S(border-radius, $globalBorderRadius);
}
}
.point {
display: grid;
grid-template-columns: #{D(55px)} auto;
grid-template-rows: 1fr 1fr;
> strong {
grid-column: 2 / 3;
grid-row: 1 / 2;
@include PlainText;
text-transform: uppercase;
font-weight: bold;
}
> p {
grid-column: 2 / 3;
grid-row: 2 / 3;
@include SuperSmallText;
opacity: 0.8;
}
background: transparent #{D(10px)} center / #{D(30px)} no-repeat;
&.levels {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_new_levels.png");
}
> strong {
color: #f13555;
}
}
&.upgrades {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_upgrades.png");
}
> strong {
color: #8a00ff;
}
}
&.buildings {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_buildings.png");
}
> strong {
color: #3fce8b;
}
}
&.wires {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_wires.png");
}
> strong {
color: #ef2fdb;
}
}
&.markers {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_markers.png");
}
> strong {
color: #4294ff;
}
}
&.savegames {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_savegames.png");
}
> strong {
color: #ff9500;
}
}
&.darkmode {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_dark_mode.png");
}
> strong {
color: #292c32;
}
}
&.support {
& {
/* @load-async */
background-image: uiResource("res/ui/icons/advantage_support.png");
}
> strong {
color: #e72d2d;
}
}
}
}

View File

@ -1,22 +1,85 @@
#ingame_HUD_Watermark { #ingame_HUD_Watermark {
position: absolute; position: absolute;
& {
/* @load-async */
background: uiResource("get_on_steam.png") center center / contain no-repeat;
}
@include S(width, 110px); @include S(border-radius, $globalBorderRadius);
@include S(height, 40px); @include S(top, 70px);
@include S(top, 10px);
pointer-events: all; pointer-events: all;
cursor: pointer; cursor: pointer;
@include S(left, 160px); left: 50%;
text-align: center;
background: rgba(207, 65, 65, 0.8);
color: #fff;
transform: translateX(-50%);
@include PlainText;
@include S(padding, 10px);
&:hover {
transform: translateX(-50%) scale(1.02) !important;
}
> strong {
@include PlainText;
text-transform: uppercase;
}
> p {
@include SuperSmallText;
opacity: 0.7;
}
opacity: 0;
&.visible {
@include InlineAnimation(0.5s ease-in-out) {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
opacity: 1;
}
&:not(.visible) {
@include InlineAnimation(0.5s ease-in-out) {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
}
}
#ingame_HUD_WatermarkClicker {
@include S(top, 55px);
position: absolute;
left: 50%;
transform: translateX(-50%) !important;
@include SuperSmallText;
color: $colorBlueBright;
text-transform: uppercase;
pointer-events: all;
cursor: pointer;
display: flex;
align-items: center;
transition: all 0.12s ease-in;
transition-property: opacity, transform;
transform: skewX(-0.5deg);
&:hover { &:hover {
transform: skewX(-1deg) scale(1.02);
opacity: 0.9; opacity: 0.9;
} }
&::after {
@include S(margin-left, 4px);
content: "";
@include S(width, 10px);
@include S(height, 10px);
display: inline-flex;
background: center center / contain no-repeat;
& {
/* @load-async */
background-image: uiResource("res/ui/icons/demo_steam_link_indicator.png");
}
}
} }

View File

@ -52,6 +52,8 @@
@import "ingame_hud/color_blind_helper"; @import "ingame_hud/color_blind_helper";
@import "ingame_hud/shape_viewer"; @import "ingame_hud/shape_viewer";
@import "ingame_hud/sandbox_controller"; @import "ingame_hud/sandbox_controller";
@import "ingame_hud/standalone_advantages";
@import "ingame_hud/cat_memes";
// prettier-ignore // prettier-ignore
$elements: $elements:
@ -73,10 +75,11 @@ ingame_HUD_DebugInfo,
ingame_HUD_EntityDebugger, ingame_HUD_EntityDebugger,
ingame_HUD_InteractiveTutorial, ingame_HUD_InteractiveTutorial,
ingame_HUD_TutorialHints, ingame_HUD_TutorialHints,
ingame_HUD_buildings_toolbar, ingame_HUD_BuildingsToolbar,
ingame_HUD_wires_toolbar, ingame_HUD_wires_toolbar,
ingame_HUD_BlueprintPlacer, ingame_HUD_BlueprintPlacer,
ingame_HUD_Waypoints_Hint, ingame_HUD_Waypoints_Hint,
ingame_HUD_WatermarkClicker,
ingame_HUD_Watermark, ingame_HUD_Watermark,
ingame_HUD_ColorBlindBelowTileHelper, ingame_HUD_ColorBlindBelowTileHelper,
ingame_HUD_SandboxController, ingame_HUD_SandboxController,
@ -88,9 +91,11 @@ ingame_HUD_BetaOverlay,
ingame_HUD_Shop, ingame_HUD_Shop,
ingame_HUD_Statistics, ingame_HUD_Statistics,
ingame_HUD_ShapeViewer, ingame_HUD_ShapeViewer,
ingame_HUD_StandaloneAdvantages,
ingame_HUD_UnlockNotification, ingame_HUD_UnlockNotification,
ingame_HUD_SettingsMenu, ingame_HUD_SettingsMenu,
ingame_HUD_ModalDialogs; ingame_HUD_ModalDialogs,
ingame_HUD_CatMemes;
$zindex: 100; $zindex: 100;

View File

@ -1,6 +1,6 @@
$buildings: belt, cutter, miner, mixer, painter, rotater, balancer, stacker, trash, underground_belt, wire, $buildings: belt, cutter, miner, mixer, painter, rotater, balancer, stacker, trash, underground_belt, wire,
constant_signal, logic_gate, lever, filter, wire_tunnel, display, virtual_processor, reader, storage, constant_signal, logic_gate, lever, filter, wire_tunnel, display, virtual_processor, reader, storage,
transistor, analyzer, comparator; transistor, analyzer, comparator, item_producer;
@each $building in $buildings { @each $building in $buildings {
[data-icon="building_icons/#{$building}.png"] { [data-icon="building_icons/#{$building}.png"] {
@ -12,7 +12,7 @@ $buildings: belt, cutter, miner, mixer, painter, rotater, balancer, stacker, tra
$buildingsAndVariants: belt, balancer, underground_belt, underground_belt-tier2, miner, miner-chainable, $buildingsAndVariants: belt, balancer, underground_belt, underground_belt-tier2, miner, miner-chainable,
cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer, painter-double, painter-quad, trash, storage, cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer, painter-double, painter-quad, trash, storage,
reader, rotater-rotate180, display, constant_signal, wire, wire_tunnel, logic_gate-or, logic_gate-not, reader, rotater-rotate180, display, constant_signal, wire, wire_tunnel, logic_gate-or, logic_gate-not,
logic_gate-xor, analyzer, virtual_processor-rotater, virtual_processor-unstacker, logic_gate-xor, analyzer, virtual_processor-rotater, virtual_processor-unstacker, item_producer,
virtual_processor-stacker, virtual_processor-painter, wire-second, painter, painter-mirrored, comparator; virtual_processor-stacker, virtual_processor-painter, wire-second, painter, painter-mirrored, comparator;
@each $building in $buildingsAndVariants { @each $building in $buildingsAndVariants {
[data-icon="building_tutorials/#{$building}.png"] { [data-icon="building_tutorials/#{$building}.png"] {
@ -75,3 +75,17 @@ $languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW
background-image: uiResource("languages/#{$language}.svg") !important; background-image: uiResource("languages/#{$language}.svg") !important;
} }
} }
/*
PRICE
*/
.steam_1_pr {
/* @load-async */
background-image: uiResource("get_on_steam_with_price.png") !important;
}
.steam_2_npr {
/* @load-async */
background-image: uiResource("get_on_steam.png") !important;
}

View File

@ -133,10 +133,7 @@
width: 100%; width: 100%;
@include S(height, 40px); @include S(height, 40px);
@include S(width, 180px); @include S(width, 180px);
& { background: #171a23 center center / contain no-repeat;
/* @load-async */
background: #171a23 uiResource("get_on_steam.png") center center / contain no-repeat;
}
overflow: hidden; overflow: hidden;
display: block; display: block;
text-indent: -999em; text-indent: -999em;

View File

@ -6,14 +6,6 @@ export const CHANGELOG = [
"⚠This update is HUGE, view the full changelog <a href='https://shapez.io/wires/' target='_blank'>here</a>! ⚠️⚠️", "⚠This update is HUGE, view the full changelog <a href='https://shapez.io/wires/' target='_blank'>here</a>! ⚠️⚠️",
], ],
}, },
{
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)",
"I'm still working on the wires update, I hope to release it mid july!",
],
},
{ {
version: "1.1.18", version: "1.1.18",
date: "27.06.2020", date: "27.06.2020",

View File

@ -25,6 +25,8 @@ export const THIRDPARTY_URLS = {
standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/", standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/",
}; };
export const A_B_TESTING_LINK_TYPE = Math.random() > 0.5 ? "steam_1_pr" : "steam_2_npr";
export const globalConfig = { export const globalConfig = {
// Size of a single tile in Pixels. // Size of a single tile in Pixels.
// NOTICE: Update webpack.production.config too! // NOTICE: Update webpack.production.config too!

View File

@ -23,7 +23,7 @@ export class MetaFilterBuilding extends MetaBuilding {
* @param {GameRoot} root * @param {GameRoot} root
*/ */
getIsUnlocked(root) { getIsUnlocked(root) {
return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_filters_and_levers); return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_filter);
} }
getDimensions() { getDimensions() {

View File

@ -0,0 +1,44 @@
import { enumDirection, Vector } from "../../core/vector";
import { ItemEjectorComponent } from "../components/item_ejector";
import { ItemProducerComponent } from "../components/item_producer";
import { enumPinSlotType, WiredPinsComponent } from "../components/wired_pins";
import { Entity } from "../entity";
import { MetaBuilding } from "../meta_building";
export class MetaItemProducerBuilding extends MetaBuilding {
constructor() {
super("item_producer");
}
getSilhouetteColor() {
return "#b37dcd";
}
getShowWiresLayerPreview() {
return true;
}
/**
* Creates the entity at the given location
* @param {Entity} entity
*/
setupEntityComponents(entity) {
entity.addComponent(
new ItemEjectorComponent({
slots: [{ pos: new Vector(0, 0), direction: enumDirection.top }],
})
);
entity.addComponent(
new WiredPinsComponent({
slots: [
{
pos: new Vector(0, 0),
type: enumPinSlotType.logicalAcceptor,
direction: enumDirection.bottom,
},
],
})
);
entity.addComponent(new ItemProducerComponent());
}
}

View File

@ -20,7 +20,7 @@ export class MetaLeverBuilding extends MetaBuilding {
* @param {GameRoot} root * @param {GameRoot} root
*/ */
getIsUnlocked(root) { getIsUnlocked(root) {
return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_filters_and_levers); return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers);
} }
getDimensions() { getDimensions() {

View File

@ -71,7 +71,7 @@ export class MetaPainterBuilding extends MetaBuilding {
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_double)) { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_double)) {
variants.push(enumPainterVariants.double); variants.push(enumPainterVariants.double);
} }
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_quad)) { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers)) {
variants.push(enumPainterVariants.quad); variants.push(enumPainterVariants.quad);
} }
return variants; return variants;

View File

@ -4,6 +4,7 @@ import { WiredPinsComponent, enumPinSlotType } from "../components/wired_pins";
import { Entity } from "../entity"; import { Entity } from "../entity";
import { defaultBuildingVariant, MetaBuilding } from "../meta_building"; import { defaultBuildingVariant, MetaBuilding } from "../meta_building";
import { GameRoot } from "../root"; import { GameRoot } from "../root";
import { enumHubGoalRewards } from "../tutorial_goals";
import { MetaCutterBuilding } from "./cutter"; import { MetaCutterBuilding } from "./cutter";
import { MetaPainterBuilding } from "./painter"; import { MetaPainterBuilding } from "./painter";
import { MetaRotaterBuilding } from "./rotater"; import { MetaRotaterBuilding } from "./rotater";
@ -47,8 +48,7 @@ export class MetaVirtualProcessorBuilding extends MetaBuilding {
* @param {GameRoot} root * @param {GameRoot} root
*/ */
getIsUnlocked(root) { getIsUnlocked(root) {
// @todo return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_virtual_processing);
return true;
} }
/** @returns {"wires"} **/ /** @returns {"wires"} **/

View File

@ -82,7 +82,7 @@ export class MetaWireBuilding extends MetaBuilding {
* @param {GameRoot} root * @param {GameRoot} root
*/ */
getIsUnlocked(root) { getIsUnlocked(root) {
return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_filters_and_levers); return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers);
} }
/** /**

View File

@ -21,7 +21,7 @@ export class MetaWireTunnelBuilding extends MetaBuilding {
* @param {GameRoot} root * @param {GameRoot} root
*/ */
getIsUnlocked(root) { getIsUnlocked(root) {
return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_filters_and_levers); return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers);
} }
/** /**

View File

@ -353,7 +353,7 @@ export class Camera extends BasicSerializableObject {
.add(() => (this.desiredZoom = this.zoomLevel * 1.2)); .add(() => (this.desiredZoom = this.zoomLevel * 1.2));
mapper mapper
.getBinding(KEYMAPPINGS.navigation.mapZoomOut) .getBinding(KEYMAPPINGS.navigation.mapZoomOut)
.add(() => (this.desiredZoom = this.zoomLevel * 0.8)); .add(() => (this.desiredZoom = this.zoomLevel / 1.2));
mapper.getBinding(KEYMAPPINGS.navigation.centerMap).add(() => this.centerOnMap()); mapper.getBinding(KEYMAPPINGS.navigation.centerMap).add(() => this.centerOnMap());
} }
@ -502,10 +502,10 @@ export class Camera extends BasicSerializableObject {
} }
const prevZoom = this.zoomLevel; const prevZoom = this.zoomLevel;
const delta = Math.sign(event.deltaY) * -0.15 * this.root.app.settings.getScrollWheelSensitivity(); const scale = 1 + 0.15 * this.root.app.settings.getScrollWheelSensitivity();
assert(Number.isFinite(delta), "Got invalid delta in mouse wheel event: " + event.deltaY); assert(Number.isFinite(scale), "Got invalid scale in mouse wheel event: " + event.deltaY);
assert(Number.isFinite(this.zoomLevel), "Got invalid zoom level *before* wheel: " + this.zoomLevel); assert(Number.isFinite(this.zoomLevel), "Got invalid zoom level *before* wheel: " + this.zoomLevel);
this.zoomLevel *= 1 + delta; this.zoomLevel *= event.deltaY < 0 ? scale : 1 / scale;
assert(Number.isFinite(this.zoomLevel), "Got invalid zoom level *after* wheel: " + this.zoomLevel); assert(Number.isFinite(this.zoomLevel), "Got invalid zoom level *after* wheel: " + this.zoomLevel);
this.clampZoomLevel(); this.clampZoomLevel();
@ -939,6 +939,7 @@ export class Camera extends BasicSerializableObject {
this.zoomLevel = this.zoomLevel * fade + this.desiredZoom * (1 - fade); this.zoomLevel = this.zoomLevel * fade + this.desiredZoom * (1 - fade);
assert(Number.isFinite(this.zoomLevel), "Zoom level is NaN after fade: " + this.zoomLevel); assert(Number.isFinite(this.zoomLevel), "Zoom level is NaN after fade: " + this.zoomLevel);
} else { } else {
this.zoomLevel = this.desiredZoom;
this.desiredZoom = null; this.desiredZoom = null;
} }
} }

View File

@ -18,6 +18,7 @@ import { WireTunnelComponent } from "./components/wire_tunnel";
import { DisplayComponent } from "./components/display"; import { DisplayComponent } from "./components/display";
import { BeltReaderComponent } from "./components/belt_reader"; import { BeltReaderComponent } from "./components/belt_reader";
import { FilterComponent } from "./components/filter"; import { FilterComponent } from "./components/filter";
import { ItemProducerComponent } from "./components/item_producer";
export function initComponentRegistry() { export function initComponentRegistry() {
gComponentRegistry.register(StaticMapEntityComponent); gComponentRegistry.register(StaticMapEntityComponent);
@ -39,6 +40,7 @@ export function initComponentRegistry() {
gComponentRegistry.register(DisplayComponent); gComponentRegistry.register(DisplayComponent);
gComponentRegistry.register(BeltReaderComponent); gComponentRegistry.register(BeltReaderComponent);
gComponentRegistry.register(FilterComponent); gComponentRegistry.register(FilterComponent);
gComponentRegistry.register(ItemProducerComponent);
// IMPORTANT ^^^^^ UPDATE ENTITY COMPONENT STORAGE AFTERWARDS // IMPORTANT ^^^^^ UPDATE ENTITY COMPONENT STORAGE AFTERWARDS

View File

@ -0,0 +1,7 @@
import { Component } from "../component";
export class ItemProducerComponent extends Component {
static getId() {
return "ItemProducer";
}
}

View File

@ -18,6 +18,7 @@ import { WireTunnelComponent } from "./components/wire_tunnel";
import { DisplayComponent } from "./components/display"; import { DisplayComponent } from "./components/display";
import { BeltReaderComponent } from "./components/belt_reader"; import { BeltReaderComponent } from "./components/belt_reader";
import { FilterComponent } from "./components/filter"; import { FilterComponent } from "./components/filter";
import { ItemProducerComponent } from "./components/item_producer";
/* typehints:end */ /* typehints:end */
/** /**
@ -85,6 +86,9 @@ export class EntityComponentStorage {
/** @type {FilterComponent} */ /** @type {FilterComponent} */
this.Filter; this.Filter;
/** @type {ItemProducerComponent} */
this.ItemProducer;
/* typehints:end */ /* typehints:end */
} }
} }

View File

@ -23,6 +23,7 @@ import { DisplaySystem } from "./systems/display";
import { ItemProcessorOverlaysSystem } from "./systems/item_processor_overlays"; import { ItemProcessorOverlaysSystem } from "./systems/item_processor_overlays";
import { BeltReaderSystem } from "./systems/belt_reader"; import { BeltReaderSystem } from "./systems/belt_reader";
import { FilterSystem } from "./systems/filter"; import { FilterSystem } from "./systems/filter";
import { ItemProducerSystem } from "./systems/item_producer";
const logger = createLogger("game_system_manager"); const logger = createLogger("game_system_manager");
@ -96,6 +97,9 @@ export class GameSystemManager {
/** @type {FilterSystem} */ /** @type {FilterSystem} */
filter: null, filter: null,
/** @type {ItemProducerSystem} */
itemProducer: null,
/* typehints:end */ /* typehints:end */
}; };
this.systemUpdateOrder = []; this.systemUpdateOrder = [];
@ -130,6 +134,8 @@ export class GameSystemManager {
add("filter", FilterSystem); add("filter", FilterSystem);
add("itemProducer", ItemProducerSystem);
add("itemEjector", ItemEjectorSystem); add("itemEjector", ItemEjectorSystem);
add("mapResources", MapResourcesSystem); add("mapResources", MapResourcesSystem);

View File

@ -1,4 +1,4 @@
import { globalConfig } from "../core/config"; import { globalConfig, IS_DEMO } from "../core/config";
import { RandomNumberGenerator } from "../core/rng"; import { RandomNumberGenerator } from "../core/rng";
import { clamp, findNiceIntegerValue, randomChoice, randomInt } from "../core/utils"; import { clamp, findNiceIntegerValue, randomChoice, randomInt } from "../core/utils";
import { BasicSerializableObject, types } from "../savegame/serialization"; import { BasicSerializableObject, types } from "../savegame/serialization";
@ -29,6 +29,10 @@ export class HubGoals extends BasicSerializableObject {
return errorCode; return errorCode;
} }
if (IS_DEMO) {
this.level = Math.min(this.level, tutorialGoals.length);
}
// Compute gained rewards // Compute gained rewards
for (let i = 0; i < this.level - 1; ++i) { for (let i = 0; i < this.level - 1; ++i) {
if (i < tutorialGoals.length) { if (i < tutorialGoals.length) {
@ -102,13 +106,23 @@ export class HubGoals extends BasicSerializableObject {
if (ev.key === "b") { if (ev.key === "b") {
// root is not guaranteed to exist within ~0.5s after loading in // root is not guaranteed to exist within ~0.5s after loading in
if (this.root && this.root.app && this.root.app.gameAnalytics) { if (this.root && this.root.app && this.root.app.gameAnalytics) {
if (!this.isEndOfDemoReached()) {
this.onGoalCompleted(); this.onGoalCompleted();
} }
} }
}
}); });
} }
} }
/**
* Returns whether the end of the demo is reached
* @returns {boolean}
*/
isEndOfDemoReached() {
return IS_DEMO && this.level >= tutorialGoals.length;
}
/** /**
* Returns how much of the current shape is stored * Returns how much of the current shape is stored
* @param {ShapeDefinition} definition * @param {ShapeDefinition} definition
@ -144,9 +158,11 @@ export class HubGoals extends BasicSerializableObject {
*/ */
getCurrentGoalDelivered() { getCurrentGoalDelivered() {
if (this.currentGoal.throughputOnly) { if (this.currentGoal.throughputOnly) {
return this.root.productionAnalytics.getCurrentShapeRate( return (
this.root.productionAnalytics.getCurrentShapeRate(
enumAnalyticsDataSource.delivered, enumAnalyticsDataSource.delivered,
this.currentGoal.definition this.currentGoal.definition
) / globalConfig.analyticsSliceDurationSeconds
); );
} }
@ -188,9 +204,11 @@ export class HubGoals extends BasicSerializableObject {
this.getCurrentGoalDelivered() >= this.currentGoal.required || this.getCurrentGoalDelivered() >= this.currentGoal.required ||
(G_IS_DEV && globalConfig.debug.rewardsInstant) (G_IS_DEV && globalConfig.debug.rewardsInstant)
) { ) {
if (!this.isEndOfDemoReached()) {
this.onGoalCompleted(); this.onGoalCompleted();
} }
} }
}
/** /**
* Creates the next goal * Creates the next goal
@ -209,10 +227,8 @@ export class HubGoals extends BasicSerializableObject {
return; return;
} }
const required = 4 + (this.level - 27) * 0.25; const required = Math.min(200, 4 + (this.level - 27) * 0.25);
this.currentGoal = { this.currentGoal = {
/** @type {ShapeDefinition} */
definition: this.computeFreeplayShape(this.level), definition: this.computeFreeplayShape(this.level),
required, required,
reward: enumHubGoalRewards.no_reward_freeplay, reward: enumHubGoalRewards.no_reward_freeplay,
@ -254,6 +270,11 @@ export class HubGoals extends BasicSerializableObject {
return false; return false;
} }
if (IS_DEMO && currentLevel >= 4) {
// DEMO
return false;
}
if (G_IS_DEV && globalConfig.debug.upgradesNoCost) { if (G_IS_DEV && globalConfig.debug.upgradesNoCost) {
return true; return true;
} }

View File

@ -47,6 +47,8 @@ import { HUDLayerPreview } from "./parts/layer_preview";
import { HUDMinerHighlight } from "./parts/miner_highlight"; import { HUDMinerHighlight } from "./parts/miner_highlight";
import { HUDBetaOverlay } from "./parts/beta_overlay"; import { HUDBetaOverlay } from "./parts/beta_overlay";
import { HUDPerformanceWarning } from "./parts/performance_warning"; import { HUDPerformanceWarning } from "./parts/performance_warning";
import { HUDStandaloneAdvantages } from "./parts/standalone_advantages";
import { HUDCatMemes } from "./parts/cat_memes";
export class GameHUD { export class GameHUD {
/** /**
@ -118,6 +120,8 @@ export class GameHUD {
if (IS_DEMO) { if (IS_DEMO) {
this.parts.watermark = new HUDWatermark(this.root); this.parts.watermark = new HUDWatermark(this.root);
this.parts.standaloneAdvantages = new HUDStandaloneAdvantages(this.root);
this.parts.catMemes = new HUDCatMemes(this.root);
} }
if (G_IS_DEV && globalConfig.debug.renderChanges) { if (G_IS_DEV && globalConfig.debug.renderChanges) {
@ -141,7 +145,7 @@ export class GameHUD {
this.parts.sandboxController = new HUDSandboxController(this.root); this.parts.sandboxController = new HUDSandboxController(this.root);
} }
if (!G_IS_RELEASE) { if (!G_IS_RELEASE && !G_IS_DEV) {
this.parts.betaOverlay = new HUDBetaOverlay(this.root); this.parts.betaOverlay = new HUDBetaOverlay(this.root);
} }

View File

@ -7,7 +7,7 @@ export class HUDBetaOverlay extends BaseHUDPart {
parent, parent,
"ingame_HUD_BetaOverlay", "ingame_HUD_BetaOverlay",
[], [],
"<h2>CLOSED BETA VERSION</h2><span>This version is unstable, might crash and is not final!</span>" "<h2>UNSTABLE BETA VERSION</h2><span>Steam Release: 9th October 2020!</span>"
); );
} }

View File

@ -14,6 +14,8 @@ import { MetaTrashBuilding } from "../../buildings/trash";
import { MetaUndergroundBeltBuilding } from "../../buildings/underground_belt"; import { MetaUndergroundBeltBuilding } from "../../buildings/underground_belt";
import { HUDBaseToolbar } from "./base_toolbar"; import { HUDBaseToolbar } from "./base_toolbar";
import { MetaStorageBuilding } from "../../buildings/storage"; import { MetaStorageBuilding } from "../../buildings/storage";
import { MetaItemProducerBuilding } from "../../buildings/item_producer";
import { queryParamOptions } from "../../../core/query_parameters";
export class HUDBuildingsToolbar extends HUDBaseToolbar { export class HUDBuildingsToolbar extends HUDBaseToolbar {
constructor(root) { constructor(root) {
@ -29,6 +31,7 @@ export class HUDBuildingsToolbar extends HUDBaseToolbar {
MetaMixerBuilding, MetaMixerBuilding,
MetaPainterBuilding, MetaPainterBuilding,
MetaTrashBuilding, MetaTrashBuilding,
...(queryParamOptions.sandboxMode || G_IS_DEV ? [MetaItemProducerBuilding] : []),
], ],
secondaryBuildings: [ secondaryBuildings: [
MetaStorageBuilding, MetaStorageBuilding,
@ -39,7 +42,7 @@ export class HUDBuildingsToolbar extends HUDBaseToolbar {
], ],
visibilityCondition: () => visibilityCondition: () =>
!this.root.camera.getIsMapOverlayActive() && this.root.currentLayer === "regular", !this.root.camera.getIsMapOverlayActive() && this.root.currentLayer === "regular",
htmlElementId: "ingame_HUD_buildings_toolbar", htmlElementId: "ingame_HUD_BuildingsToolbar",
}); });
} }
} }

View File

@ -0,0 +1,21 @@
import { makeDiv } from "../../../core/utils";
import { BaseHUDPart } from "../base_hud_part";
import { DynamicDomAttach } from "../dynamic_dom_attach";
const memeShowIntervalSeconds = 70 * 60;
const memeShowDuration = 5;
export class HUDCatMemes extends BaseHUDPart {
createElements(parent) {
this.element = makeDiv(parent, "ingame_HUD_CatMemes");
}
initialize() {
this.domAttach = new DynamicDomAttach(this.root, this.element);
}
update() {
const now = this.root.time.realtimeNow();
this.domAttach.update(now % memeShowIntervalSeconds > memeShowIntervalSeconds - memeShowDuration);
}
}

View File

@ -259,7 +259,7 @@ export class HUDKeybindingOverlay extends BaseHUDPart {
label: T.ingame.keybindingsOverlay.switchLayers, label: T.ingame.keybindingsOverlay.switchLayers,
keys: [k.ingame.switchLayers], keys: [k.ingame.switchLayers],
condition: () => condition: () =>
this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_filters_and_levers), this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers),
}, },
]; ];

View File

@ -122,7 +122,7 @@ export class HUDModalDialogs extends BaseHUDPart {
dialog.buttonSignals.getStandalone.add(() => { dialog.buttonSignals.getStandalone.add(() => {
this.app.analytics.trackUiClick("demo_dialog_click"); this.app.analytics.trackUiClick("demo_dialog_click");
window.open(THIRDPARTY_URLS.standaloneStorePage); window.open(THIRDPARTY_URLS.standaloneStorePage + "?ref=ddc");
}); });
return dialog.buttonSignals; return dialog.buttonSignals;

View File

@ -6,6 +6,7 @@ import { blueprintShape, UPGRADES } from "../../upgrades";
import { enumHubGoalRewards } from "../../tutorial_goals"; import { enumHubGoalRewards } from "../../tutorial_goals";
import { enumAnalyticsDataSource } from "../../production_analytics"; import { enumAnalyticsDataSource } from "../../production_analytics";
import { T } from "../../../translations"; import { T } from "../../../translations";
import { globalConfig } from "../../../core/config";
/** /**
* Manages the pinned shapes on the left side of the screen * Manages the pinned shapes on the left side of the screen
@ -265,10 +266,11 @@ export class HUDPinnedShapes extends BaseHUDPart {
let currentValueFormatted = formatBigNumber(currentValue); let currentValueFormatted = formatBigNumber(currentValue);
if (handle.throughputOnly) { if (handle.throughputOnly) {
currentValue = this.root.productionAnalytics.getCurrentShapeRate( currentValue =
this.root.productionAnalytics.getCurrentShapeRate(
enumAnalyticsDataSource.delivered, enumAnalyticsDataSource.delivered,
handle.definition handle.definition
); ) / globalConfig.analyticsSliceDurationSeconds;
currentValueFormatted = T.ingame.statistics.shapesDisplayUnits.second.replace( currentValueFormatted = T.ingame.statistics.shapesDisplayUnits.second.replace(
"<shapes>", "<shapes>",
String(currentValue) String(currentValue)

View File

@ -43,7 +43,7 @@ export class HUDSettingsMenu extends BaseHUDPart {
]; ];
for (let i = 0; i < buttons.length; ++i) { for (let i = 0; i < buttons.length; ++i) {
const { title, action, id } = buttons[i]; const { action, id } = buttons[i];
const element = document.createElement("button"); const element = document.createElement("button");
element.classList.add("styledButton"); element.classList.add("styledButton");
@ -88,13 +88,8 @@ export class HUDSettingsMenu extends BaseHUDPart {
this.close(); this.close();
} }
cleanup() {
document.body.classList.remove("ingameDialogOpen");
}
show() { show() {
this.visible = true; this.visible = true;
document.body.classList.add("ingameDialogOpen");
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
const totalMinutesPlayed = Math.ceil(this.root.time.now() / 60); const totalMinutesPlayed = Math.ceil(this.root.time.now() / 60);
@ -120,7 +115,6 @@ export class HUDSettingsMenu extends BaseHUDPart {
close() { close() {
this.visible = false; this.visible = false;
document.body.classList.remove("ingameDialogOpen");
this.root.app.inputMgr.makeSureDetached(this.inputReciever); this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update(); this.update();
} }

View File

@ -67,7 +67,6 @@ export class HUDShapeViewer extends BaseHUDPart {
*/ */
close() { close() {
this.visible = false; this.visible = false;
document.body.classList.remove("ingameDialogOpen");
this.root.app.inputMgr.makeSureDetached(this.inputReciever); this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update(); this.update();
} }
@ -78,7 +77,6 @@ export class HUDShapeViewer extends BaseHUDPart {
*/ */
renderForShape(definition) { renderForShape(definition) {
this.visible = true; this.visible = true;
document.body.classList.add("ingameDialogOpen");
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
removeAllChildren(this.renderArea); removeAllChildren(this.renderArea);
@ -124,13 +122,6 @@ export class HUDShapeViewer extends BaseHUDPart {
} }
} }
/**
* Cleans up everything
*/
cleanup() {
document.body.classList.remove("ingameDialogOpen");
}
update() { update() {
this.domAttach.update(this.visible); this.domAttach.update(this.visible);
} }

View File

@ -205,8 +205,6 @@ export class HUDShop extends BaseHUDPart {
} }
cleanup() { cleanup() {
document.body.classList.remove("ingameDialogOpen");
// Cleanup detectors // Cleanup detectors
for (const upgradeId in this.upgradeToElements) { for (const upgradeId in this.upgradeToElements) {
const handle = this.upgradeToElements[upgradeId]; const handle = this.upgradeToElements[upgradeId];
@ -222,15 +220,12 @@ export class HUDShop extends BaseHUDPart {
show() { show() {
this.visible = true; this.visible = true;
document.body.classList.add("ingameDialogOpen");
// this.background.classList.add("visible");
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
this.rerenderFull(); this.rerenderFull();
} }
close() { close() {
this.visible = false; this.visible = false;
document.body.classList.remove("ingameDialogOpen");
this.root.app.inputMgr.makeSureDetached(this.inputReciever); this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update(); this.update();
} }

View File

@ -0,0 +1,85 @@
import { A_B_TESTING_LINK_TYPE, THIRDPARTY_URLS } from "../../../core/config";
import { InputReceiver } from "../../../core/input_receiver";
import { makeDiv } from "../../../core/utils";
import { T } from "../../../translations";
import { BaseHUDPart } from "../base_hud_part";
import { DynamicDomAttach } from "../dynamic_dom_attach";
const showIntervalSeconds = 30 * 60;
export class HUDStandaloneAdvantages extends BaseHUDPart {
createElements(parent) {
this.background = makeDiv(parent, "ingame_HUD_StandaloneAdvantages", ["ingameDialog"]);
// DIALOG Inner / Wrapper
this.dialogInner = makeDiv(this.background, null, ["dialogInner"]);
this.title = makeDiv(this.dialogInner, null, ["title"], T.ingame.standaloneAdvantages.title);
this.contentDiv = makeDiv(
this.dialogInner,
null,
["content"],
`
<div class="points">
${Object.entries(T.ingame.standaloneAdvantages.points)
.map(
([key, trans]) => `
<div class="point ${key}">
<strong>${trans.title}</strong>
<p>${trans.desc}</p>
</div>`
)
.join("")}
</div>
<div class="lowerBar">
<button class="steamLinkButton ${A_B_TESTING_LINK_TYPE}"></button>
<button class="otherCloseButton">${T.ingame.standaloneAdvantages.no_thanks}</button>
</div>
`
);
this.trackClicks(this.contentDiv.querySelector("button.steamLinkButton"), () => {
this.root.app.analytics.trackUiClick("standalone_advantage_visit_steam");
this.root.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.standaloneStorePage + "?ref=savs&prc=" + A_B_TESTING_LINK_TYPE
);
this.close();
});
this.trackClicks(this.contentDiv.querySelector("button.otherCloseButton"), () => {
this.root.app.analytics.trackUiClick("standalone_advantage_no_thanks");
this.close();
});
}
initialize() {
this.domAttach = new DynamicDomAttach(this.root, this.background, {
attachClass: "visible",
});
this.inputReciever = new InputReceiver("standalone-advantages");
this.close();
this.lastShown = this.root.gameIsFresh ? this.root.time.now() : 0;
}
show() {
this.lastShown = this.root.time.now();
this.visible = true;
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
}
close() {
this.visible = false;
this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update();
}
update() {
if (!this.visible && this.root.time.now() - this.lastShown > showIntervalSeconds) {
this.show();
}
this.domAttach.update(this.visible);
}
}

View File

@ -151,17 +151,12 @@ export class HUDStatistics extends BaseHUDPart {
} }
} }
cleanup() {
document.body.classList.remove("ingameDialogOpen");
}
isBlockingOverlay() { isBlockingOverlay() {
return this.visible; return this.visible;
} }
show() { show() {
this.visible = true; this.visible = true;
document.body.classList.add("ingameDialogOpen");
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
this.rerenderFull(); this.rerenderFull();
this.update(); this.update();
@ -169,7 +164,6 @@ export class HUDStatistics extends BaseHUDPart {
close() { close() {
this.visible = false; this.visible = false;
document.body.classList.remove("ingameDialogOpen");
this.root.app.inputMgr.makeSureDetached(this.inputReciever); this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update(); this.update();
} }

View File

@ -70,7 +70,6 @@ export class HUDPartTutorialHints extends BaseHUDPart {
close() { close() {
this.enlarged = false; this.enlarged = false;
document.body.classList.remove("ingameDialogOpen");
this.element.classList.remove("enlarged", "noBlur"); this.element.classList.remove("enlarged", "noBlur");
this.root.app.inputMgr.makeSureDetached(this.inputReciever); this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update(); this.update();
@ -79,8 +78,6 @@ export class HUDPartTutorialHints extends BaseHUDPart {
show() { show() {
this.root.app.analytics.trackUiClick("tutorial_hint_show"); this.root.app.analytics.trackUiClick("tutorial_hint_show");
this.root.app.analytics.trackUiClick("tutorial_hint_show_lvl_" + this.root.hubGoals.level); this.root.app.analytics.trackUiClick("tutorial_hint_show_lvl_" + this.root.hubGoals.level);
document.body.classList.add("ingameDialogOpen");
this.element.classList.add("enlarged", "noBlur"); this.element.classList.add("enlarged", "noBlur");
this.enlarged = true; this.enlarged = true;
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);

View File

@ -51,6 +51,8 @@ export class HUDUnlockNotification extends BaseHUDPart {
* @param {enumHubGoalRewards} reward * @param {enumHubGoalRewards} reward
*/ */
showForLevel(level, reward) { showForLevel(level, reward) {
this.root.soundProxy.playUi(SOUNDS.levelComplete);
if (level > tutorialGoals.length) { if (level > tutorialGoals.length) {
this.root.hud.signals.notification.dispatch( this.root.hud.signals.notification.dispatch(
T.ingame.notifications.freeplayLevelComplete.replace("<level>", String(level)), T.ingame.notifications.freeplayLevelComplete.replace("<level>", String(level)),
@ -92,7 +94,6 @@ export class HUDUnlockNotification extends BaseHUDPart {
this.elemContents.innerHTML = html; this.elemContents.innerHTML = html;
this.visible = true; this.visible = true;
this.root.soundProxy.playUi(SOUNDS.levelComplete);
if (this.buttonShowTimeout) { if (this.buttonShowTimeout) {
clearTimeout(this.buttonShowTimeout); clearTimeout(this.buttonShowTimeout);

View File

@ -1,44 +1,72 @@
import { BaseHUDPart } from "../base_hud_part";
import { DrawParameters } from "../../../core/draw_parameters";
import { makeDiv } from "../../../core/utils";
import { THIRDPARTY_URLS } from "../../../core/config"; import { THIRDPARTY_URLS } from "../../../core/config";
import { makeDiv } from "../../../core/utils";
import { T } from "../../../translations"; import { T } from "../../../translations";
import { BaseHUDPart } from "../base_hud_part";
import { DynamicDomAttach } from "../dynamic_dom_attach";
const watermarkShowIntervalSeconds = G_IS_DEV ? 120 : 7 * 60;
const watermarkShowDuration = 5;
export class HUDWatermark extends BaseHUDPart { export class HUDWatermark extends BaseHUDPart {
createElements(parent) { createElements(parent) {
this.element = makeDiv(parent, "ingame_HUD_Watermark"); this.element = makeDiv(
parent,
"ingame_HUD_Watermark",
[],
`
<strong>${T.ingame.watermark.title}</strong>
<p>${T.ingame.watermark.desc}</p>
`
);
this.linkElement = makeDiv(
parent,
"ingame_HUD_WatermarkClicker",
[],
T.ingame.watermark.get_on_steam
);
this.trackClicks(this.linkElement, () => {
this.root.app.analytics.trackUiClick("watermark_click_2_direct");
this.root.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?ref=wtmd");
});
} }
initialize() { initialize() {
this.trackClicks(this.element, this.onWatermarkClick); this.trackClicks(this.element, this.onWatermarkClick);
this.domAttach = new DynamicDomAttach(this.root, this.element, {
attachClass: "visible",
timeToKeepSeconds: 0.5,
});
}
update() {
this.domAttach.update(
this.root.time.realtimeNow() % watermarkShowIntervalSeconds < watermarkShowDuration
);
} }
onWatermarkClick() { onWatermarkClick() {
this.root.app.analytics.trackUiClick("watermark_click_2"); this.root.app.analytics.trackUiClick("watermark_click_2_new");
this.root.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage); this.root.hud.parts.standaloneAdvantages.show();
} }
/** /**
* *
* @param {DrawParameters} parameters * @param {import("../../../core/draw_utils").DrawParameters} parameters
*/ */
drawOverlays(parameters) { drawOverlays(parameters) {
const w = this.root.gameWidth; const w = this.root.gameWidth;
const x = 280 * this.root.app.getEffectiveUiScale();
parameters.context.fillStyle = "#f77"; parameters.context.fillStyle = "rgba(230, 230, 230, 0.9)";
parameters.context.font = "bold " + this.root.app.getEffectiveUiScale() * 17 + "px GameFont"; parameters.context.font = "bold " + this.root.app.getEffectiveUiScale() * 40 + "px GameFont";
// parameters.context.textAlign = "center"; parameters.context.textAlign = "center";
parameters.context.fillText( parameters.context.fillText(
T.demoBanners.title.toUpperCase(), T.demoBanners.title.toUpperCase(),
x, w / 2,
this.root.app.getEffectiveUiScale() * 27 this.root.app.getEffectiveUiScale() * 50
); );
parameters.context.font = "bold " + this.root.app.getEffectiveUiScale() * 12 + "px GameFont"; parameters.context.textAlign = "left";
// parameters.context.textAlign = "center";
parameters.context.fillText(T.demoBanners.intro, x, this.root.app.getEffectiveUiScale() * 45);
// parameters.context.textAlign = "left";
} }
} }

View File

@ -29,7 +29,10 @@ export class HUDWiresOverlay extends BaseHUDPart {
*/ */
switchLayers() { switchLayers() {
if (this.root.currentLayer === "regular") { if (this.root.currentLayer === "regular") {
if (this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_filters_and_levers)) { if (
this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_wires_painter_and_levers) ||
(G_IS_DEV && globalConfig.debug.allBuildingsUnlocked)
) {
this.root.currentLayer = "wires"; this.root.currentLayer = "wires";
} }
} else { } else {

View File

@ -56,6 +56,9 @@ export const KEYMAPPINGS = {
painter: { keyCode: key("9") }, painter: { keyCode: key("9") },
trash: { keyCode: key("0") }, trash: { keyCode: key("0") },
// Sandbox
item_producer: { keyCode: key("L") },
// Secondary toolbar // Secondary toolbar
storage: { keyCode: key("Y") }, storage: { keyCode: key("Y") },
reader: { keyCode: key("U") }, reader: { keyCode: key("U") },

View File

@ -26,11 +26,6 @@ export class MapView extends BaseMap {
/** @type {CanvasRenderingContext2D} */ /** @type {CanvasRenderingContext2D} */
this.cachedBackgroundContext = null; this.cachedBackgroundContext = null;
/**
* Cached pattern of the stripes background
* @type {CanvasPattern} */
this.cachedBackgroundPattern = null;
this.internalInitializeCachedBackgroundCanvases(); this.internalInitializeCachedBackgroundCanvases();
this.root.signals.aboutToDestruct.add(this.cleanup, this); this.root.signals.aboutToDestruct.add(this.cleanup, this);
@ -42,7 +37,6 @@ export class MapView extends BaseMap {
cleanup() { cleanup() {
freeCanvas(this.cachedBackgroundCanvas); freeCanvas(this.cachedBackgroundCanvas);
this.cachedBackgroundCanvas = null; this.cachedBackgroundCanvas = null;
this.cachedBackgroundPattern = null;
} }
/** /**
@ -191,19 +185,15 @@ export class MapView extends BaseMap {
* @param {DrawParameters} parameters * @param {DrawParameters} parameters
*/ */
drawBackground(parameters) { drawBackground(parameters) {
if (!this.cachedBackgroundPattern) {
this.cachedBackgroundPattern = parameters.context.createPattern(
this.cachedBackgroundCanvas,
"repeat"
);
}
// Render tile grid // Render tile grid
if (!this.root.app.settings.getAllSettings().disableTileGrid) { if (!this.root.app.settings.getAllSettings().disableTileGrid) {
const dpi = this.backgroundCacheDPI; const dpi = this.backgroundCacheDPI;
parameters.context.scale(1 / dpi, 1 / dpi); parameters.context.scale(1 / dpi, 1 / dpi);
parameters.context.fillStyle = this.cachedBackgroundPattern; parameters.context.fillStyle = parameters.context.createPattern(
this.cachedBackgroundCanvas,
"repeat"
);
parameters.context.fillRect( parameters.context.fillRect(
parameters.visibleRect.x * dpi, parameters.visibleRect.x * dpi,
parameters.visibleRect.y * dpi, parameters.visibleRect.y * dpi,

View File

@ -10,6 +10,7 @@ import { enumCutterVariants, MetaCutterBuilding } from "./buildings/cutter";
import { MetaDisplayBuilding } from "./buildings/display"; import { MetaDisplayBuilding } from "./buildings/display";
import { MetaFilterBuilding } from "./buildings/filter"; import { MetaFilterBuilding } from "./buildings/filter";
import { MetaHubBuilding } from "./buildings/hub"; import { MetaHubBuilding } from "./buildings/hub";
import { MetaItemProducerBuilding } from "./buildings/item_producer";
import { MetaLeverBuilding } from "./buildings/lever"; import { MetaLeverBuilding } from "./buildings/lever";
import { enumLogicGateVariants, MetaLogicGateBuilding } from "./buildings/logic_gate"; import { enumLogicGateVariants, MetaLogicGateBuilding } from "./buildings/logic_gate";
import { enumMinerVariants, MetaMinerBuilding } from "./buildings/miner"; import { enumMinerVariants, MetaMinerBuilding } from "./buildings/miner";
@ -19,7 +20,7 @@ import { MetaReaderBuilding } from "./buildings/reader";
import { enumRotaterVariants, MetaRotaterBuilding } from "./buildings/rotater"; import { enumRotaterVariants, MetaRotaterBuilding } from "./buildings/rotater";
import { MetaStackerBuilding } from "./buildings/stacker"; import { MetaStackerBuilding } from "./buildings/stacker";
import { MetaStorageBuilding } from "./buildings/storage"; import { MetaStorageBuilding } from "./buildings/storage";
import { MetaTransistorBuilding, enumTransistorVariants } from "./buildings/transistor"; import { enumTransistorVariants, MetaTransistorBuilding } from "./buildings/transistor";
import { MetaTrashBuilding } from "./buildings/trash"; import { MetaTrashBuilding } from "./buildings/trash";
import { enumUndergroundBeltVariants, MetaUndergroundBeltBuilding } from "./buildings/underground_belt"; import { enumUndergroundBeltVariants, MetaUndergroundBeltBuilding } from "./buildings/underground_belt";
import { enumVirtualProcessorVariants, MetaVirtualProcessorBuilding } from "./buildings/virtual_processor"; import { enumVirtualProcessorVariants, MetaVirtualProcessorBuilding } from "./buildings/virtual_processor";
@ -57,6 +58,7 @@ export function initMetaBuildingRegistry() {
gMetaBuildingRegistry.register(MetaTransistorBuilding); gMetaBuildingRegistry.register(MetaTransistorBuilding);
gMetaBuildingRegistry.register(MetaAnalyzerBuilding); gMetaBuildingRegistry.register(MetaAnalyzerBuilding);
gMetaBuildingRegistry.register(MetaComparatorBuilding); gMetaBuildingRegistry.register(MetaComparatorBuilding);
gMetaBuildingRegistry.register(MetaItemProducerBuilding);
// Belt // Belt
registerBuildingVariant(1, MetaBeltBuilding, defaultBuildingVariant, 0); registerBuildingVariant(1, MetaBeltBuilding, defaultBuildingVariant, 0);
@ -160,6 +162,9 @@ export function initMetaBuildingRegistry() {
// Reader // Reader
registerBuildingVariant(49, MetaReaderBuilding); registerBuildingVariant(49, MetaReaderBuilding);
// Item producer
registerBuildingVariant(61, MetaItemProducerBuilding);
// Propagate instances // Propagate instances
for (const key in gBuildingVariants) { for (const key in gBuildingVariants) {
gBuildingVariants[key].metaInstance = gMetaBuildingRegistry.findByClass( gBuildingVariants[key].metaInstance = gMetaBuildingRegistry.findByClass(

View File

@ -61,7 +61,13 @@ export class ConstantSignalSystem extends GameSystemWithFilter {
BOOL_FALSE_SINGLETON, BOOL_FALSE_SINGLETON,
BOOL_TRUE_SINGLETON, BOOL_TRUE_SINGLETON,
...Object.values(COLOR_ITEM_SINGLETONS), ...Object.values(COLOR_ITEM_SINGLETONS),
this.root.shapeDefinitionMgr.getShapeItemFromDefinition(
this.root.hubGoals.currentGoal.definition
),
this.root.shapeDefinitionMgr.getShapeItemFromShortKey(blueprintShape), this.root.shapeDefinitionMgr.getShapeItemFromShortKey(blueprintShape),
...this.root.hud.parts.pinnedShapes.pinnedShapes.map(key =>
this.root.shapeDefinitionMgr.getShapeItemFromShortKey(key)
),
], ],
}); });

View File

@ -1,4 +1,4 @@
import { globalConfig } from "../../core/config"; import { globalConfig, IS_DEMO } from "../../core/config";
import { smoothenDpi } from "../../core/dpi_manager"; import { smoothenDpi } from "../../core/dpi_manager";
import { DrawParameters } from "../../core/draw_parameters"; import { DrawParameters } from "../../core/draw_parameters";
import { drawSpriteClipped } from "../../core/draw_utils"; import { drawSpriteClipped } from "../../core/draw_utils";
@ -65,6 +65,17 @@ export class HubSystem extends GameSystemWithFilter {
this.hubSprite.draw(context, 0, 0, w, h); this.hubSprite.draw(context, 0, 0, w, h);
if (this.root.hubGoals.isEndOfDemoReached()) {
// End of demo
context.font = "bold 12px GameFont";
context.fillStyle = "#fd0752";
context.textAlign = "center";
context.fillText(T.buildings.hub.endOfDemo.toUpperCase(), w / 2, h / 2 + 6);
context.textAlign = "left";
return;
}
const definition = this.root.hubGoals.currentGoal.definition; const definition = this.root.hubGoals.currentGoal.definition;
definition.drawCentered(45, 58, parameters, 36); definition.drawCentered(45, 58, parameters, 36);

View File

@ -0,0 +1,24 @@
import { ItemProducerComponent } from "../components/item_producer";
import { GameSystemWithFilter } from "../game_system_with_filter";
export class ItemProducerSystem extends GameSystemWithFilter {
constructor(root) {
super(root, [ItemProducerComponent]);
}
update() {
for (let i = 0; i < this.allEntities.length; ++i) {
const entity = this.allEntities[i];
const pinsComp = entity.components.WiredPins;
const pin = pinsComp.slots[0];
const network = pin.linkedNetwork;
if (!network || !network.hasValue()) {
continue;
}
const ejectorComp = entity.components.ItemEjector;
ejectorComp.tryEject(0, network.currentValue);
}
}
}

View File

@ -1,3 +1,4 @@
import { IS_DEMO } from "../core/config";
import { ShapeDefinition } from "./shape_definition"; import { ShapeDefinition } from "./shape_definition";
import { finalGameShape } from "./upgrades"; import { finalGameShape } from "./upgrades";
@ -22,14 +23,16 @@ export const enumHubGoalRewards = {
reward_splitter: "reward_splitter", reward_splitter: "reward_splitter",
reward_cutter_quad: "reward_cutter_quad", reward_cutter_quad: "reward_cutter_quad",
reward_painter_double: "reward_painter_double", reward_painter_double: "reward_painter_double",
reward_painter_quad: "reward_painter_quad",
reward_storage: "reward_storage", reward_storage: "reward_storage",
reward_merger: "reward_merger", reward_merger: "reward_merger",
reward_wires_filters_and_levers: "reward_wires_filters_and_levers", reward_wires_painter_and_levers: "reward_wires_painter_and_levers",
reward_display: "reward_display", reward_display: "reward_display",
reward_constant_signal: "reward_constant_signal", reward_constant_signal: "reward_constant_signal",
reward_logic_gates: "reward_logic_gates", reward_logic_gates: "reward_logic_gates",
reward_virtual_processing: "reward_virtual_processing", reward_virtual_processing: "reward_virtual_processing",
reward_filter: "reward_filter",
reward_demo_end: "reward_demo_end",
reward_blueprints: "reward_blueprints", reward_blueprints: "reward_blueprints",
reward_freeplay: "reward_freeplay", reward_freeplay: "reward_freeplay",
@ -140,6 +143,16 @@ export const tutorialGoals = [
reward: enumHubGoalRewards.reward_underground_belt_tier_2, reward: enumHubGoalRewards.reward_underground_belt_tier_2,
}, },
// DEMO STOPS HERE
...(IS_DEMO
? [
{
shape: "RpRpRpRp:CwCwCwCw",
required: 0,
reward: enumHubGoalRewards.reward_demo_end,
},
]
: [
// 14 // 14
// Belt reader // Belt reader
{ {
@ -194,15 +207,15 @@ export const tutorialGoals = [
{ {
shape: finalGameShape, shape: finalGameShape,
required: 25000, required: 25000,
reward: enumHubGoalRewards.reward_wires_filters_and_levers, reward: enumHubGoalRewards.reward_wires_painter_and_levers,
}, },
// 21 // 21
// Display // Filter
{ {
shape: "CrCrCrCr:CwCwCwCw:CrCrCrCr:CwCwCwCw", shape: "CrCwCrCw:CwCrCwCr:CrCwCrCw:CwCrCwCr",
required: 25000, required: 25000,
reward: enumHubGoalRewards.reward_display, reward: enumHubGoalRewards.reward_filter,
}, },
// 22 // 22
@ -214,33 +227,34 @@ export const tutorialGoals = [
}, },
// 23 // 23
// Quad Painter // Display
{ {
shape: "CcSyCcSy:SyCcSyCc:CcSyCcSy", shape: "CcSyCcSy:SyCcSyCc:CcSyCcSy",
required: 5000, required: 25000,
reward: enumHubGoalRewards.reward_painter_quad, reward: enumHubGoalRewards.reward_display,
}, },
// 24 Logic gates // 24 Logic gates
{ {
shape: "CcRcCcRc:RwCwRwCw:Sr--Sw--:CyCyCyCy", shape: "CcRcCcRc:RwCwRwCw:Sr--Sw--:CyCyCyCy",
required: 10000, required: 25000,
reward: enumHubGoalRewards.reward_logic_gates, reward: enumHubGoalRewards.reward_logic_gates,
}, },
// 25 Virtual Processing // 25 Virtual Processing
{ {
shape: "Rg--Rg--:CwRwCwRw:--Rg--Rg", shape: "Rg--Rg--:CwRwCwRw:--Rg--Rg",
required: 10000, required: 25000,
reward: enumHubGoalRewards.reward_virtual_processing, reward: enumHubGoalRewards.reward_virtual_processing,
}, },
// 26 Freeplay // 26 Freeplay
{ {
shape: "CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw", shape: "CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw",
required: 10000, required: 50000,
reward: enumHubGoalRewards.reward_freeplay, reward: enumHubGoalRewards.reward_freeplay,
}, },
]),
]; ];
if (G_IS_DEV) { if (G_IS_DEV) {

View File

@ -3,7 +3,7 @@ import { enumBalancerVariants, MetaBalancerBuilding } from "./buildings/balancer
import { MetaConstantSignalBuilding } from "./buildings/constant_signal"; import { MetaConstantSignalBuilding } from "./buildings/constant_signal";
import { enumCutterVariants, MetaCutterBuilding } from "./buildings/cutter"; import { enumCutterVariants, MetaCutterBuilding } from "./buildings/cutter";
import { MetaDisplayBuilding } from "./buildings/display"; import { MetaDisplayBuilding } from "./buildings/display";
import { MetaLeverBuilding } from "./buildings/lever"; import { MetaFilterBuilding } from "./buildings/filter";
import { MetaLogicGateBuilding } from "./buildings/logic_gate"; import { MetaLogicGateBuilding } from "./buildings/logic_gate";
import { enumMinerVariants, MetaMinerBuilding } from "./buildings/miner"; import { enumMinerVariants, MetaMinerBuilding } from "./buildings/miner";
import { MetaMixerBuilding } from "./buildings/mixer"; import { MetaMixerBuilding } from "./buildings/mixer";
@ -46,7 +46,6 @@ export const enumHubGoalRewardsToContentUnlocked = {
[enumHubGoalRewards.reward_merger]: typed([[MetaBalancerBuilding, enumBalancerVariants.merger]]), [enumHubGoalRewards.reward_merger]: typed([[MetaBalancerBuilding, enumBalancerVariants.merger]]),
[enumHubGoalRewards.reward_cutter_quad]: typed([[MetaCutterBuilding, enumCutterVariants.quad]]), [enumHubGoalRewards.reward_cutter_quad]: typed([[MetaCutterBuilding, enumCutterVariants.quad]]),
[enumHubGoalRewards.reward_painter_double]: typed([[MetaPainterBuilding, enumPainterVariants.double]]), [enumHubGoalRewards.reward_painter_double]: typed([[MetaPainterBuilding, enumPainterVariants.double]]),
[enumHubGoalRewards.reward_painter_quad]: typed([[MetaPainterBuilding, enumPainterVariants.quad]]),
[enumHubGoalRewards.reward_storage]: typed([[MetaStorageBuilding, defaultBuildingVariant]]), [enumHubGoalRewards.reward_storage]: typed([[MetaStorageBuilding, defaultBuildingVariant]]),
[enumHubGoalRewards.reward_belt_reader]: typed([[MetaReaderBuilding, defaultBuildingVariant]]), [enumHubGoalRewards.reward_belt_reader]: typed([[MetaReaderBuilding, defaultBuildingVariant]]),
@ -55,15 +54,17 @@ export const enumHubGoalRewardsToContentUnlocked = {
[MetaConstantSignalBuilding, defaultBuildingVariant], [MetaConstantSignalBuilding, defaultBuildingVariant],
]), ]),
[enumHubGoalRewards.reward_logic_gates]: typed([[MetaLogicGateBuilding, defaultBuildingVariant]]), [enumHubGoalRewards.reward_logic_gates]: typed([[MetaLogicGateBuilding, defaultBuildingVariant]]),
[enumHubGoalRewards.reward_filter]: typed([[MetaFilterBuilding, defaultBuildingVariant]]),
[enumHubGoalRewards.reward_virtual_processing]: null, // @TODO! [enumHubGoalRewards.reward_virtual_processing]: null, // @TODO!
[enumHubGoalRewards.reward_wires_filters_and_levers]: typed([ [enumHubGoalRewards.reward_wires_painter_and_levers]: typed([
[MetaLeverBuilding, defaultBuildingVariant], [MetaPainterBuilding, enumPainterVariants.quad],
]), ]),
[enumHubGoalRewards.reward_freeplay]: null, [enumHubGoalRewards.reward_freeplay]: null,
[enumHubGoalRewards.reward_blueprints]: null, [enumHubGoalRewards.reward_blueprints]: null,
[enumHubGoalRewards.no_reward]: null, [enumHubGoalRewards.no_reward]: null,
[enumHubGoalRewards.no_reward_freeplay]: null, [enumHubGoalRewards.no_reward_freeplay]: null,
[enumHubGoalRewards.reward_demo_end]: null,
}; };
if (G_IS_DEV) { if (G_IS_DEV) {

View File

@ -1,18 +1,20 @@
import { IS_DEMO } from "../core/config";
import { findNiceIntegerValue } from "../core/utils"; import { findNiceIntegerValue } from "../core/utils";
import { ShapeDefinition } from "./shape_definition"; import { ShapeDefinition } from "./shape_definition";
export const preparementShape = "CpRpCp--:SwSwSwSw";
export const finalGameShape = "RuCw--Cw:----Ru--"; export const finalGameShape = "RuCw--Cw:----Ru--";
export const rocketShape = "CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw"; export const rocketShape = "CbCuCbCu:Sr------:--CrSrCr:CwCwCwCw";
export const blueprintShape = "CbCbCbRb:CwCwCwCw"; export const blueprintShape = "CbCbCbRb:CwCwCwCw";
const fixedImprovements = [0.5, 0.5, 1, 1, 2, 2]; const fixedImprovements = [0.5, 0.5, 1, 1, 2, 1, 1];
const numEndgameUpgrades = G_IS_DEV || G_IS_STANDALONE ? 20 - fixedImprovements.length - 1 : 0; const numEndgameUpgrades = !IS_DEMO ? 20 - fixedImprovements.length - 1 : 0;
function generateEndgameUpgrades() { function generateEndgameUpgrades() {
return new Array(numEndgameUpgrades).fill(null).map((_, i) => ({ return new Array(numEndgameUpgrades).fill(null).map((_, i) => ({
required: [ required: [
{ shape: blueprintShape, amount: 30000 + i * 10000 }, { shape: preparementShape, amount: 30000 + i * 10000 },
{ shape: finalGameShape, amount: 20000 + i * 5000 }, { shape: finalGameShape, amount: 20000 + i * 5000 },
{ shape: rocketShape, amount: 20000 + i * 5000 }, { shape: rocketShape, amount: 20000 + i * 5000 },
], ],
@ -56,7 +58,14 @@ export const UPGRADES = {
required: [{ shape: "SrSrSrSr:CyCyCyCy:SwSwSwSw", amount: 25000 }], required: [{ shape: "SrSrSrSr:CyCyCyCy:SwSwSwSw", amount: 25000 }],
}, },
{ {
required: [{ shape: finalGameShape, amount: 50000 }], required: [{ shape: preparementShape, amount: 25000 }],
excludePrevious: true,
},
{
required: [
{ shape: preparementShape, amount: 25000 },
{ shape: finalGameShape, amount: 50000 },
],
excludePrevious: true, excludePrevious: true,
}, },
...generateEndgameUpgrades(), ...generateEndgameUpgrades(),
@ -79,7 +88,14 @@ export const UPGRADES = {
required: [{ shape: "CbRbRbCb:CwCwCwCw:WbWbWbWb", amount: 50000 }], required: [{ shape: "CbRbRbCb:CwCwCwCw:WbWbWbWb", amount: 50000 }],
}, },
{ {
required: [{ shape: finalGameShape, amount: 50000 }], required: [{ shape: preparementShape, amount: 25000 }],
excludePrevious: true,
},
{
required: [
{ shape: preparementShape, amount: 25000 },
{ shape: finalGameShape, amount: 50000 },
],
excludePrevious: true, excludePrevious: true,
}, },
...generateEndgameUpgrades(), ...generateEndgameUpgrades(),
@ -102,7 +118,14 @@ export const UPGRADES = {
required: [{ shape: "WrRgWrRg:CwCrCwCr:SgSgSgSg", amount: 50000 }], required: [{ shape: "WrRgWrRg:CwCrCwCr:SgSgSgSg", amount: 50000 }],
}, },
{ {
required: [{ shape: finalGameShape, amount: 50000 }], required: [{ shape: preparementShape, amount: 25000 }],
excludePrevious: true,
},
{
required: [
{ shape: preparementShape, amount: 25000 },
{ shape: finalGameShape, amount: 50000 },
],
excludePrevious: true, excludePrevious: true,
}, },
...generateEndgameUpgrades(), ...generateEndgameUpgrades(),
@ -125,7 +148,14 @@ export const UPGRADES = {
required: [{ shape: "WpWpWpWp:CwCwCwCw:WpWpWpWp:CwCwCwCw", amount: 50000 }], required: [{ shape: "WpWpWpWp:CwCwCwCw:WpWpWpWp:CwCwCwCw", amount: 50000 }],
}, },
{ {
required: [{ shape: finalGameShape, amount: 50000 }], required: [{ shape: preparementShape, amount: 25000 }],
excludePrevious: true,
},
{
required: [
{ shape: preparementShape, amount: 25000 },
{ shape: finalGameShape, amount: 50000 },
],
excludePrevious: true, excludePrevious: true,
}, },
...generateEndgameUpgrades(), ...generateEndgameUpgrades(),

View File

@ -8,6 +8,7 @@ import { blueprintShape, UPGRADES } from "../../game/upgrades";
import { tutorialGoals } from "../../game/tutorial_goals"; import { tutorialGoals } from "../../game/tutorial_goals";
import { BeltComponent } from "../../game/components/belt"; import { BeltComponent } from "../../game/components/belt";
import { StaticMapEntityComponent } from "../../game/components/static_map_entity"; import { StaticMapEntityComponent } from "../../game/components/static_map_entity";
import { queryParamOptions } from "../../core/query_parameters";
const logger = createLogger("game_analytics"); const logger = createLogger("game_analytics");
@ -24,6 +25,9 @@ export class ShapezGameAnalytics extends GameAnalyticsInterface {
} }
if (G_IS_STANDALONE) { if (G_IS_STANDALONE) {
if (queryParamOptions.sandboxMode) {
return "steam-sandbox";
}
return "steam"; return "steam";
} }
@ -31,8 +35,18 @@ export class ShapezGameAnalytics extends GameAnalyticsInterface {
return "prod"; return "prod";
} }
if (window.location.host.indexOf("alpha") >= 0) {
if (queryParamOptions.sandboxMode) {
return "alpha-sandbox";
}
return "alpha";
} else {
if (queryParamOptions.sandboxMode) {
return "beta-sandbox";
}
return "beta"; return "beta";
} }
}
/** /**
* @returns {Promise<void>} * @returns {Promise<void>}

View File

@ -6,7 +6,7 @@ import { GameRoot } from "../game/root";
import { newEmptyMap, clamp } from "../core/utils"; import { newEmptyMap, clamp } from "../core/utils";
import { createLogger } from "../core/logging"; import { createLogger } from "../core/logging";
import { globalConfig } from "../core/config"; import { globalConfig, IS_DEMO } from "../core/config";
const logger = createLogger("sound"); const logger = createLogger("sound");
@ -29,7 +29,7 @@ export const SOUNDS = {
}; };
export const MUSIC = { export const MUSIC = {
theme: G_IS_STANDALONE ? "theme-full" : "theme-short", theme: IS_DEMO ? "theme-short" : "theme-full",
menu: "menu", menu: "menu",
}; };

View File

@ -1,6 +1,6 @@
import { GameState } from "../core/game_state"; import { GameState } from "../core/game_state";
import { cachebust } from "../core/cachebust"; import { cachebust } from "../core/cachebust";
import { globalConfig, IS_DEMO, THIRDPARTY_URLS } from "../core/config"; import { A_B_TESTING_LINK_TYPE, globalConfig, IS_DEMO, THIRDPARTY_URLS } from "../core/config";
import { import {
makeDiv, makeDiv,
makeButtonElement, makeButtonElement,
@ -52,7 +52,7 @@ export class MainMenuState extends GameState {
<p>${T.demoBanners.intro}</p> <p>${T.demoBanners.intro}</p>
<a href="#" class="steamLink" target="_blank">Get the shapez.io standalone!</a> <a href="#" class="steamLink ${A_B_TESTING_LINK_TYPE}" target="_blank">Get the shapez.io standalone!</a>
`; `;
return ` return `
@ -311,8 +311,11 @@ export class MainMenuState extends GameState {
} }
onSteamLinkClicked() { onSteamLinkClicked() {
this.app.analytics.trackUiClick("main_menu_steam_link_2"); this.app.analytics.trackUiClick("main_menu_steam_link_" + A_B_TESTING_LINK_TYPE);
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage); this.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.standaloneStorePage + "?ref=mmsl2&prc=" + A_B_TESTING_LINK_TYPE
);
return false; return false;
} }
@ -537,7 +540,7 @@ export class MainMenuState extends GameState {
); );
getStandalone.add(() => { getStandalone.add(() => {
this.app.analytics.trackUiClick("visit_steampage_from_slot_limit"); this.app.analytics.trackUiClick("visit_steampage_from_slot_limit");
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage); this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?reF=ssll");
}); });
} }

View File

@ -21,7 +21,7 @@ export class MobileWarningState extends GameState {
<a href="${ <a href="${
THIRDPARTY_URLS.standaloneStorePage THIRDPARTY_URLS.standaloneStorePage + "?ref=mobile"
}" class="standaloneLink" target="_blank">Get the shapez.io standalone!</a> }" class="standaloneLink" target="_blank">Get the shapez.io standalone!</a>
`; `;
} }

View File

@ -16,7 +16,7 @@ const originalContents = fs
const original = YAML.parse(originalContents); const original = YAML.parse(originalContents);
const placeholderRegexp = /[[<]([a-zA-Z_0-9]+)[\]<]/gi; const placeholderRegexp = /[[<]([a-zA-Z_0-9/-_]+?)[\]>]/gi;
function match(originalObj, translatedObj, path = "/") { function match(originalObj, translatedObj, path = "/") {
for (const key in originalObj) { for (const key in originalObj) {
@ -29,6 +29,7 @@ function match(originalObj, translatedObj, path = "/") {
const valueMatching = translatedObj[key]; const valueMatching = translatedObj[key];
if (typeof valueOriginal !== typeof valueMatching) { if (typeof valueOriginal !== typeof valueMatching) {
console.warn(" | MISMATCHING type (obj|non-obj) in", path + key); console.warn(" | MISMATCHING type (obj|non-obj) in", path + key);
translatedObj[key] = originalObj[key];
continue; continue;
} }

1
translations/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
tmp

View File

@ -2,61 +2,51 @@ steamPage:
shortText: shapez.io is a game about building factories to automate the creation shortText: shapez.io is a game about building factories to automate the creation
and processing of increasingly complex shapes across an infinitely and processing of increasingly complex shapes across an infinitely
expanding map. expanding map.
discordLink: Official Discord - Chat with me! discordLinkShort: Official Discord
longText: >- intro: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] Shapez.io is a relaxed game in which you have to build factories for the
automated production of geometric shapes.
shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map.
Upon delivering the requested shapes you'll progress within the game and unlock upgrades to speed up your factory. And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling!
As the demand for shapes increases, you'll have to scale up your factory to meet the demand - Don't forget about resources though, you'll have to expand across the [b]infinite map[/b]! While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors!
Soon you'll have to mix colors and paint your shapes with them - Combine red, green and blue color resources to produce different colors and paint shapes with them to satisfy the demand. Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later!
title_advantages: Standalone Advantages
advantages:
- <b>12 New Level</b> for a total of 26 levels
- <b>18 New Buildings</b> for a fully automated factory!
- <b>20 Upgrade Tiers</b> for many hours of fun!
- <b>Wires Update</b> for an entirely new dimension!
- <b>Dark Mode</b>!
- Unlimited Savegames
- Unlimited Markers
- Support me! ❤️
title_future: Planned Content
planned:
- Blueprint Library (Standalone Exclusive)
- Steam Achievements
- Puzzle Mode
- Minimap
- Mods
- Sandbox mode
- ... and a lot more!
title_open_source: This game is open source!
title_links: Links
links:
discord: Official Discord
roadmap: Roadmap
subreddit: Subreddit
source_code: Source code (GitHub)
translate: Help translate
text_open_source: >-
Anybody can contribute, I'm actively involved in the community and
attempt to review all suggestions and take feedback into consideration
where possible.
This game features 18 progressive levels (Which should already keep you busy for hours!) but I'm constantly adding new content - There's a lot planned! Be sure to check out my trello board for the full roadmap!
Purchasing the game gives you access to the standalone version which has additional features, and you'll also receive access to newly developed features.
[b]Standalone Advantages[/b]
[list]
[*] Dark Mode
[*] Unlimited Waypoints
[*] Unlimited Savegames
[*] Additional settings
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020.
[*] Coming soon: More Levels
[*] Allows me to further develop shapez.io ❤️
[/list]
[b]Future Updates[/b]
I am updating the game often and trying to push an update at least once 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]
[b]This game is open source![/b]
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!
[b]Links[/b]
[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]
[/list]
global: global:
loading: Loading loading: Loading
error: Error error: Error
@ -131,7 +121,9 @@ dialogs:
text: "Failed to load your savegame:" text: "Failed to load your savegame:"
confirmSavegameDelete: confirmSavegameDelete:
title: Confirm deletion title: Confirm deletion
text: Are you sure you want to delete the game? text: Are you sure you want to delete the following game?<br><br>
'<savegameName>' at level <savegameLevel><br><br> This can not be
undone!
savegameDeletionError: savegameDeletionError:
title: Failed to delete title: Failed to delete
text: "Failed to delete the savegame:" text: "Failed to delete the savegame:"
@ -191,8 +183,7 @@ dialogs:
title: New Marker title: New Marker
titleEdit: Edit Marker titleEdit: Edit Marker
desc: Give it a meaningful name, you can also include a <strong>short desc: Give it a meaningful name, you can also include a <strong>short
key</strong> of a shape (Which you can generate <a key</strong> of a shape (Which you can generate <link>here</link>)
href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: You can only create two custom markers in the demo. Get the standalone for desc: You can only create two custom markers in the demo. Get the standalone for
unlimited markers! unlimited markers!
@ -208,6 +199,11 @@ dialogs:
renameSavegame: renameSavegame:
title: Rename Savegame title: Rename Savegame
desc: You can rename your savegame here. desc: You can rename your savegame here.
entityWarning:
title: Performance Warning
desc: You have placed a lot of buildings, this is just a friendly reminder that
the game can not handle an endless count of buildings - So try to
keep your factories compact!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Move moveMap: Move
@ -345,6 +341,38 @@ ingame:
one_miner: 1 Miner one_miner: 1 Miner
n_miners: <amount> Miners n_miners: <amount> Miners
limited_items: Limited to <max_throughput> limited_items: Limited to <max_throughput>
watermark:
title: Demo version
desc: Click here to see the Steam version advantages!
get_on_steam: Get on steam
standaloneAdvantages:
title: Get the full version!
no_thanks: No, thanks!
points:
levels:
title: 12 New Levels
desc: For a total of 26 levels!
buildings:
title: 18 New Buildings
desc: Fully automate your factory!
savegames:
title: ∞ Savegames
desc: As many as your heart desires!
upgrades:
title: 20 Upgrade Tiers
desc: This demo version has only 5!
markers:
title: ∞ Markers
desc: Never get lost in your factory!
wires:
title: Wires
desc: An entirely new dimension!
darkmode:
title: Dark Mode
desc: Stop hurting your eyes!
support:
title: Support me
desc: I develop it in my spare time!
shopUpgrades: shopUpgrades:
belt: belt:
name: Belts, Distributor & Tunnels name: Belts, Distributor & Tunnels
@ -363,6 +391,7 @@ buildings:
deliver: Deliver deliver: Deliver
toUnlock: to unlock toUnlock: to unlock
levelShortcut: LVL levelShortcut: LVL
endOfDemo: End of Demo
belt: belt:
default: default:
name: Conveyor Belt name: Conveyor Belt
@ -433,8 +462,9 @@ buildings:
input. input.
quad: quad:
name: Painter (Quad) name: Painter (Quad)
description: Allows you to color each quadrant of the shape with a different description: Allows you to color each quadrant of the shape individually. Only
color. slots with a <strong>truthy signal</strong> on the wires layer
will be painted!
trash: trash:
default: default:
name: Trash name: Trash
@ -544,14 +574,20 @@ buildings:
name: Virtual Painter name: Virtual Painter
description: Virtually paints the shape from the bottom input with the shape on description: Virtually paints the shape from the bottom input with the shape on
the right input. the right input.
item_producer:
default:
name: Item Producer
description: Available in sandbox mode only, outputs the given signal from the
wires layer on the regular layer.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Cutting Shapes title: Cutting Shapes
desc: You just unlocked the <strong>cutter</strong> - it cuts shapes half from desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half
<strong>top to bottom</strong> regardless of its from top to bottom <strong>regardless of its
orientation!<br><br>Be sure to get rid of the waste, or otherwise orientation</strong>!<br><br>Be sure to get rid of the waste, or
<strong>it will stall</strong> - For this purpose I gave you a otherwise <strong>it will clog and stall</strong> - For this purpose
trash, which destroys everything you put into it! I have given you the <strong>trash</strong>, which destroys
everything you put into it!
reward_rotater: reward_rotater:
title: Rotating title: Rotating
desc: The <strong>rotater</strong> has been unlocked! It rotates shapes desc: The <strong>rotater</strong> has been unlocked! It rotates shapes
@ -574,9 +610,9 @@ storyRewards:
<strong>stacked on top</strong> of the left input! <strong>stacked on top</strong> of the left input!
reward_splitter: reward_splitter:
title: Splitter/Merger title: Splitter/Merger
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can desc: You have unlocked a <strong>splitter</strong> variant of the
be used to build bigger factories by <strong>splitting and merging <strong>balancer</strong> - It accepts one input and splits them
items</strong> onto multiple belts!<br><br> into two!
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
desc: The <strong>tunnel</strong> has been unlocked - You can now tunnel items desc: The <strong>tunnel</strong> has been unlocked - You can now tunnel items
@ -589,9 +625,10 @@ storyRewards:
variants</strong>! variants</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Chaining Extractor title: Chaining Extractor
desc: You have unlocked the <strong>chaining extractor</strong>! It can desc: "You have unlocked the <strong>chained extractor</strong>! It can
<strong>forward its resources</strong> to other extractors so you <strong>forward its resources</strong> to other extractors so you
can more efficiently extract resources! can more efficiently extract resources!<br><br> PS: The old
extractor has been replaced in your toolbar now!"
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunnel Tier II title: Tunnel Tier II
desc: You have unlocked a new variant of the <strong>tunnel</strong> - It has a desc: You have unlocked a new variant of the <strong>tunnel</strong> - It has a
@ -606,19 +643,20 @@ storyRewards:
desc: You have unlocked a variant of the <strong>painter</strong> - It works as desc: You have unlocked a variant of the <strong>painter</strong> - It works as
the regular painter but processes <strong>two shapes at the regular painter but processes <strong>two shapes at
once</strong> consuming just one color instead of two! once</strong> consuming just one color instead of two!
reward_painter_quad:
title: Quad Painting
desc: You have unlocked a variant of the <strong>painter</strong> - It allows
you to paint each part of the shape individually!
reward_storage: reward_storage:
title: Storage Buffer title: Storage Buffer
desc: You have unlocked a variant of the <strong>trash</strong> - It allows you desc: You have unlocked the <strong>storage</strong> building - It allows you to
to store items up to a given capacity! store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
reward_freeplay: reward_freeplay:
title: Freeplay title: Freeplay
desc: You did it! You unlocked the <strong>free-play mode</strong>! This means desc: You did it! You unlocked the <strong>free-play mode</strong>! This means
that shapes are now randomly generated! (No worries, more content is that shapes are now <strong>randomly</strong> generated!<br><br>
planned for the standalone!) Since the hub will require a <strong>throughput</strong> from now
on, I highly recommend to build a machine which automatically
delivers the requested shape!<br><br> The HUB outputs the requested
shape on the wires layer, so all you have to do is to analyze it and
automatically configure your factory based on that.
reward_blueprints: reward_blueprints:
title: Blueprints title: Blueprints
desc: You can now <strong>copy and paste</strong> parts of your factory! Select desc: You can now <strong>copy and paste</strong> parts of your factory! Select
@ -653,17 +691,12 @@ storyRewards:
title: Rotater (180 degrees) title: Rotater (180 degrees)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D) you to rotate a shape by 180 degress (Surprise! :D)
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Display
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize its contents! wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Constant Signal
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: You unlocked the <strong>constant signal</strong> building on the wires
@ -687,6 +720,23 @@ storyRewards:
shape requested by the HUB (I recommend to try it!).<br><br> - Build shape requested by the HUB (I recommend to try it!).<br><br> - Build
something cool with wires.<br><br> - Continue to play something cool with wires.<br><br> - Continue to play
regulary.<br><br> Whatever you choose, remember to have fun! regulary.<br><br> Whatever you choose, remember to have fun!
reward_wires_painter_and_levers:
title: Wires & Quad Painter
desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate
layer on top of the regular layer and introduces a lot of new
mechanics!<br><br> For the beginning I unlocked you the <strong>Quad
Painter</strong> - Connect the slots you would like to paint with on
the wires layer!<br><br> To switch to the wires layer, press
<strong>E</strong>."
reward_filter:
title: Item Filter
desc: You unlocked the <strong>Item Filter</strong>! It will route items either
to the top or the right output depending on whether they match the
signal from the wires layer or not.<br><br> You can also pass in a
boolean signal (1 / 0) to entirely activate or disable it.
reward_demo_end:
title: End of Demo
desc: You have reached the end of the demo version!
settings: settings:
title: Settings title: Settings
categories: categories:
@ -907,7 +957,6 @@ keybindings:
constant_signal: Constant Signal constant_signal: Constant Signal
logic_gate: Logic Gate logic_gate: Logic Gate
lever: Switch (regular) lever: Switch (regular)
lever_wires: Switch (wires)
filter: Filter filter: Filter
wire_tunnel: Wire Crossing wire_tunnel: Wire Crossing
display: Display display: Display
@ -916,6 +965,8 @@ keybindings:
transistor: Transistor transistor: Transistor
analyzer: Shape Analyzer analyzer: Shape Analyzer
comparator: Compare comparator: Compare
item_producer: Item Producer (Sandbox)
copyWireValue: "Wires: Copy value below cursor"
about: about:
title: About this Game title: About this Game
body: >- body: >-
@ -1000,3 +1051,4 @@ tips:
- To clear belts, cut the area and then paste it at the same location. - To clear belts, cut the area and then paste it at the same location.
- Press F4 to show your FPS and Tick Rate. - Press F4 to show your FPS and Tick Rate.
- Press F4 twice to show the tile of your mouse and camera. - Press F4 twice to show the tile of your mouse and camera.
- You can click a pinned shape on the left side to unpin it.

View File

@ -2,61 +2,52 @@ steamPage:
shortText: shapez.io és un joc que té com a objectiu construir i automatitzar shortText: shapez.io és un joc que té com a objectiu construir i automatitzar
fàbriques per tal de produir figures cada cop més complexes en un mapa fàbriques per tal de produir figures cada cop més complexes en un mapa
infinit. infinit.
discordLink: Discord Oficial (en Anglès) discordLinkShort: Official Discord
longText: >- intro: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] Shapez.io es un joc relaxant en el qual has de construir fàbriques per a
la producció automàtica de formes geomètriques.
shapez.io és un joc que té com a objectiu construir i automatitzar fàbriques per tal de produir figures cada cop més complexes en un mapa infinit. A mesura que el nivell augmenta, les formes esdevenen més complexes, i has d'explorar el mapa infinit.
Al lliurar les formes geomètriques sol·licitades, progressaràs i desbloquejaràs millores per accelerar la teva fàbrica. Per si això no era suficient, la demanda de formes creixerà exponencialment, pel que hauràs d'escalar les teves fàbriques!
Com que la demanda de figures va augmentant, hauràs de augmentar proporcionalment la teva fàbrica per satisfer la demanda. Però no t'oblidis dels recursos, ja que t'hauràs d'expandre a través del [b]mapa infinit[/b]! Mentre que al principi només processes formes, més envant les hauràs de colorejar, pel que necessitaràs extreure y mesclar colors!
Sovint, hauràs de començar a mesclar color i pintar les figures amb aquests; combina roig, verd i blau per produïr diferents colors i pintar les figures amb aquests per satisfer la demanda. Si compres el joc a Steam tendràs accés al joc complet, però també pots jugar a la demo a shapez.io primer i decidir-te més tard!
title_advantages: "Avantatges de la versió completa:"
advantages:
- <b>12 Nous nivells</b> per a un total de 26 nivells
- <b>18 Nous edificis</b> per construir una fàbrica completament
automatitzada!
- <b>20 Nivells de millora</b> per més hores de diversió!
- <b>Actualització de Cablejat</b> per a una dimensió totalment nova!
- <b>Mode Oscur</b>!
- Pots guardar jocs il·limitats
- Marcadors il·limitats
- Em dones suport! ❤️
title_future: Contingut Planejat
planned:
- Llibreria de plànols (Exclusiu de la versió completa)
- Trofeus d'Steam
- Mode Puzzle
- Minimapa
- Mods
- Mode Sandbox
- ... i mot més!
title_open_source: Aquest joc és de codi obert!
title_links: Enllaços
links:
discord: Discord Oficial
roadmap: Full de ruta
subreddit: Subreddit
source_code: Codi font (GitHub)
translate: Ajuda a traduir-lo
text_open_source: >-
Qualsevol pot contribuir, i estic activament involucrat en la comunitat
i intent prestar atenció a tots els suggeriments i tenir en compte tots
el comentaris.
Aquest joc presenta 18 nivells progressius (Els quals ja haurien de mantenir-te ocupat durant hores!) però estic constantment afegint nou contingut. Tenim moltes coses planejades! Assegura't de mirar el meu tauler de Trello per al full de ruta complet!
La compra del joc et dona accés a versió independent amb característiques adicionals, i també rebràs accés a les noves característiques que es desenvolupin.
[b]Ventatges de la Versió Independent[/b]
[list]
[*] Mode Oscur
[*] Punts d'interès il·limitats
[*] Guardar partides il·limitades
[*] Configuracions Adicionals
[*] Pròximament: Cables i Energia! Objectiu (aproximadament) per finals de Juliol del 2020.
[*] Pròximament: Més Nivells
[*] Em permet seguir desenvolupant shapez.io ❤️
[/list]
[b]Futures Actualitzacions[/b]
Actualitzo el joc sovint i intent treure una actualització nova per setmana!
[list]
[*] Mapes i reptes diferents (p.e. mapes amb obstacles)
[*] Trencaclosques (Entrega la figura amb una àrea/conjunt d'edificis delimitats)
[*] Un "Mode Història" on els edificis tenen un cost
[*] Generador de mapes configurable (Configura el tamany/densitat de les formes/recursos, llavors i més)
[*] Formes geomètriques adicionals
[*] Millores de rendiment (El joc ja funciona força bé!)
[*] Moltes coses més!
[/list]
[b]Aquest joc és de codi obert![/b]
Qualsevol pot contribuir, estic involucrat activament en la comunitat i intento revisar tots els suggeriments i tenir en compte els comentaris sempre que sigui possible. Assegureu-vos de consultar el meu tauler de trello per obtenir el full de ruta complet!
[b]Enllaços[/b]
[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]
[/list]
global: global:
loading: Carregant loading: Carregant
error: Error error: Error
@ -132,7 +123,9 @@ dialogs:
text: "Ha ocurrit un error al intentar carregar la teva partida:" text: "Ha ocurrit un error al intentar carregar la teva partida:"
confirmSavegameDelete: confirmSavegameDelete:
title: Eliminar title: Eliminar
text: Estàs segur que vols eliminar la partida guardada? text: Are you sure you want to delete the following game?<br><br>
'<savegameName>' at level <savegameLevel><br><br> This can not be
undone!
savegameDeletionError: savegameDeletionError:
title: Error en eliminar title: Error en eliminar
text: "Ha ocurrit un error al intentar eliminar la teva partida:" text: "Ha ocurrit un error al intentar eliminar la teva partida:"
@ -193,10 +186,9 @@ dialogs:
transportadores ja col·locades.<br>" transportadores ja col·locades.<br>"
createMarker: createMarker:
title: Nou Marcador title: Nou Marcador
titleEdit: Edit Marker titleEdit: Editar Marcador
desc: 'Dona-li un nom significatiu, també pots usar <strong>claus</strong> de desc: Give it a meaningful name, you can also include a <strong>short
les figures (Pots generarles a: <a href="https://viewer.shapez.io" key</strong> of a shape (Which you can generate <link>here</link>)
target="_blank">aquí</a>)'
markerDemoLimit: markerDemoLimit:
desc: En la Demo només pots crear dos marcadors, aconsegueix la versió completa desc: En la Demo només pots crear dos marcadors, aconsegueix la versió completa
per gaudir de l'experiència completa! per gaudir de l'experiència completa!
@ -206,13 +198,18 @@ dialogs:
conte que aquest procés pot ser molt lent i inclús crashear el teu conte que aquest procés pot ser molt lent i inclús crashear el teu
joc! joc!
editSignal: editSignal:
title: Set Signal title: Configura la Senyal
descItems: "Choose a pre-defined item:" descItems: "Tria un ítem predefinit:"
descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you descShortKey: ... o introdueix un<strong>códi de forma</strong> (El qual pots
can generate <link>here</link>) generar <link>aqui</link>)
renameSavegame: renameSavegame:
title: Rename Savegame title: Canviar el nom.
desc: You can rename your savegame here. desc: Canviar el nom de la partida guardada.
entityWarning:
title: Alerta de rendiment
desc: Has col·locat molts edificis, això és una alerta amistosa de que el joc no
pot suportar edificis infinits, així que intenta mantenir els teus
dissenys minimament compactes!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Moure moveMap: Moure
@ -351,7 +348,39 @@ ingame:
connectedMiners: connectedMiners:
one_miner: 1 Miner one_miner: 1 Miner
n_miners: <amount> Miners n_miners: <amount> Miners
limited_items: Limited to <max_throughput> limited_items: Limitat a <max_throughput>
watermark:
title: Versió demo
desc: Premeu aquí per veure les avantatges d'Steam!
get_on_steam: Comprar a Steam
standaloneAdvantages:
title: Aconsegueix la versió completa!
no_thanks: No, gràcies!
points:
levels:
title: 12 Nivells now
desc: Per a un total de 26 nivells!
buildings:
title: 18 Nous edificis
desc: Automatitza la teva fàbrica completament!
savegames:
title: Guarda ∞ partides
desc: Tantes com vulguis!
upgrades:
title: 20 Nivells de millora
desc: La versió demo només en té 5!
markers:
title: ∞ Marcadors
desc: Mai et perdis per el mapa!
wires:
title: Cables
desc: Una nova dimensió!
darkmode:
title: Mode Oscur
desc: Deixa de fer-te mal als ulls!
support:
title: Dona'm suport
desc: EL desenvolupo en el meu temps lliure!
shopUpgrades: shopUpgrades:
belt: belt:
name: Cintes transportadores, Distribuidors i Túnels name: Cintes transportadores, Distribuidors i Túnels
@ -370,6 +399,7 @@ buildings:
deliver: Envia deliver: Envia
toUnlock: per a desbloquejar toUnlock: per a desbloquejar
levelShortcut: NVL levelShortcut: NVL
endOfDemo: Fi de la Demo
belt: belt:
default: default:
name: Cinta transportadora name: Cinta transportadora
@ -380,9 +410,9 @@ buildings:
name: Cable name: Cable
description: Permet transportar energia. description: Permet transportar energia.
second: second:
name: Wire name: Cable
description: Transfers signals, which can be items, colors or booleans (1 / 0). description: Transfereix senyals, que poden ser ítems, colors o booleà. Cables
Different colored wires do not connect. de diferents colors no es connecten entre ells.
miner: miner:
default: default:
name: Extractor name: Extractor
@ -400,12 +430,12 @@ buildings:
description: Permet transportar recursos per sota d'edificis i cintes. description: Permet transportar recursos per sota d'edificis i cintes.
cutter: cutter:
default: default:
name: Cisalla name: Tallador
description: Talla figures de dalt a baix i produeix les dues meitats. description: Talla figures de dalt a baix i produeix les dues meitats.
<strong>Si utilitzes sols una part, assegura't de destruir <strong>Si utilitzes sols una part, assegura't de destruir
l'altra o es pararà!</strong> l'altra o es pararà!</strong>
quad: quad:
name: Cisalla (Quàdruple) name: Tallador (Quàdruple)
description: Talla figures en quatre parts. <strong>Si no utilitzes totes les description: Talla figures en quatre parts. <strong>Si no utilitzes totes les
parts, assegura't de destruir les altres o es pararà!</strong> parts, assegura't de destruir les altres o es pararà!</strong>
rotater: rotater:
@ -416,8 +446,8 @@ buildings:
name: Rotador (Antihorari) name: Rotador (Antihorari)
description: Rota formes en sentit antihorari 90 graus. description: Rota formes en sentit antihorari 90 graus.
rotate180: rotate180:
name: Rotate (180) name: Rotador (180)
description: Rotates shapes by 180 degrees. description: Rota formes 180 graus.
stacker: stacker:
default: default:
name: Apilador name: Apilador
@ -441,124 +471,137 @@ buildings:
description: Pinta les figures de l'esquerra amb el color de dalt. description: Pinta les figures de l'esquerra amb el color de dalt.
quad: quad:
name: Pintor (Quàdruple) name: Pintor (Quàdruple)
description: Permet pintar cadascun dels quadrants de forma diferent. description: Allows you to color each quadrant of the shape individually. Only
slots with a <strong>truthy signal</strong> on the wires layer
will be painted!
trash: trash:
default: default:
name: Paperera name: Paperera
description: Acepta objectes de tots els costats i els destrueix. Permanentment. description: Acepta objectes de tots els costats i els destrueix. Permanentment.
balancer: balancer:
default: default:
name: Balancer name: Equilibrador
description: Multifunctional - Evenly distributes all inputs onto all outputs. description: Multifuncional - Reparteix uniformament totes les entrades a totes
les sortides.
merger: merger:
name: Merger (compact) name: Fusionador (compacte)
description: Merges two conveyor belts into one. description: Fusiona dues cintes transportadores en una.
merger-inverse: merger-inverse:
name: Merger (compact) name: Fusionador (compacte)
description: Merges two conveyor belts into one. description: Fusiona dues cintes transportadores en una.
splitter: splitter:
name: Splitter (compact) name: Divisor (compacte)
description: Splits one conveyor belt into two. description: Divideix una cinta transportadora en dues.
splitter-inverse: splitter-inverse:
name: Splitter (compact) name: Divisor (compacte)
description: Splits one conveyor belt into two. description: Divideix una cinta transportadora en dues.
storage: storage:
default: default:
name: Storage name: Emmagatzematge
description: Stores excess items, up to a given capacity. Prioritizes the left description: Emmagatzema articles en excés fins a una capacitat determinada.
output and can be used as an overflow gate. Prioritza la sortida esquerra i es pot utilitzar com a porta de
desbordament.
wire_tunnel: wire_tunnel:
default: default:
name: Wire Crossing name: Encreuament de cablejat
description: Allows to cross two wires without connecting them. description: Permet creuar dos cables sense conectar-los.
constant_signal: constant_signal:
default: default:
name: Constant Signal name: Senyal Constant
description: Emits a constant signal, which can be either a shape, color or description: EEmet una senyal constant, que pot esser una forma, color o
boolean (1 / 0). booleana (1 / 0).
lever: lever:
default: default:
name: Switch name: Interruptor
description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, description: Pot esser alternat per emetre una senyal booleana (1 / 0) a la capa
which can then be used to control for example an item filter. de cablejat.
logic_gate: logic_gate:
default: default:
name: AND Gate name: Porta AND
description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape,
color or boolean "1") color or boolean "1")
not: not:
name: NOT Gate name: NOT Gate
description: Emits a boolean "1" if the input is not truthy. (Truthy means description: Emet una senyal booleana "1" si les dues entrades són vertaderes.
shape, color or boolean "1") (Vertadera significa que la senyal és una forma, un color o la
senyal booleana "1").
xor: xor:
name: XOR Gate name: Porta XOR
description: Emits a boolean "1" if one of the inputs is truthy, but not both. description: Emet una senyal booleana "1" si i només si una de les senyals és
(Truthy means shape, color or boolean "1") vertadera. (Vertadera significa que la senyal és una forma, un
color o la senyal booleana "1").
or: or:
name: OR Gate name: Porta OR
description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means description: Emet una senyal booleana "1" si una de les senyals és vertadera.
shape, color or boolean "1") (Vertadera significa que la senyal és una forma, un color o la
senyal booleana "1").
transistor: transistor:
default: default:
name: Transistor name: Transistor
description: Forwards the bottom input if the side input is truthy (a shape, description: Deixa passar la senyal inferior si la senyal lateral és vertadera
color or "1"). (una forma, color o "1").
mirrored: mirrored:
name: Transistor name: Transistor
description: Forwards the bottom input if the side input is truthy (a shape, description: Deixa passar la senyal inferior si la senyal lateral és vertadera
color or "1"). (una forma, color o "1").
filter: filter:
default: default:
name: Filter name: Filtre
description: Connect a signal to route all matching items to the top and the description: Conecta una senyal per redirigir tots els ítems que coincideixin
remaining to the right. Can be controlled with boolean signals amb la senyal a la part superior, i la resta a la dreta. També
too. es pot controlar amb senyals booleanes.
display: display:
default: default:
name: Display name: Pantalla
description: Connect a signal to show it on the display - It can be a shape, description: Conecta una senyal per que es mostri a la pantalla. Pot ser una
color or boolean. forma, color o booleà
reader: reader:
default: default:
name: Belt Reader name: Lector de cinta
description: Allows to measure the average belt throughput. Outputs the last description: Permet mesurar el rendiment de la cinta. Emet el darrer ítem llegit
read item on the wires layer (once unlocked). a la capa de cablejat (un pic desbloquejada).
analyzer: analyzer:
default: default:
name: Shape Analyzer name: Analitzador de formes
description: Analyzes the top right quadrant of the lowest layer of the shape description: Analitza el quadrant superior dret de la capa més baixa de la forma
and returns its shape and color. i retorna el color i la forma.
comparator: comparator:
default: default:
name: Compare name: Comparador
description: Returns boolean "1" if both signals are exactly equal. Can compare description: Retorna una senyal booleana "1" si les dues senyals són exactament
shapes, items and booleans. iguales.Pot comparar formes, colors i booleans.
virtual_processor: virtual_processor:
default: default:
name: Virtual Cutter name: Tallador virtual
description: Virtually cuts the shape into two halves. description: Talla la forma virtual en dues parts.
rotater: rotater:
name: Virtual Rotater name: Rotador Virtual
description: Virtually rotates the shape, both clockwise and counter-clockwise. description: Rota la forma virtual, tant en sentit horari com antihorari.
unstacker: unstacker:
name: Virtual Unstacker name: Desapilador Virtual
description: Virtually extracts the topmost layer to the right output and the description: Extreu la capa superior a la sortida dreta i la resta a la sortida
remaining ones to the left. esquerra.
stacker: stacker:
name: Virtual Stacker name: Apilador Virtual
description: Virtually stacks the right shape onto the left. description: Apila la figura de l'entrada dreta damunt l'entrada esquerra.
painter: painter:
name: Virtual Painter name: Pintador Virtual
description: Virtually paints the shape from the bottom input with the shape on description: Pinta la capa de l'entrada inferior amb la figura de la entrada
the right input. dreta.
item_producer:
default:
name: Productor d'ítems
description: Només avaliable en mode "sandbox", emet la senyal de la capa de
cablejat a la capa normal.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Tallar figures title: Tallar figures
desc: Acabes de desbloquejar la <strong>Cisalla</strong> - talla les figures per desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half
la meitat <strong>de dalt a baix</strong>; sense importar la seva/ua from top to bottom <strong>regardless of its
orientació!<br><br>Assegura't d'eliminar les parts que no utilitzes, orientation</strong>!<br><br>Be sure to get rid of the waste, or
si no <strong>es pararà</strong> - Es per això que t'he donat una otherwise <strong>it will clog and stall</strong> - For this purpose
paperera, utilitza-la! I have given you the <strong>trash</strong>, which destroys
everything you put into it!
reward_rotater: reward_rotater:
title: Rotar title: Rotar
desc: El <strong>Rotador</strong> s'ha desbloquejat! Rota formes en sentit desc: El <strong>Rotador</strong> s'ha desbloquejat! Rota formes en sentit
@ -582,10 +625,9 @@ storyRewards:
<strong>s'apilarà damunt</strong> de la de l'esquerra! <strong>s'apilarà damunt</strong> de la de l'esquerra!
reward_splitter: reward_splitter:
title: Distribuïdor title: Distribuïdor
desc: El <strong>distribuïdor</strong> multifuncional s'ha desbloquejat - Pot desc: You have unlocked a <strong>splitter</strong> variant of the
ser utilitzat per a construir fàbriques més grans per mitjà de la <strong>balancer</strong> - It accepts one input and splits them
<strong>separació i fusió</strong> de figures de diferents into two!
cintes!<br><br>
reward_tunnel: reward_tunnel:
title: Túnel title: Túnel
desc: El <strong>túnel</strong> s'ha desbloquejat - Ara pots passar objectes a desc: El <strong>túnel</strong> s'ha desbloquejat - Ara pots passar objectes a
@ -598,17 +640,18 @@ storyRewards:
variants</strong>! variants</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Extractor en cadena title: Extractor en cadena
desc: Has desbloquejat el <strong>extractor en cadena</strong>! Pot desc: "You have unlocked the <strong>chained extractor</strong>! It can
<strong>passar els seus recursos</strong> a altres extractors perquè <strong>forward its resources</strong> to other extractors so you
pugues extraure recursos més eficientment! can more efficiently extract resources!<br><br> PS: The old
extractor has been replaced in your toolbar now!"
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Túnel de Nivell II title: Túnel de Nivell II
desc: Has desbloquejat una nova variant del <strong>túnel</strong> - Té una desc: Has desbloquejat una nova variant del <strong>túnel</strong> - Té una
<strong>major distància màxima</strong>, i ara pots mesclar tipus de <strong>major distància màxima</strong>, i ara pots mesclar tipus de
túnels! túnels!
reward_cutter_quad: reward_cutter_quad:
title: Cisalla quàdruple title: Tallador quàdruple
desc: Has desbloquejat una variant de la <strong>cisalla</strong> - Et permet desc: Has desbloquejat una variant de la <strong>tallador</strong> - Et permet
tallar figures en <strong>quatre parts</strong> en lloc de sols en tallar figures en <strong>quatre parts</strong> en lloc de sols en
dos! dos!
reward_painter_double: reward_painter_double:
@ -616,20 +659,20 @@ storyRewards:
desc: Has desbloquejat una variant del <strong>pintor</strong> - Funciona com el desc: Has desbloquejat una variant del <strong>pintor</strong> - Funciona com el
pintor regular però processa <strong>dos figures alhora</strong>, pintor regular però processa <strong>dos figures alhora</strong>,
consumint sols un color en lloc de dos! consumint sols un color en lloc de dos!
reward_painter_quad:
title: Pintor quàdruple
desc: Has desbloquejat una variant del <strong>pintor</strong> - Et permet
pintar cada part de la figura individualment!
reward_storage: reward_storage:
title: Magatzem de reserva title: Magatzem de reserva
desc: Has desbloquejat una variant de la <strong>paperera</strong> - Et permet desc: You have unlocked the <strong>storage</strong> building - It allows you to
emmagatzemar objectes fins a una capacitat màxima! store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
reward_freeplay: reward_freeplay:
title: Joc lliure title: Joc lliure
desc: Ho has fet! Has desbloquejat el <strong>mode de joc lliure</strong>! Això desc: You did it! You unlocked the <strong>free-play mode</strong>! This means
significa que les figures ara són generades aleatòriament! (No that shapes are now <strong>randomly</strong> generated!<br><br>
t'angoixis/es, hi ha més contingut planejat per a la versió completa Since the hub will require a <strong>throughput</strong> from now
- fora del web) on, I highly recommend to build a machine which automatically
delivers the requested shape!<br><br> The HUB outputs the requested
shape on the wires layer, so all you have to do is to analyze it and
automatically configure your factory based on that.
reward_blueprints: reward_blueprints:
title: Plànols title: Plànols
desc: Ara pots <strong>copiar i apegar/enxegar</strong> parts de la teva/ua desc: Ara pots <strong>copiar i apegar/enxegar</strong> parts de la teva/ua
@ -648,68 +691,82 @@ storyRewards:
desc: Enhorabona! Per cert, hi ha més contingut planejat per a la versió desc: Enhorabona! Per cert, hi ha més contingut planejat per a la versió
completa - fora del web! completa - fora del web!
reward_balancer: reward_balancer:
title: Balancer title: Equilibrador
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can desc: Has desbloquejat el multifuncional <strong>equilibrador</strong>! Pot
be used to build bigger factories by <strong>splitting and merging ésser emprat per construir fàbriques més grans <strong>dividint i
items</strong> onto multiple belts!<br><br> fusionant ítems</strong> a múltiples cintes!<br><br>
reward_merger: reward_merger:
title: Compact Merger title: Fusionador Compacte
desc: You have unlocked a <strong>merger</strong> variant of the desc: Has desbloquejat una variant <strong>fusionadora</strong> de
<strong>balancer</strong> - It accepts two inputs and merges them l'<strong>equilibrador</strong>. Accepta dues entrades i les fusiona
into one belt! en una cinta!
reward_belt_reader: reward_belt_reader:
title: Belt reader title: Lector de cinta
desc: You have now unlocked the <strong>belt reader</strong>! It allows you to desc: You have now unlocked the <strong>belt reader</strong>! It allows you to
measure the throughput of a belt.<br><br>And wait until you unlock measure the throughput of a belt.<br><br>And wait until you unlock
wires - then it gets really useful! wires - then it gets really useful!
reward_rotater_180: reward_rotater_180:
title: Rotater (180 degrees) title: Rotador (180 graus)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: Acabes de desbloquejar un altre <strong>rotador</strong>!. Et permet rotar
you to rotate a shape by 180 degress (Surprise! :D) una forma 180 graus.
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Pantalla
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize its contents! wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Senyal constant
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: >-
layer! This is useful to connect it to <strong>item filters</strong> Has desbloquejat l'emisor de <strong>senyal constant</strong> a la
for example.<br><br> The constant signal can emit a capa de cables! És molt util per conectar-los a <strong>filtres
<strong>shape</strong>, <strong>color</strong> or d'ítems</strong>, per exemple.<br><br> Pot emetre una
<strong>boolean</strong> (1 / 0). <strong>forma</strong>, <strong>color</strong> or
<strong>booleà</strong> (1 / 0).
reward_logic_gates: reward_logic_gates:
title: Logic Gates title: Portes lògiques
desc: You unlocked <strong>logic gates</strong>! You don't have to be excited desc: Has desbloquejat les <strong>portes lògiques</strong>! No fa falta
about this, but it's actually super cool!<br><br> With those gates t'emocionis per això, però és molt guai!<br><br> Amb aquestes portes
you can now compute AND, OR, XOR and NOT operations.<br><br> As a lògiques pots computar operacions AND, OR, XOR i NOT. <br><br> També
bonus on top I also just gave you a <strong>transistor</strong>! tens disponible un <strong>transistor</strong>!
reward_virtual_processing: reward_virtual_processing:
title: Virtual Processing title: Processament Virtual
desc: I just gave a whole bunch of new buildings which allow you to desc: Acabes de desbloquejar un munt de nous edificis que et permeten
<strong>simulate the processing of shapes</strong>!<br><br> You can <strong>simular el processament de figures</strong>!<br><br> Ara
now simulate a cutter, rotater, stacker and more on the wires layer! pots simular una tallador, rotador, apilador i més a la capa de
With this you now have three options to continue the game:<br><br> - cables! Amb això ara tens tres opcions per continuar el
Build an <strong>automated machine</strong> to create any possible joc:<br><br> - Construir una <strong>màquina automàtica</strong>
shape requested by the HUB (I recommend to try it!).<br><br> - Build que crea totes les formes demanades per el NEXE (Recoman
something cool with wires.<br><br> - Continue to play provar-ho!).<br><br> - Construir algo guai amb cables.<br><br> -
regulary.<br><br> Whatever you choose, remember to have fun! Continua jugant normalment.<br><br> Triis el que triis, recorda
passar-ho bé!
reward_wires_painter_and_levers:
title: Cables i Pintador Quàdruple
desc: "\"Has desbloquejat la <strong>Capa de Cables</strong>: És una capa
separada damunt la capa normal i introdueix moltes mecàniques
noves!<br><br> Per començar t'he desbloquejat el <strong>Pintador
Quàdruple</strong>. Conecta les ranures que vols pintar a la capa de
Cables!<br><br> Per canviar a la capa de Cables, prem
<strong>E</strong>.\""
reward_filter:
title: Filtre d'Ítems
desc: Has desbloquejat el <strong>Filtre d'Ítems</strong>! Filtrarà els ítems a
la part superior o a la part dreta depenent de si coincideixen amb
la senyal de la capa de Cables o no.<br><br> També pots conectar-li
una senyal booleana (1 / 0) per encendra-la per complet o apagarla.
reward_demo_end:
title: Final de la Demo
desc: Has arribat al final de la Demo!
settings: settings:
title: Opcions title: Opcions
categories: categories:
general: General general: General
userInterface: User Interface userInterface: Interfície d'Usuari
advanced: Advanced advanced: Avançat
performance: Performance performance: Rendiment
versionBadges: versionBadges:
dev: Desenvolupament dev: Desenvolupament
staging: Staging staging: Posada en escena
prod: Producció prod: Producció
buildDate: Generat <at-date> buildDate: Generat <at-date>
labels: labels:
@ -819,47 +876,48 @@ settings:
description: Desactiva els diàlegs d'advertència que es mostren en tallar / description: Desactiva els diàlegs d'advertència que es mostren en tallar /
suprimir més de 100 entitats. suprimir més de 100 entitats.
soundVolume: soundVolume:
title: Sound Volume title: Volum de
description: Set the volume for sound effects description: Defineix el volum dels sons
musicVolume: musicVolume:
title: Music Volume title: Volum de música
description: Set the volume for music description: Defineix el volum de la música
lowQualityMapResources: lowQualityMapResources:
title: Low Quality Map Resources title: Map de Recursos de Baixa Qualitat
description: Simplifies the rendering of resources on the map when zoomed in to description: Simplifica la renderització dels recursos en el mapa al fer zoom
improve performance. It even looks cleaner, so be sure to try it per millorar el rendiment. Fins i tot es veu més net, així que
out! assegureu-vos de provar-ho!
disableTileGrid: disableTileGrid:
title: Disable Grid title: Desactiva la Graella
description: Disabling the tile grid can help with the performance. This also description: Desactivar la graella pot ajudar al rendiment. També fa que el joc
makes the game look cleaner! es vegi més net!
clearCursorOnDeleteWhilePlacing: clearCursorOnDeleteWhilePlacing:
title: Clear Cursor on Right Click title: Esborreu el cursor en fer clic amb el botó dret
description: Enabled by default, clears the cursor whenever you right click description: Encés per defecte, borra el cursor quan es prem el botó dret
while you have a building selected for placement. If disabled, mentres hi ha un edifici seleccionat. Si es desactiva, pots
you can delete buildings by right-clicking while placing a eliminar edificis prement amb el botó dret mentres col·loques un
building. altre edifici.
lowQualityTextures: lowQualityTextures:
title: Low quality textures (Ugly) title: Textures de baixa qualitat (Molt lleig)
description: Uses low quality textures to save performance. This will make the description: Emprar textures de baixa qualitat per millorar el rendiment. Aixó
game look very ugly! farà que el joc sigui molt lleig!
displayChunkBorders: displayChunkBorders:
title: Display Chunk Borders title: Mostrar les vores dels Chunks
description: The game is divided into chunks of 16x16 tiles, if this setting is description: El joc està dividit en chunks de 16x16 caselles. Si es selecciona
enabled the borders of each chunk are displayed. aquesta opció, les vores dels chunks es mostraràn.
pickMinerOnPatch: pickMinerOnPatch:
title: Pick miner on resource patch title: Triar el miner a la zona de recursos
description: Enabled by default, selects the miner if you use the pipette when description: Seleccionat per defecte, es selecciona el miner si empres la pipeta
hovering a resource patch. damunt una zona de recursos.
simplifiedBelts: simplifiedBelts:
title: Simplified Belts (Ugly) title: Cintes simplificades (Lleig)
description: Does not render belt items except when hovering the belt to save description: No renderitze els ítems de les cintes fins que passis el ratolí per
performance. I do not recommend to play with this setting if you sobre, per millorar el rendiment.No recoman usar aquesta opció
do not absolutely need the performance. si no necessites un augment de rendiment.
enableMousePan: enableMousePan:
title: Enable Mouse Pan title: Activa el desplaçament del ratolí
description: Allows to move the map by moving the cursor to the edges of the description: Permet moure el mapa quan mous el cursor a les vores de la
screen. The speed depends on the Movement Speed setting. pantalla. La velocitat de moviment depèn de la configuració de
Velocitat de Moviment.
rangeSliderPercentage: <amount> % rangeSliderPercentage: <amount> %
keybindings: keybindings:
title: Combinacions de tecles title: Combinacions de tecles
@ -896,7 +954,7 @@ keybindings:
belt: Cinta transportadora belt: Cinta transportadora
underground_belt: Túnel underground_belt: Túnel
miner: Extractor miner: Extractor
cutter: Cisalla cutter: Tallador
rotater: Rotador rotater: Rotador
stacker: Apilador stacker: Apilador
mixer: Mesclador de colors mixer: Mesclador de colors
@ -905,13 +963,13 @@ keybindings:
wire: Cable wire: Cable
pipette: Pipeta pipette: Pipeta
rotateWhilePlacing: Rotar rotateWhilePlacing: Rotar
rotateInverseModifier: "Modifier: Rotar en sentit antihorari" rotateInverseModifier: "Modificador: Rotar en sentit antihorari"
cycleBuildingVariants: Rotar les Variants cycleBuildingVariants: Rotar les Variants
confirmMassDelete: Eliminar àrea confirmMassDelete: Eliminar àrea
pasteLastBlueprint: Afferar el darrer pla pasteLastBlueprint: Afferar el darrer pla
cycleBuildings: Rotar els Buildings cycleBuildings: Rotar els Buildings
lockBeltDirection: Habilitar el planificador de cintes transportadores lockBeltDirection: Habilitar el planificador de cintes transportadores
switchDirectionLockSide: "Planner: Canviar costat" switchDirectionLockSide: "Planificador: Canviar costat"
massSelectStart: Manteniu premut i arrossegueu per començar massSelectStart: Manteniu premut i arrossegueu per començar
massSelectSelectMultiple: Seleccionar múltiples àrees massSelectSelectMultiple: Seleccionar múltiples àrees
massSelectCopy: Copiar àrea massSelectCopy: Copiar àrea
@ -919,20 +977,21 @@ keybindings:
placementDisableAutoOrientation: Desactivar orientació automàtica placementDisableAutoOrientation: Desactivar orientació automàtica
placeMultiple: Mantenir-se en mode de col·locació placeMultiple: Mantenir-se en mode de col·locació
placeInverse: Invertir orientació automàtica de les cintes transportadores placeInverse: Invertir orientació automàtica de les cintes transportadores
balancer: Balancer balancer: Equilibrador
storage: Storage storage: Emmagatzematge
constant_signal: Constant Signal constant_signal: Senyal Constant
logic_gate: Logic Gate logic_gate: Porta lògica
lever: Switch (regular) lever: Interruptor (regular)
lever_wires: Switch (wires) filter: Filtre
filter: Filter wire_tunnel: Creuament de Cables
wire_tunnel: Wire Crossing display: Pantalla
display: Display reader: Lector de cinta
reader: Belt Reader virtual_processor: Tallador Virtual
virtual_processor: Virtual Cutter
transistor: Transistor transistor: Transistor
analyzer: Shape Analyzer analyzer: Analitzador de Figura
comparator: Compare comparator: Comparador
item_producer: Productor d'items (Sandbox)
copyWireValue: "Cables: Copiar valor davall el cursor"
about: about:
title: Sobre aquest Joc title: Sobre aquest Joc
body: >- body: >-
@ -958,62 +1017,78 @@ demo:
exportingBase: Exportar la base com a Imatge exportingBase: Exportar la base com a Imatge
settingNotAvailable: No disponible en la versió de demostració. settingNotAvailable: No disponible en la versió de demostració.
tips: tips:
- The hub accepts input of any kind, not just the current shape! - El NEXE accepta qualsevol tipus dentrada, no només la forma actual.
- Make sure your factories are modular - it will pay out! - Assegureu-vos que les vostres fàbriques siguin modulars; donarà els seus
- Don't build too close to the hub, or it will be a huge chaos! fruits.
- If stacking does not work, try switching the inputs. - No construïu massa a prop del NEXE, ja que serà un enorme caos.
- You can toggle the belt planner direction by pressing <b>R</b>. - Si l'apilament no funciona, proveu de canviar les entrades.
- Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - Podeu canviar la direcció del planificador de cinturons prement <b> R </b>.
- Ratios stay the same, as long as all upgrades are on the same Tier. - Mantenir premut <b> CTRL </b> permet arrossegar cinturons sense orientació
- Serial execution is more efficient than parallel. automàtica.
- You will unlock more variants of buildings later in the game! - Les proporcions continuen igual, sempre que totes les millores de
- You can use <b>T</b> to switch between different variants. velocitat es facin al mateix nivell.
- Symmetry is key! - Lexecució en sèrie és més eficient que la paral·lela.
- You can weave different tiers of tunnels. - Desbloquejaràs més variants dedificis més endavant en el joc.
- Try to build compact factories - it will pay out! - Podeu utilitzar <b> T </b> per canviar entre diferents variants.
- The painter has a mirrored variant which you can select with <b>T</b> - La simetria és clau!
- Having the right building ratios will maximize efficiency. - Podeu teixir diferents nivells de túnels.
- At maximum level, 5 extractors will fill a single belt. - "Intenteu construir fàbriques compactes: donarà els seus fruits!"
- Don't forget about tunnels! - El pintor té una variant reflectida que podeu seleccionar amb <b> T </b>
- You don't need to divide up items evenly for full efficiency. - Tenir les relacions constructives adequades maximitzarà leficiència.
- Holding <b>SHIFT</b> will activate the belt planner, letting you place - Al nivell màxim, 5 extractors ompliran un sol cinturó.
long lines of belts easily. - No us oblideu dels túnels!
- Cutters always cut vertically, regardless of their orientation. - No cal dividir els articles de manera uniforme per obtenir una eficiència
- To get white mix all three colors. completa.
- The storage buffer priorities the first output. - Mantenint premut <b> SHIFT </b> sactivarà el planificador de cinturons,
- Invest time to build repeatable designs - it's worth it! cosa que us permetrà col·locar llargues línies de cinturons fàcilment.
- Holding <b>CTRL</b> allows to place multiple buildings. - Els talladors sempre tallen verticalment, independentment de la seva
- You can hold <b>ALT</b> to invert the direction of placed belts. orientació.
- Efficiency is key! - Per obtenir blanc barregeu els tres colors primaris.
- Shape patches that are further away from the hub are more complex. - La memòria intermèdia demmagatzematge prioritza la primera sortida.
- Machines have a limited speed, divide them up for maximum efficiency. - "Invertiu temps per crear dissenys repetibles: val la pena."
- Use balancers to maximize your efficiency. - Si mantingueu <b> CTRL </b> permet col·locar diversos edificis.
- Organization is important. Try not to cross conveyors too much. - Podeu mantenir premut <b> ALT </b> per invertir la direcció dels cinturons
- Plan in advance, or it will be a huge chaos! col·locats.
- Don't remove your old factories! You'll need them to unlock upgrades. - Leficiència és clau!
- Try beating level 20 on your own before seeking for help! - Les formes geomètriques que apareixen més lluny del NEXE són més complexes.
- Don't complicate things, try to stay simple and you'll go far. - Les màquines tenen una velocitat limitada, dividiu-les per obtenir la
- You may need to re-use factories later in the game. Plan your factories to màxima eficiència.
be re-usable. - Utilitzeu equilibradors per maximitzar la vostra eficiència.
- Sometimes, you can find a needed shape in the map without creating it with - Lorganització és important. Intenteu no creuar massa els transportadors.
stackers. - Planifiqueu amb antelació, o serà un enorme caos!
- Full windmills / pinwheels can never spawn naturally. - No borreu les vostres antigues fàbriques! Les necessitareu per
- Color your shapes before cutting for maximum efficiency. desbloquejar actualitzacions.
- With modules, space is merely a perception; a concern for mortal men. - Proveu de superar el nivell 20 pel vostre compte abans de buscar ajuda.
- Make a separate blueprint factory. They're important for modules. - No compliqueu les coses, intenteu ser senzill i arribareu molt lluny.
- Have a closer look on the color mixer, and your questions will be answered. - És possible que hàgiu de tornar a utilitzar fàbriques més endavant del
- Use <b>CTRL</b> + Click to select an area. joc. Planifiqueu les vostres fàbriques de forma que puguin ser
- Building too close to the hub can get in the way of later projects. reutilitzables.
- The pin icon next to each shape in the upgrade list pins it to the screen. - De vegades, podeu trobar una forma necessària al mapa sense crear-la amb
- Mix all primary colors together to make white! apiladors.
- You have an infinite map, don't cramp your factory, expand! - Els molins de vent o molins de vent complets mai no poden generar de forma
- Also try Factorio! It's my favorite game. natural.
- The quad cutter cuts clockwise starting from the top right! - Pinteu les formes abans de tallar per obtenir la màxima eficiència.
- You can download your savegames in the main menu! - Amb els mòduls, lespai és només una percepció; una preocupació per als
- This game has a lot of useful keybindings! Be sure to check out the homes mortals.
settings page. - Feu una fàbrica de plànols independent. Són importants per als mòduls.
- This game has a lot of settings, be sure to check them out! - Feu una ullada més de prop al mesclador de colors i les vostres preguntes
- The marker to your hub has a small compass to indicate its direction! seran contestades.
- To clear belts, cut the area and then paste it at the same location. - Utilitzeu <b> CTRL </b> + Feu clic per seleccionar una àrea.
- Press F4 to show your FPS and Tick Rate. - Construir massa a prop del centre pot dificultar els projectes posteriors.
- Press F4 twice to show the tile of your mouse and camera. - La icona de fixació situada al costat de cada forma de la llista
d'actualitzacions la fixa a la pantalla.
- Barregeu tots els colors primaris per fer blanc.
- Teniu un mapa infinit, no restringiu la vostra fàbrica, amplieu-la.
- També proveu Factorio! És el meu joc preferit.
- El tallador de quadres talla en sentit horari a partir de la part superior
dreta.
- Podeu descarregar els vostres jocs desats al menú principal.
- Aquest joc té moltes combinacions de tecles útils. Assegureu-vos de
consultar el fitxer pàgina de configuració.
- Aquest joc té moltes opcions de configuració, no oblideu consultar-les.
- El marcador del concentrador té una petita brúixola per indicar-ne la
direcció.
- Per netejar els cinturons, talleu la zona i enganxeu-la al mateix lloc.
- Premeu F4 per mostrar la vostra tarifa FPS i Tick.
- Premeu F4 dues vegades per mostrar el mosaic del ratolí i la càmera.
- Podeu fer clic a una forma fixada al costat esquerre per desenganxar-la.

View File

@ -1,59 +1,51 @@
steamPage: steamPage:
shortText: shapez.io je hra o stavbě továren pro automatizaci výroby a shortText: shapez.io je hra o stavbě továren pro automatizaci výroby a
kombinování čím dál složitějších tvarů na nekonečné mapě. kombinování čím dál složitějších tvarů na nekonečné mapě.
longText: >- discordLinkShort: Official Discord
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] intro: >-
Shapez.io je relaxační hra, ve které musíte stavět továrny pro
automatizaci výroby geometrických tvarů.
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. Jak se zvyšuje úroveň, tvary se stávají stále složitějšími a vy se musíte rozšířit po nekonečné mapě.
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]! A jako by to nestačilo, musíte také produkovat exponenciálně více, abyste uspokojili požadavky - jediná věc, která pomáhá, je škálování!
Soon you will have to mix colors and paint your shapes with them - Combine red, green and blue color resources to produce different colors and paint shapes with it to satisfy the demand. Zatímco tvary zpracováváte pouze na začátku, musíte je později obarvit - k tomu musíte těžit a míchat barvy!
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! Koupením hry na platformě Steam vám dá přístup k plné verzi hry, ale také můžete hrát demo verzi na shapez.io a potom se můžete rozhodnou jestli hru koupíte!
title_advantages: Samostatné výhody
advantages:
- <b>12 Nových úrovní</b> celkem 26 úrovní
- <b>18 Nových budov</b> pro plně automatizovanou továrnu!
- <b>20 vylepšení</b> pro mnoho hodin zábavy!
- <b>Wires Update</b> pro zcela nové rozměry!
- <b>Dark Mode</b>!
- Neomezené Savegames
- Neomezené značky
- Podpořte mě! ❤️
title_future: Plánovaný kontent
planned:
- Blueprintová knihovna (Samostatně exkluzivní)
- Steam Achievements
- Puzzle Mode
- Minnimapa
- Mody
- Sandbox mode
- ... a o hodně víc!
title_open_source: Tato hra je open source!
title_links: Odkazy
links:
discord: Officiální Discord
roadmap: Roadmap
subreddit: Subreddit
source_code: Source code (GitHub)
translate: Pomozte přeložit hru!
text_open_source: |-
Kdokoli může přispět, aktivně se zapojit do komunity,
pokusit se zkontrolovat všechny návrhy a vzít v úvahu zpětnou vazbu
kde je to možné.
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Nezapomeňte se podívat na můj trello board, kde najdete kompletní plán!
[b]Standalone Advantages[/b]
[list]
[*] Dark Mode
[*] Unlimited Waypoints
[*] Unlimited Savegames
[*] Additional settings
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020.
[*] Coming soon: More Levels
[*] Allows me to further develop shapez.io ❤️
[/list]
[b]Future Updates[/b]
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]
[b]This game is open source![/b]
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!
[b]Links[/b]
[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]
[/list]
discordLink: Official Discord - Chat with me!
global: global:
loading: Načítám loading: Načítám
error: Chyba error: Chyba
@ -104,7 +96,7 @@ mainMenu:
newGame: Nová hra newGame: Nová hra
madeBy: Vytvořil <author-link> madeBy: Vytvořil <author-link>
subreddit: Reddit subreddit: Reddit
savegameUnnamed: Unnamed savegameUnnamed: Nepojmenovaný
dialogs: dialogs:
buttons: buttons:
ok: OK ok: OK
@ -129,7 +121,9 @@ dialogs:
text: "Nepovedlo se načíst vaši uloženou hru:" text: "Nepovedlo se načíst vaši uloženou hru:"
confirmSavegameDelete: confirmSavegameDelete:
title: Potvrdit smazání title: Potvrdit smazání
text: Opravdu chcete smazat hru? text: Jste si jisti, že chcete smazat tuto uloženou hru?<br><br>
'<savegameName>' s úrovní <savegameLevel><br><br> Tato akce je
nevratná!
savegameDeletionError: savegameDeletionError:
title: Chyba mazání title: Chyba mazání
text: "Nepovedlo se smazat vaši uloženou hru:" text: "Nepovedlo se smazat vaši uloženou hru:"
@ -179,9 +173,8 @@ dialogs:
umístěných pásů.<br>" umístěných pásů.<br>"
createMarker: createMarker:
title: Nová značka title: Nová značka
desc: Pojmenuj jí nějak výstižně, též ji můžeš doplnit <strong>zkratkou</strong> desc: Použijte smysluplný název, můžete také zahrnout <strong>krátký
pro tvar (Kterou si můžete vytvořit <a klíč</strong> tvaru (který můžete vygenerovat <link>zde</link>)
href="https://viewer.shapez.io" target="_blank">zde</a>)
titleEdit: Upravit značku titleEdit: Upravit značku
markerDemoLimit: markerDemoLimit:
desc: V ukázce můžete vytvořit pouze dvě značky. Získejte plnou verzi pro desc: V ukázce můžete vytvořit pouze dvě značky. Získejte plnou verzi pro
@ -199,13 +192,17 @@ dialogs:
title: Potvrdit vyjmutí title: Potvrdit vyjmutí
desc: Nemůžeš si dovolit vložení této oblasti! Skutečně ji chceš vyjmout? desc: Nemůžeš si dovolit vložení této oblasti! Skutečně ji chceš vyjmout?
editSignal: editSignal:
title: Set Signal title: Nastavte signál
descItems: "Choose a pre-defined item:" descItems: "Vyberte předdefinovanou položku:"
descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you descShortKey: ... nebo zadejte <strong>krátký klíč</strong> tvaru (který
can generate <link>here</link>) můžete vygenerovat <link>zde</link>)
renameSavegame: renameSavegame:
title: Rename Savegame title: Přejmenovat uloženou hru
desc: You can rename your savegame here. desc: Zde můžeš přejmenovat svoji uloženou hru.
entityWarning:
title: Varování výkonu
desc: Umístili jste spoustu budov, to je jen přátelská připomínka. Hra nezvládne
nekonečný počet budov - zkuste udržet své továrny kompaktní!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Posun mapy moveMap: Posun mapy
@ -226,7 +223,7 @@ ingame:
copySelection: Kopírovat copySelection: Kopírovat
clearSelection: Zrušit výběr clearSelection: Zrušit výběr
pipette: Kapátko pipette: Kapátko
switchLayers: Změnit vrstvi switchLayers: Změnit vrstvy
buildingPlacement: buildingPlacement:
cycleBuildingVariants: Zmáčkněte <key> pro přepínání mezi variantami. cycleBuildingVariants: Zmáčkněte <key> pro přepínání mezi variantami.
hotkeyLabel: "Klávesová zkratka: <key>" hotkeyLabel: "Klávesová zkratka: <key>"
@ -246,7 +243,7 @@ ingame:
notifications: notifications:
newUpgrade: Nová aktualizace je k dispozici! newUpgrade: Nová aktualizace je k dispozici!
gameSaved: Hra byla uložena. gameSaved: Hra byla uložena.
freeplayLevelComplete: Level <level> has been completed! freeplayLevelComplete: Level <level> byl dokončen!
shop: shop:
title: Vylepšení title: Vylepšení
buttonUnlock: Vylepšit buttonUnlock: Vylepšit
@ -334,15 +331,47 @@ ingame:
cyan: Tyrkysová cyan: Tyrkysová
white: Bílá white: Bílá
uncolored: Bez barvy uncolored: Bez barvy
black: Black black: Černá
shapeViewer: shapeViewer:
title: Vrstvy title: Vrstvy
empty: Prázdné empty: Prázdné
copyKey: Copy Key copyKey: Copy Key
connectedMiners: connectedMiners:
one_miner: 1 Miner one_miner: 1 Extraktor
n_miners: <amount> Miners n_miners: <amount> Extraktorů
limited_items: Limited to <max_throughput> limited_items: Limit je <max_throughput>
watermark:
title: Demo verze
desc: Kliknutím sem zobrazíte výhody Steam verze!
get_on_steam: Získejte na steamu
standaloneAdvantages:
title: Získejte plnou verzy!
no_thanks: Ne, děkuji!
points:
levels:
title: 12 Nových úrovní
desc: Celkem 26 úrovní!
buildings:
title: 18 Nových budov
desc: Plně automatizujte svou továrnu!
savegames:
title: ∞ Uložených her
desc: Tolik, kolik vaše srdce touží!
upgrades:
title: 20 vylepšení
desc: Tato demo verze má pouze 5!
markers:
title: ∞ Značek
desc: Nikdy se neztraťte ve své továrně!
wires:
title: Kabely
desc: Zcela nový rozměr!
darkmode:
title: Dark Mode
desc: Přestanou vás bolet oči!
support:
title: Podpořte mě
desc: Vyvíjím to ve svém volném čase!
shopUpgrades: shopUpgrades:
belt: belt:
name: Pásy, distribuce & tunely name: Pásy, distribuce & tunely
@ -361,11 +390,12 @@ buildings:
deliver: Dodejte deliver: Dodejte
toUnlock: pro odemčení toUnlock: pro odemčení
levelShortcut: LVL levelShortcut: LVL
endOfDemo: konec Demo verze
belt: belt:
default: default:
name: Dopravníkový pás name: Dopravníkový pás
description: Přepravuje tvary a barvy, přidržením můžete umístit více pásů za description: Přepravuje tvary a barvy, přidržením můžete tahem umístit více pásů
sebe tahem. za sebou.
miner: miner:
default: default:
name: Extraktor name: Extraktor
@ -398,10 +428,10 @@ buildings:
description: Otáčí tvary o 90 stupňů po směru hodinových ručiček. description: Otáčí tvary o 90 stupňů po směru hodinových ručiček.
ccw: ccw:
name: Rotor (opačný) name: Rotor (opačný)
description: Otáčí tvary o 90 stupňů proti směru hodinových ručiček description: Otáčí tvary o 90 stupňů proti směru hodinových ručiček.
rotate180: rotate180:
name: Rotate (180) name: Rotor (180°)
description: Rotates shapes by 180 degrees. description: Otáčí tvary o 180 stupňů.
stacker: stacker:
default: default:
name: Kombinátor name: Kombinátor
@ -420,135 +450,135 @@ buildings:
description: Obarví tvary z levých vstupů barvou z horního vstupu. description: Obarví tvary z levých vstupů barvou z horního vstupu.
quad: quad:
name: Barvič (čtyřnásobný) name: Barvič (čtyřnásobný)
description: Umožňuje obarvit každý dílek tvaru samostatně. description: Umožnuje obarvit každou čtvrtinu tvaru individuálně. Jen
čtvrtiny se vstupy barev s <strong>logickým signálem</strong> na vrstvě kabelů
budou obarveny!
mirrored: mirrored:
name: Barvič name: Barvič
description: Obarví celý tvar v levém vstupu barvou z pravého vstupu. description: Obarví celý tvar v levém vstupu barvou z pravého vstupu.
trash: trash:
default: default:
name: Koš name: Koš
description: íjmá tvary a barvy ze všech stran a smaže je. Navždy. description: ijímá tvary a barvy ze všech stran a smaže je. Navždy.
wire: wire:
default: default:
name: Kabel name: Kabel
description: Dovoluje přenos energie. description: Dovoluje přenos energie.
second: second:
name: Wire name: Kabel
description: Transfers signals, which can be items, colors or booleans (1 / 0). description: Dovoluje přenos energie.
Different colored wires do not connect.
balancer: balancer:
default: default:
name: Balancer name: Vyvažovač
description: Multifunctional - Evenly distributes all inputs onto all outputs. description: Multifunkční - Rozděluje vstupy do výstupy.
merger: merger:
name: Merger (compact) name: Spojovač (kompaktní)
description: Merges two conveyor belts into one. description: Spojí dva pásy do jednoho.
merger-inverse: merger-inverse:
name: Merger (compact) name: Spojovač (kompaktní)
description: Merges two conveyor belts into one. description: Spojí dva pásy do jednoho.
splitter: splitter:
name: Splitter (compact) name: Rozdělovač (kompaktní)
description: Splits one conveyor belt into two. description: Rozdělí jeden pás na dva.
splitter-inverse: splitter-inverse:
name: Splitter (compact) name: Rozdělovač (kompaktní)
description: Splits one conveyor belt into two. description: Rozdělí jeden pás na dva.
storage: storage:
default: default:
name: Storage name: Sklad
description: Stores excess items, up to a given capacity. Prioritizes the left description: Skladuje přebytečné věci až do naplnění kapacity. Může být použit na
output and can be used as an overflow gate. skladování surovin navíc.
wire_tunnel: wire_tunnel:
default: default:
name: Wire Crossing name: Křížení kabelů
description: Allows to cross two wires without connecting them. description: Umožňuje křížení dvou kabelů bez jejich spojení.
constant_signal: constant_signal:
default: default:
name: Constant Signal name: Konstantní signál
description: Emits a constant signal, which can be either a shape, color or description: Vydává konstantní signál, který může mít tvar, barvu nebo logickou
boolean (1 / 0). hodnotu (1 / 0).
lever: lever:
default: default:
name: Switch name: Přepínač
description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, description: Lze přepínat, aby vydával signál (1/0) na vrstvě vodičů, pomocí
which can then be used to control for example an item filter. kterého lze například ovládat filtr tvarů a barev.
logic_gate: logic_gate:
default: default:
name: AND Gate name: AND Gate
description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, description: Vysílá signál "1" pokud oba vstupy vysílají signál.
color or boolean "1")
not: not:
name: NOT Gate name: NOT Gate
description: Emits a boolean "1" if the input is not truthy. (Truthy means description: Vysílá signál "1" pokud oba vstupy nevysílají signál.
shape, color or boolean "1")
xor: xor:
name: XOR Gate name: XOR Gate
description: Emits a boolean "1" if one of the inputs is truthy, but not both. description: Vysílá signál "1" pokud jeden vstup vysílá signál, ale druhý vstup
(Truthy means shape, color or boolean "1") nevysílá signál.
or: or:
name: OR Gate name: OR Gate
description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means description: Vysílá signál "1" pokud jeden vstup vysílá signál.
shape, color or boolean "1")
transistor: transistor:
default: default:
name: Transistor name: Tranzistor
description: Forwards the bottom input if the side input is truthy (a shape, description: Přeposílá spodní vstup, pokud boční vstup vysílá signál.
color or "1").
mirrored: mirrored:
name: Transistor name: Tranzistor
description: Forwards the bottom input if the side input is truthy (a shape, description: Přeposílá spodní vstup, pokud boční vstup vysílá signál.
color or "1").
filter: filter:
default: default:
name: Filter name: Filtr
description: Connect a signal to route all matching items to the top and the description: Připojte signál k třídění tvarů a barev.
remaining to the right. Can be controlled with boolean signals
too.
display: display:
default: default:
name: Display name: Display
description: Connect a signal to show it on the display - It can be a shape, description: Připojte signál a zobrazte jej na displeji - může to být tvar nebo
color or boolean. barva.
reader: reader:
default: default:
name: Belt Reader name: Čtečka pásů
description: Allows to measure the average belt throughput. Outputs the last description: Umožňuje měřit průměrnou propustnost pásu. Výstup čte poslední
read item on the wires layer (once unlocked). položku ve vrstvě kabelů.
analyzer: analyzer:
default: default:
name: Shape Analyzer name: Analyzátor tvarů
description: Analyzes the top right quadrant of the lowest layer of the shape description: Analyzuje pravou horní část nejnižší vrstvy tvaru a vrací tvar a
and returns its shape and color. barvu.
comparator: comparator:
default: default:
name: Compare name: Porovnávač
description: Returns boolean "1" if both signals are exactly equal. Can compare description: Vrátí signál „1“, pokud jsou oba signály přesně stejné. Může
shapes, items and booleans. srovnávat tvary, předměty a signály.
virtual_processor: virtual_processor:
default: default:
name: Virtual Cutter name: Virtuální pila
description: Virtually cuts the shape into two halves. description: Virtuálně rozřízne tvar svisle na dvě části.
rotater: rotater:
name: Virtual Rotater name: Virtuální rotor
description: Virtually rotates the shape, both clockwise and counter-clockwise. description: Virtuálně otáčí tvary o 90 stupňů po směru hodinových ručiček.
unstacker: unstacker:
name: Virtual Unstacker name: Virtuální extrahátor
description: Virtually extracts the topmost layer to the right output and the description: Virtuálně extrahuje nejvyšší vrstvu do pravého výstupu a zbývající
remaining ones to the left. do levé.
stacker: stacker:
name: Virtual Stacker name: Virtuální kombinátor
description: Virtually stacks the right shape onto the left. description: Virtuálně Spojí tvary dohromady. Pokud nemohou být spojeny, pravý
tvar je položen na levý.
painter: painter:
name: Virtual Painter name: Virtual barvič
description: Virtually paints the shape from the bottom input with the shape on description: Virtuálně obarví celý tvar v levém vstupu barvou z pravého vstupu.
the right input. item_producer:
default:
name: Výrobník předmětů
description: Dostupný pouze v sandboxovém módu, vydává daný signál z
vrstvy kabelů na běžnou vrstvu.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Řezání tvarů title: Řezání tvarů
desc: Právě jste odemknuli <strong>pilu</strong> - řeže tvary desc: Právě jste odemkli <strong>pilu</strong>, která řeže tvary
<strong>svisle</strong> bez ohledu na svou svisle na poloviny <strong>bez ohledu na její
orientaci!<br><br>Nezapomeňte se zbavovat odpadu, jinak <strong>se orientaci</strong>!<br><br>Nezapoměňte se zbavit zbytku tvarů, jinak
vám zasekne produkce</strong> - pro tento účel jsem vám odemknul se <strong>vám produkce zasekne</strong> - za tímto účelem
koš, který můžete použít na mazání odpadu! jsem vám dal <strong>koš</strong>, který smaže
vše, co do něj vložíte!
reward_rotater: reward_rotater:
title: Otáčení title: Otáčení
desc: <strong>Rotor</strong> byl právě odemčen! Otáčí tvary po směru hodinových desc: <strong>Rotor</strong> byl právě odemčen! Otáčí tvary po směru hodinových
@ -570,9 +600,9 @@ storyRewards:
vpravo se <strong>nalepí na</strong> tvar vlevo! vpravo se <strong>nalepí na</strong> tvar vlevo!
reward_splitter: reward_splitter:
title: Rozřazování/Spojování pásu title: Rozřazování/Spojování pásu
desc: Multifuknční <strong>balancer</strong> byl právě odemčen - Může být použít desc: Právě jste odemkli <strong>rozdělovací</strong> variantu
pro stavbu větších továren díky tomu, že <strong>rozřazuje</strong> <strong>vyvažovače</strong> - Přijímá jeden vstup a rozdělí ho
tvary mezi dva pásy!<br><br> na dva!
reward_tunnel: reward_tunnel:
title: Tunel title: Tunel
desc: <strong>Tunel</strong> byl právě odemčen - Umožňuje vézt suroviny pod desc: <strong>Tunel</strong> byl právě odemčen - Umožňuje vézt suroviny pod
@ -584,9 +614,10 @@ storyRewards:
'T' pro přepnutí mezi variantami</strong>! 'T' pro přepnutí mezi variantami</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Napojovací extraktor title: Napojovací extraktor
desc: Odemknuli jste variantu <strong>extraktoru</strong>! Může desc: "Právě jste odemkli <strong>napojovací extraktor</strong>! Může
<strong>přesměrovat vytěžené zdroje</strong> do dalších extraktorů <strong>předat své zdroje</strong> ostatním extraktorům, čímž
pro efektivnější těžbu! můžete efektivněji těžit více zdrojů!<br><br> PS: Starý
extraktor bude od teď nahrazen ve vašem panelu nástrojů!"
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunel II. úrovně title: Tunel II. úrovně
desc: Odemknuli jste <strong>tunel II. úrovně</strong> - Má <strong>delší desc: Odemknuli jste <strong>tunel II. úrovně</strong> - Má <strong>delší
@ -600,19 +631,20 @@ storyRewards:
desc: Odemknuli jste variantu <strong>barviče</strong> - Funguje stejně jako desc: Odemknuli jste variantu <strong>barviče</strong> - Funguje stejně jako
normální, ale nabarví <strong>dva tvary naráz</strong> pomocí jedné normální, ale nabarví <strong>dva tvary naráz</strong> pomocí jedné
barvy! barvy!
reward_painter_quad:
title: Čtyřstranné barvení
desc: Odemknuli jste variantu <strong>painter</strong> - Umožní vám nabarvit
každou čtvrtinu tvaru jinou barvou!
reward_storage: reward_storage:
title: Sklad title: Sklad
desc: Odemknuli jste variantu <strong>koše</strong> - Umožňuje vám skladovat desc: Právě jste odemkli <strong>sklad</strong> - Umožnuje skladovat přebytečné věci
věci až do určité kapacity! až do naplnění kapacity!<br><br> Dává prioritu levému
výstupu, takže ho také můžete použít jako <strong>průtokovou bránu</strong>!
reward_freeplay: reward_freeplay:
title: Volná hra title: Volná hra
desc: Dokázali jste to! Odemknuli jste <strong>volnou hru</strong>! Další tvary desc: Zvládli jste to! Odemkli jste <strong>mód volné hry</strong>! To znamená,
jsou již náhodně generované! (pro plnou verzi plánujeme více budou od teď <strong>náhodně</strong> generovány!<br><br>
obsahu!) Vzhledem k tomu, že Hub nadále potřebuje <strong>propustnost</strong>
, především doporučuji postavit továrnu, která automaticky
doručí požadovaný tvar!<br><br> Hub vysílá požadovaný
tvar na vrstvu kabelů, takže jediné co musíte udělat, je analyzovat tvar a
automaticky nastavit svou továrnu dle této analýzy.
reward_blueprints: reward_blueprints:
title: Plány title: Plány
desc: Nyní můžete <strong>kopírovat a vkládat</strong> části továrny! Vyberte desc: Nyní můžete <strong>kopírovat a vkládat</strong> části továrny! Vyberte
@ -630,58 +662,70 @@ storyRewards:
title: Další úroveň title: Další úroveň
desc: Gratuluji! Mimochodem, více obsahu najdete v plné verzi! desc: Gratuluji! Mimochodem, více obsahu najdete v plné verzi!
reward_balancer: reward_balancer:
title: Balancer title: Vyvažovač
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can desc: Multifunkční <strong>vyvažovač</strong> byl odemknut - Může
be used to build bigger factories by <strong>splitting and merging být použit ke zvětšení vašich továren <strong>rozdělováním a spojováním
items</strong> onto multiple belts!<br><br> předmětů</strong> na několik pásu!<br><br>
reward_merger: reward_merger:
title: Compact Merger title: Kompaktní spojovač
desc: You have unlocked a <strong>merger</strong> variant of the desc: Právě jste odemkli <strong>spojovací</strong> variantu
<strong>balancer</strong> - It accepts two inputs and merges them <strong>vyvažovače</strong> - Přijímá dva vstupy a spojí je
into one belt! do jednoho!
reward_belt_reader: reward_belt_reader:
title: Belt reader title: Čtečka pásů
desc: You have now unlocked the <strong>belt reader</strong>! It allows you to desc: Právě jste odemkli <strong>čtečku pásů</strong>! Umožnuje vám
measure the throughput of a belt.<br><br>And wait until you unlock změřit propustnost pásu.<br><br>A počkejte na odemčení
wires - then it gets really useful! kabelů - později to bude velmi užitečné!
reward_rotater_180: reward_rotater_180:
title: Rotater (180 degrees) title: Rotor (180°)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: Právě jste odemkli 180 stupňoví <strong>rotor</strong>! - Umožňuje
you to rotate a shape by 180 degress (Surprise! :D) vám otáčet tvar o 180 stupňů!
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Display
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "Právě jste odemkli <strong>Display</strong> - Připojte signál ve
wires layer to visualize its contents! vrstvě kabelů pro vizualizaci!<br><br> PS: Všimli jste si, že čtečka
pásů a sklad vysílájí jejich poslední přečtěný předmět? Zkuste ho ukázat na
displeji!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Konstantní signál
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: Právě jste odemkli <strong>konstantní signál</strong> na vrstvě
layer! This is useful to connect it to <strong>item filters</strong> kabelů! Tohle je například užitečné pro připojení k <strong>filtrům předmětů</strong>
for example.<br><br> The constant signal can emit a .<br><br> Konstantní signál může vysílat
<strong>shape</strong>, <strong>color</strong> or <strong>tvar</strong>, <strong>barvu</strong> nebo
<strong>boolean</strong> (1 / 0). <strong>logickou hodnotu</strong> (1 / 0).
reward_logic_gates: reward_logic_gates:
title: Logic Gates title: Logické brány
desc: You unlocked <strong>logic gates</strong>! You don't have to be excited desc: Právě jste odemkli <strong>logické brány</strong>! Nemusíte být zrovna nadšení,
about this, but it's actually super cool!<br><br> With those gates ale ve skutečnosti je to celkem cool!<br><br> S těmito bránami
you can now compute AND, OR, XOR and NOT operations.<br><br> As a můžete propočítat AND, OR, XOR a NOT operace.<br><br> Jako
bonus on top I also just gave you a <strong>transistor</strong>! bonus navíc vám také zpřístupním <strong>tranzistor</strong>!
reward_virtual_processing: reward_virtual_processing:
title: Virtual Processing title: Virtuální zpracování
desc: I just gave a whole bunch of new buildings which allow you to desc: Právě jsem zpřístupnil spoustu nových budov, které vám umožní
<strong>simulate the processing of shapes</strong>!<br><br> You can <strong>simulovat výrobu různých tvarů</strong>!<br><br> Můžete
now simulate a cutter, rotater, stacker and more on the wires layer! teď také simulovat pilu, rotor, kombinátor a mnoho dalšího na vrstvě kabelů!
With this you now have three options to continue the game:<br><br> - Nadále máte tři možnosti, jak pokračovat ve hře:<br><br> -
Build an <strong>automated machine</strong> to create any possible Postavit <strong>automatickou továrnu</strong> k vytvoření jakéhokoliv
shape requested by the HUB (I recommend to try it!).<br><br> - Build tvaru požadovaného Hubem (Doporučuji to alespoň vyzkoušet!).<br><br> - Postavit
something cool with wires.<br><br> - Continue to play něco zajímavého s použitím kabelů.<br><br> - Pokračovat ve hře
regulary.<br><br> Whatever you choose, remember to have fun! pravidelně.<br><br> Bez ohledu na tvou volbu, nezapomeň si svou hru užít!
reward_wires_painter_and_levers:
title: Kabely a čtyřnásobný barvič
desc: "Právě jste odemkli <strong>vrstvu kabelů</strong>: Je to samostatná
vrstva navíc oproti běžné vrstvě a představuje spoustu nových
možností!<br><br> Do začátku jsem zpřístupnil <strong>čtyřnásobný
barvič</strong> - Připojte vstupy, které byste chtěli obarvit
na vrstvě kabelů!<br><br> Pro přepnutí mezi vrstvami stiskněte klávesu
<strong>E</strong>."
reward_filter:
title: Filtr předmětů
desc: Právě jste odemkli <strong>filtr předmětů</strong>! Nasměruje předměty buď
na horní nebo pravý výstup podle toho, zda se shodují
nebo neshodují se signálem na vrstvě kabelů.<br><br> Také můžete vyslat logickou hodnotu
(1 / 0) pro zapnutí nebo kompletní vypnutí filtru.
reward_demo_end:
title: Konec demo verze
desc: Právě jste dosáhli konce demo verze!
settings: settings:
title: Nastavení title: Nastavení
categories: categories:
@ -792,52 +836,52 @@ settings:
description: Zapné různé nástroje, které vám umožní hrát hru i pokud jste description: Zapné různé nástroje, které vám umožní hrát hru i pokud jste
barvoslepí. barvoslepí.
rotationByBuilding: rotationByBuilding:
title: Rotation by building type title: Rotace dle typu budov
description: Each building type remembers the rotation you last set it to description: Každý typ budovy si zapamatuje poslední rotaci, na kterou jste je individuálně
individually. This may be more comfortable if you frequently nastavili. Tohle může být pohodlnější pokud často
switch between placing different building types. přepínáte mezi pokládáním budov různých typů.
soundVolume: soundVolume:
title: Sound Volume title: Hlasitost zvuků
description: Set the volume for sound effects description: Nastavte hlasitost zvukových efektů
musicVolume: musicVolume:
title: Music Volume title: Hlasitost hudby
description: Set the volume for music description: Nastavte hlasitost hudby
lowQualityMapResources: lowQualityMapResources:
title: Low Quality Map Resources title: Nižší kvalita zdrojů na mapě
description: Simplifies the rendering of resources on the map when zoomed in to description: Zjednoduší vykreslování zdrojů na mapě při přiblížení pro
improve performance. It even looks cleaner, so be sure to try it zlepšení výkonu. Také to zlepšuje vzhled hry, takže neváhejte toto nastavení
out! vyzkoušet!
disableTileGrid: disableTileGrid:
title: Disable Grid title: Vypnout mřížku
description: Disabling the tile grid can help with the performance. This also description: Vypnutí mřížky částic může pomoct s výkonem. Toto nastavení
makes the game look cleaner! zlepšuje vzhled hry!
clearCursorOnDeleteWhilePlacing: clearCursorOnDeleteWhilePlacing:
title: Clear Cursor on Right Click title: Uvolní kurzor při kliknutím pravým tlačitkem
description: Enabled by default, clears the cursor whenever you right click description: Povoleno dle výchozího nastavení, uvolní kurzor pokaždé co kliknete pravým tlačítkem,
while you have a building selected for placement. If disabled, když máte budovu vybranou pro pokládání. Při vypnutí,
you can delete buildings by right-clicking while placing a můžete smazat budovy při kliknutí pravým tlačikem spolu s položením dalších
building. budov.
lowQualityTextures: lowQualityTextures:
title: Low quality textures (Ugly) title: Nižší kvalita textur (Horší vzhled)
description: Uses low quality textures to save performance. This will make the description: Používá nižší kvalitu textur pro zlepšení výkonu. Toto nastavení
game look very ugly! zhorší vzhled hry!
displayChunkBorders: displayChunkBorders:
title: Display Chunk Borders title: Zobrazit hranice oblastí
description: The game is divided into chunks of 16x16 tiles, if this setting is description: Hra je rozdělena na oblasti 16x16 částic. Pokud je toto nastavení povolené,
enabled the borders of each chunk are displayed. zobrazí se hranice těchto oblastí.
pickMinerOnPatch: pickMinerOnPatch:
title: Pick miner on resource patch title: Vybrat extraktor na naležistě zdrojů
description: Enabled by default, selects the miner if you use the pipette when description: Povoleno dle výchozího nastavení, vybere extraktor, pokud použijete kapátko pro
hovering a resource patch. kliknutí na nalezistě zdrojů.
simplifiedBelts: simplifiedBelts:
title: Simplified Belts (Ugly) title: Zjednodušené pásy (Horší vzhled)
description: Does not render belt items except when hovering the belt to save description: Nevykresluje předměty na pásech, pokud nad nimi nepřejíždíte kurzorem, pro ušetření
performance. I do not recommend to play with this setting if you výkonu. Nedoporučuji hrát s tímto nastavením, pokud
do not absolutely need the performance. opravdu nepotřebujete ušetřit výkon.
enableMousePan: enableMousePan:
title: Enable Mouse Pan title: Posouvání myší
description: Allows to move the map by moving the cursor to the edges of the description: Umožnuje posouvání po mapě, pokud myší přejedete na okraj
screen. The speed depends on the Movement Speed setting. obrazovky. Rychlost žáleží na nastavení rychlosti pohybu.
rangeSliderPercentage: <amount> % rangeSliderPercentage: <amount> %
keybindings: keybindings:
title: Klávesové zkratky title: Klávesové zkratky
@ -895,22 +939,23 @@ keybindings:
switchDirectionLockSide: Otočit strany zámku plánovače switchDirectionLockSide: Otočit strany zámku plánovače
pipette: Kapátko pipette: Kapátko
menuClose: Zavřít menu menuClose: Zavřít menu
switchLayers: Změnit vrstvi switchLayers: Změnit vrstvy
wire: Kabel wire: Kabel
balancer: Balancer balancer: Vyvažovač
storage: Storage storage: Sklad
constant_signal: Constant Signal constant_signal: Konstantní signál
logic_gate: Logic Gate logic_gate: Logická brána
lever: Switch (regular) lever: Přepínač (běžný)
lever_wires: Switch (wires) filter: Filtr
filter: Filter wire_tunnel: Křížení kabelů
wire_tunnel: Wire Crossing
display: Display display: Display
reader: Belt Reader reader: Čtečka pásů
virtual_processor: Virtual Cutter virtual_processor: Virtuální pila
transistor: Transistor transistor: Tranzistor
analyzer: Shape Analyzer analyzer: Analyzátor tvarů
comparator: Compare comparator: Porovnávač
item_producer: Výrobník předmětů (Sandbox)
copyWireValue: "Kabely: Zkopírovat hodnotu pod kurzorem"
about: about:
title: O hře title: O hře
body: >- body: >-
@ -936,62 +981,63 @@ demo:
exportingBase: Exportovat celou základnu jako obrázek exportingBase: Exportovat celou základnu jako obrázek
settingNotAvailable: Nedostupné v demo verzi. settingNotAvailable: Nedostupné v demo verzi.
tips: tips:
- The hub accepts input of any kind, not just the current shape! - Hub přijímá vstup jakéhokoliv tvaru, nejen právě požadovaný tvar!
- Make sure your factories are modular - it will pay out! - Ujistěte se, že vaše továrny jsou rozšiřitelné - vyplatí se to!
- Don't build too close to the hub, or it will be a huge chaos! - Nestavte přilíš blízko Hubu nebo vznikne velký chaos!
- If stacking does not work, try switching the inputs. - Pokud skládání nefunguje, zkuste prohodit vstupy.
- You can toggle the belt planner direction by pressing <b>R</b>. - Směr plánovače pásů můžete změnit stisknutím klávesy <b>R</b>.
- Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - Držení klávesy <b>CTRL</b> umožnuje natažení pásů bez auto-orientace.
- Ratios stay the same, as long as all upgrades are on the same Tier. - Poměry zůstávají stejné, dokud jsou všechny vylepšení na stejné úrovní.
- Serial execution is more efficient than parallel. - Sériové zapojení je efektivnější nez paralelní.
- You will unlock more variants of buildings later in the game! - V průběhu hry později odemknete další varianty mnoha budov!
- You can use <b>T</b> to switch between different variants. - Můžete použít klávesu <b>T</b> k přepnutí mezi různými variantami.
- Symmetry is key! - Symetrie je klíčová!
- You can weave different tiers of tunnels. - Můžete proplétat různé úrovně tunelů.
- Try to build compact factories - it will pay out! - Snažte se postavit kompaktní továrny - vyplatí se to!
- The painter has a mirrored variant which you can select with <b>T</b> - Barvič má zrcadlově otočenou variantu, kterou můžete vybrat klávesou <b>T</b>
- Having the right building ratios will maximize efficiency. - Užití správné kombinace vylepšení maximalizuje efektivitu.
- At maximum level, 5 extractors will fill a single belt. - Na maximální úrovní, 5 extraktorů zaplní jeden celý pás.
- Don't forget about tunnels! - Nezapomeňte na tunely!
- You don't need to divide up items evenly for full efficiency. - Pro plnou efektivitu nemusíte rozdělovat předměty rovnoměrně.
- Holding <b>SHIFT</b> will activate the belt planner, letting you place - Držení klávesy <b>SHIFT</b> spolu s pásy aktivuje plánovač pásy, který vám snadno umožní
long lines of belts easily. postavit dlouhé řady pásů.
- Cutters always cut vertically, regardless of their orientation. - Pily řežou vždy svisle, bez ohledu na jejich orientaci.
- To get white mix all three colors. - Smícháním všech 3 barev získáte bílou barvu.
- The storage buffer priorities the first output. - Sklad preferuje levý výstup.
- Invest time to build repeatable designs - it's worth it! - Investujte čas pro vytvoření opakovatelných designů - ulehčí vám to pozdější expanzy!
- Holding <b>CTRL</b> allows to place multiple buildings. - Držení klávesy <b>CTRL</b> umožnuje postavit více budov stejného typu.
- You can hold <b>ALT</b> to invert the direction of placed belts. - Můžete podržet klávesu <b>ALT</b> k obrácení směru pokládaných pásů.
- Efficiency is key! - Efektivita je klíčová!
- Shape patches that are further away from the hub are more complex. - Nalezistě zdrojů, které jsou více vzdálené od Hubu, jsou větší.
- Machines have a limited speed, divide them up for maximum efficiency. - Továrny mají omezenou rychlost, rozdělte předměty pro vyšší efektivitu.
- Use balancers to maximize your efficiency. - Použijte vyvažovače pro maximalizaci efektivity.
- Organization is important. Try not to cross conveyors too much. - Organizace je důležitá. Zkuste nekřížit příliš mnoho pásů.
- Plan in advance, or it will be a huge chaos! - Plánujte dopředu, abyste předešli vzniku velkého chaosu!
- Don't remove your old factories! You'll need them to unlock upgrades. - Neodstraňujte své staré továrny! Budete je potřebovat pro další vylepšení.
- Try beating level 20 on your own before seeking for help! - Před vyhledáním pomoci zkuste sami porazit úroveň 20!
- Don't complicate things, try to stay simple and you'll go far. - Snažte se věci nekomplikovat, zůstaňtě u jednoduchých designů a dostanete se daleko.
- You may need to re-use factories later in the game. Plan your factories to - Možná budete muset použít stejné továrny i v budoucnu. Vytvořte své továrny takovým stylem,
be re-usable. abyste je mohli použít i v dalších případech.
- Sometimes, you can find a needed shape in the map without creating it with - V nektěrých případech můžete najít celý požadovaný tvar bez nutnosti jeho výroby s pomocí
stackers. kombinátorů.
- Full windmills / pinwheels can never spawn naturally. - Celý tvar typu mlýnu se na mapě nikdy nevyskytne.
- Color your shapes before cutting for maximum efficiency. - Obarvěte své tvary před řezáním pro zvýšení efektivity.
- With modules, space is merely a perception; a concern for mortal men. - S moduly, prostor je pouze vnímáním; starost pro smrtelníky.
- Make a separate blueprint factory. They're important for modules. - Vytvořtě si samostatnou továrnu jen na plány (blueprinty). Jsou důležité pro moduly.
- Have a closer look on the color mixer, and your questions will be answered. - Podívejte se zblízka na míchač barev, a vaše otázky budou odpovězeny.
- Use <b>CTRL</b> + Click to select an area. - Použijte klávesu <b>CTRL</b> a myš pro označení oblasti.
- Building too close to the hub can get in the way of later projects. - Pokud stavíte příliš blízko Hubu, v budoucnu můžete narazit na problémy s dalšími projekty.
- The pin icon next to each shape in the upgrade list pins it to the screen. - Ikona připínáčku vedle každého tvaru vám umožnuje připnout tvar, čímž se vám bude neustále zobrazovat vlevo na obrazovce.
- Mix all primary colors together to make white! - Smíchejte všechny základní barvy pro vytvoření bílé barvy!
- You have an infinite map, don't cramp your factory, expand! - Vaše mapa je nekonečná, nesnažte se postavit továrnu na malinkém prostoru, rozšiřte se do okolí!
- Also try Factorio! It's my favorite game. - Neváhejte vyzkoušet hru Factorio! Je to má oblíbená hra.
- The quad cutter cuts clockwise starting from the top right! - Rozebírač funguje po směru hodinových ručiček, počínaje pravým horním rohem!
- You can download your savegames in the main menu! - V hlavním menu můžete stáhnout své uložené hry!
- This game has a lot of useful keybindings! Be sure to check out the - Tato hra má spoustu užitečných klávesových zkratek! Určitě si je projděte v
settings page. nastavení.
- This game has a lot of settings, be sure to check them out! - Tato hra má spoustu nastavení, určitě si je projděte!
- The marker to your hub has a small compass to indicate its direction! - Značka Hubu má vedle sebe malý kompas, který ukazuje směr k Hubu!
- To clear belts, cut the area and then paste it at the same location. - Pro vyčistění pásů, vyjměte budovy z prostoru a pak je zkopírujte zpět na stejné místo.
- Press F4 to show your FPS and Tick Rate. - Stisknutím F4 zobrazíte FPS a rychlost ticků.
- Press F4 twice to show the tile of your mouse and camera. - Stisknutím F4 dvakrát zobrazíte častici myši a kamery.
- Můžete kliknout na připínáček vlevo vedle připnutého tvaru k jeho odepnutí.

View File

@ -1,62 +1,52 @@
steamPage: steamPage:
shortText: shapez.io handler om at bygge fabrikker på en grænseløs spilleflade shortText: Shapez.io handler om at bygge fabrikker på en grænseløs spilleflade
for automatisk at skabe og kombinere figurer, der i stigende grad bliver for automatisk at skabe og kombinere figurer, der i stigende grad bliver
mere komplicerede. mere komplicerede.
discordLink: Officiel Discord - Snak lidt med mig! discordLinkShort: Official Discord
longText: >- intro: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] Shapez.io er et afslapet spil hvor du skal bygge fabrikker for at
automatisere productionen af geometriske figurer.
shapez.io handler om at bygge fabrikker over en grænseløs spilleflade for automatisk at skabe og kombinere figurer, der i stigende grad bliver mere komplicerede. Jo længer du når, jo mere kompliseret bliver figurene, og du bliver nød til at spræde dig ud på den grænseløse spilleflade.
Når efterspurgte figurer bliver afleveret, vil du gøre fremskridt i spillet og modtage opgraderinger, der gør din fabrik hurtigere. og hvis det ikke var nok, så skal du også producere eksponentielt flere figurer for at måde behovene spillet giver dig - det eneste der virker er skalering!
Som efterspørgslen på figurer stiger, må du opskalere din fabrik for at holde trit - Glem dog ikke resurserne, du vil blive nødt til at udvide over hele den [b]uendelige flade[/b]! Mens du i starten kun laver former, skal du senere farve lægge dem - for at gøre dette skal du udvinde og blande farver!
Der går ikke lang tid før du må mikse farver og male dine figurer med dem - Kombiner rød, grøn og blå farveresurser for at producere forskellige farver og mal derefter figurer med dem for at møde efterspørgslen. At købe spllet på Steam, giver dig adgang til det fulde spil, men du kan også spille en demo version på shapez.io og vælge senere!
title_advantages: Steam version Fordele
advantages:
- <b>12 Nye Niveauer</b> for i alt 26 niveauer
- <b>18 Nye Byginger</b> for en fuldt autmaticeret fabrik!
- <b>20 Upgraderings Niveauer</b> for mange timers sjov!
- <b>Wires Update</b> for an entirely new dimension!
- <b>Dark Mode</b>!
- Unlimited Savegames
- Uendelige Markører
- Hjælp med at støtte mig! ❤️
title_future: Planned Content
planned:
- Blueprint Library (Standalone Exclusive)
- Steam Achievements
- Puzzle Mode
- Minimap
- Mods
- Sandbox mode
- ... and a lot more!
title_open_source: This game is open source!
title_links: Links
links:
discord: Official Discord
roadmap: Roadmap
subreddit: Subreddit
source_code: Source code (GitHub)
translate: Help translate
text_open_source: >-
Anybody can contribute, I'm actively involved in the community and
attempt to review all suggestions and take feedback into consideration
where possible.
Dette spil indeholder 18 fremadskridende Niveauers (Som allerede burde holde dig beskæftiget i timevis!) men jeg tilføjer hele tiden nyt - Der er en hel masse planlagt! Be sure to check out my trello board for the full roadmap!
Hvis du køber spillet, får du adgang til den selvstændige version, der har endnu flere ting, og du får også adgang til nyudviklet indhold.
[b]Fordele for køb[/b]
[list]
[*] Mørk Tilstand
[*] Uendelige Markører
[*] Uendelige Gem
[*] Yderligere Indstillinger
[*] Kommer snart: Ledninger & Energi! Går efter at udgive (omkring) enden af juli 2020.
[*] Kommer snart: Niveauer
[*] Støtter mig i yderligere at udvikle shapez.io ❤️
[/list]
[b]Fremtidige Opdateringer[/b]
Jeg opdaterer spillet meget ofte og prøver at få frigivet en opdatering mindst hver uge!
[list]
[*] Forskellige spilleflader og udfordringer (f.eks. flader med forhindringer)
[*] Hjernevridere (Aflever den efterspurgte figur med et afgrænset areal / mængde bygninger)
[*] En 'story mode' hvor bygninger har en pris
[*] En spillefladeskaber med forskellige indstillinger (Konfigurer resurse/figur størrelse/tæthed, seed m.m.)
[*] Flere typer af figurer
[*] Forbedringer til hvor godt spillet kører (Det kører allerede rimelig godt!)
[*] Og meget mere!
[/list]
[b]Dette spil er open source![/b]
Enhver kan kontribuere, jeg er aktivt involveret i fælleskabet og prøver at gennemgå alle forslag og tage feedback i betragtning når det er muligt. Husk at tjekke mit trello board for den fulde køreplan!
[b]Link[/b]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]Officiel Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Køreplan[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Kildekode (GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Hjælp med at oversætte[/url]
[/list]
global: global:
loading: Indlæser loading: Indlæser
error: Fejl error: Fejl
@ -86,7 +76,7 @@ global:
control: CTRL control: CTRL
alt: ALT alt: ALT
escape: ESC escape: ESC
shift: SKIFT shift: SKIFT/SHIFT
space: MELLEMRUM space: MELLEMRUM
demoBanners: demoBanners:
title: Demo Version title: Demo Version
@ -131,7 +121,9 @@ dialogs:
text: "Det lykkedes ikke at åbne dit gemte spil:" text: "Det lykkedes ikke at åbne dit gemte spil:"
confirmSavegameDelete: confirmSavegameDelete:
title: Bekræft sletning title: Bekræft sletning
text: Er du sikker på du vil slette dit gemte spil? text: Are you sure you want to delete the following game?<br><br>
'<savegameName>' at level <savegameLevel><br><br> This can not be
undone!
savegameDeletionError: savegameDeletionError:
title: Sletning fejlede title: Sletning fejlede
text: "Det lykkedes ikke at slette dit gemte spil:" text: "Det lykkedes ikke at slette dit gemte spil:"
@ -187,9 +179,8 @@ dialogs:
transportbånd.<br>" transportbånd.<br>"
createMarker: createMarker:
title: Ny Markør title: Ny Markør
desc: Giv det et betydningsfuldt navn. du kan også inkludere en <strong>kort desc: Give it a meaningful name, you can also include a <strong>short
kode</strong> der repræsenterer en figur (Som du kan lave <a key</strong> of a shape (Which you can generate <link>here</link>)
href="https://viewer.shapez.io" target="_blank">her</a>)
titleEdit: Rediger Markør titleEdit: Rediger Markør
markerDemoLimit: markerDemoLimit:
desc: Du kan kun lave to markører i demoen. Køb spillet for uendelige markører! desc: Du kan kun lave to markører i demoen. Køb spillet for uendelige markører!
@ -210,6 +201,11 @@ dialogs:
renameSavegame: renameSavegame:
title: Rename Savegame title: Rename Savegame
desc: You can rename your savegame here. desc: You can rename your savegame here.
entityWarning:
title: Performance Warning
desc: You have placed a lot of buildings, this is just a friendly reminder that
the game can not handle an endless count of buildings - So try to
keep your factories compact!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Bevæg dig moveMap: Bevæg dig
@ -347,6 +343,38 @@ ingame:
one_miner: 1 Miner one_miner: 1 Miner
n_miners: <amount> Miners n_miners: <amount> Miners
limited_items: Limited to <max_throughput> limited_items: Limited to <max_throughput>
watermark:
title: Demo version
desc: Click here to see the Steam version advantages!
get_on_steam: Get on steam
standaloneAdvantages:
title: Get the full version!
no_thanks: No, thanks!
points:
levels:
title: 12 New Levels
desc: For a total of 26 levels!
buildings:
title: 18 New Buildings
desc: Fully automate your factory!
savegames:
title: ∞ Savegames
desc: As many as your heart desires!
upgrades:
title: 20 Upgrade Tiers
desc: This demo version has only 5!
markers:
title: ∞ Markers
desc: Never get lost in your factory!
wires:
title: Wires
desc: An entirely new dimension!
darkmode:
title: Dark Mode
desc: Stop hurting your eyes!
support:
title: Support me
desc: I develop it in my spare time!
shopUpgrades: shopUpgrades:
belt: belt:
name: Bælter, Fordelere & Tuneller name: Bælter, Fordelere & Tuneller
@ -365,6 +393,7 @@ buildings:
deliver: Aflever deliver: Aflever
toUnlock: for at få adgang til toUnlock: for at få adgang til
levelShortcut: NIV levelShortcut: NIV
endOfDemo: End of Demo
belt: belt:
default: default:
name: Transportbælte name: Transportbælte
@ -425,7 +454,9 @@ buildings:
description: Farver figurerne fra venstre side med farven fra toppen. description: Farver figurerne fra venstre side med farven fra toppen.
quad: quad:
name: Maler (Quad) name: Maler (Quad)
description: Lader dig farve hver fjerdel af figuren med forskellige farver. description: Allows you to color each quadrant of the shape individually. Only
slots with a <strong>truthy signal</strong> on the wires layer
will be painted!
trash: trash:
default: default:
name: Skraldespand name: Skraldespand
@ -543,14 +574,20 @@ buildings:
name: Virtual Painter name: Virtual Painter
description: Virtually paints the shape from the bottom input with the shape on description: Virtually paints the shape from the bottom input with the shape on
the right input. the right input.
item_producer:
default:
name: Item Producer
description: Available in sandbox mode only, outputs the given signal from the
wires layer on the regular layer.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Klippe Figurer title: Klippe Figurer
desc: Du har lige fået adgang til <strong>klipperen</strong> - den klipper desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half
figurer i to fra <strong>top til bund</strong> uanset hvordan den from top to bottom <strong>regardless of its
vender!<br><br>Sørg for at ødelægge alt du ikke har brug for, ellers orientation</strong>!<br><br>Be sure to get rid of the waste, or
<strong>går den i stå</strong> - Til dette har jeg givet dig otherwise <strong>it will clog and stall</strong> - For this purpose
skraldespanden, som ødelægger alt du putter i den! I have given you the <strong>trash</strong>, which destroys
everything you put into it!
reward_rotater: reward_rotater:
title: Rotation title: Rotation
desc: <strong>Drejeren</strong> er nu tilgængelig! Den drejer figurer 90 grader desc: <strong>Drejeren</strong> er nu tilgængelig! Den drejer figurer 90 grader
@ -564,8 +601,8 @@ storyRewards:
indstillingerne!" indstillingerne!"
reward_mixer: reward_mixer:
title: Farveblanding title: Farveblanding
desc: <strong>Farveblanderen</strong> er nu tilgængelig - Kombiner to farver ved desc: The <strong>mixer</strong> has been unlocked - It mixes two colors using
brug af (strong>additiv blanding</strong> med denne bygning! <strong>additive blending</strong>!
reward_stacker: reward_stacker:
title: Stabler title: Stabler
desc: Du kan du stable figurer med <strong>stableren</strong>! Begge inputs desc: Du kan du stable figurer med <strong>stableren</strong>! Begge inputs
@ -574,9 +611,9 @@ storyRewards:
<strong>stablet ovenpå</strong> det venstre! <strong>stablet ovenpå</strong> det venstre!
reward_splitter: reward_splitter:
title: Fordeler/Sammenlægger title: Fordeler/Sammenlægger
desc: Den flerfunktionelle <strong>Fordeler</strong> er nu tilgængelig - Den kan desc: You have unlocked a <strong>splitter</strong> variant of the
bruges til at bygge større fabrikker ved at <strong>fordele og <strong>balancer</strong> - It accepts one input and splits them
sammenlægge varer</strong> på flere bælter!<br><br> into two!
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
desc: <strong>Tunnellen</strong> er nu tilgængelig - Du kan nu lave tuneller desc: <strong>Tunnellen</strong> er nu tilgængelig - Du kan nu lave tuneller
@ -588,9 +625,10 @@ storyRewards:
<strong>trykke 'T'</strong>! <strong>trykke 'T'</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Kædeudvinder title: Kædeudvinder
desc: <strong>Kædeudvinder</strong> er nu tilgængelig! Den kan desc: "You have unlocked the <strong>chained extractor</strong>! It can
<strong>videregive sine resurser</strong> til andre udvindere, så du <strong>forward its resources</strong> to other extractors so you
kan udvinde resurser mere effektivt! can more efficiently extract resources!<br><br> PS: The old
extractor has been replaced in your toolbar now!"
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunnel Trin II title: Tunnel Trin II
desc: Du har fået adgang til en variant af <strong>tunnellen</strong> - Den har desc: Du har fået adgang til en variant af <strong>tunnellen</strong> - Den har
@ -606,19 +644,20 @@ storyRewards:
desc: Du har fået adgang til en variant af <strong>maleren</strong> - Den virker desc: Du har fået adgang til en variant af <strong>maleren</strong> - Den virker
som en normal maler, men maler <strong>to figurer samtidig</strong> som en normal maler, men maler <strong>to figurer samtidig</strong>
og bruger kun en farve i stedet for to. og bruger kun en farve i stedet for to.
reward_painter_quad:
title: Quad Maling
desc: Du har fået adgang til en variant af <strong>maleren</strong> - Den lader
dig male alle dele af en figur hver for sig!
reward_storage: reward_storage:
title: Opbevaringsbuffer title: Opbevaringsbuffer
desc: Du har fået adgang til en variant af <strong>skraldespanden</strong> - Den desc: You have unlocked the <strong>storage</strong> building - It allows you to
lader dig opbevare varer til en hvis kapacitet! store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
reward_freeplay: reward_freeplay:
title: Frit spil title: Frit spil
desc: Du klarede det! Du har fået adgang til <strong>frit spil</strong>! Dette desc: You did it! You unlocked the <strong>free-play mode</strong>! This means
betyder at figurer nu er tilfældigt genereret! (Vær ikke bekymret, that shapes are now <strong>randomly</strong> generated!<br><br>
mere indhold er planlagt for den betalte version!) Since the hub will require a <strong>throughput</strong> from now
on, I highly recommend to build a machine which automatically
delivers the requested shape!<br><br> The HUB outputs the requested
shape on the wires layer, so all you have to do is to analyze it and
automatically configure your factory based on that.
reward_blueprints: reward_blueprints:
title: Arbejdstegninger title: Arbejdstegninger
desc: Du kan nu <strong>kopiere og indsætte</strong> dele af din fabrik! Vælg et desc: Du kan nu <strong>kopiere og indsætte</strong> dele af din fabrik! Vælg et
@ -654,17 +693,12 @@ storyRewards:
title: Rotater (180 degrees) title: Rotater (180 degrees)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D) you to rotate a shape by 180 degress (Surprise! :D)
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Display
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize its contents! wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Constant Signal
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: You unlocked the <strong>constant signal</strong> building on the wires
@ -688,6 +722,23 @@ storyRewards:
shape requested by the HUB (I recommend to try it!).<br><br> - Build shape requested by the HUB (I recommend to try it!).<br><br> - Build
something cool with wires.<br><br> - Continue to play something cool with wires.<br><br> - Continue to play
regulary.<br><br> Whatever you choose, remember to have fun! regulary.<br><br> Whatever you choose, remember to have fun!
reward_wires_painter_and_levers:
title: Wires & Quad Painter
desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate
layer on top of the regular layer and introduces a lot of new
mechanics!<br><br> For the beginning I unlocked you the <strong>Quad
Painter</strong> - Connect the slots you would like to paint with on
the wires layer!<br><br> To switch to the wires layer, press
<strong>E</strong>."
reward_filter:
title: Item Filter
desc: You unlocked the <strong>Item Filter</strong>! It will route items either
to the top or the right output depending on whether they match the
signal from the wires layer or not.<br><br> You can also pass in a
boolean signal (1 / 0) to entirely activate or disable it.
reward_demo_end:
title: End of Demo
desc: You have reached the end of the demo version!
settings: settings:
title: Indstillinger title: Indstillinger
categories: categories:
@ -911,7 +962,6 @@ keybindings:
constant_signal: Constant Signal constant_signal: Constant Signal
logic_gate: Logic Gate logic_gate: Logic Gate
lever: Switch (regular) lever: Switch (regular)
lever_wires: Switch (wires)
filter: Filter filter: Filter
wire_tunnel: Wire Crossing wire_tunnel: Wire Crossing
display: Display display: Display
@ -920,6 +970,8 @@ keybindings:
transistor: Transistor transistor: Transistor
analyzer: Shape Analyzer analyzer: Shape Analyzer
comparator: Compare comparator: Compare
item_producer: Item Producer (Sandbox)
copyWireValue: "Wires: Copy value below cursor"
about: about:
title: Om dette spil title: Om dette spil
body: >- body: >-
@ -1004,3 +1056,4 @@ tips:
- To clear belts, cut the area and then paste it at the same location. - To clear belts, cut the area and then paste it at the same location.
- Press F4 to show your FPS and Tick Rate. - Press F4 to show your FPS and Tick Rate.
- Press F4 twice to show the tile of your mouse and camera. - Press F4 twice to show the tile of your mouse and camera.
- You can click a pinned shape on the left side to unpin it.

View File

@ -1,61 +1,47 @@
steamPage: steamPage:
shortText: In shapez.io nutzt du die vorhandenen Ressourcen, um mit deinen shortText: In shapez.io nutzt du die vorhandenen Ressourcen, um mit deinen
Maschinen durch Kombination immer komplexere Formen zu erschaffen. Maschinen durch Kombination immer komplexere Formen zu erschaffen.
discordLink: Offizieller Discord - Hier kannst du mit mir schreiben! intro: >-
longText: >- Du magst Automatisierungsspiele? Dann bist du hier genau richtig!
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
In shapez.io musst du Maschinen geschickt verbinden, damit Formen automatisiert erstellt, bearbeitet und kombiniert werden. shapez.io ist ein ruhiges Spiel, in dem du Fabriken zur automatisierten Produktion von geometrischen Formen bauen musst. Mit steigendem Level werden die Formen immer komplexer, und du musst dich auf der unendlich großen Karte ausbreiten.
Liefere die gewünschten, stetig komplexer werdenden Formen an dein Hauptgebäude, um im Spiel voranzukommen. Schalte mit ihnen außerdem Upgrades frei, die deine Maschinen und somit auch deine Fabriken beschleunigen! Und als ob das noch nicht genug wäre, musst du auch exponentiell mehr produzieren, um die Anforderungen zu erfüllen - Da hilft nur skalieren! Während du am Anfang nur Formen verarbeitest, musst du diese später einfärben - Dafür musst du Farben extrahieren und mischen!
Da die Nachfrage sowohl in der Komplexität, als auch der Menge steigt, wirst du deine Fabriken erweitern müssen. Vergiss nicht, dass du die dafür benötigten Ressourcen beschaffen musst und expandiere auf der [b]unendlichen Karte[/b]! Der Kauf des Spiels auf Steam gibt dir Zugriff auf die Vollversion, du kannst aber auch zuerst eine Demo auf shapez.io spielen und dich später entscheiden!
title_advantages: Vorteile der Vollversion
advantages:
- <b>12 Neue Level</b> für insgesamt 26 Level
- <b>18 Neue Gebäude</b> für eine komplett automatisierte Fabrik!
- <b>20 Upgrade Stufen</b> für viele Stunden Spielspaß
- <b>Wires Update</b> für eine komplett neue Dimension!
- <b>Dark Mode</b>!
- Unbegrenzte Speicherstände
- Unbegrenzte Wegpunkte
- Unterstütze mich! ❤️
discordLinkShort: Offizieller Discord
title_future: Geplante Inhalte
planned:
- Blaupausen-Bibliothek
- Steam Errungenschaften
- Puzzel-Modus
- Minimap
- Mod Unterstützung
- Sandkasten - Modus
- ... und noch viel mehr!
title_open_source: Dieses Spiel ist Quelloffen!
text_open_source: >-
Jeder kann etwas zum Spiel beitragen! Ich engagiere mich aktiv in der
Community und versuche alle Vorschläge zu berücksichtigen.
Bald wirst du Farben mischen und deine Formen damit bemalen lassen. Staple dann deine fertigen Formen aufeinander und lasse so die wildesten Kreationen entstehen. Die vollständige Roadmap findet ihr in meinem Trello-Board!
title_links: Links
Nutze dein gesammeltes Wissen über die Maschinen und lasse deine Fabriken die gewünschten Formen der 18 verschiedenen Level abliefern. Schalte mit jedem Level neue Arbeitsschritte oder Gebäude frei. Das sollte dich schon für Stunden beschäftigt halten! Danach werden im Freispielmodus zufällige Formen generiert, die du ebenfalls abliefern kannst. Ich füge regelmäßig neue Funktionen hinzu und davon sind eine ganze Menge geplant! links:
discord: Offizieller Discord
Wenn du das Spiel erwirbst, erhälst du Zugriff auf die zusätzlichen Features der Standalone-Version. Das bedeutet, du kannst unter anderem die neuesten Updates zuerst spielen! roadmap: Roadmap
subreddit: Subreddit
[b]Vorteile der Standalone[/b] source_code: Quellcode (GitHub)
translate: Hilf beim Übersetzen
[list]
[*] Dark-Mode
[*] Unbegrenzte Anzahl an Wegpunkten
[*] Unbegrenzte Anzahl an Speicherständen
[*] Zusätzliche Einstellungen
[*] Es kommen: Kabel & Energie! Voraussichtlich gegen Ende Juli 2020
[*] Es kommen: Mehr Levels
[*] Unterstütze die Entwicklung von shapez.io ❤️
[/list]
[b]Geplante Funktionen[/b]
Ich bin aktiv mit der Entwicklung beschäftigt und versuche jede Woche ein Update oder den aktuellen Stand der Entwicklung zu veröffentlichen.
[list]
[*] Verschiedene Karten und Herausforderungen (z.B. Karten mit Hindernissen)
[*] Puzzle (Liefere die geforderte Form mit begrenztem Platz/limitierten Gebäuden)
[*] Eine Kampagne mit Gebäudekosten
[*] Konfigurierbarer Kartengenerator (Ändere die Grösse/Anzahl/Dichte der Ressourcenflecken, den Seed und vieles mehr)
[*] Mehr Formentypen
[*] Performanceverbesserungen (Das Spiel läuft bereits sehr gut!)
[*] Und vieles mehr!
[/list]
[b]Das Spiel ist Open Source![/b]
Jeder kann dazu beitragen! Ich bin aktiv in die Community involviert, versuche alle Vorschläge zu lesen und beziehe so viel Feedback wie möglich mit in die Entwicklung ein. Die komplette Roadmap gibt es auf dem Trello-Board zum Nachlesen.
[b]Links[/b]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]Offizieller 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]Quelltext (GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Hilf beim Übersetzen[/url]
[/list]
global: global:
loading: Laden loading: Laden
error: Fehler error: Fehler
@ -89,7 +75,7 @@ global:
space: LEER space: LEER
demoBanners: demoBanners:
title: Demo Version title: Demo Version
intro: Kauf die Standalone für alle Features! intro: Kauf die Vollversion für alle Features!
mainMenu: mainMenu:
play: Spielen play: Spielen
changelog: Änderungsprotokoll changelog: Änderungsprotokoll
@ -102,11 +88,11 @@ mainMenu:
helpTranslate: Hilf beim Übersetzen! helpTranslate: Hilf beim Übersetzen!
madeBy: Ein Spiel von <author-link> madeBy: Ein Spiel von <author-link>
browserWarning: Sorry, aber das Spiel wird in deinem Browser langsam laufen! browserWarning: Sorry, aber das Spiel wird in deinem Browser langsam laufen!
Kaufe die Standalone-Version oder verwende Chrome für die beste Kaufe die Vollversion oder verwende Google Chrome für die beste
Erfahrung! Erfahrung!
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: Unbekanntes Level savegameLevelUnknown: Unbekanntes Level
savegameUnnamed: Unnamed savegameUnnamed: Unbenannt
dialogs: dialogs:
buttons: buttons:
ok: OK ok: OK
@ -115,28 +101,29 @@ dialogs:
later: Später later: Später
restart: Neustart restart: Neustart
reset: Zurücksetzen reset: Zurücksetzen
getStandalone: Standalone Ansehen getStandalone: Zur Vollversion
deleteGame: Ich weiß, was ich tue! deleteGame: Ich weiß, was ich tue
viewUpdate: Update anzeigen viewUpdate: Update anzeigen
showUpgrades: Upgrades anzeigen showUpgrades: Upgrades anzeigen
showKeybindings: Kürzel anzeigen showKeybindings: Kürzel anzeigen
importSavegameError: importSavegameError:
title: Importierfehler title: Importfehler
text: "Fehler beim Importieren deines Spielstands:" text: "Fehler beim Importieren deines Speicherstands:"
importSavegameSuccess: importSavegameSuccess:
title: Spielstand importieren title: Speicherstand Importieren
text: Dein Spielstand wurde erfolgreich importiert. text: Dein Speicherstand wurde erfolgreich importiert.
gameLoadFailure: gameLoadFailure:
title: Der Spielstand ist kaputt title: Der Speicherstand ist kaputt
text: Der Spielstand konnte nicht geladen werden. text: Der Speicherstand konnte nicht geladen werden. Sorry!
confirmSavegameDelete: confirmSavegameDelete:
title: Löschen bestätigen title: Löschen bestätigen
text: Bist du sicher, dass du den Spielstand löschen willst? text: Bist du sicher, dass du folgenden Speicherstand löschen willst?<br><br>
'<savegameName>' auf Level <savegameLevel><br><br>Das kann nicht rückgängig gemacht werden!
savegameDeletionError: savegameDeletionError:
title: Löschen gescheitert title: Löschen fehlgeschlagen
text: "Das Löschen des Spiels ist gescheitert:" text: "Das Löschen des Spiels ist fehlgeschlagen:"
restartRequired: restartRequired:
title: Neustart benötigt title: Neustart nötig
text: Du musst das Spiel neu starten, um die Einstellungen anzuwenden. text: Du musst das Spiel neu starten, um die Einstellungen anzuwenden.
editKeybinding: editKeybinding:
title: Tastenbelegung ändern title: Tastenbelegung ändern
@ -150,31 +137,32 @@ dialogs:
desc: Die Tastenbelegung wurde auf den Standard zurückgesetzt! desc: Die Tastenbelegung wurde auf den Standard zurückgesetzt!
featureRestriction: featureRestriction:
title: Demo-Version title: Demo-Version
desc: Du hast ein Feature gefunden (<feature>), welches nicht in der Demo desc: Du hast ein Feature benutzt (<feature>), welches nicht in der Demo
enthalten ist. Erwerbe die Standalone für das volle Erlebnis! enthalten ist. Erwerbe die Vollversion auf Steam für das volle Erlebnis!
oneSavegameLimit: oneSavegameLimit:
title: Begrenzte Spielstände title: Begrenzte Spielstände
desc: Du kannst in der Demo nur einen Spielstand haben. Bitte lösche den desc: Du kannst in der Demo nur einen Spielstand haben. Bitte lösche den
existierenden Spielstand oder hole dir die Standalone! existierenden Spielstand oder hole dir die Vollversion!
updateSummary: updateSummary:
title: Neues Update! title: Neues Update!
desc: "Hier sind die Änderungen, seitdem du das letzte Mal gespielt hast:" desc: "Hier sind die Änderungen, seitdem du das letzte Mal gespielt hast:"
upgradesIntroduction: upgradesIntroduction:
title: Upgrades Freischalten title: Upgrades Freischalten
desc: Viele deiner Formen können noch benutzt werden, um Upgrades freizuschalten desc: >-
Viele deiner Formen können noch benutzt werden, um Upgrades freizuschalten
- <strong>Zerstöre deine alten Fabriken nicht!</strong> Den - <strong>Zerstöre deine alten Fabriken nicht!</strong> Den
Upgrade-Tab findest du oben rechts im Bildschirm. Upgrade-Tab findest du oben rechts im Bildschirm.
massDeleteConfirm: massDeleteConfirm:
title: Löschen bestätigen title: Löschen bestätigen
desc: Du löscht sehr viele Gebäude (<count> um genau zu sein)! Bist du dir desc: Du löscht viele Gebäude (<count> um genau zu sein)! Bist du dir
sicher? sicher?
massCutConfirm: massCutConfirm:
title: Ausschneiden bestätigen title: Ausschneiden bestätigen
desc: Du schneidest sehr viele Gebäude aus (<count> um genau zu sein)! Bist du desc: Du schneidest viele Gebäude aus (<count> um genau zu sein)! Bist du
dir sicher? dir sicher?
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Ausschneiden bestätigen title: Ausschneiden bestätigen
desc: Du kannst dir das Einfügen nicht leisten! Bist du sicher, dass du trotzdem desc: Du wirst dir das Einfügen nicht leisten können! Bist du sicher, dass du trotzdem
Ausschneiden möchtest? Ausschneiden möchtest?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Noch nicht freigeschaltet title: Noch nicht freigeschaltet
@ -191,13 +179,10 @@ dialogs:
<code class='keybinding'>ALT</code>: Invertiere die Platzierungsrichtung der Förderbänder.<br> <code class='keybinding'>ALT</code>: Invertiere die Platzierungsrichtung der Förderbänder.<br>
createMarker: createMarker:
title: Neuer Marker title: Neuer Marker
desc: Gib ihm einen griffigen Namen. Du kannst sogar die desc: Vergib einen vernünftigen namen, du kannst auch den <strong>Kurz-Code</strong> einer Form eingeben (Welchen du <link>hier</link>) generieren kannst.
<strong>Abkürzung</strong> einer Form eingeben (Diese kann <a
href="https://viewer.shapez.io" target="_blank">hier</a> generiert
werden).
titleEdit: Marker bearbeiten titleEdit: Marker bearbeiten
markerDemoLimit: markerDemoLimit:
desc: Du kannst nur 2 Marker in der Demo benutzen. Hol dir die Standalone, um desc: Du kannst nur 2 Marker in der Demo benutzen. Hol dir die Vollversion, um
unendlich viele Marker zu erstellen! unendlich viele Marker zu erstellen!
exportScreenshotWarning: exportScreenshotWarning:
title: Bildschirmfoto exportieren title: Bildschirmfoto exportieren
@ -205,13 +190,15 @@ dialogs:
extrem große Fabriken kann das jedoch sehr lange dauern und ggf. zum extrem große Fabriken kann das jedoch sehr lange dauern und ggf. zum
Spielabsturz führen! Spielabsturz führen!
editSignal: editSignal:
title: Set Signal title: Signal Setzen
descItems: "Choose a pre-defined item:" descItems: "Wähle ein vordefiniertes item:"
descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you descShortKey: ... oder gib den <strong>Kurz-Code</strong> einer Form an (Welchen du <link>hier</link> generieren kannst)
can generate <link>here</link>)
renameSavegame: renameSavegame:
title: Rename Savegame title: Speicherstand umbenennen
desc: You can rename your savegame here. desc: Hier kannst du deinen Speicherstand umbenennen.
entityWarning:
title: Leistungswarnung
desc: Du hast eine Menge Gebäude platziert, das hier ist nur ein freundlicher Hinweis dass das Spiel nicht mit unendlich vielen Gebäuden umgehen kann!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Bewegen moveMap: Bewegen
@ -244,7 +231,7 @@ ingame:
black: Schwarz black: Schwarz
uncolored: Farblos uncolored: Farblos
buildingPlacement: buildingPlacement:
cycleBuildingVariants: <key> Wechsle Variante cycleBuildingVariants: Presse <key> zum Wechseln
hotkeyLabel: "Taste: <key>" hotkeyLabel: "Taste: <key>"
infoTexts: infoTexts:
speed: Geschw. speed: Geschw.
@ -262,7 +249,7 @@ ingame:
notifications: notifications:
newUpgrade: Ein neues Upgrade ist verfügbar! newUpgrade: Ein neues Upgrade ist verfügbar!
gameSaved: Dein Spiel wurde gespeichert. gameSaved: Dein Spiel wurde gespeichert.
freeplayLevelComplete: Level <level> has been completed! freeplayLevelComplete: Level <level> abgeschlossen!
shop: shop:
title: Upgrades title: Upgrades
buttonUnlock: Upgrade buttonUnlock: Upgrade
@ -294,16 +281,15 @@ ingame:
dataSources: dataSources:
stored: stored:
title: Gelagert title: Gelagert
description: Zeigt die Menge an Formen, die im Hub gelagert sind. description: Alle im Hub gelagerten Formen.
produced: produced:
title: Produziert title: Produziert
description: Zeigt die Menge an Formen, die deine gesamte Fabrik produziert description: Alle Formen, die in deiner Fabrik hergestellt werden, einschließlich Zwischenprodukte.
(inkl. Zwischenprodukte).
delivered: delivered:
title: Abgeliefert title: Geliefert
description: Zeigt die Menge an Formen, die im zentralen Gebäude abgeliefert description: Formen, die an den Hub geliefert werden.
werden.
noShapesProduced: Es werden noch keine Formen produziert oder abgeliefert. noShapesProduced: Es werden noch keine Formen produziert oder geliefert.
shapesDisplayUnits: shapesDisplayUnits:
second: <shapes> / s second: <shapes> / s
minute: <shapes> / m minute: <shapes> / m
@ -312,10 +298,7 @@ ingame:
playtime: Spielzeit playtime: Spielzeit
buildingsPlaced: Gebäude buildingsPlaced: Gebäude
beltsPlaced: Förderbänder beltsPlaced: Förderbänder
buttons:
continue: Weiter
settings: Einstellungen
menu: Zurück zum Menü
tutorialHints: tutorialHints:
title: Brauchst du Hilfe? title: Brauchst du Hilfe?
showHint: Hinweis showHint: Hinweis
@ -347,9 +330,42 @@ ingame:
Halte <strong>UMSCH</strong>, um mehrere Gebäude zu platzieren Halte <strong>UMSCH</strong>, um mehrere Gebäude zu platzieren
und nutze <strong>R</strong>, um sie zu rotieren." und nutze <strong>R</strong>, um sie zu rotieren."
connectedMiners: connectedMiners:
one_miner: 1 Miner one_miner: 1 Extrahierer
n_miners: <amount> Miners n_miners: <amount> Extrahierer
limited_items: Limited to <max_throughput> limited_items: Begrenzt auf <max_throughput>
watermark:
title: Demo Version
desc: Klicke hier, um die Vorteile der Vollversion zu sehen!
get_on_steam: Zur Vollversion
standaloneAdvantages:
title: Vorteile der Vollversion
no_thanks: Nein, Dank!
points:
levels:
title: 12 Neue Level
desc: Für insgesamt 26 Level!
buildings:
title: 18 Neue Gebäude
desc: Automatisiere deine Fabrik!
savegames:
title: ∞ Speicherstände
desc: So viele dein Herz begehrt!
upgrades:
title: 20 Upgrade Stufen
desc: Diese Demo hat nur 5!
markers:
title: ∞ Marker
desc: Verliere dich nie in deiner Fabrik!
wires:
title: Wires
desc: Eine ganz neue Dimension!
darkmode:
title: Dark Mode
desc: Werde nicht mehr geblendet!
support:
title: Unterstütze Mich
desc: Ich verwende meine Freizeit!
shopUpgrades: shopUpgrades:
belt: belt:
name: Förderbänder, Verteiler & Tunnel name: Förderbänder, Verteiler & Tunnel
@ -366,8 +382,9 @@ shopUpgrades:
buildings: buildings:
hub: hub:
deliver: Liefere deliver: Liefere
toUnlock: "Für folgende Belohnung:" toUnlock: "Für die Belohnung:"
levelShortcut: LVL levelShortcut: LVL
endOfDemo: Ende der Demo
belt: belt:
default: default:
name: Förderband name: Förderband
@ -395,19 +412,19 @@ buildings:
description: Zerschneidet Formen von oben nach unten. <strong>Benutze oder description: Zerschneidet Formen von oben nach unten. <strong>Benutze oder
zerstöre beide Hälften, sonst verstopft die Maschine!</strong> zerstöre beide Hälften, sonst verstopft die Maschine!</strong>
quad: quad:
name: Schneider (4-fach) name: Schneider (Vierfach)
description: Zerschneidet Formen in vier Teile. <strong>Benutze oder zerstöre description: Zerschneidet Formen in vier Teile. <strong>Benutze oder zerstöre
alle Viertel, sonst verstopft die Maschine!</strong> alle Viertel, sonst verstopft die Maschine!</strong>
rotater: rotater:
default: default:
name: Rotierer (-90°) name: Rotierer (90°)
description: Rotiert Formen im Uhrzeigersinn um 90 Grad. description: Rotiert Formen im Uhrzeigersinn um 90 Grad.
ccw: ccw:
name: Rotierer (+90°) name: Rotierer (-90°)
description: Rotiert Formen gegen den Uhrzeigersinn um 90 Grad. description: Rotiert Formen gegen den Uhrzeigersinn um 90 Grad.
rotate180: rotate180:
name: Rotate (180) name: Rotierer (180°)
description: Rotates shapes by 180 degrees. description: Rotiert formen um 180 Grad.
stacker: stacker:
default: default:
name: Stapler name: Stapler
@ -432,7 +449,9 @@ buildings:
oberen Eingang. oberen Eingang.
quad: quad:
name: Färber (4-fach) name: Färber (4-fach)
description: Erlaubt es, jedes einzelne Viertel einer Form beliebig einzufärben. description: Erlaubt dir, jeden Quadranten der Form individuell zu färben. Nur
Quadranten mit einem <strong>wahren Signal</strong> auf der Wires-Ebene
werden angemalt!
trash: trash:
default: default:
name: Mülleimer name: Mülleimer
@ -440,125 +459,128 @@ buildings:
Für immer ... Für immer ...
wire: wire:
default: default:
name: Stromkabel name: Signalkabel
description: Erlaubt dir Strom zu transportieren. description: Erlaubt dir Signale zu transportieren.
second: second:
name: Wire name: Signalkabel
description: Transfers signals, which can be items, colors or booleans (1 / 0). description: Überträgt Signale, die Gegenstände, Farben oder Wahrheitswerte (1 oder 0) sein können. Unterschiedlich farbige Kabel verbinden sich nicht miteinander.
Different colored wires do not connect.
balancer: balancer:
default: default:
name: Balancer name: Verteiler
description: Multifunctional - Evenly distributes all inputs onto all outputs. description: Multifunktional - Verteilt alle Eingänge gleichmäßig auf alle Ausgänge.
merger: merger:
name: Merger (compact) name: Kombinierer (kompakt)
description: Merges two conveyor belts into one. description: Kombiniert zwei Fließbänder in eins.
merger-inverse: merger-inverse:
name: Merger (compact) name: Kombinierer (kompakt)
description: Merges two conveyor belts into one. description: Kombiniert zwei Fließbänder in eins.
splitter: splitter:
name: Splitter (compact) name: Verteiler (kompakt)
description: Splits one conveyor belt into two. description: Teilt ein Fließband in zwei.
splitter-inverse: splitter-inverse:
name: Splitter (compact) name: Verteiler (kompakt)
description: Splits one conveyor belt into two. description: Teilt ein Fließband in zwei.
storage: storage:
default: default:
name: Storage name: Speicher
description: Stores excess items, up to a given capacity. Prioritizes the left description:
output and can be used as an overflow gate. Speichert überschüssige Gegenstände, bis zu einer bestimmten Kapazität. Priorisiert den linken
Ausgang und kann als Überlauftor verwendet werden.
wire_tunnel: wire_tunnel:
default: default:
name: Wire Crossing name: Signal-Kreuzung
description: Allows to cross two wires without connecting them. description: Erlaubt es, zwei Kabel zu kreuzen, ohne sie zu verbinden.
constant_signal: constant_signal:
default: default:
name: Constant Signal name: Konstantes Signal
description: Emits a constant signal, which can be either a shape, color or description: Sendet ein konstantes Signal, das entweder eine Form, eine Farbe oder
boolean (1 / 0). Wahrheitswert (1 / 0) sein kann.
lever: lever:
default: default:
name: Switch name: Schalter
description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, description:
which can then be used to control for example an item filter. Kann umgeschaltet werden, um einen Wahrheitswert (1 / 0) auf der Wires-Ebene auszusenden,
welcher dann z.B. zur Steuerung eines Filters verwendet werden kann.
logic_gate: logic_gate:
default: default:
name: AND Gate name: UND Gatter
description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, description: Gibt eine "1" aus, wenn beide Eingänge wahr sind (wahr bedeutet Form,
color or boolean "1") Farbe oder "1").
not: not:
name: NOT Gate name: NICHT Gatter
description: Emits a boolean "1" if the input is not truthy. (Truthy means description: Gibt eine "1" aus, wenn der Eingang nicht wahr ist (wahr bedeutet Form,
shape, color or boolean "1") Farbe oder "1").
xor: xor:
name: XOR Gate name: XOR Gatter
description: Emits a boolean "1" if one of the inputs is truthy, but not both. description: Gibt eine "1" aus, wenn einer der Eingänge wahr ist, aber nicht beide
(Truthy means shape, color or boolean "1") (wahr bedeutet Form, Farbe oder "1").
or: or:
name: OR Gate name: ODER Gatter
description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means description: Gibt eine "1" aus, wenn eine der Eingäge wahr ist (wahr bedeutet Form, Farbe oder "1").
shape, color or boolean "1")
transistor: transistor:
default: default:
name: Transistor name: Transistor
description: Forwards the bottom input if the side input is truthy (a shape, description: Leitet den unteren Eingang weiter, wenn der seitliche Eingang wahr ist (eine Form,
color or "1"). Farbe oder "1").
mirrored: mirrored:
name: Transistor name: Transistor
description: Forwards the bottom input if the side input is truthy (a shape, description: Leitet den unteren Eingang weiter, wenn der seitliche Eingang wahr ist (eine Form,
color or "1"). Farbe oder "1").
filter: filter:
default: default:
name: Filter name: Filter
description: Connect a signal to route all matching items to the top and the description: Verbinde ein Signal, um alle passenden Gegenstände nach oben zu leiten und die
remaining to the right. Can be controlled with boolean signals restlichen nach rechts. Kann auch mit Wahrheitswerten gesteuert werden.
too.
display: display:
default: default:
name: Display name: Display
description: Connect a signal to show it on the display - It can be a shape, description: Verbinde ein Signal, um es auf dem Display anzuzeigen - Es kann eine Form sein,
color or boolean. Farbe oder Wahrheitswert.
reader: reader:
default: default:
name: Belt Reader name: Fließband Leser
description: Allows to measure the average belt throughput. Outputs the last description:
read item on the wires layer (once unlocked). Ermöglicht es, den durchschnittlichen Durchsatz des Fließbandes zu messen. Gibt den letzten
Gegenstand auf der Wires-Ebene aus (sobald freigeschaltet).
analyzer: analyzer:
default: default:
name: Shape Analyzer name: Formanalyse
description: Analyzes the top right quadrant of the lowest layer of the shape description: Analysiert den oberen rechten Quadranten der untersten Schicht der Form
and returns its shape and color. und gibt seine Form und Farbe zurück.
comparator: comparator:
default: default:
name: Compare name: Vergleich
description: Returns boolean "1" if both signals are exactly equal. Can compare description: Gibt eine "1" zurück, wenn beide Signale genau gleich sind. Kann Formen, Gegenstände und Wahrheitswerte vergleichen.
shapes, items and booleans.
virtual_processor: virtual_processor:
default: default:
name: Virtual Cutter name: Virtueller Schneider
description: Virtually cuts the shape into two halves. description: Schneidet die Form virtuell in zwei Hälften.
rotater: rotater:
name: Virtual Rotater name: Virtueller Rotierer
description: Virtually rotates the shape, both clockwise and counter-clockwise. description: Dreht die Form virtuell, sowohl im als auch gegen den Uhrzeigersinn.
unstacker: unstacker:
name: Virtual Unstacker name: Virtueller Unstapler
description: Virtually extracts the topmost layer to the right output and the description: Extrahiert virtuell die oberste Ebene nach rechts und die
remaining ones to the left. die restlichen Ebenen nach links.
stacker: stacker:
name: Virtual Stacker name: Virtueller Stapler
description: Virtually stacks the right shape onto the left. description: Stapelt virtuell die rechte Form auf die linke.
painter: painter:
name: Virtual Painter name: Virtueller Färber
description: Virtually paints the shape from the bottom input with the shape on description: Färbt virtuell die Form vom unteren Eingang mit der Farbe aus dem rechten Eingang.
the right input.
item_producer:
default:
name: Item-Produzent
description: Nur im Sandbox-Modus verfügbar, gibt das Signal aus der Wires-Ebene auf der regulären Schicht aus.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Formen zerschneiden title: Formen zerschneiden
desc: Du hast den <strong>Schneider</strong> freigeschaltet! Er zerschneidet desc:
Formen von <strong>oben nach unten</strong>, unabhängig von ihrer Du hast gerade den <strong>Schneider</strong> freigeschaltet, der Formen in zwei Hälften schneidet,
Orientierung.<br><br>Stelle sicher, dass du den Abfall loswirst, von oben nach unten, <b>unabhängig der Orientierung</b>!<br><br>Achte darauf, den Abfall loszuwerden, oder
sonst <strong>verstopft die Maschine</strong>! Dafür habe ich dir <b>er wird verstopfen und blockieren</b> - Zu diesem Zweck habe ich dir den <strong>Mülleimer</strong> gegeben, der
extra einen Mülleimer freigeschaltet. alles entsorgt, was du hineintust!
reward_rotater: reward_rotater:
title: Rotieren title: Rotieren
desc: Der <strong>Rotierer</strong> wurde freigeschaltet! Er rotiert Formen im desc: Der <strong>Rotierer</strong> wurde freigeschaltet! Er rotiert Formen im
@ -582,10 +604,8 @@ storyRewards:
<strong>gestapelt</strong>. <strong>gestapelt</strong>.
reward_splitter: reward_splitter:
title: Verteiler/Kombinierer title: Verteiler/Kombinierer
desc: Der multifunktionale <strong>Verteiler</strong> wurde freigeschaltet! Er desc: Du hast eine <strong>Splitter</strong> Variante des
ermöglicht die Konstruktion größerer Fabriken, indem er Items auf <strong>Verteilers</strong> freigeschaltet - Er teilt ein Fließband auf zwei auf!
mehrere Förderbänder <strong>verteilt oder diese
zusammenführt</strong>!<br><br>
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
desc: Der <strong>Tunnel</strong> wurde freigeschaltet! Du kannst Items nun desc: Der <strong>Tunnel</strong> wurde freigeschaltet! Du kannst Items nun
@ -598,9 +618,10 @@ storyRewards:
verschiedene Varianten zuzugreifen</strong>. verschiedene Varianten zuzugreifen</strong>.
reward_miner_chainable: reward_miner_chainable:
title: Extrahierer (Kette) title: Extrahierer (Kette)
desc: Du hast den <strong>Extrahierer (Kette)</strong> freigeschaltet! Damit desc: >-
können die Ressourcen an den Nächsten <strong>weitergegeben</strong> Du hast den <strong>Kettenextrahierer</strong> freigeschaltet! Er kann
werden, um Ressourcen effizienter zu extrahieren. seine Resourcen an andere Extrahierer <strong>weiterleiten</strong>! <br><br>
PS: Die alten Extrahierer wurde jetzt in deiner Symbolleiste ersetzt!
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunnel Stufe II title: Tunnel Stufe II
desc: Du hast eine neue Variante des <strong>Tunnels</strong> freigeschaltet! desc: Du hast eine neue Variante des <strong>Tunnels</strong> freigeschaltet!
@ -616,22 +637,23 @@ storyRewards:
desc: Du hast eine neue Variante des <strong>Färbers</strong> freigeschaltet! desc: Du hast eine neue Variante des <strong>Färbers</strong> freigeschaltet!
Hiermit kannst du <strong>zwei Formen auf einmal</strong> färben und Hiermit kannst du <strong>zwei Formen auf einmal</strong> färben und
verbrauchst nur eine Farbe. verbrauchst nur eine Farbe.
reward_painter_quad:
title: Färber (4-fach)
desc: Du hast eine neue Variante des <strong>Färbers</strong> freigeschaltet! Er
kann jedes Viertel einer Form einzeln färben, verbraucht aber auch
jeweils eine Farbe.
reward_storage: reward_storage:
title: Zwischenlager title: Speicher
desc: Du hast eine neue Variante des <strong>Mülleimers</strong> freigeschaltet! desc: Du hast das <strong>Speicher</strong> Gebäude freigeschaltet - Es erlaubt dir
Bis zu einer gewissen Kapazität können hier Items zwischengelagert Gegenstände bis zu einer bestimmten Kapazität zu speichern!<br><br>
werden. Es priorisiert den linken Ausgang, also kannst du es auch als <strong>Überlauftor</strong> benutzen!
reward_freeplay: reward_freeplay:
title: Freies Spiel title: Freies Spiel
desc: Du hast es geschafft! Du bist im <strong>freien Spiel</strong> angekommen! desc: >-
Das heißt, dass abzuliefernde Formen jetzt zufällig generiert Du hast es geschafft! Du hast den <strong>Freispiel-Modus</strong> freigeschaltet! Das bedeutet,
werden! (Keine Sorge, für die Standaloneversion ist noch mehr dass die Formen jetzt <strong>zufällig</strong> erzeugt werden!<br><br>
geplant!)
Da der Hub ab jetzt einen <strong>Durchsatz</strong> benötigt, empfehle ich dringend eine Maschine zu bauen,
die automatisch die gewünschte Form liefert!<br><br>
Der HUB gibt die gewünschte Form auf der Wires-Ebene aus, also ist alles was du tun musst, sie zu analysieren und
automatisch deine Fabrik basierend darauf zu konfigurieren.
reward_blueprints: reward_blueprints:
title: Blaupause title: Blaupause
desc: Jetzt kannst du Teile deiner Fabrik <strong>kopieren und desc: Jetzt kannst du Teile deiner Fabrik <strong>kopieren und
@ -648,38 +670,31 @@ storyRewards:
um <strong>Upgrades freizuschalten</strong>!" um <strong>Upgrades freizuschalten</strong>!"
no_reward_freeplay: no_reward_freeplay:
title: Nächstes Level title: Nächstes Level
desc: Herzlichen Glückwunsch! Apropos, in der Standalone-Version ist noch vieles desc: Du hast das nächste Level freigeschalten!
mehr geplant!
reward_balancer: reward_balancer:
title: Balancer title: Verteiler
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can desc: Der multifunktionale <strong>Verteiler</strong> wurde freigeschaltet - Er kann
be used to build bigger factories by <strong>splitting and merging benutzt werden, um größere Fabriken zu bauen, indem Gegenstände auf mehrere Fließbänder aufgeteilt und zusammengelegt werden!
items</strong> onto multiple belts!<br><br>
reward_merger: reward_merger:
title: Compact Merger title: Kompakter Verteiler
desc: You have unlocked a <strong>merger</strong> variant of the desc: >-
<strong>balancer</strong> - It accepts two inputs and merges them Du hast eine <strong>kompakte Variante</strong> des <strong>Verteilers</strong> freigeschalten - Sie verteilt zwei Fließbänder auf eins!
into one belt!
reward_belt_reader: reward_belt_reader:
title: Belt reader title: Fließband Leser
desc: You have now unlocked the <strong>belt reader</strong>! It allows you to desc: You have now unlocked the <strong>belt reader</strong>! It allows you to
measure the throughput of a belt.<br><br>And wait until you unlock measure the throughput of a belt.<br><br>And wait until you unlock
wires - then it gets really useful! wires - then it gets really useful!
reward_rotater_180: reward_rotater_180:
title: Rotater (180 degrees) title: Rotater (180 degrees)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D) you to rotate a shape by 180 degrees (Surprise! :D)
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Display
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize its contents! wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Constant Signal
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: You unlocked the <strong>constant signal</strong> building on the wires
@ -703,6 +718,23 @@ storyRewards:
shape requested by the HUB (I recommend to try it!).<br><br> - Build shape requested by the HUB (I recommend to try it!).<br><br> - Build
something cool with wires.<br><br> - Continue to play something cool with wires.<br><br> - Continue to play
regulary.<br><br> Whatever you choose, remember to have fun! regulary.<br><br> Whatever you choose, remember to have fun!
reward_wires_painter_and_levers:
title: Wires & Quad Painter
desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate
layer on top of the regular layer and introduces a lot of new
mechanics!<br><br> For the beginning I unlocked you the <strong>Quad
Painter</strong> - Connect the slots you would like to paint with on
the wires layer!<br><br> To switch to the wires layer, press
<strong>E</strong>."
reward_filter:
title: Item Filter
desc: You unlocked the <strong>Item Filter</strong>! It will route items either
to the top or the right output depending on whether they match the
signal from the wires layer or not.<br><br> You can also pass in a
boolean signal (1 / 0) to entirely activate or disable it.
reward_demo_end:
title: End of Demo
desc: You have reached the end of the demo version!
settings: settings:
title: Einstellungen title: Einstellungen
categories: categories:
@ -929,7 +961,6 @@ keybindings:
constant_signal: Constant Signal constant_signal: Constant Signal
logic_gate: Logic Gate logic_gate: Logic Gate
lever: Switch (regular) lever: Switch (regular)
lever_wires: Switch (wires)
filter: Filter filter: Filter
wire_tunnel: Wire Crossing wire_tunnel: Wire Crossing
display: Display display: Display
@ -938,6 +969,8 @@ keybindings:
transistor: Transistor transistor: Transistor
analyzer: Shape Analyzer analyzer: Shape Analyzer
comparator: Compare comparator: Compare
item_producer: Item Producer (Sandbox)
copyWireValue: "Wires: Copy value below cursor"
about: about:
title: Über dieses Spiel title: Über dieses Spiel
body: >- body: >-
@ -963,62 +996,75 @@ demo:
exportingBase: Ganze Fabrik als Foto exportieren exportingBase: Ganze Fabrik als Foto exportieren
settingNotAvailable: Nicht verfügbar in der Demo. settingNotAvailable: Nicht verfügbar in der Demo.
tips: tips:
- The hub accepts input of any kind, not just the current shape! - Der Hub akzeptiert jede Art von Form, nicht nur die aktuelle!
- Make sure your factories are modular - it will pay out! - Stelle sicher, dass deine Fabriken modular sind - es zahlt sich aus!
- Don't build too close to the hub, or it will be a huge chaos! - Baue nicht zu nah am Hub, sonst wird es ein riesiges Chaos geben!
- If stacking does not work, try switching the inputs. - Wenn das Stapeln nicht funktioniert, versuche die Eingänge zu wechseln.
- You can toggle the belt planner direction by pressing <b>R</b>. - Du kannst mittels <b>R</b> die Richtung des Bandplaners umkehren.
- Holding <b>CTRL</b> allows dragging of belts without auto-orientation. - Halte <b>STRG</b> um die Förderbänder ohne automatische Orientierung zu
- Ratios stay the same, as long as all upgrades are on the same Tier. platzieren.
- Serial execution is more efficient than parallel. - Die Ratios bleiben gleich, solange die die Upgrades auf der selben Stufen
- You will unlock more variants of buildings later in the game! sind.
- You can use <b>T</b> to switch between different variants. - Serielle Ausführung ist effizienter als parallele.
- Symmetry is key! - Du wirst später im Spiel mehr Varianten von Gebäuden freischalten!
- You can weave different tiers of tunnels. - Du kanst <b>T</b> drücken, um auf andere Varianten des Gebäude zu wechseln.
- Try to build compact factories - it will pay out! - Symmetrie ist der Schlüssel!
- The painter has a mirrored variant which you can select with <b>T</b> - Du kannst verschiedene Arten von Tunneln miteinander verweben.
- Having the right building ratios will maximize efficiency. - Versuche kompakte Fabriken zu bauen - es zahlt sich aus!
- At maximum level, 5 extractors will fill a single belt. - Der Färber hat eine spiegelverkehrte Variante, die du mittels <b>T</b>
- Don't forget about tunnels! auswählen kannst.
- You don't need to divide up items evenly for full efficiency. - Das richtige Verhältnis der Gebäude maximiert die Effizienz.
- Holding <b>SHIFT</b> will activate the belt planner, letting you place - Auf dem maximalen Level genügen 5 Extrahierer für ein einzelnes Förderband.
long lines of belts easily. - Vergiss die Tunnel nicht!
- Cutters always cut vertically, regardless of their orientation. - Du musst die Items für maximale Effizienz nicht gleichmässig aufteilen.
- To get white mix all three colors. - Das Halten von <b>UMSCH</b> aktiviert den Bandplaner, der dir das
- The storage buffer priorities the first output. Platzieren langer Linien vereinfacht.
- Invest time to build repeatable designs - it's worth it! - Schneider schneiden immer vertikal, egal deren Orientierung.
- Holding <b>CTRL</b> allows to place multiple buildings. - Um Weiss zu erhalten, mixe alle Farben zusammen.
- You can hold <b>ALT</b> to invert the direction of placed belts. - Der Speicher priorisiert den linken Ausgang.
- Efficiency is key! - Investiere Zeit, um wiederholbare Designs zu erstellen - es lohnt sich!
- Shape patches that are further away from the hub are more complex. - Das Halten von <b>STRG</b> ermöglicht dir mehrere Gebäude zu platzieren.
- Machines have a limited speed, divide them up for maximum efficiency. - Du kanst <b>ALT</b> gedrückt halten, um die Richtung der Förderbänder
- Use balancers to maximize your efficiency. umzukehren.
- Organization is important. Try not to cross conveyors too much. - Effizienz ist der Schlüssel!
- Plan in advance, or it will be a huge chaos! - Formflecken, die weiter vom Hub entfernt sind, sind komplexer.
- Don't remove your old factories! You'll need them to unlock upgrades. - Gebäude haben eine limitierte Geschwindigkeit, teile sie auf für maximale
- Try beating level 20 on your own before seeking for help! Effizienz.
- Don't complicate things, try to stay simple and you'll go far. - Benutze Verteiler um deine Effizienz zu maximieren.
- You may need to re-use factories later in the game. Plan your factories to - Organisation ist wichtig. Versuch das Kreuzen von Förderbändern zu
be re-usable. minimieren.
- Sometimes, you can find a needed shape in the map without creating it with - Plane im Voraus, oder es gibt ein riesigen Chaos!
stackers. - Lösche deine alten Fabriken nicht! Du benötigst sie um Upgrades
- Full windmills / pinwheels can never spawn naturally. freizuschalten.
- Color your shapes before cutting for maximum efficiency. - Versuch Level 20 alleine zu meistern, bevor du nach Hilfe suchst!
- With modules, space is merely a perception; a concern for mortal men. - Mach es dir nicht zu kompliziert, versuch es einfach zu halten und du
- Make a separate blueprint factory. They're important for modules. wirst weit vorankommen.
- Have a closer look on the color mixer, and your questions will be answered. - Vielleicht musst du Fabriken später im Spiel wiederverwenden. Plane deine
- Use <b>CTRL</b> + Click to select an area. Fabriken so, dass sie wiederverwendbar sind.
- Building too close to the hub can get in the way of later projects. - Manchmal kannst du die gewünschte Form auf der Karte finden, ohne sie mit
- The pin icon next to each shape in the upgrade list pins it to the screen. Staplern zu erstellen.
- Mix all primary colors together to make white! - Vollständige Windmühlen werden nicht natürlich generiert.
- You have an infinite map, don't cramp your factory, expand! - Färbe deine Formen vor dem Schneiden für maximale Effizienz.
- Also try Factorio! It's my favorite game. - Mit Modulen ist der Raum nur eine Wahrnehmung; eine Sorge für die
- The quad cutter cuts clockwise starting from the top right! sterblichen Menschen.
- You can download your savegames in the main menu! - Mache eine separate Blaupausenfabrik. Sie sind wichtig für Module.
- This game has a lot of useful keybindings! Be sure to check out the - Schau dir den Farbmischer genauer an, und deine Fragen werden beantwortet.
settings page. - Benutze <b>STRG</b> + rechter Mausklick, um einen Bereich zu selektieren.
- This game has a lot of settings, be sure to check them out! - Zu nahe am Hub zu bauen, kann späteren Projekten im Weg stehen.
- The marker to your hub has a small compass to indicate its direction! - Das Pin-Symbol neben jeder Form in der Upgrade-Liste heftet sie an den
- To clear belts, cut the area and then paste it at the same location. Bildschirm.
- Press F4 to show your FPS and Tick Rate. - Mische alle drei Grundfarben, um Weiß zu erhalten!
- Press F4 twice to show the tile of your mouse and camera. - Du hast eine unendlich grosse Karte, nutze den Platz, expandiere!
- Probier auch mal Factorio! Es ist mein Lieblingsspiel.
- Der Vierfachschneider schneidet im Uhrzeigersinn von oben rechts beginnend!
- Du kannst deine Speicherstände im Hauptmenü herunterladen!
- Diese Spiel hat viele nützliche Tastenbelegungen! Schau sie dir in den
Einstellungen an.
- Dieses Spiel hat viele Einstellungen, schau sie dir einmal an!
- Die Markierung des Hubs hat einen kleinen Kompass, der die Richtung
anzeigt!
- Um die Förderbänder zu leeren, schneide den Bereich aus und füge ihn in
der gleichen Position wieder ein.
- Drücke F4 um deine FPS und Tick Rate anzuzeigen.
- Drücke doppelt F4 um die Kachel des Zeigers und der Kamera anzuzeigen.
- Du kannst die angehefteten Formen auf der linken Seite ablösen.

View File

@ -2,59 +2,51 @@ steamPage:
shortText: Στο shapez.io χτήζεις εργοστάσια για να αυτοματοποιήσεις την shortText: Στο shapez.io χτήζεις εργοστάσια για να αυτοματοποιήσεις την
δημιουργία και τον συνδιασμό σχημάτων αυξανόμενης πολυπλοκότητας σε έναν δημιουργία και τον συνδιασμό σχημάτων αυξανόμενης πολυπλοκότητας σε έναν
ατέλειωτο χάρτη. ατέλειωτο χάρτη.
longText: >- discordLinkShort: Official Discord
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] intro: >-
Shapez.io is a relaxed game in which you have to build factories for the
automated production of geometric shapes.
Στο shapez.io χτήζεις εργοστάσια για να αυτοματοποιήσεις την δημιουργία και τον συνδιασμό σχημάτων αυξανόμενης πολυπλοκότητας σε έναν ατέλειωτο χάρτη. Όταν παραδώσεις τα απαιτούμενα σχήματα, θα προχωρήσεις στο παιχνίδι και θα ξεκλειδώσεις αναβαθμήσεις για να επιταχύνεις το εργοστάσιό σου. As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map.
Επειδή η ζήτηση για σχήματα αυξάνεται συνεχώς, θα πρέπει να επεκτείνεις το εργοστάσιό σου για να την ικανοποιήσεις - Μήν ξεχάσεις, για να βρείς όλους τους πόρους που χρειάζεσαι θα πρέπει να εξαπλωθείς στον [b]άτελείωτο χάρτη[/b]! And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling!
Σύντομα θα πρέπει να αναμείξεις χρώματα και να βάψεις σχήματα - Ανάμειξε κόκκινο, πράσινο και μπλέ για να φτιάξεις διαφορετικά χρώματα και να βάψεις σχήματα ώστε να ικανοποιήσεις την ζήτηση. While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors!
Το παιχνίδι έχει 18 βαθμιαία επίπεδα (που ήδη θα σε απασχολήσουν για ώρες!) και συνεχίζω να προσθέτω περιεχόμενο - Έχω ακόμα πολλά σχέδια! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later!
title_advantages: Standalone Advantages
advantages:
- <b>12 New Level</b> for a total of 26 levels
- <b>18 New Buildings</b> for a fully automated factory!
- <b>20 Upgrade Tiers</b> for many hours of fun!
- <b>Wires Update</b> for an entirely new dimension!
- <b>Dark Mode</b>!
- Unlimited Savegames
- Unlimited Markers
- Support me! ❤️
title_future: Planned Content
planned:
- Blueprint Library (Standalone Exclusive)
- Steam Achievements
- Puzzle Mode
- Minimap
- Mods
- Sandbox mode
- ... and a lot more!
title_open_source: This game is open source!
title_links: Links
links:
discord: Official Discord
roadmap: Roadmap
subreddit: Subreddit
source_code: Source code (GitHub)
translate: Help translate
text_open_source: >-
Anybody can contribute, I'm actively involved in the community and
attempt to review all suggestions and take feedback into consideration
where possible.
Αγόράζοντας το παιχνίδι λαμβάνεις την αυτόνομη έκδοση (standalone) με πολλές επιπλέον δυνατότητες, καθώς και πρόσβαση σε νέες δυνατότητες που ακόμα αναπτύσσονται. Be sure to check out my trello board for the full roadmap!
[b]Πλεονεκτήματα Αυτόνομης Έκδοσης[/b]
[list]
[*] Σκοτεινή λειτουργία
[*] Απεριόριστα σημεία γρήγορης κίνησης της κάμερας στον χάρτη
[*] Απεριόριστα αποθηκευμένα παιχνίδια
[*] Πρόσθετες ρυθμίσεις
[*] Στο κοντινό μέλλον: Καλώδια και ενέργεια! Aναμένεται (περίπου) τέλος Ιουλίου 2020.
[*] Στο κοντινό μέλλον: Περισσότερα επίπεδα
[*] Μου επιτρέπει να αναπτήξω περεταίρω το shapez.io ❤️
[/list]
[b]Μελλοντικές ενημερώσεις[/b]
Ενημερώνω το παιχνίδι πολύ συχνά και προσπαθώ να προωγώ ενημερώσεις σχεδόν κάθε εβδομάδα!
[list]
[*] Διαφορετικοί χάρτες και προκλήσεις (π.χ. χάρτες με εμπόδια)
[*] Πάζλ (Παράδωσε το αιτούμενο σχήμα με περιορισμένο χώρο / κτήρια)
[*] Ένα σενάριο όπου τα κτήρια έχουν κόστος
[*] Διαμορφώσιμη δημιουργία χάρτη (Με επιλογές για το μέγεθος και την πυκνότητα των πόρων και άλλα)
[*] Επιπλέον σχήματα!
[*] Βελτιώσεις απόδοσης (Το παιχνίδι λειτουργεί ήδη πολύ καλά!)
[*] Και πολλά άλλα!
[/list]
[b]Αυτό το παιχνίδι είναι ανοιχτού κώδικα![/b]
Όλοι μπορούν να συνεισφέρουν, συμμετέχω ενεργά στην κοινότητα και προσπαθώ να εξετάσω όλες τις προτάσεις και να λάβω υπόψη τα σχόλια όπου είναι δυνατόν. Δείτε το trello board μου για τον πλήρη χάρτη πορείας!
[b]Σύνδεσμοι[/b]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]Επίσημο Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Χάρτης πορείας[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Πηγαίος κώδικας (GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Βοήθησε με μεταφράσεις[/url]
[/list]
discordLink: Επίσημο Discord - Συνομίλησε μαζί μου!
global: global:
loading: Φόρτωση loading: Φόρτωση
error: Σφάλμα error: Σφάλμα
@ -130,7 +122,9 @@ dialogs:
text: "Η φώρτοση του αποθηκευμένου παιχνιδιού ήταν αποτυχής:" text: "Η φώρτοση του αποθηκευμένου παιχνιδιού ήταν αποτυχής:"
confirmSavegameDelete: confirmSavegameDelete:
title: Επιβεβαίωση διαγραφής title: Επιβεβαίωση διαγραφής
text: Είσαι βέβαιος/η ότι θέλεις να διαγράψεις το παιχνίδι; text: Are you sure you want to delete the following game?<br><br>
'<savegameName>' at level <savegameLevel><br><br> This can not be
undone!
savegameDeletionError: savegameDeletionError:
title: Αποτυχία διαγραφής title: Αποτυχία διαγραφής
text: "Η διαγραφή του αποθηκευμένου παιχνιδιού ήταν αποτυχής:" text: "Η διαγραφή του αποθηκευμένου παιχνιδιού ήταν αποτυχής:"
@ -150,9 +144,9 @@ dialogs:
desc: Οι συνδιασμών πλήκτρων επαναφέρθηκαν στις προεπιλεγμένες τιμές τους! desc: Οι συνδιασμών πλήκτρων επαναφέρθηκαν στις προεπιλεγμένες τιμές τους!
featureRestriction: featureRestriction:
title: Έκδοση Demo title: Έκδοση Demo
desc: Προσπάθησες να χρησιμοποιήσεις μία δυνατότητα που δεν είναι διαθέσιμη στην desc: You tried to access a feature (<feature>) which is not available in the
έκδοση demo. Αποκτήστε την αυτόνομη έκδοση για την ολοκληρομένη demo. Consider getting the standalone version for the full
εμπειρία! experience!
oneSavegameLimit: oneSavegameLimit:
title: Περιορισμένα αποθηκευμένα παιχνίδια title: Περιορισμένα αποθηκευμένα παιχνίδια
desc: Στην demo έκδοση μπορείς να έχεις μόνο ένα αποθηκευμένο παιχνίδι. Παρακαλώ desc: Στην demo έκδοση μπορείς να έχεις μόνο ένα αποθηκευμένο παιχνίδι. Παρακαλώ
@ -187,9 +181,8 @@ dialogs:
τον προσανατολισμό των τοποθετούμενων ιμάντων.<br>" τον προσανατολισμό των τοποθετούμενων ιμάντων.<br>"
createMarker: createMarker:
title: Νέο Σημάδι title: Νέο Σημάδι
desc: Δώσ' του ένα όνομα με νόημα. Μπορείς επίσης να χρησημοποιήσεις και τον desc: Give it a meaningful name, you can also include a <strong>short
<strong>σύντομο κώδικα</strong> ενός σχήματος (τον οποίο μπορείς να key</strong> of a shape (Which you can generate <link>here</link>)
βρείς <a href="https://viewer.shapez.io" target="_blank">εδώ</a>)
titleEdit: Επεξεργασία Σημαδιού titleEdit: Επεξεργασία Σημαδιού
markerDemoLimit: markerDemoLimit:
desc: Στην έκδωση demo μπορείς να βάλεις μέχρι δύο σημάδια στον χάρτη. desc: Στην έκδωση demo μπορείς να βάλεις μέχρι δύο σημάδια στον χάρτη.
@ -216,6 +209,11 @@ dialogs:
renameSavegame: renameSavegame:
title: Rename Savegame title: Rename Savegame
desc: You can rename your savegame here. desc: You can rename your savegame here.
entityWarning:
title: Performance Warning
desc: You have placed a lot of buildings, this is just a friendly reminder that
the game can not handle an endless count of buildings - So try to
keep your factories compact!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Κίνηση moveMap: Κίνηση
@ -356,6 +354,38 @@ ingame:
one_miner: 1 Miner one_miner: 1 Miner
n_miners: <amount> Miners n_miners: <amount> Miners
limited_items: Limited to <max_throughput> limited_items: Limited to <max_throughput>
watermark:
title: Demo version
desc: Click here to see the Steam version advantages!
get_on_steam: Get on steam
standaloneAdvantages:
title: Get the full version!
no_thanks: No, thanks!
points:
levels:
title: 12 New Levels
desc: For a total of 26 levels!
buildings:
title: 18 New Buildings
desc: Fully automate your factory!
savegames:
title: ∞ Savegames
desc: As many as your heart desires!
upgrades:
title: 20 Upgrade Tiers
desc: This demo version has only 5!
markers:
title: ∞ Markers
desc: Never get lost in your factory!
wires:
title: Wires
desc: An entirely new dimension!
darkmode:
title: Dark Mode
desc: Stop hurting your eyes!
support:
title: Support me
desc: I develop it in my spare time!
shopUpgrades: shopUpgrades:
belt: belt:
name: Ιμάντες, Διανομείς & Σήραγγες name: Ιμάντες, Διανομείς & Σήραγγες
@ -432,8 +462,9 @@ buildings:
την επάνω είσοδο. την επάνω είσοδο.
quad: quad:
name: Βαφέας (Τετάρτων) name: Βαφέας (Τετάρτων)
description: Επιτρέπει να χρωματίσει κάθε τεταρτημόριο του σχήματος με description: Allows you to color each quadrant of the shape individually. Only
διαφορετικό χρώμα. slots with a <strong>truthy signal</strong> on the wires layer
will be painted!
mirrored: mirrored:
name: Βαφέας name: Βαφέας
description: Χρωματίζει ολόκληρο το σχήμα στην αριστερή είσοδο με το χρώμα από description: Χρωματίζει ολόκληρο το σχήμα στην αριστερή είσοδο με το χρώμα από
@ -446,6 +477,7 @@ buildings:
deliver: Παράδωσε deliver: Παράδωσε
toUnlock: για να ξεκλειδώσεις toUnlock: για να ξεκλειδώσεις
levelShortcut: LVL levelShortcut: LVL
endOfDemo: End of Demo
wire: wire:
default: default:
name: Καλώδιο ενέργειας name: Καλώδιο ενέργειας
@ -559,15 +591,20 @@ buildings:
name: Virtual Painter name: Virtual Painter
description: Virtually paints the shape from the bottom input with the shape on description: Virtually paints the shape from the bottom input with the shape on
the right input. the right input.
item_producer:
default:
name: Item Producer
description: Available in sandbox mode only, outputs the given signal from the
wires layer on the regular layer.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Κοπή σχημάτων title: Κοπή σχημάτων
desc: Μόλις ξεκλείδωσες τον <strong>κόπτη</strong> - κόβει σχήματα κατά το ήμισυ desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half
από <strong>πάνω προς τα κάτω</strong> ανεξάρτητα από τον from top to bottom <strong>regardless of its
προσανατολισμό του!<br><br>Φρόντισε να καταστρέψεις κομμάτια που δεω orientation</strong>!<br><br>Be sure to get rid of the waste, or
χρησημοποιείς αλλιώς η λειτουργία <strong>θα σταματήσει</strong> - otherwise <strong>it will clog and stall</strong> - For this purpose
Για το σκοπό αυτό σου έδωσα τον κάδο απορριμμάτων, ο οποίος I have given you the <strong>trash</strong>, which destroys
καταστρέφει ό,τι είδη μεταφερθούν εκεί! everything you put into it!
reward_rotater: reward_rotater:
title: Περιστροφή title: Περιστροφή
desc: Ο <strong>Περιστροφέας</strong> ξεκλειδώθηκε! Το κτήριο αυτό περιστρέφει desc: Ο <strong>Περιστροφέας</strong> ξεκλειδώθηκε! Το κτήριο αυτό περιστρέφει
@ -593,10 +630,9 @@ storyRewards:
αριστερής! αριστερής!
reward_splitter: reward_splitter:
title: Διαχωρισμός/Συγχώνευση title: Διαχωρισμός/Συγχώνευση
desc: Ο πολυλειτουργικός <strong>Ισορροπηστής</strong> είναι πλέον διαθέσιμος - desc: You have unlocked a <strong>splitter</strong> variant of the
Μπορεί να χρησιμοποιηθεί για την κατασκευή μεγαλύτερων εργοστασίων <strong>balancer</strong> - It accepts one input and splits them
με <strong>διαχωρισμό και συγχώνευση ειδών</strong> σε/από πολλούς into two!
μεταφορικούς ιμάντες!<br><br>
reward_tunnel: reward_tunnel:
title: Σήραγγα title: Σήραγγα
desc: Το <strong>Σήραγγα</strong> είναι πλέον διαθέσιμο - Τώρα μπορείς να desc: Το <strong>Σήραγγα</strong> είναι πλέον διαθέσιμο - Τώρα μπορείς να
@ -609,10 +645,10 @@ storyRewards:
παραλλαγές του</strong>! παραλλαγές του</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Αλυσιδωτός Αποσπαστής title: Αλυσιδωτός Αποσπαστής
desc: Ξεκλείδωσες τον <strong>Αλυσιδωτός Αποσπαστής</strong>! Μπορεί να desc: "You have unlocked the <strong>chained extractor</strong>! It can
<strong>προωθήσει τους αποσπασμένους πόρους</strong> σε άλλους <strong>forward its resources</strong> to other extractors so you
αποσπαστές, ώστε να μπορείτε να αποσπάσεις πιο αποτελεσματικά can more efficiently extract resources!<br><br> PS: The old
πόρους! extractor has been replaced in your toolbar now!"
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Σήραγγα Βαθμίδα II title: Σήραγγα Βαθμίδα II
desc: Ξεκλείδωσες μια νέα παραλλαγή της <strong>Σήραγγας</strong> - Καλύπτει desc: Ξεκλείδωσες μια νέα παραλλαγή της <strong>Σήραγγας</strong> - Καλύπτει
@ -627,20 +663,20 @@ storyRewards:
desc: Ξεκλείδωσες μια παραλλαγή του <strong>Βαφέα</strong> - Λειτουργεί όπως ο desc: Ξεκλείδωσες μια παραλλαγή του <strong>Βαφέα</strong> - Λειτουργεί όπως ο
κανονικός βαφέας, αλλά επεξεργάζεται <strong>δύο σχήματα κανονικός βαφέας, αλλά επεξεργάζεται <strong>δύο σχήματα
ταυτόχρονα</strong>, καταναλώνοντας μόνο ένα χρώμα αντί για δύο! ταυτόχρονα</strong>, καταναλώνοντας μόνο ένα χρώμα αντί για δύο!
reward_painter_quad:
title: Βαφέας Τετάρτων
desc: Ξεκλείδωσες μια παραλλαγή του <strong>Βαφέα</strong> - Σου επιτρέπει να
βάψεις κάθε τεταρτημόριο του σχήματος ξεχωριστά!
reward_storage: reward_storage:
title: Αποθηκευτικός χώρος title: Αποθηκευτικός χώρος
desc: Ξεκλείδωσες μια παραλλαγή του <strong>Κάδου Απορριμμάτων</strong> - desc: You have unlocked the <strong>storage</strong> building - It allows you to
Επιτρέπει την αποθήκευση ειδών έως μια δεδομένη χωρητικότητα! store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
reward_freeplay: reward_freeplay:
title: Ελεύθερο παιχνίδι title: Ελεύθερο παιχνίδι
desc: Τα κατάφερες! Ξεκλείδωσες την <strong>λειτουργία ελεύθερου desc: You did it! You unlocked the <strong>free-play mode</strong>! This means
παιχνιδιού</strong>! Από εδώ και πέρα τα σχήματα δημιουργούνται that shapes are now <strong>randomly</strong> generated!<br><br>
τυχαία! (Μην ανυσηχείς, περισσότερο περιεχόμενο έρχεται σύντομα στην Since the hub will require a <strong>throughput</strong> from now
αυτόνομη έκδοση!) on, I highly recommend to build a machine which automatically
delivers the requested shape!<br><br> The HUB outputs the requested
shape on the wires layer, so all you have to do is to analyze it and
automatically configure your factory based on that.
reward_blueprints: reward_blueprints:
title: Σχεδιαγράμματα title: Σχεδιαγράμματα
desc: Μπορείς πλέον να κάνεις <strong>αντιγραφή και επικόλληση</strong> στα μέρη desc: Μπορείς πλέον να κάνεις <strong>αντιγραφή και επικόλληση</strong> στα μέρη
@ -679,17 +715,12 @@ storyRewards:
title: Rotater (180 degrees) title: Rotater (180 degrees)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D) you to rotate a shape by 180 degress (Surprise! :D)
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Display
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize its contents! wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Constant Signal
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: You unlocked the <strong>constant signal</strong> building on the wires
@ -713,6 +744,23 @@ storyRewards:
shape requested by the HUB (I recommend to try it!).<br><br> - Build shape requested by the HUB (I recommend to try it!).<br><br> - Build
something cool with wires.<br><br> - Continue to play something cool with wires.<br><br> - Continue to play
regulary.<br><br> Whatever you choose, remember to have fun! regulary.<br><br> Whatever you choose, remember to have fun!
reward_wires_painter_and_levers:
title: Wires & Quad Painter
desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate
layer on top of the regular layer and introduces a lot of new
mechanics!<br><br> For the beginning I unlocked you the <strong>Quad
Painter</strong> - Connect the slots you would like to paint with on
the wires layer!<br><br> To switch to the wires layer, press
<strong>E</strong>."
reward_filter:
title: Item Filter
desc: You unlocked the <strong>Item Filter</strong>! It will route items either
to the top or the right output depending on whether they match the
signal from the wires layer or not.<br><br> You can also pass in a
boolean signal (1 / 0) to entirely activate or disable it.
reward_demo_end:
title: End of Demo
desc: You have reached the end of the demo version!
settings: settings:
title: Ρυθμίσεις title: Ρυθμίσεις
categories: categories:
@ -938,7 +986,6 @@ keybindings:
constant_signal: Constant Signal constant_signal: Constant Signal
logic_gate: Logic Gate logic_gate: Logic Gate
lever: Switch (regular) lever: Switch (regular)
lever_wires: Switch (wires)
filter: Filter filter: Filter
wire_tunnel: Wire Crossing wire_tunnel: Wire Crossing
display: Display display: Display
@ -947,6 +994,8 @@ keybindings:
transistor: Transistor transistor: Transistor
analyzer: Shape Analyzer analyzer: Shape Analyzer
comparator: Compare comparator: Compare
item_producer: Item Producer (Sandbox)
copyWireValue: "Wires: Copy value below cursor"
about: about:
title: Σχετικά με αυτό το παιχνίδι title: Σχετικά με αυτό το παιχνίδι
body: >- body: >-
@ -1038,3 +1087,4 @@ tips:
- To clear belts, cut the area and then paste it at the same location. - To clear belts, cut the area and then paste it at the same location.
- Press F4 to show your FPS and Tick Rate. - Press F4 to show your FPS and Tick Rate.
- Press F4 twice to show the tile of your mouse and camera. - Press F4 twice to show the tile of your mouse and camera.
- You can click a pinned shape on the left side to unpin it.

View File

@ -25,67 +25,52 @@ steamPage:
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 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! discordLinkShort: Official 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. intro: >-
# NOTICE: You like automation games? Then you are in the right place!
# - Do not translate the first line (This is the gif image at the start of the store)
# - Please keep the markup (Stuff like [b], [list] etc) in the same format
longText: >-
[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. shapez.io is a relaxed game in which you have to build factories for the automated production of geometric shapes. As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map.
Upon delivering the requested shapes you'll progress within the game and unlock upgrades to speed up your factory. And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! While you only have to process shapes at the beginning, you will later have to color them - by extracting and mixing colors!
As the demand for shapes increases, you'll have to scale up your factory to meet the demand - Don't forget about resources though, you'll have to expand across the [b]infinite map[/b]! Buying the game on Steam gives you access to the full version, but you can also play a demo at shapez.io first and decide later!
Soon you'll have to mix colors and paint your shapes with them - Combine red, green and blue color resources to produce different colors and paint shapes with them to satisfy the demand. title_advantages: Standalone Advantages
advantages:
- <b>12 New Levels</b> for a total of 26 levels
- <b>18 New Buildings</b> for a fully automated factory!
- <b>20 Upgrade Tiers</b> for many hours of fun!
- <b>Wires Update</b> for an entirely new dimension!
- <b>Dark Mode</b>!
- Unlimited Savegames
- Unlimited Markers
- Support me! ❤️
This game features 18 progressive levels (Which should already keep you busy for hours!) but I'm constantly adding new content - There's a lot planned! title_future: Planned Content
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. - Blueprint Library
- Steam Achievements
[b]Standalone Advantages[/b] - Puzzle Mode
- Minimap
[list] - Mods
[*] Dark Mode - Sandbox mode
[*] Unlimited Waypoints - ... and a lot more!
[*] Unlimited Savegames
[*] Additional settings
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020.
[*] Coming soon: More Levels
[*] Allows me to further develop shapez.io ❤️
[/list]
[b]Future Updates[/b]
I am updating the game often and trying to push an update at least once 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]
[b]This game is open source![/b]
title_open_source: This game is open source!
text_open_source: >-
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. 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! Be sure to check out my trello board for the full roadmap!
[b]Links[/b] title_links: Links
[list] links:
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] discord: Official Discord
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] roadmap: Roadmap
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url] subreddit: Subreddit
[*] [url=https://github.com/tobspr/shapez.io]Source code (GitHub)[/url] source_code: Source code (GitHub)
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Help translate[/url] translate: Help translate
[/list]
global: global:
loading: Loading loading: Loading
@ -137,7 +122,7 @@ demoBanners:
# This is the "advertisement" shown in the main menu and other various places # This is the "advertisement" shown in the main menu and other various places
title: Demo Version title: Demo Version
intro: >- intro: >-
Get the standalone to unlock all features! Get the full game to unlock all features and content!
mainMenu: mainMenu:
play: Play play: Play
@ -153,7 +138,7 @@ mainMenu:
# This is shown when using firefox and other browsers which are not supported. # This is shown when using firefox and other browsers which are not supported.
browserWarning: >- browserWarning: >-
Sorry, but the game is known to run slow on your browser! Get the standalone version or download Google Chrome for the full experience. Sorry, but the game is known to run slowly on your browser! Get the standalone version or download Google Chrome for the full experience.
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: Unknown Level savegameLevelUnknown: Unknown Level
@ -215,7 +200,7 @@ dialogs:
keybindingsResetOk: keybindingsResetOk:
title: Keybindings reset title: Keybindings reset
desc: The keybindings have been reset to their respective defaults! desc: All keybindings have been reset to their defaults values!
featureRestriction: featureRestriction:
title: Demo Version title: Demo Version
@ -233,7 +218,7 @@ dialogs:
upgradesIntroduction: upgradesIntroduction:
title: Unlock Upgrades title: Unlock Upgrades
desc: >- desc: >-
All shapes you produce can be used to unlock upgrades - <strong>Don't destroy your old factories!</strong> All shapes you produce can be used to unlock upgrades - <strong>don't destroy your old factories!</strong>
The upgrades tab can be found on the top right corner of the screen. The upgrades tab can be found on the top right corner of the screen.
massDeleteConfirm: massDeleteConfirm:
@ -281,7 +266,7 @@ dialogs:
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot 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! desc: You requested to export your base as a screenshot. Please note that this will be quite slow for a bigger base and could potentially crash your game!
renameSavegame: renameSavegame:
title: Rename Savegame title: Rename Savegame
@ -289,7 +274,7 @@ dialogs:
entityWarning: entityWarning:
title: Performance Warning title: Performance Warning
desc: You have placed a lot of buildings, this is just a friendly reminder that the game can not handle an endless count of buildings - So try to keep your factories compact! desc: You have placed a lot of buildings, this is just a friendly reminder that the game can not handle an endless number of buildings - try to keep your factories compact!
ingame: ingame:
# This is shown in the top left corner and displays useful keybindings in # This is shown in the top left corner and displays useful keybindings in
@ -382,13 +367,13 @@ ingame:
dataSources: dataSources:
stored: stored:
title: Stored title: Stored
description: Displaying amount of stored shapes in your central building. description: All shapes stored within the Hub.
produced: produced:
title: Produced title: Produced
description: Displaying all shapes your whole factory produces, including intermediate products. description: All shapes produced within your factory, including intermediate products.
delivered: delivered:
title: Delivered title: Delivered
description: Displaying shapes which are delivered to your central building. description: Shapes which are being delivered to the Hub.
noShapesProduced: No shapes have been produced so far. noShapesProduced: No shapes have been produced so far.
# Displays the shapes per second, e.g. '523 / s' # Displays the shapes per second, e.g. '523 / s'
@ -400,15 +385,9 @@ ingame:
# Settings menu, when you press "ESC" # Settings menu, when you press "ESC"
settingsMenu: settingsMenu:
playtime: Playtime playtime: Playtime
buildingsPlaced: Buildings buildingsPlaced: Buildings
beltsPlaced: Belts beltsPlaced: Belts
buttons:
continue: Continue
settings: Settings
menu: Menu
# Bottom left tutorial hints # Bottom left tutorial hints
tutorialHints: tutorialHints:
title: Need help? title: Need help?
@ -445,10 +424,53 @@ ingame:
# Connected miners # Connected miners
connectedMiners: connectedMiners:
one_miner: 1 Miner one_miner: 1 Extractor
n_miners: <amount> Miners n_miners: <amount> Extractors
limited_items: Limited to <max_throughput> limited_items: Limited to <max_throughput>
# Pops up in the demo every few minutes
watermark:
title: Demo version
desc: Click here to see the advantages of the standalone version!
get_on_steam: Get on Steam
standaloneAdvantages:
title: Get the full version!
no_thanks: No, thanks!
points:
levels:
title: 12 New Levels
desc: For a total of 26 levels!
buildings:
title: 18 New Buildings
desc: Fully automate your factory!
savegames:
title: ∞ Savegames
desc: As many as your heart desires!
upgrades:
title: 20 Upgrade Tiers
desc: This demo version has only 5!
markers:
title: ∞ Markers
desc: Never get lost in your factory!
wires:
title: Wires
desc: An entirely new dimension!
darkmode:
title: Dark Mode
desc: Stop hurting your eyes!
support:
title: Support me
desc: I develop it in my spare time!
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
belt: belt:
@ -470,6 +492,7 @@ buildings:
deliver: Deliver deliver: Deliver
toUnlock: to unlock toUnlock: to unlock
levelShortcut: LVL levelShortcut: LVL
endOfDemo: End of Demo
belt: belt:
default: default:
@ -521,10 +544,10 @@ buildings:
cutter: cutter:
default: default:
name: &cutter Cutter name: &cutter Cutter
description: Cuts shapes from top to bottom and outputs both halves. <strong>If you use only one part, be sure to destroy the other part or it will stall!</strong> description: Cuts shapes from top to bottom and outputs both halves. <strong>If you use only one part, be sure to destroy the other part or it will clog and stall!</strong>
quad: quad:
name: Cutter (Quad) name: Cutter (Quad)
description: Cuts shapes into four parts. <strong>If you use only one part, be sure to destroy the other parts or it will stall!</strong> description: Cuts shapes into four parts. <strong>If you use only one part, be sure to destroy the other parts or it will clog and stall!</strong>
rotater: rotater:
default: default:
@ -534,13 +557,13 @@ buildings:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter-clockwise by 90 degrees. description: Rotates shapes counter-clockwise by 90 degrees.
rotate180: rotate180:
name: Rotate (180) name: Rotate (180°)
description: Rotates shapes by 180 degrees. description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
name: &stacker Stacker name: &stacker Stacker
description: Combines both items side by side. If this is not possible, they are stacked on top of each other. description: Combines its inputs, on the same layer if possible, otherwise the right input is stacked on top of the left input.
mixer: mixer:
default: default:
@ -577,7 +600,7 @@ buildings:
wire: wire:
default: default:
name: &wire Wire name: &wire Wire
description: &wire_desc Transfers signals, which can be items, colors or booleans (1 / 0). Different colored wires do not connect. description: &wire_desc Transfers signals, which can be items, colours or booleans (1 or 0). Differently-coloured wires do not connect to each other.
second: second:
name: *wire name: *wire
@ -586,17 +609,17 @@ buildings:
wire_tunnel: wire_tunnel:
default: default:
name: &wire_tunnel Wire Crossing name: &wire_tunnel Wire Crossing
description: Allows to cross two wires without connecting them. description: Allows two wires to cross without connecting to each other.
constant_signal: constant_signal:
default: default:
name: &constant_signal Constant Signal name: &constant_signal Constant Signal
description: Emits a constant signal, which can be either a shape, color or boolean (1 / 0). description: Emits a constant signal, which can be either a shape, color or boolean (1 or 0).
lever: lever:
default: default:
name: &lever Switch name: &lever Switch
description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, which can then be used to control for example an item filter. description: Can be toggled to emit a boolean signal (1 or 0) on the wires layer, which can then be used to control components, for example an item filter.
logic_gate: logic_gate:
default: default:
@ -644,7 +667,7 @@ buildings:
comparator: comparator:
default: default:
name: &comparator Compare name: &comparator Compare
description: Returns boolean "1" if both signals are exactly equal. Can compare shapes, items and booleans. description: Returns boolean "1" if both signals are exactly equal. Can compare shapes, colors and booleans.
virtual_processor: virtual_processor:
default: default:
@ -665,13 +688,18 @@ buildings:
painter: painter:
name: Virtual Painter name: Virtual Painter
description: Virtually paints the shape from the bottom input with the shape on the right input. description: Virtually paints the shape from the bottom input with the color on the right input.
item_producer:
default:
name: Item Producer
description: Available in sandbox mode only, outputs the given signal from the wires layer on the regular layer.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
reward_cutter_and_trash: reward_cutter_and_trash:
title: Cutting Shapes title: Cutting Shapes
desc: You just unlocked the <strong>cutter</strong> - it cuts shapes in half from top to bottom <strong>regardless of its orientation</strong>!<br><br>Be sure to get rid of the waste, or otherwise <strong>it will stall</strong> - For this purpose I have given you the <strong>trash</strong>, which destroys everything you put into it! desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half from top to bottom <strong>regardless of its orientation</strong>!<br><br>Be sure to get rid of the waste, or otherwise <strong>it will clog and stall</strong> - For this purpose I have given you the <strong>trash</strong>, which destroys everything you put into it!
reward_rotater: reward_rotater:
title: Rotating title: Rotating
@ -692,7 +720,7 @@ storyRewards:
reward_balancer: reward_balancer:
title: Balancer title: Balancer
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can be used to build bigger factories by <strong>splitting and merging items</strong> onto multiple belts!<br><br> desc: The multifunctional <strong>balancer</strong> has been unlocked - It can be used to build bigger factories by <strong>splitting and merging items</strong> onto multiple belts!
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
@ -735,14 +763,8 @@ storyRewards:
title: Double Painting title: Double Painting
desc: You have unlocked a variant of the <strong>painter</strong> - It works similar to the regular painter but processes <strong>two shapes at once</strong>, consuming just one color instead of two! desc: You have unlocked a variant of the <strong>painter</strong> - It works similar to the regular painter but processes <strong>two shapes at once</strong>, consuming just one color instead of two!
reward_painter_quad:
title: Quad Painting
desc: >-
You have unlocked a variant of the <strong>painter</strong> - It allows you to paint each part of the shape individually!<br><br>
Connect each slot you'd like to paint with a <strong>truthy signal</strong> (shape, item or boolean "1") on the wires layer!
reward_storage: reward_storage:
title: Storage Buffer title: Storage
desc: >- desc: >-
You have unlocked the <strong>storage</strong> building - It allows you to store items up to a given capacity!<br><br> You have unlocked the <strong>storage</strong> building - It allows you to store items up to a given capacity!<br><br>
It priorities the left output, so you can also use it as an <strong>overflow gate</strong>! It priorities the left output, so you can also use it as an <strong>overflow gate</strong>!
@ -752,32 +774,41 @@ storyRewards:
desc: You can now <strong>copy and paste</strong> parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.<br><br>Pasting it is <strong>not free</strong>, you need to produce <strong>blueprint shapes</strong> to afford it! (Those you just delivered). desc: You can now <strong>copy and paste</strong> parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.<br><br>Pasting it is <strong>not free</strong>, you need to produce <strong>blueprint shapes</strong> to afford it! (Those you just delivered).
reward_rotater_180: reward_rotater_180:
title: Rotater (180 degrees) title: Rotater (180°)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows you to rotate a shape by 180 degress (Surprise! :D) desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows you to rotate a shape by 180 degress (Surprise! :D)
reward_wires_filters_and_levers: reward_wires_painter_and_levers:
title: >- title: >-
Wires: Filters & Levers Wires & Quad Painter
desc: >- desc: >-
You just unlocked the <strong>wires layer</strong>! It is a separate layer on top of the regular layer and introduces a lot of new mechanics!<br><br> You just unlocked the <strong>Wires Layer</strong>: It is a separate layer on top of the regular layer and introduces a lot of new mechanics!<br><br>
Since it can be overwhelming a bit, I added a small tutorial - Be sure to have <strong>tutorials enabled</strong> in the settings! For the beginning I unlocked you the <strong>Quad Painter</strong> - Connect the slots you would like to paint with on the wires layer!<br><br>
To switch to the wires layer, press <strong>E</strong>.
reward_filter:
title: >-
Item Filter
desc: >-
You unlocked the <strong>Item Filter</strong>! It will route items either to the top or the right output depending on whether they match the signal from the wires layer or not.<br><br>
You can also pass in a boolean signal (1 or 0) to entirely activate or disable it.
reward_display: reward_display:
title: Display title: Display
desc: >- desc: >-
You have unlocked the <strong>Display</strong> - Connect a signal on the wires layer to visualize its contents! You have unlocked the <strong>Display</strong> - Connect a signal on the wires layer to visualize it!<br><br>
PS: Did you notice the belt reader and storage output their last read item? Try showing it on a display!
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Constant Signal
desc: >- desc: >-
You unlocked the <strong>constant signal</strong> building on the wires layer! This is useful to connect it to <strong>item filters</strong> for example.<br><br> You unlocked the <strong>constant signal</strong> building on the wires layer! This is useful to connect it to <strong>item filters</strong> for example.<br><br>
The constant signal can emit a <strong>shape</strong>, <strong>color</strong> or <strong>boolean</strong> (1 / 0). The constant signal can emit a <strong>shape</strong>, <strong>color</strong> or <strong>boolean</strong> (1 or 0).
reward_logic_gates: reward_logic_gates:
title: Logic Gates title: Logic Gates
desc: >- desc: >-
You unlocked <strong>logic gates</strong>! You don't have to be excited about this, but it's actually super cool!<br><br> You unlocked <strong>logic gates</strong>! You don't have to be excited about this, but it's actually super cool!<br><br>
With those gates you can now compute AND, OR, XOR and NOT operations.<br><br> With logic gates you can now compute AND, OR, XOR and NOT operations.<br><br>
As a bonus on top I also just gave you a <strong>transistor</strong>! As a bonus on top I also just gave you a <strong>transistor</strong>!
reward_virtual_processing: reward_virtual_processing:
@ -809,6 +840,11 @@ storyRewards:
Since the hub will require a <strong>throughput</strong> from now on, I highly recommend to build a machine which automatically delivers the requested shape!<br><br> Since the hub will require a <strong>throughput</strong> from now on, I highly recommend to build a machine which automatically delivers the requested shape!<br><br>
The HUB outputs the requested shape on the wires layer, so all you have to do is to analyze it and automatically configure your factory based on that. The HUB outputs the requested shape on the wires layer, so all you have to do is to analyze it and automatically configure your factory based on that.
reward_demo_end:
title: End of Demo
desc: >-
You have reached the end of the demo version!
settings: settings:
title: Settings title: Settings
categories: categories:
@ -924,7 +960,7 @@ settings:
alwaysMultiplace: alwaysMultiplace:
title: Multiplace title: Multiplace
description: >- description: >-
If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently. If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to constantly holding SHIFT.
offerHints: offerHints:
title: Hints & Tutorials title: Hints & Tutorials
@ -954,7 +990,7 @@ settings:
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Disable Cut/Delete Warnings title: Disable Cut/Delete Warnings
description: >- description: >-
Disables the warning dialogs brought up when cutting/deleting more than 100 entities. Disables the warning dialogues brought up when cutting/deleting more than 100 entities.
lowQualityMapResources: lowQualityMapResources:
title: Low Quality Map Resources title: Low Quality Map Resources
@ -983,9 +1019,9 @@ settings:
The game is divided into chunks of 16x16 tiles, if this setting is enabled the borders of each chunk are displayed. The game is divided into chunks of 16x16 tiles, if this setting is enabled the borders of each chunk are displayed.
pickMinerOnPatch: pickMinerOnPatch:
title: Pick miner on resource patch title: Select extractor on resource patch
description: >- description: >-
Enabled by default, selects the miner if you use the pipette when hovering a resource patch. Enabled by default, selects the extractor if you use the pipette when hovering a resource patch.
simplifiedBelts: simplifiedBelts:
title: Simplified Belts (Ugly) title: Simplified Belts (Ugly)
@ -993,9 +1029,9 @@ settings:
Does not render belt items except when hovering the belt to save performance. I do not recommend to play with this setting if you do not absolutely need the performance. Does not render belt items except when hovering the belt to save performance. I do not recommend to play with this setting if you do not absolutely need the performance.
enableMousePan: enableMousePan:
title: Enable Mouse Pan title: Screen Edge Panning
description: >- description: >-
Allows to move the map by moving the cursor to the edges of the screen. The speed depends on the Movement Speed setting. Allows panning the map by moving the cursor to the edges of the screen. The scroll speed depends on the Movement Speed setting.
keybindings: keybindings:
title: Keybindings title: Keybindings
@ -1060,6 +1096,7 @@ keybindings:
transistor: *transistor transistor: *transistor
analyzer: *analyzer analyzer: *analyzer
comparator: *comparator comparator: *comparator
item_producer: Item Producer (Sandbox)
# --- # ---
pipette: Pipette pipette: Pipette
@ -1132,7 +1169,7 @@ tips:
- Holding <b>SHIFT</b> will activate the belt planner, letting you place long lines of belts easily. - Holding <b>SHIFT</b> will activate the belt planner, letting you place long lines of belts easily.
- Cutters always cut vertically, regardless of their orientation. - Cutters always cut vertically, regardless of their orientation.
- To get white mix all three colors. - To get white mix all three colors.
- The storage buffer priorities the first output. - The storage buffer prioritises the left output.
- Invest time to build repeatable designs - it's worth it! - Invest time to build repeatable designs - it's worth it!
- Holding <b>CTRL</b> allows to place multiple buildings. - Holding <b>CTRL</b> allows to place multiple buildings.
- You can hold <b>ALT</b> to invert the direction of placed belts. - You can hold <b>ALT</b> to invert the direction of placed belts.
@ -1151,11 +1188,11 @@ tips:
- Color your shapes before cutting for maximum efficiency. - Color your shapes before cutting for maximum efficiency.
- With modules, space is merely a perception; a concern for mortal men. - With modules, space is merely a perception; a concern for mortal men.
- Make a separate blueprint factory. They're important for modules. - Make a separate blueprint factory. They're important for modules.
- Have a closer look on the color mixer, and your questions will be answered. - Have a closer look at the color mixer, and your questions will be answered.
- Use <b>CTRL</b> + Click to select an area. - Use <b>CTRL</b> + Click to select an area.
- Building too close to the hub can get in the way of later projects. - Building too close to the hub can get in the way of later projects.
- The pin icon next to each shape in the upgrade list pins it to the screen. - The pin icon next to each shape in the upgrade list pins it to the screen.
- Mix all primary colors together to make white! - Mix all three primary colors to make white!
- You have an infinite map, don't cramp your factory, expand! - You have an infinite map, don't cramp your factory, expand!
- Also try Factorio! It's my favorite game. - Also try Factorio! It's my favorite game.
- The quad cutter cuts clockwise starting from the top right! - The quad cutter cuts clockwise starting from the top right!
@ -1166,3 +1203,4 @@ tips:
- To clear belts, cut the area and then paste it at the same location. - To clear belts, cut the area and then paste it at the same location.
- Press F4 to show your FPS and Tick Rate. - Press F4 to show your FPS and Tick Rate.
- Press F4 twice to show the tile of your mouse and camera. - Press F4 twice to show the tile of your mouse and camera.
- You can click a pinned shape on the left side to unpin it.

View File

@ -2,59 +2,51 @@ steamPage:
shortText: shapez.io es un juego sobre construir fábricas para automatizar la 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 creación y combinación de figuras cada vez más complejas en un mapa
infinito. infinito.
discordLink: Discord oficial - ¡Chatea conmigo! discordLinkShort: Official Discord
longText: >- intro: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] Shapez.io is a relaxed game in which you have to build factories for the
automated production of geometric shapes.
shapez.io es un juego basado en la construcción de fábricas para automatizar la creación y combinación de figuras en un mapa que se expande infinitamente. Entrega las figuras requeridas para progresar y desbloquear mejoras para aumentar la velocidad de tu fábrica. As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map.
Al aumentar la demanda, necesitarás escalar tu fábrica para ajustarte a las necesidades - ¡No te olvides de los recursos, necesitarás expandirte en el [b]mapa infinito[/b]! And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling!
Después necesitarás mezclar colores para pintar las figuras - Combina recursos de colores rojo, verde y azul para producir diferentes colores y pintar figuras para satisfacer la demanda. While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors!
Este juego cuenta con 18 niveles (¡Que te mantendrán ocupado durante horas!) pero estoy constantemente añadiendo nuevo contenido - ¡Hay mucho planeado! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later!
title_advantages: Standalone Advantages
advantages:
- <b>12 New Level</b> for a total of 26 levels
- <b>18 New Buildings</b> for a fully automated factory!
- <b>20 Upgrade Tiers</b> for many hours of fun!
- <b>Wires Update</b> for an entirely new dimension!
- <b>Dark Mode</b>!
- Unlimited Savegames
- Unlimited Markers
- Support me! ❤️
title_future: Planned Content
planned:
- Blueprint Library (Standalone Exclusive)
- Steam Achievements
- Puzzle Mode
- Minimap
- Mods
- Sandbox mode
- ... and a lot more!
title_open_source: This game is open source!
title_links: Links
links:
discord: Official Discord
roadmap: Roadmap
subreddit: Subreddit
source_code: Source code (GitHub)
translate: Help translate
text_open_source: >-
Anybody can contribute, I'm actively involved in the community and
attempt to review all suggestions and take feedback into consideration
where possible.
Comprando el juego tendrás acceso a la versión completa con contenido adicional, además del contenido en desarrollo. Be sure to check out my trello board for the full roadmap!
[b]Ventajas del juego completo[/b]
[list]
[*] Modo oscuro
[*] Puntos de referencia ilimitados
[*] Partidas guardadas ilimitadas
[*] Ajustes adicionales
[*] Próximamente: ¡Cables y Energía! Aproximadamente para finales de julio de 2020.
[*] Próximamente: Más niveles
[*] Ayúdame a seguir desarrollando shapez.io ❤️
[/list]
[b]Futuras actualizaciones[/b]
¡Estoy actualizando el juego muy a menudo e intentando subir actualizaciones al menos una vez a la semana!
[list]
[*] Diferentes mapas y desafíos (por ejemplo: mapas con obstáculos)
[*] Puzles (Entrega la forma requerida con una zona o conjunto de edificios restringidos)
[*] Modo historia en el que los edificios tengan un coste
[*] Generador de mapas configurable (Configurar recursos, forma, tamaño, densidad, semilla y más)
[*] Más tipos de figuras
[*] Mejoras de rendimiento (¡Aunque el juego ya funciona muy bien!)
[*] ¡Y mucho más!
[/list]
[b]¡Este juego es de código abierto![/b]
Cualquiera puede contribuir, estoy activamente involucrado en la comunidad e intento leer todas las sugerencias y considerar todas las propuestas planteadas. ¡Comprueba mi tablero de Trello para ver todo lo planificado!
[b]Enlaces[/b]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]Discord oficial[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Hoja de ruta[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Código fuente (GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Ayuda a traducir[/url]
[/list]
global: global:
loading: Cargando loading: Cargando
error: Error error: Error
@ -129,7 +121,9 @@ dialogs:
text: "No se ha podido cargar la partida guardada:" text: "No se ha podido cargar la partida guardada:"
confirmSavegameDelete: confirmSavegameDelete:
title: Confirmar borrado title: Confirmar borrado
text: ¿Seguro que quieres borrar la partida? text: Are you sure you want to delete the following game?<br><br>
'<savegameName>' at level <savegameLevel><br><br> This can not be
undone!
savegameDeletionError: savegameDeletionError:
title: Fallo al borrar title: Fallo al borrar
text: "Fallo al borrar la partida guardada:" text: "Fallo al borrar la partida guardada:"
@ -192,9 +186,8 @@ dialogs:
createMarker: createMarker:
title: Nuevo marcador title: Nuevo marcador
titleEdit: Editar marcador titleEdit: Editar marcador
desc: Dale un nombre significativo, también puedes agregarle la desc: Give it a meaningful name, you can also include a <strong>short
<strong>clave</strong> de una forma (La cual puedes generar <a key</strong> of a shape (Which you can generate <link>here</link>)
href="https://viewer.shapez.io" target="_blank">aquí</a>)
markerDemoLimit: markerDemoLimit:
desc: Solo puedes crear dos marcadores en la versión de prueba. ¡Obtén el juego desc: Solo puedes crear dos marcadores en la versión de prueba. ¡Obtén el juego
completo para marcadores ilimitados! completo para marcadores ilimitados!
@ -211,6 +204,11 @@ dialogs:
renameSavegame: renameSavegame:
title: Rename Savegame title: Rename Savegame
desc: You can rename your savegame here. desc: You can rename your savegame here.
entityWarning:
title: Performance Warning
desc: You have placed a lot of buildings, this is just a friendly reminder that
the game can not handle an endless count of buildings - So try to
keep your factories compact!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Mover moveMap: Mover
@ -350,6 +348,38 @@ ingame:
one_miner: 1 Miner one_miner: 1 Miner
n_miners: <amount> Miners n_miners: <amount> Miners
limited_items: Limited to <max_throughput> limited_items: Limited to <max_throughput>
watermark:
title: Demo version
desc: Click here to see the Steam version advantages!
get_on_steam: Get on steam
standaloneAdvantages:
title: Get the full version!
no_thanks: No, thanks!
points:
levels:
title: 12 New Levels
desc: For a total of 26 levels!
buildings:
title: 18 New Buildings
desc: Fully automate your factory!
savegames:
title: ∞ Savegames
desc: As many as your heart desires!
upgrades:
title: 20 Upgrade Tiers
desc: This demo version has only 5!
markers:
title: ∞ Markers
desc: Never get lost in your factory!
wires:
title: Wires
desc: An entirely new dimension!
darkmode:
title: Dark Mode
desc: Stop hurting your eyes!
support:
title: Support me
desc: I develop it in my spare time!
shopUpgrades: shopUpgrades:
belt: belt:
name: Cintas transportadoras, Distribuidores y Túneles name: Cintas transportadoras, Distribuidores y Túneles
@ -368,6 +398,7 @@ buildings:
deliver: Entregar deliver: Entregar
toUnlock: para desbloquear toUnlock: para desbloquear
levelShortcut: LVL levelShortcut: LVL
endOfDemo: End of Demo
belt: belt:
default: default:
name: Cinta Transportadora name: Cinta Transportadora
@ -442,8 +473,9 @@ buildings:
la entrada de arriba. la entrada de arriba.
quad: quad:
name: Pintor (Cuádruple) name: Pintor (Cuádruple)
description: Permite colorear cada cuadrante de una figura con un color description: Allows you to color each quadrant of the shape individually. Only
distinto. slots with a <strong>truthy signal</strong> on the wires layer
will be painted!
trash: trash:
default: default:
name: Basurero name: Basurero
@ -553,14 +585,20 @@ buildings:
name: Virtual Painter name: Virtual Painter
description: Virtually paints the shape from the bottom input with the shape on description: Virtually paints the shape from the bottom input with the shape on
the right input. the right input.
item_producer:
default:
name: Item Producer
description: Available in sandbox mode only, outputs the given signal from the
wires layer on the regular layer.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Cortador de figuras title: Cortador de figuras
desc: ¡Acabas de desbloquear el <strong>cortador</strong> - corta las figuras desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half
por la mitad <strong>de arriba abajo</strong> sin importar su from top to bottom <strong>regardless of its
orientación!<br><br>Asegúrate de deshacerte de lo que no vayas a orientation</strong>!<br><br>Be sure to get rid of the waste, or
usar o <strong>se parará</strong> - ¡Para eso te he dado un otherwise <strong>it will clog and stall</strong> - For this purpose
basurero, que destruye todo lo que le pongas! I have given you the <strong>trash</strong>, which destroys
everything you put into it!
reward_rotater: reward_rotater:
title: Rotador title: Rotador
desc: ¡El <strong>rotador</strong> se ha desbloqueado! Rota figuras en sentido desc: ¡El <strong>rotador</strong> se ha desbloqueado! Rota figuras en sentido
@ -584,9 +622,9 @@ storyRewards:
será <strong>apilada encima</strong> de la entrada izquierda! será <strong>apilada encima</strong> de la entrada izquierda!
reward_splitter: reward_splitter:
title: Separador/Fusionador title: Separador/Fusionador
desc: El <strong>balanceador</strong> multiusos se ha desbloqueado - ¡Se puede desc: You have unlocked a <strong>splitter</strong> variant of the
usar para construir fábricas más grandes <strong>separando y uniendo <strong>balancer</strong> - It accepts one input and splits them
elementos</strong> en varias cintas transportadoras!<br><br> into two!
reward_tunnel: reward_tunnel:
title: Túnel title: Túnel
desc: El <strong>túnel</strong> se ha desbloqueado - ¡Ahora puedes transportar desc: El <strong>túnel</strong> se ha desbloqueado - ¡Ahora puedes transportar
@ -598,9 +636,10 @@ storyRewards:
y <strong>pulsa 'T' para ciclar por sus variantes</strong> y <strong>pulsa 'T' para ciclar por sus variantes</strong>
reward_miner_chainable: reward_miner_chainable:
title: Extractor en cadena title: Extractor en cadena
desc: ¡Has desbloqueado el <strong>extractor en cadena</strong>! Puede desc: "You have unlocked the <strong>chained extractor</strong>! It can
<strong>enviar los recursos</strong> a otros extractores, extrayendo <strong>forward its resources</strong> to other extractors so you
recursos más eficientemente. can more efficiently extract resources!<br><br> PS: The old
extractor has been replaced in your toolbar now!"
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Túnel nivel II title: Túnel nivel II
desc: Has desbloqueado una nueva variante del <strong>túnel</strong> - ¡Tiene un desc: Has desbloqueado una nueva variante del <strong>túnel</strong> - ¡Tiene un
@ -615,20 +654,20 @@ storyRewards:
desc: Has desbloqueado una variante del <strong>pintor</strong> - ¡Funciona como desc: Has desbloqueado una variante del <strong>pintor</strong> - ¡Funciona como
un pintor normal pero procesa <strong>dos figuras a la vez</strong>, un pintor normal pero procesa <strong>dos figuras a la vez</strong>,
consumiendo solo un color en vez de dos! consumiendo solo un color en vez de dos!
reward_painter_quad:
title: Pintor cuádruple
desc: Has desbloqueado una variante del <strong>pintor</strong> - ¡Permite
pintar cada parte de una figura individualmente!
reward_storage: reward_storage:
title: Almacenamiento intermedio title: Almacenamiento intermedio
desc: Has desbloqueado una variante del <strong>basurero</strong> - ¡Permite desc: You have unlocked the <strong>storage</strong> building - It allows you to
almacenar elementos hasta una cierta capacidad! store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
reward_freeplay: reward_freeplay:
title: Juego libre title: Juego libre
desc: ¡Lo has conseguido! ¡Has desbloqueado el <strong>Juego Libre</strong>! desc: You did it! You unlocked the <strong>free-play mode</strong>! This means
¡Esto significa que ahora las figuras se generan aleatoriamente! that shapes are now <strong>randomly</strong> generated!<br><br>
(¡No te preocupes, hay más contenido planeado para el juego Since the hub will require a <strong>throughput</strong> from now
completo!) on, I highly recommend to build a machine which automatically
delivers the requested shape!<br><br> The HUB outputs the requested
shape on the wires layer, so all you have to do is to analyze it and
automatically configure your factory based on that.
reward_blueprints: reward_blueprints:
title: Planos title: Planos
desc: ¡Ahora puedes <strong>copiar y pegar</strong> partes de tu fábrica! desc: ¡Ahora puedes <strong>copiar y pegar</strong> partes de tu fábrica!
@ -666,17 +705,12 @@ storyRewards:
title: Rotater (180 degrees) title: Rotater (180 degrees)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D) you to rotate a shape by 180 degress (Surprise! :D)
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Display
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize its contents! wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Constant Signal
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: You unlocked the <strong>constant signal</strong> building on the wires
@ -700,6 +734,23 @@ storyRewards:
shape requested by the HUB (I recommend to try it!).<br><br> - Build shape requested by the HUB (I recommend to try it!).<br><br> - Build
something cool with wires.<br><br> - Continue to play something cool with wires.<br><br> - Continue to play
regulary.<br><br> Whatever you choose, remember to have fun! regulary.<br><br> Whatever you choose, remember to have fun!
reward_wires_painter_and_levers:
title: Wires & Quad Painter
desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate
layer on top of the regular layer and introduces a lot of new
mechanics!<br><br> For the beginning I unlocked you the <strong>Quad
Painter</strong> - Connect the slots you would like to paint with on
the wires layer!<br><br> To switch to the wires layer, press
<strong>E</strong>."
reward_filter:
title: Item Filter
desc: You unlocked the <strong>Item Filter</strong>! It will route items either
to the top or the right output depending on whether they match the
signal from the wires layer or not.<br><br> You can also pass in a
boolean signal (1 / 0) to entirely activate or disable it.
reward_demo_end:
title: End of Demo
desc: You have reached the end of the demo version!
settings: settings:
title: Opciones title: Opciones
categories: categories:
@ -923,7 +974,6 @@ keybindings:
constant_signal: Constant Signal constant_signal: Constant Signal
logic_gate: Logic Gate logic_gate: Logic Gate
lever: Switch (regular) lever: Switch (regular)
lever_wires: Switch (wires)
filter: Filter filter: Filter
wire_tunnel: Wire Crossing wire_tunnel: Wire Crossing
display: Display display: Display
@ -932,6 +982,8 @@ keybindings:
transistor: Transistor transistor: Transistor
analyzer: Shape Analyzer analyzer: Shape Analyzer
comparator: Compare comparator: Compare
item_producer: Item Producer (Sandbox)
copyWireValue: "Wires: Copy value below cursor"
about: about:
title: Sobre el juego title: Sobre el juego
body: >- body: >-
@ -1016,3 +1068,4 @@ tips:
- To clear belts, cut the area and then paste it at the same location. - To clear belts, cut the area and then paste it at the same location.
- Press F4 to show your FPS and Tick Rate. - Press F4 to show your FPS and Tick Rate.
- Press F4 twice to show the tile of your mouse and camera. - Press F4 twice to show the tile of your mouse and camera.
- You can click a pinned shape on the left side to unpin it.

View File

@ -2,59 +2,51 @@ steamPage:
shortText: shapez.io on peli tehtaiden rakentamisesta, joiden avulla shortText: shapez.io on peli tehtaiden rakentamisesta, joiden avulla
automatisoidaan yhä monimutkaisempien muotojen luonti and yhdisteleminen automatisoidaan yhä monimutkaisempien muotojen luonti and yhdisteleminen
loputtomassa maailmassa. loputtomassa maailmassa.
longText: >- discordLinkShort: Official Discord
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] intro: >-
Shapez.io is a relaxed game in which you have to build factories for the
automated production of geometric shapes.
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. As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map.
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]! And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling!
Soon you will have to mix colors and paint your shapes with them - Combine red, green and blue color resources to produce different colors and paint shapes with it to satisfy the demand. While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors!
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! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later!
title_advantages: Standalone Advantages
advantages:
- <b>12 New Level</b> for a total of 26 levels
- <b>18 New Buildings</b> for a fully automated factory!
- <b>20 Upgrade Tiers</b> for many hours of fun!
- <b>Wires Update</b> for an entirely new dimension!
- <b>Dark Mode</b>!
- Unlimited Savegames
- Unlimited Markers
- Support me! ❤️
title_future: Planned Content
planned:
- Blueprint Library (Standalone Exclusive)
- Steam Achievements
- Puzzle Mode
- Minimap
- Mods
- Sandbox mode
- ... and a lot more!
title_open_source: This game is open source!
title_links: Links
links:
discord: Official Discord
roadmap: Roadmap
subreddit: Subreddit
source_code: Source code (GitHub)
translate: Help translate
text_open_source: >-
Anybody can contribute, I'm actively involved in the community and
attempt to review all suggestions and take feedback into consideration
where possible.
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Be sure to check out my trello board for the full roadmap!
[b]Standalone Advantages[/b]
[list]
[*] Dark Mode
[*] Unlimited Waypoints
[*] Unlimited Savegames
[*] Additional settings
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020.
[*] Coming soon: More Levels
[*] Allows me to further develop shapez.io ❤️
[/list]
[b]Future Updates[/b]
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]
[b]This game is open source![/b]
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!
[b]Links[/b]
[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]
[/list]
discordLink: Official Discord - Chat with me!
global: global:
loading: Ladataan loading: Ladataan
error: Virhe error: Virhe
@ -129,7 +121,9 @@ dialogs:
text: "Tallennuksen lataus epäonnistui:" text: "Tallennuksen lataus epäonnistui:"
confirmSavegameDelete: confirmSavegameDelete:
title: Varmista poisto title: Varmista poisto
text: Oletko varma että haluat poistaa tallennuksen? text: Are you sure you want to delete the following game?<br><br>
'<savegameName>' at level <savegameLevel><br><br> This can not be
undone!
savegameDeletionError: savegameDeletionError:
title: Poisto epäonnistui title: Poisto epäonnistui
text: "Tallennuksen poisto epäonnistui:" text: "Tallennuksen poisto epäonnistui:"
@ -185,9 +179,8 @@ dialogs:
Käännä sijoitettavien hihnojen suunta.<br>" Käännä sijoitettavien hihnojen suunta.<br>"
createMarker: createMarker:
title: Uusi Merkki title: Uusi Merkki
desc: Anna merkille kuvaava nimi, voit myös sisällyttää muodon <strong>lyhyen desc: Give it a meaningful name, you can also include a <strong>short
avaimen</strong> siihen. (Lyhyen avaimen voit luoda <a key</strong> of a shape (Which you can generate <link>here</link>)
href="https://viewer.shapez.io" target="_blank">täällä</a>)
titleEdit: Muokkaa merkkiä titleEdit: Muokkaa merkkiä
markerDemoLimit: markerDemoLimit:
desc: Voit tehdä vain kaksi mukautettua merkkiä demoversiossa. Hanki itsenäinen desc: Voit tehdä vain kaksi mukautettua merkkiä demoversiossa. Hanki itsenäinen
@ -208,6 +201,11 @@ dialogs:
renameSavegame: renameSavegame:
title: Rename Savegame title: Rename Savegame
desc: You can rename your savegame here. desc: You can rename your savegame here.
entityWarning:
title: Performance Warning
desc: You have placed a lot of buildings, this is just a friendly reminder that
the game can not handle an endless count of buildings - So try to
keep your factories compact!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Liiku moveMap: Liiku
@ -346,6 +344,38 @@ ingame:
one_miner: 1 Miner one_miner: 1 Miner
n_miners: <amount> Miners n_miners: <amount> Miners
limited_items: Limited to <max_throughput> limited_items: Limited to <max_throughput>
watermark:
title: Demo version
desc: Click here to see the Steam version advantages!
get_on_steam: Get on steam
standaloneAdvantages:
title: Get the full version!
no_thanks: No, thanks!
points:
levels:
title: 12 New Levels
desc: For a total of 26 levels!
buildings:
title: 18 New Buildings
desc: Fully automate your factory!
savegames:
title: ∞ Savegames
desc: As many as your heart desires!
upgrades:
title: 20 Upgrade Tiers
desc: This demo version has only 5!
markers:
title: ∞ Markers
desc: Never get lost in your factory!
wires:
title: Wires
desc: An entirely new dimension!
darkmode:
title: Dark Mode
desc: Stop hurting your eyes!
support:
title: Support me
desc: I develop it in my spare time!
shopUpgrades: shopUpgrades:
belt: belt:
name: Hihnat, Jakelija & Tunneli name: Hihnat, Jakelija & Tunneli
@ -364,6 +394,7 @@ buildings:
deliver: Toimita deliver: Toimita
toUnlock: avataksesi toUnlock: avataksesi
levelShortcut: LVL levelShortcut: LVL
endOfDemo: End of Demo
belt: belt:
default: default:
name: Liukuhihna name: Liukuhihna
@ -437,7 +468,9 @@ buildings:
sisääntulosta tulevalla värillä. sisääntulosta tulevalla värillä.
quad: quad:
name: Painter (Neljännes) name: Painter (Neljännes)
description: Sallii muodon neljäsosien värjäämisen eri väreillä. description: Allows you to color each quadrant of the shape individually. Only
slots with a <strong>truthy signal</strong> on the wires layer
will be painted!
trash: trash:
default: default:
name: Roskakori name: Roskakori
@ -547,14 +580,20 @@ buildings:
name: Virtual Painter name: Virtual Painter
description: Virtually paints the shape from the bottom input with the shape on description: Virtually paints the shape from the bottom input with the shape on
the right input. the right input.
item_producer:
default:
name: Item Producer
description: Available in sandbox mode only, outputs the given signal from the
wires layer on the regular layer.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Muotojen Leikkaus title: Muotojen Leikkaus
desc: Avasit <strong>Leikkurin</strong> - se leikkaa muotoja puoliksi desc: You just unlocked the <strong>cutter</strong>, which cuts shapes in half
<strong>ylhäältä alaspäin</strong> riippumatta sen from top to bottom <strong>regardless of its
suunnasta!<br><br>Varmista, että pääset eroon jätteistä, tai muuten orientation</strong>!<br><br>Be sure to get rid of the waste, or
<strong>se jumittuu</strong> - Tätä varten saat Roskiksen, joka otherwise <strong>it will clog and stall</strong> - For this purpose
tuhoaa kaiken mitä laitat sinne! I have given you the <strong>trash</strong>, which destroys
everything you put into it!
reward_rotater: reward_rotater:
title: Kääntö title: Kääntö
desc: Avasit <strong>Kääntäjän</strong>! Se kääntää muotoja myötäpäivään 90 desc: Avasit <strong>Kääntäjän</strong>! Se kääntää muotoja myötäpäivään 90
@ -578,9 +617,9 @@ storyRewards:
päälle! päälle!
reward_splitter: reward_splitter:
title: Tasaaja title: Tasaaja
desc: Avasit monikäyttöisen <strong>Tasaajan</strong> - Sitä voidaan käyttää desc: You have unlocked a <strong>splitter</strong> variant of the
isompien tehtaiden rakennukseen <strong>jakamaan ja yhdistämään <strong>balancer</strong> - It accepts one input and splits them
tavaroita</strong> monille hihnoille!<br><br> into two!
reward_tunnel: reward_tunnel:
title: Tunneli title: Tunneli
desc: Avasit <strong>Tunnelin</strong> - Nyt voit kuljettaa tavaroita desc: Avasit <strong>Tunnelin</strong> - Nyt voit kuljettaa tavaroita
@ -592,9 +631,10 @@ storyRewards:
<strong>painamalla 'T' vaihtaaksesi sen muotoja</strong>! <strong>painamalla 'T' vaihtaaksesi sen muotoja</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Sarja Kaivaja title: Sarja Kaivaja
desc: Avasit <strong>Sarja Kaivajan</strong>! Se voi <strong>välittää sen desc: "You have unlocked the <strong>chained extractor</strong>! It can
resurssit</strong> muille kaivajille, jotta voit kaivaa resursseja <strong>forward its resources</strong> to other extractors so you
tehokkaammin! can more efficiently extract resources!<br><br> PS: The old
extractor has been replaced in your toolbar now!"
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunneli Taso II title: Tunneli Taso II
desc: Avasit uuden muodon <strong>Tunnelista</strong> - Siinä on <strong>pidempi desc: Avasit uuden muodon <strong>Tunnelista</strong> - Siinä on <strong>pidempi
@ -608,19 +648,20 @@ storyRewards:
desc: Avasit muodon <strong>Värjääjästä</strong> - Se toimii samanlailla kuin desc: Avasit muodon <strong>Värjääjästä</strong> - Se toimii samanlailla kuin
normaali värjääjä, mutta käsittelee <strong>kaksi muotoa normaali värjääjä, mutta käsittelee <strong>kaksi muotoa
kerrallaan</strong> käyttäen vain yhden värin kahden sijaan! kerrallaan</strong> käyttäen vain yhden värin kahden sijaan!
reward_painter_quad:
title: Neljäsosa Värjäys
desc: Avasit muodon <strong>Värjääjästä</strong> - Se sallii muodon eri osien
värjäämisen erikseen!
reward_storage: reward_storage:
title: Varasto Puskuri title: Varasto Puskuri
desc: Avasit muodon <strong>Roskiksesta</strong> - Se sallii resurssien desc: You have unlocked the <strong>storage</strong> building - It allows you to
säilyttämisen tiettyyn kapasiteettiin asti! store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
reward_freeplay: reward_freeplay:
title: Vapaapeli title: Vapaapeli
desc: Sinä teit sen! Avasit <strong>Vapaapelitilan</strong>! Tämä tarkoittaa desc: You did it! You unlocked the <strong>free-play mode</strong>! This means
sitä, että muodot tehdään nyt satunnaisesti! (Ei hätää, lisää that shapes are now <strong>randomly</strong> generated!<br><br>
sisältöä on suunnitteilla itsenäiseen peliin!) Since the hub will require a <strong>throughput</strong> from now
on, I highly recommend to build a machine which automatically
delivers the requested shape!<br><br> The HUB outputs the requested
shape on the wires layer, so all you have to do is to analyze it and
automatically configure your factory based on that.
reward_blueprints: reward_blueprints:
title: Piirustukset title: Piirustukset
desc: Nyt voit <strong>Kopioida ja Liittää</strong> paloja tehtaastasi! Valitse desc: Nyt voit <strong>Kopioida ja Liittää</strong> paloja tehtaastasi! Valitse
@ -656,17 +697,12 @@ storyRewards:
title: Rotater (180 degrees) title: Rotater (180 degrees)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D) you to rotate a shape by 180 degress (Surprise! :D)
reward_wires_filters_and_levers:
title: "Wires: Filters & Levers"
desc: You just unlocked the <strong>wires layer</strong>! It is a separate layer
on top of the regular layer and introduces a lot of new
mechanics!<br><br> Since it can be overwhelming a bit, I added a
small tutorial - Be sure to have <strong>tutorials enabled</strong>
in the settings!
reward_display: reward_display:
title: Display title: Display
desc: You have unlocked the <strong>Display</strong> - Connect a signal on the desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize its contents! wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
reward_constant_signal: reward_constant_signal:
title: Constant Signal title: Constant Signal
desc: You unlocked the <strong>constant signal</strong> building on the wires desc: You unlocked the <strong>constant signal</strong> building on the wires
@ -690,6 +726,23 @@ storyRewards:
shape requested by the HUB (I recommend to try it!).<br><br> - Build shape requested by the HUB (I recommend to try it!).<br><br> - Build
something cool with wires.<br><br> - Continue to play something cool with wires.<br><br> - Continue to play
regulary.<br><br> Whatever you choose, remember to have fun! regulary.<br><br> Whatever you choose, remember to have fun!
reward_wires_painter_and_levers:
title: Wires & Quad Painter
desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate
layer on top of the regular layer and introduces a lot of new
mechanics!<br><br> For the beginning I unlocked you the <strong>Quad
Painter</strong> - Connect the slots you would like to paint with on
the wires layer!<br><br> To switch to the wires layer, press
<strong>E</strong>."
reward_filter:
title: Item Filter
desc: You unlocked the <strong>Item Filter</strong>! It will route items either
to the top or the right output depending on whether they match the
signal from the wires layer or not.<br><br> You can also pass in a
boolean signal (1 / 0) to entirely activate or disable it.
reward_demo_end:
title: End of Demo
desc: You have reached the end of the demo version!
settings: settings:
title: Asetukset title: Asetukset
categories: categories:
@ -911,7 +964,6 @@ keybindings:
constant_signal: Constant Signal constant_signal: Constant Signal
logic_gate: Logic Gate logic_gate: Logic Gate
lever: Switch (regular) lever: Switch (regular)
lever_wires: Switch (wires)
filter: Filter filter: Filter
wire_tunnel: Wire Crossing wire_tunnel: Wire Crossing
display: Display display: Display
@ -920,6 +972,8 @@ keybindings:
transistor: Transistor transistor: Transistor
analyzer: Shape Analyzer analyzer: Shape Analyzer
comparator: Compare comparator: Compare
item_producer: Item Producer (Sandbox)
copyWireValue: "Wires: Copy value below cursor"
about: about:
title: Tietoja tästä pelistä title: Tietoja tästä pelistä
body: >- body: >-
@ -1004,3 +1058,4 @@ tips:
- To clear belts, cut the area and then paste it at the same location. - To clear belts, cut the area and then paste it at the same location.
- Press F4 to show your FPS and Tick Rate. - Press F4 to show your FPS and Tick Rate.
- Press F4 twice to show the tile of your mouse and camera. - Press F4 twice to show the tile of your mouse and camera.
- You can click a pinned shape on the left side to unpin it.

View File

@ -2,72 +2,59 @@ steamPage:
shortText: shapez.io est un jeu qui consiste à construire des usines pour shortText: shapez.io est un jeu qui consiste à construire des usines pour
automatiser la création et la combinaison de formes de plus en plus automatiser la création et la combinaison de formes de plus en plus
complexes sur une carte infinie. complexes sur une carte infinie.
discordLink: Discord officiel — Parlez avec moi! discordLinkShort: Discord officiel
longText: >- intro: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] Vous aimez les jeux dautomatisation? Ce jeu est pour vous!
shapez.io est un jeu dans lequel vous devrez construire des usines pour automatiser la création et la combinaison de formes de plus en plus complexes sur une carte infinie. shapez.io est un jeu calme où vous devrez construire des usines pour produire automatiquement des formes géométriques. À mesure que le niveau augmente, les formes deviennent de plus en plus complexes, et vous devrez vous étendre sur la carte infinie.
En livrant les formes requises, vous progresserez et débloquerez des améliorations pour accélérer votre usine. Et en plus, vous devrez aussi produire de plus en plus pour satisfaire la demande. La seule solution est de construire en plus grand! Au début vous ne ferez que découper les formes, mais plus tard vous devrez les peindre  et pour ça vous devrez extraire et mélanger des couleurs!
Vous devrez agrandir votre usine pour répondre à laugmentation de la demande en formes — Mais noubliez pas les ressources, vous devrez vous étendre au milieu de cette [b]carte infinie[/b]! En achetant le jeu sur Steam, vous aurez accès à la version complète, mais vous pouvez aussi jouer à une démo sur shapez.io et vous décider ensuite!
title_advantages: Avantages de la version complète
advantages:
- <b>12 nouveaux niveaux</b> avec 26 niveaux en tout
- <b>18 nouveaux bâtiments</b> pour automatiser entièrement votre usine!
- <b>20 niveaux damélioration</b> pour samuser pendant des heures!
- <b>Les câbles</b> ouvrent une toute nouvelle dimension!
- <b>Mode sombre</b>!
- Sauvegardes illimitées
- Balises illimitées
- Me soutenir! ❤️
title_future: Prévu
planned:
- Bibliothèque de patrons
- Succès sur Steam
- Mode réflexion
- Mini-carte
- Mods
- Mode bac à sable
- …et bien plus!
title_open_source: Ce jeu est open source!
text_open_source: >-
Tout le monde peut contribuer. Je suis très impliqué dans la communauté
et jessaie de lire toutes les suggestions et de prendre en compte vos
retours quand cest possible.
Bientôt, vous devrez mélanger les couleurs et peindre vos formes avec — Combinez les ressources de couleurs rouge, verte et bleue pour produire différentes couleurs et peindre les formes avec pour satisfaire la demande. Noubliez pas de consulter mon tableau Trello pour voir tout le plan de développement!
title_links: Liens
Ce jeu propose 18 niveaux progressifs (qui devraient déjà vous occuper quelques heures!) mais je développe constamment plus de contenu — Il y a beaucoup de choses prévues! links:
discord: Discord officiel
Acheter le jeu vous donne accès à la version complète qui a des fonctionnalités supplémentaires, et vous pourrez aussi accéder aux fonctionnalités fraîchement développées. roadmap: Plan de développement
subreddit: Reddit
[b]Avantages de la version complète (standalone)[/b] source_code: Code source (GitHub)
translate: Aidez à traduire
[list]
[*] Mode sombre
[*] Balises infinies
[*] Parties infinies
[*] Plus doptions
[*] Prochainement : Câbles et énergie! Prévu pour (environ) fin juillet 2020.
[*] Prochainement : Plus de niveaux
[*] Aidez-moi à continuer de développer shapez.io ❤️
[/list]
[b]Mises à jour à venir[/b]
Je fais souvent des mises à jour et jessaye den sortir une par semaine!
[list]
[*] Différentes cartes et challenges (e.g. carte avec obstacles)
[*] Casse-tête (Livrer la forme requise avec une zone limitée/jeu de bâtiments)
[*] Un mode histoire où les bâtiments ont un coût
[*] Générateur de carte configurable (configuration des ressources/formes/taille/densité, graine aléatoire et plus)
[*] Plus de niveaux
[*] Amélioration des performances (Le jeu tourne déjà plutôt bien!)
[*] Et bien plus!
[/list]
[b]Ce jeu est open source![/b]
Tout le monde peut contribuer, je suis très impliqué dans la communauté et jessaye de répondre à toutes les suggestions et prendre en compte vos retours si possible. Jetez un coup dœil à mon Trello pour le suivi du projet et les plans de développement!
[b]Liens[/b]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]Discord officiel[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Trello[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Code source (GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Aidez à traduire[/url]
[/list]
global: global:
loading: Chargement loading: Chargement
error: Erreur error: Erreur
thousandsDivider: thousandsDivider: ""
decimalSeparator: "," decimalSeparator: ","
suffix: suffix:
thousands: k thousands: k
millions: M millions: M
billions: G billions: G
trillions: T trillions: T
infinite: inf infinite:
time: time:
oneSecondAgo: il y a une seconde oneSecondAgo: il y a une seconde
xSecondsAgo: il y a <x> secondes xSecondsAgo: il y a <x> secondes
@ -76,10 +63,10 @@ global:
oneHourAgo: il y a une heure oneHourAgo: il y a une heure
xHoursAgo: il y a <x> heures xHoursAgo: il y a <x> heures
oneDayAgo: il y a un jour oneDayAgo: il y a un jour
xDaysAgo: il y a <x> jours xDaysAgo: il y a <x> jours
secondsShort: <seconds> s secondsShort: <seconds>s
minutesAndSecondsShort: <minutes> m <seconds> s minutesAndSecondsShort: <minutes>m <seconds>s
hoursAndMinutesShort: <hours> h <minutes> m hoursAndMinutesShort: <hours>h <minutes>m
xMinutes: <x> minutes xMinutes: <x> minutes
keys: keys:
tab: TAB tab: TAB
@ -89,7 +76,7 @@ global:
shift: MAJ shift: MAJ
space: ESPACE space: ESPACE
demoBanners: demoBanners:
title: Version démo title: Version de démo
intro: Achetez la version complète pour débloquer toutes les fonctionnalités! intro: Achetez la version complète pour débloquer toutes les fonctionnalités!
mainMenu: mainMenu:
play: Jouer play: Jouer
@ -111,7 +98,7 @@ mainMenu:
dialogs: dialogs:
buttons: buttons:
ok: OK ok: OK
delete: Effacer delete: Supprimer
cancel: Annuler cancel: Annuler
later: Plus tard later: Plus tard
restart: Relancer restart: Relancer
@ -150,8 +137,8 @@ dialogs:
title: Réinitialisation des contrôles title: Réinitialisation des contrôles
desc: Les contrôles ont été remis à défaut! desc: Les contrôles ont été remis à défaut!
featureRestriction: featureRestriction:
title: Version démo title: Version de démo
desc: Vous avez essayé daccéder à la fonction (<feature>) qui nest pas desc: Vous avez essayé daccéder à la fonction “<feature>” qui nest pas
disponible dans la démo. Pensez à acheter la version complète pour disponible dans la démo. Pensez à acheter la version complète pour
une expérience optimale! une expérience optimale!
oneSavegameLimit: oneSavegameLimit:
@ -161,15 +148,15 @@ dialogs:
version complète! version complète!
updateSummary: updateSummary:
title: Nouvelle mise à jour! title: Nouvelle mise à jour!
desc: "Voici les changements depuis votre dernière session :" desc: "Voici les changements depuis votre dernière session de jeu :"
upgradesIntroduction: upgradesIntroduction:
title: Débloquer les améliorations title: Débloquer les améliorations
desc: Toutes les formes que vous produisez peuvent être utilisées pour débloquer desc: Toutes les formes que vous produisez peuvent être utilisées pour débloquer
des améliorations — <strong>Ne détruisez pas vos anciennes des améliorations — <strong>Ne détruisez pas vos anciennes
usines!</strong> Longlet des améliorations se trouve dans le coin usines!</strong> Longlet des améliorations se trouve dans le coin
supérieur droit de lécran. supérieur droit de lécran.
massDeleteConfirm: massDeleteConfirm:
title: Confirmation de suppression title: Confirmer la suppression
desc: Vous allez supprimer beaucoup de bâtiments (<count> pour être précis)! desc: Vous allez supprimer beaucoup de bâtiments (<count> pour être précis)!
Êtes-vous sûr de vouloir faire ça? Êtes-vous sûr de vouloir faire ça?
massCutConfirm: massCutConfirm:
@ -182,24 +169,28 @@ dialogs:
la couper? la couper?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Pas encore débloqué title: Pas encore débloqué
desc: Les patrons nont pas encore été débloqués! Terminez le niveau 12 pour y desc: Terminez le niveau 12 pour avoir accès aux patrons!
avoir accès.
keybindingsIntroduction: keybindingsIntroduction:
title: Raccourcis utiles title: Raccourcis utiles
desc: "Le jeu a de nombreux raccourcis facilitant la construction de grandes desc: 'Le jeu a de nombreux raccourcis facilitant la construction de grandes
usines. En voici quelques-uns, nhésitez pas à aller usines. En voici quelques-uns, nhésitez pas à aller
<strong>découvrir les raccourcis</strong>!<br><br> <code <strong>découvrir les raccourcis</strong>!<br><br> <code
class='keybinding'>CTRL</code> + glisser : Sélectionne une zone à class="keybinding">CTRL</code> + glisser : Sélectionne une zone à
copier/effacer.<br> <code class='keybinding'>MAJ</code> : Laissez copier/supprimer.<br> <code class="keybinding">MAJ</code> : Laissez
appuyé pour placer plusieurs fois le même bâtiment.<br> <code appuyé pour placer plusieurs fois le même bâtiment.<br> <code
class='keybinding'>ALT</code> : Inverse lorientation des convoyeurs class="keybinding">ALT</code> : Inverse lorientation des convoyeurs
placés.<br>" placés.<br>'
createMarker: createMarker:
title: Nouvelle balise title: Nouvelle balise
titleEdit: Modifier cette balise titleEdit: Modifier cette balise
desc: Donnez-lui un nom, vous pouvez aussi inclure <strong>le raccourci</strong> desc: Donnez-lui un nom. Vous pouvez aussi inclure <strong>le raccourci</strong>
dune forme (que vous pouvez générer <a dune forme (que vous pouvez générer <a
href="https://viewer.shapez.io" target="_blank">ici</a>). href="https://viewer.shapez.io" target="_blank">ici</a>).
editSignal:
title: Définir le signal
descItems: "Choisissez un objet prédéfini :"
descShortKey: …ou entrez le <strong>raccourci</strong> dune forme (que vous
pouvez générer <link>ici</link>)
markerDemoLimit: markerDemoLimit:
desc: Vous ne pouvez créer que deux balises dans la démo. Achetez la version desc: Vous ne pouvez créer que deux balises dans la démo. Achetez la version
complète pour en placer autant que vous voulez! complète pour en placer autant que vous voulez!
@ -211,11 +202,11 @@ dialogs:
renameSavegame: renameSavegame:
title: Renommer la sauvegarde title: Renommer la sauvegarde
desc: Vous pouvez renommer la sauvegarde ici. desc: Vous pouvez renommer la sauvegarde ici.
editSignal: entityWarning:
title: Set Signal title: Avertissement sur les performances
descItems: "Choose a pre-defined item:" desc: Vous avez placé beaucoup de bâtiments. Ceci est juste un rappel amical que
descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you le jeu ne peut pas gérer un nombre infini de bâtiments, alors
can generate <link>here</link>) essayez de garder vos usines compactes!
ingame: ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Déplacer moveMap: Déplacer
@ -254,10 +245,10 @@ ingame:
speed: Vitesse speed: Vitesse
range: Portée range: Portée
storage: Espace de stockage storage: Espace de stockage
oneItemPerSecond: 1 forme  s oneItemPerSecond: 1 formes
itemsPerSecond: <x> formes  s itemsPerSecond: <x> formess
itemsPerSecondDouble: (×2) itemsPerSecondDouble: (×2)
tiles: <x> cases tiles: <x> cases
levelCompleteNotification: levelCompleteNotification:
levelTitle: Niveau <level> levelTitle: Niveau <level>
completed: Terminé completed: Terminé
@ -266,7 +257,7 @@ ingame:
notifications: notifications:
newUpgrade: Une nouvelle amélioration est disponible! newUpgrade: Une nouvelle amélioration est disponible!
gameSaved: Votre partie a été sauvegardée. gameSaved: Votre partie a été sauvegardée.
freeplayLevelComplete: Level <level> has been completed! freeplayLevelComplete: Niveau <level> complet!
shop: shop:
title: Améliorations title: Améliorations
buttonUnlock: Améliorer buttonUnlock: Améliorer
@ -292,7 +283,7 @@ ingame:
- XVIII - XVIII
- XIX - XIX
- XX - XX
maximumLevel: NIVEAU MAXIMAL (Vitesse ×<currentMult>) maximumLevel: NIVEAU MAX (Vitesse ×<currentMult>)
statistics: statistics:
title: Statistiques title: Statistiques
dataSources: dataSources:
@ -308,9 +299,9 @@ ingame:
description: Affiche les formes qui ont été livrées dans votre bâtiment central. description: Affiche les formes qui ont été livrées dans votre bâtiment central.
noShapesProduced: Aucune forme produite pour le moment. noShapesProduced: Aucune forme produite pour le moment.
shapesDisplayUnits: shapesDisplayUnits:
second: <shapes>  s second: <shapes>s
minute: <shapes>  m minute: <shapes>m
hour: <shapes>  h hour: <shapes>h
settingsMenu: settingsMenu:
playtime: Temps de jeu playtime: Temps de jeu
buildingsPlaced: Bâtiments buildingsPlaced: Bâtiments
@ -329,14 +320,14 @@ ingame:
waypoints: Balise waypoints: Balise
hub: Centre hub: Centre
description: Cliquez sur une balise pour vous y rendre, clic-droit pour description: Cliquez sur une balise pour vous y rendre, clic-droit pour
leffacer.<br><br>Appuyez sur <keybinding> pour créer une balise sur la supprimer.<br><br> Appuyez sur <keybinding> pour créer une balise
la vue actuelle, ou <strong>clic-droit</strong> pour en créer une sur la vue actuelle, ou <strong>clic-droit</strong> pour en créer
sur lendroit pointé. une sur lendroit pointé.
creationSuccessNotification: La balise a été créée. creationSuccessNotification: La balise a été créée.
shapeViewer: shapeViewer:
title: Calques title: Couches
empty: Vide empty: Vide
copyKey: Copier le raccourci de la forme copyKey: Copier le raccourci
interactiveTutorial: interactiveTutorial:
title: Tutoriel title: Tutoriel
hints: hints:
@ -344,38 +335,71 @@ ingame:
cercle</strong> pour lextraire! cercle</strong> pour lextraire!
1_2_conveyor: "Connectez lextracteur avec un <strong>convoyeur</strong> vers 1_2_conveyor: "Connectez lextracteur avec un <strong>convoyeur</strong> vers
votre centre!<br><br> Astuce : <strong>Cliquez et faites votre centre!<br><br> Astuce : <strong>Cliquez et faites
glisser</strong> le convoyeur avec votre souris!" glisser</strong> le convoyeur avec la souris!"
1_3_expand: "Ceci nest <strong>PAS</strong> un jeu incrémental et inactif! 1_3_expand: "Ceci nest <strong>PAS</strong> un jeu incrémental et inactif!
Construisez plus dextracteurs et de convoyeurs pour atteindre Construisez plus dextracteurs et de convoyeurs pour atteindre
plus vite votre but.<br><br>Astuce : Gardez <strong>MAJ</strong> plus vite votre but.<br><br> Astuce : Gardez
enfoncé pour placer plusieurs extracteurs, et utilisez <strong>MAJ</strong> enfoncé pour placer plusieurs extracteurs,
<strong>R</strong> pour les faire pivoter." et utilisez <strong>R</strong> pour les faire pivoter."
connectedMiners: connectedMiners:
one_miner: 1extracteur one_miner: 1 extracteur
n_miners: <amount>extracteurs n_miners: <amount>extracteurs
limited_items: Limité à <max_throughput> limited_items: Limité à <max_throughput>
watermark:
title: Version de démo
desc: Cliquez ici pour voir les avantages de la version Steam!
get_on_steam: Acheter sur Steam
standaloneAdvantages:
title: Obtenir la version complète
no_thanks: Non merci!
points:
levels:
title: 12 nouveaux niveaux
desc: Pour un total de 26 niveaux!
buildings:
title: 18 nouveaux bâtiments
desc: Automatisez entièrement votre usine!
savegames:
title: Sauvegardes 
desc: Autant que votre cœur le désire!
upgrades:
title: 20 niveaux damélioration
desc: Cette version de démonstration nen a que 5!
markers:
title: Balises ∞
desc: Ne vous perdez plus jamais dans votre usine!
wires:
title: Câbles
desc: Une toute nouvelle dimension!
darkmode:
title: Mode sombre
desc: Plus jamais mal aux yeux!
support:
title: Me soutenir
desc: Je le développe pendant mon temps libre!
shopUpgrades: shopUpgrades:
belt: belt:
name: Convoyeurs, distributeurs et tunnels name: Convoyeurs, distributeurs et tunnels
description: Vitesse ×<currentMult> → ×<newMult> description: Vitesse ×<currentMult> → ×<newMult>
miner: miner:
name: Extraction name: Extraction
description: Vitesse ×<currentMult> → ×<newMult> description: Vitesse ×<currentMult> → ×<newMult>
processors: processors:
name: Découpage, rotation et empilage name: Découpage, rotation et empilage
description: Vitesse ×<currentMult> → ×<newMult> description: Vitesse ×<currentMult> → ×<newMult>
painting: painting:
name: Mélange et peinture name: Mélange et peinture
description: Vitesse ×<currentMult> → ×<newMult> description: Vitesse ×<currentMult> → ×<newMult>
buildings: buildings:
hub: hub:
deliver: Livrez deliver: Livrez
toUnlock: pour débloquer toUnlock: pour débloquer
levelShortcut: NV levelShortcut: NV
endOfDemo: Fin de la démo
belt: belt:
default: default:
name: Convoyeur name: Convoyeur
description: Transporte les objets, maintenez et faites glisser pour en placer description: Transporte les objets. Maintenez et faites glisser pour en placer
plusieurs. plusieurs.
miner: miner:
default: default:
@ -391,7 +415,7 @@ buildings:
description: Permet de faire passer des ressources sous les bâtiments et les description: Permet de faire passer des ressources sous les bâtiments et les
convoyeurs. convoyeurs.
tier2: tier2:
name: Tunnel niveau II name: Tunnel niveau II
description: Permet de faire passer des ressources sous les bâtiments et les description: Permet de faire passer des ressources sous les bâtiments et les
convoyeurs. convoyeurs.
balancer: balancer:
@ -493,23 +517,26 @@ buildings:
lever: lever:
default: default:
name: Interrupteur name: Interrupteur
description: Peut être basculé pour émettre un signal booléen (1/0) dans le description: Peut être basculé pour émettre un signal booléen (1/0) sur le
calque de câblage, qui peut être utilisé pour contrôler par calque de câblage, qui peut être utilisé pour contrôler par
exemple un filtre à formes. exemple un filtre à formes.
logic_gate: logic_gate:
default: default:
name: Porte ET name: Porte ET
description: Émet un “1” booléen si les deux entrées sont vraies. description: Émet un “1” booléen si les deux entrées sont vraies (une forme,
couleur ou “1”).
not: not:
name: Porte INVERSEUR name: Porte INVERSEUR
description: Émet un “1” booléen si lentrée n'est pas vraie. description: Émet un “1” booléen si lentrée nest pas vraie (une forme, couleur
ou “1”).
xor: xor:
name: Porte OU-EXCLUSIF name: Porte OU-EXCLUSIF
description: Émet un “1” booléen si une des entrées est vraie, mais pas les description: Émet un “1” booléen si une des entrées est vraie (une forme,
deux. couleur ou “1”), mais pas les deux.
or: or:
name: Porte OU name: Porte OU
description: Émet un “1” booléen si une des entrées est vraie. description: Émet un “1” booléen si une des entrées est vraie (une forme,
couleur ou “1”).
transistor: transistor:
default: default:
name: Transistor name: Transistor
@ -532,7 +559,7 @@ buildings:
couleur, ou un booléen. couleur, ou un booléen.
reader: reader:
default: default:
name: Débitmètre name: Lecteur de débit
description: Mesure le débit dun convoyeur. Émet sur le calque de câblage (une description: Mesure le débit dun convoyeur. Émet sur le calque de câblage (une
fois déverrouillé) la dernière forme ou couleur mesurée. fois déverrouillé) la dernière forme ou couleur mesurée.
analyzer: analyzer:
@ -554,7 +581,7 @@ buildings:
description: Fait pivoter virtuellement la forme de 90 degrés vers la droite. description: Fait pivoter virtuellement la forme de 90 degrés vers la droite.
unstacker: unstacker:
name: Décombineur virtuel name: Décombineur virtuel
description: Renvoie la couche supérieur à droite, et les couches restantes à description: Renvoie la couche supérieure à droite, et les couches restantes à
gauche. gauche.
stacker: stacker:
name: Combineur virtuel name: Combineur virtuel
@ -562,29 +589,33 @@ buildings:
painter: painter:
name: Peintre virtuel name: Peintre virtuel
description: Peint virtuellement la forme du bas avec la couleur de droite. description: Peint virtuellement la forme du bas avec la couleur de droite.
item_producer:
default:
name: Générateur dobjet
description: Seulement disponible en mode bac à sable. Renvoie le signal du
calque de câblage sur le calque normal.
storyRewards: storyRewards:
reward_cutter_and_trash: reward_cutter_and_trash:
title: Découpage de formes title: Découpage de formes
desc: Vous venez de débloquer le <strong>découpeur</strong> — il coupe des desc: Vous avez débloqué le <strong>découpeur</strong>. Il coupe des formes en
formes en deux <strong>de haut en bas</strong> quelle que soit son deux <strong>de haut en bas</strong> quelle que soit son
orientation!<br><br> Assurez-vous de vous débarrasser des déchets, orientation!<br><br> Assurez-vous de vous débarrasser des déchets,
sinon <strong>gare au blocage</strong> — À cet effet, je mets à sinon <strong>gare au blocage</strong>. À cet effet, je mets à votre
votre disposition la poubelle, qui détruit tout ce que vous y disposition la poubelle, qui détruit tout ce que vous y mettez!
mettez!
reward_rotater: reward_rotater:
title: Rotation title: Rotation
desc: Le <strong>pivoteur</strong> a été débloqué! Il pivote les formes de desc: Le <strong>pivoteur</strong> a été débloqué! Il pivote les formes de 90
90 degrés vers la droite. degrés vers la droite.
reward_painter: reward_painter:
title: Peintre title: Peintre
desc: "Le <strong>peintre</strong> a été débloqué Extrayez des pigments de desc: "Le <strong>peintre</strong> a été débloqué. Extrayez des pigments de
couleur (comme vous le faites avec les formes) et combinez-les avec couleur (comme vous le faites avec les formes) et combinez-les avec
une forme dans un peintre pour les colorier!<br><br>PS : Si vous une forme dans un peintre pour les colorier!<br><br>PS : Si vous
êtes daltonien, il y a un <strong>mode daltonien</strong> êtes daltonien, il y a un <strong>mode daltonien</strong>
paramétrable dans les préférences!" paramétrable dans les préférences!"
reward_mixer: reward_mixer:
title: Mélangeur de couleurs title: Mélangeur de couleurs
desc: Le <strong>mélangeur</strong> a été débloqué Combinez deux couleurs en desc: Le <strong>mélangeur</strong> a été débloqué. Combinez deux couleurs en
utilisant <strong>la synthèse additive des couleurs</strong> avec ce utilisant <strong>la synthèse additive des couleurs</strong> avec ce
bâtiment! bâtiment!
reward_stacker: reward_stacker:
@ -596,19 +627,19 @@ storyRewards:
<strong>placée au-dessus</strong> de la forme de gauche. <strong>placée au-dessus</strong> de la forme de gauche.
reward_balancer: reward_balancer:
title: Répartiteur title: Répartiteur
desc: Le <strong>répartiteur</strong> multifonctionnel a été débloqué Il peut desc: Le <strong>répartiteur</strong> multifonctionnel a été débloqué. Il peut
être utilisé pour construire de plus grandes usines en être utilisé pour construire de plus grandes usines en
<strong>distribuant équitablement et rassemblant les formes</strong> <strong>distribuant équitablement et rassemblant les formes</strong>
entre plusieurs convoyeurs!<br><br> entre plusieurs convoyeurs!<br><br>
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
desc: Le <strong>tunnel</strong> a été débloqué Vous pouvez maintenant faire desc: Le <strong>tunnel</strong> a été débloqué. Vous pouvez maintenant faire
passer des formes sous les convoyeurs et les bâtiments! passer des formes sous les convoyeurs et les bâtiments!
reward_rotater_ccw: reward_rotater_ccw:
title: Pivoteur inversé title: Pivoteur inversé
desc: Vous avez débloqué une variante du <strong>pivoteur</strong> Elle permet desc: Vous avez débloqué une variante du <strong>pivoteur</strong>. Elle permet
de faire pivoter vers la gauche! Pour le construire, sélectionnez de faire pivoter vers la gauche! Pour le construire, sélectionnez
le pivoteur et <strong>appuyez sur 'T' pour alterner entre les le pivoteur et <strong>appuyez sur “T” pour alterner entre les
variantes</strong>! variantes</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Extracteur en série title: Extracteur en série
@ -623,107 +654,118 @@ storyRewards:
les deux variantes de tunnels! les deux variantes de tunnels!
reward_merger: reward_merger:
title: Fusionneur compact title: Fusionneur compact
desc: Vous avez déverrouillé une variante du <strong>fusionneur</strong> du desc: Vous avez débloqué une variante du <strong>répartiteur</strong>. Il
<strong>répartiteur</strong>. Il accepte deux entrées et les accepte deux entrées et les fusionne en un seul convoyeur!
fusionne en un seul convoyeur !
reward_splitter: reward_splitter:
title: Répartiteur compact title: Répartiteur compact
desc: Vous avez débloqué une variante compacte du <strong>répartiteur</strong> — desc: Vous avez débloqué une variante compacte du <strong>répartiteur</strong> —
Elle accepte deux entrées et les rassemble en une sortie! Il accepte une seule entrée et la divise en deux sorties!
reward_belt_reader: reward_belt_reader:
title: Lecteur de convoyeur title: Lecteur de débit
desc: Vous avez maintenant déverrouillé le <strong>lecteur de convoyeur</strong> desc: Vous avez débloqué le <strong>lecteur de débit</strong>! Il vous permet
! Il vous permet de mesurer le débit d'un convoyeur.<br><br> Et de mesurer le débit dun convoyeur.<br><br> Et attendez de
attendez de déverrouiller les câbles, alors cela deviendra vraiment déverrouiller les câbles, il sera alors très utile!
utile !
reward_cutter_quad: reward_cutter_quad:
title: Quadruple découpeur title: Quadruple découpeur
desc: Vous avez débloqué une variante du <strong>découpeur</strong> — Elle desc: Vous avez débloqué une variante du <strong>découpeur</strong> — Elle
permet de découper les formes en <strong>quatre parties</strong> à permet de découper les formes en <strong>quatre parties</strong>
la place de simplement deux! plutôt que seulement deux!
reward_painter_double: reward_painter_double:
title: Double peintre title: Double peintre
desc: Vous avez débloqué une variante du <strong>peintre</strong> — Elle desc: Vous avez débloqué une variante du <strong>peintre</strong> — Elle
fonctionne comme le peintre de base, mais elle permet de traiter fonctionne comme le peintre de base, mais elle permet de traiter
<strong>deux formes à la fois</strong> en ne consommant quune <strong>deux formes à la fois</strong> en ne consommant quune
couleur au lieu de deux! couleur au lieu de deux!
reward_painter_quad:
title: Quadruple peintre
desc: Vous avez débloqué une variante du <strong>peintre</strong> — Elle permet
de colorier chaque partie dune forme individuellement! Connectez
chaque emplacement que vous souhaitez peindre avec un <strong>signal
vrai</strong> (forme, élément ou booléen "1") sur le calque de
câblage !
reward_storage: reward_storage:
title: Tampon de stockage title: Tampon de stockage
desc: Vous avez débloqué le bâtiment de <strong>stockage</strong>. Il permet de desc: Vous avez débloqué le bâtiment de <strong>stockage</strong>. Il permet de
stocker des objets jusquà une certaine limite!<br><br> Il priorise stocker des objets jusquà une certaine limite!<br><br> Il priorise
la sortie gauche, vous pouvez donc également l'utiliser comme la sortie gauche, vous pouvez donc aussi lutiliser comme
<strong>porte de débordement</strong> ! <strong>drain de débordement</strong>!
reward_blueprints: reward_blueprints:
title: Patrons title: Patrons
desc: Vous pouvez maintenant <strong>copier et coller</strong> des parties de desc: Vous pouvez maintenant <strong>copier et coller</strong> des parties de
votre usine! Sélectionnez une zone (Appuyez sur CTRL, et votre usine! Sélectionnez une zone (Appuyez sur CTRL, et
sélectionnez avec votre souris), et appuyez sur 'C' pour la sélectionnez avec votre souris), et appuyez sur “C” pour la
copier.<br><br>Coller nest <strong>pas gratuit</strong>, vous devez copier.<br><br> Coller nest <strong>pas gratuit</strong>, vous
produire <strong>des formes de patrons</strong> pour vous le payer devez produire <strong>des formes de patrons</strong> pour vous le
(les mêmes que celles que vous venez de livrer). payer (les mêmes que celles que vous venez de livrer).
reward_rotater_180: reward_rotater_180:
title: Retourneur title: Retourneur
desc: Vous venez de déverrouiller le <strong>retourneur</strong> ! Il vous desc: Vous avez débloqué le <strong>retourneur</strong>! Il permet de faire
permet de faire pivoter une forme de 180 degrés (Surprise ! :D) pivoter une forme de 180 degrés (Surprise! :D)
reward_wires_filters_and_levers: reward_wires_painter_and_levers:
title: "Wires: Filtres & Interrupteurs" title: Câbles & quadruple peintre
desc: Vous venez de déverrouiller le <strong>calque de câblage</strong> ! Il desc: "Vous avez débloqué le <strong>calque de câblage</strong> : Cest un
s'agit d'un calque séparé au-dessus du calque normal qui introduit calque au-dessus du calque normal, qui introduit beaucoup de
de nombreuses nouvelles mécaniques !<br><br> Comme cela peut être un nouvelles mécaniques de jeu!<br><br> Pour commencer, je vous
peu impressionnant, j'ai ajouté un petit tutoriel. Assurez-vous débloque le <strong>quadruple peintre</strong>. Connectez les
d'avoir les <strong>tutoriels activés</strong> dans les paramètres ! entrées à peindre sur le calque de câblage.<br><br> Pour voir le
calque de câblage, appuyez sur <strong>E</strong>."
reward_filter:
title: Filtre à objets
desc: Vous avez débloqué le <strong>filtre à objets</strong>! Il dirige les
objets en haut ou à droite selon quils correspondent ou non au
signal provenant du calque de câblage.<br><br> Vous pouvez aussi
connecter un signal booléen (1/0) pour lactiver ou le désactiver
complètement.
reward_display: reward_display:
title: Afficheur title: Afficheur
desc: Vous avez déverrouillé l'<strong>afficheur</strong> ! Connectez-y un câble desc: "Vous avez débloqué l<strong>afficheur</strong>! Connectez-y un signal
signal pour visualiser une couleur, une forme ou un booléen ! sur le calque de câblage pour afficher une couleur, une forme ou un
booléen!<br><br> PS : Avez-vous remarqué que le lecteur de débit et
le stockage émettent le dernier objet vu? Essayez de le montrer sur
un écran!"
reward_constant_signal: reward_constant_signal:
title: Constante title: Constante
desc: Vous avez déverrouillé la <strong>constante</strong> basé sur le calque de desc: Vous avez débloqué lémetteur de <strong>constante</strong> sur le calque
câblage ! Elle est utile pour la connecter à des <strong>filtres de câblage! Vous pouvez par exemple la connecter à des
d'éléments</strong> par exemple.<br><br> La constante peut émettre <strong>filtres à objets</strong>.<br><br> La constante peut émettre
une <strong>forme</strong>, une <strong>couleur</strong> ou un une <strong>forme</strong>, une <strong>couleur</strong> ou un
<strong>booléen</strong> (1 / 0). <strong>booléen</strong> (1/0).
reward_logic_gates: reward_logic_gates:
title: Portes logiques title: Portes logiques
desc: Vous avez déverrouillé les <strong>portes logiques</strong> ! Vous n'êtes desc: "Vous avez débloqué les <strong>portes logiques</strong>! Vous nêtes pas
pas obligé d'être excité à ce sujet, mais c'est vraiment super cool obligé de trouver ça génial, mais en fait cest super cool!<br><br>
!<br><br> Avec ces portes, vous pouvez maintenant effectuer des Avec ces portes, vous pouvez maintenant faire les opérations
opérations booléennes ET, OU, OU-EXCLUSIF et INVERSEUR ! booléennes ET, OU, OU-EXCLUSIF et INVERSEUR!<br><br> Et la cerise
sur le gâteau : je vous donne aussi le
<strong>transistor</strong>!"
reward_virtual_processing: reward_virtual_processing:
title: Traitement virtuel title: Traitement virtuel
desc: Je viens de donner tout un tas de nouveaux bâtiments qui vous permettent desc: Je viens de vous donner tout un tas de nouveaux bâtiments qui vous
de <strong>simuler du traitement de forme</strong> !<br><br> Vous permettent de <strong>simuler le traitement des
pouvez maintenant simuler un découpeur, un pivoteur, un combineur et formes</strong>!<br><br> Vous pouvez maintenant simuler un
plus encore sur le calque de câblage !<br><br> Avec cela, vous avez découpeur, un pivoteur, un combineur et plus encore sur le calque de
maintenant trois options pour continuer le jeu :<br><br> - câblage!<br><br> Avec ça, vous avez trois possibilités pour
Construire une <strong>machine automatisée</strong> pour créer toute continuer le jeu :<br><br> - Construire une <strong>machine
forme possible demandée par le centre (c'est cool, je le jure automatisée</strong> pour fabriquer nimporte quelle forme demandée
!).<br><br> - Construire quelque chose de cool avec des par le centre (je conseille dessayer!).<br><br> - Construire
câbles.<br><br> - Continuer à jouer régulièrement. quelque chose de cool avec des câbles.<br><br> - Continuer à jouer
normalement.<br><br> Dans tous les cas, limportant cest de
samuser!
no_reward: no_reward:
title: Niveau suivant title: Niveau suivant
desc: "Ce niveau na pas de récompense mais le prochain, si!<br><br> PS : Ne desc: "Ce niveau na pas de récompense mais le prochain, si!<br><br> PS : Ne
détruisez pas votre usine actuelle Vous aurez besoin de détruisez pas votre usine actuelle. Vous aurez besoin de
<strong>toutes</strong> ces formes plus tard pour <strong>débloquer <strong>toutes</strong> ces formes plus tard pour <strong>débloquer
des améliorations</strong>." des améliorations</strong>."
no_reward_freeplay: no_reward_freeplay:
title: Niveau suivant title: Niveau suivant
desc: Bravo! À propos, plus de contenu est prévu pour la version complète! desc: Bravo!
reward_freeplay: reward_freeplay:
title: Mode libre title: Mode libre
desc: Vous y êtes arrivé! Vous avez débloqué le <strong>mode libre</strong>! desc: Vous y êtes arrivé! Vous avez débloqué le <strong>mode libre</strong>!
Cela veut dire que dorénavant, les formes sont générées Cela veut dire que dorénavant, les formes sont générées
<strong>aléatoirement</strong>!<br><br> Étant donné que le centre <strong>aléatoirement</strong>!<br><br> Comme le centre va demander
ne demandera que de faibles quantités, je recommande fortement de un gros <strong>débit</strong> à partir de maintenant, je recommande
construire une machine qui délivre automatiquement la forme demandée vivement de construire une machine qui fabrique automatiquement la
! forme demandée.<br><br> Le centre émet la forme demandée sur le
calque de câblage, donc vous navez quà lanalyser et lutiliser
pour configurer automatiquement votre usine.
reward_demo_end:
title: Fin de la démo
desc: Vous avez atteint la fin de la version de démo!
settings: settings:
title: Options title: Options
categories: categories:
@ -773,7 +815,7 @@ settings:
super_fast: Très rapide super_fast: Très rapide
movementSpeed: movementSpeed:
title: Vitesse de déplacement title: Vitesse de déplacement
description: Change la vitesse de déplacement de lécran avec les touches description: Change la vitesse de déplacement de lécran avec les touches du
clavier. clavier.
speeds: speeds:
super_slow: Très lent super_slow: Très lent
@ -814,11 +856,12 @@ settings:
dark: Sombre dark: Sombre
light: Clair light: Clair
refreshRate: refreshRate:
title: Fréquence de simulation title: Fréquence de rafraîchissement
description: Si vous avez un moniteur à fréquence élevée, changez le taux de description: Détermine la fréquence de simulation du jeu par seconde. En
rafraichissement pour que le jeu fonctionne correctement à cette général, un taux de rafraîchissement plus élevé se traduit par
haute fréquence. Ceci pourrait cependant diminuer vos IPS une meilleure précision mais une performance plus mauvaise. Si
(itérations par seconde) si votre ordinateur est trop lent. la fréquence de rafraîchissement est basse, les débits peuvent
ne pas être exacts.
alwaysMultiplace: alwaysMultiplace:
title: Placement multiple title: Placement multiple
description: Si activé, tous les bâtiments resteront sélectionnés tant que vous description: Si activé, tous les bâtiments resteront sélectionnés tant que vous
@ -826,7 +869,7 @@ settings:
en permanence. en permanence.
offerHints: offerHints:
title: Indices title: Indices
description: Affiche ou non le bouton 'Afficher un indice' dans le coin description: Affiche ou non le bouton “Afficher un indice” dans le coin
inférieur gauche. inférieur gauche.
enableTunnelSmartplace: enableTunnelSmartplace:
title: Tunnels intelligents title: Tunnels intelligents
@ -836,8 +879,8 @@ settings:
effacés. effacés.
vignette: vignette:
title: Effet de vignette title: Effet de vignette
description: Permet laffichage de leffet de vignette qui assombrit les coins description: Active leffet de vignette qui assombrit les coins de lécran pour
de lécran afin de rendre le texte plus facile à lire. rendre le texte plus facile à lire.
rotationByBuilding: rotationByBuilding:
title: Rotation par catégorie de bâtiment title: Rotation par catégorie de bâtiment
description: Chaque catégorie de bâtiment enregistre le sens de rotation que description: Chaque catégorie de bâtiment enregistre le sens de rotation que
@ -850,9 +893,9 @@ settings:
naffichant que les ratios. Si désactivé, montre une description naffichant que les ratios. Si désactivé, montre une description
et une image. et une image.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Désactive les avertissements pour Couper/Effacer title: Désactive les avertissements pour Couper/Supprimer
description: Désactive la boîte de dialogue qui saffiche lorsque vous vous description: Désactive la boîte de dialogue qui saffiche lorsque vous vous
apprêtez à couper/effacer plus de 100 entités. apprêtez à couper/supprimer plus de 100 entités.
lowQualityMapResources: lowQualityMapResources:
title: Ressources de la carte de plus basse qualité title: Ressources de la carte de plus basse qualité
description: Simplifie le rendu des ressources sur la carte lorsquelle est description: Simplifie le rendu des ressources sur la carte lorsquelle est
@ -874,12 +917,12 @@ settings:
performances. Rend le jeu très moche! performances. Rend le jeu très moche!
displayChunkBorders: displayChunkBorders:
title: Montrer les secteurs title: Montrer les secteurs
description: Le jeu est divisé en secteurs de 16×16 cases. Si ce réglage est description: Le jeu est divisé en secteurs de 16×16 cases. Si ce réglage est
activé, les limites de chaque secteur sont affichées. activé, les limites de chaque secteur sont affichées.
pickMinerOnPatch: pickMinerOnPatch:
title: Choisir lextracteur sur une mine de ressources title: Choisir lextracteur sur un gisement de ressources
description: Activé par défaut, sélectionne lextracteur si vous utilisez la description: Activé par défaut, sélectionne lextracteur si vous utilisez la
pipette en survolant une mine de ressources. pipette en survolant un gisement de ressources.
simplifiedBelts: simplifiedBelts:
title: Convoyeurs simplifiés (moche) title: Convoyeurs simplifiés (moche)
description: Désactive le rendu des formes et couleurs sur les convoyeurs sauf description: Désactive le rendu des formes et couleurs sur les convoyeurs sauf
@ -938,16 +981,16 @@ keybindings:
wire: Câble wire: Câble
constant_signal: Constante constant_signal: Constante
logic_gate: Porte logique logic_gate: Porte logique
lever: Interrupteur (normal) lever: Interrupteur
lever_wires: Interrupteur (à câbles)
filter: Filtre filter: Filtre
wire_tunnel: Tunnel à câble wire_tunnel: Tunnel à câble
display: Afficheur display: Afficheur
reader: Débitmètre reader: Lecteur de débit
virtual_processor: Découpeur virtuel virtual_processor: Découpeur virtuel
transistor: Transistor transistor: Transistor
analyzer: Analyseur de formes analyzer: Analyseur de formes
comparator: Comparateur comparator: Comparateur
item_producer: Générateur dobjets (bac à sable)
pipette: Pipette pipette: Pipette
rotateWhilePlacing: Pivoter rotateWhilePlacing: Pivoter
rotateInverseModifier: "Variante : Pivote à gauche" rotateInverseModifier: "Variante : Pivote à gauche"
@ -957,13 +1000,14 @@ keybindings:
cycleBuildings: Alterner entre les bâtiments cycleBuildings: Alterner entre les bâtiments
lockBeltDirection: Utiliser le planificateur de convoyeurs lockBeltDirection: Utiliser le planificateur de convoyeurs
switchDirectionLockSide: "Planificateur : changer de côté" switchDirectionLockSide: "Planificateur : changer de côté"
copyWireValue: "Câble : Copier la valeur sous le curseur"
massSelectStart: Cliquez et glissez pour commencer massSelectStart: Cliquez et glissez pour commencer
massSelectSelectMultiple: Sélectionner plusieurs zones massSelectSelectMultiple: Sélectionner plusieurs zones
massSelectCopy: Copier la sélection massSelectCopy: Copier la sélection
massSelectCut: Couper la sélection massSelectCut: Couper la sélection
placementDisableAutoOrientation: Désactiver lorientation automatique placementDisableAutoOrientation: Désactiver lorientation automatique
placeMultiple: Rester en mode placement placeMultiple: Rester en mode placement
placeInverse: Inverser le mode dorientation automatique placeInverse: Inverser lorientation des convoyeurs
about: about:
title: À propos de ce jeu title: À propos de ce jeu
body: >- body: >-
@ -989,29 +1033,28 @@ demo:
exportingBase: Exporter une image de toute la base exportingBase: Exporter une image de toute la base
settingNotAvailable: Indisponible dans la démo. settingNotAvailable: Indisponible dans la démo.
tips: tips:
- Le centre accepte les entrées de toutes sortes, pas seulement la forme - Le centre nimporte quelle forme, pas seulement la forme actuelle!
actuelle ! - Assurez-vous que vos usines soient modulaires, cela paiera!
- Assurez-vous que vos usines soient modulaires, cela paiera ! - Ne construisez pas trop près du centre, ou ce sera un énorme chaos!
- Ne construisez pas trop près du centre, ou ce sera un énorme chaos ! - Si lempilement ne fonctionne pas, essayez déchanger les entrées.
- Si l'empilement ne fonctionne pas, essayez d'échanger les entrées.
- Vous pouvez changer le sens du planificateur de convoyeur en appuyant sur - Vous pouvez changer le sens du planificateur de convoyeur en appuyant sur
<b>R</b>. <b>R</b>.
- Maintenir <b>CTRL</b> permet de déposer les convoyeurs sans - Maintenir <b>CTRL</b> permet de déposer les convoyeurs sans
auto-orientation. auto-orientation.
- Les ratios restent les mêmes, tant que toutes les améliorations sont de - Les ratios restent les mêmes, tant que toutes les améliorations sont au
même niveau. même niveau.
- L'exécution en série est plus efficace qu'en parallèle. - Lexécution en série est plus efficace quen parallèle.
- Vous débloquerez plus de variantes de bâtiments plus tard dans le jeu ! - Vous débloquerez plus de variantes de bâtiments plus tard dans le jeu!
- Vous pouvez utiliser <b>T</b> pour basculer entre différentes variantes. - Vous pouvez utiliser <b>T</b> pour basculer entre différentes variantes.
- La symétrie est la clé ! - La symétrie est la clé!
- Vous pouvez entrelacer différents niveaux de tunnels. - Vous pouvez entrelacer différents niveaux de tunnels.
- Essayez de construire des usines compactes, cela paiera ! - Essayez de construire des usines compactes, cela paiera!
- Le peintre a une variante en miroir que vous pouvez sélectionner avec - Le peintre a une variante en miroir que vous pouvez sélectionner avec
<b>T</b> <b>T</b>
- Avoir les bons ratios de construction maximisera l'efficacité. - Avoir les bons ratios de construction maximisera lefficacité.
- Au niveau maximum, 5 extracteurs rempliront un seul convoyeur. - Au niveau maximum, 5 extracteurs rempliront un seul convoyeur.
- N'oubliez pas les tunnels ! - Noubliez pas les tunnels!
- Vous n'avez pas besoin de répartir les objets uniformément pour une - Vous navez pas besoin de répartir les objets uniformément pour une
efficacité totale. efficacité totale.
- Maintenir <b>MAJ</b> activera le planificateur de convoyeur, vous - Maintenir <b>MAJ</b> activera le planificateur de convoyeur, vous
permettant de placer facilement de longues lignes de convoyeur. permettant de placer facilement de longues lignes de convoyeur.
@ -1019,51 +1062,52 @@ tips:
orientation. orientation.
- Pour obtenir du blanc, mélangez les trois couleurs. - Pour obtenir du blanc, mélangez les trois couleurs.
- Le stockage priorise la première sortie. - Le stockage priorise la première sortie.
- Investissez du temps pour créer des designs reproductibles, ça vaut le - Investissez du temps pour créer des patrons reproductibles, ça vaut le
coup ! coup!
- Maintenir <b>CTRL</b> permet de placer plusieurs bâtiments. - Maintenir <b>CTRL</b> permet de placer plusieurs bâtiments.
- Vous pouvez maintenir <b>ALT</b> pour inverser la direction des ceintures - Vous pouvez maintenir <b>ALT</b> pour inverser la direction des convoyeurs
placées. placés.
- L'efficacité est la clé ! - Lefficacité est la clé!
- Les patchs de forme plus éloignés du moyeu sont plus complexes. - Les gisements plus éloignés du centre produisent des formes plus complexes.
- Les machines ont une vitesse limitée, divisez-les pour une efficacité - Les machines ont une vitesse limitée, divisez-les pour une efficacité
maximale. maximale.
- Utilisez des équilibreurs pour maximiser votre efficacité. - Utilisez des répartiteurs pour maximiser votre efficacité.
- L'organisation est importante. Essayez de ne pas trop traverser les - Lorganisation est importante. Essayez de ne pas trop croiser les
convoyeurs. convoyeurs.
- Planifiez à l'avance, ou ce sera un énorme chaos ! - Planifiez à lavance, ou ce sera un énorme chaos!
- Ne supprimez pas vos anciennes usines ! Vous en aurez besoin pour - Ne supprimez pas vos anciennes usines! Vous en aurez besoin pour
débloquer des améliorations. débloquer des améliorations.
- Essayez de battre le niveau 18 par vous-même avant de demander de l'aide ! - Essayez de réussir le niveau 18 par vous-même avant de demander de laide!
- Ne compliquez pas les choses, essayez de rester simple et vous irez loin. - Ne compliquez pas les choses, essayez de rester simple et vous irez loin.
- Vous devrez peut-être réutiliser les usines plus tard dans le jeu. - Vous devrez peut-être réutiliser les usines plus tard dans le jeu.
Planifiez vos usines pour qu'elles soient réutilisables. Planifiez vos usines pour quelles soient réutilisables.
- Parfois, vous pouvez trouver une forme nécessaire sur la carte sans la - Parfois, vous pouvez trouver une forme nécessaire sur la carte sans la
créer avec des combineurs. créer avec des combineurs.
- Les formes en moulins à vent complet ne peuvent jamais apparaître - Les formes en hélice complètes ne peuvent jamais apparaître
naturellement. naturellement.
- Colorez vos formes avant de les découper pour une efficacité maximale. - Colorez vos formes avant de les découper pour une efficacité maximale.
- Avec les modules, l'espace n'est qu'une perception; une préoccupation pour - Avec les modules, lespace nest quune perception; une préoccupation
les hommes mortels. pour les hommes mortels.
- Créez une usine de patrons distincte. Ils sont importants pour les modules. - Créez une usine de patrons à part. Ils sont importants pour les modules.
- Regardez de plus près le mélangeur de couleur et vous aurez la réponse à - Regardez de plus près le mélangeur de couleur et vous aurez la réponse à
vos questions. vos questions.
- Utilisez <b>CTRL</b> + clic pour sélectionner une zone. - Utilisez <b>CTRL</b>+clic pour sélectionner une zone.
- Construire trop près du centre peut gêner les projets futurs. - Construire trop près du centre peut gêner les projets futurs.
- L'icône d'épingle à côté de chaque forme dans la liste d'améliorations - Licône dépingle à côté de chaque forme dans la liste daméliorations
l'épingle à l'écran. épingle la forme à lécran.
- Mélangez toutes les couleurs primaires ensemble pour faire du blanc ! - Mélangez toutes les couleurs primaires ensemble pour faire du blanc!
- Vous avez une carte infinie, n'encombrez pas votre usine, développez-vous ! - Vous avez une carte infinie, nencombrez pas votre usine, développez-vous!
- Essayez également Factorio ! C'est mon jeu préféré. - Essayez aussi Factorio! Cest mon jeu préféré.
- Le découpeur quadruple coupe dans le sens des aiguilles d'une montre à - Le découpeur quadruple coupe dans le sens des aiguilles dune montre à
partir du coin supérieur droit ! partir du coin supérieur droit!
- Vous pouvez télécharger vos sauvegardes dans le menu principal ! - Vous pouvez télécharger vos sauvegardes dans le menu principal!
- Ce jeu a beaucoup de raccourcis clavier utiles ! Assurez-vous de consulter - Ce jeu a beaucoup de raccourcis clavier utiles! Pensez à regarder la page
la page des paramètres. des paramètres.
- Ce jeu a beaucoup de paramètres, assurez-vous de les vérifier ! - Ce jeu a beaucoup de paramètres, pensez à les regarder!
- Le marqueur de votre centre a une petite boussole pour indiquer sa - Le marqueur de votre centre a une petite boussole pour indiquer sa
direction ! direction!
- Pour nettoyer les convoyeurs, coupez la zone puis collez-la au même - Pour nettoyer les convoyeurs, coupez la zone puis collez-la au même
endroit. endroit.
- Press F4 to show your FPS and Tick Rate. - Appuyez sur F4 pour voir vos IPS et votre fréquence de rafraîchissement.
- Press F4 twice to show the tile of your mouse and camera. - Appuyez deux fois sur F4 pour voir les coordonnées.
- Cliquez sur une forme épinglée à gauche pour lenlever.

Some files were not shown because too many files have changed in this diff Show More