Merge pull request #7 from tobspr/master

Update
This commit is contained in:
Killgaru 2020-06-16 13:13:29 +03:00 committed by GitHub
commit 2f829a4883
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
69 changed files with 2972 additions and 1499 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:6463b33b2cae50d1ecb11f0a845f06633aff331a5c2c0998d9eb93e40ad576b1 oid sha256:7d05e340acb18f7b6b6f05fa7536f14179cda54a9ead0923fbb8e39c68da148c
size 636254 size 703229

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
artwork/reddit/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:47b6aca7fe07f4628b041f32ce813a840793cfdce8ffa27c7ff4562858ac05f9 oid sha256:92f3784f7a51e846da6f6fad53bc07d9525188a5133bab1a793eb6040a4c4341
size 194245 size 185127

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e0cd2d82917e470202d38d32277f7519ccfd1821cb21791266539ddf07486d1b
size 7314327

BIN
electron/favicon.icns Normal file

Binary file not shown.

View File

@ -1,60 +1,25 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
<path style="fill:#C8414B;" d="M400,0H112C50.144,0,0,50.144,0,112v288c0,61.856,50.144,112,112,112h288 c61.856,0,112-50.144,112-112V112C512,50.144,461.856,0,400,0z"/> viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<rect y="106.63" style="fill:#FFD250;" width="512" height="298.74"/> <g transform="translate(-1)">
<path style="fill:#C8414B;" d="M223.091,256.412l8.255-33.665c0.76-3.1-1.843-6.041-5.347-6.041h-5.815 c-3.504,0-6.108,2.941-5.347,6.041L223.091,256.412z"/> <path style="fill:#46B29D;" d="M328.61,98.163h0.088c1.971-0.012,3.923,0.379,5.738,1.148l71.683,29.484
<rect x="213.35" y="238.76" style="fill:#F5F5F5;" width="19.473" height="75"/> c4.07,1.723,7.249,5.049,8.787,9.193c1.537,4.144,1.297,8.739-0.665,12.699l-11.652,24.099
<rect x="208.49" y="229.94" style="fill:#FAB446;" width="29.21" height="8.823"/> c-5.942,12.252-10.388,25.174-13.242,38.488l-12.624,58.086c-1.107,5.424-5.003,9.857-10.24,11.652l-11.653,3.972
<g> c-5.094,1.809-8.94,6.053-10.241,11.299l-6.885,28.513c-0.25,1.103-0.635,2.17-1.148,3.178l-5.473,11.211
<rect x="189.01" y="256.41" style="fill:#C8414B;" width="48.681" height="8.823"/> c-2.003,4.139-5.709,7.201-10.152,8.386l-18.715,4.855c-7.018,1.83-11.893,8.196-11.829,15.448v11.211
<polygon style="fill:#C8414B;" points="237.696,291.706 208.487,282.882 208.487,274.059 237.696,282.882 "/> c-0.023,3.42-1.102,6.75-3.09,9.534l-19.51,26.748c-3.683,5.056-5.967,10.993-6.621,17.214l-6.091,56.585
<path style="fill:#C8414B;" d="M77.047,256.412l8.255-33.665c0.76-3.1-1.843-6.041-5.347-6.041H74.14 c-3.504,0-6.108,2.941-5.347,6.041L77.047,256.412z"/> c-0.638,5.71-3.3,11.002-7.503,14.919c-4.172,3.812-9.621,5.922-15.272,5.914c-10.207-0.042-19.147-6.854-21.896-16.684
</g> L187.45,416.75c-0.269-0.922-0.447-1.868-0.53-2.825l-17.656-163.84c-0.585-5.323-3.801-9.997-8.563-12.447l-21.629-11.211
<path style="fill:#F5F5F5;" d="M111.124,229.941c-5.377,0-9.736,3.95-9.736,8.824v57.353c0,10.721,11.041,30.882,48.682,30.882 s48.682-20.162,48.682-30.882v-57.353c0-4.873-4.359-8.824-9.736-8.824L111.124,229.941L111.124,229.941z"/> c-5.391-2.781-9.662-7.331-12.094-12.888l-26.661-61.793c-4.326-9.941-2.235-21.509,5.297-29.308l10.064-10.417
<g> c3.583-3.658,5.192-8.813,4.326-13.859l-4.414-27.63c-2.316-13.91,2.107-28.094,11.918-38.223l18.715-19.244
<path style="fill:#C8414B;" d="M150.069,274.059h-48.682V239.21c0-5.119,4.15-9.269,9.269-9.269h39.413V274.059z"/> C154.266,4.72,165.356,0.003,176.945,0h29.662c11.59,0.003,22.679,4.72,30.721,13.065l16.244,16.684L328.61,98.163z"/>
<path style="fill:#C8414B;" d="M150.069,274.059h48.682v20.946c0,12.797-10.374,23.172-23.172,23.172h-2.338 c-12.797,0-23.172-10.374-23.172-23.172L150.069,274.059L150.069,274.059z"/> <path style="fill:#BDC3C7;" d="M283.478,97.103h35.31V220.69c0,9.751-7.904,17.655-17.655,17.655l0,0
</g> c-9.751,0-17.655-7.904-17.655-17.655V97.103z"/>
<path style="fill:#FAB446;" d="M101.387,274.059h48.682v20.946c0,12.797-10.374,23.172-23.172,23.172h-2.338 c-12.797,0-23.172-10.374-23.172-23.172C101.387,295.005,101.387,274.059,101.387,274.059z"/> <circle style="fill:#CC4B4C;" cx="301.133" cy="52.966" r="52.966"/>
<g> <path style="fill:#FB7B76;" d="M283.478,61.793c-4.875,0-8.828-3.952-8.828-8.828c0.016-14.619,11.863-26.467,26.483-26.483
<path style="fill:#C8414B;" d="M140.333,313.665v-39.606h-9.736v43.673C134.217,317.065,137.49,315.612,140.333,313.665z"/> c4.875,0,8.828,3.952,8.828,8.828s-3.952,8.828-8.828,8.828c-4.873,0.006-8.821,3.955-8.828,8.828
<path style="fill:#C8414B;" d="M120.86,317.732v-43.673h-9.736v39.606C113.967,315.612,117.239,317.065,120.86,317.732z"/> C292.305,57.841,288.353,61.793,283.478,61.793z"/>
</g>
<rect x="111.12" y="256.41" style="fill:#FFB441;" width="29.21" height="8.823"/>
<g>
<rect x="111.12" y="238.76" style="fill:#FAB446;" width="29.21" height="8.824"/>
<rect x="115.99" y="244.01" style="fill:#FAB446;" width="19.473" height="15.985"/>
</g>
<rect x="67.31" y="238.76" style="fill:#F5F5F5;" width="19.473" height="75"/>
<g>
<rect x="62.44" y="309.35" style="fill:#FAB446;" width="29.21" height="8.823"/>
<rect x="62.44" y="229.94" style="fill:#FAB446;" width="29.21" height="8.823"/>
</g>
<rect x="57.57" y="318.18" style="fill:#5064AA;" width="38.945" height="8.823"/>
<rect x="213.35" y="309.35" style="fill:#FAB446;" width="29.21" height="8.823"/>
<rect x="203.62" y="318.18" style="fill:#5064AA;" width="38.945" height="8.823"/>
<rect x="120.86" y="221.12" style="fill:#FAB446;" width="58.42" height="8.823"/>
<rect x="145.2" y="194.65" style="fill:#FFB441;" width="9.736" height="26.471"/>
<g>
<path style="fill:#F5F5F5;" d="M140.333,207.882c-8.053,0-14.604-5.937-14.604-13.235s6.551-13.235,14.604-13.235 c8.053,0,14.604,5.937,14.604,13.235S148.386,207.882,140.333,207.882z M140.333,190.235c-2.686,0-4.868,1.978-4.868,4.412 s2.182,4.412,4.868,4.412c2.686,0,4.868-1.978,4.868-4.412C145.201,192.213,143.019,190.235,140.333,190.235z"/>
<path style="fill:#F5F5F5;" d="M159.805,207.882c-8.053,0-14.604-5.937-14.604-13.235s6.551-13.235,14.604-13.235 c8.053,0,14.604,5.937,14.604,13.235S167.859,207.882,159.805,207.882z M159.805,190.235c-2.686,0-4.868,1.978-4.868,4.412 s2.182,4.412,4.868,4.412c2.686,0,4.868-1.978,4.868-4.412C164.673,192.213,162.491,190.235,159.805,190.235z"/>
<path style="fill:#F5F5F5;" d="M179.278,216.706c-8.053,0-14.604-5.937-14.604-13.235s6.551-13.235,14.604-13.235 c8.053,0,14.605,5.937,14.605,13.235S187.331,216.706,179.278,216.706z M179.278,199.059c-2.686,0-4.868,1.978-4.868,4.412 s2.182,4.412,4.868,4.412c2.686,0,4.868-1.978,4.868-4.412C184.146,201.036,181.964,199.059,179.278,199.059z"/>
<path style="fill:#F5F5F5;" d="M120.86,216.706c-8.053,0-14.604-5.937-14.604-13.235s6.551-13.235,14.604-13.235 s14.604,5.937,14.604,13.235S128.913,216.706,120.86,216.706z M120.86,199.059c-2.686,0-4.868,1.978-4.868,4.412 s2.182,4.412,4.868,4.412s4.868-1.978,4.868-4.412C125.728,201.036,123.546,199.059,120.86,199.059z"/>
</g>
<path style="fill:#FAB446;" d="M179.278,291.706v4.412c0,2.433-2.184,4.412-4.868,4.412c-2.684,0-4.868-1.979-4.868-4.412v-4.412 H179.278 M189.014,282.882h-29.209v13.235c0,7.298,6.552,13.235,14.604,13.235c8.053,0,14.605-5.938,14.605-13.235V282.882 L189.014,282.882z"/>
<path style="fill:#FFA0D2;" d="M174.877,265.235h-0.935c-5.119,0-9.269-4.15-9.269-9.269v-7.933c0-5.119,4.15-9.269,9.269-9.269 h0.935c5.119,0,9.269,4.15,9.269,9.269v7.933C184.146,261.086,179.996,265.235,174.877,265.235z"/>
<ellipse style="fill:#5064AA;" cx="150.07" cy="274.06" rx="14.604" ry="13.235"/>
<rect x="145.2" y="177" style="fill:#FAB446;" width="9.736" height="26.471"/>
<path style="fill:#C8414B;" d="M120.86,221.118l-9.736-8.824l5.703-5.169c8.816-7.99,20.774-12.478,33.242-12.478l0,0 c12.468,0,24.426,4.489,33.242,12.478l5.703,5.169l-9.736,8.824H120.86z"/>
<g>
<ellipse style="fill:#FFD250;" cx="150.07" cy="212.29" rx="4.868" ry="4.412"/>
<ellipse style="fill:#FFD250;" cx="130.6" cy="212.29" rx="4.868" ry="4.412"/>
<ellipse style="fill:#FFD250;" cx="169.54" cy="212.29" rx="4.868" ry="4.412"/>
</g>
<g>
<rect x="62.44" y="256.41" style="fill:#C8414B;" width="48.681" height="8.823"/>
<polygon style="fill:#C8414B;" points="62.442,291.706 91.651,282.882 91.651,274.059 62.442,282.882 "/>
</g> </g>
<g> <g>
</g> </g>

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

41
res/ui/languages/no.svg Normal file
View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<path style="fill:#FF4B55;" d="M400,0H112C50.144,0,0,50.144,0,112v288c0,61.856,50.144,112,112,112h288
c61.856,0,112-50.144,112-112V112C512,50.144,461.856,0,400,0z"/>
<polygon style="fill:#F5F5F5;" points="512,211.862 229.517,211.862 229.517,0 141.241,0 141.241,211.862 0,211.862 0,300.138
141.241,300.138 141.241,512 229.517,512 229.517,300.138 512,300.138 "/>
<polygon style="fill:#41479B;" points="512,229.517 211.862,229.517 211.862,0 158.897,0 158.897,229.517 0,229.517 0,282.483
158.897,282.483 158.897,512 211.862,512 211.862,282.483 512,282.483 "/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<path style="fill:#FF4B55;" d="M400,0H185.379v512H400c61.856,0,112-50.144,112-112V112C512,50.144,461.856,0,400,0z"/>
<path style="fill:#73AF00;" d="M112,0C50.144,0,0,50.144,0,112v288c0,61.856,50.144,112,112,112h73.379V0H112z"/>
<circle style="fill:#FFE15A;" cx="185.45" cy="256" r="112.38"/>
<path style="fill:#FF4B55;" d="M222.941,218.508v49.99c0,20.673-16.819,37.492-37.492,37.492s-37.492-16.819-37.492-37.492v-49.99
L222.941,218.508 M235.438,193.513h-99.98c-6.902,0-12.497,5.595-12.497,12.497v62.487c0,34.511,27.977,62.487,62.487,62.487
s62.487-27.977,62.487-62.487V206.01C247.936,199.108,242.34,193.513,235.438,193.513L235.438,193.513z"/>
<path style="fill:#F5F5F5;" d="M211.931,229.517v35.31c0,14.603-11.88,26.483-26.483,26.483s-26.483-11.88-26.483-26.483v-35.31
H211.931"/>
<g>
<circle style="fill:#FFE15A;" cx="135.36" cy="206.01" r="6.249"/>
<circle style="fill:#FFE15A;" cx="235.34" cy="206.01" r="6.249"/>
<circle style="fill:#FFE15A;" cx="135.36" cy="256" r="6.249"/>
<circle style="fill:#FFE15A;" cx="235.34" cy="256" r="6.249"/>
<circle style="fill:#FFE15A;" cx="185.35" cy="206.01" r="6.249"/>
<circle style="fill:#FFE15A;" cx="222.87" cy="302.08" r="6.249"/>
<circle style="fill:#FFE15A;" cx="148.57" cy="302.08" r="6.249"/>
</g>
<g>
<path style="fill:#41479B;" d="M193.52,252.832v10.762c0,4.451-3.621,8.071-8.071,8.071s-8.071-3.621-8.071-8.071v-10.762H193.52"
/>
<path style="fill:#41479B;" d="M193.52,227.317v10.762c0,4.451-3.621,8.071-8.071,8.071s-8.071-3.621-8.071-8.071v-10.762H193.52"
/>
<path style="fill:#41479B;" d="M193.52,278.608v10.762c0,4.451-3.621,8.071-8.071,8.071s-8.071-3.621-8.071-8.071v-10.762H193.52"
/>
<path style="fill:#41479B;" d="M215.26,252.832v10.762c0,4.451-3.621,8.071-8.071,8.071s-8.071-3.621-8.071-8.071v-10.762H215.26"
/>
<path style="fill:#41479B;" d="M171.779,252.832v10.762c0,4.451-3.621,8.071-8.071,8.071s-8.071-3.621-8.071-8.071v-10.762H171.779
"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -2,7 +2,7 @@
"sprites/belt/forward_0.png": "sprites/belt/forward_0.png":
{ {
"frame": {"x":204,"y":26,"w":13,"h":13}, "frame": {"x":95,"y":372,"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},
@ -10,7 +10,7 @@
}, },
"sprites/belt/forward_1.png": "sprites/belt/forward_1.png":
{ {
"frame": {"x":221,"y":26,"w":13,"h":13}, "frame": {"x":112,"y":372,"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},
@ -18,7 +18,7 @@
}, },
"sprites/belt/forward_2.png": "sprites/belt/forward_2.png":
{ {
"frame": {"x":238,"y":26,"w":13,"h":13}, "frame": {"x":26,"y":356,"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},
@ -26,7 +26,7 @@
}, },
"sprites/belt/forward_3.png": "sprites/belt/forward_3.png":
{ {
"frame": {"x":255,"y":26,"w":13,"h":13}, "frame": {"x":43,"y":356,"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},
@ -34,7 +34,7 @@
}, },
"sprites/belt/forward_4.png": "sprites/belt/forward_4.png":
{ {
"frame": {"x":272,"y":26,"w":13,"h":13}, "frame": {"x":26,"y":373,"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},
@ -42,7 +42,7 @@
}, },
"sprites/belt/forward_5.png": "sprites/belt/forward_5.png":
{ {
"frame": {"x":245,"y":112,"w":13,"h":13}, "frame": {"x":3,"y":375,"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},
@ -50,7 +50,7 @@
}, },
"sprites/belt/left_0.png": "sprites/belt/left_0.png":
{ {
"frame": {"x":262,"y":112,"w":13,"h":13}, "frame": {"x":43,"y":373,"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},
@ -58,7 +58,7 @@
}, },
"sprites/belt/left_1.png": "sprites/belt/left_1.png":
{ {
"frame": {"x":279,"y":112,"w":13,"h":13}, "frame": {"x":60,"y":375,"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},
@ -66,7 +66,7 @@
}, },
"sprites/belt/left_2.png": "sprites/belt/left_2.png":
{ {
"frame": {"x":296,"y":112,"w":13,"h":13}, "frame": {"x":77,"y":375,"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},
@ -74,7 +74,7 @@
}, },
"sprites/belt/left_3.png": "sprites/belt/left_3.png":
{ {
"frame": {"x":313,"y":112,"w":13,"h":13}, "frame": {"x":94,"y":389,"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},
@ -82,7 +82,7 @@
}, },
"sprites/belt/left_4.png": "sprites/belt/left_4.png":
{ {
"frame": {"x":289,"y":26,"w":13,"h":13}, "frame": {"x":111,"y":389,"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},
@ -90,7 +90,7 @@
}, },
"sprites/belt/left_5.png": "sprites/belt/left_5.png":
{ {
"frame": {"x":306,"y":26,"w":13,"h":13}, "frame": {"x":20,"y":390,"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},
@ -98,7 +98,7 @@
}, },
"sprites/belt/right_0.png": "sprites/belt/right_0.png":
{ {
"frame": {"x":330,"y":112,"w":13,"h":13}, "frame": {"x":3,"y":392,"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},
@ -106,7 +106,7 @@
}, },
"sprites/belt/right_1.png": "sprites/belt/right_1.png":
{ {
"frame": {"x":347,"y":112,"w":13,"h":13}, "frame": {"x":37,"y":390,"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},
@ -114,7 +114,7 @@
}, },
"sprites/belt/right_2.png": "sprites/belt/right_2.png":
{ {
"frame": {"x":323,"y":26,"w":13,"h":13}, "frame": {"x":54,"y":392,"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},
@ -122,7 +122,7 @@
}, },
"sprites/belt/right_3.png": "sprites/belt/right_3.png":
{ {
"frame": {"x":364,"y":111,"w":13,"h":13}, "frame": {"x":71,"y":392,"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},
@ -130,7 +130,7 @@
}, },
"sprites/belt/right_4.png": "sprites/belt/right_4.png":
{ {
"frame": {"x":381,"y":111,"w":13,"h":13}, "frame": {"x":20,"y":407,"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},
@ -138,7 +138,7 @@
}, },
"sprites/belt/right_5.png": "sprites/belt/right_5.png":
{ {
"frame": {"x":340,"y":25,"w":13,"h":13}, "frame": {"x":3,"y":409,"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},
@ -146,7 +146,7 @@
}, },
"sprites/blueprints/belt_left.png": "sprites/blueprints/belt_left.png":
{ {
"frame": {"x":357,"y":23,"w":13,"h":13}, "frame": {"x":37,"y":407,"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},
@ -154,7 +154,7 @@
}, },
"sprites/blueprints/belt_right.png": "sprites/blueprints/belt_right.png":
{ {
"frame": {"x":374,"y":23,"w":13,"h":13}, "frame": {"x":88,"y":406,"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},
@ -162,7 +162,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":391,"y":23,"w":13,"h":13}, "frame": {"x":105,"y":406,"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},
@ -170,7 +170,7 @@
}, },
"sprites/blueprints/cutter-quad.png": "sprites/blueprints/cutter-quad.png":
{ {
"frame": {"x":82,"y":3,"w":76,"h":19}, "frame": {"x":3,"y":49,"w":76,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":76,"h":19}, "spriteSourceSize": {"x":1,"y":0,"w":76,"h":19},
@ -178,7 +178,7 @@
}, },
"sprites/blueprints/cutter.png": "sprites/blueprints/cutter.png":
{ {
"frame": {"x":207,"y":43,"w":36,"h":19}, "frame": {"x":3,"y":221,"w":36,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19},
@ -186,7 +186,7 @@
}, },
"sprites/blueprints/miner-chainable.png": "sprites/blueprints/miner-chainable.png":
{ {
"frame": {"x":285,"y":3,"w":19,"h":19}, "frame": {"x":44,"y":175,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -194,7 +194,7 @@
}, },
"sprites/blueprints/miner.png": "sprites/blueprints/miner.png":
{ {
"frame": {"x":245,"y":89,"w":19,"h":19}, "frame": {"x":44,"y":198,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -202,7 +202,7 @@
}, },
"sprites/blueprints/mixer.png": "sprites/blueprints/mixer.png":
{ {
"frame": {"x":166,"y":45,"w":37,"h":19}, "frame": {"x":3,"y":175,"w":37,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19},
@ -210,15 +210,23 @@
}, },
"sprites/blueprints/painter-double.png": "sprites/blueprints/painter-double.png":
{ {
"frame": {"x":84,"y":82,"w":38,"h":38}, "frame": {"x":84,"y":3,"w":38,"h":38},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38},
"sourceSize": {"w":38,"h":38} "sourceSize": {"w":38,"h":38}
}, },
"sprites/blueprints/painter-mirrored.png":
{
"frame": {"x":83,"y":87,"w":38,"h":19},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":38,"h":19},
"sourceSize": {"w":38,"h":19}
},
"sprites/blueprints/painter-quad.png": "sprites/blueprints/painter-quad.png":
{ {
"frame": {"x":3,"y":83,"w":77,"h":19}, "frame": {"x":3,"y":3,"w":77,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":77,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":77,"h":19},
@ -226,7 +234,7 @@
}, },
"sprites/blueprints/painter.png": "sprites/blueprints/painter.png":
{ {
"frame": {"x":82,"y":49,"w":38,"h":19}, "frame": {"x":82,"y":110,"w":38,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19},
@ -234,7 +242,7 @@
}, },
"sprites/blueprints/rotater-ccw.png": "sprites/blueprints/rotater-ccw.png":
{ {
"frame": {"x":268,"y":89,"w":19,"h":19}, "frame": {"x":43,"y":221,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -242,7 +250,7 @@
}, },
"sprites/blueprints/rotater.png": "sprites/blueprints/rotater.png":
{ {
"frame": {"x":285,"y":66,"w":19,"h":19}, "frame": {"x":106,"y":225,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -250,7 +258,7 @@
}, },
"sprites/blueprints/splitter-compact-inverse.png": "sprites/blueprints/splitter-compact-inverse.png":
{ {
"frame": {"x":291,"y":89,"w":19,"h":19}, "frame": {"x":43,"y":244,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -258,7 +266,7 @@
}, },
"sprites/blueprints/splitter-compact.png": "sprites/blueprints/splitter-compact.png":
{ {
"frame": {"x":287,"y":43,"w":19,"h":19}, "frame": {"x":106,"y":248,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -266,7 +274,7 @@
}, },
"sprites/blueprints/splitter.png": "sprites/blueprints/splitter.png":
{ {
"frame": {"x":245,"y":3,"w":36,"h":19}, "frame": {"x":66,"y":225,"w":36,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19},
@ -274,7 +282,7 @@
}, },
"sprites/blueprints/stacker.png": "sprites/blueprints/stacker.png":
{ {
"frame": {"x":204,"y":3,"w":37,"h":19}, "frame": {"x":81,"y":179,"w":37,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19},
@ -282,7 +290,7 @@
}, },
"sprites/blueprints/trash-storage.png": "sprites/blueprints/trash-storage.png":
{ {
"frame": {"x":126,"y":79,"w":35,"h":38}, "frame": {"x":3,"y":267,"w":35,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38},
@ -290,7 +298,7 @@
}, },
"sprites/blueprints/trash.png": "sprites/blueprints/trash.png":
{ {
"frame": {"x":308,"y":66,"w":19,"h":19}, "frame": {"x":42,"y":267,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -298,7 +306,7 @@
}, },
"sprites/blueprints/underground_belt_entry-tier2.png": "sprites/blueprints/underground_belt_entry-tier2.png":
{ {
"frame": {"x":360,"y":89,"w":19,"h":18}, "frame": {"x":72,"y":313,"w":19,"h":18},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18},
@ -306,7 +314,7 @@
}, },
"sprites/blueprints/underground_belt_entry.png": "sprites/blueprints/underground_belt_entry.png":
{ {
"frame": {"x":354,"y":3,"w":19,"h":16}, "frame": {"x":72,"y":335,"w":19,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16},
@ -314,7 +322,7 @@
}, },
"sprites/blueprints/underground_belt_exit-tier2.png": "sprites/blueprints/underground_belt_exit-tier2.png":
{ {
"frame": {"x":356,"y":42,"w":19,"h":16}, "frame": {"x":95,"y":339,"w":19,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16},
@ -322,7 +330,7 @@
}, },
"sprites/blueprints/underground_belt_exit.png": "sprites/blueprints/underground_belt_exit.png":
{ {
"frame": {"x":377,"y":62,"w":19,"h":16}, "frame": {"x":26,"y":336,"w":19,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16},
@ -330,7 +338,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":262,"y":112,"w":13,"h":13}, "frame": {"x":43,"y":373,"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},
@ -338,7 +346,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":330,"y":112,"w":13,"h":13}, "frame": {"x":3,"y":392,"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},
@ -346,7 +354,7 @@
}, },
"sprites/buildings/belt_top.png": "sprites/buildings/belt_top.png":
{ {
"frame": {"x":204,"y":26,"w":13,"h":13}, "frame": {"x":95,"y":372,"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},
@ -354,7 +362,7 @@
}, },
"sprites/buildings/cutter-quad.png": "sprites/buildings/cutter-quad.png":
{ {
"frame": {"x":82,"y":26,"w":76,"h":19}, "frame": {"x":3,"y":72,"w":76,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":76,"h":19}, "spriteSourceSize": {"x":1,"y":0,"w":76,"h":19},
@ -362,7 +370,7 @@
}, },
"sprites/buildings/cutter.png": "sprites/buildings/cutter.png":
{ {
"frame": {"x":245,"y":66,"w":36,"h":19}, "frame": {"x":3,"y":244,"w":36,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19},
@ -370,7 +378,7 @@
}, },
"sprites/buildings/hub.png": "sprites/buildings/hub.png":
{ {
"frame": {"x":3,"y":3,"w":75,"h":76}, "frame": {"x":3,"y":95,"w":75,"h":76},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":75,"h":76}, "spriteSourceSize": {"x":1,"y":1,"w":75,"h":76},
@ -378,7 +386,7 @@
}, },
"sprites/buildings/miner-chainable.png": "sprites/buildings/miner-chainable.png":
{ {
"frame": {"x":314,"y":89,"w":19,"h":19}, "frame": {"x":42,"y":290,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -386,7 +394,7 @@
}, },
"sprites/buildings/miner.png": "sprites/buildings/miner.png":
{ {
"frame": {"x":310,"y":43,"w":19,"h":19}, "frame": {"x":104,"y":271,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -394,7 +402,7 @@
}, },
"sprites/buildings/mixer.png": "sprites/buildings/mixer.png":
{ {
"frame": {"x":204,"y":68,"w":37,"h":19}, "frame": {"x":81,"y":202,"w":37,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19},
@ -402,15 +410,23 @@
}, },
"sprites/buildings/painter-double.png": "sprites/buildings/painter-double.png":
{ {
"frame": {"x":162,"y":3,"w":38,"h":38}, "frame": {"x":84,"y":45,"w":38,"h":38},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38},
"sourceSize": {"w":38,"h":38} "sourceSize": {"w":38,"h":38}
}, },
"sprites/buildings/painter-mirrored.png":
{
"frame": {"x":82,"y":133,"w":38,"h":19},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":38,"h":19},
"sourceSize": {"w":38,"h":19}
},
"sprites/buildings/painter-quad.png": "sprites/buildings/painter-quad.png":
{ {
"frame": {"x":3,"y":106,"w":77,"h":19}, "frame": {"x":3,"y":26,"w":77,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":77,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":77,"h":19},
@ -418,7 +434,7 @@
}, },
"sprites/buildings/painter.png": "sprites/buildings/painter.png":
{ {
"frame": {"x":124,"y":49,"w":38,"h":19}, "frame": {"x":82,"y":156,"w":38,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19},
@ -426,7 +442,7 @@
}, },
"sprites/buildings/rotater-ccw.png": "sprites/buildings/rotater-ccw.png":
{ {
"frame": {"x":331,"y":66,"w":19,"h":19}, "frame": {"x":104,"y":294,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -434,7 +450,7 @@
}, },
"sprites/buildings/rotater.png": "sprites/buildings/rotater.png":
{ {
"frame": {"x":337,"y":89,"w":19,"h":19}, "frame": {"x":3,"y":309,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -442,7 +458,7 @@
}, },
"sprites/buildings/splitter-compact-inverse.png": "sprites/buildings/splitter-compact-inverse.png":
{ {
"frame": {"x":308,"y":3,"w":19,"h":19}, "frame": {"x":26,"y":313,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -450,7 +466,7 @@
}, },
"sprites/buildings/splitter-compact.png": "sprites/buildings/splitter-compact.png":
{ {
"frame": {"x":333,"y":43,"w":19,"h":19}, "frame": {"x":3,"y":332,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -458,7 +474,7 @@
}, },
"sprites/buildings/splitter.png": "sprites/buildings/splitter.png":
{ {
"frame": {"x":247,"y":43,"w":36,"h":19}, "frame": {"x":66,"y":248,"w":36,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19},
@ -466,7 +482,7 @@
}, },
"sprites/buildings/stacker.png": "sprites/buildings/stacker.png":
{ {
"frame": {"x":204,"y":91,"w":37,"h":19}, "frame": {"x":3,"y":198,"w":37,"h":19},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19},
@ -474,7 +490,7 @@
}, },
"sprites/buildings/trash-storage.png": "sprites/buildings/trash-storage.png":
{ {
"frame": {"x":165,"y":72,"w":35,"h":38}, "frame": {"x":65,"y":271,"w":35,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38},
@ -482,7 +498,7 @@
}, },
"sprites/buildings/trash.png": "sprites/buildings/trash.png":
{ {
"frame": {"x":354,"y":66,"w":19,"h":19}, "frame": {"x":49,"y":313,"w":19,"h":19},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19},
@ -490,7 +506,7 @@
}, },
"sprites/buildings/underground_belt_entry-tier2.png": "sprites/buildings/underground_belt_entry-tier2.png":
{ {
"frame": {"x":331,"y":3,"w":19,"h":18}, "frame": {"x":95,"y":317,"w":19,"h":18},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18},
@ -498,7 +514,7 @@
}, },
"sprites/buildings/underground_belt_entry.png": "sprites/buildings/underground_belt_entry.png":
{ {
"frame": {"x":383,"y":82,"w":19,"h":16}, "frame": {"x":3,"y":355,"w":19,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16},
@ -506,7 +522,7 @@
}, },
"sprites/buildings/underground_belt_exit-tier2.png": "sprites/buildings/underground_belt_exit-tier2.png":
{ {
"frame": {"x":377,"y":3,"w":19,"h":16}, "frame": {"x":49,"y":336,"w":19,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16},
@ -514,7 +530,7 @@
}, },
"sprites/buildings/underground_belt_exit.png": "sprites/buildings/underground_belt_exit.png":
{ {
"frame": {"x":379,"y":40,"w":19,"h":16}, "frame": {"x":72,"y":355,"w":19,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16},
@ -522,7 +538,7 @@
}, },
"sprites/debug/acceptor_slot.png": "sprites/debug/acceptor_slot.png":
{ {
"frame": {"x":82,"y":72,"w":6,"h":6}, "frame": {"x":67,"y":203,"w":6,"h":6},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6},
@ -530,7 +546,7 @@
}, },
"sprites/debug/ejector_slot.png": "sprites/debug/ejector_slot.png":
{ {
"frame": {"x":92,"y":72,"w":6,"h":6}, "frame": {"x":67,"y":213,"w":6,"h":6},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6},
@ -538,7 +554,7 @@
}, },
"sprites/map_overview/belt_forward.png": "sprites/map_overview/belt_forward.png":
{ {
"frame": {"x":102,"y":72,"w":3,"h":3}, "frame": {"x":122,"y":179,"w":3,"h":3},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3},
@ -546,7 +562,7 @@
}, },
"sprites/map_overview/belt_left.png": "sprites/map_overview/belt_left.png":
{ {
"frame": {"x":109,"y":72,"w":3,"h":3}, "frame": {"x":122,"y":186,"w":3,"h":3},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3},
@ -554,7 +570,7 @@
}, },
"sprites/map_overview/belt_right.png": "sprites/map_overview/belt_right.png":
{ {
"frame": {"x":116,"y":72,"w":3,"h":3}, "frame": {"x":122,"y":193,"w":3,"h":3},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3},
@ -562,15 +578,23 @@
}, },
"sprites/misc/deletion_marker.png": "sprites/misc/deletion_marker.png":
{ {
"frame": {"x":187,"y":114,"w":10,"h":10}, "frame": {"x":67,"y":175,"w":10,"h":10},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10},
"sourceSize": {"w":10,"h":10} "sourceSize": {"w":10,"h":10}
}, },
"sprites/misc/hub_direction_indicator.png":
{
"frame": {"x":122,"y":200,"w":3,"h":3},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":3,"h":3},
"sourceSize": {"w":3,"h":3}
},
"sprites/misc/slot_bad_arrow.png": "sprites/misc/slot_bad_arrow.png":
{ {
"frame": {"x":187,"y":114,"w":10,"h":10}, "frame": {"x":67,"y":175,"w":10,"h":10},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10},
@ -578,7 +602,7 @@
}, },
"sprites/misc/slot_good_arrow.png": "sprites/misc/slot_good_arrow.png":
{ {
"frame": {"x":201,"y":114,"w":10,"h":10}, "frame": {"x":67,"y":189,"w":10,"h":10},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10},
@ -586,7 +610,7 @@
}, },
"sprites/misc/storage_overlay.png": "sprites/misc/storage_overlay.png":
{ {
"frame": {"x":165,"y":114,"w":18,"h":9}, "frame": {"x":95,"y":359,"w":18,"h":9},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":18,"h":9}, "spriteSourceSize": {"x":0,"y":0,"w":18,"h":9},
@ -594,7 +618,7 @@
}, },
"sprites/misc/waypoint.png": "sprites/misc/waypoint.png":
{ {
"frame": {"x":123,"y":72,"w":3,"h":3}, "frame": {"x":122,"y":207,"w":3,"h":3},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3},
@ -605,8 +629,8 @@
"version": "1.0", "version": "1.0",
"image": "atlas0_10.png", "image": "atlas0_10.png",
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":407,"h":128}, "size": {"w":128,"h":425},
"scale": "0.1", "scale": "0.1",
"smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -2,7 +2,7 @@
"sprites/belt/forward_0.png": "sprites/belt/forward_0.png":
{ {
"frame": {"x":1871,"y":1504,"w":100,"h":126}, "frame": {"x":1876,"y":1166,"w":100,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126},
@ -10,7 +10,7 @@
}, },
"sprites/belt/forward_1.png": "sprites/belt/forward_1.png":
{ {
"frame": {"x":1871,"y":240,"w":100,"h":126}, "frame": {"x":1876,"y":1296,"w":100,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126},
@ -18,7 +18,7 @@
}, },
"sprites/belt/forward_2.png": "sprites/belt/forward_2.png":
{ {
"frame": {"x":1844,"y":394,"w":100,"h":126}, "frame": {"x":1869,"y":1543,"w":100,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126},
@ -26,7 +26,7 @@
}, },
"sprites/belt/forward_3.png": "sprites/belt/forward_3.png":
{ {
"frame": {"x":1871,"y":1634,"w":100,"h":126}, "frame": {"x":1857,"y":395,"w":100,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126},
@ -34,7 +34,7 @@
}, },
"sprites/belt/forward_4.png": "sprites/belt/forward_4.png":
{ {
"frame": {"x":1433,"y":785,"w":100,"h":126}, "frame": {"x":1865,"y":1690,"w":100,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126},
@ -42,7 +42,7 @@
}, },
"sprites/belt/forward_5.png": "sprites/belt/forward_5.png":
{ {
"frame": {"x":917,"y":1564,"w":100,"h":126}, "frame": {"x":920,"y":1370,"w":100,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126},
@ -50,7 +50,7 @@
}, },
"sprites/belt/left_0.png": "sprites/belt/left_0.png":
{ {
"frame": {"x":1021,"y":1563,"w":113,"h":113}, "frame": {"x":1870,"y":1426,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113},
@ -58,7 +58,7 @@
}, },
"sprites/belt/left_1.png": "sprites/belt/left_1.png":
{ {
"frame": {"x":1138,"y":1563,"w":113,"h":113}, "frame": {"x":920,"y":1500,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113},
@ -66,7 +66,7 @@
}, },
"sprites/belt/left_2.png": "sprites/belt/left_2.png":
{ {
"frame": {"x":1255,"y":1563,"w":113,"h":113}, "frame": {"x":935,"y":1617,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113},
@ -74,7 +74,7 @@
}, },
"sprites/belt/left_3.png": "sprites/belt/left_3.png":
{ {
"frame": {"x":1372,"y":1562,"w":113,"h":113}, "frame": {"x":935,"y":1734,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113},
@ -82,7 +82,7 @@
}, },
"sprites/belt/left_4.png": "sprites/belt/left_4.png":
{ {
"frame": {"x":1489,"y":1562,"w":113,"h":113}, "frame": {"x":1052,"y":1721,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113},
@ -90,7 +90,7 @@
}, },
"sprites/belt/left_5.png": "sprites/belt/left_5.png":
{ {
"frame": {"x":1021,"y":1680,"w":113,"h":113}, "frame": {"x":1169,"y":1721,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113},
@ -98,7 +98,7 @@
}, },
"sprites/belt/right_0.png": "sprites/belt/right_0.png":
{ {
"frame": {"x":1138,"y":1680,"w":113,"h":113}, "frame": {"x":1286,"y":1721,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113},
@ -106,7 +106,7 @@
}, },
"sprites/belt/right_1.png": "sprites/belt/right_1.png":
{ {
"frame": {"x":1255,"y":1680,"w":113,"h":113}, "frame": {"x":1403,"y":1721,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113},
@ -114,7 +114,7 @@
}, },
"sprites/belt/right_2.png": "sprites/belt/right_2.png":
{ {
"frame": {"x":1372,"y":1679,"w":113,"h":113}, "frame": {"x":1520,"y":1721,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113},
@ -122,7 +122,7 @@
}, },
"sprites/belt/right_3.png": "sprites/belt/right_3.png":
{ {
"frame": {"x":1489,"y":1679,"w":113,"h":113}, "frame": {"x":1052,"y":1552,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113},
@ -130,7 +130,7 @@
}, },
"sprites/belt/right_4.png": "sprites/belt/right_4.png":
{ {
"frame": {"x":1606,"y":1676,"w":113,"h":113}, "frame": {"x":1169,"y":1552,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113},
@ -138,7 +138,7 @@
}, },
"sprites/belt/right_5.png": "sprites/belt/right_5.png":
{ {
"frame": {"x":1723,"y":1676,"w":113,"h":113}, "frame": {"x":1286,"y":1554,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113},
@ -162,7 +162,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":1871,"y":1374,"w":102,"h":126}, "frame": {"x":1871,"y":240,"w":102,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":12,"y":0,"w":102,"h":126}, "spriteSourceSize": {"x":12,"y":0,"w":102,"h":126},
@ -178,7 +178,7 @@
}, },
"sprites/blueprints/cutter.png": "sprites/blueprints/cutter.png":
{ {
"frame": {"x":726,"y":979,"w":341,"h":191}, "frame": {"x":1433,"y":785,"w":341,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":23,"y":0,"w":341,"h":191}, "spriteSourceSize": {"x":23,"y":0,"w":341,"h":191},
@ -186,7 +186,7 @@
}, },
"sprites/blueprints/miner-chainable.png": "sprites/blueprints/miner-chainable.png":
{ {
"frame": {"x":1500,"y":1368,"w":182,"h":190}, "frame": {"x":749,"y":1655,"w":182,"h":190},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190},
@ -194,7 +194,7 @@
}, },
"sprites/blueprints/miner.png": "sprites/blueprints/miner.png":
{ {
"frame": {"x":1437,"y":590,"w":182,"h":190}, "frame": {"x":1690,"y":1174,"w":182,"h":190},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190},
@ -202,7 +202,7 @@
}, },
"sprites/blueprints/mixer.png": "sprites/blueprints/mixer.png":
{ {
"frame": {"x":735,"y":590,"w":347,"h":191}, "frame": {"x":1123,"y":590,"w":347,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191},
@ -216,6 +216,14 @@
"spriteSourceSize": {"x":0,"y":0,"w":384,"h":382}, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":382},
"sourceSize": {"w":384,"h":384} "sourceSize": {"w":384,"h":384}
}, },
"sprites/blueprints/painter-mirrored.png":
{
"frame": {"x":1485,"y":3,"w":384,"h":192},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":384,"h":192},
"sourceSize": {"w":384,"h":192}
},
"sprites/blueprints/painter-quad.png": "sprites/blueprints/painter-quad.png":
{ {
"frame": {"x":735,"y":3,"w":746,"h":192}, "frame": {"x":735,"y":3,"w":746,"h":192},
@ -226,7 +234,7 @@
}, },
"sprites/blueprints/painter.png": "sprites/blueprints/painter.png":
{ {
"frame": {"x":1485,"y":3,"w":384,"h":192}, "frame": {"x":1483,"y":199,"w":384,"h":192},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":384,"h":192}, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":192},
@ -234,7 +242,7 @@
}, },
"sprites/blueprints/rotater-ccw.png": "sprites/blueprints/rotater-ccw.png":
{ {
"frame": {"x":1116,"y":1368,"w":189,"h":191}, "frame": {"x":922,"y":1174,"w":189,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191},
@ -242,7 +250,7 @@
}, },
"sprites/blueprints/rotater.png": "sprites/blueprints/rotater.png":
{ {
"frame": {"x":724,"y":1564,"w":189,"h":191}, "frame": {"x":1115,"y":1173,"w":189,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191},
@ -250,7 +258,7 @@
}, },
"sprites/blueprints/splitter-compact-inverse.png": "sprites/blueprints/splitter-compact-inverse.png":
{ {
"frame": {"x":1652,"y":394,"w":188,"h":182}, "frame": {"x":1756,"y":980,"w":188,"h":182},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":188,"h":182}, "spriteSourceSize": {"x":0,"y":4,"w":188,"h":182},
@ -258,7 +266,7 @@
}, },
"sprites/blueprints/splitter-compact.png": "sprites/blueprints/splitter-compact.png":
{ {
"frame": {"x":1623,"y":587,"w":185,"h":182}, "frame": {"x":1306,"y":1368,"w":185,"h":182},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":4,"w":185,"h":182}, "spriteSourceSize": {"x":7,"y":4,"w":185,"h":182},
@ -266,7 +274,7 @@
}, },
"sprites/blueprints/splitter.png": "sprites/blueprints/splitter.png":
{ {
"frame": {"x":1071,"y":979,"w":340,"h":191}, "frame": {"x":726,"y":979,"w":340,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":23,"y":0,"w":340,"h":191}, "spriteSourceSize": {"x":23,"y":0,"w":340,"h":191},
@ -274,7 +282,7 @@
}, },
"sprites/blueprints/stacker.png": "sprites/blueprints/stacker.png":
{ {
"frame": {"x":1086,"y":590,"w":347,"h":191}, "frame": {"x":1474,"y":590,"w":347,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191},
@ -290,7 +298,7 @@
}, },
"sprites/blueprints/trash.png": "sprites/blueprints/trash.png":
{ {
"frame": {"x":724,"y":1368,"w":192,"h":192}, "frame": {"x":726,"y":1174,"w":192,"h":192},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192},
@ -298,7 +306,7 @@
}, },
"sprites/blueprints/underground_belt_entry-tier2.png": "sprites/blueprints/underground_belt_entry-tier2.png":
{ {
"frame": {"x":1791,"y":1035,"w":183,"h":166}, "frame": {"x":1683,"y":1368,"w":183,"h":166},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":26,"w":183,"h":166}, "spriteSourceSize": {"x":5,"y":26,"w":183,"h":166},
@ -306,7 +314,7 @@
}, },
"sprites/blueprints/underground_belt_entry.png": "sprites/blueprints/underground_belt_entry.png":
{ {
"frame": {"x":1812,"y":580,"w":182,"h":148}, "frame": {"x":192,"y":1702,"w":182,"h":148},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":44,"w":182,"h":148}, "spriteSourceSize": {"x":6,"y":44,"w":182,"h":148},
@ -314,7 +322,7 @@
}, },
"sprites/blueprints/underground_belt_exit-tier2.png": "sprites/blueprints/underground_belt_exit-tier2.png":
{ {
"frame": {"x":1623,"y":773,"w":185,"h":148}, "frame": {"x":3,"y":1702,"w":185,"h":148},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":185,"h":148}, "spriteSourceSize": {"x":5,"y":0,"w":185,"h":148},
@ -322,7 +330,7 @@
}, },
"sprites/blueprints/underground_belt_exit.png": "sprites/blueprints/underground_belt_exit.png":
{ {
"frame": {"x":1812,"y":732,"w":182,"h":148}, "frame": {"x":1683,"y":1538,"w":182,"h":148},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":182,"h":148}, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":148},
@ -330,7 +338,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":1021,"y":1563,"w":113,"h":113}, "frame": {"x":1870,"y":1426,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113},
@ -338,7 +346,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":1138,"y":1680,"w":113,"h":113}, "frame": {"x":1286,"y":1721,"w":113,"h":113},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113},
@ -346,7 +354,7 @@
}, },
"sprites/buildings/belt_top.png": "sprites/buildings/belt_top.png":
{ {
"frame": {"x":1871,"y":1504,"w":100,"h":126}, "frame": {"x":1876,"y":1166,"w":100,"h":126},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126},
@ -362,7 +370,7 @@
}, },
"sprites/buildings/cutter.png": "sprites/buildings/cutter.png":
{ {
"frame": {"x":726,"y":1174,"w":339,"h":190}, "frame": {"x":1070,"y":979,"w":339,"h":190},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190},
@ -378,7 +386,7 @@
}, },
"sprites/buildings/miner-chainable.png": "sprites/buildings/miner-chainable.png":
{ {
"frame": {"x":1469,"y":395,"w":179,"h":188}, "frame": {"x":1825,"y":590,"w":179,"h":188},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":1,"w":179,"h":188}, "spriteSourceSize": {"x":8,"y":1,"w":179,"h":188},
@ -386,7 +394,7 @@
}, },
"sprites/buildings/miner.png": "sprites/buildings/miner.png":
{ {
"frame": {"x":1415,"y":979,"w":179,"h":189}, "frame": {"x":1778,"y":785,"w":179,"h":189},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":179,"h":189}, "spriteSourceSize": {"x":8,"y":0,"w":179,"h":189},
@ -408,6 +416,14 @@
"spriteSourceSize": {"x":0,"y":0,"w":384,"h":381}, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":381},
"sourceSize": {"w":384,"h":384} "sourceSize": {"w":384,"h":384}
}, },
"sprites/buildings/painter-mirrored.png":
{
"frame": {"x":735,"y":590,"w":384,"h":191},
"rotated": false,
"trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":384,"h":191},
"sourceSize": {"w":384,"h":192}
},
"sprites/buildings/painter-quad.png": "sprites/buildings/painter-quad.png":
{ {
"frame": {"x":735,"y":199,"w":744,"h":192}, "frame": {"x":735,"y":199,"w":744,"h":192},
@ -418,7 +434,7 @@
}, },
"sprites/buildings/painter.png": "sprites/buildings/painter.png":
{ {
"frame": {"x":1483,"y":199,"w":384,"h":191}, "frame": {"x":1469,"y":395,"w":384,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":384,"h":191}, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":191},
@ -426,7 +442,7 @@
}, },
"sprites/buildings/rotater-ccw.png": "sprites/buildings/rotater-ccw.png":
{ {
"frame": {"x":1309,"y":1368,"w":187,"h":190}, "frame": {"x":1308,"y":1174,"w":187,"h":190},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190},
@ -434,7 +450,7 @@
}, },
"sprites/buildings/rotater.png": "sprites/buildings/rotater.png":
{ {
"frame": {"x":1412,"y":1174,"w":187,"h":190}, "frame": {"x":1499,"y":1174,"w":187,"h":190},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190},
@ -442,7 +458,7 @@
}, },
"sprites/buildings/splitter-compact-inverse.png": "sprites/buildings/splitter-compact-inverse.png":
{ {
"frame": {"x":1598,"y":925,"w":187,"h":180}, "frame": {"x":1115,"y":1368,"w":187,"h":180},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":5,"w":187,"h":180}, "spriteSourceSize": {"x":0,"y":5,"w":187,"h":180},
@ -450,7 +466,7 @@
}, },
"sprites/buildings/splitter-compact.png": "sprites/buildings/splitter-compact.png":
{ {
"frame": {"x":1603,"y":1109,"w":184,"h":180}, "frame": {"x":1495,"y":1368,"w":184,"h":180},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":5,"w":184,"h":180}, "spriteSourceSize": {"x":8,"y":5,"w":184,"h":180},
@ -458,7 +474,7 @@
}, },
"sprites/buildings/splitter.png": "sprites/buildings/splitter.png":
{ {
"frame": {"x":1069,"y":1174,"w":339,"h":190}, "frame": {"x":1413,"y":980,"w":339,"h":190},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190},
@ -482,7 +498,7 @@
}, },
"sprites/buildings/trash.png": "sprites/buildings/trash.png":
{ {
"frame": {"x":920,"y":1368,"w":192,"h":191}, "frame": {"x":724,"y":1370,"w":192,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":1,"w":192,"h":191}, "spriteSourceSize": {"x":0,"y":1,"w":192,"h":191},
@ -490,7 +506,7 @@
}, },
"sprites/buildings/underground_belt_entry-tier2.png": "sprites/buildings/underground_belt_entry-tier2.png":
{ {
"frame": {"x":1791,"y":1205,"w":181,"h":165}, "frame": {"x":1495,"y":1552,"w":181,"h":165},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":27,"w":181,"h":165}, "spriteSourceSize": {"x":7,"y":27,"w":181,"h":165},
@ -498,7 +514,7 @@
}, },
"sprites/buildings/underground_belt_entry.png": "sprites/buildings/underground_belt_entry.png":
{ {
"frame": {"x":1686,"y":1374,"w":181,"h":147}, "frame": {"x":564,"y":1707,"w":181,"h":147},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":45,"w":181,"h":147}, "spriteSourceSize": {"x":7,"y":45,"w":181,"h":147},
@ -506,7 +522,7 @@
}, },
"sprites/buildings/underground_belt_exit-tier2.png": "sprites/buildings/underground_belt_exit-tier2.png":
{ {
"frame": {"x":1812,"y":884,"w":182,"h":147}, "frame": {"x":378,"y":1707,"w":182,"h":147},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":0,"w":182,"h":147}, "spriteSourceSize": {"x":7,"y":0,"w":182,"h":147},
@ -514,7 +530,7 @@
}, },
"sprites/buildings/underground_belt_exit.png": "sprites/buildings/underground_belt_exit.png":
{ {
"frame": {"x":1686,"y":1525,"w":181,"h":147}, "frame": {"x":1680,"y":1690,"w":181,"h":147},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":0,"w":181,"h":147}, "spriteSourceSize": {"x":7,"y":0,"w":181,"h":147},
@ -522,7 +538,7 @@
}, },
"sprites/debug/acceptor_slot.png": "sprites/debug/acceptor_slot.png":
{ {
"frame": {"x":1603,"y":1293,"w":50,"h":64}, "frame": {"x":1961,"y":782,"w":50,"h":64},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64},
@ -530,7 +546,7 @@
}, },
"sprites/debug/ejector_slot.png": "sprites/debug/ejector_slot.png":
{ {
"frame": {"x":1606,"y":1562,"w":50,"h":64}, "frame": {"x":1961,"y":850,"w":50,"h":64},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64},
@ -538,7 +554,7 @@
}, },
"sprites/map_overview/belt_forward.png": "sprites/map_overview/belt_forward.png":
{ {
"frame": {"x":353,"y":1702,"w":24,"h":32}, "frame": {"x":1857,"y":525,"w":24,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32},
@ -546,7 +562,7 @@
}, },
"sprites/map_overview/belt_left.png": "sprites/map_overview/belt_left.png":
{ {
"frame": {"x":1433,"y":915,"w":28,"h":28}, "frame": {"x":1052,"y":1669,"w":28,"h":28},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":4,"w":28,"h":28}, "spriteSourceSize": {"x":0,"y":4,"w":28,"h":28},
@ -554,7 +570,7 @@
}, },
"sprites/map_overview/belt_right.png": "sprites/map_overview/belt_right.png":
{ {
"frame": {"x":1433,"y":947,"w":28,"h":28}, "frame": {"x":1885,"y":525,"w":28,"h":28},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":28,"h":28}, "spriteSourceSize": {"x":4,"y":4,"w":28,"h":28},
@ -562,15 +578,23 @@
}, },
"sprites/misc/deletion_marker.png": "sprites/misc/deletion_marker.png":
{ {
"frame": {"x":267,"y":1702,"w":82,"h":82}, "frame": {"x":1403,"y":1554,"w":82,"h":82},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82},
"sourceSize": {"w":96,"h":96} "sourceSize": {"w":96,"h":96}
}, },
"sprites/misc/hub_direction_indicator.png":
{
"frame": {"x":1961,"y":918,"w":32,"h":32},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
"sourceSize": {"w":32,"h":32}
},
"sprites/misc/slot_bad_arrow.png": "sprites/misc/slot_bad_arrow.png":
{ {
"frame": {"x":267,"y":1702,"w":82,"h":82}, "frame": {"x":1403,"y":1554,"w":82,"h":82},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82},
@ -578,7 +602,7 @@
}, },
"sprites/misc/slot_good_arrow.png": "sprites/misc/slot_good_arrow.png":
{ {
"frame": {"x":183,"y":1702,"w":80,"h":96}, "frame": {"x":1024,"y":1369,"w":80,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":80,"h":96}, "spriteSourceSize": {"x":8,"y":0,"w":80,"h":96},
@ -586,7 +610,7 @@
}, },
"sprites/misc/storage_overlay.png": "sprites/misc/storage_overlay.png":
{ {
"frame": {"x":3,"y":1702,"w":176,"h":86}, "frame": {"x":724,"y":1565,"w":176,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":4,"w":176,"h":86}, "spriteSourceSize": {"x":3,"y":4,"w":176,"h":86},
@ -594,7 +618,7 @@
}, },
"sprites/misc/waypoint.png": "sprites/misc/waypoint.png":
{ {
"frame": {"x":1844,"y":524,"w":24,"h":32}, "frame": {"x":1637,"y":1721,"w":24,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32},
@ -605,8 +629,8 @@
"version": "1.0", "version": "1.0",
"image": "atlas0_100.png", "image": "atlas0_100.png",
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":1997,"h":1801}, "size": {"w":2014,"h":1857},
"scale": "1", "scale": "1",
"smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 775 KiB

View File

@ -2,7 +2,7 @@
"sprites/belt/forward_0.png": "sprites/belt/forward_0.png":
{ {
"frame": {"x":479,"y":103,"w":28,"h":32}, "frame": {"x":825,"y":210,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -10,7 +10,7 @@
}, },
"sprites/belt/forward_1.png": "sprites/belt/forward_1.png":
{ {
"frame": {"x":479,"y":139,"w":28,"h":32}, "frame": {"x":857,"y":210,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -18,7 +18,7 @@
}, },
"sprites/belt/forward_2.png": "sprites/belt/forward_2.png":
{ {
"frame": {"x":479,"y":175,"w":28,"h":32}, "frame": {"x":889,"y":210,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -26,7 +26,7 @@
}, },
"sprites/belt/forward_3.png": "sprites/belt/forward_3.png":
{ {
"frame": {"x":262,"y":331,"w":28,"h":32}, "frame": {"x":921,"y":210,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -34,7 +34,7 @@
}, },
"sprites/belt/forward_4.png": "sprites/belt/forward_4.png":
{ {
"frame": {"x":285,"y":383,"w":28,"h":32}, "frame": {"x":546,"y":207,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -42,7 +42,7 @@
}, },
"sprites/belt/forward_5.png": "sprites/belt/forward_5.png":
{ {
"frame": {"x":317,"y":383,"w":28,"h":32}, "frame": {"x":578,"y":206,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -50,7 +50,7 @@
}, },
"sprites/belt/left_0.png": "sprites/belt/left_0.png":
{ {
"frame": {"x":343,"y":159,"w":30,"h":30}, "frame": {"x":240,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -58,7 +58,7 @@
}, },
"sprites/belt/left_1.png": "sprites/belt/left_1.png":
{ {
"frame": {"x":343,"y":193,"w":30,"h":30}, "frame": {"x":274,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -66,7 +66,7 @@
}, },
"sprites/belt/left_2.png": "sprites/belt/left_2.png":
{ {
"frame": {"x":477,"y":211,"w":30,"h":30}, "frame": {"x":308,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -74,7 +74,7 @@
}, },
"sprites/belt/left_3.png": "sprites/belt/left_3.png":
{ {
"frame": {"x":477,"y":245,"w":30,"h":30}, "frame": {"x":342,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -82,7 +82,7 @@
}, },
"sprites/belt/left_4.png": "sprites/belt/left_4.png":
{ {
"frame": {"x":469,"y":279,"w":30,"h":30}, "frame": {"x":376,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -90,7 +90,7 @@
}, },
"sprites/belt/left_5.png": "sprites/belt/left_5.png":
{ {
"frame": {"x":3,"y":331,"w":30,"h":30}, "frame": {"x":410,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -98,7 +98,7 @@
}, },
"sprites/belt/right_0.png": "sprites/belt/right_0.png":
{ {
"frame": {"x":37,"y":331,"w":30,"h":30}, "frame": {"x":444,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -106,7 +106,7 @@
}, },
"sprites/belt/right_1.png": "sprites/belt/right_1.png":
{ {
"frame": {"x":71,"y":331,"w":30,"h":30}, "frame": {"x":478,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -114,7 +114,7 @@
}, },
"sprites/belt/right_2.png": "sprites/belt/right_2.png":
{ {
"frame": {"x":3,"y":296,"w":30,"h":30}, "frame": {"x":512,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -122,7 +122,7 @@
}, },
"sprites/belt/right_3.png": "sprites/belt/right_3.png":
{ {
"frame": {"x":37,"y":296,"w":30,"h":30}, "frame": {"x":610,"y":211,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -130,7 +130,7 @@
}, },
"sprites/belt/right_4.png": "sprites/belt/right_4.png":
{ {
"frame": {"x":71,"y":296,"w":30,"h":30}, "frame": {"x":644,"y":211,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -138,7 +138,7 @@
}, },
"sprites/belt/right_5.png": "sprites/belt/right_5.png":
{ {
"frame": {"x":105,"y":331,"w":30,"h":30}, "frame": {"x":678,"y":211,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -146,7 +146,7 @@
}, },
"sprites/blueprints/belt_left.png": "sprites/blueprints/belt_left.png":
{ {
"frame": {"x":139,"y":331,"w":30,"h":30}, "frame": {"x":712,"y":211,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -154,7 +154,7 @@
}, },
"sprites/blueprints/belt_right.png": "sprites/blueprints/belt_right.png":
{ {
"frame": {"x":173,"y":331,"w":30,"h":30}, "frame": {"x":746,"y":211,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -162,7 +162,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":467,"y":416,"w":28,"h":32}, "frame": {"x":1051,"y":101,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -170,7 +170,7 @@
}, },
"sprites/blueprints/cutter-quad.png": "sprites/blueprints/cutter-quad.png":
{ {
"frame": {"x":191,"y":55,"w":184,"h":48}, "frame": {"x":3,"y":192,"w":184,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":184,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":184,"h":48},
@ -178,7 +178,7 @@
}, },
"sprites/blueprints/cutter.png": "sprites/blueprints/cutter.png":
{ {
"frame": {"x":95,"y":244,"w":87,"h":48}, "frame": {"x":662,"y":107,"w":87,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48},
@ -186,7 +186,7 @@
}, },
"sprites/blueprints/miner-chainable.png": "sprites/blueprints/miner-chainable.png":
{ {
"frame": {"x":262,"y":419,"w":47,"h":48}, "frame": {"x":621,"y":159,"w":47,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48},
@ -194,7 +194,7 @@
}, },
"sprites/blueprints/miner.png": "sprites/blueprints/miner.png":
{ {
"frame": {"x":313,"y":419,"w":47,"h":48}, "frame": {"x":672,"y":159,"w":47,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48},
@ -202,7 +202,7 @@
}, },
"sprites/blueprints/mixer.png": "sprites/blueprints/mixer.png":
{ {
"frame": {"x":191,"y":211,"w":89,"h":48}, "frame": {"x":583,"y":55,"w":89,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":89,"h":48}, "spriteSourceSize": {"x":3,"y":0,"w":89,"h":48},
@ -210,15 +210,23 @@
}, },
"sprites/blueprints/painter-double.png": "sprites/blueprints/painter-double.png":
{ {
"frame": {"x":387,"y":3,"w":96,"h":96}, "frame": {"x":191,"y":107,"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},
"sourceSize": {"w":96,"h":96} "sourceSize": {"w":96,"h":96}
}, },
"sprites/blueprints/painter-mirrored.png":
{
"frame": {"x":383,"y":55,"w":96,"h":48},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":48},
"sourceSize": {"w":96,"h":48}
},
"sprites/blueprints/painter-quad.png": "sprites/blueprints/painter-quad.png":
{ {
"frame": {"x":3,"y":3,"w":188,"h":48}, "frame": {"x":191,"y":3,"w":188,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":188,"h":48}, "spriteSourceSize": {"x":1,"y":0,"w":188,"h":48},
@ -226,7 +234,7 @@
}, },
"sprites/blueprints/painter.png": "sprites/blueprints/painter.png":
{ {
"frame": {"x":191,"y":159,"w":96,"h":48}, "frame": {"x":571,"y":3,"w":96,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48},
@ -234,7 +242,7 @@
}, },
"sprites/blueprints/rotater-ccw.png": "sprites/blueprints/rotater-ccw.png":
{ {
"frame": {"x":291,"y":159,"w":48,"h":48}, "frame": {"x":954,"y":3,"w":48,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
@ -242,7 +250,7 @@
}, },
"sprites/blueprints/rotater.png": "sprites/blueprints/rotater.png":
{ {
"frame": {"x":459,"y":313,"w":48,"h":48}, "frame": {"x":859,"y":55,"w":48,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
@ -250,7 +258,7 @@
}, },
"sprites/blueprints/splitter-compact-inverse.png": "sprites/blueprints/splitter-compact-inverse.png":
{ {
"frame": {"x":210,"y":315,"w":48,"h":48}, "frame": {"x":844,"y":107,"w":48,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
@ -258,7 +266,7 @@
}, },
"sprites/blueprints/splitter-compact.png": "sprites/blueprints/splitter-compact.png":
{ {
"frame": {"x":415,"y":416,"w":47,"h":47}, "frame": {"x":825,"y":159,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47},
@ -266,7 +274,7 @@
}, },
"sprites/blueprints/splitter.png": "sprites/blueprints/splitter.png":
{ {
"frame": {"x":186,"y":263,"w":87,"h":48}, "frame": {"x":863,"y":3,"w":87,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48},
@ -274,7 +282,7 @@
}, },
"sprites/blueprints/stacker.png": "sprites/blueprints/stacker.png":
{ {
"frame": {"x":284,"y":227,"w":89,"h":48}, "frame": {"x":569,"y":107,"w":89,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":89,"h":48}, "spriteSourceSize": {"x":3,"y":0,"w":89,"h":48},
@ -282,7 +290,7 @@
}, },
"sprites/blueprints/trash-storage.png": "sprites/blueprints/trash-storage.png":
{ {
"frame": {"x":3,"y":365,"w":85,"h":96}, "frame": {"x":391,"y":107,"w":85,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":85,"h":96}, "spriteSourceSize": {"x":6,"y":0,"w":85,"h":96},
@ -290,7 +298,7 @@
}, },
"sprites/blueprints/trash.png": "sprites/blueprints/trash.png":
{ {
"frame": {"x":181,"y":391,"w":48,"h":48}, "frame": {"x":1006,"y":3,"w":48,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
@ -298,7 +306,7 @@
}, },
"sprites/blueprints/underground_belt_entry-tier2.png": "sprites/blueprints/underground_belt_entry-tier2.png":
{ {
"frame": {"x":3,"y":465,"w":48,"h":43}, "frame": {"x":569,"y":159,"w":48,"h":43},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":5,"w":48,"h":43}, "spriteSourceSize": {"x":0,"y":5,"w":48,"h":43},
@ -306,7 +314,7 @@
}, },
"sprites/blueprints/underground_belt_entry.png": "sprites/blueprints/underground_belt_entry.png":
{ {
"frame": {"x":106,"y":465,"w":48,"h":38}, "frame": {"x":927,"y":159,"w":48,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":10,"w":48,"h":38}, "spriteSourceSize": {"x":0,"y":10,"w":48,"h":38},
@ -314,7 +322,7 @@
}, },
"sprites/blueprints/underground_belt_exit-tier2.png": "sprites/blueprints/underground_belt_exit-tier2.png":
{ {
"frame": {"x":158,"y":465,"w":48,"h":38}, "frame": {"x":979,"y":158,"w":48,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38},
@ -322,7 +330,7 @@
}, },
"sprites/blueprints/underground_belt_exit.png": "sprites/blueprints/underground_belt_exit.png":
{ {
"frame": {"x":262,"y":471,"w":48,"h":38}, "frame": {"x":953,"y":201,"w":48,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38},
@ -330,7 +338,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":343,"y":159,"w":30,"h":30}, "frame": {"x":240,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30},
@ -338,7 +346,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":37,"y":331,"w":30,"h":30}, "frame": {"x":444,"y":207,"w":30,"h":30},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30},
@ -346,7 +354,7 @@
}, },
"sprites/buildings/belt_top.png": "sprites/buildings/belt_top.png":
{ {
"frame": {"x":479,"y":103,"w":28,"h":32}, "frame": {"x":825,"y":210,"w":28,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32},
@ -354,7 +362,7 @@
}, },
"sprites/buildings/cutter-quad.png": "sprites/buildings/cutter-quad.png":
{ {
"frame": {"x":191,"y":107,"w":184,"h":48}, "frame": {"x":383,"y":3,"w":184,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":184,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":184,"h":48},
@ -362,7 +370,7 @@
}, },
"sprites/buildings/cutter.png": "sprites/buildings/cutter.png":
{ {
"frame": {"x":277,"y":279,"w":87,"h":48}, "frame": {"x":768,"y":55,"w":87,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48},
@ -370,7 +378,7 @@
}, },
"sprites/buildings/hub.png": "sprites/buildings/hub.png":
{ {
"frame": {"x":3,"y":55,"w":184,"h":185}, "frame": {"x":3,"y":3,"w":184,"h":185},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":4,"w":184,"h":185}, "spriteSourceSize": {"x":4,"y":4,"w":184,"h":185},
@ -378,7 +386,7 @@
}, },
"sprites/buildings/miner-chainable.png": "sprites/buildings/miner-chainable.png":
{ {
"frame": {"x":349,"y":365,"w":47,"h":48}, "frame": {"x":723,"y":159,"w":47,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48},
@ -386,7 +394,7 @@
}, },
"sprites/buildings/miner.png": "sprites/buildings/miner.png":
{ {
"frame": {"x":364,"y":417,"w":47,"h":48}, "frame": {"x":774,"y":159,"w":47,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48},
@ -394,7 +402,7 @@
}, },
"sprites/buildings/mixer.png": "sprites/buildings/mixer.png":
{ {
"frame": {"x":377,"y":255,"w":88,"h":48}, "frame": {"x":771,"y":3,"w":88,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":88,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":88,"h":48},
@ -402,15 +410,23 @@
}, },
"sprites/buildings/painter-double.png": "sprites/buildings/painter-double.png":
{ {
"frame": {"x":379,"y":103,"w":96,"h":96}, "frame": {"x":291,"y":107,"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},
"sourceSize": {"w":96,"h":96} "sourceSize": {"w":96,"h":96}
}, },
"sprites/buildings/painter-mirrored.png":
{
"frame": {"x":483,"y":55,"w":96,"h":48},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":48},
"sourceSize": {"w":96,"h":48}
},
"sprites/buildings/painter-quad.png": "sprites/buildings/painter-quad.png":
{ {
"frame": {"x":195,"y":3,"w":188,"h":48}, "frame": {"x":191,"y":55,"w":188,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":188,"h":48}, "spriteSourceSize": {"x":1,"y":0,"w":188,"h":48},
@ -418,7 +434,7 @@
}, },
"sprites/buildings/painter.png": "sprites/buildings/painter.png":
{ {
"frame": {"x":377,"y":203,"w":96,"h":48}, "frame": {"x":671,"y":3,"w":96,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48},
@ -426,7 +442,7 @@
}, },
"sprites/buildings/rotater-ccw.png": "sprites/buildings/rotater-ccw.png":
{ {
"frame": {"x":210,"y":443,"w":48,"h":48}, "frame": {"x":911,"y":55,"w":48,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
@ -434,7 +450,7 @@
}, },
"sprites/buildings/rotater.png": "sprites/buildings/rotater.png":
{ {
"frame": {"x":233,"y":367,"w":48,"h":48}, "frame": {"x":896,"y":107,"w":48,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
@ -442,7 +458,7 @@
}, },
"sprites/buildings/splitter-compact-inverse.png": "sprites/buildings/splitter-compact-inverse.png":
{ {
"frame": {"x":400,"y":365,"w":48,"h":47}, "frame": {"x":948,"y":107,"w":48,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":47}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":47},
@ -450,7 +466,7 @@
}, },
"sprites/buildings/splitter-compact.png": "sprites/buildings/splitter-compact.png":
{ {
"frame": {"x":452,"y":365,"w":47,"h":47}, "frame": {"x":876,"y":159,"w":47,"h":47},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47},
@ -458,7 +474,7 @@
}, },
"sprites/buildings/splitter.png": "sprites/buildings/splitter.png":
{ {
"frame": {"x":368,"y":307,"w":87,"h":48}, "frame": {"x":753,"y":107,"w":87,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48},
@ -466,7 +482,7 @@
}, },
"sprites/buildings/stacker.png": "sprites/buildings/stacker.png":
{ {
"frame": {"x":3,"y":244,"w":88,"h":48}, "frame": {"x":676,"y":55,"w":88,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":88,"h":48}, "spriteSourceSize": {"x":4,"y":0,"w":88,"h":48},
@ -474,7 +490,7 @@
}, },
"sprites/buildings/trash-storage.png": "sprites/buildings/trash-storage.png":
{ {
"frame": {"x":92,"y":365,"w":85,"h":96}, "frame": {"x":480,"y":107,"w":85,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":85,"h":96}, "spriteSourceSize": {"x":6,"y":0,"w":85,"h":96},
@ -482,7 +498,7 @@
}, },
"sprites/buildings/trash.png": "sprites/buildings/trash.png":
{ {
"frame": {"x":294,"y":331,"w":48,"h":48}, "frame": {"x":963,"y":55,"w":48,"h":48},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
@ -490,7 +506,7 @@
}, },
"sprites/buildings/underground_belt_entry-tier2.png": "sprites/buildings/underground_belt_entry-tier2.png":
{ {
"frame": {"x":55,"y":465,"w":47,"h":42}, "frame": {"x":1015,"y":55,"w":47,"h":42},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":6,"w":47,"h":42}, "spriteSourceSize": {"x":1,"y":6,"w":47,"h":42},
@ -498,7 +514,7 @@
}, },
"sprites/buildings/underground_belt_entry.png": "sprites/buildings/underground_belt_entry.png":
{ {
"frame": {"x":314,"y":471,"w":47,"h":38}, "frame": {"x":1005,"y":200,"w":47,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":10,"w":47,"h":38}, "spriteSourceSize": {"x":1,"y":10,"w":47,"h":38},
@ -506,7 +522,7 @@
}, },
"sprites/buildings/underground_belt_exit-tier2.png": "sprites/buildings/underground_belt_exit-tier2.png":
{ {
"frame": {"x":365,"y":469,"w":47,"h":38}, "frame": {"x":1000,"y":107,"w":47,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38},
@ -514,7 +530,7 @@
}, },
"sprites/buildings/underground_belt_exit.png": "sprites/buildings/underground_belt_exit.png":
{ {
"frame": {"x":416,"y":467,"w":47,"h":38}, "frame": {"x":1031,"y":149,"w":47,"h":38},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38},
@ -522,7 +538,7 @@
}, },
"sprites/debug/acceptor_slot.png": "sprites/debug/acceptor_slot.png":
{ {
"frame": {"x":487,"y":3,"w":14,"h":16}, "frame": {"x":1058,"y":31,"w":14,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16},
@ -530,7 +546,7 @@
}, },
"sprites/debug/ejector_slot.png": "sprites/debug/ejector_slot.png":
{ {
"frame": {"x":487,"y":23,"w":14,"h":16}, "frame": {"x":806,"y":211,"w":14,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16},
@ -538,7 +554,7 @@
}, },
"sprites/map_overview/belt_forward.png": "sprites/map_overview/belt_forward.png":
{ {
"frame": {"x":487,"y":43,"w":8,"h":8}, "frame": {"x":1051,"y":137,"w":8,"h":8},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8},
@ -546,7 +562,7 @@
}, },
"sprites/map_overview/belt_left.png": "sprites/map_overview/belt_left.png":
{ {
"frame": {"x":499,"y":43,"w":8,"h":8}, "frame": {"x":1063,"y":137,"w":8,"h":8},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8},
@ -554,7 +570,7 @@
}, },
"sprites/map_overview/belt_right.png": "sprites/map_overview/belt_right.png":
{ {
"frame": {"x":487,"y":55,"w":8,"h":8}, "frame": {"x":191,"y":234,"w":8,"h":8},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8},
@ -562,15 +578,23 @@
}, },
"sprites/misc/deletion_marker.png": "sprites/misc/deletion_marker.png":
{ {
"frame": {"x":181,"y":365,"w":22,"h":22}, "frame": {"x":780,"y":211,"w":22,"h":22},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22},
"sourceSize": {"w":24,"h":24} "sourceSize": {"w":24,"h":24}
}, },
"sprites/misc/hub_direction_indicator.png":
{
"frame": {"x":203,"y":234,"w":8,"h":8},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":8,"h":8},
"sourceSize": {"w":8,"h":8}
},
"sprites/misc/slot_bad_arrow.png": "sprites/misc/slot_bad_arrow.png":
{ {
"frame": {"x":181,"y":365,"w":22,"h":22}, "frame": {"x":780,"y":211,"w":22,"h":22},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22},
@ -578,7 +602,7 @@
}, },
"sprites/misc/slot_good_arrow.png": "sprites/misc/slot_good_arrow.png":
{ {
"frame": {"x":105,"y":296,"w":22,"h":24}, "frame": {"x":1058,"y":3,"w":22,"h":24},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":22,"h":24}, "spriteSourceSize": {"x":1,"y":0,"w":22,"h":24},
@ -586,7 +610,7 @@
}, },
"sprites/misc/storage_overlay.png": "sprites/misc/storage_overlay.png":
{ {
"frame": {"x":131,"y":296,"w":45,"h":23}, "frame": {"x":191,"y":207,"w":45,"h":23},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":45,"h":23}, "spriteSourceSize": {"x":0,"y":0,"w":45,"h":23},
@ -594,7 +618,7 @@
}, },
"sprites/misc/waypoint.png": "sprites/misc/waypoint.png":
{ {
"frame": {"x":499,"y":55,"w":8,"h":8}, "frame": {"x":215,"y":234,"w":8,"h":8},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8},
@ -605,8 +629,8 @@
"version": "1.0", "version": "1.0",
"image": "atlas0_25.png", "image": "atlas0_25.png",
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":510,"h":512}, "size": {"w":1083,"h":245},
"scale": "0.25", "scale": "0.25",
"smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 165 KiB

View File

@ -2,7 +2,7 @@
"sprites/belt/forward_0.png": "sprites/belt/forward_0.png":
{ {
"frame": {"x":49,"y":1765,"w":51,"h":63}, "frame": {"x":1966,"y":3,"w":51,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63},
@ -10,7 +10,7 @@
}, },
"sprites/belt/forward_1.png": "sprites/belt/forward_1.png":
{ {
"frame": {"x":3,"y":1902,"w":51,"h":63}, "frame": {"x":1835,"y":203,"w":51,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63},
@ -18,7 +18,7 @@
}, },
"sprites/belt/forward_2.png": "sprites/belt/forward_2.png":
{ {
"frame": {"x":58,"y":1902,"w":51,"h":63}, "frame": {"x":1879,"y":304,"w":51,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63},
@ -26,7 +26,7 @@
}, },
"sprites/belt/forward_3.png": "sprites/belt/forward_3.png":
{ {
"frame": {"x":113,"y":1887,"w":51,"h":63}, "frame": {"x":1934,"y":304,"w":51,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63},
@ -34,7 +34,7 @@
}, },
"sprites/belt/forward_4.png": "sprites/belt/forward_4.png":
{ {
"frame": {"x":168,"y":1830,"w":51,"h":63}, "frame": {"x":1844,"y":381,"w":51,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63},
@ -42,7 +42,7 @@
}, },
"sprites/belt/forward_5.png": "sprites/belt/forward_5.png":
{ {
"frame": {"x":168,"y":1897,"w":51,"h":63}, "frame": {"x":1899,"y":371,"w":51,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63},
@ -50,7 +50,7 @@
}, },
"sprites/belt/left_0.png": "sprites/belt/left_0.png":
{ {
"frame": {"x":104,"y":1765,"w":57,"h":57}, "frame": {"x":1890,"y":243,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57},
@ -58,7 +58,7 @@
}, },
"sprites/belt/left_1.png": "sprites/belt/left_1.png":
{ {
"frame": {"x":165,"y":1769,"w":57,"h":57}, "frame": {"x":1951,"y":243,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57},
@ -66,7 +66,7 @@
}, },
"sprites/belt/left_2.png": "sprites/belt/left_2.png":
{ {
"frame": {"x":104,"y":1826,"w":57,"h":57}, "frame": {"x":1783,"y":381,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57},
@ -74,7 +74,7 @@
}, },
"sprites/belt/left_3.png": "sprites/belt/left_3.png":
{ {
"frame": {"x":226,"y":1782,"w":57,"h":57}, "frame": {"x":1954,"y":371,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57},
@ -82,7 +82,7 @@
}, },
"sprites/belt/left_4.png": "sprites/belt/left_4.png":
{ {
"frame": {"x":287,"y":1782,"w":57,"h":57}, "frame": {"x":1954,"y":432,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57},
@ -90,7 +90,7 @@
}, },
"sprites/belt/left_5.png": "sprites/belt/left_5.png":
{ {
"frame": {"x":348,"y":1835,"w":57,"h":57}, "frame": {"x":1363,"y":403,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57},
@ -98,7 +98,7 @@
}, },
"sprites/belt/right_0.png": "sprites/belt/right_0.png":
{ {
"frame": {"x":409,"y":1835,"w":57,"h":57}, "frame": {"x":1424,"y":403,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57},
@ -106,7 +106,7 @@
}, },
"sprites/belt/right_1.png": "sprites/belt/right_1.png":
{ {
"frame": {"x":223,"y":1896,"w":57,"h":57}, "frame": {"x":1485,"y":403,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57},
@ -114,7 +114,7 @@
}, },
"sprites/belt/right_2.png": "sprites/belt/right_2.png":
{ {
"frame": {"x":284,"y":1843,"w":57,"h":57}, "frame": {"x":1546,"y":403,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57},
@ -122,7 +122,7 @@
}, },
"sprites/belt/right_3.png": "sprites/belt/right_3.png":
{ {
"frame": {"x":284,"y":1904,"w":57,"h":57}, "frame": {"x":1607,"y":402,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57},
@ -130,7 +130,7 @@
}, },
"sprites/belt/right_4.png": "sprites/belt/right_4.png":
{ {
"frame": {"x":345,"y":1896,"w":57,"h":57}, "frame": {"x":1668,"y":402,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57},
@ -138,7 +138,7 @@
}, },
"sprites/belt/right_5.png": "sprites/belt/right_5.png":
{ {
"frame": {"x":406,"y":1896,"w":57,"h":57}, "frame": {"x":1952,"y":181,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57},
@ -146,7 +146,7 @@
}, },
"sprites/blueprints/belt_left.png": "sprites/blueprints/belt_left.png":
{ {
"frame": {"x":178,"y":1707,"w":58,"h":58}, "frame": {"x":1301,"y":400,"w":58,"h":58},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":5,"w":58,"h":58}, "spriteSourceSize": {"x":0,"y":5,"w":58,"h":58},
@ -154,7 +154,7 @@
}, },
"sprites/blueprints/belt_right.png": "sprites/blueprints/belt_right.png":
{ {
"frame": {"x":370,"y":1773,"w":58,"h":58}, "frame": {"x":1890,"y":181,"w":58,"h":58},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":5,"w":58,"h":58}, "spriteSourceSize": {"x":5,"y":5,"w":58,"h":58},
@ -162,7 +162,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":3,"y":1835,"w":53,"h":63}, "frame": {"x":1151,"y":403,"w":53,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":53,"h":63}, "spriteSourceSize": {"x":5,"y":0,"w":53,"h":63},
@ -170,7 +170,7 @@
}, },
"sprites/blueprints/cutter-quad.png": "sprites/blueprints/cutter-quad.png":
{ {
"frame": {"x":3,"y":574,"w":366,"h":96}, "frame": {"x":3,"y":374,"w":366,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":11,"y":0,"w":366,"h":96}, "spriteSourceSize": {"x":11,"y":0,"w":366,"h":96},
@ -178,7 +178,7 @@
}, },
"sprites/blueprints/cutter.png": "sprites/blueprints/cutter.png":
{ {
"frame": {"x":3,"y":1465,"w":172,"h":96}, "frame": {"x":1285,"y":203,"w":172,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":11,"y":0,"w":172,"h":96}, "spriteSourceSize": {"x":11,"y":0,"w":172,"h":96},
@ -186,7 +186,7 @@
}, },
"sprites/blueprints/miner-chainable.png": "sprites/blueprints/miner-chainable.png":
{ {
"frame": {"x":179,"y":1507,"w":92,"h":96}, "frame": {"x":1401,"y":303,"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},
@ -194,7 +194,7 @@
}, },
"sprites/blueprints/miner.png": "sprites/blueprints/miner.png":
{ {
"frame": {"x":178,"y":1607,"w":92,"h":96}, "frame": {"x":1497,"y":303,"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},
@ -202,7 +202,7 @@
}, },
"sprites/blueprints/mixer.png": "sprites/blueprints/mixer.png":
{ {
"frame": {"x":296,"y":1217,"w":175,"h":96}, "frame": {"x":1143,"y":103,"w":175,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96},
@ -210,15 +210,23 @@
}, },
"sprites/blueprints/painter-double.png": "sprites/blueprints/painter-double.png":
{ {
"frame": {"x":3,"y":774,"w":192,"h":192}, "frame": {"x":373,"y":203,"w":192,"h":192},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192},
"sourceSize": {"w":192,"h":192} "sourceSize": {"w":192,"h":192}
}, },
"sprites/blueprints/painter-mirrored.png":
{
"frame": {"x":751,"y":103,"w":192,"h":96},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":96},
"sourceSize": {"w":192,"h":96}
},
"sprites/blueprints/painter-quad.png": "sprites/blueprints/painter-quad.png":
{ {
"frame": {"x":3,"y":3,"w":374,"h":96}, "frame": {"x":373,"y":3,"w":374,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":374,"h":96}, "spriteSourceSize": {"x":3,"y":0,"w":374,"h":96},
@ -226,7 +234,7 @@
}, },
"sprites/blueprints/painter.png": "sprites/blueprints/painter.png":
{ {
"frame": {"x":3,"y":1165,"w":192,"h":96}, "frame": {"x":1121,"y":3,"w":192,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96},
@ -234,7 +242,7 @@
}, },
"sprites/blueprints/rotater-ccw.png": "sprites/blueprints/rotater-ccw.png":
{ {
"frame": {"x":373,"y":249,"w":96,"h":96}, "frame": {"x":1866,"y":3,"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},
@ -242,7 +250,7 @@
}, },
"sprites/blueprints/rotater.png": "sprites/blueprints/rotater.png":
{ {
"frame": {"x":373,"y":349,"w":96,"h":96}, "frame": {"x":1675,"y":103,"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},
@ -250,7 +258,7 @@
}, },
"sprites/blueprints/splitter-compact-inverse.png": "sprites/blueprints/splitter-compact-inverse.png":
{ {
"frame": {"x":370,"y":849,"w":95,"h":93}, "frame": {"x":1205,"y":303,"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},
@ -258,7 +266,7 @@
}, },
"sprites/blueprints/splitter-compact.png": "sprites/blueprints/splitter-compact.png":
{ {
"frame": {"x":369,"y":1120,"w":93,"h":93}, "frame": {"x":1304,"y":303,"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},
@ -266,7 +274,7 @@
}, },
"sprites/blueprints/splitter.png": "sprites/blueprints/splitter.png":
{ {
"frame": {"x":3,"y":1565,"w":171,"h":96}, "frame": {"x":1691,"y":3,"w":171,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96},
@ -274,7 +282,7 @@
}, },
"sprites/blueprints/stacker.png": "sprites/blueprints/stacker.png":
{ {
"frame": {"x":296,"y":1317,"w":175,"h":96}, "frame": {"x":1106,"y":203,"w":175,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96},
@ -282,7 +290,7 @@
}, },
"sprites/blueprints/trash-storage.png": "sprites/blueprints/trash-storage.png":
{ {
"frame": {"x":199,"y":774,"w":167,"h":192}, "frame": {"x":765,"y":203,"w":167,"h":192},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":167,"h":192}, "spriteSourceSize": {"x":14,"y":0,"w":167,"h":192},
@ -290,7 +298,7 @@
}, },
"sprites/blueprints/trash.png": "sprites/blueprints/trash.png":
{ {
"frame": {"x":373,"y":449,"w":96,"h":96}, "frame": {"x":1636,"y":203,"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},
@ -298,7 +306,7 @@
}, },
"sprites/blueprints/underground_belt_entry-tier2.png": "sprites/blueprints/underground_belt_entry-tier2.png":
{ {
"frame": {"x":199,"y":1261,"w":93,"h":84}, "frame": {"x":764,"y":399,"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},
@ -306,7 +314,7 @@
}, },
"sprites/blueprints/underground_belt_entry.png": "sprites/blueprints/underground_belt_entry.png":
{ {
"frame": {"x":199,"y":1349,"w":93,"h":75}, "frame": {"x":373,"y":399,"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},
@ -314,7 +322,7 @@
}, },
"sprites/blueprints/underground_belt_exit-tier2.png": "sprites/blueprints/underground_belt_exit-tier2.png":
{ {
"frame": {"x":369,"y":1041,"w":94,"h":75}, "frame": {"x":957,"y":399,"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},
@ -322,7 +330,7 @@
}, },
"sprites/blueprints/underground_belt_exit.png": "sprites/blueprints/underground_belt_exit.png":
{ {
"frame": {"x":181,"y":1428,"w":93,"h":75}, "frame": {"x":470,"y":399,"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},
@ -330,7 +338,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":104,"y":1765,"w":57,"h":57}, "frame": {"x":1890,"y":243,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57},
@ -338,7 +346,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":409,"y":1835,"w":57,"h":57}, "frame": {"x":1424,"y":403,"w":57,"h":57},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57},
@ -346,7 +354,7 @@
}, },
"sprites/buildings/belt_top.png": "sprites/buildings/belt_top.png":
{ {
"frame": {"x":49,"y":1765,"w":51,"h":63}, "frame": {"x":1966,"y":3,"w":51,"h":63},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63},
@ -354,7 +362,7 @@
}, },
"sprites/buildings/cutter-quad.png": "sprites/buildings/cutter-quad.png":
{ {
"frame": {"x":3,"y":674,"w":366,"h":96}, "frame": {"x":751,"y":3,"w":366,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":11,"y":0,"w":366,"h":96}, "spriteSourceSize": {"x":11,"y":0,"w":366,"h":96},
@ -362,7 +370,7 @@
}, },
"sprites/buildings/cutter.png": "sprites/buildings/cutter.png":
{ {
"frame": {"x":275,"y":1517,"w":171,"h":96}, "frame": {"x":1500,"y":103,"w":171,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96},
@ -370,7 +378,7 @@
}, },
"sprites/buildings/hub.png": "sprites/buildings/hub.png":
{ {
"frame": {"x":3,"y":203,"w":366,"h":367}, "frame": {"x":3,"y":3,"w":366,"h":367},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":10,"w":366,"h":367}, "spriteSourceSize": {"x":9,"y":10,"w":366,"h":367},
@ -378,7 +386,7 @@
}, },
"sprites/buildings/miner-chainable.png": "sprites/buildings/miner-chainable.png":
{ {
"frame": {"x":381,"y":3,"w":91,"h":95}, "frame": {"x":1593,"y":303,"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},
@ -386,7 +394,7 @@
}, },
"sprites/buildings/miner.png": "sprites/buildings/miner.png":
{ {
"frame": {"x":381,"y":102,"w":91,"h":95}, "frame": {"x":1688,"y":303,"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},
@ -394,7 +402,7 @@
}, },
"sprites/buildings/mixer.png": "sprites/buildings/mixer.png":
{ {
"frame": {"x":296,"y":1417,"w":174,"h":96}, "frame": {"x":1513,"y":3,"w":174,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96},
@ -402,15 +410,23 @@
}, },
"sprites/buildings/painter-double.png": "sprites/buildings/painter-double.png":
{ {
"frame": {"x":3,"y":970,"w":192,"h":191}, "frame": {"x":569,"y":203,"w":192,"h":191},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":191}, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":191},
"sourceSize": {"w":192,"h":192} "sourceSize": {"w":192,"h":192}
}, },
"sprites/buildings/painter-mirrored.png":
{
"frame": {"x":947,"y":103,"w":192,"h":96},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":96},
"sourceSize": {"w":192,"h":96}
},
"sprites/buildings/painter-quad.png": "sprites/buildings/painter-quad.png":
{ {
"frame": {"x":3,"y":103,"w":374,"h":96}, "frame": {"x":373,"y":103,"w":374,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":374,"h":96}, "spriteSourceSize": {"x":3,"y":0,"w":374,"h":96},
@ -418,7 +434,7 @@
}, },
"sprites/buildings/painter.png": "sprites/buildings/painter.png":
{ {
"frame": {"x":3,"y":1265,"w":192,"h":96}, "frame": {"x":1317,"y":3,"w":192,"h":96},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96},
@ -426,7 +442,7 @@
}, },
"sprites/buildings/rotater-ccw.png": "sprites/buildings/rotater-ccw.png":
{ {
"frame": {"x":373,"y":649,"w":95,"h":96}, "frame": {"x":1736,"y":203,"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},
@ -434,7 +450,7 @@
}, },
"sprites/buildings/rotater.png": "sprites/buildings/rotater.png":
{ {
"frame": {"x":373,"y":749,"w":95,"h":96}, "frame": {"x":1106,"y":303,"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},
@ -442,7 +458,7 @@
}, },
"sprites/buildings/splitter-compact-inverse.png": "sprites/buildings/splitter-compact-inverse.png":
{ {
"frame": {"x":370,"y":946,"w":94,"h":91}, "frame": {"x":569,"y":398,"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},
@ -450,7 +466,7 @@
}, },
"sprites/buildings/splitter-compact.png": "sprites/buildings/splitter-compact.png":
{ {
"frame": {"x":199,"y":1166,"w":93,"h":91}, "frame": {"x":667,"y":398,"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},
@ -458,7 +474,7 @@
}, },
"sprites/buildings/splitter.png": "sprites/buildings/splitter.png":
{ {
"frame": {"x":3,"y":1665,"w":171,"h":96}, "frame": {"x":1461,"y":203,"w":171,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96},
@ -466,7 +482,7 @@
}, },
"sprites/buildings/stacker.png": "sprites/buildings/stacker.png":
{ {
"frame": {"x":3,"y":1365,"w":174,"h":96}, "frame": {"x":1322,"y":103,"w":174,"h":96},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96},
@ -474,7 +490,7 @@
}, },
"sprites/buildings/trash-storage.png": "sprites/buildings/trash-storage.png":
{ {
"frame": {"x":199,"y":970,"w":166,"h":192}, "frame": {"x":936,"y":203,"w":166,"h":192},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":166,"h":192}, "spriteSourceSize": {"x":14,"y":0,"w":166,"h":192},
@ -482,7 +498,7 @@
}, },
"sprites/buildings/trash.png": "sprites/buildings/trash.png":
{ {
"frame": {"x":373,"y":549,"w":96,"h":96}, "frame": {"x":1775,"y":103,"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},
@ -490,7 +506,7 @@
}, },
"sprites/buildings/underground_belt_entry-tier2.png": "sprites/buildings/underground_belt_entry-tier2.png":
{ {
"frame": {"x":274,"y":1617,"w":92,"h":83}, "frame": {"x":861,"y":399,"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},
@ -498,7 +514,7 @@
}, },
"sprites/buildings/underground_belt_entry.png": "sprites/buildings/underground_belt_entry.png":
{ {
"frame": {"x":370,"y":1617,"w":92,"h":74}, "frame": {"x":1875,"y":103,"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},
@ -506,7 +522,7 @@
}, },
"sprites/buildings/underground_belt_exit-tier2.png": "sprites/buildings/underground_belt_exit-tier2.png":
{ {
"frame": {"x":370,"y":1695,"w":92,"h":74}, "frame": {"x":1783,"y":303,"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},
@ -514,7 +530,7 @@
}, },
"sprites/buildings/underground_belt_exit.png": "sprites/buildings/underground_belt_exit.png":
{ {
"frame": {"x":274,"y":1704,"w":92,"h":74}, "frame": {"x":1055,"y":403,"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},
@ -522,7 +538,7 @@
}, },
"sprites/debug/acceptor_slot.png": "sprites/debug/acceptor_slot.png":
{ {
"frame": {"x":240,"y":1707,"w":26,"h":32}, "frame": {"x":1989,"y":304,"w":26,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32},
@ -530,7 +546,7 @@
}, },
"sprites/debug/ejector_slot.png": "sprites/debug/ejector_slot.png":
{ {
"frame": {"x":240,"y":1743,"w":26,"h":32}, "frame": {"x":1971,"y":116,"w":26,"h":32},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32},
@ -538,7 +554,7 @@
}, },
"sprites/map_overview/belt_forward.png": "sprites/map_overview/belt_forward.png":
{ {
"frame": {"x":181,"y":1365,"w":14,"h":16}, "frame": {"x":1208,"y":448,"w":14,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16},
@ -546,7 +562,7 @@
}, },
"sprites/map_overview/belt_left.png": "sprites/map_overview/belt_left.png":
{ {
"frame": {"x":342,"y":1166,"w":15,"h":15}, "frame": {"x":3,"y":474,"w":15,"h":15},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":1,"w":15,"h":15}, "spriteSourceSize": {"x":0,"y":1,"w":15,"h":15},
@ -554,7 +570,7 @@
}, },
"sprites/map_overview/belt_right.png": "sprites/map_overview/belt_right.png":
{ {
"frame": {"x":342,"y":1185,"w":15,"h":15}, "frame": {"x":22,"y":474,"w":15,"h":15},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":1,"w":15,"h":15}, "spriteSourceSize": {"x":1,"y":1,"w":15,"h":15},
@ -562,15 +578,23 @@
}, },
"sprites/misc/deletion_marker.png": "sprites/misc/deletion_marker.png":
{ {
"frame": {"x":296,"y":1166,"w":42,"h":42}, "frame": {"x":1971,"y":70,"w":42,"h":42},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42},
"sourceSize": {"w":48,"h":48} "sourceSize": {"w":48,"h":48}
}, },
"sprites/misc/hub_direction_indicator.png":
{
"frame": {"x":2001,"y":116,"w":16,"h":16},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":16,"h":16},
"sourceSize": {"w":16,"h":16}
},
"sprites/misc/slot_bad_arrow.png": "sprites/misc/slot_bad_arrow.png":
{ {
"frame": {"x":296,"y":1166,"w":42,"h":42}, "frame": {"x":1971,"y":70,"w":42,"h":42},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42},
@ -578,7 +602,7 @@
}, },
"sprites/misc/slot_good_arrow.png": "sprites/misc/slot_good_arrow.png":
{ {
"frame": {"x":3,"y":1782,"w":42,"h":48}, "frame": {"x":1729,"y":402,"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},
@ -586,7 +610,7 @@
}, },
"sprites/misc/storage_overlay.png": "sprites/misc/storage_overlay.png":
{ {
"frame": {"x":381,"y":201,"w":89,"h":44}, "frame": {"x":1208,"y":400,"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},
@ -594,7 +618,7 @@
}, },
"sprites/misc/waypoint.png": "sprites/misc/waypoint.png":
{ {
"frame": {"x":181,"y":1385,"w":14,"h":16}, "frame": {"x":1835,"y":270,"w":14,"h":16},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16},
@ -605,8 +629,8 @@
"version": "1.0", "version": "1.0",
"image": "atlas0_50.png", "image": "atlas0_50.png",
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":475,"h":1968}, "size": {"w":2020,"h":492},
"scale": "0.5", "scale": "0.5",
"smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 397 KiB

View File

@ -2,7 +2,7 @@
"sprites/belt/forward_0.png": "sprites/belt/forward_0.png":
{ {
"frame": {"x":1936,"y":151,"w":77,"h":95}, "frame": {"x":1963,"y":102,"w":77,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95},
@ -10,7 +10,7 @@
}, },
"sprites/belt/forward_1.png": "sprites/belt/forward_1.png":
{ {
"frame": {"x":1936,"y":250,"w":77,"h":95}, "frame": {"x":1963,"y":201,"w":77,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95},
@ -18,7 +18,7 @@
}, },
"sprites/belt/forward_2.png": "sprites/belt/forward_2.png":
{ {
"frame": {"x":1600,"y":708,"w":77,"h":95}, "frame": {"x":1967,"y":300,"w":77,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95},
@ -26,7 +26,7 @@
}, },
"sprites/belt/forward_3.png": "sprites/belt/forward_3.png":
{ {
"frame": {"x":1544,"y":808,"w":77,"h":95}, "frame": {"x":1967,"y":399,"w":77,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95},
@ -34,7 +34,7 @@
}, },
"sprites/belt/forward_4.png": "sprites/belt/forward_4.png":
{ {
"frame": {"x":1625,"y":807,"w":77,"h":95}, "frame": {"x":1967,"y":498,"w":77,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95},
@ -42,7 +42,7 @@
}, },
"sprites/belt/forward_5.png": "sprites/belt/forward_5.png":
{ {
"frame": {"x":1544,"y":907,"w":77,"h":95}, "frame": {"x":1679,"y":952,"w":77,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95},
@ -50,7 +50,7 @@
}, },
"sprites/belt/left_0.png": "sprites/belt/left_0.png":
{ {
"frame": {"x":1680,"y":593,"w":86,"h":86}, "frame": {"x":1217,"y":969,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86},
@ -58,7 +58,7 @@
}, },
"sprites/belt/left_1.png": "sprites/belt/left_1.png":
{ {
"frame": {"x":1770,"y":592,"w":86,"h":86}, "frame": {"x":1307,"y":969,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86},
@ -66,7 +66,7 @@
}, },
"sprites/belt/left_2.png": "sprites/belt/left_2.png":
{ {
"frame": {"x":1860,"y":592,"w":86,"h":86}, "frame": {"x":1916,"y":597,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86},
@ -74,7 +74,7 @@
}, },
"sprites/belt/left_3.png": "sprites/belt/left_3.png":
{ {
"frame": {"x":1681,"y":683,"w":86,"h":86}, "frame": {"x":1916,"y":687,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86},
@ -82,7 +82,7 @@
}, },
"sprites/belt/left_4.png": "sprites/belt/left_4.png":
{ {
"frame": {"x":1771,"y":682,"w":86,"h":86}, "frame": {"x":1916,"y":777,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86},
@ -90,7 +90,7 @@
}, },
"sprites/belt/left_5.png": "sprites/belt/left_5.png":
{ {
"frame": {"x":1861,"y":682,"w":86,"h":86}, "frame": {"x":1914,"y":867,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86},
@ -98,7 +98,7 @@
}, },
"sprites/belt/right_0.png": "sprites/belt/right_0.png":
{ {
"frame": {"x":1706,"y":773,"w":86,"h":86}, "frame": {"x":1499,"y":852,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86},
@ -106,7 +106,7 @@
}, },
"sprites/belt/right_1.png": "sprites/belt/right_1.png":
{ {
"frame": {"x":1796,"y":772,"w":86,"h":86}, "frame": {"x":1397,"y":967,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86},
@ -114,7 +114,7 @@
}, },
"sprites/belt/right_2.png": "sprites/belt/right_2.png":
{ {
"frame": {"x":1886,"y":772,"w":86,"h":86}, "frame": {"x":1589,"y":862,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86},
@ -122,7 +122,7 @@
}, },
"sprites/belt/right_3.png": "sprites/belt/right_3.png":
{ {
"frame": {"x":1716,"y":863,"w":86,"h":86}, "frame": {"x":1679,"y":862,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86},
@ -130,7 +130,7 @@
}, },
"sprites/belt/right_4.png": "sprites/belt/right_4.png":
{ {
"frame": {"x":1806,"y":862,"w":86,"h":86}, "frame": {"x":1499,"y":942,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86},
@ -138,7 +138,7 @@
}, },
"sprites/belt/right_5.png": "sprites/belt/right_5.png":
{ {
"frame": {"x":1896,"y":862,"w":86,"h":86}, "frame": {"x":1589,"y":952,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86},
@ -146,7 +146,7 @@
}, },
"sprites/blueprints/belt_left.png": "sprites/blueprints/belt_left.png":
{ {
"frame": {"x":1924,"y":349,"w":87,"h":87}, "frame": {"x":1397,"y":593,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":8,"w":87,"h":87}, "spriteSourceSize": {"x":0,"y":8,"w":87,"h":87},
@ -154,7 +154,7 @@
}, },
"sprites/blueprints/belt_right.png": "sprites/blueprints/belt_right.png":
{ {
"frame": {"x":1625,"y":906,"w":87,"h":87}, "frame": {"x":1397,"y":684,"w":87,"h":87},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":8,"w":87,"h":87}, "spriteSourceSize": {"x":8,"y":8,"w":87,"h":87},
@ -162,7 +162,7 @@
}, },
"sprites/blueprints/belt_top.png": "sprites/blueprints/belt_top.png":
{ {
"frame": {"x":1517,"y":709,"w":79,"h":95}, "frame": {"x":1963,"y":3,"w":79,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":8,"y":0,"w":79,"h":95}, "spriteSourceSize": {"x":8,"y":0,"w":79,"h":95},
@ -186,7 +186,7 @@
}, },
"sprites/blueprints/miner-chainable.png": "sprites/blueprints/miner-chainable.png":
{ {
"frame": {"x":1784,"y":299,"w":136,"h":143}, "frame": {"x":1827,"y":447,"w":136,"h":143},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143},
@ -194,7 +194,7 @@
}, },
"sprites/blueprints/miner.png": "sprites/blueprints/miner.png":
{ {
"frame": {"x":1544,"y":446,"w":136,"h":143}, "frame": {"x":1076,"y":739,"w":136,"h":143},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143},
@ -202,7 +202,7 @@
}, },
"sprites/blueprints/mixer.png": "sprites/blueprints/mixer.png":
{ {
"frame": {"x":1671,"y":151,"w":261,"h":144}, "frame": {"x":547,"y":738,"w":261,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":261,"h":144}, "spriteSourceSize": {"x":13,"y":0,"w":261,"h":144},
@ -216,6 +216,14 @@
"spriteSourceSize": {"x":0,"y":0,"w":288,"h":287}, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":287},
"sourceSize": {"w":288,"h":288} "sourceSize": {"w":288,"h":288}
}, },
"sprites/blueprints/painter-mirrored.png":
{
"frame": {"x":1119,"y":150,"w":288,"h":144},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":288,"h":144},
"sourceSize": {"w":288,"h":144}
},
"sprites/blueprints/painter-quad.png": "sprites/blueprints/painter-quad.png":
{ {
"frame": {"x":555,"y":3,"w":560,"h":144}, "frame": {"x":555,"y":3,"w":560,"h":144},
@ -226,7 +234,7 @@
}, },
"sprites/blueprints/painter.png": "sprites/blueprints/painter.png":
{ {
"frame": {"x":1119,"y":150,"w":288,"h":144}, "frame": {"x":1671,"y":3,"w":288,"h":144},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144},
@ -234,7 +242,7 @@
}, },
"sprites/blueprints/rotater-ccw.png": "sprites/blueprints/rotater-ccw.png":
{ {
"frame": {"x":1397,"y":445,"w":143,"h":144}, "frame": {"x":1639,"y":299,"w":143,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144},
@ -242,7 +250,7 @@
}, },
"sprites/blueprints/rotater.png": "sprites/blueprints/rotater.png":
{ {
"frame": {"x":1084,"y":594,"w":143,"h":144}, "frame": {"x":1786,"y":299,"w":143,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144},
@ -250,7 +258,7 @@
}, },
"sprites/blueprints/splitter-compact-inverse.png": "sprites/blueprints/splitter-compact-inverse.png":
{ {
"frame": {"x":1071,"y":742,"w":142,"h":138}, "frame": {"x":1071,"y":886,"w":142,"h":138},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":142,"h":138}, "spriteSourceSize": {"x":0,"y":2,"w":142,"h":138},
@ -258,7 +266,7 @@
}, },
"sprites/blueprints/splitter-compact.png": "sprites/blueprints/splitter-compact.png":
{ {
"frame": {"x":1217,"y":742,"w":139,"h":138}, "frame": {"x":1488,"y":594,"w":139,"h":138},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":2,"w":139,"h":138}, "spriteSourceSize": {"x":5,"y":2,"w":139,"h":138},
@ -266,7 +274,7 @@
}, },
"sprites/blueprints/splitter.png": "sprites/blueprints/splitter.png":
{ {
"frame": {"x":1119,"y":298,"w":256,"h":144}, "frame": {"x":811,"y":886,"w":256,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":17,"y":0,"w":256,"h":144}, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":144},
@ -274,7 +282,7 @@
}, },
"sprites/blueprints/stacker.png": "sprites/blueprints/stacker.png":
{ {
"frame": {"x":555,"y":590,"w":261,"h":144}, "frame": {"x":847,"y":591,"w":261,"h":144},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":13,"y":0,"w":261,"h":144}, "spriteSourceSize": {"x":13,"y":0,"w":261,"h":144},
@ -290,7 +298,7 @@
}, },
"sprites/blueprints/trash.png": "sprites/blueprints/trash.png":
{ {
"frame": {"x":1101,"y":446,"w":144,"h":144}, "frame": {"x":1241,"y":445,"w":144,"h":144},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144},
@ -298,7 +306,7 @@
}, },
"sprites/blueprints/underground_belt_entry-tier2.png": "sprites/blueprints/underground_belt_entry-tier2.png":
{ {
"frame": {"x":835,"y":885,"w":138,"h":125}, "frame": {"x":1774,"y":594,"w":138,"h":125},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":19,"w":138,"h":125}, "spriteSourceSize": {"x":4,"y":19,"w":138,"h":125},
@ -306,7 +314,7 @@
}, },
"sprites/blueprints/underground_belt_entry.png": "sprites/blueprints/underground_belt_entry.png":
{ {
"frame": {"x":1261,"y":884,"w":138,"h":112}, "frame": {"x":1774,"y":723,"w":138,"h":112},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":32,"w":138,"h":112}, "spriteSourceSize": {"x":4,"y":32,"w":138,"h":112},
@ -314,7 +322,7 @@
}, },
"sprites/blueprints/underground_belt_exit-tier2.png": "sprites/blueprints/underground_belt_exit-tier2.png":
{ {
"frame": {"x":1118,"y":884,"w":139,"h":112}, "frame": {"x":1488,"y":736,"w":139,"h":112},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":139,"h":112}, "spriteSourceSize": {"x":4,"y":0,"w":139,"h":112},
@ -322,7 +330,7 @@
}, },
"sprites/blueprints/underground_belt_exit.png": "sprites/blueprints/underground_belt_exit.png":
{ {
"frame": {"x":1397,"y":593,"w":138,"h":112}, "frame": {"x":1772,"y":839,"w":138,"h":112},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":4,"y":0,"w":138,"h":112}, "spriteSourceSize": {"x":4,"y":0,"w":138,"h":112},
@ -330,7 +338,7 @@
}, },
"sprites/buildings/belt_left.png": "sprites/buildings/belt_left.png":
{ {
"frame": {"x":1680,"y":593,"w":86,"h":86}, "frame": {"x":1217,"y":969,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86},
@ -338,7 +346,7 @@
}, },
"sprites/buildings/belt_right.png": "sprites/buildings/belt_right.png":
{ {
"frame": {"x":1706,"y":773,"w":86,"h":86}, "frame": {"x":1499,"y":852,"w":86,"h":86},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86},
@ -346,7 +354,7 @@
}, },
"sprites/buildings/belt_top.png": "sprites/buildings/belt_top.png":
{ {
"frame": {"x":1936,"y":151,"w":77,"h":95}, "frame": {"x":1963,"y":102,"w":77,"h":95},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95},
@ -362,7 +370,7 @@
}, },
"sprites/buildings/cutter.png": "sprites/buildings/cutter.png":
{ {
"frame": {"x":811,"y":738,"w":256,"h":143}, "frame": {"x":1119,"y":298,"w":256,"h":143},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":17,"y":0,"w":256,"h":143}, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":143},
@ -378,7 +386,7 @@
}, },
"sprites/buildings/miner-chainable.png": "sprites/buildings/miner-chainable.png":
{ {
"frame": {"x":1684,"y":446,"w":136,"h":142}, "frame": {"x":1101,"y":445,"w":136,"h":142},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142},
@ -386,7 +394,7 @@
}, },
"sprites/buildings/miner.png": "sprites/buildings/miner.png":
{ {
"frame": {"x":1824,"y":446,"w":136,"h":142}, "frame": {"x":1112,"y":593,"w":136,"h":142},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142},
@ -394,7 +402,7 @@
}, },
"sprites/buildings/mixer.png": "sprites/buildings/mixer.png":
{ {
"frame": {"x":547,"y":738,"w":260,"h":143}, "frame": {"x":812,"y":739,"w":260,"h":143},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143},
@ -408,6 +416,14 @@
"spriteSourceSize": {"x":0,"y":0,"w":288,"h":286}, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":286},
"sourceSize": {"w":288,"h":288} "sourceSize": {"w":288,"h":288}
}, },
"sprites/buildings/painter-mirrored.png":
{
"frame": {"x":1671,"y":151,"w":288,"h":144},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":288,"h":144},
"sourceSize": {"w":288,"h":144}
},
"sprites/buildings/painter-quad.png": "sprites/buildings/painter-quad.png":
{ {
"frame": {"x":555,"y":151,"w":560,"h":144}, "frame": {"x":555,"y":151,"w":560,"h":144},
@ -418,7 +434,7 @@
}, },
"sprites/buildings/painter.png": "sprites/buildings/painter.png":
{ {
"frame": {"x":1671,"y":3,"w":288,"h":144}, "frame": {"x":555,"y":590,"w":288,"h":144},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144},
@ -426,7 +442,7 @@
}, },
"sprites/buildings/rotater-ccw.png": "sprites/buildings/rotater-ccw.png":
{ {
"frame": {"x":1231,"y":594,"w":141,"h":143}, "frame": {"x":1537,"y":447,"w":141,"h":143},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143},
@ -434,7 +450,7 @@
}, },
"sprites/buildings/rotater.png": "sprites/buildings/rotater.png":
{ {
"frame": {"x":1639,"y":299,"w":141,"h":143}, "frame": {"x":1682,"y":447,"w":141,"h":143},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143},
@ -442,7 +458,7 @@
}, },
"sprites/buildings/splitter-compact-inverse.png": "sprites/buildings/splitter-compact-inverse.png":
{ {
"frame": {"x":547,"y":885,"w":141,"h":136}, "frame": {"x":1252,"y":593,"w":141,"h":136},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":3,"w":141,"h":136}, "spriteSourceSize": {"x":0,"y":3,"w":141,"h":136},
@ -450,7 +466,7 @@
}, },
"sprites/buildings/splitter-compact.png": "sprites/buildings/splitter-compact.png":
{ {
"frame": {"x":692,"y":885,"w":139,"h":136}, "frame": {"x":1631,"y":594,"w":139,"h":136},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":3,"w":139,"h":136}, "spriteSourceSize": {"x":5,"y":3,"w":139,"h":136},
@ -466,7 +482,7 @@
}, },
"sprites/buildings/stacker.png": "sprites/buildings/stacker.png":
{ {
"frame": {"x":820,"y":591,"w":260,"h":143}, "frame": {"x":547,"y":886,"w":260,"h":143},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143},
@ -482,7 +498,7 @@
}, },
"sprites/buildings/trash.png": "sprites/buildings/trash.png":
{ {
"frame": {"x":1249,"y":446,"w":144,"h":144}, "frame": {"x":1389,"y":445,"w":144,"h":144},
"rotated": false, "rotated": false,
"trimmed": false, "trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144},
@ -490,7 +506,7 @@
}, },
"sprites/buildings/underground_belt_entry-tier2.png": "sprites/buildings/underground_belt_entry-tier2.png":
{ {
"frame": {"x":977,"y":885,"w":137,"h":124}, "frame": {"x":1631,"y":734,"w":137,"h":124},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":20,"w":137,"h":124}, "spriteSourceSize": {"x":5,"y":20,"w":137,"h":124},
@ -498,7 +514,7 @@
}, },
"sprites/buildings/underground_belt_entry.png": "sprites/buildings/underground_belt_entry.png":
{ {
"frame": {"x":1539,"y":593,"w":137,"h":111}, "frame": {"x":1216,"y":739,"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},
@ -506,7 +522,7 @@
}, },
"sprites/buildings/underground_belt_exit-tier2.png": "sprites/buildings/underground_belt_exit-tier2.png":
{ {
"frame": {"x":1376,"y":709,"w":137,"h":111}, "frame": {"x":1217,"y":854,"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},
@ -514,7 +530,7 @@
}, },
"sprites/buildings/underground_belt_exit.png": "sprites/buildings/underground_belt_exit.png":
{ {
"frame": {"x":1403,"y":824,"w":137,"h":111}, "frame": {"x":1358,"y":852,"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},
@ -522,7 +538,7 @@
}, },
"sprites/debug/acceptor_slot.png": "sprites/debug/acceptor_slot.png":
{ {
"frame": {"x":1963,"y":3,"w":38,"h":48}, "frame": {"x":2006,"y":597,"w":38,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48},
@ -530,7 +546,7 @@
}, },
"sprites/debug/ejector_slot.png": "sprites/debug/ejector_slot.png":
{ {
"frame": {"x":1963,"y":55,"w":38,"h":48}, "frame": {"x":2006,"y":649,"w":38,"h":48},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48},
@ -538,7 +554,7 @@
}, },
"sprites/map_overview/belt_forward.png": "sprites/map_overview/belt_forward.png":
{ {
"frame": {"x":1625,"y":997,"w":20,"h":24}, "frame": {"x":1826,"y":955,"w":20,"h":24},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24},
@ -546,7 +562,7 @@
}, },
"sprites/map_overview/belt_left.png": "sprites/map_overview/belt_left.png":
{ {
"frame": {"x":3,"y":994,"w":22,"h":22}, "frame": {"x":206,"y":994,"w":22,"h":22},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":0,"y":2,"w":22,"h":22}, "spriteSourceSize": {"x":0,"y":2,"w":22,"h":22},
@ -554,7 +570,7 @@
}, },
"sprites/map_overview/belt_right.png": "sprites/map_overview/belt_right.png":
{ {
"frame": {"x":1963,"y":107,"w":22,"h":22}, "frame": {"x":2006,"y":701,"w":22,"h":22},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":22,"h":22}, "spriteSourceSize": {"x":2,"y":2,"w":22,"h":22},
@ -562,15 +578,23 @@
}, },
"sprites/misc/deletion_marker.png": "sprites/misc/deletion_marker.png":
{ {
"frame": {"x":1716,"y":953,"w":62,"h":62}, "frame": {"x":140,"y":994,"w":62,"h":62},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62},
"sourceSize": {"w":72,"h":72} "sourceSize": {"w":72,"h":72}
}, },
"sprites/misc/hub_direction_indicator.png":
{
"frame": {"x":1933,"y":299,"w":24,"h":24},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":24,"h":24},
"sourceSize": {"w":24,"h":24}
},
"sprites/misc/slot_bad_arrow.png": "sprites/misc/slot_bad_arrow.png":
{ {
"frame": {"x":1716,"y":953,"w":62,"h":62}, "frame": {"x":140,"y":994,"w":62,"h":62},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62},
@ -578,7 +602,7 @@
}, },
"sprites/misc/slot_good_arrow.png": "sprites/misc/slot_good_arrow.png":
{ {
"frame": {"x":1950,"y":592,"w":62,"h":72}, "frame": {"x":1760,"y":955,"w":62,"h":72},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":5,"y":0,"w":62,"h":72}, "spriteSourceSize": {"x":5,"y":0,"w":62,"h":72},
@ -586,7 +610,7 @@
}, },
"sprites/misc/storage_overlay.png": "sprites/misc/storage_overlay.png":
{ {
"frame": {"x":1403,"y":939,"w":133,"h":66}, "frame": {"x":3,"y":994,"w":133,"h":66},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":2,"w":133,"h":66}, "spriteSourceSize": {"x":2,"y":2,"w":133,"h":66},
@ -594,7 +618,7 @@
}, },
"sprites/misc/waypoint.png": "sprites/misc/waypoint.png":
{ {
"frame": {"x":1649,"y":997,"w":20,"h":24}, "frame": {"x":1933,"y":327,"w":20,"h":24},
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24},
@ -605,8 +629,8 @@
"version": "1.0", "version": "1.0",
"image": "atlas0_75.png", "image": "atlas0_75.png",
"format": "RGBA8888", "format": "RGBA8888",
"size": {"w":2016,"h":1024}, "size": {"w":2047,"h":1063},
"scale": "0.75", "scale": "0.75",
"smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 735 KiB

After

Width:  |  Height:  |  Size: 779 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

View File

@ -15,6 +15,11 @@ $buildingsAndVariants: belt, splitter, splitter-compact, splitter-compact-invers
} }
} }
// Special case
[data-icon="building_tutorials/painter-mirrored.png"] {
background-image: uiResource("res/ui/building_tutorials/painter.png") !important;
}
$icons: notification_saved, notification_success, notification_upgrade; $icons: notification_saved, notification_success, notification_upgrade;
@each $icon in $icons { @each $icon in $icons {
[data-icon="icons/#{$icon}.png"] { [data-icon="icons/#{$icon}.png"] {
@ -23,7 +28,7 @@ $icons: notification_saved, notification_success, notification_upgrade;
} }
$languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW, nb, mt-MT, ar, nl, vi, th, $languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW, nb, mt-MT, ar, nl, vi, th,
hu, pl, ja, kor; hu, pl, ja, kor, no, pt-PT;
@each $language in $languages { @each $language in $languages {
[data-languageicon="#{$language}"] { [data-languageicon="#{$language}"] {

View File

@ -122,6 +122,10 @@
color: #aaa; color: #aaa;
} }
a {
color: $colorBlueBright;
}
strong { strong {
font-weight: bold; font-weight: bold;
} }

View File

@ -47,6 +47,7 @@
opacity: 0.7; opacity: 0.7;
@include S(margin-bottom, 1px); @include S(margin-bottom, 1px);
font-weight: bold; font-weight: bold;
&:hover { &:hover {
opacity: 1; opacity: 1;
} }
@ -63,5 +64,29 @@
transform: scale(1.5); transform: scale(1.5);
} }
} }
&.hub {
// Transform because there is a canvas before
@include S(margin-left, -2px);
grid-template-columns: auto 1fr;
background: none !important;
@include S(padding-left, 0);
canvas {
@include S(width, 12px);
@include S(height, 12px);
@include S(margin-right, 1px);
}
}
&.shapeIcon {
canvas {
@include S(width, 15px);
@include S(height, 15px);
pointer-events: none;
// Double invert, to make sure it has the right color
@include DarkThemeInvert();
}
}
} }
} }

View File

@ -37,6 +37,7 @@
.languageChoose { .languageChoose {
@include S(border-radius, 8px); @include S(border-radius, 8px);
border: solid #222428; border: solid #222428;
background-color: #fff;
@include S(border-width, 2px); @include S(border-width, 2px);
background-size: cover; background-size: cover;
} }

View File

@ -1,4 +1,32 @@
export const CHANGELOG = [ export const CHANGELOG = [
{
version: "1.1.14",
date: "unreleased",
entries: [
"There is now an indicator (compass) to the HUB for the HUB Marker!",
"You can now include shape short keys in markers to render shape icons instead of text!",
"Added mirrored variant of the painter",
],
},
{
version: "1.1.13",
date: "15.06.2020",
entries: [
"Added shift modifier for faster pan (by jaysc)",
"Added Japanese translations",
"Added Portuguese (Portugal) translations",
"Updated icon for Spanish (Latin America) - It was showing a Spanish flag before",
"Updated existing translations",
],
},
{
version: "1.1.12",
date: "14.06.2020",
entries: [
"Huge performance improvements! The game should now run up to 60% faster!",
"Added norwegian translation",
],
},
{ {
version: "1.1.11", version: "1.1.11",
date: "13.06.2020", date: "13.06.2020",

View File

@ -11,7 +11,7 @@ import { T } from "../../translations";
import { formatItemsPerSecond } from "../../core/utils"; import { formatItemsPerSecond } from "../../core/utils";
/** @enum {string} */ /** @enum {string} */
export const enumPainterVariants = { double: "double", quad: "quad" }; export const enumPainterVariants = { mirrored: "mirrored", double: "double", quad: "quad" };
export class MetaPainterBuilding extends MetaBuilding { export class MetaPainterBuilding extends MetaBuilding {
constructor() { constructor() {
@ -21,6 +21,7 @@ export class MetaPainterBuilding extends MetaBuilding {
getDimensions(variant) { getDimensions(variant) {
switch (variant) { switch (variant) {
case defaultBuildingVariant: case defaultBuildingVariant:
case enumPainterVariants.mirrored:
return new Vector(2, 1); return new Vector(2, 1);
case enumPainterVariants.double: case enumPainterVariants.double:
return new Vector(2, 2); return new Vector(2, 2);
@ -42,7 +43,8 @@ export class MetaPainterBuilding extends MetaBuilding {
*/ */
getAdditionalStatistics(root, variant) { getAdditionalStatistics(root, variant) {
switch (variant) { switch (variant) {
case defaultBuildingVariant: { case defaultBuildingVariant:
case enumPainterVariants.mirrored: {
const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.painter); const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.painter);
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]]; return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
} }
@ -61,7 +63,7 @@ export class MetaPainterBuilding extends MetaBuilding {
* @param {GameRoot} root * @param {GameRoot} root
*/ */
getAvailableVariants(root) { getAvailableVariants(root) {
let variants = [defaultBuildingVariant]; let variants = [defaultBuildingVariant, enumPainterVariants.mirrored];
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_double)) { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_double)) {
variants.push(enumPainterVariants.double); variants.push(enumPainterVariants.double);
} }
@ -116,7 +118,8 @@ export class MetaPainterBuilding extends MetaBuilding {
*/ */
updateVariants(entity, rotationVariant, variant) { updateVariants(entity, rotationVariant, variant) {
switch (variant) { switch (variant) {
case defaultBuildingVariant: { case defaultBuildingVariant:
case enumPainterVariants.mirrored: {
entity.components.ItemAcceptor.setSlots([ entity.components.ItemAcceptor.setSlots([
{ {
pos: new Vector(0, 0), pos: new Vector(0, 0),
@ -125,7 +128,9 @@ export class MetaPainterBuilding extends MetaBuilding {
}, },
{ {
pos: new Vector(1, 0), pos: new Vector(1, 0),
directions: [enumDirection.top], directions: [
variant === defaultBuildingVariant ? enumDirection.top : enumDirection.bottom,
],
filter: enumItemAcceptorItemFilter.color, filter: enumItemAcceptorItemFilter.color,
}, },
]); ]);

View File

@ -901,8 +901,12 @@ export class Camera extends BasicSerializableObject {
forceX += 1; forceX += 1;
} }
this.center.x += moveAmount * forceX * this.root.app.settings.getMovementSpeed(); let movementSpeed =
this.center.y += moveAmount * forceY * this.root.app.settings.getMovementSpeed(); this.root.app.settings.getMovementSpeed() *
(actionMapper.getBinding(KEYMAPPINGS.navigation.mapMoveFaster).isCurrentlyPressed() ? 4 : 1);
this.center.x += moveAmount * forceX * movementSpeed;
this.center.y += moveAmount * forceY * movementSpeed;
} }
} }
} }

View File

@ -64,7 +64,7 @@ export class BeltComponent extends Component {
/** /**
* Returns if the belt can currently accept an item from the given direction * Returns if the belt can currently accept an item from the given direction
*/ */
canAcceptItem(leftoverProgress = 0.0) { canAcceptItem() {
const firstItem = this.sortedItems[0]; const firstItem = this.sortedItems[0];
if (!firstItem) { if (!firstItem) {
return true; return true;

View File

@ -20,6 +20,14 @@ export const enumItemAcceptorItemFilter = {
* filter?: enumItemAcceptorItemFilter * filter?: enumItemAcceptorItemFilter
* }} ItemAcceptorSlot */ * }} ItemAcceptorSlot */
/**
* Contains information about a slot plus its location
* @typedef {{
* slot: ItemAcceptorSlot,
* index: number,
* acceptedDirection: enumDirection
* }} ItemAcceptorLocatedSlot */
export class ItemAcceptorComponent extends Component { export class ItemAcceptorComponent extends Component {
static getId() { static getId() {
return "ItemAcceptor"; return "ItemAcceptor";
@ -164,11 +172,7 @@ export class ItemAcceptorComponent extends Component {
* Tries to find a slot which accepts the current item * Tries to find a slot which accepts the current item
* @param {Vector} targetLocalTile * @param {Vector} targetLocalTile
* @param {enumDirection} fromLocalDirection * @param {enumDirection} fromLocalDirection
* @returns {{ * @returns {ItemAcceptorLocatedSlot|null}
* slot: ItemAcceptorSlot,
* index: number,
* acceptedDirection: enumDirection
* }|null}
*/ */
findMatchingSlot(targetLocalTile, fromLocalDirection) { findMatchingSlot(targetLocalTile, fromLocalDirection) {
// We need to invert our direction since the acceptor specifies *from* which direction // We need to invert our direction since the acceptor specifies *from* which direction

View File

@ -92,6 +92,9 @@ export class GameSystemManager {
add("staticMapEntities", StaticMapEntitySystem); add("staticMapEntities", StaticMapEntitySystem);
// IMPORTANT: Must be after belt system since belt system can change the
// orientation of an entity after it is placed -> the item acceptor cache
// then would be invalid
add("itemAcceptor", ItemAcceptorSystem); add("itemAcceptor", ItemAcceptorSystem);
logger.log("📦 There are", this.systemUpdateOrder.length, "game systems"); logger.log("📦 There are", this.systemUpdateOrder.length, "game systems");

View File

@ -1,5 +1,5 @@
import { makeOffscreenBuffer } from "../../../core/buffer_utils"; import { makeOffscreenBuffer } from "../../../core/buffer_utils";
import { Math_max } from "../../../core/builtins"; import { Math_max, Math_PI, Math_radians } from "../../../core/builtins";
import { globalConfig, IS_DEMO } from "../../../core/config"; import { globalConfig, IS_DEMO } from "../../../core/config";
import { DrawParameters } from "../../../core/draw_parameters"; import { DrawParameters } from "../../../core/draw_parameters";
import { Loader } from "../../../core/loader"; import { Loader } from "../../../core/loader";
@ -7,7 +7,7 @@ import { DialogWithForm } from "../../../core/modal_dialog_elements";
import { FormElementInput } from "../../../core/modal_dialog_forms"; import { FormElementInput } from "../../../core/modal_dialog_forms";
import { Rectangle } from "../../../core/rectangle"; import { Rectangle } from "../../../core/rectangle";
import { STOP_PROPAGATION } from "../../../core/signal"; import { STOP_PROPAGATION } from "../../../core/signal";
import { arrayDeleteValue, lerp, makeDiv, removeAllChildren } from "../../../core/utils"; import { arrayDeleteValue, lerp, makeDiv, removeAllChildren, clamp } from "../../../core/utils";
import { Vector } from "../../../core/vector"; import { Vector } from "../../../core/vector";
import { T } from "../../../translations"; import { T } from "../../../translations";
import { enumMouseButton } from "../../camera"; import { enumMouseButton } from "../../camera";
@ -15,16 +15,26 @@ import { KEYMAPPINGS } from "../../key_action_mapper";
import { BaseHUDPart } from "../base_hud_part"; import { BaseHUDPart } from "../base_hud_part";
import { DynamicDomAttach } from "../dynamic_dom_attach"; import { DynamicDomAttach } from "../dynamic_dom_attach";
import { enumNotificationType } from "./notifications"; import { enumNotificationType } from "./notifications";
import { ShapeDefinition } from "../../shape_definition";
/** @typedef {{ /** @typedef {{
* label: string, * label: string | null,
* center: { x: number, y: number }, * center: { x: number, y: number },
* zoomLevel: number, * zoomLevel: number
* deletable: boolean
* }} Waypoint */ * }} Waypoint */
/**
* Used when a shape icon is rendered instead
*/
const SHAPE_LABEL_PLACEHOLDER = " ";
export class HUDWaypoints extends BaseHUDPart { export class HUDWaypoints extends BaseHUDPart {
/**
* Creates the overview of waypoints
* @param {HTMLElement} parent
*/
createElements(parent) { createElements(parent) {
// Create the helper box on the lower right when zooming out
if (this.root.app.settings.getAllSettings().offerHints) { if (this.root.app.settings.getAllSettings().offerHints) {
this.hintElement = makeDiv( this.hintElement = makeDiv(
parent, parent,
@ -42,17 +52,23 @@ export class HUDWaypoints extends BaseHUDPart {
); );
} }
this.waypointSprite = Loader.getSprite("sprites/misc/waypoint.png"); // Create the waypoint list on the upper right
this.waypointsListElement = makeDiv(parent, "ingame_HUD_Waypoints", [], "Waypoints"); this.waypointsListElement = makeDiv(parent, "ingame_HUD_Waypoints", [], "Waypoints");
} }
/**
* Serializes the waypoints
*/
serialize() { serialize() {
return { return {
waypoints: this.waypoints, waypoints: this.waypoints,
}; };
} }
/**
* Deserializes the waypoints
* @param {{waypoints: Array<Waypoint>}} data
*/
deserialize(data) { deserialize(data) {
if (!data || !data.waypoints || !Array.isArray(data.waypoints)) { if (!data || !data.waypoints || !Array.isArray(data.waypoints)) {
return "Invalid waypoints data"; return "Invalid waypoints data";
@ -61,21 +77,97 @@ export class HUDWaypoints extends BaseHUDPart {
this.rerenderWaypointList(); this.rerenderWaypointList();
} }
/**
* Initializes everything
*/
initialize() {
// Cache the sprite for the waypoints
this.waypointSprite = Loader.getSprite("sprites/misc/waypoint.png");
this.directionIndicatorSprite = Loader.getSprite("sprites/misc/hub_direction_indicator.png");
/** @type {Array<Waypoint>}
*/
this.waypoints = [
{
label: null,
center: { x: 0, y: 0 },
zoomLevel: 3,
},
];
// Create a buffer we can use to measure text
this.dummyBuffer = makeOffscreenBuffer(1, 1, {
reusable: false,
label: "waypoints-measure-canvas",
})[1];
// Dynamically attach/detach the lower right hint in the map overview
if (this.hintElement) {
this.domAttach = new DynamicDomAttach(this.root, this.hintElement);
}
// Catch mouse and key events
this.root.camera.downPreHandler.add(this.onMouseDown, this);
this.root.keyMapper
.getBinding(KEYMAPPINGS.navigation.createMarker)
.add(this.requestCreateMarker, this);
/**
* Stores at how much opacity the markers should be rendered on the map.
* This is interpolated over multiple frames so we have some sort of fade effect
*/
this.currentMarkerOpacity = 1;
this.currentCompassOpacity = 0;
// Create buffer which is used to indicate the hub direction
const [canvas, context] = makeOffscreenBuffer(48, 48, {
smooth: true,
reusable: false,
label: "waypoints-compass",
});
this.compassBuffer = { canvas, context };
/**
* Stores a cache from a shape short key to its canvas representation
*/
this.cachedKeyToCanvas = {};
// Initial render
this.rerenderWaypointList();
}
/**
* Re-renders the waypoint list to account for changes
*/
rerenderWaypointList() { rerenderWaypointList() {
removeAllChildren(this.waypointsListElement); removeAllChildren(this.waypointsListElement);
this.cleanupClickDetectors(); this.cleanupClickDetectors();
for (let i = 0; i < this.waypoints.length; ++i) { for (let i = 0; i < this.waypoints.length; ++i) {
const waypoint = this.waypoints[i]; const waypoint = this.waypoints[i];
const label = this.getWaypointLabel(waypoint);
const element = makeDiv(this.waypointsListElement, null, ["waypoint"]); const element = makeDiv(this.waypointsListElement, null, ["waypoint"]);
element.innerText = waypoint.label;
if (waypoint.deletable) { if (ShapeDefinition.isValidShortKey(label)) {
const canvas = this.getWaypointCanvas(waypoint);
element.appendChild(canvas);
element.classList.add("shapeIcon");
} else {
element.innerText = label;
}
if (this.isWaypointDeletable(waypoint)) {
const deleteButton = makeDiv(element, null, ["deleteButton"]); const deleteButton = makeDiv(element, null, ["deleteButton"]);
this.trackClicks(deleteButton, () => this.deleteWaypoint(waypoint)); this.trackClicks(deleteButton, () => this.deleteWaypoint(waypoint));
} }
if (!waypoint.label) {
// This must be the hub label
element.classList.add("hub");
element.insertBefore(this.compassBuffer.canvas, element.childNodes[0]);
}
this.trackClicks(element, () => this.moveToWaypoint(waypoint), { this.trackClicks(element, () => this.moveToWaypoint(waypoint), {
targetOnly: true, targetOnly: true,
}); });
@ -83,6 +175,7 @@ export class HUDWaypoints extends BaseHUDPart {
} }
/** /**
* Moves the camera to a given waypoint
* @param {Waypoint} waypoint * @param {Waypoint} waypoint
*/ */
moveToWaypoint(waypoint) { moveToWaypoint(waypoint) {
@ -91,6 +184,7 @@ export class HUDWaypoints extends BaseHUDPart {
} }
/** /**
* Deletes a waypoint from the list
* @param {Waypoint} waypoint * @param {Waypoint} waypoint
*/ */
deleteWaypoint(waypoint) { deleteWaypoint(waypoint) {
@ -98,86 +192,131 @@ export class HUDWaypoints extends BaseHUDPart {
this.rerenderWaypointList(); this.rerenderWaypointList();
} }
initialize() { /**
/** @type {Array<Waypoint>} * Gets the canvas for a given waypoint
*/ * @param {Waypoint} waypoint
this.waypoints = [ * @returns {HTMLCanvasElement}
{ */
label: T.ingame.waypoints.hub, getWaypointCanvas(waypoint) {
center: { x: 0, y: 0 }, const key = waypoint.label;
zoomLevel: 3, if (this.cachedKeyToCanvas[key]) {
deletable: false, return this.cachedKeyToCanvas[key];
},
];
this.dummyBuffer = makeOffscreenBuffer(1, 1, {
reusable: false,
label: "waypoints-measure-canvas",
})[1];
this.root.camera.downPreHandler.add(this.onMouseDown, this);
if (this.hintElement) {
this.domAttach = new DynamicDomAttach(this.root, this.hintElement);
} }
this.root.keyMapper assert(ShapeDefinition.isValidShortKey(key), "Invalid short key: " + key);
.getBinding(KEYMAPPINGS.navigation.createMarker) const definition = ShapeDefinition.fromShortKey(key);
.add(this.requestCreateMarker, this); const preRendered = definition.generateAsCanvas(48);
return (this.cachedKeyToCanvas[key] = preRendered);
this.currentMarkerOpacity = 1;
this.rerenderWaypointList();
} }
/** /**
* Requests to create a marker at the current camera position. If worldPos is set,
* uses that position instead.
* @param {Vector=} worldPos Override the world pos, otherwise it is the camera position * @param {Vector=} worldPos Override the world pos, otherwise it is the camera position
*/ */
requestCreateMarker(worldPos = null) { requestCreateMarker(worldPos = null) {
// Construct dialog with input field
const markerNameInput = new FormElementInput({ const markerNameInput = new FormElementInput({
id: "markerName", id: "markerName",
label: null, label: null,
placeholder: "", placeholder: "",
validator: val => val.length > 0 && val.length < 15, validator: val => val.length > 0 && (val.length < 15 || ShapeDefinition.isValidShortKey(val)),
}); });
const dialog = new DialogWithForm({ const dialog = new DialogWithForm({
app: this.root.app, app: this.root.app,
title: T.dialogs.createMarker.title, title: T.dialogs.createMarker.title,
desc: T.dialogs.createMarker.desc, desc: T.dialogs.createMarker.desc,
formElements: [markerNameInput], formElements: [markerNameInput],
}); });
this.root.hud.parts.dialogs.internalShowDialog(dialog); this.root.hud.parts.dialogs.internalShowDialog(dialog);
// Compute where to create the marker
const center = worldPos || this.root.camera.center; const center = worldPos || this.root.camera.center;
dialog.buttonSignals.ok.add(() => { dialog.buttonSignals.ok.add(() => {
// Show info that you can have only N markers in the demo,
// actually show this *after* entering the name so you want the
// standalone even more (I'm evil :P)
if (IS_DEMO && this.waypoints.length > 2) { if (IS_DEMO && this.waypoints.length > 2) {
this.root.hud.parts.dialogs.showFeatureRestrictionInfo("", T.dialogs.markerDemoLimit.desc); this.root.hud.parts.dialogs.showFeatureRestrictionInfo("", T.dialogs.markerDemoLimit.desc);
return; return;
} }
this.waypoints.push({ // Actually create the waypoint
label: markerNameInput.getValue(), this.addWaypoint(markerNameInput.getValue(), center);
center: { x: center.x, y: center.y },
zoomLevel: Math_max(this.root.camera.zoomLevel, globalConfig.mapChunkOverviewMinZoom + 0.05),
deletable: true,
});
this.waypoints.sort((a, b) => a.label.padStart(20, "0").localeCompare(b.label.padStart(20, "0")));
this.root.hud.signals.notification.dispatch(
T.ingame.waypoints.creationSuccessNotification,
enumNotificationType.success
);
this.rerenderWaypointList();
}); });
} }
/**
* Adds a new waypoint at the given location with the given label
* @param {string} label
* @param {Vector} position
*/
addWaypoint(label, position) {
this.waypoints.push({
label,
center: { x: position.x, y: position.y },
// Make sure the zoom is *just* a bit above the zoom level where the map overview
// starts, so you always see all buildings
zoomLevel: Math_max(this.root.camera.zoomLevel, globalConfig.mapChunkOverviewMinZoom + 0.05),
});
// Sort waypoints by name
this.waypoints.sort((a, b) => {
if (!a.label) {
return -1;
}
if (!b.label) {
return 1;
}
return this.getWaypointLabel(a)
.padEnd(20, "0")
.localeCompare(this.getWaypointLabel(b).padEnd(20, "0"));
});
// Show notification about creation
this.root.hud.signals.notification.dispatch(
T.ingame.waypoints.creationSuccessNotification,
enumNotificationType.success
);
// Re-render the list and thus add it
this.rerenderWaypointList();
}
/**
* Called every frame to update stuff
*/
update() { update() {
if (this.domAttach) { if (this.domAttach) {
this.domAttach.update(this.root.camera.getIsMapOverlayActive()); this.domAttach.update(this.root.camera.getIsMapOverlayActive());
} }
} }
/**
* Returns the label for a given waypoint
* @param {Waypoint} waypoint
* @returns {string}
*/
getWaypointLabel(waypoint) {
return waypoint.label || T.ingame.waypoints.hub;
}
/**
* Returns if a waypoint is deletable
* @param {Waypoint} waypoint
* @returns {boolean}
*/
isWaypointDeletable(waypoint) {
return waypoint.label !== null;
}
/**
* Finds the currently intersected waypoint on the map overview under
* the cursor.
*
* @returns {Waypoint | null}
*/
findCurrentIntersectedWaypoint() { findCurrentIntersectedWaypoint() {
const mousePos = this.root.app.mousePosition; const mousePos = this.root.app.mousePosition;
if (!mousePos) { if (!mousePos) {
@ -197,10 +336,18 @@ export class HUDWaypoints extends BaseHUDPart {
const screenPos = this.root.camera.worldToScreen( const screenPos = this.root.camera.worldToScreen(
new Vector(waypoint.center.x, waypoint.center.y) new Vector(waypoint.center.x, waypoint.center.y)
); );
let label = this.getWaypointLabel(waypoint);
// Special case for icons
if (ShapeDefinition.isValidShortKey(label)) {
label = SHAPE_LABEL_PLACEHOLDER;
}
const intersectionRect = new Rectangle( const intersectionRect = new Rectangle(
screenPos.x - 7 * scale, screenPos.x - 7 * scale,
screenPos.y - 12 * scale, screenPos.y - 12 * scale,
15 * scale + this.dummyBuffer.measureText(waypoint.label).width, 15 * scale + this.dummyBuffer.measureText(label).width,
15 * scale 15 * scale
); );
if (intersectionRect.containsPoint(mousePos.x, mousePos.y)) { if (intersectionRect.containsPoint(mousePos.x, mousePos.y)) {
@ -210,7 +357,7 @@ export class HUDWaypoints extends BaseHUDPart {
} }
/** /**
* * Mouse-Down handler
* @param {Vector} pos * @param {Vector} pos
* @param {enumMouseButton} button * @param {enumMouseButton} button
*/ */
@ -221,7 +368,7 @@ export class HUDWaypoints extends BaseHUDPart {
this.root.soundProxy.playUiClick(); this.root.soundProxy.playUiClick();
this.moveToWaypoint(waypoint); this.moveToWaypoint(waypoint);
} else if (button === enumMouseButton.right) { } else if (button === enumMouseButton.right) {
if (waypoint.deletable) { if (this.isWaypointDeletable(waypoint)) {
this.root.soundProxy.playUiClick(); this.root.soundProxy.playUiClick();
this.deleteWaypoint(waypoint); this.deleteWaypoint(waypoint);
} else { } else {
@ -243,50 +390,111 @@ export class HUDWaypoints extends BaseHUDPart {
} }
/** /**
* * Rerenders the compass
*/
rerenderWaypointsCompass() {
const context = this.compassBuffer.context;
const dims = 48;
context.clearRect(0, 0, dims, dims);
const indicatorSize = 30;
const cameraPos = this.root.camera.center;
const distanceToHub = cameraPos.length();
const compassVisible = distanceToHub > (10 * globalConfig.tileSize) / this.root.camera.zoomLevel;
const targetCompassAlpha = compassVisible ? 1 : 0;
this.currentCompassOpacity = lerp(this.currentCompassOpacity, targetCompassAlpha, 0.08);
if (this.currentCompassOpacity > 0.01) {
context.globalAlpha = this.currentCompassOpacity;
const angle = cameraPos.angle() + Math_radians(45) + Math_PI / 2;
context.translate(dims / 2, dims / 2);
context.rotate(angle);
this.directionIndicatorSprite.drawCentered(context, 0, 0, indicatorSize);
context.rotate(-angle);
context.translate(-dims / 2, -dims / 2);
context.globalAlpha = 1;
}
const iconOpacity = 1 - this.currentCompassOpacity;
if (iconOpacity > 0.01) {
// Draw icon
context.globalAlpha = iconOpacity;
this.waypointSprite.drawCentered(context, dims / 2, dims / 2, dims * 0.7);
context.globalAlpha = 1;
}
}
/**
* Draws the waypoints on the map
* @param {DrawParameters} parameters * @param {DrawParameters} parameters
*/ */
draw(parameters) { draw(parameters) {
const desiredOpacity = this.root.camera.getIsMapOverlayActive() ? 1 : 0; const desiredOpacity = this.root.camera.getIsMapOverlayActive() ? 1 : 0;
this.currentMarkerOpacity = lerp(this.currentMarkerOpacity, desiredOpacity, 0.08); this.currentMarkerOpacity = lerp(this.currentMarkerOpacity, desiredOpacity, 0.08);
this.rerenderWaypointsCompass();
// Don't render with low opacity
if (this.currentMarkerOpacity < 0.01) { if (this.currentMarkerOpacity < 0.01) {
return; return;
} }
// Find waypoint below cursor
const selected = this.findCurrentIntersectedWaypoint(); const selected = this.findCurrentIntersectedWaypoint();
// Determine rendering scale
const scale = (1 / this.root.camera.zoomLevel) * this.root.app.getEffectiveUiScale(); const scale = (1 / this.root.camera.zoomLevel) * this.root.app.getEffectiveUiScale();
// Render all of 'em
for (let i = 0; i < this.waypoints.length; ++i) { for (let i = 0; i < this.waypoints.length; ++i) {
const waypoint = this.waypoints[i]; const waypoint = this.waypoints[i];
const pos = waypoint.center; const pos = waypoint.center;
parameters.context.globalAlpha = this.currentMarkerOpacity * (selected === waypoint ? 1 : 0.7); parameters.context.globalAlpha = this.currentMarkerOpacity * (selected === waypoint ? 1 : 0.7);
const yOffset = -5 * scale; const yOffset = -5 * scale;
const originalLabel = this.getWaypointLabel(waypoint);
let renderLabel = originalLabel;
let isShapeIcon = false;
if (ShapeDefinition.isValidShortKey(originalLabel)) {
renderLabel = SHAPE_LABEL_PLACEHOLDER;
isShapeIcon = true;
}
// Render the background rectangle
parameters.context.font = "bold " + 12 * scale + "px GameFont"; parameters.context.font = "bold " + 12 * scale + "px GameFont";
parameters.context.fillStyle = "rgba(255, 255, 255, 0.7)"; parameters.context.fillStyle = "rgba(255, 255, 255, 0.7)";
parameters.context.fillRect( parameters.context.fillRect(
pos.x - 7 * scale, pos.x - 7 * scale,
pos.y - 12 * scale, pos.y - 12 * scale,
15 * scale + this.dummyBuffer.measureText(waypoint.label).width / this.root.camera.zoomLevel, 15 * scale + this.dummyBuffer.measureText(renderLabel).width / this.root.camera.zoomLevel,
15 * scale 15 * scale
); );
parameters.context.fillStyle = "#000"; // Render the text
parameters.context.textAlign = "left"; if (isShapeIcon) {
parameters.context.textBaseline = "middle"; const canvas = this.getWaypointCanvas(waypoint);
parameters.context.fillText(waypoint.label, pos.x + 6 * scale, pos.y + 0.5 * scale + yOffset); parameters.context.drawImage(
canvas,
parameters.context.textBaseline = "alphabetic"; pos.x + 6 * scale,
parameters.context.textAlign = "left"; pos.y - 11.5 * scale,
14 * scale,
14 * scale
);
} else {
// Render the text
parameters.context.fillStyle = "#000";
parameters.context.textBaseline = "middle";
parameters.context.fillText(renderLabel, pos.x + 6 * scale, pos.y + 0.5 * scale + yOffset);
parameters.context.textBaseline = "alphabetic";
}
// Render the small icon on the left
this.waypointSprite.drawCentered(parameters.context, pos.x, pos.y + yOffset, 10 * scale); this.waypointSprite.drawCentered(parameters.context, pos.x, pos.y + yOffset, 10 * scale);
} }
parameters.context.globalAlpha = 1; parameters.context.globalAlpha = 1;
} }
} }

View File

@ -33,6 +33,7 @@ export const KEYMAPPINGS = {
mapMoveRight: { keyCode: key("D") }, mapMoveRight: { keyCode: key("D") },
mapMoveDown: { keyCode: key("S") }, mapMoveDown: { keyCode: key("S") },
mapMoveLeft: { keyCode: key("A") }, mapMoveLeft: { keyCode: key("A") },
mapMoveFaster: { keyCode: 16 }, //shift
centerMap: { keyCode: 32 }, // SPACE centerMap: { keyCode: 32 }, // SPACE
mapZoomIn: { keyCode: 187, repeated: true }, // "+" mapZoomIn: { keyCode: 187, repeated: true }, // "+"

View File

@ -70,6 +70,12 @@ export function createSimpleShape(layers) {
return layers; return layers;
} }
/**
* Cache which shapes are valid short keys and which not
* @type {Map<string, boolean>}
*/
const SHORT_KEY_CACHE = new Map();
export class ShapeDefinition extends BasicSerializableObject { export class ShapeDefinition extends BasicSerializableObject {
static getId() { static getId() {
return "ShapeDefinition"; return "ShapeDefinition";
@ -114,6 +120,8 @@ export class ShapeDefinition extends BasicSerializableObject {
/** /**
* Generates the definition from the given short key * Generates the definition from the given short key
* @param {string} key
* @returns {ShapeDefinition}
*/ */
static fromShortKey(key) { static fromShortKey(key) {
const sourceLayers = key.split(":"); const sourceLayers = key.split(":");
@ -147,6 +155,81 @@ export class ShapeDefinition extends BasicSerializableObject {
return definition; return definition;
} }
/**
* Checks if a given string is a valid short key
* @param {string} key
* @returns {boolean}
*/
static isValidShortKey(key) {
if (SHORT_KEY_CACHE.has(key)) {
return SHORT_KEY_CACHE.get(key);
}
const result = ShapeDefinition.isValidShortKeyInternal(key);
SHORT_KEY_CACHE.set(key, result);
return result;
}
/**
* INTERNAL
* Checks if a given string is a valid short key
* @param {string} key
* @returns {boolean}
*/
static isValidShortKeyInternal(key) {
const sourceLayers = key.split(":");
let layers = [];
for (let i = 0; i < sourceLayers.length; ++i) {
const text = sourceLayers[i];
if (text.length !== 8) {
return false;
}
/** @type {ShapeLayer} */
const quads = [null, null, null, null];
let anyFilled = false;
for (let quad = 0; quad < 4; ++quad) {
const shapeText = text[quad * 2 + 0];
const colorText = text[quad * 2 + 1];
const subShape = enumShortcodeToSubShape[shapeText];
const color = enumShortcodeToColor[colorText];
// Valid shape
if (subShape) {
if (!color) {
// Invalid color
return false;
}
quads[quad] = {
subShape,
color,
};
anyFilled = true;
} else if (shapeText === "-") {
// Make sure color is empty then, too
if (colorText !== "-") {
return false;
}
} else {
// Invalid shape key
return false;
}
}
if (!anyFilled) {
// Empty layer
return false;
}
layers.push(quads);
}
if (layers.length === 0 || layers.length > 4) {
return false;
}
return true;
}
/** /**
* Internal method to clone the shape definition * Internal method to clone the shape definition
* @returns {Array<ShapeLayer>} * @returns {Array<ShapeLayer>}

View File

@ -1,4 +1,4 @@
import { Math_radians, Math_min, Math_max } from "../../core/builtins"; import { Math_radians, Math_min, Math_max, Math_sqrt } from "../../core/builtins";
import { globalConfig } from "../../core/config"; import { globalConfig } from "../../core/config";
import { DrawParameters } from "../../core/draw_parameters"; import { DrawParameters } from "../../core/draw_parameters";
import { Loader } from "../../core/loader"; import { Loader } from "../../core/loader";
@ -15,6 +15,7 @@ import { GameRoot } from "../root";
import { createLogger } from "../../core/logging"; import { createLogger } from "../../core/logging";
const BELT_ANIM_COUNT = 6; const BELT_ANIM_COUNT = 6;
const SQRT_2 = Math_sqrt(2);
const logger = createLogger("belt"); const logger = createLogger("belt");
@ -211,6 +212,7 @@ export class BeltSystem extends GameSystemWithFilter {
this.root.hubGoals.getBeltBaseSpeed() * this.root.hubGoals.getBeltBaseSpeed() *
this.root.dynamicTickrate.deltaSeconds * this.root.dynamicTickrate.deltaSeconds *
globalConfig.itemSpacingOnBelts; globalConfig.itemSpacingOnBelts;
if (G_IS_DEV && globalConfig.debug.instantBelts) { if (G_IS_DEV && globalConfig.debug.instantBelts) {
beltSpeed *= 100; beltSpeed *= 100;
} }
@ -229,35 +231,43 @@ export class BeltSystem extends GameSystemWithFilter {
const ejectorComp = entity.components.ItemEjector; const ejectorComp = entity.components.ItemEjector;
let maxProgress = 1; let maxProgress = 1;
/* PERFORMANCE OPTIMIZATION */
// Original:
// const isCurrentlyEjecting = ejectorComp.isAnySlotEjecting();
// Replaced (Since belts always have just one slot):
const ejectorSlot = ejectorComp.slots[0];
const isCurrentlyEjecting = ejectorSlot.item;
// When ejecting, we can not go further than the item spacing since it // When ejecting, we can not go further than the item spacing since it
// will be on the corner // will be on the corner
if (ejectorComp.isAnySlotEjecting()) { if (isCurrentlyEjecting) {
maxProgress = 1 - globalConfig.itemSpacingOnBelts; maxProgress = 1 - globalConfig.itemSpacingOnBelts;
} else { } else {
// Otherwise our progress depends on the follow up // Otherwise our progress depends on the follow up
if (followUp) { if (followUp) {
const spacingOnBelt = followUp.components.Belt.getDistanceToFirstItemCenter(); const spacingOnBelt = followUp.components.Belt.getDistanceToFirstItemCenter();
maxProgress = Math_min(2, 1 - globalConfig.itemSpacingOnBelts + spacingOnBelt); maxProgress = Math.min(2, 1 - globalConfig.itemSpacingOnBelts + spacingOnBelt);
assert(maxProgress >= 0.0, "max progress < 0 (I)");
// Useful check, but hurts performance
// assert(maxProgress >= 0.0, "max progress < 0 (I)");
} }
} }
let speedMultiplier = 1; let speedMultiplier = 1;
if (beltComp.direction !== enumDirection.top) { if (beltComp.direction !== enumDirection.top) {
// Shaped belts are longer, thus being quicker // Curved belts are shorter, thus being quicker (Looks weird otherwise)
speedMultiplier = 1.41; speedMultiplier = SQRT_2;
} }
// Not really nice. haven't found the reason for this yet. // Not really nice. haven't found the reason for this yet.
if (items.length > 2 / globalConfig.itemSpacingOnBelts) { if (items.length > 2 / globalConfig.itemSpacingOnBelts) {
logger.error("Fixing broken belt:", entity, items);
beltComp.sortedItems = []; beltComp.sortedItems = [];
} }
for (let itemIndex = items.length - 1; itemIndex >= 0; --itemIndex) { for (let itemIndex = items.length - 1; itemIndex >= 0; --itemIndex) {
const progressAndItem = items[itemIndex]; const progressAndItem = items[itemIndex];
progressAndItem[0] = Math_min(maxProgress, progressAndItem[0] + speedMultiplier * beltSpeed); progressAndItem[0] = Math.min(maxProgress, progressAndItem[0] + speedMultiplier * beltSpeed);
if (progressAndItem[0] >= 1.0) { if (progressAndItem[0] >= 1.0) {
if (followUp) { if (followUp) {
@ -273,14 +283,18 @@ export class BeltSystem extends GameSystemWithFilter {
} }
} else { } else {
// Try to give this item to a new belt // Try to give this item to a new belt
const freeSlot = ejectorComp.getFirstFreeSlot();
if (freeSlot === null) { /* PERFORMANCE OPTIMIZATION */
// Original:
// const freeSlot = ejectorComp.getFirstFreeSlot();
// Replaced
if (ejectorSlot.item) {
// So, we don't have a free slot - damned! // So, we don't have a free slot - damned!
progressAndItem[0] = 1.0; progressAndItem[0] = 1.0;
maxProgress = 1 - globalConfig.itemSpacingOnBelts; maxProgress = 1 - globalConfig.itemSpacingOnBelts;
} else { } else {
// We got a free slot, remove this item and keep it on the ejector slot // We got a free slot, remove this item and keep it on the ejector slot
if (!ejectorComp.tryEject(freeSlot, progressAndItem[1])) { if (!ejectorComp.tryEject(0, progressAndItem[1])) {
assert(false, "Ejection failed"); assert(false, "Ejection failed");
} }
items.splice(itemIndex, 1); items.splice(itemIndex, 1);
@ -290,7 +304,7 @@ export class BeltSystem extends GameSystemWithFilter {
} }
} else { } else {
// We just moved this item forward, so determine the maximum progress of other items // We just moved this item forward, so determine the maximum progress of other items
maxProgress = Math_max(0, progressAndItem[0] - globalConfig.itemSpacingOnBelts); maxProgress = Math.max(0, progressAndItem[0] - globalConfig.itemSpacingOnBelts);
} }
} }
} }

View File

@ -6,19 +6,40 @@ import { ItemEjectorComponent } from "../components/item_ejector";
import { Entity } from "../entity"; import { Entity } from "../entity";
import { GameSystemWithFilter } from "../game_system_with_filter"; import { GameSystemWithFilter } from "../game_system_with_filter";
import { Math_min } from "../../core/builtins"; import { Math_min } from "../../core/builtins";
import { createLogger } from "../../core/logging";
const logger = createLogger("systems/ejector");
export class ItemEjectorSystem extends GameSystemWithFilter { export class ItemEjectorSystem extends GameSystemWithFilter {
constructor(root) { constructor(root) {
super(root, [ItemEjectorComponent]); super(root, [ItemEjectorComponent]);
/**
* @type {Array<{
* targetEntity: Entity,
* sourceSlot: import("../components/item_ejector").ItemEjectorSlot,
* destSlot: import("../components/item_acceptor").ItemAcceptorLocatedSlot
* }>}
*/
this.cache = [];
this.cacheNeedsUpdate = true;
this.root.signals.entityAdded.add(this.invalidateCache, this);
this.root.signals.entityDestroyed.add(this.invalidateCache, this);
} }
update() { invalidateCache() {
const effectiveBeltSpeed = this.root.hubGoals.getBeltBaseSpeed() * globalConfig.itemSpacingOnBelts; this.cacheNeedsUpdate = true;
let progressGrowth = (effectiveBeltSpeed / 0.5) * this.root.dynamicTickrate.deltaSeconds; }
if (G_IS_DEV && globalConfig.debug.instantBelts) { /**
progressGrowth = 1; * Precomputes the cache, which makes up for a huge performance improvement
} */
recomputeCache() {
logger.log("Recomputing cache");
const cache = [];
// Try to find acceptors for every ejector // Try to find acceptors for every ejector
for (let i = 0; i < this.allEntities.length; ++i) { for (let i = 0; i < this.allEntities.length; ++i) {
@ -29,17 +50,6 @@ export class ItemEjectorSystem extends GameSystemWithFilter {
// For every ejector slot, try to find an acceptor // For every ejector slot, try to find an acceptor
for (let ejectorSlotIndex = 0; ejectorSlotIndex < ejectorComp.slots.length; ++ejectorSlotIndex) { for (let ejectorSlotIndex = 0; ejectorSlotIndex < ejectorComp.slots.length; ++ejectorSlotIndex) {
const ejectorSlot = ejectorComp.slots[ejectorSlotIndex]; const ejectorSlot = ejectorComp.slots[ejectorSlotIndex];
const ejectingItem = ejectorSlot.item;
if (!ejectingItem) {
// No item ejected
continue;
}
ejectorSlot.progress = Math_min(1, ejectorSlot.progress + progressGrowth);
if (ejectorSlot.progress < 1.0) {
// Still ejecting
continue;
}
// Figure out where and into which direction we eject items // Figure out where and into which direction we eject items
const ejectSlotWsTile = staticComp.localTileToWorld(ejectorSlot.pos); const ejectSlotWsTile = staticComp.localTileToWorld(ejectorSlot.pos);
@ -71,20 +81,63 @@ export class ItemEjectorSystem extends GameSystemWithFilter {
continue; continue;
} }
if (!targetAcceptorComp.canAcceptItem(matchingSlot.index, ejectingItem)) { // Ok we found a connection
// Can not accept item cache.push({
continue; targetEntity,
} sourceSlot: ejectorSlot,
destSlot: matchingSlot,
});
}
}
if (this.tryPassOverItem(ejectingItem, targetEntity, matchingSlot.index)) { this.cache = cache;
targetAcceptorComp.onItemAccepted( logger.log("Found", cache.length, "entries to update");
matchingSlot.index, }
matchingSlot.acceptedDirection,
ejectingItem update() {
); if (this.cacheNeedsUpdate) {
ejectorSlot.item = null; this.cacheNeedsUpdate = false;
continue; this.recomputeCache();
} }
// Precompute effective belt speed
const effectiveBeltSpeed = this.root.hubGoals.getBeltBaseSpeed() * globalConfig.itemSpacingOnBelts;
let progressGrowth = (effectiveBeltSpeed / 0.5) * this.root.dynamicTickrate.deltaSeconds;
if (G_IS_DEV && globalConfig.debug.instantBelts) {
progressGrowth = 1;
}
// Go over all cache entries
for (let i = 0; i < this.cache.length; ++i) {
const { sourceSlot, destSlot, targetEntity } = this.cache[i];
const item = sourceSlot.item;
if (!item) {
// No item available to be ejected
continue;
}
// Advance items on the slot
sourceSlot.progress = Math_min(1, sourceSlot.progress + progressGrowth);
// Check if we are still in the process of ejecting, can't proceed then
if (sourceSlot.progress < 1.0) {
continue;
}
// Check if the target acceptor can actually accept this item
const targetAcceptorComp = targetEntity.components.ItemAcceptor;
if (!targetAcceptorComp.canAcceptItem(destSlot.index, item)) {
continue;
}
// Try to hand over the item
if (this.tryPassOverItem(item, targetEntity, destSlot.index)) {
// Handover successful, clear slot
targetAcceptorComp.onItemAccepted(destSlot.index, destSlot.acceptedDirection, item);
sourceSlot.item = null;
continue;
} }
} }
} }

View File

@ -20,12 +20,30 @@ export const LANGUAGES = {
code: "fr", code: "fr",
region: "", region: "",
}, },
"ja": {
name: "日本語",
data: require("./built-temp/base-ja.json"),
code: "ja",
region: "",
},
"pt-PT": {
name: "Português (Portugal)",
data: require("./built-temp/base-pt-PT.json"),
code: "pt",
region: "PT",
},
"pt-BR": { "pt-BR": {
name: "Português (Brasil)", name: "Português (Brasil)",
data: require("./built-temp/base-pt-BR.json"), data: require("./built-temp/base-pt-BR.json"),
code: "pt", code: "pt",
region: "BR", region: "BR",
}, },
"ru": {
name: "Русский",
data: require("./built-temp/base-ru.json"),
code: "ru",
region: "",
},
"cs": { "cs": {
name: "Čeština", name: "Čeština",
data: require("./built-temp/base-cz.json"), data: require("./built-temp/base-cz.json"),
@ -44,12 +62,6 @@ export const LANGUAGES = {
code: "pl", code: "pl",
region: "", region: "",
}, },
"ru": {
name: "Русский",
data: require("./built-temp/base-ru.json"),
code: "ru",
region: "",
},
"kor": { "kor": {
name: "한국어", name: "한국어",
data: require("./built-temp/base-kor.json"), data: require("./built-temp/base-kor.json"),
@ -62,4 +74,10 @@ export const LANGUAGES = {
code: "nl", code: "nl",
region: "", region: "",
}, },
"no": {
name: "Norsk",
data: require("./built-temp/base-no.json"),
code: "no",
region: "",
},
}; };

View File

@ -13,6 +13,7 @@ import { getSavegameInterface, savegameInterfaces } from "./savegame_interface_r
import { SavegameInterface_V1001 } from "./schemas/1001"; import { SavegameInterface_V1001 } from "./schemas/1001";
import { SavegameInterface_V1002 } from "./schemas/1002"; import { SavegameInterface_V1002 } from "./schemas/1002";
import { SavegameInterface_V1003 } from "./schemas/1003"; import { SavegameInterface_V1003 } from "./schemas/1003";
import { SavegameInterface_V1004 } from "./schemas/1004";
const logger = createLogger("savegame"); const logger = createLogger("savegame");
@ -44,7 +45,7 @@ export class Savegame extends ReadWriteProxy {
* @returns {number} * @returns {number}
*/ */
static getCurrentVersion() { static getCurrentVersion() {
return 1003; return 1004;
} }
/** /**
@ -98,6 +99,11 @@ export class Savegame extends ReadWriteProxy {
data.version = 1003; data.version = 1003;
} }
if (data.version === 1003) {
SavegameInterface_V1004.migrate1003to1004(data);
data.version = 1004;
}
return ExplainedResult.good(); return ExplainedResult.good();
} }

View File

@ -4,6 +4,7 @@ import { createLogger } from "../core/logging";
import { SavegameInterface_V1001 } from "./schemas/1001"; import { SavegameInterface_V1001 } from "./schemas/1001";
import { SavegameInterface_V1002 } from "./schemas/1002"; import { SavegameInterface_V1002 } from "./schemas/1002";
import { SavegameInterface_V1003 } from "./schemas/1003"; import { SavegameInterface_V1003 } from "./schemas/1003";
import { SavegameInterface_V1004 } from "./schemas/1004";
/** @type {Object.<number, typeof BaseSavegameInterface>} */ /** @type {Object.<number, typeof BaseSavegameInterface>} */
export const savegameInterfaces = { export const savegameInterfaces = {
@ -11,6 +12,7 @@ export const savegameInterfaces = {
1001: SavegameInterface_V1001, 1001: SavegameInterface_V1001,
1002: SavegameInterface_V1002, 1002: SavegameInterface_V1002,
1003: SavegameInterface_V1003, 1003: SavegameInterface_V1003,
1004: SavegameInterface_V1004,
}; };
const logger = createLogger("savegame_interface_registry"); const logger = createLogger("savegame_interface_registry");

View File

@ -0,0 +1,36 @@
import { createLogger } from "../../core/logging.js";
import { SavegameInterface_V1003 } from "./1003.js";
const schema = require("./1004.json");
const logger = createLogger("savegame_interface/1004");
export class SavegameInterface_V1004 extends SavegameInterface_V1003 {
getVersion() {
return 1004;
}
getSchemaUncached() {
return schema;
}
/**
* @param {import("../savegame_typedefs.js").SavegameData} data
*/
static migrate1003to1004(data) {
logger.log("Migrating 1003 to 1004");
const dump = data.dump;
if (!dump) {
return true;
}
// The hub simply has an empty label
const waypointData = dump.waypoints.waypoints;
for (let i = 0; i < waypointData.length; ++i) {
const waypoint = waypointData[i];
if (!waypoint.deletable) {
waypoint.label = null;
}
delete waypoint.deletable;
}
}
}

View File

@ -0,0 +1,5 @@
{
"type": "object",
"required": [],
"additionalProperties": true
}

View File

@ -19,12 +19,13 @@ The base translation is `base-en.yaml`. It will always contain the latest phrase
- [Swedish](base-sv.yaml) - [Swedish](base-sv.yaml)
- [Chinese (Simplified)](base-zh-CN.yaml) - [Chinese (Simplified)](base-zh-CN.yaml)
- [Chinese (Traditional)](base-zh-TW.yaml) - [Chinese (Traditional)](base-zh-TW.yaml)
- [Spanish](base-es.yaml) - [Spanish (Latin America)](base-es.yaml)
- [Hungarian](base-hu.yaml) - [Hungarian](base-hu.yaml)
- [Turkish](base-tr.yaml) - [Turkish](base-tr.yaml)
- [Japanese](base-ja.yaml) - [Japanese](base-ja.yaml)
- [Lithuanian](base-lt.yaml) - [Lithuanian](base-lt.yaml)
- [Arabic](base-ar.yaml) - [Arabic](base-ar.yaml)
- [Norwegian](base-no.yaml)
(If you want to translate into a new language, see below!) (If you want to translate into a new language, see below!)

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -731,6 +731,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -231,21 +231,21 @@ dialogs:
createMarker: createMarker:
title: Nová značka title: Nová značka
desc: Dejte jí smysluplné jméno desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: V ukázce můžete vytvořit pouze dvě značky. Získejte plnou verzi pro neomezený počet značek! desc: V ukázce můžete vytvořit pouze dvě značky. Získejte plnou verzi pro neomezený počet značek!
massCutConfirm: massCutConfirm:
title: Confirm cut title: Potvrdit vyjmutí
desc: >- desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you Chceš vyjmout spoustu budov (přesněji řečeno <count>)! Vážně to
want to do this? chceš udělat?
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot title: Exportuj snímek obrazovky
desc: >- desc: >-
You requested to export your base as a screenshot. Please note that this can Zažádal jsi o exportování své základny jako obrázek. Měj prosím na paměti, že to
be quite slow for a big base and even crash your game! může zejména u větších základen dlouho trvat, nebo dokonce shodit hru!
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
@ -262,7 +262,7 @@ ingame:
placeBuilding: Položit budovu placeBuilding: Položit budovu
createMarker: Vytvořit značku createMarker: Vytvořit značku
delete: Zničit delete: Zničit
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Vložit poslední plán
# Everything related to placing buildings (I.e. as soon as you selected a building # Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar) # from the toolbar)
@ -301,7 +301,7 @@ ingame:
# Mass select information, this is when you hold CTRL and then drag with your mouse # Mass select information, this is when you hold CTRL and then drag with your mouse
# to select multiple buildings # to select multiple buildings
massSelect: massSelect:
infoText: Press <keyCut> to cut, <keyCopy> to copy, <keyDelete> to remove and <keyCancel> to cancel. infoText: Stiskni <keyCut> pro vyjmutí, <keyCopy> pro kopírování a <keyDelete> pro zbourání. <keyCancel> ruší výběr.
# The "Upgrades" window # The "Upgrades" window
shop: shop:
@ -622,11 +622,11 @@ settings:
Vybere motiv (světlý / tmavý). Vybere motiv (světlý / tmavý).
themes: themes:
dark: Dark dark: Tmavý
light: Light light: Světlý
refreshRate: refreshRate:
title: Cíl simulace title: Obnovovací frekvence
description: >- description: >-
Pokud máte 144 Hz monitor, změňte si rychlost obnovování obrazu. Toto nastavení může snížit FPS, pokud máte pomalý počítač. Pokud máte 144 Hz monitor, změňte si rychlost obnovování obrazu. Toto nastavení může snížit FPS, pokud máte pomalý počítač.
@ -641,15 +641,15 @@ settings:
Pokud zapnuté, budou se ve hře zobrazovat tipy a nápovědy. Také schová určité elementy na obrazovce pro jednodušší dostání se do hry. Pokud zapnuté, budou se ve hře zobrazovat tipy a nápovědy. Také schová určité elementy na obrazovce pro jednodušší dostání se do hry.
movementSpeed: movementSpeed:
title: Movement speed title: Rychlost kamery
description: Changes how fast the view moves when using the keyboard. description: Mění, jak rychle se kamera posouvá při použití klávesnice.
speeds: speeds:
super_slow: Super slow super_slow: Hodně pomalá
slow: Slow slow: Pomalá
regular: Regular regular: Normální
fast: Fast fast: Rychlá
super_fast: Super Fast super_fast: Hodně Rychlá
extremely_fast: Extremely Fast extremely_fast: Extrémně Rychlá
keybindings: keybindings:
title: Klávesové zkratky title: Klávesové zkratky
@ -674,6 +674,7 @@ keybindings:
mapMoveRight: Posun doprava mapMoveRight: Posun doprava
mapMoveDown: Posun dolů mapMoveDown: Posun dolů
mapMoveLeft: Posun doleva mapMoveLeft: Posun doleva
mapMoveFaster: Rychlejší posun
centerMap: Vycentrovat mapu centerMap: Vycentrovat mapu
mapZoomIn: Přiblížit mapZoomIn: Přiblížit
@ -711,29 +712,29 @@ keybindings:
placementDisableAutoOrientation: Zrušit automatickou orientaci placementDisableAutoOrientation: Zrušit automatickou orientaci
placeMultiple: Zůstat ve stavebním módu placeMultiple: Zůstat ve stavebním módu
placeInverse: Přepnout automatickou orientaci pásů placeInverse: Přepnout automatickou orientaci pásů
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Vložit poslední plán
massSelectCut: Cut area massSelectCut: Vyjmout oblast
exportScreenshot: Export whole Base as Image exportScreenshot: Exportovat celou základnu jako obrázek
about: about:
title: O hře title: O hře
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" Tato hra je open source a je vyvíjená <a href="https://github.com/tobspr"
target="_blank">Tobias Springer</a> (this is me).<br><br> target="_blank">Tobiasem Springerem</a> (česky neumí, ale je to fakt frajer :) ).<br><br>
If you want to contribute, check out <a href="<githublink>" Pokud se chceš na hře podílet, podívej se na <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io na githubu</a>.<br><br>
This game wouldn't have been possible without the great discord community Tato hra by nebyla ani možná bez skvělé discord komunity
around my games - You should really join the <a href="<discordlink>" okolo Tobiasových her - Vážně by ses měl přijít mrknout na <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" Soundtrack udělal <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - Je úžasnej.<br><br>
Finally, huge thanks to my best friend <a V neposlední řadě by Tobias (já jen tlumočím) rád poděkoval skvělému kamarádovi <a
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our href="https://github.com/niklas-dahl" target="_blank">Niklasi</a> - Bez hodin strávených
factorio sessions this game would never have existed. u factoria by tato hra nikdy neexistovala.
changelog: changelog:
title: Seznam změn title: Seznam změn
@ -744,6 +745,6 @@ demo:
importingGames: Importování uložených her importingGames: Importování uložených her
oneGameLimit: Omezeno pouze na jednu uloženou hru oneGameLimit: Omezeno pouze na jednu uloženou hru
customizeKeybindings: Změna klávesových zkratek customizeKeybindings: Změna klávesových zkratek
exportingBase: Exporting whole Base as Image exportingBase: Exportovat celou základnu jako obrázek
settingNotAvailable: Nedostupné v demo verzi. settingNotAvailable: Nedostupné v demo verzi.

View File

@ -249,7 +249,7 @@ dialogs:
createMarker: createMarker:
title: Neuer Marker title: Neuer Marker
desc: Gib ihm einen sinnvollen Namen desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: Du kannst nur 2 benutzerdefinierte Marker in der Demo benutzen. Hol dir die Standalone um unendlich viele Marker zu benutzen! desc: Du kannst nur 2 benutzerdefinierte Marker in der Demo benutzen. Hol dir die Standalone um unendlich viele Marker zu benutzen!
@ -294,10 +294,10 @@ ingame:
Taste: <key> Taste: <key>
infoTexts: infoTexts:
speed: Geschwindigkeit speed: Geschw.
range: Reichweite range: Reichweite
storage: Kapazität storage: Kapazität
oneItemPerSecond: 1 Item / Sekunde oneItemPerSecond: 1 Item / s
itemsPerSecond: <x> Items / s itemsPerSecond: <x> Items / s
itemsPerSecondDouble: (x2) itemsPerSecondDouble: (x2)
@ -574,12 +574,12 @@ storyRewards:
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
title: Next level title: Nächstes Level
desc: >- desc: >-
This level gave you no reward, but the next one will! <br><br> PS: Better don't destroy your existing factory - You need <strong>all</strong> those shapes later again to <strong>unlock upgrades</strong>! This level gave you no reward, but the next one will! <br><br> PS: Better don't destroy your existing factory - You need <strong>all</strong> those shapes later again to <strong>unlock upgrades</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Next level title: Nächstes Level
desc: >- desc: >-
Congratulations! By the way, more content is planned for the standalone! Congratulations! By the way, more content is planned for the standalone!
@ -735,6 +735,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: Über dieses Spiel title: Über dieses Spiel

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -733,6 +733,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -255,7 +255,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -478,7 +478,12 @@ buildings:
painter: painter:
default: default:
name: &painter Painter name: &painter Painter
description: Colors the whole shape on the left input with the color from the top input. description: &painter_desc Colors the whole shape on the left input with the color from the top input.
mirrored:
name: *painter
description: *painter_desc
double: double:
name: Painter (Double) name: Painter (Double)
description: Colors the shapes on the left inputs with the color from the top input. description: Colors the shapes on the left inputs with the color from the top input.
@ -691,6 +696,7 @@ keybindings:
mapMoveRight: Move Right mapMoveRight: Move Right
mapMoveDown: Move Down mapMoveDown: Move Down
mapMoveLeft: Move Left mapMoveLeft: Move Left
mapMoveFaster: Move Faster
centerMap: Center Map centerMap: Center Map
mapZoomIn: Zoom in mapZoomIn: Zoom in

View File

@ -246,7 +246,7 @@ dialogs:
createMarker: createMarker:
title: Nueva marca title: Nueva marca
desc: Dale un nombre representativo desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: solo puedes crear dos marcas en la versión de prueba. Obtén el juego completo para marcas ilimitadas! desc: solo puedes crear dos marcas en la versión de prueba. Obtén el juego completo para marcas ilimitadas!
@ -721,6 +721,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: Sobre el Juego title: Sobre el Juego

View File

@ -21,7 +21,7 @@
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
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 complexes dans une carte infinie. 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 complexes sur une carte infinie.
# 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. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
@ -30,11 +30,11 @@ steamPage:
longText: >- longText: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
shapez.io est un jeu ayant pour objectif d'automatiser la création et la fusion de formes à l'aide d'une usine. Livrez les formes de plus en plus complexes requises pour progresser dans le jeu et débloquez des améliorations qui accéléreront votre chaîne de production. shapez.io est un jeu ayant pour objectif d'automatiser la création et la fusion de formes à l'aide d'une usine. Livrez des formes de plus en plus complexes requises pour progresser dans le jeu et débloquez des améliorations qui accéléreront votre chaîne de production.
La demande allant croissant, vous aurez à adapter l'échelle de votre usine afin de suivre la demande - Ne négligez pas les resources cependant, vous aurez à vous étendre sur une [b]carte infinie[/b] ! La demande allant croissant, vous aurez à adapter l'échelle de votre usine afin de suivre la demande - Ne négligez pas les resources cependant, vous aurez à vous étendre sur une [b]carte infinie[/b] !
Les formes seules pouvant devenir ennuyeuses à la longue vous aurez à mélanger des couleurs et les utiliser pour peindre vos formes - Combinez des pigments rouges, verts ou bleus pour produire différentes couleurs et enduisez-en vos formes afin de satisfaire les demandes. Traiter seulement des formes pouvant devenir monotone à la longue, vous aurez aussi à mélanger des couleurs et à les utiliser pour peindre vos formes - Combinez des pigments rouges, verts ou bleus pour produire différentes couleurs et enduisez-en vos formes afin de satisfaire les demandes.
Ce jeu propose 18 niveaux (qui devraient d'ores et déjà vous occuper pour de nombreuses heures !) mais j'ajoute régulièrement de nouveaux contenus - Beaucoup de nouveautés sont prévues ! Ce jeu propose 18 niveaux (qui devraient d'ores et déjà vous occuper pour de nombreuses heures !) mais j'ajoute régulièrement de nouveaux contenus - Beaucoup de nouveautés sont prévues !
@ -61,7 +61,7 @@ steamPage:
[*] Création configurable de carte (éditer le nombre et la taille des gisements de resources, édition de la graine générant la carte, et plus encore) [*] Création configurable de carte (éditer le nombre et la taille des gisements de resources, édition de la graine générant la carte, et plus encore)
[*] Davantage de types de formes [*] Davantage de types de formes
[*] Performance améliorée (bien que le jeu tourne déjà de manière tout à fait décente !) [*] Performance améliorée (bien que le jeu tourne déjà de manière tout à fait décente !)
[*] Adaptation de l'affichage des couleurs à différente forme de daltonisme [*] Adaptation de l'affichage des couleurs à différentes formes de daltonisme
[*] Et bien plus encore ! [*] Et bien plus encore !
[/list] [/list]
@ -115,14 +115,15 @@ 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: Version démo title: Version démo
intro: >- intro: >-
Achetez la version complète pour débloquer toutes les fonctionnalités! Achetez la version complète pour débloquer toutes les fonctionnalités !
mainMenu: mainMenu:
play: Jouer play: Jouer
changelog: Historique changelog: Historique
importSavegame: Importer importSavegame: Importer
openSourceHint: Ce jeu est open source! openSourceHint: Ce jeu est open source !
discordLink: Serveur Discord officiel discordLink: Serveur Discord officiel
helpTranslate: Contribuez à la traduction !
# 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: >-
@ -134,26 +135,25 @@ mainMenu:
contests: contests:
contest_01_03062020: contest_01_03062020:
title: "Concours #01" title: "Concours #01"
desc: Gagnez <strong>$25</strong> pour l'usine la plus cool! desc: Gagnez <strong>$25</strong> pour l'usine la plus cool !
longDesc: >- longDesc: >-
Pour vous remercier, j'ai pensé qu'il serait bien de faire un concours hebdomadaire! Pour vous remercier, j'ai pensé qu'il serait bien de faire un concours hebdomadaire !
<br><br> <br><br>
<strong>Le sujet de cette semaine:</strong> Construire l'usine la plus cool! <strong>Le sujet de cette semaine:</strong> Construire l'usine la plus cool !
<br><br> <br><br>
Voici comment faire:<br> Voici comment faire:<br>
<ul class="bucketList"> <ul class="bucketList">
<li>Envoyez une capture d'écran de votre usine à <strong>contest@shapez.io</strong></li> <li>Envoyez une capture d'écran de votre usine à <strong>contest@shapez.io</strong></li>
<li>Vous aurez des points bonus si vous la partagez sur les réseaux sociaux!</li> <li>Vous aurez des points bonus si vous la partagez sur les réseaux sociaux !</li>
<li>Je choisirai 5 images et les soumettrai au vote à la communauté <strong>discord</strong>.</li> <li>Je choisirai 5 images et les soumettrai au vote à la communauté <strong>discord</strong>.</li>
<li>Le gagnant empoche <strong>$25</strong> (Paypal, carte cadeau Amazon, ce que vous préférez)</li> <li>Le gagnant empoche <strong>$25</strong> (Paypal, carte cadeau Amazon, ce que vous préférez)</li>
<li>Limite: 07.06.2020 AM 12:00 CEST</li> <li>Limite: 07.06.2020 AM 12:00 CEST</li>
</ul> </ul>
<br> <br>
J'attends avec impatience de voir vos superbes créations! J'attends avec impatience de voir vos superbes créations !
showInfo: Voir showInfo: Voir
contestOver: Ce concours est terminé - Rejoignez le serveur discord pour être tenu au courant des prochains concours ! contestOver: Ce concours est terminé - Rejoignez le serveur discord pour être tenu au courant des prochains concours !
helpTranslate: Help translate!
dialogs: dialogs:
buttons: buttons:
@ -187,7 +187,7 @@ dialogs:
confirmSavegameDelete: confirmSavegameDelete:
title: Confirmez la suppression title: Confirmez la suppression
text: >- text: >-
Êtes-vous certains de vouloir supprimer votre partie? Êtes-vous certains de vouloir supprimer votre partie ?
savegameDeletionError: savegameDeletionError:
title: Impossible de supprimer title: Impossible de supprimer
@ -209,31 +209,37 @@ dialogs:
keybindingsResetOk: keybindingsResetOk:
title: Réinitialisation des contrôles title: Réinitialisation des contrôles
desc: Les contrôles ont été réinitialisés par leur état par défaut respectifs! desc: Les contrôles ont été réinitialisés par leur état par défaut respectifs !
featureRestriction: featureRestriction:
title: Version démo title: Version démo
desc: Vous avez essayé d'accéder à la fonction (<feature>) qui n'est pas disponible dans la démo. Considérez l'achat de la version complète pour une expérience optimale! desc: Vous avez essayé d'accéder à la fonction (<feature>) qui n'est pas disponible dans la démo. Considérez l'achat de la version complète pour une expérience optimale !
oneSavegameLimit: oneSavegameLimit:
title: Sauvegardes limitées title: Sauvegardes limitées
desc: Vous ne pouvez avoir qu'une seule sauvegarde en même temps dans la version démo. Merci de soit effacer l'actuelle ou de vous procurer la version complète! desc: Vous ne pouvez avoir qu'une seule sauvegarde en même temps dans la version démo. Merci d'effacer celle en cours ou alternativement de vous procurer la version complète !
updateSummary: updateSummary:
title: Nouvel mise-à-jour! title: Nouvel mise-à-jour !
desc: >- desc: >-
Voici les modifications depuis votre dernière session: Voici les modifications depuis votre dernière session:
upgradesIntroduction: upgradesIntroduction:
title: Débloquer les améliorations title: Débloquer les améliorations
desc: >- desc: >-
Toutes les formes que vous produisez peuvent être utilisées pour débloquer des améliorations - <strong>Ne détruisez pas vos anciennes usines!</strong> Toutes les formes que vous produisez peuvent être utilisées pour débloquer des améliorations - <strong>Ne détruisez pas vos anciennes usines !</strong>
L'onglet des améliorations se trouve dans le coin supérieur droit de l'écran. L'onglet des améliorations se trouve dans le coin supérieur droit de l'écran.
massDeleteConfirm: massDeleteConfirm:
title: Confirmation de suppression title: Confirmation de suppression
desc: >- desc: >-
Vous allez supprimer pas mal de bâtiments (<count> pour être exact)! Etes vous certains de vouloir faire ça ? Vous allez supprimer pas mal de bâtiments (<count> pour être exact) ! Etes vous certains de vouloir faire cela ?
massCutConfirm:
title: Confirmer la coupure
desc: >-
Vous vous apprêtez à couper beaucoup de bâtiments (<count> pour être précis) ! Êtes-vous
certains de vouloir faire cela ?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Pas encore débloqué title: Pas encore débloqué
@ -244,28 +250,22 @@ dialogs:
title: Raccourcis utiles title: Raccourcis utiles
desc: >- desc: >-
Le jeu a plein de raccourcis facilitant la construction de grandes usines. Le jeu a plein de raccourcis facilitant la construction de grandes usines.
En voici quelques uns, n'hésitez pas à aller <strong>découvrir les raccourcis</strong>!<br><br> En voici quelques uns, n'hésitez pas à aller <strong>découvrir les raccourcis</strong> !<br><br>
<code class='keybinding'>CTRL</code> + Glisser: Sélectionne une zone à copier / effacer.<br> <code class='keybinding'>CTRL</code> + Glisser: Sélectionne une zone à copier / effacer.<br>
<code class='keybinding'>SHIFT</code>: Laissez appuyé pour placer plusieurs fois le même bâtiment.<br> <code class='keybinding'>SHIFT</code>: Laissez appuyé pour placer plusieurs fois le même bâtiment.<br>
<code class='keybinding'>ALT</code>: Inverse l'orientation des convoyeurs placés.<br> <code class='keybinding'>ALT</code>: Inverse l'orientation des convoyeurs placés.<br>
createMarker: createMarker:
title: Nouvelle balise title: Nouvelle balise
desc: Donnez-lui un nom approprié desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: Vous ne pouvez créer que deux balises dans la démo. Achetez la version complète pour en faire tant que vous voulez ! desc: Vous ne pouvez créer que deux balises dans la démo. Achetez la version complète pour en faire tant que vous voulez !
massCutConfirm:
title: Confirm cut
desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you
want to do this?
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot title: Exporter une capture d'écran
desc: >- desc: >-
You requested to export your base as a screenshot. Please note that this can Vous avez demandé à exporter votre base sous la forme d'une capture d'écran. Soyez conscient que cela peut s'avérer passablement lent pour une grande base, voire même planter votre jeu !
be quite slow for a big base and even crash your game!
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
@ -278,18 +278,18 @@ ingame:
placeMultiple: Placement multiple placeMultiple: Placement multiple
reverseOrientation: Changer l'orientation reverseOrientation: Changer l'orientation
disableAutoOrientation: Désactiver l'orientation automatique disableAutoOrientation: Désactiver l'orientation automatique
toggleHud: Basculer l'ATH toggleHud: Basculer l'affichage tête haute (ATH)
placeBuilding: Placer un bâtiment placeBuilding: Placer un bâtiment
createMarker: Créer une balise createMarker: Créer une balise
delete: Supprimer delete: Supprimer
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Copier le dernier patron
# Everything related to placing buildings (I.e. as soon as you selected a building # Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar) # from the toolbar)
buildingPlacement: buildingPlacement:
# Buildings can have different variants which are unlocked at later levels, # Buildings can have different variants which are unlocked at later levels,
# and this is the hint shown when there are multiple variants available. # and this is the hint shown when there are multiple variants available.
cycleBuildingVariants: Appuyez sur <key> pour changer de variante. cycleBuildingVariants: Appuyez sur <key> pour alterner entre les variantes.
# Shows the hotkey in the ui, e.g. "Hotkey: Q" # Shows the hotkey in the ui, e.g. "Hotkey: Q"
hotkeyLabel: >- hotkeyLabel: >-
@ -299,7 +299,7 @@ ingame:
speed: Vitesse speed: Vitesse
range: Portée range: Portée
storage: Espace de stockage storage: Espace de stockage
oneItemPerSecond: 1 forme / seconde oneItemPerSecond: 1 forme / s
itemsPerSecond: <x> formes / s itemsPerSecond: <x> formes / s
itemsPerSecondDouble: (x2) itemsPerSecondDouble: (x2)
@ -310,7 +310,7 @@ ingame:
# <level> is replaced by the actual level, so this gets 'Level 03' for example. # <level> is replaced by the actual level, so this gets 'Level 03' for example.
levelTitle: Niveau <level> levelTitle: Niveau <level>
completed: Terminé completed: Terminé
unlockText: <reward> débloqué! unlockText: <reward> débloqué !
buttonNextLevel: Niveau suivant buttonNextLevel: Niveau suivant
# Notifications on the lower right # Notifications on the lower right
@ -321,7 +321,7 @@ ingame:
# Mass select information, this is when you hold CTRL and then drag with your mouse # Mass select information, this is when you hold CTRL and then drag with your mouse
# to select multiple buildings # to select multiple buildings
massSelect: massSelect:
infoText: Press <keyCut> to cut, <keyCopy> to copy, <keyDelete> to remove and <keyCancel> to cancel. infoText: Apuyez sur <keyCut> pour couper, <keyCopy> pour copier, <keyDelete> pour effacer et <keyCancel> pour annuler.
# The "Upgrades" window # The "Upgrades" window
shop: shop:
@ -333,7 +333,7 @@ ingame:
# The roman number for each tier # The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X] tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: MAXIMUM LEVEL (Speed x<currentMult>) maximumLevel: NIVEAU MAXIMAL (Vitesse x<currentMult>)
# The "Statistics" window # The "Statistics" window
statistics: statistics:
@ -397,19 +397,19 @@ ingame:
shopUpgrades: shopUpgrades:
belt: belt:
name: Convoyeurs, Distributeurs et Tunnels name: Convoyeurs, Distributeurs et Tunnels
description: Speed x<currentMult> → x<newMult> description: Vitesse x<currentMult> → x<newMult>
miner: miner:
name: Extraction name: Extraction
description: Speed x<currentMult> → x<newMult> description: Vitesse x<currentMult> → x<newMult>
processors: processors:
name: Découpage, Rotation et Empilage name: Découpage, Rotation et Empilage
description: Speed x<currentMult> → x<newMult> description: Vitesse x<currentMult> → x<newMult>
painting: painting:
name: Mélange et Peinture name: Mélange et Peinture
description: Speed x<currentMult> → x<newMult> description: Vitesse x<currentMult> → x<newMult>
# Buildings and their name / description # Buildings and their name / description
buildings: buildings:
@ -433,7 +433,7 @@ buildings:
description: Permet de faire passer des ressources en dessous de bâtiment et de convoyeurs. description: Permet de faire passer des ressources en dessous de bâtiment et de convoyeurs.
tier2: tier2:
name: Tunnel Echelon II name: Tunnel Niveau II
description: Permet de faire passer des ressources en dessous de bâtiment et de convoyeurs. description: Permet de faire passer des ressources en dessous de bâtiment et de convoyeurs.
splitter: # Internal name for the Balancer splitter: # Internal name for the Balancer
@ -455,7 +455,7 @@ buildings:
description: Coupe une forme de haut en bas et sort les deux parties. <strong>Si vous n'utilisez qu'une seule partie, assurez-vous de détruite l'autre ou sinon, gare au blocage !</strong> description: Coupe une forme de haut en bas et sort les deux parties. <strong>Si vous n'utilisez qu'une seule partie, assurez-vous de détruite l'autre ou sinon, gare au blocage !</strong>
quad: quad:
name: Découpeur (Quatre) name: Découpeur (Quatre)
description: Coupe une forme en 4 parties. <strong>Si vous n'utilisez pas toutes les parties, assurez-vous de détruite les autres ou sinon, gare au blocage !</strong> description: Coupe une forme en quatre parties. <strong>Si vous n'utilisez pas toutes les parties, assurez-vous de détruite les autres ou sinon, gare au blocage !</strong>
rotater: rotater:
default: default:
@ -483,7 +483,7 @@ buildings:
name: Peintre (Double) name: Peintre (Double)
description: Colorie les deux formes de gauche avec la couleur de droite. description: Colorie les deux formes de gauche avec la couleur de droite.
quad: quad:
name: Peintre (Quatre) name: Peintre (Quadruple)
description: Permet de colorier chaque quadrant d'une forme avec une couleur différente. description: Permet de colorier chaque quadrant d'une forme avec une couleur différente.
trash: trash:
@ -495,15 +495,15 @@ buildings:
name: Stockage name: Stockage
description: Stocke les formes en trop jusqu'à une certaine capacité. Peut être utilisé comme tampon. description: Stocke les formes en trop jusqu'à une certaine capacité. Peut être utilisé comme tampon.
hub: hub:
deliver: Deliver deliver: Délivrez
toUnlock: to unlock toUnlock: pour débloquer
levelShortcut: LVL levelShortcut: NV
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: Découper des formes title: Découper des formes
desc: Vous venez de débloquer le <strong>découpeur</strong> - il coupe des formes en deux <strong>de haut en bas</strong> quel que soit son orientation!<br><br>Assurez-vous de vous débarasser des déchets, sinon <strong>gare au blocage</strong> - À cet effet, je mets à votre disposition la poubelle, qui détruit tout ce que vous y mettez ! desc: Vous venez de débloquer le <strong>découpeur</strong> - il coupe des formes en deux <strong>de haut en bas</strong> quel que soit son orientation !<br><br>Assurez-vous de vous débarasser des déchets, sinon <strong>gare au blocage</strong> - À cet effet, je mets à votre disposition la poubelle, qui détruit tout ce que vous y mettez !
reward_rotater: reward_rotater:
title: Rotation title: Rotation
@ -522,11 +522,9 @@ storyRewards:
title: Combineur title: Combineur
desc: Vous pouvez maintenant combiner deux formes avec le <strong>combineur</strong> ! Les deux entrées sont combinée et si elles ne peuvent êtres mises l'une à côté de l'autre, elles sont <strong>fusionnées</strong>. Sinon, la forme de droite est <strong>placée au dessus</strong> de la forme de gauche après avoir été légèrement réduite. desc: Vous pouvez maintenant combiner deux formes avec le <strong>combineur</strong> ! Les deux entrées sont combinée et si elles ne peuvent êtres mises l'une à côté de l'autre, elles sont <strong>fusionnées</strong>. Sinon, la forme de droite est <strong>placée au dessus</strong> de la forme de gauche après avoir été légèrement réduite.
# Suggestion from the translator: "après avoir été légèrement réduite" = "after having been slightly scaled down": I think this part of the explanation is missing in the original text, and I struggled a lot at the beginning to understand this important fact of mixing shapes.
reward_splitter: reward_splitter:
title: Distributeur/Rassembleur title: Distributeur/Rassembleur
desc: Le <strong>répartiteur</strong> multifonctionnel a été débloqué - Il peut être utilisé pour construire de plus grandes usines en <strong>distribuant équitablement et rassemblant les formes</strong> entre plusieurs convoyeurs!<br><br> desc: Le <strong>répartiteur</strong> multifonctionnel a été débloqué - Il peut être utilisé pour construire de plus grandes usines en <strong>distribuant équitablement et rassemblant les formes</strong> entre plusieurs convoyeurs !<br><br>
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
@ -579,9 +577,7 @@ storyRewards:
no_reward: no_reward:
title: Niveau suivant title: Niveau suivant
desc: >- desc: >-
Ce niveau n'a pas de récompense mais le prochain, oui ! <br><br>PS: Vous ne devriez pas détruires votre usine actuelle - Vous aurez besoin de <strong>toutes</strong> ces formes plus tard pour <strong>débloquer des améliorations</strong> Ce niveau n'a pas de récompense mais le prochain, oui ! <br><br>PS: Vous ne devriez pas détruire votre usine actuelle - Vous aurez besoin de <strong>toutes</strong> ces formes plus tard pour <strong>débloquer des améliorations</strong>
# Question from the translator: Is the "desc: >-" syntaxically correct ?
no_reward_freeplay: no_reward_freeplay:
title: Niveau suivant title: Niveau suivant
@ -595,7 +591,7 @@ settings:
app: Application app: Application
versionBadges: versionBadges:
dev: Developpement dev: Développement
staging: Test staging: Test
prod: Production prod: Production
buildDate: Créé le <at-date> buildDate: Créé le <at-date>
@ -644,13 +640,13 @@ settings:
Choisissez votre thème (clair / sombre). Choisissez votre thème (clair / sombre).
themes: themes:
dark: Dark dark: Sombre
light: Light light: Clair
refreshRate: refreshRate:
title: Fréquence de simulation title: Fréquence de simulation
description: >- description: >-
Si vous avez un moniteur à 144hz, changez le taux de rafraichissement pour que le jeu fonctionne correctement à cette haute fréquence. Ceci pourrait cependant diminuer vos IPS (itérations par seconde) si votre ordinateur est trop lent. Si vous avez un moniteur à fréquence élevée, changez le taux de rafraichissement pour que le jeu fonctionne correctement à cette haute fréquence. Ceci pourrait cependant diminuer vos IPS (itérations par seconde) si votre ordinateur est trop lent.
alwaysMultiplace: alwaysMultiplace:
title: Placement multiple title: Placement multiple
@ -663,21 +659,20 @@ settings:
Affiche ou non le bouton 'Afficher un indice' dans le coin inférieur gauche. Affiche ou non le bouton 'Afficher un indice' dans le coin inférieur gauche.
language: language:
title: Language title: Langage
description: >- description: >-
Change the language. All translations are user contributed and might be Change le langage. Toutes les traductions sont des contributions des utilisateurs et pourraient être partiellement incomplètes !
incomplete!
movementSpeed: movementSpeed:
title: Movement speed title: Vitesse de déplacement
description: Changes how fast the view moves when using the keyboard. description: Change la vitesse à laquelle l'écran se déplace lors de l'utilisation du clavier.
speeds: speeds:
super_slow: Super slow super_slow: Super lent
slow: Slow slow: Lent
regular: Regular regular: Normal
fast: Fast fast: Rapide
super_fast: Super Fast super_fast: Très rapide
extremely_fast: Extremely Fast extremely_fast: Extrêmement rapide
keybindings: keybindings:
title: Contrôles title: Contrôles
@ -711,8 +706,8 @@ keybindings:
menuOpenShop: Améliorations menuOpenShop: Améliorations
menuOpenStats: Statistiques menuOpenStats: Statistiques
toggleHud: Basculer l'ATH (affichage tête haute) toggleHud: Basculer l'affichage tête haute (ATH)
toggleFPSInfo: Basculer IPS (itérations par seconde) et informations de débogage toggleFPSInfo: Basculer l'affichage des IPS (itérations par seconde) et des informations de débogage
belt: *belt belt: *belt
splitter: *splitter splitter: *splitter
underground_belt: *underground_belt underground_belt: *underground_belt
@ -728,40 +723,40 @@ keybindings:
rotateWhilePlacing: Pivoter rotateWhilePlacing: Pivoter
rotateInverseModifier: >- rotateInverseModifier: >-
Variante: Pivote à gauche Variante: Pivote à gauche
cycleBuildingVariants: Faire défiler les variantes cycleBuildingVariants: Alterner entre les variantes
confirmMassDelete: Confirmer la suppression de zone confirmMassDelete: Confirmer la suppression de la sélection
cycleBuildings: Faire défiler les bâtiments cycleBuildings: Alterner entre les bâtiments
massSelectStart: Cliquez et maintenez pour commencer massSelectStart: Cliquez et maintenez pour commencer
massSelectSelectMultiple: Sélectionner plusieurs zones massSelectSelectMultiple: Sélectionner plusieurs zones
massSelectCopy: Copier la zone massSelectCopy: Copier la sélection
placementDisableAutoOrientation: Désactiver l'orientation automatique placementDisableAutoOrientation: Désactiver l'orientation automatique
placeMultiple: Rester en mode placement placeMultiple: Rester en mode placement
placeInverse: Inverser le mode d'orientation automatique placeInverse: Inverser le mode d'orientation automatique
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Copier le dernier patron
massSelectCut: Cut area massSelectCut: Couper la sélection
exportScreenshot: Export whole Base as Image exportScreenshot: Exporter toute la base en tant qu'image.
mapMoveFaster: Move Faster
about: about:
title: À propos de ce jeu title: À propos de ce jeu
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" Ce jeu est open source et développé par <a href="https://github.com/tobspr"
target="_blank">Tobias Springer</a> (this is me).<br><br> target="_blank">Tobias Springer</a> (c'est moi).<br><br>
If you want to contribute, check out <a href="<githublink>" Si vous souhaitez contribuer, allez voir <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io sur github</a>.<br><br>
This game wouldn't have been possible without the great discord community Ce jeu n'aurait pu être réalisé sans la précieuse communauté discord autour de
around my games - You should really join the <a href="<discordlink>" mes jeux - Vous devriez vraiment envisager de joindre le <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">serveur discord</a> !<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" La bande son a été créée par <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - Il est impressionnant !<br><br>
Finally, huge thanks to my best friend <a Pour terminer, un immense merci à mon meilleur amis <a
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Sans nos sessions sur factorio, ce jeu n'aurait jamais existé.
factorio sessions this game would never have existed.
changelog: changelog:
title: Historique title: Historique
@ -772,7 +767,7 @@ demo:
importingGames: Importer des sauvegardes importingGames: Importer des sauvegardes
oneGameLimit: Limité à une sauvegarde oneGameLimit: Limité à une sauvegarde
customizeKeybindings: Personnalisation des contrôles customizeKeybindings: Personnalisation des contrôles
exportingBase: Exporting whole Base as Image exportingBase: Exporter toute la base en tant qu'image
settingNotAvailable: Indisponible dans la démo. settingNotAvailable: Indisponible dans la démo.
# #

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Adj neki egy értelmes nevet desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -732,6 +732,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: A játékról title: A játékról

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -733,6 +733,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io는 도형을 만들어 조합하는 공장을 짓는 게임입니다. 플레이 할수록 점점 더 어려운 도형을 만들어야 됩니다. shortText: shapez.io는 무한한 공간에서 점점 더 복잡한 도형의 생산과 조합을 자동화하는 공장들을 짓는 게임입니다.
# 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. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
@ -29,32 +29,44 @@ steamPage:
# - Please keep the markup (Stuff like [b], [list] etc) in the same format # - Please keep the markup (Stuff like [b], [list] etc) in the same format
longText: >- longText: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
shapez.io는 도형을 만들어 조합하는 공장을 짓는 게임입니다. 점점 더 복잡해지는 도형들을 제작해서 공장의 속도를 올리시기 바랍니다
수요가 늘수록 공장을 더 넓혀야 합니다. 자원을 늘리는 것도 잊으면 안됩니다. 무한한 크기의 맵에서 확장을 해 나가야 합니다.! shapez.io는 다양한 도형의 생산과 조합을 자동화하는 공장들을 짓는 게임입니다. 점점 복잡해지는 요구사항을 충족하고 업그레이드를 잠금 해제해서 공장의 성능을 높일 수 있습니다.
도형은 금방 지루해 지기 때문에 색을 조합하여 색칠하십시오. 빨강, 초록, 파랑 색을 섞어서 만든 다양한 색으로 수요를 만족시키세요.
이 게임에는 18개의 레벨이 있습니다 (이것 만으로도 여러분들은 이미 몇시간이 걸렸을 거예요!) 하지만 저는 항상 새로운 컨텐츠를 추가하고 있습니다 - 계획해 놓은 것들이 많습니다! 점점 증가하는 수요를 충족하기 위해 공장의 규모를 키워야 합니다. [b]무한한 공간[/b]으로 확장하여 도형 재료를 구하는 것도 잊지 마세요.
단순한 도형은 금방 싫증이 나므로, 색을 조합하여 도형을 색칠하세요. 빨강, 초록, 파랑을 조합하여 다양한 색을 만들고 도형을 색칠하여 요구사항을 충족하세요.
이 게임에는 18개의 레벨이 있습니다. (이것만으로도 이미 몇시간이 걸렸을 거예요!) 하지만 저는 항상 새로운 컨텐츠를 추가하고 있습니다. 계획해 놓은 것들도 많구요!
[b]유료 버전의 장점[/b] [b]유료 버전의 장점[/b]
[list] [list]
[*] 마커 [*] 마커
[*] 저장파일 무한정 [*] 제한 없는 저장
[*] 다크 모드 [*] 다크 모드
[*] 다양한 설정 가능 [*] 다양한 설정
[*] 제가 shapez. Io를 더 개발하는데 도움이 됨 ❤️ [*] 제가 shapez.io를 개발하는 데 도움이 됨 ❤️
[*] 향후 더 많은 컨텐츠 [*] 향후 더 많은 컨텐츠
[/list] [/list]
[b] 예정된 컨탠츠 및 커뮤니티 제안[/b] [b] 예정된 컨탠츠 및 커뮤니티 제안[/b]
이 게임은 오픈 소스입니다. 따라서 누구나 기여할 수 있습니다. 또한, 커뮤니티의 제안을 [b]많이[/b] 듣고 있습니다! 가능한 많이 읽고 많이 반영하도록 노력하겠습니다.
이 게임은 오픈 소스입니다. 따라서 누구나 기여할 수 있습니다! 또한, 커뮤니티의 제안을 [b]많이[/b] 듣고 있습니다! 가능한 많이 읽고 많이 반영하도록 노력하겠습니다.
[list] [list]
[*] 건물을 도형으로 구매해야 돼는 스토리 모드 [*] 건물을 도형으로 구매해야 돼는 스토리 모드
[*] 더 많은 레벨과 건물 (유료 버전 한정) [*] 더 많은 레벨과 건물 (유료 버전 한정)
[*] 다양한 월드와 맵 장애물 [*] 다양한 월드와 맵 장애물
[*] 당신만의 맵 제작 [*] 당신만의 맵 제작
[*] 더 많은 종류의 도형 [*] 더 많은 종류의 도형
[*] 속도 업그레이드 (지금도 게임이 잘 되긴 합니다!) [*] 성능 향상 (지금도 게임이 잘 되긴 합니다!)
[*] 색맹자용 모드 [*] 색맹자용 모드
[*] 등등 [*] 그 외 다수!
[/list] [/list]
저의 트렐로 보드를 확인해서 로드맵을 확인해보세요! https://trello.com/b/ISQncpJP/shapezio 저의 트렐로 보드를 확인해서 로드맵을 확인해보세요! https://trello.com/b/ISQncpJP/shapezio
global: global:
loading: 로딩중 loading: 로딩중
error: 에러 error: 에러
@ -65,22 +77,22 @@ global:
# The suffix for large numbers, e.g. 1.3k, 400.2M, etc. # The suffix for large numbers, e.g. 1.3k, 400.2M, etc.
suffix: suffix:
thousands: k thousands: k
millions: m millions: M
billions: b billions: B
trillions: t trillions: T
# Shown for infinitely big numbers # Shown for infinitely big numbers
infinite: inf infinite: 무한
time: time:
# Used for formatting past time dates # Used for formatting past time dates
oneSecondAgo: 초 전 oneSecondAgo: 1초 전
xSecondsAgo: <x>초 전 xSecondsAgo: <x>초 전
oneMinuteAgo: 분 전 oneMinuteAgo: 1분 전
xMinutesAgo: <x>분 xMinutesAgo: <x>분
oneHourAgo: 시간 전 oneHourAgo: 1시간 전
xHoursAgo: <x> 시간 전 xHoursAgo: <x>시간 전
oneDayAgo: 일 전 oneDayAgo: 1일 전
xDaysAgo: <x>일 전 xDaysAgo: <x>일 전
# Short formats for times, e.g. '5h 23m' # Short formats for times, e.g. '5h 23m'
@ -103,6 +115,7 @@ demoBanners:
title: 무료 버전 title: 무료 버전
intro: >- intro: >-
유료 버전을 구매해서 모든 컨탠츠를 사용해 보세요! 유료 버전을 구매해서 모든 컨탠츠를 사용해 보세요!
mainMenu: mainMenu:
play: 시작 play: 시작
changelog: 버전 기록 changelog: 버전 기록
@ -119,10 +132,11 @@ mainMenu:
contests: contests:
contest_01_03062020: contest_01_03062020:
title: "#1번 콘테스트" title: "콘테스트 #01"
desc: Win <strong>$25</strong> for the coolest base!
longDesc: >- longDesc: >-
여러분들에게 무언가를 나눠드리고 싶어서 주간 콘테스트를 개최합니다! 여러분들에게 무언가를 나눠드리고 싶어서 주간 콘테스트를 개최합니다!
<br><br> <br><br>
<strong>이번주 토픽:</strong> 가장 멋있는 공장을 만드세요! <strong>이번주 토픽:</strong> 가장 멋있는 공장을 만드세요!
<br><br> <br><br>
@ -136,7 +150,6 @@ mainMenu:
</ul> </ul>
<br> <br>
당신들의 멋진 공장을 보고 싶습니다! 당신들의 멋진 공장을 보고 싶습니다!
desc: Win <strong>$25</strong> for the coolest base!
showInfo: 보기 showInfo: 보기
contestOver: 이 콘테스트는 끝났습니다. 디스코드에서 새로운 콘테스트 관련 알림을 받으세요! contestOver: 이 콘테스트는 끝났습니다. 디스코드에서 새로운 콘테스트 관련 알림을 받으세요!
@ -152,33 +165,39 @@ dialogs:
getStandalone: 유료 버전 구매하기 getStandalone: 유료 버전 구매하기
deleteGame: 확실합니다 deleteGame: 확실합니다
viewUpdate: 업데이트 보기 viewUpdate: 업데이트 보기
showUpgrades: 업그이드 보기 showUpgrades: 업그이드 보기
showKeybindings: 조작법 보기 showKeybindings: 조작법 보기
importSavegameError: importSavegameError:
title: 불러오기 오류 title: 불러오기 오류
text: >- text: >-
저장 파일을 불러오지 못했습니다: 저장 파일을 불러오지 못했습니다:
importSavegameSuccess: importSavegameSuccess:
title: 저장 파일 불러오기 성공 title: 저장 파일 불러오기 성공
text: >- text: >-
저장 파일이 성공적으로 불러와졌습니다. 저장 파일이 성공적으로 불러와졌습니다.
gameLoadFailure: gameLoadFailure:
title: 게임이 깨졌습니다.(???) title: 저장 파일 에러
text: >- text: >-
저장 파일을 불러오지 못했습니다: 저장 파일을 불러오지 못했습니다:
confirmSavegameDelete: confirmSavegameDelete:
title: 삭제 확인 title: 삭제 확인
text: >- text: >-
이 게임 파일을 정말로 삭제하겠습니까? 이 게임 파일을 정말로 삭제하겠습니까?
savegameDeletionError: savegameDeletionError:
title: 삭제 실패 title: 삭제 실패
text: >- text: >-
저장 파일을 삭제하지 못했습니다. 저장 파일을 삭제하지 못했습니다.
restartRequired: restartRequired:
title: 다시 시작 필요 title: 다시 시작 필요
text: >- text: >-
설정을 적용하려면 게임을 다시 시작해야 됩니다. 설정을 적용하려면 게임을 다시 시작해야 됩니다.
editKeybinding: editKeybinding:
title: 키바인딩 바꾸기 title: 키바인딩 바꾸기
desc: 당신이 원하는 키나 마우스 버튼을 눌러서 바꾸거나 ESC를 눌러 취소하세요. desc: 당신이 원하는 키나 마우스 버튼을 눌러서 바꾸거나 ESC를 눌러 취소하세요.
@ -203,38 +222,43 @@ dialogs:
title: 신규 버전! title: 신규 버전!
desc: >- desc: >-
지난번 플레이 이후 변경사항은 다음과 같습니다. 지난번 플레이 이후 변경사항은 다음과 같습니다.
upgradesIntroduction: upgradesIntroduction:
title: 업그이드 하기 title: 업그이드 하기
desc: >- desc: >-
여러분이 만든 모든 도형은 업그레이드에 사용 될 수 있습니다! - <strong> 만들어 놓은 공장을 허물지 마세요!</strong> 여러분이 만든 모든 도형은 업그레이드에 사용 될 수 있습니다! - <strong> 만들어 놓은 공장을 허물지 마세요!</strong>
업그래이드 버튼은 화면의 오른쪽 위에 있습니다. 업그레이드 버튼은 화면의 오른쪽 위에 있습니다.
massDeleteConfirm: massDeleteConfirm:
title: 삭제 확인 title: 삭제 확인
desc: >- desc: >-
당신은 많은 건물을 삭제하려고 하고있습니다! (정확히는 <count>개) 삭제하시겠습니까? 당신은 많은 건물을 삭제하려고 하고있습니다! (정확히는 <count>개) 삭제하시겠습니까?
massCutConfirm:
title: Confirm cut
desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you want to do this?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: 아직 사용 불가 title: 아직 사용 불가
desc: >- desc: >-
복사 기능은 아직 열리지 않았습니다! 레벨을 올려서 잠금을 해제하세요. 복사 기능은 아직 열리지 않았습니다! 레벨을 올려서 잠금을 해제하세요.
keybindingsIntroduction: keybindingsIntroduction:
title: 유용한 키바인딩 title: 유용한 키바인딩
desc: >- desc: >-
큰 공장을 지을 때 유용한 키바인딩이 많습니다! 큰 공장을 지을 때 유용한 키바인딩이 많습니다!
아래를 확인하세요.<strong>나머지 키바인딩도 확인해보세요!</strong>!<br><br> 아래를 확인하세요.<strong>나머지 키바인딩도 확인해보세요!</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Drag: 역을 선택해서 복사/삭제하세요.<br> <code class='keybinding'>CTRL</code> + Drag: 역을 선택해서 복사/삭제하세요.<br>
<code class='keybinding'>SHIFT</code>: 한꺼번에 여러 개의 건물을 배치하세요.<br> <code class='keybinding'>SHIFT</code>: 한꺼번에 여러 개의 건물을 배치하세요.<br>
<code class='keybinding'>ALT</code>: 설치된 컨베이어 벨트의 방향을 바꾸세요.<br> <code class='keybinding'>ALT</code>: 설치된 컨베이어 벨트의 방향을 바꾸세요.<br>
createMarker: createMarker:
title: 새로운 마커 title: 새로운 마커
desc: 의미 있는 이름을 지어주세요 desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: 데모 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다! desc: 데모 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다!
massCutConfirm:
title: Confirm cut
desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you
want to do this?
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot title: Export screenshot
@ -246,8 +270,8 @@ 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
# every situation # every situation
keybindingsOverlay: keybindingsOverlay:
moveMap: 지기 moveMap: 직이
selectBuildings: 역 선택 selectBuildings: 역 선택
stopPlacement: 건물 놓기 중지 stopPlacement: 건물 놓기 중지
rotateBuilding: 건물 회전 rotateBuilding: 건물 회전
placeMultiple: 여러 개 놓기 placeMultiple: 여러 개 놓기
@ -269,6 +293,7 @@ ingame:
# Shows the hotkey in the ui, e.g. "Hotkey: Q" # Shows the hotkey in the ui, e.g. "Hotkey: Q"
hotkeyLabel: >- hotkeyLabel: >-
Hotkey: <key> Hotkey: <key>
infoTexts: infoTexts:
speed: 속도 speed: 속도
range: 최대 거리 range: 최대 거리
@ -289,7 +314,7 @@ ingame:
# Notifications on the lower right # Notifications on the lower right
notifications: notifications:
newUpgrade: 새로운 업그이드를 할 수 있습니다! newUpgrade: 새로운 업그이드를 할 수 있습니다!
gameSaved: 게임이 저장되었습니다. gameSaved: 게임이 저장되었습니다.
# Mass select information, this is when you hold CTRL and then drag with your mouse # Mass select information, this is when you hold CTRL and then drag with your mouse
@ -364,25 +389,32 @@ ingame:
1_1_extractor: <strong>추출기</strong>를 <strong>원 모양의 도형</strong>에 놓아서 추출하세요! 1_1_extractor: <strong>추출기</strong>를 <strong>원 모양의 도형</strong>에 놓아서 추출하세요!
1_2_conveyor: >- 1_2_conveyor: >-
추출기를 <strong>컨베이어 벨트</strong>로 당신의 중앙 건물에 연결하세요!<br><br>팁: 마우스로 벨트를 <strong>클릭해서 드래그</strong>하세요! 추출기를 <strong>컨베이어 벨트</strong>로 당신의 중앙 건물에 연결하세요!<br><br>팁: 마우스로 벨트를 <strong>클릭해서 드래그</strong>하세요!
1_3_expand: >- 1_3_expand: >-
이것은 아이들 게임이 <strong>아닙니다!</strong> 추출기를 더 놓아 목표를 빨리 달성하세요.<br><br>팁: <strong> SHIFT </strong>를 눌러 여러 개의 추출기를 놓고 <strong>R</strong>로 회전 시키세요. 이것은 방치형 게임이 <strong>아닙니다!</strong> 추출기를 더 놓아 목표를 빨리 달성하세요.<br><br>팁: <strong>SHIFT</strong>를 눌러 여러 개의 추출기를 놓고 <strong>R</strong>로 회전 시키세요.
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
belt: belt:
name: 컨베이어 벨트, 배분기, 터널 name: 컨베이어 벨트, 배분기, 터널
description: 속도 x<currentMult> → x<newMult> description: 속도 x<currentMult> → x<newMult>
miner: miner:
name: 추출 name: 추출
description: 속도 x<currentMult> → x<newMult> description: 속도 x<currentMult> → x<newMult>
processors: processors:
name: 자르기, 회전, 쌓 name: 절단기, 회전기, 결합
description: Speed x<currentMult> → x<newMult> description: 속도 x<currentMult> → x<newMult>
painting: painting:
name: 섞기, 색칠하 name: 혼합기, 도형 색칠
description: Speed x<currentMult> → x<newMult> description: 속도 x<currentMult> → x<newMult>
# Buildings and their name / description # Buildings and their name / description
buildings: buildings:
hub:
deliver: 목표
toUnlock: 보상
levelShortcut: 레벨
belt: belt:
default: default:
name: &belt 컨베이어 벨트 name: &belt 컨베이어 벨트
@ -464,71 +496,49 @@ buildings:
storage: storage:
name: 저장소 name: 저장소
description: 할당된 용량만큼 초과되는 도형을 저장한다. description: 할당된 용량만큼 초과되는 도형을 저장한다.
hub:
deliver: Deliver
toUnlock: to unlock
levelShortcut: LVL
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: 도형 자르기 title: 절단기
desc: >- desc: <strong>절단기</strong>가 잠금 해제되었습니다! 절단기는 도형을 <strong>세로로</strong> 잘라 반으로 나눕니다.<br><br>사용하지 않는 도형은 휴지통에 버려주세요. 그렇지 않으면 절단기가 <strong>멈출 것입니다.</strong>
You just unlocked the <strong>cutter</strong> - it cuts shapes half from
<strong>top to bottom</strong> regardless of its orientation!<br><br>Be sure
to get rid of the waste, or otherwise <strong>it will stall</strong> - For
this purpose I gave you a trash, which destroys everything you put into it!
reward_rotater: reward_rotater:
title: 도형 회전기 title: 회전기
desc: <strong>도형 회전기</strong>가 잠금 해제되었습니다! 이것은 도형을 시계방향으로 90도 회전 시킵니다. desc: <strong>회전기</strong>가 잠금 해제되었습니다! 이것은 도형을 시계방향으로 90도 회전 시킵니다.
reward_painter: reward_painter:
title: 도형 색칠기 title: 색칠기
desc: >- desc: >-
<strong>도형 색칠기</strong>가 잠금 해제 되었습니다! 색소 광물을 추출해서 이 기계로 도형을 색칠하세요. <br><br>PS: 당신이 색맹이라면, 해결책을 찾고 있으니 잠시만 기다려주세요! <strong>색칠기</strong>가 잠금 해제 되었습니다! 색소 광물을 추출해서 이 기계로 도형을 색칠하세요. <br><br>PS: 당신이 색맹이라면, 해결책을 찾고 있으니 잠시만 기다려주세요!
reward_mixer: reward_mixer:
title: 색 혼합기 title: 혼합기
desc: >- desc: <strong>혼합기</strong>가 잠금 해제 되었습니다! 이 건물로 두 색소를 <strong>혼합</strong>하세요!
The <strong>mixer</strong> has been unlocked - Combine two colors using
<strong>additive blending</strong> with this building!
reward_stacker: reward_stacker:
title: 스태커 title: 결합기
desc: >- desc: <strong>결합기</strong>가 잠금 해제 되었습니다! 두 도형이 서로 옆에 놓을 수 있는 경우, 두 도형이 <strong>결합</strong>됩니다. 그렇지 않은 경우, 오른쪽 도형이 왼쪽 도형 <strong>위에 쌓이게</strong>됩니다.
You can now combine shapes with the <strong>combiner</strong>! Both inputs are
combined, and if they can be put next to each other, they will be
<strong>fused</strong>. If not, the right input is <strong>stacked on
top</strong> of the left input!
reward_splitter: reward_splitter:
title: 배분기 title: 배분기
desc: >- desc: 다양한 용도로 쓰이는 <strong>배분기</strong>가 잠금 해제되었습니다! 배분기로 도형들을 여러 개의 벨트에 <strong>합하거나 나누어서</strong> 큰 공장을 지을 수 있습니다.<br><br>
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>
reward_tunnel: reward_tunnel:
title: 터널 title: 터널
desc: <strong>터널</strong>이 잠금 해제되었습니다! 자원을 건물과 벨트 밑으로 운송 할 수 있습니다. desc: <strong>터널</strong>이 잠금 해제되었습니다! 자원을 건물과 벨트 밑으로 운송 할 수 있습니다.
reward_rotater_ccw: reward_rotater_ccw:
title: 도형 회전기 (반시게방향) title: 회전기 (반시게방향)
desc: <strong>반시게방향 회전기</strong>가 잠금 해제되었습니다! 이것을 배치하려면 회전기를 선택하고 <strong>T</strong>를 눌러서 변형된 버전을 사용하세요! desc: <strong>반시게방향 회전기</strong>가 잠금 해제되었습니다! 이것을 배치하려면 회전기를 선택하고 <strong>T</strong>를 눌러서 변형된 버전을 사용하세요!
reward_miner_chainable: reward_miner_chainable:
title: 체인 추출기 title: 체인 추출기
desc: >- desc: <strong>체인 추출기</strong>가 잠금 해제되었습니다! 체인 추출기는 <strong>자원을 다른 추출기로 전달하여</strong> 효율적으로 추출할 수 있게 합니다.
You have unlocked the <strong>chaining extractor</strong>! It can
<strong>forward its resources</strong> to other extractors so you can more
efficiently extract resources!
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: 터널 티어 II title: 터널 티어 II
desc: >- desc: 새로운 종류의 <strong>터널</strong>이 잠금 해제되었습니다! 새 터널은 <strong>보다 넓은 범위</strong>를 가졌으며, 터널들은 같은 종류끼리만 연결됩니다.
You have unlocked a new variant of the <strong>tunnel</strong> - It has a
<strong>bigger range</strong>, and you can also mix-n-match those tunnels now!
reward_splitter_compact: reward_splitter_compact:
title: 컴팩트 연결기 title: 컴팩트 연결기
@ -537,19 +547,14 @@ storyRewards:
reward_cutter_quad: reward_cutter_quad:
title: 절단기 (4단) title: 절단기 (4단)
desc: >- desc: 새로운 종류의 <strong>절단기</strong>가 잠금 해제되었습니다! 새 절단기는 도형을 2조각이 아니라 <strong>4조각</strong>으로 자릅니다.
You have unlocked a variant of the <strong>cutter</strong> - It allows you to
cut shapes in <strong>four parts</strong> instead of just two!
reward_painter_double: reward_painter_double:
title: 도형 색칠기 (2단) title: 색칠기 (2단)
desc: >- desc: 새로운 종류의 <strong>색칠기</strong>가 잠금 해제되었습니다! 새 색칠기는 <strong>색소 하나로 2개의 도형</strong>을 색칠할 수 있습니다.
You have unlocked a variant of the <strong>painter</strong> - It works as the
regular painter but processes <strong>two shapes at once</strong> consuming
just one color instead of two!
reward_painter_quad: reward_painter_quad:
title: 도형 색칠기 (4단) title: 색칠기 (4단)
desc: <strong>4단 도형 색칠기</strong>가 잠금 해제되었습니다! 도형의 4분단을 각각 다른 색으로 색칠할 수 있습니다! desc: <strong>4단 도형 색칠기</strong>가 잠금 해제되었습니다! 도형의 4분단을 각각 다른 색으로 색칠할 수 있습니다!
reward_storage: reward_storage:
@ -558,26 +563,23 @@ storyRewards:
reward_freeplay: reward_freeplay:
title: 프리플레이 모드 title: 프리플레이 모드
desc: >- desc: 해내셨군요! <strong>프리플레이 모드</strong>가 잠금 해제되었습니다! 이제 도형이 랜덤으로 생성됩니다! (걱정 마세요, 유료버전에는 더 많은 컨텐츠가 계획되어 있습니다!)
You did it! You unlocked the <strong>free-play mode</strong>! This means that
shapes are now randomly generated! (No worries, more content is planned for
the standalone!)
reward_blueprints: reward_blueprints:
title: 블루프린트 title: 블루프린트
desc: 이제부터는 공장의 일부 역을 <strong>복사하여 붙여넣기</strong> 할 수 있습니다! CTRL을 누르면서 드래그해서 먼저 역을 선택하세요. <br><br> 그 다음에는 C, DEL, ESC 로 복사하거나, 지우거나, 취소 하세요.<br><br> 복사는 무료가 이닙니다. 특별한 "화폐" 도형으로 돈을 지불하고 복사가 됩니다. desc: 이제부터는 공장의 일부 역을 <strong>복사하여 붙여넣기</strong> 할 수 있습니다! CTRL을 누르면서 드래그해서 먼저 역을 선택하세요. <br><br> 그 다음에는 C, DEL, ESC 로 복사하거나, 지우거나, 취소 하세요.<br><br> 복사는 무료가 이닙니다. 특별한 "화폐" 도형으로 돈을 지불하고 복사가 됩니다.
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
title: 다음 레벨 title: 다음 레벨
desc: >- desc: >-
This level gave you no reward, but the next one will! <br><br> PS: Better This level gave you no reward, but the next one will! <br><br> PS: Better don't destroy your existing factory - You need <strong>all</strong> those shapes later again to <strong>unlock upgrades</strong>!
don't destroy your existing factory - You need <strong>all</strong> those
shapes later again to <strong>unlock upgrades</strong>!
no_reward_freeplay: no_reward_freeplay:
title: 다음 레벨 title: 다음 레벨
desc: >- desc: >-
축하드립니다! 유료 버전을 위한 더 많은 컨텐츠를 만들고 있습니다. 축하드립니다! 유료 버전을 위한 더 많은 컨텐츠를 만들고 있습니다.
settings: settings:
title: 설정 title: 설정
categories: categories:
@ -613,47 +615,10 @@ settings:
fast: 빠르게 fast: 빠르게
super_fast: 매우 빠르게 super_fast: 매우 빠르게
language:
title: 언어
description: >-
언어 바꾸기 - 모든 언어팩은 사용자들이 만든 것이므로 완성되지 않았을 수 있습니다..
fullscreen:
title: Fullscreen
description: >-
이 게임은 풀 스크린으로 하는 것이 가장 좋습니다. 풀 스크린 모드는 유료 버전에서만 가능합니다.
soundsMuted:
title: 소리 끄기
description: >-
모든 효과음을 끕니다.
musicMuted:
title: 음악 끄기
description: >-
모든 배경 음악을 끕니다.
theme:
title: 게임 테마
description: >-
게임 테마를 고르세요. (밝음/어두움).
themes:
dark: Dark
light: Light
refreshRate:
title: 모니터 리프레쉬 속도
description: >-
당신의 모니터의 리프세쉬 속도가 144hz 보다 높으면 이 설정을 바꾸어서 게임이 더 빨리 리프레시 되게 하세요. 만약에 컴퓨터가 느리다면 FPS에 영양을 미칠 수 있습니다.
alwaysMultiplace:
title: 항상 여러 개 배치
description: >-
배치 이후에도 모든 빌딩이 선택되어 있습니다. SHIFT를 계속 누르고 있는 것과 같은 효과입니다.
offerHints:
title: 힌트와 튜토리얼
description: >-
이것을 끄면 힌트와 튜토리얼이 나오지 않습니다. 또한 게임에 쉽게 들어가기 위해서 주어진 레벨에서 특정 UI 요소를 숨길 수도 있습니다.
movementSpeed: movementSpeed:
title: Movement speed title: Movement speed
description: Changes how fast the view moves when using the keyboard. description: >-
Changes how fast the view moves when using the keyboard.
speeds: speeds:
super_slow: Super slow super_slow: Super slow
slow: Slow slow: Slow
@ -662,10 +627,54 @@ settings:
super_fast: Super Fast super_fast: Super Fast
extremely_fast: Extremely Fast extremely_fast: Extremely Fast
language:
title: 언어
description: >-
언어 바꾸기 - 모든 언어팩은 사용자들이 만든 것이므로 완성되지 않았을 수 있습니다..
fullscreen:
title: Fullscreen
description: >-
이 게임은 풀 스크린으로 하는 것이 가장 좋습니다. 풀 스크린 모드는 유료 버전에서만 가능합니다.
soundsMuted:
title: 소리 끄기
description: >-
모든 효과음을 끕니다.
musicMuted:
title: 음악 끄기
description: >-
모든 배경 음악을 끕니다.
theme:
title: 게임 테마
description: >-
게임 테마를 고르세요. (밝음/어두움).
themes:
dark: Dark
light: Light
refreshRate:
title: 모니터 리프레쉬 속도
description: >-
당신의 모니터의 리프세쉬 속도가 144hz 보다 높으면 이 설정을 바꾸어서 게임이 더 빨리 리프레시 되게 하세요. 만약에 컴퓨터가 느리다면 FPS에 영양을 미칠 수 있습니다.
alwaysMultiplace:
title: 항상 여러 개 배치
description: >-
배치 이후에도 모든 빌딩이 선택되어 있습니다. SHIFT를 계속 누르고 있는 것과 같은 효과입니다.
offerHints:
title: 힌트와 튜토리얼
description: >-
이것을 끄면 힌트와 튜토리얼이 나오지 않습니다. 또한 게임에 쉽게 들어가기 위해서 주어진 레벨에서 특정 UI 요소를 숨길 수도 있습니다.
keybindings: keybindings:
title: 키바인딩 title: 키바인딩
hint: >- hint: >-
: CTRL, SHIFT, ALT를 활용하세요. 건물을 배치할 때 유용합니다. : CTRL, SHIFT, ALT를 활용하세요. 건물을 배치할 때 유용합니다.
resetKeybindings: 키바인딩 리셋 resetKeybindings: 키바인딩 리셋
categoryLabels: categoryLabels:
@ -690,7 +699,7 @@ keybindings:
mapZoomOut: 축소 mapZoomOut: 축소
createMarker: 마커 놓기 createMarker: 마커 놓기
menuOpenShop: 업그이드 menuOpenShop: 업그이드
menuOpenStats: 통계 menuOpenStats: 통계
toggleHud: UI보기/숨기기 toggleHud: UI보기/숨기기
@ -712,18 +721,19 @@ keybindings:
Modifier: 대신 반시계방향으로 회전 Modifier: 대신 반시계방향으로 회전
cycleBuildingVariants: 변형종 사용 cycleBuildingVariants: 변형종 사용
confirmMassDelete: 대량 삭제 확인 confirmMassDelete: 대량 삭제 확인
pasteLastBlueprint: Paste last blueprint
cycleBuildings: 건물 사이클 cycleBuildings: 건물 사이클
massSelectStart: 누르고 드래그해서 시작 massSelectStart: 누르고 드래그해서 시작
massSelectSelectMultiple: 여러 곳 선택 massSelectSelectMultiple: 여러 곳 선택
massSelectCopy: 지역 복사 massSelectCopy: 영역 복사
massSelectCut: Cut area
placementDisableAutoOrientation: 자동 회전 끄기 placementDisableAutoOrientation: 자동 회전 끄기
placeMultiple: 배치 모드에 있기 placeMultiple: 배치 모드에 있기
placeInverse: 자동 벨트 회전 뒤집기 placeInverse: 자동 벨트 회전 뒤집기
pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: 이 게임의 정보 title: 이 게임의 정보

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -732,6 +732,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: Nieuwe markering title: Nieuwe markering
desc: Geef het een betekenisvolle naam desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: Je kunt maar twee markeringen plaatsen in de demo. Koop de standalone voor een ongelimiteerde hoeveelheid markeringen! desc: Je kunt maar twee markeringen plaatsen in de demo. Koop de standalone voor een ongelimiteerde hoeveelheid markeringen!
@ -340,13 +340,13 @@ ingame:
dataSources: dataSources:
stored: stored:
title: In opslag title: In opslag
description: Geeft weer hoe veel vormen er zijn opgeslagen in je centrale gebouw. description: Geeft weer hoe veel vormen er zijn opgeslagen in de HUB.
produced: produced:
title: Geproduceerd title: Geproduceerd
description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten. description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten.
delivered: delivered:
title: Geleverd title: Geleverd
description: Geeft alle vormen weer die in het centrale gebouw worden bezorgd. description: Geeft alle vormen weer die in de HUB worden bezorgd.
noShapesProduced: Er zijn nog geen vormen geproduceerd. noShapesProduced: Er zijn nog geen vormen geproduceerd.
# Displays the shapes per minute, e.g. '523 / m' # Displays the shapes per minute, e.g. '523 / m'
@ -372,7 +372,7 @@ ingame:
# When placing a blueprint # When placing a blueprint
blueprintPlacer: blueprintPlacer:
cost: Kost cost: Prijs
# Map markers # Map markers
waypoints: waypoints:
@ -385,7 +385,7 @@ ingame:
interactiveTutorial: interactiveTutorial:
title: Tutorial title: Tutorial
hints: hints:
1_1_extractor: Plaats een <strong>extractor</strong> op een <strong>cirkelvorm</strong> om deze te onttrekken! 1_1_extractor: Plaats een <strong>ontginner</strong> op een <strong>cirkelvorm</strong> om deze te ontginnen!
1_2_conveyor: >- 1_2_conveyor: >-
Verbind de extractor met een <strong>lopende band</strong> aan je hub!<br><br>Tip: <strong>Klik en sleep</strong> de lopende band met je muis! Verbind de extractor met een <strong>lopende band</strong> aan je hub!<br><br>Tip: <strong>Klik en sleep</strong> de lopende band met je muis!
@ -395,10 +395,10 @@ ingame:
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
belt: belt:
name: Lopende banden, Verdeler & Tunnels name: Banden, Verdeler & Tunnels
description: Snelheid x<currentMult> → x<newMult> description: Snelheid x<currentMult> → x<newMult>
miner: miner:
name: Extractor name: Ontginner
description: Snelheid x<currentMult> → x<newMult> description: Snelheid x<currentMult> → x<newMult>
processors: processors:
name: Knippen, draaien & stapelen name: Knippen, draaien & stapelen
@ -417,11 +417,11 @@ buildings:
miner: # Internal name for the Extractor miner: # Internal name for the Extractor
default: default:
name: &miner Extractor name: &miner Extractor
description: Plaats op een vorm of kleur om deze te onttrekken. description: Plaats op een vorm of kleur om deze te ontginnen.
chainable: chainable:
name: Extractor (Ketting) name: Extractor (Ketting)
description: Plaats op een vorm of kleur om deze te onttrekken. Kan in serie worden geplaatst. description: Plaats op een vorm of kleur om deze te ontginnen. Kan achter elkaar worden geplaatst.
underground_belt: # Internal name for the Tunnel underground_belt: # Internal name for the Tunnel
default: default:
@ -732,6 +732,7 @@ keybindings:
pasteLastBlueprint: Plak laatst gekopiëerde blauwdruk pasteLastBlueprint: Plak laatst gekopiëerde blauwdruk
massSelectCut: Knip geselecteerd gebied massSelectCut: Knip geselecteerd gebied
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: Over dit spel title: Over dit spel

760
translations/base-no.yaml Normal file
View File

@ -0,0 +1,760 @@
#
# GAME TRANSLATIONS
#
# Contributing:
#
# If you want to contribute, please make a pull request on this respository
# and I will have a look.
#
# Placeholders:
#
# Do *not* replace placeholders! Placeholders have a special syntax like
# `Hotkey: <key>`. They are encapsulated within angle brackets. The correct
# translation for this one in German for example would be: `Taste: <key>` (notice
# how the placeholder stayed '<key>' and was not replaced!)
#
# Adding a new language:
#
# If you want to add a new language, ask me in the discord and I will setup
# the basic structure so the game also detects it.
#
steamPage:
# This is the short text appearing on the steam page
shortText: shapez.io er et spill som handler om å bygge fabrikker for å automatisere produksjon og kombinering av former med økende kompleksitet på et ubegrenset brett.
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE:
# - 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 er et spill som handler om å bygge fabrikker for å automatisere byggeprosessen og kombinere forskjellige former og fasonger. Lever objektene som øker i kompleskitet og fasonger for å progressere i spillet og åpne opp nye oppgraderinger til din fabrikk.
Siden forespørselen øker, må du skalere opp fabrikken din for å tilpasse deg til behovet - Men ikke glem tilgangen du har til ressurser, du må utvide på det [b]uendelige brettet[/b]!
Siden figurer i seg selv kan bli kjedelig, må du snart mikse farger og fargelegge dine figurer - Kombiner rød, grønn og blå farge-ressurser for å produsere forskjellige farger, og fargelegg figurene for å tilfredsstille behovet.
Spillet har 18 nivåer (Som bør holde deg opptatt i mange timer!) men jeg legger konstant til nytt innhold - Det er mye som er planlagt!
[b]Frittstående Fordeler[/b]
[list]
[*] Kartmarkering
[*] Uendelige lagringsfiler
[*] Mørk Modus
[*] Flere instillinger
[*] Tillater meg å videreutvikle shapez.io ❤️
[*] Flere funksjoner i fremtiden!
[/list]
[b]Planlagte funksjoner & Forslag fra samfunnet[/b]
Spillet er åpen kildekode - Alle kan bidra! Utenom det, så lytter jeg [b]veldig[/b] til samfunnet! Jeg prøver å lese alle forslag og ta imot så mye tilbakemeldinger som mulig.
[list]
[*] Kampanje
[*] Flere nivåer & bygninger (Frittstående eksklusivt)
[*] Forskjellige brett, og kanskje hinder på brettet
[*] Konfigurerbart brett-generasjon (Endre antall og størrelse på ressursfelt, seed, med mer)
[*] Flere forskjellige type former
[*] Mer forbedring av ytelse (Selv om spillet allerede kjører ganske bra!)
[*] Fargeblind modus
[*] Og mye mer!
[/list]
Sjekk ut min trello tavle for hele planen! https://trello.com/b/ISQncpJP/shapezio
global:
loading: Laster
error: Feil
# How big numbers are rendered, e.g. "10,000"
thousandsDivider: ","
# The suffix for large numbers, e.g. 1.3k, 400.2M, etc.
suffix:
thousands: k
millions: M
billions: B
trillions: T
# Shown for infinitely big numbers
infinite: inf
time:
# Used for formatting past time dates
oneSecondAgo: ett sekund siden
xSecondsAgo: <x> sekunder siden
oneMinuteAgo: ett minutt siden
xMinutesAgo: <x> minutter siden
oneHourAgo: en time siden
xHoursAgo: <x> timer siden
oneDayAgo: en dag siden
xDaysAgo: <x> dager siden
# Short formats for times, e.g. '5h 23m'
secondsShort: <seconds>s
minutesAndSecondsShort: <minutes>m <seconds>s
hoursAndMinutesShort: <hours>t <minutes>m
xMinutes: <x> minutter
keys:
tab: TAB
control: CTRL
alt: ALT
escape: ESC
shift: SHIFT
space: MELLOMROM
demoBanners:
# This is the "advertisement" shown in the main menu and other various places
title: Demo Versjon
intro: >-
Skaff deg frittstående versjon for å åpne alle funksjoner!
mainMenu:
play: Spill
changelog: Endringshistorikk
importSavegame: Importer
openSourceHint: Dette spillet er åpen kildekode!
discordLink: Offisiel Discord Server
helpTranslate: Hjelp oversetting!
# This is shown when using firefox and other browsers which are not supported.
browserWarning: >-
Beklager, men spillet er kjent for å kjøre sakte på din nettleser! Skaff deg frittstående versjon, eller last ned Chrome for den fulle opplevelsen.
savegameLevel: Nivå <x>
savegameLevelUnknown: Ukjent Nivå
contests:
contest_01_03062020:
title: "Konkurranse #01"
desc: Vinn <strong>$25</strong> for den kuleste basen!
longDesc: >-
For å gi noe tilbake til deg, tenkte jeg det ville vært kult med ukentlige konkurranser!
<br><br>
<strong>Denne ukens tema:</strong> Bygg den kuleste basen!
<br><br>
Her er tingen:<br>
<ul class="bucketList">
<li>Send et skjermbilde av basen din til <strong>contest@shapez.io</strong></li>
<li>Bonus poeng om du deler på sosiale medier!</li>
<li>Jeg velger 5 skjermbilder og foreslår de på <strong>discord</strong> for samfunnet til å stemme.</li>
<li>Vinneren får <strong>$25</strong> (Paypal, Amazon Gift Card, eller hva du foretrekker)</li>
<li>Frist: 07.06.2020 00:00 Sentraleuropeisk sommertid</li>
</ul>
<br>
Jeg ser fram til å se dine kule skapninger!
showInfo: Vis
contestOver: Denne konkurransen er ferdig - Bli med på discord for å få varsel om nye konkurranser!
dialogs:
buttons:
ok: OK
delete: Slett
cancel: Avbryt
later: Senere
restart: Omstart
reset: Nullstill
getStandalone: Få frittstående
deleteGame: Jeg vet hva jeg gjør
viewUpdate: Vis Oppdatering
showUpgrades: Vis Oppgraderinger
showKeybindings: Se Hurtigtaster
importSavegameError:
title: Importerings feil
text: >-
Kunne ikke importere lagringsfilen:
importSavegameSuccess:
title: Lagringsfil importert
text: >-
Din Lagringsfil ble vellykket importert.
gameLoadFailure:
title: Lagringsfilen er ødelagt
text: >-
Kunne ikke laste inn lagringsfilen:
confirmSavegameDelete:
title: Bekreft sletting
text: >-
Er du sikker på at du ønsker å slette lagringsfilen?
savegameDeletionError:
title: Kunne ikke slette
text: >-
Kunne ikke slette lagringsfilen:
restartRequired:
title: Omstart nødvendig
text: >-
Du må starte spillet på nytt for å ta i bruk instillingene.
editKeybinding:
title: Endre Hurtigtast
desc: Trykk på knappen eller museknappen du vil tildele, eller escape for å avbryte.
resetKeybindingsConfirmation:
title: Nullstill Hurtigtaster
desc: Dette vil nullstille alle hurtigtaster tilbake til standard. Vennligst bekreft.
keybindingsResetOk:
title: Hurtigtaster nullstilt
desc: Hurtigtastene har blitt nullstilt tilbake til standard!
featureRestriction:
title: Demo Versjon
desc: Du prøvde å benytte deg av en funksjon (<feature>) som ikke er tilgjengelig i demoen. Vurder å skaffe frittstående versjon for den fulle opplevelsen!
oneSavegameLimit:
title: Begrenset Lagringsfiler
desc: Du kan du ha en lagringsfil om gangen i demo versjonen. Vennligst slett den eksisterende, eller skaff frittstående versjon!
updateSummary:
title: Ny oppdatering!!
desc: >-
Her er endringene siden sist du spilte:
upgradesIntroduction:
title: Åpne Oppgradering
desc: >-
Alle objektene du produserer kan bli brukt til å åpne oppgraderinger - <strong>Ikke ødelegg dine gamle fabrikker!</strong>
Oppgraderingsfanen er plassert øverst til høyre på skjermen.
massDeleteConfirm:
title: Bekreft sletting
desc: >-
Du skal til å slette mange bygninger (<count> for å være nøyaktig)! Er du sikker på at du ønsker å gjøre dette?
massCutConfirm:
title: Bekreft Klipping
desc: >-
Du klipper ut mange bygninger (<count> for å være nøyaktig)! Er du sikker på at du ønsker å gjøre dette?
blueprintsNotUnlocked:
title: Ikke åpnet enda
desc: >-
Fullfør nivå 12 for å åpne blåkopier!
keybindingsIntroduction:
title: Nyttige hurtigtaster
desc: >-
Spillet har mange hurtigtaster som gjør det enklere å bygge store fabrikker.
Her er noen få, men sørg for å <strong>sjekke ut hurtigtaster</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Dra: Velg et område.<br>
<code class='keybinding'>SHIFT</code>: Hold trykket for å plassere flere av en bygning.<br>
<code class='keybinding'>ALT</code>: Inverter orientasjon av plasserte belter.<br>
createMarker:
title: Ny Markør
desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit:
desc: Du kan kun ha to markører i demo verjsonen. Skaff deg frittstående versjon for ubegrensede markører!
exportScreenshotWarning:
title: Eksporter skjermbilde
desc: Du forespurte å eksportere bilde av basen din som et skjermbilde. Vær obs på at dette kan ta lang tid for en stor base, og i verste fall kræsje spillet ditt (Husk å lagre først)!
ingame:
# This is shown in the top left corner and displays useful keybindings in
# every situation
keybindingsOverlay:
moveMap: Beveg
selectBuildings: Velg område
stopPlacement: Stopp plassering
rotateBuilding: Roter bygning
placeMultiple: Plasser flere
reverseOrientation: Omvent orientering
disableAutoOrientation: Deaktiver automatisk orientering
toggleHud: Veksle Grensesnitt
placeBuilding: Plasser bygning
createMarker: Lag Markør
delete: Ødelegg
pasteLastBlueprint: Lim inn forrige blåkopi
# Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar)
buildingPlacement:
# Buildings can have different variants which are unlocked at later levels,
# and this is the hint shown when there are multiple variants available.
cycleBuildingVariants: Trykk <key> for å veksle mellom variantene.
# Shows the hotkey in the ui, e.g. "Hotkey: Q"
hotkeyLabel: >-
Hotkey: <key>
infoTexts:
speed: Hastighet
range: Lengde
storage: Lagring
oneItemPerSecond: 1 objekt / sekund
itemsPerSecond: <x> objekter / s
itemsPerSecondDouble: (x2)
tiles: <x> ruter
# The notification when completing a level
levelCompleteNotification:
# <level> is replaced by the actual level, so this gets 'Level 03' for example.
levelTitle: Nivå <level>
completed: Fullført
unlockText: Åpnet <reward>!
buttonNextLevel: Neste Nivå
# Notifications on the lower right
notifications:
newUpgrade: En ny oppgradering er tilgjengelig!
gameSaved: Spillet ditt er lagret.
# Mass select information, this is when you hold CTRL and then drag with your mouse
# to select multiple buildings
massSelect:
infoText: Trykk <keyCut> for å klippe, <keyCopy> for å kopiere, <keyDelete> for å slette, og <keyCancel> for å avbryte.
# The "Upgrades" window
shop:
title: Oppgraderinger
buttonUnlock: Oppgrader
# Gets replaced to e.g. "Tier IX"
tier: Nivå <x>
# The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: MAKS NIVÅ (Hastighet x<currentMult>)
# The "Statistics" window
statistics:
title: Statistikk
dataSources:
stored:
title: Lagret
description: Viser hva som er lagret i hovedbygningen.
produced:
title: Produsert
description: Viser alle objektene hele fabrikken produserer, inkluderer avanserte objekter.
delivered:
title: Levert
description: Viser objekter som er levert til hovedbygningen.
noShapesProduced: Ingen objekter har blitt produsert så langt.
# Displays the shapes per minute, e.g. '523 / m'
shapesPerMinute: <shapes> / m
# Settings menu, when you press "ESC"
settingsMenu:
playtime: Spilletid
buildingsPlaced: Bygninger
beltsPlaced: Belter
buttons:
continue: Fortsett
settings: Innstillinger
menu: Tilbake til hovedmeny
# Bottom left tutorial hints
tutorialHints:
title: Trenger du hjelp?
showHint: Vis hint
hideHint: Lukk
# When placing a blueprint
blueprintPlacer:
cost: Kostnad
# Map markers
waypoints:
waypoints: Markør
hub: Hovedbygning
description: Venstreklikk en markør for å gå dit, høyreklikk for å slette markøren.<br><br>Trykk <keybinding> for å lage en markør fra nåværende sted, eller <strong>høyreklikk</strong> for å lage en markør på valgt område.
creationSuccessNotification: Markren ble laget.
# Interactive tutorial
interactiveTutorial:
title: Opplæring
hints:
1_1_extractor: Plasser en <strong>utdrager</strong> på toppen av en <strong>sirkel form</strong> for å samle den!
1_2_conveyor: >-
Koble utdrageren med et <strong>transportbånd</strong> til hovedbygningen!<br><br>Tips: <strong>Trykk og dra</strong> beltet med musa!
1_3_expand: >-
Dette er <strong>IKKE</strong> et idle-spill! Bygg flere utdragere og belter for å nå målet raskere.<br><br>Tips: Hold <strong>SHIFT</strong> for å plassere flere utdragere, og bruk <strong>R</strong> for å rotere dem.
# All shop upgrades
shopUpgrades:
belt:
name: Belter, Distributører & Tuneller
description: Hastighet x<currentMult> → x<newMult>
miner:
name: Utdrager
description: Hastighet x<currentMult> → x<newMult>
processors:
name: Kutting, Rotering & Stabling
description: Hastighet x<currentMult> → x<newMult>
painting:
name: Miksing & Maling
description: Hastighet x<currentMult> → x<newMult>
# Buildings and their name / description
buildings:
hub:
deliver: Lever
toUnlock: for å låse opp
levelShortcut: nivå
belt:
default:
name: &belt Transportbånd
description: Transporterer objekter, hold og dra for å plassere flere.
miner: # Internal name for the Extractor
default:
name: &miner Utdrager
description: Plasser over en form eller farge for å trekke ut.
chainable:
name: Utdrager (Kjede)
description: Plasser over en form eller farge for å trekke ut. Kan kobles i kjede.
underground_belt: # Internal name for the Tunnel
default:
name: &underground_belt Tunell
description: Lar deg bruke tuneller for å transportere objekter under bygninger og belter.
tier2:
name: Tunell Nivå II
description: Lar deg bruke tuneller for å transportere objekter under bygninger og belter.
splitter: # Internal name for the Balancer
default:
name: &splitter Utjevner
description: Multifunksjonell - Sprer alt jevnt utover.
compact:
name: Sammenslå (kompakt)
description: Slår sammen to belter til ett.
compact-inverse:
name: Sammenslå (kompakt)
description: Slår sammen to belter til ett.
cutter:
default:
name: &cutter Kutter
description: Kutter objekter fra top til bunn og spytter ut begge halvdeler. <strong>Hvis du bare skal bruke den ene biten, sørg for å ødelegge den andre biten ellers vil det låse seg!</strong>
quad:
name: Kutter (4-Veis)
description: Kutter objekter til 4 biter. <strong>Hvis du bare skal bruke den ene biten, sørg for å ødelegge den andre biten ellers vil det låse seg!</strong>
rotater:
default:
name: &rotater Roter
description: Roter objekter med klokken, 90 grader.
ccw:
name: Roter (Mot klokken)
description: Roter objekter mot klokken, 90 grader.
stacker:
default:
name: &stacker Stabler
description: Stabler begge objekter. Hvis de ikke kan bli stablet sidelengs, vil høyre stables over den andre.
mixer:
default:
name: &mixer Fargemikser
description: Mikser to farger sammen ved å blande de.
painter:
default:
name: &painter Maler
description: Maler hele objektet på venstre inngang med fargen fra øverste inngang.
double:
name: Maler (Dobbel)
description: Maler hele objektet på venstre inngang med fargen fra øverste inngang.
quad:
name: Maler (Fireganger)
description: Farger enhver kvadrant av objektet med forskjellige farger.
trash:
default:
name: &trash Søppelkasse
description: Tar imot objekter fra alle sider og ødelegger de. For alltid.
storage:
name: Lagringsboks
description: Lagrer overflødige objekter, opp til en viss kapasitet. Kan bli brukt som mellomlagring for overflyt.
storyRewards:
# Those are the rewards gained from completing the store
reward_cutter_and_trash:
title: Kutt Objekter
desc: Du åpnet nettop <strong>kutter</strong> - den kutter objekter i to fra <strong>topp til bunn</strong> uavhengig av rotasjon!<br><br>Husk å kvitt deg med alt søppel, ellers <strong>kiler det seg fast</strong> - For dette formålet har du søplekassen, som ødelegger alt du putter i den!
reward_rotater:
title: Rotering
desc: <strong>Rotereren</strong> har blitt tilgjengelig! Den roterer objekter med klokken 90 grader.
reward_painter:
title: Maling
desc: >-
<strong>Maleren</strong> har blitt tilgjengelig - Hent ut fargeressurser (på samme måte som du gjør med objekter) og kombiner det med et objekt i maleren for å male de!<br><br>PS: Hvis du er fargeblind, så jobber jeg med en løsning alt!
reward_mixer:
title: Fargemikser
desc: <strong>Fargemikseren</strong> har blitt tilgjengelig - Kombiner to farger og <strong>bland de sammen</strong> med denne bygningen!
reward_stacker:
title: Sammenslåer
desc: Du kan nå slå sammen forskjellige former med <strong>sammenslåeren</strong>! Begge inngangene blir slått sammen, og hvis det er mulig blir de plassert ved siden av hverandre, de vil bil <strong>til en</strong>. Hvis ikke, blir høyre inngang <strong>plassert over</strong> venstre inngang!
reward_splitter:
title: Fordeler/Sammenslåer
desc: Den multifunksjonelle <strong>fordeleren</strong> har blitt tilgjengelig - Den kan brukes til å bygge større fabrikker ved å <strong>fordele og slå sammen objekter</strong> til flere transportbånd!<br><br>
reward_tunnel:
title: Tunell
desc: <strong>Tunellen</strong> har blitt tilgjengelig - Du kan nå transportere objekter under transportbelter og bygninger med den!
reward_rotater_ccw:
title: Mot klokken rotering
desc: Du har åpnte en variant av <strong>rotereren</strong> - Den tillater rotasjoner mot klokken! For å bygge den, velg rotereren og <strong>trykk 'T' for å veksle mellom variantene</strong>!
reward_miner_chainable:
title: Kjede Utdrager
desc: Du har åpnet <strong>kjede utdrageren</strong>! Den sender <strong>videre sine resurser</strong> til andre utdragere så de kan mer effektivt hente ut resurser!
reward_underground_belt_tier_2:
title: Tunell Nivå II
desc: Du har åpnet en ny variant av <strong>tunellen</strong> - Den har <strong>lengre rekkevidde</strong>, og du kan også blande de forskjellige tunellene nå!
reward_splitter_compact:
title: Kompakt Utjevning
desc: >-
Du har åpnet en variant av <strong>utjevneren</strong> - Den godtar to innganger og slår de sammen til en!
reward_cutter_quad:
title: 4-Veis Kutting
desc: Du har åpnet en variant av <strong>kutteren</strong> - Den lar deg dele objekter inn i <strong>fire deler</strong> istedenfor bare to!
reward_painter_double:
title: Dobbel Maling
desc: Du har åpnet en variant av <strong>maleren</strong> - Den fungerer som vanlig maler, men prosesserer <strong>to objekter om gangen</strong>, konsumerer bare en farge istedenfor to!
reward_painter_quad:
title: Firegangers Maling
desc: Du har åpnet en variant av <strong>maleren</strong> - Den lar deg male hver del av objektet individuelt!
reward_storage:
title: Lagrings Buffer
desc: Du har åpnet en variant av <strong>søplekassen</strong> - Den lar deg lagre objekter opp til en viss mengde!
reward_freeplay:
title: Frispill
desc: Du klarte det! Du åpnet <strong>frispill modus</strong>! Dette betyr at formene er nå tilfeldig generert! (Frykt ikke, mer innhold er planlagt for frittstående versjon!)
reward_blueprints:
title: Blåkopier
desc: Du kan nå <strong>kopiere og lime inn</strong> deler av fabrikken din! Velg et område (Hold inne CTRL, så dra med musa), trykk så 'C' for å kopiere det.<br><br>Lime det inn er <strong>ikke graits</strong>, du må produsere <strong>blåkopi objekter</strong> for å få råd til det! (Det du nettop leverte).
# Special reward, which is shown when there is no reward actually
no_reward:
title: Neste nivå
desc: >-
Dette nivået ga deg ingen belønning, men neste gjør det! <br><br> PS: Burde ikke ødelegge din nåværende fabrikk - Du trenger <strong>alle</strong> de objektene senere for å <strong>åpne nye ting</strong>!
no_reward_freeplay:
title: Neste nivå
desc: >-
Gratulerer!! Forresten, mer innhold er planlagt for frittstående versjon!
settings:
title: Instillinger
categories:
game: Spill
app: Applikasjon
versionBadges:
dev: Utvikling
staging: Icenesettelse
prod: Produksjon
buildDate: Bygget <at-date>
labels:
uiScale:
title: Grensesnitt skala
description: >-
Endrer størrelsen på brukergrensesnitt. Grensesnittet vil fortsatt skaleres basert på din enhets oppløsning, men denne instillingen styrer mengden den skalerer.
scales:
super_small: Veldig liten
small: Liten
regular: Vanlig
large: Stor
huge: Gigantisk
scrollWheelSensitivity:
title: Forstørrelses sensitivitet
description: >-
Endrer hvor sensitiv forstørringen er (Enten musehjulet eller trackpad).
sensitivity:
super_slow: Veldig Sakte
slow: Sakte
regular: Vanlig
fast: Raskt
super_fast: Veldig Raskt
movementSpeed:
title: Bevegelses hastighet
description: >-
Endrer hvor raskt bildet beveger seg når man bruker tastaturet.
speeds:
super_slow: Veldig Sakte slow
slow: Sakte
regular: Vanlig
fast: Raskt
super_fast: Veldig Raskt
extremely_fast: Ekstremt Raskt
language:
title: Språk
description: >-
Endre språket. Alle oversettelser er bidrag ifra andre brukere og kan være ufullstendig!
fullscreen:
title: Fullskjerm
description: >-
Det er anbefalt å spille spillet i fullskjerm for best mulig opplevelse. Kun tilgjengelig i frittstående versjon.
soundsMuted:
title: Skru av lyder
description: >-
Hvis aktivert, skrur av alle lydeffekter.
musicMuted:
title: Skru av Musikk
description: >-
Hvis aktivert, skrur av all musikk.
theme:
title: Spilltema
description: >-
Velg spilltema (lys / mørk).
themes:
dark: Mørk
light: Lys
refreshRate:
title: Simulerings Mål
description: >-
Hvis du har en 144hz skjerm, endre oppdateringsfrekvensen her så vil spillet simuleres mer korrekt på høyere oppdateringsfrekvenser. Dette kan redusere FPS om din PC er for treg.
alwaysMultiplace:
title: Plasser flere
description: >-
Hvis aktivert, alle bygg vil forbli valgt etter plassering inntil du avbryter det. Dette tilsvarer å holde SHIFT nede permanent.
offerHints:
title: Hint & Opplæring
description: >-
Om du ønsker hint og opplæring mens du spiller. Skjuler også enkelte elementer i brukergrensesnittet inntil spesifike nivå for å enklere komme i gang med spillet.
keybindings:
title: Hurtigtaster
hint: >-
Tips: Husk å bruke CTRL, SHIFT and ALT! De gir deg flere plasseringsmuligheter.
resetKeybindings: Nullstill Hurtigtaster
categoryLabels:
general: Applikasjon
ingame: Spill
navigation: Navigering
placement: Plassering
massSelect: Velg Masse
buildings: Bygnings Snarvei
placementModifiers: Plasserings Alternativer
mappings:
confirm: Bekreft
back: Tilbake
mapMoveUp: Flytt Opp
mapMoveRight: Flytt Høyre
mapMoveDown: Flytt Ned
mapMoveLeft: Flytt Venstre
mapMoveFaster: Beveg Raskere
centerMap: Midstill Brettet
mapZoomIn: Zoom inn
mapZoomOut: Zoom ut
createMarker: Lag Markør
menuOpenShop: Oppgraderinger
menuOpenStats: Statistikk
toggleHud: Veksle Grensesnitt
toggleFPSInfo: Veksle FPS og debug informasjon
exportScreenshot: Eksporter hele basen som et bilde
belt: *belt
splitter: *splitter
underground_belt: *underground_belt
miner: *miner
cutter: *cutter
rotater: *rotater
stacker: *stacker
mixer: *mixer
painter: *painter
trash: *trash
abortBuildingPlacement: Avbryt Plassering
rotateWhilePlacing: Roter
rotateInverseModifier: >-
Alternativ: Roter mot klokken isteden
cycleBuildingVariants: Endre Varianter
confirmMassDelete: Bekreft Massesletting
pasteLastBlueprint: Lim inn forrige blåkopi
cycleBuildings: Endre Bygninger
massSelectStart: Hold og dra for å starte
massSelectSelectMultiple: Velg flere områder
massSelectCopy: Kopier Område
massSelectCut: Kutt ut Område
placementDisableAutoOrientation: Deaktiver automatisk orientering
placeMultiple: Forbli i plasseringsmodus
placeInverse: Inverter automatisk transportbånd orientering
about:
title: Om dette spillet
body: >-
Dette spillet er åpen kildekode og utviklet av <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (dette er meg).<br><br>
Hvis du ønsker å bidra, sjekk ut <a href="<githublink>" target="_blank">shapez.io på github</a>.<br><br>
Spillet ville ikke vært mulig uten det fantastidke discord samfunnet rundt spillet mitt - Du burde virkelig bli med på <a href="<discordlink>" target="_blank">discord serveren</a>!<br><br>
Lydsporet er laget av <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Han er rå.<br><br>
Til slutt, stor takk til min beste venn <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Uten våre factorio økter ville ikke dette spillet ha eksistert.
changelog:
title: Endringshistorikk
demo:
features:
restoringGames: Gjenopprette lagringsfiler
importingGames: Importer lagringsfiler
oneGameLimit: Begrenset til en lagringsfil
customizeKeybindings: Forandre Hurtigtaster
exportingBase: Eksporter hele basen som bile
settingNotAvailable: Ikke tilgjengelig i demoversjonen.

View File

@ -254,7 +254,7 @@ dialogs:
createMarker: createMarker:
title: Nowy Znacznik title: Nowy Znacznik
desc: Nadaj nazwę desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: Możesz stworzyć tylko dwa własne znaczniki w wersji demo. Zakup pełną wersję gry dla nielimitowanych znaczników! desc: Możesz stworzyć tylko dwa własne znaczniki w wersji demo. Zakup pełną wersję gry dla nielimitowanych znaczników!
@ -265,10 +265,11 @@ dialogs:
Wycinasz sporą ilość maszyn (<count> gwoli ścisłości)! Czy na pewno chcesz kontynuować? Wycinasz sporą ilość maszyn (<count> gwoli ścisłości)! Czy na pewno chcesz kontynuować?
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot title: Tworzenie zrzutu fabryki
desc: >- desc: >-
You requested to export your base as a screenshot. Please note that this can Zamierzasz wyeksportować swoją fabrykę jako zrzut ekranu. W przypadku dużej
be quite slow for a big base and even crash your game! fabryki ta akja może być bardzo wolna, a nawet może spowodować zawieszenie się lub awarię gry!
Czy na pewno chcesz kontynuować?
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
@ -710,7 +711,8 @@ keybindings:
mapMoveUp: Ruch w górę mapMoveUp: Ruch w górę
mapMoveRight: Ruch w prawo mapMoveRight: Ruch w prawo
mapMoveDown: Ruch w dół mapMoveDown: Ruch w dół
mapMoveLeft: Move Left mapMoveLeft: Ruch w lewo
mapMoveFaster: Przyspiesz ruch
centerMap: Wyśrodkuj Mapę centerMap: Wyśrodkuj Mapę
mapZoomIn: Przybliżenie mapZoomIn: Przybliżenie
@ -738,11 +740,11 @@ keybindings:
rotateInverseModifier: >- rotateInverseModifier: >-
Modyfikator: Obróć Odrwotnie Modyfikator: Obróć Odrwotnie
cycleBuildingVariants: Zmień Wariant cycleBuildingVariants: Zmień Wariant
confirmMassDelete: Potwierdź Usuwanie confirmMassDelete: Potwierdź usuwanie
cycleBuildings: Zmień Budynek cycleBuildings: Zmień Budynek
massSelectStart: Przytrzymaj i przeciągnij by zaznaczyć massSelectStart: Przytrzymaj i przeciągnij by zaznaczyć
massSelectSelectMultiple: Zaznacz kilka obszar massSelectSelectMultiple: Zaznacz kilka obszarów
massSelectCopy: Skopiuj obszar massSelectCopy: Skopiuj obszar
placementDisableAutoOrientation: Wyłącz automatyczną orientacje placementDisableAutoOrientation: Wyłącz automatyczną orientacje
@ -750,7 +752,7 @@ keybindings:
placeInverse: Odwróć automatyczną orientacje pasów placeInverse: Odwróć automatyczną orientacje pasów
pasteLastBlueprint: Wklej ostatnio skopiowany obszar pasteLastBlueprint: Wklej ostatnio skopiowany obszar
massSelectCut: Wytnij obszar massSelectCut: Wytnij obszar
exportScreenshot: Export whole Base as Image exportScreenshot: Wyeksportuj całą fabrykę jako zrzut ekranu
about: about:
title: O Grze title: O Grze
@ -770,6 +772,6 @@ demo:
importingGames: Importowanie zapisów gry importingGames: Importowanie zapisów gry
oneGameLimit: Limit jednego zapisu gry oneGameLimit: Limit jednego zapisu gry
customizeKeybindings: Personalizowanie Klawiszologii customizeKeybindings: Personalizowanie Klawiszologii
exportingBase: Exporting whole Base as Image exportingBase: Eksportowanie całej fabryki jako zrzut ekranu
settingNotAvailable: Niedostępne w wersji demo. settingNotAvailable: Niedostępne w wersji demo.

View File

@ -21,7 +21,7 @@
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io is a game about building factories to automate the creation and combination of increasingly complex shapes within an infinite map. shortText: shapez.io é um jogo sobre construir fábricas, automatizando a criação e combinação de formas cada vez mais complexas num mapa infinito.
# 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. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
@ -30,42 +30,42 @@ steamPage:
longText: >- longText: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
shapez.io is a game about building factories to automate the creation and combination of shapes. Deliver the requested, increasingly complex shapes to progress within the game and unlock upgrades to speed up your factory. shapez.io é um jogo sobre construir fábricas para automatizar a criação e combinação de formas. Entregue formas cada vez mais complexas pedidas pelo jogo para progredir e desbloquear melhorias que aceleram sua fábrica.
Since the demand raises you will have to scale up your factory to fit the needs - Don't forget about resources though, you will have to expand in the [b]infinite map[/b]! Como a demanda é crescente, será necessário dimensionar uma fábrica que atenda a necessidade - Não se esqueça dos recursos à sua disposição, você poderá expandir em um [b]mapa infinito[/b]!
Since shapes can get boring soon you need to mix colors and paint your shapes with it - Combine red, green and blue color resources to produce different colors and paint shapes with it to satisfy the demand. Formas podem ficar entediantes por si só, logo você terá que misturar cores e pintá-las - Combine os recursos vermelho, verde e azul para produzir cores diferentes e pintar as formas com elas pra atender a demanda.
This game features 18 levels (Which should keep you busy for hours already!) but I'm constantly adding new content - There is a lot planned! Esse jogo apresenta 18 níveis (que já devem mantê-lo ocupado por horas!) mas estou constantemente adicionado conteúdo novo - Muito já está planejado!
[b]Standalone Advantages[/b] [b]Vantagens da Versão Standalone[/b]
[list] [list]
[*] Waypoints [*] Marcações no mapa
[*] Unlimited Savegames [*] Jogos salvos ilimitados
[*] Dark Mode [*] Modo escuro
[*] More settings [*] Mais opções no menu
[*] Allow me to further develop shapez.io ❤️ [*] Me ajuda a desenvolver mais o shapez.io ❤️
[*] More features in the future! [*] Ainda mais recursos no futuro!
[/list] [/list]
[b]Planned features & Community suggestions[/b] [b]Melhoras Planejadas & Sugestões da Comunidade[/b]
This game is open source - Anybody can contribute! Besides of that, I listen [b]a lot[/b] to the community! I try to read all suggestions and take as much feedback into account as possible. Esse jogo tem código aberto - Qualquer um pode contribuir! Além disso, eu ouço [b]muito[/a] a comunidade! Tento ler todas as sugestões e levar o máximo possível de comentários sobre o jogo em consideração.
[list] [list]
[*] Story mode where buildings cost shapes [*] Modo história, onde construir custará formas
[*] More levels & buildings (standalone exclusive) [*] Mais níves & construções (exclusivo da versão standalone)
[*] Different maps, and maybe map obstacles [*] Mapas diferentes, e talvez obstáculos no mapa
[*] Configurable map creation (Edit number and size of patches, seed, and more) [*] Criação de mapa configurável (Número e tamanho de recursos, seed, e mais)
[*] More types of shapes [*] Mais tipos de formas
[*] More performance improvements (Although the game already runs pretty good!) [*] Mais melhoras no desempenho (Mesmo que o jogo já esteja rodando bem rápido!)
[*] Color blind mode [*] Acessibilidade para daltonismo
[*] And much more! [*] E muito mais!
[/list] [/list]
Be sure to check out my trello board for the full roadmap! https://trello.com/b/ISQncpJP/shapezio Não deixe de conferir na minha página no trello o planejamento completo! (em inglês) https://trello.com/b/ISQncpJP/shapezio
global: global:
loading: Carregando loading: Carregando
@ -127,32 +127,32 @@ mainMenu:
browserWarning: >- browserWarning: >-
Desculpe, o jogo fica lento em seu navegador! Compre a versão completa ou baixe o Chrome para obter uma experiência completa. Desculpe, o jogo fica lento em seu navegador! Compre a versão completa ou baixe o Chrome para obter uma experiência completa.
savegameLevel: Level <x> savegameLevel: vel <x>
savegameLevelUnknown: Level desconhecido savegameLevelUnknown: vel desconhecido
contests: contests:
contest_01_03062020: contest_01_03062020:
title: "Concurso #01" title: "Concurso #01"
desc: Ganhe <strong> $ 25 </strong> pela melhor base! desc: Ganhe <strong>$25</strong> pela melhor base!
longDesc: >- longDesc: >-
Para retribuir, pensei que seria legal fazer concursos semanais! Para retribuir, pensei que seria legal fazer concursos semanais!
<br><br> <br><br>
<strong> Tópico dessa semana:</strong> Cronstua a base mais legal! <strong> Tópico dessa semana:</strong> Construa a base mais legal!
<br><br> <br><br>
Here's the deal:<br> Esse é o plano:<br>
<ul class="bucketList"> <ul class="bucketList">
<li>Envie uma captura de tela da sua base para <strong>contest@shapez.io</strong></li> <li>Envie uma captura de tela da sua base para <strong>contest@shapez.io</strong></li>
<li>Pontos bônus se você o compartilhar nas mídias sociais!</li> <li>Pontos bônus se você o compartilhar nas mídias sociais!</li>
<li>Vou escolher 5 capturas de tela e propor à votação a comunidade <strong>discord</strong>.</li> <li>Vou escolher 5 capturas de tela e propor à votação a comunidade <strong>discord</strong>.</li>
<li>o vencedor recebe <strong> $ 25 </strong> (Paypal, Amazon Gift Card, o que você preferir)</li> <li>o vencedor recebe <strong>$25</strong> (Paypal, Amazon Gift Card, o que você preferir)</li>
<li>Até 07.06.2020 12:00 CEST</li> <li>Até 07.06.2020 12:00 CEST</li>
</ul> </ul>
<br> <br>
Estou ansioso para ver suas criações incríveis! Estou ansioso para ver suas criações incríveis!
showInfo: Participate showInfo: Participar
contestOver: This contest has ended - Join the discord to get noticed about new contests! contestOver: Esse concurso está encerrado - Entre no discord para ser informado sobre novos concursos!
helpTranslate: Help translate! helpTranslate: Ajude a traduzir!
dialogs: dialogs:
buttons: buttons:
@ -163,60 +163,60 @@ dialogs:
restart: Reiniciar restart: Reiniciar
reset: Reset reset: Reset
getStandalone: Obter versão completa getStandalone: Obter versão completa
deleteGame: Eu sei o que eu faço deleteGame: Sei o que faço
viewUpdate: Atualizações viewUpdate: Atualizações
showUpgrades: Mostrar atualizações showUpgrades: Ver melhorias
showKeybindings: Controles showKeybindings: Controles
importSavegameError: importSavegameError:
title: Erro importante title: Erro de importação
text: >- text: >-
Falha ao carregar seu savegame: Houve uma falha ao importar seu jogo salvo:
importSavegameSuccess: importSavegameSuccess:
title: Sucesso title: Jogo salvo importado
text: >- text: >-
Seu savegame foi importado. Seu jogo salvo foi importado com sucesso.
gameLoadFailure: gameLoadFailure:
title: Jogo esta quebrado title: Jogo salvo quebrado
text: >- text: >-
Falha ao carregar seu savegame Houve uma falha ao carregar seu jogo salvo:
confirmSavegameDelete: confirmSavegameDelete:
title: Confirmar exclusão title: Confirmar exclusão
text: >- text: >-
Tem certeza que quer excluir esse jogo? Tem certeza que quer excluir esse jogo salvo?
savegameDeletionError: savegameDeletionError:
title: Falha para deletar title: Falha ao deletar
text: >- text: >-
Falha ao deletar seu savegame: Houve uma falha ao deletar seu jogo salvo:
restartRequired: restartRequired:
title: Reiniciar title: Ação necessária
text: >- text: >-
Voce precisa reiniciar o jogo para aplicar as mudanças. Voce precisa reiniciar o jogo para aplicar as mudanças.
editKeybinding: editKeybinding:
title: Change Keybinding title: Alterar tecla
desc: Press the key you want to assign, or escape to cancel. desc: Pressiona a tecla que deseja vincular, ou ESC para cancelar.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Resetar controles title: Resetar controles
desc: Essa opção deixa os controles no modo padrão. desc: Essa opção deixa os controles nas definições padrão.
keybindingsResetOk: keybindingsResetOk:
title: Resetar controles title: Resetar controles
desc: Os controles foram resetados para o modo padrão. desc: Os controles foram resetados para as definições padrão.
featureRestriction: featureRestriction:
title: Versão Demo title: Versão Demo
desc: Você tentou acessar um recurso (<feature>) que não está disponível na demo. Considere obter a versão completa para a proceder! desc: Você tentou acessar um recurso (<feature>) que não está disponível na demo. Considere obter a versão completa para a proceder!
oneSavegameLimit: oneSavegameLimit:
title: Save limitado title: Jogo salvo limitado
desc: Você pode ter apenas um savegame por vez na versão demo. Remova o existente ou obtenha a versão completa! desc: Você pode ter apenas um jogo salvo por vez na versão demo. Remova o existente ou obtenha a versão completa!
updateSummary: updateSummary:
title: Nova Atualização! title: Nova Atualização!
@ -224,15 +224,15 @@ dialogs:
Aqui estão as alterações desde a última vez que você jogou: Aqui estão as alterações desde a última vez que você jogou:
upgradesIntroduction: upgradesIntroduction:
title: Desbloquear updates title: Desbloquear melhorias
desc: >- desc: >-
Todas as formas que você produz podem ser usadas para desbloquear atualizações - <strong> Não destrua suas antigas fábricas!!</strong> Todas as formas que você produz podem ser usadas para desbloquear melhorias - <strong> Não destrua suas antigas fábricas!!</strong>
O guia de atualizações pode ser encontrada no canto superior direito da tela. O guia de melhorias pode ser encontrado no canto superior direito da tela.
massDeleteConfirm: massDeleteConfirm:
title: Deletar title: Deletar
desc: >- desc: >-
Voce esta deletando vários itens (<count> para ser exato)! Voce quer continuar? Você está deletando vários objetos (<count> para ser exato)! Você quer continuar?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Não desbloqueado ainda title: Não desbloqueado ainda
@ -243,30 +243,27 @@ dialogs:
title: Teclas úteis title: Teclas úteis
desc: >- desc: >-
Este jogo possui muitas combinações de teclas que facilitam a construção de grandes fábricas Este jogo possui muitas combinações de teclas que facilitam a construção de grandes fábricas
Aqui estão alguns mas certifique-se de <strong> verificar as combinações de teclas </strong>!<br><br> Aqui estão algumas, certifique-se de <strong> verificar as combinações de teclas </strong>!<br><br>
<code class='keybinding'>CTRL</code> + Drag: Selecione a área para copiar / delete.<br> <code class='keybinding'>CTRL</code> + Arrastar: Seleciona área para copiar / delete.<br>
<code class='keybinding'>SHIFT</code>: Mantenha pressionado para colocar vários.<br> <code class='keybinding'>SHIFT</code>: Mantenha pressionado para colocar vária construções.<br>
<code class='keybinding'>ALT</code>: Inverter as posições.<br> <code class='keybinding'>ALT</code>: Inverte as posições.<br>
createMarker: createMarker:
title: Nova Marcação title: Nova Marcação
desc: De um nome desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: >- desc: >-
You can only create two custom markers in the demo. Get the standalone for Você só pode criar dois marcadores na versão demo. Adquira a versão completa para marcadores ilimitados!
unlimited markers!
massCutConfirm: massCutConfirm:
title: Confirm cut title: Confirm cut
desc: >- desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you Você está cortando vários objetos (<count> para ser exato)! Você quer continuar?
want to do this?
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot title: Exportar captura de tela
desc: >- desc: >-
You requested to export your base as a screenshot. Please note that this can Você está prestes a exportar uma captura de tela da sua base. Note que isso pode ser bastante lento para uma base grande, e até mesmo pode travar o jogo!
be quite slow for a big base and even crash your game!
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
@ -277,14 +274,14 @@ ingame:
stopPlacement: Parar stopPlacement: Parar
rotateBuilding: Rotação rotateBuilding: Rotação
placeMultiple: Colocar vários placeMultiple: Colocar vários
reverseOrientation: reverso reverseOrientation: Inverter orientação
disableAutoOrientation: desligar orientações disableAutoOrientation: Desligar orientação automática
toggleHud: Base toggleHud: Ocultar interface
placeBuilding: Colocar construção placeBuilding: Construir objeto
createMarker: Criar marcador createMarker: Criar marcador
delete: Destruir delete: Destruir
selectBuildings: Select area selectBuildings: Selecionar área
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Colar último projeto
# Everything related to placing buildings (I.e. as soon as you selected a building # Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar) # from the toolbar)
@ -298,8 +295,8 @@ ingame:
Hotkey: <key> Hotkey: <key>
infoTexts: infoTexts:
speed: velocidade speed: Velocidade
range: distancia range: Distância
storage: Estoque storage: Estoque
oneItemPerSecond: 1 item / segundo oneItemPerSecond: 1 item / segundo
itemsPerSecond: <x> itens / s itemsPerSecond: <x> itens / s
@ -310,32 +307,32 @@ ingame:
# The notification when completing a level # The notification when completing a level
levelCompleteNotification: levelCompleteNotification:
# <level> is replaced by the actual level, so this gets 'Level 03' for example. # <level> is replaced by the actual level, so this gets 'Level 03' for example.
levelTitle: Level <level> levelTitle: vel <level>
completed: Completado completed: Completado
unlockText: Desbloqueado <reward>! unlockText: Desbloqueado <reward>!
buttonNextLevel: Próximo Level buttonNextLevel: Próximo vel
# Notifications on the lower right # Notifications on the lower right
notifications: notifications:
newUpgrade: Nova Atualização disponível! newUpgrade: Nova melhoria disponível!
gameSaved: Seu jogo foi Salvo. gameSaved: Seu jogo foi salvo.
# Mass select information, this is when you hold CTRL and then drag with your mouse # Mass select information, this is when you hold CTRL and then drag with your mouse
# to select multiple buildings # to select multiple buildings
massSelect: massSelect:
infoText: Press <keyCut> to cut, <keyCopy> to copy, <keyDelete> to remove and <keyCancel> to cancel. infoText: Pressione <keyCut> para cortar, <keyCopy> para copiar, <keyDelete> para destruir e <keyCancel> para cancelar.
# The "Upgrades" window # The "Upgrades" window
shop: shop:
title: Atualizações title: Melhorias
buttonUnlock: Atualizações buttonUnlock: Comprar
# Gets replaced to e.g. "Tier IX" # Gets replaced to e.g. "Tier IX"
tier: Nível <x> tier: Nível <x>
# The roman number for each tier # The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X] tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: MAXIMUM LEVEL (Speed x<currentMult>) maximumLevel: NÍVEL MÁXIMO (Velocidade x<currentMult>)
# The "Statistics" window # The "Statistics" window
statistics: statistics:
@ -353,23 +350,23 @@ ingame:
noShapesProduced: Nenhuma forma foi produzida até o momento. noShapesProduced: Nenhuma forma foi produzida até o momento.
# Displays the shapes per minute, e.g. '523 / m' # Displays the shapes per minute, e.g. '523 / m'
shapesPerMinute: <formas> / m shapesPerMinute: <shapes> / m
# Settings menu, when you press "ESC" # Settings menu, when you press "ESC"
settingsMenu: settingsMenu:
playtime: Tempo de Jogo playtime: Tempo de Jogo
buildingsPlaced: Construções buildingsPlaced: Construções
beltsPlaced: Belts beltsPlaced: Esteiras
buttons: buttons:
continue: Continue continue: Continuar
settings: Definições settings: Definições
menu: Voltar ao menu menu: Voltar ao menu
# Bottom left tutorial hints # Bottom left tutorial hints
tutorialHints: tutorialHints:
title: Precisa de ajuda? title: Quer ajuda?
showHint: Mostrar dica showHint: Mostrar dica
hideHint: Fechar hideHint: Fechar
@ -399,193 +396,189 @@ ingame:
shopUpgrades: shopUpgrades:
belt: belt:
name: Esteiras, Distribuidores e Túneis name: Esteiras, Distribuidores e Túneis
description: Speed x<currentMult> → x<newMult> description: Velocidade x<currentMult> → x<newMult>
miner: miner:
name: Extração name: Extração
description: Speed x<currentMult> → x<newMult> description: Velocidade x<currentMult> → x<newMult>
processors: processors:
name: Cortar, Rotacionar e Empilhamento name: Corte, Rotação e Empilhamento
description: Speed x<currentMult> → x<newMult> description: Velocidade x<currentMult> → x<newMult>
painting: painting:
name: Misturador e pintura name: Mistura de cores e pintura
description: Speed x<currentMult> → x<newMult> description: Velocidade x<currentMult> → x<newMult>
# Buildings and their name / description # Buildings and their name / description
buildings: buildings:
belt: belt:
default: default:
name: &belt Conveyor Belt name: &belt Esteira Transportadora
description: Transporta itens, mantenha pressionado e arraste para colocar vários. description: Transporta itens; mantenha pressionado e arraste para colocar vários.
miner: # Internal name for the Extractor miner: # Internal name for the Extractor
default: default:
name: &miner Extractor name: &miner Extrator
description: Coloque sobre uma forma ou cor para extraí-la. description: Coloque sobre uma forma ou cor para extraí-la.
chainable: chainable:
name: Extractor (Chain) name: Extrator em Cadeia
description: Coloque sobre uma forma ou cor para extraí-la. Pode ser acorrentado. description: Coloque sobre uma forma ou cor para extraí-la. Pode ser ligado a outros extratores.
underground_belt: # Internal name for the Tunnel underground_belt: # Internal name for the Tunnel
default: default:
name: &underground_belt Tunnel name: &underground_belt Túnel
description: Permite transportar recursos sob construções. description: Permite transportar recursos sob construções.
tier2: tier2:
name: Tunnel Tier II name: Túnel Classe II
description: Permite transportar recursos sob construções. description: Permite transportar recursos sob construções.
splitter: # Internal name for the Balancer splitter: # Internal name for the Balancer
default: default:
name: &splitter Balancer name: &splitter Balanceador
description: Multifunctional - Distribui uniformemente todas as entradas em todas as saídas. description: Multifuncional - Distribui uniformemente todas as entradas em todas as saídas.
compact: compact:
name: Merger (compact) name: Balanceador (compacto)
description: Mescla duas correias transportadoras em uma. description: Mescla duas esteiras transportadoras em uma.
compact-inverse: compact-inverse:
name: Merger (compact) name: Balanceador (compacto)
description: Mescla duas correias transportadoras em uma. description: Mescla duas esteiras transportadoras em uma.
cutter: cutter:
default: default:
name: &cutter Cutter name: &cutter Cortador
description: Corta as formas de cima para baixo e produz as duas metades. <strong> Se você usar apenas uma parte, não se esqueça de destruir a outra parte, ou ela irá parar a produção! </strong> description: Corta as formas verticalmente e produz as duas metades. <strong> Se você usar apenas uma parte, não se esqueça de destruir a outra parte, ou ela irá parar a produção! </strong>
quad: quad:
name: Cutter (Quad) name: Cortador (Quádruplo)
description: Corta as formas em quatro partes. <strong> Se você usar apenas uma parte, não se esqueça de destruir as outras, ou ela irá parar a produção! </strong> description: Corta as formas em quatro partes. <strong> Se você usar apenas uma parte, não se esqueça de destruir as outras, ou ela irá parar a produção! </strong>
rotater: rotater:
default: default:
name: &rotater Rotate name: &rotater Rotacionador
description: Gira as formas no sentido horário em 90 graus. description: Gira as formas no sentido horário em 90 graus.
ccw: ccw:
name: Rotate (CCW) name: Rotacionador (Anti-horário)
description: RGira as formas no sentido anti-horário em 90 graus. description: Gira as formas no sentido anti-horário em 90 graus.
stacker: stacker:
default: default:
name: &stacker Stacker name: &stacker Empilhador
description: Empilha os dois itens. Se eles não puderem ser mesclados, o item certo será colocado acima do item esquerdo. description: Empilha os dois itens. Se eles não puderem ser mesclados, o item direito será colocado acima do item esquerdo.
mixer: mixer:
default: default:
name: &mixer Color Mixer name: &mixer Misturador de Cores
description: Mistura duas cores usando mistura aditiva. description: Mistura duas cores usando mistura aditiva.
painter: painter:
default: default:
name: &painter Painter name: &painter Pintor
description: Colore a forma inteira na entrada esquerda com a cor da entrada direita. description: Colore a forma inteira na entrada esquerda com a cor da entrada direita.
double: double:
name: Painter (Double) name: Pintor (Duplo)
description: Colore as duas formas na entrada esquerda com a cor da entrada direita. description: Colore as duas formas na entrada esquerda com a cor da entrada direita.
quad: quad:
name: Painter (Quad) name: Pintor (Quádruplo)
description: Permite colorir cada quadrante da forma com uma cor diferente. description: Permite colorir cada quadrante da forma com uma cor diferente.
trash: trash:
default: default:
name: &trash Lixo name: &trash Lixo
description: Aceita qualquer item e os destrói. PARA SEMPRE description: Aceita qualquer item e os destrói. PARA SEMPRE.
storage: storage:
name: Estoque name: Estoque
description: Armazena itens em excesso, até uma determinada capacidade. Pode ser usado como uma porta de transbordamento. description: Armazena itens em excesso, até uma determinada capacidade. Pode ser usado como uma porta de transbordamento.
hub: hub:
deliver: Deliver deliver: Entregue
toUnlock: to unlock toUnlock: para desbloquear
levelShortcut: LVL levelShortcut: LVL
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: Formas de corte title: Cortando formas
desc: Voce desbloqueou <strong>cutter</strong> - corte de formas pela metade de <strong>cima para baixo </strong> independentemente de sua orientação!<br><br> Certifique-se de se livrar do lixo, ou então <strong> ele irá parar a produção </strong> - Para esse propósito, eu lhe dei uma lixo, que destrói tudo o que você coloca nele desc: Voce desbloqueou <strong>cortador</strong> - corte de formas pela metade <strong>verticalmente</strong> independentemente de sua orientação!<br><br> Certifique-se de se livrar do lixo, ou então <strong> ele irá parar a produção </strong> - Para esse propósito, eu lhe dei um lixo, que destrói tudo o que você coloca nele.
reward_rotater: reward_rotater:
title: Rodando title: Rotação
desc: O <strong> rotator </strong> foi desbloqueado! Gira as formas no sentido horário em 90 graus desc: O <strong> rotacionador </strong> foi desbloqueado! Gira as formas no sentido horário em 90 graus.
reward_painter: reward_painter:
title: Pintando title: Pintura
desc: >- desc: >-
O <strong> pintor </strong> foi desbloqueado - Extraia algumas veias coloridas (como você faz com formas) e combine-as com uma forma no pintor para colori-las! <br> <br> PS: Se você é daltônico , Já estou trabalhando em uma solução! O <strong> pintor </strong> foi desbloqueado - Extraia algumas fontes coloridas (como você faz com formas) e combine-as com uma forma no pintor para colorí-las! <br> <br> PS: Se você é daltônico, já estou trabalhando em uma solução!
reward_mixer: reward_mixer:
title: Mistura de cores title: Misturando cores
desc: O <strong> misturador </strong> foi desbloqueado - combine duas cores usando <strong> mistura aditiva </strong> com esta construção! desc: O <strong> misturador </strong> foi desbloqueado - combine duas cores usando <strong>mistura aditiva</strong> com esta construção!
reward_stacker: reward_stacker:
title: Combinador title: Empilhador
desc: Agora você pode combinar formas com o <strong> combinador </strong>! Ambas as entradas são combinadas e, se puderem ser colocadas próximas uma da outra, serão <strong> fundidas </strong>. Caso contrário, a entrada direita é <strong> empilhada em cima </strong> da entrada esquerda! desc: Agora você pode combinar formas com o <strong>empilhador</strong>! Ambas as entradas são combinadas e, se puderem ser colocadas próximas uma da outra, serão <strong> fundidas </strong>. Caso contrário, a entrada direita é <strong>empilhada em cima</strong> da entrada esquerda!
reward_splitter: reward_splitter:
title: Divisor/fusão title: Balanceador
desc: >- desc: O <strong>balanceador</strong> multifuncional foi desbloqueado - pode ser usado para construir fábricas maiores <strong>dividindo e unindo itens</strong> em múltiplas esteiras!<br><br>
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>
reward_tunnel: reward_tunnel:
title: Túnel title: Túnel
desc: O <strong> túnel </strong> foi desbloqueado - Agora você pode canalizar itens através de construções! desc: O <strong>túnel</strong> foi desbloqueado - Agora você pode canalizar itens sob construções!
reward_rotater_ccw: reward_rotater_ccw:
title: CCW Rotação title: Rotação anti-horária
desc: Você desbloqueou uma variante do <strong> rotater </strong> - permite girar no sentido anti-horário! Para construí-lo, selecione o rotador e <strong> pressione 'T' para alternar suas variantes </strong>! desc: Você desbloqueou uma variante do <strong>rotacionador</strong> - permite girar no sentido anti-horário! Para construí-lo, selecione o rotacionador e <strong>pressione 'T' para alternar suas variantes</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Extrator de encadeamento title: Extrator em Cadeia
desc: Você desbloqueou o <strong> extrator de correntes </strong>! Ele pode <strong> encaminhar seus recursos </strong> para outros extratores, para que você possa extrair recursos com mais eficiência! desc: Você desbloqueou o <strong>extrator em cadeia</strong>! Ele pode <strong>encaminhar seus recursos</strong> para outros extratores, para que você possa extrair recursos com mais eficiência!
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Túnel Tier II title: Túnel Classe II
desc: Você desbloqueou uma nova variante do <strong> túnel </strong> - ele tem um <strong> maior alcance </strong>, e também pode misturar e combinar esses túneis agora! desc: Você desbloqueou uma nova variante do <strong>túnel</strong> - ele tem um <strong>maior alcance</strong>, e também pode atravessar outros túneis na mesma linha!
reward_splitter_compact: reward_splitter_compact:
title: Balanceador compacto title: Balanceador compacto
desc: >- desc: Você desbloqueou uma variante compacta do <strong>balanceador</strong> - ele aceita duas entradas e as mescla em uma!
Você desbloqueou uma variante compacta do <strong> balanceador </strong> - ele aceita duas entradas e as mescla em uma!
reward_cutter_quad: reward_cutter_quad:
title: Cortador quádruplo title: Cortador quádruplo
desc: Você desbloqueou uma variante do <strong> cortador </strong> - permite cortar formas em <strong> quatro partes </strong> em vez de apenas duas! desc: Você desbloqueou uma variante do <strong>cortador</strong> - permite cortar formas em <strong>quatro partes</strong> em vez de apenas duas!
reward_painter_double: reward_painter_double:
title: Pintura dupla title: Pintura dupla
desc: Você desbloqueou uma variante do <strong> pintor </strong> - funciona como o pintor regular, mas processa <strong> duas formas ao mesmo tempo </strong>, consumindo apenas uma cor em vez de duas! desc: Você desbloqueou uma variante do <strong>pintor</strong> - funciona como o pintor regular, mas processa <strong> duas formas ao mesmo tempo </strong>, consumindo apenas uma cor em vez de duas!
reward_painter_quad: reward_painter_quad:
title: Pintura quádupla title: Pintura quádrupla
desc: Você desbloqueou uma variante do <strong> pintor </strong> - permite pintar cada parte da forma individualmente! desc: Você desbloqueou uma variante do <strong>pintor</strong> - permite pintar cada parte da forma individualmente!
reward_storage: reward_storage:
title: buffer de armazenamento title: Acúmulo de excesso
desc: Você desbloqueou uma variante do <strong> lixo </strong> - Permite armazenar itens até uma determinada capacidade! desc: Você desbloqueou uma variante do <strong>lixo</strong> - Permite armazenar itens até uma determinada capacidade!
reward_freeplay: reward_freeplay:
title: Modo Livre title: Modo Livre
desc: Você fez isso! Você desbloqueou o <strong> modo de jogo livre </strong>! Isso significa que as formas agora são geradas aleatoriamente! (Não se preocupe, mais conteúdo está planejado para o jogo completo!) desc: Você conseguiu! Você desbloqueou o <strong>modo de jogo livre</strong>! Isso significa que as formas agora são geradas aleatoriamente! (Não se preocupe, mais conteúdo está planejado para o jogo completo!)
reward_blueprints: reward_blueprints:
title: Projetos title: Projetos
desc: Agora você pode <strong> copiar e colar </strong> partes de sua fábrica! Selecione uma área (mantenha pressionada a tecla CTRL e arraste com o mouse) e pressione 'C' para copiá-la. <br> <br> Colar <strong> não é de graça </strong>, é necessário produzir <strong> projetos e formas </strong> para pagar! (Aqueles que você acabou de entregar). desc: Agora você pode <strong>copiar e colar</strong> partes de sua fábrica! Selecione uma área (mantenha pressionada a tecla CTRL e arraste com o mouse) e pressione 'C' para copiá-la. <br><br>Colar <strong>não é de graça</strong>, é necessário produzir <strong>formas de projeto</strong> para pagar! (Aquelas que você acabou de entregar).
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
title: Próximo level title: Próximo vel
desc: >- desc: >-
Este nível não lhe deu nenhuma recompensa, mas em breve?! <br> <br> PS: Melhor não destruir sua fábrica existente - Você precisa de <strong> todas </strong> todas essas formas posteriormente mais tarde para <strong> desbloquear atualizações </strong>! Este nível não lhe deu nenhuma recompensa, mas em breve?! <br><br>PS: Melhor não destruir sua fábrica existente - Você precisa de <strong>todas</strong> essas formas posteriormente mais tarde para <strong>desbloquear atualizações</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Next level title: Próximo nível
desc: >- desc: >-
Parabens, não se esqueça existe muita coisa planejada para essa versão. Parabéns! Não se esqueça, existe muita coisa planejada para a versão completa.
settings: settings:
title: opções title: opções
@ -603,7 +596,7 @@ settings:
uiScale: uiScale:
title: Fonte title: Fonte
description: >- description: >-
Altera o tamanho da fonte do usuário. A interface ainda será dimensionada com base na resolução do dispositivo, mas essa configuração controla a quantidade de escala. Altera o tamanho da fonte do usuário. A interface ainda será dimensionada com base na resolução do dispositivo, mas essa configuração controla a escala do texto.
scales: scales:
super_small: Super pequeno super_small: Super pequeno
small: Pequeno small: Pequeno
@ -614,7 +607,7 @@ settings:
scrollWheelSensitivity: scrollWheelSensitivity:
title: Sensibilidade do zoom title: Sensibilidade do zoom
description: >- description: >-
Altera a sensibilidade do zoom (scrol do mouse ou touchpad). Altera a sensibilidade do zoom (roda do mouse ou touchpad).
sensitivity: sensitivity:
super_slow: Super lento super_slow: Super lento
slow: Lento slow: Lento
@ -623,33 +616,33 @@ settings:
super_fast: Super Rápido super_fast: Super Rápido
fullscreen: fullscreen:
title: Tecla Cheia title: Tela Cheia
description: >- description: >-
É recomendável jogar o jogo em tela cheia para obter a melhor experiência. Disponível apenas na versão completa. É recomendado jogar o jogo em tela cheia para obter a melhor experiência. Disponível apenas na versão completa.
soundsMuted: soundsMuted:
title: Som title: Som
description: >- description: >-
Se ligado o jogo fica Mudo. Se ligado o jogo fica mudo
musicMuted: musicMuted:
title: Musica title: Musica
description: >- description: >-
Se ligado a musica é desligada. Se ligado, a musica fica muda.
theme: theme:
title: Tema title: Tema
description: >- description: >-
Escolha o tema entre (Branco / Preto). Escolha o tema entre (Claro / Escuro).
themes: themes:
dark: Dark dark: Escuro
light: Light light: Claro
refreshRate: refreshRate:
title: Frequencia title: Frequência
description: >- description: >-
Se você possui um monitor de 144 hz, altere a taxa de atualização aqui para que o jogo seja simulado corretamente com taxas de atualização mais altas. Isso pode realmente diminuir o FPS se o computador estiver muito lento. Se você possui um monitor de 144 hz, altere a taxa de atualização aqui para que o jogo seja simulado corretamente com taxas de atualização mais altas. Isso diminuir o FPS consideravelmente se o computador for muito lento.
alwaysMultiplace: alwaysMultiplace:
title: Multiplicidade title: Multiplicidade
@ -659,40 +652,39 @@ settings:
offerHints: offerHints:
title: Dicas e tutoriais title: Dicas e tutoriais
description: >- description: >-
Se deve oferecer dicas e tutoriais enquanto estiver jogando.v. Se serão oferecidas dicas e tutoriais enquanto estiver jogando.
language: language:
title: Language title: Idioma
description: >- description: >-
Change the language. All translations are user contributed and might be Altera o idioma. Todas as traduções são contribuições de usuários e podem estar incompletas!
incomplete!
movementSpeed: movementSpeed:
title: Movement speed title: Velocidade da câmera
description: Changes how fast the view moves when using the keyboard. description: Altera a velocidade com que a câmera se move com o teclado.
speeds: speeds:
super_slow: Super slow super_slow: Super Lento
slow: Slow slow: Lento
regular: Regular regular: Normal
fast: Fast fast: Rápido
super_fast: Super Fast super_fast: Super Rápido
extremely_fast: Extremely Fast extremely_fast: Extremamente Rápido
keybindings: keybindings:
title: Comandos title: Controles
hint: >- hint: >-
Tip: Certifique-se de usar CTRL, SHIFT e ALT! Eles permitem diferentes opções de veiculação. Tip: Certifique-se de usar CTRL, SHIFT e ALT! Eles permitem diferentes opções de construção.
resetKeybindings: Reset Keyinbindings resetKeybindings: Resetar Controles
categoryLabels: categoryLabels:
general: Geral general: Geral
ingame: Jogo ingame: Jogo
navigation: Navegação navigation: Navegação
placement: Posicionamento placement: Construção
massSelect: Seleção massSelect: Seleção
buildings: Construções buildings: Atalhos de objetos
placementModifiers: Modificações placementModifiers: Modificadores
mappings: mappings:
confirm: Confirmar confirm: Confirmar
@ -701,16 +693,16 @@ keybindings:
mapMoveRight: Mover para direita mapMoveRight: Mover para direita
mapMoveDown: Mover para baixo mapMoveDown: Mover para baixo
mapMoveLeft: Mover para a esquerda mapMoveLeft: Mover para a esquerda
centerMap: Centralizar centerMap: Centralizar mapa
mapZoomIn: Aproximar mapZoomIn: Aproximar
mapZoomOut: Distanciar mapZoomOut: Distanciar
createMarker: Criar marcação createMarker: Criar marcação
menuOpenShop: Atualizações menuOpenShop: Melhorias
menuOpenStats: Estatísticas menuOpenStats: Estatísticas
toggleHud: Ocultar Menu toggleHud: Ocultar Interface
toggleFPSInfo: Mostar FPS toggleFPSInfo: Mostar FPS
belt: *belt belt: *belt
splitter: *splitter splitter: *splitter
@ -726,51 +718,52 @@ keybindings:
abortBuildingPlacement: Cancelar abortBuildingPlacement: Cancelar
rotateWhilePlacing: Rotacionar rotateWhilePlacing: Rotacionar
rotateInverseModifier: >- rotateInverseModifier: >-
Modifier: Rotação instantanea Modifier: Rotação anti-horária
cycleBuildingVariants: Variações cycleBuildingVariants: Variações
confirmMassDelete: Confirmar exclusão em massa confirmMassDelete: Confirmar exclusão em massa
cycleBuildings: Trocar de construção cycleBuildings: Trocar de construção
massSelectStart: Segure e arraste para começar massSelectStart: Segure e arraste para começar
massSelectSelectMultiple: Selecionar área massSelectSelectMultiple: Selecionar mais áreas
massSelectCopy: Copiar área massSelectCopy: Copiar área
placementDisableAutoOrientation: Desligar orientações automaticas placementDisableAutoOrientation: Desligar orientação automática
placeMultiple: Permanecer no modo de produção placeMultiple: Permanecer no modo de construção
placeInverse: Inverter orientação de esteira placeInverse: Inverter orientação de esteira
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Colar último projeto
massSelectCut: Cut area massSelectCut: Cortar área
exportScreenshot: Export whole Base as Image exportScreenshot: Exportar base inteira como imagem
mapMoveFaster: Move Faster
about: about:
title: Sobre o jogo title: Sobre o jogo
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" Esse jogo tem código aberto e é desenvolvido por <a href="https://github.com/tobspr"
target="_blank">Tobias Springer</a> (this is me).<br><br> target="_blank">Tobias Springer</a> (esse sou eu).<br><br>
If you want to contribute, check out <a href="<githublink>" Se quiser contribuir, confira <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io no github</a>.<br><br>
This game wouldn't have been possible without the great discord community O jogo não seria possível sem a comunidade incrível do discord sobre
around my games - You should really join the <a href="<discordlink>" os meus jogos - Junte-se à comunidade no <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">servidor do discord</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" A trilha sonora foi feita por <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - Ele é demais.<br><br>
Finally, huge thanks to my best friend <a Finalmente, agradeço muito ao meu melhor amigo
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Sem nossas sessões de Factorio,
factorio sessions this game would never have existed. esse jogo nunca teria existido.
changelog: changelog:
title: Changelog title: Changelog
demo: demo:
features: features:
restoringGames: Restaurando jogos salvos restoringGames: Restaurar jogos salvos
importingGames: Carregando jogos salvos importingGames: Carregar jogos salvos
oneGameLimit: Limitado para um savegamne oneGameLimit: Limitado para um jogo salvo
customizeKeybindings: Modificando Teclas customizeKeybindings: Modificar Teclas
exportingBase: Exporting whole Base as Image exportingBase: Exportar base inteira como imagem
settingNotAvailable: Não disponível na versão demo. settingNotAvailable: Não disponível na versão demo.

View File

@ -21,7 +21,7 @@
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io é um jogo cujo objetivo é construir fábricas para automatizar a criação e combinação de formas geométricas cada vez mais complexas num mapa infinito. shortText: shapez.io é um jogo cujo objetivo é construir fábricas para automatizar a criação e fusão de formas geométricas cada vez mais complexas num mapa infinito.
# 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. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
@ -30,9 +30,9 @@ steamPage:
longText: >- longText: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
shapez.io é um jogo cujo objetivo é construir fábricas para automatizar a criação e combinação de formas geométricas. Entrega as formas cada vez mais complexas que são pedidas de forma a progredir no jogo e desbloquear melhorias para acelerar a produção da tua fábrica shapez.io é um jogo cujo objetivo é construir fábricas para automatizar a criação e fusão de formas geométricas. Entrega as formas pedidas, que são cada vez mais complexas, de modo a progredir no jogo e desbloquear melhorias para acelerar a produção da tua fábrica
Uma vez que a procura aumenta a cada nível, terás de aumentar a tua fábrica para fazer face às necessidades - Para isso, terás de expandir no [b]mapa infinito[/b] para explorar todos os recursos! Uma vez que a procura aumenta a cada nível, terás de aumentar a tua fábrica para fazer face às necessidades - Para isso, terás de te expandir no [b]mapa infinito[/b] para explorar todos os recursos!
Como produzir formas se tornará aborrecido rapidamente, não tardará até precisares de misturar cores e pintá-las com elas - Combina os recursos de cores vermelha, verde e azul para produzir diferentes cores e usá-las para pintar as formas geométricas com o intuito de satisfazer a procura. Como produzir formas se tornará aborrecido rapidamente, não tardará até precisares de misturar cores e pintá-las com elas - Combina os recursos de cores vermelha, verde e azul para produzir diferentes cores e usá-las para pintar as formas geométricas com o intuito de satisfazer a procura.
@ -47,7 +47,7 @@ steamPage:
[*] Modo escuro [*] Modo escuro
[*] Mais definições [*] Mais definições
[*] Possibilita-me desenvolver ainda mais o shapez.io ❤️ [*] Possibilita-me desenvolver ainda mais o shapez.io ❤️
[*] Mais conteúdo no futuro [*] Mais conteúdo no futuro!
[/list] [/list]
[b]Conteúdo planeado & Sugestões da comunidade[/b] [b]Conteúdo planeado & Sugestões da comunidade[/b]
@ -98,7 +98,7 @@ global:
# Short formats for times, e.g. '5h 23m' # Short formats for times, e.g. '5h 23m'
secondsShort: <seconds>s secondsShort: <seconds>s
minutesAndSecondsShort: <minutes>m <seconds>s minutesAndSecondsShort: <minutes>m <seconds>s
hoursAndMinutesShort: <hours>h <minutes>s hoursAndMinutesShort: <hours>h <minutes>m
xMinutes: <x> minutos xMinutes: <x> minutos
@ -126,7 +126,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: >-
Desculpa, mas este jogo parece correr mais lentamente no teu navegador! Compra o jogo completo ou baixa o chrome para a melhor experiência. Desculpa, mas este jogo parece correr mais lentamente no teu navegador! Compra o jogo completo ou baixa o chrome para a melhorares a tua experiência.
savegameLevel: Nível <x> savegameLevel: Nível <x>
savegameLevelUnknown: Nível desconhecido savegameLevelUnknown: Nível desconhecido
@ -142,9 +142,9 @@ mainMenu:
<br><br> <br><br>
Como fazer:<br> Como fazer:<br>
<ul class="bucketList"> <ul class="bucketList">
<li>Envia um screenshot da tua base para <strong>contest@shapez.io</strong></li> <li>Envia uma captura de ecrã da tua base para <strong>contest@shapez.io</strong></li>
<li>Bónus se o partilhares nas redes sociais!</li> <li>Bónus se o partilhares nas redes sociais!</li>
<li>Eu escolherei 5 screenshots e propô-los-ei à comunidade do <strong>discord</strong> para votar.</li> <li>Eu irei escolher 5 capturas de ecrã e propô-las-ei à comunidade do <strong>discord</strong> para votar.</li>
<li>O vencedor ganha <strong>$25</strong> (Paypal, Amazon Gift Card, ou o que preferires)</li> <li>O vencedor ganha <strong>$25</strong> (Paypal, Amazon Gift Card, ou o que preferires)</li>
<li>Prazo: 07.06.2020 12:00 AM CEST</li> <li>Prazo: 07.06.2020 12:00 AM CEST</li>
</ul> </ul>
@ -166,7 +166,7 @@ dialogs:
deleteGame: Eu sei o que faço deleteGame: Eu sei o que faço
viewUpdate: Ver Update viewUpdate: Ver Update
showUpgrades: Mostrar Upgrades showUpgrades: Mostrar Upgrades
showKeybindings: Mostrar Controlos showKeybindings: Mostrar Atalhos
importSavegameError: importSavegameError:
title: Erro de importação title: Erro de importação
@ -196,27 +196,27 @@ dialogs:
restartRequired: restartRequired:
title: Necessário reiniciar title: Necessário reiniciar
text: >- text: >-
Deves reiniciar o jogo para aplicar as mudanças. Precisas de reiniciar o jogo para aplicar as mudanças.
editKeybinding: editKeybinding:
title: Mudar Keybinding title: Mudar Atalhos
desc: Pressiona a tecla ou botão do rato que pretendes definir, ou Escape para cancelar. desc: Pressiona a tecla ou botão do rato que pretendes definir, ou Escape para cancelar.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Resetar Keybindings title: Resetar Atalhos
desc: Isto resetará todos os keybindings para os seus valores pré-definidos. Confirma por favor. desc: Isto irá resetar todos os Atalhos para os seus valores pré-definidos. Confirma por favor.
keybindingsResetOk: keybindingsResetOk:
title: Keybindings resetados title: Atalhos resetados
desc: Os keybindings foram resetados para os respetivos valores pré-definidos! desc: Os Atalhos foram resetados para os respetivos valores pré-definidos!
featureRestriction: featureRestriction:
title: Versão Demo title: Versão Demo
desc: Tentaste aceder a uma funcionalidade (<feature>) que não está disponivel no Demo. Considera adquirir o jogo completo para a melhor experiência! desc: Tentaste aceder a uma funcionalidade (<feature>) que não está disponivel no Demo. Considera adquirir o jogo completo para a melhor experiência do jogo!
oneSavegameLimit: oneSavegameLimit:
title: Savegames limitados title: Savegames limitados
desc: Podes ter apenas um savegame de cada vez na versão Demo. Por favor remove o savegame existente ou adquire a versão completa! desc: Apenas podes ter um savegame de cada vez na versão Demo. Por favor remove o savegame existente ou adquire a versão completa!
updateSummary: updateSummary:
title: Nova atualização! title: Nova atualização!
@ -235,36 +235,35 @@ dialogs:
Estás a apagar muitas construções (<count> para ser exato)! Tens a certeza? Estás a apagar muitas construções (<count> para ser exato)! Tens a certeza?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Não desbloqueado ainda title: Ainda não está desbloqueado
desc: >- desc: >-
Os Projetos ainda não foram desbloqueados! Completa mais níveis para os desbloquear. Os Projetos ainda não foram desbloqueados! Completa mais níveis para os desbloquear.
keybindingsIntroduction: keybindingsIntroduction:
title: Keybindings úteis title: Atalhos úteis
desc: >- desc: >-
Este jogo tem vários keybindings que tornarão mais fácil a construção de grandes fábricas. Este jogo tem vários Atalhos que tornarão mais fácil a construção de grandes fábricas.
Aqui estão alguns, mas <strong>verifica as restantes keybindings</strong>!<br><br> Aqui estão alguns, mas <strong>verifica os restantes Atalhos</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Drag: Seleciona a área para copiar / eliminar.<br> <code class='keybinding'>CTRL</code> + Drag: Seleciona a área para copiar / eliminar.<br>
<code class='keybinding'>SHIFT</code>: Mantém pressionado para colocar várias construções.<br> <code class='keybinding'>SHIFT</code>: Mantém pressionado para colocar várias construções.<br>
<code class='keybinding'>ALT</code>: Inverte as posições.<br> <code class='keybinding'>ALT</code>: Inverte as posições.<br>
createMarker: createMarker:
title: Novo marco title: Novo marco
desc: Dá-lhe um nome com significado desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: Apenas podes criar dois marcos na versão Demo. Adquire o jogo completo para colocar marcos infinitos! desc: Apenas podes criar dois marcos na versão Demo. Adquire o jogo completo para colocar marcos infinitos!
massCutConfirm: massCutConfirm:
title: Confirm cut title: Confirmar corte
desc: >- desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you Estás a cortar muitas construções (<count> para ser exato)! Tens a certeza?
want to do this?
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot title: Exportar captura de ecrã
desc: >- desc: >-
You requested to export your base as a screenshot. Please note that this can Tu estás a pedir pra exportar a tua base como uma captura de ecrã. Por favor tem em atenção que isto pode
be quite slow for a big base and even crash your game! ser um pouco lento para uma base muito grande até mesmo bloquear o teu jogo!
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
@ -272,8 +271,8 @@ ingame:
keybindingsOverlay: keybindingsOverlay:
moveMap: Mover moveMap: Mover
selectBuildings: Selecionar área selectBuildings: Selecionar área
stopPlacement: Parar stopPlacement: Parar posicionamento
rotateBuilding: Rodar rotateBuilding: Rodar construção
placeMultiple: Colocar vários placeMultiple: Colocar vários
reverseOrientation: Reverter orientação reverseOrientation: Reverter orientação
disableAutoOrientation: Desligar orientação automática disableAutoOrientation: Desligar orientação automática
@ -281,7 +280,7 @@ ingame:
placeBuilding: Colocar construção placeBuilding: Colocar construção
createMarker: Criar marco createMarker: Criar marco
delete: Destruir delete: Destruir
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Colar o último blueprint
# Everything related to placing buildings (I.e. as soon as you selected a building # Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar) # from the toolbar)
@ -299,7 +298,7 @@ ingame:
range: Alcance range: Alcance
storage: Armazenamento storage: Armazenamento
oneItemPerSecond: 1 item / segundo oneItemPerSecond: 1 item / segundo
itemsPerSecond: <x> items / s itemsPerSecond: <x> itens / s
itemsPerSecondDouble: (x2) itemsPerSecondDouble: (x2)
tiles: <x> telas tiles: <x> telas
@ -320,7 +319,7 @@ ingame:
# Mass select information, this is when you hold CTRL and then drag with your mouse # Mass select information, this is when you hold CTRL and then drag with your mouse
# to select multiple buildings # to select multiple buildings
massSelect: massSelect:
infoText: Press <keyCut> to cut, <keyCopy> to copy, <keyDelete> to remove and <keyCancel> to cancel. infoText: Clica <keyCut> para cortar, <keyCopy> para copiar, <keyDelete> para remover e <keyCancel> para cancelar.
# The "Upgrades" window # The "Upgrades" window
shop: shop:
@ -391,7 +390,7 @@ ingame:
Liga o extrator a um <strong>tapete rolante</strong> em direção ao Edifício Central!<br><br>Dica: <strong>Clica e arrasta</strong> o tapete com o rato! Liga o extrator a um <strong>tapete rolante</strong> em direção ao Edifício Central!<br><br>Dica: <strong>Clica e arrasta</strong> o tapete com o rato!
1_3_expand: >- 1_3_expand: >-
Isto <strong>NÃO</strong> é um idle game! Constrói mais extratores e tapetes para atingir o objetivo mais rapidamente.<br><br>Dica: Pressiona <strong>SHIFT</strong> para colocar vários extratores, e usa <strong>R</strong> para os rodar. Isto <strong>NÃO</strong> é um jogo idle! Constrói mais extratores e tapetes para atingir o objetivo mais rapidamente.<br><br>Dica: Pressiona <strong>SHIFT</strong> para colocar vários extratores, e usa <strong>R</strong> para os rodar.
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -436,7 +435,7 @@ buildings:
splitter: # Internal name for the Balancer splitter: # Internal name for the Balancer
default: default:
name: &splitter Distribuidor name: &splitter Distribuidor
description: Multifunções - Distribui igualmente todos os inputs por todos os outputs. description: Multifunções - Distribui igualmente todas as entradas por todas as saídas.
compact: compact:
name: Misturador (compacto) name: Misturador (compacto)
@ -449,10 +448,10 @@ buildings:
cutter: cutter:
default: default:
name: &cutter Cortador name: &cutter Cortador
description: Corta formas geométricas de cima para baixo e produz duas metades. <strong>Se apenas usares uma parte, certifica-te de que destrois a outra parte de forma a não encravar a produção!</strong> description: Corta as formas geométricas de cima para baixo e produz duas metades. <strong>Se apenas usares uma parte, certifica-te de que destrois a outra parte de forma a não encravar a produção!</strong>
quad: quad:
name: Cortador (Quádruplo) name: Cortador (Quádruplo)
description: Corta formas geométricas de cima para baixo e produz duas metades. <strong>Se apenas usares uma parte, certifica-te de que destrois a outra parte de forma a não encravar a produção!</strong> description: Corta as formas geométricas em quatro partes. <strong>Se apenas usares uma parte, certifica-te de que destrois as outras partes de forma a não encravar a produção!</strong>
rotater: rotater:
default: default:
@ -465,7 +464,7 @@ buildings:
stacker: stacker:
default: default:
name: &stacker Empilhador name: &stacker Empilhador
description: Empilha os dois inputs. Se não podem ser empilhados, o item da direita será colocado em cima do item da esquerda. description: Empilha dois itens. Se não podem ser empilhados, o item da direita será colocado em cima do item da esquerda.
mixer: mixer:
default: default:
@ -475,10 +474,10 @@ buildings:
painter: painter:
default: default:
name: &painter Pintor name: &painter Pintor
description: Pinta a forma geométrica do input esquerdo com a cor do input direito. description: Pinta a forma geométrica da entrada esquerda com a cor da entrada superior.
double: double:
name: Pintor (Duplo) name: Pintor (Duplo)
description: Pinta as formas geométricas dos inputs esquerdos com a cor do input superior. description: Pinta as formas geométricas das entradas esquerdas com a cor da entrada superior.
quad: quad:
name: Pintor (Quádruplo) name: Pintor (Quádruplo)
description: Pinta cada quadrante da forma geométrica com uma cor diferente. description: Pinta cada quadrante da forma geométrica com uma cor diferente.
@ -486,11 +485,11 @@ buildings:
trash: trash:
default: default:
name: &trash Lixo name: &trash Lixo
description: Aceita inputs de todos os lados e destrói-os. Para sempre. description: Aceita entradas de todos os lados e destrói-os. Para sempre.
storage: storage:
name: Armazém name: Armazém
description: Armazena items em excesso até uma determinada capacidade. Pode ser usado como uma porta de transbordamento. description: Armazena items em excesso até uma determinada capacidade. Pode ser usado como uma porta de transbordo.
hub: hub:
deliver: Entrega deliver: Entrega
toUnlock: para desbloquear toUnlock: para desbloquear
@ -500,7 +499,7 @@ 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: Corte de formas title: Corte de formas
desc: Acabaste de desbloquear o <strong>Cortador</strong> - ele corta as formas geométricas ao meio de <strong>cima para baixo</strong> independentemente da orientação!<br><br>Certifica-te de que te livras do desperdício, caso contrário <strong>empancará</strong> - Para isso, dou-te um lixo, que destruirá tudo o que lá colocares! desc: Acabaste de desbloquear o <strong>Cortador</strong> - ele corta as formas geométricas ao meio de <strong>cima para baixo</strong> independentemente da orientação!<br><br>Certifica-te de que te livras do desperdício, caso contrário <strong>encravará</strong> - Para isso, dou-te um lixo, que destruirá tudo o que lá colocares!
reward_rotater: reward_rotater:
title: Rotação title: Rotação
@ -509,15 +508,15 @@ storyRewards:
reward_painter: reward_painter:
title: Pintura title: Pintura
desc: >- desc: >-
O <strong>Pintor</strong> foi desbloqueado - Extrai alguns veios coloridos (tal como fazes com as formas) e combina-os com uma forma no pintor para a colorir!<br><br>PS: Se fores daltónico, já estou a trabalhar para encontrar uma solução! O <strong>Pintor</strong> foi desbloqueado - Extrai alguns pigmentos coloridos (tal como fazes com as formas) e combina-os com uma forma no pintor para a colorir!<br><br>PS: Se fores daltónico, já estou a trabalhar para encontrar uma solução!
reward_mixer: reward_mixer:
title: Mistura de Cores title: Mistura de Cores
desc: O <strong>Misturador</strong> foi desbloqueado - Combina duas cores através de <strong>mistura aditiva</strong> com esta construção! desc: O <strong>Misturador</strong> foi desbloqueado - Combina duas cores através de <strong>mistura aditiva</strong> com esta construção!
reward_stacker: reward_stacker:
title: Empilhar title: Combinador
desc: Agora podes combinar formas geométricas com o <strong>Combinador</strong>! Ambos os inputs são combinados e, se puderem ser colocados lado-a-lado, serão <strong>fundidos</strong>. Caso contrário, o input da direita é <strong>empilhado em cima</strong> do da esquerda! desc: Agora podes combinar formas geométricas com o <strong>Combinador</strong>! Ambas as entradas são combinados e, se puderem ser colocados lado-a-lado, serão <strong>fundidas</strong>. Caso contrário, a entrada da direita é <strong>empilhada em cima</strong> da da esquerda!
reward_splitter: reward_splitter:
title: Distribuidor/Misturador title: Distribuidor/Misturador
@ -525,7 +524,7 @@ storyRewards:
reward_tunnel: reward_tunnel:
title: Túnel title: Túnel
desc: O <strong>Túnel</strong> foi desbloqueado - Com ele podes passar items através de tapetes e construções! desc: O <strong>Túnel</strong> foi desbloqueado - Com ele podes passar itens através de tapetes e construções!
reward_rotater_ccw: reward_rotater_ccw:
title: Rotação CCW title: Rotação CCW
@ -540,9 +539,9 @@ storyRewards:
desc: Desbloqueaste uma nova variante do <strong>Túnel</strong> - Tem um <strong>maior alcance</strong>, e podes interlaçar as duas variantes entre si! desc: Desbloqueaste uma nova variante do <strong>Túnel</strong> - Tem um <strong>maior alcance</strong>, e podes interlaçar as duas variantes entre si!
reward_splitter_compact: reward_splitter_compact:
title: Distribuição title: Distribuidor compacto
desc: >- desc: >-
Desbloqueaste uma variante compacta do <strong>Distribuidor</strong> - Aceita dois inputs e junta-os num só! Desbloqueaste uma variante compacta do <strong>Distribuidor</strong> - Aceita duas entradas e junta-as numa só!
reward_cutter_quad: reward_cutter_quad:
title: Corte quádruplo title: Corte quádruplo
@ -566,7 +565,7 @@ storyRewards:
reward_blueprints: reward_blueprints:
title: Projetos title: Projetos
desc: Agora podes <strong>copiar e colar</strong> partes da tua fábrica! Seleciona uma área (Prime CTRL e arrasta com o rato), e prime 'C' para copiar.<br><br>Colar não é <strong>gratuito</strong>, precisas de produzir <strong>formas projeto</strong> para o pagares! (Aquelas que acabaste de entregar). desc: Agora podes <strong>copiar e colar</strong> partes da tua fábrica! Seleciona uma área (Mantém pressionado CTRL e arrasta com o rato), e pressiona 'C' para copiar.<br><br>Colar não é <strong>gratuito</strong>, precisas de produzir <strong>formas projeto</strong> para o pagares! (Aquelas que acabaste de entregar).
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
@ -625,12 +624,12 @@ settings:
É recomendado jogar o jogo em ecrã inteiro para a melhor experiência. Apenas disponível no jogo completo. É recomendado jogar o jogo em ecrã inteiro para a melhor experiência. Apenas disponível no jogo completo.
soundsMuted: soundsMuted:
title: Mutar sons title: Desativar sons
description: >- description: >-
Se ativado, desativa todos os sons. Se ativado, desativa todos os sons.
musicMuted: musicMuted:
title: Mutar música title: Desativar música
description: >- description: >-
Se ativado, desativa todas as músicas. Se ativado, desativa todas as músicas.
@ -659,31 +658,31 @@ settings:
Se ativado, dá dicas e tutoriais de apoio ao jogo. Adicionalmente, esconde certos elementos da interface do utilizador até ao nível em que são desbloqueados de forma a simplificar o início do jogo. Se ativado, dá dicas e tutoriais de apoio ao jogo. Adicionalmente, esconde certos elementos da interface do utilizador até ao nível em que são desbloqueados de forma a simplificar o início do jogo.
movementSpeed: movementSpeed:
title: Movement speed title: Velociade de movimentação
description: Changes how fast the view moves when using the keyboard. description: Define quão rápida é a movimentação usando o teclado.
speeds: speeds:
super_slow: Super slow super_slow: Muito lenta
slow: Slow slow: Lenta
regular: Regular regular: Média
fast: Fast fast: Rápiada
super_fast: Super Fast super_fast: Muito rádida
extremely_fast: Extremely Fast extremely_fast: Extremamente rápida
keybindings: keybindings:
title: Keybindings title: Atalhos
hint: >- hint: >-
Tip: Utiliza o CTRL, o SHIFT e o ALT! Eles permitem diferentes opções de colocação. Tip: Utiliza o CTRL, o SHIFT e o ALT! Eles permitem diferentes opções de posicionamento.
resetKeybindings: Resetar Keybindings resetKeybindings: Resetar Atalhos
categoryLabels: categoryLabels:
general: Aplicação general: Aplicação
ingame: Jogo ingame: Jogo
navigation: Navegação navigation: Navegação
placement: Colocação placement: Posicionamento
massSelect: Seleção em massa massSelect: Seleção em massa
buildings: Atalhos de construções buildings: Atalhos de construções
placementModifiers: Modificadores de colocação placementModifiers: Modificadores de posicionamento
mappings: mappings:
confirm: Confirmar confirm: Confirmar
@ -714,7 +713,7 @@ keybindings:
painter: *painter painter: *painter
trash: *trash trash: *trash
abortBuildingPlacement: Cancelar abortBuildingPlacement: Cancelar posicionamento
rotateWhilePlacing: Rotação rotateWhilePlacing: Rotação
rotateInverseModifier: >- rotateInverseModifier: >-
Modifier: Rotação CCW Modifier: Rotação CCW
@ -729,28 +728,29 @@ keybindings:
placementDisableAutoOrientation: Desativa orientação automática placementDisableAutoOrientation: Desativa orientação automática
placeMultiple: Continuar no modo de colocação placeMultiple: Continuar no modo de colocação
placeInverse: Inverter orientação automática do tapete placeInverse: Inverter orientação automática do tapete
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Colar o último blueprint
massSelectCut: Cut area massSelectCut: Cortar área
exportScreenshot: Export whole Base as Image exportScreenshot: Exportar a base como uma imagem
mapMoveFaster: Move Faster
about: about:
title: Sobre o jogo title: Sobre o jogo
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" Este jogo é código aberto e desenvolvido por <a href="https://github.com/tobspr"
target="_blank">Tobias Springer</a> (this is me).<br><br> target="_blank">Tobias Springer</a> (este sou eu).<br><br>
If you want to contribute, check out <a href="<githublink>" Se quiseres contribuir, dá uma olhadela em <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io no github</a>.<br><br>
This game wouldn't have been possible without the great discord community Este Jogo não seria possível sem a excelente comunidade do discord
around my games - You should really join the <a href="<discordlink>" em torno dos meus jogos - Devias mesmo juntar-te ao <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">servidor no discord</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" The soundtrack foi feita por <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - Ele é Fantástico.<br><br>
Finally, huge thanks to my best friend <a Finalmente, um grande agradecimento ao meu melhor amigo <a
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Sem as nossas
factorio sessions this game would never have existed. sessões de factorio este jogo nunca teria existido.
changelog: changelog:
title: Changelog title: Changelog
@ -760,7 +760,7 @@ demo:
restoringGames: Restauro de savegames restoringGames: Restauro de savegames
importingGames: Importação de savegames importingGames: Importação de savegames
oneGameLimit: Limitado a um savegame oneGameLimit: Limitado a um savegame
customizeKeybindings: Costumizar Keybindings customizeKeybindings: Costumizar Atalhos
exportingBase: Exporting whole Base as Image exportingBase: Exportar base como uma imagem
settingNotAvailable: Não disponível no Demo. settingNotAvailable: Não disponível no Demo.

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -732,6 +732,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -227,7 +227,7 @@ dialogs:
title: Улучшения открыты! title: Улучшения открыты!
desc: >- desc: >-
Все формы, которые вы производите, могут быть использованы для разблокировки Все формы, которые вы производите, могут быть использованы для разблокировки
улучшений - <strong>Не разрушайте свои старые фабрики!</strong> улучшений - <strong>Не разрушайте свои старые фабрики!</strong>
Вкладка обновлений находится в правом верхнем углу экрана. Вкладка обновлений находится в правом верхнем углу экрана.
massDeleteConfirm: massDeleteConfirm:
title: Подтвердить удаление title: Подтвердить удаление
@ -250,21 +250,21 @@ dialogs:
createMarker: createMarker:
title: Новый маркер title: Новый маркер
desc: Напишите содержательное имя. desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit: markerDemoLimit:
desc: Вы можете создать только 2 своих маркера в демо версии. Приобретите полную версию для безлимитных маркеров. desc: Вы можете создать только 2 своих маркера в демо версии. Приобретите полную версию для безлимитных маркеров.
massCutConfirm: massCutConfirm:
title: Подтвердите вырезку title: Подтвердите вырезку
desc: >- desc: >-
Вы вырезаете много зданий (точнее: <count>)! Вы уверены, Вы вырезаете много зданий (точнее: <count>)! Вы уверены,
что хотите это сделать? что хотите это сделать?
exportScreenshotWarning: exportScreenshotWarning:
title: Экспорт скриншота title: Экспорт скриншота
desc: >- desc: >-
Вы запросили экспортировать вашу базу в виде скриншота. Обратите внимание, Вы запросили экспортировать вашу базу в виде скриншота. Обратите внимание,
что это может быть довольно медленным процессом для большой базы что это может быть довольно медленным процессом для большой базы
и даже привести к аварийному завершению игры! и даже привести к аварийному завершению игры!
ingame: ingame:
@ -733,6 +733,7 @@ keybindings:
pasteLastBlueprint: Вставить последний чертеж pasteLastBlueprint: Вставить последний чертеж
massSelectCut: Вырезать область massSelectCut: Вырезать область
exportScreenshot: Экспорт всей Базы в виде Изображения exportScreenshot: Экспорт всей Базы в виде Изображения
mapMoveFaster: Move Faster
about: about:
title: О игре title: О игре
@ -751,7 +752,7 @@ about:
target="_blank">Peppsen</a> - Он потрясающий.<br><br> target="_blank">Peppsen</a> - Он потрясающий.<br><br>
Наконец, огромное спасибо моему лучшему другу <a Наконец, огромное спасибо моему лучшему другу <a
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Без наших href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Без наших
игровых сессий в factorio эта игра никогда не существовала бы. игровых сессий в factorio эта игра никогда не существовала бы.
changelog: changelog:

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -732,6 +732,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -733,6 +733,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -732,6 +732,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -250,7 +250,7 @@ dialogs:
createMarker: createMarker:
title: New Marker title: New Marker
desc: Give it a meaningful name desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a 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 unlimited markers! desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
@ -732,6 +732,7 @@ keybindings:
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
massSelectCut: Cut area massSelectCut: Cut area
exportScreenshot: Export whole Base as Image exportScreenshot: Export whole Base as Image
mapMoveFaster: Move Faster
about: about:
title: About this Game title: About this Game

View File

@ -1 +1 @@
1.1.11 1.1.14