mirror of
https://github.com/tobspr/shapez.io.git
synced 2024-10-27 20:34:29 +00:00
Merge branch 'master' of git://github.com/tobspr/shapez.io
This commit is contained in:
commit
1756740947
Binary file not shown.
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:ebde52e75e54d2f4add0cf498c85f059082a0745212a23c4de7328a7d78b00a5
|
oid sha256:ae83b8805191eeba13016e40216fc4781ac3958e6886769ce8677ea28370d13e
|
||||||
size 238170
|
size 239706
|
||||||
|
BIN
res/ui/icons/info_button.png
Normal file
BIN
res/ui/icons/info_button.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 577 B |
2
res/ui/main_menu/changelog.svg
Normal file
2
res/ui/main_menu/changelog.svg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" id="Capa_1" enable-background="new 0 0 512 512" height="512px" viewBox="0 0 512 512" width="512px" class=""><g><path d="m106 512h300c24.814 0 45-20.186 45-45v-317h-105c-24.814 0-45-20.186-45-45v-105h-195c-24.814 0-45 20.186-45 45v422c0 24.814 20.186 45 45 45zm60-301h180c8.291 0 15 6.709 15 15s-6.709 15-15 15h-180c-8.291 0-15-6.709-15-15s6.709-15 15-15zm0 60h180c8.291 0 15 6.709 15 15s-6.709 15-15 15h-180c-8.291 0-15-6.709-15-15s6.709-15 15-15zm0 60h180c8.291 0 15 6.709 15 15s-6.709 15-15 15h-180c-8.291 0-15-6.709-15-15s6.709-15 15-15zm0 60h120c8.291 0 15 6.709 15 15s-6.709 15-15 15h-120c-8.291 0-15-6.709-15-15s6.709-15 15-15z" data-original="#000000" class="active-path" data-old_color="#000000" fill="#00AF80"/><path d="m346 120h96.211l-111.211-111.211v96.211c0 8.276 6.724 15 15 15z" data-original="#000000" class="active-path" data-old_color="#000000" fill="#00AF80"/></g> </svg>
|
After Width: | Height: | Size: 953 B |
1
res/ui/main_menu/reddit.svg
Normal file
1
res/ui/main_menu/reddit.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg enable-background="new 0 0 24 24" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m21.325 9.308c-.758 0-1.425.319-1.916.816-1.805-1.268-4.239-2.084-6.936-2.171l1.401-6.406 4.461 1.016c0 1.108.89 2.013 1.982 2.013 1.113 0 2.008-.929 2.008-2.038s-.889-2.038-2.007-2.038c-.779 0-1.451.477-1.786 1.129l-4.927-1.108c-.248-.067-.491.113-.557.365l-1.538 7.062c-2.676.113-5.084.928-6.895 2.197-.491-.518-1.184-.837-1.942-.837-2.812 0-3.733 3.829-1.158 5.138-.091.405-.132.837-.132 1.268 0 4.301 4.775 7.786 10.638 7.786 5.888 0 10.663-3.485 10.663-7.786 0-.431-.045-.883-.156-1.289 2.523-1.314 1.594-5.115-1.203-5.117zm-15.724 5.41c0-1.129.89-2.038 2.008-2.038 1.092 0 1.983.903 1.983 2.038 0 1.109-.89 2.013-1.983 2.013-1.113.005-2.008-.904-2.008-2.013zm10.839 4.798c-1.841 1.868-7.036 1.868-8.878 0-.203-.18-.203-.498 0-.703.177-.18.491-.18.668 0 1.406 1.463 6.07 1.488 7.537 0 .177-.18.491-.18.668 0 .207.206.207.524.005.703zm-.041-2.781c-1.092 0-1.982-.903-1.982-2.011 0-1.129.89-2.038 1.982-2.038 1.113 0 2.008.903 2.008 2.038-.005 1.103-.895 2.011-2.008 2.011z" fill="#ff5722"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
2
res/ui/main_menu/translate.svg
Normal file
2
res/ui/main_menu/translate.svg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" id="Capa_1" enable-background="new 0 0 512 512" height="512px" viewBox="0 0 512 512" width="512px"><g><g><g><path d="m496 0h-210c-8.284 0-15 6.716-15 15v260c0 8.284 6.716 15 15 15h143.787l55.606 55.606c2.869 2.87 6.706 4.394 10.609 4.394 1.933 0 3.882-.374 5.737-1.142 5.605-2.322 9.26-7.792 9.26-13.858v-320c.001-8.284-6.715-15-14.999-15zm-40 130h-10.978c-3.123 23.867-13.59 45.455-29.054 62.414 10.691 4.857 22.545 7.586 35.032 7.586 8.284 0 15 6.716 15 15s-6.716 15-15 15c-21.972 0-42.521-6.198-60-16.931-17.478 10.733-38.028 16.931-60 16.931-8.284 0-15-6.716-15-15s6.716-15 15-15c12.487 0 24.342-2.729 35.032-7.586-15.464-16.959-25.932-38.547-29.054-62.414h-10.978c-8.284 0-15-6.716-15-15s6.716-15 15-15h50v-25c0-8.284 6.716-15 15-15s15 6.716 15 15v25h50c8.284 0 15 6.716 15 15s-6.716 15-15 15z" data-original="#000000" class="active-path" data-old_color="#000000" fill="#4949E7"/><path d="m391 175.148c12.068-12.039 20.523-27.681 23.648-45.148h-47.295c3.124 17.467 11.579 33.11 23.647 45.148z" data-original="#000000" class="active-path" data-old_color="#000000" fill="#4949E7"/></g><g><path d="m100.59 327.624h41.01l-20.411-54.086z" data-original="#000000" class="active-path" data-old_color="#000000" fill="#4949E7"/><path d="m226 162h-210c-8.284 0-15 6.716-15 15v320c0 6.067 3.654 11.537 9.26 13.858 1.855.769 3.805 1.142 5.737 1.142 3.903 0 7.74-1.524 10.609-4.394l55.607-55.606h143.787c8.284 0 15-6.716 15-15v-260c0-8.284-6.716-15-15-15zm-44.438 229.034c-1.743.658-3.534.97-5.293.97-6.062 0-11.77-3.701-14.037-9.708l-9.311-24.673h-63.757l-9.413 24.715c-2.948 7.741-11.61 11.628-19.356 8.679-7.741-2.948-11.627-11.615-8.679-19.356l52.569-138.028c.043-.114.088-.228.135-.34 2.803-6.852 9.397-11.284 16.8-11.292h.021c7.396 0 13.99 4.416 16.806 11.256.057.137.11.275.163.413l52.092 138.034c2.924 7.751-.989 16.405-8.74 19.33z" data-original="#000000" class="active-path" data-old_color="#000000" fill="#4949E7"/></g></g></g> </svg>
|
After Width: | Height: | Size: 2.0 KiB |
3
res_raw/sounds/sfx/destroy_building.wav
Normal file
3
res_raw/sounds/sfx/destroy_building.wav
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1dc8775fdf5155097d6e1d60a436f48916af56eec14fb9034e71b32ad3b6f1b0
|
||||||
|
size 358896
|
18
src/css/ingame_hud/color_blind_helper.scss
Normal file
18
src/css/ingame_hud/color_blind_helper.scss
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ingame_HUD_ColorBlindBelowTileHelper {
|
||||||
|
position: absolute;
|
||||||
|
|
||||||
|
@include SuperSmallText;
|
||||||
|
color: #fff;
|
||||||
|
background: $ingameHudBg;
|
||||||
|
@include S(padding, 5px);
|
||||||
|
@include S(top, 20px);
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
text-transform: uppercase;
|
||||||
|
|
||||||
|
&:not(.visible) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include DarkThemeInvert;
|
||||||
|
}
|
@ -72,6 +72,24 @@
|
|||||||
grid-row: 1 / 2;
|
grid-row: 1 / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .infoButton {
|
||||||
|
@include S(width, 8px);
|
||||||
|
@include S(height, 8px);
|
||||||
|
background: uiResource("icons/info_button.png") center center / 95% no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0.7;
|
||||||
|
@include S(top, 13px);
|
||||||
|
@include S(left, -7px);
|
||||||
|
@include DarkThemeInvert;
|
||||||
|
@include IncreasedClickArea(2px);
|
||||||
|
transition: opacity 0.12s ease-in-out;
|
||||||
|
z-index: 100;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.goal,
|
&.goal,
|
||||||
&.blueprint {
|
&.blueprint {
|
||||||
.amountLabel::after {
|
.amountLabel::after {
|
||||||
|
131
src/css/ingame_hud/shape_viewer.scss
Normal file
131
src/css/ingame_hud/shape_viewer.scss
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
#ingame_HUD_ShapeViewer {
|
||||||
|
.dialogInner {
|
||||||
|
@include S(width, 160px);
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
|
||||||
|
.seperator {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer {
|
||||||
|
position: relative;
|
||||||
|
background: #eee;
|
||||||
|
|
||||||
|
@include DarkThemeOverride {
|
||||||
|
background: rgba(0, 10, 20, 0.2);
|
||||||
|
}
|
||||||
|
@include S(width, 150px);
|
||||||
|
@include S(height, 100px);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
> canvas {
|
||||||
|
@include S(width, 50px);
|
||||||
|
@include S(height, 50px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.quad {
|
||||||
|
position: absolute;
|
||||||
|
width: 50%;
|
||||||
|
height: 50%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
$arrowDims: 23px;
|
||||||
|
$spacing: 9px;
|
||||||
|
@include S(padding, 6px);
|
||||||
|
|
||||||
|
.colorLabel {
|
||||||
|
text-transform: uppercase;
|
||||||
|
@include SuperSmallText;
|
||||||
|
@include S(font-size, 9px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.emptyLabel {
|
||||||
|
text-transform: uppercase;
|
||||||
|
@include SuperSmallText;
|
||||||
|
@include S(font-size, 9px);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: " ";
|
||||||
|
background: rgba(0, 10, 20, 0.5);
|
||||||
|
@include S(width, $arrowDims);
|
||||||
|
@include S(height, 1px);
|
||||||
|
position: absolute;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
transform-origin: 50% 50%;
|
||||||
|
}
|
||||||
|
@include DarkThemeOverride {
|
||||||
|
&::after {
|
||||||
|
background: rgba(255, 255, 255, 0.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.quad-0 {
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-end;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
@include S(left, $spacing);
|
||||||
|
@include S(bottom, $arrowDims / 2 + $spacing);
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.quad-1 {
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
align-items: flex-end;
|
||||||
|
justify-content: flex-end;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
@include S(left, $spacing);
|
||||||
|
@include S(top, $arrowDims / 2 + $spacing);
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.quad-2 {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
|
||||||
|
align-items: flex-end;
|
||||||
|
justify-content: flex-start;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
@include S(right, $spacing);
|
||||||
|
@include S(top, $arrowDims / 2 + $spacing);
|
||||||
|
transform: rotate(135deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.quad-3 {
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
@include S(right, $spacing);
|
||||||
|
@include S(bottom, $arrowDims / 2 + $spacing);
|
||||||
|
transform: rotate(225deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -195,6 +195,25 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button.showInfo {
|
||||||
|
@include S(width, 11px);
|
||||||
|
@include S(height, 11px);
|
||||||
|
background: uiResource("icons/info_button.png") center center / 95% no-repeat;
|
||||||
|
position: absolute;
|
||||||
|
@include S(top, 17px);
|
||||||
|
@include S(right, 2.5px);
|
||||||
|
opacity: 0.5;
|
||||||
|
cursor: pointer;
|
||||||
|
pointer-events: all;
|
||||||
|
@include IncreasedClickArea(5px);
|
||||||
|
transition: opacity 0.12s ease-in-out;
|
||||||
|
@include DarkThemeInvert;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
canvas {
|
canvas {
|
||||||
@include S(width, 40px);
|
@include S(width, 40px);
|
||||||
@include S(height, 40px);
|
@include S(height, 40px);
|
||||||
|
@ -49,6 +49,8 @@
|
|||||||
@import "ingame_hud/blueprint_placer";
|
@import "ingame_hud/blueprint_placer";
|
||||||
@import "ingame_hud/waypoints";
|
@import "ingame_hud/waypoints";
|
||||||
@import "ingame_hud/interactive_tutorial";
|
@import "ingame_hud/interactive_tutorial";
|
||||||
|
@import "ingame_hud/color_blind_helper";
|
||||||
|
@import "ingame_hud/shape_viewer";
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
$elements:
|
$elements:
|
||||||
@ -74,6 +76,7 @@ ingame_HUD_buildings_toolbar,
|
|||||||
ingame_HUD_BlueprintPlacer,
|
ingame_HUD_BlueprintPlacer,
|
||||||
ingame_HUD_Waypoints_Hint,
|
ingame_HUD_Waypoints_Hint,
|
||||||
ingame_HUD_Watermark,
|
ingame_HUD_Watermark,
|
||||||
|
ingame_HUD_ColorBlindBelowTileHelper,
|
||||||
|
|
||||||
// Overlays
|
// Overlays
|
||||||
ingame_HUD_BetaOverlay,
|
ingame_HUD_BetaOverlay,
|
||||||
@ -81,6 +84,7 @@ ingame_HUD_BetaOverlay,
|
|||||||
// Dialogs
|
// Dialogs
|
||||||
ingame_HUD_Shop,
|
ingame_HUD_Shop,
|
||||||
ingame_HUD_Statistics,
|
ingame_HUD_Statistics,
|
||||||
|
ingame_HUD_ShapeViewer,
|
||||||
ingame_HUD_UnlockNotification,
|
ingame_HUD_UnlockNotification,
|
||||||
ingame_HUD_SettingsMenu,
|
ingame_HUD_SettingsMenu,
|
||||||
ingame_HUD_ModalDialogs;
|
ingame_HUD_ModalDialogs;
|
||||||
|
@ -224,6 +224,12 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
.browserWarning {
|
.browserWarning {
|
||||||
@include S(margin-bottom, 10px);
|
@include S(margin-bottom, 10px);
|
||||||
background-color: $colorRedBright;
|
background-color: $colorRedBright;
|
||||||
@ -337,33 +343,42 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
display: flex;
|
display: grid;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
grid-template-columns: auto auto auto 1fr;
|
||||||
|
@include S(padding, 10px);
|
||||||
|
box-sizing: border-box;
|
||||||
|
@include S(grid-gap, 5px);
|
||||||
|
|
||||||
.author {
|
.author {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@include S(padding-right, 10px);
|
@include PlainText;
|
||||||
|
color: #888a8f;
|
||||||
|
a {
|
||||||
|
color: #333438;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include S(padding, 15px);
|
@include S(padding, 15px);
|
||||||
> a {
|
|
||||||
|
> .boxLink {
|
||||||
display: grid;
|
display: grid;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
grid-template-columns: 1fr auto;
|
grid-template-columns: 1fr auto;
|
||||||
|
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
background: #fafafa;
|
background: #fdfdfd;
|
||||||
@include S(padding, 5px);
|
@include S(padding, 5px);
|
||||||
@include S(padding-left, 10px);
|
@include S(padding-left, 10px);
|
||||||
@include S(border-radius, $globalBorderRadius);
|
@include S(border-radius, $globalBorderRadius);
|
||||||
@include S(margin-left, 10px);
|
|
||||||
@include SuperSmallText();
|
@include SuperSmallText();
|
||||||
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
box-sizing: border-box;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: #616266;
|
color: #616266;
|
||||||
|
|
||||||
@ -371,19 +386,11 @@
|
|||||||
transition-property: background-color, transform;
|
transition-property: background-color, transform;
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
@include S(width, 120px);
|
@include S(width, 120px);
|
||||||
@include S(height, 50px);
|
@include S(height, 60px);
|
||||||
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
transform: scale(1.01);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(.boxLink) {
|
|
||||||
align-self: flex-end;
|
|
||||||
justify-self: flex-end;
|
|
||||||
height: unset;
|
|
||||||
width: unset;
|
|
||||||
@include S(padding, 3px);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.thirdpartyLogo {
|
.thirdpartyLogo {
|
||||||
@ -400,6 +407,49 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .sidelinks {
|
||||||
|
display: grid;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
grid-template-rows: 1fr 1fr 1fr;
|
||||||
|
@include S(grid-gap, 2px);
|
||||||
|
@include S(height, 60px);
|
||||||
|
|
||||||
|
> a {
|
||||||
|
color: #616266;
|
||||||
|
background: #fdfdfd;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
@include SuperSmallText;
|
||||||
|
text-transform: uppercase;
|
||||||
|
width: 100%;
|
||||||
|
@include S(padding, 2px, 10px);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
|
||||||
|
@include S(padding-left, 25px);
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-weight: bold;
|
||||||
|
background-position: #{D(5px)} center;
|
||||||
|
background-size: #{D(12px)};
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
|
||||||
|
&.redditLink {
|
||||||
|
background-image: uiResource("main_menu/reddit.svg");
|
||||||
|
}
|
||||||
|
&.changelog {
|
||||||
|
background-image: uiResource("main_menu/changelog.svg");
|
||||||
|
}
|
||||||
|
&.helpTranslate {
|
||||||
|
background-image: uiResource("main_menu/translate.svg");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include DarkThemeOverride {
|
@include DarkThemeOverride {
|
||||||
@ -423,9 +473,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
> a {
|
> a,
|
||||||
background: darken($darkModeGameBackground, 10);
|
.sidelinks > a {
|
||||||
|
background-color: darken($darkModeGameBackground, 10);
|
||||||
color: #eee;
|
color: #eee;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: darken($darkModeGameBackground, 8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.author {
|
.author {
|
||||||
|
@ -1,15 +1,21 @@
|
|||||||
export const CHANGELOG = [
|
export const CHANGELOG = [
|
||||||
{
|
{
|
||||||
version: "1.1.17",
|
version: "1.1.17",
|
||||||
date: "unreleased",
|
date: "22.06.2020",
|
||||||
entries: [
|
entries: [
|
||||||
|
"Color blind mode! You can now activate it in the settings and it will show you which color is below your cursor (Either resource or on the belt)",
|
||||||
|
"Add info buttons to all shapes so you can figure out how they are built! (And also, which colors they have)",
|
||||||
"Allow configuring autosave interval and disabling it in the settings",
|
"Allow configuring autosave interval and disabling it in the settings",
|
||||||
|
"The smart-tunnel placement has been reworked to properly replace belts. Thus the setting has been turned on again by default",
|
||||||
"The soundtrack now has a higher quality on the standalone version than the web version",
|
"The soundtrack now has a higher quality on the standalone version than the web version",
|
||||||
"Add setting to disable cut/delete warnings (by hexy)",
|
"Add setting to disable cut/delete warnings (by hexy)",
|
||||||
"Fix bug where belts in blueprints don't orient correctly (by hexy)",
|
"Fix bug where belts in blueprints don't orient correctly (by hexy)",
|
||||||
"Fix camera moving weird after dragging and holding (by hexy)",
|
"Fix camera moving weird after dragging and holding (by hexy)",
|
||||||
|
"Fix keybinding for pipette showing while pasting blueprints",
|
||||||
|
"Improve visibility of shape background in dark mode",
|
||||||
|
"Added sound when destroying a building",
|
||||||
|
"Added swedish translation",
|
||||||
"Update tutorial image for tier 2 tunnels to explain mix/match (by jimmyshadow1)",
|
"Update tutorial image for tier 2 tunnels to explain mix/match (by jimmyshadow1)",
|
||||||
"Prevent default actions on all keybindings in the web version so you don't accidentally use builtin browser shortcuts",
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -19,6 +19,7 @@ const smoothCanvas = true;
|
|||||||
export const THIRDPARTY_URLS = {
|
export const THIRDPARTY_URLS = {
|
||||||
discord: "https://discord.gg/HN7EVzV",
|
discord: "https://discord.gg/HN7EVzV",
|
||||||
github: "https://github.com/tobspr/shapez.io",
|
github: "https://github.com/tobspr/shapez.io",
|
||||||
|
reddit: "https://www.reddit.com/r/shapezio",
|
||||||
|
|
||||||
standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/",
|
standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/",
|
||||||
};
|
};
|
||||||
|
@ -191,7 +191,17 @@ export class InputDistributor {
|
|||||||
*/
|
*/
|
||||||
handleKeyMouseDown(event) {
|
handleKeyMouseDown(event) {
|
||||||
const keyCode = event instanceof MouseEvent ? event.button + 1 : event.keyCode;
|
const keyCode = event instanceof MouseEvent ? event.button + 1 : event.keyCode;
|
||||||
|
if (
|
||||||
|
keyCode === 4 || // MB4
|
||||||
|
keyCode === 5 || // MB5
|
||||||
|
keyCode === 9 || // TAB
|
||||||
|
keyCode === 16 || // SHIFT
|
||||||
|
keyCode === 17 || // CTRL
|
||||||
|
keyCode === 18 || // ALT
|
||||||
|
(keyCode >= 112 && keyCode < 122) // F1 - F10
|
||||||
|
) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
const isInitial = !this.keysDown.has(keyCode);
|
const isInitial = !this.keysDown.has(keyCode);
|
||||||
this.keysDown.add(keyCode);
|
this.keysDown.add(keyCode);
|
||||||
|
@ -275,7 +275,7 @@ export class HubGoals extends BasicSerializableObject {
|
|||||||
* @param {string} upgradeId
|
* @param {string} upgradeId
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
tryUnlockUgprade(upgradeId) {
|
tryUnlockUpgrade(upgradeId) {
|
||||||
if (!this.canUnlockUpgrade(upgradeId)) {
|
if (!this.canUnlockUpgrade(upgradeId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,8 @@ import { HUDPartTutorialHints } from "./parts/tutorial_hints";
|
|||||||
import { HUDWaypoints } from "./parts/waypoints";
|
import { HUDWaypoints } from "./parts/waypoints";
|
||||||
import { HUDInteractiveTutorial } from "./parts/interactive_tutorial";
|
import { HUDInteractiveTutorial } from "./parts/interactive_tutorial";
|
||||||
import { HUDScreenshotExporter } from "./parts/screenshot_exporter";
|
import { HUDScreenshotExporter } from "./parts/screenshot_exporter";
|
||||||
import { Entity } from "../entity";
|
import { HUDColorBlindHelper } from "./parts/color_blind_helper";
|
||||||
|
import { HUDShapeViewer } from "./parts/shape_viewer";
|
||||||
|
|
||||||
export class GameHUD {
|
export class GameHUD {
|
||||||
/**
|
/**
|
||||||
@ -68,6 +69,7 @@ export class GameHUD {
|
|||||||
debugInfo: new HUDDebugInfo(this.root),
|
debugInfo: new HUDDebugInfo(this.root),
|
||||||
dialogs: new HUDModalDialogs(this.root),
|
dialogs: new HUDModalDialogs(this.root),
|
||||||
screenshotExporter: new HUDScreenshotExporter(this.root),
|
screenshotExporter: new HUDScreenshotExporter(this.root),
|
||||||
|
shapeViewer: new HUDShapeViewer(this.root),
|
||||||
};
|
};
|
||||||
|
|
||||||
this.signals = {
|
this.signals = {
|
||||||
@ -76,7 +78,8 @@ export class GameHUD {
|
|||||||
shapeUnpinRequested: /** @type {TypedSignal<[string]>} */ (new Signal()),
|
shapeUnpinRequested: /** @type {TypedSignal<[string]>} */ (new Signal()),
|
||||||
notification: /** @type {TypedSignal<[string, enumNotificationType]>} */ (new Signal()),
|
notification: /** @type {TypedSignal<[string, enumNotificationType]>} */ (new Signal()),
|
||||||
buildingsSelectedForCopy: /** @type {TypedSignal<[Array<number>]>} */ (new Signal()),
|
buildingsSelectedForCopy: /** @type {TypedSignal<[Array<number>]>} */ (new Signal()),
|
||||||
pasteBlueprintRequested: new Signal(),
|
pasteBlueprintRequested: /** @type {TypedSignal<[]>} */ (new Signal()),
|
||||||
|
viewShapeDetailsRequested: /** @type {TypedSignal<[ShapeDefinition]>} */ (new Signal()),
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!IS_MOBILE) {
|
if (!IS_MOBILE) {
|
||||||
@ -100,6 +103,10 @@ export class GameHUD {
|
|||||||
this.parts.vignetteOverlay = new HUDVignetteOverlay(this.root);
|
this.parts.vignetteOverlay = new HUDVignetteOverlay(this.root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.root.app.settings.getAllSettings().enableColorBlindHelper) {
|
||||||
|
this.parts.colorBlindHelper = new HUDColorBlindHelper(this.root);
|
||||||
|
}
|
||||||
|
|
||||||
const frag = document.createDocumentFragment();
|
const frag = document.createDocumentFragment();
|
||||||
for (const key in this.parts) {
|
for (const key in this.parts) {
|
||||||
this.parts[key].createElements(frag);
|
this.parts[key].createElements(frag);
|
||||||
@ -208,7 +215,13 @@ export class GameHUD {
|
|||||||
* @param {DrawParameters} parameters
|
* @param {DrawParameters} parameters
|
||||||
*/
|
*/
|
||||||
draw(parameters) {
|
draw(parameters) {
|
||||||
const partsOrder = ["waypoints", "massSelector", "buildingPlacer", "blueprintPlacer"];
|
const partsOrder = [
|
||||||
|
"waypoints",
|
||||||
|
"massSelector",
|
||||||
|
"buildingPlacer",
|
||||||
|
"blueprintPlacer",
|
||||||
|
"colorBlindHelper",
|
||||||
|
];
|
||||||
|
|
||||||
for (let i = 0; i < partsOrder.length; ++i) {
|
for (let i = 0; i < partsOrder.length; ++i) {
|
||||||
if (this.parts[partsOrder[i]]) {
|
if (this.parts[partsOrder[i]]) {
|
||||||
|
@ -10,6 +10,7 @@ import { blueprintShape } from "../../upgrades";
|
|||||||
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 { Blueprint } from "./blueprint";
|
import { Blueprint } from "./blueprint";
|
||||||
|
import { SOUNDS } from "../../../platform/sound";
|
||||||
|
|
||||||
export class HUDBlueprintPlacer extends BaseHUDPart {
|
export class HUDBlueprintPlacer extends BaseHUDPart {
|
||||||
createElements(parent) {
|
createElements(parent) {
|
||||||
@ -103,7 +104,7 @@ export class HUDBlueprintPlacer extends BaseHUDPart {
|
|||||||
if (blueprint.tryPlace(this.root, tile)) {
|
if (blueprint.tryPlace(this.root, tile)) {
|
||||||
const cost = blueprint.getCost();
|
const cost = blueprint.getCost();
|
||||||
this.root.hubGoals.takeShapeByKey(blueprintShape, cost);
|
this.root.hubGoals.takeShapeByKey(blueprintShape, cost);
|
||||||
|
this.root.soundProxy.playUi(SOUNDS.placeBuilding);
|
||||||
// This actually feels weird
|
// This actually feels weird
|
||||||
// if (!this.root.keyMapper.getBinding(KEYMAPPINGS.placementModifiers.placeMultiple).pressed) {
|
// if (!this.root.keyMapper.getBinding(KEYMAPPINGS.placementModifiers.placeMultiple).pressed) {
|
||||||
// this.currentBlueprint.set(null);
|
// this.currentBlueprint.set(null);
|
||||||
|
@ -10,6 +10,7 @@ import { Entity } from "../../entity";
|
|||||||
import { KEYMAPPINGS } from "../../key_action_mapper";
|
import { KEYMAPPINGS } from "../../key_action_mapper";
|
||||||
import { defaultBuildingVariant, MetaBuilding } from "../../meta_building";
|
import { defaultBuildingVariant, MetaBuilding } from "../../meta_building";
|
||||||
import { BaseHUDPart } from "../base_hud_part";
|
import { BaseHUDPart } from "../base_hud_part";
|
||||||
|
import { SOUNDS } from "../../../platform/sound";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains all logic for the building placer - this doesn't include the rendering
|
* Contains all logic for the building placer - this doesn't include the rendering
|
||||||
@ -183,6 +184,13 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
|
|||||||
if (mousePos) {
|
if (mousePos) {
|
||||||
this.onMouseMove(mousePos);
|
this.onMouseMove(mousePos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure we have nothing selected while in overview mode
|
||||||
|
if (this.root.camera.getIsMapOverlayActive()) {
|
||||||
|
if (this.currentMetaBuilding.get()) {
|
||||||
|
this.currentMetaBuilding.set(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -215,6 +223,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
|
|||||||
const contents = this.root.map.getTileContent(tile);
|
const contents = this.root.map.getTileContent(tile);
|
||||||
if (contents) {
|
if (contents) {
|
||||||
this.root.logic.tryDeleteBuilding(contents);
|
this.root.logic.tryDeleteBuilding(contents);
|
||||||
|
this.root.soundProxy.playUi(SOUNDS.destroyBuilding);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -650,6 +659,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
|
|||||||
const contents = this.root.map.getTileContentXY(x0, y0);
|
const contents = this.root.map.getTileContentXY(x0, y0);
|
||||||
if (contents && !contents.queuedForDestroy && !contents.destroyed) {
|
if (contents && !contents.queuedForDestroy && !contents.destroyed) {
|
||||||
this.root.logic.tryDeleteBuilding(contents);
|
this.root.logic.tryDeleteBuilding(contents);
|
||||||
|
this.root.soundProxy.playUi(SOUNDS.destroyBuilding);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.tryPlaceCurrentBuildingAt(new Vector(x0, y0));
|
this.tryPlaceCurrentBuildingAt(new Vector(x0, y0));
|
||||||
|
106
src/js/game/hud/parts/color_blind_helper.js
Normal file
106
src/js/game/hud/parts/color_blind_helper.js
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
import { BaseHUDPart } from "../base_hud_part";
|
||||||
|
import { makeDiv } from "../../../core/utils";
|
||||||
|
import { TrackedState } from "../../../core/tracked_state";
|
||||||
|
import { enumColors } from "../../colors";
|
||||||
|
import { ColorItem } from "../../items/color_item";
|
||||||
|
import { DrawParameters } from "../../../core/draw_parameters";
|
||||||
|
import { THEME } from "../../theme";
|
||||||
|
import { globalConfig } from "../../../core/config";
|
||||||
|
import { T } from "../../../translations";
|
||||||
|
|
||||||
|
export class HUDColorBlindHelper extends BaseHUDPart {
|
||||||
|
createElements(parent) {
|
||||||
|
this.belowTileIndicator = makeDiv(parent, "ingame_HUD_ColorBlindBelowTileHelper", []);
|
||||||
|
}
|
||||||
|
|
||||||
|
initialize() {
|
||||||
|
this.trackedColorBelowTile = new TrackedState(this.onColorBelowTileChanged, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the color below the current tile changed
|
||||||
|
* @param {enumColors|null} color
|
||||||
|
*/
|
||||||
|
onColorBelowTileChanged(color) {
|
||||||
|
this.belowTileIndicator.classList.toggle("visible", !!color);
|
||||||
|
if (color) {
|
||||||
|
this.belowTileIndicator.innerText = T.ingame.colors[color];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes the color below the current tile
|
||||||
|
* @returns {enumColors}
|
||||||
|
*/
|
||||||
|
computeColorBelowTile() {
|
||||||
|
const mousePosition = this.root.app.mousePosition;
|
||||||
|
if (!mousePosition) {
|
||||||
|
// Not on screen
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const worldPos = this.root.camera.screenToWorld(mousePosition);
|
||||||
|
const tile = worldPos.toTileSpace();
|
||||||
|
const contents = this.root.map.getTileContent(tile);
|
||||||
|
|
||||||
|
if (contents && !contents.components.Miner) {
|
||||||
|
const beltComp = contents.components.Belt;
|
||||||
|
|
||||||
|
// Check if the belt has a color item
|
||||||
|
if (beltComp) {
|
||||||
|
const firstItem = beltComp.sortedItems[0];
|
||||||
|
if (firstItem && firstItem[1] instanceof ColorItem) {
|
||||||
|
return firstItem[1].color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if we are ejecting an item, if so use that color
|
||||||
|
const ejectorComp = contents.components.ItemEjector;
|
||||||
|
if (ejectorComp) {
|
||||||
|
for (let i = 0; i < ejectorComp.slots.length; ++i) {
|
||||||
|
const slot = ejectorComp.slots[i];
|
||||||
|
if (slot.item && slot.item instanceof ColorItem) {
|
||||||
|
return slot.item.color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// We hovered a lower layer, show the color there
|
||||||
|
const lowerLayer = this.root.map.getLowerLayerContentXY(tile.x, tile.y);
|
||||||
|
if (lowerLayer && lowerLayer instanceof ColorItem) {
|
||||||
|
return lowerLayer.color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
update() {
|
||||||
|
this.trackedColorBelowTile.set(this.computeColorBelowTile());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Draws the currently selected tile
|
||||||
|
* @param {DrawParameters} parameters
|
||||||
|
*/
|
||||||
|
draw(parameters) {
|
||||||
|
const mousePosition = this.root.app.mousePosition;
|
||||||
|
if (!mousePosition) {
|
||||||
|
// Not on screen
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const below = this.computeColorBelowTile();
|
||||||
|
if (below) {
|
||||||
|
// We have something below our tile
|
||||||
|
const worldPos = this.root.camera.screenToWorld(mousePosition);
|
||||||
|
const tile = worldPos.toTileSpace().toWorldSpace();
|
||||||
|
|
||||||
|
parameters.context.strokeStyle = THEME.map.colorBlindPickerTile;
|
||||||
|
parameters.context.lineWidth = 1;
|
||||||
|
parameters.context.beginPath();
|
||||||
|
parameters.context.rect(tile.x, tile.y, globalConfig.tileSize, globalConfig.tileSize);
|
||||||
|
parameters.context.stroke();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -168,7 +168,7 @@ export class HUDKeybindingOverlay extends BaseHUDPart {
|
|||||||
// Pipette
|
// Pipette
|
||||||
label: T.ingame.keybindingsOverlay.pipette,
|
label: T.ingame.keybindingsOverlay.pipette,
|
||||||
keys: [k.placement.pipette],
|
keys: [k.placement.pipette],
|
||||||
condition: () => !this.mapOverviewActive,
|
condition: () => !this.mapOverviewActive && !this.blueprintPlacementActive,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -26,7 +26,8 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|||||||
* amountLabel: HTMLElement,
|
* amountLabel: HTMLElement,
|
||||||
* lastRenderedValue: string,
|
* lastRenderedValue: string,
|
||||||
* element: HTMLElement,
|
* element: HTMLElement,
|
||||||
* detector?: ClickDetector
|
* detector?: ClickDetector,
|
||||||
|
* infoDetector?: ClickDetector
|
||||||
* }>}
|
* }>}
|
||||||
*/
|
*/
|
||||||
this.handles = [];
|
this.handles = [];
|
||||||
@ -155,6 +156,10 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|||||||
if (detector) {
|
if (detector) {
|
||||||
detector.cleanup();
|
detector.cleanup();
|
||||||
}
|
}
|
||||||
|
const infoDetector = this.handles[i].infoDetector;
|
||||||
|
if (infoDetector) {
|
||||||
|
infoDetector.cleanup();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.handles = [];
|
this.handles = [];
|
||||||
|
|
||||||
@ -198,12 +203,24 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|||||||
detector = new ClickDetector(element, {
|
detector = new ClickDetector(element, {
|
||||||
consumeEvents: true,
|
consumeEvents: true,
|
||||||
preventDefault: true,
|
preventDefault: true,
|
||||||
|
targetOnly: true,
|
||||||
});
|
});
|
||||||
detector.click.add(() => this.unpinShape(key));
|
detector.click.add(() => this.unpinShape(key));
|
||||||
} else {
|
} else {
|
||||||
element.classList.add("marked");
|
element.classList.add("marked");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show small info icon
|
||||||
|
const infoButton = document.createElement("button");
|
||||||
|
infoButton.classList.add("infoButton");
|
||||||
|
element.appendChild(infoButton);
|
||||||
|
const infoDetector = new ClickDetector(infoButton, {
|
||||||
|
consumeEvents: true,
|
||||||
|
preventDefault: true,
|
||||||
|
targetOnly: true,
|
||||||
|
});
|
||||||
|
infoDetector.click.add(() => this.root.hud.signals.viewShapeDetailsRequested.dispatch(definition));
|
||||||
|
|
||||||
const amountLabel = makeDiv(element, null, ["amountLabel"], "");
|
const amountLabel = makeDiv(element, null, ["amountLabel"], "");
|
||||||
|
|
||||||
const goal = this.findGoalValueForShape(key);
|
const goal = this.findGoalValueForShape(key);
|
||||||
@ -216,6 +233,8 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|||||||
element,
|
element,
|
||||||
amountLabel,
|
amountLabel,
|
||||||
lastRenderedValue: "",
|
lastRenderedValue: "",
|
||||||
|
detector,
|
||||||
|
infoDetector,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
109
src/js/game/hud/parts/shape_viewer.js
Normal file
109
src/js/game/hud/parts/shape_viewer.js
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
import { BaseHUDPart } from "../base_hud_part";
|
||||||
|
import { makeDiv, removeAllChildren } from "../../../core/utils";
|
||||||
|
import { T } from "../../../translations";
|
||||||
|
import { defaultBuildingVariant } from "../../meta_building";
|
||||||
|
import { ShapeDefinition } from "../../shape_definition";
|
||||||
|
import { KEYMAPPINGS, KeyActionMapper } from "../../key_action_mapper";
|
||||||
|
import { InputReceiver } from "../../../core/input_receiver";
|
||||||
|
import { DynamicDomAttach } from "../dynamic_dom_attach";
|
||||||
|
|
||||||
|
export class HUDShapeViewer extends BaseHUDPart {
|
||||||
|
createElements(parent) {
|
||||||
|
this.background = makeDiv(parent, "ingame_HUD_ShapeViewer", ["ingameDialog"]);
|
||||||
|
|
||||||
|
// DIALOG Inner / Wrapper
|
||||||
|
this.dialogInner = makeDiv(this.background, null, ["dialogInner"]);
|
||||||
|
this.title = makeDiv(this.dialogInner, null, ["title"], T.ingame.shapeViewer.title);
|
||||||
|
this.closeButton = makeDiv(this.title, null, ["closeButton"]);
|
||||||
|
this.trackClicks(this.closeButton, this.close);
|
||||||
|
this.contentDiv = makeDiv(this.dialogInner, null, ["content"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
initialize() {
|
||||||
|
this.root.hud.signals.viewShapeDetailsRequested.add(this.renderForShape, this);
|
||||||
|
|
||||||
|
this.domAttach = new DynamicDomAttach(this.root, this.background, {
|
||||||
|
attachClass: "visible",
|
||||||
|
});
|
||||||
|
|
||||||
|
this.inputReciever = new InputReceiver("shape_viewer");
|
||||||
|
this.keyActionMapper = new KeyActionMapper(this.root, this.inputReciever);
|
||||||
|
|
||||||
|
this.keyActionMapper.getBinding(KEYMAPPINGS.general.back).add(this.close, this);
|
||||||
|
|
||||||
|
this.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Closes the dialog
|
||||||
|
*/
|
||||||
|
close() {
|
||||||
|
this.visible = false;
|
||||||
|
document.body.classList.remove("ingameDialogOpen");
|
||||||
|
this.root.app.inputMgr.makeSureDetached(this.inputReciever);
|
||||||
|
this.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows the viewer for a given definition
|
||||||
|
* @param {ShapeDefinition} definition
|
||||||
|
*/
|
||||||
|
renderForShape(definition) {
|
||||||
|
this.visible = true;
|
||||||
|
document.body.classList.add("ingameDialogOpen");
|
||||||
|
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
|
||||||
|
|
||||||
|
removeAllChildren(this.contentDiv);
|
||||||
|
|
||||||
|
const layers = definition.layers;
|
||||||
|
for (let i = 0; i < layers.length; ++i) {
|
||||||
|
const layerElem = makeDiv(this.contentDiv, null, ["layer", "layer-" + i]);
|
||||||
|
|
||||||
|
let fakeLayers = [];
|
||||||
|
for (let k = 0; k < i; ++k) {
|
||||||
|
fakeLayers.push([null, null, null, null]);
|
||||||
|
}
|
||||||
|
fakeLayers.push(layers[i]);
|
||||||
|
|
||||||
|
const thisLayerOnly = new ShapeDefinition({ layers: fakeLayers });
|
||||||
|
const thisLayerCanvas = thisLayerOnly.generateAsCanvas(160);
|
||||||
|
layerElem.appendChild(thisLayerCanvas);
|
||||||
|
|
||||||
|
for (let quad = 0; quad < 4; ++quad) {
|
||||||
|
const quadElem = makeDiv(layerElem, null, ["quad", "quad-" + quad]);
|
||||||
|
|
||||||
|
const contents = layers[i][quad];
|
||||||
|
if (contents) {
|
||||||
|
const colorLabelElem = makeDiv(
|
||||||
|
quadElem,
|
||||||
|
null,
|
||||||
|
["colorLabel"],
|
||||||
|
T.ingame.colors[contents.color]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
const emptyLabelElem = makeDiv(
|
||||||
|
quadElem,
|
||||||
|
null,
|
||||||
|
["emptyLabel"],
|
||||||
|
T.ingame.shapeViewer.empty
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i < layers.length - 1) {
|
||||||
|
makeDiv(this.contentDiv, null, ["seperator"], "+");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cleans up everything
|
||||||
|
*/
|
||||||
|
cleanup() {
|
||||||
|
document.body.classList.remove("ingameDialogOpen");
|
||||||
|
}
|
||||||
|
|
||||||
|
update() {
|
||||||
|
this.domAttach.update(this.visible);
|
||||||
|
}
|
||||||
|
}
|
@ -79,6 +79,7 @@ export class HUDShop extends BaseHUDPart {
|
|||||||
const requiredHandle = handle.requireIndexToElement[i];
|
const requiredHandle = handle.requireIndexToElement[i];
|
||||||
requiredHandle.container.remove();
|
requiredHandle.container.remove();
|
||||||
requiredHandle.pinDetector.cleanup();
|
requiredHandle.pinDetector.cleanup();
|
||||||
|
requiredHandle.infoDetector.cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cleanup
|
// Cleanup
|
||||||
@ -122,6 +123,10 @@ export class HUDShop extends BaseHUDPart {
|
|||||||
pinButton.classList.add("pin");
|
pinButton.classList.add("pin");
|
||||||
container.appendChild(pinButton);
|
container.appendChild(pinButton);
|
||||||
|
|
||||||
|
const viewInfoButton = document.createElement("button");
|
||||||
|
viewInfoButton.classList.add("showInfo");
|
||||||
|
container.appendChild(viewInfoButton);
|
||||||
|
|
||||||
const currentGoalShape = this.root.hubGoals.currentGoal.definition.getHash();
|
const currentGoalShape = this.root.hubGoals.currentGoal.definition.getHash();
|
||||||
if (shape === currentGoalShape) {
|
if (shape === currentGoalShape) {
|
||||||
pinButton.classList.add("isGoal");
|
pinButton.classList.add("isGoal");
|
||||||
@ -145,6 +150,14 @@ export class HUDShop extends BaseHUDPart {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const infoDetector = new ClickDetector(viewInfoButton, {
|
||||||
|
consumeEvents: true,
|
||||||
|
preventDefault: true,
|
||||||
|
});
|
||||||
|
infoDetector.click.add(() =>
|
||||||
|
this.root.hud.signals.viewShapeDetailsRequested.dispatch(shapeDef)
|
||||||
|
);
|
||||||
|
|
||||||
handle.requireIndexToElement.push({
|
handle.requireIndexToElement.push({
|
||||||
container,
|
container,
|
||||||
progressLabel,
|
progressLabel,
|
||||||
@ -152,6 +165,7 @@ export class HUDShop extends BaseHUDPart {
|
|||||||
definition: shapeDef,
|
definition: shapeDef,
|
||||||
required: amount,
|
required: amount,
|
||||||
pinDetector,
|
pinDetector,
|
||||||
|
infoDetector,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -202,6 +216,7 @@ export class HUDShop extends BaseHUDPart {
|
|||||||
const requiredHandle = handle.requireIndexToElement[i];
|
const requiredHandle = handle.requireIndexToElement[i];
|
||||||
requiredHandle.container.remove();
|
requiredHandle.container.remove();
|
||||||
requiredHandle.pinDetector.cleanup();
|
requiredHandle.pinDetector.cleanup();
|
||||||
|
requiredHandle.infoDetector.cleanup();
|
||||||
}
|
}
|
||||||
handle.requireIndexToElement = [];
|
handle.requireIndexToElement = [];
|
||||||
}
|
}
|
||||||
@ -231,6 +246,6 @@ export class HUDShop extends BaseHUDPart {
|
|||||||
|
|
||||||
tryUnlockNextTier(upgradeId) {
|
tryUnlockNextTier(upgradeId) {
|
||||||
// Nothing
|
// Nothing
|
||||||
this.root.hubGoals.tryUnlockUgprade(upgradeId);
|
this.root.hubGoals.tryUnlockUpgrade(upgradeId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -333,7 +333,7 @@ export class ShapeDefinition extends BasicSerializableObject {
|
|||||||
const quadrantSize = 10;
|
const quadrantSize = 10;
|
||||||
const quadrantHalfSize = quadrantSize / 2;
|
const quadrantHalfSize = quadrantSize / 2;
|
||||||
|
|
||||||
context.fillStyle = "rgba(40, 50, 65, 0.1)";
|
context.fillStyle = THEME.items.circleBackground;
|
||||||
context.beginCircle(0, 0, quadrantSize * 1.15);
|
context.beginCircle(0, 0, quadrantSize * 1.15);
|
||||||
context.fill();
|
context.fill();
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import { SOUNDS } from "../platform/sound";
|
|||||||
const avgSoundDurationSeconds = 0.25;
|
const avgSoundDurationSeconds = 0.25;
|
||||||
const maxOngoingSounds = 2;
|
const maxOngoingSounds = 2;
|
||||||
|
|
||||||
const maxOngoingUiSounds = 25;
|
const maxOngoingUiSounds = 10;
|
||||||
|
|
||||||
// Proxy to the application sound instance
|
// Proxy to the application sound instance
|
||||||
export class SoundProxy {
|
export class SoundProxy {
|
||||||
|
@ -77,6 +77,7 @@ export class UndergroundBeltSystem extends GameSystemWithFilter {
|
|||||||
const tier = undergroundComp.tier;
|
const tier = undergroundComp.tier;
|
||||||
const range = globalConfig.undergroundBeltMaxTilesByTier[tier];
|
const range = globalConfig.undergroundBeltMaxTilesByTier[tier];
|
||||||
|
|
||||||
|
// FIND ENTRANCE
|
||||||
// Search for the entrance which is furthes apart (this is why we can't reuse logic here)
|
// Search for the entrance which is furthes apart (this is why we can't reuse logic here)
|
||||||
let matchingEntrance = null;
|
let matchingEntrance = null;
|
||||||
for (let i = 0; i < range; ++i) {
|
for (let i = 0; i < range; ++i) {
|
||||||
@ -104,31 +105,49 @@ export class UndergroundBeltSystem extends GameSystemWithFilter {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove any belts between entrance and exit which have the same direction
|
// DETECT OBSOLETE BELTS BETWEEN
|
||||||
|
// Remove any belts between entrance and exit which have the same direction,
|
||||||
|
// but only if they *all* have the right direction
|
||||||
currentPos = tile.copy();
|
currentPos = tile.copy();
|
||||||
|
let allBeltsMatch = true;
|
||||||
for (let i = 0; i < matchingEntrance.range; ++i) {
|
for (let i = 0; i < matchingEntrance.range; ++i) {
|
||||||
currentPos.addInplace(offset);
|
currentPos.addInplace(offset);
|
||||||
|
|
||||||
const contents = this.root.map.getTileContent(currentPos);
|
const contents = this.root.map.getTileContent(currentPos);
|
||||||
if (!contents) {
|
if (!contents) {
|
||||||
continue;
|
allBeltsMatch = false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const contentsStaticComp = contents.components.StaticMapEntity;
|
const contentsStaticComp = contents.components.StaticMapEntity;
|
||||||
const contentsBeltComp = contents.components.Belt;
|
const contentsBeltComp = contents.components.Belt;
|
||||||
|
if (!contentsBeltComp) {
|
||||||
|
allBeltsMatch = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (contentsBeltComp) {
|
|
||||||
// It's a belt
|
// It's a belt
|
||||||
if (
|
if (
|
||||||
contentsBeltComp.direction === enumDirection.top &&
|
contentsBeltComp.direction !== enumDirection.top ||
|
||||||
enumAngleToDirection[contentsStaticComp.rotation] === direction
|
enumAngleToDirection[contentsStaticComp.rotation] !== direction
|
||||||
) {
|
) {
|
||||||
// It's same rotation, drop it
|
allBeltsMatch = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
currentPos = tile.copy();
|
||||||
|
if (allBeltsMatch) {
|
||||||
|
// All belts between this are obsolete, so drop them
|
||||||
|
for (let i = 0; i < matchingEntrance.range; ++i) {
|
||||||
|
currentPos.addInplace(offset);
|
||||||
|
const contents = this.root.map.getTileContent(currentPos);
|
||||||
|
assert(contents, "Invalid smart underground belt logic");
|
||||||
this.root.logic.tryDeleteBuilding(contents);
|
this.root.logic.tryDeleteBuilding(contents);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
// REMOVE OBSOLETE TUNNELS
|
||||||
// Remove any double tunnels, by checking the tile plus the tile above
|
// Remove any double tunnels, by checking the tile plus the tile above
|
||||||
currentPos = tile.copy().add(offset);
|
currentPos = tile.copy().add(offset);
|
||||||
for (let i = 0; i < matchingEntrance.range - 1; ++i) {
|
for (let i = 0; i < matchingEntrance.range - 1; ++i) {
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
"directionLock": "rgb(74, 237, 134)",
|
"directionLock": "rgb(74, 237, 134)",
|
||||||
"directionLockTrack": "rgba(74, 237, 134, 0.2)",
|
"directionLockTrack": "rgba(74, 237, 134, 0.2)",
|
||||||
|
|
||||||
|
"colorBlindPickerTile": "rgba(255, 255, 255, 0.5)",
|
||||||
|
|
||||||
"resources": {
|
"resources": {
|
||||||
"shape": "#3d3f4a",
|
"shape": "#3d3f4a",
|
||||||
"red": "#4a3d3f",
|
"red": "#4a3d3f",
|
||||||
@ -26,6 +28,7 @@
|
|||||||
|
|
||||||
"items": {
|
"items": {
|
||||||
"outline": "#111418",
|
"outline": "#111418",
|
||||||
"outlineWidth": 0.75
|
"outlineWidth": 0.75,
|
||||||
|
"circleBackground": "rgba(20, 30, 40, 0.3)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
"directionLock": "rgb(74, 237, 134)",
|
"directionLock": "rgb(74, 237, 134)",
|
||||||
"directionLockTrack": "rgba(74, 237, 134, 0.2)",
|
"directionLockTrack": "rgba(74, 237, 134, 0.2)",
|
||||||
|
|
||||||
|
"colorBlindPickerTile": "rgba(50, 50, 50, 0.4)",
|
||||||
|
|
||||||
"resources": {
|
"resources": {
|
||||||
"shape": "#eaebec",
|
"shape": "#eaebec",
|
||||||
"red": "#ffbfc1",
|
"red": "#ffbfc1",
|
||||||
@ -27,6 +29,7 @@
|
|||||||
|
|
||||||
"items": {
|
"items": {
|
||||||
"outline": "#55575a",
|
"outline": "#55575a",
|
||||||
"outlineWidth": 0.75
|
"outlineWidth": 0.75,
|
||||||
|
"circleBackground": "rgba(40, 50, 65, 0.1)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,4 +86,10 @@ export const LANGUAGES = {
|
|||||||
code: "zh",
|
code: "zh",
|
||||||
region: "CN",
|
region: "CN",
|
||||||
},
|
},
|
||||||
|
"sv": {
|
||||||
|
name: "Svenska",
|
||||||
|
data: require("./built-temp/base-sv.json"),
|
||||||
|
code: "sv",
|
||||||
|
region: "",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -22,6 +22,7 @@ export const SOUNDS = {
|
|||||||
|
|
||||||
levelComplete: "level_complete",
|
levelComplete: "level_complete",
|
||||||
|
|
||||||
|
destroyBuilding: "destroy_building",
|
||||||
placeBuilding: "place_building",
|
placeBuilding: "place_building",
|
||||||
placeBelt: "place_belt",
|
placeBelt: "place_belt",
|
||||||
};
|
};
|
||||||
|
@ -172,6 +172,15 @@ export const allApplicationSettings = [
|
|||||||
(app, value) => app.sound.setMusicMuted(value)
|
(app, value) => app.sound.setMusicMuted(value)
|
||||||
),
|
),
|
||||||
|
|
||||||
|
new BoolSetting(
|
||||||
|
"enableColorBlindHelper",
|
||||||
|
categoryApp,
|
||||||
|
/**
|
||||||
|
* @param {Application} app
|
||||||
|
*/
|
||||||
|
(app, value) => null
|
||||||
|
),
|
||||||
|
|
||||||
// GAME
|
// GAME
|
||||||
new BoolSetting("offerHints", categoryGame, (app, value) => {}),
|
new BoolSetting("offerHints", categoryGame, (app, value) => {}),
|
||||||
|
|
||||||
@ -269,6 +278,8 @@ class SettingsStorage {
|
|||||||
this.compactBuildingInfo = false;
|
this.compactBuildingInfo = false;
|
||||||
this.disableCutDeleteWarnings = false;
|
this.disableCutDeleteWarnings = false;
|
||||||
|
|
||||||
|
this.enableColorBlindHelper = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {Object.<string, number>}
|
* @type {Object.<string, number>}
|
||||||
*/
|
*/
|
||||||
@ -468,7 +479,7 @@ export class ApplicationSettings extends ReadWriteProxy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getCurrentVersion() {
|
getCurrentVersion() {
|
||||||
return 15;
|
return 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @param {{settings: SettingsStorage, version: number}} data */
|
/** @param {{settings: SettingsStorage, version: number}} data */
|
||||||
@ -530,6 +541,17 @@ export class ApplicationSettings extends ReadWriteProxy {
|
|||||||
data.version = 15;
|
data.version = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.version < 16) {
|
||||||
|
// RE-ENABLE this setting, it already existed
|
||||||
|
data.settings.enableTunnelSmartplace = true;
|
||||||
|
data.version = 16;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.version < 17) {
|
||||||
|
data.settings.enableColorBlindHelper = false;
|
||||||
|
data.version = 17;
|
||||||
|
}
|
||||||
|
|
||||||
return ExplainedResult.good();
|
return ExplainedResult.good();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import {
|
|||||||
waitNextFrame,
|
waitNextFrame,
|
||||||
isSupportedBrowser,
|
isSupportedBrowser,
|
||||||
makeButton,
|
makeButton,
|
||||||
|
removeAllChildren,
|
||||||
} from "../core/utils";
|
} from "../core/utils";
|
||||||
import { ReadWriteProxy } from "../core/read_write_proxy";
|
import { ReadWriteProxy } from "../core/read_write_proxy";
|
||||||
import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs";
|
import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs";
|
||||||
@ -72,6 +73,7 @@ export class MainMenuState extends GameState {
|
|||||||
? ""
|
? ""
|
||||||
: `<div class="browserWarning">${T.mainMenu.browserWarning}</div>`
|
: `<div class="browserWarning">${T.mainMenu.browserWarning}</div>`
|
||||||
}
|
}
|
||||||
|
<div class="buttons"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -89,9 +91,13 @@ export class MainMenuState extends GameState {
|
|||||||
<span class="thirdpartyLogo discordLogo"></span>
|
<span class="thirdpartyLogo discordLogo"></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<div class="sidelinks">
|
||||||
|
<a class="redditLink">${T.mainMenu.subreddit}</a>
|
||||||
|
|
||||||
<a class="changelog">${T.changelog.title}</a>
|
<a class="changelog">${T.changelog.title}</a>
|
||||||
|
|
||||||
<a class="helpTranslate">${T.mainMenu.helpTranslate}</a>
|
<a class="helpTranslate">${T.mainMenu.helpTranslate}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="author">${T.mainMenu.madeBy.replace(
|
<div class="author">${T.mainMenu.madeBy.replace(
|
||||||
"<author-link>",
|
"<author-link>",
|
||||||
@ -148,6 +154,7 @@ export class MainMenuState extends GameState {
|
|||||||
T.dialogs.importSavegameSuccess.text
|
T.dialogs.importSavegameSuccess.text
|
||||||
);
|
);
|
||||||
|
|
||||||
|
this.renderMainMenu();
|
||||||
this.renderSavegames();
|
this.renderSavegames();
|
||||||
},
|
},
|
||||||
err => {
|
err => {
|
||||||
@ -212,6 +219,7 @@ export class MainMenuState extends GameState {
|
|||||||
|
|
||||||
this.trackClicks(qs(".settingsButton"), this.onSettingsButtonClicked);
|
this.trackClicks(qs(".settingsButton"), this.onSettingsButtonClicked);
|
||||||
this.trackClicks(qs(".changelog"), this.onChangelogClicked);
|
this.trackClicks(qs(".changelog"), this.onChangelogClicked);
|
||||||
|
this.trackClicks(qs(".redditLink"), this.onRedditClicked);
|
||||||
this.trackClicks(qs(".languageChoose"), this.onLanguageChooseClicked);
|
this.trackClicks(qs(".languageChoose"), this.onLanguageChooseClicked);
|
||||||
this.trackClicks(qs(".helpTranslate"), this.onTranslationHelpLinkClicked);
|
this.trackClicks(qs(".helpTranslate"), this.onTranslationHelpLinkClicked);
|
||||||
|
|
||||||
@ -255,6 +263,10 @@ export class MainMenuState extends GameState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderMainMenu() {
|
renderMainMenu() {
|
||||||
|
const buttonContainer = this.htmlElement.querySelector(".mainContainer .buttons");
|
||||||
|
removeAllChildren(buttonContainer);
|
||||||
|
|
||||||
|
// Import button
|
||||||
const importButtonElement = makeButtonElement(
|
const importButtonElement = makeButtonElement(
|
||||||
["importButton", "styledButton"],
|
["importButton", "styledButton"],
|
||||||
T.mainMenu.importSavegame
|
T.mainMenu.importSavegame
|
||||||
@ -262,14 +274,15 @@ export class MainMenuState extends GameState {
|
|||||||
this.trackClicks(importButtonElement, this.requestImportSavegame);
|
this.trackClicks(importButtonElement, this.requestImportSavegame);
|
||||||
|
|
||||||
if (this.savedGames.length > 0) {
|
if (this.savedGames.length > 0) {
|
||||||
|
// Continue game
|
||||||
const continueButton = makeButton(
|
const continueButton = makeButton(
|
||||||
this.htmlElement.querySelector(".mainContainer"),
|
buttonContainer,
|
||||||
["continueButton", "styledButton"],
|
["continueButton", "styledButton"],
|
||||||
T.mainMenu.continue
|
T.mainMenu.continue
|
||||||
);
|
);
|
||||||
this.trackClicks(continueButton, this.onContinueButtonClicked);
|
this.trackClicks(continueButton, this.onContinueButtonClicked);
|
||||||
|
|
||||||
const outerDiv = makeDiv(this.htmlElement.querySelector(".mainContainer"), null, ["outer"], null);
|
const outerDiv = makeDiv(buttonContainer, null, ["outer"], null);
|
||||||
outerDiv.appendChild(importButtonElement);
|
outerDiv.appendChild(importButtonElement);
|
||||||
const newGameButton = makeButton(
|
const newGameButton = makeButton(
|
||||||
this.htmlElement.querySelector(".mainContainer .outer"),
|
this.htmlElement.querySelector(".mainContainer .outer"),
|
||||||
@ -277,24 +290,11 @@ export class MainMenuState extends GameState {
|
|||||||
T.mainMenu.newGame
|
T.mainMenu.newGame
|
||||||
);
|
);
|
||||||
this.trackClicks(newGameButton, this.onPlayButtonClicked);
|
this.trackClicks(newGameButton, this.onPlayButtonClicked);
|
||||||
|
|
||||||
const oldPlayButton = this.htmlElement.querySelector(".mainContainer .playButton");
|
|
||||||
if (oldPlayButton) oldPlayButton.remove();
|
|
||||||
} else {
|
} else {
|
||||||
const playBtn = makeButton(
|
// New game
|
||||||
this.htmlElement.querySelector(".mainContainer"),
|
const playBtn = makeButton(buttonContainer, ["playButton", "styledButton"], T.mainMenu.play);
|
||||||
["playButton", "styledButton"],
|
|
||||||
T.mainMenu.play
|
|
||||||
);
|
|
||||||
this.trackClicks(playBtn, this.onPlayButtonClicked);
|
this.trackClicks(playBtn, this.onPlayButtonClicked);
|
||||||
|
buttonContainer.appendChild(importButtonElement);
|
||||||
this.htmlElement.querySelector(".mainContainer").appendChild(importButtonElement);
|
|
||||||
|
|
||||||
const outerDiv = this.htmlElement.querySelector(".mainContainer .outer");
|
|
||||||
if (outerDiv) {
|
|
||||||
outerDiv.remove();
|
|
||||||
this.htmlElement.querySelector(".mainContainer .continueButton").remove();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,6 +312,11 @@ export class MainMenuState extends GameState {
|
|||||||
this.moveToState("ChangelogState");
|
this.moveToState("ChangelogState");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onRedditClicked() {
|
||||||
|
this.app.analytics.trackUiClick("main_menu_reddit_link");
|
||||||
|
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.reddit);
|
||||||
|
}
|
||||||
|
|
||||||
onContestClicked() {
|
onContestClicked() {
|
||||||
this.app.analytics.trackUiClick("contest_click");
|
this.app.analytics.trackUiClick("contest_click");
|
||||||
|
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -711,6 +725,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -134,9 +134,10 @@ mainMenu:
|
|||||||
|
|
||||||
showInfo: Zobrazit
|
showInfo: Zobrazit
|
||||||
contestOver: Tato soutěž skončila - Připojte se na Discord a získejte informace o nových soutěžích!
|
contestOver: Tato soutěž skončila - Připojte se na Discord a získejte informace o nových soutěžích!
|
||||||
continue: Continue
|
continue: Pokračovat
|
||||||
newGame: New Game
|
newGame: Nová hra
|
||||||
madeBy: Made by <author-link>
|
madeBy: Vytvořil <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -266,12 +267,12 @@ ingame:
|
|||||||
createMarker: Vytvořit značku
|
createMarker: Vytvořit značku
|
||||||
delete: Zničit
|
delete: Zničit
|
||||||
pasteLastBlueprint: Vložit poslední plán
|
pasteLastBlueprint: Vložit poslední plán
|
||||||
lockBeltDirection: Enable belt planner
|
lockBeltDirection: Zamknout směr pásu
|
||||||
plannerSwitchSide: Flip planner side
|
plannerSwitchSide: Otočit strany plánovače
|
||||||
cutSelection: Cut
|
cutSelection: Vyjmout
|
||||||
copySelection: Copy
|
copySelection: Kopířovat
|
||||||
clearSelection: Clear Selection
|
clearSelection: Zrušit výběr
|
||||||
pipette: Pipette
|
pipette: Kapátko
|
||||||
|
|
||||||
# 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)
|
||||||
@ -378,6 +379,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
Toto <strong>NENÍ</strong> hra o čekání! Sestavte další extraktory a pásy, abyste dosáhli cíle rychleji.<br><br>Tip: Chcete-li umístit více extraktorů, podržte <strong>SHIFT</strong>. Pomocí <strong>R</strong> je můžete otočit.
|
Toto <strong>NENÍ</strong> hra o čekání! Sestavte další extraktory a pásy, abyste dosáhli cíle rychleji.<br><br>Tip: Chcete-li umístit více extraktorů, podržte <strong>SHIFT</strong>. Pomocí <strong>R</strong> je můžete otočit.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Červená
|
||||||
|
green: Zelená
|
||||||
|
blue: Modrá
|
||||||
|
yellow: Žlutá
|
||||||
|
purple: Fialová
|
||||||
|
cyan: Tyrkysová
|
||||||
|
white: Bílá
|
||||||
|
uncolored: Bez barvy
|
||||||
|
shapeViewer:
|
||||||
|
title: Vrstvy
|
||||||
|
empty: Prázdné
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -582,7 +596,7 @@ settings:
|
|||||||
|
|
||||||
labels:
|
labels:
|
||||||
uiScale:
|
uiScale:
|
||||||
title: Škála UI
|
title: Škálování UI
|
||||||
description: >-
|
description: >-
|
||||||
Změní velikost uživatelského rozhraní. Rozhraní se bude stále přizpůsobovoat rozlišení vaší obrazovky, toto nastavení pouze mění jeho škálu.
|
Změní velikost uživatelského rozhraní. Rozhraní se bude stále přizpůsobovoat rozlišení vaší obrazovky, toto nastavení pouze mění jeho škálu.
|
||||||
scales:
|
scales:
|
||||||
@ -658,40 +672,42 @@ settings:
|
|||||||
super_fast: Hodně Rychlá
|
super_fast: Hodně Rychlá
|
||||||
extremely_fast: Extrémně Rychlá
|
extremely_fast: Extrémně Rychlá
|
||||||
enableTunnelSmartplace:
|
enableTunnelSmartplace:
|
||||||
title: Smart Tunnels
|
title: Chytré tunely
|
||||||
description: >-
|
description: >-
|
||||||
When enabled, placing tunnels will automatically remove unnecessary belts.
|
Pokládání tunelů po zapnutí bude samo odstraňovat nepotřebné pásy.
|
||||||
This also enables to drag tunnels and excess tunnels will get removed.
|
Umožňuje také potahování tunelů a nadbytečné tunely budou odstraněny.
|
||||||
vignette:
|
vignette:
|
||||||
title: Vignette
|
title: Viněta
|
||||||
description: >-
|
description: >-
|
||||||
Enables the vignette which darkens the screen corners and makes text easier
|
Zapne vinětu, která ztmaví rohy obrazovky, což umožňuje lepší čtení textu.
|
||||||
to read.
|
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Interval automatického ukládání
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Určuje jak často se hra automaticky ukládá. Lze ji zde také úplně zakázat.
|
||||||
entirely here.
|
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 minuta
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 minuty
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 minut
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 minut
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 minut
|
||||||
disabled: Disabled
|
disabled: Zrušeno
|
||||||
|
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Kompaktní informace o stavbách
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Zkrátí informační políčka pro budovy tím, že pouze ukáže jejich koeficient.
|
||||||
description and image is shown.
|
V opačném případě zobrazí popis a obrázek.
|
||||||
|
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Zakázat upozornění o vyjmutí nebo odstranění
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Deaktivujte varovná dialogová okna vyvolaná při vymutí/mazání více než 100
|
||||||
entities.
|
entit.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Režim pro barvoslepé
|
||||||
|
description: Zapné různé nástroje, které vám umožní hrát hru i pokud jste barvoslepí.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Klávesové zkratky
|
title: Klávesové zkratky
|
||||||
@ -756,9 +772,9 @@ keybindings:
|
|||||||
pasteLastBlueprint: Vložit poslední plán
|
pasteLastBlueprint: Vložit poslední plán
|
||||||
massSelectCut: Vyjmout oblast
|
massSelectCut: Vyjmout oblast
|
||||||
exportScreenshot: Exportovat celou základnu jako obrázek
|
exportScreenshot: Exportovat celou základnu jako obrázek
|
||||||
lockBeltDirection: Enable belt planner
|
lockBeltDirection: Zamknout směr pásu
|
||||||
switchDirectionLockSide: "Planner: Switch side"
|
switchDirectionLockSide: Otočit strany zámku plánovače
|
||||||
pipette: Pipette
|
pipette: Kapátko
|
||||||
|
|
||||||
about:
|
about:
|
||||||
title: O hře
|
title: O hře
|
||||||
|
@ -155,6 +155,7 @@ mainMenu:
|
|||||||
continue: Fortsetzen
|
continue: Fortsetzen
|
||||||
newGame: Neues Spiel
|
newGame: Neues Spiel
|
||||||
madeBy: Ein Spiel von <author-link>
|
madeBy: Ein Spiel von <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -286,7 +287,7 @@ ingame:
|
|||||||
plannerSwitchSide: "Planer: Seite wechseln"
|
plannerSwitchSide: "Planer: Seite wechseln"
|
||||||
cutSelection: Ausschneiden
|
cutSelection: Ausschneiden
|
||||||
copySelection: Kopieren
|
copySelection: Kopieren
|
||||||
clearSelection: Leere Selektion
|
clearSelection: Auswahl aufheben
|
||||||
pipette: Pipette
|
pipette: Pipette
|
||||||
|
|
||||||
# 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
|
||||||
@ -294,7 +295,7 @@ ingame:
|
|||||||
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: Drücke <key>, um zwischen den Varianten zu wählen.
|
cycleBuildingVariants: <key> Wechsle Variante
|
||||||
|
|
||||||
# Shows the hotkey in the ui, e.g. "Hotkey: Q"
|
# Shows the hotkey in the ui, e.g. "Hotkey: Q"
|
||||||
hotkeyLabel: >-
|
hotkeyLabel: >-
|
||||||
@ -394,6 +395,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
Dies ist <strong>KEIN</strong> Idle-Game! Baue mehr Extrahierer und Förderbänder, um das Ziel schneller zu erreichen.<br><br>Tipp: Halte <strong>UMSCH</strong>, um mehrere Gebäude zu platzieren und nutze <strong>R</strong> um sie zu rotieren.
|
Dies ist <strong>KEIN</strong> Idle-Game! Baue mehr Extrahierer und Förderbänder, um das Ziel schneller zu erreichen.<br><br>Tipp: Halte <strong>UMSCH</strong>, um mehrere Gebäude zu platzieren und nutze <strong>R</strong> um sie zu rotieren.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Rot
|
||||||
|
green: Grün
|
||||||
|
blue: Blau
|
||||||
|
yellow: Gelb
|
||||||
|
purple: Violett
|
||||||
|
cyan: Cyan
|
||||||
|
white: Weiß
|
||||||
|
uncolored: Farblos
|
||||||
|
shapeViewer:
|
||||||
|
title: Ebenen
|
||||||
|
empty: Leer
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -688,29 +702,32 @@ settings:
|
|||||||
und das Lesen der Textfelder vereinfacht.
|
und das Lesen der Textfelder vereinfacht.
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Intervall für automatisches Speichern
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Ändert das Intervall, in dem der Spielstand automatisch gespeichert wird.
|
||||||
entirely here.
|
Die Funktion kann hier auch deaktiviert werden.
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 Minute
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 Minuten
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 Minuten
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 Minuten
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 Minuten
|
||||||
disabled: Disabled
|
disabled: Deaktiviert
|
||||||
|
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Kompakte Gebäudeinformationen
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Reduziert die Infoboxen der Gebäude auf ihre Arbeitsgeschwindigkeit. Anderenfalls wird ein
|
||||||
description and image is shown.
|
Bild mit Beschreibung angezeigt.
|
||||||
|
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Deaktiviere Warnungsdialog beim Löschen
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Deaktiviert die Warnung, die beim Löschen und Ausschneiden von mehr als 100 Feldern angezeigt wird.
|
||||||
entities.
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Modus für Farbenblinde
|
||||||
|
description: Aktiviert verschiedene Werkzeuge, die dir das Spielen trotz Farbenblindheit ermöglichen.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Tastenbelegung
|
title: Tastenbelegung
|
||||||
@ -739,7 +756,7 @@ keybindings:
|
|||||||
|
|
||||||
mapZoomIn: Hineinzoomen
|
mapZoomIn: Hineinzoomen
|
||||||
mapZoomOut: Herauszoomen
|
mapZoomOut: Herauszoomen
|
||||||
createMarker: Markeirung erstellen
|
createMarker: Markierung erstellen
|
||||||
|
|
||||||
menuOpenShop: Upgrades
|
menuOpenShop: Upgrades
|
||||||
menuOpenStats: Statistiken
|
menuOpenStats: Statistiken
|
||||||
@ -759,7 +776,7 @@ keybindings:
|
|||||||
|
|
||||||
rotateWhilePlacing: Rotieren
|
rotateWhilePlacing: Rotieren
|
||||||
rotateInverseModifier: >-
|
rotateInverseModifier: >-
|
||||||
Modifier: stattdessen gegen UZS rotieren
|
Modifikator: stattdessen gegen UZS rotieren
|
||||||
cycleBuildingVariants: Variante wählen
|
cycleBuildingVariants: Variante wählen
|
||||||
confirmMassDelete: Massenlöschung bestätigen
|
confirmMassDelete: Massenlöschung bestätigen
|
||||||
cycleBuildings: Gebäude rotieren
|
cycleBuildings: Gebäude rotieren
|
||||||
@ -782,22 +799,22 @@ keybindings:
|
|||||||
about:
|
about:
|
||||||
title: Über dieses Spiel
|
title: Über dieses Spiel
|
||||||
body: >-
|
body: >-
|
||||||
This game is open source and developed by <a href="https://github.com/tobspr"
|
Dieses Spiel hat einen offenen Quellcode (Open Source) und wurde von <a href="https://github.com/tobspr"
|
||||||
target="_blank">Tobias Springer</a> (this is me).<br><br>
|
target="_blank">Tobias Springer</a> (das bin ich!) entwickelt.<br><br>
|
||||||
|
|
||||||
If you want to contribute, check out <a href="<githublink>"
|
Wenn du etwas zum Spiel beitragen möchtest, dann schaue dir <a href="<githublink>"
|
||||||
target="_blank">shapez.io on github</a>.<br><br>
|
target="_blank">shapez.io auf GitHub</a> an.<br><br>
|
||||||
|
|
||||||
This game wouldn't have been possible without the great discord community
|
Das Spiel wurde erst durch die großartige Discord-Community
|
||||||
around my games - You should really join the <a href="<discordlink>"
|
um meine Spiele möglich gemacht. Komm doch einfach mal auf dem <a href="<discordlink>"
|
||||||
target="_blank">discord server</a>!<br><br>
|
target="_blank">Discord-Server</a> vorbei!<br><br>
|
||||||
|
|
||||||
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius"
|
Der Soundtrack wurde von <a href="https://soundcloud.com/pettersumelius"
|
||||||
target="_blank">Peppsen</a> - He's awesome.<br><br>
|
target="_blank">Peppsen</a> komponiert! Klasse Typ.<br><br>
|
||||||
|
|
||||||
Finally, huge thanks to my best friend <a
|
Abschließend möchte ich meinem Kumpel <a
|
||||||
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our
|
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> danken! Ohne unsere
|
||||||
factorio sessions this game would never have existed.
|
etlichen gemeinsamen Stunden in Factorio wäre dieses Projekt nie zustande gekommen.
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
title: Änderungen
|
title: Änderungen
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -712,6 +726,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -121,6 +121,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
changelog: Changelog
|
changelog: Changelog
|
||||||
|
subreddit: Reddit
|
||||||
importSavegame: Import
|
importSavegame: Import
|
||||||
openSourceHint: This game is open source!
|
openSourceHint: This game is open source!
|
||||||
discordLink: Official Discord Server
|
discordLink: Official Discord Server
|
||||||
@ -290,6 +291,17 @@ ingame:
|
|||||||
clearSelection: Clear Selection
|
clearSelection: Clear Selection
|
||||||
pipette: Pipette
|
pipette: Pipette
|
||||||
|
|
||||||
|
# Names of the colors, used for the color blind mode
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
|
||||||
# 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:
|
||||||
@ -384,6 +396,11 @@ ingame:
|
|||||||
description: Left-click a marker to jump to it, right-click to delete it.<br><br>Press <keybinding> to create a marker from the current view, or <strong>right-click</strong> to create a marker at the selected location.
|
description: Left-click a marker to jump to it, right-click to delete it.<br><br>Press <keybinding> to create a marker from the current view, or <strong>right-click</strong> to create a marker at the selected location.
|
||||||
creationSuccessNotification: Marker has been created.
|
creationSuccessNotification: Marker has been created.
|
||||||
|
|
||||||
|
# Shape viewer
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# Interactive tutorial
|
# Interactive tutorial
|
||||||
interactiveTutorial:
|
interactiveTutorial:
|
||||||
title: Tutorial
|
title: Tutorial
|
||||||
@ -652,6 +669,11 @@ settings:
|
|||||||
description: >-
|
description: >-
|
||||||
Change the language. All translations are user contributed and might be incomplete!
|
Change the language. All translations are user contributed and might be incomplete!
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: >-
|
||||||
|
Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
fullscreen:
|
fullscreen:
|
||||||
title: Fullscreen
|
title: Fullscreen
|
||||||
description: >-
|
description: >-
|
||||||
|
@ -57,7 +57,7 @@ steamPage:
|
|||||||
[*] Modo historia en el que los edificios cuesten figuras
|
[*] Modo historia en el que los edificios cuesten figuras
|
||||||
[*] Más niveles y edificios (exclusivos del juego completo)
|
[*] Más niveles y edificios (exclusivos del juego completo)
|
||||||
[*] Mapas diferentes y tal vez obstáculos en el mapa
|
[*] Mapas diferentes y tal vez obstáculos en el mapa
|
||||||
[*] Configuración en la cración del mapa (Editar el número y tamaño de los recursos, la semilla, y más)
|
[*] Configuración en la creación del mapa (Editar el número y tamaño de los recursos, la semilla, y más)
|
||||||
[*] Más tipos de formas
|
[*] Más tipos de formas
|
||||||
[*] Mejoras de rendimiento (Aunque el juego ya funciona muy bien!)
|
[*] Mejoras de rendimiento (Aunque el juego ya funciona muy bien!)
|
||||||
[*] Modo para daltónicos
|
[*] Modo para daltónicos
|
||||||
@ -155,6 +155,7 @@ mainMenu:
|
|||||||
|
|
||||||
showInfo: Ver
|
showInfo: Ver
|
||||||
contestOver: El concurso ha terminado - Únete al discord para enterarte sobre nuevos concursos!
|
contestOver: El concurso ha terminado - Únete al discord para enterarte sobre nuevos concursos!
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -282,12 +283,12 @@ ingame:
|
|||||||
placeBuilding: Colocar edificio
|
placeBuilding: Colocar edificio
|
||||||
createMarker: Crear marca
|
createMarker: Crear marca
|
||||||
delete: Destruir
|
delete: Destruir
|
||||||
pasteLastBlueprint: Paste last blueprint
|
pasteLastBlueprint: Pegar último plano
|
||||||
lockBeltDirection: Enable belt planner
|
lockBeltDirection: Activar planificador de cintas transportadoras
|
||||||
plannerSwitchSide: Flip planner side
|
plannerSwitchSide: Invertir giro del planificador
|
||||||
cutSelection: Cut
|
cutSelection: Cortar
|
||||||
copySelection: Copy
|
copySelection: Copiar
|
||||||
clearSelection: Clear Selection
|
clearSelection: Limpiar Selección
|
||||||
pipette: Pipette
|
pipette: Pipette
|
||||||
|
|
||||||
# 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
|
||||||
@ -393,6 +394,20 @@ ingame:
|
|||||||
¡Conecta el extractor con una <strong>cinta transportadora</strong> a tu edificio central!<br><br> Pista: <strong>Pulsa y arrastra</strong> la cinta transportadora con el ratón!
|
¡Conecta el extractor con una <strong>cinta transportadora</strong> a tu edificio central!<br><br> Pista: <strong>Pulsa y arrastra</strong> la cinta transportadora con el ratón!
|
||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
¡Esto <strong>NO</strong> es un "juego de esperar"! Construye más extractores y cintas transportadoras para completar el objetivo más rápido.<br><br> Pista: Mantén pulsado <strong>SHIFT</strong> para colocar varios extractores y usa <strong>R</strong> para rotarlos.
|
¡Esto <strong>NO</strong> es un "juego de esperar"! Construye más extractores y cintas transportadoras para completar el objetivo más rápido.<br><br> Pista: Mantén pulsado <strong>SHIFT</strong> para colocar varios extractores y usa <strong>R</strong> para rotarlos.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Rojo
|
||||||
|
green: Verde
|
||||||
|
blue: Azul
|
||||||
|
yellow: Amarillo
|
||||||
|
purple: Morado
|
||||||
|
cyan: Cian
|
||||||
|
white: Blanco
|
||||||
|
uncolored: Sin color
|
||||||
|
shapeViewer:
|
||||||
|
title: Capas
|
||||||
|
empty: Vacio
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -439,7 +454,7 @@ buildings:
|
|||||||
description: Multifuncional - Distribuye equitativamente todas las entradas a todas las salidas.
|
description: Multifuncional - Distribuye equitativamente todas las entradas a todas las salidas.
|
||||||
|
|
||||||
compact:
|
compact:
|
||||||
name: fusionador (compacto)
|
name: Fusionador (compacto)
|
||||||
description: Junta dos cintas transportadoras en una.
|
description: Junta dos cintas transportadoras en una.
|
||||||
|
|
||||||
compact-inverse:
|
compact-inverse:
|
||||||
@ -605,7 +620,7 @@ settings:
|
|||||||
huge: Enorme
|
huge: Enorme
|
||||||
|
|
||||||
scrollWheelSensitivity:
|
scrollWheelSensitivity:
|
||||||
title: Sensitividad del zoom
|
title: Sensibilidad del zoom
|
||||||
description: >-
|
description: >-
|
||||||
Cambia como de sensible es el zoom (Tanto la ruedo del ratón como el trackpad)
|
Cambia como de sensible es el zoom (Tanto la ruedo del ratón como el trackpad)
|
||||||
sensitivity:
|
sensitivity:
|
||||||
@ -674,33 +689,33 @@ settings:
|
|||||||
Si está activado, colocar túneles automáticamente removerá las cintas transportadoras innecesarias. Esto también permite arrastrar con el ratón y los túneles excedentes serán removidos.
|
Si está activado, colocar túneles automáticamente removerá las cintas transportadoras innecesarias. Esto también permite arrastrar con el ratón y los túneles excedentes serán removidos.
|
||||||
|
|
||||||
vignette:
|
vignette:
|
||||||
title: Vignette
|
title: Viñeta
|
||||||
description: >-
|
description: >-
|
||||||
Enables the vignette which darkens the screen corners and makes text easier
|
Activa el efecto viñeta que oscurece loas esquinas de la pantalla y hace el texto mas fácil de leer.
|
||||||
to read.
|
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Intervalo de Autoguardado
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Controla cada cuanto tiempo se guarda el juego automaticamente. Aquí tambien puedes deshabilitarlo por completo.
|
||||||
entirely here.
|
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 Minuto
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 Minutos
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 Minutos
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 Minutos
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 Minutos
|
||||||
disabled: Disabled
|
disabled: Deshabilitado
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Información Compacta de Edificios
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Acorta la caja de información mostrando solo sus ratios. Si no, se mostrara una descripción y una imagen.
|
||||||
description and image is shown.
|
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Deshabilitar las advertencias de Cortar/Eliminar
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Deshabilita los dialogos de advertencia que se muestran cuando se cortan/eliminan mas de 100 elementos.
|
||||||
entities.
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Modo para Daltonicos
|
||||||
|
description: Activa varias herramientas que permiten jugar si eres daltonico.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Atajos de Teclado
|
title: Atajos de Teclado
|
||||||
|
@ -157,6 +157,7 @@ mainMenu:
|
|||||||
continue: Continuer
|
continue: Continuer
|
||||||
newGame: Nouvelle partie
|
newGame: Nouvelle partie
|
||||||
madeBy: Créé par <author-link>
|
madeBy: Créé par <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -212,7 +213,7 @@ 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 dans leur état par défaut respectifs !
|
||||||
|
|
||||||
featureRestriction:
|
featureRestriction:
|
||||||
title: Version démo
|
title: Version démo
|
||||||
@ -236,7 +237,7 @@ dialogs:
|
|||||||
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 cela ?
|
Vous allez supprimer pas mal de bâtiments (<count> pour être exact) ! Êtes vous certains de vouloir faire cela ?
|
||||||
|
|
||||||
massCutConfirm:
|
massCutConfirm:
|
||||||
title: Confirmer la coupure
|
title: Confirmer la coupure
|
||||||
@ -247,7 +248,7 @@ dialogs:
|
|||||||
blueprintsNotUnlocked:
|
blueprintsNotUnlocked:
|
||||||
title: Pas encore débloqué
|
title: Pas encore débloqué
|
||||||
desc: >-
|
desc: >-
|
||||||
Les patrons n'ont pas encore étés débloqués ! Terminez encore quelques niveaux pour les débloquer.
|
Les patrons n'ont pas encore étés débloqués ! Terminez encore quelques niveaux pour y avoir accès.
|
||||||
|
|
||||||
keybindingsIntroduction:
|
keybindingsIntroduction:
|
||||||
title: Raccourcis utiles
|
title: Raccourcis utiles
|
||||||
@ -288,9 +289,9 @@ ingame:
|
|||||||
pasteLastBlueprint: Copier le dernier patron
|
pasteLastBlueprint: Copier le dernier patron
|
||||||
lockBeltDirection: Utiliser le plannificateur de convoyeurs
|
lockBeltDirection: Utiliser le plannificateur de convoyeurs
|
||||||
plannerSwitchSide: Échanger la direction du plannificateur
|
plannerSwitchSide: Échanger la direction du plannificateur
|
||||||
cutSelection: Cut
|
cutSelection: Couper
|
||||||
copySelection: Copy
|
copySelection: Copier
|
||||||
clearSelection: Clear Selection
|
clearSelection: Effacer la sélection
|
||||||
pipette: Pipette
|
pipette: Pipette
|
||||||
|
|
||||||
# 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
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
Ceci n'est <strong>PAS</strong> un jeu incrémental et inactif ! Construisez plus d'extracteurs et de convoyeurs pour atteindre plus vite votre votre but.<br><br>Astuce: Gardez <strong>SHIFT</strong> enfoncé pour placer plusieurs extracteurs, et utilisez <strong>R</strong> pour les faire pivoter.
|
Ceci n'est <strong>PAS</strong> un jeu incrémental et inactif ! Construisez plus d'extracteurs et de convoyeurs pour atteindre plus vite votre votre but.<br><br>Astuce: Gardez <strong>SHIFT</strong> enfoncé pour placer plusieurs extracteurs, et utilisez <strong>R</strong> pour les faire pivoter.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Rouge
|
||||||
|
green: Vert
|
||||||
|
blue: Bleu
|
||||||
|
yellow: Jaune
|
||||||
|
purple: Violet
|
||||||
|
cyan: Cyan
|
||||||
|
white: Blanc
|
||||||
|
uncolored: Non coloré
|
||||||
|
shapeViewer:
|
||||||
|
title: Calques
|
||||||
|
empty: Vide
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -691,27 +705,28 @@ settings:
|
|||||||
Permet l'affichage de l'effet de vignette qui assombrit les coins de l'écran afin de rendre le texte plus facile à lire.
|
Permet l'affichage de l'effet de vignette qui assombrit les coins de l'écran afin de rendre le texte plus facile à lire.
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Fréquence des sauvegardes automatiques
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Contrôle avec quelle fréquence le jeu sera sauvegardé automatiquement. Vous pouvez aussi entièrement désactiver cette fonctionnalité ici.
|
||||||
entirely here.
|
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 Minute
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 Minutes
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 Minutes
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 Minutes
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 Minutes
|
||||||
disabled: Disabled
|
disabled: Désactivé
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Informations réduites sur les bâtiments
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Raccourcit les panneaux d'information sur les bâtiments en n'affichant que les ratios. Dans le cas contraire, une description et une imagine sont présentés.
|
||||||
description and image is shown.
|
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Désactive les avertissement pour Couper/Effacer
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Désactive la boîte de dialogue qui s'affiche lorsque vous vous apprêtez à couper/effacer plus de 100 entités.
|
||||||
entities.
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Mode Daltonien
|
||||||
|
description: Active divers outils qui permettent de jouer à ce jeu si vous êtes daltonien.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Contrôles
|
title: Contrôles
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
|
|
||||||
showInfo: View
|
showInfo: View
|
||||||
contestOver: This contest has ended - Join the discord to get noticed about new contests!
|
contestOver: This contest has ended - Join the discord to get noticed about new contests!
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -395,6 +396,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -710,6 +724,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -709,6 +723,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -710,6 +724,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: 続きから
|
continue: 続きから
|
||||||
newGame: 新規ゲーム
|
newGame: 新規ゲーム
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -286,10 +287,10 @@ ingame:
|
|||||||
pasteLastBlueprint: ブループリントの内容を設置
|
pasteLastBlueprint: ブループリントの内容を設置
|
||||||
lockBeltDirection: ベルトプランナーを有効化
|
lockBeltDirection: ベルトプランナーを有効化
|
||||||
plannerSwitchSide: プランナーが通る側を反転
|
plannerSwitchSide: プランナーが通る側を反転
|
||||||
cutSelection: Cut
|
cutSelection: カット
|
||||||
copySelection: Copy
|
copySelection: コピー
|
||||||
clearSelection: Clear Selection
|
clearSelection: 選択範囲をクリア
|
||||||
pipette: Pipette
|
pipette: ピペット
|
||||||
|
|
||||||
# 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)
|
||||||
@ -396,6 +397,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
このゲームは放置系のゲームでは<strong>ありません</strong>! もっと早く要件を満たせるように、追加の抽出機とベルトを設置しましょう。<br><br>Tip: <strong>SHIFT</strong> キーを押し続けると抽出機を連続配置できます。<strong>R</strong>キーで設置方向を回転できます。
|
このゲームは放置系のゲームでは<strong>ありません</strong>! もっと早く要件を満たせるように、追加の抽出機とベルトを設置しましょう。<br><br>Tip: <strong>SHIFT</strong> キーを押し続けると抽出機を連続配置できます。<strong>R</strong>キーで設置方向を回転できます。
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: 赤
|
||||||
|
green: 緑
|
||||||
|
blue: 青
|
||||||
|
yellow: 黄
|
||||||
|
purple: 紫
|
||||||
|
cyan: シアン
|
||||||
|
white: 白
|
||||||
|
uncolored: 無色
|
||||||
|
shapeViewer:
|
||||||
|
title: レイヤー
|
||||||
|
empty: 空
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -686,27 +700,28 @@ settings:
|
|||||||
画面の隅を暗くして文字を読みやすくするビネットを有効化します。
|
画面の隅を暗くして文字を読みやすくするビネットを有効化します。
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: オートセーブ間隔
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
ゲームが自動的にセーブされる頻度を設定します。無効化することも可能です。
|
||||||
entirely here.
|
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 分
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 分
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 分
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 分
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 分
|
||||||
disabled: Disabled
|
disabled: 無効
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: コンパクトな建造物情報
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
レートのみを表示することで、建造物の情報ボックスを短くします。選択しない場合は、説明文と画像も表示されます。
|
||||||
description and image is shown.
|
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: カット/削除の警告を無効化
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
100個以上のエンティティをカット/削除する際に表示される警告ダイアログを無効にします。
|
||||||
entities.
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: 色覚モード
|
||||||
|
description: 色覚異常を持っていてもゲームがプレイできるようにするための各種ツールを有効化します。
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: キー設定
|
title: キー設定
|
||||||
@ -773,7 +788,7 @@ keybindings:
|
|||||||
mapMoveFaster: より速く移動
|
mapMoveFaster: より速く移動
|
||||||
lockBeltDirection: ベルトプランナーを有効化
|
lockBeltDirection: ベルトプランナーを有効化
|
||||||
switchDirectionLockSide: "プランナー: 通る側を切り替え"
|
switchDirectionLockSide: "プランナー: 通る側を切り替え"
|
||||||
pipette: Pipette
|
pipette: ピペット
|
||||||
|
|
||||||
about:
|
about:
|
||||||
title: このゲームについて
|
title: このゲームについて
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
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>로 회전 시키세요.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -711,6 +725,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: 키바인딩
|
title: 키바인딩
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -709,6 +723,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Verder
|
continue: Verder
|
||||||
newGame: Nieuw Spel
|
newGame: Nieuw Spel
|
||||||
madeBy: Gemaakt door <author-link>
|
madeBy: Gemaakt door <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -283,12 +284,12 @@ ingame:
|
|||||||
createMarker: Plaats markering
|
createMarker: Plaats markering
|
||||||
delete: Vernietig
|
delete: Vernietig
|
||||||
pasteLastBlueprint: Plak de laatst gekopiëerde blauwdruk
|
pasteLastBlueprint: Plak de laatst gekopiëerde blauwdruk
|
||||||
lockBeltDirection: Enable belt planner
|
lockBeltDirection: Maak gebruik van de lopende band planner
|
||||||
plannerSwitchSide: Flip planner side
|
plannerSwitchSide: Draai de richting van de planner
|
||||||
cutSelection: Cut
|
cutSelection: Knip
|
||||||
copySelection: Copy
|
copySelection: Kopieer
|
||||||
clearSelection: Clear Selection
|
clearSelection: Cancel selectie
|
||||||
pipette: Pipette
|
pipette: Pipet
|
||||||
|
|
||||||
# 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)
|
||||||
@ -395,6 +396,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
Dit is <strong>GEEN</strong> nietsdoen-spel! bouw meer ontginners en lopende banden om het doel sneller te behalen.<br><br>Tip: Houd <strong>SHIFT</strong> ingedrukt om meerdere ontginners te plaatsen en gebruik <strong>R</strong> om ze te draaien.
|
Dit is <strong>GEEN</strong> nietsdoen-spel! bouw meer ontginners en lopende banden om het doel sneller te behalen.<br><br>Tip: Houd <strong>SHIFT</strong> ingedrukt om meerdere ontginners te plaatsen en gebruik <strong>R</strong> om ze te draaien.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Rood
|
||||||
|
green: Groen
|
||||||
|
blue: Blauw
|
||||||
|
yellow: Geel
|
||||||
|
purple: Paars
|
||||||
|
cyan: Cyaan
|
||||||
|
white: Wit
|
||||||
|
uncolored: Geen kleur
|
||||||
|
shapeViewer:
|
||||||
|
title: Lagen
|
||||||
|
empty: Leeg
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -519,7 +533,7 @@ storyRewards:
|
|||||||
|
|
||||||
reward_mixer:
|
reward_mixer:
|
||||||
title: Kleuren mengen
|
title: Kleuren mengen
|
||||||
desc: The <strong>mixer</strong> has been unlocked - Combine two colors using <strong>additive blending</strong> with this building!
|
desc: De <strong>menger</strong> is ontgrendeld - gebruik dit gebouw om twee kleuren te mengen via <strong>'additive blending'</strong>!
|
||||||
|
|
||||||
reward_stacker:
|
reward_stacker:
|
||||||
title: Stapelaar
|
title: Stapelaar
|
||||||
@ -687,25 +701,29 @@ settings:
|
|||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Autosave Interval
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Bepaalt hoe vaak het spel automatisch opslaat. Je kan het hier ook volledig
|
||||||
entirely here.
|
mee uitschakelen.
|
||||||
|
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 Minuut
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 Minuten
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 Minuten
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 Minuten
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 Minuten
|
||||||
disabled: Disabled
|
disabled: Uitgeschakeld
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Combacte gebouwinformatie
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Informatie weergeven bij gebouwen wordt beperkt tot alleen hun 'ratios'. Anders
|
||||||
description and image is shown.
|
zie je een beschrijving en een afbeelding.
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Schakel knip/delete waarschuwingen uit.
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Schakelt de waarschuwing uit die wordt weergegeven wanneer je meer dan 100 dingen probeert te
|
||||||
entities.
|
knippen/deleten.
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Kleurenblindmodus
|
||||||
|
description: Schakelt verschillende hulpmiddelen in zodat je het spel alsnog kunt spelen wanneer je kleurenblind bent.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Sneltoetsen
|
title: Sneltoetsen
|
||||||
@ -771,8 +789,8 @@ keybindings:
|
|||||||
exportScreenshot: Exporteer volledige basis als afbeelding
|
exportScreenshot: Exporteer volledige basis als afbeelding
|
||||||
mapMoveFaster: Beweeg sneller
|
mapMoveFaster: Beweeg sneller
|
||||||
lockBeltDirection: Schakel lopende band-planner in
|
lockBeltDirection: Schakel lopende band-planner in
|
||||||
switchDirectionLockSide: "Planner: Wissel van kant"
|
switchDirectionLockSide: "Planner: Wissel van richting"
|
||||||
pipette: Pipette
|
pipette: Pipet
|
||||||
|
|
||||||
about:
|
about:
|
||||||
title: Over dit spel
|
title: Over dit spel
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Fortsett
|
continue: Fortsett
|
||||||
newGame: Nytt Spill
|
newGame: Nytt Spill
|
||||||
madeBy: Laget av <author-link>
|
madeBy: Laget av <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -285,9 +286,9 @@ ingame:
|
|||||||
pasteLastBlueprint: Lim inn forrige blåkopi
|
pasteLastBlueprint: Lim inn forrige blåkopi
|
||||||
lockBeltDirection: Aktiver båndplanleggeren
|
lockBeltDirection: Aktiver båndplanleggeren
|
||||||
plannerSwitchSide: Flipp båndplanleggeren
|
plannerSwitchSide: Flipp båndplanleggeren
|
||||||
cutSelection: Cut
|
cutSelection: Klipp Ut
|
||||||
copySelection: Copy
|
copySelection: Kopier
|
||||||
clearSelection: Clear Selection
|
clearSelection: Fjern Valgte
|
||||||
pipette: Pipette
|
pipette: Pipette
|
||||||
|
|
||||||
# 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
|
||||||
@ -395,6 +396,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
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.
|
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.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Rød
|
||||||
|
green: Grønn
|
||||||
|
blue: Blå
|
||||||
|
yellow: Gul
|
||||||
|
purple: Lilla
|
||||||
|
cyan: Cyan
|
||||||
|
white: Hvit
|
||||||
|
uncolored: Ingen farge
|
||||||
|
shapeViewer:
|
||||||
|
title: Lag
|
||||||
|
empty: Tom
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -572,7 +586,7 @@ storyRewards:
|
|||||||
|
|
||||||
reward_blueprints:
|
reward_blueprints:
|
||||||
title: Blåkopier
|
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).
|
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 gratis</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
|
# Special reward, which is shown when there is no reward actually
|
||||||
no_reward:
|
no_reward:
|
||||||
@ -687,27 +701,31 @@ settings:
|
|||||||
å lese.
|
å lese.
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Autolagringsintervall
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Jsuter hvor ofte spillet lagres automatisk. Du kan også
|
||||||
entirely here.
|
deaktivere det fullstendig.
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 Minutt
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 Minutter
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 Minutter
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 Minutter
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 Minutter
|
||||||
disabled: Disabled
|
disabled: Deaktivert
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Kompakt Bygningsinformasjon
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Forkorter informasjonsboksen for bygninger ved å bare vise dems forhold. Ellers
|
||||||
description and image is shown.
|
vises en beskrivelse og bilde er vist.
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Deaktiverer Kutt/Slette Advarsler
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Deaktiverer advarselsdialogen som kommer frem når du kutter/sletter mer enn 100
|
||||||
entities.
|
bygninger.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Fargeblind Modus
|
||||||
|
description: Aktiverer forskjellige verktøy som lar deg spille spillet om du er fargeblind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Hurtigtaster
|
title: Hurtigtaster
|
||||||
@ -773,7 +791,7 @@ keybindings:
|
|||||||
placeMultiple: Forbli i plasseringsmodus
|
placeMultiple: Forbli i plasseringsmodus
|
||||||
placeInverse: Inverter automatisk transportbånd orientering
|
placeInverse: Inverter automatisk transportbånd orientering
|
||||||
lockBeltDirection: Enable belt planner
|
lockBeltDirection: Enable belt planner
|
||||||
switchDirectionLockSide: "Planner: Switch side"
|
switchDirectionLockSide: "Planlegger: Bytt side"
|
||||||
pipette: Pipette
|
pipette: Pipette
|
||||||
|
|
||||||
about:
|
about:
|
||||||
|
@ -159,7 +159,8 @@ mainMenu:
|
|||||||
|
|
||||||
showInfo: Wyświetl
|
showInfo: Wyświetl
|
||||||
contestOver: Ten konkurs już się skończył - Dołącz do serwera Discord by nie przegapić kolejnych!
|
contestOver: Ten konkurs już się skończył - Dołącz do serwera Discord by nie przegapić kolejnych!
|
||||||
madeBy: Made by <author-link>
|
madeBy: Gra wykonana przez <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -292,10 +293,21 @@ ingame:
|
|||||||
pasteLastBlueprint: Wklej ostatnio skopiowany obszar
|
pasteLastBlueprint: Wklej ostatnio skopiowany obszar
|
||||||
lockBeltDirection: Tryb planowania taśmociągu
|
lockBeltDirection: Tryb planowania taśmociągu
|
||||||
plannerSwitchSide: Obróć planowany taśmociąg
|
plannerSwitchSide: Obróć planowany taśmociąg
|
||||||
cutSelection: Cut
|
cutSelection: Wytnij
|
||||||
copySelection: Copy
|
copySelection: Skopiuj
|
||||||
clearSelection: Clear Selection
|
clearSelection: Wyczyść zaznaczenie
|
||||||
pipette: Pipette
|
pipette: Wybierz obiekt z mapy
|
||||||
|
|
||||||
|
# Names of the colors, used for the color blind mode
|
||||||
|
colors:
|
||||||
|
red: Czerwony
|
||||||
|
green: Zielony
|
||||||
|
blue: Niebieski
|
||||||
|
yellow: Żółty
|
||||||
|
purple: Fioletowy
|
||||||
|
cyan: Cyjanowy
|
||||||
|
white: Biały
|
||||||
|
uncolored: Brak koloru
|
||||||
|
|
||||||
# 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)
|
||||||
@ -394,6 +406,11 @@ ingame:
|
|||||||
description: Kliknij znacznik lewym przyciskiem myszy, by się do niego przenieść lub prawym, by go usunąć.<br><br>Naciśnij <keybinding>, by stworzyć marker na środku widoku lub <strong>prawy przycisk myszy</strong>, by stworzyć na wskazanej lokacji.
|
description: Kliknij znacznik lewym przyciskiem myszy, by się do niego przenieść lub prawym, by go usunąć.<br><br>Naciśnij <keybinding>, by stworzyć marker na środku widoku lub <strong>prawy przycisk myszy</strong>, by stworzyć na wskazanej lokacji.
|
||||||
creationSuccessNotification: Utworzono znacznik.
|
creationSuccessNotification: Utworzono znacznik.
|
||||||
|
|
||||||
|
# Shape viewer
|
||||||
|
shapeViewer:
|
||||||
|
title: Poziomy
|
||||||
|
empty: Puste
|
||||||
|
|
||||||
# Interactive tutorial
|
# Interactive tutorial
|
||||||
interactiveTutorial:
|
interactiveTutorial:
|
||||||
title: Tutorial
|
title: Tutorial
|
||||||
@ -698,37 +715,43 @@ settings:
|
|||||||
Oferuje porady i tutoriale podczas gry. Dodatkowo chowa pewne elementy interfejsu, by ułatwić poznanie gry.
|
Oferuje porady i tutoriale podczas gry. Dodatkowo chowa pewne elementy interfejsu, by ułatwić poznanie gry.
|
||||||
|
|
||||||
enableTunnelSmartplace:
|
enableTunnelSmartplace:
|
||||||
title: Smart Tunnels
|
title: Inteligentne taśmociągi i tunele
|
||||||
description: >-
|
description: >-
|
||||||
Gdy włączone, umieszczenie tunelu automatycznie usuwa zbędny taśmociąg.
|
Gdy włączone, umieszczenie tunelu automatycznie usuwa zbędny taśmociąg.
|
||||||
Pozwala również budować tunele przez przeciąganie i nadmiarowe tunele zostają usunięte.
|
Pozwala również budować tunele przez przeciąganie, gdyż niepotrzebne tunele zostają usunięte.
|
||||||
vignette:
|
vignette:
|
||||||
title: Vignette
|
title: Winieta
|
||||||
description: >-
|
description: >-
|
||||||
Włącza winietowanie, które przyciemnia rogi ekranu i poprawia czytelność tekstu.
|
Włącza winietę - przyciemnia rogi ekranu, poprawiając czytelność tekstu.
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Częstość auto-zapisu
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Zmienia, jak często gra automatycznie zapisuje fabrykę.
|
||||||
entirely here.
|
Można tą funkcję również całkowicie wyłączyć.
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: Co minutę
|
||||||
two_minutes: 2 Minutes
|
two_minutes: Co 2 minuty
|
||||||
five_minutes: 5 Minutes
|
five_minutes: Co 5 minut
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: Co 10 minut
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: Co 20 minut
|
||||||
disabled: Disabled
|
disabled: Wyłączone
|
||||||
|
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Wyłącz opis budynków
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Ukrywa opis i zdjęcie budynków w obszarze informacyjnym, pokazując jedynie
|
||||||
description and image is shown.
|
ich tytuł i specyfikacje techniczne.
|
||||||
|
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Wyłącz ostrzeżenia usuwania/wycinania
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Wyłącza ostrzeżenia wyświetlające się przy usuwaniu lub wycinaniu więcej niż
|
||||||
entities.
|
100 budynków.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Klawiszologia
|
title: Klawiszologia
|
||||||
@ -793,8 +816,9 @@ keybindings:
|
|||||||
massSelectCut: Wytnij obszar
|
massSelectCut: Wytnij obszar
|
||||||
exportScreenshot: Wyeksportuj całą fabrykę jako zrzut ekranu
|
exportScreenshot: Wyeksportuj całą fabrykę jako zrzut ekranu
|
||||||
lockBeltDirection: Tryb planowania taśmociągu
|
lockBeltDirection: Tryb planowania taśmociągu
|
||||||
switchDirectionLockSide: "Planowanie taśmociągu: Zmień stronę"
|
switchDirectionLockSide: >-
|
||||||
pipette: Pipette
|
Planowanie taśmociągu: Zmień stronę
|
||||||
|
pipette: Wybieranie obiektów z mapy
|
||||||
|
|
||||||
about:
|
about:
|
||||||
title: O Grze
|
title: O Grze
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -396,6 +397,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
Este <strong> NÃO </strong> é um jogo inativo! Construa mais extratores e esteiras para concluir o objetivo mais rapidamente.<br><br>Dica, segure <strong> SHIFT </strong> para colocar vários extratores e use <strong> R </strong> para girá-los.
|
Este <strong> NÃO </strong> é um jogo inativo! Construa mais extratores e esteiras para concluir o objetivo mais rapidamente.<br><br>Dica, segure <strong> SHIFT </strong> para colocar vários extratores e use <strong> R </strong> para girá-los.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -710,6 +724,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Controles
|
title: Controles
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continuar
|
continue: Continuar
|
||||||
newGame: Novo Jogo
|
newGame: Novo Jogo
|
||||||
madeBy: Criado por <author-link>
|
madeBy: Criado por <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -396,6 +397,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -708,6 +722,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Atalhos
|
title: Atalhos
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -709,6 +723,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -157,6 +157,7 @@ mainMenu:
|
|||||||
continue: Продолжить
|
continue: Продолжить
|
||||||
newGame: Новая Игра
|
newGame: Новая Игра
|
||||||
madeBy: Создал <author-link>
|
madeBy: Создал <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -289,10 +290,10 @@ ingame:
|
|||||||
pasteLastBlueprint: Вставить последний чертеж
|
pasteLastBlueprint: Вставить последний чертеж
|
||||||
lockBeltDirection: Включить конвейерный планировщик
|
lockBeltDirection: Включить конвейерный планировщик
|
||||||
plannerSwitchSide: Поменять местами стороны планировщика
|
plannerSwitchSide: Поменять местами стороны планировщика
|
||||||
cutSelection: Cut
|
cutSelection: Вырезать
|
||||||
copySelection: Copy
|
copySelection: Копировать
|
||||||
clearSelection: Clear Selection
|
clearSelection: Отменить
|
||||||
pipette: Pipette
|
pipette: Пипетка
|
||||||
|
|
||||||
# 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)
|
||||||
@ -399,6 +400,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
Это <strong>НЕ</strong> idle-игра! Постройте больше экстракторов и конвейеров, чтобы достичь цели быстрее.<br><br>Подсказка: Удерживайте <strong>SHIFT</strong> чтобы разместить несколько экстракторов, а <strong>R</strong> чтобы вращать их.
|
Это <strong>НЕ</strong> idle-игра! Постройте больше экстракторов и конвейеров, чтобы достичь цели быстрее.<br><br>Подсказка: Удерживайте <strong>SHIFT</strong> чтобы разместить несколько экстракторов, а <strong>R</strong> чтобы вращать их.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Красный
|
||||||
|
green: Зеленый
|
||||||
|
blue: Синий
|
||||||
|
yellow: Желтый
|
||||||
|
purple: Фиолетовый
|
||||||
|
cyan: Бирюзовый
|
||||||
|
white: Белый
|
||||||
|
uncolored: Бесцветный
|
||||||
|
shapeViewer:
|
||||||
|
title: Слои
|
||||||
|
empty: Пусто
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -688,27 +702,31 @@ settings:
|
|||||||
Включает виньетирование, которое затемняет углы экрана и облегчает чтение текста.
|
Включает виньетирование, которое затемняет углы экрана и облегчает чтение текста.
|
||||||
|
|
||||||
autosaveInterval:
|
autosaveInterval:
|
||||||
title: Autosave Interval
|
title: Интервал авто-сохранения
|
||||||
description: >-
|
description: >-
|
||||||
Controls how often the game saves automatically. You can also disable it
|
Управляет тем, как часто игра автоматически сохраняется.
|
||||||
entirely here.
|
А также здесь можно полностью отключить авто-сохранение.
|
||||||
intervals:
|
intervals:
|
||||||
one_minute: 1 Minute
|
one_minute: 1 Минута
|
||||||
two_minutes: 2 Minutes
|
two_minutes: 2 Минуты
|
||||||
five_minutes: 5 Minutes
|
five_minutes: 5 Минут
|
||||||
ten_minutes: 10 Minutes
|
ten_minutes: 10 Минут
|
||||||
twenty_minutes: 20 Minutes
|
twenty_minutes: 20 Минут
|
||||||
disabled: Disabled
|
disabled: Отключено
|
||||||
compactBuildingInfo:
|
compactBuildingInfo:
|
||||||
title: Compact Building Infos
|
title: Компактная Информация о Зданиях
|
||||||
description: >-
|
description: >-
|
||||||
Shortens info boxes for buildings by only showing their ratios. Otherwise a
|
Сокращает отображаемую информацию о зданиях, показывая только их множители.
|
||||||
description and image is shown.
|
Иначе информация отображается с описанием и изображением.
|
||||||
disableCutDeleteWarnings:
|
disableCutDeleteWarnings:
|
||||||
title: Disable Cut/Delete Warnings
|
title: Отключить Предупреждение о Вырезании\Удалении
|
||||||
description: >-
|
description: >-
|
||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Отключает диалоговые окна с предупреждениями, появляющиеся при
|
||||||
entities.
|
вырезании/удалении более 100 объектов.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Режим Дальтоника
|
||||||
|
description: Включает различные инструменты, которые позволяют играть в игру дальтоникам.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Настройки управления
|
title: Настройки управления
|
||||||
@ -775,7 +793,7 @@ keybindings:
|
|||||||
mapMoveFaster: Ускорение передвижения
|
mapMoveFaster: Ускорение передвижения
|
||||||
lockBeltDirection: Включает конвейерный планировщик
|
lockBeltDirection: Включает конвейерный планировщик
|
||||||
switchDirectionLockSide: "Планировщик: Переключение сторон"
|
switchDirectionLockSide: "Планировщик: Переключение сторон"
|
||||||
pipette: Pipette
|
pipette: Пипетка
|
||||||
|
|
||||||
about:
|
about:
|
||||||
title: Об игре
|
title: Об игре
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -710,6 +724,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
@ -187,6 +187,7 @@ mainMenu:
|
|||||||
continue: 继续游戏
|
continue: 继续游戏
|
||||||
newGame: 新游戏
|
newGame: 新游戏
|
||||||
madeBy: 作者:<author-link>
|
madeBy: 作者:<author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -283,12 +284,6 @@ dialogs:
|
|||||||
<code class='keybinding'>CTRL</code> + 拖动:选择区域以复制或删除。<br>
|
<code class='keybinding'>CTRL</code> + 拖动:选择区域以复制或删除。<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>
|
||||||
# desc: >-
|
|
||||||
# This game has a lot of keybindings which make it easier to build big factories.
|
|
||||||
# Here are a few, but be sure to <strong>check out the keybindings</strong>!<br><br>
|
|
||||||
# <code class='keybinding'>CTRL</code> + Drag: Select area to copy / delete.<br>
|
|
||||||
# <code class='keybinding'>SHIFT</code>: Hold to place multiple of one building.<br>
|
|
||||||
# <code class='keybinding'>ALT</code>: Invert orientation of placed belts.<br>
|
|
||||||
|
|
||||||
createMarker:
|
createMarker:
|
||||||
title: 创建地图标记
|
title: 创建地图标记
|
||||||
@ -436,6 +431,19 @@ ingame:
|
|||||||
这<strong>不是</strong>一个挂机游戏!建造更多的开采机和传送带来更快地完成目标。<br><br>
|
这<strong>不是</strong>一个挂机游戏!建造更多的开采机和传送带来更快地完成目标。<br><br>
|
||||||
提示:按住<strong>SHIFT</strong>键来放置多个开采机,用<strong>R</strong>键旋转它们。
|
提示:按住<strong>SHIFT</strong>键来放置多个开采机,用<strong>R</strong>键旋转它们。
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -754,6 +762,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: 按键设置
|
title: 按键设置
|
||||||
hint: >-
|
hint: >-
|
||||||
@ -812,10 +824,8 @@ keybindings:
|
|||||||
rotateInverseModifier: >-
|
rotateInverseModifier: >-
|
||||||
修饰键: 改为逆时针旋转
|
修饰键: 改为逆时针旋转
|
||||||
cycleBuildingVariants: 选择建筑变体
|
cycleBuildingVariants: 选择建筑变体
|
||||||
# cycleBuildingVariants: Cycle Variants
|
|
||||||
confirmMassDelete: 确认批量删除
|
confirmMassDelete: 确认批量删除
|
||||||
cycleBuildings: 选择建筑
|
cycleBuildings: 选择建筑
|
||||||
# cycleBuildings: Cycle Buildings
|
|
||||||
massSelectStart: 开始批量选择
|
massSelectStart: 开始批量选择
|
||||||
massSelectSelectMultiple: 选择多个区域
|
massSelectSelectMultiple: 选择多个区域
|
||||||
massSelectCopy: 复制
|
massSelectCopy: 复制
|
||||||
@ -850,6 +860,7 @@ about:
|
|||||||
|
|
||||||
最后,我想感谢我最好的朋友<a
|
最后,我想感谢我最好的朋友<a
|
||||||
href="https://github.com/niklas-dahl" target="_blank">Niklas</a>——如果没有与他的异星工厂(factorio)的游戏体验,shapez.io将不会存在。
|
href="https://github.com/niklas-dahl" target="_blank">Niklas</a>——如果没有与他的异星工厂(factorio)的游戏体验,shapez.io将不会存在。
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
title: 版本日志
|
title: 版本日志
|
||||||
|
|
||||||
|
@ -156,6 +156,7 @@ mainMenu:
|
|||||||
continue: Continue
|
continue: Continue
|
||||||
newGame: New Game
|
newGame: New Game
|
||||||
madeBy: Made by <author-link>
|
madeBy: Made by <author-link>
|
||||||
|
subreddit: Reddit
|
||||||
|
|
||||||
dialogs:
|
dialogs:
|
||||||
buttons:
|
buttons:
|
||||||
@ -397,6 +398,19 @@ ingame:
|
|||||||
1_3_expand: >-
|
1_3_expand: >-
|
||||||
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
|
||||||
|
|
||||||
|
colors:
|
||||||
|
red: Red
|
||||||
|
green: Green
|
||||||
|
blue: Blue
|
||||||
|
yellow: Yellow
|
||||||
|
purple: Purple
|
||||||
|
cyan: Cyan
|
||||||
|
white: White
|
||||||
|
uncolored: No color
|
||||||
|
shapeViewer:
|
||||||
|
title: Layers
|
||||||
|
empty: Empty
|
||||||
|
|
||||||
# All shop upgrades
|
# All shop upgrades
|
||||||
shopUpgrades:
|
shopUpgrades:
|
||||||
belt:
|
belt:
|
||||||
@ -709,6 +723,10 @@ settings:
|
|||||||
Disable the warning dialogs brought up when cutting/deleting more than 100
|
Disable the warning dialogs brought up when cutting/deleting more than 100
|
||||||
entities.
|
entities.
|
||||||
|
|
||||||
|
enableColorBlindHelper:
|
||||||
|
title: Color Blind Mode
|
||||||
|
description: Enables various tools which allow to play the game if you are color blind.
|
||||||
|
|
||||||
keybindings:
|
keybindings:
|
||||||
title: Keybindings
|
title: Keybindings
|
||||||
hint: >-
|
hint: >-
|
||||||
|
Loading…
Reference in New Issue
Block a user