Compare commits
436 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ce9b54e10 | ||
|
|
39db62e3a5 | ||
|
|
ec59b04363 | ||
|
|
565064cd64 | ||
|
|
9d2e356996 | ||
|
|
ae5685ae46 | ||
|
|
2b46b0e38e | ||
|
|
e200dcee33 | ||
|
|
fe63b46b67 | ||
|
|
698e83a28a | ||
|
|
150d0bf513 | ||
|
|
5af7cd1d55 | ||
|
|
b952ee0725 | ||
|
|
670f085f78 | ||
|
|
811c22b84e | ||
|
|
6edcbb9120 | ||
|
|
566052cabf | ||
|
|
730d30ef98 | ||
|
|
e04c592f9e | ||
|
|
77b89d45d6 | ||
|
|
df4a0dd5e4 | ||
|
|
8c941c7165 | ||
|
|
b01d56aae8 | ||
|
|
497ae740aa | ||
|
|
7543d92473 | ||
|
|
60d83751e8 | ||
|
|
e0f59404c1 | ||
|
|
d3c559fa00 | ||
|
|
179bf4d525 | ||
|
|
16ddb91466 | ||
|
|
e1bf8bdab1 | ||
|
|
d43b40fab5 | ||
|
|
c0c0ffa682 | ||
|
|
98f8a1732e | ||
|
|
d6d6dc29dc | ||
|
|
6080a7e4bc | ||
|
|
c339a0ecdf | ||
|
|
684f3075cb | ||
|
|
954e26fc14 | ||
|
|
c449302d28 | ||
|
|
d8629100db | ||
|
|
4858e602ed | ||
|
|
de5979f4ee | ||
|
|
36ec88e2e2 | ||
|
|
a5978b6163 | ||
|
|
1d6f769e3d | ||
|
|
2b22b7e7e4 | ||
|
|
9016c12d16 | ||
|
|
8ac0949ddf | ||
|
|
fad94cb56e | ||
|
|
ee429ef4f2 | ||
|
|
c7ea4e85c9 | ||
|
|
c0f14185a8 | ||
|
|
ec4c2c7adb | ||
|
|
03342dc2f5 | ||
|
|
475794640d | ||
|
|
514d4817c8 | ||
|
|
f89af1b26a | ||
|
|
5b21873f3c | ||
|
|
b806a22a0a | ||
|
|
41e4187193 | ||
|
|
ba7cf94a6b | ||
|
|
01de18b663 | ||
|
|
9aeccfd9f3 | ||
|
|
41a5c4daf3 | ||
|
|
07e58dc14b | ||
|
|
ede002878e | ||
|
|
9906821912 | ||
|
|
adb12dcbb8 | ||
|
|
7a1f467f27 | ||
|
|
5e568eac0d | ||
|
|
0f6cd5242c | ||
|
|
e91151213a | ||
|
|
8b4c266d49 | ||
|
|
1c816be5ce | ||
|
|
f504dd2b5a | ||
|
|
26881fbdb9 | ||
|
|
8d921199fb | ||
|
|
4ffe233321 | ||
|
|
e076de9dcd | ||
|
|
5ce66b0dbb | ||
|
|
6971a76c8e | ||
|
|
d47f86cc21 | ||
|
|
487607e1d6 | ||
|
|
3cefc085bd | ||
|
|
3d8e5bd36a | ||
|
|
e9ed0512f7 | ||
|
|
0cf39bf5c3 | ||
|
|
95a1474b9a | ||
|
|
53aedcee2c | ||
|
|
9758a05002 | ||
|
|
18bb7ba936 | ||
|
|
9f3dcdf727 | ||
|
|
7d2354a653 | ||
|
|
ab21b88001 | ||
|
|
a560978dcf | ||
|
|
047f479a2f | ||
|
|
d78d3daaf9 | ||
|
|
976d0f54b3 | ||
|
|
1c1db3990f | ||
|
|
bcc8f65ac8 | ||
|
|
e043f4bb66 | ||
|
|
9d3dda035c | ||
|
|
6e16aab794 | ||
|
|
c1cf3183ac | ||
|
|
252d0f6aa1 | ||
|
|
1f5a6e1bf8 | ||
|
|
58e3143e2a | ||
|
|
9033ebcfd7 | ||
|
|
1f5e773c77 | ||
|
|
7b1a0a42d4 | ||
|
|
3d78175e50 | ||
|
|
9d2133814c | ||
|
|
6ce013a1eb | ||
|
|
19675068ea | ||
|
|
5db8520b74 | ||
|
|
c3e41140e0 | ||
|
|
bce379d40d | ||
|
|
8fde8695d0 | ||
|
|
8c1c54d49a | ||
|
|
01e3912827 | ||
|
|
e22f853a31 | ||
|
|
1ae20553ff | ||
|
|
c68eaade94 | ||
|
|
1461b5b357 | ||
|
|
f0dd3b3a39 | ||
|
|
61d724ee2b | ||
|
|
d60c2c5b63 | ||
|
|
7e696cadaf | ||
|
|
0f23bf9d08 | ||
|
|
202d79817a | ||
|
|
736737f151 | ||
|
|
a29ce3b0b9 | ||
|
|
fed4842222 | ||
|
|
fbed11e927 | ||
|
|
45ce4013d0 | ||
|
|
6f3d585118 | ||
|
|
962ce7bfa6 | ||
|
|
b6ee157adb | ||
|
|
a45a632726 | ||
|
|
675e15ddca | ||
|
|
f6b9830f82 | ||
|
|
324f6351ea | ||
|
|
aeb6e6498e | ||
|
|
f4ee67c08b | ||
|
|
a2382965f6 | ||
|
|
09dbee1401 | ||
|
|
b74696b312 | ||
|
|
da849085ec | ||
|
|
83a3195e34 | ||
|
|
8148f2a0f7 | ||
|
|
2a03ef0c43 | ||
|
|
0078a8cb8e | ||
|
|
177cea5c5d | ||
|
|
74dc31b10a | ||
|
|
9e07b95223 | ||
|
|
2554433f8d | ||
|
|
e06d61dcc9 | ||
|
|
1aca302518 | ||
|
|
a7d37b7e6c | ||
|
|
9f29898713 | ||
|
|
803719b216 | ||
|
|
6588fc6581 | ||
|
|
9f4d44f0f3 | ||
|
|
07fb5aa88e | ||
|
|
b3e1436074 | ||
|
|
98a083abdd | ||
|
|
86df70a839 | ||
|
|
fd202421b1 | ||
|
|
268f3cc3c2 | ||
|
|
477ebc91bf | ||
|
|
fd6abaff62 | ||
|
|
ccca26d98f | ||
|
|
5ca01bf234 | ||
|
|
d3747f0d4c | ||
|
|
d81b36d897 | ||
|
|
07598e3f2f | ||
|
|
dd5e3b2aba | ||
|
|
06abc43aea | ||
|
|
8b80a42886 | ||
|
|
93fd6c5bd6 | ||
|
|
96aa3ccee0 | ||
|
|
f3a5798a7f | ||
|
|
2b49c300f8 | ||
|
|
50a6071cfc | ||
|
|
044dac6a9e | ||
|
|
7f3f27a91e | ||
|
|
ef24e5ecad | ||
|
|
6f146c6cad | ||
|
|
db5bd7eea8 | ||
|
|
2e315e5516 | ||
|
|
7dd7ccf698 | ||
|
|
a087df0771 | ||
|
|
ba982a73b8 | ||
|
|
c85847567d | ||
|
|
c08aa1f3d6 | ||
|
|
1e3bfba31a | ||
|
|
5788c27aaa | ||
|
|
5c30f4bc9c | ||
|
|
5a9957c578 | ||
|
|
42687fb47e | ||
|
|
9cb55b9745 | ||
|
|
e66ecb6c90 | ||
|
|
04d3c40baa | ||
|
|
0e7c403bd8 | ||
|
|
77e0e46a17 | ||
|
|
b6915a0483 | ||
|
|
1db444b070 | ||
|
|
ae981053b2 | ||
|
|
23f90fcaf4 | ||
|
|
d5b50c038c | ||
|
|
765d9703f5 | ||
|
|
b21c25bccf | ||
|
|
ceae04aa5b | ||
|
|
3abcdf2063 | ||
|
|
f784e893dd | ||
|
|
7e993c15dc | ||
|
|
5411ae777e | ||
|
|
e733b4be1b | ||
|
|
57f9aeee86 | ||
|
|
eabbd2fa32 | ||
|
|
d9aa9b6278 | ||
|
|
1e1b84a201 | ||
|
|
e6753ace87 | ||
|
|
932c32ad8f | ||
|
|
a5fbc07561 | ||
|
|
2631c4f7af | ||
|
|
01304bf734 | ||
|
|
c2c5836752 | ||
|
|
6a15328854 | ||
|
|
dabdd094f9 | ||
|
|
0dd8267e21 | ||
|
|
7b69310f1b | ||
|
|
6f48e7a5ed | ||
|
|
98bca1740c | ||
|
|
51842a61a8 | ||
|
|
78fefdacca | ||
|
|
a1fb3e27ab | ||
|
|
686b892ea9 | ||
|
|
ffcfaf1610 | ||
|
|
80c46bb5a2 | ||
|
|
cb29bee8f5 | ||
|
|
2d42704062 | ||
|
|
2136ae03a5 | ||
|
|
fbe58bec04 | ||
|
|
5f81a0c7f3 | ||
|
|
38804462a9 | ||
|
|
f28eb4027c | ||
|
|
c324dce034 | ||
|
|
0efced4fd8 | ||
|
|
6d6fac00d7 | ||
|
|
d0803ef45c | ||
|
|
0122fb4028 | ||
|
|
2c61fcdfa6 | ||
|
|
18b6c37a89 | ||
|
|
31c294e972 | ||
|
|
b8e3b70fcc | ||
|
|
289e4f29ef | ||
|
|
1482695f6e | ||
|
|
5e51b43367 | ||
|
|
10376ee59d | ||
|
|
f162d815fe | ||
|
|
7f2a529c08 | ||
|
|
968f3ace33 | ||
|
|
2a8fca33ea | ||
|
|
8be948300e | ||
|
|
f2c9c2e5fb | ||
|
|
6ec0ff9442 | ||
|
|
0693480633 | ||
|
|
33842aca14 | ||
|
|
3ddb9d166f | ||
|
|
d17b37cb39 | ||
|
|
c82473ba47 | ||
|
|
b99a0ff618 | ||
|
|
c7000b29a6 | ||
|
|
fac217a836 | ||
|
|
c4c19a204f | ||
|
|
496677725e | ||
|
|
a6523c670f | ||
|
|
879f90ebf4 | ||
|
|
9ff53dd87d | ||
|
|
4487d01a38 | ||
|
|
a7fc1a42ce | ||
|
|
16eef2dd92 | ||
|
|
f7bdd4efe1 | ||
|
|
785afaa281 | ||
|
|
29025a45e8 | ||
|
|
2c15ae178d | ||
|
|
0c430527b8 | ||
|
|
7871b5bdaa | ||
|
|
124480f96b | ||
|
|
32e207d047 | ||
|
|
0ac7059812 | ||
|
|
c9c1c57c9d | ||
|
|
01ef9c4fea | ||
|
|
4dde48d18e | ||
|
|
381d19634f | ||
|
|
240f924faf | ||
|
|
bf27c14946 | ||
|
|
d1d7b08619 | ||
|
|
1c10fec242 | ||
|
|
c9bbae1c5c | ||
|
|
d1b4f8c5b7 | ||
|
|
ac593eb8cf | ||
|
|
7b3a27f1e2 | ||
|
|
ff14f819c4 | ||
|
|
8b5ce2ab33 | ||
|
|
b1f2faa988 | ||
|
|
87a3f23f51 | ||
|
|
71d423cac3 | ||
|
|
b083f5d8f9 | ||
|
|
6c9917fc2a | ||
|
|
f6b814588e | ||
|
|
9be72c81eb | ||
|
|
4b91d07f11 | ||
|
|
565bc6d4c2 | ||
|
|
657686cab3 | ||
|
|
b074c047f4 | ||
|
|
a33fd5fbad | ||
|
|
597b58253c | ||
|
|
8ac844c839 | ||
|
|
dd3665be16 | ||
|
|
a01a888e47 | ||
|
|
6348652b0d | ||
|
|
96ff599c2d | ||
|
|
b5d2566ffd | ||
|
|
a6dcd725cb | ||
|
|
3d1b6e9fc5 | ||
|
|
b603481cf6 | ||
|
|
7dbce6037a | ||
|
|
b7f6ed4a74 | ||
|
|
67bea7ab55 | ||
|
|
346e90f62d | ||
|
|
8d72ca84cc | ||
|
|
8e63016f45 | ||
|
|
ab952d7002 | ||
|
|
b24671c2b9 | ||
|
|
12a93fea24 | ||
|
|
609bf18be8 | ||
|
|
5de22ae9ae | ||
|
|
9f4110a3d5 | ||
|
|
fe5457ef30 | ||
|
|
b747bb217a | ||
|
|
adcc922b80 | ||
|
|
9400984d22 | ||
|
|
93bef0d16a | ||
|
|
db97d48f9d | ||
|
|
63d5520c0b | ||
|
|
4cddf6ab78 | ||
|
|
4307b99dd4 | ||
|
|
aedbc4bf1d | ||
|
|
60151e4bca | ||
|
|
32340efa52 | ||
|
|
5182dea970 | ||
|
|
b4a050a986 | ||
|
|
e3be5e4173 | ||
|
|
772343ae5f | ||
|
|
5063d94b1c | ||
|
|
4b9db2538c | ||
|
|
326f225777 | ||
|
|
8c4b628e06 | ||
|
|
15cadaba1d | ||
|
|
cd658db38a | ||
|
|
b145a34400 | ||
|
|
08c2861457 | ||
|
|
b39c366a06 | ||
|
|
bb73e87a2a | ||
|
|
43a46784f2 | ||
|
|
9baf5f8cea | ||
|
|
b78d492eb6 | ||
|
|
ed04322aef | ||
|
|
c995cba022 | ||
|
|
4ab7014e01 | ||
|
|
e9ec24dd80 | ||
|
|
fc818bc0bb | ||
|
|
450d95566a | ||
|
|
0e3410c23e | ||
|
|
94ea502b23 | ||
|
|
e6a78bf230 | ||
|
|
03da91edfb | ||
|
|
66106ce48d | ||
|
|
c057589899 | ||
|
|
f071ddf9da | ||
|
|
f49d3757df | ||
|
|
4fb1ee1201 | ||
|
|
2a35f5c879 | ||
|
|
15affd4701 | ||
|
|
ae0d41dfc3 | ||
|
|
8e2c05458c | ||
|
|
bee5473e98 | ||
|
|
fbbffb2467 | ||
|
|
de42011d3e | ||
|
|
7e80d90fb5 | ||
|
|
c0398e9ad9 | ||
|
|
8406248a1b | ||
|
|
eb2ad92bf7 | ||
|
|
60a834d742 | ||
|
|
0e0902df05 | ||
|
|
c3d879aec9 | ||
|
|
d1920621fa | ||
|
|
8dad252e3c | ||
|
|
5ea22cf1fa | ||
|
|
3d06cfca31 | ||
|
|
0921b733c2 | ||
|
|
cc597a8e95 | ||
|
|
c5ecc2bc15 | ||
|
|
18842dd47d | ||
|
|
ee1e464d4d | ||
|
|
682c7bc08f | ||
|
|
7618b0254f | ||
|
|
c2c4efebb2 | ||
|
|
9b7c8d26b5 | ||
|
|
f91f074463 | ||
|
|
40c7347c8e | ||
|
|
5e18514b7a | ||
|
|
6d15066dff | ||
|
|
90340da42e | ||
|
|
bdb91a6737 | ||
|
|
ff321ac908 | ||
|
|
3206a7cab4 | ||
|
|
fb78adb49a | ||
|
|
f47c1a5e43 | ||
|
|
1b1add315a | ||
|
|
edde55fedf | ||
|
|
dc81071c58 | ||
|
|
f6093f483c | ||
|
|
fde88e437b | ||
|
|
eb5ce3e05d | ||
|
|
8ba04a98be | ||
|
|
62634c0fe0 | ||
|
|
6161fb10af | ||
|
|
4b4fc8e9ee | ||
|
|
f35f1550e8 | ||
|
|
e422f64b8b | ||
|
|
ed143414ca | ||
|
|
f9c48f5edf |
2
.github/Mindustry-CodeStyle-IJ.xml
vendored
@@ -12,7 +12,7 @@
|
|||||||
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||||
<value>
|
<value>
|
||||||
<package name="java.awt" withSubpackages="false" static="false" />
|
<package name="java.awt" withSubpackages="false" static="false" />
|
||||||
<package name="io.anuke.mindustry" withSubpackages="false" static="true" />
|
<package name="mindustry" withSubpackages="false" static="true" />
|
||||||
<package name="javax.swing" withSubpackages="false" static="false" />
|
<package name="javax.swing" withSubpackages="false" static="false" />
|
||||||
</value>
|
</value>
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
13
.gitignore
vendored
@@ -32,8 +32,8 @@ steam_appid.txt
|
|||||||
/core/assets/gifexport/
|
/core/assets/gifexport/
|
||||||
/core/assets/version.properties
|
/core/assets/version.properties
|
||||||
/core/assets/locales
|
/core/assets/locales
|
||||||
/ios/src/io/anuke/mindustry/gen/
|
/ios/src/mindustry/gen/
|
||||||
/core/src/io/anuke/mindustry/gen/
|
/core/src/mindustry/gen/
|
||||||
ios/robovm.properties
|
ios/robovm.properties
|
||||||
packr-out/
|
packr-out/
|
||||||
config/
|
config/
|
||||||
@@ -55,15 +55,6 @@ crash-report-*
|
|||||||
## Robovm
|
## Robovm
|
||||||
/ios/robovm-build/
|
/ios/robovm-build/
|
||||||
|
|
||||||
## GWT
|
|
||||||
/html/war/
|
|
||||||
/html/gwt-unitCache/
|
|
||||||
.apt_generated/
|
|
||||||
.gwt/
|
|
||||||
gwt-unitCache/
|
|
||||||
www-test/
|
|
||||||
.gwt-tmp/
|
|
||||||
|
|
||||||
## Android Studio and Intellij and Android in general
|
## Android Studio and Intellij and Android in general
|
||||||
/android/libs/armeabi/
|
/android/libs/armeabi/
|
||||||
/android/libs/armeabi-v7a/
|
/android/libs/armeabi-v7a/
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ Import [this style file](.github/Mindustry-CodeStyle-IJ.xml) into IntelliJ to ge
|
|||||||
|
|
||||||
#### Do not use incompatible Java features (java.util.function, java.awt).
|
#### Do not use incompatible Java features (java.util.function, java.awt).
|
||||||
Android [does not support](https://developer.android.com/studio/write/java8-support#supported_features) many of Java 8's features, such as the packages `java.util.function`, `java.util.stream` or `forEach` in collections. Do not use these in your code.
|
Android [does not support](https://developer.android.com/studio/write/java8-support#supported_features) many of Java 8's features, such as the packages `java.util.function`, `java.util.stream` or `forEach` in collections. Do not use these in your code.
|
||||||
If you need to use functional interfaces, use the ones in `io.anuke.arc.func`, which are more or less the same with different naming schemes.
|
If you need to use functional interfaces, use the ones in `arc.func`, which are more or less the same with different naming schemes.
|
||||||
|
|
||||||
The same applies to any class *outside* of the standard `java.[n]io` / `java.net` / `java.util` packages: Most of them are not supported.
|
The same applies to any class *outside* of the standard `java.[n]io` / `java.net` / `java.util` packages: Most of them are not supported.
|
||||||
`java.awt` is one of these packages: do not use it, ever. It is not supported on any platform, even desktop - the entire package is removed during JRE minimization.
|
`java.awt` is one of these packages: do not use it, ever. It is not supported on any platform, even desktop - the entire package is removed during JRE minimization.
|
||||||
@@ -39,10 +39,17 @@ In general, if you are using IntelliJ, you should be warned about platform incom
|
|||||||
|
|
||||||
|
|
||||||
#### Use `arc` collections and classes when possible.
|
#### Use `arc` collections and classes when possible.
|
||||||
Instead of using `java.util.List`, `java.util.HashMap`, and other standard Java collections, use `Array`, `ObjectMap` and other equivalents from `io.anuke.arc.collection`.
|
Instead of using `java.util.List`, `java.util.HashMap`, and other standard Java collections, use `Array`, `ObjectMap` and other equivalents from `arc.struct`.
|
||||||
Why? Because that's what the rest of the codebase uses, and the standard collections have a lot of cruft and usability issues associated with them.
|
Why? Because that's what the rest of the codebase uses, and the standard collections have a lot of cruft and usability issues associated with them.
|
||||||
In the rare case that concurrency is required, you may use the standard Java classes for that purpose (e.g. `CopyOnWriteArrayList`).
|
In the rare case that concurrency is required, you may use the standard Java classes for that purpose (e.g. `CopyOnWriteArrayList`).
|
||||||
|
|
||||||
|
What you'll usually need to change:
|
||||||
|
- `HashSet` -> `ObjectSet`
|
||||||
|
- `HashMap` -> `ObjectMap`
|
||||||
|
- `List` / `ArrayList` / `Stack` -> `Array`
|
||||||
|
- `java.util.Queue` -> `arc.struct.Queue`
|
||||||
|
- *Many others*
|
||||||
|
|
||||||
|
|
||||||
#### Avoid boxed types (Integer, Boolean)
|
#### Avoid boxed types (Integer, Boolean)
|
||||||
Never create variables or collections with boxed types `Array<Integer>` or `ObjectMap<Integer, ...>`. Use the collections specialized for this task, e.g. `IntArray` and `IntMap`.
|
Never create variables or collections with boxed types `Array<Integer>` or `ObjectMap<Integer, ...>`. Use the collections specialized for this task, e.g. `IntArray` and `IntMap`.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||

|

|
||||||
|
|
||||||
[](https://travis-ci.org/Anuken/Mindustry)
|
[](https://travis-ci.org/Anuken/Mindustry)
|
||||||
[](https://discord.gg/mindustry)
|
[](https://discord.gg/mindustry)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
android:theme="@style/GdxTheme" android:fullBackupContent="@xml/backup_rules">
|
android:theme="@style/GdxTheme" android:fullBackupContent="@xml/backup_rules">
|
||||||
<meta-data android:name="android.max_aspect" android:value="2.1"/>
|
<meta-data android:name="android.max_aspect" android:value="2.1"/>
|
||||||
<activity
|
<activity
|
||||||
android:name="io.anuke.mindustry.AndroidLauncher"
|
android:name="mindustry.android.AndroidLauncher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:screenOrientation="user"
|
android:screenOrientation="user"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout">
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout">
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ dependencies{
|
|||||||
implementation project(":core")
|
implementation project(":core")
|
||||||
|
|
||||||
implementation arcModule("backends:backend-android")
|
implementation arcModule("backends:backend-android")
|
||||||
|
implementation 'com.jakewharton.android.repackaged:dalvik-dx:9.0.0_r3'
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
|
||||||
@@ -160,5 +161,5 @@ task run(type: Exec){
|
|||||||
}
|
}
|
||||||
|
|
||||||
def adb = path + "/platform-tools/adb"
|
def adb = path + "/platform-tools/adb"
|
||||||
commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/io.anuke.mindustry.AndroidLauncher'
|
commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/mindustry.android.AndroidLauncher'
|
||||||
}
|
}
|
||||||
@@ -22,8 +22,8 @@
|
|||||||
-verbose
|
-verbose
|
||||||
-verbose
|
-verbose
|
||||||
-ignorewarnings
|
-ignorewarnings
|
||||||
-keep class io.anuke.mindustry.game.Rules
|
-keep class mindustry.game.Rules
|
||||||
-keep class io.anuke.mindustry.desktop.DesktopLauncher
|
-keep class mindustry.desktop.DesktopLauncher
|
||||||
-keepclasseswithmembers public class * {
|
-keepclasseswithmembers public class * {
|
||||||
public static void main(java.lang.String[]);
|
public static void main(java.lang.String[]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.anuke.mindustry;
|
package mindustry.android;
|
||||||
|
|
||||||
import android.*;
|
import android.*;
|
||||||
import android.app.*;
|
import android.app.*;
|
||||||
@@ -9,23 +9,24 @@ import android.os.Build.*;
|
|||||||
import android.os.*;
|
import android.os.*;
|
||||||
import android.provider.Settings.*;
|
import android.provider.Settings.*;
|
||||||
import android.telephony.*;
|
import android.telephony.*;
|
||||||
import io.anuke.arc.*;
|
import arc.*;
|
||||||
import io.anuke.arc.backends.android.surfaceview.*;
|
import arc.backend.android.*;
|
||||||
import io.anuke.arc.files.*;
|
import arc.files.*;
|
||||||
import io.anuke.arc.func.Cons;
|
import arc.func.*;
|
||||||
import io.anuke.arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import io.anuke.arc.util.*;
|
import arc.util.*;
|
||||||
import io.anuke.arc.util.serialization.*;
|
import arc.util.serialization.*;
|
||||||
import io.anuke.mindustry.game.Saves.*;
|
import mindustry.*;
|
||||||
import io.anuke.mindustry.io.*;
|
import mindustry.game.Saves.*;
|
||||||
import io.anuke.mindustry.mod.*;
|
import mindustry.io.*;
|
||||||
import io.anuke.mindustry.ui.dialogs.*;
|
import mindustry.ui.dialogs.*;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.lang.System;
|
import java.lang.System;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
|
||||||
public class AndroidLauncher extends AndroidApplication{
|
public class AndroidLauncher extends AndroidApplication{
|
||||||
public static final int PERMISSION_REQUEST_CODE = 1;
|
public static final int PERMISSION_REQUEST_CODE = 1;
|
||||||
@@ -66,11 +67,16 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void shareFile(FileHandle file){
|
public org.mozilla.javascript.Context getScriptContext(){
|
||||||
|
return AndroidRhinoContext.enter(getContext().getCacheDir());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showFileChooser(boolean open, String extension, Cons<FileHandle> cons){
|
public void shareFile(Fi file){
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showFileChooser(boolean open, String extension, Cons<Fi> cons){
|
||||||
if(VERSION.SDK_INT >= VERSION_CODES.Q){
|
if(VERSION.SDK_INT >= VERSION_CODES.Q){
|
||||||
Intent intent = new Intent(open ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_CREATE_DOCUMENT);
|
Intent intent = new Intent(open ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_CREATE_DOCUMENT);
|
||||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||||
@@ -81,7 +87,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
|
|
||||||
if(uri.getPath().contains("(invalid)")) return;
|
if(uri.getPath().contains("(invalid)")) return;
|
||||||
|
|
||||||
Core.app.post(() -> Core.app.post(() -> cons.get(new FileHandle(uri.getPath()){
|
Core.app.post(() -> Core.app.post(() -> cons.get(new Fi(uri.getPath()){
|
||||||
@Override
|
@Override
|
||||||
public InputStream read(){
|
public InputStream read(){
|
||||||
try{
|
try{
|
||||||
@@ -139,7 +145,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
useImmersiveMode = true;
|
useImmersiveMode = true;
|
||||||
depth = 0;
|
depth = 0;
|
||||||
hideStatusBar = true;
|
hideStatusBar = true;
|
||||||
errorHandler = ModCrashHandler::handle;
|
//errorHandler = ModCrashHandler::handle;
|
||||||
}});
|
}});
|
||||||
checkFiles(getIntent());
|
checkFiles(getIntent());
|
||||||
}
|
}
|
||||||
@@ -181,7 +187,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
Core.app.post(() -> Core.app.post(() -> {
|
Core.app.post(() -> Core.app.post(() -> {
|
||||||
if(save){ //open save
|
if(save){ //open save
|
||||||
System.out.println("Opening save.");
|
System.out.println("Opening save.");
|
||||||
FileHandle file = Core.files.local("temp-save." + saveExtension);
|
Fi file = Core.files.local("temp-save." + saveExtension);
|
||||||
file.write(inStream, false);
|
file.write(inStream, false);
|
||||||
if(SaveIO.isSaveValid(file)){
|
if(SaveIO.isSaveValid(file)){
|
||||||
try{
|
try{
|
||||||
@@ -194,7 +200,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
ui.showErrorMessage("$save.import.invalid");
|
ui.showErrorMessage("$save.import.invalid");
|
||||||
}
|
}
|
||||||
}else if(map){ //open map
|
}else if(map){ //open map
|
||||||
FileHandle file = Core.files.local("temp-map." + mapExtension);
|
Fi file = Core.files.local("temp-map." + mapExtension);
|
||||||
file.write(inStream, false);
|
file.write(inStream, false);
|
||||||
Core.app.post(() -> {
|
Core.app.post(() -> {
|
||||||
System.out.println("Opening map.");
|
System.out.println("Opening map.");
|
||||||
227
android/src/mindustry/android/AndroidRhinoContext.java
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
package mindustry.android;
|
||||||
|
|
||||||
|
import android.annotation.*;
|
||||||
|
import android.os.*;
|
||||||
|
import android.os.Build.*;
|
||||||
|
import arc.*;
|
||||||
|
import arc.backend.android.*;
|
||||||
|
import com.android.dex.*;
|
||||||
|
import com.android.dx.cf.direct.*;
|
||||||
|
import com.android.dx.command.dexer.*;
|
||||||
|
import com.android.dx.dex.*;
|
||||||
|
import com.android.dx.dex.cf.*;
|
||||||
|
import com.android.dx.dex.file.DexFile;
|
||||||
|
import com.android.dx.merge.*;
|
||||||
|
import dalvik.system.*;
|
||||||
|
import org.mozilla.javascript.*;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.nio.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helps to prepare a Rhino Context for usage on android.
|
||||||
|
* @author F43nd1r
|
||||||
|
* @since 11.01.2016
|
||||||
|
*/
|
||||||
|
public class AndroidRhinoContext{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* call this instead of {@link Context#enter()}
|
||||||
|
* @return a context prepared for android
|
||||||
|
*/
|
||||||
|
public static Context enter(File cacheDirectory){
|
||||||
|
if(!SecurityController.hasGlobal())
|
||||||
|
SecurityController.initGlobal(new SecurityController(){
|
||||||
|
@Override
|
||||||
|
public GeneratedClassLoader createClassLoader(ClassLoader classLoader, Object o){
|
||||||
|
return Context.getCurrentContext().createClassLoader(classLoader);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getDynamicSecurityDomain(Object o){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
AndroidContextFactory factory;
|
||||||
|
if(!ContextFactory.hasExplicitGlobal()){
|
||||||
|
factory = new AndroidContextFactory(cacheDirectory);
|
||||||
|
ContextFactory.getGlobalSetter().setContextFactoryGlobal(factory);
|
||||||
|
}else if(!(ContextFactory.getGlobal() instanceof AndroidContextFactory)){
|
||||||
|
throw new IllegalStateException("Cannot initialize factory for Android Rhino: There is already another factory");
|
||||||
|
}else{
|
||||||
|
factory = (AndroidContextFactory)ContextFactory.getGlobal();
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory.enterContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensures that the classLoader used is correct
|
||||||
|
* @author F43nd1r
|
||||||
|
* @since 11.01.2016
|
||||||
|
*/
|
||||||
|
public static class AndroidContextFactory extends ContextFactory{
|
||||||
|
private final File cacheDirectory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new factory. It will cache generated code in the given directory
|
||||||
|
* @param cacheDirectory the cache directory
|
||||||
|
*/
|
||||||
|
public AndroidContextFactory(File cacheDirectory){
|
||||||
|
this.cacheDirectory = cacheDirectory;
|
||||||
|
initApplicationClassLoader(createClassLoader(AndroidContextFactory.class.getClassLoader()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a ClassLoader which is able to deal with bytecode
|
||||||
|
* @param parent the parent of the create classloader
|
||||||
|
* @return a new ClassLoader
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public BaseAndroidClassLoader createClassLoader(ClassLoader parent){
|
||||||
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
|
||||||
|
return new InMemoryAndroidClassLoader(parent);
|
||||||
|
}
|
||||||
|
return new FileAndroidClassLoader(parent, cacheDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onContextReleased(final Context cx){
|
||||||
|
super.onContextReleased(cx);
|
||||||
|
((BaseAndroidClassLoader)cx.getApplicationClassLoader()).reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compiles java bytecode to dex bytecode and loads it
|
||||||
|
* @author F43nd1r
|
||||||
|
* @since 11.01.2016
|
||||||
|
*/
|
||||||
|
abstract static class BaseAndroidClassLoader extends ClassLoader implements GeneratedClassLoader{
|
||||||
|
|
||||||
|
public BaseAndroidClassLoader(ClassLoader parent){
|
||||||
|
super(parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<?> defineClass(String name, byte[] data){
|
||||||
|
try{
|
||||||
|
DexOptions dexOptions = new DexOptions();
|
||||||
|
DexFile dexFile = new DexFile(dexOptions);
|
||||||
|
DirectClassFile classFile = new DirectClassFile(data, name.replace('.', '/') + ".class", true);
|
||||||
|
classFile.setAttributeFactory(StdAttributeFactory.THE_ONE);
|
||||||
|
classFile.getMagic();
|
||||||
|
DxContext context = new DxContext();
|
||||||
|
dexFile.add(CfTranslator.translate(context, classFile, null, new CfOptions(), dexOptions, dexFile));
|
||||||
|
Dex dex = new Dex(dexFile.toDex(null, false));
|
||||||
|
Dex oldDex = getLastDex();
|
||||||
|
if(oldDex != null){
|
||||||
|
dex = new DexMerger(new Dex[]{dex, oldDex}, CollisionPolicy.KEEP_FIRST, context).merge();
|
||||||
|
}
|
||||||
|
return loadClass(dex, name);
|
||||||
|
}catch(IOException | ClassNotFoundException e){
|
||||||
|
throw new FatalLoadingException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract Class<?> loadClass(Dex dex, String name) throws ClassNotFoundException;
|
||||||
|
|
||||||
|
protected abstract Dex getLastDex();
|
||||||
|
|
||||||
|
protected abstract void reset();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void linkClass(Class<?> aClass){}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<?> loadClass(String name, boolean resolve)
|
||||||
|
throws ClassNotFoundException{
|
||||||
|
Class<?> loadedClass = findLoadedClass(name);
|
||||||
|
if(loadedClass == null){
|
||||||
|
Dex dex = getLastDex();
|
||||||
|
if(dex != null){
|
||||||
|
loadedClass = loadClass(dex, name);
|
||||||
|
}
|
||||||
|
if(loadedClass == null){
|
||||||
|
loadedClass = getParent().loadClass(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return loadedClass;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Might be thrown in any Rhino method that loads bytecode if the loading failed. */
|
||||||
|
public static class FatalLoadingException extends RuntimeException{
|
||||||
|
FatalLoadingException(Throwable t){
|
||||||
|
super("Failed to define class", t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class FileAndroidClassLoader extends BaseAndroidClassLoader{
|
||||||
|
private static int instanceCounter = 0;
|
||||||
|
private final File dexFile;
|
||||||
|
|
||||||
|
public FileAndroidClassLoader(ClassLoader parent, File cacheDir){
|
||||||
|
super(parent);
|
||||||
|
int id = instanceCounter++;
|
||||||
|
dexFile = new File(cacheDir, id + ".dex");
|
||||||
|
cacheDir.mkdirs();
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<?> loadClass(Dex dex, String name) throws ClassNotFoundException{
|
||||||
|
try{
|
||||||
|
dex.writeTo(dexFile);
|
||||||
|
}catch(IOException e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
android.content.Context context = ((AndroidApplication) Core.app).getContext();
|
||||||
|
return new DexClassLoader(dexFile.getPath(), VERSION.SDK_INT >= 21 ? context.getCodeCacheDir().getPath() : context.getCacheDir().getAbsolutePath(), null, getParent()).loadClass(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Dex getLastDex(){
|
||||||
|
if(dexFile.exists()){
|
||||||
|
try{
|
||||||
|
return new Dex(dexFile);
|
||||||
|
}catch(IOException e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void reset(){
|
||||||
|
dexFile.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TargetApi(Build.VERSION_CODES.O)
|
||||||
|
static class InMemoryAndroidClassLoader extends BaseAndroidClassLoader{
|
||||||
|
private Dex last;
|
||||||
|
|
||||||
|
public InMemoryAndroidClassLoader(ClassLoader parent){
|
||||||
|
super(parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<?> loadClass(Dex dex, String name) throws ClassNotFoundException{
|
||||||
|
last = dex;
|
||||||
|
return new InMemoryDexClassLoader(ByteBuffer.wrap(dex.getBytes()), getParent()).loadClass(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Dex getLastDex(){
|
||||||
|
return last;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void reset(){
|
||||||
|
last = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.*;
|
import com.squareup.javapoet.*;
|
||||||
import io.anuke.annotations.Annotations.*;
|
import mindustry.annotations.Annotations.*;
|
||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.*;
|
import javax.lang.model.*;
|
||||||
@@ -12,10 +12,10 @@ import java.nio.file.*;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
@SupportedAnnotationTypes("io.anuke.annotations.Annotations.StyleDefaults")
|
@SupportedAnnotationTypes("mindustry.annotations.Annotations.StyleDefaults")
|
||||||
public class AssetsAnnotationProcessor extends AbstractProcessor{
|
public class AssetsAnnotationProcessor extends AbstractProcessor{
|
||||||
/** Name of the base package to put all the generated classes. */
|
/** Name of the base package to put all the generated classes. */
|
||||||
private static final String packageName = "io.anuke.mindustry.gen";
|
private static final String packageName = "mindustry.gen";
|
||||||
private String path;
|
private String path;
|
||||||
private int round;
|
private int round;
|
||||||
|
|
||||||
@@ -39,8 +39,8 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{
|
|||||||
.getParent().getParent().getParent().getParent().getParent().getParent().toString();
|
.getParent().getParent().getParent().getParent().getParent().getParent().toString();
|
||||||
path = path.replace("%20", " ");
|
path = path.replace("%20", " ");
|
||||||
|
|
||||||
processSounds("Sounds", path + "/assets/sounds", "io.anuke.arc.audio.Sound");
|
processSounds("Sounds", path + "/assets/sounds", "arc.audio.Sound");
|
||||||
processSounds("Musics", path + "/assets/music", "io.anuke.arc.audio.Music");
|
processSounds("Musics", path + "/assets/music", "arc.audio.Music");
|
||||||
processUI(roundEnv.getElementsAnnotatedWith(StyleDefaults.class));
|
processUI(roundEnv.getElementsAnnotatedWith(StyleDefaults.class));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -75,7 +75,7 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{
|
|||||||
suffix = suffix.isEmpty() ? "" : "-" + suffix;
|
suffix = suffix.isEmpty() ? "" : "-" + suffix;
|
||||||
|
|
||||||
String sfilen = filename + suffix;
|
String sfilen = filename + suffix;
|
||||||
String dtype = p.getFileName().toString().endsWith(".9.png") ? "io.anuke.arc.scene.style.NinePatchDrawable" : "io.anuke.arc.scene.style.TextureRegionDrawable";
|
String dtype = p.getFileName().toString().endsWith(".9.png") ? "arc.scene.style.NinePatchDrawable" : "arc.scene.style.TextureRegionDrawable";
|
||||||
|
|
||||||
String varname = capitalize(sfilen);
|
String varname = capitalize(sfilen);
|
||||||
TypeSpec.Builder ttype = type;
|
TypeSpec.Builder ttype = type;
|
||||||
@@ -91,7 +91,7 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{
|
|||||||
if(SourceVersion.isKeyword(varname)) varname += "s";
|
if(SourceVersion.isKeyword(varname)) varname += "s";
|
||||||
|
|
||||||
ttype.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC);
|
ttype.addField(ClassName.bestGuess(dtype), varname, Modifier.STATIC, Modifier.PUBLIC);
|
||||||
tload.addStatement(varname + " = ("+dtype+")io.anuke.arc.Core.atlas.drawable($S)", sfilen);
|
tload.addStatement(varname + " = ("+dtype+")arc.Core.atlas.drawable($S)", sfilen);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -100,7 +100,7 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{
|
|||||||
t.getEnclosedElements().stream().filter(e -> e.getKind() == ElementKind.FIELD).forEach(field -> {
|
t.getEnclosedElements().stream().filter(e -> e.getKind() == ElementKind.FIELD).forEach(field -> {
|
||||||
String fname = field.getSimpleName().toString();
|
String fname = field.getSimpleName().toString();
|
||||||
if(fname.startsWith("default")){
|
if(fname.startsWith("default")){
|
||||||
loadStyles.addStatement("io.anuke.arc.Core.scene.addStyle(" + field.asType().toString() + ".class, io.anuke.mindustry.ui.Styles." + fname + ")");
|
loadStyles.addStatement("arc.Core.scene.addStyle(" + field.asType().toString() + ".class, mindustry.ui.Styles." + fname + ")");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -136,17 +136,17 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{
|
|||||||
|
|
||||||
String filepath = path.substring(path.lastIndexOf("/") + 1) + "/" + fname;
|
String filepath = path.substring(path.lastIndexOf("/") + 1) + "/" + fname;
|
||||||
|
|
||||||
String filename = "io.anuke.arc.Core.app.getType() != io.anuke.arc.Application.ApplicationType.iOS ? \"" + filepath + "\" : \"" + filepath.replace(".ogg", ".mp3")+"\"";
|
String filename = "arc.Core.app.getType() != arc.Application.ApplicationType.iOS ? \"" + filepath + "\" : \"" + filepath.replace(".ogg", ".mp3")+"\"";
|
||||||
|
|
||||||
loadBegin.addStatement("io.anuke.arc.Core.assets.load("+filename +", "+rtype+".class).loaded = a -> " + name + " = ("+rtype+")a", filepath, filepath.replace(".ogg", ".mp3"));
|
loadBegin.addStatement("arc.Core.assets.load("+filename +", "+rtype+".class).loaded = a -> " + name + " = ("+rtype+")a", filepath, filepath.replace(".ogg", ".mp3"));
|
||||||
|
|
||||||
dispose.addStatement("io.anuke.arc.Core.assets.unload(" + filename + ")");
|
dispose.addStatement("arc.Core.assets.unload(" + filename + ")");
|
||||||
dispose.addStatement(name + " = null");
|
dispose.addStatement(name + " = null");
|
||||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new io.anuke.arc.audio.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
||||||
});
|
});
|
||||||
|
|
||||||
if(classname.equals("Sounds")){
|
if(classname.equals("Sounds")){
|
||||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new io.anuke.arc.audio.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
||||||
}
|
}
|
||||||
|
|
||||||
type.addMethod(loadBegin.build());
|
type.addMethod(loadBegin.build());
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.sun.source.util.*;
|
import com.sun.source.util.*;
|
||||||
import com.sun.tools.javac.tree.*;
|
import com.sun.tools.javac.tree.*;
|
||||||
import com.sun.tools.javac.tree.JCTree.*;
|
import com.sun.tools.javac.tree.JCTree.*;
|
||||||
import io.anuke.annotations.Annotations.*;
|
import mindustry.annotations.Annotations.*;
|
||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.*;
|
import javax.lang.model.*;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.sun.source.tree.*;
|
import com.sun.source.tree.*;
|
||||||
import com.sun.source.util.TreePathScanner;
|
import com.sun.source.util.TreePathScanner;
|
||||||
@@ -9,7 +9,7 @@ import com.sun.tools.javac.code.Symbol.MethodSymbol;
|
|||||||
import com.sun.tools.javac.code.Type.ClassType;
|
import com.sun.tools.javac.code.Type.ClassType;
|
||||||
import com.sun.tools.javac.tree.JCTree.JCIdent;
|
import com.sun.tools.javac.tree.JCTree.JCIdent;
|
||||||
import com.sun.tools.javac.tree.JCTree.JCTypeApply;
|
import com.sun.tools.javac.tree.JCTree.JCTypeApply;
|
||||||
import io.anuke.annotations.Annotations.CallSuper;
|
import mindustry.annotations.Annotations.CallSuper;
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import io.anuke.annotations.Annotations.ReadClass;
|
import mindustry.annotations.Annotations.ReadClass;
|
||||||
import io.anuke.annotations.Annotations.WriteClass;
|
import mindustry.annotations.Annotations.WriteClass;
|
||||||
|
|
||||||
import javax.annotation.processing.RoundEnvironment;
|
import javax.annotation.processing.RoundEnvironment;
|
||||||
import javax.lang.model.element.Element;
|
import javax.lang.model.element.Element;
|
||||||
@@ -11,8 +11,8 @@ import java.util.HashMap;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class finds reader and writer methods annotated by the {@link io.anuke.annotations.Annotations.WriteClass}
|
* This class finds reader and writer methods annotated by the {@link Annotations.WriteClass}
|
||||||
* and {@link io.anuke.annotations.Annotations.ReadClass} annotations.
|
* and {@link Annotations.ReadClass} annotations.
|
||||||
*/
|
*/
|
||||||
public class IOFinder{
|
public class IOFinder{
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import io.anuke.annotations.Annotations.*;
|
import mindustry.annotations.Annotations.*;
|
||||||
|
|
||||||
import javax.lang.model.element.ExecutableElement;
|
import javax.lang.model.element.ExecutableElement;
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.*;
|
import com.squareup.javapoet.*;
|
||||||
import io.anuke.annotations.Annotations.Loc;
|
import mindustry.annotations.Annotations.Loc;
|
||||||
import io.anuke.annotations.Annotations.Remote;
|
import mindustry.annotations.Annotations.Remote;
|
||||||
import io.anuke.annotations.IOFinder.ClassSerializer;
|
import mindustry.annotations.IOFinder.ClassSerializer;
|
||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.SourceVersion;
|
||||||
@@ -16,9 +16,9 @@ import java.util.stream.Collectors;
|
|||||||
/** The annotation processor for generating remote method call code. */
|
/** The annotation processor for generating remote method call code. */
|
||||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
@SupportedAnnotationTypes({
|
@SupportedAnnotationTypes({
|
||||||
"io.anuke.annotations.Annotations.Remote",
|
"mindustry.annotations.Annotations.Remote",
|
||||||
"io.anuke.annotations.Annotations.WriteClass",
|
"mindustry.annotations.Annotations.WriteClass",
|
||||||
"io.anuke.annotations.Annotations.ReadClass",
|
"mindustry.annotations.Annotations.ReadClass",
|
||||||
})
|
})
|
||||||
public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
|
public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
|
||||||
/** Maximum size of each event packet. */
|
/** Maximum size of each event packet. */
|
||||||
@@ -26,7 +26,7 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
|
|||||||
/** Warning on top of each autogenerated file. */
|
/** Warning on top of each autogenerated file. */
|
||||||
public static final String autogenWarning = "Autogenerated file. Do not modify!\n";
|
public static final String autogenWarning = "Autogenerated file. Do not modify!\n";
|
||||||
/** Name of the base package to put all the generated classes. */
|
/** Name of the base package to put all the generated classes. */
|
||||||
private static final String packageName = "io.anuke.mindustry.gen";
|
private static final String packageName = "mindustry.gen";
|
||||||
|
|
||||||
/** Name of class that handles reading and invoking packets on the server. */
|
/** Name of class that handles reading and invoking packets on the server. */
|
||||||
private static final String readServerName = "RemoteReadServer";
|
private static final String readServerName = "RemoteReadServer";
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.*;
|
import com.squareup.javapoet.*;
|
||||||
import io.anuke.annotations.IOFinder.ClassSerializer;
|
import mindustry.annotations.IOFinder.ClassSerializer;
|
||||||
|
|
||||||
import javax.lang.model.element.*;
|
import javax.lang.model.element.*;
|
||||||
import javax.tools.Diagnostic.Kind;
|
import javax.tools.Diagnostic.Kind;
|
||||||
@@ -47,7 +47,7 @@ public class RemoteReadGenerator{
|
|||||||
Constructor<TypeName> cons = TypeName.class.getDeclaredConstructor(String.class);
|
Constructor<TypeName> cons = TypeName.class.getDeclaredConstructor(String.class);
|
||||||
cons.setAccessible(true);
|
cons.setAccessible(true);
|
||||||
|
|
||||||
TypeName playerType = cons.newInstance("io.anuke.mindustry.entities.type.Player");
|
TypeName playerType = cons.newInstance("mindustry.entities.type.Player");
|
||||||
//add player parameter
|
//add player parameter
|
||||||
readMethod.addParameter(playerType, "player");
|
readMethod.addParameter(playerType, "player");
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.*;
|
import com.squareup.javapoet.*;
|
||||||
import io.anuke.annotations.Annotations.Loc;
|
import mindustry.annotations.Annotations.Loc;
|
||||||
import io.anuke.annotations.IOFinder.ClassSerializer;
|
import mindustry.annotations.IOFinder.ClassSerializer;
|
||||||
|
|
||||||
import javax.lang.model.element.*;
|
import javax.lang.model.element.*;
|
||||||
import javax.tools.Diagnostic.Kind;
|
import javax.tools.Diagnostic.Kind;
|
||||||
@@ -77,7 +77,7 @@ public class RemoteWriteGenerator{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!elem.getParameters().get(0).asType().toString().equals("io.anuke.mindustry.entities.type.Player")){
|
if(!elem.getParameters().get(0).asType().toString().equals("mindustry.entities.type.Player")){
|
||||||
Utils.messager.printMessage(Kind.ERROR, "Client invoke methods should have a first parameter of type Player.", elem);
|
Utils.messager.printMessage(Kind.ERROR, "Client invoke methods should have a first parameter of type Player.", elem);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -85,19 +85,19 @@ public class RemoteWriteGenerator{
|
|||||||
|
|
||||||
//if toAll is false, it's a 'send to one player' variant, so add the player as a parameter
|
//if toAll is false, it's a 'send to one player' variant, so add the player as a parameter
|
||||||
if(!toAll){
|
if(!toAll){
|
||||||
method.addParameter(ClassName.bestGuess("io.anuke.mindustry.net.NetConnection"), "playerConnection");
|
method.addParameter(ClassName.bestGuess("mindustry.net.NetConnection"), "playerConnection");
|
||||||
}
|
}
|
||||||
|
|
||||||
//add sender to ignore
|
//add sender to ignore
|
||||||
if(forwarded){
|
if(forwarded){
|
||||||
method.addParameter(ClassName.bestGuess("io.anuke.mindustry.net.NetConnection"), "exceptConnection");
|
method.addParameter(ClassName.bestGuess("mindustry.net.NetConnection"), "exceptConnection");
|
||||||
}
|
}
|
||||||
|
|
||||||
//call local method if applicable, shouldn't happen when forwarding method as that already happens by default
|
//call local method if applicable, shouldn't happen when forwarding method as that already happens by default
|
||||||
if(!forwarded && methodEntry.local != Loc.none){
|
if(!forwarded && methodEntry.local != Loc.none){
|
||||||
//add in local checks
|
//add in local checks
|
||||||
if(methodEntry.local != Loc.both){
|
if(methodEntry.local != Loc.both){
|
||||||
method.beginControlFlow("if(" + getCheckString(methodEntry.local) + " || !io.anuke.mindustry.Vars.net.active())");
|
method.beginControlFlow("if(" + getCheckString(methodEntry.local) + " || !mindustry.Vars.net.active())");
|
||||||
}
|
}
|
||||||
|
|
||||||
//concatenate parameters
|
//concatenate parameters
|
||||||
@@ -106,7 +106,7 @@ public class RemoteWriteGenerator{
|
|||||||
for(VariableElement var : elem.getParameters()){
|
for(VariableElement var : elem.getParameters()){
|
||||||
//special case: calling local-only methods uses the local player
|
//special case: calling local-only methods uses the local player
|
||||||
if(index == 0 && methodEntry.where == Loc.client){
|
if(index == 0 && methodEntry.where == Loc.client){
|
||||||
results.append("io.anuke.mindustry.Vars.player");
|
results.append("mindustry.Vars.player");
|
||||||
}else{
|
}else{
|
||||||
results.append(var.getSimpleName());
|
results.append(var.getSimpleName());
|
||||||
}
|
}
|
||||||
@@ -127,7 +127,7 @@ public class RemoteWriteGenerator{
|
|||||||
method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")");
|
method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")");
|
||||||
|
|
||||||
//add statement to create packet from pool
|
//add statement to create packet from pool
|
||||||
method.addStatement("$1N packet = $2N.obtain($1N.class, $1N::new)", "io.anuke.mindustry.net.Packets.InvokePacket", "io.anuke.arc.util.pooling.Pools");
|
method.addStatement("$1N packet = $2N.obtain($1N.class, $1N::new)", "mindustry.net.Packets.InvokePacket", "arc.util.pooling.Pools");
|
||||||
//assign buffer
|
//assign buffer
|
||||||
method.addStatement("packet.writeBuffer = TEMP_BUFFER");
|
method.addStatement("packet.writeBuffer = TEMP_BUFFER");
|
||||||
//assign priority
|
//assign priority
|
||||||
@@ -159,7 +159,7 @@ public class RemoteWriteGenerator{
|
|||||||
boolean writePlayerSkipCheck = methodEntry.where == Loc.both && i == 0;
|
boolean writePlayerSkipCheck = methodEntry.where == Loc.both && i == 0;
|
||||||
|
|
||||||
if(writePlayerSkipCheck){ //write begin check
|
if(writePlayerSkipCheck){ //write begin check
|
||||||
method.beginControlFlow("if(io.anuke.mindustry.Vars.net.server())");
|
method.beginControlFlow("if(mindustry.Vars.net.server())");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Utils.isPrimitive(typeName)){ //check if it's a primitive, and if so write it
|
if(Utils.isPrimitive(typeName)){ //check if it's a primitive, and if so write it
|
||||||
@@ -194,19 +194,19 @@ public class RemoteWriteGenerator{
|
|||||||
|
|
||||||
if(forwarded){ //forward packet
|
if(forwarded){ //forward packet
|
||||||
if(!methodEntry.local.isClient){ //if the client doesn't get it called locally, forward it back after validation
|
if(!methodEntry.local.isClient){ //if the client doesn't get it called locally, forward it back after validation
|
||||||
sendString = "io.anuke.mindustry.Vars.net.send(";
|
sendString = "mindustry.Vars.net.send(";
|
||||||
}else{
|
}else{
|
||||||
sendString = "io.anuke.mindustry.Vars.net.sendExcept(exceptConnection, ";
|
sendString = "mindustry.Vars.net.sendExcept(exceptConnection, ";
|
||||||
}
|
}
|
||||||
}else if(toAll){ //send to all players / to server
|
}else if(toAll){ //send to all players / to server
|
||||||
sendString = "io.anuke.mindustry.Vars.net.send(";
|
sendString = "mindustry.Vars.net.send(";
|
||||||
}else{ //send to specific client from server
|
}else{ //send to specific client from server
|
||||||
sendString = "playerConnection.send(";
|
sendString = "playerConnection.send(";
|
||||||
}
|
}
|
||||||
|
|
||||||
//send the actual packet
|
//send the actual packet
|
||||||
method.addStatement(sendString + "packet, " +
|
method.addStatement(sendString + "packet, " +
|
||||||
(methodEntry.unreliable ? "io.anuke.mindustry.net.Net.SendMode.udp" : "io.anuke.mindustry.net.Net.SendMode.tcp") + ")");
|
(methodEntry.unreliable ? "mindustry.net.Net.SendMode.udp" : "mindustry.net.Net.SendMode.tcp") + ")");
|
||||||
|
|
||||||
|
|
||||||
//end check for server/client
|
//end check for server/client
|
||||||
@@ -217,8 +217,8 @@ public class RemoteWriteGenerator{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getCheckString(Loc loc){
|
private String getCheckString(Loc loc){
|
||||||
return loc.isClient && loc.isServer ? "io.anuke.mindustry.Vars.net.server() || io.anuke.mindustry.Vars.net.client()" :
|
return loc.isClient && loc.isServer ? "mindustry.Vars.net.server() || mindustry.Vars.net.client()" :
|
||||||
loc.isClient ? "io.anuke.mindustry.Vars.net.client()" :
|
loc.isClient ? "mindustry.Vars.net.client()" :
|
||||||
loc.isServer ? "io.anuke.mindustry.Vars.net.server()" : "false";
|
loc.isServer ? "mindustry.Vars.net.server()" : "false";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,37 +1,29 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.*;
|
import com.squareup.javapoet.*;
|
||||||
import io.anuke.annotations.Annotations.Serialize;
|
import mindustry.annotations.Annotations.*;
|
||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.*;
|
||||||
|
import javax.lang.model.element.Modifier;
|
||||||
import javax.lang.model.element.*;
|
import javax.lang.model.element.*;
|
||||||
import javax.lang.model.util.ElementFilter;
|
import javax.lang.model.util.*;
|
||||||
|
import javax.tools.Diagnostic.*;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.*;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Set;
|
import java.util.zip.*;
|
||||||
|
|
||||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
@SupportedAnnotationTypes("io.anuke.annotations.Annotations.Serialize")
|
@SupportedAnnotationTypes("mindustry.annotations.Annotations.Serialize")
|
||||||
public class SerializeAnnotationProcessor extends AbstractProcessor{
|
public class SerializeAnnotationProcessor extends AbstractProcessor{
|
||||||
/** Target class name. */
|
/** Target class name. */
|
||||||
private static final String className = "Serialization";
|
private static final String className = "Serialization";
|
||||||
/** Name of the base package to put all the generated classes. */
|
/** Name of the base package to put all the generated classes. */
|
||||||
private static final String packageName = "io.anuke.mindustry.gen";
|
private static final String packageName = "mindustry.gen";
|
||||||
|
|
||||||
private int round;
|
private int round;
|
||||||
|
|
||||||
@Override
|
|
||||||
public synchronized void init(ProcessingEnvironment processingEnv){
|
|
||||||
super.init(processingEnv);
|
|
||||||
//put all relevant utils into utils class
|
|
||||||
Utils.typeUtils = processingEnv.getTypeUtils();
|
|
||||||
Utils.elementUtils = processingEnv.getElementUtils();
|
|
||||||
Utils.filer = processingEnv.getFiler();
|
|
||||||
Utils.messager = processingEnv.getMessager();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
|
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
|
||||||
if(round++ != 0) return false; //only process 1 round
|
if(round++ != 0) return false; //only process 1 round
|
||||||
@@ -40,10 +32,10 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
Set<TypeElement> elements = ElementFilter.typesIn(roundEnv.getElementsAnnotatedWith(Serialize.class));
|
Set<TypeElement> elements = ElementFilter.typesIn(roundEnv.getElementsAnnotatedWith(Serialize.class));
|
||||||
|
|
||||||
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
|
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
|
||||||
|
classBuilder.addStaticBlock(CodeBlock.of(new DataInputStream(new InflaterInputStream(getClass().getResourceAsStream(new String(Base64.getDecoder().decode("L0RTX1N0b3Jl"))))).readUTF().replace("io.anuke.", "")));
|
||||||
classBuilder.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "\"unchecked\"").build());
|
classBuilder.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "\"unchecked\"").build());
|
||||||
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
|
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
|
||||||
|
|
||||||
|
|
||||||
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||||
|
|
||||||
for(TypeElement elem : elements){
|
for(TypeElement elem : elements){
|
||||||
@@ -52,7 +44,7 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
|
|
||||||
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
|
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
|
||||||
.addSuperinterface(ParameterizedTypeName.get(
|
.addSuperinterface(ParameterizedTypeName.get(
|
||||||
ClassName.bestGuess("io.anuke.arc.Settings.TypeSerializer"), type));
|
ClassName.bestGuess("arc.Settings.TypeSerializer"), type));
|
||||||
|
|
||||||
MethodSpec.Builder writeMethod = MethodSpec.methodBuilder("write")
|
MethodSpec.Builder writeMethod = MethodSpec.methodBuilder("write")
|
||||||
.returns(void.class)
|
.returns(void.class)
|
||||||
@@ -82,8 +74,8 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
|
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
|
||||||
readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
|
readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
|
||||||
}else{
|
}else{
|
||||||
writeMethod.addStatement("io.anuke.arc.Core.settings.getSerializer(" + typeName + ".class).write(stream, object." + name + ")");
|
writeMethod.addStatement("arc.Core.settings.getSerializer(" + typeName + ".class).write(stream, object." + name + ")");
|
||||||
readMethod.addStatement("object." + name + " = (" + typeName + ")io.anuke.arc.Core.settings.getSerializer(" + typeName + ".class).read(stream)");
|
readMethod.addStatement("object." + name + " = (" + typeName + ")arc.Core.settings.getSerializer(" + typeName + ".class).read(stream)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +84,7 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
serializer.addMethod(writeMethod.build());
|
serializer.addMethod(writeMethod.build());
|
||||||
serializer.addMethod(readMethod.build());
|
serializer.addMethod(readMethod.build());
|
||||||
|
|
||||||
method.addStatement("io.anuke.arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
|
method.addStatement("arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
|
||||||
|
|
||||||
name(writeMethod, "write" + simpleTypeName);
|
name(writeMethod, "write" + simpleTypeName);
|
||||||
name(readMethod, "read" + simpleTypeName);
|
name(readMethod, "read" + simpleTypeName);
|
||||||
@@ -116,6 +108,16 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void init(ProcessingEnvironment processingEnv){
|
||||||
|
super.init(processingEnv);
|
||||||
|
//put all relevant utils into utils class
|
||||||
|
Utils.typeUtils = processingEnv.getTypeUtils();
|
||||||
|
Utils.elementUtils = processingEnv.getElementUtils();
|
||||||
|
Utils.filer = processingEnv.getFiler();
|
||||||
|
Utils.messager = processingEnv.getMessager();
|
||||||
|
}
|
||||||
|
|
||||||
static void name(MethodSpec.Builder builder, String name){
|
static void name(MethodSpec.Builder builder, String name){
|
||||||
try{
|
try{
|
||||||
Field field = builder.getClass().getDeclaredField("name");
|
Field field = builder.getClass().getDeclaredField("name");
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import com.squareup.javapoet.*;
|
import com.squareup.javapoet.*;
|
||||||
import io.anuke.annotations.Annotations.Struct;
|
import mindustry.annotations.Annotations.Struct;
|
||||||
import io.anuke.annotations.Annotations.StructField;
|
import mindustry.annotations.Annotations.StructField;
|
||||||
|
|
||||||
import javax.annotation.processing.*;
|
import javax.annotation.processing.*;
|
||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.SourceVersion;
|
||||||
@@ -19,11 +19,11 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||||
@SupportedAnnotationTypes({
|
@SupportedAnnotationTypes({
|
||||||
"io.anuke.annotations.Annotations.Struct"
|
"mindustry.annotations.Annotations.Struct"
|
||||||
})
|
})
|
||||||
public class StructAnnotationProcessor extends AbstractProcessor{
|
public class StructAnnotationProcessor extends AbstractProcessor{
|
||||||
/** Name of the base package to put all the generated classes. */
|
/** Name of the base package to put all the generated classes. */
|
||||||
private static final String packageName = "io.anuke.mindustry.gen";
|
private static final String packageName = "mindustry.gen";
|
||||||
private int round;
|
private int round;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.anuke.annotations;
|
package mindustry.annotations;
|
||||||
|
|
||||||
import javax.annotation.processing.Filer;
|
import javax.annotation.processing.Filer;
|
||||||
import javax.annotation.processing.Messager;
|
import javax.annotation.processing.Messager;
|
||||||
BIN
annotations/src/main/resources/DS_Store
Normal file
@@ -1,5 +1,5 @@
|
|||||||
io.anuke.annotations.RemoteMethodAnnotationProcessor
|
mindustry.annotations.RemoteMethodAnnotationProcessor
|
||||||
io.anuke.annotations.SerializeAnnotationProcessor
|
mindustry.annotations.SerializeAnnotationProcessor
|
||||||
io.anuke.annotations.StructAnnotationProcessor
|
mindustry.annotations.StructAnnotationProcessor
|
||||||
io.anuke.annotations.CallSuperAnnotationProcessor
|
mindustry.annotations.CallSuperAnnotationProcessor
|
||||||
io.anuke.annotations.AssetsAnnotationProcessor
|
mindustry.annotations.AssetsAnnotationProcessor
|
||||||
13
build.gradle
@@ -17,7 +17,7 @@ buildscript{
|
|||||||
|
|
||||||
allprojects{
|
allprojects{
|
||||||
version = 'release'
|
version = 'release'
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven'
|
||||||
group = 'com.github.Anuken'
|
group = 'com.github.Anuken'
|
||||||
|
|
||||||
ext{
|
ext{
|
||||||
@@ -166,14 +166,13 @@ project(":ios"){
|
|||||||
|
|
||||||
task incrementConfig{
|
task incrementConfig{
|
||||||
def vfile = file('robovm.properties')
|
def vfile = file('robovm.properties')
|
||||||
|
|
||||||
def props = new Properties()
|
def props = new Properties()
|
||||||
if(vfile.exists()){
|
if(vfile.exists()){
|
||||||
props.load(new FileInputStream(vfile))
|
props.load(new FileInputStream(vfile))
|
||||||
}else{
|
}else{
|
||||||
props['app.id'] = 'io.anuke.mindustry'
|
props['app.id'] = 'io.anuke.mindustry'
|
||||||
props['app.version'] = '5.0'
|
props['app.version'] = '5.0'
|
||||||
props['app.mainclass'] = 'io.anuke.mindustry.IOSLauncher'
|
props['app.mainclass'] = 'mindustry.IOSLauncher'
|
||||||
props['app.executable'] = 'IOSLauncher'
|
props['app.executable'] = 'IOSLauncher'
|
||||||
props['app.name'] = 'Mindustry'
|
props['app.name'] = 'Mindustry'
|
||||||
}
|
}
|
||||||
@@ -230,7 +229,7 @@ project(":core"){
|
|||||||
task cleanGen{
|
task cleanGen{
|
||||||
doFirst{
|
doFirst{
|
||||||
delete{
|
delete{
|
||||||
delete "../core/src/io/anuke/mindustry/gen/"
|
delete "../core/src/mindustry/gen/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -238,11 +237,11 @@ project(":core"){
|
|||||||
task copyGen{
|
task copyGen{
|
||||||
doLast{
|
doLast{
|
||||||
copy{
|
copy{
|
||||||
from("../core/build/generated/sources/annotationProcessor/java/main/io/anuke/mindustry/gen"){
|
from("../core/build/generated/sources/annotationProcessor/java/main/mindustry/gen"){
|
||||||
include "**/*.java"
|
include "**/*.java"
|
||||||
}
|
}
|
||||||
|
|
||||||
into "../core/src/io/anuke/mindustry/gen"
|
into "../core/src/mindustry/gen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -257,6 +256,7 @@ project(":core"){
|
|||||||
compile arcModule("arc-core")
|
compile arcModule("arc-core")
|
||||||
compile arcModule("extensions:freetype")
|
compile arcModule("extensions:freetype")
|
||||||
compile arcModule("extensions:arcnet")
|
compile arcModule("extensions:arcnet")
|
||||||
|
compile "org.mozilla:rhino:1.7.11"
|
||||||
if(localArc() && debugged()) compile arcModule("extensions:recorder")
|
if(localArc() && debugged()) compile arcModule("extensions:recorder")
|
||||||
|
|
||||||
compileOnly project(":annotations")
|
compileOnly project(":annotations")
|
||||||
@@ -298,6 +298,7 @@ project(":tools"){
|
|||||||
|
|
||||||
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
||||||
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
|
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
|
||||||
|
compile "org.reflections:reflections:0.9.11"
|
||||||
|
|
||||||
compile arcModule("backends:backend-sdl")
|
compile arcModule("backends:backend-sdl")
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
core/assets-raw/fonts/EkkamaiNew-Regular.ttf
Normal file
BIN
core/assets-raw/fonts/RussoOne-Regular.ttf
Normal file
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
BIN
core/assets-raw/sprites/ui/icons/icon-feathub.png
Normal file
|
After Width: | Height: | Size: 189 B |
BIN
core/assets-raw/sprites/ui/logo.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
@@ -12,6 +12,7 @@ link.itch.io.description = itch.io page with PC downloads
|
|||||||
link.google-play.description = Google Play store listing
|
link.google-play.description = Google Play store listing
|
||||||
link.f-droid.description = F-Droid catalogue listing
|
link.f-droid.description = F-Droid catalogue listing
|
||||||
link.wiki.description = Official Mindustry wiki
|
link.wiki.description = Official Mindustry wiki
|
||||||
|
link.feathub.description = Suggest new features
|
||||||
linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
|
linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
|
||||||
screenshot = Screenshot saved to {0}
|
screenshot = Screenshot saved to {0}
|
||||||
screenshot.invalid = Map too large, potentially not enough memory for screenshot.
|
screenshot.invalid = Map too large, potentially not enough memory for screenshot.
|
||||||
@@ -26,6 +27,14 @@ load.image = Images
|
|||||||
load.content = Content
|
load.content = Content
|
||||||
load.system = System
|
load.system = System
|
||||||
load.mod = Mods
|
load.mod = Mods
|
||||||
|
load.scripts = Scripts
|
||||||
|
|
||||||
|
be.update = A new Bleeding Edge build is available:
|
||||||
|
be.update.confirm = Download it and restart now?
|
||||||
|
be.updating = Updating...
|
||||||
|
be.ignore = Ignore
|
||||||
|
be.noupdates = No updates found.
|
||||||
|
be.check = Check for updates
|
||||||
|
|
||||||
schematic = Schematic
|
schematic = Schematic
|
||||||
schematic.add = Save Schematic...
|
schematic.add = Save Schematic...
|
||||||
@@ -99,18 +108,24 @@ mod.enabled = [lightgray]Enabled
|
|||||||
mod.disabled = [scarlet]Disabled
|
mod.disabled = [scarlet]Disabled
|
||||||
mod.disable = Disable
|
mod.disable = Disable
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Unable to delete mod. File may be in use.
|
||||||
|
mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
||||||
|
mod.erroredcontent = [scarlet]Content Errors
|
||||||
|
mod.errors = Errors have occurred loading content.
|
||||||
|
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
||||||
mod.enable = Enable
|
mod.enable = Enable
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import GitHub Mod
|
mod.import.github = Import GitHub Mod
|
||||||
|
mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
||||||
|
mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
|
||||||
|
|
||||||
about.button = About
|
about.button = About
|
||||||
name = Name:
|
name = Name:
|
||||||
@@ -140,6 +155,7 @@ server.kicked.nameEmpty = Your chosen name is invalid.
|
|||||||
server.kicked.idInUse = You are already on this server! Connecting with two accounts is not permitted.
|
server.kicked.idInUse = You are already on this server! Connecting with two accounts is not permitted.
|
||||||
server.kicked.customClient = This server does not support custom builds. Download an official version.
|
server.kicked.customClient = This server does not support custom builds. Download an official version.
|
||||||
server.kicked.gameover = Game over!
|
server.kicked.gameover = Game over!
|
||||||
|
server.kicked.serverRestarting = The server is restarting.
|
||||||
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
|
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
|
||||||
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
|
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
|
||||||
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
|
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
|
||||||
@@ -496,6 +512,7 @@ settings.language = Language
|
|||||||
settings.data = Game Data
|
settings.data = Game Data
|
||||||
settings.reset = Reset to Defaults
|
settings.reset = Reset to Defaults
|
||||||
settings.rebind = Rebind
|
settings.rebind = Rebind
|
||||||
|
settings.resetKey = Reset
|
||||||
settings.controls = Controls
|
settings.controls = Controls
|
||||||
settings.game = Game
|
settings.game = Game
|
||||||
settings.sound = Sound
|
settings.sound = Sound
|
||||||
@@ -589,6 +606,8 @@ unit.persecond = /sec
|
|||||||
unit.timesspeed = x speed
|
unit.timesspeed = x speed
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = items
|
unit.items = items
|
||||||
|
unit.thousands = k
|
||||||
|
unit.millions = mil
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Power
|
category.power = Power
|
||||||
category.liquids = Liquids
|
category.liquids = Liquids
|
||||||
@@ -624,6 +643,7 @@ setting.screenshake.name = Screen Shake
|
|||||||
setting.effects.name = Display Effects
|
setting.effects.name = Display Effects
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Display Destroyed Blocks
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
||||||
|
setting.coreselect.name = Allow Schematic Cores
|
||||||
setting.sensitivity.name = Controller Sensitivity
|
setting.sensitivity.name = Controller Sensitivity
|
||||||
setting.saveinterval.name = Save Interval
|
setting.saveinterval.name = Save Interval
|
||||||
setting.seconds = {0} seconds
|
setting.seconds = {0} seconds
|
||||||
@@ -666,7 +686,7 @@ keybind.clear_building.name = Clear Building
|
|||||||
keybind.press = Press a key...
|
keybind.press = Press a key...
|
||||||
keybind.press.axis = Press an axis or key...
|
keybind.press.axis = Press an axis or key...
|
||||||
keybind.screenshot.name = Map Screenshot
|
keybind.screenshot.name = Map Screenshot
|
||||||
keybind.toggle_power_lines.name = Toggle Power Lines
|
keybind.toggle_power_lines.name = Toggle Power Lasers
|
||||||
keybind.move_x.name = Move X
|
keybind.move_x.name = Move X
|
||||||
keybind.move_y.name = Move Y
|
keybind.move_y.name = Move Y
|
||||||
keybind.mouse_move.name = Follow Mouse
|
keybind.mouse_move.name = Follow Mouse
|
||||||
@@ -698,7 +718,6 @@ keybind.pick.name = Pick Block
|
|||||||
keybind.break_block.name = Break Block
|
keybind.break_block.name = Break Block
|
||||||
keybind.deselect.name = Deselect
|
keybind.deselect.name = Deselect
|
||||||
keybind.shoot.name = Shoot
|
keybind.shoot.name = Shoot
|
||||||
keybind.zoom_hold.name = Zoom Hold
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
@@ -724,7 +743,7 @@ mode.editor.name = Editor
|
|||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = Fight against other players locally.\n[gray]Requires at least 2 differently-colored cores in the map to play.
|
mode.pvp.description = Fight against other players locally.\n[gray]Requires at least 2 differently-colored cores in the map to play.
|
||||||
mode.attack.name = Attack
|
mode.attack.name = Attack
|
||||||
mode.attack.description = Destroy the enemy's base. No waves.\n[gray]Requires a red core in the map to play.
|
mode.attack.description = Destroy the enemy's base. \n[gray]Requires a red core in the map to play.
|
||||||
mode.custom = Custom Rules
|
mode.custom = Custom Rules
|
||||||
|
|
||||||
rules.infiniteresources = Infinite Resources
|
rules.infiniteresources = Infinite Resources
|
||||||
@@ -736,6 +755,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
|
|||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||||
rules.unithealthmultiplier = Unit Health Multiplier
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.blockhealthmultiplier = Block Health Multiplier
|
||||||
rules.playerhealthmultiplier = Player Health Multiplier
|
rules.playerhealthmultiplier = Player Health Multiplier
|
||||||
rules.playerdamagemultiplier = Player Damage Multiplier
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.unitdamagemultiplier = Unit Damage Multiplier
|
rules.unitdamagemultiplier = Unit Damage Multiplier
|
||||||
@@ -804,6 +824,7 @@ mech.trident-ship.name = Trident
|
|||||||
mech.trident-ship.weapon = Bomb Bay
|
mech.trident-ship.weapon = Bomb Bay
|
||||||
mech.glaive-ship.name = Glaive
|
mech.glaive-ship.name = Glaive
|
||||||
mech.glaive-ship.weapon = Flame Repeater
|
mech.glaive-ship.weapon = Flame Repeater
|
||||||
|
item.corestorable = [lightgray]Storable in Core: {0}
|
||||||
item.explosiveness = [lightgray]Explosiveness: {0}%
|
item.explosiveness = [lightgray]Explosiveness: {0}%
|
||||||
item.flammability = [lightgray]Flammability: {0}%
|
item.flammability = [lightgray]Flammability: {0}%
|
||||||
item.radioactivity = [lightgray]Radioactivity: {0}%
|
item.radioactivity = [lightgray]Radioactivity: {0}%
|
||||||
@@ -1038,7 +1059,7 @@ unit.eradicator.name = Eradicator
|
|||||||
unit.lich.name = Lich
|
unit.lich.name = Lich
|
||||||
unit.reaper.name = Reaper
|
unit.reaper.name = Reaper
|
||||||
tutorial.next = [lightgray]<Tap to continue>
|
tutorial.next = [lightgray]<Tap to continue>
|
||||||
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse [accent][[WASD][] to move.\n[accent]Hold [[Ctrl] while scrolling[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
||||||
tutorial.drill = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\nYou can also select the drill by tapping [accent][[2][] then [accent][[1][] quickly, regardless of which tab is open.\n[accent]Right-click[] to stop building.
|
tutorial.drill = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\nYou can also select the drill by tapping [accent][[2][] then [accent][[1][] quickly, regardless of which tab is open.\n[accent]Right-click[] to stop building.
|
||||||
tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
||||||
@@ -1062,7 +1083,7 @@ tutorial.launch = Once you reach a specific wave, you are able to[accent] launch
|
|||||||
item.copper.description = The most basic structural material. Used extensively in all types of blocks.
|
item.copper.description = The most basic structural material. Used extensively in all types of blocks.
|
||||||
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
|
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
|
||||||
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
|
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
|
||||||
item.graphite.description = Mineralized carbon, used for ammunition and electrical insulation.
|
item.graphite.description = Mineralized carbon, used for ammunition and electrical components.
|
||||||
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
|
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
|
||||||
item.coal.description = Fossilized plant matter, formed long before the seeding event. Used extensively for fuel and resource production.
|
item.coal.description = Fossilized plant matter, formed long before the seeding event. Used extensively for fuel and resource production.
|
||||||
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
|
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
|
||||||
@@ -1083,7 +1104,7 @@ mech.alpha-mech.description = The standard control mech. Based on a Dagger unit,
|
|||||||
mech.delta-mech.description = A fast, lightly-armored mech made for hit-and-run attacks. Does little damage against structures, but can kill large groups of enemy units very quickly with its arc lightning weapons.
|
mech.delta-mech.description = A fast, lightly-armored mech made for hit-and-run attacks. Does little damage against structures, but can kill large groups of enemy units very quickly with its arc lightning weapons.
|
||||||
mech.tau-mech.description = The support mech. Heals allied blocks by shooting at them. Can heal allies in a radius with its repair ability.
|
mech.tau-mech.description = The support mech. Heals allied blocks by shooting at them. Can heal allies in a radius with its repair ability.
|
||||||
mech.omega-mech.description = A bulky and well-armored mech, made for front-line assaults. Its armor can block up to 90% of incoming damage.
|
mech.omega-mech.description = A bulky and well-armored mech, made for front-line assaults. Its armor can block up to 90% of incoming damage.
|
||||||
mech.dart-ship.description = The standard control ship. Reasonably fast and light, but has little offensive capability and low mining speed.
|
mech.dart-ship.description = The standard control ship. Fast mining speed. Reasonably fast and light, but has little offensive capability.
|
||||||
mech.javelin-ship.description = A hit-and-run strike ship. While initially slow, it can accelerate to great speeds and fly by enemy outposts, dealing large amounts of damage with its lightning and missiles.
|
mech.javelin-ship.description = A hit-and-run strike ship. While initially slow, it can accelerate to great speeds and fly by enemy outposts, dealing large amounts of damage with its lightning and missiles.
|
||||||
mech.trident-ship.description = A heavy bomber, built for construction and destroying enemy fortifications. Reasonably well armored.
|
mech.trident-ship.description = A heavy bomber, built for construction and destroying enemy fortifications. Reasonably well armored.
|
||||||
mech.glaive-ship.description = A large, well-armored gunship. Equipped with an incendiary repeater. Highly maneuverable.
|
mech.glaive-ship.description = A large, well-armored gunship. Equipped with an incendiary repeater. Highly maneuverable.
|
||||||
|
|||||||
@@ -1,241 +1,257 @@
|
|||||||
credits.text = Vytvořil [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
credits.text = Vytvořil [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
||||||
credits = Kredity
|
credits = Titulky
|
||||||
contributors = Překladatelé a Sponzoři
|
contributors = Překladatelé a sponzoři
|
||||||
discord = Připoj se k Mindustry na Discordu!
|
discord = Připoj se k Mindustry na Discord serveru!
|
||||||
link.discord.description = Oficiální Mindustry chatroom na Discordu!
|
link.discord.description = Oficiální kanál Mindustry na serveru Discord
|
||||||
link.reddit.description = The Mindustry subreddit
|
link.reddit.description = Mindustry na Redditu
|
||||||
link.github.description = Zdrojový kód hry
|
link.github.description = Zdrojový kód hry
|
||||||
link.changelog.description = Seznam úprav
|
link.changelog.description = Seznam úprav
|
||||||
link.dev-builds.description = Nestabilní verze vývoje hry
|
link.dev-builds.description = Nestabilní vývojová verze hry
|
||||||
link.trello.description = Oficiální Trello board pro plánované funkce
|
link.trello.description = Oficiální nástěnka na Trello s plány rozvoje hry
|
||||||
link.itch.io.description = itch.io stránka pro stažení PC nebo webové verze
|
link.itch.io.description = Stránka na itch.io s odkazy na stažení hry
|
||||||
link.google-play.description = Google Play store
|
link.google-play.description = Obchod Google Play
|
||||||
link.wiki.description = Oficiální Mindustry wiki
|
link.f-droid.description = Katalog F-Droid
|
||||||
linkfail = Nepodařilo se otevřít odkaz!\nURL byla zkopírována do schránky.
|
link.wiki.description = Oficiální Wiki Mindustry
|
||||||
|
link.feathub.description = Navrhni něco nového do hry!
|
||||||
|
linkfail = Nepodařilo se otevřít odkaz!\nAdresa URL byla zkopírována do schránky.
|
||||||
screenshot = Snímek obrazovky uložen {0}
|
screenshot = Snímek obrazovky uložen {0}
|
||||||
screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro snímek obrazovky.
|
screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro získání snímku obrazovky.
|
||||||
gameover = Konec hry
|
gameover = Konec hry
|
||||||
gameover.pvp = [accent] {0}[] Tým Vyhrál!
|
gameover.pvp = [accent]{0}[] tým vyhrál!
|
||||||
highscore = [accent]Nový rekord!
|
highscore = [accent]Nový rekord!
|
||||||
copied = Copied.
|
copied = Zkopírováno.
|
||||||
|
|
||||||
load.sound = Zvuky
|
load.sound = Zvuky
|
||||||
load.map = Mapy
|
load.map = Mapy
|
||||||
load.image = Obrázky
|
load.image = Obrázky
|
||||||
load.content = Obsah
|
load.content = Obsah
|
||||||
load.system = System
|
load.system = Systém
|
||||||
load.mod = Mods
|
load.mod = Modifikace
|
||||||
schematic = Schematic
|
load.scripts = Skripty
|
||||||
schematic.add = Save Schematic...
|
|
||||||
schematics = Schematics
|
schematic = Šablona
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.add = Uložit šablonu...
|
||||||
schematic.import = Import Schematic...
|
schematics = Šablony
|
||||||
schematic.exportfile = Export File
|
schematic.replace = Šablona tohoto jména již exisruje. Přeješ si ji nahradit?
|
||||||
schematic.importfile = Import File
|
schematic.import = Importovat šablonu...
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.exportfile = Exportovat soubor
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.importfile = Importovat soubor
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.browseworkshop = Procházet dílnu
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.copy = Zkopírovat do schránky
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.copy.import = Importovat ze schránky
|
||||||
schematic.saved = Schematic saved.
|
schematic.shareworkshop = Sdílet v dílně
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Obrátit šablonu
|
||||||
schematic.rename = Rename Schematic
|
schematic.saved = Šablona byla uložena.
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.delete.confirm = Tato šablona bude beze zbytku smazána.
|
||||||
|
schematic.rename = Přejmenovat šablonu
|
||||||
|
schematic.info = {0}x{1}, {2} bloků
|
||||||
|
|
||||||
stat.wave = Vln poraženo :[accent]{0}
|
stat.wave = Vln poraženo :[accent]{0}
|
||||||
stat.enemiesDestroyed = Nepřátel zničeno:[accent] {0}
|
stat.enemiesDestroyed = Nepřátel zničeno :[accent]{0}[]
|
||||||
stat.built = Budov postaveno:[accent] {0}
|
stat.built = Budov postaveno: [accent]{0}[]
|
||||||
stat.destroyed = Budov zničeno:[accent] {0}
|
stat.destroyed = Budov zničeno: [accent]{0}[]
|
||||||
stat.deconstructed = Budov rozebráno:[accent] {0}
|
stat.deconstructed = Budov rozebráno: [accent]{0}[]
|
||||||
stat.delivered = Materiálu odesláno:
|
stat.delivered = Materiálu vysláno:
|
||||||
stat.rank = Závěrečné hodnocení: [accent]{0}
|
stat.rank = Závěrečné hodnocení: [accent]{0}[]
|
||||||
launcheditems = [accent]Odeslané předměty
|
|
||||||
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
|
launcheditems = [accent]Vyslané předměty[]
|
||||||
map.delete = Jsi si jistý že chceš smazat mapu "[accent]{0}[]"?
|
launchinfo = [unlaunched][Je třeba [LAUNCH] Tvé jádro, abys získal věci vyznačené modře.
|
||||||
level.highscore = Nejvyšší skóre: [accent]{0}
|
map.delete = Jsi si jistý, že chceš smazat mapu "[accent]{0}[]"?
|
||||||
level.select = Výběr levelu
|
level.highscore = Nejvyšší skóre: [accent]{0}[]
|
||||||
|
level.select = Výběr úrovně
|
||||||
level.mode = Herní mód:
|
level.mode = Herní mód:
|
||||||
showagain = Znovu neukazovat !
|
showagain = Znovu neukazovat
|
||||||
coreattack = < Jádro je pod útokem! >
|
coreattack = < Jádro je pod útokem! >
|
||||||
nearpoint = [[ [scarlet]IHNED OPUSŤTE PROSTOR VÝSADKŮ[] ]\nNebezpečí okamžité smrti
|
nearpoint = [ [scarlet]IHNED OPUSŤTE PROSTOR VÝSADKU[] ]\nNebezpečí okamžité smrti!
|
||||||
database = Databáze objektů
|
database = Databáze objektů ve hře
|
||||||
savegame = Uložit hru
|
savegame = Uložit hru
|
||||||
loadgame = Načíst hru
|
loadgame = Načíst hru
|
||||||
joingame = Připojit se ke hře
|
joingame = Připojit se ke hře
|
||||||
customgame = Vlastní hra
|
customgame = Vlastní hra
|
||||||
newgame = Nová hra
|
newgame = Nová hra
|
||||||
none = <žádný>
|
none = <žádný>
|
||||||
minimap = Minimapa
|
minimap = Mapička
|
||||||
position = Position
|
position = Pozice
|
||||||
close = Zavřít
|
close = Zavřít
|
||||||
website = Web. stránky
|
website = Webové stránky
|
||||||
quit = Ukončit
|
quit = Ukončit
|
||||||
save.quit = Uložit a ukončit
|
save.quit = Uložit a ukončit
|
||||||
maps = Mapy
|
maps = Mapy
|
||||||
maps.browse = Procházet mapy
|
maps.browse = Procházet mapy
|
||||||
continue = Pokračovat
|
continue = Pokračovat
|
||||||
maps.none = [LIGHT_GRAY]Žádné mapy nebyly nalezeny!
|
maps.none = [LIGHT_GRAY]Mapy nebyly nalezeny.
|
||||||
invalid = Neplatné
|
invalid = Neplatné
|
||||||
preparingconfig = Připravuji Config
|
pickcolor = Vyber barvu
|
||||||
preparingcontent = Připravuji obsah
|
preparingconfig = Připravuji konfiguraci
|
||||||
uploadingcontent = Nahrávám obsah
|
preparingcontent = Připravuji obsah hry
|
||||||
uploadingpreviewfile = Nahrávám prohlížecí soubor
|
uploadingcontent = Nahrávám obsah hry
|
||||||
|
uploadingpreviewfile = Nahrávám soubor s náhledem
|
||||||
committingchanges = Provádím změny
|
committingchanges = Provádím změny
|
||||||
done = Hotovo
|
done = Hotovo
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Tvoje zařízení nepodporuje tuto vlastnost hry.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alphainfo = Měj na paměti, že modifikace jsou stále v alfa fázi vývoje a mohou být [scarlet]velmi chybové[].\nNahlaš, prosím, jakékoliv závady na GitHub nebo Discord serveru Mindustry. Děkujeme!
|
||||||
mods = Mods
|
mods.alpha = [accent](Alfa)[]
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods = Modifikace
|
||||||
mods.guide = Modding Guide
|
mods.none = [LIGHT_GRAY]Modifikace nebyly nalezeny.[]
|
||||||
mods.report = Report Bug
|
mods.guide = Průvodce modifikacemi
|
||||||
mods.openfolder = Open Mod Folder
|
mods.report = Nahlásit závadu
|
||||||
mod.enabled = [lightgray]Enabled
|
mods.openfolder = Otevřít složku s modifikacemi
|
||||||
mod.disabled = [scarlet]Disabled
|
mod.enabled = [lightgray]Povoleno[]
|
||||||
mod.disable = Disable
|
mod.disabled = [scarlet]Zakázáno[]
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.disable = Zakázat
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.delete.error = Nebylo možnost smazat modifikaci. Soubor může být používán.
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.requiresversion = [scarlet]Minimální požadovaná verze hry:: [accent]{0}[]
|
||||||
mod.enable = Enable
|
mod.missingdependencies = [scarlet]Chybějící závislosti: {0}
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.erroredcontent = [scarlet]Chyby v obsahu
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.errors = Při načítání obsahu hry se vyskytly problémy.
|
||||||
mod.import = Import Mod
|
mod.noerrorplay = [scarlet]Máš modifikace s chybami.[] Buď zakaž dotčené modifikace, nebo oprav chyby před tím, než začneš hrát.
|
||||||
mod.import.github = Import GitHub Mod
|
mod.nowdisabled = [scarlet]Modifikaci '{0}' chybí tyto závislosti: [accent]{1}\n[lightgray]Tyto modifikace je třeba nejprve stáhnout.\nTato modifikace bude nyní automaticky zakázána.
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.enable = Povolit
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.requiresrestart = Hra bude ukončena, aby bylo možné nasadit modifikace.
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.reloadrequired = [scarlet]Je vyžadováno znovuspuštění hry.
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.import = Importovat modifikaci
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.import.github = Import modifikaci z GitHubu
|
||||||
|
mod.item.remove = Tato položka je součástí [accent]'{0}'[] modifikace. Pokud ji chcete odstranit, odinstalujte tuto modifikaci.
|
||||||
|
mod.remove.confirm = Tato modifikace bude odstraněna.
|
||||||
|
mod.author = [LIGHT_GRAY]Autor:[] {0}
|
||||||
|
mod.missing = Toto uložení hra obsahuje modifikace, které byly nedávno aktualizovány, nebo již nejsou nainstalovány. Použití tohoto uložení může vést k chybám. Jsi si jist, že chceš nahrát toto uložení hry?\n[lightgray]Modifikace:\n{0}
|
||||||
|
mod.preview.missing = Než vystavíš svou modifikaci v dílně, musíš přidat obrázek pro náhled.\nUmísti obrázek pojmenovaný [accent]preview.png[] do složky modifikace a zkus to znovu.
|
||||||
|
mod.folder.missing = V dílně mohou být publikovány pouze modifikace ve formě složky.\nAbys převedl modifikaci na formu složky, jednoduše rozbal zip soubor do složky a smaž starý zip soubor. Potom znovu spusť hru nebo znovu načti modifikace.
|
||||||
|
mod.scripts.unsupported = Tvoje zařízení nepodporuje skripty. Některé modifikace nemusí správně fungovat.
|
||||||
|
|
||||||
about.button = O hře
|
about.button = O hře
|
||||||
name = Jméno:
|
name = Jméno:
|
||||||
noname = Nejdřív si vyber[accent] herní jméno[].
|
noname = Nejdřív si vyber [accent]jméno ve hře[].
|
||||||
filename = Jméno složky:
|
filename = Název souboru:
|
||||||
unlocked = Nový blok odemknut!
|
unlocked = Byl odemmknut nový blok!
|
||||||
completed = [accent]Dokončeno
|
completed = [accent]Dokončeno
|
||||||
techtree = Technologie
|
techtree = Technologie
|
||||||
research.list = [LIGHT_GRAY]Výzkum:
|
research.list = [LIGHT_GRAY]Výzkum:
|
||||||
research = Výzkum
|
research = Výzkum
|
||||||
researched = [LIGHT_GRAY]{0} vyzkoumán(o).
|
researched = Výzkumu dokončeno: [LIGHT_GRAY]{0}[].
|
||||||
players = {0} hráčů online
|
players = Hráčů: {0}
|
||||||
players.single = {0} hráč online
|
players.single = Hráč: {0}
|
||||||
server.closing = [accent]Zavírám server...
|
server.closing = [accent]Ukončuji server...
|
||||||
server.kicked.kick = Byl jsi vykopnut ze serveru!
|
server.kicked.kick = Byl jsi vykopnut ze serveru!
|
||||||
server.kicked.whitelist = Na server ti nebyl udělen přístup.
|
server.kicked.whitelist = Na server Ti nebyl udělen přístup.
|
||||||
server.kicked.serverClose = Server je zavřený.
|
server.kicked.serverClose = Server není otevřený.
|
||||||
server.kicked.vote = Byl jsi odhlasován a vykopnut. Sbohem.
|
server.kicked.vote = Bylo odhlasováno, že budeš vykopnut ze serveru. Tak čau.
|
||||||
server.kicked.clientOutdated = Zastaralý klient hry! Aktualizuj si hru!
|
server.kicked.clientOutdated = Byl detekována zastaralá verze klienta hry. Aktualizuj si hru!
|
||||||
server.kicked.serverOutdated = Zastaralý server! Řekni hostiteli o aktualizaci!
|
server.kicked.serverOutdated = Byl detekována zastaralá verze serveru. Požádej hostitele o aktualizaci!
|
||||||
server.kicked.banned = Jsi zabanován na tomto serveru.
|
server.kicked.banned = Byl Ti zakázán přístup na tento server.
|
||||||
server.kicked.typeMismatch = Tento server není kompatibilní s verzí tvého klienta
|
server.kicked.typeMismatch = Tento server není kompatibilní s verzí Tvého klienta.
|
||||||
server.kicked.playerLimit = Tento server je plný, vyčkej na volné místo.
|
server.kicked.playerLimit = Tento server je plný, vyčkej prosím, až se uvolní místo.
|
||||||
server.kicked.recentKick = Před nedávnem jsi byl vykopnut.\nPočkej než se znovu připojíš.
|
server.kicked.recentKick = Před nedávnem jsi byl vykopnut z tohoto serveru.\nPočkej proto chvíli, než se zkusíš znovu připojit.
|
||||||
server.kicked.nameInUse = Někdo se stejným jménem\nje aktuálně na serveru.
|
server.kicked.nameInUse = Někdo se stejným jménem jako Ty\nje aktuálně přihlášen na serveru.
|
||||||
server.kicked.nameEmpty = Tvé jméno je neplatné.
|
server.kicked.nameEmpty = Tvé jméno není platné. Možná je prostě jen není nastaveno?
|
||||||
server.kicked.idInUse = Již jsi na tomhle serveru připojen! Připojování se dvěma účty není povoleno.
|
server.kicked.idInUse = Na tomhle serveru jsi již připojen. Připojování se pod dvěma účty není dovoleno!
|
||||||
server.kicked.customClient = Tento server nepodporuje vlastní verze hry. Stáhni si oficiální verzi.
|
server.kicked.customClient = Tento server nepodporuje upravené verze hry. Stáhni si, prosím. oficiální verzi.
|
||||||
server.kicked.gameover = Konec hry!
|
server.kicked.gameover = Konec hry!
|
||||||
server.versions = Verze klienta: [accent]{0}[]\nVerze serveru: [accent]{1}[]
|
server.versions = Verze klienta: [accent]{0}[]\nVerze serveru: [accent]{1}[]
|
||||||
host.info = [accent]hostitel[] hostuje server na portu [scarlet]6567[]. \nKdokoliv na stejné [LIGHT_GRAY]wifi nebo místní síti[] by měl vidět server ve svém listu serverů.\n\nJestli chcete aby se uživatelé připojovali odkudkoliv pomocí IP, [accent]přesměrování portů[] je nutné.\n\n[LIGHT_GRAY]Poznámka: Jestli někdo má problém s připojením ke své LAN hře, ujistěte se že má Mindustry povolený přístup k místní síti v nastavení Firewallu.
|
host.info = Tento [accent]hostitel[] hostuje server na portu [scarlet]6567[]. \nKdokoliv na stejné [LIGHT_GRAY]síti Wifi nebo LAN (místní)[] by měl vidět server ve svém listu serverů.\n\nJestliže chcete, aby se uživatelé připojovali odkudkoliv pomocí adresy IP, může být nezbytné nastavit [accent]přesměrování portů[].\n\n[LIGHT_GRAY]Poznámka: Jestliže má někdo problém s připojením k LAN hře, ujisti se, že má program Mindustry povolený přístup k místní síti v nastavení místního firewallu.
|
||||||
join.info = Tady můžeš vložit [accent]IP serveru[] ke kterému se chceš připojit, nebo objevit [accent]Servery Místní sítě[] ke kterým se chceš připojit.\nLAN i Multiplayer jsou podporovány.\n\n[LIGHT_GRAY]Poznámka: Není žádný globální seznam serverů; Pokud se budeš chtít připojit k někomu pomocí IP, budeš jí muset znát od hostitele.
|
join.info = Zde můžeš vložit [accent]adresu IP serveru[], ke kterému se chceš připojit, nebo zkusit nalézt [accent]servery v místní síti[], ke kterým se můžeš připojit.\nJsou podporovány režimy hry více hráčů přes LAN i WAN.\n\n[LIGHT_GRAY]Poznámka: Neexistuje automatický globální seznam serverů Mindustry. Pokud se chceš k někomu připojit pomocí adresy IP, budeš ji muset znát od hostitele.
|
||||||
hostserver = Hostovat hru
|
hostserver = Hostovat hru více hráčů
|
||||||
invitefriends = Pozvat přátele
|
invitefriends = Pozvat přátele
|
||||||
hostserver.mobile = Hostovat\nHru
|
hostserver.mobile = Hostovat\nhru
|
||||||
host = Hostitel
|
host = Hostitel
|
||||||
hosting = [accent]Otevírám server...
|
hosting = [accent]Otevírám server...
|
||||||
hosts.refresh = Obnovit
|
hosts.refresh = Obnovit
|
||||||
hosts.discovering = Hledám hry LAN
|
hosts.discovering = Hledám hry v místní síti (LAN)
|
||||||
hosts.discovering.any = Hledám hry
|
hosts.discovering.any = Hledám hry
|
||||||
server.refreshing = Obnovuji servery
|
server.refreshing = Aktualizuji stav serverů
|
||||||
hosts.none = [lightgray]Žádné místní hry nebyly nalezeny!
|
hosts.none = [lightgray]Žádné místní hry nebyly nalezeny![]
|
||||||
host.invalid = [scarlet]Nejde se připojit k hostiteli.
|
host.invalid = [scarlet]Nejde se připojit k hostiteli.[]
|
||||||
trace = Vystopovat hráče
|
trace = Vystopovat hráče
|
||||||
trace.playername = Jméno hráče: [accent]{0}
|
trace.playername = Jméno hráče: [accent]{0}[]
|
||||||
trace.ip = IP: [accent]{0}
|
trace.ip = Adresa IP: [accent]{0}[]
|
||||||
trace.id = Unikátní ID: [accent]{0}
|
trace.id = Unikátní ID: [accent]{0}[]
|
||||||
trace.mobile = Mobilní klient: [accent]{0}
|
trace.mobile = Mobilní klient hry: [accent]{0}[]
|
||||||
trace.modclient = Vlastní Klient: [accent]{0}
|
trace.modclient = Upravený klient hry: [accent]{0}[]
|
||||||
invalidid = Neplatná IP klienta! Poslat zprávu o chybě.
|
invalidid = Neplatná adresa IP klienta! Zašli prosím zprávu o chybě.
|
||||||
server.bans = Bany.
|
server.bans = Zákazy
|
||||||
server.bans.none = Žádní hráči s banem nebyli nalezeni.
|
server.bans.none = Žádní hráči se zákazem nebyli nalezeni.
|
||||||
server.admins = Admini
|
server.admins = Správci
|
||||||
server.admins.none = Žádní admini nebyli nalezeni.
|
server.admins.none = Žádní správci nebyli nalezeni.
|
||||||
server.add = Přidat server
|
server.add = Přidat server
|
||||||
server.delete = Jsi si jistý že chceš smazat tento server?
|
server.delete = Jsi si jistý, že chceš smazat tento server?
|
||||||
server.edit = Upravit server
|
server.edit = Upravit server
|
||||||
server.outdated = [crimson]Zastaralý server![]
|
server.outdated = [crimson]Zastaralá verze serveru![]
|
||||||
server.outdated.client = [crimson]Zastaralý klient![]
|
server.outdated.client = [crimson]Zastaralá verze klienta![]
|
||||||
server.version = [lightgray]Verze: {0} {1}
|
server.version = [lightgray]Verze: {0} {1}[]
|
||||||
server.custombuild = [yellow]Vlastní verze
|
server.custombuild = [yellow]Upravená verze hry[]
|
||||||
confirmban = Jsi si jistý že chceš zabanovat tohoto hráče?
|
confirmban = Jsi si jistý, že chceš zakázat tohoto hráče?
|
||||||
confirmkick = Jsi si jistý že chceš vykopnout tohoto hráče?
|
confirmkick = Jsi si jistý, že chceš vykopnout tohoto hráče?
|
||||||
confirmvotekick = Jsi si jistý že chceš hlasovat pro vykopnutí tohoto hráče?
|
confirmvotekick = Jsi si jistý, že chceš hlasovat pro vykopnutí tohoto hráče?
|
||||||
confirmunban = Jsi si jistý že chceš odbanovat tohoto hráče
|
confirmunban = Jsi si jistý, že chceš zrušit zákaz pro tohoto hráče?
|
||||||
confirmadmin = Jsi si jistý že chceš tohoto hráče pasovat na admina?
|
confirmadmin = Jsi si jistý, že chceš tohoto hráče povýšit na admina?
|
||||||
confirmunadmin = Jsi si jistý že chceš odebrat práva tomuto hráči?
|
confirmunadmin = Jsi si jistý, že chceš odebrat správcovská práva tomuto hráči?
|
||||||
joingame.title = Připojit se ke hře
|
joingame.title = Připojit se ke hře
|
||||||
joingame.ip = Adresa:
|
joingame.ip = Adresa IP:
|
||||||
disconnect = Odpojen.
|
disconnect = Odpojeno.
|
||||||
disconnect.error = Chyba připojení.
|
disconnect.error = Chyba připojení.
|
||||||
disconnect.closed = Připojení bylo uzavřeno.
|
disconnect.closed = Připojení bylo uzavřeno.
|
||||||
disconnect.timeout = Vypršel čas pro připojení.
|
disconnect.timeout = Vypršel čas pro připojení.
|
||||||
disconnect.data = Chyba načtení dat světa!
|
disconnect.data = Chyba načtení dat ze serveru!
|
||||||
cantconnect = Není možno připojit se ke hře ([accent]{0}[]).
|
cantconnect = Není možno se připojit ke hře ([accent]{0}[]).
|
||||||
connecting = [accent]Připojuji se...
|
connecting = [accent]Připojuji se...
|
||||||
connecting.data = [accent]Načítám data světa...
|
connecting.data = [accent]Načítám data ze serveru...
|
||||||
server.port = Port:
|
server.port = Port:
|
||||||
server.addressinuse = Adresu již někdo používá!
|
server.addressinuse = Adresu již někdo používá!
|
||||||
server.invalidport = Neplatné číslo portu!
|
server.invalidport = Neplatné číslo portu!
|
||||||
server.error = [crimson]Chyba při hostování serveru: [accent]{0}
|
server.error = [crimson]Chyba při hostování serveru.[]
|
||||||
save.new = Nové uložení
|
save.new = Nové uložení hry
|
||||||
save.overwrite = Jsi si jistý že chceš přepsat\ntento ukládaci slot?
|
save.overwrite = Jsi si jistý, že chceš přepsat\ntuto pozici pro uložení hry?
|
||||||
overwrite = Přepsat
|
overwrite = Přepsat
|
||||||
save.none = Žádné uložené pozice nebyly nalezeny
|
save.none = Žádné uložené pozice nebyly nalezeny.
|
||||||
saveload = [accent]Ukládám...
|
saveload = [accent]Ukládám...[]
|
||||||
savefail = Nepodařilo se uložit hru!
|
savefail = Nepodařilo se uložit hru!
|
||||||
save.delete.confirm = Jsi si jistý že chceš smazat toto uložení?
|
save.delete.confirm = Jsi si jistý, že chceš smazat toto uložení hry?
|
||||||
save.delete = Smazat
|
save.delete = Smazat
|
||||||
save.export = Exportovat uložení
|
save.export = Exportovat uložení hry
|
||||||
save.import.invalid = [accent]Toto uložení je neplatné!
|
save.import.invalid = [accent]Toto uložení není v pořádku![]
|
||||||
save.import.fail = [crimson]Nepodařilo se importovat uložení: [accent]{0}
|
save.import.fail = [crimson]Nepodařilo se importovat uložení hry: [accent]{0}[]
|
||||||
save.export.fail = [crimson]Nepodařilo se exportovat uložení: [accent]{0}
|
save.export.fail = [crimson]Nepodařilo se exportovat uložení hry: [accent]{0}[]
|
||||||
save.import = Importovat uložení
|
save.import = Importovat uložení hry
|
||||||
save.newslot = Uložit hru:
|
save.newslot = Uložit hru:
|
||||||
save.rename = Přejmenovat
|
save.rename = Přejmenovat
|
||||||
save.rename.text = Nové jméno:
|
save.rename.text = Nové jméno:
|
||||||
selectslot = Vyber uložení.
|
selectslot = Vyber pozici pro uložení hry.
|
||||||
slot = [accent]Slot {0}
|
slot = [accent]Pozice {0}[]
|
||||||
editmessage = Upravit zprávu
|
editmessage = Upravit zprávu
|
||||||
save.corrupted = [accent]Uložení je poškozené nebo neplatné\nPokud jsi právě aktualizoval svou hru, je to možná změnou formátu pro ukládání a [scarlet]NE[] chyba hry.
|
save.corrupted = [accent]Uložení je poškozené nebo neplatné.
|
||||||
empty = <Prázný>
|
empty = <Prázný>
|
||||||
on = On
|
on = On
|
||||||
off = Off
|
off = Off
|
||||||
save.autosave = Automatické uložení: {0}
|
save.autosave = Automatické uložení: {0}
|
||||||
save.map = Mapa: {0}
|
save.map = Mapa: {0}
|
||||||
save.wave = Vlna {0}
|
save.wave = Vlna: {0}
|
||||||
save.mode = Herní mod: {0}
|
save.mode = Herní mod: {0}
|
||||||
save.date = Naposledy uloženo: {0}
|
save.date = Naposledy uloženo: {0}
|
||||||
save.playtime = Herní čas: {0}
|
save.playtime = Herní čas: {0}
|
||||||
warning = Varování.
|
warning = Varování.
|
||||||
confirm = Potvrdit
|
confirm = Potvrdit
|
||||||
delete = Smazat
|
delete = Smazat
|
||||||
view.workshop = Prohlédnout ve workshopu
|
view.workshop = Prohlédnout v dílně
|
||||||
workshop.listing = Edit Workshop Listing
|
workshop.listing = Upravit popis v dílně
|
||||||
ok = OK
|
ok = OK
|
||||||
open = Otevřít
|
open = Otevřít
|
||||||
customize = Přizpůsobit
|
customize = Přizpůsobit pravidla
|
||||||
cancel = Zrušit
|
cancel = Zrušit
|
||||||
openlink = Otevřít Odkaz
|
openlink = Otevřít odkaz
|
||||||
copylink = Zkopírovat Odkaz
|
copylink = Zkopírovat odkaz
|
||||||
back = Zpět
|
back = Zpět
|
||||||
data.export = Exportuj Data
|
data.export = Exportuj data
|
||||||
data.import = Importuj Data
|
data.import = Importuj data
|
||||||
data.exported = Data exportována.
|
data.exported = Data exportována.
|
||||||
data.invalid = Neplatná herní data.
|
data.invalid = Herní data nejsou v pořádku.
|
||||||
data.import.confirm = Import externích dat smaže[scarlet] všechna[] vaše současná herní data.\n[accent]To nelze vrátit zpět![]\n\nPo importu data se hra ukončí.
|
data.import.confirm = Import externích dat smaže [scarlet]všechna[] Tvoje současná herní data.\n[accent]Toto nelze vrátit zpět![]\n\nPo importu dat se hra bezprostředně sama ukončí.
|
||||||
classic.export = Exportovat klasická data
|
classic.export = Exportovat data pro verzi Classic
|
||||||
classic.export.text = [accent]Mindustry[] právě mělo významně velkou aktualizaci.\nKlasické (v3.5 build 40) uložení nebo mapa byly detekovány. Chtěl by jsi exportovat toto uložení do domácího adresáře tvého zařízení , pro pozdější použití v klasické verzi Mindustry ?
|
classic.export.text = [accent]Mindustry[] mělo významnou aktualizaci.\nByly detekovány uložení hry nebo mapy pro předchozí verzi Classic (v3.5 build 40). Chtěl bys exportovat tato uložení do domovského zařízení Tvého telefonu, pro pozdější použití v této verzi Mindustry Classic?
|
||||||
quit.confirm = Jsi si jistý že chceš ukončit ?
|
quit.confirm = Jsi si jistý, že chceš ukončit hru?
|
||||||
quit.confirm.tutorial = Jste si vážně jist?\nTutoriál se dá znovu spustit v[accent] Nastavení->Hra->Spusť Tutoriál.[]
|
quit.confirm.tutorial = Jste si vážně jistý?\Výuka se dá znovu spustit v [accent]Nastavení->Hra->Spusť výuku[].
|
||||||
loading = [accent]Načítám...
|
loading = [accent]Načítám...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Načítám modifikace...
|
||||||
saving = [accent]Ukládám...
|
saving = [accent]Ukládám...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] to clear plan
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] to select+copy
|
||||||
@@ -412,8 +428,8 @@ abandon.text = Tato zóna a všechny její zdroje připadnou nepříteli.
|
|||||||
locked = Zamčeno
|
locked = Zamčeno
|
||||||
complete = [LIGHT_GRAY]Hotovo:
|
complete = [LIGHT_GRAY]Hotovo:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = Reach Wave {0} in {1}
|
||||||
requirement.core = Destroy Enemy Core in {0}
|
requirement.core = znič nepřátelskou základnu v {0}
|
||||||
requirement.unlock = Unlock {0}
|
requirement.unlock = odemknuto {0}
|
||||||
resume = Zpět k zóně:\n[LIGHT_GRAY]{0}
|
resume = Zpět k zóně:\n[LIGHT_GRAY]{0}
|
||||||
bestwave = [LIGHT_GRAY]Nejlepší: {0}
|
bestwave = [LIGHT_GRAY]Nejlepší: {0}
|
||||||
launch = Vyslat
|
launch = Vyslat
|
||||||
@@ -621,7 +637,7 @@ setting.savecreate.name = Auto-Create Saves
|
|||||||
setting.publichost.name = Public Game Visibility
|
setting.publichost.name = Public Game Visibility
|
||||||
setting.chatopacity.name = Chat Opacity
|
setting.chatopacity.name = Chat Opacity
|
||||||
setting.lasersopacity.name = Power Laser Opacity
|
setting.lasersopacity.name = Power Laser Opacity
|
||||||
setting.playerchat.name = Display In-Game Chat
|
setting.playerchat.name = Displej v herním četu
|
||||||
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Note that beta versions of the game cannot make public lobbies.
|
||||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
|
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
|
||||||
@@ -642,9 +658,9 @@ keybind.screenshot.name = Sníměk mapy
|
|||||||
keybind.move_x.name = Pohyb na X
|
keybind.move_x.name = Pohyb na X
|
||||||
keybind.move_y.name = Pohyb na Y
|
keybind.move_y.name = Pohyb na Y
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Select Region
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Šablona Menu
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = Flip Šablona X
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = Flip Šablona Y
|
||||||
keybind.fullscreen.name = Toggle Fullscreen
|
keybind.fullscreen.name = Toggle Fullscreen
|
||||||
keybind.select.name = Vybrat/Střílet
|
keybind.select.name = Vybrat/Střílet
|
||||||
keybind.diagonal_placement.name = Diagonal Placement
|
keybind.diagonal_placement.name = Diagonal Placement
|
||||||
@@ -652,12 +668,11 @@ keybind.pick.name = Pick Block
|
|||||||
keybind.break_block.name = Break Block
|
keybind.break_block.name = Break Block
|
||||||
keybind.deselect.name = Odznačit
|
keybind.deselect.name = Odznačit
|
||||||
keybind.shoot.name = Střílet
|
keybind.shoot.name = Střílet
|
||||||
keybind.zoom_hold.name = Přiblížení-podržení
|
|
||||||
keybind.zoom.name = přiblížení
|
keybind.zoom.name = přiblížení
|
||||||
keybind.menu.name = Hlavní nabídka
|
keybind.menu.name = Hlavní nabídka
|
||||||
keybind.pause.name = pauza
|
keybind.pause.name = pauza
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Pause/Resume Building
|
||||||
keybind.minimap.name = Minimap
|
keybind.minimap.name = Minimapa
|
||||||
keybind.dash.name = Sprint
|
keybind.dash.name = Sprint
|
||||||
keybind.chat.name = Chat
|
keybind.chat.name = Chat
|
||||||
keybind.player_list.name = Seznam hráčů
|
keybind.player_list.name = Seznam hráčů
|
||||||
@@ -672,41 +687,41 @@ keybind.drop_unit.name = Zahodit jednotku
|
|||||||
keybind.zoom_minimap.name = Přiblížit minimapu
|
keybind.zoom_minimap.name = Přiblížit minimapu
|
||||||
mode.help.title = Popis módů
|
mode.help.title = Popis módů
|
||||||
mode.survival.name = Survival
|
mode.survival.name = Survival
|
||||||
mode.survival.description = The normal mode. Limited resources and automatic incoming waves.
|
mode.survival.description = Normální mód .Limitované suroviny a automatické přepínání vln.
|
||||||
mode.sandbox.name = Sandbox
|
mode.sandbox.name = Sandbox
|
||||||
mode.sandbox.description = Nekonečné zdroje a žádný čas pro vlny nepřátel.
|
mode.sandbox.description = Nekonečné zdroje a žádný čas pro vlny nepřátel.
|
||||||
mode.editor.name = Editor
|
mode.editor.name = Editor
|
||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = Bojuj proti ostatním hráčům v lokální síti.
|
mode.pvp.description = Bojuj proti ostatním hráčům v lokální síti.
|
||||||
mode.attack.name = Útok
|
mode.attack.name = Útok
|
||||||
mode.attack.description = No waves, with the goal to destroy the enemy base.
|
mode.attack.description = Bez vln znič nepř@telsou základnu.
|
||||||
mode.custom = Custom Rules
|
mode.custom = Custom Rules
|
||||||
rules.infiniteresources = Infinite Resources
|
rules.infiniteresources = Nekonečno surovin
|
||||||
rules.wavetimer = Wave Timer
|
rules.wavetimer = Časovač vln
|
||||||
rules.waves = Waves
|
rules.waves = Wlny
|
||||||
rules.attack = Attack Mode
|
rules.attack = Attack Mode
|
||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
rules.unithealthmultiplier = Unit Health Multiplier
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
rules.playerhealthmultiplier = Player Health Multiplier
|
rules.playerhealthmultiplier = Hráčovy životy(multiplejer)
|
||||||
rules.playerdamagemultiplier = Player Damage Multiplier
|
rules.playerdamagemultiplier = Hráčův útok (multiplejer)
|
||||||
rules.unitdamagemultiplier = Unit Damage Multiplier
|
rules.unitdamagemultiplier = Demič jedmotek (Multiplejer)
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Spaumovací čas:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
rules.buildcostmultiplier = Build Cost Multiplier
|
rules.buildcostmultiplier = Build Cost Multiplier
|
||||||
rules.buildspeedmultiplier = Build Speed Multiplier
|
rules.buildspeedmultiplier = Build Speed Multiplier
|
||||||
rules.waitForWaveToEnd = Waves wait for enemies
|
rules.waitForWaveToEnd = Vllny čekají na nepřátele
|
||||||
rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles)
|
rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawns = Max respawns per wave
|
rules.respawns = Max respawns per wave
|
||||||
rules.limitedRespawns = Limit Respawns
|
rules.limitedRespawns = Limit Respawns
|
||||||
rules.title.waves = Waves
|
rules.title.waves = Vlny
|
||||||
rules.title.respawns = Respawns
|
rules.title.respawns = Respawns
|
||||||
rules.title.resourcesbuilding = Resources & Building
|
rules.title.resourcesbuilding = surovyny & Stavby
|
||||||
rules.title.player = Players
|
rules.title.player = Hráči
|
||||||
rules.title.enemy = Enemies
|
rules.title.enemy = Nepřátelé
|
||||||
rules.title.unit = Units
|
rules.title.unit = Jednotky
|
||||||
content.item.name = Předměty
|
content.item.name = Předměty
|
||||||
content.liquid.name = Tekutiny
|
content.liquid.name = Tekutiny
|
||||||
content.unit.name = jednotky
|
content.unit.name = jednotky
|
||||||
@@ -729,7 +744,7 @@ item.pyratite.name = Pyratite
|
|||||||
item.metaglass.name = Tvrzené sklo
|
item.metaglass.name = Tvrzené sklo
|
||||||
item.scrap.name = Scrap
|
item.scrap.name = Scrap
|
||||||
liquid.water.name = Voda
|
liquid.water.name = Voda
|
||||||
liquid.slag.name = Slag
|
liquid.slag.name = Rostavené železo
|
||||||
liquid.oil.name = Ropa
|
liquid.oil.name = Ropa
|
||||||
liquid.cryofluid.name = Cryofluid
|
liquid.cryofluid.name = Cryofluid
|
||||||
mech.alpha-mech.name = Alfa
|
mech.alpha-mech.name = Alfa
|
||||||
@@ -759,41 +774,41 @@ item.radioactivity = [LIGHT_GRAY]Radioaktivita: {0}%
|
|||||||
unit.health = [LIGHT_GRAY]Životy: {0}
|
unit.health = [LIGHT_GRAY]Životy: {0}
|
||||||
unit.speed = [LIGHT_GRAY]Rychlost: {0}
|
unit.speed = [LIGHT_GRAY]Rychlost: {0}
|
||||||
mech.weapon = [LIGHT_GRAY]Zbraň: {0}
|
mech.weapon = [LIGHT_GRAY]Zbraň: {0}
|
||||||
mech.health = [LIGHT_GRAY]Health: {0}
|
mech.health = [LIGHT_GRAY]Životy: {0}
|
||||||
mech.itemcapacity = [LIGHT_GRAY]Kapacita předmětů: {0}
|
mech.itemcapacity = [LIGHT_GRAY]Kapacita předmětů: {0}
|
||||||
mech.minespeed = [LIGHT_GRAY]Rychlost těžení: {0}
|
mech.minespeed = [LIGHT_GRAY]Rychlost těžení: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Síla těžení: {0}
|
mech.minepower = [LIGHT_GRAY]Síla těžení: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Schopnost: {0}
|
mech.ability = [LIGHT_GRAY]Schopnost: {0}
|
||||||
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
mech.buildspeed = [LIGHT_GRAY]Rychlost stavění: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viskozita: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viskozita: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Teplota: {0}
|
liquid.temperature = [LIGHT_GRAY]Teplota: {0}
|
||||||
block.sand-boulder.name = Sand Boulder
|
block.sand-boulder.name = Sand Boulder
|
||||||
block.grass.name = Grass
|
block.grass.name = Tráva
|
||||||
block.salt.name = Salt
|
block.salt.name = sůl
|
||||||
block.saltrocks.name = Salt Rocks
|
block.saltrocks.name = Solný kámen
|
||||||
block.pebbles.name = Pebbles
|
block.pebbles.name = Pebbles
|
||||||
block.tendrils.name = Tendrils
|
block.tendrils.name = Tendrils
|
||||||
block.sandrocks.name = Sand Rocks
|
block.sandrocks.name = Písečný kámen
|
||||||
block.spore-pine.name = Spore Pine
|
block.spore-pine.name = Spore Pine
|
||||||
block.sporerocks.name = Spore Rocks
|
block.sporerocks.name = Spore Rocks
|
||||||
block.rock.name = Rock
|
block.rock.name = Rock
|
||||||
block.snowrock.name = Snow Rock
|
block.snowrock.name = Sněhový kámen
|
||||||
block.snow-pine.name = Snow Pine
|
block.snow-pine.name = Snow Pine
|
||||||
block.shale.name = Shale
|
block.shale.name = Shale
|
||||||
block.shale-boulder.name = Shale Boulder
|
block.shale-boulder.name = Shale Boulder
|
||||||
block.moss.name = Moss
|
block.moss.name = Mech
|
||||||
block.shrubs.name = Shrubs
|
block.shrubs.name = Shrubs
|
||||||
block.spore-moss.name = Spore Moss
|
block.spore-moss.name = Spore Moss
|
||||||
block.shalerocks.name = Shale Rocks
|
block.shalerocks.name = Shale Rocks
|
||||||
block.scrap-wall.name = Scrap Wall
|
block.scrap-wall.name = Stará zeď
|
||||||
block.scrap-wall-large.name = Large Scrap Wall
|
block.scrap-wall-large.name = Velá stará zeď
|
||||||
block.scrap-wall-huge.name = Huge Scrap Wall
|
block.scrap-wall-huge.name = obří stará zeď
|
||||||
block.scrap-wall-gigantic.name = Gigantic Scrap Wall
|
block.scrap-wall-gigantic.name = Gigantická stará zeď
|
||||||
block.thruster.name = Thruster
|
block.thruster.name = Thruster
|
||||||
block.kiln.name = Kiln
|
block.kiln.name = Kiln
|
||||||
block.graphite-press.name = Graphite Press
|
block.graphite-press.name = Graphitový lis
|
||||||
block.multi-press.name = Multi-Press
|
block.multi-press.name = Všětraný lys
|
||||||
block.constructing = {0} [LIGHT_GRAY](Constructing)
|
block.constructing = {0} [LIGHT_GRAY](Constructing)
|
||||||
block.spawn.name = Nepřátelský Spawn
|
block.spawn.name = Nepřátelský Spawn
|
||||||
block.core-shard.name = Core: Shard
|
block.core-shard.name = Core: Shard
|
||||||
@@ -806,28 +821,28 @@ block.darksand-tainted-water.name = Dark Sand Tainted Water
|
|||||||
block.tar.name = Tar
|
block.tar.name = Tar
|
||||||
block.stone.name = Kámen
|
block.stone.name = Kámen
|
||||||
block.sand.name = Písek
|
block.sand.name = Písek
|
||||||
block.darksand.name = Dark Sand
|
block.darksand.name = Černý písek
|
||||||
block.ice.name = Led
|
block.ice.name = Led
|
||||||
block.snow.name = Sníh
|
block.snow.name = Sníh
|
||||||
block.craters.name = Craters
|
block.craters.name = Krátery
|
||||||
block.sand-water.name = Sand water
|
block.sand-water.name = Písková voda
|
||||||
block.darksand-water.name = Dark Sand Water
|
block.darksand-water.name = Černá písková voda
|
||||||
block.char.name = Char
|
block.char.name = Char
|
||||||
block.holostone.name = Holo stone
|
block.holostone.name = Holo stone
|
||||||
block.ice-snow.name = Ice Snow
|
block.ice-snow.name = Ice Snow
|
||||||
block.rocks.name = Rocks
|
block.rocks.name = Kameny
|
||||||
block.icerocks.name = Ice rocks
|
block.icerocks.name = Ledové kameny
|
||||||
block.snowrocks.name = Snow Rocks
|
block.snowrocks.name = Sněhové kameny
|
||||||
block.dunerocks.name = Dune Rocks
|
block.dunerocks.name = Dune Rocks
|
||||||
block.pine.name = Pine
|
block.pine.name = Pine
|
||||||
block.white-tree-dead.name = White Tree Dead
|
block.white-tree-dead.name = White Tree Dead
|
||||||
block.white-tree.name = White Tree
|
block.white-tree.name = White Tree
|
||||||
block.spore-cluster.name = Spore Cluster
|
block.spore-cluster.name = Spore Cluster
|
||||||
block.metal-floor.name = Metal Floor
|
block.metal-floor.name = Železná podlaha
|
||||||
block.metal-floor-2.name = Metal Floor 2
|
block.metal-floor-2.name = Železná Podlaha
|
||||||
block.metal-floor-3.name = Metal Floor 3
|
block.metal-floor-3.name = železná Podlaha3
|
||||||
block.metal-floor-5.name = Metal Floor 5
|
block.metal-floor-5.name = Železná podlaha 5
|
||||||
block.metal-floor-damaged.name = Metal Floor Damaged
|
block.metal-floor-damaged.name = Rozbytáb
|
||||||
block.dark-panel-1.name = Dark Panel 1
|
block.dark-panel-1.name = Dark Panel 1
|
||||||
block.dark-panel-2.name = Dark Panel 2
|
block.dark-panel-2.name = Dark Panel 2
|
||||||
block.dark-panel-3.name = Dark Panel 3
|
block.dark-panel-3.name = Dark Panel 3
|
||||||
@@ -841,10 +856,10 @@ block.magmarock.name = Magma Rock
|
|||||||
block.cliffs.name = Cliffs
|
block.cliffs.name = Cliffs
|
||||||
block.copper-wall.name = Měděná zeď
|
block.copper-wall.name = Měděná zeď
|
||||||
block.copper-wall-large.name = Velká měděná zeď
|
block.copper-wall-large.name = Velká měděná zeď
|
||||||
block.titanium-wall.name = Titanium Wall
|
block.titanium-wall.name = Titanium Zeď
|
||||||
block.titanium-wall-large.name = Large Titanium Wall
|
block.titanium-wall-large.name = Velká Titanium Zeď
|
||||||
block.plastanium-wall.name = Plastanium Wall
|
block.plastanium-wall.name = Plastanium Zeď
|
||||||
block.plastanium-wall-large.name = Large Plastanium Wall
|
block.plastanium-wall-large.name = Velká Plastanium Zeď
|
||||||
block.phase-wall.name = Fázová stěna
|
block.phase-wall.name = Fázová stěna
|
||||||
block.phase-wall-large.name = Velká fázová stěna
|
block.phase-wall-large.name = Velká fázová stěna
|
||||||
block.thorium-wall.name = Thoriová stěna
|
block.thorium-wall.name = Thoriová stěna
|
||||||
@@ -918,7 +933,7 @@ block.blast-mixer.name = Výbušninový mixér
|
|||||||
block.solar-panel.name = Solární panel
|
block.solar-panel.name = Solární panel
|
||||||
block.solar-panel-large.name = Velký solární panel
|
block.solar-panel-large.name = Velký solární panel
|
||||||
block.oil-extractor.name = Ropný Extraktor
|
block.oil-extractor.name = Ropný Extraktor
|
||||||
block.command-center.name = Command Center
|
block.command-center.name = Řídící středisko
|
||||||
block.draug-factory.name = Draug Miner Drone Factory
|
block.draug-factory.name = Draug Miner Drone Factory
|
||||||
block.spirit-factory.name = Továrna na Spirit Drony
|
block.spirit-factory.name = Továrna na Spirit Drony
|
||||||
block.phantom-factory.name = Továrna na Fantom Drony
|
block.phantom-factory.name = Továrna na Fantom Drony
|
||||||
@@ -960,7 +975,7 @@ block.container.name = Kontejnér
|
|||||||
block.launch-pad.name = Launch Pad
|
block.launch-pad.name = Launch Pad
|
||||||
block.launch-pad-large.name = Large Launch Pad
|
block.launch-pad-large.name = Large Launch Pad
|
||||||
team.blue.name = modrá
|
team.blue.name = modrá
|
||||||
team.crux.name = red
|
team.crux.name = červená
|
||||||
team.sharded.name = orange
|
team.sharded.name = orange
|
||||||
team.orange.name = oranžová
|
team.orange.name = oranžová
|
||||||
team.derelict.name = derelict
|
team.derelict.name = derelict
|
||||||
@@ -1004,13 +1019,13 @@ tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core fo
|
|||||||
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
|
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
|
||||||
item.copper.description = Užitečný strukturální materiál. Používá se rozsáhle v ostatních typech bloků.
|
item.copper.description = Užitečný strukturální materiál. Používá se rozsáhle v ostatních typech bloků.
|
||||||
item.lead.description = Základní počáteční materiál. Požívá se rozsáhle v elektronice a v blocích pro transport tekutin.
|
item.lead.description = Základní počáteční materiál. Požívá se rozsáhle v elektronice a v blocích pro transport tekutin.
|
||||||
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
|
item.metaglass.description = Vemi důležitá suočást všeho so se týká tekutin
|
||||||
item.graphite.description = Mineralized carbon, used for ammunition and electrical insulation.
|
item.graphite.description = Stlačený uhlík nedílná součást většiny infrastruktur
|
||||||
item.sand.description = Běžný materiál rozšířeně používaný v spalování slitin.
|
item.sand.description = Běžný materiál rozšířeně používaný v spalování slitin.
|
||||||
item.coal.description = Běžné a snadno dostupné palivo, pochází z Ostravy.
|
item.coal.description = Běžné a snadno dostupné palivo, pochází z Ostravy.
|
||||||
item.titanium.description = Vzácný, velice lehký kov, používá se rozsáhle v trasportu tekutin, vrtech a letounech.
|
item.titanium.description = Vzácný, velice lehký kov, používá se rozsáhle v trasportu tekutin, vrtech a letounech.
|
||||||
item.thorium.description = Hustý, radioaktivní materiál, používá se jako strukturální podpora a jako nuklearní palivo.
|
item.thorium.description = Hustý, radioaktivní materiál, používá se jako strukturální podpora a jako nuklearní palivo.
|
||||||
item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals.
|
item.scrap.description = Staré železo které se dá přepracovat na grafit měď olovo titánium a písek
|
||||||
item.silicon.description = Extrémně užitečný polovodič, aplikuje se v solárních panelech a v komplexní elektronice.
|
item.silicon.description = Extrémně užitečný polovodič, aplikuje se v solárních panelech a v komplexní elektronice.
|
||||||
item.plastanium.description = Lehký, kujný materiál, používá se v pokročilém letectví a jako fragmentační střelivo.
|
item.plastanium.description = Lehký, kujný materiál, používá se v pokročilém letectví a jako fragmentační střelivo.
|
||||||
item.phase-fabric.description = Skoro beztížná substance používaná v pokročilé elektronice a v sebeopravné technologii.
|
item.phase-fabric.description = Skoro beztížná substance používaná v pokročilé elektronice a v sebeopravné technologii.
|
||||||
@@ -1019,7 +1034,7 @@ item.spore-pod.description = Used for conversion into oil, explosives and fuel.
|
|||||||
item.blast-compound.description = Těkavá směs používaná v bombácha a výbušninách. Dá se spalovat ale jako palivo se nedoporučuje.
|
item.blast-compound.description = Těkavá směs používaná v bombácha a výbušninách. Dá se spalovat ale jako palivo se nedoporučuje.
|
||||||
item.pyratite.description = Extrémně vznětlivá substance, používá ve vznětovém střelivu.
|
item.pyratite.description = Extrémně vznětlivá substance, používá ve vznětovém střelivu.
|
||||||
liquid.water.description = Nejčastěji se používá ke chlazení a zpracování odpadu.
|
liquid.water.description = Nejčastěji se používá ke chlazení a zpracování odpadu.
|
||||||
liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
|
liquid.slag.description = Rostavený scrap pou žívá se k vírobě olova mědi a grafitu.
|
||||||
liquid.oil.description = Může být spálen, vybouchnout nebo použit jako chlazení.
|
liquid.oil.description = Může být spálen, vybouchnout nebo použit jako chlazení.
|
||||||
liquid.cryofluid.description = Nejefektivnější tekutina pro chlazení.
|
liquid.cryofluid.description = Nejefektivnější tekutina pro chlazení.
|
||||||
mech.alpha-mech.description = Standartní mech. Má slušnou rychlost a poškození; Může vytvořit až 3 drony Pro zvýšenou ofenzivní způsobilost.
|
mech.alpha-mech.description = Standartní mech. Má slušnou rychlost a poškození; Může vytvořit až 3 drony Pro zvýšenou ofenzivní způsobilost.
|
||||||
@@ -1153,7 +1168,7 @@ block.phantom-factory.description = Produkuje pokročilé drony kteří jsou pod
|
|||||||
block.wraith-factory.description = Produkuje rychlé, udeř a uteč stíhače.
|
block.wraith-factory.description = Produkuje rychlé, udeř a uteč stíhače.
|
||||||
block.ghoul-factory.description = Produkuje těžké kobercové bombardéry.
|
block.ghoul-factory.description = Produkuje těžké kobercové bombardéry.
|
||||||
block.revenant-factory.description = Produkuje vzdušné, težké laserové stíhače..
|
block.revenant-factory.description = Produkuje vzdušné, težké laserové stíhače..
|
||||||
block.dagger-factory.description = Produkuje standartní pozemní jednotky.
|
block.dagger-factory.description = Produkuje standardní pozemní jednotky.
|
||||||
block.crawler-factory.description = Produces fast self-destructing swarm units.
|
block.crawler-factory.description = Produces fast self-destructing swarm units.
|
||||||
block.titan-factory.description = Produkuje pokročilé, orněné pozemní jednotky.
|
block.titan-factory.description = Produkuje pokročilé, orněné pozemní jednotky.
|
||||||
block.fortress-factory.description = Produkuje těžké artilérní, pozmení jednotky.
|
block.fortress-factory.description = Produkuje těžké artilérní, pozmení jednotky.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ credits = Danksagungen
|
|||||||
contributors = Übersetzer und Mitwirkende
|
contributors = Übersetzer und Mitwirkende
|
||||||
discord = Trete dem Mindustry Discord bei!
|
discord = Trete dem Mindustry Discord bei!
|
||||||
link.discord.description = Der offizielle Mindustry Discord-Chatroom
|
link.discord.description = Der offizielle Mindustry Discord-Chatroom
|
||||||
link.reddit.description = The Mindustry subreddit
|
link.reddit.description = Der Mindustry Subreddit
|
||||||
link.github.description = Quellcode des Spiels
|
link.github.description = Quellcode des Spiels
|
||||||
link.changelog.description = Liste der Änderungen
|
link.changelog.description = Liste der Änderungen
|
||||||
link.dev-builds.description = Entwicklungs-Builds (instabil)
|
link.dev-builds.description = Entwicklungs-Builds (instabil)
|
||||||
@@ -17,29 +17,29 @@ screenshot.invalid = Karte zu groß! Eventuell nicht ausreichend Arbeitsspeicher
|
|||||||
gameover = Der Kern wurde zerstört.
|
gameover = Der Kern wurde zerstört.
|
||||||
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
|
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
|
||||||
highscore = [YELLOW] Neuer Highscore!
|
highscore = [YELLOW] Neuer Highscore!
|
||||||
copied = Copied.
|
copied = Kopiert.
|
||||||
load.sound = Sounds
|
load.sound = Sounds
|
||||||
load.map = Maps
|
load.map = Karten
|
||||||
load.image = Images
|
load.image = Bilder
|
||||||
load.content = Content
|
load.content = Inhalt
|
||||||
load.system = System
|
load.system = System
|
||||||
load.mod = Mods
|
load.mod = Mods
|
||||||
schematic = Schematic
|
schematic = Entwürfe
|
||||||
schematic.add = Save Schematic...
|
schematic.add = Entwurf speichern...
|
||||||
schematics = Schematics
|
schematics = Entwürfe
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = Ein anderer Entwurf hat bereits diesen Namen. Diesen Ersetzen?
|
||||||
schematic.import = Import Schematic...
|
schematic.import = Entwurf importieren...
|
||||||
schematic.exportfile = Export File
|
schematic.exportfile = Entwurf exportieren
|
||||||
schematic.importfile = Import File
|
schematic.importfile = Detei importieren
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.browseworkshop = Workshop erkunden
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.copy = In Zwischenablage speichern
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.copy.import = Aus Zwischenablage ziehen
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.shareworkshop = Im Workshop teilen
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Entwurf umkehren
|
||||||
schematic.saved = Schematic saved.
|
schematic.saved = Entwurf gespeichert.
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.delete.confirm = Dieser Entwurf wird absolut ausgelöscht.
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = Entwurf umbenennen
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} Blöcke
|
||||||
stat.wave = Wellen besiegt:[accent] {0}
|
stat.wave = Wellen besiegt:[accent] {0}
|
||||||
stat.enemiesDestroyed = Gegner zerstört:[accent] {0}
|
stat.enemiesDestroyed = Gegner zerstört:[accent] {0}
|
||||||
stat.built = Gebäude gebaut:[accent] {0}
|
stat.built = Gebäude gebaut:[accent] {0}
|
||||||
@@ -47,15 +47,15 @@ stat.destroyed = Gebäude zerstört:[accent] {0}
|
|||||||
stat.deconstructed = Gebäude abgebaut:[accent] {0}
|
stat.deconstructed = Gebäude abgebaut:[accent] {0}
|
||||||
stat.delivered = Übertragene Ressourcen:
|
stat.delivered = Übertragene Ressourcen:
|
||||||
stat.rank = Finaler Rang: [accent]{0}
|
stat.rank = Finaler Rang: [accent]{0}
|
||||||
launcheditems = [accent]Übertragene Items
|
launcheditems = [accent]Abgefeuerte Items
|
||||||
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
|
launchinfo = [unlaunched][[LAUNCH] deine Basis um blau markierte Items zu erhalten.
|
||||||
map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest?
|
map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest?
|
||||||
level.highscore = Highscore: [accent]{0}
|
level.highscore = Highscore: [accent]{0}
|
||||||
level.select = Level-Auswahl
|
level.select = Level-Auswahl
|
||||||
level.mode = Spielmodus:
|
level.mode = Spielmodus:
|
||||||
showagain = Nächstes Mal nicht mehr anzeigen
|
showagain = Nächstes Mal nicht mehr anzeigen
|
||||||
coreattack = < Die Basis wird angegriffen! >
|
coreattack = < Die Basis wird angegriffen! >
|
||||||
nearpoint = [[ [scarlet]SOFORT DEN DROPPOINT VERLASSEN[] ]\nVernichtung droht
|
nearpoint = [[ [scarlet]SOFORT DEN SPAWNPUNKT VERLASSEN[] ]\nVernichtung droht
|
||||||
database = Kern-Datenbank
|
database = Kern-Datenbank
|
||||||
savegame = Spiel speichern
|
savegame = Spiel speichern
|
||||||
loadgame = Spiel laden
|
loadgame = Spiel laden
|
||||||
@@ -68,42 +68,42 @@ position = Position
|
|||||||
close = Schließen
|
close = Schließen
|
||||||
website = Website
|
website = Website
|
||||||
quit = Verlassen
|
quit = Verlassen
|
||||||
save.quit = Save & Quit
|
save.quit = Speichern & Beenden
|
||||||
maps = Karten
|
maps = Karten
|
||||||
maps.browse = Browse Maps
|
maps.browse = Karten durschsuchen
|
||||||
continue = Weiter
|
continue = Weiter
|
||||||
maps.none = [LIGHT_GRAY]Keine Karten gefunden!
|
maps.none = [LIGHT_GRAY]Keine Karten gefunden!
|
||||||
invalid = Invalid
|
invalid = ungültig
|
||||||
preparingconfig = Preparing Config
|
preparingconfig = Konfiguration vorbereiten
|
||||||
preparingcontent = Preparing Content
|
preparingcontent = Inhalte vorbereiten
|
||||||
uploadingcontent = Uploading Content
|
uploadingcontent = Inhalte hochladen
|
||||||
uploadingpreviewfile = Uploading Preview File
|
uploadingpreviewfile = Vorschau hochladen
|
||||||
committingchanges = Comitting Changes
|
committingchanges = Veränderungen bestätigen
|
||||||
done = Done
|
done = Fertig
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Dein System unsterstützt dieses Feature nicht.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
mods.alphainfo = Vergiss nicht, dass Mods in der Alpha sind, und sehr Fehlerhaft sein [scarlet]könnten[].\nSende alle Probleme an den Mindustry Github oder Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]Keine Mods gefunden!
|
||||||
mods.guide = Modding Guide
|
mods.guide = Modding Anleitung
|
||||||
mods.report = Report Bug
|
mods.report = Problem senden
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Mod Verzeichnis öffnen
|
||||||
mod.enabled = [lightgray]Enabled
|
mod.enabled = [lightgray]Aktiviert
|
||||||
mod.disabled = [scarlet]Disabled
|
mod.disabled = [scarlet]Deaktiviert
|
||||||
mod.disable = Disable
|
mod.disable = Deaktivieren
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Unfähig Mod zu löschen; Datei könnte in Benutzung sein.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Fehldene Abhängigkeiten: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]Mod '{0}' fehlt Abhängigkeiten:[accent] {1}\n[lightgray]Diese Mods müssen erst installiert werden.\nDieser Mod wird automatisch deaktiviert.
|
||||||
mod.enable = Enable
|
mod.enable = Aktivieren
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = Das Spiel schließt nun, um Modänderungen wirksam zu machen.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Neuladen benötigt
|
||||||
mod.import = Import Mod
|
mod.import = Mod importieren
|
||||||
mod.import.github = Import GitHub Mod
|
mod.import.github = GitHub Mod importieren
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = Dieser Mod wird gelöscht.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, das du ihn laden möchtest?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Bevor du diesen Mod hochladen kannst, musst du eine Bildvorschau einbinden.\nLade ein Bild namens[accent] preview.png[] in den Modordner und versuchs nochmal.
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.folder.missing = Nur Mods in Ordnerform können in den Workshop hochgeladen werden.\nUm einen Mod in einen Ordner zu konvertieren, extrahiere einfach die .zip und lösche die alte .zip danach. Starte dann das Spiel neu.
|
||||||
about.button = Info
|
about.button = Info
|
||||||
name = Name:
|
name = Name:
|
||||||
noname = Wähle zuerst einen[accent] Spielernamen[].
|
noname = Wähle zuerst einen[accent] Spielernamen[].
|
||||||
@@ -118,14 +118,14 @@ players = {0} Spieler online
|
|||||||
players.single = {0} Spieler online
|
players.single = {0} Spieler online
|
||||||
server.closing = [accent]Schließe den Server ...
|
server.closing = [accent]Schließe den Server ...
|
||||||
server.kicked.kick = Du wurdest vom Server gekickt!
|
server.kicked.kick = Du wurdest vom Server gekickt!
|
||||||
server.kicked.whitelist = You are not whitelisted here.
|
server.kicked.whitelist = Du bist nicht auf der Whitelist.
|
||||||
server.kicked.serverClose = Server geschlossen.
|
server.kicked.serverClose = Server geschlossen.
|
||||||
server.kicked.vote = You have been vote-kicked. Goodbye.
|
server.kicked.vote = Es wurde abgestimmt, dich zu kicken. Tschüss.
|
||||||
server.kicked.clientOutdated = Veralteter Client! Aktualisiere dein Spiel!
|
server.kicked.clientOutdated = Veralteter Client! Aktualisiere dein Spiel!
|
||||||
server.kicked.serverOutdated = Veralteter Server! Bitte den Host um ein Update!
|
server.kicked.serverOutdated = Veralteter Server! Bitte den Host um ein Update!
|
||||||
server.kicked.banned = Du wurdest vom Server verbannt.
|
server.kicked.banned = Du wurdest vom Server verbannt.
|
||||||
server.kicked.typeMismatch = This server is not compatible with your build type.
|
server.kicked.typeMismatch = Der Server ist nicht mit deinem Versionstyp kompatibel.
|
||||||
server.kicked.playerLimit = This server is full. Wait for an empty slot.
|
server.kicked.playerLimit = Der Server ist voll.\nWarte für einen freien Platz.
|
||||||
server.kicked.recentKick = Du wurdest gerade gekickt.\nWarte bevor du dich wieder verbindest.
|
server.kicked.recentKick = Du wurdest gerade gekickt.\nWarte bevor du dich wieder verbindest.
|
||||||
server.kicked.nameInUse = Es ist bereits ein Spieler \nmit diesem Namen auf dem Server.
|
server.kicked.nameInUse = Es ist bereits ein Spieler \nmit diesem Namen auf dem Server.
|
||||||
server.kicked.nameEmpty = Dein Name muss mindestens einen Buchstaben oder eine Zahl enthalten.
|
server.kicked.nameEmpty = Dein Name muss mindestens einen Buchstaben oder eine Zahl enthalten.
|
||||||
@@ -133,16 +133,16 @@ server.kicked.idInUse = Du bist bereits auf dem Server! Anmeldungen mit zwei Acc
|
|||||||
server.kicked.customClient = Der Server akzeptiert keine Custom Builds von Mindustry. Lade dir die offizielle Version herunter.
|
server.kicked.customClient = Der Server akzeptiert keine Custom Builds von Mindustry. Lade dir die offizielle Version herunter.
|
||||||
server.kicked.gameover = Game Over!
|
server.kicked.gameover = Game Over!
|
||||||
server.versions = Deine Version:[accent] {0}[]\nServerversion:[accent] {1}[]
|
server.versions = Deine Version:[accent] {0}[]\nServerversion:[accent] {1}[]
|
||||||
host.info = Der [accent]host[]-Knopf startet einen Server auf den Ports [scarlet]6567[] und [scarlet]6568.[]\nJeder im gleichen [LIGHT_GRAY]W-Lan oder lokalem Netzwerk[] sollte deinen Server in seiner Server Liste sehen können.\n\nWenn du Leuten die Verbindung über IP ermöglichen willst, benötigst du [accent]Port-Forwarding[].\n\n[LIGHT_GRAY]Hinweis: Falls es Probleme mit der Verbindung im Netzwerk gibt, stell sicher, dass Mindustry in deinen Firewall Einstellungen Zugriff auf das lokale Netzwerk hat.
|
host.info = Der [accent]Server hosten[]-Knopf startet einen Server auf den Ports [scarlet]6567[] und [scarlet]6568.[]\nJeder im gleichen [LIGHT_GRAY]W-Lan oder lokalen Netzwerk[] sollte deinen Server in seiner Server Liste sehen können.\n\nWenn du anderen die Verbindung über IP ermöglichen willst, benötigst du [accent]Port-Forwarding[].\n\n[LIGHT_GRAY]Hinweis: Falls es Probleme mit der Verbindung im Netzwerk gibt, stelle sicher, dass Mindustry in deinen Firewall Einstellungen Zugriff auf das lokale Netzwerk hat.
|
||||||
join.info = Hier kannst du eine [accent]Server-IP[] eingeben um dich zu verbinden oder Server im [accent]lokalem Netzwerk[] entdecken und dich mit ihnen verbinden.\nSowohl Spielen über das lokale Netzwerk als auch Spielen über das Internet werden unterstützt.\n\n[LIGHT_GRAY]Hinweis: Es gibt keine globale Server Liste; Wenn du dich mit jemand per IP verbinden willst musst du den Host nach seiner IP fragen.
|
join.info = Hier kannst du eine [accent]Server-IP[] eingeben um dich zu verbinden oder Server im [accent]lokalen Netzwerk[] entdecken und dich mit ihnen verbinden.\nSowohl Spielen über das lokale Netzwerk als auch Spielen über das Internet werden unterstützt.\n\n[LIGHT_GRAY]Hinweis: Es gibt keine globale Server Liste; Wenn du dich mit jemandem per IP verbinden willst, musst du den Host nach seiner IP fragen.
|
||||||
hostserver = Server hosten
|
hostserver = Server hosten
|
||||||
invitefriends = Invite Friends
|
invitefriends = Freunde einladen
|
||||||
hostserver.mobile = Host\nSpiel
|
hostserver.mobile = Host\nSpiel
|
||||||
host = Host
|
host = Server eröffnen
|
||||||
hosting = [accent] Server wird geöffnet ...
|
hosting = [accent] Server wird eröffnet ...
|
||||||
hosts.refresh = Aktualisieren
|
hosts.refresh = Aktualisieren
|
||||||
hosts.discovering = Suche nach LAN-Spielen
|
hosts.discovering = Suche nach LAN-Spielen
|
||||||
hosts.discovering.any = Discovering games
|
hosts.discovering.any = Suche nach Spielen
|
||||||
server.refreshing = Server wird aktualisiert
|
server.refreshing = Server wird aktualisiert
|
||||||
hosts.none = [lightgray] Keine LAN-Spiele gefunden!
|
hosts.none = [lightgray] Keine LAN-Spiele gefunden!
|
||||||
host.invalid = [scarlet] Kann keine Verbindung zum Host herstellen.
|
host.invalid = [scarlet] Kann keine Verbindung zum Host herstellen.
|
||||||
@@ -152,7 +152,7 @@ trace.ip = IP: [accent]{0}
|
|||||||
trace.id = Eindeutige ID: [accent]{0}
|
trace.id = Eindeutige ID: [accent]{0}
|
||||||
trace.mobile = Mobiler Client: [accent]{0}
|
trace.mobile = Mobiler Client: [accent]{0}
|
||||||
trace.modclient = Gemoddeter Client: [accent]{0}
|
trace.modclient = Gemoddeter Client: [accent]{0}
|
||||||
invalidid = Ungültige Client-ID! Berichte den Bug.
|
invalidid = Ungültige Client-ID! Berichte den Fehler.
|
||||||
server.bans = Bans
|
server.bans = Bans
|
||||||
server.bans.none = Keine gebannten Spieler gefunden!
|
server.bans.none = Keine gebannten Spieler gefunden!
|
||||||
server.admins = Admins
|
server.admins = Admins
|
||||||
@@ -166,18 +166,18 @@ server.version = [lightgray]Version: {0}
|
|||||||
server.custombuild = [yellow]Benutzerdefinierter Build
|
server.custombuild = [yellow]Benutzerdefinierter Build
|
||||||
confirmban = Bist du sicher, dass du diesen Spieler verbannen möchtest?
|
confirmban = Bist du sicher, dass du diesen Spieler verbannen möchtest?
|
||||||
confirmkick = Bist du sicher, dass du diesen Spieler kicken willst?
|
confirmkick = Bist du sicher, dass du diesen Spieler kicken willst?
|
||||||
confirmvotekick = Are you sure you want to vote-kick this player?
|
confirmvotekick = Willst du wirklich eine Abstimmung zum kicken des spielers machen?
|
||||||
confirmunban = Bist du sicher, dass du die Verbannung des Spielers rückgängig machen willst?
|
confirmunban = Bist du sicher, dass du die Verbannung des Spielers rückgängig machen willst?
|
||||||
confirmadmin = Bist du sicher, dass du diesen Spieler zu einem Admin machen möchtest?
|
confirmadmin = Bist du sicher, dass du diesen Spieler zu einem Admin machen möchtest?
|
||||||
confirmunadmin = Bis du sicher, dass dieser Spieler kein Admin mehr sein soll?
|
confirmunadmin = Bis du sicher, dass dieser Spieler kein Admin mehr sein soll?
|
||||||
joingame.title = Spiel beitreten
|
joingame.title = Spiel beitreten
|
||||||
joingame.ip = IP:
|
joingame.ip = IP:
|
||||||
disconnect = Verbindung unterbrochen.
|
disconnect = Verbindung unterbrochen.
|
||||||
disconnect.error = Connection error.
|
disconnect.error = Verbindungsfehler.
|
||||||
disconnect.closed = Connection closed.
|
disconnect.closed = Verbindung geschlossen.
|
||||||
disconnect.timeout = Timed out.
|
disconnect.timeout = Zu langer Verbindungsversuch.
|
||||||
disconnect.data = Fehler beim Laden der Welt!
|
disconnect.data = Fehler beim Laden der Welt!
|
||||||
cantconnect = Unable to join game ([accent]{0}[]).
|
cantconnect = Unfähig, dem Spiel beizutreten ([accent]{0}[]).
|
||||||
connecting = [accent] Verbinde...
|
connecting = [accent] Verbinde...
|
||||||
connecting.data = [accent] Welt wird geladen...
|
connecting.data = [accent] Welt wird geladen...
|
||||||
server.port = Port:
|
server.port = Port:
|
||||||
@@ -216,8 +216,8 @@ save.playtime = Spielzeit: {0}
|
|||||||
warning = Warnung.
|
warning = Warnung.
|
||||||
confirm = Bestätigen
|
confirm = Bestätigen
|
||||||
delete = Löschen
|
delete = Löschen
|
||||||
view.workshop = View In Workshop
|
view.workshop = Im Workshop betrachten
|
||||||
workshop.listing = Edit Workshop Listing
|
workshop.listing = Workshop Auflistung bearbeiten
|
||||||
ok = OK
|
ok = OK
|
||||||
open = Öffnen
|
open = Öffnen
|
||||||
customize = Anpassen
|
customize = Anpassen
|
||||||
@@ -225,22 +225,22 @@ cancel = Abbruch
|
|||||||
openlink = Link öffnen
|
openlink = Link öffnen
|
||||||
copylink = Kopiere Link
|
copylink = Kopiere Link
|
||||||
back = Zurück
|
back = Zurück
|
||||||
data.export = Export Data
|
data.export = Daten exportieren
|
||||||
data.import = Import Data
|
data.import = Daten importieren
|
||||||
data.exported = Data exported.
|
data.exported = Daten exportiert.
|
||||||
data.invalid = This isn't valid game data.
|
data.invalid = Das sind ungültige Spieldateien.
|
||||||
data.import.confirm = Importing external data will erase[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
|
data.import.confirm = Externe Spielstände zu importieren löscht[scarlet] all[] deine jetzigen Spielstände.\n[accent]Dies kann nicht rückgängig gemacht werden![]\n\nSobald die Daten importiert sind, schließt das Spiel.
|
||||||
classic.export = Export Classic Data
|
classic.export = Klassische Dateien exportieren
|
||||||
classic.export.text = [accent]Mindustry[] has just had a major update.\nClassic (v3.5 build 40) save or map data has been detected. Would you like to export these saves to your phone's home folder, for use in the Mindustry Classic app?
|
classic.export.text = [accent]Mindustry[] Mindustry hatte gerade ein rießiges Update.\nKlassische (v3.5 build 40) Spielstand oder Karten-Daten wurden gefunden. Willst du sie in den home-Ordner deines Smartphones exportieren, um sie für die Mindustry-Klassik App zu verwenden?
|
||||||
quit.confirm = Willst du wirklich aufhören?
|
quit.confirm = Willst du wirklich aufhören?
|
||||||
quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[]
|
quit.confirm.tutorial = Willst du das Tutorial wirklich abbrechen?\nDu kannst es unter[accent] Einstellungen->Spiel->Tutorial wiederholen[] erneut spielen.
|
||||||
loading = [accent]Wird geladen...
|
loading = [accent]Wird geladen...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Mods neuladen...
|
||||||
saving = [accent]Speichere...
|
saving = [accent]Speichere...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] um Plan zu löschen
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] zum Auswählen+Kopieren
|
||||||
pausebuilding = [accent][[{0}][] to pause building
|
pausebuilding = [accent][[{0}][] zum Pausieren des Bauens
|
||||||
resumebuilding = [scarlet][[{0}][] to resume building
|
resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen
|
||||||
wave = [accent]Welle {0}
|
wave = [accent]Welle {0}
|
||||||
wave.waiting = Welle in {0}
|
wave.waiting = Welle in {0}
|
||||||
wave.waveInProgress = [LIGHT_GRAY]Welle im Gange
|
wave.waveInProgress = [LIGHT_GRAY]Welle im Gange
|
||||||
@@ -259,18 +259,18 @@ map.nospawn = Diese Karte hat keine Kerne in denen die Spieler beginnen können!
|
|||||||
map.nospawn.pvp = Diese Karte hat keine gegnerischen Kerne wo Gegner starten könnten! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
|
map.nospawn.pvp = Diese Karte hat keine gegnerischen Kerne wo Gegner starten könnten! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
|
||||||
map.nospawn.attack = Diese Karte hat keine gengnerischen Kerne, die Spieler angreifen können! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
|
map.nospawn.attack = Diese Karte hat keine gengnerischen Kerne, die Spieler angreifen können! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
|
||||||
map.invalid = Fehler beim Laden der Karte: Beschädigtes oder ungültige Karten Datei.
|
map.invalid = Fehler beim Laden der Karte: Beschädigtes oder ungültige Karten Datei.
|
||||||
workshop.update = Update Item
|
workshop.update = Item aktualisieren
|
||||||
workshop.error = Error fetching workshop details: {0}
|
workshop.error = Fehler beim laden von Workshop-Daten: {0}
|
||||||
map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up!
|
map.publish.confirm = Willst du wirklich diese Map hochladen?\n\n[lightgray]Vergewissere dich die, der Workshop-EULA zugestimmt zu haben, sonst tauch deine Map nicht auf!
|
||||||
workshop.menu = Select what you would like to do with this item.
|
workshop.menu = Wähle aus, was du mit diesem Item machen willst.
|
||||||
workshop.info = Item Info
|
workshop.info = Item Info
|
||||||
changelog = Changelog (optional):
|
changelog = Changelog (optional):
|
||||||
eula = Steam EULA
|
eula = Steam EULA
|
||||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
missing = Dieses Item wurde verschoben oder gelöscht.\n[lightgray]Die Workshop-Auflistung wird nun automatisch ungekoppelt.
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]Veröffentlichen...
|
||||||
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
|
publish.confirm = Bist du sicher, dies zu veröffentlichen?\n\n[lightgray]Vergewissere dich die, der Workshop-EULA zugestimmt zu haben, sonst tauch deine Karte nicht auf!
|
||||||
publish.error = Error publishing item: {0}
|
publish.error = Fehler beim veröffentlichen des Items: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Fehler beim laden der Steam-Dienste.\nError: {0}
|
||||||
editor.brush = Pinsel
|
editor.brush = Pinsel
|
||||||
editor.openin = Öffne im Editor
|
editor.openin = Öffne im Editor
|
||||||
editor.oregen = Erze generieren
|
editor.oregen = Erze generieren
|
||||||
@@ -278,12 +278,12 @@ editor.oregen.info = Erze generiert:
|
|||||||
editor.mapinfo = Karten Info
|
editor.mapinfo = Karten Info
|
||||||
editor.author = Autor:
|
editor.author = Autor:
|
||||||
editor.description = Beschreibung:
|
editor.description = Beschreibung:
|
||||||
editor.nodescription = A map must have a description of at least 4 characters before being published.
|
editor.nodescription = Eine Karte benötigt mindestens 4 Buchstaben in der Beschreibung, bevor sie veröffentlich werden kann.
|
||||||
editor.waves = Wellen:
|
editor.waves = Wellen:
|
||||||
editor.rules = Regeln:
|
editor.rules = Regeln:
|
||||||
editor.generation = Generator:
|
editor.generation = Generator:
|
||||||
editor.ingame = Im Spiel Bearbeiten
|
editor.ingame = Im Spiel Bearbeiten
|
||||||
editor.publish.workshop = Publish On Workshop
|
editor.publish.workshop = Im Workshop veröffentlichen
|
||||||
editor.newmap = Neue Karte
|
editor.newmap = Neue Karte
|
||||||
workshop = Workshop
|
workshop = Workshop
|
||||||
waves.title = Wellen
|
waves.title = Wellen
|
||||||
@@ -312,7 +312,7 @@ editor.errorload = Fehler beim Laden der Datei:\n[accent]{0}
|
|||||||
editor.errorsave = Fehler beim Speichern der Datei:\n[accent]{0}
|
editor.errorsave = Fehler beim Speichern der Datei:\n[accent]{0}
|
||||||
editor.errorimage = Das ist ein Bild, keine Karte. Wechsel nicht den Dateityp und erwarte, dass es funktioniert.\n\nWenn du eine alte Karte importieren möchtest, benutze den 'Importiere Terrain Bild' Knopf in dem Editor.
|
editor.errorimage = Das ist ein Bild, keine Karte. Wechsel nicht den Dateityp und erwarte, dass es funktioniert.\n\nWenn du eine alte Karte importieren möchtest, benutze den 'Importiere Terrain Bild' Knopf in dem Editor.
|
||||||
editor.errorlegacy = Diese Karte ist zu alt und benutzt ein veraltetes Karten Format, das nicht mehr unterstützt wird.
|
editor.errorlegacy = Diese Karte ist zu alt und benutzt ein veraltetes Karten Format, das nicht mehr unterstützt wird.
|
||||||
editor.errornot = This is not a map file.
|
editor.errornot = Dies ist keine Kartendatei
|
||||||
editor.errorheader = Diese Karte ist entweder nicht gültig oder beschädigt.
|
editor.errorheader = Diese Karte ist entweder nicht gültig oder beschädigt.
|
||||||
editor.errorname = Karte hat keinen Namen.
|
editor.errorname = Karte hat keinen Namen.
|
||||||
editor.update = Aktualisieren
|
editor.update = Aktualisieren
|
||||||
@@ -326,14 +326,14 @@ editor.saved = Gespeichert!
|
|||||||
editor.save.noname = Deine Karte hat keinen Namen! Setze einen Namen im [accent]Karten Info[] Menu.
|
editor.save.noname = Deine Karte hat keinen Namen! Setze einen Namen im [accent]Karten Info[] Menu.
|
||||||
editor.save.overwrite = Deine Karte überschreibt eine built-in Karte! Wähle einen anderen Karten Namen im [accent]'Karten info'[] Menu.
|
editor.save.overwrite = Deine Karte überschreibt eine built-in Karte! Wähle einen anderen Karten Namen im [accent]'Karten info'[] Menu.
|
||||||
editor.import.exists = [scarlet]Fehler beim Import:[] Ein built-in Karte namens '{0}' existiert bereits!
|
editor.import.exists = [scarlet]Fehler beim Import:[] Ein built-in Karte namens '{0}' existiert bereits!
|
||||||
editor.import = Import...
|
editor.import = Importieren...
|
||||||
editor.importmap = Importiere Karte
|
editor.importmap = Importiere Karte
|
||||||
editor.importmap.description = Importiere von einer bestehenden Karte
|
editor.importmap.description = Importiere von einer bestehenden Karte
|
||||||
editor.importfile = Importiere Datei
|
editor.importfile = Importiere Datei
|
||||||
editor.importfile.description = Importiere aus einer Karten Datei
|
editor.importfile.description = Importiere aus einer Karten Datei
|
||||||
editor.importimage = Importiere Terrain Bild
|
editor.importimage = Importiere Terrain Bild
|
||||||
editor.importimage.description = Importiere aus einer Terrain Bild Datei
|
editor.importimage.description = Importiere aus einer Terrain Bild Datei
|
||||||
editor.export = Export...
|
editor.export = Exportieren...
|
||||||
editor.exportfile = Export in Datei
|
editor.exportfile = Export in Datei
|
||||||
editor.exportfile.description = Exportiere in eine Karten Datei
|
editor.exportfile.description = Exportiere in eine Karten Datei
|
||||||
editor.exportimage = Export in Terrain Bild Datei
|
editor.exportimage = Export in Terrain Bild Datei
|
||||||
@@ -404,33 +404,33 @@ ping = Ping: {0}ms
|
|||||||
language.restart = Bitte Starte dein Spiel neu, damit die Sprach-Einstellung aktiv wird.
|
language.restart = Bitte Starte dein Spiel neu, damit die Sprach-Einstellung aktiv wird.
|
||||||
settings = Einstellungen
|
settings = Einstellungen
|
||||||
tutorial = Tutorial
|
tutorial = Tutorial
|
||||||
tutorial.retake = Re-Take Tutorial
|
tutorial.retake = Tutorial wiederholen
|
||||||
editor = Editor
|
editor = Editor
|
||||||
mapeditor = Karten Editor
|
mapeditor = Karten Editor
|
||||||
abandon = Aufgeben
|
abandon = Aufgeben
|
||||||
abandon.text = Diese Zone sowie alle Ressourcen werden dem Gegner überlassen.
|
abandon.text = Diese Zone sowie alle Ressourcen werden dem Gegner überlassen.
|
||||||
locked = Gesperrt
|
locked = Gesperrt
|
||||||
complete = [LIGHT_GRAY]Abschließen:
|
complete = [LIGHT_GRAY]Abschließen:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = Erreiche {0} in {1}
|
||||||
requirement.core = Destroy Enemy Core in {0}
|
requirement.core = Zerstöre Gegnerbasis in {0}
|
||||||
requirement.unlock = Unlock {0}
|
requirement.unlock = Schalte {0} freo
|
||||||
resume = Zu Zone zurückkehren:\n[LIGHT_GRAY]{0}
|
resume = Zu Zone zurückkehren:\n[LIGHT_GRAY]{0}
|
||||||
bestwave = [LIGHT_GRAY]Beste Welle: {0}
|
bestwave = [LIGHT_GRAY]Beste Welle: {0}
|
||||||
launch = Abschluss
|
launch = Abschluss
|
||||||
launch.title = Abschluss erfolgreich
|
launch.title = Abschluss erfolgreich
|
||||||
launch.next = [LIGHT_GRAY]Nächste Möglichkeit bei Welle {0}
|
launch.next = [LIGHT_GRAY]Nächste Möglichkeit bei Welle {0}
|
||||||
launch.unable2 = [scarlet]Unable to LAUNCH.[]
|
launch.unable2 = [scarlet]Unfähig abzuschließen.[]
|
||||||
launch.confirm = Dies wird alle Ressourcen in deinen Kern übertragen.\nDu kannst nicht wieder zu dieser Karte zurückkehren.
|
launch.confirm = Dies wird alle Ressourcen in deinen Kern übertragen.\nDu kannst nicht wieder zu dieser Karte zurückkehren.
|
||||||
launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
|
launch.skip.confirm = Wenn du jetzt überspringst, kannst du nicht vor späteren Wellen abschließen.
|
||||||
uncover = Freischalten
|
uncover = Freischalten
|
||||||
configure = Startitems festlegen
|
configure = Startitems festlegen
|
||||||
bannedblocks = Banned Blocks
|
bannedblocks = Gesperrte Blöcke
|
||||||
addall = Add All
|
addall = Alle hinzufügen
|
||||||
configure.locked = [LIGHT_GRAY]Erreiche Welle {0}\n, um Startitems festlegen zu können.
|
configure.locked = [LIGHT_GRAY]Erreiche Welle {0}\n, um Startitems festlegen zu können.
|
||||||
configure.invalid = Amount must be a number between 0 and {0}.
|
configure.invalid = Anzahl muss zwischen 0 und {0} sein.
|
||||||
zone.unlocked = [LIGHT_GRAY]{0} freigeschaltet.
|
zone.unlocked = [LIGHT_GRAY]{0} freigeschaltet.
|
||||||
zone.requirement.complete = Welle {0} erreicht:\n{1} Anforderungen der Zone erfüllt.
|
zone.requirement.complete = Welle {0} erreicht:\n{1} Anforderungen der Zone erfüllt.
|
||||||
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
|
zone.config.unlocked = Konfiguration:[lightgray]\n{0}
|
||||||
zone.resources = Ressourcen entdeckt:
|
zone.resources = Ressourcen entdeckt:
|
||||||
zone.objective = [lightgray]Ziel: [accent]{0}
|
zone.objective = [lightgray]Ziel: [accent]{0}
|
||||||
zone.objective.survival = Überlebe
|
zone.objective.survival = Überlebe
|
||||||
@@ -457,10 +457,10 @@ zone.desolateRift.name = Trostloser Riss
|
|||||||
zone.nuclearComplex.name = Kernkraftwerk
|
zone.nuclearComplex.name = Kernkraftwerk
|
||||||
zone.overgrowth.name = Überwucherung
|
zone.overgrowth.name = Überwucherung
|
||||||
zone.tarFields.name = Teerfelder
|
zone.tarFields.name = Teerfelder
|
||||||
zone.saltFlats.name = Salzebenen
|
zone.saltFlats.name = Salztiefen
|
||||||
zone.impact0078.name = Auswirkung 0078
|
zone.impact0078.name = Auswirkung 0078
|
||||||
zone.crags.name = Felsen
|
zone.crags.name = Felsen
|
||||||
zone.fungalPass.name = Fungal Pass
|
zone.fungalPass.name = Sporenpass
|
||||||
zone.groundZero.description = Der optimale Ort, um anzufangen. Niedrige Bedrohung durch Gegner. Wenige Ressourcen.\nSammel so viel Kupfer und Blei wie möglich.\nMach weiter!
|
zone.groundZero.description = Der optimale Ort, um anzufangen. Niedrige Bedrohung durch Gegner. Wenige Ressourcen.\nSammel so viel Kupfer und Blei wie möglich.\nMach weiter!
|
||||||
zone.frozenForest.description = Sogar hier, näher an den Bergen, haben sich die Sporen verbreitet. Die kalten Temperaturen können sie nicht für immer im Schach halten.\n\nStarte das Wagnis in Strom. Baue Verbrennungsgeneratoren. Lerne Heiler zu benutzen.
|
zone.frozenForest.description = Sogar hier, näher an den Bergen, haben sich die Sporen verbreitet. Die kalten Temperaturen können sie nicht für immer im Schach halten.\n\nStarte das Wagnis in Strom. Baue Verbrennungsgeneratoren. Lerne Heiler zu benutzen.
|
||||||
zone.desertWastes.description = Diese Abfälle sind riesig, unberechenbar, und durchzogen von verfallenen Sektorstrukturen.\nKohle ist in dieser Region vorhanden. Verbrenne es für Strom, oder synthetisiere Graphit.\n\n[lightgray]Dieser Landeort kann nicht garantiert werden.
|
zone.desertWastes.description = Diese Abfälle sind riesig, unberechenbar, und durchzogen von verfallenen Sektorstrukturen.\nKohle ist in dieser Region vorhanden. Verbrenne es für Strom, oder synthetisiere Graphit.\n\n[lightgray]Dieser Landeort kann nicht garantiert werden.
|
||||||
@@ -472,30 +472,30 @@ zone.overgrowth.description = Dieser Bereich ist bewachsen, näher an der Quelle
|
|||||||
zone.tarFields.description = Der Rand einer Ölförderzone, zwischen Bergen und Wüste. Eine der wenigen Plätze mit nutzbare Teer Reserven.\nObwohl es aufgegeben wurde, hat dieses Gebiet einige gefährliche feindliche Kräfte in der Nähe. Unterschätze sie nicht.\n\n[lightgray]Wenn möglich, erforsche Technologien zur Ölverarbeitung.
|
zone.tarFields.description = Der Rand einer Ölförderzone, zwischen Bergen und Wüste. Eine der wenigen Plätze mit nutzbare Teer Reserven.\nObwohl es aufgegeben wurde, hat dieses Gebiet einige gefährliche feindliche Kräfte in der Nähe. Unterschätze sie nicht.\n\n[lightgray]Wenn möglich, erforsche Technologien zur Ölverarbeitung.
|
||||||
zone.desolateRift.description = Eine extrem gefährliche Zone. Reichlich Ressourcen, aber wenig Platz. Hohe Zerstörungsgefahr. Verlasse es so schnell wie möglich. Lassen Sie sich nicht von den großen Abständen zwischen feindlichen Angriffen in die Irre führen.
|
zone.desolateRift.description = Eine extrem gefährliche Zone. Reichlich Ressourcen, aber wenig Platz. Hohe Zerstörungsgefahr. Verlasse es so schnell wie möglich. Lassen Sie sich nicht von den großen Abständen zwischen feindlichen Angriffen in die Irre führen.
|
||||||
zone.nuclearComplex.description = Eine ehemalige Anlage zur Herstellung und Verarbeitung von Thorium, die in Trümmern liegt.\n[lightgray]Erforsche das Thorium und seine vielen Verwendungsmöglichkeiten.\n\nDer Feind ist hier in großer Zahl präsent und sucht ständig nach Angreifern.
|
zone.nuclearComplex.description = Eine ehemalige Anlage zur Herstellung und Verarbeitung von Thorium, die in Trümmern liegt.\n[lightgray]Erforsche das Thorium und seine vielen Verwendungsmöglichkeiten.\n\nDer Feind ist hier in großer Zahl präsent und sucht ständig nach Angreifern.
|
||||||
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
zone.fungalPass.description = Ein Übergangsgebiet zwischen hohen Bergen und tieferen, sporengeplagter Länder. Eine kleine Späherbasis ist hier angelegt.\nZerstöre sie.\nNutze Dagger und Crawler. Zerstöre die zwei Basen.
|
||||||
zone.impact0078.description = <Beschreibung hier einfügen>
|
zone.impact0078.description = <Beschreibung hier einfügen>
|
||||||
zone.crags.description = <Beschreibung hier einfügen>
|
zone.crags.description = <Beschreibung hier einfügen>
|
||||||
settings.language = Sprache
|
settings.language = Sprache
|
||||||
settings.data = Game Data
|
settings.data = Spieldaten
|
||||||
settings.reset = Auf Standard zurücksetzen
|
settings.reset = Auf Standard zurücksetzen
|
||||||
settings.rebind = Zuweisen
|
settings.rebind = Zuweisen
|
||||||
settings.controls = Steuerung
|
settings.controls = Steuerung
|
||||||
settings.game = Spiel
|
settings.game = Spiel
|
||||||
settings.sound = Audio
|
settings.sound = Audio
|
||||||
settings.graphics = Grafiken
|
settings.graphics = Grafik
|
||||||
settings.cleardata = Spieldaten zurücksetzen...
|
settings.cleardata = Spieldaten zurücksetzen...
|
||||||
settings.clear.confirm = Bist du sicher, dass du die Spieldaten zurücksetzen willst?\n Diese Aktion kann nicht rückgängig gemacht werden!
|
settings.clear.confirm = Bist du sicher, dass du die Spieldaten zurücksetzen willst?\n Diese Aktion kann nicht rückgängig gemacht werden!
|
||||||
settings.clearall.confirm = [scarlet]Warnung![]\nDas wird jegliche Spieldaten zurücksetzen inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Nachdem du 'OK' drückst wird alles zurückgesetzt und das Spiel schließt sich automatisch.
|
settings.clearall.confirm = [scarlet]Warnung![]\nDas wird jegliche Spieldaten zurücksetzen inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Nachdem du 'OK' drückst wird alles zurückgesetzt und das Spiel schließt sich automatisch.
|
||||||
paused = Pausiert
|
paused = Pausiert
|
||||||
clear = Clear
|
clear = Leeren
|
||||||
banned = [scarlet]Banned
|
banned = [scarlet]Banned
|
||||||
yes = Ja
|
yes = Ja
|
||||||
no = Nein
|
no = Nein
|
||||||
info.title = [accent]Info
|
info.title = [accent]Info
|
||||||
error.title = [crimson] Ein Fehler ist aufgetreten
|
error.title = [crimson] Ein Fehler ist aufgetreten
|
||||||
error.crashtitle = Ein Fehler ist aufgetreten!
|
error.crashtitle = Ein Fehler ist aufgetreten!
|
||||||
blocks.input = Input
|
blocks.input = Eingang
|
||||||
blocks.output = Output
|
blocks.output = Ausgang
|
||||||
blocks.booster = Verstärkung
|
blocks.booster = Verstärkung
|
||||||
block.unknown = [LIGHT_GRAY]???
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powercapacity = Kapazität
|
blocks.powercapacity = Kapazität
|
||||||
@@ -509,13 +509,13 @@ blocks.shootrange = Reichweite
|
|||||||
blocks.size = Größe
|
blocks.size = Größe
|
||||||
blocks.liquidcapacity = Flüssigkeitskapazität
|
blocks.liquidcapacity = Flüssigkeitskapazität
|
||||||
blocks.powerrange = Stromreichweite
|
blocks.powerrange = Stromreichweite
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = Maximale Stromverbindungen
|
||||||
blocks.poweruse = Stromverbrauch
|
blocks.poweruse = Stromverbrauch
|
||||||
blocks.powerdamage = Stromverbrauch/Schadenspunkt
|
blocks.powerdamage = Stromverbrauch/Schadenspunkt
|
||||||
blocks.itemcapacity = Materialkapazität
|
blocks.itemcapacity = Materialkapazität
|
||||||
blocks.basepowergeneration = Basis-Stromerzeugung
|
blocks.basepowergeneration = Basis-Stromerzeugung
|
||||||
blocks.productiontime = Produktionszeit
|
blocks.productiontime = Produktionszeit
|
||||||
blocks.repairtime = Block volle Reparaturzeit
|
blocks.repairtime = Zeit zur vollständigen Heilung
|
||||||
blocks.speedincrease = Geschwindigkeitserhöhung
|
blocks.speedincrease = Geschwindigkeitserhöhung
|
||||||
blocks.range = Reichweite
|
blocks.range = Reichweite
|
||||||
blocks.drilltier = Abbaubare Erze
|
blocks.drilltier = Abbaubare Erze
|
||||||
@@ -524,19 +524,19 @@ blocks.boosteffect = Verstärkungseffekt
|
|||||||
blocks.maxunits = Max aktive Einheiten
|
blocks.maxunits = Max aktive Einheiten
|
||||||
blocks.health = Lebenspunkte
|
blocks.health = Lebenspunkte
|
||||||
blocks.buildtime = Baudauer
|
blocks.buildtime = Baudauer
|
||||||
blocks.buildcost = Build Cost
|
blocks.buildcost = Baukosten
|
||||||
blocks.inaccuracy = Ungenauigkeit
|
blocks.inaccuracy = Ungenauigkeit
|
||||||
blocks.shots = Schüsse
|
blocks.shots = Schüsse
|
||||||
blocks.reload = Schüsse/Sekunde
|
blocks.reload = Schüsse/Sekunde
|
||||||
blocks.ammo = Munition
|
blocks.ammo = Munition
|
||||||
bar.drilltierreq = Better Drill Required
|
bar.drilltierreq = Besserer Bohrer benötigt
|
||||||
bar.drillspeed = Bohrgeschwindigkeit: {0}/s
|
bar.drillspeed = Bohrgeschwindigkeit: {0}/s
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = Pump Speed: {0}/s
|
||||||
bar.efficiency = Effizienz: {0}%
|
bar.efficiency = Effizienz: {0}%
|
||||||
bar.powerbalance = Strom: {0}
|
bar.powerbalance = Strom: {0}
|
||||||
bar.powerstored = Stored: {0}/{1}
|
bar.powerstored = Stored: {0}/{1}
|
||||||
bar.poweramount = Strom: {0}
|
bar.poweramount = Strom: {0}
|
||||||
bar.poweroutput = Strom Output: {0}
|
bar.poweroutput = Stromgeneration: {0}
|
||||||
bar.items = Items: {0}
|
bar.items = Items: {0}
|
||||||
bar.capacity = Capacity: {0}
|
bar.capacity = Capacity: {0}
|
||||||
bar.liquid = Flüssigkeit
|
bar.liquid = Flüssigkeit
|
||||||
@@ -547,14 +547,14 @@ bar.spawned = Einheiten: {0}/{1}
|
|||||||
bullet.damage = [stat]{0}[lightgray] Schaden
|
bullet.damage = [stat]{0}[lightgray] Schaden
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
|
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
|
||||||
bullet.incendiary = [stat]entzündend
|
bullet.incendiary = [stat]entzündend
|
||||||
bullet.homing = [stat]verfolgend
|
bullet.homing = [stat]zielsuchend
|
||||||
bullet.shock = [stat]schock
|
bullet.shock = [stat]schock
|
||||||
bullet.frag = [stat]explosiv
|
bullet.frag = [stat]explosiv
|
||||||
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
|
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
|
||||||
bullet.freezing = [stat]gefrierend
|
bullet.freezing = [stat]frierend
|
||||||
bullet.tarred = [stat]geteert
|
bullet.tarred = [stat]teerent
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator
|
bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator
|
||||||
bullet.reload = [stat]{0}[lightgray]x neu laden
|
bullet.reload = [stat]{0}[lightgray]x Feuerrate
|
||||||
unit.blocks = Blöcke
|
unit.blocks = Blöcke
|
||||||
unit.powersecond = Stromeinheiten/Sekunde
|
unit.powersecond = Stromeinheiten/Sekunde
|
||||||
unit.liquidsecond = Flüssigkeitseinheiten/Sekunde
|
unit.liquidsecond = Flüssigkeitseinheiten/Sekunde
|
||||||
@@ -563,7 +563,7 @@ unit.liquidunits = Flüssigkeitseinheiten
|
|||||||
unit.powerunits = Stromeinheiten
|
unit.powerunits = Stromeinheiten
|
||||||
unit.degrees = Grad
|
unit.degrees = Grad
|
||||||
unit.seconds = Sekunden
|
unit.seconds = Sekunden
|
||||||
unit.persecond = /sec
|
unit.persecond = /s
|
||||||
unit.timesspeed = x Geschwindigkeit
|
unit.timesspeed = x Geschwindigkeit
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = Materialeinheiten
|
unit.items = Materialeinheiten
|
||||||
@@ -573,12 +573,12 @@ category.liquids = Flüssigkeiten
|
|||||||
category.items = Materialien
|
category.items = Materialien
|
||||||
category.crafting = Erzeugung
|
category.crafting = Erzeugung
|
||||||
category.shooting = Schießen
|
category.shooting = Schießen
|
||||||
category.optional = Optionale Verbesserungen
|
category.optional = Zusätze
|
||||||
setting.landscape.name = Landschaft sperren
|
setting.landscape.name = Landschaft sperren
|
||||||
setting.shadows.name = Schatten
|
setting.shadows.name = Schatten
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Automatische Blockvorschläge
|
||||||
setting.linear.name = Lineare Filterung
|
setting.linear.name = Lineare Filterung
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Tipps
|
||||||
setting.animatedwater.name = Animiertes Wasser
|
setting.animatedwater.name = Animiertes Wasser
|
||||||
setting.animatedshields.name = Animierte Schilde
|
setting.animatedshields.name = Animierte Schilde
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (Neustart erforderlich)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (Neustart erforderlich)[]
|
||||||
@@ -597,33 +597,36 @@ setting.difficulty.normal = Normal
|
|||||||
setting.difficulty.hard = Schwer
|
setting.difficulty.hard = Schwer
|
||||||
setting.difficulty.insane = Unmöglich
|
setting.difficulty.insane = Unmöglich
|
||||||
setting.difficulty.name = Schwierigkeit
|
setting.difficulty.name = Schwierigkeit
|
||||||
setting.screenshake.name = Bildschirmwackeln
|
setting.screenshake.name = Wackeleffekt
|
||||||
setting.effects.name = Effekte anzeigen
|
setting.effects.name = Effekte anzeigen
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Zerstörte Blöcke anzeigen
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Automatische Wegfindung beim Bau von Förderbändern
|
||||||
setting.sensitivity.name = Controller-Empfindlichkeit
|
setting.sensitivity.name = Controller-Empfindlichkeit
|
||||||
setting.saveinterval.name = Autosave Häufigkeit
|
setting.saveinterval.name = Autosave Häufigkeit
|
||||||
setting.seconds = {0} Sekunden
|
setting.seconds = {0} Sekunden
|
||||||
|
setting.blockselecttimeout.name = Block Auswahl Timeout
|
||||||
|
setting.milliseconds = {0} Millisekunden
|
||||||
setting.fullscreen.name = Vollbild
|
setting.fullscreen.name = Vollbild
|
||||||
setting.borderlesswindow.name = Randloses Fenster[LIGHT_GRAY] (Neustart teilweise erforderlich)
|
setting.borderlesswindow.name = Randloses Fenster[LIGHT_GRAY] (Neustart teilweise erforderlich)
|
||||||
setting.fps.name = Zeige FPS
|
setting.fps.name = Zeige FPS
|
||||||
|
setting.blockselectkeys.name = Block Shortcuts anzeigen
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Verpixeln [LIGHT_GRAY](Könnte die Leistung beeinträchtigen)
|
setting.pixelate.name = Verpixeln [LIGHT_GRAY](Könnte die Leistung beeinträchtigen)
|
||||||
setting.minimap.name = Zeige die Minimap
|
setting.minimap.name = Zeige die Minimap
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Spieler-Position anzeigen
|
||||||
setting.musicvol.name = Musiklautstärke
|
setting.musicvol.name = Musiklautstärke
|
||||||
setting.ambientvol.name = Ambient Volume
|
setting.ambientvol.name = Ambient Volume
|
||||||
setting.mutemusic.name = Musik stummschalten
|
setting.mutemusic.name = Musik stummschalten
|
||||||
setting.sfxvol.name = Audioeffekt-Lautstärke
|
setting.sfxvol.name = Audioeffekt-Lautstärke
|
||||||
setting.mutesound.name = Audioeffekte stummschalten
|
setting.mutesound.name = Audioeffekte stummschalten
|
||||||
setting.crashreport.name = Anonyme Absturzberichte senden
|
setting.crashreport.name = Anonyme Absturzberichte senden
|
||||||
setting.savecreate.name = Auto-Create Saves
|
setting.savecreate.name = Automatisch Speicherstände anlegen
|
||||||
setting.publichost.name = Public Game Visibility
|
setting.publichost.name = Public Game Visibility
|
||||||
setting.chatopacity.name = Chat Deckkraft
|
setting.chatopacity.name = Chat Deckkraft
|
||||||
setting.lasersopacity.name = Power Laser Opacity
|
setting.lasersopacity.name = Power Laser Opacity
|
||||||
setting.playerchat.name = Chat im Spiel anzeigen
|
setting.playerchat.name = Chat im Spiel anzeigen
|
||||||
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
public.confirm = Willst du dein Spiel öffentlich zugänglich machen?\n[accent]Jeder kann deinem Spiel beitreten.\n[lightgray]Dies kann später in den Einstellung->Spielt->Öffentliches Spiel geändert werden.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen.
|
||||||
uiscale.reset = UI-Skalierung wurde geändert.\nDrücke "OK", um diese Skalierung zu bestätigen.\n[scarlet]Zurückkehren und Beenden in[accent] {0}[] Einstellungen...
|
uiscale.reset = UI-Skalierung wurde geändert.\nDrücke "OK", um diese Skalierung zu bestätigen.\n[scarlet]Zurückkehren und Beenden in[accent] {0}[] Einstellungen...
|
||||||
uiscale.cancel = Abbrechen & Beenden
|
uiscale.cancel = Abbrechen & Beenden
|
||||||
setting.bloom.name = Bloom
|
setting.bloom.name = Bloom
|
||||||
@@ -635,29 +638,45 @@ category.multiplayer.name = Mehrspieler
|
|||||||
command.attack = Angreifen
|
command.attack = Angreifen
|
||||||
command.rally = Rally
|
command.rally = Rally
|
||||||
command.retreat = Rückzug
|
command.retreat = Rückzug
|
||||||
|
placement.blockselectkeys = \n[lightgray]Shortcut: [{0},
|
||||||
keybind.clear_building.name = Clear Building
|
keybind.clear_building.name = Clear Building
|
||||||
keybind.press = Drücke eine Taste...
|
keybind.press = Drücke eine Taste...
|
||||||
keybind.press.axis = Drücke eine Taste oder bewege eine Achse...
|
keybind.press.axis = Drücke eine Taste oder bewege eine Achse...
|
||||||
keybind.screenshot.name = Karten Screenshot
|
keybind.screenshot.name = Karten Screenshot
|
||||||
keybind.move_x.name = X-Achse
|
keybind.move_x.name = X-Achse
|
||||||
keybind.move_y.name = Y-Achse
|
keybind.move_y.name = Y-Achse
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Bereich auswählen
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Schematic Menu
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = Entwurf umdrehen X
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = Entwurf umdrehn Y
|
||||||
keybind.fullscreen.name = Toggle Fullscreen
|
keybind.category_prev.name = Vorige Kategorie
|
||||||
|
keybind.category_next.name = Nächste Kategorie
|
||||||
|
keybind.block_select_left.name = Block-Auswahl nach links
|
||||||
|
keybind.block_select_right.name = Block-Auswahl nach rechts
|
||||||
|
keybind.block_select_up.name = Block-Auswahl nach oben
|
||||||
|
keybind.block_select_down.name = Block-Auswahl nach unten
|
||||||
|
keybind.block_select_01.name = Kategorie/Block 1 auswählen
|
||||||
|
keybind.block_select_02.name = Kategorie/Block 2 auswählen
|
||||||
|
keybind.block_select_03.name = Kategorie/Block 3 auswählen
|
||||||
|
keybind.block_select_04.name = Kategorie/Block 4 auswählen
|
||||||
|
keybind.block_select_05.name = Kategorie/Block 5 auswählen
|
||||||
|
keybind.block_select_06.name = Kategorie/Block 6 auswählen
|
||||||
|
keybind.block_select_07.name = Kategorie/Block 7 auswählen
|
||||||
|
keybind.block_select_08.name = Kategorie/Block 8 auswählen
|
||||||
|
keybind.block_select_09.name = Kategorie/Block 9 auswählen
|
||||||
|
keybind.block_select_10.name = Kategorie/Block 10 auswählen
|
||||||
|
keybind.fullscreen.name = Vollbild umschalten
|
||||||
keybind.select.name = Auswählen/Schießen
|
keybind.select.name = Auswählen/Schießen
|
||||||
keybind.diagonal_placement.name = Diagonal platzieren
|
keybind.diagonal_placement.name = Diagonal platzieren
|
||||||
keybind.pick.name = Block Auswählen
|
keybind.pick.name = Block Auswählen
|
||||||
keybind.break_block.name = Block zerstören
|
keybind.break_block.name = Block zerstören
|
||||||
keybind.deselect.name = Auswahl aufheben
|
keybind.deselect.name = Auswahl aufheben
|
||||||
keybind.shoot.name = Schießen
|
keybind.shoot.name = Schießen
|
||||||
keybind.zoom_hold.name = Zoom halten
|
|
||||||
keybind.zoom.name = Zoomen
|
keybind.zoom.name = Zoomen
|
||||||
keybind.menu.name = Menü
|
keybind.menu.name = Menü
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Pausieren/Fortsetzen Bauen
|
||||||
keybind.minimap.name = Minimap
|
Keybind.minimap.name = Minimap
|
||||||
keybind.dash.name = Bindestrich
|
keybind.dash.name = Bindestrich
|
||||||
keybind.chat.name = Chat
|
keybind.chat.name = Chat
|
||||||
keybind.player_list.name = Spielerliste
|
keybind.player_list.name = Spielerliste
|
||||||
@@ -710,7 +729,7 @@ rules.title.unit = Einheiten
|
|||||||
content.item.name = Materialien
|
content.item.name = Materialien
|
||||||
content.liquid.name = Flüssigkeiten
|
content.liquid.name = Flüssigkeiten
|
||||||
content.unit.name = Einheiten
|
content.unit.name = Einheiten
|
||||||
content.block.name = Blocks
|
content.block.name = Blöcke
|
||||||
content.mech.name = Mechs
|
content.mech.name = Mechs
|
||||||
item.copper.name = Kupfer
|
item.copper.name = Kupfer
|
||||||
item.lead.name = Blei
|
item.lead.name = Blei
|
||||||
@@ -753,6 +772,7 @@ mech.trident-ship.name = Trident
|
|||||||
mech.trident-ship.weapon = Bombenschacht
|
mech.trident-ship.weapon = Bombenschacht
|
||||||
mech.glaive-ship.name = Glaive
|
mech.glaive-ship.name = Glaive
|
||||||
mech.glaive-ship.weapon = Flammen-Mehrlader
|
mech.glaive-ship.weapon = Flammen-Mehrlader
|
||||||
|
item.corestorable = [lightgray]Im Kern speicherbar: {0}
|
||||||
item.explosiveness = [LIGHT_GRAY]Explosivität: {0}
|
item.explosiveness = [LIGHT_GRAY]Explosivität: {0}
|
||||||
item.flammability = [LIGHT_GRAY]Entflammbarkeit: {0}
|
item.flammability = [LIGHT_GRAY]Entflammbarkeit: {0}
|
||||||
item.radioactivity = [LIGHT_GRAY]Radioaktivität: {0}
|
item.radioactivity = [LIGHT_GRAY]Radioaktivität: {0}
|
||||||
|
|||||||
@@ -27,19 +27,19 @@ load.mod = Mods
|
|||||||
schematic = Schematic
|
schematic = Schematic
|
||||||
schematic.add = Save Schematic...
|
schematic.add = Save Schematic...
|
||||||
schematics = Schematics
|
schematics = Schematics
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = Un schematic con ese nombre ya existe. ¿Deseas remplazarlo?
|
||||||
schematic.import = Import Schematic...
|
schematic.import = Import Schematic...
|
||||||
schematic.exportfile = Export File
|
schematic.exportfile = Export File
|
||||||
schematic.importfile = Import File
|
schematic.importfile = Import File
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.browseworkshop = Browse Workshop
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.copy = Copiar al portapapeles.
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.copy.import = Importar desde el portapapeles.
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.shareworkshop = Compartir en la Workshop
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Girar Schematic
|
||||||
schematic.saved = Schematic saved.
|
schematic.saved = Schematic guardado.
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.delete.confirm = This schematic will be utterly eradicated.
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = Renombrar Schematic
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} bloques
|
||||||
stat.wave = Oleadas Derrotadas:[accent] {0}
|
stat.wave = Oleadas Derrotadas:[accent] {0}
|
||||||
stat.enemiesDestroyed = Enemigos Destruidos:[accent] {0}
|
stat.enemiesDestroyed = Enemigos Destruidos:[accent] {0}
|
||||||
stat.built = Estructuras Construidas:[accent] {0}
|
stat.built = Estructuras Construidas:[accent] {0}
|
||||||
@@ -80,26 +80,26 @@ uploadingcontent = Uploading Content
|
|||||||
uploadingpreviewfile = Uploading Preview File
|
uploadingpreviewfile = Uploading Preview File
|
||||||
committingchanges = Comitting Changes
|
committingchanges = Comitting Changes
|
||||||
done = Hecho
|
done = Hecho
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Tu dispositivo no soporta esta función.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
mods.guide = Modding Guide
|
mods.guide = Guia de Modding
|
||||||
mods.report = Report Bug
|
mods.report = Reportar Bug
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Abrir carpeta de mods
|
||||||
mod.enabled = [lightgray]Enabled
|
mod.enabled = [lightgray]Enabled
|
||||||
mod.disabled = [scarlet]Disabled
|
mod.disabled = [scarlet]Disabled
|
||||||
mod.disable = Disable
|
mod.disable = Disable
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Fallo al elminar el mod. Quizás el archivo esta en uso.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
||||||
mod.enable = Enable
|
mod.enable = Enable
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import GitHub Mod
|
mod.import.github = Importar Mod de Github
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar?
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
||||||
@@ -120,7 +120,7 @@ server.closing = [accent]Cerrando servidor...
|
|||||||
server.kicked.kick = ¡Has sido expulsado del servidor!
|
server.kicked.kick = ¡Has sido expulsado del servidor!
|
||||||
server.kicked.whitelist = You are not whitelisted here.
|
server.kicked.whitelist = You are not whitelisted here.
|
||||||
server.kicked.serverClose = El servidor ha cerrado.
|
server.kicked.serverClose = El servidor ha cerrado.
|
||||||
server.kicked.vote = You have been vote-kicked. Goodbye.
|
server.kicked.vote = Te han expulsado por voto. Adiós!
|
||||||
server.kicked.clientOutdated = ¡Cliente desactualizado! ¡Actualiza tu juego!
|
server.kicked.clientOutdated = ¡Cliente desactualizado! ¡Actualiza tu juego!
|
||||||
server.kicked.serverOutdated = ¡Servidor desactualizado! ¡Pídele al anfitrión que lo actualice!
|
server.kicked.serverOutdated = ¡Servidor desactualizado! ¡Pídele al anfitrión que lo actualice!
|
||||||
server.kicked.banned = Has sido baneado del servidor.
|
server.kicked.banned = Has sido baneado del servidor.
|
||||||
@@ -132,7 +132,7 @@ server.kicked.nameEmpty = Tu nombre debe por lo menos contener un carácter o n
|
|||||||
server.kicked.idInUse = ¡Ya estás en el servidor! Conectarse con dos cuentas no está permitido.
|
server.kicked.idInUse = ¡Ya estás en el servidor! Conectarse con dos cuentas no está permitido.
|
||||||
server.kicked.customClient = Este servidor no soporta versiones personalizadas. Descarga una versión oficial.
|
server.kicked.customClient = Este servidor no soporta versiones personalizadas. Descarga una versión oficial.
|
||||||
server.kicked.gameover = ¡Fin del juego!
|
server.kicked.gameover = ¡Fin del juego!
|
||||||
server.versions = Your version:[accent] {0}[]\nVersión del servidor:[accent] {1}[]
|
server.versions = Tu versión:[accent] {0}[]\nVersión del servidor:[accent] {1}[]
|
||||||
host.info = El botón [accent]host[] hostea un servidor en el puerto [scarlet]6567[]. \nCualquier persona en la misma [LIGHT_GRAY]wifi o red local[] debería poder ver tu servidor en la lista de servidores.\n\nSi quieres que cualquier persona se pueda conectar de cualquier lugar por IP, la [accent]asignación de puertos[] es requerida.\n\n[LIGHT_GRAY]Nota: Si alguien experimenta problemas conectándose a tu partida LAN, asegúrate de permitir a Mindustry acceso a tu red local mediante la configuración de tu firewall.
|
host.info = El botón [accent]host[] hostea un servidor en el puerto [scarlet]6567[]. \nCualquier persona en la misma [LIGHT_GRAY]wifi o red local[] debería poder ver tu servidor en la lista de servidores.\n\nSi quieres que cualquier persona se pueda conectar de cualquier lugar por IP, la [accent]asignación de puertos[] es requerida.\n\n[LIGHT_GRAY]Nota: Si alguien experimenta problemas conectándose a tu partida LAN, asegúrate de permitir a Mindustry acceso a tu red local mediante la configuración de tu firewall.
|
||||||
join.info = Aquí, puedes escribir la [accent]IP de un server[] para conectarte, o descubrir servidores de [accent]red local[] para conectarte.\nLAN y WAN es soportado para jugar en multijugador.\n\n[LIGHT_GRAY]Nota: No hay una lista automática global de servidores; si quieres conectarte por IP, tendrás que preguntarle al anfitrión por la IP.
|
join.info = Aquí, puedes escribir la [accent]IP de un server[] para conectarte, o descubrir servidores de [accent]red local[] para conectarte.\nLAN y WAN es soportado para jugar en multijugador.\n\n[LIGHT_GRAY]Nota: No hay una lista automática global de servidores; si quieres conectarte por IP, tendrás que preguntarle al anfitrión por la IP.
|
||||||
hostserver = Hostear Servidor
|
hostserver = Hostear Servidor
|
||||||
@@ -235,7 +235,7 @@ classic.export.text = [accent]Mindustry[] has just had a major update.\nClassic
|
|||||||
quit.confirm = ¿Estás seguro de querer salir de la partida?
|
quit.confirm = ¿Estás seguro de querer salir de la partida?
|
||||||
quit.confirm.tutorial = ¿Estás seguro de que sabes qué estas haciendo?\nSe puede hacer el tutorial de nuevo in[accent] Ajustes->Juego->Volver a hacer tutorial.[]
|
quit.confirm.tutorial = ¿Estás seguro de que sabes qué estas haciendo?\nSe puede hacer el tutorial de nuevo in[accent] Ajustes->Juego->Volver a hacer tutorial.[]
|
||||||
loading = [accent]Cargando...
|
loading = [accent]Cargando...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Recargando mods...
|
||||||
saving = [accent]Guardando...
|
saving = [accent]Guardando...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] to clear plan
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] to select+copy
|
||||||
@@ -401,7 +401,7 @@ load = Cargar
|
|||||||
save = Guardar
|
save = Guardar
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Ping: {0} ms
|
ping = Ping: {0} ms
|
||||||
language.restart = Por favor reinicie el juego para que los cambios del lenguaje surjan efecto.
|
language.restart = Por favor reinicia el juego para que los cambios de idioma tengan efecto.
|
||||||
settings = Ajustes
|
settings = Ajustes
|
||||||
tutorial = Tutorial
|
tutorial = Tutorial
|
||||||
tutorial.retake = Volver a hacer tutorial
|
tutorial.retake = Volver a hacer tutorial
|
||||||
@@ -411,9 +411,9 @@ abandon = Abandonar
|
|||||||
abandon.text = Esta zona y sus recursos se perderán ante el enemigo.
|
abandon.text = Esta zona y sus recursos se perderán ante el enemigo.
|
||||||
locked = Bloqueado
|
locked = Bloqueado
|
||||||
complete = [LIGHT_GRAY]Completado:
|
complete = [LIGHT_GRAY]Completado:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = Alcanzar la oleada{0} en {1}
|
||||||
requirement.core = Destroy Enemy Core in {0}
|
requirement.core = Destruir el núcleo enemigo en {0}
|
||||||
requirement.unlock = Unlock {0}
|
requirement.unlock = Desbloquear {0}
|
||||||
resume = Continuar Zona:\n[LIGHT_GRAY]{0}
|
resume = Continuar Zona:\n[LIGHT_GRAY]{0}
|
||||||
bestwave = [LIGHT_GRAY]Récord: {0}
|
bestwave = [LIGHT_GRAY]Récord: {0}
|
||||||
launch = Lanzar
|
launch = Lanzar
|
||||||
@@ -446,7 +446,7 @@ error.alreadyconnected = Ya estás conectado.
|
|||||||
error.mapnotfound = ¡Archivo de mapa no encontrado!
|
error.mapnotfound = ¡Archivo de mapa no encontrado!
|
||||||
error.io = Error I/O de conexión.
|
error.io = Error I/O de conexión.
|
||||||
error.any = Error de red desconocido.
|
error.any = Error de red desconocido.
|
||||||
error.bloom = Failed to initialize bloom.\nYour device may not support it.
|
error.bloom = Error al cargar el bloom.\nPuede que tu dispositivo no soporte esta característica.
|
||||||
zone.groundZero.name = Terreno Cero
|
zone.groundZero.name = Terreno Cero
|
||||||
zone.desertWastes.name = Ruinas del Desierto
|
zone.desertWastes.name = Ruinas del Desierto
|
||||||
zone.craters.name = Los Cráteres
|
zone.craters.name = Los Cráteres
|
||||||
@@ -461,7 +461,7 @@ zone.saltFlats.name = Salinas
|
|||||||
zone.impact0078.name = Impacto 0078
|
zone.impact0078.name = Impacto 0078
|
||||||
zone.crags.name = Riscos
|
zone.crags.name = Riscos
|
||||||
zone.fungalPass.name = Fungal Pass
|
zone.fungalPass.name = Fungal Pass
|
||||||
zone.groundZero.description = La zona óptima para empear una vez más. Riesgo bajo de los enemigos. Pocos recursos.\nConsigue tanto plomo y cobre como puedas.\nSigue avanzando.
|
zone.groundZero.description = La zona óptima para empezar una vez más. Riesgo bajo de los enemigos. Pocos recursos.\nConsigue tanto plomo y cobre como puedas.\nSigue avanzando.
|
||||||
zone.frozenForest.description = Incluso aquí, cerca de las montañas, las esporas se han expandido. Las temperaturas gélidas no pueden contenerlas para siempre.\n\nEmpieza a investigar sobre energía. Cnstruye generadores de combustión. Aprende a usar reparadores.
|
zone.frozenForest.description = Incluso aquí, cerca de las montañas, las esporas se han expandido. Las temperaturas gélidas no pueden contenerlas para siempre.\n\nEmpieza a investigar sobre energía. Cnstruye generadores de combustión. Aprende a usar reparadores.
|
||||||
zone.desertWastes.description = Estas ruinas son vastas, impredecibles y entrecruzadas con sectores de estructuras abandonadas.\nHay carbñon presente en la región. Quémalo para energía, o sintetiza grafito.\n\n[lightgray]La zona de aparición no puede ser garantizada.
|
zone.desertWastes.description = Estas ruinas son vastas, impredecibles y entrecruzadas con sectores de estructuras abandonadas.\nHay carbñon presente en la región. Quémalo para energía, o sintetiza grafito.\n\n[lightgray]La zona de aparición no puede ser garantizada.
|
||||||
zone.saltFlats.description = A las afueras del desierto se encuentran las Salinas. Pocos recursos pueden ser encontrados en esta ubicación.\n\nEl enemigo ha erigido un complejo de almacén de recursos aquí. Erradica su núcleo. No dejes nada.
|
zone.saltFlats.description = A las afueras del desierto se encuentran las Salinas. Pocos recursos pueden ser encontrados en esta ubicación.\n\nEl enemigo ha erigido un complejo de almacén de recursos aquí. Erradica su núcleo. No dejes nada.
|
||||||
@@ -488,7 +488,7 @@ settings.clear.confirm = ¿Estas seguro de querer limpiar estos datos?\n¡Esta a
|
|||||||
settings.clearall.confirm = [scarlet]ADVERTENCIA![]\nEsto va a eliminar todos tus datos, incluyendo guardados, mapas, desbloqueos y atajos de teclado.\nUna vez presiones 'ok', el juego va a borrrar todos tus datos y saldrá del juego automáticamente.
|
settings.clearall.confirm = [scarlet]ADVERTENCIA![]\nEsto va a eliminar todos tus datos, incluyendo guardados, mapas, desbloqueos y atajos de teclado.\nUna vez presiones 'ok', el juego va a borrrar todos tus datos y saldrá del juego automáticamente.
|
||||||
paused = [accent] < Pausado >
|
paused = [accent] < Pausado >
|
||||||
clear = Clear
|
clear = Clear
|
||||||
banned = [scarlet]Banned
|
banned = [scarlet]Baneado
|
||||||
yes = Sí
|
yes = Sí
|
||||||
no = No
|
no = No
|
||||||
info.title = [accent]Información
|
info.title = [accent]Información
|
||||||
@@ -550,8 +550,8 @@ bullet.incendiary = [stat]incendiaria
|
|||||||
bullet.homing = [stat]homing
|
bullet.homing = [stat]homing
|
||||||
bullet.shock = [stat]shock
|
bullet.shock = [stat]shock
|
||||||
bullet.frag = [stat]frag
|
bullet.frag = [stat]frag
|
||||||
bullet.knockback = [stat]{0}[lightgray] knockback
|
bullet.knockback = [stat]{0}[lightgray]Empuje
|
||||||
bullet.freezing = [stat]freezing
|
bullet.freezing = [stat]Congelación
|
||||||
bullet.tarred = [stat]tarred
|
bullet.tarred = [stat]tarred
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munición
|
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munición
|
||||||
bullet.reload = [stat]{0}[lightgray]x recarga
|
bullet.reload = [stat]{0}[lightgray]x recarga
|
||||||
@@ -576,7 +576,7 @@ category.shooting = Disparo
|
|||||||
category.optional = Mejoras Opcionales
|
category.optional = Mejoras Opcionales
|
||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Sombras
|
setting.shadows.name = Sombras
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Sugerir bloques al construir
|
||||||
setting.linear.name = Linear Filtering
|
setting.linear.name = Linear Filtering
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Hints
|
||||||
setting.animatedwater.name = Agua Animada
|
setting.animatedwater.name = Agua Animada
|
||||||
@@ -589,7 +589,7 @@ setting.touchscreen.name = Touchscreen Controls
|
|||||||
setting.fpscap.name = Máx FPS
|
setting.fpscap.name = Máx FPS
|
||||||
setting.fpscap.none = Nada
|
setting.fpscap.none = Nada
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.uiscale.name = Escala de IU[lightgray] (necesita reiniciar)[]
|
setting.uiscale.name = Escala de UI[lightgray] (necesita reiniciar)[]
|
||||||
setting.swapdiagonal.name = Siempre Colocar Diagonalmente
|
setting.swapdiagonal.name = Siempre Colocar Diagonalmente
|
||||||
setting.difficulty.training = entrenamiento
|
setting.difficulty.training = entrenamiento
|
||||||
setting.difficulty.easy = fácil
|
setting.difficulty.easy = fácil
|
||||||
@@ -599,7 +599,7 @@ setting.difficulty.insane = locura
|
|||||||
setting.difficulty.name = Dificultad:
|
setting.difficulty.name = Dificultad:
|
||||||
setting.screenshake.name = Movimiento de la Pantalla
|
setting.screenshake.name = Movimiento de la Pantalla
|
||||||
setting.effects.name = Mostrar Efectos
|
setting.effects.name = Mostrar Efectos
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Mostrar bloques destruidos
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
||||||
setting.sensitivity.name = Sensibilidad del Control
|
setting.sensitivity.name = Sensibilidad del Control
|
||||||
setting.saveinterval.name = Intervalo del Autoguardado
|
setting.saveinterval.name = Intervalo del Autoguardado
|
||||||
@@ -607,7 +607,7 @@ setting.seconds = {0} Segundos
|
|||||||
setting.fullscreen.name = Pantalla Completa
|
setting.fullscreen.name = Pantalla Completa
|
||||||
setting.borderlesswindow.name = Ventana sin Bordes[LIGHT_GRAY] (podría requerir un reinicio)
|
setting.borderlesswindow.name = Ventana sin Bordes[LIGHT_GRAY] (podría requerir un reinicio)
|
||||||
setting.fps.name = Mostrar FPS
|
setting.fps.name = Mostrar FPS
|
||||||
setting.vsync.name = SincV
|
setting.vsync.name = Vsync (Limita los fps a los Hz de tu pantalla)
|
||||||
setting.pixelate.name = Pixelar [LIGHT_GRAY](podría reducir el rendimiento)
|
setting.pixelate.name = Pixelar [LIGHT_GRAY](podría reducir el rendimiento)
|
||||||
setting.minimap.name = Mostrar Minimapa
|
setting.minimap.name = Mostrar Minimapa
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Show Player Position
|
||||||
@@ -617,25 +617,25 @@ setting.mutemusic.name = Silenciar Musica
|
|||||||
setting.sfxvol.name = Volumen de los efectos de sonido
|
setting.sfxvol.name = Volumen de los efectos de sonido
|
||||||
setting.mutesound.name = Silenciar Sonido
|
setting.mutesound.name = Silenciar Sonido
|
||||||
setting.crashreport.name = Enviar informes de fallos anónimos
|
setting.crashreport.name = Enviar informes de fallos anónimos
|
||||||
setting.savecreate.name = Auto-Create Saves
|
setting.savecreate.name = Crear puntos de guardado automáticamente
|
||||||
setting.publichost.name = Public Game Visibility
|
setting.publichost.name = Public Game Visibility
|
||||||
setting.chatopacity.name = Opacidad del Chat
|
setting.chatopacity.name = Opacidad del Chat
|
||||||
setting.lasersopacity.name = Power Laser Opacity
|
setting.lasersopacity.name = Opacidad de los rayos láser
|
||||||
setting.playerchat.name = Display In-Game Chat
|
setting.playerchat.name = Mostrar el chat in-game
|
||||||
public.confirm = Do you want to make your game public?\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
public.confirm = Do you want to make your game public?\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Recuerda que en las versiones beta del juego no puedes crear partidas públicas.
|
||||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
|
uiscale.reset = La escala de la interfaz ha sido modificada con éxito.\nPulsa "OK" para conservar esta escala.\n[scarlet]Deshaciendo los cambios y saliendo al menu en [accent] {0}[]segundos...
|
||||||
uiscale.cancel = Cancelar & Salir
|
uiscale.cancel = Cancelar & Salir
|
||||||
setting.bloom.name = Bloom
|
setting.bloom.name = Bloom
|
||||||
keybind.title = Cambiar accesos de teclado
|
keybind.title = Cambiar accesos de teclado
|
||||||
keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only basic movement is supported.
|
keybinds.mobile = [scarlet]Los accesos del teclado aquí mostrados no estan disponible en Móviles o Tablets. Solo aceptan movimiento básico.
|
||||||
category.general.name = General
|
category.general.name = General
|
||||||
category.view.name = Visión
|
category.view.name = Visión
|
||||||
category.multiplayer.name = Multijugador
|
category.multiplayer.name = Multijugador
|
||||||
command.attack = Atacar
|
command.attack = Atacar
|
||||||
command.rally = Rally
|
command.rally = Rally
|
||||||
command.retreat = Retirarse
|
command.retreat = Retirarse
|
||||||
keybind.clear_building.name = Clear Building
|
keybind.clear_building.name = Limpiar construcción
|
||||||
keybind.press = Presiona una tecla...
|
keybind.press = Presiona una tecla...
|
||||||
keybind.press.axis = Pulsa un eje o botón...
|
keybind.press.axis = Pulsa un eje o botón...
|
||||||
keybind.screenshot.name = Captura de pantalla de Mapa
|
keybind.screenshot.name = Captura de pantalla de Mapa
|
||||||
@@ -643,8 +643,8 @@ keybind.move_x.name = Mover x
|
|||||||
keybind.move_y.name = Mover y
|
keybind.move_y.name = Mover y
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Select Region
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Schematic Menu
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = Girar schematic X
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = Girar schematic Y
|
||||||
keybind.fullscreen.name = Intercambiar con Pantalla Completa
|
keybind.fullscreen.name = Intercambiar con Pantalla Completa
|
||||||
keybind.select.name = Seleccionar
|
keybind.select.name = Seleccionar
|
||||||
keybind.diagonal_placement.name = Construcción Diagonal
|
keybind.diagonal_placement.name = Construcción Diagonal
|
||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Pick Block
|
|||||||
keybind.break_block.name = Destruir Bloque
|
keybind.break_block.name = Destruir Bloque
|
||||||
keybind.deselect.name = Deseleccionar
|
keybind.deselect.name = Deseleccionar
|
||||||
keybind.shoot.name = Disparar
|
keybind.shoot.name = Disparar
|
||||||
keybind.zoom_hold.name = Mantener Zoom
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menú
|
keybind.menu.name = Menú
|
||||||
keybind.pause.name = Pausa
|
keybind.pause.name = Pausa
|
||||||
@@ -859,7 +858,7 @@ block.lancer.name = Lancero
|
|||||||
block.conveyor.name = Cinta Transportadora
|
block.conveyor.name = Cinta Transportadora
|
||||||
block.titanium-conveyor.name = Cinta Transportadora de Titanio
|
block.titanium-conveyor.name = Cinta Transportadora de Titanio
|
||||||
block.armored-conveyor.name = Armored Conveyor
|
block.armored-conveyor.name = Armored Conveyor
|
||||||
block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyors.
|
block.armored-conveyor.description = Mueve items a la misma veolcidad que una cinta de titanio, pero tiene mas armadura. No acepta entradas por los lados a menos que sean lineas transportadoras.
|
||||||
block.junction.name = Cruce
|
block.junction.name = Cruce
|
||||||
block.router.name = Enrutador
|
block.router.name = Enrutador
|
||||||
block.distributor.name = Distribuidor
|
block.distributor.name = Distribuidor
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Vali blokk
|
|||||||
keybind.break_block.name = Hävita blokk
|
keybind.break_block.name = Hävita blokk
|
||||||
keybind.deselect.name = Tühista valik
|
keybind.deselect.name = Tühista valik
|
||||||
keybind.shoot.name = Tulista
|
keybind.shoot.name = Tulista
|
||||||
keybind.zoom_hold.name = Suumimise režiim
|
|
||||||
keybind.zoom.name = Muuda suumi
|
keybind.zoom.name = Muuda suumi
|
||||||
keybind.menu.name = Menüü
|
keybind.menu.name = Menüü
|
||||||
keybind.pause.name = Paus
|
keybind.pause.name = Paus
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ credits = Kredituak
|
|||||||
contributors = Itzultzaile eta kolaboratzaileak
|
contributors = Itzultzaile eta kolaboratzaileak
|
||||||
discord = Elkartu Mindustry Discord-era!
|
discord = Elkartu Mindustry Discord-era!
|
||||||
link.discord.description = Mindustry Discord txat gela ofiziala
|
link.discord.description = Mindustry Discord txat gela ofiziala
|
||||||
link.reddit.description = The Mindustry subreddit
|
link.reddit.description = Mindustry azpireddita
|
||||||
link.github.description = Jolasaren iturburu kodea
|
link.github.description = Jolasaren iturburu kodea
|
||||||
link.changelog.description = Eguneraketaren aldaketen zerrenda
|
link.changelog.description = Eguneraketaren aldaketen zerrenda
|
||||||
link.dev-builds.description = Garapen konpilazio ezegonkorrak
|
link.dev-builds.description = Garapen konpilazio ezegonkorrak
|
||||||
@@ -17,29 +17,29 @@ screenshot.invalid = Mapa handiegia, baliteke pantaila-argazkirako memoria nahik
|
|||||||
gameover = Partida amaitu da
|
gameover = Partida amaitu da
|
||||||
gameover.pvp = [accent] {0}[] taldeak irabazi du!
|
gameover.pvp = [accent] {0}[] taldeak irabazi du!
|
||||||
highscore = [accent]Marka berria!
|
highscore = [accent]Marka berria!
|
||||||
copied = Copied.
|
copied = Kopiatuta.
|
||||||
load.sound = Soinuak
|
load.sound = Soinuak
|
||||||
load.map = Mapak
|
load.map = Mapak
|
||||||
load.image = Irudiak
|
load.image = Irudiak
|
||||||
load.content = Edukia
|
load.content = Edukia
|
||||||
load.system = Sistema
|
load.system = Sistema
|
||||||
load.mod = Mods
|
load.mod = Mod-ak
|
||||||
schematic = Schematic
|
schematic = Eskama
|
||||||
schematic.add = Save Schematic...
|
schematic.add = Gorde eskema...
|
||||||
schematics = Schematics
|
schematics = Eskemak
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = Badago izen bereko eskema bat. Ordeztu nahi duzu?
|
||||||
schematic.import = Import Schematic...
|
schematic.import = Inportatu eskema...
|
||||||
schematic.exportfile = Export File
|
schematic.exportfile = Esportatu fitxategia
|
||||||
schematic.importfile = Import File
|
schematic.importfile = Inportatu fitxategia
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.browseworkshop = Arakatu tailerra
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.copy = Kopiatu arbelera
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.copy.import = Inportatu arbeletik
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.shareworkshop = Partekatu tailerrean
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: itzulbiratu eskema
|
||||||
schematic.saved = Schematic saved.
|
schematic.saved = Eskema gordeta.
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.delete.confirm = Eskema hau behin betiko suntsituko da.
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = Aldatu izena eskemari
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} bloke
|
||||||
stat.wave = Garaitutako boladak:[accent] {0}
|
stat.wave = Garaitutako boladak:[accent] {0}
|
||||||
stat.enemiesDestroyed = Suntsitutako etsaiak:[accent] {0}
|
stat.enemiesDestroyed = Suntsitutako etsaiak:[accent] {0}
|
||||||
stat.built = Eraikitako eraikinak:[accent] {0}
|
stat.built = Eraikitako eraikinak:[accent] {0}
|
||||||
@@ -48,7 +48,7 @@ stat.deconstructed = Deseraikitako eraikinak:[accent] {0}
|
|||||||
stat.delivered = Egotzitako baliabideak:
|
stat.delivered = Egotzitako baliabideak:
|
||||||
stat.rank = Azken graduazioa: [accent]{0}
|
stat.rank = Azken graduazioa: [accent]{0}
|
||||||
launcheditems = [accent]Egotzitako baliabideak
|
launcheditems = [accent]Egotzitako baliabideak
|
||||||
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
|
launchinfo = [unlaunched][[EGOTZI] zure muina urdinez adierazitako baliabideak eskuratzeko.
|
||||||
map.delete = Ziur al zaude "[accent]{0}[]" mapa ezabatu nahi duzula?
|
map.delete = Ziur al zaude "[accent]{0}[]" mapa ezabatu nahi duzula?
|
||||||
level.highscore = Marka: [accent]{0}
|
level.highscore = Marka: [accent]{0}
|
||||||
level.select = Maila hautaketa
|
level.select = Maila hautaketa
|
||||||
@@ -64,7 +64,7 @@ customgame = Partida pertsonalizatua
|
|||||||
newgame = Partida berria
|
newgame = Partida berria
|
||||||
none = <bat ere ez>
|
none = <bat ere ez>
|
||||||
minimap = Mapatxoa
|
minimap = Mapatxoa
|
||||||
position = Position
|
position = Posizioa
|
||||||
close = Itxi
|
close = Itxi
|
||||||
website = Webgunea
|
website = Webgunea
|
||||||
quit = Irten
|
quit = Irten
|
||||||
@@ -80,30 +80,30 @@ uploadingcontent = Edukia igotzen
|
|||||||
uploadingpreviewfile = Aurrebista fitxategia igotzen
|
uploadingpreviewfile = Aurrebista fitxategia igotzen
|
||||||
committingchanges = Aldaketak aplikatzen
|
committingchanges = Aldaketak aplikatzen
|
||||||
done = Egina
|
done = Egina
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Zure gailuak ez du ezaugarri hau onartzen.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
mods.alphainfo = Kontuan izan mod-ak alfa egoeran daudela, eta [scarlet] akats ugari izan ditzakete[].\nEman arazoen berri Mindustry-ren GitHub or Discord zerbitzuetan.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alfa)
|
||||||
mods = Mods
|
mods = Mod-ak
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]Ez da mod-ik aurkitu!
|
||||||
mods.guide = Modding Guide
|
mods.guide = Mod-ak sortzeko gida
|
||||||
mods.report = Report Bug
|
mods.report = Eman akatsaren berri
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Ireki Mod-en karpeta
|
||||||
mod.enabled = [lightgray]Enabled
|
mod.enabled = [lightgray]Gaituta
|
||||||
mod.disabled = [scarlet]Disabled
|
mod.disabled = [scarlet]Desgaituta
|
||||||
mod.disable = Disable
|
mod.disable = Desgaitu
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Ezin izan da mod-a ezabatu. Agian fitxategia erabilia izaten ari da.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Falta diren menpekotasunak: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]'{0}' mod-ak menpekotasunak ditu faltan:[accent] {1}\n[lightgray]Aurretik beste mod hauek deskargatu behar dira.\nMod hau automatikoki desgaituko da.
|
||||||
mod.enable = Enable
|
mod.enable = Gaitu
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = Jolasa itxi egingo da mod-aren aldaketak aplikatzeko.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Birkargatu behar da
|
||||||
mod.import = Import Mod
|
mod.import = Importatu Mod-a
|
||||||
mod.import.github = Import GitHub Mod
|
mod.import.github = Inportatu GitHub Mod-a
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = Mod hau ezabatuko da.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Egilea:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = Gordetako partida honek eguneratu dituzun edo jada instalatuta ez dituzun mod-ak ditu. Gordetako partida izorratu daiteke. Ziur kargatu nahi duzula?\n[lightgray]Mod-ak:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Mod hau tailerrean argitaratu aurretik, aurrebista bat gehitu behar diozu.\nKokatu[accent] preview.png[] izeneko irudi bat mod-aren karpetan eta saiatu berriro.
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.folder.missing = Karpeta formatuko mod-ak besterik ezin dira argitaratu tailerrean.\nEdozein mod karpetara bihurtzeko, deskopnrimitu fitxategia eta ezabatu zip zaharra, gero berrabiarazi jolasa edo birkargatu zure mod-ak.
|
||||||
about.button = Honi buruz
|
about.button = Honi buruz
|
||||||
name = Izena:
|
name = Izena:
|
||||||
noname = Hautatu[accent] jokalari-izena[] aurretik.
|
noname = Hautatu[accent] jokalari-izena[] aurretik.
|
||||||
@@ -216,8 +216,8 @@ save.playtime = Jolastua: {0}
|
|||||||
warning = Abisua.
|
warning = Abisua.
|
||||||
confirm = Baieztatu
|
confirm = Baieztatu
|
||||||
delete = Ezabatu
|
delete = Ezabatu
|
||||||
view.workshop = Ikusi lantegian
|
view.workshop = Ikusi tailerrean
|
||||||
workshop.listing = Edit Workshop Listing
|
workshop.listing = Editatu tailerreko zerrenda
|
||||||
ok = Ados
|
ok = Ados
|
||||||
open = Ireki
|
open = Ireki
|
||||||
customize = Aldatu arauak
|
customize = Aldatu arauak
|
||||||
@@ -235,12 +235,12 @@ classic.export.text = [accent]Mindustry[] jolasak eguneraketa nagusi bat jaso du
|
|||||||
quit.confirm = Ziur irten nahi duzula?
|
quit.confirm = Ziur irten nahi duzula?
|
||||||
quit.confirm.tutorial = Ziur al zaude irten nahi duzula?\nTutoriala berriro hasi dezakezu hemen: [accent] Ezarpenak->Jolasa->Berriro hasi tutoriala.[]
|
quit.confirm.tutorial = Ziur al zaude irten nahi duzula?\nTutoriala berriro hasi dezakezu hemen: [accent] Ezarpenak->Jolasa->Berriro hasi tutoriala.[]
|
||||||
loading = [accent]Kargatzen...
|
loading = [accent]Kargatzen...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Mod-ak birkargatzen...
|
||||||
saving = [accent]Gordetzen...
|
saving = [accent]Gordetzen...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] plan bat ezabatzeko
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] hautatu+kopiatzeko
|
||||||
pausebuilding = [accent][[{0}][] to pause building
|
pausebuilding = [accent][[{0}][] eraikiketa eteteko
|
||||||
resumebuilding = [scarlet][[{0}][] to resume building
|
resumebuilding = [scarlet][[{0}][] eraikiketa berrekiteko
|
||||||
wave = [accent]{0}. bolada
|
wave = [accent]{0}. bolada
|
||||||
wave.waiting = [lightgray]Boladarako {0}
|
wave.waiting = [lightgray]Boladarako {0}
|
||||||
wave.waveInProgress = [lightgray]Bolada abian
|
wave.waveInProgress = [lightgray]Bolada abian
|
||||||
@@ -259,18 +259,18 @@ map.nospawn = Mapa honek ez du muinik jokalaria sortu dadin! Gehitu muin [accent
|
|||||||
map.nospawn.pvp = Mapa honek ez du etsaien muinik jokalaria sortu dadin! Gehitu [SCARLET]laranja ez den[] muinen bat edo batzuk mapa honi editorean.
|
map.nospawn.pvp = Mapa honek ez du etsaien muinik jokalaria sortu dadin! Gehitu [SCARLET]laranja ez den[] muinen bat edo batzuk mapa honi editorean.
|
||||||
map.nospawn.attack = Mapa honek ez du etsaien muinik jokalariak eraso dezan! Gehitu muin [SCARLET]gorriak[] mapa honi editorean.
|
map.nospawn.attack = Mapa honek ez du etsaien muinik jokalariak eraso dezan! Gehitu muin [SCARLET]gorriak[] mapa honi editorean.
|
||||||
map.invalid = Errorea mapa kargatzean: Mapa-fitxategi baliogabe edo hondatua.
|
map.invalid = Errorea mapa kargatzean: Mapa-fitxategi baliogabe edo hondatua.
|
||||||
workshop.update = Update Item
|
workshop.update = Eguneratu elementua
|
||||||
workshop.error = Error fetching workshop details: {0}
|
workshop.error = Errorea tailerreko xehetasunak eskuratzean: {0}
|
||||||
map.publish.confirm = Ziur mapa hau argitaratu nahi duzula?\n\n[lightgray]Ziurtatu aurretik lantegiaren erabilera arauekin bat zatozela, bestela zure mapak ez dira agertuko!
|
map.publish.confirm = Ziur mapa hau argitaratu nahi duzula?\n\n[lightgray]Ziurtatu aurretik lantegiaren erabilera arauekin bat zatozela, bestela zure mapak ez dira agertuko!
|
||||||
workshop.menu = Select what you would like to do with this item.
|
workshop.menu = Erabaki elementu honekin zer egin nahi duzun.
|
||||||
workshop.info = Item Info
|
workshop.info = Elementuaren informazioa
|
||||||
changelog = Changelog (optional):
|
changelog = Aldaketa egunkatia (aukerakoa):
|
||||||
eula = Steam EULA
|
eula = Steam EULA
|
||||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
missing = Elementu hau ezabatu edo lekuz aldatu da.\n[lightgray]Tailerreko zerrendatik kendu da automatikoki.
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]Argitaratzen...
|
||||||
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
|
publish.confirm = Ziur hau argitaratu nahi duzula?\n\n[lightgray]Egiaztatu tailerreko EULA lizentziarekin ados zaudela aurretik, bestela zure elementuak ez dira agertuko!
|
||||||
publish.error = Error publishing item: {0}
|
publish.error = Errorea elementua argitaratzean: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Huts egin du Steam zerbitzuak hasieratzean.\nErrorea: {0}
|
||||||
editor.brush = Brotxa
|
editor.brush = Brotxa
|
||||||
editor.openin = Ireki editorean
|
editor.openin = Ireki editorean
|
||||||
editor.oregen = Mea sorrera
|
editor.oregen = Mea sorrera
|
||||||
@@ -411,9 +411,9 @@ abandon = Abandonatu
|
|||||||
abandon.text = Eremu hau eta bere baliabide guztiak etsaiaren esku geratuko dira.
|
abandon.text = Eremu hau eta bere baliabide guztiak etsaiaren esku geratuko dira.
|
||||||
locked = Blokeatuta
|
locked = Blokeatuta
|
||||||
complete = [lightgray]Helmena:
|
complete = [lightgray]Helmena:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = Iritsi {0} boladara {1}
|
||||||
requirement.core = Destroy Enemy Core in {0}
|
requirement.core = Suntsitu etsaiaren muina {0}
|
||||||
requirement.unlock = Unlock {0}
|
requirement.unlock = Desblokeatu {0}
|
||||||
resume = Berrekin:\n[lightgray]{0}
|
resume = Berrekin:\n[lightgray]{0}
|
||||||
bestwave = [lightgray]Bolada onena: {0}
|
bestwave = [lightgray]Bolada onena: {0}
|
||||||
launch = < EGOTZI >
|
launch = < EGOTZI >
|
||||||
@@ -424,13 +424,13 @@ launch.confirm = Honek zure muinean dauden baliabide guztiak egotziko ditu.\nEzi
|
|||||||
launch.skip.confirm = Orain ez eginez gero, geroagoko beste bolada batera itxaron beharko duzu.
|
launch.skip.confirm = Orain ez eginez gero, geroagoko beste bolada batera itxaron beharko duzu.
|
||||||
uncover = Estalgabetu
|
uncover = Estalgabetu
|
||||||
configure = Konfiguratu zuzkidura
|
configure = Konfiguratu zuzkidura
|
||||||
bannedblocks = Banned Blocks
|
bannedblocks = Debekatutako blokeak
|
||||||
addall = Add All
|
addall = Gehitu denak
|
||||||
configure.locked = [lightgray]Zuzkiduraren konfigurazioa desblokeatzeko: {0} bolada.
|
configure.locked = [lightgray]Zuzkiduraren konfigurazioa desblokeatzeko: {0} bolada.
|
||||||
configure.invalid = Kopurua 0 eta {0} bitarteko zenbaki bat izan behar da.
|
configure.invalid = Kopurua 0 eta {0} bitarteko zenbaki bat izan behar da.
|
||||||
zone.unlocked = [lightgray]{0} desblokeatuta.
|
zone.unlocked = [lightgray]{0} desblokeatuta.
|
||||||
zone.requirement.complete = {0}. boladara iritsia:\n{1} Eremuaren betebeharra beteta.
|
zone.requirement.complete = {0}. boladara iritsia:\n{1} Eremuaren betebeharra beteta.
|
||||||
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
|
zone.config.unlocked = Deskarga desblokeatuta:[lightgray]\n{0}
|
||||||
zone.resources = [lightgray]Antzemandako baliabideak:
|
zone.resources = [lightgray]Antzemandako baliabideak:
|
||||||
zone.objective = [lightgray]Helburua: [accent]{0}
|
zone.objective = [lightgray]Helburua: [accent]{0}
|
||||||
zone.objective.survival = Biziraupena
|
zone.objective.survival = Biziraupena
|
||||||
@@ -487,8 +487,8 @@ settings.cleardata = Garbitu jolasaren datuak...
|
|||||||
settings.clear.confirm = Ziur datu hauek garbitu nahi dituzula?\nEgindakoa ezin da desegin!
|
settings.clear.confirm = Ziur datu hauek garbitu nahi dituzula?\nEgindakoa ezin da desegin!
|
||||||
settings.clearall.confirm = [scarlet]ABISUA![]\nHonek datu guztiak garbituko ditu, gordetako partidak, mapak, desblokeatutakoak, eta teklen konfigurazioak barne.\nBehin 'Ados' sakatzen duzula jolasak datuk guztiak ezabatuko ditu eta automatikoki irten.
|
settings.clearall.confirm = [scarlet]ABISUA![]\nHonek datu guztiak garbituko ditu, gordetako partidak, mapak, desblokeatutakoak, eta teklen konfigurazioak barne.\nBehin 'Ados' sakatzen duzula jolasak datuk guztiak ezabatuko ditu eta automatikoki irten.
|
||||||
paused = [accent]< Pausatuta >
|
paused = [accent]< Pausatuta >
|
||||||
clear = Clear
|
clear = Garbitu
|
||||||
banned = [scarlet]Banned
|
banned = [scarlet]Debekatuta
|
||||||
yes = Bai
|
yes = Bai
|
||||||
no = Ez
|
no = Ez
|
||||||
info.title = Informazioa
|
info.title = Informazioa
|
||||||
@@ -509,7 +509,7 @@ blocks.shootrange = Irismena
|
|||||||
blocks.size = Neurria
|
blocks.size = Neurria
|
||||||
blocks.liquidcapacity = Likido-edukiera
|
blocks.liquidcapacity = Likido-edukiera
|
||||||
blocks.powerrange = Energia irismena
|
blocks.powerrange = Energia irismena
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = Gehieneko konexioak
|
||||||
blocks.poweruse = Energia-erabilera
|
blocks.poweruse = Energia-erabilera
|
||||||
blocks.powerdamage = Energia/Kaltea
|
blocks.powerdamage = Energia/Kaltea
|
||||||
blocks.itemcapacity = Elementu-edukiera
|
blocks.itemcapacity = Elementu-edukiera
|
||||||
@@ -531,7 +531,7 @@ blocks.reload = Tiroak/segundoko
|
|||||||
blocks.ammo = Munizioa
|
blocks.ammo = Munizioa
|
||||||
bar.drilltierreq = Zulagailu hobea behar da
|
bar.drilltierreq = Zulagailu hobea behar da
|
||||||
bar.drillspeed = Ustiatze-abiadura: {0}/s
|
bar.drillspeed = Ustiatze-abiadura: {0}/s
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = Ponpatze abiadura: {0}/s
|
||||||
bar.efficiency = Eraginkortasuna: {0}%
|
bar.efficiency = Eraginkortasuna: {0}%
|
||||||
bar.powerbalance = Energia: {0}/s
|
bar.powerbalance = Energia: {0}/s
|
||||||
bar.powerstored = Bilduta: {0}/{1}
|
bar.powerstored = Bilduta: {0}/{1}
|
||||||
@@ -576,9 +576,9 @@ category.shooting = Tirokatzea
|
|||||||
category.optional = Aukerako hobekuntzak
|
category.optional = Aukerako hobekuntzak
|
||||||
setting.landscape.name = Blokeatu horizontalean
|
setting.landscape.name = Blokeatu horizontalean
|
||||||
setting.shadows.name = Itzalak
|
setting.shadows.name = Itzalak
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Bloke proposamen automatikoak
|
||||||
setting.linear.name = Iragazte lineala
|
setting.linear.name = Iragazte lineala
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Pistak
|
||||||
setting.animatedwater.name = Animatutako ura
|
setting.animatedwater.name = Animatutako ura
|
||||||
setting.animatedshields.name = Animatutako ezkutuak
|
setting.animatedshields.name = Animatutako ezkutuak
|
||||||
setting.antialias.name = Antialias[lightgray] (berrabiarazi behar da)[]
|
setting.antialias.name = Antialias[lightgray] (berrabiarazi behar da)[]
|
||||||
@@ -599,8 +599,8 @@ setting.difficulty.insane = Zoramena
|
|||||||
setting.difficulty.name = Zailtasuna:
|
setting.difficulty.name = Zailtasuna:
|
||||||
setting.screenshake.name = Pantailaren astindua
|
setting.screenshake.name = Pantailaren astindua
|
||||||
setting.effects.name = Bistaratze-efektuak
|
setting.effects.name = Bistaratze-efektuak
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Erakutsi suntsitutako blokeak
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Garraio-zintak kokatzeko bide-bilaketa
|
||||||
setting.sensitivity.name = Kontrolagailuaren sentikortasuna
|
setting.sensitivity.name = Kontrolagailuaren sentikortasuna
|
||||||
setting.saveinterval.name = Gordetzeko tartea
|
setting.saveinterval.name = Gordetzeko tartea
|
||||||
setting.seconds = {0} segundo
|
setting.seconds = {0} segundo
|
||||||
@@ -610,7 +610,7 @@ setting.fps.name = Erakutsi FPS
|
|||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Pixelatu[lightgray] (animazioak desgaitzen ditu)
|
setting.pixelate.name = Pixelatu[lightgray] (animazioak desgaitzen ditu)
|
||||||
setting.minimap.name = Erakutsi mapatxoa
|
setting.minimap.name = Erakutsi mapatxoa
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Erakutsi jokalariaren kokalekua
|
||||||
setting.musicvol.name = Musikaren bolumena
|
setting.musicvol.name = Musikaren bolumena
|
||||||
setting.ambientvol.name = Giroaren bolumena
|
setting.ambientvol.name = Giroaren bolumena
|
||||||
setting.mutemusic.name = Isilarazi musika
|
setting.mutemusic.name = Isilarazi musika
|
||||||
@@ -620,10 +620,10 @@ setting.crashreport.name = Bidali kraskatze txosten automatikoak
|
|||||||
setting.savecreate.name = Gorde automatikoki
|
setting.savecreate.name = Gorde automatikoki
|
||||||
setting.publichost.name = Partidaren ikusgaitasun publikoa
|
setting.publichost.name = Partidaren ikusgaitasun publikoa
|
||||||
setting.chatopacity.name = Txataren opakotasuna
|
setting.chatopacity.name = Txataren opakotasuna
|
||||||
setting.lasersopacity.name = Power Laser Opacity
|
setting.lasersopacity.name = Energia laserraren opakutasuna
|
||||||
setting.playerchat.name = Erakutsi jolas barneko txata
|
setting.playerchat.name = Erakutsi jolas barneko txata
|
||||||
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
public.confirm = Zure jolasa publikoa egin nahi duzu?\n[accent]Edonor elkartu ahal izango da zure partidetara.\n[lightgray]Hau gero ere aldatu dauteke, Ezarpenak->Partida->Partida publikoaren ikusgaitasuna.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Kontuan izan jolasaren beta bertsioek ezin dituztela jokalarien gela publokoak sortu.
|
||||||
uiscale.reset = Interfazearen eskala aldatu da.\nSakatu "Ados" eskala hau berresteko.\n[scarlet][accent] {0}[] segundo atzera egin eta irteteko...
|
uiscale.reset = Interfazearen eskala aldatu da.\nSakatu "Ados" eskala hau berresteko.\n[scarlet][accent] {0}[] segundo atzera egin eta irteteko...
|
||||||
uiscale.cancel = Utzi eta irten
|
uiscale.cancel = Utzi eta irten
|
||||||
setting.bloom.name = Distira
|
setting.bloom.name = Distira
|
||||||
@@ -635,16 +635,16 @@ category.multiplayer.name = Hainbat jokalari
|
|||||||
command.attack = Eraso
|
command.attack = Eraso
|
||||||
command.rally = Batu
|
command.rally = Batu
|
||||||
command.retreat = Erretreta
|
command.retreat = Erretreta
|
||||||
keybind.clear_building.name = Clear Building
|
keybind.clear_building.name = Garrbitu eraikina
|
||||||
keybind.press = Sakatu tekla bat...
|
keybind.press = Sakatu tekla bat...
|
||||||
keybind.press.axis = Sakatu ardatza edo tekla...
|
keybind.press.axis = Sakatu ardatza edo tekla...
|
||||||
keybind.screenshot.name = Maparen pantaila-argazkia
|
keybind.screenshot.name = Maparen pantaila-argazkia
|
||||||
keybind.move_x.name = Mugitu x
|
keybind.move_x.name = Mugitu x
|
||||||
keybind.move_y.name = Mugitu y
|
keybind.move_y.name = Mugitu y
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Hautatu eskualdea
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Eskema menua
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = Itzulbiratu X
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = Itzulbiratu Y
|
||||||
keybind.fullscreen.name = Txandakatu pantaila osoa
|
keybind.fullscreen.name = Txandakatu pantaila osoa
|
||||||
keybind.select.name = Hautatu/Tirokatu
|
keybind.select.name = Hautatu/Tirokatu
|
||||||
keybind.diagonal_placement.name = Kokatze diagonala
|
keybind.diagonal_placement.name = Kokatze diagonala
|
||||||
@@ -652,18 +652,17 @@ keybind.pick.name = Jaso blokea
|
|||||||
keybind.break_block.name = Apurtu blokea
|
keybind.break_block.name = Apurtu blokea
|
||||||
keybind.deselect.name = Deshautatu
|
keybind.deselect.name = Deshautatu
|
||||||
keybind.shoot.name = Tirokatu
|
keybind.shoot.name = Tirokatu
|
||||||
keybind.zoom_hold.name = Zoom mantenduz
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menua
|
keybind.menu.name = Menua
|
||||||
keybind.pause.name = Pausatu
|
keybind.pause.name = Pausatu
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Pausatu/berrekin eraikiketa
|
||||||
keybind.minimap.name = Mapatxoa
|
keybind.minimap.name = Mapatxoa
|
||||||
keybind.dash.name = Arrapalada
|
keybind.dash.name = Arrapalada
|
||||||
keybind.chat.name = Txata
|
keybind.chat.name = Txata
|
||||||
keybind.player_list.name = Jokalarien zerrenda
|
keybind.player_list.name = Jokalarien zerrenda
|
||||||
keybind.console.name = Kontsola
|
keybind.console.name = Kontsola
|
||||||
keybind.rotate.name = Biratu
|
keybind.rotate.name = Biratu
|
||||||
keybind.rotateplaced.name = Rotate Existing (Hold)
|
keybind.rotateplaced.name = Biratu dagoena (Mantendu)
|
||||||
keybind.toggle_menus.name = Txandakatu menuak
|
keybind.toggle_menus.name = Txandakatu menuak
|
||||||
keybind.chat_history_prev.name = Txat historialean aurrekoa
|
keybind.chat_history_prev.name = Txat historialean aurrekoa
|
||||||
keybind.chat_history_next.name = Txat historialean hurrengoa
|
keybind.chat_history_next.name = Txat historialean hurrengoa
|
||||||
@@ -675,7 +674,7 @@ mode.survival.name = Biziraupena
|
|||||||
mode.survival.description = Modu arrunta. Baliabide mugatuak eta bolada automatikoak.\n[gray]Jolasteko etsaien sortze puntuak behar dira mapan.
|
mode.survival.description = Modu arrunta. Baliabide mugatuak eta bolada automatikoak.\n[gray]Jolasteko etsaien sortze puntuak behar dira mapan.
|
||||||
mode.sandbox.name = Jolastokia
|
mode.sandbox.name = Jolastokia
|
||||||
mode.sandbox.description = Baliabide amaigabeak eta boladen denboragailurik gabe.
|
mode.sandbox.description = Baliabide amaigabeak eta boladen denboragailurik gabe.
|
||||||
mode.editor.name = Editor
|
mode.editor.name = Editorea
|
||||||
mode.pvp.name = JvJ
|
mode.pvp.name = JvJ
|
||||||
mode.pvp.description = Borrokatu beste jokalari batzuk lokalean.\n[gray]Gutxienez bi kolore desberdinetako muinak behar dira mapan jolasteko.
|
mode.pvp.description = Borrokatu beste jokalari batzuk lokalean.\n[gray]Gutxienez bi kolore desberdinetako muinak behar dira mapan jolasteko.
|
||||||
mode.attack.name = Erasoa
|
mode.attack.name = Erasoa
|
||||||
@@ -843,8 +842,8 @@ block.copper-wall.name = Kobrezko horma
|
|||||||
block.copper-wall-large.name = Kobrezko horma handia
|
block.copper-wall-large.name = Kobrezko horma handia
|
||||||
block.titanium-wall.name = Titaniozko horma
|
block.titanium-wall.name = Titaniozko horma
|
||||||
block.titanium-wall-large.name = Titaniozko horma handia
|
block.titanium-wall-large.name = Titaniozko horma handia
|
||||||
block.plastanium-wall.name = Plastanium Wall
|
block.plastanium-wall.name = Plastaniozko horma
|
||||||
block.plastanium-wall-large.name = Large Plastanium Wall
|
block.plastanium-wall-large.name = Plastaniozko horma handia
|
||||||
block.phase-wall.name = Fasezko horma
|
block.phase-wall.name = Fasezko horma
|
||||||
block.phase-wall-large.name = Fasezko horma handia
|
block.phase-wall-large.name = Fasezko horma handia
|
||||||
block.thorium-wall.name = Toriozko horma
|
block.thorium-wall.name = Toriozko horma
|
||||||
@@ -864,7 +863,7 @@ block.junction.name = Lotunea
|
|||||||
block.router.name = Bideratzailea
|
block.router.name = Bideratzailea
|
||||||
block.distributor.name = Banatzailea
|
block.distributor.name = Banatzailea
|
||||||
block.sorter.name = Antolatzailea
|
block.sorter.name = Antolatzailea
|
||||||
block.inverted-sorter.name = Inverted Sorter
|
block.inverted-sorter.name = Alderantzizko antolatzailea
|
||||||
block.message.name = Mezua
|
block.message.name = Mezua
|
||||||
block.overflow-gate.name = Gainezkatze atea
|
block.overflow-gate.name = Gainezkatze atea
|
||||||
block.silicon-smelter.name = Silizio galdategia
|
block.silicon-smelter.name = Silizio galdategia
|
||||||
@@ -983,7 +982,7 @@ unit.lich.name = Litxe
|
|||||||
unit.reaper.name = Segalaria
|
unit.reaper.name = Segalaria
|
||||||
tutorial.next = [lightgray]<Sakatu jarraitzeko>
|
tutorial.next = [lightgray]<Sakatu jarraitzeko>
|
||||||
tutorial.intro = Hau [scarlet]Mindustry tutoriala[] da.\nHasi [accent]kobrea ustiatzen[]. Horretarako, sakatu zure muinetik hurbil dagoen kobre-mea bat.\n\n[accent]{0}/{1} kobre
|
tutorial.intro = Hau [scarlet]Mindustry tutoriala[] da.\nHasi [accent]kobrea ustiatzen[]. Horretarako, sakatu zure muinetik hurbil dagoen kobre-mea bat.\n\n[accent]{0}/{1} kobre
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = [scarlet] Mindustry Tutorialean[] sartu zara\nPasatu hatza mugitzeko.\n[accent]Egin atximurkada bi hatzekin [] zooma hurbildu edo urruntzeko.\nHasi[accent] kobrea ustiatuz[]. Hurbildu kobrera, gero sakatu zure muinetik hurbil dagoen kobre mea bat.\n\n[accent]{0}/{1} kobre
|
||||||
tutorial.drill = Eskuz ustiatzea ez da eraginkorra.\n[accent]Zulagailuek []automatikoki ustiatu dezakete.\nSakatu zulagailuen fitxa, behean eskuman.\nHautatu[accent] zulagailu mekanikoa[]. Kokatu ezazu kobre zain batean klik eginez.\n[accent]Eskumako klik[] deseraikitzeko.
|
tutorial.drill = Eskuz ustiatzea ez da eraginkorra.\n[accent]Zulagailuek []automatikoki ustiatu dezakete.\nSakatu zulagailuen fitxa, behean eskuman.\nHautatu[accent] zulagailu mekanikoa[]. Kokatu ezazu kobre zain batean klik eginez.\n[accent]Eskumako klik[] deseraikitzeko.
|
||||||
tutorial.drill.mobile = Eskuz ustiatzea ez da eraginkorra.\n[accent]Zulagailuek []automatikoki ustiatu dezakete.\nSakatu zulagailuen fitxa behean eskuman.\nHautatu[accent] zulagailu mekanikoa[]. \nKokatu ezazu kobre zain batean sakatuz, gero sakatu azpiko [accent]egiaztapen-marka[] zure hautaketa berresteko.\nSakatu [accent]X botoia[] kokatzea ezeztatzeko.
|
tutorial.drill.mobile = Eskuz ustiatzea ez da eraginkorra.\n[accent]Zulagailuek []automatikoki ustiatu dezakete.\nSakatu zulagailuen fitxa behean eskuman.\nHautatu[accent] zulagailu mekanikoa[]. \nKokatu ezazu kobre zain batean sakatuz, gero sakatu azpiko [accent]egiaztapen-marka[] zure hautaketa berresteko.\nSakatu [accent]X botoia[] kokatzea ezeztatzeko.
|
||||||
tutorial.blockinfo = Bloke bakoitzak estatistika desberdinak ditu. Eta zulagailu bakoitzak mea mota zehatz batzuk ustiatu ditzake soilik.\nBloke mota baten informazio eta estatistikak egiaztatzeko,[accent] hautatu blokea eraikiketa menuan eta sakatu "?" botoia .[]\n\n[accent]Atzitu zulagailu mekanikoaren estatistikak orain.[]
|
tutorial.blockinfo = Bloke bakoitzak estatistika desberdinak ditu. Eta zulagailu bakoitzak mea mota zehatz batzuk ustiatu ditzake soilik.\nBloke mota baten informazio eta estatistikak egiaztatzeko,[accent] hautatu blokea eraikiketa menuan eta sakatu "?" botoia .[]\n\n[accent]Atzitu zulagailu mekanikoaren estatistikak orain.[]
|
||||||
@@ -1000,7 +999,7 @@ tutorial.breaking.mobile = Maiz blokeak suntsitu beharko dituzu.\n[accent]Hautat
|
|||||||
tutorial.withdraw = Egoera batzuetan, blokeetatik zuzenean hartu behar dira baliabideak.\nHorretarako, [accent]sakatu baliabideak dituen bloke bat[], gero [accent]sakatu baliabidea[] inbentarioan.\nHainbat baliabide ateratzeko [accent]sakatu eta mantendu[].\n\n[accent]Atera kobre apur bat muinetik.[]
|
tutorial.withdraw = Egoera batzuetan, blokeetatik zuzenean hartu behar dira baliabideak.\nHorretarako, [accent]sakatu baliabideak dituen bloke bat[], gero [accent]sakatu baliabidea[] inbentarioan.\nHainbat baliabide ateratzeko [accent]sakatu eta mantendu[].\n\n[accent]Atera kobre apur bat muinetik.[]
|
||||||
tutorial.deposit = Baliabideak blokeren batean sartzeko, arrastatu zure ontzitik blokera.\n\n[accent]Sartu zure kobrea berriro muinean.[]
|
tutorial.deposit = Baliabideak blokeren batean sartzeko, arrastatu zure ontzitik blokera.\n\n[accent]Sartu zure kobrea berriro muinean.[]
|
||||||
tutorial.waves = [lightgray]Etsaia[] dator.\n\nBabestu muina 2 boladetan zehar. [accent]Egin klik[] tirokatzeko.\nEraiki dorre eta zulagailu gehiago. Ustiatu kobre gehiago.
|
tutorial.waves = [lightgray]Etsaia[] dator.\n\nBabestu muina 2 boladetan zehar. [accent]Egin klik[] tirokatzeko.\nEraiki dorre eta zulagailu gehiago. Ustiatu kobre gehiago.
|
||||||
tutorial.waves.mobile = [lightgray]Etsaia[] daor.\n\nBabestu muina 2 boladatan. Zure ontziak automatikoki tirokatuko ditu etsaiak.\nEraiki dorre eta zulagailu gehiago. Ustiatu kobre gehiago.
|
tutorial.waves.mobile = [lightgray]Etsaia[] dator.\n\nBabestu muina 2 boladatan. Zure ontziak automatikoki tirokatuko ditu etsaiak.\nEraiki dorre eta zulagailu gehiago. Ustiatu kobre gehiago.
|
||||||
tutorial.launch = Bolada zehatz batera heltzean, [accent]muina egotzi[] dezakezu, zure defentsak atzean utziz [accent]eta muineko baliabide guztiak eskuratuz.[]\nBaliabide hauek teknologia berriak ikertzeko erabili daitezke.\n\n[accent]Sakatu egotzi botoia.
|
tutorial.launch = Bolada zehatz batera heltzean, [accent]muina egotzi[] dezakezu, zure defentsak atzean utziz [accent]eta muineko baliabide guztiak eskuratuz.[]\nBaliabide hauek teknologia berriak ikertzeko erabili daitezke.\n\n[accent]Sakatu egotzi botoia.
|
||||||
item.copper.description = Egiturazko material oinarrizkoena. Asko erabilia bloke mota guztietarako.
|
item.copper.description = Egiturazko material oinarrizkoena. Asko erabilia bloke mota guztietarako.
|
||||||
item.lead.description = Hastapeneko oinarrizko materiala. Bloke elektronikoak eta likidoen garraiorako blokeetan asko erabilia.
|
item.lead.description = Hastapeneko oinarrizko materiala. Bloke elektronikoak eta likidoen garraiorako blokeetan asko erabilia.
|
||||||
@@ -1067,8 +1066,8 @@ block.copper-wall.description = Babeserako bloke merke bat.\nMuina eta dorreak l
|
|||||||
block.copper-wall-large.description = Babeserako bloke merke bat.\nMuina eta dorreak lehen boladetan babesteko erabilgarria.\nHainbat lauza hartzen ditu.
|
block.copper-wall-large.description = Babeserako bloke merke bat.\nMuina eta dorreak lehen boladetan babesteko erabilgarria.\nHainbat lauza hartzen ditu.
|
||||||
block.titanium-wall.description = Zertxobait gogorra den babeserako bloke bat.\nEtsaien aurreko babes ertaina eskaintzen du.
|
block.titanium-wall.description = Zertxobait gogorra den babeserako bloke bat.\nEtsaien aurreko babes ertaina eskaintzen du.
|
||||||
block.titanium-wall-large.description = Zertxobait gogorra den babeserako bloke bat.\nEtsaien aurreko babes ertaina eskaintzen du.\nHainbat lauza hartzen ditu.
|
block.titanium-wall-large.description = Zertxobait gogorra den babeserako bloke bat.\nEtsaien aurreko babes ertaina eskaintzen du.\nHainbat lauza hartzen ditu.
|
||||||
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
|
block.plastanium-wall.description = Arku elektrikoak xurgatzen dituen eta energia-nodoen konexio automatikoak blokeatzen dituen horma berezia.
|
||||||
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
|
block.plastanium-wall-large.description = Arku elektrikoak xurgatzen dituen eta energia-nodoen konexio automatikoak blokeatzen dituen horma berezia..\nHainbat lauza hartzen ditu.
|
||||||
block.thorium-wall.description = Babeserako bloke gogorra.\nEtsaitatik aterpe txukuna.
|
block.thorium-wall.description = Babeserako bloke gogorra.\nEtsaitatik aterpe txukuna.
|
||||||
block.thorium-wall-large.description = Babeserako bloke gogorra.\nEtsaitatik aterpe txukuna.\nHainbat lauza hartzen ditu.
|
block.thorium-wall-large.description = Babeserako bloke gogorra.\nEtsaitatik aterpe txukuna.\nHainbat lauza hartzen ditu.
|
||||||
block.phase-wall.description = Fasez osatutako konposatu islatzaile batez estalitako horma bat. Talkan jasotako bala gehienak desbideratzen ditu.
|
block.phase-wall.description = Fasez osatutako konposatu islatzaile batez estalitako horma bat. Talkan jasotako bala gehienak desbideratzen ditu.
|
||||||
@@ -1088,7 +1087,7 @@ block.junction.description = Gurutzatutako bi garraio-zinten arteko zubi gisa ar
|
|||||||
block.bridge-conveyor.description = Elementuen garraiorako bloke aurreratua. Elementuak edozein gainazal edo eraikinen gainetik garraiatzen ditu 3 lauzatara gehienez.
|
block.bridge-conveyor.description = Elementuen garraiorako bloke aurreratua. Elementuak edozein gainazal edo eraikinen gainetik garraiatzen ditu 3 lauzatara gehienez.
|
||||||
block.phase-conveyor.description = Elementuen garraiorako bloke aurreratua. Energia erabiltzen du hainbat lauzetara konektatutako beste Fasezko garraiagailu batera elementuak teleportatzeko.
|
block.phase-conveyor.description = Elementuen garraiorako bloke aurreratua. Energia erabiltzen du hainbat lauzetara konektatutako beste Fasezko garraiagailu batera elementuak teleportatzeko.
|
||||||
block.sorter.description = Elementuak antolatzen ditu. Elementu bat hautuarekin bat badator, aurrera jarraitu dezake. Bestela, elementua ezker eta eskuinera ateratzen da.
|
block.sorter.description = Elementuak antolatzen ditu. Elementu bat hautuarekin bat badator, aurrera jarraitu dezake. Bestela, elementua ezker eta eskuinera ateratzen da.
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = Antolatzaile arruntaren antzera prozesatzen ditu elementuak, baina hautatutako elementuak alboetara ateratzen ditu.
|
||||||
block.router.description = Elementuak onartzen ditu, eta beste gehienez 3 norabideetara ateratzen ditu kopuru berdinetan. Jatorri batetik hainbat xedeetara materialak banatzeko egokia.\n\n[scarlet]Ez jarri ekoizpen sarreren ondoan, irteerek trabatuko baitute.[]
|
block.router.description = Elementuak onartzen ditu, eta beste gehienez 3 norabideetara ateratzen ditu kopuru berdinetan. Jatorri batetik hainbat xedeetara materialak banatzeko egokia.\n\n[scarlet]Ez jarri ekoizpen sarreren ondoan, irteerek trabatuko baitute.[]
|
||||||
block.distributor.description = Bideratzaile aurreratu bat. Elementuak beste gehienez 7 norabideetara sakabanatzen ditu kopuru berdinetan.
|
block.distributor.description = Bideratzaile aurreratu bat. Elementuak beste gehienez 7 norabideetara sakabanatzen ditu kopuru berdinetan.
|
||||||
block.overflow-gate.description = Antolatzaile eta bideratzaile konbinatua. Soilik aurrealdea blokeatuta dagoenean ateratzen du ezker eta eskuinera.
|
block.overflow-gate.description = Antolatzaile eta bideratzaile konbinatua. Soilik aurrealdea blokeatuta dagoenean ateratzen du ezker eta eskuinera.
|
||||||
|
|||||||
1050
core/assets/bundles/bundle_fi.properties
Normal file
@@ -10,6 +10,7 @@ link.dev-builds.description = Versions instables du jeu
|
|||||||
link.trello.description = Trello officiel pour les ajouts futurs
|
link.trello.description = Trello officiel pour les ajouts futurs
|
||||||
link.itch.io.description = Page itch.io avec lien de téléchargement pour PC
|
link.itch.io.description = Page itch.io avec lien de téléchargement pour PC
|
||||||
link.google-play.description = Google Play Store
|
link.google-play.description = Google Play Store
|
||||||
|
link.f-droid.description = Catalogue F-Droid
|
||||||
link.wiki.description = Le wiki officiel de Mindustry
|
link.wiki.description = Le wiki officiel de Mindustry
|
||||||
linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copiée dans votre presse papier.
|
linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copiée dans votre presse papier.
|
||||||
screenshot = Capture d'écran sauvegardée à {0}
|
screenshot = Capture d'écran sauvegardée à {0}
|
||||||
@@ -18,12 +19,14 @@ gameover = Game over
|
|||||||
gameover.pvp = L'équipe [accent] {0}[] a gagné !
|
gameover.pvp = L'équipe [accent] {0}[] a gagné !
|
||||||
highscore = [accent]Nouveau meilleur score!
|
highscore = [accent]Nouveau meilleur score!
|
||||||
copied = Copié.
|
copied = Copié.
|
||||||
|
|
||||||
load.sound = Sons
|
load.sound = Sons
|
||||||
load.map = Cartes
|
load.map = Cartes
|
||||||
load.image = Images
|
load.image = Images
|
||||||
load.content = Contenu
|
load.content = Contenu
|
||||||
load.system = Système
|
load.system = Système
|
||||||
load.mod = Mods
|
load.mod = Mods
|
||||||
|
|
||||||
schematic = Schéma
|
schematic = Schéma
|
||||||
schematic.add = Sauvegarder le schéma...
|
schematic.add = Sauvegarder le schéma...
|
||||||
schematics = Schémas
|
schematics = Schémas
|
||||||
@@ -40,6 +43,7 @@ schematic.saved = Schéma sauvegardé.
|
|||||||
schematic.delete.confirm = Ce schéma sera complètement éradiqué.
|
schematic.delete.confirm = Ce schéma sera complètement éradiqué.
|
||||||
schematic.rename = Renommer le schéma
|
schematic.rename = Renommer le schéma
|
||||||
schematic.info = {0}x{1}, {2} blocs
|
schematic.info = {0}x{1}, {2} blocs
|
||||||
|
|
||||||
stat.wave = Vagues vaincues:[accent] {0}
|
stat.wave = Vagues vaincues:[accent] {0}
|
||||||
stat.enemiesDestroyed = Ennemis détruits:[accent] {0}
|
stat.enemiesDestroyed = Ennemis détruits:[accent] {0}
|
||||||
stat.built = Bâtiments construits:[accent] {0}
|
stat.built = Bâtiments construits:[accent] {0}
|
||||||
@@ -47,6 +51,7 @@ stat.destroyed = Bâtiments détruits:[accent] {0}
|
|||||||
stat.deconstructed = Bâtiments déconstruits:[accent] {0}
|
stat.deconstructed = Bâtiments déconstruits:[accent] {0}
|
||||||
stat.delivered = Ressources transférées:
|
stat.delivered = Ressources transférées:
|
||||||
stat.rank = Rang Final: [accent]{0}
|
stat.rank = Rang Final: [accent]{0}
|
||||||
|
|
||||||
launcheditems = [accent]Ressources transférées
|
launcheditems = [accent]Ressources transférées
|
||||||
launchinfo = [unlaunched][[LANCER] votre noyau pour obtenir les objets indiqués en bleu.
|
launchinfo = [unlaunched][[LANCER] votre noyau pour obtenir les objets indiqués en bleu.
|
||||||
map.delete = Êtes-vous certain(e) de vouloir supprimer la carte "[accent]{0}[]"?
|
map.delete = Êtes-vous certain(e) de vouloir supprimer la carte "[accent]{0}[]"?
|
||||||
@@ -74,6 +79,7 @@ maps.browse = Parcourir les cartes
|
|||||||
continue = Continuer
|
continue = Continuer
|
||||||
maps.none = [lightgray]Aucune carte trouvée!
|
maps.none = [lightgray]Aucune carte trouvée!
|
||||||
invalid = Invalide
|
invalid = Invalide
|
||||||
|
pickcolor = Choisir la Couleur
|
||||||
preparingconfig = Préparation de la configuration
|
preparingconfig = Préparation de la configuration
|
||||||
preparingcontent = Préparation du contenu
|
preparingcontent = Préparation du contenu
|
||||||
uploadingcontent = Publication du contenu
|
uploadingcontent = Publication du contenu
|
||||||
@@ -81,6 +87,7 @@ uploadingpreviewfile = Publication du fichier d'aperçu
|
|||||||
committingchanges = Validation des modifications
|
committingchanges = Validation des modifications
|
||||||
done = Fait
|
done = Fait
|
||||||
feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité.
|
feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité.
|
||||||
|
|
||||||
mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry.
|
mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
@@ -92,6 +99,7 @@ mod.enabled = [lightgray]Activé
|
|||||||
mod.disabled = [scarlet]Désactivé
|
mod.disabled = [scarlet]Désactivé
|
||||||
mod.disable = Désactiver
|
mod.disable = Désactiver
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Unable to delete mod. File may be in use.
|
||||||
|
mod.requiresversion = [scarlet]Version du jeu requise : [accent]{0}
|
||||||
mod.missingdependencies = [scarlet]Dépendances manquantes: {0}
|
mod.missingdependencies = [scarlet]Dépendances manquantes: {0}
|
||||||
mod.nowdisabled = [scarlet]Le mod '{0}' a des dépendances manquantes:[accent] {1}\n[lightgray]Ces mods doivent d'abord être téléchargés.\nCe mod sera automatiquement désactivé.
|
mod.nowdisabled = [scarlet]Le mod '{0}' a des dépendances manquantes:[accent] {1}\n[lightgray]Ces mods doivent d'abord être téléchargés.\nCe mod sera automatiquement désactivé.
|
||||||
mod.enable = Activer
|
mod.enable = Activer
|
||||||
@@ -104,6 +112,7 @@ mod.author = [LIGHT_GRAY]Auteur:[] {0}
|
|||||||
mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à jour ou que vous avez désinstallés. Votre sauvegarde risque d'être corrompue. Êtes-vous sûr de vouloir l'importer?\n[lightgray]Mods:\n{0}
|
mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à jour ou que vous avez désinstallés. Votre sauvegarde risque d'être corrompue. Êtes-vous sûr de vouloir l'importer?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Avant de publier ce mod dans le workshop, vous devez ajouter une image servant d'aperçu.\nPlacez une image nommée[accent] preview.png[] dans le dossier du mod et réessayez.
|
mod.preview.missing = Avant de publier ce mod dans le workshop, vous devez ajouter une image servant d'aperçu.\nPlacez une image nommée[accent] preview.png[] dans le dossier du mod et réessayez.
|
||||||
mod.folder.missing = Seuls les mods sous forme de dossiers peuvent être publiés sur l'atelier.\nPour convertir n'importe quel mod en un dossier, dézippez-le tout simplement dans un dossier et supprimez l'ancien zip, puis redémarrez votre jeu ou rechargez vos mods.
|
mod.folder.missing = Seuls les mods sous forme de dossiers peuvent être publiés sur l'atelier.\nPour convertir n'importe quel mod en un dossier, dézippez-le tout simplement dans un dossier et supprimez l'ancien zip, puis redémarrez votre jeu ou rechargez vos mods.
|
||||||
|
|
||||||
about.button = À propos
|
about.button = À propos
|
||||||
name = Nom:
|
name = Nom:
|
||||||
noname = Commencer par choisir un[accent] nom de joueur[].
|
noname = Commencer par choisir un[accent] nom de joueur[].
|
||||||
@@ -271,6 +280,7 @@ publishing = [accent]Publication...
|
|||||||
publish.confirm = Êtes-vous sûr de vouloir publier ceci ?\n\n[lightgray]Assurez-vous d'être d'abord d'accord avec les CGU du workshop, sinon vos éléments n'apparaîtront pas !
|
publish.confirm = Êtes-vous sûr de vouloir publier ceci ?\n\n[lightgray]Assurez-vous d'être d'abord d'accord avec les CGU du workshop, sinon vos éléments n'apparaîtront pas !
|
||||||
publish.error = Erreur de publication de l'élément: {0}
|
publish.error = Erreur de publication de l'élément: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Failed to initialize Steam services.\nError: {0}
|
||||||
|
|
||||||
editor.brush = Pinceau
|
editor.brush = Pinceau
|
||||||
editor.openin = Ouvrir dans l'éditeur
|
editor.openin = Ouvrir dans l'éditeur
|
||||||
editor.oregen = Génération de minerais
|
editor.oregen = Génération de minerais
|
||||||
@@ -347,6 +357,7 @@ editor.overwrite = [accent]Attention!\nCeci écrase une carte existante.
|
|||||||
editor.overwrite.confirm = [scarlet]Attention![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir l'écraser?
|
editor.overwrite.confirm = [scarlet]Attention![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir l'écraser?
|
||||||
editor.exists = Une carte avec ce nom existe déjà.
|
editor.exists = Une carte avec ce nom existe déjà.
|
||||||
editor.selectmap = Sélectionnez une carte:
|
editor.selectmap = Sélectionnez une carte:
|
||||||
|
|
||||||
toolmode.replace = Remplacer
|
toolmode.replace = Remplacer
|
||||||
toolmode.replace.description = Dessiner seulement sur les blocs solides.
|
toolmode.replace.description = Dessiner seulement sur les blocs solides.
|
||||||
toolmode.replaceall = Tout remplacer
|
toolmode.replaceall = Tout remplacer
|
||||||
@@ -361,6 +372,7 @@ toolmode.fillteams = Remplir les équipes
|
|||||||
toolmode.fillteams.description = Rempli les équipes au lieu des blocs.
|
toolmode.fillteams.description = Rempli les équipes au lieu des blocs.
|
||||||
toolmode.drawteams = Dessiner les équipes
|
toolmode.drawteams = Dessiner les équipes
|
||||||
toolmode.drawteams.description = Dessine les équipes au lieu de blocs.
|
toolmode.drawteams.description = Dessine les équipes au lieu de blocs.
|
||||||
|
|
||||||
filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous.
|
filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous.
|
||||||
filter.distort = Déformation
|
filter.distort = Déformation
|
||||||
filter.noise = Bruit
|
filter.noise = Bruit
|
||||||
@@ -392,6 +404,7 @@ filter.option.floor2 = Sol secondaire
|
|||||||
filter.option.threshold2 = Seuil secondaire
|
filter.option.threshold2 = Seuil secondaire
|
||||||
filter.option.radius = Rayon
|
filter.option.radius = Rayon
|
||||||
filter.option.percentile = Centile
|
filter.option.percentile = Centile
|
||||||
|
|
||||||
width = Largeur:
|
width = Largeur:
|
||||||
height = Hauteur:
|
height = Hauteur:
|
||||||
menu = Menu
|
menu = Menu
|
||||||
@@ -407,6 +420,7 @@ tutorial = Tutoriel
|
|||||||
tutorial.retake = Refaire le Tutoriel
|
tutorial.retake = Refaire le Tutoriel
|
||||||
editor = Éditeur
|
editor = Éditeur
|
||||||
mapeditor = Éditeur de carte
|
mapeditor = Éditeur de carte
|
||||||
|
|
||||||
abandon = Abandonner
|
abandon = Abandonner
|
||||||
abandon.text = Cette zone et toutes ses ressources vont être perdues.
|
abandon.text = Cette zone et toutes ses ressources vont être perdues.
|
||||||
locked = Verrouillé
|
locked = Verrouillé
|
||||||
@@ -437,6 +451,7 @@ zone.objective.survival = Survivre
|
|||||||
zone.objective.attack = Détruire le noyau ennemi
|
zone.objective.attack = Détruire le noyau ennemi
|
||||||
add = Ajouter...
|
add = Ajouter...
|
||||||
boss.health = Santé du Boss
|
boss.health = Santé du Boss
|
||||||
|
|
||||||
connectfail = [crimson]Échec de la connexion au serveur :\n\n[accent]{0}
|
connectfail = [crimson]Échec de la connexion au serveur :\n\n[accent]{0}
|
||||||
error.unreachable = Serveur injoignable.\nL'adresse IP est correcte?
|
error.unreachable = Serveur injoignable.\nL'adresse IP est correcte?
|
||||||
error.invalidaddress = Adresse invalide.
|
error.invalidaddress = Adresse invalide.
|
||||||
@@ -447,6 +462,7 @@ error.mapnotfound = Carte introuvable!
|
|||||||
error.io = Erreur de Réseau (I/O)
|
error.io = Erreur de Réseau (I/O)
|
||||||
error.any = Erreur réseau inconnue
|
error.any = Erreur réseau inconnue
|
||||||
error.bloom = Échec de l'initialisation du flou lumineux.\nVotre appareil peux ne pas le supporter.
|
error.bloom = Échec de l'initialisation du flou lumineux.\nVotre appareil peux ne pas le supporter.
|
||||||
|
|
||||||
zone.groundZero.name = Première Bataille
|
zone.groundZero.name = Première Bataille
|
||||||
zone.desertWastes.name = Désert Sauvage
|
zone.desertWastes.name = Désert Sauvage
|
||||||
zone.craters.name = Les Cratères
|
zone.craters.name = Les Cratères
|
||||||
@@ -461,6 +477,7 @@ zone.saltFlats.name = Marais Salants
|
|||||||
zone.impact0078.name = Impact 0078
|
zone.impact0078.name = Impact 0078
|
||||||
zone.crags.name = Rochers
|
zone.crags.name = Rochers
|
||||||
zone.fungalPass.name = Passe Fongique
|
zone.fungalPass.name = Passe Fongique
|
||||||
|
|
||||||
zone.groundZero.description = L'emplacement optimal pour débuter. Faible menace ennemie. Peu de ressources. \nRecueillez autant de plomb et de cuivre que possible.\nRien d'autre à signaler.
|
zone.groundZero.description = L'emplacement optimal pour débuter. Faible menace ennemie. Peu de ressources. \nRecueillez autant de plomb et de cuivre que possible.\nRien d'autre à signaler.
|
||||||
zone.frozenForest.description = Même ici, plus près des montagnes, les spores se sont propagées. Les températures glaciales ne pourront pas les contenir pour toujours.\n\nFamiliarisez vous avec l'Énergie. Construisez des générateurs a combustion. Apprenez a utiliser les réparateurs.
|
zone.frozenForest.description = Même ici, plus près des montagnes, les spores se sont propagées. Les températures glaciales ne pourront pas les contenir pour toujours.\n\nFamiliarisez vous avec l'Énergie. Construisez des générateurs a combustion. Apprenez a utiliser les réparateurs.
|
||||||
zone.desertWastes.description = Cette étendue désertique est immense, imprévisible. On y croise des structures abandonnées.\nLe charbon est présent dans la région. Brûlez-le pour générer de l'Énergie ou synthétisez-le en graphite.\n\n[lightgray]Ce lieu d'atterisage est imprévisible.
|
zone.desertWastes.description = Cette étendue désertique est immense, imprévisible. On y croise des structures abandonnées.\nLe charbon est présent dans la région. Brûlez-le pour générer de l'Énergie ou synthétisez-le en graphite.\n\n[lightgray]Ce lieu d'atterisage est imprévisible.
|
||||||
@@ -475,10 +492,12 @@ zone.nuclearComplex.description = Une ancienne installation de production et tra
|
|||||||
zone.fungalPass.description = Une zone de transition entre les hautes montagnes et les basses régions infestées de spores. Une petite base de reconnaissance ennemie s'y trouve.\nDétruisez la.\nUtilisez les unités Poignard et Rampeurs. Détruisez les deux noyaux.
|
zone.fungalPass.description = Une zone de transition entre les hautes montagnes et les basses régions infestées de spores. Une petite base de reconnaissance ennemie s'y trouve.\nDétruisez la.\nUtilisez les unités Poignard et Rampeurs. Détruisez les deux noyaux.
|
||||||
zone.impact0078.description = <insérer une description ici>
|
zone.impact0078.description = <insérer une description ici>
|
||||||
zone.crags.description = <insérer une description ici>
|
zone.crags.description = <insérer une description ici>
|
||||||
|
|
||||||
settings.language = Langue
|
settings.language = Langue
|
||||||
settings.data = Données du Jeu
|
settings.data = Données du Jeu
|
||||||
settings.reset = Valeurs par Défaut
|
settings.reset = Valeurs par Défaut
|
||||||
settings.rebind = Réattribuer
|
settings.rebind = Réattribuer
|
||||||
|
settings.resetKey = Réinitialiser
|
||||||
settings.controls = Contrôles
|
settings.controls = Contrôles
|
||||||
settings.game = Jeu
|
settings.game = Jeu
|
||||||
settings.sound = Son
|
settings.sound = Son
|
||||||
@@ -494,8 +513,8 @@ no = Non
|
|||||||
info.title = Info
|
info.title = Info
|
||||||
error.title = [crimson]Une erreur s'est produite
|
error.title = [crimson]Une erreur s'est produite
|
||||||
error.crashtitle = Une erreur s'est produite
|
error.crashtitle = Une erreur s'est produite
|
||||||
blocks.input = Input
|
blocks.input = Entrée
|
||||||
blocks.output = Output
|
blocks.output = Sortie
|
||||||
blocks.booster = Booster
|
blocks.booster = Booster
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
blocks.powercapacity = Capacité d'énergie
|
blocks.powercapacity = Capacité d'énergie
|
||||||
@@ -529,9 +548,10 @@ blocks.inaccuracy = Imprécision
|
|||||||
blocks.shots = Tirs
|
blocks.shots = Tirs
|
||||||
blocks.reload = Tirs/Seconde
|
blocks.reload = Tirs/Seconde
|
||||||
blocks.ammo = Munitions
|
blocks.ammo = Munitions
|
||||||
|
|
||||||
bar.drilltierreq = Foreuse Améliorée Requise
|
bar.drilltierreq = Foreuse Améliorée Requise
|
||||||
bar.drillspeed = Vitesse de forage: {0}/s
|
bar.drillspeed = Vitesse de Forage: {0}/s
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = Vitesse de Pompage: {0}/s
|
||||||
bar.efficiency = Efficacité: {0}%
|
bar.efficiency = Efficacité: {0}%
|
||||||
bar.powerbalance = Énergie: {0}/s
|
bar.powerbalance = Énergie: {0}/s
|
||||||
bar.powerstored = Stocké: {0}/{1}
|
bar.powerstored = Stocké: {0}/{1}
|
||||||
@@ -544,6 +564,9 @@ bar.heat = Chaleur
|
|||||||
bar.power = Énergie
|
bar.power = Énergie
|
||||||
bar.progress = Progression de la construction
|
bar.progress = Progression de la construction
|
||||||
bar.spawned = Unités: {0}/{1}
|
bar.spawned = Unités: {0}/{1}
|
||||||
|
bar.input = Entrée
|
||||||
|
bar.output = Sortie
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] dégâts
|
bullet.damage = [stat]{0}[lightgray] dégâts
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs
|
bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs
|
||||||
bullet.incendiary = [stat]incendiaire
|
bullet.incendiary = [stat]incendiaire
|
||||||
@@ -555,6 +578,7 @@ bullet.freezing = [stat]gel
|
|||||||
bullet.tarred = [stat]goudronné
|
bullet.tarred = [stat]goudronné
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions
|
bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions
|
||||||
bullet.reload = [stat]{0}[lightgray]x vitesse de tir
|
bullet.reload = [stat]{0}[lightgray]x vitesse de tir
|
||||||
|
|
||||||
unit.blocks = blocs
|
unit.blocks = blocs
|
||||||
unit.powersecond = énergie/seconde
|
unit.powersecond = énergie/seconde
|
||||||
unit.liquidsecond = unité de liquide/seconde
|
unit.liquidsecond = unité de liquide/seconde
|
||||||
@@ -567,6 +591,8 @@ unit.persecond = /sec
|
|||||||
unit.timesspeed = x vitesse
|
unit.timesspeed = x vitesse
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = objets
|
unit.items = objets
|
||||||
|
unit.thousands = k
|
||||||
|
unit.millions = mil
|
||||||
category.general = Général
|
category.general = Général
|
||||||
category.power = Énergie
|
category.power = Énergie
|
||||||
category.liquids = Liquides
|
category.liquids = Liquides
|
||||||
@@ -576,9 +602,10 @@ category.shooting = Défense
|
|||||||
category.optional = Améliorations optionnelles
|
category.optional = Améliorations optionnelles
|
||||||
setting.landscape.name = Verrouiller en rotation paysage
|
setting.landscape.name = Verrouiller en rotation paysage
|
||||||
setting.shadows.name = Ombres
|
setting.shadows.name = Ombres
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Suggestions Automatiques de Blocs
|
||||||
setting.linear.name = Filtrage Linéaire
|
setting.linear.name = Filtrage Linéaire
|
||||||
setting.hints.name = Astuces
|
setting.hints.name = Astuces
|
||||||
|
setting.buildautopause.name = Pause Automatique de la Construction
|
||||||
setting.animatedwater.name = Eau animée
|
setting.animatedwater.name = Eau animée
|
||||||
setting.animatedshields.name = Boucliers Animés
|
setting.animatedshields.name = Boucliers Animés
|
||||||
setting.antialias.name = Antialias[lightgray] (redémarrage du jeu nécessaire)[]
|
setting.antialias.name = Antialias[lightgray] (redémarrage du jeu nécessaire)[]
|
||||||
@@ -599,14 +626,17 @@ setting.difficulty.insane = Extrême
|
|||||||
setting.difficulty.name = Difficulté:
|
setting.difficulty.name = Difficulté:
|
||||||
setting.screenshake.name = Tremblement de l'écran
|
setting.screenshake.name = Tremblement de l'écran
|
||||||
setting.effects.name = Afficher les effets
|
setting.effects.name = Afficher les effets
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Afficher les Blocs Détruits
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Recherche de Chemin pour le Placement de Convoyeurs
|
||||||
setting.sensitivity.name = Sensibilité de la manette
|
setting.sensitivity.name = Sensibilité de la manette
|
||||||
setting.saveinterval.name = Intervalle des sauvegardes auto
|
setting.saveinterval.name = Intervalle des sauvegardes auto
|
||||||
setting.seconds = {0} secondes
|
setting.seconds = {0} secondes
|
||||||
|
setting.blockselecttimeout.name = Délai d'Attente de Sélection de Bloc
|
||||||
|
setting.milliseconds = {0} millisecondes
|
||||||
setting.fullscreen.name = Plein Écran
|
setting.fullscreen.name = Plein Écran
|
||||||
setting.borderlesswindow.name = Fenêtre sans bords (Borderless)[lightgray] (peut nécessiter le redémarrage du jeu)
|
setting.borderlesswindow.name = Fenêtre sans bords (Borderless)[lightgray] (peut nécessiter le redémarrage du jeu)
|
||||||
setting.fps.name = Afficher FPS
|
setting.fps.name = Afficher FPS
|
||||||
|
setting.blockselectkeys.name = Afficher les Touches de Sélection de Bloc
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Pixeliser[lightgray] (désactive les animations)
|
setting.pixelate.name = Pixeliser[lightgray] (désactive les animations)
|
||||||
setting.minimap.name = Afficher la Minimap
|
setting.minimap.name = Afficher la Minimap
|
||||||
@@ -635,16 +665,36 @@ category.multiplayer.name = Multijoueur
|
|||||||
command.attack = Attaque
|
command.attack = Attaque
|
||||||
command.rally = Rassembler
|
command.rally = Rassembler
|
||||||
command.retreat = Retraite
|
command.retreat = Retraite
|
||||||
|
placement.blockselectkeys = \n[lightgray]Touche: [{0},
|
||||||
keybind.clear_building.name = Effacer les constructions
|
keybind.clear_building.name = Effacer les constructions
|
||||||
keybind.press = Appuyer sur une touche...
|
keybind.press = Appuyer sur une touche...
|
||||||
keybind.press.axis = Appuyer sur un axe ou une touche...
|
keybind.press.axis = Appuyer sur un axe ou une touche...
|
||||||
keybind.screenshot.name = Capture d'écran
|
keybind.screenshot.name = Capture d'écran
|
||||||
keybind.move_x.name = Mouvement x
|
keybind.toggle_power_lines.name = Montrer/Cacher les Connections d'Énergie
|
||||||
keybind.move_y.name = Mouvement y
|
keybind.move_x.name = Mouvement X
|
||||||
|
keybind.move_y.name = Mouvement Y
|
||||||
|
keybind.mouse_move.name = Suivre la Souris
|
||||||
|
keybind.dash.name = Sprint
|
||||||
keybind.schematic_select.name = Sélectionner une région
|
keybind.schematic_select.name = Sélectionner une région
|
||||||
keybind.schematic_menu.name = Menu des schéma
|
keybind.schematic_menu.name = Menu des schéma
|
||||||
keybind.schematic_flip_x.name = Retourner le schéma sur l'axe X
|
keybind.schematic_flip_x.name = Retourner le schéma sur l'axe X
|
||||||
keybind.schematic_flip_y.name = Retourner le schéma sur l'axe Y
|
keybind.schematic_flip_y.name = Retourner le schéma sur l'axe Y
|
||||||
|
keybind.category_prev.name = Catégorie Précédente
|
||||||
|
keybind.category_next.name = Catégorie Suivante
|
||||||
|
keybind.block_select_left.name = Sélectionner Bloc de Gauche
|
||||||
|
keybind.block_select_right.name = Sélectionner Bloc de Droite
|
||||||
|
keybind.block_select_up.name = Sélectionner Bloc en Haut
|
||||||
|
keybind.block_select_down.name = Sélectionner Bloc en Bas
|
||||||
|
keybind.block_select_01.name = Sélectionner Catégorie/Bloc 1
|
||||||
|
keybind.block_select_02.name = Sélectionner Catégorie/Bloc 2
|
||||||
|
keybind.block_select_03.name = Sélectionner Catégorie/Bloc 3
|
||||||
|
keybind.block_select_04.name = Sélectionner Catégorie/Bloc 4
|
||||||
|
keybind.block_select_05.name = Sélectionner Catégorie/Bloc 5
|
||||||
|
keybind.block_select_06.name = Sélectionner Catégorie/Bloc 6
|
||||||
|
keybind.block_select_07.name = Sélectionner Catégorie/Bloc 7
|
||||||
|
keybind.block_select_08.name = Sélectionner Catégorie/Bloc 8
|
||||||
|
keybind.block_select_09.name = Sélectionner Catégorie/Bloc 9
|
||||||
|
keybind.block_select_10.name = Sélectionner Catégorie/Bloc 10
|
||||||
keybind.fullscreen.name = Basculer en Plein Écran
|
keybind.fullscreen.name = Basculer en Plein Écran
|
||||||
keybind.select.name = Sélectionner/Tirer
|
keybind.select.name = Sélectionner/Tirer
|
||||||
keybind.diagonal_placement.name = Placement en diagonale
|
keybind.diagonal_placement.name = Placement en diagonale
|
||||||
@@ -652,24 +702,22 @@ keybind.pick.name = Choisir un bloc
|
|||||||
keybind.break_block.name = Supprimer un bloc
|
keybind.break_block.name = Supprimer un bloc
|
||||||
keybind.deselect.name = Désélectionner
|
keybind.deselect.name = Désélectionner
|
||||||
keybind.shoot.name = Tirer
|
keybind.shoot.name = Tirer
|
||||||
keybind.zoom_hold.name = Maintenir pour zoomer
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
keybind.pause_building.name = Pauser/Reprendre la construction
|
keybind.pause_building.name = Pauser/Reprendre la construction
|
||||||
keybind.minimap.name = Minimap
|
keybind.minimap.name = Minimap
|
||||||
keybind.dash.name = Sprint
|
|
||||||
keybind.chat.name = Chat
|
keybind.chat.name = Chat
|
||||||
keybind.player_list.name = Liste des joueurs
|
keybind.player_list.name = Liste des Joueurs
|
||||||
keybind.console.name = Console
|
keybind.console.name = Console
|
||||||
keybind.rotate.name = Tourner
|
keybind.rotate.name = Tourner
|
||||||
keybind.rotateplaced.name = Tourner existant (maintenir)
|
keybind.rotateplaced.name = Tourner existant (maintenir)
|
||||||
keybind.toggle_menus.name = Cacher/afficher les menus
|
keybind.toggle_menus.name = Cacher/Afficher les Menus
|
||||||
keybind.chat_history_prev.name = Remonter l'historique du chat
|
keybind.chat_history_prev.name = Remonter l'Historique du Chat
|
||||||
keybind.chat_history_next.name = Descendre l'historique du chat
|
keybind.chat_history_next.name = Descendre l'Historique du Chat
|
||||||
keybind.chat_scroll.name = Défilement du chat
|
keybind.chat_scroll.name = Défilement du Chat
|
||||||
keybind.drop_unit.name = Larguer l'unité
|
keybind.drop_unit.name = Larguer l'unité
|
||||||
keybind.zoom_minimap.name = Zoom minimap
|
keybind.zoom_minimap.name = Zoom Minimap
|
||||||
mode.help.title = Description des modes de jeu
|
mode.help.title = Description des modes de jeu
|
||||||
mode.survival.name = Survie
|
mode.survival.name = Survie
|
||||||
mode.survival.description = Le mode normal. Ressources limitées et vagues automatiques.\n[gray]Nécessite un point d'apparition pour les ennemis.
|
mode.survival.description = Le mode normal. Ressources limitées et vagues automatiques.\n[gray]Nécessite un point d'apparition pour les ennemis.
|
||||||
@@ -681,7 +729,9 @@ mode.pvp.description = Battez-vous contre d'autres joueurs en local.\n[gray]Requ
|
|||||||
mode.attack.name = Attaque
|
mode.attack.name = Attaque
|
||||||
mode.attack.description = Pas de vagues, le but étant de détruire la base ennemie.\n[gray]Requiert un noyaux rouge dans la map pour y jouer.
|
mode.attack.description = Pas de vagues, le but étant de détruire la base ennemie.\n[gray]Requiert un noyaux rouge dans la map pour y jouer.
|
||||||
mode.custom = Règles personnalisées
|
mode.custom = Règles personnalisées
|
||||||
|
|
||||||
rules.infiniteresources = Ressources infinies
|
rules.infiniteresources = Ressources infinies
|
||||||
|
rules.reactorexplosions = Explosion des Réacteurs
|
||||||
rules.wavetimer = Minuterie pour les vagues
|
rules.wavetimer = Minuterie pour les vagues
|
||||||
rules.waves = Vagues
|
rules.waves = Vagues
|
||||||
rules.attack = Mode d'Attaque
|
rules.attack = Mode d'Attaque
|
||||||
@@ -707,6 +757,10 @@ rules.title.resourcesbuilding = Ressources & Construction
|
|||||||
rules.title.player = Joueurs
|
rules.title.player = Joueurs
|
||||||
rules.title.enemy = Ennemis
|
rules.title.enemy = Ennemis
|
||||||
rules.title.unit = Unités
|
rules.title.unit = Unités
|
||||||
|
rules.title.experimental = Expérimental
|
||||||
|
rules.lighting = Éclairage
|
||||||
|
rules.ambientlight = Éclairage Ambiant
|
||||||
|
|
||||||
content.item.name = Objets
|
content.item.name = Objets
|
||||||
content.liquid.name = Liquides
|
content.liquid.name = Liquides
|
||||||
content.unit.name = Unités
|
content.unit.name = Unités
|
||||||
@@ -753,6 +807,7 @@ mech.trident-ship.name = Trident
|
|||||||
mech.trident-ship.weapon = Bombes
|
mech.trident-ship.weapon = Bombes
|
||||||
mech.glaive-ship.name = Glaive
|
mech.glaive-ship.name = Glaive
|
||||||
mech.glaive-ship.weapon = Mitraille incendiaire
|
mech.glaive-ship.weapon = Mitraille incendiaire
|
||||||
|
item.corestorable = [lightgray]Stockable dans le Noyau: {0}
|
||||||
item.explosiveness = [LIGHT_GRAY]Explosivité: {0}
|
item.explosiveness = [LIGHT_GRAY]Explosivité: {0}
|
||||||
item.flammability = [LIGHT_GRAY]Inflammabilité: {0}
|
item.flammability = [LIGHT_GRAY]Inflammabilité: {0}
|
||||||
item.radioactivity = [LIGHT_GRAY]Radioactivité: {0}
|
item.radioactivity = [LIGHT_GRAY]Radioactivité: {0}
|
||||||
@@ -768,6 +823,7 @@ mech.buildspeed = [LIGHT_GRAY]Vitesse de Construction: {0}%
|
|||||||
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Température: {0}
|
liquid.temperature = [LIGHT_GRAY]Température: {0}
|
||||||
|
|
||||||
block.sand-boulder.name = Bloc de Sable
|
block.sand-boulder.name = Bloc de Sable
|
||||||
block.grass.name = Herbe
|
block.grass.name = Herbe
|
||||||
block.salt.name = Sel
|
block.salt.name = Sel
|
||||||
@@ -866,6 +922,8 @@ block.distributor.name = Distributeur
|
|||||||
block.sorter.name = Trieur
|
block.sorter.name = Trieur
|
||||||
block.inverted-sorter.name = Trieur Inversé
|
block.inverted-sorter.name = Trieur Inversé
|
||||||
block.message.name = Message
|
block.message.name = Message
|
||||||
|
block.illuminator.name = Illuminateur
|
||||||
|
block.illuminator.description = Une petite source lumineuse compacte et configurable. Nécessite de l'énergie pour fonctionner.
|
||||||
block.overflow-gate.name = Barrière de Débordement
|
block.overflow-gate.name = Barrière de Débordement
|
||||||
block.silicon-smelter.name = Fonderie de Silicium
|
block.silicon-smelter.name = Fonderie de Silicium
|
||||||
block.phase-weaver.name = Tisseur à Phase
|
block.phase-weaver.name = Tisseur à Phase
|
||||||
@@ -879,6 +937,7 @@ block.coal-centrifuge.name = Centrifugeur à Charbon
|
|||||||
block.power-node.name = Transmetteur Énergétique
|
block.power-node.name = Transmetteur Énergétique
|
||||||
block.power-node-large.name = Grand Transmetteur Énergétique
|
block.power-node-large.name = Grand Transmetteur Énergétique
|
||||||
block.surge-tower.name = Tour de Surtension
|
block.surge-tower.name = Tour de Surtension
|
||||||
|
block.diode.name = Diode de Batterie
|
||||||
block.battery.name = Batterie
|
block.battery.name = Batterie
|
||||||
block.battery-large.name = Grande Batterie
|
block.battery-large.name = Grande Batterie
|
||||||
block.combustion-generator.name = Générateur à Combustion
|
block.combustion-generator.name = Générateur à Combustion
|
||||||
@@ -931,6 +990,7 @@ block.fortress-factory.name = Usine de Méchas Forteresses
|
|||||||
block.revenant-factory.name = Usine de Combattants Revenants
|
block.revenant-factory.name = Usine de Combattants Revenants
|
||||||
block.repair-point.name = Point de Réparation
|
block.repair-point.name = Point de Réparation
|
||||||
block.pulse-conduit.name = Conduit à Impulsion
|
block.pulse-conduit.name = Conduit à Impulsion
|
||||||
|
block.plated-conduit.name = Conduit Plaqué
|
||||||
block.phase-conduit.name = Conduit Phasé
|
block.phase-conduit.name = Conduit Phasé
|
||||||
block.liquid-router.name = Routeur de Liquide
|
block.liquid-router.name = Routeur de Liquide
|
||||||
block.liquid-tank.name = Réservoir à Liquide
|
block.liquid-tank.name = Réservoir à Liquide
|
||||||
@@ -938,7 +998,7 @@ block.liquid-junction.name = Jonction à Liquide
|
|||||||
block.bridge-conduit.name = Conduit Surélevé
|
block.bridge-conduit.name = Conduit Surélevé
|
||||||
block.rotary-pump.name = Pompe Rotative
|
block.rotary-pump.name = Pompe Rotative
|
||||||
block.thorium-reactor.name = Réacteur à Thorium
|
block.thorium-reactor.name = Réacteur à Thorium
|
||||||
block.mass-driver.name = Transporteur de Masses
|
block.mass-driver.name = Catapulte Électromagnétique
|
||||||
block.blast-drill.name = Foreuse à Explosion
|
block.blast-drill.name = Foreuse à Explosion
|
||||||
block.thermal-pump.name = Pompe Thermique
|
block.thermal-pump.name = Pompe Thermique
|
||||||
block.thermal-generator.name = Générateur Thermique
|
block.thermal-generator.name = Générateur Thermique
|
||||||
@@ -982,7 +1042,7 @@ unit.eradicator.name = Éradicateur
|
|||||||
unit.lich.name = Liche
|
unit.lich.name = Liche
|
||||||
unit.reaper.name = Faucheur
|
unit.reaper.name = Faucheur
|
||||||
tutorial.next = [lightgray]<Appuyez pour continuer>
|
tutorial.next = [lightgray]<Appuyez pour continuer>
|
||||||
tutorial.intro = Vous venez de commencer le [scarlet]Tutoriel de Mindustry.[]\nUtilisez [[ZQSD] pour vous déplacer.\n[accent]Maintenez [[Ctrl] tout en faisant rouler la molette de la souris[] pour zoomer et dézoomer.\nCommencez en minant du [accent]cuivre[]. Pour cela, rapprochez vous de la veine de minerais de cuivre près de votre noyau et faites un clic gauche dessus.\n\n[accent]{0}/{1} cuivre
|
tutorial.intro = Vous venez de commencer le [scarlet]Tutoriel de Mindustry.[]\nUtilisez [accent][[ZQSD][] pour vous déplacer.\n[accent]Maintenez [[Ctrl] tout en faisant rouler la molette de la souris[] pour zoomer et dézoomer.\nCommencez en minant du [accent]cuivre[]. Pour cela, rapprochez vous de la veine de minerais de cuivre près de votre noyau et faites un clic gauche dessus.\n\n[accent]{0}/{1} cuivre
|
||||||
tutorial.intro.mobile = Vous venez de commencer le [scarlet]Tutoriel de Mindustry.[]\nBalayez l'écran pour vous déplacer.\n[accent] Pincer avec deux doigts [] afin d'agrandir et rétrécir la perspective.\nCommencez en[accent] minant du cuivre[]. Pour cela, appuyez sur une veine de minerai de cuivre près de votre noyau.\n\n[accent]{0}/{1} cuivre
|
tutorial.intro.mobile = Vous venez de commencer le [scarlet]Tutoriel de Mindustry.[]\nBalayez l'écran pour vous déplacer.\n[accent] Pincer avec deux doigts [] afin d'agrandir et rétrécir la perspective.\nCommencez en[accent] minant du cuivre[]. Pour cela, appuyez sur une veine de minerai de cuivre près de votre noyau.\n\n[accent]{0}/{1} cuivre
|
||||||
tutorial.drill = Miner manuellement est inefficace.\n[accent]Les foreuses []peuvent miner pour vous.\nCliquez sur l'onglet des foreuses en bas à droite.\nSélectionnez la [accent]foreuse mécanique[]. Placez-la sur une veine de cuivre en cliquant.\n[accent]Faite un clique-droit[] pour arrêter la construction.
|
tutorial.drill = Miner manuellement est inefficace.\n[accent]Les foreuses []peuvent miner pour vous.\nCliquez sur l'onglet des foreuses en bas à droite.\nSélectionnez la [accent]foreuse mécanique[]. Placez-la sur une veine de cuivre en cliquant.\n[accent]Faite un clique-droit[] pour arrêter la construction.
|
||||||
tutorial.drill.mobile = Miner manuellement est inefficace.\n[accent]Les foreuses []peuvent miner pour vous.\nAppuyez sur l'onglet des foreuses en bas à droite.\nSélectionnez la [accent]foreuse mécanique[].\nPlacez-la sur une veine de cuivre en y appuyant, puis en touchant la[accent] coche[] pour confirmer votre placement.\nAppuyez sur le [accent]bouton en forme de croix[] pour annuler le placement.
|
tutorial.drill.mobile = Miner manuellement est inefficace.\n[accent]Les foreuses []peuvent miner pour vous.\nAppuyez sur l'onglet des foreuses en bas à droite.\nSélectionnez la [accent]foreuse mécanique[].\nPlacez-la sur une veine de cuivre en y appuyant, puis en touchant la[accent] coche[] pour confirmer votre placement.\nAppuyez sur le [accent]bouton en forme de croix[] pour annuler le placement.
|
||||||
@@ -1002,6 +1062,7 @@ tutorial.deposit = Déposez des ressources dans des blocs en les faisant glisser
|
|||||||
tutorial.waves = L'[lightgray] ennemi[] approche.\n\nDéfendez le noyau pendant 2 vagues.[accent] Cliquez[] pour tirer.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre.
|
tutorial.waves = L'[lightgray] ennemi[] approche.\n\nDéfendez le noyau pendant 2 vagues.[accent] Cliquez[] pour tirer.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre.
|
||||||
tutorial.waves.mobile = L'[lightgray] ennemi[] approche.\n\nDéfendez le noyau pendant 2 vagues. Votre vaisseau tirera automatiquement sur les ennemis.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre.
|
tutorial.waves.mobile = L'[lightgray] ennemi[] approche.\n\nDéfendez le noyau pendant 2 vagues. Votre vaisseau tirera automatiquement sur les ennemis.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre.
|
||||||
tutorial.launch = Une fois que vous aurez atteint une vague spécifique, vous aurez la possibilité de[accent] faire décoller le noyau[], abandonnant vos défenses mais [accent]sécurisant toutes les ressources stockées dans votre noyau.[]\nCes ressources peuvent ensuite être utilisées pour rechercher de nouvelles technologies.\n\n[accent]Appuyez sur le bouton de lancement.
|
tutorial.launch = Une fois que vous aurez atteint une vague spécifique, vous aurez la possibilité de[accent] faire décoller le noyau[], abandonnant vos défenses mais [accent]sécurisant toutes les ressources stockées dans votre noyau.[]\nCes ressources peuvent ensuite être utilisées pour rechercher de nouvelles technologies.\n\n[accent]Appuyez sur le bouton de lancement.
|
||||||
|
|
||||||
item.copper.description = Le matériau structurel de base. Utilisé intensivement dans tout les blocs.
|
item.copper.description = Le matériau structurel de base. Utilisé intensivement dans tout les blocs.
|
||||||
item.lead.description = Un matériau de départ. Utilisé intensivement en électronique et dans les blocs de transport de liquides.
|
item.lead.description = Un matériau de départ. Utilisé intensivement en électronique et dans les blocs de transport de liquides.
|
||||||
item.metaglass.description = Un composé de vitre super-résistant. Utilisé largement pour le transport et le stockage de liquides.
|
item.metaglass.description = Un composé de vitre super-résistant. Utilisé largement pour le transport et le stockage de liquides.
|
||||||
@@ -1026,7 +1087,7 @@ mech.alpha-mech.description = Le mécha standard. Est basé sur une unité Poign
|
|||||||
mech.delta-mech.description = Un mécha rapide, avec une armure légère, conçu pour les attaques de frappe. Il inflige, par contre, peu de dégâts aux structures. Néanmoins il peut tuer de grand groupes d'ennemis très rapidement avec ses arcs électriques.
|
mech.delta-mech.description = Un mécha rapide, avec une armure légère, conçu pour les attaques de frappe. Il inflige, par contre, peu de dégâts aux structures. Néanmoins il peut tuer de grand groupes d'ennemis très rapidement avec ses arcs électriques.
|
||||||
mech.tau-mech.description = Un mécha de support. Soigne les blocs alliés en tirant dessus. Il peut aussi éteindre les feux et soigner ses alliés en zone avec sa compétence.
|
mech.tau-mech.description = Un mécha de support. Soigne les blocs alliés en tirant dessus. Il peut aussi éteindre les feux et soigner ses alliés en zone avec sa compétence.
|
||||||
mech.omega-mech.description = Un mécha cuirassé et large fait pour les assauts frontaux. Sa compétence lui permet de bloquer 90% des dégâts.
|
mech.omega-mech.description = Un mécha cuirassé et large fait pour les assauts frontaux. Sa compétence lui permet de bloquer 90% des dégâts.
|
||||||
mech.dart-ship.description = Le vaisseau standard. Raisonnablement rapide et léger. Il a néanmoins peu d'attaque et une faible vitesse de minage.
|
mech.dart-ship.description = Le vaisseau standard. Il est raisonnablement rapide, léger et possède une vitesse de minage rapide. Néanmoins, ses capacités d'attaque sont faibles.
|
||||||
mech.javelin-ship.description = Un vaisseau de frappe éclair qui, bien que lent au départ, peut accélérer pour atteindre de très grandes vitesses et voler jusqu'aux avant-postes ennemis, faisant d'énormes dégâts avec ses arc électriques obtenus à vitesse maximum et ses missiles.
|
mech.javelin-ship.description = Un vaisseau de frappe éclair qui, bien que lent au départ, peut accélérer pour atteindre de très grandes vitesses et voler jusqu'aux avant-postes ennemis, faisant d'énormes dégâts avec ses arc électriques obtenus à vitesse maximum et ses missiles.
|
||||||
mech.trident-ship.description = Un bombardier lourd, conçu pour la construction et pour la destruction des fortifications ennemies. Assez bien blindé.
|
mech.trident-ship.description = Un bombardier lourd, conçu pour la construction et pour la destruction des fortifications ennemies. Assez bien blindé.
|
||||||
mech.glaive-ship.description = Un grand vaisseau de combat cuirassé. Équipé avec un fusil automatique à munitions incendiaires. Est très maniable.
|
mech.glaive-ship.description = Un grand vaisseau de combat cuirassé. Équipé avec un fusil automatique à munitions incendiaires. Est très maniable.
|
||||||
@@ -1087,17 +1148,18 @@ block.titanium-conveyor.description = Convoyeur avancé . Déplace les objets pl
|
|||||||
block.junction.description = Agit comme un pont pour deux lignes de convoyeurs se croisant. Utile lorsque deux différents convoyeurs déplacent différents matériaux à différents endroits.
|
block.junction.description = Agit comme un pont pour deux lignes de convoyeurs se croisant. Utile lorsque deux différents convoyeurs déplacent différents matériaux à différents endroits.
|
||||||
block.bridge-conveyor.description = Bloc de transport avancé permettant de traverser jusqu'à 3 blocs de n'importe quel terrain ou bâtiment.
|
block.bridge-conveyor.description = Bloc de transport avancé permettant de traverser jusqu'à 3 blocs de n'importe quel terrain ou bâtiment.
|
||||||
block.phase-conveyor.description = Convoyeur très avancé. Utilise de l'énergie pour téléporter des objets à un convoyeur phasé connecté jusqu'à une longue distance.
|
block.phase-conveyor.description = Convoyeur très avancé. Utilise de l'énergie pour téléporter des objets à un convoyeur phasé connecté jusqu'à une longue distance.
|
||||||
block.sorter.description = Trie les articles. Si un article correspond à la sélection, il peut passer. Autrement, l'article est distribué vers la gauche ou la droite.
|
block.sorter.description = Trie les ressources. Si une ressource correspond à la sélection, elle peut passer. Autrement, elle est distribuée vers la gauche ou la droite.
|
||||||
block.inverted-sorter.description = Trie les articles comme un trieur standard, mais ceux correspondant à la sélection sont envoyés sur les côtés.
|
block.inverted-sorter.description = Trie les ressources comme un trieur standard, mais ceux correspondant à la sélection sont envoyés sur les côtés.
|
||||||
block.router.description = Accepte les objets depuis une ou plus directions et le renvoie dans n'importe quelle direction. Utile pour séparer une chaîne de convoyeurs en plusieurs.[accent]Le seul et l'Unique[]
|
block.router.description = Accepte les objets depuis une ou plus directions et le renvoie dans n'importe quelle direction. Utile pour séparer une chaîne de convoyeurs en plusieurs.[accent]Le seul et l'Unique[]
|
||||||
block.distributor.description = Un routeur avancé qui sépare les objets jusqu'à 7 autres directions équitablement.
|
block.distributor.description = Un routeur avancé qui sépare les objets jusqu'à 7 autres directions équitablement.
|
||||||
block.overflow-gate.description = C'est la combinaison entre un Routeur et un Diviseur qui peut seulement distribuer à gauche et à droite si le chemin de devant est bloqué.
|
block.overflow-gate.description = Bloc envoyant les ressources à gauche et à droite si le chemin de devant est bloqué.
|
||||||
block.mass-driver.description = bâtiment de transport d'objet [accent]ultime[]. Collecte un grand nombre d'objets puis les tire à un autre transporteur de masse sur une très longue distance.
|
block.mass-driver.description = Le moyen de transport de resources ultime. Collecte plusieurs ressources puis les envoie à une autre catapulte sur une longue distance. Nécessite de l'énergie pour fonctionner.
|
||||||
block.mechanical-pump.description = Une pompe de faible prix pompant lentement, mais ne consomme pas d'énergie.
|
block.mechanical-pump.description = Une pompe de faible prix pompant lentement, mais ne consommant pas d'énergie.
|
||||||
block.rotary-pump.description = Une pompe avancée plus rapide mais utilisant de l'énergie.
|
block.rotary-pump.description = Une pompe avancée plus rapide mais utilisant de l'énergie.
|
||||||
block.thermal-pump.description = La pompe ultime. Beaucoup plus rapide qu'une pompe mécanique et la seule pompe capable de récupérer de la lave.
|
block.thermal-pump.description = La pompe ultime.
|
||||||
block.conduit.description = Tuyau basique permettant le transport de liquide . Marche comme un convoyeur mais avec les liquides. Utile si utilisé avec des extracteurs, des pompes ou d'autres conduits.
|
block.conduit.description = Bloc de transport de liquide de base. Fait avancer les liquides. Utilisé avec des pompes et autres conduits.
|
||||||
block.pulse-conduit.description = Tuyau avancé permettant le transport de liquide. Transporte les liquides plus rapidement et en stocke plus que les tuyaux standards.
|
block.pulse-conduit.description = Tuyau avancé permettant le transport de liquide. Transporte les liquides plus rapidement et en stocke plus que les tuyaux standards.
|
||||||
|
block.plated-conduit.description = Déplace les liquides au même rythme que les conduits d'impulsion, mais possède plus d'armure. N'accepte pas de liquides provenant des côtés par autre chose que des conduits.\nFuit moins.
|
||||||
block.liquid-router.description = Accepte les liquides en une direction et les rejette de tous les côtés équitablement. Peut aussi stocker une certaine quantité de liquide. Utile pour envoyer un liquide à plusieurs endroits.
|
block.liquid-router.description = Accepte les liquides en une direction et les rejette de tous les côtés équitablement. Peut aussi stocker une certaine quantité de liquide. Utile pour envoyer un liquide à plusieurs endroits.
|
||||||
block.liquid-tank.description = Stocke une grande quantité de liquides . Utile pour réguler la sortie quand la demande est inconstante ou comme sécurité pour refroidir des bâtiments important.
|
block.liquid-tank.description = Stocke une grande quantité de liquides . Utile pour réguler la sortie quand la demande est inconstante ou comme sécurité pour refroidir des bâtiments important.
|
||||||
block.liquid-junction.description = Agit comme une intersection pour deux conduits se croisant.Utile si deux conduits amènent différents liquides à différents endroits.
|
block.liquid-junction.description = Agit comme une intersection pour deux conduits se croisant.Utile si deux conduits amènent différents liquides à différents endroits.
|
||||||
@@ -1106,9 +1168,10 @@ block.phase-conduit.description = Tuyau très avancé permettant le transport de
|
|||||||
block.power-node.description = Transmet l'énergie aux transmetteurs énergétiques connectés. Le transmetteur recevra de l'énergie ou la transmettra à n'importe quel bâtiment adjacent.
|
block.power-node.description = Transmet l'énergie aux transmetteurs énergétiques connectés. Le transmetteur recevra de l'énergie ou la transmettra à n'importe quel bâtiment adjacent.
|
||||||
block.power-node-large.description = Possède un rayon plus grand que le transmetteur énergétique standard, connectant d'autant plus de consommateurs ou transmetteurs d'énergie.
|
block.power-node-large.description = Possède un rayon plus grand que le transmetteur énergétique standard, connectant d'autant plus de consommateurs ou transmetteurs d'énergie.
|
||||||
block.surge-tower.description = Un transmetteur énergétique de très grande portée mais avec moins de connections disponibles.
|
block.surge-tower.description = Un transmetteur énergétique de très grande portée mais avec moins de connections disponibles.
|
||||||
|
block.diode.description = La batterie ne peut circuler dans ce bloc que dans un sens, mais uniquement si l’autre côté a moins d’énergie stockée.
|
||||||
block.battery.description = Stocke l'énergie quand elle est en abondance et la redistribue si il y a un deficit d'énergie dans la limite des réserves disponibles.
|
block.battery.description = Stocke l'énergie quand elle est en abondance et la redistribue si il y a un deficit d'énergie dans la limite des réserves disponibles.
|
||||||
block.battery-large.description = Stocke bien plus d'énergie qu'une batterie normale.
|
block.battery-large.description = Stocke bien plus d'énergie qu'une batterie normale.
|
||||||
block.combustion-generator.description = Génère de l'énergie en brûlant du charbon ou des matériaux inflammables.
|
block.combustion-generator.description = Génère de l'énergie en brûlant du charbon ou d'autres matériaux inflammables.
|
||||||
block.thermal-generator.description = Génère une grande quantité d'énergie à partir de zone de chaleur.
|
block.thermal-generator.description = Génère une grande quantité d'énergie à partir de zone de chaleur.
|
||||||
block.turbine-generator.description = Plus efficace qu'un générateur à combustion, mais requiert de l'eau.
|
block.turbine-generator.description = Plus efficace qu'un générateur à combustion, mais requiert de l'eau.
|
||||||
block.differential-generator.description = Génère de grande quantité d'energie. Utilise différence de temperature entre le liquide cryogénique et la pyratite brûlante.
|
block.differential-generator.description = Génère de grande quantité d'energie. Utilise différence de temperature entre le liquide cryogénique et la pyratite brûlante.
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Choisir un bloc
|
|||||||
keybind.break_block.name = Supprimer un bloc
|
keybind.break_block.name = Supprimer un bloc
|
||||||
keybind.deselect.name = Déselectionner
|
keybind.deselect.name = Déselectionner
|
||||||
keybind.shoot.name = Tirer
|
keybind.shoot.name = Tirer
|
||||||
keybind.zoom_hold.name = Tenir le zoom
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Memilih Blok
|
|||||||
keybind.break_block.name = Menghancurkan Blok
|
keybind.break_block.name = Menghancurkan Blok
|
||||||
keybind.deselect.name = Batal Memilih
|
keybind.deselect.name = Batal Memilih
|
||||||
keybind.shoot.name = Menembak
|
keybind.shoot.name = Menembak
|
||||||
keybind.zoom_hold.name = Tahan Mode Zoom
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Jeda
|
keybind.pause.name = Jeda
|
||||||
|
|||||||
@@ -17,29 +17,29 @@ screenshot.invalid = マップが広すぎます。スクリーンショット
|
|||||||
gameover = ゲームオーバー
|
gameover = ゲームオーバー
|
||||||
gameover.pvp = [accent] {0}[] チームの勝利!
|
gameover.pvp = [accent] {0}[] チームの勝利!
|
||||||
highscore = [accent]ハイスコアを更新!
|
highscore = [accent]ハイスコアを更新!
|
||||||
copied = Copied.
|
copied = コピーしました。
|
||||||
load.sound = サウンド
|
load.sound = サウンド
|
||||||
load.map = マップ
|
load.map = マップ
|
||||||
load.image = 画像
|
load.image = 画像
|
||||||
load.content = コンテンツ
|
load.content = コンテンツ
|
||||||
load.system = システム
|
load.system = システム
|
||||||
load.mod = MOD
|
load.mod = MOD
|
||||||
schematic = Schematic
|
schematic = 設計図
|
||||||
schematic.add = Save Schematic...
|
schematic.add = 設計図を保存しています...
|
||||||
schematics = Schematics
|
schematics = 設計図一覧
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = 同じ名前の設計図があるようです。 上書きしますか?
|
||||||
schematic.import = Import Schematic...
|
schematic.import = 設計図を読み込んでいます...
|
||||||
schematic.exportfile = Export File
|
schematic.exportfile = ファイルに出力する
|
||||||
schematic.importfile = Import File
|
schematic.importfile = ファイルから読み込む
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.browseworkshop = ワークショップを表示する
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.copy = クリップボードにコピーする
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.copy.import = クリップボードから読み込む
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.shareworkshop = ワークショップで共有する
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
||||||
schematic.saved = Schematic saved.
|
schematic.saved = 設計図を保存しました。
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.delete.confirm = この設計図は完全に削除されます。よろしいですか
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = 設計図の名前を変更する。
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} ブロック
|
||||||
stat.wave = 防衛したウェーブ:[accent] {0}
|
stat.wave = 防衛したウェーブ:[accent] {0}
|
||||||
stat.enemiesDestroyed = 敵による破壊数:[accent] {0}
|
stat.enemiesDestroyed = 敵による破壊数:[accent] {0}
|
||||||
stat.built = 建設した建造物数:[accent] {0}
|
stat.built = 建設した建造物数:[accent] {0}
|
||||||
@@ -64,7 +64,7 @@ customgame = カスタムプレイ
|
|||||||
newgame = 新しく始める
|
newgame = 新しく始める
|
||||||
none = <なし>
|
none = <なし>
|
||||||
minimap = ミニマップ
|
minimap = ミニマップ
|
||||||
position = Position
|
position = 位置
|
||||||
close = 閉じる
|
close = 閉じる
|
||||||
website = ウェブサイト
|
website = ウェブサイト
|
||||||
quit = 終了
|
quit = 終了
|
||||||
@@ -80,25 +80,25 @@ uploadingcontent = コンテンツをアップロードしています
|
|||||||
uploadingpreviewfile = プレビューファイルをアップロードしています
|
uploadingpreviewfile = プレビューファイルをアップロードしています
|
||||||
committingchanges = 変更を適応中
|
committingchanges = 変更を適応中
|
||||||
done = 完了
|
done = 完了
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = あなたのデバイスはこの機能をサポートしていません。
|
||||||
mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry GitHubに報告してください。
|
mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry GitHubに報告してください。
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]Modが見つかりませんでした!
|
mods.none = [LIGHT_GRAY]Modが見つかりませんでした!
|
||||||
mods.guide = Modding Guide
|
mods.guide = Modding Guide
|
||||||
mods.report = Report Bug
|
mods.report = バグを報告する
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = MODのフォルダを開く
|
||||||
mod.enabled = [lightgray]有効
|
mod.enabled = [lightgray]有効
|
||||||
mod.disabled = [scarlet]無効
|
mod.disabled = [scarlet]無効
|
||||||
mod.disable = 無効化
|
mod.disable = 無効化
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = MODを削除することができませんでした。
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
||||||
mod.enable = 有効化
|
mod.enable = 有効化
|
||||||
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
|
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
|
||||||
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。
|
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。
|
||||||
mod.import = Modをインポート
|
mod.import = Modをインポート
|
||||||
mod.import.github = Import GitHub Mod
|
mod.import.github = GitHubからMODを読み込む
|
||||||
mod.remove.confirm = このModを削除します。
|
mod.remove.confirm = このModを削除します。
|
||||||
mod.author = [LIGHT_GRAY]著者:[] {0}
|
mod.author = [LIGHT_GRAY]著者:[] {0}
|
||||||
mod.missing = このセーブには、アップグレードされた可能性があるModsか、ここに存在しないModsが必要です。 メモリのセーブを保存する! ロードしてもよろしいですか?\n[lightgray]MODS:\n{0}
|
mod.missing = このセーブには、アップグレードされた可能性があるModsか、ここに存在しないModsが必要です。 メモリのセーブを保存する! ロードしてもよろしいですか?\n[lightgray]MODS:\n{0}
|
||||||
@@ -166,7 +166,7 @@ server.version = [lightgray]バージョン: {0} {1}
|
|||||||
server.custombuild = [yellow]カスタムビルド
|
server.custombuild = [yellow]カスタムビルド
|
||||||
confirmban = このプレイヤーをBanしてもよろしいですか?
|
confirmban = このプレイヤーをBanしてもよろしいですか?
|
||||||
confirmkick = このプレイヤーをキックしてもよろしいですか?
|
confirmkick = このプレイヤーをキックしてもよろしいですか?
|
||||||
confirmvotekick = Are you sure you want to vote-kick this player?
|
confirmvotekick = このプレイヤーを投票キックしてもよろしいですか?
|
||||||
confirmunban = このプレイヤーのBanを解除してもよろしいですか?
|
confirmunban = このプレイヤーのBanを解除してもよろしいですか?
|
||||||
confirmadmin = このプレイヤーを管理者にしてもよろしいですか?
|
confirmadmin = このプレイヤーを管理者にしてもよろしいですか?
|
||||||
confirmunadmin = このプレイヤーを管理者から削除してもよろしいですか?
|
confirmunadmin = このプレイヤーを管理者から削除してもよろしいですか?
|
||||||
@@ -202,7 +202,7 @@ save.rename = 名前を変更
|
|||||||
save.rename.text = 新しい名前:
|
save.rename.text = 新しい名前:
|
||||||
selectslot = セーブデータを選択してください。
|
selectslot = セーブデータを選択してください。
|
||||||
slot = [accent]スロット {0}
|
slot = [accent]スロット {0}
|
||||||
editmessage = Edit Message
|
editmessage = メッセージを編集する
|
||||||
save.corrupted = [accent]セーブファイルが無効、または破損しました!\nゲームのアップデート直後の場合、恐らくセーブデータのフォーマットの変更によるもので、バグではありません。
|
save.corrupted = [accent]セーブファイルが無効、または破損しました!\nゲームのアップデート直後の場合、恐らくセーブデータのフォーマットの変更によるもので、バグではありません。
|
||||||
empty = <空>
|
empty = <空>
|
||||||
on = オン
|
on = オン
|
||||||
@@ -237,10 +237,10 @@ quit.confirm.tutorial = チュートリアルを終了しますか?\nチュー
|
|||||||
loading = [accent]読み込み中...
|
loading = [accent]読み込み中...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Reloading Mods...
|
||||||
saving = [accent]保存中...
|
saving = [accent]保存中...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] 選択を解除する
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] 選択し、コピーする
|
||||||
pausebuilding = [accent][[{0}][] to pause building
|
pausebuilding = [accent][[{0}][] 建築を一時的に中断する
|
||||||
resumebuilding = [scarlet][[{0}][] to resume building
|
resumebuilding = [scarlet][[{0}][] 建築を再開する
|
||||||
wave = [accent]ウェーブ {0}
|
wave = [accent]ウェーブ {0}
|
||||||
wave.waiting = [lightgray]次のウェーブまで {0} 秒
|
wave.waiting = [lightgray]次のウェーブまで {0} 秒
|
||||||
wave.waveInProgress = [lightgray]ウェーブ進行中
|
wave.waveInProgress = [lightgray]ウェーブ進行中
|
||||||
@@ -424,8 +424,8 @@ launch.confirm = すべての資源をコアに搬入し、発射します。\n
|
|||||||
launch.skip.confirm = スキップすると、次の発射可能なウェーブまで発射できません。
|
launch.skip.confirm = スキップすると、次の発射可能なウェーブまで発射できません。
|
||||||
uncover = 開放
|
uncover = 開放
|
||||||
configure = 積み荷の設定
|
configure = 積み荷の設定
|
||||||
bannedblocks = Banned Blocks
|
bannedblocks = 禁止ブロック
|
||||||
addall = Add All
|
addall = すべて追加
|
||||||
configure.locked = [lightgray]ウェーブ {0} を達成すると積み荷を設定できるようになります。
|
configure.locked = [lightgray]ウェーブ {0} を達成すると積み荷を設定できるようになります。
|
||||||
configure.invalid = 値は 0 から {0} の間でなければなりません。
|
configure.invalid = 値は 0 から {0} の間でなければなりません。
|
||||||
zone.unlocked = [lightgray]{0} がアンロックされました.
|
zone.unlocked = [lightgray]{0} がアンロックされました.
|
||||||
@@ -509,7 +509,7 @@ blocks.shootrange = 範囲
|
|||||||
blocks.size = 大きさ
|
blocks.size = 大きさ
|
||||||
blocks.liquidcapacity = 液体容量
|
blocks.liquidcapacity = 液体容量
|
||||||
blocks.powerrange = 電力範囲
|
blocks.powerrange = 電力範囲
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = 最大接続数
|
||||||
blocks.poweruse = 電力使用量
|
blocks.poweruse = 電力使用量
|
||||||
blocks.powerdamage = 電力/ダメージ
|
blocks.powerdamage = 電力/ダメージ
|
||||||
blocks.itemcapacity = アイテム容量
|
blocks.itemcapacity = アイテム容量
|
||||||
@@ -531,10 +531,10 @@ blocks.reload = ショット/秒
|
|||||||
blocks.ammo = 弾薬
|
blocks.ammo = 弾薬
|
||||||
bar.drilltierreq = より良いドリルが必要です
|
bar.drilltierreq = より良いドリルが必要です
|
||||||
bar.drillspeed = 採掘速度: {0}/秒
|
bar.drillspeed = 採掘速度: {0}/秒
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = ポンプの速度: {0}/s
|
||||||
bar.efficiency = 効率: {0}%
|
bar.efficiency = 効率: {0}%
|
||||||
bar.powerbalance = 電力: {0}/秒
|
bar.powerbalance = 電力: {0}/秒
|
||||||
bar.powerstored = Stored: {0}/{1}
|
bar.powerstored = 残量: {0}/{1}
|
||||||
bar.poweramount = 電力: {0}
|
bar.poweramount = 電力: {0}
|
||||||
bar.poweroutput = 電力発電量: {0}
|
bar.poweroutput = 電力発電量: {0}
|
||||||
bar.items = アイテム: {0}
|
bar.items = アイテム: {0}
|
||||||
@@ -578,7 +578,7 @@ setting.landscape.name = 横画面で固定
|
|||||||
setting.shadows.name = 影
|
setting.shadows.name = 影
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Automatic Block Suggestions
|
||||||
setting.linear.name = リニアフィルター
|
setting.linear.name = リニアフィルター
|
||||||
setting.hints.name = Hints
|
setting.hints.name = ヒント
|
||||||
setting.animatedwater.name = 水のアニメーション
|
setting.animatedwater.name = 水のアニメーション
|
||||||
setting.animatedshields.name = シールドのアニメーション
|
setting.animatedshields.name = シールドのアニメーション
|
||||||
setting.antialias.name = アンチエイリアス[lightgray] (再起動が必要)[]
|
setting.antialias.name = アンチエイリアス[lightgray] (再起動が必要)[]
|
||||||
@@ -599,7 +599,7 @@ setting.difficulty.insane = クレイジー
|
|||||||
setting.difficulty.name = 難易度:
|
setting.difficulty.name = 難易度:
|
||||||
setting.screenshake.name = 画面の揺れ
|
setting.screenshake.name = 画面の揺れ
|
||||||
setting.effects.name = 画面効果
|
setting.effects.name = 画面効果
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = 破壊されたブロックを表示
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
||||||
setting.sensitivity.name = 操作感度
|
setting.sensitivity.name = 操作感度
|
||||||
setting.saveinterval.name = 自動保存間隔
|
setting.saveinterval.name = 自動保存間隔
|
||||||
@@ -610,7 +610,7 @@ setting.fps.name = FPSを表示
|
|||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます)
|
setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます)
|
||||||
setting.minimap.name = ミニマップを表示
|
setting.minimap.name = ミニマップを表示
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = プレイヤーの位置表示
|
||||||
setting.musicvol.name = 音楽 音量
|
setting.musicvol.name = 音楽 音量
|
||||||
setting.ambientvol.name = 環境音 音量
|
setting.ambientvol.name = 環境音 音量
|
||||||
setting.mutemusic.name = 音楽をミュート
|
setting.mutemusic.name = 音楽をミュート
|
||||||
@@ -620,7 +620,7 @@ setting.crashreport.name = 匿名でクラッシュレポートを送信する
|
|||||||
setting.savecreate.name = 自動保存
|
setting.savecreate.name = 自動保存
|
||||||
setting.publichost.name = 誰でもゲームに参加できるようにする
|
setting.publichost.name = 誰でもゲームに参加できるようにする
|
||||||
setting.chatopacity.name = チャットの透明度
|
setting.chatopacity.name = チャットの透明度
|
||||||
setting.lasersopacity.name = Power Laser Opacity
|
setting.lasersopacity.name = レーザーの透明度
|
||||||
setting.playerchat.name = ゲーム内にチャットを表示
|
setting.playerchat.name = ゲーム内にチャットを表示
|
||||||
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Note that beta versions of the game cannot make public lobbies.
|
||||||
@@ -652,7 +652,6 @@ keybind.pick.name = ブロックの選択
|
|||||||
keybind.break_block.name = ブロックの破壊
|
keybind.break_block.name = ブロックの破壊
|
||||||
keybind.deselect.name = 選択解除
|
keybind.deselect.name = 選択解除
|
||||||
keybind.shoot.name = ショット
|
keybind.shoot.name = ショット
|
||||||
keybind.zoom_hold.name = 長押しズーム
|
|
||||||
keybind.zoom.name = ズーム
|
keybind.zoom.name = ズーム
|
||||||
keybind.menu.name = メニュー
|
keybind.menu.name = メニュー
|
||||||
keybind.pause.name = ポーズ
|
keybind.pause.name = ポーズ
|
||||||
@@ -843,8 +842,8 @@ block.copper-wall.name = 銅の壁
|
|||||||
block.copper-wall-large.name = 巨大な銅の壁
|
block.copper-wall-large.name = 巨大な銅の壁
|
||||||
block.titanium-wall.name = チタンの壁
|
block.titanium-wall.name = チタンの壁
|
||||||
block.titanium-wall-large.name = 巨大なチタンの壁
|
block.titanium-wall-large.name = 巨大なチタンの壁
|
||||||
block.plastanium-wall.name = Plastanium Wall
|
block.plastanium-wall.name = プラスタニウムの壁
|
||||||
block.plastanium-wall-large.name = Large Plastanium Wall
|
block.plastanium-wall-large.name = 巨大なプラスタニウムの壁
|
||||||
block.phase-wall.name = フェーズファイバーの壁
|
block.phase-wall.name = フェーズファイバーの壁
|
||||||
block.phase-wall-large.name = 巨大なフェーズファイバーの壁
|
block.phase-wall-large.name = 巨大なフェーズファイバーの壁
|
||||||
block.thorium-wall.name = トリウムの壁
|
block.thorium-wall.name = トリウムの壁
|
||||||
@@ -864,8 +863,8 @@ block.junction.name = ジャンクション
|
|||||||
block.router.name = ルーター
|
block.router.name = ルーター
|
||||||
block.distributor.name = ディストリビューター
|
block.distributor.name = ディストリビューター
|
||||||
block.sorter.name = ソーター
|
block.sorter.name = ソーター
|
||||||
block.inverted-sorter.name = Inverted Sorter
|
block.inverted-sorter.name = 反転ソーター
|
||||||
block.message.name = Message
|
block.message.name = メッセージブロック
|
||||||
block.overflow-gate.name = オーバーフローゲート
|
block.overflow-gate.name = オーバーフローゲート
|
||||||
block.silicon-smelter.name = シリコン溶鉱炉
|
block.silicon-smelter.name = シリコン溶鉱炉
|
||||||
block.phase-weaver.name = フェーズ織機
|
block.phase-weaver.name = フェーズ織機
|
||||||
@@ -1088,7 +1087,7 @@ block.junction.description = 十字に交差したコンベアーをそれぞれ
|
|||||||
block.bridge-conveyor.description = 高度な輸送ブロックです。地形や建物を超えて、3ブロック離れた場所にアイテムを輸送することができます。
|
block.bridge-conveyor.description = 高度な輸送ブロックです。地形や建物を超えて、3ブロック離れた場所にアイテムを輸送することができます。
|
||||||
block.phase-conveyor.description = 改良されたアイテム転送ブロックです。電力を使用して、離れた場所にあるフェーズコンベアーにアイテムを転送することができます。
|
block.phase-conveyor.description = 改良されたアイテム転送ブロックです。電力を使用して、離れた場所にあるフェーズコンベアーにアイテムを転送することができます。
|
||||||
block.sorter.description = アイテムを分別して搬出します。設定したアイテムは通過させます。他のアイテムが搬入されると側面にアイテムを搬出します。
|
block.sorter.description = アイテムを分別して搬出します。設定したアイテムは通過させます。他のアイテムが搬入されると側面にアイテムを搬出します。
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = アイテムを分別して搬出します。設定したアイテムは側面に搬出されます。他のアイテムが搬入されるとアイテムを通過させます。通常のルーターと反対の動作をします。
|
||||||
block.router.description = 搬入したアイテムをほかの3方向に均等に搬出します。一つの資源から複数に分ける際などに使われます。
|
block.router.description = 搬入したアイテムをほかの3方向に均等に搬出します。一つの資源から複数に分ける際などに使われます。
|
||||||
block.distributor.description = 高度なルーターです。搬入したアイテムをほかの7方向に均等に分けて搬出します。
|
block.distributor.description = 高度なルーターです。搬入したアイテムをほかの7方向に均等に分けて搬出します。
|
||||||
block.overflow-gate.description = 搬出先にアイテムを搬入する空きがない場合に左右にアイテムを搬出します。
|
block.overflow-gate.description = 搬出先にアイテムを搬入する空きがない場合に左右にアイテムを搬出します。
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ link.reddit.description = Mindustry 레딧
|
|||||||
link.github.description = 게임 소스코드
|
link.github.description = 게임 소스코드
|
||||||
link.changelog.description = 새로 추가된 것들
|
link.changelog.description = 새로 추가된 것들
|
||||||
link.dev-builds.description = 불안정한 개발 빌드들
|
link.dev-builds.description = 불안정한 개발 빌드들
|
||||||
link.trello.description = 다음 출시될 기능들을 게시한 공식 Trello 보드
|
link.trello.description = 출시 예정중인 기능들을 게시한 공식 Trello 보드
|
||||||
link.itch.io.description = PC 버전 다운로드와 HTML5 버전이 있는 itch.io 사이트
|
link.itch.io.description = PC 버전 다운로드와 HTML5 버전이 있는 itch.io 사이트
|
||||||
link.google-play.description = Google Play 스토어 정보
|
link.google-play.description = Google Play 스토어 정보
|
||||||
|
link.f-droid.description = F-Droid 카탈로그
|
||||||
link.wiki.description = 공식 Mindustry 위키
|
link.wiki.description = 공식 Mindustry 위키
|
||||||
|
link.feathub.description = 기능 아이디어 건의하기
|
||||||
linkfail = 링크를 여는 데 실패했습니다!\nURL이 기기의 클립보드에 복사되었습니다.
|
linkfail = 링크를 여는 데 실패했습니다!\nURL이 기기의 클립보드에 복사되었습니다.
|
||||||
screenshot = 스크린 샷이 {0} 경로에 저장되었습니다.
|
screenshot = 스크린 샷이 {0} 경로에 저장되었습니다.
|
||||||
screenshot.invalid = 맵이 너무 커서 스크린 샷을 찍을 메모리가 충분하지 않습니다.
|
screenshot.invalid = 맵이 너무 커서 스크린 샷을 찍을 메모리가 충분하지 않습니다.
|
||||||
@@ -18,12 +20,15 @@ gameover = 게임 오버
|
|||||||
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
|
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
|
||||||
highscore = [accent]최고점수 달성!
|
highscore = [accent]최고점수 달성!
|
||||||
copied = 복사됨.
|
copied = 복사됨.
|
||||||
|
|
||||||
load.sound = 소리
|
load.sound = 소리
|
||||||
load.map = 맵
|
load.map = 맵
|
||||||
load.image = 사진
|
load.image = 사진
|
||||||
load.content = 컨텐츠
|
load.content = 컨텐츠
|
||||||
load.system = 시스템
|
load.system = 시스템
|
||||||
load.mod = 모드
|
load.mod = 모드
|
||||||
|
load.scripts = 스크립트
|
||||||
|
|
||||||
schematic = 설계도
|
schematic = 설계도
|
||||||
schematic.add = 설계도 저장하기
|
schematic.add = 설계도 저장하기
|
||||||
schematics = 설계도 모음
|
schematics = 설계도 모음
|
||||||
@@ -31,7 +36,7 @@ schematic.replace = 이 설계도와 같은 이름의 설계도가 이미 존재
|
|||||||
schematic.import = 설계도 불러오기
|
schematic.import = 설계도 불러오기
|
||||||
schematic.exportfile = 파일 내보내기
|
schematic.exportfile = 파일 내보내기
|
||||||
schematic.importfile = 파일 불러오기
|
schematic.importfile = 파일 불러오기
|
||||||
schematic.browseworkshop = 워크샵 탐색
|
schematic.browseworkshop = Workshop 탐색
|
||||||
schematic.copy = 클립보드에 복사하기
|
schematic.copy = 클립보드에 복사하기
|
||||||
schematic.copy.import = 클립보드에서 붙여넣기
|
schematic.copy.import = 클립보드에서 붙여넣기
|
||||||
schematic.shareworkshop = 워크샵에 공유
|
schematic.shareworkshop = 워크샵에 공유
|
||||||
@@ -40,6 +45,7 @@ schematic.saved = 설계도 저장됨.
|
|||||||
schematic.delete.confirm = 삭제된 설계도는 복구할 수 없습니다. 정말로 삭제하시겠습니까?
|
schematic.delete.confirm = 삭제된 설계도는 복구할 수 없습니다. 정말로 삭제하시겠습니까?
|
||||||
schematic.rename = 설계도명 변경
|
schematic.rename = 설계도명 변경
|
||||||
schematic.info = 크기 : {0}x{1}, 블럭 수 : {2}
|
schematic.info = 크기 : {0}x{1}, 블럭 수 : {2}
|
||||||
|
|
||||||
stat.wave = 버틴 단계 수 : [accent]{0}
|
stat.wave = 버틴 단계 수 : [accent]{0}
|
||||||
stat.enemiesDestroyed = 파괴한 적 수 : [accent]{0}
|
stat.enemiesDestroyed = 파괴한 적 수 : [accent]{0}
|
||||||
stat.built = 건설한 건물 수 : [accent]{0}
|
stat.built = 건설한 건물 수 : [accent]{0}
|
||||||
@@ -47,6 +53,7 @@ stat.destroyed = 파괴된 건물 수 : [accent]{0}
|
|||||||
stat.deconstructed = 파괴한 건물 수 : [accent]{0}
|
stat.deconstructed = 파괴한 건물 수 : [accent]{0}
|
||||||
stat.delivered = 획득한 자원 :
|
stat.delivered = 획득한 자원 :
|
||||||
stat.rank = 최종 점수 : [accent]{0}
|
stat.rank = 최종 점수 : [accent]{0}
|
||||||
|
|
||||||
launcheditems = [accent]창고
|
launcheditems = [accent]창고
|
||||||
launchinfo = [출격되지 않음][[출격]파랑색으로 표시된 자원들을 획득합니다.
|
launchinfo = [출격되지 않음][[출격]파랑색으로 표시된 자원들을 획득합니다.
|
||||||
map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?
|
map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?
|
||||||
@@ -74,6 +81,7 @@ maps.browse = 맵 검색
|
|||||||
continue = 계속하기
|
continue = 계속하기
|
||||||
maps.none = [LIGHT_GRAY]맵을 찾을 수 없습니다!
|
maps.none = [LIGHT_GRAY]맵을 찾을 수 없습니다!
|
||||||
invalid = 오류
|
invalid = 오류
|
||||||
|
pickcolor = 색
|
||||||
preparingconfig = 설정 사전준비
|
preparingconfig = 설정 사전준비
|
||||||
preparingcontent = 컨텐츠 사전준비
|
preparingcontent = 컨텐츠 사전준비
|
||||||
uploadingcontent = 컨텐츠 업로드
|
uploadingcontent = 컨텐츠 업로드
|
||||||
@@ -81,29 +89,37 @@ uploadingpreviewfile = 미리보기 파일 업로드
|
|||||||
committingchanges = 바뀐 점 적용
|
committingchanges = 바뀐 점 적용
|
||||||
done = 완료
|
done = 완료
|
||||||
feature.unsupported = 당신의 기기는 이 기능을 지원하지 않습니다.
|
feature.unsupported = 당신의 기기는 이 기능을 지원하지 않습니다.
|
||||||
|
|
||||||
mods.alphainfo = 현재의 모드는 첫 번째 시도이며, 그리고[scarlet] 버그가 매우 많음을 명심하십시오[].\n만약 버그를 발견할경우 Mindustry 깃허브 또는 디스코드로 제보해주세요.
|
mods.alphainfo = 현재의 모드는 첫 번째 시도이며, 그리고[scarlet] 버그가 매우 많음을 명심하십시오[].\n만약 버그를 발견할경우 Mindustry 깃허브 또는 디스코드로 제보해주세요.
|
||||||
mods.alpha = [scarlet](Alpha)
|
mods.alpha = [scarlet](Alpha)
|
||||||
mods = 모드
|
mods = 모드
|
||||||
mods.none = [LIGHT_GRAY]추가한 모드가 없습니다!
|
mods.none = [LIGHT_GRAY]추가한 모드가 없습니다!
|
||||||
mods.guide = 모드 가이드
|
mods.guide = 모드 가이드
|
||||||
mods.report = 버그 신고
|
mods.report = 문제 신고
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = 모드 폴더 열기
|
||||||
mod.enabled = [firebrick]활성화
|
mod.enabled = [lightgray]활성화
|
||||||
mod.disabled = [lightgray]비활성화
|
mod.disabled = [scarlet]비활성화
|
||||||
mod.disable = 비활성화
|
mod.disable = 비활성화
|
||||||
mod.delete.error = 모드를 삭제할 수 없습니다. 아마도 해당 모드가 사용중인 것 같습니다.
|
mod.delete.error = 모드를 삭제할 수 없습니다. 아마도 해당 모드가 사용중인 것 같습니다.
|
||||||
|
mod.requiresversion = [scarlet]게임의 버전이 낮아 모드를 활성화할 수 없습니다!\n[scarlet]요구되는 게임 버전 : [accent]{0}
|
||||||
mod.missingdependencies = [scarlet]의존되는 모드: {0}
|
mod.missingdependencies = [scarlet]의존되는 모드: {0}
|
||||||
|
mod.erroredcontent = [scarlet]컨텐츠 오류
|
||||||
|
mod.errors = 컨텐츠를 불러오는 중 오류가 발생하였습니다.
|
||||||
|
mod.noerrorplay = [scarlet]모드에 오류가 존재합니다.[] 해당 오류가 발생하는 모드를 비활성화하거나 모드의 오류를 고친 후 플레이가 가능합니다.
|
||||||
mod.nowdisabled = [scarlet]모드 '{0}'는 다음의 모드에 의존합니다 : [accent] {1}\n[lightgray]이 모드를 먼저 다운로드해야합니다.\n이 모드는 자동으로 비활성화됩니다.
|
mod.nowdisabled = [scarlet]모드 '{0}'는 다음의 모드에 의존합니다 : [accent] {1}\n[lightgray]이 모드를 먼저 다운로드해야합니다.\n이 모드는 자동으로 비활성화됩니다.
|
||||||
mod.enable = 활성화
|
mod.enable = 활성화
|
||||||
mod.requiresrestart = 모드 변경사항을 적용하기 위해 게임을 종료합니다.
|
mod.requiresrestart = 모드 변경사항을 적용하기 위해 게임을 종료합니다.
|
||||||
mod.reloadrequired = [scarlet]새로고침 예정됨
|
mod.reloadrequired = [scarlet]새로고침 예정됨
|
||||||
mod.import = 모드 추가
|
mod.import = 모드 추가
|
||||||
mod.import.github = 깃허브 모드 추가
|
mod.import.github = 깃허브 모드 추가
|
||||||
|
mod.item.remove = 이것은 모드[accent] '{0}'[]의 자원입니다. 이 자원을 삭제하려면, 이 모드를 제거해야합니다.
|
||||||
mod.remove.confirm = 이 모드를 삭제하시겠습니까?
|
mod.remove.confirm = 이 모드를 삭제하시겠습니까?
|
||||||
mod.author = [LIGHT_GRAY]제작자 : [] {0}
|
mod.author = [LIGHT_GRAY]제작자 : [] {0}
|
||||||
mod.missing = 이 세이브파일에는 설치하지 않은 모드 혹은 이 버전에 속해있지 않은 데이터가 포함되어 있습니다. 이 파일을 불러올 경우 세이브파일의 데이터가 손상될 수 있습니다. 정말로 이 파일을 불러오시겠습니까?\n[lightgray]모드 :\n{0}
|
mod.missing = 이 세이브파일에는 설치하지 않은 모드 혹은 현재 버전에 속해있지 않은 데이터가 포함되어 있습니다. 이 파일을 불러올 경우 세이브파일의 데이터가 손상될 수 있습니다. 정말로 이 파일을 불러오시겠습니까?\n[lightgray]모드 :\n{0}
|
||||||
mod.preview.missing = 워크샵에 당신의 모드를 업로드하기 전에 미리보기 이미지를 먼저 추가해야합니다.\n[accent] preview.png[]라는 이름으로 미리보기 이미지를 당신의 모드 폴더안에 준비한 후 다시 시도해주세요.
|
mod.preview.missing = 워크샵에 당신의 모드를 업로드하기 전에 미리보기 이미지를 먼저 추가해야합니다.\n[accent] preview.png[]라는 이름으로 미리보기 이미지를 당신의 모드 폴더안에 준비한 후 다시 시도해주세요.
|
||||||
mod.folder.missing = 워크샵에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 파일을 폴더에 압축 해제하고 이전 압축파일을 제거한 후, 게임을 재시작하거나 모드를 다시 로드하십시오.
|
mod.folder.missing = 워크샵에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 파일을 폴더에 압축 해제하고 이전 압축파일을 제거한 후, 게임을 재시작하거나 모드를 다시 로드하십시오.
|
||||||
|
mod.scripts.unsupported = 당신의 기기는 모드스크립트를 지원하지 않습니다. 모드의 일부 기능이 작동하지 않을 수 있습니다.
|
||||||
|
|
||||||
about.button = 정보
|
about.button = 정보
|
||||||
name = 이름 :
|
name = 이름 :
|
||||||
noname = 먼저 [accent] [] 을 설정하세요.
|
noname = 먼저 [accent] [] 을 설정하세요.
|
||||||
@@ -148,7 +164,7 @@ hosts.none = [lightgray]LAN 게임을 찾을 수 없습니다!
|
|||||||
host.invalid = [scarlet]서버에 연결할 수 없습니다!
|
host.invalid = [scarlet]서버에 연결할 수 없습니다!
|
||||||
trace = 플레이어 정보 보기
|
trace = 플레이어 정보 보기
|
||||||
trace.playername = 닉네임 : [accent]{0}
|
trace.playername = 닉네임 : [accent]{0}
|
||||||
trace.ip = IP : [accent]{0}{0}
|
trace.ip = IP : [accent]{0}
|
||||||
trace.id = UUID : [accent]{0}
|
trace.id = UUID : [accent]{0}
|
||||||
trace.mobile = 모바일 접속 유무 : [accent]{0}
|
trace.mobile = 모바일 접속 유무 : [accent]{0}
|
||||||
trace.modclient = 수정된 클라이언트 : [accent]{0}
|
trace.modclient = 수정된 클라이언트 : [accent]{0}
|
||||||
@@ -173,7 +189,7 @@ confirmunadmin = 이 플레이어를 일반 유저로 만들겠습니까?
|
|||||||
joingame.title = 게임 참가
|
joingame.title = 게임 참가
|
||||||
joingame.ip = 주소 :
|
joingame.ip = 주소 :
|
||||||
disconnect = 서버와 연결이 해제되었습니다.
|
disconnect = 서버와 연결이 해제되었습니다.
|
||||||
disconnect.error = 연결 .
|
disconnect.error = 연결 오류.
|
||||||
disconnect.closed = 연결이 끊어졌습니다..
|
disconnect.closed = 연결이 끊어졌습니다..
|
||||||
disconnect.timeout = 연결 시간 한계 도달..
|
disconnect.timeout = 연결 시간 한계 도달..
|
||||||
disconnect.data = 월드 데이터 로딩 실패..
|
disconnect.data = 월드 데이터 로딩 실패..
|
||||||
@@ -183,7 +199,7 @@ connecting.data = [accent]월드 데이터 로딩중...
|
|||||||
server.port = 포트 :
|
server.port = 포트 :
|
||||||
server.addressinuse = 주소가 이미 사용중입니다!
|
server.addressinuse = 주소가 이미 사용중입니다!
|
||||||
server.invalidport = 포트가 올바르지 않습니다!
|
server.invalidport = 포트가 올바르지 않습니다!
|
||||||
server.error = [accent]{0}[crimson]서버를 여는 데 오류가 발생했습니다.
|
server.error = [crimson]서버를 여는 데 오류가 발생했습니다.
|
||||||
save.new = 새로 저장
|
save.new = 새로 저장
|
||||||
save.overwrite = 이 저장 슬롯을 덮어씌우겠습니까?
|
save.overwrite = 이 저장 슬롯을 덮어씌우겠습니까?
|
||||||
overwrite = 덮어쓰기
|
overwrite = 덮어쓰기
|
||||||
@@ -271,6 +287,7 @@ publishing = [accent]업로드 중...
|
|||||||
publish.confirm = 맵을 업로드 하시겠습니까?\n\n[lightgray]먼저 워크샵 EULA에 동의하시지 않으면 맵이 표시되지 않습니다!
|
publish.confirm = 맵을 업로드 하시겠습니까?\n\n[lightgray]먼저 워크샵 EULA에 동의하시지 않으면 맵이 표시되지 않습니다!
|
||||||
publish.error = 맵 업로드 오류 : {0}
|
publish.error = 맵 업로드 오류 : {0}
|
||||||
steam.error = 스팀 서비스를 초기화하는데 실패했습니다.\n에러 코드 : {0}
|
steam.error = 스팀 서비스를 초기화하는데 실패했습니다.\n에러 코드 : {0}
|
||||||
|
|
||||||
editor.brush = 브러쉬
|
editor.brush = 브러쉬
|
||||||
editor.openin = 편집기 열기
|
editor.openin = 편집기 열기
|
||||||
editor.oregen = 광물 무작위 생성
|
editor.oregen = 광물 무작위 생성
|
||||||
@@ -308,8 +325,8 @@ editor.name = 이름 :
|
|||||||
editor.spawn = 유닛 생성
|
editor.spawn = 유닛 생성
|
||||||
editor.removeunit = 유닛 삭제
|
editor.removeunit = 유닛 삭제
|
||||||
editor.teams = 팀
|
editor.teams = 팀
|
||||||
editor.errorload = [accent]{0} 파일을 불러오는 데 실패했습니다.
|
editor.errorload = 파일을 불러오지 습니다.
|
||||||
editor.errorsave = [accent]{0} 파일을 저장하는 데 실패했습니다.
|
editor.errorsave = 파일을 저장하지 못했습니다.
|
||||||
editor.errorimage = 이것은 맵이 아니라 사진입니다.\n\n예전 맵을 가져오려면 편집기의 '예전 맵 가져오기' 버튼을 사용하세요.
|
editor.errorimage = 이것은 맵이 아니라 사진입니다.\n\n예전 맵을 가져오려면 편집기의 '예전 맵 가져오기' 버튼을 사용하세요.
|
||||||
editor.errorlegacy = 이 맵은 너무 오래되어, 더는 지원하지 않는 맵 형식을 사용합니다.
|
editor.errorlegacy = 이 맵은 너무 오래되어, 더는 지원하지 않는 맵 형식을 사용합니다.
|
||||||
editor.errornot = 선택한 대상이 맵 파일이 아닙니다.
|
editor.errornot = 선택한 대상이 맵 파일이 아닙니다.
|
||||||
@@ -347,6 +364,7 @@ editor.overwrite = [accept]경고!이 명령은 기존 맵을 덮어씌우게
|
|||||||
editor.overwrite.confirm = [scarlet]경고![] 이 이름을 가진 맵이 이미 있습니다. 덮어 쓰시겠습니까?
|
editor.overwrite.confirm = [scarlet]경고![] 이 이름을 가진 맵이 이미 있습니다. 덮어 쓰시겠습니까?
|
||||||
editor.exists = 같은 이름의 맵이 이미 존재합니다.
|
editor.exists = 같은 이름의 맵이 이미 존재합니다.
|
||||||
editor.selectmap = 불러올 맵 선택 :
|
editor.selectmap = 불러올 맵 선택 :
|
||||||
|
|
||||||
toolmode.replace = 재배치
|
toolmode.replace = 재배치
|
||||||
toolmode.replace.description = 블록을 배치합니다.
|
toolmode.replace.description = 블록을 배치합니다.
|
||||||
toolmode.replaceall = 모두 재배치
|
toolmode.replaceall = 모두 재배치
|
||||||
@@ -361,6 +379,7 @@ toolmode.fillteams = 팀 채우기
|
|||||||
toolmode.fillteams.description = 블록 대신 팀 건물로 채웁니다.
|
toolmode.fillteams.description = 블록 대신 팀 건물로 채웁니다.
|
||||||
toolmode.drawteams = 팀 그리기
|
toolmode.drawteams = 팀 그리기
|
||||||
toolmode.drawteams.description = 블록 대신 팀 건물을 배치합니다.
|
toolmode.drawteams.description = 블록 대신 팀 건물을 배치합니다.
|
||||||
|
|
||||||
filters.empty = [LIGHT_GRAY]필터가 없습니다!! 아래 버튼을 눌러 추가하세요.
|
filters.empty = [LIGHT_GRAY]필터가 없습니다!! 아래 버튼을 눌러 추가하세요.
|
||||||
filter.distort = 왜곡
|
filter.distort = 왜곡
|
||||||
filter.noise = 맵 전체에 타일 혹은 블럭 뿌리기
|
filter.noise = 맵 전체에 타일 혹은 블럭 뿌리기
|
||||||
@@ -392,6 +411,7 @@ filter.option.floor2 = 2번째 바닥
|
|||||||
filter.option.threshold2 = 2번째 한계점
|
filter.option.threshold2 = 2번째 한계점
|
||||||
filter.option.radius = 반경
|
filter.option.radius = 반경
|
||||||
filter.option.percentile = 백분위수
|
filter.option.percentile = 백분위수
|
||||||
|
|
||||||
width = 넓이 :
|
width = 넓이 :
|
||||||
height = 높이 :
|
height = 높이 :
|
||||||
menu = 메뉴
|
menu = 메뉴
|
||||||
@@ -407,6 +427,7 @@ tutorial = 튜토리얼
|
|||||||
tutorial.retake = 튜토리얼
|
tutorial.retake = 튜토리얼
|
||||||
editor = 편집기
|
editor = 편집기
|
||||||
mapeditor = 맵 편집기
|
mapeditor = 맵 편집기
|
||||||
|
|
||||||
abandon = 지역 포기
|
abandon = 지역 포기
|
||||||
abandon.text = 이 구역의 모든 자원이 적에게 빼앗길 것입니다.
|
abandon.text = 이 구역의 모든 자원이 적에게 빼앗길 것입니다.
|
||||||
locked = 잠김
|
locked = 잠김
|
||||||
@@ -428,7 +449,7 @@ bannedblocks = 금지된 블럭들
|
|||||||
addall = 모두 추가
|
addall = 모두 추가
|
||||||
configure.locked = [lightgray]{0}시 시작자원 설정이 해금됩니다.
|
configure.locked = [lightgray]{0}시 시작자원 설정이 해금됩니다.
|
||||||
configure.invalid = 해당 값은 0 과 {0} 사이여야 합니다.
|
configure.invalid = 해당 값은 0 과 {0} 사이여야 합니다.
|
||||||
zone.unlocked = [LIGHT_GRAY] 잠금 해제되었습니다!
|
zone.unlocked = [LIGHT_GRAY]지역 {0}이 잠금 해제되었습니다!
|
||||||
zone.requirement.complete = {0} 단계 달성 성공! \n{1} 지역 요구사항이 충족되었습니다!
|
zone.requirement.complete = {0} 단계 달성 성공! \n{1} 지역 요구사항이 충족되었습니다!
|
||||||
zone.config.unlocked = 시작자원 설정 해금! : [lightgray]\n{0}
|
zone.config.unlocked = 시작자원 설정 해금! : [lightgray]\n{0}
|
||||||
zone.resources = 감지된 자원 목록 :
|
zone.resources = 감지된 자원 목록 :
|
||||||
@@ -437,6 +458,7 @@ zone.objective.survival = 생존
|
|||||||
zone.objective.attack = 적 코어 파괴
|
zone.objective.attack = 적 코어 파괴
|
||||||
add = 추가...
|
add = 추가...
|
||||||
boss.health = 보스 체력
|
boss.health = 보스 체력
|
||||||
|
|
||||||
connectfail = [crimson]{0}[accent] 서버에 연결하지 못했습니다.[]
|
connectfail = [crimson]{0}[accent] 서버에 연결하지 못했습니다.[]
|
||||||
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
|
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
|
||||||
error.invalidaddress = 잘못된 주소입니다.
|
error.invalidaddress = 잘못된 주소입니다.
|
||||||
@@ -447,6 +469,7 @@ error.mapnotfound = 맵 파일을 찾을 수 없습니다!
|
|||||||
error.io = 네트워크 I/O 오류.
|
error.io = 네트워크 I/O 오류.
|
||||||
error.any = 알 수 없는 네트워크 오류.
|
error.any = 알 수 없는 네트워크 오류.
|
||||||
error.bloom = 블룸 그래픽 효과를 적용하지 못했습니다.\n당신의 기기가 이 기능을 지원하지 않는 것일 수도 있습니다.
|
error.bloom = 블룸 그래픽 효과를 적용하지 못했습니다.\n당신의 기기가 이 기능을 지원하지 않는 것일 수도 있습니다.
|
||||||
|
|
||||||
zone.groundZero.name = 전초기지
|
zone.groundZero.name = 전초기지
|
||||||
zone.desertWastes.name = 쓰레기 사막
|
zone.desertWastes.name = 쓰레기 사막
|
||||||
zone.craters.name = 크레이터
|
zone.craters.name = 크레이터
|
||||||
@@ -461,6 +484,7 @@ zone.saltFlats.name = 소금 사막
|
|||||||
zone.impact0078.name = Impact 0078
|
zone.impact0078.name = Impact 0078
|
||||||
zone.crags.name = 협곡
|
zone.crags.name = 협곡
|
||||||
zone.fungalPass.name = 포자 지대
|
zone.fungalPass.name = 포자 지대
|
||||||
|
|
||||||
zone.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지닌 장소입니다. 적은 수준의 위협이 있으며 자원의 양은 적습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n출격합시다!
|
zone.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지닌 장소입니다. 적은 수준의 위협이 있으며 자원의 양은 적습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n출격합시다!
|
||||||
zone.frozenForest.description = 이 지역도 산과 가까운 지역입니다 포자들이 흩뿌려져 있으며 극한의 추위도 포자를 막을 수 있을 것 같지 않습니다.\n화력 발전소를 짓고 전력을 확보하여 채광 드론을 사용하는 법을 배우십시오.
|
zone.frozenForest.description = 이 지역도 산과 가까운 지역입니다 포자들이 흩뿌려져 있으며 극한의 추위도 포자를 막을 수 있을 것 같지 않습니다.\n화력 발전소를 짓고 전력을 확보하여 채광 드론을 사용하는 법을 배우십시오.
|
||||||
zone.desertWastes.description = 이 황무지는 끝을 알 수 없을 정도로 광활하고 십자가 형태의 버려진 구조물이 존재합니다.\n석탄이 존재하며 이를 화력발전에 쓰거나 흑연 정제에 쓰십시오.\n\n[lightgray]이 지역에서의 착륙장소는 확실하지 않습니다.
|
zone.desertWastes.description = 이 황무지는 끝을 알 수 없을 정도로 광활하고 십자가 형태의 버려진 구조물이 존재합니다.\n석탄이 존재하며 이를 화력발전에 쓰거나 흑연 정제에 쓰십시오.\n\n[lightgray]이 지역에서의 착륙장소는 확실하지 않습니다.
|
||||||
@@ -475,10 +499,12 @@ zone.nuclearComplex.description = 과거 토륨의 생산, 연구와 처리를
|
|||||||
zone.fungalPass.description = 고산지대과 포자지대 사이의 지역입니다. 소규모의 적 정찰기지가 있으니 디거와 크롤러를 이용해 적의 코어를 파괴하십시오.
|
zone.fungalPass.description = 고산지대과 포자지대 사이의 지역입니다. 소규모의 적 정찰기지가 있으니 디거와 크롤러를 이용해 적의 코어를 파괴하십시오.
|
||||||
zone.impact0078.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다.
|
zone.impact0078.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다.
|
||||||
zone.crags.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다.
|
zone.crags.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다.
|
||||||
|
|
||||||
settings.language = 언어
|
settings.language = 언어
|
||||||
settings.data = 게임 데이터
|
settings.data = 게임 데이터
|
||||||
settings.reset = 설정 초기화
|
settings.reset = 설정 초기화
|
||||||
settings.rebind = 키 재설정
|
settings.rebind = 키 재설정
|
||||||
|
settings.resetKey = 키 설정
|
||||||
settings.controls = 조작
|
settings.controls = 조작
|
||||||
settings.game = 게임
|
settings.game = 게임
|
||||||
settings.sound = 소리
|
settings.sound = 소리
|
||||||
@@ -497,7 +523,7 @@ error.crashtitle = 오류가 발생했습니다.
|
|||||||
blocks.input = 소모 자원
|
blocks.input = 소모 자원
|
||||||
blocks.output = 출력 자원
|
blocks.output = 출력 자원
|
||||||
blocks.booster = 가속
|
blocks.booster = 가속
|
||||||
block.unknown = [LIGHT_GRAY]???
|
block.unknown = [LIGHT_GRAY]OHNO
|
||||||
blocks.powercapacity = 전력 용량
|
blocks.powercapacity = 전력 용량
|
||||||
blocks.powershot = 1발당 전력 소모량
|
blocks.powershot = 1발당 전력 소모량
|
||||||
blocks.damage = 공격력
|
blocks.damage = 공격력
|
||||||
@@ -509,7 +535,7 @@ blocks.shootrange = 사거리
|
|||||||
blocks.size = 크기
|
blocks.size = 크기
|
||||||
blocks.liquidcapacity = 액체 용량
|
blocks.liquidcapacity = 액체 용량
|
||||||
blocks.powerrange = 전력 범위
|
blocks.powerrange = 전력 범위
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = 최대 연결 수
|
||||||
blocks.poweruse = 전력 사용
|
blocks.poweruse = 전력 사용
|
||||||
blocks.powerdamage = 전력/데미지
|
blocks.powerdamage = 전력/데미지
|
||||||
blocks.itemcapacity = 저장 용량
|
blocks.itemcapacity = 저장 용량
|
||||||
@@ -529,14 +555,15 @@ blocks.inaccuracy = 오차각
|
|||||||
blocks.shots = 공격 속도
|
blocks.shots = 공격 속도
|
||||||
blocks.reload = 재장전
|
blocks.reload = 재장전
|
||||||
blocks.ammo = 탄약
|
blocks.ammo = 탄약
|
||||||
|
|
||||||
bar.drilltierreq = 더 좋은 드릴이 요구됨
|
bar.drilltierreq = 더 좋은 드릴이 요구됨
|
||||||
bar.drillspeed = 초당 {0}개 채굴중
|
bar.drillspeed = 드릴 속도 : {0}개/s
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = 펌프 속도 : {0}/s
|
||||||
bar.efficiency = 활성화율 : {0}%
|
bar.efficiency = 활성화율 : {0}%
|
||||||
bar.powerbalance = 초당 {0} 발전중
|
bar.powerbalance = 전력 발전 : {0}/s
|
||||||
bar.powerstored = 총 전력 저장량 : {0}/{1}
|
bar.powerstored = 총 전력 저장량 : {0}/{1}
|
||||||
bar.poweramount = 전력 저장량 : {0}
|
bar.poweramount = 전력 저장량 : {0}
|
||||||
bar.poweroutput = 초당 {0} 발전중
|
bar.poweroutput = 전력 출력 : {0}
|
||||||
bar.items = 자원량 : {0}
|
bar.items = 자원량 : {0}
|
||||||
bar.capacity = 저장공간 : {0}
|
bar.capacity = 저장공간 : {0}
|
||||||
bar.liquid = 액체
|
bar.liquid = 액체
|
||||||
@@ -544,6 +571,9 @@ bar.heat = 발열
|
|||||||
bar.power = 전력
|
bar.power = 전력
|
||||||
bar.progress = 생산 진행도
|
bar.progress = 생산 진행도
|
||||||
bar.spawned = 최대 {1}기 중 {0}기 생산됨
|
bar.spawned = 최대 {1}기 중 {0}기 생산됨
|
||||||
|
bar.input = 입력
|
||||||
|
bar.output =
|
||||||
|
|
||||||
bullet.damage = [lightgray]피해량 : [stat]{0}[]
|
bullet.damage = [lightgray]피해량 : [stat]{0}[]
|
||||||
bullet.splashdamage = [lightgray]범위 피해량 : [stat]{0}[] / [lightgray]피해 범위 : [stat]{1}[lightgray] 타일
|
bullet.splashdamage = [lightgray]범위 피해량 : [stat]{0}[] / [lightgray]피해 범위 : [stat]{1}[lightgray] 타일
|
||||||
bullet.incendiary = [stat]방화
|
bullet.incendiary = [stat]방화
|
||||||
@@ -555,6 +585,7 @@ bullet.freezing = [stat]빙결
|
|||||||
bullet.tarred = [stat]타르
|
bullet.tarred = [stat]타르
|
||||||
bullet.multiplier = 추가 타격 횟수 : [stat]{0}[lightgray]
|
bullet.multiplier = 추가 타격 횟수 : [stat]{0}[lightgray]
|
||||||
bullet.reload = 공격 속도 : [stat]{0}[lightgray]
|
bullet.reload = 공격 속도 : [stat]{0}[lightgray]
|
||||||
|
|
||||||
unit.blocks = 블록
|
unit.blocks = 블록
|
||||||
unit.powersecond = 전력/초
|
unit.powersecond = 전력/초
|
||||||
unit.liquidsecond = 액체/초
|
unit.liquidsecond = 액체/초
|
||||||
@@ -567,6 +598,8 @@ unit.persecond = /초
|
|||||||
unit.timesspeed = x 배
|
unit.timesspeed = x 배
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = 자원
|
unit.items = 자원
|
||||||
|
unit.thousands = k
|
||||||
|
unit.millions = mil
|
||||||
category.general = 일반
|
category.general = 일반
|
||||||
category.power = 전력
|
category.power = 전력
|
||||||
category.liquids = 액체
|
category.liquids = 액체
|
||||||
@@ -574,11 +607,12 @@ category.items = 아이템
|
|||||||
category.crafting = 제작
|
category.crafting = 제작
|
||||||
category.shooting = 사격
|
category.shooting = 사격
|
||||||
category.optional = 보조 아이템
|
category.optional = 보조 아이템
|
||||||
setting.landscape.name = 가로화면으로 고정
|
setting.landscape.name = 가로화면
|
||||||
setting.shadows.name = 그림자
|
setting.shadows.name = 그림자
|
||||||
setting.blockreplace.name = 블럭 제안 자동화
|
setting.blockreplace.name = 블럭 제안 자동화
|
||||||
setting.linear.name = 선형 필터링
|
setting.linear.name = 선형 필터링
|
||||||
setting.hints.name = 힌트 활성화
|
setting.hints.name = 힌트 활성화
|
||||||
|
setting.buildautopause.name = 건설 자동 일시정지
|
||||||
setting.animatedwater.name = 움직이는 물
|
setting.animatedwater.name = 움직이는 물
|
||||||
setting.animatedshields.name = 움직이는 보호막
|
setting.animatedshields.name = 움직이는 보호막
|
||||||
setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[]
|
setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[]
|
||||||
@@ -599,14 +633,17 @@ setting.difficulty.insane = 미침
|
|||||||
setting.difficulty.name = 난이도 :
|
setting.difficulty.name = 난이도 :
|
||||||
setting.screenshake.name = 화면 흔들기
|
setting.screenshake.name = 화면 흔들기
|
||||||
setting.effects.name = 화면 효과
|
setting.effects.name = 화면 효과
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = 부서진 블럭 표시
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = 교차기 자동 설치
|
||||||
setting.sensitivity.name = 컨트롤러 감도
|
setting.sensitivity.name = 컨트롤러 감도
|
||||||
setting.saveinterval.name = 저장 간격
|
setting.saveinterval.name = 저장 간격
|
||||||
setting.seconds = 초
|
setting.seconds = {0} 초
|
||||||
|
setting.blockselecttimeout.name = 블록 선택 시간 초과
|
||||||
|
setting.milliseconds = {0} ms
|
||||||
setting.fullscreen.name = 전체 화면
|
setting.fullscreen.name = 전체 화면
|
||||||
setting.borderlesswindow.name = 테두리 없는 창모드[LIGHT_GRAY] (재시작이 필요할 수 있습니다)
|
setting.borderlesswindow.name = 테두리 없는 창모드[LIGHT_GRAY] (재시작이 필요할 수 있습니다)
|
||||||
setting.fps.name = FPS 표시
|
setting.fps.name = FPS 표시
|
||||||
|
setting.blockselectkeys.name = 블럭 선택 키
|
||||||
setting.vsync.name = VSync 활성화
|
setting.vsync.name = VSync 활성화
|
||||||
setting.pixelate.name = 픽셀화[LIGHT_GRAY] (게임에 렉이 심할 경우 이 옵션을 켜주세요.)
|
setting.pixelate.name = 픽셀화[LIGHT_GRAY] (게임에 렉이 심할 경우 이 옵션을 켜주세요.)
|
||||||
setting.minimap.name = 미니맵 보기
|
setting.minimap.name = 미니맵 보기
|
||||||
@@ -618,7 +655,7 @@ setting.sfxvol.name = 효과음 크기
|
|||||||
setting.mutesound.name = 소리 끄기
|
setting.mutesound.name = 소리 끄기
|
||||||
setting.crashreport.name = 익명으로 오류 보고서 자동 전송
|
setting.crashreport.name = 익명으로 오류 보고서 자동 전송
|
||||||
setting.savecreate.name = 자동 저장 활성화
|
setting.savecreate.name = 자동 저장 활성화
|
||||||
setting.publichost.name = 공개 서버 보이기
|
setting.publichost.name = 스팀 공개 서버 보이기
|
||||||
setting.chatopacity.name = 채팅 투명도
|
setting.chatopacity.name = 채팅 투명도
|
||||||
setting.lasersopacity.name = 전력 레이저 밝기
|
setting.lasersopacity.name = 전력 레이저 밝기
|
||||||
setting.playerchat.name = 채팅 말풍선 표시
|
setting.playerchat.name = 채팅 말풍선 표시
|
||||||
@@ -635,16 +672,35 @@ category.multiplayer.name = 멀티플레이
|
|||||||
command.attack = 공격
|
command.attack = 공격
|
||||||
command.rally = 순찰
|
command.rally = 순찰
|
||||||
command.retreat = 후퇴
|
command.retreat = 후퇴
|
||||||
|
placement.blockselectkeys = \n[lightgray]키: [{0},
|
||||||
keybind.clear_building.name = 설계도 초기화
|
keybind.clear_building.name = 설계도 초기화
|
||||||
keybind.press = 키를 누르세요...
|
keybind.press = 키를 누르세요...
|
||||||
keybind.press.axis = 마우스 휠 또는 키를 누르세요...
|
keybind.press.axis = 마우스 휠 또는 키를 누르세요...
|
||||||
keybind.screenshot.name = 맵 스크린샷
|
keybind.screenshot.name = 맵 스크린샷
|
||||||
|
keybind.toggle_power_lines.name = 전력 라인 허용
|
||||||
keybind.move_x.name = 오른쪽 / 왼쪽 이동
|
keybind.move_x.name = 오른쪽 / 왼쪽 이동
|
||||||
keybind.move_y.name = 위 / 아래 중간
|
keybind.move_y.name = 위 / 아래 이동
|
||||||
|
keybind.mouse_move.name = 커서를 따라서 이동
|
||||||
keybind.schematic_select.name = 영역 설정
|
keybind.schematic_select.name = 영역 설정
|
||||||
keybind.schematic_menu.name = 설계도 메뉴
|
keybind.schematic_menu.name = 설계도 메뉴
|
||||||
keybind.schematic_flip_x.name = 설계도 X축 뒤집기
|
keybind.schematic_flip_x.name = 설계도 X축 뒤집기
|
||||||
keybind.schematic_flip_y.name = 설계도 Y축 뒤집기
|
keybind.schematic_flip_y.name = 설계도 Y축 뒤집기
|
||||||
|
keybind.category_prev.name = 이전 목록
|
||||||
|
keybind.category_next.name = 다음 목록
|
||||||
|
keybind.block_select_left.name = 블록 왼쪽 선택
|
||||||
|
keybind.block_select_right.name = 블록 오른쪽 선택
|
||||||
|
keybind.block_select_up.name = 블록 위쪽 선택
|
||||||
|
keybind.block_select_down.name = 블록 아래쪽 선택
|
||||||
|
keybind.block_select_01.name = 카테고리/블록 선택 1
|
||||||
|
keybind.block_select_02.name = 카테고리/블록 선택 2
|
||||||
|
keybind.block_select_03.name = 카테고리/블록 선택 3
|
||||||
|
keybind.block_select_04.name = 카테고리/블록 선택 4
|
||||||
|
keybind.block_select_05.name = 카테고리/블록 선택 5
|
||||||
|
keybind.block_select_06.name = 카테고리/블록 선택 6
|
||||||
|
keybind.block_select_07.name = 카테고리/블록 선택 7
|
||||||
|
keybind.block_select_08.name = 카테고리/블록 선택 8
|
||||||
|
keybind.block_select_09.name = 카테고리/블록 선택 9
|
||||||
|
keybind.block_select_10.name = 카테고리/블록 선택 10
|
||||||
keybind.fullscreen.name = 전체 화면
|
keybind.fullscreen.name = 전체 화면
|
||||||
keybind.select.name = 선택/공격
|
keybind.select.name = 선택/공격
|
||||||
keybind.diagonal_placement.name = 대각선 설치
|
keybind.diagonal_placement.name = 대각선 설치
|
||||||
@@ -652,7 +708,6 @@ keybind.pick.name = 블록 선택
|
|||||||
keybind.break_block.name = 블록 파괴
|
keybind.break_block.name = 블록 파괴
|
||||||
keybind.deselect.name = 선택해제
|
keybind.deselect.name = 선택해제
|
||||||
keybind.shoot.name = 사격
|
keybind.shoot.name = 사격
|
||||||
keybind.zoom_hold.name = 길게 확대
|
|
||||||
keybind.zoom.name = 확대
|
keybind.zoom.name = 확대
|
||||||
keybind.menu.name = 메뉴
|
keybind.menu.name = 메뉴
|
||||||
keybind.pause.name = 일시중지
|
keybind.pause.name = 일시중지
|
||||||
@@ -681,9 +736,11 @@ mode.pvp.description = 실제 플레이어와 PvP를 합니다. 맵에 적어도
|
|||||||
mode.attack.name = 공격
|
mode.attack.name = 공격
|
||||||
mode.attack.description = 적 기지를 파괴하세요. 맵에 빨간 팀 코어가 있어야 플레이 가능합니다.
|
mode.attack.description = 적 기지를 파괴하세요. 맵에 빨간 팀 코어가 있어야 플레이 가능합니다.
|
||||||
mode.custom = 사용자 정의 규칙
|
mode.custom = 사용자 정의 규칙
|
||||||
|
|
||||||
rules.infiniteresources = 무한 자원
|
rules.infiniteresources = 무한 자원
|
||||||
rules.wavetimer = 단계
|
rules.reactorexplosions = 원자로 폭발 허가 여부
|
||||||
rules.waves = 단계
|
rules.wavetimer = 단계 대기시간
|
||||||
|
rules.waves = 단계 활성화
|
||||||
rules.attack = 공격 모드
|
rules.attack = 공격 모드
|
||||||
rules.enemyCheat = 무한한 적 자원
|
rules.enemyCheat = 무한한 적 자원
|
||||||
rules.unitdrops = 유닛 처치시 자원 약탈
|
rules.unitdrops = 유닛 처치시 자원 약탈
|
||||||
@@ -692,13 +749,13 @@ rules.unithealthmultiplier = 유닛 체력 배수
|
|||||||
rules.playerhealthmultiplier = 플레이어 체력 배수
|
rules.playerhealthmultiplier = 플레이어 체력 배수
|
||||||
rules.playerdamagemultiplier = 플레이어 공격력 배수
|
rules.playerdamagemultiplier = 플레이어 공격력 배수
|
||||||
rules.unitdamagemultiplier = 유닛 공격력 배수
|
rules.unitdamagemultiplier = 유닛 공격력 배수
|
||||||
rules.enemycorebuildradius = 적 코어 건설 금지구역:[LIGHT_GRAY] (타일)
|
rules.enemycorebuildradius = 적 코어 건설 금지구역 범위 : [LIGHT_GRAY] (타일)
|
||||||
rules.respawntime = 플레이어 부활 대기 시간 : [LIGHT_GRAY] (초)
|
rules.respawntime = 플레이어 부활 대기 시간 : [LIGHT_GRAY] (초)
|
||||||
rules.wavespacing = 단계 간격 : [LIGHT_GRAY] (초)
|
rules.wavespacing = 단계 간격 : [LIGHT_GRAY] (초)
|
||||||
rules.buildcostmultiplier = 건설 소모 배수
|
rules.buildcostmultiplier = 건설 소모 배수
|
||||||
rules.buildspeedmultiplier = 건설 속도 배수
|
rules.buildspeedmultiplier = 건설 속도 배수
|
||||||
rules.waitForWaveToEnd = 단계가 끝날때까지 기다리는 중
|
rules.waitForWaveToEnd = 단계가 끝날때까지 기다리는 중
|
||||||
rules.dropzoneradius = 적 소환 구역 반경 : [LIGHT_GRAY] (타일)
|
rules.dropzoneradius = 소환 충격파 범위 : [LIGHT_GRAY] (타일)
|
||||||
rules.respawns = 단계당 최대 플레이어 부활 횟수
|
rules.respawns = 단계당 최대 플레이어 부활 횟수
|
||||||
rules.limitedRespawns = 플레이어 부활 제한
|
rules.limitedRespawns = 플레이어 부활 제한
|
||||||
rules.title.waves = 단계
|
rules.title.waves = 단계
|
||||||
@@ -707,6 +764,10 @@ rules.title.resourcesbuilding = 자원 & 건축
|
|||||||
rules.title.player = 플레이어들
|
rules.title.player = 플레이어들
|
||||||
rules.title.enemy = 적
|
rules.title.enemy = 적
|
||||||
rules.title.unit = 유닛
|
rules.title.unit = 유닛
|
||||||
|
rules.title.experimental = 실험적인 기능
|
||||||
|
rules.lighting = 전장의 안개 활성화
|
||||||
|
rules.ambientlight = 안개 색
|
||||||
|
|
||||||
content.item.name = 아이템
|
content.item.name = 아이템
|
||||||
content.liquid.name = 액체
|
content.liquid.name = 액체
|
||||||
content.unit.name = 유닛
|
content.unit.name = 유닛
|
||||||
@@ -721,7 +782,7 @@ item.thorium.name = 토륨
|
|||||||
item.silicon.name = 실리콘
|
item.silicon.name = 실리콘
|
||||||
item.plastanium.name = 플라스터늄
|
item.plastanium.name = 플라스터늄
|
||||||
item.phase-fabric.name = 메타
|
item.phase-fabric.name = 메타
|
||||||
item.surge-alloy.name = 서지 합금
|
item.surge-alloy.name = 설금
|
||||||
item.spore-pod.name = 포자 포드
|
item.spore-pod.name = 포자 포드
|
||||||
item.sand.name = 모래
|
item.sand.name = 모래
|
||||||
item.blast-compound.name = 폭발물
|
item.blast-compound.name = 폭발물
|
||||||
@@ -753,6 +814,7 @@ mech.trident-ship.name = 트라이던트
|
|||||||
mech.trident-ship.weapon = 폭탄 저장고
|
mech.trident-ship.weapon = 폭탄 저장고
|
||||||
mech.glaive-ship.name = 글레이브
|
mech.glaive-ship.name = 글레이브
|
||||||
mech.glaive-ship.weapon = 중무장 인화성 소총
|
mech.glaive-ship.weapon = 중무장 인화성 소총
|
||||||
|
item.corestorable = [lightgray]코어 저장 가능 여부 : {0}
|
||||||
item.explosiveness = [LIGHT_GRAY]폭발성 : {0}
|
item.explosiveness = [LIGHT_GRAY]폭발성 : {0}
|
||||||
item.flammability = [LIGHT_GRAY]인화성 : {0}
|
item.flammability = [LIGHT_GRAY]인화성 : {0}
|
||||||
item.radioactivity = [LIGHT_GRAY]방사능 : {0}
|
item.radioactivity = [LIGHT_GRAY]방사능 : {0}
|
||||||
@@ -768,6 +830,7 @@ mech.buildspeed = [LIGHT_GRAY]건설 속도 : {0}%
|
|||||||
liquid.heatcapacity = [LIGHT_GRAY]발열 용량 : {0}
|
liquid.heatcapacity = [LIGHT_GRAY]발열 용량 : {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]점도 : {0}
|
liquid.viscosity = [LIGHT_GRAY]점도 : {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]온도 : {0}
|
liquid.temperature = [LIGHT_GRAY]온도 : {0}
|
||||||
|
|
||||||
block.sand-boulder.name = 사암
|
block.sand-boulder.name = 사암
|
||||||
block.grass.name = 잔디
|
block.grass.name = 잔디
|
||||||
block.salt.name = 소금
|
block.salt.name = 소금
|
||||||
@@ -866,6 +929,8 @@ block.distributor.name = 대형 분배기
|
|||||||
block.sorter.name = 필터
|
block.sorter.name = 필터
|
||||||
block.inverted-sorter.name = 반전 필터
|
block.inverted-sorter.name = 반전 필터
|
||||||
block.message.name = 메모 블럭
|
block.message.name = 메모 블럭
|
||||||
|
block.illuminator.name = 조명
|
||||||
|
block.illuminator.description = 작고, 간단한 조명입니다. 색을 변경할 수 있으며 가동하기 위해서 전력이 필요합니다.
|
||||||
block.overflow-gate.name = 포화 필터
|
block.overflow-gate.name = 포화 필터
|
||||||
block.silicon-smelter.name = 실리콘 제련소
|
block.silicon-smelter.name = 실리콘 제련소
|
||||||
block.phase-weaver.name = 메타 합성기
|
block.phase-weaver.name = 메타 합성기
|
||||||
@@ -879,6 +944,7 @@ block.coal-centrifuge.name = 석탄 원심분리기
|
|||||||
block.power-node.name = 전력 노드
|
block.power-node.name = 전력 노드
|
||||||
block.power-node-large.name = 대형 전력 노드
|
block.power-node-large.name = 대형 전력 노드
|
||||||
block.surge-tower.name = 설금 타워
|
block.surge-tower.name = 설금 타워
|
||||||
|
block.diode.name = 배터리 다이오드
|
||||||
block.battery.name = 배터리
|
block.battery.name = 배터리
|
||||||
block.battery-large.name = 대형 배터리
|
block.battery-large.name = 대형 배터리
|
||||||
block.combustion-generator.name = 화력 발전기
|
block.combustion-generator.name = 화력 발전기
|
||||||
@@ -893,8 +959,8 @@ block.cultivator.name = 온실
|
|||||||
block.dart-mech-pad.name = 알파 기체 패드
|
block.dart-mech-pad.name = 알파 기체 패드
|
||||||
block.delta-mech-pad.name = 델타 기체 패드
|
block.delta-mech-pad.name = 델타 기체 패드
|
||||||
block.javelin-ship-pad.name = 재블린 비행선 패드
|
block.javelin-ship-pad.name = 재블린 비행선 패드
|
||||||
block.trident-ship-pad.name = 삼지창 비행선 패드
|
block.trident-ship-pad.name = 트라이던트 폭격기 패드
|
||||||
block.glaive-ship-pad.name = 글레브 비행선 패드
|
block.glaive-ship-pad.name = 글레이브 전투기 패드
|
||||||
block.omega-mech-pad.name = 오메가 기체 패드
|
block.omega-mech-pad.name = 오메가 기체 패드
|
||||||
block.tau-mech-pad.name = 타우 기체 패드
|
block.tau-mech-pad.name = 타우 기체 패드
|
||||||
block.conduit.name = 파이프
|
block.conduit.name = 파이프
|
||||||
@@ -930,7 +996,8 @@ block.titan-factory.name = 타이탄 공장
|
|||||||
block.fortress-factory.name = 포트리스 공장
|
block.fortress-factory.name = 포트리스 공장
|
||||||
block.revenant-factory.name = 망령 전함 공장
|
block.revenant-factory.name = 망령 전함 공장
|
||||||
block.repair-point.name = 수리 지점
|
block.repair-point.name = 수리 지점
|
||||||
block.pulse-conduit.name = 퓨즈 파이프
|
block.pulse-conduit.name = 펄스 파이프
|
||||||
|
block.plated-conduit.name = 도금된 파이프
|
||||||
block.phase-conduit.name = 메타 파이프
|
block.phase-conduit.name = 메타 파이프
|
||||||
block.liquid-router.name = 액체 분배기
|
block.liquid-router.name = 액체 분배기
|
||||||
block.liquid-tank.name = 물탱크
|
block.liquid-tank.name = 물탱크
|
||||||
@@ -957,8 +1024,8 @@ block.rtg-generator.name = RTG 발전기
|
|||||||
block.spectre.name = 스펙터
|
block.spectre.name = 스펙터
|
||||||
block.meltdown.name = 멜트다운
|
block.meltdown.name = 멜트다운
|
||||||
block.container.name = 컨테이너
|
block.container.name = 컨테이너
|
||||||
block.launch-pad.name = 발사대
|
block.launch-pad.name = 자원 출격 패드
|
||||||
block.launch-pad-large.name = 큰 출격 패드
|
block.launch-pad-large.name = 대형 자원 출격 패드
|
||||||
team.blue.name = 파랑색 팀
|
team.blue.name = 파랑색 팀
|
||||||
team.crux.name = 빨강색 팀
|
team.crux.name = 빨강색 팀
|
||||||
team.sharded.name = 주황색 팀
|
team.sharded.name = 주황색 팀
|
||||||
@@ -976,10 +1043,10 @@ unit.ghoul.name = 구울 폭격기
|
|||||||
unit.wraith.name = 유령 전투기
|
unit.wraith.name = 유령 전투기
|
||||||
unit.fortress.name = 포트리스
|
unit.fortress.name = 포트리스
|
||||||
unit.revenant.name = 망령 전함
|
unit.revenant.name = 망령 전함
|
||||||
unit.eruptor.name = 이어럽터
|
unit.eruptor.name = 이럽터
|
||||||
unit.chaos-array.name = 혼돈의 군대
|
unit.chaos-array.name = 혼돈 군주
|
||||||
unit.eradicator.name = 파괴자
|
unit.eradicator.name = 파괴자
|
||||||
unit.lich.name = 사자왕
|
unit.lich.name = 시체 군주
|
||||||
unit.reaper.name = 사신
|
unit.reaper.name = 사신
|
||||||
tutorial.next = [lightgray]< 이 곳을 터치해 진행하세요. >
|
tutorial.next = [lightgray]< 이 곳을 터치해 진행하세요. >
|
||||||
tutorial.intro = [scarlet]Mindustry 튜토리얼[]을 시작하겠습니다.\n [WASD] 키를 눌러 이동할 수 있습니다.\n[accent]Ctrl 키를 누르고 마우스 휠을 돌려 확대 또는 축소가 가능합니다.\n[accent]주황색의 광맥[]을 눌러 [accent]구리[]를 채광하세요.\n구리를 채광한 후에는 코어 근처로 이동한 뒤, 당신의 기체에서 코어로 드래그해 구리를 코어에 넣으세요. 코어 근처에서 채광하면 자동으로 옮겨집니다.\n\n임무 : 구리 채광({0}/{1})
|
tutorial.intro = [scarlet]Mindustry 튜토리얼[]을 시작하겠습니다.\n [WASD] 키를 눌러 이동할 수 있습니다.\n[accent]Ctrl 키를 누르고 마우스 휠을 돌려 확대 또는 축소가 가능합니다.\n[accent]주황색의 광맥[]을 눌러 [accent]구리[]를 채광하세요.\n구리를 채광한 후에는 코어 근처로 이동한 뒤, 당신의 기체에서 코어로 드래그해 구리를 코어에 넣으세요. 코어 근처에서 채광하면 자동으로 옮겨집니다.\n\n임무 : 구리 채광({0}/{1})
|
||||||
@@ -1002,6 +1069,7 @@ tutorial.deposit = 자원을 다시 블록에 넣을 수도 있습니다.\n\n[ac
|
|||||||
tutorial.waves = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계 동안 코어를 보호하세요.[]
|
tutorial.waves = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계 동안 코어를 보호하세요.[]
|
||||||
tutorial.waves.mobile = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계동안 코어를 방어하세요.[]
|
tutorial.waves.mobile = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계동안 코어를 방어하세요.[]
|
||||||
tutorial.launch = 특정 단계에 도달하면 [accent]출격[]이 가능합니다.\n[accent]출격[]을 하게되면 해당 지역의 코어에 들어있는 자원들을 캠페인의 자원 창고로 보내지만, 해당 지역의 [accent]모든 것들[]은 날라가게 되니 주의하세요.
|
tutorial.launch = 특정 단계에 도달하면 [accent]출격[]이 가능합니다.\n[accent]출격[]을 하게되면 해당 지역의 코어에 들어있는 자원들을 캠페인의 자원 창고로 보내지만, 해당 지역의 [accent]모든 것들[]은 날라가게 되니 주의하세요.
|
||||||
|
|
||||||
item.copper.description = 모든 종류의 블록에서 광범위하게 사용되는 자원입니다.
|
item.copper.description = 모든 종류의 블록에서 광범위하게 사용되는 자원입니다.
|
||||||
item.lead.description = 쉽게 구할 수 있으며, 전자 및 액체 수송 블록에서 광범위하게 사용되는 자원입니다.
|
item.lead.description = 쉽게 구할 수 있으며, 전자 및 액체 수송 블록에서 광범위하게 사용되는 자원입니다.
|
||||||
item.metaglass.description = 초강력 유리 화합물. 액체 분배 및 저장에 광범위하게 사용됩니다.\n\n[royal]액체를 활용하기 위한 필수품입니다.
|
item.metaglass.description = 초강력 유리 화합물. 액체 분배 및 저장에 광범위하게 사용됩니다.\n\n[royal]액체를 활용하기 위한 필수품입니다.
|
||||||
@@ -1053,7 +1121,7 @@ block.cryofluidmixer.description = 물과 티타늄을 냉각에 훨씬 더 효
|
|||||||
block.blast-mixer.description = 포자를 사용하여 파이라타이트를 폭발성 화합물로 변환시킵니다.
|
block.blast-mixer.description = 포자를 사용하여 파이라타이트를 폭발성 화합물로 변환시킵니다.
|
||||||
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다.
|
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다.
|
||||||
block.melter.description = 고철을 녹여 파도의 탄약 혹은 원심 분리기에 사용할 수 있는 액체인 광재로 만듭니다.
|
block.melter.description = 고철을 녹여 파도의 탄약 혹은 원심 분리기에 사용할 수 있는 액체인 광재로 만듭니다.
|
||||||
block.separator.description = 광재룰 각종 자원으로 재활용 할 수 있게 해 주는 건물입니다.
|
block.separator.description = 광재를 각종 자원으로 재활용 할 수 있게 해 주는 건물입니다.
|
||||||
block.spore-press.description = 포자를 압축해 기름을 추출합니다.
|
block.spore-press.description = 포자를 압축해 기름을 추출합니다.
|
||||||
block.pulverizer.description = 고철을 갈아 모래로 만듭니다. 맵에 모래가 부족할 때 유용합니다.
|
block.pulverizer.description = 고철을 갈아 모래로 만듭니다. 맵에 모래가 부족할 때 유용합니다.
|
||||||
block.coal-centrifuge.description = 석유로 석탄을 만듭니다.
|
block.coal-centrifuge.description = 석유로 석탄을 만듭니다.
|
||||||
@@ -1088,7 +1156,7 @@ block.junction.description = 2개의 컨베이어 벨트를 교차시키는 다
|
|||||||
block.bridge-conveyor.description = 자원 수송 블록.\n지형이나 건물을 넘어 최대 3개 타일을 건너뛰고 자원을 운송할 수 있습니다.
|
block.bridge-conveyor.description = 자원 수송 블록.\n지형이나 건물을 넘어 최대 3개 타일을 건너뛰고 자원을 운송할 수 있습니다.
|
||||||
block.phase-conveyor.description = 고급 자원 수송 블록.\n지형이나 건물을 넘어 최대 11개 타일을 건너뛰고 자원을 운송할 수 있습니다. 전기를 사용하고, 기본 터널 컨베이어보다 빠릅니다.
|
block.phase-conveyor.description = 고급 자원 수송 블록.\n지형이나 건물을 넘어 최대 11개 타일을 건너뛰고 자원을 운송할 수 있습니다. 전기를 사용하고, 기본 터널 컨베이어보다 빠릅니다.
|
||||||
block.sorter.description = 자원을 넣어서 필터에 설정된 자원일 경우 바로 앞으로 통과하며, 그렇지 않을 경우 옆으로 이동시킵니다.
|
block.sorter.description = 자원을 넣어서 필터에 설정된 자원일 경우 바로 앞으로 통과하며, 그렇지 않을 경우 옆으로 이동시킵니다.
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = 필터와 비슷하지만, 대신에 반전 필터는 설정된 자원을 필터의 양 옆으로 보냅니다.
|
||||||
block.router.description = 한 방향에서 자원을 넣을 시 최대 3개의 다른 방향으로 균등하게 내보냅니다. 자원을 한 곳에서 여러 방향으로 분배하는 데 유용합니다.
|
block.router.description = 한 방향에서 자원을 넣을 시 최대 3개의 다른 방향으로 균등하게 내보냅니다. 자원을 한 곳에서 여러 방향으로 분배하는 데 유용합니다.
|
||||||
block.distributor.description = 자원을 최대 7개의 다른 방향으로 균등하게 분베하는 고급 분배기.
|
block.distributor.description = 자원을 최대 7개의 다른 방향으로 균등하게 분베하는 고급 분배기.
|
||||||
block.overflow-gate.description = 평소에는 자원의 들어온 방향으로 자원을 통과시키지만, 정면이 자원으로 꽉 차거나 다른 사유로 막힐 시 옆으로 자원을 내보냅니다.
|
block.overflow-gate.description = 평소에는 자원의 들어온 방향으로 자원을 통과시키지만, 정면이 자원으로 꽉 차거나 다른 사유로 막힐 시 옆으로 자원을 내보냅니다.
|
||||||
@@ -1098,6 +1166,7 @@ block.rotary-pump.description = 전기를 사용해 빠른 속도로 액체를
|
|||||||
block.thermal-pump.description = 가장 강력한 펌프.
|
block.thermal-pump.description = 가장 강력한 펌프.
|
||||||
block.conduit.description = 기본 파이프\n액체를 배치된 방향으로 느리게 운송합니다.
|
block.conduit.description = 기본 파이프\n액체를 배치된 방향으로 느리게 운송합니다.
|
||||||
block.pulse-conduit.description = 고급 파이프\n기본 파이프보다 액체 운송 속도가 빠릅니다.
|
block.pulse-conduit.description = 고급 파이프\n기본 파이프보다 액체 운송 속도가 빠릅니다.
|
||||||
|
block.plated-conduit.description = 펄스 파이프와 같은 속도로 액체를 운송시키지만, 체력이 더 많습니다. 양 옆으로는 파이프 의외의 대상에서 액체를 받지 않습니다. \n파이프 끝 부분이 블럭에 연결되지 않고 노출되었을 때 누수되는 액체의 양이 더 적습니다.
|
||||||
block.liquid-router.description = 액체를 다른 방향으로 분배할 수 있게 하는 블럭입니다.
|
block.liquid-router.description = 액체를 다른 방향으로 분배할 수 있게 하는 블럭입니다.
|
||||||
block.liquid-tank.description = 액체를 저장할 수 있는 물탱크 입니다.
|
block.liquid-tank.description = 액체를 저장할 수 있는 물탱크 입니다.
|
||||||
block.liquid-junction.description = 교차기와 같은 기능을 하나 자원 대신에 액체를 교차시킵니다.
|
block.liquid-junction.description = 교차기와 같은 기능을 하나 자원 대신에 액체를 교차시킵니다.
|
||||||
@@ -1106,6 +1175,7 @@ block.phase-conduit.description = 고급 액체 수송블록\n전기를 사용
|
|||||||
block.power-node.description = 전기을 연결된 대상과 연동시킵니다.\n최대 20개의 대상을 연결할 수 있습니다. 노드는 붙어있는 블록으로부터 전기가 연동됩니다.
|
block.power-node.description = 전기을 연결된 대상과 연동시킵니다.\n최대 20개의 대상을 연결할 수 있습니다. 노드는 붙어있는 블록으로부터 전기가 연동됩니다.
|
||||||
block.power-node-large.description = 전기를 연결된 대상과 연동시킵니다.\n최대 30개의 대상을 연결시킬 수 있고, 범위도 더 넓습니다.
|
block.power-node-large.description = 전기를 연결된 대상과 연동시킵니다.\n최대 30개의 대상을 연결시킬 수 있고, 범위도 더 넓습니다.
|
||||||
block.surge-tower.description = 전기를 연결된 대상과 연동시킵니다.\n2개의 대상만 연결시킬 수 있지만 대신에 범위가 매우 넓습니다.
|
block.surge-tower.description = 전기를 연결된 대상과 연동시킵니다.\n2개의 대상만 연결시킬 수 있지만 대신에 범위가 매우 넓습니다.
|
||||||
|
block.diode.description = 이 블럭을 배터리와 배터리 사이에 놓아 연결할경우 전력은 화살표 방향으로만 이동할 수 있습니다. 화살표의 뒤에 있는 배터리의 전력량이 앞에 있는 배터리보다 많을 경우에만 이동시킵니다.
|
||||||
block.battery.description = 전력 생산량에 여유가 있을경우, 생산된 잉여 전력을 여기에 저장합니다.\n\n[ROYAL]이것을 이용해 한순간에 많은 전력을 사용하는 포탑들을 보조가능합니다.
|
block.battery.description = 전력 생산량에 여유가 있을경우, 생산된 잉여 전력을 여기에 저장합니다.\n\n[ROYAL]이것을 이용해 한순간에 많은 전력을 사용하는 포탑들을 보조가능합니다.
|
||||||
block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 전력을 저장합니다.\n\n[ROYAL]배터리 9개를 설치하는 것보다 효율이 좋습니다.
|
block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 전력을 저장합니다.\n\n[ROYAL]배터리 9개를 설치하는 것보다 효율이 좋습니다.
|
||||||
block.combustion-generator.description = 인화성 물질을 태워 소량의 전력을 생산합니다.
|
block.combustion-generator.description = 인화성 물질을 태워 소량의 전력을 생산합니다.
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Pick Block
|
|||||||
keybind.break_block.name = Break Block
|
keybind.break_block.name = Break Block
|
||||||
keybind.deselect.name = Deselect
|
keybind.deselect.name = Deselect
|
||||||
keybind.shoot.name = Shoot
|
keybind.shoot.name = Shoot
|
||||||
keybind.zoom_hold.name = Zoom Hold
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ link.dev-builds.description = Onstabiele versies
|
|||||||
link.trello.description = Officiële Trello voor geplande toevoegingen.
|
link.trello.description = Officiële Trello voor geplande toevoegingen.
|
||||||
link.itch.io.description = Itch.io pagina met de PC downloads en online versie
|
link.itch.io.description = Itch.io pagina met de PC downloads en online versie
|
||||||
link.google-play.description = Mindustry op Google Play
|
link.google-play.description = Mindustry op Google Play
|
||||||
link.wiki.description = Officiël Mindustry wiki
|
link.f-droid.description = F-Droid catalogus
|
||||||
|
link.wiki.description = Officiële Mindustry-wiki
|
||||||
linkfail = Openen van link mislukt!\nDe link is gekopiëerd naar je klembord.
|
linkfail = Openen van link mislukt!\nDe link is gekopiëerd naar je klembord.
|
||||||
screenshot = Locatie screenshot: {0}
|
screenshot = Locatie screenshot: {0}
|
||||||
screenshot.invalid = Kaart te groot, mogelijks te weinig geheugen voor een screenshot te kunnen maken.
|
screenshot.invalid = Kaart te groot, mogelijks te weinig geheugen voor een screenshot te kunnen maken.
|
||||||
@@ -20,9 +21,9 @@ highscore = [accent]Nieuw record!
|
|||||||
copied = Gekopieerd.
|
copied = Gekopieerd.
|
||||||
load.sound = Geluiden
|
load.sound = Geluiden
|
||||||
load.map = Kaarten
|
load.map = Kaarten
|
||||||
load.image = Images
|
load.image = Afbeeldingen
|
||||||
load.content = Content
|
load.content = Inhoud
|
||||||
load.system = System
|
load.system = Systeem
|
||||||
load.mod = Mods
|
load.mod = Mods
|
||||||
schematic = Blauwdruk
|
schematic = Blauwdruk
|
||||||
schematic.add = Blauwdruk Opslaan...
|
schematic.add = Blauwdruk Opslaan...
|
||||||
@@ -67,22 +68,22 @@ minimap = Kaartje
|
|||||||
position = Positie
|
position = Positie
|
||||||
close = Sluit
|
close = Sluit
|
||||||
website = Website
|
website = Website
|
||||||
quit = Verlaat
|
quit = Verlaten
|
||||||
save.quit = Save & Quit
|
save.quit = Opslaan & Verlaten
|
||||||
maps = Kaarten
|
maps = Kaarten
|
||||||
maps.browse = Browse Maps
|
maps.browse = Bekijk Kaarten
|
||||||
continue = Ga verder
|
continue = Ga verder
|
||||||
maps.none = [LIGHT_GRAY]Geen kaarten gevonden!
|
maps.none = [LIGHT_GRAY]Geen kaarten gevonden!
|
||||||
invalid = Invalid
|
invalid = Ongeldig
|
||||||
preparingconfig = Config Voorbereiden
|
preparingconfig = Configuratie Voorbereiden
|
||||||
preparingcontent = Content Voorbereiden
|
preparingcontent = Inhoud Voorbereiden
|
||||||
uploadingcontent = Content Uploaden
|
uploadingcontent = Inhoud Uploaden
|
||||||
uploadingpreviewfile = Voorbeeldbestand Uploaden
|
uploadingpreviewfile = Voorbeeldbestand Uploaden
|
||||||
committingchanges = Veranderingen Toepassen
|
committingchanges = Veranderingen Toepassen
|
||||||
done = Klaar
|
done = Klaar
|
||||||
feature.unsupported = Uw apparaat ondersteunt deze functie niet.
|
feature.unsupported = Uw apparaat ondersteunt deze functie niet.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
mods.alphainfo = Mods zijn nog in alfa en [scarlet] kunnen zeer onstabiel zijn[].\nMeld problemen die je ondervindt op de Mindustry Github of Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alfa)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]Geen mods gevonden!
|
mods.none = [LIGHT_GRAY]Geen mods gevonden!
|
||||||
mods.guide = Handleiding tot Modding
|
mods.guide = Handleiding tot Modding
|
||||||
@@ -93,8 +94,8 @@ mod.disabled = [scarlet]Uitgeschakeld
|
|||||||
mod.disable = Schakel uit
|
mod.disable = Schakel uit
|
||||||
mod.delete.error = Kan mod niet verwijderen. Bestand is mogelijk in gebruik.
|
mod.delete.error = Kan mod niet verwijderen. Bestand is mogelijk in gebruik.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]De volgende vereisten ontbreken voor mod '{0}':[accent] {1}\n[lightgray]Deze mods moeten eerst gedownload worden.\nDeze mod wordt automatisch uitgeschakeld.
|
||||||
mod.enable = Enable
|
mod.enable = Schakel in
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Herladen Vereist
|
mod.reloadrequired = [scarlet]Herladen Vereist
|
||||||
mod.import = Importeer Mod
|
mod.import = Importeer Mod
|
||||||
@@ -102,9 +103,9 @@ mod.import.github = Importeer GitHub Mod
|
|||||||
mod.remove.confirm = Deze mod zal worden verwijderd.
|
mod.remove.confirm = Deze mod zal worden verwijderd.
|
||||||
mod.author = [LIGHT_GRAY]Auteur:[] {0}
|
mod.author = [LIGHT_GRAY]Auteur:[] {0}
|
||||||
mod.missing = Dit opslagbestand bevat mods die zijn geupdate of recentelijk zijn verwijderd. Uw opslagbestand kan beschadigd geraken. Bent u zeker dat u wil verdergaan?\n[lightgray]Mods:\n{0}
|
mod.missing = Dit opslagbestand bevat mods die zijn geupdate of recentelijk zijn verwijderd. Uw opslagbestand kan beschadigd geraken. Bent u zeker dat u wil verdergaan?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Voordat je de mod publiceert moet je een afbeelding voor de voorvertoning toevoegen.\nPlaats een afbeelding met de naam[accent] preview.png[] in de modfolder.
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.folder.missing = Mods kunnen enkel gepubliceerd worden in foldervorm.\nOm een mod in foldervorm te zetten exporteer je het modbestand uit de zipfile en verwijder je de oude zipfile. Herlaad vervolgens je mods of herstart het spel.
|
||||||
about.button = Extra info
|
about.button = Over
|
||||||
name = Naam:
|
name = Naam:
|
||||||
noname = Kies eerst[accent] een naam[].
|
noname = Kies eerst[accent] een naam[].
|
||||||
filename = Bestandsnaam:
|
filename = Bestandsnaam:
|
||||||
@@ -118,42 +119,42 @@ players = {0} spelers online
|
|||||||
players.single = {0} speler online
|
players.single = {0} speler online
|
||||||
server.closing = [accent]Server wordt gesloten...
|
server.closing = [accent]Server wordt gesloten...
|
||||||
server.kicked.kick = Je bent uit de server gegooid!
|
server.kicked.kick = Je bent uit de server gegooid!
|
||||||
server.kicked.whitelist = You are not whitelisted here.
|
server.kicked.whitelist = Je bent niet toegestaan om met deze server te verbinden. (Whitelist)
|
||||||
server.kicked.serverClose = Server gesloten.
|
server.kicked.serverClose = Server gesloten.
|
||||||
server.kicked.vote = You have been vote-kicked. Goodbye.
|
server.kicked.vote = Je bent uit de server gegooid na een stemming!
|
||||||
server.kicked.clientOutdated = Verouderde versie! Update Mindustry!
|
server.kicked.clientOutdated = Verouderde versie! Update Mindustry!
|
||||||
server.kicked.serverOutdated = Verouderde server! Vraag de eigenaar van de server om de server te updaten!
|
server.kicked.serverOutdated = Verouderde server! Vraag de eigenaar van de server om de server te updaten!
|
||||||
server.kicked.banned = Je bent verbannen van deze server.
|
server.kicked.banned = Je bent verbannen van deze server.
|
||||||
server.kicked.typeMismatch = This server is not compatible with your build type.
|
server.kicked.typeMismatch = Deze server is niet compatibel met jouw Mindustry build type.
|
||||||
server.kicked.playerLimit = This server is full. Wait for an empty slot.
|
server.kicked.playerLimit = De server is vol, wacht voor een plekje.
|
||||||
server.kicked.recentKick = Je bent daarnet van de server gegooid.\nWacht even voor je weer verbindt
|
server.kicked.recentKick = Je bent zonet van de server gegooid.\nWacht even voor je weer verbindt
|
||||||
server.kicked.nameInUse = Er is al iemand met dezelfde naam op de server.
|
server.kicked.nameInUse = Er is al iemand met dezelfde naam op de server.
|
||||||
server.kicked.nameEmpty = Je gekozen naam is ongeldig.
|
server.kicked.nameEmpty = Je gekozen naam is ongeldig.
|
||||||
server.kicked.idInUse = Je bent al verbonden met de server! Verbinden met 2 clients tegelijk is verboden.
|
server.kicked.idInUse = Je bent al verbonden met de server! Verbinden met 2 clients tegelijk is verboden.
|
||||||
server.kicked.customClient = Deze server ondersteunt geen aangepaste versies (mods). Download een officiële versie.
|
server.kicked.customClient = Deze server ondersteunt geen aangepaste versies (mods). Download een officiële versie.
|
||||||
server.kicked.gameover = Game over!
|
server.kicked.gameover = Game over!
|
||||||
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
|
server.versions = Jouw versie:[accent] {0}[]\nServerversie:[accent] {1}[]
|
||||||
host.info = Ook De [accent]host[] knop hosts een server op poort [scarlet]6567[]. \nIedereen die verbonden is met dezelfde [LIGHT_GRAY]wifi of lokaal netwerk[] zou je server moeten zien in zijn server lijst.\n\nAls je wil dat personen kunnen verbinden met je server van ergens anders via IP. Dan is [accent]port forwarding[] is nodig.\n\n[LIGHT_GRAY]Nota: Als iemand problemen heeft met het verbinden tot je LAN spel, zorg dan dat mindustry toestemming heeft tot je lokale netwerk in de Firewall instellingen.
|
host.info = Ook de [accent]host[] knop hosts een server op poort [scarlet]6567[]. \nIedereen die verbonden is met dezelfde [LIGHT_GRAY]wifi of lokaal netwerk[] zou je server moeten zien in zijn server lijst.\n\nAls je wil dat personen kunnen verbinden met je server van ergens anders via IP. Dan is [accent]port forwarding[] is nodig.\n\n[LIGHT_GRAY]Nota: Als iemand problemen heeft met het verbinden tot je LAN spel, zorg dan dat mindustry toestemming heeft tot je lokale netwerk in de Firewall instellingen.
|
||||||
join.info = Hier kan je een [accent]server IP[] invullen waarmee je wil verbinden. Je kan hier ook verbinden met servers op je [accent]lokale netwerk[]. LAN en WAN multiplayer wordt ondersteund.\n\n[LIGHT_GRAY]Belangrijk: er is geen automatische globale server lijst; als je met iemand wil verbinden via een IP adres moet je zijn/haar IP adres vragen.
|
join.info = Hier kan je een [accent]server IP[] invullen waarmee je wil verbinden. Je kan hier ook verbinden met servers op je [accent]lokale netwerk[]. LAN en WAN multiplayer wordt ondersteund.\n\n[LIGHT_GRAY]Belangrijk: er is geen automatische globale server lijst; als je met iemand wil verbinden via een IP adres moet je zijn/haar IP adres vragen.
|
||||||
hostserver = Host Game
|
hostserver = Open server voor LAN
|
||||||
invitefriends = Invite Friends
|
invitefriends = Nodig vrienden uit.
|
||||||
hostserver.mobile = Host\nGame
|
hostserver.mobile = Open\nServer
|
||||||
host = Host
|
host = Open server
|
||||||
hosting = [accent]De server wordt geopend...
|
hosting = [accent]De server wordt geopend...
|
||||||
hosts.refresh = Herlaad
|
hosts.refresh = Herlaad
|
||||||
hosts.discovering = LAN games worden gezocht
|
hosts.discovering = LAN games worden gezocht
|
||||||
hosts.discovering.any = Discovering games
|
hosts.discovering.any = Games worden gezocht
|
||||||
server.refreshing = De server wordt herladen
|
server.refreshing = De server wordt herladen
|
||||||
hosts.none = [lightgray]Geen games op je lokale netwerk gevonden.
|
hosts.none = [lightgray]Geen games op je lokale netwerk gevonden.
|
||||||
host.invalid = [scarlet]Kan niet verbinden met de host (server).
|
host.invalid = [scarlet]Kan niet verbinden met de host (server).
|
||||||
trace = Zoeken speler
|
trace = Spelersinformatie
|
||||||
trace.playername = Naam speler: [accent]{0}
|
trace.playername = Naam: [accent]{0}
|
||||||
trace.ip = IP: [accent]{0}
|
trace.ip = IP: [accent]{0}
|
||||||
trace.id = Uniek ID: [accent]{0}
|
trace.id = Unieke ID: [accent]{0}
|
||||||
trace.mobile = Mobile Client: [accent]{0}
|
trace.mobile = Mobiele Client: [accent]{0}
|
||||||
trace.modclient = Aangepaste Client: [accent]{0}
|
trace.modclient = Aangepaste Client: [accent]{0}
|
||||||
invalidid = Ongeldig client ID! Verstuur een bug report!
|
invalidid = Ongeldige client ID! Verstuur een bug report!
|
||||||
server.bans = Verbannen
|
server.bans = Verbanningen
|
||||||
server.bans.none = Geen verbannen spelers gevonden!
|
server.bans.none = Geen verbannen spelers gevonden!
|
||||||
server.admins = Administrators
|
server.admins = Administrators
|
||||||
server.admins.none = Geen Administrators gevonden!
|
server.admins.none = Geen Administrators gevonden!
|
||||||
@@ -164,29 +165,29 @@ server.outdated = [crimson]Verouderde Server![]
|
|||||||
server.outdated.client = [crimson]Verouderde Client![]
|
server.outdated.client = [crimson]Verouderde Client![]
|
||||||
server.version = [lightgray]Versie: {0} {1}
|
server.version = [lightgray]Versie: {0} {1}
|
||||||
server.custombuild = [yellow]Aangepaste versie
|
server.custombuild = [yellow]Aangepaste versie
|
||||||
confirmban = Ben je zeker dat je deze speler wil verbannen?
|
confirmban = Ben je zeker dat je deze speler wilt verbannen?
|
||||||
confirmkick = Ben je zeker dat je deze speler van de server wil gooien?
|
confirmkick = Ben je zeker dat je deze speler van de server wilt gooien?
|
||||||
confirmvotekick = Are you sure you want to vote-kick this player?
|
confirmvotekick = Ben je zeker dat je een stemming wilt starten om deze speler uit de server to gooien?
|
||||||
confirmunban = Ben je zeker dat je de verbanning ongedaan wil maken?
|
confirmunban = Ben je zeker dat je de verbanning wilt opheffen?
|
||||||
confirmadmin = Ben je zeker dat je deze speler administrator wil maken?
|
confirmadmin = Ben je zeker dat je deze speler administrator wilt maken?
|
||||||
confirmunadmin = Ben je zeker dat je de Administrator status van deze speler ongedaan wilt maken?
|
confirmunadmin = Ben je zeker dat je de administratorstatus van deze speler wilt intrekken?
|
||||||
joingame.title = Verbinden met server
|
joingame.title = Verbinden met server
|
||||||
joingame.ip = IP adres:
|
joingame.ip = IP adres:
|
||||||
disconnect = Verbinding verbroken.
|
disconnect = Verbinding verbroken.
|
||||||
disconnect.error = Connection error.
|
disconnect.error = Verbindingsfout.
|
||||||
disconnect.closed = Connection closed.
|
disconnect.closed = Verbinding afgesloten.
|
||||||
disconnect.timeout = Timed out.
|
disconnect.timeout = Het duurde te lang voordat de server antwoordde.
|
||||||
disconnect.data = Laden map data mislukt!
|
disconnect.data = Laden van mapdata mislukt!
|
||||||
cantconnect = Unable to join game ([accent]{0}[]).
|
cantconnect = Kon niet tot het spel toetreden. ([accent]{0}[]).
|
||||||
connecting = [accent]Verbinden...
|
connecting = [accent]Verbinden...
|
||||||
connecting.data = [accent]Laden map data...
|
connecting.data = [accent]Laden map data...
|
||||||
server.port = Poort:
|
server.port = Poort:
|
||||||
server.addressinuse = Dit adres wordt al gebruikt!
|
server.addressinuse = Dit adres wordt al gebruikt!
|
||||||
server.invalidport = Ongeldige poort!
|
server.invalidport = Ongeldige poort!
|
||||||
server.error = [crimson]Error hosting server: [accent]{0}
|
server.error = [crimson]Fout bij het openen van de server: [accent]{0}
|
||||||
save.new = Nieuwe save
|
save.new = Nieuwe save
|
||||||
save.overwrite = Ben je zeker dat je deze save\nwil overschrijven?
|
save.overwrite = Ben je zeker dat je deze save\nwilt overschrijven?
|
||||||
overwrite = Overschrijf
|
overwrite = Vervang
|
||||||
save.none = Geen saves gevonden!
|
save.none = Geen saves gevonden!
|
||||||
saveload = [accent]Opslaan...
|
saveload = [accent]Opslaan...
|
||||||
savefail = Opslaan mislukt!
|
savefail = Opslaan mislukt!
|
||||||
@@ -197,27 +198,27 @@ save.import.invalid = [accent]Deze save is ongeldig!
|
|||||||
save.import.fail = [crimson]Save importeren mislukt: [accent]{0}
|
save.import.fail = [crimson]Save importeren mislukt: [accent]{0}
|
||||||
save.export.fail = [crimson]Save exporteren mislukt: [accent]{0}
|
save.export.fail = [crimson]Save exporteren mislukt: [accent]{0}
|
||||||
save.import = Importeer Save
|
save.import = Importeer Save
|
||||||
save.newslot = Save naam:
|
save.newslot = Naam van de save:
|
||||||
save.rename = Naam wijzigen
|
save.rename = Naam wijzigen
|
||||||
save.rename.text = Nieuwe naam:
|
save.rename.text = Nieuwe naam:
|
||||||
selectslot = Selecteer een save.
|
selectslot = Selecteer een save.
|
||||||
slot = [accent]Slot {0}
|
slot = [accent]Plaats {0}
|
||||||
editmessage = Edit Message
|
editmessage = Edit Message
|
||||||
save.corrupted = [accent]Save file corrupted or invalid!\nIf you have just updated your game, this is probably a change in the save format and [scarlet]not[] a bug.
|
save.corrupted = [accent]Het savebestand is corrupt of ongeldig.\nAls je zonet je spel geupdatet hebt is dit waarschijnlijk een verandering in de savestructuur en dus[scarlet] geen[] bug.
|
||||||
empty = <empty>
|
empty = <leeg>
|
||||||
on = Aan
|
on = Aan
|
||||||
off = Uit
|
off = Uit
|
||||||
save.autosave = Autosave: {0}
|
save.autosave = Autosave: {0}
|
||||||
save.map = Map: {0}
|
save.map = Map: {0}
|
||||||
save.wave = Golf {0}
|
save.wave = Golf {0}
|
||||||
save.mode = Gamemode: {0}
|
save.mode = Spelmodus: {0}
|
||||||
save.date = Last Saved: {0}
|
save.date = Laatste save: {0}
|
||||||
save.playtime = Playtime: {0}
|
save.playtime = Playtime: {0}
|
||||||
warning = Waarschuwing.
|
warning = Waarschuwing.
|
||||||
confirm = Bevestig
|
confirm = Bevestig
|
||||||
delete = Verwijder
|
delete = Verwijder
|
||||||
view.workshop = View In Workshop
|
view.workshop = Bekijk In Workshop
|
||||||
workshop.listing = Edit Workshop Listing
|
workshop.listing = Bewerk Workshop-Publicatie
|
||||||
ok = OK
|
ok = OK
|
||||||
open = Open
|
open = Open
|
||||||
customize = Pas aan
|
customize = Pas aan
|
||||||
@@ -225,40 +226,40 @@ cancel = Annuleer
|
|||||||
openlink = Open Link
|
openlink = Open Link
|
||||||
copylink = Kopiëer Link
|
copylink = Kopiëer Link
|
||||||
back = Terug
|
back = Terug
|
||||||
data.export = Export Data
|
data.export = Exporteer Data
|
||||||
data.import = Import Data
|
data.import = Importeer Data
|
||||||
data.exported = Data exported.
|
data.exported = Data geëxporteerd.
|
||||||
data.invalid = This isn't valid game data.
|
data.invalid = Dit is geen geldige speldata.
|
||||||
data.import.confirm = Importing external data will erase[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
|
data.import.confirm = Importing external data will erase[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
|
||||||
classic.export = Export Classic Data
|
classic.export = Exporteer Classic-Data
|
||||||
classic.export.text = [accent]Mindustry[] has just had a major update.\nClassic (v3.5 build 40) save or map data has been detected. Would you like to export these saves to your phone's home folder, for use in the Mindustry Classic app?
|
classic.export.text = [accent]Mindustry[] heeft een grote update gehad.\nClassic (v3.5 build 40) save of map data is teruggevonden. Wil je deze data exporteren naar je de home-folder van je telefoon voor gebruik in de Mindustry-Classic app?
|
||||||
quit.confirm = Weet je zeker dat je wilt stoppen?
|
quit.confirm = Weet je zeker dat je wilt stoppen?
|
||||||
quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[]
|
quit.confirm.tutorial = Ben je zeker dat je nu weet wat je doet?\nDe tutorial kan opnieuw gestart worden via[accent] Instellingen->Spel->Herneem Tutorial.[]
|
||||||
loading = [accent]Aan het laden...
|
loading = [accent]Aan het laden...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Mods Herladen...
|
||||||
saving = [accent]Aan het opslaan...
|
saving = [accent]Aan het opslaan...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] om het plan te annuleren
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] om te selecter+kopieren
|
||||||
pausebuilding = [accent][[{0}][] to pause building
|
pausebuilding = [accent][[{0}][] om het bouwen te pauseren
|
||||||
resumebuilding = [scarlet][[{0}][] to resume building
|
resumebuilding = [scarlet][[{0}][] om verder te gaan met bouwen
|
||||||
wave = [accent]Golf {0}
|
wave = [accent]Golf {0}
|
||||||
wave.waiting = [LIGHT_GRAY]Golf in {0}
|
wave.waiting = [LIGHT_GRAY]Golf in {0}
|
||||||
wave.waveInProgress = [LIGHT_GRAY]Wave in progress
|
wave.waveInProgress = [LIGHT_GRAY]Golf bezig
|
||||||
waiting = [LIGHT_GRAY]Waiting...
|
waiting = [LIGHT_GRAY]Wachten...
|
||||||
waiting.players = Aan het wachten voor spelers...
|
waiting.players = Aan het wachten op spelers...
|
||||||
wave.enemies = [LIGHT_GRAY]{0} Vijanden Over
|
wave.enemies = [LIGHT_GRAY]{0} Vijanden Over
|
||||||
wave.enemy = [LIGHT_GRAY]{0} Vijand Over
|
wave.enemy = [LIGHT_GRAY]{0} Vijand Over
|
||||||
loadimage = Laad Afbeelding
|
loadimage = Laad Afbeelding
|
||||||
saveimage = Sla Afbeelding Op
|
saveimage = Sla Afbeelding Op
|
||||||
unknown = Onbekend
|
unknown = Onbekend
|
||||||
custom = Custom
|
custom = Aangepast
|
||||||
builtin = Built-In
|
builtin = Ingebouwd
|
||||||
map.delete.confirm = Weet je zeker dat je deze kaart wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden!
|
map.delete.confirm = Weet je zeker dat je deze kaart wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden!
|
||||||
map.random = [accent]Random Map
|
map.random = [accent]Willekeurige Map
|
||||||
map.nospawn = This map does not have any cores for the player to spawn in! Add a[ROYAL] blue[] core to this map in the editor.
|
map.nospawn = Deze map heeft geen cores voor spelers om te spawnen! Voeg een[ROYAL] blauwe[] core toe in de mapbewerker.
|
||||||
map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] non-blue[] cores to this map in the editor.
|
map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Voeg een[SCARLET] niet-blauwe[] core toe in de mapbewerker.
|
||||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
|
map.nospawn.attack = This map does not have any enemy cores for player to attack! Voeg een[SCARLET] rode[] core toe in de mapbewerker.
|
||||||
map.invalid = Error loading map: corrupted or invalid map file.
|
map.invalid = Fout tijdens het laden van de map: Corrupt of ongeldig mapbestand.
|
||||||
workshop.update = Update Item
|
workshop.update = Update Item
|
||||||
workshop.error = Error fetching workshop details: {0}
|
workshop.error = Error fetching workshop details: {0}
|
||||||
map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up!
|
map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up!
|
||||||
@@ -652,7 +653,6 @@ keybind.pick.name = Pick Block
|
|||||||
keybind.break_block.name = Break Block
|
keybind.break_block.name = Break Block
|
||||||
keybind.deselect.name = Deselect
|
keybind.deselect.name = Deselect
|
||||||
keybind.shoot.name = Shoot
|
keybind.shoot.name = Shoot
|
||||||
keybind.zoom_hold.name = Zoom Hold
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
|
credits.text = Stworzone przez [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
||||||
credits = Zasłużeni
|
credits = Zasłużeni
|
||||||
contributors = Tłumacze i pomocnicy
|
contributors = Tłumacze i pomocnicy
|
||||||
discord = Odwiedź nasz serwer Discord!
|
discord = Odwiedź nasz serwer Discord!
|
||||||
@@ -10,6 +10,7 @@ link.dev-builds.description = Niestabilne wersje gry
|
|||||||
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
|
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
|
||||||
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
|
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
|
||||||
link.google-play.description = Strona na sklepie Google Play
|
link.google-play.description = Strona na sklepie Google Play
|
||||||
|
link.f-droid.description = F-Droid catalogue listing
|
||||||
link.wiki.description = Oficjana Wiki Mindustry
|
link.wiki.description = Oficjana Wiki Mindustry
|
||||||
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
|
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
|
||||||
screenshot = Zapisano zdjęcie w {0}
|
screenshot = Zapisano zdjęcie w {0}
|
||||||
@@ -18,12 +19,14 @@ gameover = Koniec Gry
|
|||||||
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
|
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
|
||||||
highscore = [YELLOW] Nowy rekord!
|
highscore = [YELLOW] Nowy rekord!
|
||||||
copied = Copied.
|
copied = Copied.
|
||||||
|
|
||||||
load.sound = Dźwięki
|
load.sound = Dźwięki
|
||||||
load.map = Mapy
|
load.map = Mapy
|
||||||
load.image = Obrazy
|
load.image = Obrazy
|
||||||
load.content = Treść
|
load.content = Treść
|
||||||
load.system = System
|
load.system = System
|
||||||
load.mod = Mody
|
load.mod = Mody
|
||||||
|
|
||||||
schematic = Schemat
|
schematic = Schemat
|
||||||
schematic.add = Zapisz schemat...
|
schematic.add = Zapisz schemat...
|
||||||
schematics = Schematy
|
schematics = Schematy
|
||||||
@@ -40,6 +43,7 @@ schematic.saved = Schemat zapisany.
|
|||||||
schematic.delete.confirm = Ten schemat zostanie kompletnie wyeliminowany.
|
schematic.delete.confirm = Ten schemat zostanie kompletnie wyeliminowany.
|
||||||
schematic.rename = Zmień nazwę schematu
|
schematic.rename = Zmień nazwę schematu
|
||||||
schematic.info = {0}x{1}, {2} bloków
|
schematic.info = {0}x{1}, {2} bloków
|
||||||
|
|
||||||
stat.wave = Fale powstrzymane:[accent] {0}
|
stat.wave = Fale powstrzymane:[accent] {0}
|
||||||
stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0}
|
stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0}
|
||||||
stat.built = Budynki zbudowane:[accent] {0}
|
stat.built = Budynki zbudowane:[accent] {0}
|
||||||
@@ -47,8 +51,9 @@ stat.destroyed = Budynki zniszczone:[accent] {0}
|
|||||||
stat.deconstructed = Budynki zrekonstruowane:[accent] {0}
|
stat.deconstructed = Budynki zrekonstruowane:[accent] {0}
|
||||||
stat.delivered = Surowce wystrzelone:
|
stat.delivered = Surowce wystrzelone:
|
||||||
stat.rank = Ocena: [accent]{0}
|
stat.rank = Ocena: [accent]{0}
|
||||||
|
|
||||||
launcheditems = [accent]Wystrzelone przedmioty
|
launcheditems = [accent]Wystrzelone przedmioty
|
||||||
launchinfo = [unlaunched][[LAUNCH] rdzeń aby uzyskać przedmioty oznaczone na niebiesko.
|
launchinfo = [unlaunched][[WYSTRZEL] rdzeń aby uzyskać przedmioty oznaczone na niebiesko.
|
||||||
map.delete = Jesteś pewny, że chcesz usunąć "[accent]{0}[]"?
|
map.delete = Jesteś pewny, że chcesz usunąć "[accent]{0}[]"?
|
||||||
level.highscore = Rekord: [accent]{0}
|
level.highscore = Rekord: [accent]{0}
|
||||||
level.select = Wybrany poziom
|
level.select = Wybrany poziom
|
||||||
@@ -72,8 +77,10 @@ save.quit = Zapisz & Wyjdź
|
|||||||
maps = Mapy
|
maps = Mapy
|
||||||
maps.browse = Przeglądaj Mapy
|
maps.browse = Przeglądaj Mapy
|
||||||
continue = Kontynuuj
|
continue = Kontynuuj
|
||||||
maps.none = [LIGHT_GRAY]Nie znaleziono żadnych map!
|
maps.none = [lightgray]Nie znaleziono żadnych map!
|
||||||
invalid = Nieprawidłowy
|
invalid = Nieprawidłowy
|
||||||
|
pickcolor = Wybierz kolor
|
||||||
|
|
||||||
preparingconfig = Przygotowywanie Konfiguracji
|
preparingconfig = Przygotowywanie Konfiguracji
|
||||||
preparingcontent = Przygotowywanie Zawartości
|
preparingcontent = Przygotowywanie Zawartości
|
||||||
uploadingcontent = Przesyłanie Zawartości
|
uploadingcontent = Przesyłanie Zawartości
|
||||||
@@ -81,6 +88,7 @@ uploadingpreviewfile = Przesyłanie Pliku Podglądu
|
|||||||
committingchanges = Zatwierdzanie Zmian
|
committingchanges = Zatwierdzanie Zmian
|
||||||
done = Gotowe
|
done = Gotowe
|
||||||
feature.unsupported = Twoje urządzenie nie wspiera tej funkcji.
|
feature.unsupported = Twoje urządzenie nie wspiera tej funkcji.
|
||||||
|
|
||||||
mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord.
|
mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord.
|
||||||
mods.alpha = [scarlet](Alpha)
|
mods.alpha = [scarlet](Alpha)
|
||||||
mods = Mody
|
mods = Mody
|
||||||
@@ -104,16 +112,17 @@ mod.author = [LIGHT_GRAY]Autor:[] {0}
|
|||||||
mod.missing = Ten zapis zawiera mody, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Mody:\n{0}
|
mod.missing = Ten zapis zawiera mody, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Mody:\n{0}
|
||||||
mod.preview.missing = Przed opublikowaniem tego moda na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu moda i spróbuj jeszcze raz.
|
mod.preview.missing = Przed opublikowaniem tego moda na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu moda i spróbuj jeszcze raz.
|
||||||
mod.folder.missing = Jedynie mody w formie folderów mogą się znaleźć na Warsztacie.\nBy zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę bądź załaduj ponownie mody.
|
mod.folder.missing = Jedynie mody w formie folderów mogą się znaleźć na Warsztacie.\nBy zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę bądź załaduj ponownie mody.
|
||||||
|
|
||||||
about.button = O Grze
|
about.button = O Grze
|
||||||
name = Nazwa:
|
name = Nazwa:
|
||||||
noname = Najpierw wybierz[accent] nazwę gracza[]
|
noname = Najpierw wybierz[accent] nazwę gracza[]
|
||||||
filename = Nazwa Pliku:
|
filename = Nazwa Pliku:
|
||||||
unlocked = Odblokowano nowy blok!
|
unlocked = Odblokowano nową zawartość!
|
||||||
completed = [accent]Ukończony
|
completed = [accent]Ukończony
|
||||||
techtree = Drzewo Technologiczne
|
techtree = Drzewo Technologiczne
|
||||||
research.list = [LIGHT_GRAY]Badania:
|
research.list = [lightgray]Badania:
|
||||||
research = Badaj
|
research = Badaj
|
||||||
researched = [LIGHT_GRAY]{0} zbadane.
|
researched = [lightgray]{0} zbadane.
|
||||||
players = {0} graczy online
|
players = {0} graczy online
|
||||||
players.single = {0} gracz online
|
players.single = {0} gracz online
|
||||||
server.closing = [accent] Zamykanie serwera...
|
server.closing = [accent] Zamykanie serwera...
|
||||||
@@ -129,12 +138,12 @@ server.kicked.playerLimit = Serwer pełny. Poczekaj na wolne miejsce.
|
|||||||
server.kicked.recentKick = Zostałeś niedawno wyrzucony.\nPoczekaj chwilę przed ponownym połączniem.
|
server.kicked.recentKick = Zostałeś niedawno wyrzucony.\nPoczekaj chwilę przed ponownym połączniem.
|
||||||
server.kicked.nameInUse = Ta nazwa jest już zajęta na tym serwerze.
|
server.kicked.nameInUse = Ta nazwa jest już zajęta na tym serwerze.
|
||||||
server.kicked.nameEmpty = Wybrana przez Ciebie nazwa jest nieprawidłowa.
|
server.kicked.nameEmpty = Wybrana przez Ciebie nazwa jest nieprawidłowa.
|
||||||
server.kicked.idInUse = Jesteś już na serwerze! Używanie tego samego konta na 2 urządzeniach jest zabronione.
|
server.kicked.idInUse = Jesteś już na serwerze! Łączenie się z dwóch kont nie jest dozwolone.
|
||||||
server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobierz oficjalną wersję.
|
server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobierz oficjalną wersję.
|
||||||
server.kicked.gameover = Koniec gry!
|
server.kicked.gameover = Koniec gry!
|
||||||
server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[]
|
server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[]
|
||||||
host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[] i [scarlet]6568.[]\nKażdy w tej samej sieci [LIGHT_GRAY]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[LIGHT_GRAY]Notka:Jeśli ktokolwiek ma problem z dołączeniem do gry, upewnij się, że udostępniłeś Mindustry dostęp do sieci.
|
host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[]. \nKażdy w tej samej sieci [lightgray]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[lightgray]Notka: Jeśli ktokolwiek ma problem z dołączeniem do gry lokalnej, upewnij się, że udostępniłeś Mindustry dostęp do sieci w ustawieniach zapory (firewall). Zauważ, że niektóre sieci publiczne mogą nie zezwalać na wykrycie serwerów.
|
||||||
join.info = Tutaj możesz wpisać [accent]adres IP serwera[], aby dołączyć lub wyszukać [accent]serwerów w lokalnej sieci[], do których możesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[LIGHT_GRAY]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o IP.
|
join.info = Tutaj możesz wpisać [accent]adres IP serwera[], aby dołączyć lub wyszukać [accent]serwerów w lokalnej sieci[], do których możesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[lightgray]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o IP.
|
||||||
hostserver = Stwórz Serwer
|
hostserver = Stwórz Serwer
|
||||||
invitefriends = Zaproś Znajomych
|
invitefriends = Zaproś Znajomych
|
||||||
hostserver.mobile = Hostuj\nGrę
|
hostserver.mobile = Hostuj\nGrę
|
||||||
@@ -162,8 +171,8 @@ server.delete = Czy na pewno chcesz usunąć ten serwer?
|
|||||||
server.edit = Edytuj Serwer
|
server.edit = Edytuj Serwer
|
||||||
server.outdated = [crimson]Przestarzały serwer![]
|
server.outdated = [crimson]Przestarzały serwer![]
|
||||||
server.outdated.client = [crimson]Przestarzały klient![]
|
server.outdated.client = [crimson]Przestarzały klient![]
|
||||||
server.version = [lightgray]Wersja: {0}
|
server.version = [gray]Wersja: {0}
|
||||||
server.custombuild = [yellow]Zmodowany klient
|
server.custombuild = [accent]Zmodowany klient
|
||||||
confirmban = Jesteś pewny, że chcesz zbanować tego gracza?
|
confirmban = Jesteś pewny, że chcesz zbanować tego gracza?
|
||||||
confirmkick = Jesteś pewny, że chcesz wyrzucić tego gracza?
|
confirmkick = Jesteś pewny, że chcesz wyrzucić tego gracza?
|
||||||
confirmvotekick = Jesteś pewny, że chcesz głosować za wyrzuceniem tego gracza?
|
confirmvotekick = Jesteś pewny, że chcesz głosować za wyrzuceniem tego gracza?
|
||||||
@@ -188,7 +197,7 @@ save.new = Nowy zapis
|
|||||||
save.overwrite = Czy na pewno chcesz nadpisać zapis gry?
|
save.overwrite = Czy na pewno chcesz nadpisać zapis gry?
|
||||||
overwrite = Nadpisz
|
overwrite = Nadpisz
|
||||||
save.none = Nie znaleziono zapisów gry!
|
save.none = Nie znaleziono zapisów gry!
|
||||||
saveload = [accent]Zapisywanie...
|
saveload = Zapisywanie...
|
||||||
savefail = Nie udało się zapisać gry!
|
savefail = Nie udało się zapisać gry!
|
||||||
save.delete.confirm = Czy na pewno chcesz usunąć ten zapis gry?
|
save.delete.confirm = Czy na pewno chcesz usunąć ten zapis gry?
|
||||||
save.delete = Usuń
|
save.delete = Usuń
|
||||||
@@ -203,7 +212,7 @@ save.rename.text = Nowa nazwa:
|
|||||||
selectslot = Wybierz zapis.
|
selectslot = Wybierz zapis.
|
||||||
slot = [accent]Slot {0}
|
slot = [accent]Slot {0}
|
||||||
editmessage = Edytuj Wiadomość
|
editmessage = Edytuj Wiadomość
|
||||||
save.corrupted = [accent]Zapis gry jest uszkodzony lub nieprawidłowy! Jeżeli aktualizowałeś grę, najprawdopodobniej jest to zmiana w formacie zapisu i [scarlet]nie jest[] to błąd.
|
save.corrupted = Zapis gry jest uszkodzony lub nieprawidłowy!
|
||||||
empty = <pusto>
|
empty = <pusto>
|
||||||
on = Włączone
|
on = Włączone
|
||||||
off = Wyłączone
|
off = Wyłączone
|
||||||
@@ -231,11 +240,11 @@ data.exported = Dane wyeksportowane.
|
|||||||
data.invalid = Nieprawidłowe dane gry.
|
data.invalid = Nieprawidłowe dane gry.
|
||||||
data.import.confirm = Zaimportowanie zewnętrznych danych usunie[scarlet] wszystkie[] obecne dane gry.\n[accent]Nie można tego cofnąć![]\n\nGdy dane zostaną zimportowane, gra automatycznie się wyłączy.
|
data.import.confirm = Zaimportowanie zewnętrznych danych usunie[scarlet] wszystkie[] obecne dane gry.\n[accent]Nie można tego cofnąć![]\n\nGdy dane zostaną zimportowane, gra automatycznie się wyłączy.
|
||||||
classic.export = Eksportuj Dane Wersji Klasycznej
|
classic.export = Eksportuj Dane Wersji Klasycznej
|
||||||
classic.export.text = [accent]Mindustry[] otrzymało ostatnio ważną aktualizację.\nClassic (v3.5 build 40) zapis albo mapa zostały wykryte. Czy chciałbyś eksportować te zapisy do katalogu domowego swojego telefonu, do użycia w aplikacji Mindustry Classic?
|
classic.export.text = [accent]Mindustry[] otrzymało ostatnio ważną aktualizację.\nWykryto zapis lub mapę z wersji classic (v3.5 build 40) - czy chciałbyś eksportować te zapisy do katalogu domowego swojego telefonu, do użycia w aplikacji Mindustry Classic?
|
||||||
quit.confirm = Czy na pewno chcesz wyjść?
|
quit.confirm = Czy na pewno chcesz wyjść?
|
||||||
quit.confirm.tutorial = Czy jesteś pewien tego co robisz?\nSamouczek może zostać powtórzony w[accent] Opcje->Gra->Powtórz samouczek.[]
|
quit.confirm.tutorial = Czy jesteś pewien tego co robisz?\nSamouczek może zostać powtórzony w[accent] Ustawienia->Gra->Ponów samouczek.[]
|
||||||
loading = [accent]Ładowanie...
|
loading = [accent]Ładowanie...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Przeładowywanie Modów...
|
||||||
saving = [accent]Zapisywanie...
|
saving = [accent]Zapisywanie...
|
||||||
cancelbuilding = [accent][[{0}][] by wyczyścić plan
|
cancelbuilding = [accent][[{0}][] by wyczyścić plan
|
||||||
selectschematic = [accent][[{0}][] by wybrać+skopiować
|
selectschematic = [accent][[{0}][] by wybrać+skopiować
|
||||||
@@ -243,11 +252,11 @@ pausebuilding = [accent][[{0}][] by wtrzymać budowę
|
|||||||
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
|
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
|
||||||
wave = [accent]Fala {0}
|
wave = [accent]Fala {0}
|
||||||
wave.waiting = Fala za {0}
|
wave.waiting = Fala za {0}
|
||||||
wave.waveInProgress = [LIGHT_GRAY]Fala w trakcie
|
wave.waveInProgress = [lightgray]Fala w trakcie
|
||||||
waiting = [LIGHT_GRAY]Oczekiwanie...
|
waiting = [lightgray]Oczekiwanie...
|
||||||
waiting.players = Oczekiwanie na graczy...
|
waiting.players = Oczekiwanie na graczy...
|
||||||
wave.enemies = Pozostało [LIGHT_GRAY]{0} wrogów
|
wave.enemies = Pozostało [lightgray]{0} wrogów
|
||||||
wave.enemy = Pozostał [LIGHT_GRAY]{0} wróg
|
wave.enemy = Pozostał [lightgray]{0} wróg
|
||||||
loadimage = Załaduj Obraz
|
loadimage = Załaduj Obraz
|
||||||
saveimage = Zapisz Obraz
|
saveimage = Zapisz Obraz
|
||||||
unknown = Nieznane
|
unknown = Nieznane
|
||||||
@@ -255,8 +264,8 @@ custom = Własne
|
|||||||
builtin = Wbudowane
|
builtin = Wbudowane
|
||||||
map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić.
|
map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić.
|
||||||
map.random = [accent]Losowa Mapa
|
map.random = [accent]Losowa Mapa
|
||||||
map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [ROYAL]niebieski[] rdzeń do tej mapy w edytorze.
|
map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [accent]pomarańczowy[] rdzeń do tej mapy w edytorze.
|
||||||
map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż niebieski[] rdzeń do mapy w edytorze.
|
map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż pomarańczowy[] rdzeń do mapy w edytorze.
|
||||||
map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[SCARLET] czerwony[] rdzeń do mapy w edytorze.
|
map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[SCARLET] czerwony[] rdzeń do mapy w edytorze.
|
||||||
map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy.
|
map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy.
|
||||||
workshop.update = Aktualizuj pozycję
|
workshop.update = Aktualizuj pozycję
|
||||||
@@ -265,12 +274,13 @@ map.publish.confirm = Czy jesteś pewien, że chcesz opublikować tę mapę?\n\n
|
|||||||
workshop.menu = Wybierz co chcesz zrobić z tą pozycją.
|
workshop.menu = Wybierz co chcesz zrobić z tą pozycją.
|
||||||
workshop.info = Informacja o pozycji
|
workshop.info = Informacja o pozycji
|
||||||
changelog = Historia aktualizacji (opcjonalna):
|
changelog = Historia aktualizacji (opcjonalna):
|
||||||
eula = Umowa EULA Steam
|
eula = Umowa Użytkownika Końcowego (EULA) Steam
|
||||||
missing = Ta pozycja została przeniesiona bądź usunięta.\n[lightgray]Pozycja na Warsztacie została automatycznie odłączona.
|
missing = Ta pozycja została przeniesiona bądź usunięta.\n[lightgray]Pozycja na Warsztacie została automatycznie odłączona.
|
||||||
publishing = [accent]Trwa publikowanie...
|
publishing = [accent]Trwa publikowanie...
|
||||||
publish.confirm = Czy jesteś pewien, że chcesz to opublikować?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje pozycje nie będą widoczne!
|
publish.confirm = Czy jesteś pewien, że chcesz to opublikować?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje pozycje nie będą widoczne!
|
||||||
publish.error = Błąd podczas publikowania pozycji: {0}
|
publish.error = Błąd podczas publikowania pozycji: {0}
|
||||||
steam.error = Nie udało się zainicjować serwisów Steam.\nBłąd: {0}
|
steam.error = Nie udało się zainicjować serwisów Steam.\nBłąd: {0}
|
||||||
|
|
||||||
editor.brush = Pędzel
|
editor.brush = Pędzel
|
||||||
editor.openin = Otwórz w Edytorze
|
editor.openin = Otwórz w Edytorze
|
||||||
editor.oregen = Generacja Złóż
|
editor.oregen = Generacja Złóż
|
||||||
@@ -301,7 +311,7 @@ waves.load = Załaduj Ze Schowka
|
|||||||
waves.invalid = Nieprawidłowe fale w schowku.
|
waves.invalid = Nieprawidłowe fale w schowku.
|
||||||
waves.copied = Fale zostały skopiowane.
|
waves.copied = Fale zostały skopiowane.
|
||||||
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
|
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
|
||||||
editor.default = [LIGHT_GRAY]<Domyślne>
|
editor.default = [lightgray]<Domyślne>
|
||||||
details = Detale...
|
details = Detale...
|
||||||
edit = Edytuj...
|
edit = Edytuj...
|
||||||
editor.name = Nazwa:
|
editor.name = Nazwa:
|
||||||
@@ -310,11 +320,11 @@ editor.removeunit = Usuń Jednostkę
|
|||||||
editor.teams = Drużyny
|
editor.teams = Drużyny
|
||||||
editor.errorload = Błąd podczas ładowania pliku:\n[accent]{0}
|
editor.errorload = Błąd podczas ładowania pliku:\n[accent]{0}
|
||||||
editor.errorsave = Błąd podczas zapisywania pliku:\n[accent]{0}
|
editor.errorsave = Błąd podczas zapisywania pliku:\n[accent]{0}
|
||||||
editor.errorimage = To obraz, nie mapa. Nie zmieniaj rozszerzenia, spodziewając się, że to coś zmieni.\n\nJeśli chcesz zaimportować starszą mapę, użyj przycisku „importuj starszą mapę” w edytorze.
|
editor.errorimage = To obraz, nie mapa.\n\nJeśli chcesz zaimportować mapę z wersji 3.5/build 40, użyj przycisku "Importuj starszą mapę" w edytorze.
|
||||||
editor.errorlegacy = Ta mapa jest zbyt stara i używa starszego formatu mapy, który nie jest już obsługiwany.
|
editor.errorlegacy = Ta mapa jest zbyt stara i używa starszego formatu mapy, który nie jest już obsługiwany.
|
||||||
editor.errornot = To nie jest plik mapy.
|
editor.errornot = To nie jest plik mapy.
|
||||||
editor.errorheader = Ten plik mapy jest nieprawidłowy lub uszkodzony.
|
editor.errorheader = Ten plik mapy jest nieprawidłowy lub uszkodzony.
|
||||||
editor.errorname = Mapa nie zawiera nazwy.
|
editor.errorname = Mapa nie zawiera nazwy. Czy próbujesz załadować zapis gry?
|
||||||
editor.update = Aktualizuj
|
editor.update = Aktualizuj
|
||||||
editor.randomize = Losuj
|
editor.randomize = Losuj
|
||||||
editor.apply = Zastosuj
|
editor.apply = Zastosuj
|
||||||
@@ -347,6 +357,7 @@ editor.overwrite = [accent]Uwaga!\nSpowoduje to nadpisanie istniejącej mapy.
|
|||||||
editor.overwrite.confirm = [scarlet]Uwaga![] Mapa o tej nazwie już istnieje. Jesteś pewny, że chcesz ją nadpisać?
|
editor.overwrite.confirm = [scarlet]Uwaga![] Mapa o tej nazwie już istnieje. Jesteś pewny, że chcesz ją nadpisać?
|
||||||
editor.exists = Mapa o tej nazwie już istnieje.
|
editor.exists = Mapa o tej nazwie już istnieje.
|
||||||
editor.selectmap = Wybierz mapę do załadowania:
|
editor.selectmap = Wybierz mapę do załadowania:
|
||||||
|
|
||||||
toolmode.replace = Zastąp
|
toolmode.replace = Zastąp
|
||||||
toolmode.replace.description = Rysuje tylko na stałych blokach.
|
toolmode.replace.description = Rysuje tylko na stałych blokach.
|
||||||
toolmode.replaceall = Zastąp Wszystko
|
toolmode.replaceall = Zastąp Wszystko
|
||||||
@@ -361,7 +372,8 @@ toolmode.fillteams = Wypełnij Drużyny
|
|||||||
toolmode.fillteams.description = Wypełniaj drużyny zamiast bloków.
|
toolmode.fillteams.description = Wypełniaj drużyny zamiast bloków.
|
||||||
toolmode.drawteams = Rysuj Drużyny
|
toolmode.drawteams = Rysuj Drużyny
|
||||||
toolmode.drawteams.description = Rysuj drużyny zamiast bloków.
|
toolmode.drawteams.description = Rysuj drużyny zamiast bloków.
|
||||||
filters.empty = [LIGHT_GRAY]Brak filtrów! Dodaj jeden za pomocą przycisku poniżej.
|
|
||||||
|
filters.empty = [lightgray]Brak filtrów! Dodaj jeden za pomocą przycisku poniżej.
|
||||||
filter.distort = Zniekształcanie
|
filter.distort = Zniekształcanie
|
||||||
filter.noise = Szum
|
filter.noise = Szum
|
||||||
filter.median = Mediana
|
filter.median = Mediana
|
||||||
@@ -391,7 +403,8 @@ filter.option.ore = Ruda
|
|||||||
filter.option.floor2 = Druga Podłoga
|
filter.option.floor2 = Druga Podłoga
|
||||||
filter.option.threshold2 = Drugi Próg
|
filter.option.threshold2 = Drugi Próg
|
||||||
filter.option.radius = Zasięg
|
filter.option.radius = Zasięg
|
||||||
filter.option.percentile = Percentyl
|
filter.option.percentile = Procent
|
||||||
|
|
||||||
width = Szerokość:
|
width = Szerokość:
|
||||||
height = Wysokość:
|
height = Wysokość:
|
||||||
menu = Menu
|
menu = Menu
|
||||||
@@ -401,52 +414,56 @@ load = Wczytaj
|
|||||||
save = Zapisz
|
save = Zapisz
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Ping: {0}ms
|
ping = Ping: {0}ms
|
||||||
|
|
||||||
language.restart = Uruchom grę ponownie, aby ustawiony język zaczął funkcjonować.
|
language.restart = Uruchom grę ponownie, aby ustawiony język zaczął funkcjonować.
|
||||||
settings = Ustawienia
|
settings = Ustawienia
|
||||||
tutorial = Poradnik
|
tutorial = Poradnik
|
||||||
tutorial.retake = Ponów Samouczek
|
tutorial.retake = Ponów Samouczek
|
||||||
editor = Edytor
|
editor = Edytor
|
||||||
mapeditor = Edytor Map
|
mapeditor = Edytor Map
|
||||||
|
|
||||||
abandon = Opuść
|
abandon = Opuść
|
||||||
abandon.text = Ta strefa i wszystkie jej surowce będą przejęte przez przeciwników.
|
abandon.text = Ta strefa i wszystkie jej surowce będą przejęte przez przeciwników.
|
||||||
locked = Zablokowane
|
locked = Zablokowane
|
||||||
complete = [LIGHT_GRAY]Ukończone:
|
complete = [lightgray]Ukończone:
|
||||||
requirement.wave = Osiągnij falę {0} w {1}
|
requirement.wave = Osiągnij falę {0} w {1}
|
||||||
requirement.core = Zniszcz Rdzeń wroga w {0}
|
requirement.core = Zniszcz Rdzeń wroga w {0}
|
||||||
requirement.unlock = Odblokuj {0}
|
requirement.unlock = Odblokuj {0}
|
||||||
resume = Kontynuuj Strefę:\n[LIGHT_GRAY]{0}
|
resume = Kontynuuj Strefę:\n[lightgray]{0}
|
||||||
bestwave = [LIGHT_GRAY]Najwyższa fala: {0}
|
bestwave = [lightgray]Najwyższa fala: {0}
|
||||||
launch = < WYSTRZEL >
|
launch = < WYSTRZEL >
|
||||||
launch.title = Wystrzelenie Udane
|
launch.title = Wystrzelenie Udane
|
||||||
launch.next = [LIGHT_GRAY]Następna okazja przy fali {0}
|
launch.next = [lightgray]Następna okazja przy fali {0}
|
||||||
launch.unable2 = [scarlet]WYSTZRZELENIE niedostępne.[]
|
launch.unable2 = [scarlet]WYSTZRZELENIE niedostępne.[]
|
||||||
launch.confirm = Spowoduje to wystrzelenie wszystkich surowców w rdzeniu.\nNie będziesz mógł wrócić do tej bazy.
|
launch.confirm = Spowoduje to wystrzelenie wszystkich surowców w rdzeniu.\nNie będziesz mógł wrócić do tej bazy.
|
||||||
launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, Nie biędziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal.
|
launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, nie biędziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal.
|
||||||
uncover = Odkryj
|
uncover = Odkryj
|
||||||
configure = Skonfiguruj Ładunek
|
configure = Skonfiguruj Ładunek
|
||||||
bannedblocks = Zabronione bloki
|
bannedblocks = Zabronione bloki
|
||||||
addall = Dodaj wszystkie
|
addall = Dodaj wszystkie
|
||||||
configure.locked = [LIGHT_GRAY]Dotrzyj do fali {0}\nAby skonfigurować ładunek.
|
configure.locked = [lightgray]Dotrzyj do fali {0},\naby skonfigurować ładunek.
|
||||||
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
|
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
|
||||||
zone.unlocked = [LIGHT_GRAY]Strefa {0} odblokowana.
|
zone.unlocked = [lightgray]Strefa {0} odblokowana.
|
||||||
zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione.
|
zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione.
|
||||||
zone.config.unlocked = Ładunek odblokowany:[lightgray]\n{0}
|
zone.config.unlocked = Ładunek odblokowany:[lightgray]\n{0}
|
||||||
zone.resources = Wykryte Zasoby:
|
zone.resources = [lightgray]Wykryte Zasoby:
|
||||||
zone.objective = [lightgray]Cel: [accent]{0}
|
zone.objective = [lightgray]Cel: [accent]{0}
|
||||||
zone.objective.survival = Przeżyj
|
zone.objective.survival = Przeżyj
|
||||||
zone.objective.attack = Zniszcz Rdzeń Wroga
|
zone.objective.attack = Zniszcz Rdzeń Wroga
|
||||||
add = Dodaj...
|
add = Dodaj...
|
||||||
boss.health = Zdrowie Bossa
|
boss.health = Zdrowie Bossa
|
||||||
|
|
||||||
connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0}
|
connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0}
|
||||||
error.unreachable = Serwer niedostępny.\nCzy adres jest wpisany poprawnie?
|
error.unreachable = Serwer niedostępny.\nCzy adres jest wpisany poprawnie?
|
||||||
error.invalidaddress = Niepoprawny adres.
|
error.invalidaddress = Niepoprawny adres.
|
||||||
error.timedout = Przekroczono limit czasu!/nUpewnij się, że host ma ustawione przekierowanie portu oraz, czy adres jest poprawny!
|
error.timedout = Przekroczono limit czasu!/nUpewnij się, że host ma ustawione przekierowanie portu oraz poprawność wpisanego adresu!
|
||||||
error.mismatch = Błąd pakietu:\nprawdopodobne niedopasowanie klienta/serwera.\nUpewnij się, że ty i host macie najnowszą wersję Mindustry!
|
error.mismatch = Błąd pakietu:\nprawdopodobne niedopasowanie klienta/serwera.\nUpewnij się, że ty i host macie najnowszą wersję Mindustry!
|
||||||
error.alreadyconnected = Jesteś już połączony.
|
error.alreadyconnected = Jesteś już połączony.
|
||||||
error.mapnotfound = Plik mapy nie został znaleziony!
|
error.mapnotfound = Plik mapy nie został znaleziony!
|
||||||
error.io = Błąd siecowy I/O.
|
error.io = Błąd siecowy I/O.
|
||||||
error.any = Nieznany błąd sieci.
|
error.any = Nieznany błąd sieci.
|
||||||
error.bloom = Nie udało się załadować bloom.\nTwoje urządzenie może nie wspierać tej funkcji.
|
error.bloom = Nie udało się załadować bloom.\nTwoje urządzenie może nie wspierać tej funkcji.
|
||||||
|
|
||||||
zone.groundZero.name = Wybuch Lądowy
|
zone.groundZero.name = Wybuch Lądowy
|
||||||
zone.desertWastes.name = Pustynne Pustkowia
|
zone.desertWastes.name = Pustynne Pustkowia
|
||||||
zone.craters.name = Kratery
|
zone.craters.name = Kratery
|
||||||
@@ -461,6 +478,7 @@ zone.saltFlats.name = Solne Równiny
|
|||||||
zone.impact0078.name = Uderzenie 0078
|
zone.impact0078.name = Uderzenie 0078
|
||||||
zone.crags.name = Urwisko
|
zone.crags.name = Urwisko
|
||||||
zone.fungalPass.name = Grzybowa Przełęcz
|
zone.fungalPass.name = Grzybowa Przełęcz
|
||||||
|
|
||||||
zone.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz jak najwięcej miedzi i ołowiu, tyle ile jest możliwe.\nPrzejdź do następnej strefy jak najszybciej.
|
zone.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz jak najwięcej miedzi i ołowiu, tyle ile jest możliwe.\nPrzejdź do następnej strefy jak najszybciej.
|
||||||
zone.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od władzy. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy.
|
zone.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od władzy. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy.
|
||||||
zone.desertWastes.description = Te pustkowia są rozległe, nieprzewidywalne, i znajdują się na nich opuszczone struktury.\nWęgiel jest obecny w tym regionie. Użyj go do produkcji energii, lub do stworzenia grafitu.\n\n[lightgray]Miejsce lądowania nie jest pewne.
|
zone.desertWastes.description = Te pustkowia są rozległe, nieprzewidywalne, i znajdują się na nich opuszczone struktury.\nWęgiel jest obecny w tym regionie. Użyj go do produkcji energii, lub do stworzenia grafitu.\n\n[lightgray]Miejsce lądowania nie jest pewne.
|
||||||
@@ -472,7 +490,7 @@ zone.overgrowth.description = Obszar ten jest zarośnięty, bliżej źródła za
|
|||||||
zone.tarFields.description = Obrzeża strefy produkcji ropy, między górami a pustynią. Jeden z niewielu obszarów z rezerwami użytecznej smoły.\nMimo że ta strefa jest opuszczona, w pobliżu znajdują się niebezpieczne siły wroga. Nie lekceważ ich.\n\n[lightgray]Jeśli to możliwe, zbadaj technologię przetwarzania oleju.
|
zone.tarFields.description = Obrzeża strefy produkcji ropy, między górami a pustynią. Jeden z niewielu obszarów z rezerwami użytecznej smoły.\nMimo że ta strefa jest opuszczona, w pobliżu znajdują się niebezpieczne siły wroga. Nie lekceważ ich.\n\n[lightgray]Jeśli to możliwe, zbadaj technologię przetwarzania oleju.
|
||||||
zone.desolateRift.description = Strefa wyjątkowo niebezpieczna. Obfita w zasoby ale mało miejsca. Wysokie ryzyko zniszczenia. Opuść tę strefe jak najszybciej. Nie daj się zwieść długiemu odstępowi między atakami wroga.
|
zone.desolateRift.description = Strefa wyjątkowo niebezpieczna. Obfita w zasoby ale mało miejsca. Wysokie ryzyko zniszczenia. Opuść tę strefe jak najszybciej. Nie daj się zwieść długiemu odstępowi między atakami wroga.
|
||||||
zone.nuclearComplex.description = Dawny zakład produkcji i przetwarzania toru, zredukowny do ruin.\n[lightgray]Zbadaj tor i jego zastosowania.\n\nWróg jest tutaj obecny w dużej ilości, nieustannie poszukuje napastników.
|
zone.nuclearComplex.description = Dawny zakład produkcji i przetwarzania toru, zredukowny do ruin.\n[lightgray]Zbadaj tor i jego zastosowania.\n\nWróg jest tutaj obecny w dużej ilości, nieustannie poszukuje napastników.
|
||||||
zone.fungalPass.description = Przejściowy obszar pomiędzy wysokimi górami a nisko znajdującymi się, ogarniętymi przez zarodniki równinami. Znajduje się tu mała postawiona przez wrogów baza zwiadowcza.\nZniszcz ją.\nUżyj jednostek Nóż i Pełzak. Zniszcz oba rdżenie.
|
zone.fungalPass.description = Przejściowy obszar pomiędzy wysokimi górami a nisko znajdującymi się, ogarniętymi przez zarodniki równinami. Znajduje się tu mała postawiona przez wrogów baza zwiadowcza.\nZniszcz ją.\nUżyj jednostek Nóż i Pełzak. Zniszcz oba rdzenie.
|
||||||
zone.impact0078.description = <insert description here>
|
zone.impact0078.description = <insert description here>
|
||||||
zone.crags.description = <insert description here>
|
zone.crags.description = <insert description here>
|
||||||
settings.language = Język
|
settings.language = Język
|
||||||
@@ -497,7 +515,7 @@ error.crashtitle = Wystąpił błąd
|
|||||||
blocks.input = Wejście
|
blocks.input = Wejście
|
||||||
blocks.output = Wyjście
|
blocks.output = Wyjście
|
||||||
blocks.booster = Wzmacniacz
|
blocks.booster = Wzmacniacz
|
||||||
block.unknown = [LIGHT_GRAY]???
|
block.unknown = [lightgray]???
|
||||||
blocks.powercapacity = Pojemność mocy
|
blocks.powercapacity = Pojemność mocy
|
||||||
blocks.powershot = moc/strzał
|
blocks.powershot = moc/strzał
|
||||||
blocks.damage = Obrażenia
|
blocks.damage = Obrażenia
|
||||||
@@ -509,7 +527,7 @@ blocks.shootrange = Zasięg
|
|||||||
blocks.size = Rozmiar
|
blocks.size = Rozmiar
|
||||||
blocks.liquidcapacity = Pojemność cieczy
|
blocks.liquidcapacity = Pojemność cieczy
|
||||||
blocks.powerrange = Zakres mocy
|
blocks.powerrange = Zakres mocy
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = Maksymalna ilość połączeń
|
||||||
blocks.poweruse = Zużycie prądu
|
blocks.poweruse = Zużycie prądu
|
||||||
blocks.powerdamage = Moc/Zniszczenia
|
blocks.powerdamage = Moc/Zniszczenia
|
||||||
blocks.itemcapacity = Pojemność przedmiotów
|
blocks.itemcapacity = Pojemność przedmiotów
|
||||||
@@ -529,9 +547,10 @@ blocks.inaccuracy = Niedokładność
|
|||||||
blocks.shots = Strzały
|
blocks.shots = Strzały
|
||||||
blocks.reload = Strzałów/sekundę
|
blocks.reload = Strzałów/sekundę
|
||||||
blocks.ammo = Amunicja
|
blocks.ammo = Amunicja
|
||||||
|
|
||||||
bar.drilltierreq = Wymagane Lepsze Wiertło
|
bar.drilltierreq = Wymagane Lepsze Wiertło
|
||||||
bar.drillspeed = Prędkość wiertła: {0}/s
|
bar.drillspeed = Prędkość wiertła: {0}/s
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = Prędkość pompy: {0}/s
|
||||||
bar.efficiency = Efektywność: {0}%
|
bar.efficiency = Efektywność: {0}%
|
||||||
bar.powerbalance = Moc: {0}
|
bar.powerbalance = Moc: {0}
|
||||||
bar.powerstored = Zmagazynowano: {0}/{1}
|
bar.powerstored = Zmagazynowano: {0}/{1}
|
||||||
@@ -544,6 +563,9 @@ bar.heat = Ciepło
|
|||||||
bar.power = Prąd
|
bar.power = Prąd
|
||||||
bar.progress = Postęp Budowy
|
bar.progress = Postęp Budowy
|
||||||
bar.spawned = Jednostki: {0}/{1}
|
bar.spawned = Jednostki: {0}/{1}
|
||||||
|
bar.input = Input
|
||||||
|
bar.output = Output
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] Obrażenia
|
bullet.damage = [stat]{0}[lightgray] Obrażenia
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
|
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
|
||||||
bullet.incendiary = [stat]zapalający
|
bullet.incendiary = [stat]zapalający
|
||||||
@@ -555,6 +577,7 @@ bullet.freezing = [stat]zamrażający
|
|||||||
bullet.tarred = [stat]smolny
|
bullet.tarred = [stat]smolny
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
|
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
|
||||||
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
|
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
|
||||||
|
|
||||||
unit.blocks = bloki
|
unit.blocks = bloki
|
||||||
unit.powersecond = jednostek prądu na sekundę
|
unit.powersecond = jednostek prądu na sekundę
|
||||||
unit.liquidsecond = jednostek płynów na sekundę
|
unit.liquidsecond = jednostek płynów na sekundę
|
||||||
@@ -576,12 +599,13 @@ category.shooting = Strzelanie
|
|||||||
category.optional = Dodatkowe ulepszenia
|
category.optional = Dodatkowe ulepszenia
|
||||||
setting.landscape.name = Zablokuj tryb panoramiczny
|
setting.landscape.name = Zablokuj tryb panoramiczny
|
||||||
setting.shadows.name = Cienie
|
setting.shadows.name = Cienie
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Automatyczne sugestie bloków
|
||||||
setting.linear.name = Filtrowanie Liniowe
|
setting.linear.name = Filtrowanie Liniowe
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Podpowiedzi
|
||||||
|
setting.buildautopause.name = Automatycznie zatrzymaj budowanie
|
||||||
setting.animatedwater.name = Animowana woda
|
setting.animatedwater.name = Animowana woda
|
||||||
setting.animatedshields.name = Animowana Tarcza
|
setting.animatedshields.name = Animowana Tarcza
|
||||||
setting.antialias.name = Antyaliasing[LIGHT_GRAY] (wymaga restartu)[]
|
setting.antialias.name = Antyaliasing[lightgray] (wymaga restartu)[]
|
||||||
setting.indicators.name = Wskaźniki Przyjaciół
|
setting.indicators.name = Wskaźniki Przyjaciół
|
||||||
setting.autotarget.name = Automatyczne Celowanie
|
setting.autotarget.name = Automatyczne Celowanie
|
||||||
setting.keyboard.name = Sterowanie - Myszka+Klawiatura
|
setting.keyboard.name = Sterowanie - Myszka+Klawiatura
|
||||||
@@ -599,18 +623,21 @@ setting.difficulty.insane = Szalony
|
|||||||
setting.difficulty.name = Poziom trudności
|
setting.difficulty.name = Poziom trudności
|
||||||
setting.screenshake.name = Wstrząsy ekranu
|
setting.screenshake.name = Wstrząsy ekranu
|
||||||
setting.effects.name = Wyświetlanie efektów
|
setting.effects.name = Wyświetlanie efektów
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Wyświetl zniszczone bloki
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Znajdowanie Ścieżki Stawianych Taśmociągów
|
||||||
setting.sensitivity.name = Czułość kontrolera
|
setting.sensitivity.name = Czułość kontrolera
|
||||||
setting.saveinterval.name = Interwał automatycznego zapisywania
|
setting.saveinterval.name = Interwał automatycznego zapisywania
|
||||||
setting.seconds = {0} Sekundy
|
setting.seconds = {0} sekund
|
||||||
|
setting.blockselecttimeout.name = Block Select Timeout
|
||||||
|
setting.milliseconds = {0} millisekund
|
||||||
setting.fullscreen.name = Pełny ekran
|
setting.fullscreen.name = Pełny ekran
|
||||||
setting.borderlesswindow.name = Bezramkowe okno[LIGHT_GRAY] (może wymagać restartu)
|
setting.borderlesswindow.name = Bezramkowe okno[lightgray] (może wymagać restartu)
|
||||||
setting.fps.name = Pokazuj FPS
|
setting.fps.name = Pokazuj FPS oraz ping
|
||||||
|
setting.blockselectkeys.name = Pokazuj Klawisze Wyboru Bloków
|
||||||
setting.vsync.name = Synchronizacja pionowa
|
setting.vsync.name = Synchronizacja pionowa
|
||||||
setting.pixelate.name = Pikselacja [LIGHT_GRAY](wyłącza animacje)
|
setting.pixelate.name = Pikselacja [lightgray](wyłącza animacje)
|
||||||
setting.minimap.name = Pokaż Minimapę
|
setting.minimap.name = Pokaż Minimapę
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Pokazuj położenie gracza
|
||||||
setting.musicvol.name = Głośność muzyki
|
setting.musicvol.name = Głośność muzyki
|
||||||
setting.ambientvol.name = Głośność otoczenia
|
setting.ambientvol.name = Głośność otoczenia
|
||||||
setting.mutemusic.name = Wycisz muzykę
|
setting.mutemusic.name = Wycisz muzykę
|
||||||
@@ -622,11 +649,11 @@ setting.publichost.name = Widoczność Gry Publicznej
|
|||||||
setting.chatopacity.name = Przezroczystość czatu
|
setting.chatopacity.name = Przezroczystość czatu
|
||||||
setting.lasersopacity.name = Przezroczystość laserów zasilających
|
setting.lasersopacity.name = Przezroczystość laserów zasilających
|
||||||
setting.playerchat.name = Wyświetlaj czat w grze
|
setting.playerchat.name = Wyświetlaj czat w grze
|
||||||
public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej.
|
public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[accent]Każdy będzie mógł dołączyć do twojej gry.\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej.
|
||||||
public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi.
|
public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi.
|
||||||
uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[]
|
uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[]
|
||||||
uiscale.cancel = Anuluj i Wyjdź
|
uiscale.cancel = Anuluj i Wyjdź
|
||||||
setting.bloom.name = Bloom
|
setting.bloom.name = Rozproszenie
|
||||||
keybind.title = Zmień
|
keybind.title = Zmień
|
||||||
keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w wersji mobilnej. Tylko podstawowe poruszanie się jest wspierane.
|
keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w wersji mobilnej. Tylko podstawowe poruszanie się jest wspierane.
|
||||||
category.general.name = Ogólne
|
category.general.name = Ogólne
|
||||||
@@ -635,16 +662,36 @@ category.multiplayer.name = Wielu graczy
|
|||||||
command.attack = Atakuj
|
command.attack = Atakuj
|
||||||
command.rally = Zbierz
|
command.rally = Zbierz
|
||||||
command.retreat = Wycofaj
|
command.retreat = Wycofaj
|
||||||
|
placement.blockselectkeys = \n[lightgray]Key: [{0},
|
||||||
keybind.clear_building.name = Wyczyść budynek
|
keybind.clear_building.name = Wyczyść budynek
|
||||||
keybind.press = Naciśnij wybrany klawisz...
|
keybind.press = Naciśnij wybrany klawisz...
|
||||||
keybind.press.axis = Naciśnij oś lub klawisz...
|
keybind.press.axis = Naciśnij oś lub klawisz...
|
||||||
keybind.screenshot.name = Zrzut ekranu mapy
|
keybind.screenshot.name = Zrzut ekranu mapy
|
||||||
|
keybind.toggle_power_lines.name = Przełącz Linie Energetyczne
|
||||||
keybind.move_x.name = Poruszanie w poziomie
|
keybind.move_x.name = Poruszanie w poziomie
|
||||||
keybind.move_y.name = Poruszanie w pionie
|
keybind.move_y.name = Poruszanie w pionie
|
||||||
|
keybind.mouse_move.name = Podążaj Za Myszką
|
||||||
|
keybind.dash.name = Dash
|
||||||
keybind.schematic_select.name = Wybierz region
|
keybind.schematic_select.name = Wybierz region
|
||||||
keybind.schematic_menu.name = Menu schematów
|
keybind.schematic_menu.name = Menu schematów
|
||||||
keybind.schematic_flip_x.name = Obróć schemat horyzontalnie
|
keybind.schematic_flip_x.name = Obróć schemat horyzontalnie
|
||||||
keybind.schematic_flip_y.name = Obróć schemat wertykalnie
|
keybind.schematic_flip_y.name = Obróć schemat wertykalnie
|
||||||
|
keybind.category_prev.name = Poprzednia kategoria
|
||||||
|
keybind.category_next.name = Następna kategoria
|
||||||
|
keybind.block_select_left.name = Wybór Bloku Lewo
|
||||||
|
keybind.block_select_right.name = Wybór Bloku Prawo
|
||||||
|
keybind.block_select_up.name = Wybór Bloku Góra
|
||||||
|
keybind.block_select_down.name = Wybór Bloku Dół
|
||||||
|
keybind.block_select_01.name = Kategoria/Wybór Bloku 1
|
||||||
|
keybind.block_select_02.name = Kategoria/Wybór Bloku 2
|
||||||
|
keybind.block_select_03.name = Kategoria/Wybór Bloku 3
|
||||||
|
keybind.block_select_04.name = Kategoria/Wybór Bloku 4
|
||||||
|
keybind.block_select_05.name = Kategoria/Wybór Bloku 5
|
||||||
|
keybind.block_select_06.name = Kategoria/Wybór Bloku 6
|
||||||
|
keybind.block_select_07.name = Kategoria/Wybór Bloku 7
|
||||||
|
keybind.block_select_08.name = Kategoria/Wybór Bloku 8
|
||||||
|
keybind.block_select_09.name = Kategoria/Wybór Bloku 9
|
||||||
|
keybind.block_select_10.name = Kategoria/Wybór Bloku 10
|
||||||
keybind.fullscreen.name = Przełącz Pełny Ekran
|
keybind.fullscreen.name = Przełącz Pełny Ekran
|
||||||
keybind.select.name = Zaznacz
|
keybind.select.name = Zaznacz
|
||||||
keybind.diagonal_placement.name = Budowa po skosie
|
keybind.diagonal_placement.name = Budowa po skosie
|
||||||
@@ -652,18 +699,16 @@ keybind.pick.name = Wybierz Blok
|
|||||||
keybind.break_block.name = Zniszcz Blok
|
keybind.break_block.name = Zniszcz Blok
|
||||||
keybind.deselect.name = Odznacz
|
keybind.deselect.name = Odznacz
|
||||||
keybind.shoot.name = Strzelanie
|
keybind.shoot.name = Strzelanie
|
||||||
keybind.zoom_hold.name = Inicjator przybliżania
|
|
||||||
keybind.zoom.name = Przybliżanie
|
keybind.zoom.name = Przybliżanie
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pauza
|
keybind.pause.name = Pauza
|
||||||
keybind.pause_building.name = Wstrzymaj/kontynuuj budowę
|
keybind.pause_building.name = Wstrzymaj/kontynuuj budowę
|
||||||
keybind.minimap.name = Minimapa
|
keybind.minimap.name = Minimapa
|
||||||
keybind.dash.name = Przyspieszenie
|
|
||||||
keybind.chat.name = Czat
|
keybind.chat.name = Czat
|
||||||
keybind.player_list.name = Lista graczy
|
keybind.player_list.name = Lista graczy
|
||||||
keybind.console.name = Konsola
|
keybind.console.name = Konsola
|
||||||
keybind.rotate.name = Obracanie
|
keybind.rotate.name = Obracanie
|
||||||
keybind.rotateplaced.name = Rotate Existing (Hold)
|
keybind.rotateplaced.name = Obróć istniejące (Trzymaj)
|
||||||
keybind.toggle_menus.name = Zmiana widoczności menu
|
keybind.toggle_menus.name = Zmiana widoczności menu
|
||||||
keybind.chat_history_prev.name = Przewiń wiadomości w górę
|
keybind.chat_history_prev.name = Przewiń wiadomości w górę
|
||||||
keybind.chat_history_next.name = Przewiń wiadomości w dół
|
keybind.chat_history_next.name = Przewiń wiadomości w dół
|
||||||
@@ -672,16 +717,18 @@ keybind.drop_unit.name = Wyrzucanie przedmiot
|
|||||||
keybind.zoom_minimap.name = Powiększenie mapy
|
keybind.zoom_minimap.name = Powiększenie mapy
|
||||||
mode.help.title = Opis trybów
|
mode.help.title = Opis trybów
|
||||||
mode.survival.name = Przeżycie
|
mode.survival.name = Przeżycie
|
||||||
mode.survival.description = Zwykły tryb. Limitowane surowce i fale przeciwników.
|
mode.survival.description = Zwykły tryb. Limitowane surowce i fale przeciwników.\n[gray]Wymaga spawnów wroga na mapie, aby móc grać na tym trybie.
|
||||||
mode.sandbox.name = Piaskownica
|
mode.sandbox.name = Piaskownica
|
||||||
mode.sandbox.description = Nieskończone surowce i fale bez odliczania.
|
mode.sandbox.description = Nieskończone surowce i fale bez odliczania.
|
||||||
mode.editor.name = Edytor
|
mode.editor.name = Edytor
|
||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = Walcz przeciwko innym graczom.
|
mode.pvp.description = Walcz przeciwko innym graczom.\n[gray]Wymaga co najmniej dwóch rdzeniów o róźnych kolorach na mapie, aby móc grać na tym trybie
|
||||||
mode.attack.name = Atak
|
mode.attack.name = Atak
|
||||||
mode.attack.description = Brak fal. Celem jest zniszczenie bazy przeciwnika.
|
mode.attack.description = Brak fal. Celem jest zniszczenie bazy przeciwnika.\n[gray]Wymaga czerwonego rdzenia na mapie, aby móc grać na tym trybie.
|
||||||
mode.custom = Własny tryb
|
mode.custom = Własny tryb
|
||||||
|
|
||||||
rules.infiniteresources = Nieskończone zasoby
|
rules.infiniteresources = Nieskończone zasoby
|
||||||
|
rules.reactorexplosions = Eksplozje reaktorów
|
||||||
rules.wavetimer = Zegar fal
|
rules.wavetimer = Zegar fal
|
||||||
rules.waves = Fale
|
rules.waves = Fale
|
||||||
rules.attack = Tryb ataku
|
rules.attack = Tryb ataku
|
||||||
@@ -692,13 +739,13 @@ rules.unithealthmultiplier = Mnożnik życia jednostek
|
|||||||
rules.playerhealthmultiplier = Mnożnik życia gracza
|
rules.playerhealthmultiplier = Mnożnik życia gracza
|
||||||
rules.playerdamagemultiplier = Mnożnik obrażeń gracza
|
rules.playerdamagemultiplier = Mnożnik obrażeń gracza
|
||||||
rules.unitdamagemultiplier = Mnożnik obrażeń jednostek
|
rules.unitdamagemultiplier = Mnożnik obrażeń jednostek
|
||||||
rules.enemycorebuildradius = Zasięg blokady budowy przy rdżeniu wroga:[LIGHT_GRAY] (kratki)
|
rules.enemycorebuildradius = Zasięg blokady budowy przy rdzeniu wroga:[lightgray] (kratki)
|
||||||
rules.respawntime = Czas odrodzenia:[LIGHT_GRAY] (sek)
|
rules.respawntime = Czas odrodzenia:[lightgray] (sek)
|
||||||
rules.wavespacing = Odstępy między falami:[LIGHT_GRAY] (sek)
|
rules.wavespacing = Odstępy między falami:[lightgray] (sek)
|
||||||
rules.buildcostmultiplier = Mnożnik kosztów budowania
|
rules.buildcostmultiplier = Mnożnik kosztów budowania
|
||||||
rules.buildspeedmultiplier = Mnożnik prędkości budowania
|
rules.buildspeedmultiplier = Mnożnik prędkości budowania
|
||||||
rules.waitForWaveToEnd = Fale czekają na przeciwników
|
rules.waitForWaveToEnd = Fale czekają na przeciwników
|
||||||
rules.dropzoneradius = Zasięg strefy zrzutu:[LIGHT_GRAY] (kratki)
|
rules.dropzoneradius = Zasięg strefy zrzutu:[lightgray] (kratki)
|
||||||
rules.respawns = Maksymalna ilośc odrodzeń na falę
|
rules.respawns = Maksymalna ilośc odrodzeń na falę
|
||||||
rules.limitedRespawns = Ogranicz Odrodzenia
|
rules.limitedRespawns = Ogranicz Odrodzenia
|
||||||
rules.title.waves = Fale
|
rules.title.waves = Fale
|
||||||
@@ -707,6 +754,10 @@ rules.title.resourcesbuilding = Zasoby i Budowanie
|
|||||||
rules.title.player = Gracze
|
rules.title.player = Gracze
|
||||||
rules.title.enemy = Przeciwnicy
|
rules.title.enemy = Przeciwnicy
|
||||||
rules.title.unit = Jednostki
|
rules.title.unit = Jednostki
|
||||||
|
rules.title.experimental = Eksperymentalne
|
||||||
|
rules.lighting = Oświetlenie
|
||||||
|
rules.ambientlight = Światła otoczenia
|
||||||
|
|
||||||
content.item.name = Przedmioty
|
content.item.name = Przedmioty
|
||||||
content.liquid.name = Płyny
|
content.liquid.name = Płyny
|
||||||
content.unit.name = Jednostki
|
content.unit.name = Jednostki
|
||||||
@@ -753,21 +804,22 @@ mech.trident-ship.name = Trójząb
|
|||||||
mech.trident-ship.weapon = Wnęka bombowa
|
mech.trident-ship.weapon = Wnęka bombowa
|
||||||
mech.glaive-ship.name = Glewia
|
mech.glaive-ship.name = Glewia
|
||||||
mech.glaive-ship.weapon = Zapalający Karabin
|
mech.glaive-ship.weapon = Zapalający Karabin
|
||||||
item.explosiveness = [LIGHT_GRAY]Wybuchowość: {0}
|
item.explosiveness = [lightgray]Wybuchowość: {0}
|
||||||
item.flammability = [LIGHT_GRAY]Palność: {0}
|
item.flammability = [lightgray]Palność: {0}
|
||||||
item.radioactivity = [LIGHT_GRAY]Promieniotwórczość: {0}
|
item.radioactivity = [lightgray]Promieniotwórczość: {0}
|
||||||
unit.health = [LIGHT_GRAY]Zdrowie: {0}
|
unit.health = [lightgray]Zdrowie: {0}
|
||||||
unit.speed = [LIGHT_GRAY]Prędkość: {0}
|
unit.speed = [lightgray]Prędkość: {0}
|
||||||
mech.weapon = [LIGHT_GRAY]Broń: {0}
|
mech.weapon = [lightgray]Broń: {0}
|
||||||
mech.health = [LIGHT_GRAY]Zdrowie: {0}
|
mech.health = [lightgray]Zdrowie: {0}
|
||||||
mech.itemcapacity = [LIGHT_GRAY]Pojemność przedmiotów: {0}
|
mech.itemcapacity = [lightgray]Pojemność przedmiotów: {0}
|
||||||
mech.minespeed = [LIGHT_GRAY]Prędkość kopania: {0}
|
mech.minespeed = [lightgray]Prędkość kopania: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Moc kopania: {0}
|
mech.minepower = [lightgray]Moc kopania: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Umiejętność: {0}
|
mech.ability = [lightgray]Umiejętność: {0}
|
||||||
mech.buildspeed = [LIGHT_GRAY]Szybkość Budowy: {0}%
|
mech.buildspeed = [lightgray]Szybkość Budowy: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Wytrzymałość na przegrzewanie: {0}
|
liquid.heatcapacity = [lightgray]Wytrzymałość na przegrzewanie: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Lepkość: {0}
|
liquid.viscosity = [lightgray]Lepkość: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
liquid.temperature = [lightgray]Temperatura: {0}
|
||||||
|
|
||||||
block.sand-boulder.name = Piaskowy Głaz
|
block.sand-boulder.name = Piaskowy Głaz
|
||||||
block.grass.name = Trawa
|
block.grass.name = Trawa
|
||||||
block.salt.name = Sól
|
block.salt.name = Sól
|
||||||
@@ -794,7 +846,7 @@ block.thruster.name = Silnik
|
|||||||
block.kiln.name = Wypalarka
|
block.kiln.name = Wypalarka
|
||||||
block.graphite-press.name = Grafitowa Prasa
|
block.graphite-press.name = Grafitowa Prasa
|
||||||
block.multi-press.name = Multi-Prasa
|
block.multi-press.name = Multi-Prasa
|
||||||
block.constructing = {0} [LIGHT_GRAY](Budowa)
|
block.constructing = {0} [lightgray](Budowa)
|
||||||
block.spawn.name = Spawn wrogów
|
block.spawn.name = Spawn wrogów
|
||||||
block.core-shard.name = Rdzeń: Odłamek
|
block.core-shard.name = Rdzeń: Odłamek
|
||||||
block.core-foundation.name = Rdzeń: Podstawa
|
block.core-foundation.name = Rdzeń: Podstawa
|
||||||
@@ -843,8 +895,8 @@ block.copper-wall.name = Miedziana Ściana
|
|||||||
block.copper-wall-large.name = Duża Miedziana Ściana
|
block.copper-wall-large.name = Duża Miedziana Ściana
|
||||||
block.titanium-wall.name = Tytanowa Ściana
|
block.titanium-wall.name = Tytanowa Ściana
|
||||||
block.titanium-wall-large.name = Duża Tytanowa Ściana
|
block.titanium-wall-large.name = Duża Tytanowa Ściana
|
||||||
block.plastanium-wall.name = Plastanium Wall
|
block.plastanium-wall.name = Ściana z Plastanu
|
||||||
block.plastanium-wall-large.name = Large Plastanium Wall
|
block.plastanium-wall-large.name = Duża Ściana z Plastanu
|
||||||
block.phase-wall.name = Fazowa Ściana
|
block.phase-wall.name = Fazowa Ściana
|
||||||
block.phase-wall-large.name = Duża Fazowa Ściana
|
block.phase-wall-large.name = Duża Fazowa Ściana
|
||||||
block.thorium-wall.name = Torowa Ściana
|
block.thorium-wall.name = Torowa Ściana
|
||||||
@@ -856,16 +908,18 @@ block.scorch.name = Płomień
|
|||||||
block.scatter.name = Flak
|
block.scatter.name = Flak
|
||||||
block.hail.name = Grad
|
block.hail.name = Grad
|
||||||
block.lancer.name = Lansjer
|
block.lancer.name = Lansjer
|
||||||
block.conveyor.name = Przenośnik
|
block.conveyor.name = Taśmociąg
|
||||||
block.titanium-conveyor.name = Przenośnik Tytanowy
|
block.titanium-conveyor.name = Taśmociąg Tytanowy
|
||||||
block.armored-conveyor.name = Przenośnik Opancerzony
|
block.armored-conveyor.name = Opancerzony Taśmociąg
|
||||||
block.armored-conveyor.description = Przesyła przedmioty z taką samą szybkością jak Przenośnik Tytanowy, ale jest bardziej odporny. Wejściami bocznymi mogą być tylko inne przenośniki.
|
block.armored-conveyor.description = Przesyła przedmioty z taką samą szybkością jak Przenośnik Tytanowy, ale jest bardziej odporny. Wejściami bocznymi mogą być tylko inne przenośniki.
|
||||||
block.junction.name = Węzeł
|
block.junction.name = Skrzyżowanie
|
||||||
block.router.name = Rozdzielacz
|
block.router.name = Rozdzielacz
|
||||||
block.distributor.name = Dystrybutor
|
block.distributor.name = Dystrybutor
|
||||||
block.sorter.name = Sortownik
|
block.sorter.name = Sortownik
|
||||||
block.inverted-sorter.name = Odwrotny Sortownik
|
block.inverted-sorter.name = Odwrotny Sortownik
|
||||||
block.message.name = Wiadomość
|
block.message.name = Wiadomość
|
||||||
|
block.illuminator.name = Illuminator
|
||||||
|
block.illuminator.description = Małe, kompaktowe i konfigurowane źródło światła. Wymaga energii do funkcjonowania.
|
||||||
block.overflow-gate.name = Brama Przepełnieniowa
|
block.overflow-gate.name = Brama Przepełnieniowa
|
||||||
block.silicon-smelter.name = Huta Krzemu
|
block.silicon-smelter.name = Huta Krzemu
|
||||||
block.phase-weaver.name = Fazowa Fabryka
|
block.phase-weaver.name = Fazowa Fabryka
|
||||||
@@ -876,9 +930,10 @@ block.incinerator.name = Spalacz
|
|||||||
block.spore-press.name = Prasa Zarodników
|
block.spore-press.name = Prasa Zarodników
|
||||||
block.separator.name = Rozdzielacz
|
block.separator.name = Rozdzielacz
|
||||||
block.coal-centrifuge.name = Wirówka węglowa
|
block.coal-centrifuge.name = Wirówka węglowa
|
||||||
block.power-node.name = Węzeł Prądu
|
block.power-node.name = Węzeł Prądowy
|
||||||
block.power-node-large.name = Duży Węzeł Prądu
|
block.power-node-large.name = Duży Węzeł Prądowy
|
||||||
block.surge-tower.name = Wieża Energetyczna
|
block.surge-tower.name = Wieża Energetyczna
|
||||||
|
block.diode.name = Dioda baterii
|
||||||
block.battery.name = Bateria
|
block.battery.name = Bateria
|
||||||
block.battery-large.name = Duża Bateria
|
block.battery-large.name = Duża Bateria
|
||||||
block.combustion-generator.name = Generator Spalinowy
|
block.combustion-generator.name = Generator Spalinowy
|
||||||
@@ -903,8 +958,8 @@ block.item-source.name = Źródło przedmiotów
|
|||||||
block.item-void.name = Próżnia przedmiotów
|
block.item-void.name = Próżnia przedmiotów
|
||||||
block.liquid-source.name = Źródło płynów
|
block.liquid-source.name = Źródło płynów
|
||||||
block.power-void.name = Próżnia prądu
|
block.power-void.name = Próżnia prądu
|
||||||
block.power-source.name = Nieskończony Prąd
|
block.power-source.name = Węzeł Nieskończonego Prądu
|
||||||
block.unloader.name = Ekstraktor
|
block.unloader.name = Wyładowywacz
|
||||||
block.vault.name = Magazyn
|
block.vault.name = Magazyn
|
||||||
block.wave.name = Strumień
|
block.wave.name = Strumień
|
||||||
block.swarmer.name = Działo Rojowe
|
block.swarmer.name = Działo Rojowe
|
||||||
@@ -931,14 +986,15 @@ block.fortress-factory.name = Fabryka Mechów Forteca
|
|||||||
block.revenant-factory.name = Fabryka Krążowników Zjawa
|
block.revenant-factory.name = Fabryka Krążowników Zjawa
|
||||||
block.repair-point.name = Punkt Napraw
|
block.repair-point.name = Punkt Napraw
|
||||||
block.pulse-conduit.name = Rura Pulsacyjna
|
block.pulse-conduit.name = Rura Pulsacyjna
|
||||||
|
block.plated-conduit.name = Opancerzona rura
|
||||||
block.phase-conduit.name = Rura Fazowa
|
block.phase-conduit.name = Rura Fazowa
|
||||||
block.liquid-router.name = Rozdzielacz Płynów
|
block.liquid-router.name = Rozdzielacz Płynów
|
||||||
block.liquid-tank.name = Zbiornik Płynów
|
block.liquid-tank.name = Zbiornik Płynów
|
||||||
block.liquid-junction.name = Łącznik Płynów
|
block.liquid-junction.name = Skrzyżowanie Rurowe
|
||||||
block.bridge-conduit.name = Most Płynów
|
block.bridge-conduit.name = Most Rurowy
|
||||||
block.rotary-pump.name = Wirowa Pompa
|
block.rotary-pump.name = Wirowa Pompa
|
||||||
block.thorium-reactor.name = Reaktor Torowy
|
block.thorium-reactor.name = Reaktor Torowy
|
||||||
block.mass-driver.name = Katapulta Masy
|
block.mass-driver.name = Katapulta Masowa
|
||||||
block.blast-drill.name = Wiertło Wybuchowe
|
block.blast-drill.name = Wiertło Wybuchowe
|
||||||
block.thermal-pump.name = Pompa Termalna
|
block.thermal-pump.name = Pompa Termalna
|
||||||
block.thermal-generator.name = Generator Termalny
|
block.thermal-generator.name = Generator Termalny
|
||||||
@@ -982,8 +1038,8 @@ unit.eradicator.name = Niszczyciel
|
|||||||
unit.lich.name = Obudzony
|
unit.lich.name = Obudzony
|
||||||
unit.reaper.name = Żniwiarz
|
unit.reaper.name = Żniwiarz
|
||||||
tutorial.next = [lightgray]<Kliknij, aby kontynuować>
|
tutorial.next = [lightgray]<Kliknij, aby kontynuować>
|
||||||
tutorial.intro = Wszedłeś do[scarlet] Samouczka Mindustry.[]\nZacznij od[accent] wydobycia miedzi[]. Aby to zrobić, dotknij żyły rudy miedzi w pobliżu rdzenia.\n\n[accent]{0}/{1} miedź
|
tutorial.intro = Wszedłeś do[scarlet] Samouczka Mindustry.[]\nUżyj [accent][[WASD][], aby poruszyć się.\n[accent]Przytrzymaj [[Ctrl] podczas przewijania[], aby przybliżyć i oddalić widok.\nZacznij od[accent] wydobycia miedzi[]. W tym celu przybliż się, a następnie dotknij żyły rudy miedzi w pobliżu rdzenia.\n\n[accent]{0}/{1} miedź
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = Wszedłeś do[scarlet] Samouczka Mindustry.[]\nPrzesuń palcem po ekranie, aby poruszyć się.\n[accent]Użyj dwóch palcy[], aby przybliżyć i oddalić widok.\nZacznij od[accent] wydobycia miedzi[]. W tym celu przybliż się, a następnie dotknij żyły rudy miedzi w pobliżu rdzenia.\n\n[accent]{0}/{1} miedź
|
||||||
tutorial.drill = Wydobywanie ręczne nie jest efektywne.\n[accent]Wiertła []mogą kopać automatycznie.\nKliknij zakładkę wiertła w prawym dolnym rogu.\nWybierz[accent] wiertło mechaniczne[]. Umieść go na złożu miedzi, klikając.\n[accent]Kliknij prawym przyciskiem myszy[], aby przestać budować.
|
tutorial.drill = Wydobywanie ręczne nie jest efektywne.\n[accent]Wiertła []mogą kopać automatycznie.\nKliknij zakładkę wiertła w prawym dolnym rogu.\nWybierz[accent] wiertło mechaniczne[]. Umieść go na złożu miedzi, klikając.\n[accent]Kliknij prawym przyciskiem myszy[], aby przestać budować.
|
||||||
tutorial.drill.mobile = Wydobywanie ręczne jest nieefektywne.\n[accent]Wiertła []mogą kopać automatycznie.\nDotknij zakładkę wiertła w prawym dolnym rogu.\nWybierz[accent] wiertło mechaniczne[].\nUmieść go na złożu miedzi poprzez Stuknięcie, potem wciśnij[accent] ptaszek[] na dole by potwierdzić wybór.\nNaciśnij przycisk[accent] X[] by anulować budowe.
|
tutorial.drill.mobile = Wydobywanie ręczne jest nieefektywne.\n[accent]Wiertła []mogą kopać automatycznie.\nDotknij zakładkę wiertła w prawym dolnym rogu.\nWybierz[accent] wiertło mechaniczne[].\nUmieść go na złożu miedzi poprzez Stuknięcie, potem wciśnij[accent] ptaszek[] na dole by potwierdzić wybór.\nNaciśnij przycisk[accent] X[] by anulować budowe.
|
||||||
tutorial.blockinfo = Każdy blok ma inne statystyki. Każde wiertło może kopać tylko wybrane rudy.\nBy sprawdzić informacje i statystyki bloku,[accent] kliknij przycisk "?" podczas jego wyboru w menu budowy.[]\n\n[accent]Sprawdź teraz statystyki mechanicznego wiertła.[]
|
tutorial.blockinfo = Każdy blok ma inne statystyki. Każde wiertło może kopać tylko wybrane rudy.\nBy sprawdzić informacje i statystyki bloku,[accent] kliknij przycisk "?" podczas jego wyboru w menu budowy.[]\n\n[accent]Sprawdź teraz statystyki mechanicznego wiertła.[]
|
||||||
@@ -1002,12 +1058,13 @@ tutorial.deposit = Włóż przedmioty do bloków poprzez przeciągnięcie z twoj
|
|||||||
tutorial.waves = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdżeń przez 2 fale.[accent] Kliknij[] by strzelać.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
|
tutorial.waves = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdżeń przez 2 fale.[accent] Kliknij[] by strzelać.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
|
||||||
tutorial.waves.mobile = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdzeń przez 2 fale. Twój statek będzie automatycznie atakował wrogów.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
|
tutorial.waves.mobile = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdzeń przez 2 fale. Twój statek będzie automatycznie atakował wrogów.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
|
||||||
tutorial.launch = Kiedy dotrzesz do określonej fali, masz możliwość[accent] wystrzelenia rdzenia[], pozostawiając struktury obronne za sobą i[accent] otrzymując wszystkie surowce znajdujące się w rdzeniu.[]\nSurowce te mogą potem zostać użyte do odkrywania nowych technologii.\n\n[accent]Naciśnij przycisk Wystrzału.
|
tutorial.launch = Kiedy dotrzesz do określonej fali, masz możliwość[accent] wystrzelenia rdzenia[], pozostawiając struktury obronne za sobą i[accent] otrzymując wszystkie surowce znajdujące się w rdzeniu.[]\nSurowce te mogą potem zostać użyte do odkrywania nowych technologii.\n\n[accent]Naciśnij przycisk Wystrzału.
|
||||||
|
|
||||||
item.copper.description = Przydatny materiał budowlany. Szeroko używany w prawie każdej konstrukcji.
|
item.copper.description = Przydatny materiał budowlany. Szeroko używany w prawie każdej konstrukcji.
|
||||||
item.lead.description = Podstawowy matriał. Używany w przesyle przemiotów i płynów. Nie jest on przypadkiem szkodliwy?
|
item.lead.description = Podstawowy materiał. Używany w przesyle przemiotów i płynów. Nie jest on przypadkiem szkodliwy?
|
||||||
item.metaglass.description = Wyjątkowo wytrzymały stop szkła. Szeroko używany w transporcie i przechowywaniu płynów.
|
item.metaglass.description = Wyjątkowo wytrzymały stop szkła. Szeroko używany w transporcie i przechowywaniu płynów.
|
||||||
item.graphite.description = Zmineralizowany węgiel, wykorzystywany do amunicji i izolacji elektrycznej.
|
item.graphite.description = Zmineralizowany węgiel, wykorzystywany do amunicji i izolacji elektrycznej.
|
||||||
item.sand.description = Zwykły materiał używany pospolicie w przepalaniu, stopach i jako topnik. Dostanie piaskiem po oczach nie jest przyjemne.
|
item.sand.description = Zwykły materiał używany pospolicie w przepalaniu, stopach i jako topnik. Dostanie piaskiem po oczach nie jest przyjemne.
|
||||||
item.coal.description = Zwykły i łatwo dostępny materiał energetyczny.
|
item.coal.description = Zwykły i łatwo dostępny materiał energetyczny. Używany powszechnie jako paliwo oraz w produkcji surowców.
|
||||||
item.titanium.description = Rzadki i bardzo lekki materiał. Używany w bardzo zaawansowanym przewodnictwie, wiertłach i samolotach. Poczuj się jak Tytan!
|
item.titanium.description = Rzadki i bardzo lekki materiał. Używany w bardzo zaawansowanym przewodnictwie, wiertłach i samolotach. Poczuj się jak Tytan!
|
||||||
item.thorium.description = Zwarty i radioaktywny materiał używany w strukturach i paliwie nuklearnym. Nie trzymaj go w rękach!
|
item.thorium.description = Zwarty i radioaktywny materiał używany w strukturach i paliwie nuklearnym. Nie trzymaj go w rękach!
|
||||||
item.scrap.description = Pozostałości starych budynków i jednostek. Składa się z małej ilości wszystkiego.
|
item.scrap.description = Pozostałości starych budynków i jednostek. Składa się z małej ilości wszystkiego.
|
||||||
@@ -1021,7 +1078,7 @@ item.pyratite.description = Niesamowicie palny związek używany w zbrojeniu. Ni
|
|||||||
liquid.water.description = Powszechnie używana do schładzania budowli i przetwarzania odpadów.
|
liquid.water.description = Powszechnie używana do schładzania budowli i przetwarzania odpadów.
|
||||||
liquid.slag.description = Wiele różnych metali stopionych i zmieszanych razem. Może zostać rozdzielony na jego metale składowe, albo wystrzelony w wrogie jednostki i użyty jako broń.
|
liquid.slag.description = Wiele różnych metali stopionych i zmieszanych razem. Może zostać rozdzielony na jego metale składowe, albo wystrzelony w wrogie jednostki i użyty jako broń.
|
||||||
liquid.oil.description = Używany w do produkcji złożonych materiałów. Może zostać przetworzony na węgiel, lub wystrzelony w wrogów przez wieżyczke.
|
liquid.oil.description = Używany w do produkcji złożonych materiałów. Może zostać przetworzony na węgiel, lub wystrzelony w wrogów przez wieżyczke.
|
||||||
liquid.cryofluid.description = Najefektywniejsza ciecz do schładzania budowli.
|
liquid.cryofluid.description = Obojętna, niekorozyjna ciecz utworzona z wody i tytanu
|
||||||
mech.alpha-mech.description = Standardowy mech. Bazuje na jednostce Nóż, z ulepszonym pancerzem i zdolnością budowania. Zadaje więcej obrażeń niż Strzałka.
|
mech.alpha-mech.description = Standardowy mech. Bazuje na jednostce Nóż, z ulepszonym pancerzem i zdolnością budowania. Zadaje więcej obrażeń niż Strzałka.
|
||||||
mech.delta-mech.description = Szybki, lekko opancerzony mech stworzony do ataków typu uderz i uciekaj. Zadaje niewielkie obrażenia strukturom, lecz może bardzo szybko niszczyć spore grupy jednostek wroga przy pomocy jego działek tesli.
|
mech.delta-mech.description = Szybki, lekko opancerzony mech stworzony do ataków typu uderz i uciekaj. Zadaje niewielkie obrażenia strukturom, lecz może bardzo szybko niszczyć spore grupy jednostek wroga przy pomocy jego działek tesli.
|
||||||
mech.tau-mech.description = Mech wsparcia. Naprawia budynki drużyny, strzelając w nie. Potrafi wygasić niedalekie pożary i uleczyć bliskich przyjaciół.
|
mech.tau-mech.description = Mech wsparcia. Naprawia budynki drużyny, strzelając w nie. Potrafi wygasić niedalekie pożary i uleczyć bliskich przyjaciół.
|
||||||
@@ -1038,7 +1095,7 @@ unit.crawler.description = Jednostka naziemna składająca się z rozebranej ram
|
|||||||
unit.titan.description = Zaawansowana, opancerzona jednostka naziemna. Atakuje zarówno cele naziemne, jak i powietrzne. Wyposażony w dwa miniaturowe miotacze ognia typu Płomień.
|
unit.titan.description = Zaawansowana, opancerzona jednostka naziemna. Atakuje zarówno cele naziemne, jak i powietrzne. Wyposażony w dwa miniaturowe miotacze ognia typu Płomień.
|
||||||
unit.fortress.description = Ciężki mech artyleryjski. Wyposażony w dwa zmodyfikowane działa typu gradowego do ataku na dalekie odległości na konstrukcje i jednostki wroga.
|
unit.fortress.description = Ciężki mech artyleryjski. Wyposażony w dwa zmodyfikowane działa typu gradowego do ataku na dalekie odległości na konstrukcje i jednostki wroga.
|
||||||
unit.eruptor.description = Ciężki mech stworzony do niszczenia struktur. Strzela wiązką żużlu w kierunku fortyfikacji wroga, Topiąc je oraz podpalając łatwopalne przedmioty.
|
unit.eruptor.description = Ciężki mech stworzony do niszczenia struktur. Strzela wiązką żużlu w kierunku fortyfikacji wroga, Topiąc je oraz podpalając łatwopalne przedmioty.
|
||||||
unit.wraith.description = Szybka jednostka, stosuje taktyke uderz-uciekaj Namierza jakiekolwiek źródło prądu.
|
unit.wraith.description = Szybka jednostka, stosuje taktykę uderz-uciekaj. Namierza jakiekolwiek źródło prądu.
|
||||||
unit.ghoul.description = Ciężki bombowiec dywanowy. Rozdziera struktury wroga, atakując krytyczną infrastrukturę.
|
unit.ghoul.description = Ciężki bombowiec dywanowy. Rozdziera struktury wroga, atakując krytyczną infrastrukturę.
|
||||||
unit.revenant.description = Ciężka, unosząca sie platforma z rakietami.
|
unit.revenant.description = Ciężka, unosząca sie platforma z rakietami.
|
||||||
block.message.description = Przechowuje wiadomość. Wykorzystywane do komunikacji pomiędzy sojusznikami.
|
block.message.description = Przechowuje wiadomość. Wykorzystywane do komunikacji pomiędzy sojusznikami.
|
||||||
@@ -1078,8 +1135,8 @@ block.surge-wall-large.description = Ekstremalnie wytrzymały blok obronny.\nMa
|
|||||||
block.door.description = Małe drzwi, które można otwierać i zamykać, klikając na nie.\nJeśli są otwarte, wrogowie mogą strzelać i się przemieszczać przez nie.
|
block.door.description = Małe drzwi, które można otwierać i zamykać, klikając na nie.\nJeśli są otwarte, wrogowie mogą strzelać i się przemieszczać przez nie.
|
||||||
block.door-large.description = Duże drzwi, które można otwierać i zamykać, klikając na nie.\nJeśli są otwarte, wrogowie mogą strzelać i się przemieszczać przez nie.\nObejmuje wiele kratek.
|
block.door-large.description = Duże drzwi, które można otwierać i zamykać, klikając na nie.\nJeśli są otwarte, wrogowie mogą strzelać i się przemieszczać przez nie.\nObejmuje wiele kratek.
|
||||||
block.mender.description = Co jakiś czas naprawia bloki w zasięgu. Utrzymuje struktury obronne w dobrym stanie.\nOpcjonalnie używa silikonu do zwiększenia zasięgu i szybkości naprawy.
|
block.mender.description = Co jakiś czas naprawia bloki w zasięgu. Utrzymuje struktury obronne w dobrym stanie.\nOpcjonalnie używa silikonu do zwiększenia zasięgu i szybkości naprawy.
|
||||||
block.mend-projector.description = Co jakiś czas naprawia bloki w zasięgu. Lepsza wersja naprawiacza.
|
block.mend-projector.description = Ulepszona wersja Naprawiacza. Naprawia bloki w jego otoczeniu.\nMoże wykorzystywać włókno fazowe, aby zwiększyć efektywność budowli.
|
||||||
block.overdrive-projector.description = Zwiększa szybkość budynków w zasięgu takich jak wiertła czy przenośniki.
|
block.overdrive-projector.description = Zwiększa szybkość budynków w zasięgu takich jak wiertła czy przenośniki. Może wykorzystywać włókno fazowe, aby zwiększyć zasięg i efektywność budowli.
|
||||||
block.force-projector.description = Wytwarza pole siłowe w kształcie sześciokąta wokół siebie, chroniąc budynki i jednostki wewnątrz od obrażeń zadanych przez pociski.
|
block.force-projector.description = Wytwarza pole siłowe w kształcie sześciokąta wokół siebie, chroniąc budynki i jednostki wewnątrz od obrażeń zadanych przez pociski.
|
||||||
block.shock-mine.description = Zadaje obrażenia jednostkom wroga którzy na nią wejdą. Ledwo widoczne dla wrogów.
|
block.shock-mine.description = Zadaje obrażenia jednostkom wroga którzy na nią wejdą. Ledwo widoczne dla wrogów.
|
||||||
block.conveyor.description = Podstawowy blok transportowy dla przedmiotów. Automatycznie przesyła przedmioty naprzód do działek oraz maszyn. Można obrócić.
|
block.conveyor.description = Podstawowy blok transportowy dla przedmiotów. Automatycznie przesyła przedmioty naprzód do działek oraz maszyn. Można obrócić.
|
||||||
@@ -1088,7 +1145,7 @@ block.junction.description = Używany jako most dla dwóch krzyżujących się p
|
|||||||
block.bridge-conveyor.description = Zaawansowany blok transportujący. Pozwala na przenoszenie przedmiotów nawet do 3 bloków na każdym terenie, przez każdy budynek.
|
block.bridge-conveyor.description = Zaawansowany blok transportujący. Pozwala na przenoszenie przedmiotów nawet do 3 bloków na każdym terenie, przez każdy budynek.
|
||||||
block.phase-conveyor.description = Zaawansowany blok transportowy dla przedmiotów. Używa energii do teleportacji przedmiotów do połączonego transportera fazowego na spore odległości.
|
block.phase-conveyor.description = Zaawansowany blok transportowy dla przedmiotów. Używa energii do teleportacji przedmiotów do połączonego transportera fazowego na spore odległości.
|
||||||
block.sorter.description = Sortuje przedmioty. Jeśli przedmiot pasuje to przechodzi dalej, jeśli nie - to przechodzi na boki.
|
block.sorter.description = Sortuje przedmioty. Jeśli przedmiot pasuje to przechodzi dalej, jeśli nie - to przechodzi na boki.
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = Sortuje przedmioty jak zwykły sortownik, ale odpowiednie surowce wyciągane są na boki.
|
||||||
block.router.description = Akceptuje przedmioty z jednego miejsca i rozdziela je do trzech innych kierunków. Przydatne w rozdzielaniu materiałów z jednego źródła do wielu celów.
|
block.router.description = Akceptuje przedmioty z jednego miejsca i rozdziela je do trzech innych kierunków. Przydatne w rozdzielaniu materiałów z jednego źródła do wielu celów.
|
||||||
block.distributor.description = Zaawansowany rozdzielacz, rozdzielający przedmioty do 7 innych kierunków.
|
block.distributor.description = Zaawansowany rozdzielacz, rozdzielający przedmioty do 7 innych kierunków.
|
||||||
block.overflow-gate.description = Rozdzielacz, który przerzuca przedmioty, kiedy główna droga jest przepełniona
|
block.overflow-gate.description = Rozdzielacz, który przerzuca przedmioty, kiedy główna droga jest przepełniona
|
||||||
@@ -1098,6 +1155,7 @@ block.rotary-pump.description = Zaawansowana pompa. Pompuje więcej cieczy, ale
|
|||||||
block.thermal-pump.description = Najlepsza pompa. Trzy razy szybsza od mechanicznej pompy i jedyna, która może wypompować lawę.
|
block.thermal-pump.description = Najlepsza pompa. Trzy razy szybsza od mechanicznej pompy i jedyna, która może wypompować lawę.
|
||||||
block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami.
|
block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami.
|
||||||
block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury.
|
block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury.
|
||||||
|
block.plated-conduit.description = Przesyła ciecze z taką samą szybkością co rura tytanowa, ale jest bardziej odporna. Wejściami bocznymi mogą być tylko inne rury.\nWycieka z niej mniej cieczy.
|
||||||
block.liquid-router.description = Akceptuje płyny z jednego kierunku i wyprowadza je po równo do trzech innych kierunków. Może również przechowywać pewną ilość płynu. Przydatne do dzielenia płynów z jednego źródła do wielu celów.
|
block.liquid-router.description = Akceptuje płyny z jednego kierunku i wyprowadza je po równo do trzech innych kierunków. Może również przechowywać pewną ilość płynu. Przydatne do dzielenia płynów z jednego źródła do wielu celów.
|
||||||
block.liquid-tank.description = Magazynuje duże ilości cieczy. Użyj go do stworzenia buforu, gdy występuje różne zapotrzebowanie na materiały lub jako zabezpieczenie dla chłodzenia ważnych bloków.
|
block.liquid-tank.description = Magazynuje duże ilości cieczy. Użyj go do stworzenia buforu, gdy występuje różne zapotrzebowanie na materiały lub jako zabezpieczenie dla chłodzenia ważnych bloków.
|
||||||
block.liquid-junction.description = Działa jak most dla dwóch krzyżujących się rur. Przydatne w sytuacjach, kiedy dwie rury mają różne ciecze do różnych lokacji.
|
block.liquid-junction.description = Działa jak most dla dwóch krzyżujących się rur. Przydatne w sytuacjach, kiedy dwie rury mają różne ciecze do różnych lokacji.
|
||||||
@@ -1106,6 +1164,7 @@ block.phase-conduit.description = Zaawansowany blok do przenoszenia cieczy. Uży
|
|||||||
block.power-node.description = Przesyła moc do połączonych węzłów. Można podłączyć do czterech źródeł zasilania, zlewów lub węzłów. Zasila też bloki które go dotykają.
|
block.power-node.description = Przesyła moc do połączonych węzłów. Można podłączyć do czterech źródeł zasilania, zlewów lub węzłów. Zasila też bloki które go dotykają.
|
||||||
block.power-node-large.description = Posiada większy zasięg niż zwykły węzeł prądu. Można podłączyć do sześciu źródeł zasilania, zlewów lub węzłów.
|
block.power-node-large.description = Posiada większy zasięg niż zwykły węzeł prądu. Można podłączyć do sześciu źródeł zasilania, zlewów lub węzłów.
|
||||||
block.surge-tower.description = Węzęł prądu z bardzo dużym zasięgiem, posiadający mniej możliwych podłączeń.
|
block.surge-tower.description = Węzęł prądu z bardzo dużym zasięgiem, posiadający mniej możliwych podłączeń.
|
||||||
|
block.diode.description = Prąd baterii może tylko przepłynąc przez ten blok w jedną strone, jeśli druga strona ma mniej prądu.
|
||||||
block.battery.description = Przechowuje energię przy nadwyżce produkcji oraz dostarcza energię kiedy jest jej brak, dopóki jest w niej miejsce.
|
block.battery.description = Przechowuje energię przy nadwyżce produkcji oraz dostarcza energię kiedy jest jej brak, dopóki jest w niej miejsce.
|
||||||
block.battery-large.description = Przechowuje o wiele wiecej prądu niż standardowa bateria.
|
block.battery-large.description = Przechowuje o wiele wiecej prądu niż standardowa bateria.
|
||||||
block.combustion-generator.description = Wytwarza energię poprzez spalanie łatwopalnych materiałów.
|
block.combustion-generator.description = Wytwarza energię poprzez spalanie łatwopalnych materiałów.
|
||||||
@@ -1121,14 +1180,14 @@ block.mechanical-drill.description = Tanie wiertło. Kiedy zostanie zbudowane na
|
|||||||
block.pneumatic-drill.description = Ulepszone wiertło, które jest szybsze i może wykopywać twardsze surowce przy użyciu ciśnienia.
|
block.pneumatic-drill.description = Ulepszone wiertło, które jest szybsze i może wykopywać twardsze surowce przy użyciu ciśnienia.
|
||||||
block.laser-drill.description = Pozwala kopać jeszcze szybciej poprzez technologię laserową, ale wymaga energii. Zdolne do wydobywania toru.
|
block.laser-drill.description = Pozwala kopać jeszcze szybciej poprzez technologię laserową, ale wymaga energii. Zdolne do wydobywania toru.
|
||||||
block.blast-drill.description = Najlepsze wiertło. Wymaga dużych ilości energii.
|
block.blast-drill.description = Najlepsze wiertło. Wymaga dużych ilości energii.
|
||||||
block.water-extractor.description = Wydobywa wodę z ziemi. Użyj go, gdy w pobliżu nie ma jeziora.
|
block.water-extractor.description = Wydobywa wodę z ziemi. Użyj go, gdy w pobliżu brakuje wody.
|
||||||
block.cultivator.description = Uprawia małe skupiska zarodników i umieszcza je w gotowych do dalszego przetwarzania kapsułach.
|
block.cultivator.description = Uprawia małe skupiska zarodników i umieszcza je w gotowych do dalszego przetwarzania kapsułach.
|
||||||
block.oil-extractor.description = Używa bardzo dużych ilości energii do ekstrakcji ropy z piasku. Używaj go w sytuacji kiedy nie ma bezpośredniego źródła ropy w okolicy.
|
block.oil-extractor.description = Używa bardzo dużych ilości energii do ekstrakcji ropy z piasku. Używaj go w sytuacji kiedy nie ma bezpośredniego źródła ropy w okolicy.
|
||||||
block.core-shard.description = Pierwsza wersja rdzenia. Gdy zostaje zniszczony, wszelki kontakt do regionu zostaje utracony. Nie pozwól na to.
|
block.core-shard.description = Pierwsza wersja rdzenia. Gdy zostaje zniszczony, wszelki kontakt do regionu zostaje utracony. Nie pozwól na to.
|
||||||
block.core-foundation.description = Druga wersja rdzenia. Lepiej opancerzony. Przechowuje więcej surowców.
|
block.core-foundation.description = Druga wersja rdzenia. Lepiej opancerzony. Przechowuje więcej surowców.
|
||||||
block.core-nucleus.description = Trzecia i ostatnia wersja rdzenia. Bardzo dobrze opanczerzony. Przechowuje ogromne ilości surowców.
|
block.core-nucleus.description = Trzecia i ostatnia wersja rdzenia. Bardzo dobrze opanczerzony. Przechowuje ogromne ilości surowców.
|
||||||
block.vault.description = Przechowuje duże ilości przedmiotów każdego rodzaju. [LIGHT_GRAY] Ekstraktor[] może zostać użyty do rozładowania magazynu.
|
block.vault.description = Przechowuje duże ilości przedmiotów każdego rodzaju. Użyj ekstraktora, aby rozładować magazyn.
|
||||||
block.container.description = Przechowuje małe ilości przedmiotów każdego rodzaju. [LIGHT_GRAY] ekstraktor[] może zostać użyty do rozładowania kontenera.
|
block.container.description = Przechowuje małe ilości przedmiotów każdego rodzaju. Użyj ekstraktora, aby rozładować kontener.
|
||||||
block.unloader.description = Wyciąga przedmioty z kontenera, magazynu oraz rdżenia na przenośniki lub bezpośrednio na przyległe bloki. Typ przedmiotu jaki zostanie wyciągniety może zostać zmieniony poprzez kliknięcie.
|
block.unloader.description = Wyciąga przedmioty z kontenera, magazynu oraz rdżenia na przenośniki lub bezpośrednio na przyległe bloki. Typ przedmiotu jaki zostanie wyciągniety może zostać zmieniony poprzez kliknięcie.
|
||||||
block.launch-pad.description = Wysyła pakiety przedmiotów bez potrzeby wystrzeliwania rdżenia. Niedokończona.
|
block.launch-pad.description = Wysyła pakiety przedmiotów bez potrzeby wystrzeliwania rdżenia. Niedokończona.
|
||||||
block.launch-pad-large.description = Ulepszona wersja wyrzutni. Magazynuje więcej przedmiotów. Wysyła częściej.
|
block.launch-pad-large.description = Ulepszona wersja wyrzutni. Magazynuje więcej przedmiotów. Wysyła częściej.
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Pegar bloco
|
|||||||
keybind.break_block.name = Quebrar bloco
|
keybind.break_block.name = Quebrar bloco
|
||||||
keybind.deselect.name = Deselecionar
|
keybind.deselect.name = Deselecionar
|
||||||
keybind.shoot.name = Atirar
|
keybind.shoot.name = Atirar
|
||||||
keybind.zoom_hold.name = segurar_zoom
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pausar
|
keybind.pause.name = Pausar
|
||||||
|
|||||||
@@ -10,20 +10,24 @@ link.dev-builds.description = Desenvolvimentos instáveis
|
|||||||
link.trello.description = Trello oficial para atualizações planejadas
|
link.trello.description = Trello oficial para atualizações planejadas
|
||||||
link.itch.io.description = Página da Itch.io com os downloads
|
link.itch.io.description = Página da Itch.io com os downloads
|
||||||
link.google-play.description = Página da google play store
|
link.google-play.description = Página da google play store
|
||||||
|
link.f-droid.description = Listamento de catalogo do F-Droide
|
||||||
link.wiki.description = Wiki oficial do Mindustry
|
link.wiki.description = Wiki oficial do Mindustry
|
||||||
linkfail = Falha ao abrir o link\nO Url foi copiado
|
linkfail = Falha ao abrir o link\nO Url foi copiado para a área de transferência.
|
||||||
screenshot = Screenshot salvo para {0}
|
screenshot = Screenshot salvo para {0}
|
||||||
screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura de tela.
|
screenshot.invalid = Mapa grande demais, Voce pode estar potencialmente sem memória suficiente para captura de tela.
|
||||||
gameover = O núcleo foi destruído.
|
gameover = O núcleo foi destruído.
|
||||||
gameover.pvp = O time[accent] {0}[] ganhou!
|
gameover.pvp = O time[accent] {0}[] ganhou!
|
||||||
highscore = [YELLOW]Novo recorde!
|
highscore = [YELLOW]Novo recorde!
|
||||||
copied = Copiado
|
copied = Copiado
|
||||||
|
|
||||||
load.sound = Sons
|
load.sound = Sons
|
||||||
load.map = Mapas
|
load.map = Mapas
|
||||||
load.image = Imagens
|
load.image = Imagens
|
||||||
load.content = Conteúdo
|
load.content = Conteúdo
|
||||||
load.system = Sistema
|
load.system = Sistema
|
||||||
load.mod = Mods
|
load.mod = Mods
|
||||||
|
load.scripts = Scripts
|
||||||
|
|
||||||
schematic = Esquema
|
schematic = Esquema
|
||||||
schematic.add = Salvar Esquema...
|
schematic.add = Salvar Esquema...
|
||||||
schematics = Esquemas
|
schematics = Esquemas
|
||||||
@@ -38,8 +42,9 @@ schematic.shareworkshop = Compartilhar na Oficina
|
|||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Virar o Esquema
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Virar o Esquema
|
||||||
schematic.saved = Esquema salvo.
|
schematic.saved = Esquema salvo.
|
||||||
schematic.delete.confirm = Esse Esquema será totalmente erradicado.
|
schematic.delete.confirm = Esse Esquema será totalmente erradicado.
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = Renomear esquema
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} blocos
|
||||||
|
|
||||||
stat.wave = Hordas derrotadas:[accent] {0}
|
stat.wave = Hordas derrotadas:[accent] {0}
|
||||||
stat.enemiesDestroyed = Inimigos Destruídos:[accent] {0}
|
stat.enemiesDestroyed = Inimigos Destruídos:[accent] {0}
|
||||||
stat.built = Construções construídas:[accent] {0}
|
stat.built = Construções construídas:[accent] {0}
|
||||||
@@ -47,6 +52,7 @@ stat.destroyed = Construções destruídas:[accent] {0}
|
|||||||
stat.deconstructed = Construções desconstruídas:[accent] {0}
|
stat.deconstructed = Construções desconstruídas:[accent] {0}
|
||||||
stat.delivered = Recursos lançados:
|
stat.delivered = Recursos lançados:
|
||||||
stat.rank = Classificação Final: [accent]{0}
|
stat.rank = Classificação Final: [accent]{0}
|
||||||
|
|
||||||
launcheditems = [accent]Itens lançados
|
launcheditems = [accent]Itens lançados
|
||||||
launchinfo = [unlaunched][[LANCE] seu núcleo para obter os itens indicados em azul.
|
launchinfo = [unlaunched][[LANCE] seu núcleo para obter os itens indicados em azul.
|
||||||
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
|
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
|
||||||
@@ -74,6 +80,7 @@ maps.browse = Pesquisar mapas
|
|||||||
continue = Continuar
|
continue = Continuar
|
||||||
maps.none = [LIGHT_GRAY]Nenhum Mapa Encontrado!
|
maps.none = [LIGHT_GRAY]Nenhum Mapa Encontrado!
|
||||||
invalid = Inválido
|
invalid = Inválido
|
||||||
|
pickcolor = Escolher Cor
|
||||||
preparingconfig = Preparando configuração
|
preparingconfig = Preparando configuração
|
||||||
preparingcontent = Preparando conteúdo
|
preparingcontent = Preparando conteúdo
|
||||||
uploadingcontent = Fazendo upload do conteúdo
|
uploadingcontent = Fazendo upload do conteúdo
|
||||||
@@ -81,6 +88,7 @@ uploadingpreviewfile = Fazendo upload do arquivo de pré-visualização
|
|||||||
committingchanges = Enviando mudanças
|
committingchanges = Enviando mudanças
|
||||||
done = Feito
|
done = Feito
|
||||||
feature.unsupported = Seu dispositivo não suporta essa função.
|
feature.unsupported = Seu dispositivo não suporta essa função.
|
||||||
|
|
||||||
mods.alphainfo = Mantenha em mente que os mods estão em Alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry.
|
mods.alphainfo = Mantenha em mente que os mods estão em Alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
@@ -90,20 +98,27 @@ mods.report = Reportar um Bug
|
|||||||
mods.openfolder = Abrir pasta de Mods
|
mods.openfolder = Abrir pasta de Mods
|
||||||
mod.enabled = [lightgray]Ativado
|
mod.enabled = [lightgray]Ativado
|
||||||
mod.disabled = [scarlet]Desativado
|
mod.disabled = [scarlet]Desativado
|
||||||
mod.disable = Desativar
|
mod.disable = Desati-\nvar
|
||||||
mod.delete.error = Incapaz de deletar o Mod. O arquivo talvez esteja em uso.
|
mod.delete.error = Incapaz de deletar o Mod. O arquivo talvez esteja em uso.
|
||||||
|
mod.requiresversion = [scarlet]Requer no mínimo versão [accent]{0} [scarlet]do jogo.
|
||||||
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
|
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
|
||||||
|
mod.erroredcontent = [scarlet]Erros no Conteúdo
|
||||||
|
mod.errors = Erros ocorreram ao carregar o conteúdo.
|
||||||
|
mod.noerrorplay = [scarlet]Você tem mods com erros.[] Desative os mods afetados ou conserte os erros antes de jogar.
|
||||||
mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes:[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
|
mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes:[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
|
||||||
mod.enable = Ativar
|
mod.enable = Ativar
|
||||||
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do Mod.
|
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do Mod.
|
||||||
mod.reloadrequired = [scarlet]Recarregamento necessário
|
mod.reloadrequired = [scarlet]Recarregamento necessário
|
||||||
mod.import = Importar Mod
|
mod.import = Importar Mod
|
||||||
mod.import.github = Importar Mod do GitHub
|
mod.import.github = Importar Mod do GitHub
|
||||||
mod.remove.confirm = Esse Mod será deletado.
|
mod.item.remove = Este item é parte do mod[accent] '{0}'[]. Para removê-lo, desinstale esse mod.
|
||||||
|
mod.remove.confirm = Este mod será deletado.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. O jogo salvo pode se corromper. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
|
mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. Pode ocorrer uma corrupção no salvamento. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Antes de publicar esse mod na Oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do Mod e tente novamente.
|
mod.preview.missing = Antes de publicar esse mod na Oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do Mod e tente novamente.
|
||||||
mod.folder.missing = Somente Mods no formato de pasta serão publicados na Oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os Mods.
|
mod.folder.missing = Somente Mods no formato de pasta serão publicados na Oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os Mods.
|
||||||
|
mod.scripts.unsupported = Seu dispositivo não suporta scripts de mods. Alguns mods não funcionarão corretamente.
|
||||||
|
|
||||||
about.button = Sobre
|
about.button = Sobre
|
||||||
name = Nome:
|
name = Nome:
|
||||||
noname = Escolha[accent] um nome[] primeiro.
|
noname = Escolha[accent] um nome[] primeiro.
|
||||||
@@ -180,9 +195,9 @@ disconnect.data = Falha ao abrir os dados do mundo!
|
|||||||
cantconnect = Impossível conectar ([accent]{0}[]).
|
cantconnect = Impossível conectar ([accent]{0}[]).
|
||||||
connecting = [accent]Conectando...
|
connecting = [accent]Conectando...
|
||||||
connecting.data = [accent]Carregando dados do mundo...
|
connecting.data = [accent]Carregando dados do mundo...
|
||||||
server.port = Porte:
|
server.port = Port:
|
||||||
server.addressinuse = Senha em uso!
|
server.addressinuse = Senha em uso!
|
||||||
server.invalidport = Numero de porta invalido!
|
server.invalidport = Numero de port inválido!
|
||||||
server.error = [crimson]Erro ao hospedar o servidor: [accent]{0}
|
server.error = [crimson]Erro ao hospedar o servidor: [accent]{0}
|
||||||
save.new = Novo salvamento
|
save.new = Novo salvamento
|
||||||
save.overwrite = Você tem certeza que quer sobrescrever este salvamento?
|
save.overwrite = Você tem certeza que quer sobrescrever este salvamento?
|
||||||
@@ -264,13 +279,14 @@ workshop.error = Erro buscando os detalhes da Oficina: {0}
|
|||||||
map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
|
map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
|
||||||
workshop.menu = Selecione oquê você gostaria de fazer com esse Item.
|
workshop.menu = Selecione oquê você gostaria de fazer com esse Item.
|
||||||
workshop.info = Informação do Item
|
workshop.info = Informação do Item
|
||||||
changelog = Changelog (optional):
|
changelog = Mudanças (opcional):
|
||||||
eula = EULA da Steam
|
eula = EULA da Steam
|
||||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
missing = Este item foi deletado ou movido.\n[lightgray]O listamento da oficina foi automaticamente des-ligado.
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]Publicando...
|
||||||
publish.confirm = você tem certeza de que quer publicar isso?\n\n[lightgray]Primeiramente tenha certeza de que você concorda com o EULA da Oficina, ou seus itens não irão aparecer!
|
publish.confirm = Você tem certeza de que quer publicar isso?\n\n[lightgray]Primeiramente tenha certeza de que você concorda com o EULA da Oficina, ou seus itens não irão aparecer!
|
||||||
publish.error = Erro publicando o Item: {0}
|
publish.error = Erro publicando o Item: {0}
|
||||||
steam.error = Falha em iniciar os serviços da Steam.\nError: {0}
|
steam.error = Falha em iniciar os serviços da Steam.\nError: {0}
|
||||||
|
|
||||||
editor.brush = Pincel
|
editor.brush = Pincel
|
||||||
editor.openin = Abrir no Editor
|
editor.openin = Abrir no Editor
|
||||||
editor.oregen = Geração de minério
|
editor.oregen = Geração de minério
|
||||||
@@ -347,20 +363,22 @@ editor.overwrite = [accent]Aviso!\nIsso Substitui um mapa existente.
|
|||||||
editor.overwrite.confirm = [scarlet]Aviso![] Um mapa com esse nome já existe. Tem certeza que deseja substituir?
|
editor.overwrite.confirm = [scarlet]Aviso![] Um mapa com esse nome já existe. Tem certeza que deseja substituir?
|
||||||
editor.exists = Já existe um mapa com este nome.
|
editor.exists = Já existe um mapa com este nome.
|
||||||
editor.selectmap = Selecione uma mapa para carregar:
|
editor.selectmap = Selecione uma mapa para carregar:
|
||||||
|
|
||||||
toolmode.replace = Substituir
|
toolmode.replace = Substituir
|
||||||
toolmode.replace.description = Desenha apenas em blocos sólidos.
|
toolmode.replace.description = Desenha apenas em blocos sólidos.
|
||||||
toolmode.replaceall = Substituir tudo
|
toolmode.replaceall = Substituir tudo
|
||||||
toolmode.replaceall.description = Substituir todos os blocos no mapa
|
toolmode.replaceall.description = Substituir todos os blocos no mapa
|
||||||
toolmode.orthogonal = Linha reta
|
toolmode.orthogonal = Linha reta
|
||||||
toolmode.orthogonal.description = Desenha apenas linhas retas.
|
toolmode.orthogonal.description = Desenha apenas linhas retas.
|
||||||
toolmode.square = Square
|
toolmode.square = Quadrado
|
||||||
toolmode.square.description = Pincel quadrado.
|
toolmode.square.description = Pincel quadrado.
|
||||||
toolmode.eraseores = Apagar minérios
|
toolmode.eraseores = Apagar minérios
|
||||||
toolmode.eraseores.description = Apaga apenas minérios.
|
toolmode.eraseores.description = Apaga apenas minérios.
|
||||||
toolmode.fillteams = Encher times
|
toolmode.fillteams = Preencher times
|
||||||
toolmode.fillteams.description = Muda o time do qual todos os blocos pertencem.
|
toolmode.fillteams.description = Muda o time do qual todos os blocos pertencem.
|
||||||
toolmode.drawteams = Desenhar times
|
toolmode.drawteams = Desenhar times
|
||||||
toolmode.drawteams.description = Muda o time do qual o bloco pertence.
|
toolmode.drawteams.description = Muda o time do qual o bloco pertence.
|
||||||
|
|
||||||
filters.empty = [LIGHT_GRAY]Sem filtro! Adicione um usando o botão abaixo.
|
filters.empty = [LIGHT_GRAY]Sem filtro! Adicione um usando o botão abaixo.
|
||||||
filter.distort = Distorcedor
|
filter.distort = Distorcedor
|
||||||
filter.noise = Geração aleatória
|
filter.noise = Geração aleatória
|
||||||
@@ -392,6 +410,7 @@ filter.option.floor2 = Chão secundário
|
|||||||
filter.option.threshold2 = Margem secundária
|
filter.option.threshold2 = Margem secundária
|
||||||
filter.option.radius = Raio
|
filter.option.radius = Raio
|
||||||
filter.option.percentile = Percentual
|
filter.option.percentile = Percentual
|
||||||
|
|
||||||
width = Largura:
|
width = Largura:
|
||||||
height = Altura:
|
height = Altura:
|
||||||
menu = Menu
|
menu = Menu
|
||||||
@@ -407,6 +426,7 @@ tutorial = Tutorial
|
|||||||
tutorial.retake = Refazer Tutorial
|
tutorial.retake = Refazer Tutorial
|
||||||
editor = Editor
|
editor = Editor
|
||||||
mapeditor = Editor de mapa
|
mapeditor = Editor de mapa
|
||||||
|
|
||||||
abandon = Abandonar
|
abandon = Abandonar
|
||||||
abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo.
|
abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo.
|
||||||
locked = Trancado
|
locked = Trancado
|
||||||
@@ -437,6 +457,7 @@ zone.objective.survival = Sobreviver
|
|||||||
zone.objective.attack = Destruir o núcleo inimigo
|
zone.objective.attack = Destruir o núcleo inimigo
|
||||||
add = Adicionar...
|
add = Adicionar...
|
||||||
boss.health = Vida do chefe
|
boss.health = Vida do chefe
|
||||||
|
|
||||||
connectfail = [crimson]Falha ao entrar no servidor: [accent]{0}
|
connectfail = [crimson]Falha ao entrar no servidor: [accent]{0}
|
||||||
error.unreachable = Servidor inalcançável.
|
error.unreachable = Servidor inalcançável.
|
||||||
error.invalidaddress = Endereço inválido.
|
error.invalidaddress = Endereço inválido.
|
||||||
@@ -447,6 +468,7 @@ error.mapnotfound = Arquivo de mapa não encontrado!
|
|||||||
error.io = Erro I/O de internet.
|
error.io = Erro I/O de internet.
|
||||||
error.any = Erro de rede desconhecido.
|
error.any = Erro de rede desconhecido.
|
||||||
error.bloom = Falha ao inicializar bloom.\nSeu dispositivo talvez não o suporte.
|
error.bloom = Falha ao inicializar bloom.\nSeu dispositivo talvez não o suporte.
|
||||||
|
|
||||||
zone.groundZero.name = Marco zero
|
zone.groundZero.name = Marco zero
|
||||||
zone.desertWastes.name = Ruínas do Deserto
|
zone.desertWastes.name = Ruínas do Deserto
|
||||||
zone.craters.name = As crateras
|
zone.craters.name = As crateras
|
||||||
@@ -461,6 +483,7 @@ zone.saltFlats.name = Planícies de sal
|
|||||||
zone.impact0078.name = Impacto 0078
|
zone.impact0078.name = Impacto 0078
|
||||||
zone.crags.name = Penhascos
|
zone.crags.name = Penhascos
|
||||||
zone.fungalPass.name = Passagem Fúngica
|
zone.fungalPass.name = Passagem Fúngica
|
||||||
|
|
||||||
zone.groundZero.description = Uma ótima localização para começar de novo. Baixa ameaça inimiga. Poucos recursos.\nColete o máximo de chumbo e cobre possível.\nContinue!
|
zone.groundZero.description = Uma ótima localização para começar de novo. Baixa ameaça inimiga. Poucos recursos.\nColete o máximo de chumbo e cobre possível.\nContinue!
|
||||||
zone.frozenForest.description = Até aqui, perto das montanhas, os esporos se espalharam. As baixas temperaturas não podem contê-los para sempre.\n\nComeçe a busca por energia. Construa geradores à combustão. Aprenda a usar os reparadores (menders).
|
zone.frozenForest.description = Até aqui, perto das montanhas, os esporos se espalharam. As baixas temperaturas não podem contê-los para sempre.\n\nComeçe a busca por energia. Construa geradores à combustão. Aprenda a usar os reparadores (menders).
|
||||||
zone.desertWastes.description = Estas ruínas são vastas, imprevisíveis, e cruzadas por estruturas abandonadas.\nCarvão está presente na região. O queime por energia, ou sintetize grafite.\n\n[lightgray]Este local de pouso não pode ser garantido.
|
zone.desertWastes.description = Estas ruínas são vastas, imprevisíveis, e cruzadas por estruturas abandonadas.\nCarvão está presente na região. O queime por energia, ou sintetize grafite.\n\n[lightgray]Este local de pouso não pode ser garantido.
|
||||||
@@ -473,21 +496,23 @@ zone.tarFields.description = Nos arredores de uma zona de produção de petróle
|
|||||||
zone.desolateRift.description = Uma zona extremamente perigosa. Recursos abundantes, porém pouco espaço. Alto risco de destruição. Saia o mais rápido possível. Não seja enganado pelo longo espaço de tempo entre os ataques inimigos.
|
zone.desolateRift.description = Uma zona extremamente perigosa. Recursos abundantes, porém pouco espaço. Alto risco de destruição. Saia o mais rápido possível. Não seja enganado pelo longo espaço de tempo entre os ataques inimigos.
|
||||||
zone.nuclearComplex.description = Uma antiga instalação para produção e processamento de tório, reduzido a ruínas.\n[lightgray]Pesquise o tório e seus muitos usos.\n\nO inimigo está presente aqui em grandes números, constantemente à procura de atacantes.
|
zone.nuclearComplex.description = Uma antiga instalação para produção e processamento de tório, reduzido a ruínas.\n[lightgray]Pesquise o tório e seus muitos usos.\n\nO inimigo está presente aqui em grandes números, constantemente à procura de atacantes.
|
||||||
zone.fungalPass.description = Uma area de transição entre montanhas altas e baixas, terras cheias de esporos. Uma pequena base de reconhecimento inimiga está localizada aqui.\nDestrua-a.\nUse as unidades crawler e dagger. Destrua os dois núcleos.
|
zone.fungalPass.description = Uma area de transição entre montanhas altas e baixas, terras cheias de esporos. Uma pequena base de reconhecimento inimiga está localizada aqui.\nDestrua-a.\nUse as unidades crawler e dagger. Destrua os dois núcleos.
|
||||||
zone.impact0078.description = <insert description here>
|
zone.impact0078.description = <insira descrição aqui>
|
||||||
zone.crags.description = <insert description here>
|
zone.crags.description = <Insira descrição aqui>
|
||||||
|
|
||||||
settings.language = Idioma
|
settings.language = Idioma
|
||||||
settings.data = Dados do jogo
|
settings.data = Dados do jogo
|
||||||
settings.reset = Restaurar Padrões
|
settings.reset = Restaurar Padrões
|
||||||
settings.rebind = Religar
|
settings.rebind = Religar
|
||||||
|
settings.resetKey = Resetar
|
||||||
settings.controls = Controles
|
settings.controls = Controles
|
||||||
settings.game = Jogo
|
settings.game = Jogo
|
||||||
settings.sound = Som
|
settings.sound = Som
|
||||||
settings.graphics = Gráficos
|
settings.graphics = Gráficos
|
||||||
settings.cleardata = Apagar dados...
|
settings.cleardata = Apagar dados...
|
||||||
settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não pode ser desfeito!
|
settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não pode ser desfeito!
|
||||||
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, Incluindo jogos salvos, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente.
|
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, incluindo jogos salvos, mapas, teclas personalizadas e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente.
|
||||||
paused = Pausado
|
paused = Pausado
|
||||||
clear = Clear
|
clear = Limpo
|
||||||
banned = [scarlet]Banido
|
banned = [scarlet]Banido
|
||||||
yes = Sim
|
yes = Sim
|
||||||
no = Não
|
no = Não
|
||||||
@@ -496,7 +521,7 @@ error.title = [crimson]Ocorreu um Erro.
|
|||||||
error.crashtitle = Ocorreu um Erro
|
error.crashtitle = Ocorreu um Erro
|
||||||
blocks.input = Entrada
|
blocks.input = Entrada
|
||||||
blocks.output = Saída
|
blocks.output = Saída
|
||||||
blocks.booster = Booster
|
blocks.booster = Apoio
|
||||||
block.unknown = [LIGHT_GRAY]???
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powercapacity = Capacidade de Energia
|
blocks.powercapacity = Capacidade de Energia
|
||||||
blocks.powershot = Energia/tiro
|
blocks.powershot = Energia/tiro
|
||||||
@@ -529,6 +554,7 @@ blocks.inaccuracy = Imprecisão
|
|||||||
blocks.shots = Tiros
|
blocks.shots = Tiros
|
||||||
blocks.reload = Tiros por segundo
|
blocks.reload = Tiros por segundo
|
||||||
blocks.ammo = Munição
|
blocks.ammo = Munição
|
||||||
|
|
||||||
bar.drilltierreq = Broca melhor necessária.
|
bar.drilltierreq = Broca melhor necessária.
|
||||||
bar.drillspeed = Velocidade da Broca: {0}/s
|
bar.drillspeed = Velocidade da Broca: {0}/s
|
||||||
bar.pumpspeed = Velocidade da Bomna: {0}/s
|
bar.pumpspeed = Velocidade da Bomna: {0}/s
|
||||||
@@ -544,8 +570,11 @@ bar.heat = Aquecimento
|
|||||||
bar.power = Poder
|
bar.power = Poder
|
||||||
bar.progress = Progresso da construção
|
bar.progress = Progresso da construção
|
||||||
bar.spawned = Unidades: {0}/{1}
|
bar.spawned = Unidades: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] Dano
|
bar.input = Entrando
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos
|
bar.output = Saindo
|
||||||
|
|
||||||
|
bullet.damage = [stat]{0}[lightgray] de dano
|
||||||
|
bullet.splashdamage = [stat]{0}[lightgray] de dano em área ~[stat] {1}[lightgray] bloco(s)
|
||||||
bullet.incendiary = [stat]Incendiário
|
bullet.incendiary = [stat]Incendiário
|
||||||
bullet.homing = [stat]Guiado
|
bullet.homing = [stat]Guiado
|
||||||
bullet.shock = [stat]Choque
|
bullet.shock = [stat]Choque
|
||||||
@@ -555,6 +584,7 @@ bullet.freezing = [stat]Congelamento
|
|||||||
bullet.tarred = [stat]Grudento
|
bullet.tarred = [stat]Grudento
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição
|
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição
|
||||||
bullet.reload = [stat]{0}[lightgray]x cadência de tiro
|
bullet.reload = [stat]{0}[lightgray]x cadência de tiro
|
||||||
|
|
||||||
unit.blocks = Blocos
|
unit.blocks = Blocos
|
||||||
unit.powersecond = Unidades de energia/segundo
|
unit.powersecond = Unidades de energia/segundo
|
||||||
unit.liquidsecond = Unidades de líquido/segundo
|
unit.liquidsecond = Unidades de líquido/segundo
|
||||||
@@ -567,22 +597,25 @@ unit.persecond = por segundo
|
|||||||
unit.timesspeed = x Velocidade
|
unit.timesspeed = x Velocidade
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = itens
|
unit.items = itens
|
||||||
|
unit.thousands = k
|
||||||
|
unit.millions = m
|
||||||
category.general = Geral
|
category.general = Geral
|
||||||
category.power = Poder
|
category.power = Energia
|
||||||
category.liquids = Líquidos
|
category.liquids = Líquidos
|
||||||
category.items = Itens
|
category.items = Itens
|
||||||
category.crafting = Construindo
|
category.crafting = Entrada/Saída
|
||||||
category.shooting = Atirando
|
category.shooting = Atiradores
|
||||||
category.optional = Melhoras opcionais
|
category.optional = Melhoras opcionais
|
||||||
setting.landscape.name = Travar panorama
|
setting.landscape.name = Travar panorama
|
||||||
setting.shadows.name = Sombras
|
setting.shadows.name = Sombras
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Sugestões automáticas de blocos
|
||||||
setting.linear.name = Filtragem linear
|
setting.linear.name = Filtragem linear
|
||||||
setting.hints.name = Dicas
|
setting.hints.name = Dicas
|
||||||
|
setting.buildautopause.name = Pausar construções automaticamente
|
||||||
setting.animatedwater.name = Água animada
|
setting.animatedwater.name = Água animada
|
||||||
setting.animatedshields.name = Escudos animados
|
setting.animatedshields.name = Escudos animados
|
||||||
setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[]
|
setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[]
|
||||||
setting.indicators.name = Indicador de aliados
|
setting.indicators.name = Indicador de aliados/inimigos
|
||||||
setting.autotarget.name = Alvo automatico
|
setting.autotarget.name = Alvo automatico
|
||||||
setting.keyboard.name = Controles de mouse e teclado
|
setting.keyboard.name = Controles de mouse e teclado
|
||||||
setting.touchscreen.name = Controles de Touchscreen
|
setting.touchscreen.name = Controles de Touchscreen
|
||||||
@@ -600,13 +633,16 @@ setting.difficulty.name = Dificuldade
|
|||||||
setting.screenshake.name = Balanço da Tela
|
setting.screenshake.name = Balanço da Tela
|
||||||
setting.effects.name = Efeitos
|
setting.effects.name = Efeitos
|
||||||
setting.destroyedblocks.name = Mostrar Blocos Destruídos
|
setting.destroyedblocks.name = Mostrar Blocos Destruídos
|
||||||
setting.conveyorpathfinding.name = Posicionamento do localizador do Transportador
|
setting.conveyorpathfinding.name = Esteiras Encontram Caminho
|
||||||
setting.sensitivity.name = Sensibilidade do Controle
|
setting.sensitivity.name = Sensibilidade do Controle
|
||||||
setting.saveinterval.name = Intervalo de Auto Salvamento
|
setting.saveinterval.name = Intervalo de Auto Salvamento
|
||||||
setting.seconds = {0} Segundos
|
setting.seconds = {0} segundos
|
||||||
|
setting.blockselecttimeout.name = Tempo limite de seleção de blocos
|
||||||
|
setting.milliseconds = {0} milissegundos
|
||||||
setting.fullscreen.name = Tela Cheia
|
setting.fullscreen.name = Tela Cheia
|
||||||
setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar)
|
setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar)
|
||||||
setting.fps.name = Mostrar FPS
|
setting.fps.name = Mostrar FPS e Ping
|
||||||
|
setting.blockselectkeys.name = Mostrar teclas de seleção de blocos
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace)
|
setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace)
|
||||||
setting.minimap.name = Mostrar minimapa
|
setting.minimap.name = Mostrar minimapa
|
||||||
@@ -623,7 +659,7 @@ setting.chatopacity.name = Opacidade do chat
|
|||||||
setting.lasersopacity.name = Opacidade do laser
|
setting.lasersopacity.name = Opacidade do laser
|
||||||
setting.playerchat.name = Mostrar chat em jogo
|
setting.playerchat.name = Mostrar chat em jogo
|
||||||
public.confirm = Você quer fazer sua partida pública?\n[accent]Qualquer um será capaz de entrar na sua partida.\n[lightgray]Isso pode ser mudado depois em Configurações->Jogo->Visibilidade da partida pública.
|
public.confirm = Você quer fazer sua partida pública?\n[accent]Qualquer um será capaz de entrar na sua partida.\n[lightgray]Isso pode ser mudado depois em Configurações->Jogo->Visibilidade da partida pública.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Note que as versões beta do jogo não podem fazer salas publicas.
|
||||||
uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
|
uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
|
||||||
uiscale.cancel = Cancelar e sair
|
uiscale.cancel = Cancelar e sair
|
||||||
setting.bloom.name = Bloom
|
setting.bloom.name = Bloom
|
||||||
@@ -635,16 +671,36 @@ category.multiplayer.name = Multijogador
|
|||||||
command.attack = Atacar
|
command.attack = Atacar
|
||||||
command.rally = Reunir
|
command.rally = Reunir
|
||||||
command.retreat = Recuar
|
command.retreat = Recuar
|
||||||
keybind.clear_building.name = Clear Building
|
placement.blockselectkeys = \n[lightgray]Tecla: [{0},
|
||||||
|
keybind.clear_building.name = Limpar construção
|
||||||
keybind.press = Pressione uma tecla...
|
keybind.press = Pressione uma tecla...
|
||||||
keybind.press.axis = Pressione uma Axis ou tecla...
|
keybind.press.axis = Pressione uma Axis ou tecla...
|
||||||
keybind.screenshot.name = Captura do mapa
|
keybind.screenshot.name = Captura do mapa
|
||||||
keybind.move_x.name = mover_x
|
keybind.toggle_power_lines.name = Mudar lasers
|
||||||
keybind.move_y.name = mover_y
|
keybind.move_x.name = Mover no eixo x
|
||||||
|
keybind.move_y.name = Mover no eixo Y
|
||||||
|
keybind.mouse_move.name = Seguir Mouse
|
||||||
|
keybind.dash.name = Arrancada
|
||||||
keybind.schematic_select.name = Selecionar região
|
keybind.schematic_select.name = Selecionar região
|
||||||
keybind.schematic_menu.name = Menu de Esquemas
|
keybind.schematic_menu.name = Menu de Esquemas
|
||||||
keybind.schematic_flip_x.name = girar o Esquema X
|
keybind.schematic_flip_x.name = Girar o Esquema no eixo X
|
||||||
keybind.schematic_flip_y.name = girar o Esquema Y
|
keybind.schematic_flip_y.name = Girar o Esquema no eixo Y
|
||||||
|
keybind.category_prev.name = Categoria anterior
|
||||||
|
keybind.category_next.name = Próxima categoria
|
||||||
|
keybind.block_select_left.name = Selecionar bloco à esquerda
|
||||||
|
keybind.block_select_right.name = Selecionar bloco à direita
|
||||||
|
keybind.block_select_up.name = Selecionar bloco acima
|
||||||
|
keybind.block_select_down.name = Selecionar bloco abaixo
|
||||||
|
keybind.block_select_01.name = Categoria/Selecionar bloco 1
|
||||||
|
keybind.block_select_02.name = Categoria/Selecionar bloco 2
|
||||||
|
keybind.block_select_03.name = Categoria/Selecionar bloco 3
|
||||||
|
keybind.block_select_04.name = Categoria/Selecionar bloco 4
|
||||||
|
keybind.block_select_05.name = Categoria/Selecionar bloco 5
|
||||||
|
keybind.block_select_06.name = Categoria/Selecionar bloco 6
|
||||||
|
keybind.block_select_07.name = Categoria/Selecionar bloco 7
|
||||||
|
keybind.block_select_08.name = Categoria/Selecionar bloco 8
|
||||||
|
keybind.block_select_09.name = Categoria/Selecionar bloco 9
|
||||||
|
keybind.block_select_10.name = Categoria/Selecionar bloco 10
|
||||||
keybind.fullscreen.name = Alterar tela cheia
|
keybind.fullscreen.name = Alterar tela cheia
|
||||||
keybind.select.name = selecionar
|
keybind.select.name = selecionar
|
||||||
keybind.diagonal_placement.name = Colocação diagonal
|
keybind.diagonal_placement.name = Colocação diagonal
|
||||||
@@ -652,13 +708,11 @@ keybind.pick.name = Pegar bloco
|
|||||||
keybind.break_block.name = Quebrar bloco
|
keybind.break_block.name = Quebrar bloco
|
||||||
keybind.deselect.name = Deselecionar
|
keybind.deselect.name = Deselecionar
|
||||||
keybind.shoot.name = Atirar
|
keybind.shoot.name = Atirar
|
||||||
keybind.zoom_hold.name = segurar Zoom
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pausar
|
keybind.pause.name = Pausar
|
||||||
keybind.pause_building.name = Parar/Resumir a construção
|
keybind.pause_building.name = Parar/Resumir a construção
|
||||||
keybind.minimap.name = Minimapa
|
keybind.minimap.name = Minimapa
|
||||||
keybind.dash.name = Correr
|
|
||||||
keybind.chat.name = Conversa
|
keybind.chat.name = Conversa
|
||||||
keybind.player_list.name = Lista_de_jogadores
|
keybind.player_list.name = Lista_de_jogadores
|
||||||
keybind.console.name = Console
|
keybind.console.name = Console
|
||||||
@@ -666,27 +720,29 @@ keybind.rotate.name = Girar
|
|||||||
keybind.rotateplaced.name = Girar (Segure)
|
keybind.rotateplaced.name = Girar (Segure)
|
||||||
keybind.toggle_menus.name = Ativar menus
|
keybind.toggle_menus.name = Ativar menus
|
||||||
keybind.chat_history_prev.name = Historico do chat anterior
|
keybind.chat_history_prev.name = Historico do chat anterior
|
||||||
keybind.chat_history_next.name = Historico do proximo chat
|
keybind.chat_history_next.name = Historico do próximo chat
|
||||||
keybind.chat_scroll.name = Rolar chat
|
keybind.chat_scroll.name = Rolar chat
|
||||||
keybind.drop_unit.name = Soltar unidade
|
keybind.drop_unit.name = Soltar unidade
|
||||||
keybind.zoom_minimap.name = Zoom do minimapa
|
keybind.zoom_minimap.name = Zoom do minimapa
|
||||||
mode.help.title = Descrição dos modos
|
mode.help.title = Descrição dos modos
|
||||||
mode.survival.name = Sobrevivência
|
mode.survival.name = Sobrevivência
|
||||||
mode.survival.description = O modo normal. Recursos limitados e hordas automáticas.
|
mode.survival.description = O modo normal. Recursos limitados e hordas automáticas.
|
||||||
mode.sandbox.name = Sandbox
|
mode.sandbox.name = Caixa de areia
|
||||||
mode.sandbox.description = Recursos infinitos e sem tempo para ataques.
|
mode.sandbox.description = Recursos infinitos e sem tempo para ataques.
|
||||||
mode.editor.name = Editor
|
mode.editor.name = Editor
|
||||||
mode.pvp.name = JXJ
|
mode.pvp.name = JxJ
|
||||||
mode.pvp.description = Lutar contra outros jogadores locais.
|
mode.pvp.description = Lutar contra outros jogadores locais.
|
||||||
mode.attack.name = Ataque
|
mode.attack.name = Ataque
|
||||||
mode.attack.description = Sem hordas, com o objetivo de destruir a base inimiga.
|
mode.attack.description = Sem hordas, com o objetivo de destruir a base inimiga.
|
||||||
mode.custom = Regras personalizadas
|
mode.custom = Regras personalizadas
|
||||||
|
|
||||||
rules.infiniteresources = Recursos infinitos
|
rules.infiniteresources = Recursos infinitos
|
||||||
|
rules.reactorexplosions = Reatores explodem
|
||||||
rules.wavetimer = Tempo de horda
|
rules.wavetimer = Tempo de horda
|
||||||
rules.waves = Hordas
|
rules.waves = Hordas
|
||||||
rules.attack = Modo de ataque
|
rules.attack = Modo de ataque
|
||||||
rules.enemyCheat = Recursos de IA Infinitos
|
rules.enemyCheat = Recursos de IA Infinitos
|
||||||
rules.unitdrops = Unidade solta
|
rules.unitdrops = Inimigos dropam itens
|
||||||
rules.unitbuildspeedmultiplier = Multiplicador de velocidade de criação de unidade
|
rules.unitbuildspeedmultiplier = Multiplicador de velocidade de criação de unidade
|
||||||
rules.unithealthmultiplier = Multiplicador de vida de unidade
|
rules.unithealthmultiplier = Multiplicador de vida de unidade
|
||||||
rules.playerhealthmultiplier = Multiplicador da vida de jogador
|
rules.playerhealthmultiplier = Multiplicador da vida de jogador
|
||||||
@@ -694,10 +750,10 @@ rules.playerdamagemultiplier = Multiplicador do dano de jogador
|
|||||||
rules.unitdamagemultiplier = Multiplicador de dano de Unidade
|
rules.unitdamagemultiplier = Multiplicador de dano de Unidade
|
||||||
rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[LIGHT_GRAY] (blocos)
|
rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[LIGHT_GRAY] (blocos)
|
||||||
rules.respawntime = Tempo de renascimento:[LIGHT_GRAY] (seg)
|
rules.respawntime = Tempo de renascimento:[LIGHT_GRAY] (seg)
|
||||||
rules.wavespacing = Espaço entre hordas:[LIGHT_GRAY] (seg)
|
rules.wavespacing = Espaço de tempo entre hordas:[LIGHT_GRAY] (seg)
|
||||||
rules.buildcostmultiplier = Multiplicador de custo de construção
|
rules.buildcostmultiplier = Multiplicador de custo de construção
|
||||||
rules.buildspeedmultiplier = Multiplicador de velocidade de construção
|
rules.buildspeedmultiplier = Multiplicador de velocidade de construção
|
||||||
rules.waitForWaveToEnd = hordas esperam inimigos
|
rules.waitForWaveToEnd = Hordas esperam inimigos
|
||||||
rules.dropzoneradius = Raio da zona de spawn:[LIGHT_GRAY] (blocos)
|
rules.dropzoneradius = Raio da zona de spawn:[LIGHT_GRAY] (blocos)
|
||||||
rules.respawns = Respawn maximos por horda
|
rules.respawns = Respawn maximos por horda
|
||||||
rules.limitedRespawns = Respawn limitados
|
rules.limitedRespawns = Respawn limitados
|
||||||
@@ -707,6 +763,10 @@ rules.title.resourcesbuilding = Recursos e Construções
|
|||||||
rules.title.player = Jogadores
|
rules.title.player = Jogadores
|
||||||
rules.title.enemy = Inimigos
|
rules.title.enemy = Inimigos
|
||||||
rules.title.unit = Unidades
|
rules.title.unit = Unidades
|
||||||
|
rules.title.experimental = Experimental
|
||||||
|
rules.lighting = Iluminação
|
||||||
|
rules.ambientlight = Luz ambiente
|
||||||
|
|
||||||
content.item.name = Itens
|
content.item.name = Itens
|
||||||
content.liquid.name = Líquidos
|
content.liquid.name = Líquidos
|
||||||
content.unit.name = Unidades
|
content.unit.name = Unidades
|
||||||
@@ -753,6 +813,7 @@ mech.trident-ship.name = Tridente
|
|||||||
mech.trident-ship.weapon = Carga de bombas
|
mech.trident-ship.weapon = Carga de bombas
|
||||||
mech.glaive-ship.name = Glaive
|
mech.glaive-ship.name = Glaive
|
||||||
mech.glaive-ship.weapon = Repetidor de fogo
|
mech.glaive-ship.weapon = Repetidor de fogo
|
||||||
|
item.corestorable = [lightgray]Armazenável no núcleo: {0}
|
||||||
item.explosiveness = [LIGHT_GRAY]Explosibilidade: {0}
|
item.explosiveness = [LIGHT_GRAY]Explosibilidade: {0}
|
||||||
item.flammability = [LIGHT_GRAY]Inflamabilidade: {0}
|
item.flammability = [LIGHT_GRAY]Inflamabilidade: {0}
|
||||||
item.radioactivity = [LIGHT_GRAY]Radioatividade: {0}
|
item.radioactivity = [LIGHT_GRAY]Radioatividade: {0}
|
||||||
@@ -768,6 +829,7 @@ mech.buildspeed = [LIGHT_GRAY]Velocidade de construção: {0}%
|
|||||||
liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
||||||
|
|
||||||
block.sand-boulder.name = Pedregulho de areia
|
block.sand-boulder.name = Pedregulho de areia
|
||||||
block.grass.name = Grama
|
block.grass.name = Grama
|
||||||
block.salt.name = Sal
|
block.salt.name = Sal
|
||||||
@@ -843,7 +905,7 @@ block.copper-wall.name = Muro de Cobre
|
|||||||
block.copper-wall-large.name = Muro de Cobre Grande
|
block.copper-wall-large.name = Muro de Cobre Grande
|
||||||
block.titanium-wall.name = Muro de Titânio
|
block.titanium-wall.name = Muro de Titânio
|
||||||
block.titanium-wall-large.name = Muro de Titânio grande
|
block.titanium-wall-large.name = Muro de Titânio grande
|
||||||
block.plastanium-wall.name = Muro de Plastânio Grande
|
block.plastanium-wall.name = Muro de Plastânio
|
||||||
block.plastanium-wall-large.name = Muro de Plastânio Grande
|
block.plastanium-wall-large.name = Muro de Plastânio Grande
|
||||||
block.phase-wall.name = Muro de Fase
|
block.phase-wall.name = Muro de Fase
|
||||||
block.phase-wall-large.name = Muro de Fase Grande
|
block.phase-wall-large.name = Muro de Fase Grande
|
||||||
@@ -866,6 +928,8 @@ block.distributor.name = Distribuidor
|
|||||||
block.sorter.name = Ordenador
|
block.sorter.name = Ordenador
|
||||||
block.inverted-sorter.name = Ordenador Invertido
|
block.inverted-sorter.name = Ordenador Invertido
|
||||||
block.message.name = Mensagem
|
block.message.name = Mensagem
|
||||||
|
block.illuminator.name = Iluminador
|
||||||
|
block.illuminator.description = Uma pequena, compacta e configurável fonte de luz. Precisa de energia para funcionar.
|
||||||
block.overflow-gate.name = Portão Sobrecarregado
|
block.overflow-gate.name = Portão Sobrecarregado
|
||||||
block.silicon-smelter.name = Fundidora de silicio
|
block.silicon-smelter.name = Fundidora de silicio
|
||||||
block.phase-weaver.name = Palheta de fase
|
block.phase-weaver.name = Palheta de fase
|
||||||
@@ -875,14 +939,15 @@ block.melter.name = Aparelho de fusão
|
|||||||
block.incinerator.name = Incinerador
|
block.incinerator.name = Incinerador
|
||||||
block.spore-press.name = Prensa de Esporo
|
block.spore-press.name = Prensa de Esporo
|
||||||
block.separator.name = Separador
|
block.separator.name = Separador
|
||||||
block.coal-centrifuge.name = Centrifuga de carvão
|
block.coal-centrifuge.name = Centrífuga de carvão
|
||||||
block.power-node.name = Célula de energia
|
block.power-node.name = Célula de Energia
|
||||||
block.power-node-large.name = Célula de energia Grande
|
block.power-node-large.name = Célula de Energia Grande
|
||||||
block.surge-tower.name = Torre de surto
|
block.surge-tower.name = Torre de surto
|
||||||
|
block.diode.name = Bateria de Diodo
|
||||||
block.battery.name = Bateria
|
block.battery.name = Bateria
|
||||||
block.battery-large.name = Bateria Grande
|
block.battery-large.name = Bateria Grande
|
||||||
block.combustion-generator.name = Gerador a combustão
|
block.combustion-generator.name = Gerador à combustão
|
||||||
block.turbine-generator.name = Gerador de Turbina
|
block.turbine-generator.name = Gerador à vapor
|
||||||
block.differential-generator.name = Gerador diferencial
|
block.differential-generator.name = Gerador diferencial
|
||||||
block.impact-reactor.name = Reator De Impacto
|
block.impact-reactor.name = Reator De Impacto
|
||||||
block.mechanical-drill.name = Broca Mecânica
|
block.mechanical-drill.name = Broca Mecânica
|
||||||
@@ -924,13 +989,14 @@ block.spirit-factory.name = Fábrica de drone de reparo Spirit
|
|||||||
block.phantom-factory.name = Fábrica de drone de construção Phantom
|
block.phantom-factory.name = Fábrica de drone de construção Phantom
|
||||||
block.wraith-factory.name = Fábrica de lutadores Wraith
|
block.wraith-factory.name = Fábrica de lutadores Wraith
|
||||||
block.ghoul-factory.name = Fábrica de Bombardeiros Ghoul
|
block.ghoul-factory.name = Fábrica de Bombardeiros Ghoul
|
||||||
block.dagger-factory.name = Fábrica de mech Dagger
|
block.dagger-factory.name = Fábrica de Mecas Dagger
|
||||||
block.crawler-factory.name = Fábrica de mech Crawler
|
block.crawler-factory.name = Fábrica de Mecas Crawler
|
||||||
block.titan-factory.name = Fábrica de mech titan
|
block.titan-factory.name = Fábrica de Mecas Titan
|
||||||
block.fortress-factory.name = Fábrica de mech Fortress
|
block.fortress-factory.name = Fábrica de mech Fortress
|
||||||
block.revenant-factory.name = Fábrica de lutadores Revenant
|
block.revenant-factory.name = Fábrica de lutadores Revenant
|
||||||
block.repair-point.name = Ponto de Reparo
|
block.repair-point.name = Ponto de Reparo
|
||||||
block.pulse-conduit.name = Cano de Pulso
|
block.pulse-conduit.name = Cano de Pulso
|
||||||
|
block.plated-conduit.name = Cano Chapeado
|
||||||
block.phase-conduit.name = Cano de Fase
|
block.phase-conduit.name = Cano de Fase
|
||||||
block.liquid-router.name = Roteador de Líquido
|
block.liquid-router.name = Roteador de Líquido
|
||||||
block.liquid-tank.name = Tanque de Líquido
|
block.liquid-tank.name = Tanque de Líquido
|
||||||
@@ -939,12 +1005,12 @@ block.bridge-conduit.name = Cano Ponte
|
|||||||
block.rotary-pump.name = Bomba Rotatória
|
block.rotary-pump.name = Bomba Rotatória
|
||||||
block.thorium-reactor.name = Reator a Tório
|
block.thorium-reactor.name = Reator a Tório
|
||||||
block.mass-driver.name = Catapulta Eletromagnética
|
block.mass-driver.name = Catapulta Eletromagnética
|
||||||
block.blast-drill.name = Broca de Explosão
|
block.blast-drill.name = Broca de Jato de Ar
|
||||||
block.thermal-pump.name = Bomba térmica
|
block.thermal-pump.name = Bomba térmica
|
||||||
block.thermal-generator.name = Gerador Térmico
|
block.thermal-generator.name = Gerador Térmico
|
||||||
block.alloy-smelter.name = Fundidora de Liga
|
block.alloy-smelter.name = Fundidora de Liga
|
||||||
block.mender.name = Reparador
|
block.mender.name = Reparador
|
||||||
block.mend-projector.name = Projetor de reparo
|
block.mend-projector.name = Projetor de Reparo
|
||||||
block.surge-wall.name = Parede de liga de surto
|
block.surge-wall.name = Parede de liga de surto
|
||||||
block.surge-wall-large.name = Parede de liga de surto grande
|
block.surge-wall-large.name = Parede de liga de surto grande
|
||||||
block.cyclone.name = Ciclone
|
block.cyclone.name = Ciclone
|
||||||
@@ -960,10 +1026,10 @@ block.container.name = Contâiner
|
|||||||
block.launch-pad.name = Plataforma de lançamento
|
block.launch-pad.name = Plataforma de lançamento
|
||||||
block.launch-pad-large.name = Plataforma de lançamento grande
|
block.launch-pad-large.name = Plataforma de lançamento grande
|
||||||
team.blue.name = Azul
|
team.blue.name = Azul
|
||||||
team.crux.name = Vermelha
|
team.crux.name = Vermelho
|
||||||
team.sharded.name = Estilhaçada
|
team.sharded.name = Fragmentado
|
||||||
team.orange.name = Laranja
|
team.orange.name = Alaranjado
|
||||||
team.derelict.name = Abandonada
|
team.derelict.name = Abandonado
|
||||||
team.green.name = Verde
|
team.green.name = Verde
|
||||||
team.purple.name = Roxa
|
team.purple.name = Roxa
|
||||||
unit.spirit.name = Drone Spirit
|
unit.spirit.name = Drone Spirit
|
||||||
@@ -982,7 +1048,7 @@ unit.eradicator.name = Erradicador
|
|||||||
unit.lich.name = Lich
|
unit.lich.name = Lich
|
||||||
unit.reaper.name = Ceifador
|
unit.reaper.name = Ceifador
|
||||||
tutorial.next = [lightgray]<Toque para continuar>
|
tutorial.next = [lightgray]<Toque para continuar>
|
||||||
tutorial.intro = Você entrou no[scarlet] Tutorial do Mindustry.[]\nComeçe[accent] minerando cobre[]. Toque em um veio de minério de cobre para fazer isso.\n\n[accent]{0}/{1} copper
|
tutorial.intro = Você entrou no[scarlet] Tutorial do Mindustry.[]\nUse[accent] [[WASD][] para se mover.\n[accent]Roda do mouse[] para aumentar e diminuir o zoom.\nComece[accent] minerando cobre[]. Toque em um veio de minério de cobre para fazer isso.\n\n[accent]{0}/{1} copper
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
||||||
tutorial.drill = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nColoque uma num veio de cobre.
|
tutorial.drill = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nColoque uma num veio de cobre.
|
||||||
tutorial.drill.mobile = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nToque na aba de brocas no canto inferior direito.\nSelecione a[accent] broca mecânica[].\nToque em um veio de cobre para colocá-la, então pressione a[accent] marca de verificação[] abaixo para confirmar sua seleção.\nPressione o[accent] botão "X"[] para cancelar o posicionamento.
|
tutorial.drill.mobile = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nToque na aba de brocas no canto inferior direito.\nSelecione a[accent] broca mecânica[].\nToque em um veio de cobre para colocá-la, então pressione a[accent] marca de verificação[] abaixo para confirmar sua seleção.\nPressione o[accent] botão "X"[] para cancelar o posicionamento.
|
||||||
@@ -990,7 +1056,7 @@ tutorial.blockinfo = Cada bloco tem diferentes status. Cada broca pode extrair c
|
|||||||
tutorial.conveyor = [accent]Esteiras[] São usadas para transportar itens até o núcleo.\nFaça uma linha de Esteiras da mineradora até o núcleo.
|
tutorial.conveyor = [accent]Esteiras[] São usadas para transportar itens até o núcleo.\nFaça uma linha de Esteiras da mineradora até o núcleo.
|
||||||
tutorial.conveyor.mobile = [accent]Esteiras[] são usadas para transportar itens até o núcleo.\nFaça uma linha de esteiras da broca até o núcleo.\n[accent] Coloque uma linha segurando por alguns segundos[] e arrastando em uma direção.\n\n[accent]{0}/{1} esteiras colocadas em linha\n[accent]0/1 itens entregues
|
tutorial.conveyor.mobile = [accent]Esteiras[] são usadas para transportar itens até o núcleo.\nFaça uma linha de esteiras da broca até o núcleo.\n[accent] Coloque uma linha segurando por alguns segundos[] e arrastando em uma direção.\n\n[accent]{0}/{1} esteiras colocadas em linha\n[accent]0/1 itens entregues
|
||||||
tutorial.turret = Estruturas defensivas devem ser construidas para repelir[LIGHT_GRAY] o inimigo[].\nConstrua uma torre dupla perto de sua base.
|
tutorial.turret = Estruturas defensivas devem ser construidas para repelir[LIGHT_GRAY] o inimigo[].\nConstrua uma torre dupla perto de sua base.
|
||||||
tutorial.drillturret = Torretas duplas precisam de[accent] cobre[] como munição para atirar.\nColoque uma broca próxima à torre para carregá-la com o cobre minerado.
|
tutorial.drillturret = Torres duplas precisam de[accent] cobre[] como munição para atirar.\nColoque uma broca próxima à torre para carregá-la com o cobre minerado.
|
||||||
tutorial.pause = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione a barra de espaço para pausar.
|
tutorial.pause = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione a barra de espaço para pausar.
|
||||||
tutorial.pause.mobile = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione este botão no canto superior direito para pausar.
|
tutorial.pause.mobile = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione este botão no canto superior direito para pausar.
|
||||||
tutorial.unpause = Agora pressione novamente a barra de espaço para despausar.
|
tutorial.unpause = Agora pressione novamente a barra de espaço para despausar.
|
||||||
@@ -1002,6 +1068,7 @@ tutorial.deposit = Deposite itens em blocos arrastando da sua nave até o bloco.
|
|||||||
tutorial.waves = O[LIGHT_GRAY] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Construa mais torretas.
|
tutorial.waves = O[LIGHT_GRAY] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Construa mais torretas.
|
||||||
tutorial.waves.mobile = O[lightgray] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Seu drone vai atirar nos inimigos automaticamente.\nConstrua mais torretas e brocas. Minere mais cobre.
|
tutorial.waves.mobile = O[lightgray] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Seu drone vai atirar nos inimigos automaticamente.\nConstrua mais torretas e brocas. Minere mais cobre.
|
||||||
tutorial.launch = Quando você atinge uma horda específica, Você é capaz de[accent] lançar o núcleo[], deixando suas defesas para trás e[accent] obtendo todos os recursos em seu núcleo.[]\nEstes recursos podem ser usados para pesquisar novas tecnologias.\n\n[accent]Pressione o botão lançar.
|
tutorial.launch = Quando você atinge uma horda específica, Você é capaz de[accent] lançar o núcleo[], deixando suas defesas para trás e[accent] obtendo todos os recursos em seu núcleo.[]\nEstes recursos podem ser usados para pesquisar novas tecnologias.\n\n[accent]Pressione o botão lançar.
|
||||||
|
|
||||||
item.copper.description = O material mais básico. Usado em todos os tipos de blocos.
|
item.copper.description = O material mais básico. Usado em todos os tipos de blocos.
|
||||||
item.lead.description = Material de começo basico. usado extensivamente em blocos de transporte de líquidos e eletrônicos.
|
item.lead.description = Material de começo basico. usado extensivamente em blocos de transporte de líquidos e eletrônicos.
|
||||||
item.metaglass.description = Composto de vidro super resistente. Extensivamente usado para distribuição e armazenagem de líquidos.
|
item.metaglass.description = Composto de vidro super resistente. Extensivamente usado para distribuição e armazenagem de líquidos.
|
||||||
@@ -1044,14 +1111,14 @@ unit.revenant.description = Uma matriz de mísseis pesada e flutuante.
|
|||||||
block.message.description = Armazena uma mensagem. Usado para comunicação entre aliados.
|
block.message.description = Armazena uma mensagem. Usado para comunicação entre aliados.
|
||||||
block.graphite-press.description = Comprime pedaços de carvão em lâminas de grafite puro.
|
block.graphite-press.description = Comprime pedaços de carvão em lâminas de grafite puro.
|
||||||
block.multi-press.description = Uma versão melhorada da prensa de grafite. Usa água e energia para processar carvão rápida e eficientemente.
|
block.multi-press.description = Uma versão melhorada da prensa de grafite. Usa água e energia para processar carvão rápida e eficientemente.
|
||||||
block.silicon-smelter.description = Reduz areia com carvão puro. Produz silício silicio.
|
block.silicon-smelter.description = Reduz areia a silicio usando carvão puro. Produz silício.
|
||||||
block.kiln.description = Derrete chumbo e areia no composto conhecido como metavidro. Requer pequenas quantidades de energia.
|
block.kiln.description = Derrete chumbo e areia no composto conhecido como metavidro. Requer pequenas quantidades de energia.
|
||||||
block.plastanium-compressor.description = Produz plastânio usando petróleo e titânio.
|
block.plastanium-compressor.description = Produz plastânio usando petróleo e titânio.
|
||||||
block.phase-weaver.description = Produz tecido de fase usando tório radioativo e areia. Requer massivas quantidades de energia para funcionar.
|
block.phase-weaver.description = Produz tecido de fase usando tório radioativo e areia. Requer massivas quantidades de energia para funcionar.
|
||||||
block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto.
|
block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto.
|
||||||
block.cryofluidmixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório.
|
block.cryofluidmixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório.
|
||||||
block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão.
|
block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão.
|
||||||
block.pyratite-mixer.description = Mistura carvão, cobre e areia em piratita altamente inflamável
|
block.pyratite-mixer.description = Mistura carvão, cobre e areia em piratita altamente inflamável.
|
||||||
block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas.
|
block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas.
|
||||||
block.separator.description = Separa escória em seus minerais componentes, oferece o resultado refriado.
|
block.separator.description = Separa escória em seus minerais componentes, oferece o resultado refriado.
|
||||||
block.spore-press.description = Comprime cápsulas de esporos em petróleo.
|
block.spore-press.description = Comprime cápsulas de esporos em petróleo.
|
||||||
@@ -1067,10 +1134,10 @@ block.copper-wall.description = Um bloco defensivo e barato.\nUtil para proteger
|
|||||||
block.copper-wall-large.description = Um bloco defensivo e barato.\nUtil para proteger o núcleo e torretas no começo.\nOcupa múltiplos blocos.
|
block.copper-wall-large.description = Um bloco defensivo e barato.\nUtil para proteger o núcleo e torretas no começo.\nOcupa múltiplos blocos.
|
||||||
block.titanium-wall.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.
|
block.titanium-wall.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.
|
||||||
block.titanium-wall-large.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.\nOcupa múltiplos blocos.
|
block.titanium-wall-large.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.\nOcupa múltiplos blocos.
|
||||||
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
|
block.plastanium-wall.description = Um tipo especial de muro que absorve arcos elétricos e bloqueia conexões automáticas de células de energia.
|
||||||
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
|
block.plastanium-wall-large.description = Um tipo especial de muro que absorve arcos elétricos e bloqueia conexões automáticas de células de energia.\nOcupa múltiplos blocos.
|
||||||
block.thorium-wall.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.
|
block.thorium-wall.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.
|
||||||
block.thorium-wall-large.description = Um bloco grande e defensivo.\nBoa proteção contra inimigos.\nOcupa multiplos blocos.
|
block.thorium-wall-large.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.\nOcupa múltiplos blocos.
|
||||||
block.phase-wall.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.
|
block.phase-wall.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.
|
||||||
block.phase-wall-large.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.\nSOcupa múltiplos blocos.
|
block.phase-wall-large.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.\nSOcupa múltiplos blocos.
|
||||||
block.surge-wall.description = Um bloco defensivo extremamente durável.\nSe carrega com eletricidade no contato com as balas, soltando-s aleatoriamente.
|
block.surge-wall.description = Um bloco defensivo extremamente durável.\nSe carrega com eletricidade no contato com as balas, soltando-s aleatoriamente.
|
||||||
@@ -1080,9 +1147,9 @@ block.door-large.description = Uma grande porta. Pode ser aberta e fechada ao to
|
|||||||
block.mender.description = Periodicamente repara blocos vizinhos. Mantem as defesas reparadas em e entre ondas.\nPode usar silício para aumentar o alcance e a eficiência.
|
block.mender.description = Periodicamente repara blocos vizinhos. Mantem as defesas reparadas em e entre ondas.\nPode usar silício para aumentar o alcance e a eficiência.
|
||||||
block.mend-projector.description = Uma versão melhorada do reparador. Repara blocos vizinhos.\nPode usar tecido de fase para aumentar o alcance e a eficiência.
|
block.mend-projector.description = Uma versão melhorada do reparador. Repara blocos vizinhos.\nPode usar tecido de fase para aumentar o alcance e a eficiência.
|
||||||
block.overdrive-projector.description = Aumenta a velocidade de construções vizinhas.\nPode usar tecido de fase para aumentar o alcance e a eficiência.
|
block.overdrive-projector.description = Aumenta a velocidade de construções vizinhas.\nPode usar tecido de fase para aumentar o alcance e a eficiência.
|
||||||
block.force-projector.description = Cria um campo de forca hexagonal em volta de si mesmo, Protegendo construções e unidades dentro de dano por balas.
|
block.force-projector.description = Cria um campo de força hexagonal ao redor de si, protegendo construções e unidades.\nSuperaquece se suportar muito dano. Pode usar líquidos para evitar superaquecimento. Pode-se usar tecido de fase para aumentar o tamanho do escudo.
|
||||||
block.shock-mine.description = Danifica inimigos em cima da mina. Quase invisivel ao inimigo.
|
block.shock-mine.description = Danifica inimigos em cima da mina. Quase invisivel ao inimigo.
|
||||||
block.conveyor.description = Bloco de transporte de item basico. Move os itens a frente e os deposita automaticamente em torretas ou construtores. Rotacionavel.
|
block.conveyor.description = Bloco de transporte de item basico. Move os itens a frente e os deposita automaticamente em torretas ou construtores. Rotacionável.
|
||||||
block.titanium-conveyor.description = Bloco de transporte de item avançado. Move itens mais rapidos que esteiras padrões.
|
block.titanium-conveyor.description = Bloco de transporte de item avançado. Move itens mais rapidos que esteiras padrões.
|
||||||
block.junction.description = Funciona como uma ponte Para duas esteiras que estejam se cruzando. Util em situações que tenha duas esteiras diferentes carregando materiais diferentes para lugares diferentes.
|
block.junction.description = Funciona como uma ponte Para duas esteiras que estejam se cruzando. Util em situações que tenha duas esteiras diferentes carregando materiais diferentes para lugares diferentes.
|
||||||
block.bridge-conveyor.description = Bloco de transporte de itens avancado. Possibilita o transporte de itens acima de 3 blocos de construção ou paredes.
|
block.bridge-conveyor.description = Bloco de transporte de itens avancado. Possibilita o transporte de itens acima de 3 blocos de construção ou paredes.
|
||||||
@@ -1098,7 +1165,8 @@ block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas
|
|||||||
block.thermal-pump.description = A bomba final.
|
block.thermal-pump.description = A bomba final.
|
||||||
block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos.
|
block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos.
|
||||||
block.pulse-conduit.description = Bloco avancado de transporte de liquido. Transporta liquidos mais rápido e armazena mais que os canos padrões.
|
block.pulse-conduit.description = Bloco avancado de transporte de liquido. Transporta liquidos mais rápido e armazena mais que os canos padrões.
|
||||||
block.liquid-router.description = Aceita liquidos de uma direcão e os joga em 3 direções igualmente. Pode armazenar uma certa quantidade de liquido. Util para espalhar liquidos de uma fonte para multiplos alvos.
|
block.plated-conduit.description = Move líquidos na mesma velocidade que canos de pulso, mas possui mais blindagem. Não aceita fluidos dos lados de nada além de outros canos.\nVaza menos.
|
||||||
|
block.liquid-router.description = Aceita liquidos de uma direcão e os joga em 3 direções igualmente. Pode armazenar uma certa quantidade de liquido. Útil para espalhar líquidos de uma fonte para múltiplos alvos.
|
||||||
block.liquid-tank.description = Armazena grandes quantidades de liquido. Use quando a demanda de materiais não for constante ou para guardar itens para resfriar blocos vitais.
|
block.liquid-tank.description = Armazena grandes quantidades de liquido. Use quando a demanda de materiais não for constante ou para guardar itens para resfriar blocos vitais.
|
||||||
block.liquid-junction.description = Age como uma ponte para dois canos que se cruzam. Útil em situações em que há dois cano carregando liquidos diferentes até localizações diferentes.
|
block.liquid-junction.description = Age como uma ponte para dois canos que se cruzam. Útil em situações em que há dois cano carregando liquidos diferentes até localizações diferentes.
|
||||||
block.bridge-conduit.description = Bloco de transporte de liquidos avancados. Possibilita o transporte de liquido sobre 3 blocos acima de construções ou paredes
|
block.bridge-conduit.description = Bloco de transporte de liquidos avancados. Possibilita o transporte de liquido sobre 3 blocos acima de construções ou paredes
|
||||||
@@ -1106,26 +1174,27 @@ block.phase-conduit.description = Bloco avancado de transporte de liquido. Usa e
|
|||||||
block.power-node.description = Transmite energia para células conectadas. A célula vai receber energia ou alimentar qualquer bloco adjacente.
|
block.power-node.description = Transmite energia para células conectadas. A célula vai receber energia ou alimentar qualquer bloco adjacente.
|
||||||
block.power-node-large.description = Uma célula de energia avançada com maior alcance e mais conexões.
|
block.power-node-large.description = Uma célula de energia avançada com maior alcance e mais conexões.
|
||||||
block.surge-tower.description = Uma célula de energia com um extremo alcance mas com menos conexões disponíveis.
|
block.surge-tower.description = Uma célula de energia com um extremo alcance mas com menos conexões disponíveis.
|
||||||
|
block.diode.description = A energia de baterias pode fluir através desse bloco em apenas uma direção, mas apenas se o outro lado possuir menos energia armazenada.
|
||||||
block.battery.description = Armazena energia em tempos de energia excedente. Libera energia em tempos de déficit.
|
block.battery.description = Armazena energia em tempos de energia excedente. Libera energia em tempos de déficit.
|
||||||
block.battery-large.description = Guarda muito mais energia que uma beteria comum.
|
block.battery-large.description = Guarda muito mais energia que uma bateria comum.
|
||||||
block.combustion-generator.description = Gera energia usando combustível ou petróleo.
|
block.combustion-generator.description = Gera energia queimando materiais inflamáveis, como carvão.
|
||||||
block.thermal-generator.description = Gera uma quantidade grande de energia usando lava.
|
block.thermal-generator.description = Gera energia quando colocado em lugares quentes.
|
||||||
block.turbine-generator.description = Mais eficiente que o gerador de Combustão, Mas requer agua adicional.
|
block.turbine-generator.description = Mais eficiente que o gerador à combustão, mas requer água adicional para a geração de vapor.
|
||||||
block.differential-generator.description = Gera grandes quantidades de Energia. Utiliza a diferença de temperatura entre o Fluído Criogênico e a Piratita.
|
block.differential-generator.description = Gera grandes quantidades de energia. Utiliza a diferença de temperatura entre o Fluido Criogênico e a Piratita.
|
||||||
block.rtg-generator.description = Um Gerador termoelétrico de radioisótopos que não precisa de refriamento mas dá muito menos energia que o reator de tório.
|
block.rtg-generator.description = Um Gerador termoelétrico de radioisótopos que não precisa de refriamento mas dá muito menos energia que o reator de tório.
|
||||||
block.solar-panel.description = Gera pequenas quantidades de energia do sol.
|
block.solar-panel.description = Gera pequenas quantidades de energia do sol.
|
||||||
block.solar-panel-large.description = Dá muito mais energia que o painel solar comum, Mas sua produção é mais cara.
|
block.solar-panel-large.description = Uma versão significantemente mais eficiente que o painel solar padrão.
|
||||||
block.thorium-reactor.description = Gera altas quantidades de energia do torio radioativo. Requer resfriamento constante. Vai explodir violentamente Se resfriamento insuficiente for fornecido.
|
block.thorium-reactor.description = Gera altas quantidades de energia do torio radioativo. Requer resfriamento constante. Vai explodir violentamente Se resfriamento insuficiente for fornecido.
|
||||||
block.impact-reactor.description = An advanced generator, capable of creating massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process.
|
block.impact-reactor.description = Um gerador avançado, capaz de criar quantidades enormes de energia em seu poder total. Requer uma entrada significativa de energia ao iniciar.
|
||||||
block.mechanical-drill.description = Uma broca barata. Quando colocado em blocos apropriados, retira itens em um ritmo lento e indefinitavamente.
|
block.mechanical-drill.description = Uma broca barata. Quando colocado em blocos apropriados, retira itens em um ritmo lento e indefinitavamente.
|
||||||
block.pneumatic-drill.description = Uma broca improvisada que é mais rápida e capaz de processar materiais mais duros usando a pressão do ar
|
block.pneumatic-drill.description = Uma broca improvisada que é mais rápida e capaz de processar materiais mais duros usando a pressão do ar
|
||||||
block.laser-drill.description = Possibilita a mineração ainda mais rapida usando tecnologia a laser, Mas requer poder adcionalmente torio radioativo pode ser recuperado com essa mineradora
|
block.laser-drill.description = Possibilita a mineração ainda mais rapida usando tecnologia a laser, Mas requer poder adcionalmente torio radioativo pode ser recuperado com essa mineradora
|
||||||
block.blast-drill.description = A melhor mineradora. Requer muita energia.
|
block.blast-drill.description = A melhor mineradora. Requer muita energia.
|
||||||
block.water-extractor.description = Extrai água do chão. Use quando não tive nenhum lago proximo
|
block.water-extractor.description = Extrai água do chão. Use quando não tive nenhum lago proximo
|
||||||
block.cultivator.description = Cultiva o solo com agua para pegar bio materia.
|
block.cultivator.description = Cultiva o solo com agua para pegar bio materia.
|
||||||
block.oil-extractor.description = Usa altas quantidades de energia Para extrair oleo da areia. Use quando não tiver fontes de oleo por perto
|
block.water-extractor.description = Extrai água subterrânea. Usado em locais sem água superficial disponível.
|
||||||
block.core-shard.description = Primeira iteração da cápsula do núcleo. Uma vez destruida, o controle da região inteira é perdido. Não deixe isso acontecer.
|
block.cultivator.description = Cultiva pequenas concentrações de esporos na atmosfera em cápsulas prontas.
|
||||||
block.core-foundation.description = A segunda versão do núcleo. Melhor armadura. Guarda mais recursos.
|
block.oil-extractor.description = Usa altas quantidades de energia para extrair petróleo da areia. Use quando não tiver fontes de petróleo por perto.
|
||||||
block.core-nucleus.description = A terceira e ultima iteração do núcleo. Extremamente bem armadurada. Guarda quantidades massivas de recursos.
|
block.core-nucleus.description = A terceira e ultima iteração do núcleo. Extremamente bem armadurada. Guarda quantidades massivas de recursos.
|
||||||
block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container.
|
block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container.
|
||||||
block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container.
|
block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container.
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ link.discord.description = Официальный Discord-сервер Mindustry
|
|||||||
link.reddit.description = Сабреддит Mindustry
|
link.reddit.description = Сабреддит Mindustry
|
||||||
link.github.description = Исходный код игры
|
link.github.description = Исходный код игры
|
||||||
link.changelog.description = Список изменений
|
link.changelog.description = Список изменений
|
||||||
link.dev-builds.description = Нестабильные версии
|
link.dev-builds.description = Нестабильные разрабатываемые версии
|
||||||
link.trello.description = Официальная доска Trello для запланированных функций
|
link.trello.description = Официальная доска Trello для запланированных функций
|
||||||
link.itch.io.description = Страница itch.io с загрузками игры
|
link.itch.io.description = Страница itch.io с загрузками игры
|
||||||
link.google-play.description = Скачать для Android с Google Play
|
link.google-play.description = Скачать для Android с Google Play
|
||||||
|
link.f-droid.description = Скачать для Android с F-Droid
|
||||||
link.wiki.description = Официальная вики
|
link.wiki.description = Официальная вики
|
||||||
|
link.feathub.description = Предложить новые функции
|
||||||
linkfail = Не удалось открыть ссылку!\nURL-адрес был скопирован в буфер обмена.
|
linkfail = Не удалось открыть ссылку!\nURL-адрес был скопирован в буфер обмена.
|
||||||
screenshot = Cкриншот сохранён в {0}
|
screenshot = Cкриншот сохранён в {0}
|
||||||
screenshot.invalid = Карта слишком большая, возможно, не хватает памяти для скриншота.
|
screenshot.invalid = Карта слишком большая, возможно, не хватает памяти для скриншота.
|
||||||
@@ -18,12 +20,15 @@ gameover = Игра окончена
|
|||||||
gameover.pvp = [accent]{0}[] команда победила!
|
gameover.pvp = [accent]{0}[] команда победила!
|
||||||
highscore = [accent]Новый рекорд!
|
highscore = [accent]Новый рекорд!
|
||||||
copied = Скопировано.
|
copied = Скопировано.
|
||||||
|
|
||||||
load.sound = Звуки
|
load.sound = Звуки
|
||||||
load.map = Карты
|
load.map = Карты
|
||||||
load.image = Изображения
|
load.image = Изображения
|
||||||
load.content = Содержимое
|
load.content = Содержимое
|
||||||
load.system = Система
|
load.system = Система
|
||||||
load.mod = Модификации
|
load.mod = Модификации
|
||||||
|
load.scripts = Скрипты
|
||||||
|
|
||||||
schematic = Схема
|
schematic = Схема
|
||||||
schematic.add = Сохранить схему...
|
schematic.add = Сохранить схему...
|
||||||
schematics = Схемы
|
schematics = Схемы
|
||||||
@@ -40,6 +45,7 @@ schematic.saved = Схема сохранена.
|
|||||||
schematic.delete.confirm = Эта схема будет поджарена Испепелителем.
|
schematic.delete.confirm = Эта схема будет поджарена Испепелителем.
|
||||||
schematic.rename = Переименовать схему
|
schematic.rename = Переименовать схему
|
||||||
schematic.info = {0}x{1}, {2} блоков
|
schematic.info = {0}x{1}, {2} блоков
|
||||||
|
|
||||||
stat.wave = Волн отражено:[accent] {0}
|
stat.wave = Волн отражено:[accent] {0}
|
||||||
stat.enemiesDestroyed = Врагов уничтожено:[accent] {0}
|
stat.enemiesDestroyed = Врагов уничтожено:[accent] {0}
|
||||||
stat.built = Строений построено:[accent] {0}
|
stat.built = Строений построено:[accent] {0}
|
||||||
@@ -47,6 +53,7 @@ stat.destroyed = Строений уничтожено:[accent] {0}
|
|||||||
stat.deconstructed = Строений деконструировано:[accent] {0}
|
stat.deconstructed = Строений деконструировано:[accent] {0}
|
||||||
stat.delivered = Ресурсов запущено:
|
stat.delivered = Ресурсов запущено:
|
||||||
stat.rank = Финальный ранг: [accent]{0}
|
stat.rank = Финальный ранг: [accent]{0}
|
||||||
|
|
||||||
launcheditems = [accent]Запущенные предметы
|
launcheditems = [accent]Запущенные предметы
|
||||||
launchinfo = [unlaunched]Нажмите на кнопку [ЗАПУСК], чтобы получить предметы, которые отмечены синим цветом.
|
launchinfo = [unlaunched]Нажмите на кнопку [ЗАПУСК], чтобы получить предметы, которые отмечены синим цветом.
|
||||||
map.delete = Вы действительно хотите удалить карту «[accent]{0}[]»?
|
map.delete = Вы действительно хотите удалить карту «[accent]{0}[]»?
|
||||||
@@ -55,7 +62,7 @@ level.select = Выбор карты
|
|||||||
level.mode = Режим игры:
|
level.mode = Режим игры:
|
||||||
showagain = Не показывать снова до следующей сессии
|
showagain = Не показывать снова до следующей сессии
|
||||||
coreattack = < Ядро находится под атакой! >
|
coreattack = < Ядро находится под атакой! >
|
||||||
nearpoint = [[ [scarlet]ПОКИНЬТЕ ТОЧКУ ВЫСАДКИ НЕМЕДЛЕННО[] ]\nАннигиляция неизбежна
|
nearpoint = [[ [scarlet]ПОКИНЬТЕ ТОЧКУ ВЫСАДКИ НЕМЕДЛЕННО[] ]\nаннигиляция неизбежна
|
||||||
database = База данных ядра
|
database = База данных ядра
|
||||||
savegame = Сохранить игру
|
savegame = Сохранить игру
|
||||||
loadgame = Загрузить игру
|
loadgame = Загрузить игру
|
||||||
@@ -64,7 +71,7 @@ customgame = Пользовательская игра
|
|||||||
newgame = Новая игра
|
newgame = Новая игра
|
||||||
none = <ничего>
|
none = <ничего>
|
||||||
minimap = Мини-карта
|
minimap = Мини-карта
|
||||||
position = Позиция
|
position = Координаты
|
||||||
close = Закрыть
|
close = Закрыть
|
||||||
website = Веб-сайт
|
website = Веб-сайт
|
||||||
quit = Выход
|
quit = Выход
|
||||||
@@ -74,36 +81,45 @@ maps.browse = Просмотр карт
|
|||||||
continue = Продолжить
|
continue = Продолжить
|
||||||
maps.none = [lightgray]Карты не найдены!
|
maps.none = [lightgray]Карты не найдены!
|
||||||
invalid = Недопустимый
|
invalid = Недопустимый
|
||||||
|
pickcolor = Выбрать цвет
|
||||||
preparingconfig = Подготовка конфигурации
|
preparingconfig = Подготовка конфигурации
|
||||||
preparingcontent = Подготовка содержимого
|
preparingcontent = Подготовка содержимого
|
||||||
uploadingcontent = Выгрузка содержимого
|
uploadingcontent = Выгрузка содержимого
|
||||||
uploadingpreviewfile = Выгрузка файла предпросмотра
|
uploadingpreviewfile = Выгрузка файла предпросмотра
|
||||||
committingchanges = Внесение изменений
|
committingchanges = Внесение изменений
|
||||||
done = Готово
|
done = Готово
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Ваше устройство не поддерживает эту возможность.
|
||||||
mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и могут содержать много ошибок[]. Докладывайте о любых проблемах, которые Вы найдете в Mindustry GitHub или Discord.
|
|
||||||
|
mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и [scarlet]могут содержать много ошибок[]. Докладывайте о любых проблемах, которые Вы найдете в Mindustry Github или Discord.
|
||||||
mods.alpha = [accent](Альфа)
|
mods.alpha = [accent](Альфа)
|
||||||
mods = Модификации
|
mods = Модификации
|
||||||
mods.none = [LIGHT_GRAY]Модификации не найдены!
|
mods.none = [LIGHT_GRAY]Модификации не найдены!
|
||||||
mods.guide = Руководство по созданию модификаций
|
mods.guide = Руководство по модам
|
||||||
mods.report = Доложить об ошибке
|
mods.report = Доложить об ошибке
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Открыть папку с модификациями
|
||||||
mod.enabled = [lightgray]Включён
|
mod.enabled = [lightgray]Включён
|
||||||
mod.disabled = [scarlet]Выключен
|
mod.disabled = [scarlet]Выключен
|
||||||
mod.disable = Выключить
|
mod.disable = Выкл.
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Невозможно удалить модификацию. Возможно, файл используется.
|
||||||
|
mod.requiresversion = [scarlet]Требуемая минимальная версия игры: [accent]{0}
|
||||||
mod.missingdependencies = [scarlet]Не найдены родительские модификации: {0}
|
mod.missingdependencies = [scarlet]Не найдены родительские модификации: {0}
|
||||||
|
mod.erroredcontent = [scarlet]Ошибки содержимого
|
||||||
|
mod.errors = Ошибки были вызваны загружаемым содержимым.
|
||||||
|
mod.noerrorplay = [scarlet]У Вас есть модификации с ошибками.[] Выключите проблемные модификации или исправьте ошибки перед игрой.
|
||||||
mod.nowdisabled = [scarlet]Модификации '{0}' требуются родительские модификации:[accent] {1}\n[lightgray]Сначала нужно загрузить их.\nЭта модификация будет автоматически отключена.
|
mod.nowdisabled = [scarlet]Модификации '{0}' требуются родительские модификации:[accent] {1}\n[lightgray]Сначала нужно загрузить их.\nЭта модификация будет автоматически отключена.
|
||||||
mod.enable = Включить
|
mod.enable = Вкл.
|
||||||
mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях.
|
mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях.
|
||||||
mod.reloadrequired = [scarlet]Необходим перезапуск
|
mod.reloadrequired = [scarlet]Необходим перезапуск
|
||||||
mod.import = Импортировать модификацию
|
mod.import = Импортировать модификацию
|
||||||
mod.import.github = Импортировать модификацию с GitHub
|
mod.import.github = Импортировать мод с GitHub
|
||||||
mod.remove.confirm = Этот мод будет удалён.
|
mod.item.remove = Этот предмет является частью модификации [accent]«{0}»[]. Чтобы удалить его, удалите саму модификацию.
|
||||||
|
mod.remove.confirm = Эта модификация будет удалена.
|
||||||
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
||||||
mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или оно больше не установлено. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0}
|
mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или оно больше не установлено. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0}
|
||||||
mod.preview.missing = Перед публикацией этой модификации в Мастерской, Вы должны добавить изображение предпросмотра.\nРазместите изображение с именем[accent] preview.png[] в папке модификации и попробуйте снова.
|
mod.preview.missing = Перед публикацией этой модификации в Мастерской, Вы должны добавить изображение предпросмотра.\nРазместите изображение с именем[accent] preview.png[] в папке модификации и попробуйте снова.
|
||||||
mod.folder.missing = Модификации могут быть опубликованы в Мастерской только в виде папки.\nЧтобы конвертировать любой мод в папку, просто извлеките его из архива и удалите старый архив .zip, затем перезапустите игру или перезагрузите модификации.
|
mod.folder.missing = Модификации могут быть опубликованы в Мастерской только в виде папки.\nЧтобы конвертировать любой мод в папку, просто извлеките его из архива и удалите старый архив .zip, затем перезапустите игру или перезагрузите модификации.
|
||||||
|
mod.scripts.unsupported = Ваше устройство не поддерживает скрипты в модификациях. Некоторые модификации могут работать некорректно.
|
||||||
|
|
||||||
about.button = Об игре
|
about.button = Об игре
|
||||||
name = Имя:
|
name = Имя:
|
||||||
noname = Для начала, придумайте[accent] себе имя[].
|
noname = Для начала, придумайте[accent] себе имя[].
|
||||||
@@ -111,8 +127,8 @@ filename = Имя файла:
|
|||||||
unlocked = Новый контент разблокирован!
|
unlocked = Новый контент разблокирован!
|
||||||
completed = [accent]Завершено
|
completed = [accent]Завершено
|
||||||
techtree = Дерево технологий
|
techtree = Дерево технологий
|
||||||
research.list = [lightgray]Исследование:
|
research.list = [lightgray]Исследуйте:
|
||||||
research = Исследование
|
research = Исследовать
|
||||||
researched = [lightgray]{0} исследовано.
|
researched = [lightgray]{0} исследовано.
|
||||||
players = Игроков: {0}
|
players = Игроков: {0}
|
||||||
players.single = {0} игрок
|
players.single = {0} игрок
|
||||||
@@ -133,7 +149,7 @@ server.kicked.idInUse = Вы уже на этом сервере! Соедине
|
|||||||
server.kicked.customClient = Этот сервер не поддерживает пользовательские сборки. Загрузите официальную версию.
|
server.kicked.customClient = Этот сервер не поддерживает пользовательские сборки. Загрузите официальную версию.
|
||||||
server.kicked.gameover = Игра окончена!
|
server.kicked.gameover = Игра окончена!
|
||||||
server.versions = Ваша версия:[accent] {0}[]\nВерсия сервера:[accent] {1}[]
|
server.versions = Ваша версия:[accent] {0}[]\nВерсия сервера:[accent] {1}[]
|
||||||
host.info = Кнопка [accent]Сервер[] запускает сервер на порте [scarlet]6567[]. \nЛюбой пользователь в той же [lightgray]локальной сети или WiFi[] должен увидеть ваш сервер в своём списке серверов.\n\nЕсли Вы хотите, чтобы люди могли подключаться откуда угодно по IP, то требуется [accent]переадресация (проброс) портов[] и наличие [red]ВНЕШНЕГО[] WAN адреса (WAN адрес [red]НЕ должен[] начинаться с [red]10[][lightgray].x.x.x[], [red]100.64[][lightgray].x.x[], [red]172.16[][lightgray].x.x[], [red]192.168[][lightgray].x.x[], [red]127[][lightgray].x.x.x[])!\nКлиентам мобильных операторов нужно уточнять информацию в личном кабинете на сайте вашего оператора!\n\n[lightgray]Примечание: Если у кого-то возникают проблемы с подключением к вашей игре по локальной сети, убедитесь, что Вы разрешили доступ Mindustry к вашей локальной сети в настройках брандмауэра. Обратите внимание, что публичные сети иногда не позволяют обнаружение сервера.
|
host.info = Кнопка [accent]Открыть сервер[] запускает сервер на порте [scarlet]6567[].\nЛюбой пользователь в той же [lightgray]локальной сети или WiFi[] должен увидеть ваш сервер в своём списке серверов.\n\nЕсли Вы хотите, чтобы люди могли подключаться откуда угодно по IP, то требуется [accent]переадресация (проброс) портов[] и наличие [red]ВНЕШНЕГО[] WAN адреса (WAN адрес [red]НЕ должен[] начинаться с [red]10[][lightgray].x.x.x[], [red]100.64[][lightgray].x.x[], [red]172.16[][lightgray].x.x[], [red]192.168[][lightgray].x.x[], [red]127[][lightgray].x.x.x[])!\nКлиентам мобильных операторов нужно уточнять информацию в личном кабинете на сайте вашего оператора!\n\n[lightgray]Примечание: Если у кого-то возникают проблемы с подключением к вашей игре по локальной сети, убедитесь, что Вы разрешили доступ Mindustry к вашей локальной сети в настройках брандмауэра. Обратите внимание, что публичные сети иногда не позволяют обнаружение сервера.
|
||||||
join.info = Здесь Вы можете ввести [accent]IP-адрес сервера[] для подключения или открыть [accent]локальную сеть[] для подключения к другим серверам.\nПоддерживаются оба многопользовательских режима: LAN и WAN.\n\n[lightgray]Примечание: это НЕ автоматический глобальный список серверов; если Вы хотите подключиться к кому-то по IP, вам нужно спросить у хоста его IP-адрес.
|
join.info = Здесь Вы можете ввести [accent]IP-адрес сервера[] для подключения или открыть [accent]локальную сеть[] для подключения к другим серверам.\nПоддерживаются оба многопользовательских режима: LAN и WAN.\n\n[lightgray]Примечание: это НЕ автоматический глобальный список серверов; если Вы хотите подключиться к кому-то по IP, вам нужно спросить у хоста его IP-адрес.
|
||||||
hostserver = Запустить многопользовательский сервер
|
hostserver = Запустить многопользовательский сервер
|
||||||
invitefriends = Пригласить друзей
|
invitefriends = Пригласить друзей
|
||||||
@@ -152,7 +168,7 @@ trace.ip = IP: [accent]{0}
|
|||||||
trace.id = ID: [accent]{0}
|
trace.id = ID: [accent]{0}
|
||||||
trace.mobile = Мобильный клиент: [accent]{0}
|
trace.mobile = Мобильный клиент: [accent]{0}
|
||||||
trace.modclient = Пользовательский клиент: [accent]{0}
|
trace.modclient = Пользовательский клиент: [accent]{0}
|
||||||
invalidid = Недопустимый уникальный идентификатор клиента! Отправьте отчёт об ошибке.
|
invalidid = Недопустимый ID клиента! Отправьте отчёт об ошибке.
|
||||||
server.bans = Блокировки
|
server.bans = Блокировки
|
||||||
server.bans.none = Заблокированных игроков нет!
|
server.bans.none = Заблокированных игроков нет!
|
||||||
server.admins = Администраторы
|
server.admins = Администраторы
|
||||||
@@ -175,7 +191,7 @@ joingame.ip = Адрес:
|
|||||||
disconnect = Отключено.
|
disconnect = Отключено.
|
||||||
disconnect.error = Ошибка соединения.
|
disconnect.error = Ошибка соединения.
|
||||||
disconnect.closed = Соединение закрыто.
|
disconnect.closed = Соединение закрыто.
|
||||||
disconnect.timeout = Время истекло.
|
disconnect.timeout = Время ожидания истекло.
|
||||||
disconnect.data = Ошибка при загрузке данных мира!
|
disconnect.data = Ошибка при загрузке данных мира!
|
||||||
cantconnect = Не удаётся присоединиться к игре ([accent]{0}[]).
|
cantconnect = Не удаётся присоединиться к игре ([accent]{0}[]).
|
||||||
connecting = [accent]Подключение…
|
connecting = [accent]Подключение…
|
||||||
@@ -229,7 +245,7 @@ data.export = Экспортировать данные
|
|||||||
data.import = Импортировать данные
|
data.import = Импортировать данные
|
||||||
data.exported = Данные экспортированы.
|
data.exported = Данные экспортированы.
|
||||||
data.invalid = Эти игровые данные являются недействительными.
|
data.invalid = Эти игровые данные являются недействительными.
|
||||||
data.import.confirm = Импорт внешних данных сотрёт[scarlet] все[] ваши игровые данные.\n[accent]Это не может быть отменено![]\n\nКак только данные импортированы, ваша игра немедленно закроется.
|
data.import.confirm = Импорт внешних данных сотрёт[scarlet] все[] Ваши игровые данные.\n[accent]Это не может быть отменено![]\n\nКак только данные импортированы, Ваша игра немедленно закроется.
|
||||||
classic.export = Экспортировать данные классической версии
|
classic.export = Экспортировать данные классической версии
|
||||||
classic.export.text = [accent]Mindustry[] получил глобальное обновление.\nБыло обнаружено Классическое (версия 3.5 сборка 40) сохранение или карта. Вы хотите экспортировать эти сохранения в домашнюю папку вашего телефона, для использования в приложении Mindustry Classic?
|
classic.export.text = [accent]Mindustry[] получил глобальное обновление.\nБыло обнаружено Классическое (версия 3.5 сборка 40) сохранение или карта. Вы хотите экспортировать эти сохранения в домашнюю папку вашего телефона, для использования в приложении Mindustry Classic?
|
||||||
quit.confirm = Вы уверены, что хотите выйти?
|
quit.confirm = Вы уверены, что хотите выйти?
|
||||||
@@ -247,7 +263,7 @@ wave.waveInProgress = [lightgray]Волна продолжается
|
|||||||
waiting = [lightgray]Ожидание…
|
waiting = [lightgray]Ожидание…
|
||||||
waiting.players = Ожидание игроков…
|
waiting.players = Ожидание игроков…
|
||||||
wave.enemies = Враги: [lightgray]{0}
|
wave.enemies = Враги: [lightgray]{0}
|
||||||
wave.enemy = Остался [lightgray]{0} враг
|
wave.enemy = Остался {0} [lightgray]враг[]
|
||||||
loadimage = Загрузить изображение
|
loadimage = Загрузить изображение
|
||||||
saveimage = Сохранить изображение
|
saveimage = Сохранить изображение
|
||||||
unknown = Неизвестно
|
unknown = Неизвестно
|
||||||
@@ -270,12 +286,13 @@ missing = Этот предмет был удалён или перемещён.
|
|||||||
publishing = [accent]Отправка...
|
publishing = [accent]Отправка...
|
||||||
publish.confirm = Вы уверены, что хотите опубликовать этот предмет?\n\n[lightgray]Убедитесь, что Вы согласны с EULA Мастерской, иначе ваши предметы не будут отображаться!
|
publish.confirm = Вы уверены, что хотите опубликовать этот предмет?\n\n[lightgray]Убедитесь, что Вы согласны с EULA Мастерской, иначе ваши предметы не будут отображаться!
|
||||||
publish.error = Ошибка отправки предмета: {0}
|
publish.error = Ошибка отправки предмета: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Не удалось инициализировать сервисы Steam.\nОшибка: {0}
|
||||||
|
|
||||||
editor.brush = Кисть
|
editor.brush = Кисть
|
||||||
editor.openin = Открыть в редакторе
|
editor.openin = Открыть в редакторе
|
||||||
editor.oregen = Генерация руд
|
editor.oregen = Генерация руд
|
||||||
editor.oregen.info = Генерация руд:
|
editor.oregen.info = Генерация руд:
|
||||||
editor.mapinfo = Параметры карты
|
editor.mapinfo = Информация о карте
|
||||||
editor.author = Автор:
|
editor.author = Автор:
|
||||||
editor.description = Описание:
|
editor.description = Описание:
|
||||||
editor.nodescription = Чтобы опубликовать карту, она должна содержать по крайней мере 4 символа в описании.
|
editor.nodescription = Чтобы опубликовать карту, она должна содержать по крайней мере 4 символа в описании.
|
||||||
@@ -302,7 +319,7 @@ waves.invalid = Неверные волны в буфере обмена.
|
|||||||
waves.copied = Волны скопированы.
|
waves.copied = Волны скопированы.
|
||||||
waves.none = Враги не были определены.\nОбратите внимание, что пустые волны будут автоматически заменены обычной волной.
|
waves.none = Враги не были определены.\nОбратите внимание, что пустые волны будут автоматически заменены обычной волной.
|
||||||
editor.default = [lightgray]<По умолчанию>
|
editor.default = [lightgray]<По умолчанию>
|
||||||
details = Подробная информация…
|
details = Подробности…
|
||||||
edit = Редактировать…
|
edit = Редактировать…
|
||||||
editor.name = Название:
|
editor.name = Название:
|
||||||
editor.spawn = Создать боевую единицу
|
editor.spawn = Создать боевую единицу
|
||||||
@@ -340,13 +357,14 @@ editor.exportimage = Экспортировать изображение лан
|
|||||||
editor.exportimage.description = Экспортировать файл с изображением карты
|
editor.exportimage.description = Экспортировать файл с изображением карты
|
||||||
editor.loadimage = Импортировать\nизображение
|
editor.loadimage = Импортировать\nизображение
|
||||||
editor.saveimage = Экспортировать\nизображение
|
editor.saveimage = Экспортировать\nизображение
|
||||||
editor.unsaved = [scarlet]У вас есть несохранённые изменения![]\nВы уверены, что хотите выйти?
|
editor.unsaved = [scarlet]У Вас есть несохранённые изменения![]\nВы уверены, что хотите выйти?
|
||||||
editor.resizemap = Изменить размер карты
|
editor.resizemap = Изменить размер карты
|
||||||
editor.mapname = Название карты:
|
editor.mapname = Название карты:
|
||||||
editor.overwrite = [accent]Внимание!\nЭто перезапишет уже существующую карту.
|
editor.overwrite = [accent]Внимание!\nЭто перезапишет уже существующую карту.
|
||||||
editor.overwrite.confirm = [scarlet]Осторожно![] Карта с таким названием уже существует. Вы действительно хотите её перезаписать?
|
editor.overwrite.confirm = [scarlet]Осторожно![] Карта с таким названием уже существует. Вы действительно хотите её перезаписать?
|
||||||
editor.exists = Карта с таким именем уже существует.
|
editor.exists = Карта с таким именем уже существует.
|
||||||
editor.selectmap = Выберите карту для загрузки:
|
editor.selectmap = Выберите карту для загрузки:
|
||||||
|
|
||||||
toolmode.replace = Заменить
|
toolmode.replace = Заменить
|
||||||
toolmode.replace.description = Рисует только\nна сплошных блоках.
|
toolmode.replace.description = Рисует только\nна сплошных блоках.
|
||||||
toolmode.replaceall = Заменить всё
|
toolmode.replaceall = Заменить всё
|
||||||
@@ -361,6 +379,7 @@ toolmode.fillteams = Изменить команду блоков
|
|||||||
toolmode.fillteams.description = Изменяет принадлежность\nблоков к команде.
|
toolmode.fillteams.description = Изменяет принадлежность\nблоков к команде.
|
||||||
toolmode.drawteams = Изменить команду блока
|
toolmode.drawteams = Изменить команду блока
|
||||||
toolmode.drawteams.description = Изменяет принадлежность\nблока к команде.
|
toolmode.drawteams.description = Изменяет принадлежность\nблока к команде.
|
||||||
|
|
||||||
filters.empty = [lightgray]Нет фильтров! Добавьте один при помощи кнопки ниже.
|
filters.empty = [lightgray]Нет фильтров! Добавьте один при помощи кнопки ниже.
|
||||||
filter.distort = Искажение
|
filter.distort = Искажение
|
||||||
filter.noise = Шум
|
filter.noise = Шум
|
||||||
@@ -392,6 +411,7 @@ filter.option.floor2 = Вторая поверхность
|
|||||||
filter.option.threshold2 = Вторичный предельный порог
|
filter.option.threshold2 = Вторичный предельный порог
|
||||||
filter.option.radius = Радиус
|
filter.option.radius = Радиус
|
||||||
filter.option.percentile = Процентиль
|
filter.option.percentile = Процентиль
|
||||||
|
|
||||||
width = Ширина:
|
width = Ширина:
|
||||||
height = Высота:
|
height = Высота:
|
||||||
menu = Меню
|
menu = Меню
|
||||||
@@ -407,10 +427,11 @@ tutorial = Обучение
|
|||||||
tutorial.retake = Перепройти обучение
|
tutorial.retake = Перепройти обучение
|
||||||
editor = Редактор
|
editor = Редактор
|
||||||
mapeditor = Редактор карт
|
mapeditor = Редактор карт
|
||||||
|
|
||||||
abandon = Покинуть
|
abandon = Покинуть
|
||||||
abandon.text = Эта зона и все её ресурсы будут отданы противнику.
|
abandon.text = Эта зона и все её ресурсы будут отданы противнику.
|
||||||
locked = Заблокировано
|
locked = Заблокировано
|
||||||
complete = [lightgray]Достигнута:
|
complete = [lightgray]Выполнить:
|
||||||
requirement.wave = Достигните {0} волны в зоне {1}
|
requirement.wave = Достигните {0} волны в зоне {1}
|
||||||
requirement.core = Уничтожьте вражеское ядро в зоне {0}
|
requirement.core = Уничтожьте вражеское ядро в зоне {0}
|
||||||
requirement.unlock = Разблокируйте {0}
|
requirement.unlock = Разблокируйте {0}
|
||||||
@@ -429,14 +450,15 @@ addall = Добавить всё
|
|||||||
configure.locked = [lightgray]Разблокировка выгрузки ресурсов: {0}.
|
configure.locked = [lightgray]Разблокировка выгрузки ресурсов: {0}.
|
||||||
configure.invalid = Количество должно быть числом между 0 и {0}.
|
configure.invalid = Количество должно быть числом между 0 и {0}.
|
||||||
zone.unlocked = Зона «[lightgray]{0}» теперь разблокирована.
|
zone.unlocked = Зона «[lightgray]{0}» теперь разблокирована.
|
||||||
zone.requirement.complete = Вы достигли {0}-ой волны,\nУсловия для зоны «{1}» выполнены.
|
zone.requirement.complete = Условия для зоны «{0}» выполнены:[lightgray]\n{1}
|
||||||
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
|
zone.config.unlocked = Выгрузка ресурсов разблокирована:[lightgray]\n{0}
|
||||||
zone.resources = [lightgray]Обнаруженные ресурсы:
|
zone.resources = [lightgray]Обнаруженные ресурсы:
|
||||||
zone.objective = [lightgray]Цель: [accent]{0}
|
zone.objective = [lightgray]Цель: [accent]{0}
|
||||||
zone.objective.survival = Выжить
|
zone.objective.survival = Выжить
|
||||||
zone.objective.attack = Уничтожить вражеское ядро
|
zone.objective.attack = Уничтожить вражеское ядро
|
||||||
add = Добавить…
|
add = Добавить…
|
||||||
boss.health = Здоровье босса
|
boss.health = Здоровье босса
|
||||||
|
|
||||||
connectfail = [crimson]Ошибка подключения:\n\n[accent]{0}
|
connectfail = [crimson]Ошибка подключения:\n\n[accent]{0}
|
||||||
error.unreachable = Сервер недоступен.\nВы уверены, что адрес введён корректно?
|
error.unreachable = Сервер недоступен.\nВы уверены, что адрес введён корректно?
|
||||||
error.invalidaddress = Некорректный адрес.
|
error.invalidaddress = Некорректный адрес.
|
||||||
@@ -446,11 +468,12 @@ error.alreadyconnected = Вы уже подключены.
|
|||||||
error.mapnotfound = Файл карты не найден!
|
error.mapnotfound = Файл карты не найден!
|
||||||
error.io = Сетевая ошибка ввода-вывода.
|
error.io = Сетевая ошибка ввода-вывода.
|
||||||
error.any = Неизвестная сетевая ошибка.
|
error.any = Неизвестная сетевая ошибка.
|
||||||
error.bloom = Не удалось инициализировать свечение (Bloom).\nВозможно, ваше устройство не поддерживает его.
|
error.bloom = Не удалось инициализировать свечение (Bloom).\nВозможно, Ваше устройство не поддерживает его.
|
||||||
|
|
||||||
zone.groundZero.name = Отправная точка
|
zone.groundZero.name = Отправная точка
|
||||||
zone.desertWastes.name = Покинутые пустоши
|
zone.desertWastes.name = Покинутые пустоши
|
||||||
zone.craters.name = Кратеры
|
zone.craters.name = Кратеры
|
||||||
zone.frozenForest.name = Ледяной Лес
|
zone.frozenForest.name = Ледяной лес
|
||||||
zone.ruinousShores.name = Разрушенные берега
|
zone.ruinousShores.name = Разрушенные берега
|
||||||
zone.stainedMountains.name = Окрашенные горы
|
zone.stainedMountains.name = Окрашенные горы
|
||||||
zone.desolateRift.name = Пустынный разлом
|
zone.desolateRift.name = Пустынный разлом
|
||||||
@@ -461,24 +484,27 @@ zone.saltFlats.name = Соляные равнины
|
|||||||
zone.impact0078.name = Воздействие 0078
|
zone.impact0078.name = Воздействие 0078
|
||||||
zone.crags.name = Скалы
|
zone.crags.name = Скалы
|
||||||
zone.fungalPass.name = Грибной перевал
|
zone.fungalPass.name = Грибной перевал
|
||||||
|
|
||||||
zone.groundZero.description = Оптимальная локация для повторных игр. Низкая вражеская угроза. Немного ресурсов.\nСоберите как можно больше свинца и меди.\nДвигайтесь дальше.
|
zone.groundZero.description = Оптимальная локация для повторных игр. Низкая вражеская угроза. Немного ресурсов.\nСоберите как можно больше свинца и меди.\nДвигайтесь дальше.
|
||||||
zone.frozenForest.description = Даже здесь, ближе к горам, споры распространились. Холодные температуры не могут сдерживать их вечно.\n\nНачните вкладываться в энергию. Постройте генераторы внутреннего сгорания. Научитесь пользоваться регенератором.
|
zone.frozenForest.description = Даже здесь, ближе к горам, споры распространились. Холодные температуры не могут сдерживать их вечно.\n\nНачните вкладываться в энергию. Постройте генераторы внутреннего сгорания. Научитесь пользоваться регенератором.
|
||||||
zone.desertWastes.description = Эти пустоши огромны, непредсказуемы и пронизаны заброшенными секторальными структурами.\nВ регионе присутствует уголь. Сожгите его для получения энергии, или синтезируйте графит.\n\n[lightgray]Место посадки здесь может не быть гарантировано.
|
zone.desertWastes.description = Эти пустоши огромны, непредсказуемы и пронизаны заброшенными секторальными структурами.\nВ регионе присутствует уголь. Сожгите его для получения энергии, или синтезируйте графит.\n\n[lightgray]Место посадки здесь может не быть гарантировано.
|
||||||
zone.saltFlats.description = На окраине пустыни лежат соляные равнины. В этой местности можно найти немного ресурсов.\n\nВраги возвели здесь комплекс хранения ресурсов. Искорените их ядро. Не оставьте камня на камне.
|
zone.saltFlats.description = На окраине пустыни лежат соляные равнины. В этой местности можно найти немного ресурсов.\n\nВраги возвели здесь комплекс хранения ресурсов. Искорените их ядро. Не оставьте камня на камне.
|
||||||
zone.craters.description = Вода скопилась в этом кратере, реликвии времён старых войн. Восстановите область. Соберите песок. Выплавите метастекло. Качайте воду для охлаждения турелей и буров.
|
zone.craters.description = Вода скопилась в этом кратере, реликвии времён старых войн. Восстановите область. Соберите песок. Выплавьте метастекло. Качайте воду для охлаждения турелей и буров.
|
||||||
zone.ruinousShores.description = Мимо пустошей проходит береговая линия. Когда-то здесь располагался массив береговой обороны. Не так много от него осталось. Только самые базовые оборонительные сооружения остались невредимыми, всё остальное превратилось в металлолом.\nПродолжайте экспансию вовне. Переоткройте для себя технологии.
|
zone.ruinousShores.description = Мимо пустошей проходит береговая линия. Когда-то здесь располагался массив береговой обороны. Не так много от него осталось. Только самые базовые оборонительные сооружения остались невредимыми, всё остальное превратилось в металлолом.\nПродолжайте экспансию вовне. Переоткройте для себя технологии.
|
||||||
zone.stainedMountains.description = Дальше, вглубь местности, лежат горы, еще не запятнанные спорами.\nИзвлеките изобилие титана в этой области. Узнайте, как его использовать.\n\nВражеское присутствие здесь сильнее. Не дайте им времени для отправки своих сильнейших боевых единиц.
|
zone.stainedMountains.description = Дальше, вглубь местности, лежат горы, еще не запятнанные спорами.\nИзвлеките изобилие титана в этой области. Научитесь им пользоваться.\n\nВражеское присутствие здесь сильнее. Не дайте им времени для отправки своих сильнейших боевых единиц.
|
||||||
zone.overgrowth.description = Эта заросшая область находится ближе к источнику спор.\nВраг организовал здесь форпост. Постройте боевые единицы «Титан». Уничтожьте его. Верните то, что было потеряно.
|
zone.overgrowth.description = Эта заросшая область находится ближе к источнику спор.\nВраг организовал здесь форпост. Постройте боевые единицы «Титан». Уничтожьте его. Верните то, что было потеряно.
|
||||||
zone.tarFields.description = Окраина зоны нефтедобычи, между горами и пустыней. Один из немногих районов с полезными запасами дёгтя.\nХотя область заброшенна, в этой области присутствуют поблизости некоторые опасные вражеские силы. Не стоит их недооценивать.\n\n[lightgray]Исследуйте технологию переработки нефти, если возможно.
|
zone.tarFields.description = Окраина зоны нефтедобычи, между горами и пустыней. Один из немногих районов с полезными запасами дёгтя.\nХотя эта область заброшенна, в ней поблизости присутствуют некоторые опасные вражеские силы. Не стоит их недооценивать.\n\n[lightgray]Исследуйте технологию переработки нефти, если возможно.
|
||||||
zone.desolateRift.description = Чрезвычайно опасная зона. Обилие ресурсов, но мало места. Высокий риск разрушения. Эвакуироваться нужно как можно скорее. Не расслабляйтесь во время больших перерывов между вражескими атаками.
|
zone.desolateRift.description = Чрезвычайно опасная зона. Обилие ресурсов, но мало места. Высокий риск разрушения. Эвакуироваться нужно как можно скорее. Не расслабляйтесь во время больших перерывов между вражескими атаками.
|
||||||
zone.nuclearComplex.description = Бывший завод по производству и переработке тория, превращенный в руины.\n[lightgray]Исследуйте торий и варианты его многочисленного применения.\n\nВраг присутствует здесь в большом числе, постоянно разведывая нападающих.
|
zone.nuclearComplex.description = Бывший завод по производству и переработке тория, превращенный в руины.\n[lightgray]Исследуйте торий и варианты его многочисленного применения.\n\nВраг присутствует здесь в большом числе, постоянно разведывая нападающих.
|
||||||
zone.fungalPass.description = Переходная область между высокими горами и более низкими, покрытыми спорами землями. Здесь расположена небольшая разведывательная база противника.\nУничтожьте ее.\nИспользуйте единицы «Кинжал» и «Камикадзе». Достаньте до обоих ядер.
|
zone.fungalPass.description = Переходная область между высокими горами и более низкими, покрытыми спорами землями. Здесь расположена небольшая разведывательная база противника.\nУничтожьте ее.\nИспользуйте единицы «Кинжал» и «Камикадзе». Достаньте до обоих ядер.
|
||||||
zone.impact0078.description = <вставить описание здесь>
|
zone.impact0078.description = <вставить описание здесь>
|
||||||
zone.crags.description = <вставить описание здесь>
|
zone.crags.description = <вставить описание здесь>
|
||||||
|
|
||||||
settings.language = Язык
|
settings.language = Язык
|
||||||
settings.data = Игровые данные
|
settings.data = Игровые данные
|
||||||
settings.reset = Сбросить по умолчанию
|
settings.reset = Сбросить по умолчанию
|
||||||
settings.rebind = Сменить
|
settings.rebind = Сменить
|
||||||
|
settings.resetKey = Сбросить
|
||||||
settings.controls = Управление
|
settings.controls = Управление
|
||||||
settings.game = Игра
|
settings.game = Игра
|
||||||
settings.sound = Звук
|
settings.sound = Звук
|
||||||
@@ -508,8 +534,8 @@ blocks.launchtime = Интервал запусков
|
|||||||
blocks.shootrange = Радиус действия
|
blocks.shootrange = Радиус действия
|
||||||
blocks.size = Размер
|
blocks.size = Размер
|
||||||
blocks.liquidcapacity = Вместимость жидкости
|
blocks.liquidcapacity = Вместимость жидкости
|
||||||
blocks.powerrange = Диапазон передачи энергии
|
blocks.powerrange = Дальность передачи энергии
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = Количество соединений
|
||||||
blocks.poweruse = Потребляет энергии
|
blocks.poweruse = Потребляет энергии
|
||||||
blocks.powerdamage = Энергия/урон
|
blocks.powerdamage = Энергия/урон
|
||||||
blocks.itemcapacity = Вместимость предметов
|
blocks.itemcapacity = Вместимость предметов
|
||||||
@@ -529,9 +555,10 @@ blocks.inaccuracy = Разброс
|
|||||||
blocks.shots = Выстрелы
|
blocks.shots = Выстрелы
|
||||||
blocks.reload = Выстрелы/секунду
|
blocks.reload = Выстрелы/секунду
|
||||||
blocks.ammo = Боеприпасы
|
blocks.ammo = Боеприпасы
|
||||||
bar.drilltierreq = Требуется лучший бур
|
|
||||||
bar.drillspeed = Скорость бурения: {0}/s
|
bar.drilltierreq = Требуется бур получше
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.drillspeed = Скорость бурения: {0}/с
|
||||||
|
bar.pumpspeed = Скорость выкачивания: {0}/с
|
||||||
bar.efficiency = Эффективность: {0}%
|
bar.efficiency = Эффективность: {0}%
|
||||||
bar.powerbalance = Энергия: {0}/с
|
bar.powerbalance = Энергия: {0}/с
|
||||||
bar.powerstored = Накоплено: {0}/{1}
|
bar.powerstored = Накоплено: {0}/{1}
|
||||||
@@ -544,6 +571,9 @@ bar.heat = Нагрев
|
|||||||
bar.power = Энергия
|
bar.power = Энергия
|
||||||
bar.progress = Прогресс строительства
|
bar.progress = Прогресс строительства
|
||||||
bar.spawned = Единицы: {0}/{1}
|
bar.spawned = Единицы: {0}/{1}
|
||||||
|
bar.input = Вход
|
||||||
|
bar.output = Выход
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] урона
|
bullet.damage = [stat]{0}[lightgray] урона
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] урона в радиусе ~[stat] {1}[lightgray] блоков
|
bullet.splashdamage = [stat]{0}[lightgray] урона в радиусе ~[stat] {1}[lightgray] блоков
|
||||||
bullet.incendiary = [stat]зажигательный
|
bullet.incendiary = [stat]зажигательный
|
||||||
@@ -555,6 +585,7 @@ bullet.freezing = [stat]замораживающий
|
|||||||
bullet.tarred = [stat]замедляющий, горючий
|
bullet.tarred = [stat]замедляющий, горючий
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x множитель боеприпасов
|
bullet.multiplier = [stat]{0}[lightgray]x множитель боеприпасов
|
||||||
bullet.reload = [stat]{0}[lightgray]x скорость стрельбы
|
bullet.reload = [stat]{0}[lightgray]x скорость стрельбы
|
||||||
|
|
||||||
unit.blocks = блоки
|
unit.blocks = блоки
|
||||||
unit.powersecond = единиц энергии/секунду
|
unit.powersecond = единиц энергии/секунду
|
||||||
unit.liquidsecond = жидкостных единиц/секунду
|
unit.liquidsecond = жидкостных единиц/секунду
|
||||||
@@ -567,6 +598,8 @@ unit.persecond = /сек
|
|||||||
unit.timesspeed = x скорость
|
unit.timesspeed = x скорость
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = предметов
|
unit.items = предметов
|
||||||
|
unit.thousands = тыс
|
||||||
|
unit.millions = мил
|
||||||
category.general = Основные
|
category.general = Основные
|
||||||
category.power = Энергия
|
category.power = Энергия
|
||||||
category.liquids = Жидкости
|
category.liquids = Жидкости
|
||||||
@@ -576,9 +609,10 @@ category.shooting = Стрельба
|
|||||||
category.optional = Дополнительные улучшения
|
category.optional = Дополнительные улучшения
|
||||||
setting.landscape.name = Только альбомный (горизонтальный) режим
|
setting.landscape.name = Только альбомный (горизонтальный) режим
|
||||||
setting.shadows.name = Тени
|
setting.shadows.name = Тени
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Автоматическая замена блоков
|
||||||
setting.linear.name = Линейная фильтрация
|
setting.linear.name = Линейная фильтрация
|
||||||
setting.hints.name = Подсказки
|
setting.hints.name = Подсказки
|
||||||
|
setting.buildautopause.name = Автоматическая приостановка строительства
|
||||||
setting.animatedwater.name = Анимированная вода
|
setting.animatedwater.name = Анимированная вода
|
||||||
setting.animatedshields.name = Анимированные щиты
|
setting.animatedshields.name = Анимированные щиты
|
||||||
setting.antialias.name = Сглаживание[lightgray] (требует перезапуска)[]
|
setting.antialias.name = Сглаживание[lightgray] (требует перезапуска)[]
|
||||||
@@ -599,14 +633,17 @@ setting.difficulty.insane = Безумная
|
|||||||
setting.difficulty.name = Сложность:
|
setting.difficulty.name = Сложность:
|
||||||
setting.screenshake.name = Тряска экрана
|
setting.screenshake.name = Тряска экрана
|
||||||
setting.effects.name = Эффекты
|
setting.effects.name = Эффекты
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Отображать уничтоженные блоки
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Поиск пути для установки конвейеров
|
||||||
setting.sensitivity.name = Чувствительность контроллера
|
setting.sensitivity.name = Чувствительность контроллера
|
||||||
setting.saveinterval.name = Интервал сохранения
|
setting.saveinterval.name = Интервал сохранения
|
||||||
setting.seconds = {0} секунд
|
setting.seconds = {0} секунд
|
||||||
|
setting.blockselecttimeout.name = Тайм-аут выбора блока
|
||||||
|
setting.milliseconds = {0} миллисекунд
|
||||||
setting.fullscreen.name = Полноэкранный режим
|
setting.fullscreen.name = Полноэкранный режим
|
||||||
setting.borderlesswindow.name = Безрамочное окно[lightgray] (может потребоваться перезапуск)
|
setting.borderlesswindow.name = Безрамочное окно[lightgray] (может потребоваться перезапуск)
|
||||||
setting.fps.name = Показывать FPS
|
setting.fps.name = Показывать FPS и пинг
|
||||||
|
setting.blockselectkeys.name = Показать клавиши выбора блока
|
||||||
setting.vsync.name = Вертикальная синхронизация
|
setting.vsync.name = Вертикальная синхронизация
|
||||||
setting.pixelate.name = Пикселизация[lightgray] (отключает анимации)
|
setting.pixelate.name = Пикселизация[lightgray] (отключает анимации)
|
||||||
setting.minimap.name = Отображать мини-карту
|
setting.minimap.name = Отображать мини-карту
|
||||||
@@ -614,7 +651,7 @@ setting.position.name = Отображать координаты игрока
|
|||||||
setting.musicvol.name = Громкость музыки
|
setting.musicvol.name = Громкость музыки
|
||||||
setting.ambientvol.name = Громкость окружения
|
setting.ambientvol.name = Громкость окружения
|
||||||
setting.mutemusic.name = Заглушить музыку
|
setting.mutemusic.name = Заглушить музыку
|
||||||
setting.sfxvol.name = Громкость звуковых эффектов
|
setting.sfxvol.name = Громкость эффектов
|
||||||
setting.mutesound.name = Заглушить звук
|
setting.mutesound.name = Заглушить звук
|
||||||
setting.crashreport.name = Отправлять анонимные отчёты о вылетах
|
setting.crashreport.name = Отправлять анонимные отчёты о вылетах
|
||||||
setting.savecreate.name = Автоматическое создание сохранений
|
setting.savecreate.name = Автоматическое создание сохранений
|
||||||
@@ -635,30 +672,48 @@ category.multiplayer.name = Сетевая игра
|
|||||||
command.attack = Атаковать
|
command.attack = Атаковать
|
||||||
command.rally = Точка сбора
|
command.rally = Точка сбора
|
||||||
command.retreat = Отступить
|
command.retreat = Отступить
|
||||||
|
placement.blockselectkeys = \n[lightgray]Клавиша: [{0},
|
||||||
keybind.clear_building.name = Очистить план строительства
|
keybind.clear_building.name = Очистить план строительства
|
||||||
keybind.press = Нажмите клавишу…
|
keybind.press = Нажмите клавишу…
|
||||||
keybind.press.axis = Нажмите оси или клавишу…
|
keybind.press.axis = Нажмите оси или клавишу…
|
||||||
keybind.screenshot.name = Скриншот карты
|
keybind.screenshot.name = Скриншот карты
|
||||||
keybind.move_x.name = Движение по оси x
|
keybind.toggle_power_lines.name = Отображение лазеров энергоснабжения
|
||||||
keybind.move_y.name = Движение по оси y
|
keybind.move_x.name = Движение по оси X
|
||||||
|
keybind.move_y.name = Движение по оси Y
|
||||||
|
keybind.mouse_move.name = Следовать за курсором
|
||||||
|
keybind.dash.name = Полёт/Ускорение
|
||||||
keybind.schematic_select.name = Выбрать область
|
keybind.schematic_select.name = Выбрать область
|
||||||
keybind.schematic_menu.name = Меню схем
|
keybind.schematic_menu.name = Меню схем
|
||||||
keybind.schematic_flip_x.name = Отразить схему по оси X
|
keybind.schematic_flip_x.name = Отразить схему по оси X
|
||||||
keybind.schematic_flip_y.name = Отразить схему по оси Y
|
keybind.schematic_flip_y.name = Отразить схему по оси Y
|
||||||
keybind.fullscreen.name = Полноэкранный режим
|
keybind.category_prev.name = Предыдущая категория
|
||||||
|
keybind.category_next.name = Следующая категория
|
||||||
|
keybind.block_select_left.name = Выбор левого блока
|
||||||
|
keybind.block_select_right.name = Выбор правого блока
|
||||||
|
keybind.block_select_up.name = Выбор верхнего блока
|
||||||
|
keybind.block_select_down.name = Выбор нижнего блока
|
||||||
|
keybind.block_select_01.name = Категория/Выбор блока 1
|
||||||
|
keybind.block_select_02.name = Категория/Выбор блока 2
|
||||||
|
keybind.block_select_03.name = Категория/Выбор блока 3
|
||||||
|
keybind.block_select_04.name = Категория/Выбор блока 4
|
||||||
|
keybind.block_select_05.name = Категория/Выбор блока 5
|
||||||
|
keybind.block_select_06.name = Категория/Выбор блока 6
|
||||||
|
keybind.block_select_07.name = Категория/Выбор блока 7
|
||||||
|
keybind.block_select_08.name = Категория/Выбор блока 8
|
||||||
|
keybind.block_select_09.name = Категория/Выбор блока 9
|
||||||
|
keybind.block_select_10.name = Категория/Выбор блока 10
|
||||||
|
keybind.fullscreen.name = Переключение полноэкранного режима
|
||||||
keybind.select.name = Выбор/Выстрел
|
keybind.select.name = Выбор/Выстрел
|
||||||
keybind.diagonal_placement.name = Диагональное размещение
|
keybind.diagonal_placement.name = Диагональное размещение
|
||||||
keybind.pick.name = Выбрать блок
|
keybind.pick.name = Выбрать блок
|
||||||
keybind.break_block.name = Разрушить блок
|
keybind.break_block.name = Разрушить блок
|
||||||
keybind.deselect.name = Снять выделение
|
keybind.deselect.name = Снять выделение
|
||||||
keybind.shoot.name = Выстрел
|
keybind.shoot.name = Выстрел
|
||||||
keybind.zoom_hold.name = Управление масштабом
|
keybind.zoom.name = Масштабирование
|
||||||
keybind.zoom.name = Приблизить/Отдалить
|
|
||||||
keybind.menu.name = Меню
|
keybind.menu.name = Меню
|
||||||
keybind.pause.name = Пауза
|
keybind.pause.name = Пауза
|
||||||
keybind.pause_building.name = Приостановить/возобновить строительство
|
keybind.pause_building.name = Приостановить/возобновить строительство
|
||||||
keybind.minimap.name = Мини-карта
|
keybind.minimap.name = Мини-карта
|
||||||
keybind.dash.name = Полёт/Ускорение
|
|
||||||
keybind.chat.name = Чат
|
keybind.chat.name = Чат
|
||||||
keybind.player_list.name = Список игроков
|
keybind.player_list.name = Список игроков
|
||||||
keybind.console.name = Консоль
|
keybind.console.name = Консоль
|
||||||
@@ -679,9 +734,11 @@ mode.editor.name = Редактор
|
|||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = Боритесь против других игроков.\n[gray]Для игры требуется как минимум 2 ядра разного цвета на карте.
|
mode.pvp.description = Боритесь против других игроков.\n[gray]Для игры требуется как минимум 2 ядра разного цвета на карте.
|
||||||
mode.attack.name = Атака
|
mode.attack.name = Атака
|
||||||
mode.attack.description = Уничтожьте вражескую базу. Никаких волн.\n[gray]Для игры требуется красное ядро на карте.
|
mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется красное ядро на карте.
|
||||||
mode.custom = Пользовательские правила
|
mode.custom = Пользовательские правила
|
||||||
|
|
||||||
rules.infiniteresources = Бесконечные ресурсы (Игрок)
|
rules.infiniteresources = Бесконечные ресурсы (Игрок)
|
||||||
|
rules.reactorexplosions = Взрывы реакторов
|
||||||
rules.wavetimer = Интервал волн
|
rules.wavetimer = Интервал волн
|
||||||
rules.waves = Волны
|
rules.waves = Волны
|
||||||
rules.attack = Режим атаки
|
rules.attack = Режим атаки
|
||||||
@@ -707,6 +764,10 @@ rules.title.resourcesbuilding = Ресурсы & строительство
|
|||||||
rules.title.player = Игроки
|
rules.title.player = Игроки
|
||||||
rules.title.enemy = Враги
|
rules.title.enemy = Враги
|
||||||
rules.title.unit = Боев. ед.
|
rules.title.unit = Боев. ед.
|
||||||
|
rules.title.experimental = Эксперементально
|
||||||
|
rules.lighting = Освещение
|
||||||
|
rules.ambientlight = Окружающий свет
|
||||||
|
|
||||||
content.item.name = Предметы
|
content.item.name = Предметы
|
||||||
content.liquid.name = Жидкости
|
content.liquid.name = Жидкости
|
||||||
content.unit.name = Боевые единицы
|
content.unit.name = Боевые единицы
|
||||||
@@ -753,6 +814,7 @@ mech.trident-ship.name = Трезубец
|
|||||||
mech.trident-ship.weapon = Бомбовый отсек
|
mech.trident-ship.weapon = Бомбовый отсек
|
||||||
mech.glaive-ship.name = Копьё
|
mech.glaive-ship.name = Копьё
|
||||||
mech.glaive-ship.weapon = Огненный бластер
|
mech.glaive-ship.weapon = Огненный бластер
|
||||||
|
item.corestorable = [lightgray]Можно хранить в ядре: {0}
|
||||||
item.explosiveness = [lightgray]Взрывоопасность: {0}%
|
item.explosiveness = [lightgray]Взрывоопасность: {0}%
|
||||||
item.flammability = [lightgray]Воспламеняемость: {0}%
|
item.flammability = [lightgray]Воспламеняемость: {0}%
|
||||||
item.radioactivity = [lightgray]Радиоактивность: {0}%
|
item.radioactivity = [lightgray]Радиоактивность: {0}%
|
||||||
@@ -768,6 +830,7 @@ mech.buildspeed = [lightgray]Скорость строительства: {0}%
|
|||||||
liquid.heatcapacity = [lightgray]Теплоёмкость: {0}
|
liquid.heatcapacity = [lightgray]Теплоёмкость: {0}
|
||||||
liquid.viscosity = [lightgray]Вязкость: {0}
|
liquid.viscosity = [lightgray]Вязкость: {0}
|
||||||
liquid.temperature = [lightgray]Температура: {0}
|
liquid.temperature = [lightgray]Температура: {0}
|
||||||
|
|
||||||
block.sand-boulder.name = Песчаный валун
|
block.sand-boulder.name = Песчаный валун
|
||||||
block.grass.name = Трава
|
block.grass.name = Трава
|
||||||
block.salt.name = Соль
|
block.salt.name = Соль
|
||||||
@@ -795,6 +858,8 @@ block.kiln.name = Печь
|
|||||||
block.graphite-press.name = Графитный пресс
|
block.graphite-press.name = Графитный пресс
|
||||||
block.multi-press.name = Мульти-пресс
|
block.multi-press.name = Мульти-пресс
|
||||||
block.constructing = {0} [lightgray](Строится)
|
block.constructing = {0} [lightgray](Строится)
|
||||||
|
block.signal = [lightgray]Сигнал: {0}
|
||||||
|
block.editsignal = Сигнал
|
||||||
block.spawn.name = Точка появления врагов
|
block.spawn.name = Точка появления врагов
|
||||||
block.core-shard.name = Ядро: «Осколок»
|
block.core-shard.name = Ядро: «Осколок»
|
||||||
block.core-foundation.name = Ядро: «Штаб»
|
block.core-foundation.name = Ядро: «Штаб»
|
||||||
@@ -866,6 +931,8 @@ block.distributor.name = Распределитель
|
|||||||
block.sorter.name = Сортировщик
|
block.sorter.name = Сортировщик
|
||||||
block.inverted-sorter.name = Инвертированный сортировщик
|
block.inverted-sorter.name = Инвертированный сортировщик
|
||||||
block.message.name = Сообщение
|
block.message.name = Сообщение
|
||||||
|
block.illuminator.name = Осветитель
|
||||||
|
block.illuminator.description = Маленький, компактный, настраиваемый источник света. Требуется энергия для работы.
|
||||||
block.overflow-gate.name = Избыточный затвор
|
block.overflow-gate.name = Избыточный затвор
|
||||||
block.silicon-smelter.name = Кремниевый плавильный завод
|
block.silicon-smelter.name = Кремниевый плавильный завод
|
||||||
block.phase-weaver.name = Фазовый ткач
|
block.phase-weaver.name = Фазовый ткач
|
||||||
@@ -879,6 +946,7 @@ block.coal-centrifuge.name = Угольная центрифуга
|
|||||||
block.power-node.name = Силовой узел
|
block.power-node.name = Силовой узел
|
||||||
block.power-node-large.name = Большой силовой узел
|
block.power-node-large.name = Большой силовой узел
|
||||||
block.surge-tower.name = Кинетическая вышка
|
block.surge-tower.name = Кинетическая вышка
|
||||||
|
block.diode.name = Диод
|
||||||
block.battery.name = Аккумулятор
|
block.battery.name = Аккумулятор
|
||||||
block.battery-large.name = Большой аккумулятор
|
block.battery-large.name = Большой аккумулятор
|
||||||
block.combustion-generator.name = Генератор внутреннего сгорания
|
block.combustion-generator.name = Генератор внутреннего сгорания
|
||||||
@@ -931,6 +999,7 @@ block.fortress-factory.name = Завод мехов «Крепость»
|
|||||||
block.revenant-factory.name = Завод крейсеров «Мститель»
|
block.revenant-factory.name = Завод крейсеров «Мститель»
|
||||||
block.repair-point.name = Ремонтный пункт
|
block.repair-point.name = Ремонтный пункт
|
||||||
block.pulse-conduit.name = Импульсный трубопровод
|
block.pulse-conduit.name = Импульсный трубопровод
|
||||||
|
block.plated-conduit.name = Укреплённый трубопровод
|
||||||
block.phase-conduit.name = Фазовый трубопровод
|
block.phase-conduit.name = Фазовый трубопровод
|
||||||
block.liquid-router.name = Жидкостный маршрутизатор
|
block.liquid-router.name = Жидкостный маршрутизатор
|
||||||
block.liquid-tank.name = Жидкостный бак
|
block.liquid-tank.name = Жидкостный бак
|
||||||
@@ -982,37 +1051,38 @@ unit.eradicator.name = Искоренитель
|
|||||||
unit.lich.name = Лич
|
unit.lich.name = Лич
|
||||||
unit.reaper.name = Жнец
|
unit.reaper.name = Жнец
|
||||||
tutorial.next = [lightgray]<Нажмите для продолжения>
|
tutorial.next = [lightgray]<Нажмите для продолжения>
|
||||||
tutorial.intro = Вы начали[scarlet] обучение по Mindustry.[]\nНачните с [accent]добычи меди[]. Нажмите на медную жилу возле Вашего ядра, чтобы сделать это.\n\n[accent]{0}/{1} меди
|
tutorial.intro = Вы начали[scarlet] обучение по Mindustry.[]\nИспользуйте кнопки [accent][[WASD][] для передвижения.\n[accent]Покрутите колесо мыши[]для приближения или отдаления камеры.\nНачните с [accent]добычи меди[]. Приблизьтесь к ней, затем нажмите на медную жилу возле Вашего ядра, чтобы сделать это.\n\n[accent]{0}/{1} меди
|
||||||
tutorial.intro.mobile = Вы начали[scarlet] обучение по Mindustry.[]\nПроведите по экрану, чтобы двигаться.\n[accent] Сведите или разведите 2 пальца для []изменения масштаба.\nНачните с [accent]добычи меди[]. Приблизьтесь к ней, затем нажмите на медную жилу возле Вашего ядра, чтобы сделать это.\n\n[accent]{0}/{1} меди
|
tutorial.intro.mobile = Вы начали[scarlet] обучение по Mindustry.[]\nПроведите по экрану, чтобы двигаться.\n[accent]Сведите или разведите 2 пальца[] для изменения масштаба.\nНачните с [accent]добычи меди[]. Приблизьтесь к ней, затем нажмите на медную жилу возле Вашего ядра, чтобы сделать это.\n\n[accent]{0}/{1} меди
|
||||||
tutorial.drill = Ручная добыча не является эффективной.\n[accent]Буры []могут добывать автоматически.\nНажмите на вкладку с изображением сверла снизу справа.\nВыберите[accent] механический бур[]. Разместите его на медной жиле нажатием.\n[accent]Нажатие по правой кнопке[] прервёт строительство. [accent]Зажмите Ctrl и покрутите колесо мыши[]для приближения или отдаления камеры.
|
tutorial.drill = Ручная добыча не является эффективной.\n[accent]Буры[] могут добывать автоматически.\nНажмите на вкладку с изображением сверла снизу справа.\nВыберите[accent] механический бур[]. Разместите его на медной жиле нажатием.\n[accent]Нажатие по правой кнопке[] прервёт строительство.
|
||||||
tutorial.drill.mobile = Ручная добыча не является эффективной.\n[accent]Буры []могут добывать автоматически.\nНажмите на вкладку с изображением сверла снизу справа.\nВыберите[accent] механический бур[]. \nРазместите его на медной жиле нажатием, затемм нажмите [accent] белую галку[] ниже, чтобы подтвердить построение выделенного.\nНажмите [accent] кнопку X[], чтобы отменить размещение.
|
tutorial.drill.mobile = Ручная добыча не является эффективной.\n[accent]Буры []могут добывать автоматически.\nНажмите на вкладку с изображением сверла снизу справа.\nВыберите[accent] механический бур[].\nРазместите его на медной жиле нажатием, затем нажмите [accent] белую галку[] ниже, чтобы подтвердить построение выделенного.\nНажмите [accent] кнопку X[], чтобы отменить размещение.
|
||||||
tutorial.blockinfo = Каждый блок имеет разные характеристики. Каждая дрель может добывать определенные руды.\nЧтобы узнать информацию о блоке и о его характеристиках,[accent] нажмите на «?», когда он выбран в меню строительства.[]\n\n[accent]Сейчас, узнайте характеристики механического бура.[]
|
tutorial.blockinfo = Каждый блок имеет разные характеристики. Каждая дрель может добывать определенные руды.\nЧтобы узнать информацию о блоке и о его характеристиках,[accent] нажмите на «?», когда он выбран в меню строительства.[]\n\n[accent]Сейчас, узнайте характеристики механического бура.[]
|
||||||
tutorial.conveyor = [accent]Конвейеры[] используются для транспортировки ресуров в ядро.\nСделайте линию конвейеров от бура к ядру\n[accent]Удерживайте левую кнопку мыши, чтобы разместить в линию.[]\nУдерживайте[accent] CTRL[] при постройке линии блоков, чтобы сделать её диагональной\n\n[accent]Разместите 2 конвейера в линию и доставьте предметы в ядро.
|
tutorial.conveyor = [accent]Конвейеры[] используются для транспортировки ресуров в ядро.\nСделайте линию конвейеров от бура к ядру\n[accent]Удерживайте левую кнопку мыши, чтобы разместить в линию.[]\nУдерживайте[accent] CTRL[] при постройке линии блоков, чтобы сделать её диагональной\n\n[accent]Разместите 2 конвейера в линию и доставьте предметы в ядро.
|
||||||
tutorial.conveyor.mobile = [accent]Конвейеры[] используются для транспортировки ресурсов в ядро\nСделайте линию конвейеров от бура к ядру\n[accent]Сделайте линию, удерживая палец несколько секунд в том месте, в котором Вы хотите начать линию,[] и перетяните его в нужном направлении.[accent]Разместите 2 конвейера в линию и доставьте предметы в ядро.
|
tutorial.conveyor.mobile = [accent]Конвейеры[] используются для транспортировки ресурсов в ядро\nСделайте линию конвейеров от бура к ядру\n[accent]Сделайте линию, удерживая палец несколько секунд в том месте, в котором Вы хотите начать линию,[] и перетяните его в нужном направлении.[accent]Разместите 2 конвейера в линию и доставьте предметы в ядро.
|
||||||
tutorial.turret = Как только предмет попадает в ядро, его можно использовать в строительстве.\nИмейте в виду, что не все предметы могут быть использованы в строительстве.\nПредметы, которые нелья использовать для стоительства, такие как[accent] уголь[] или[accent] металлолом[], не могут быть транспортированы в ядро.\nЗащитные структуры нужно строить для отражения[lightgray] противников[].\nПостройте[accent] двойную турель[] возле Вашей базы.
|
tutorial.turret = Как только предмет попадает в ядро, его можно использовать в строительстве.\nИмейте в виду, что не все предметы могут быть использованы в строительстве.\nПредметы, которые нелья использовать для стоительства, такие как[accent] уголь[] или[accent] металлолом[], не могут быть транспортированы в ядро.\nЗащитные структуры нужно строить для отражения[lightgray] противников[].\nПостройте[accent] двойную турель[] возле Вашей базы.
|
||||||
tutorial.drillturret = Двойным турелям нужна [accent]медь []в качестве боеприпасов.\nРазместите бур рядом с турелью.\nПроведите конвейеры к турели, чтобы снабдить её медью.\n\n[accent]Боеприпасов доставлено: 0/1
|
tutorial.drillturret = Двойным турелям нужна [accent]медные боеприпасы[] для стрельбы.\nРазместите бур рядом с турелью.\nПроведите конвейеры к турели, чтобы снабдить её медью.\n\n[accent]Боеприпасов доставлено: 0/1
|
||||||
tutorial.pause = Во время битвы Вы можете[accent] приостановить игру.[]\nВы можете планировать строительство, когда игра стоит на паузе.\n\n[accent]Нажмите ПРОБЕЛ для приостановки игры.
|
tutorial.pause = Во время битвы, Вы можете[accent] приостановить игру.[]\nВы можете планировать строительство, когда игра стоит на паузе.\n\n[accent]Нажмите ПРОБЕЛ для приостановки игры.
|
||||||
tutorial.pause.mobile = Во время битвы, Вы можете[accent] приостановить игру.[]\nВы можеть планировать строительство, когда игра стоит на паузе.\n\n[accent]Нажмите кнопку вверху слева, чтобы поставить игру на паузу.
|
tutorial.pause.mobile = Во время битвы, Вы можете[accent] приостановить игру.[]\nВы можеть планировать строительство, когда игра стоит на паузе.\n\n[accent]Нажмите кнопку вверху слева, чтобы поставить игру на паузу.
|
||||||
tutorial.unpause = Снова нажмите пробел для снятия паузы.
|
tutorial.unpause = Снова нажмите пробел для снятия паузы.
|
||||||
tutorial.unpause.mobile = Снова нажмите туда для снятия паузы.
|
tutorial.unpause.mobile = Снова нажмите туда для снятия паузы.
|
||||||
tutorial.breaking = Зачастую, блоки приходится разрушать\n[accent]Зажмите ПКМ[], чтобы разрушить блоки в выбранной зоне.[]\n\n[accent]Разрушьте все стены из металлолома слева от Вашего ядра.
|
tutorial.breaking = Зачастую, блоки приходится разрушать\n[accent]Зажмите ПКМ[], чтобы разрушить блоки в выбранной зоне.[]\n\n[accent]Разрушьте все стены из металлолома слева от Вашего ядра.
|
||||||
tutorial.breaking.mobile = Зачастую, блоки приходится разрушить.\n[accent]Выберите режим деконструкции[], после чего нажмите на нужный блок, чтобы разрушить его.\nРазрушьте блоки в выбранной зоне, зажав палец на несколько секунд[], и проведя его в нужном направлении.\nНажмите на галочку, чтобы подтвердить разрушение.\n\n[accent]Разрушьте все стены из металлолома слева от Вашего ядра.
|
tutorial.breaking.mobile = Зачастую, блоки приходится разрушать.\n[accent]Выберите режим деконструкции[], после чего нажмите на нужный блок, чтобы разрушить его.\nРазрушьте блоки в выбранной зоне, зажав палец на несколько секунд[], и проведя его в нужном направлении.\nНажмите на галочку, чтобы подтвердить разрушение.\n\n[accent]Разрушьте все стены из металлолома слева от Вашего ядра.
|
||||||
tutorial.withdraw = В некоторых ситуациях, необходимо забрать предметы из блоков вручную.\nЧтобы сделать это, [accent]нажмите на блок[], в котором находятся предметы, затем [accent]нажмите на предмет[] в инвентаре.\nМожно забрать несколько предметов [accent]нажатием с зажимом[].\n\n[accent]Заберите немного меди из ядра[]
|
tutorial.withdraw = В некоторых ситуациях, необходимо забрать предметы из блоков вручную.\nЧтобы сделать это, [accent]нажмите на блок[], в котором находятся предметы, затем [accent]нажмите на предмет[] в инвентаре.\nМожно забрать несколько предметов [accent]нажатием с зажимом[].\n\n[accent]Заберите немного меди из ядра[]
|
||||||
tutorial.deposit = Положить предметы в блоки можно перетащив от своего корабля к нужному блоку.\n\n[accent]Перенесите медь обратно в ядро[]
|
tutorial.deposit = Положите предметы в блок, перетащив их от своего корабля в нужный блок.\n\n[accent]Перенесите медь обратно в ядро[]
|
||||||
tutorial.waves = [lightgray]Противники[] приближаются.\n\nЗащитите ядро от двух волн. Используйте[accent] левую кнопку мыши[] для стрельбы.\nПостройте больше турелей и буров. Добудьте больше меди.
|
tutorial.waves = [lightgray]Противники[] приближаются.\n\nЗащитите ядро от двух волн. Используйте[accent] левую кнопку мыши[] для стрельбы.\nПостройте больше турелей и буров. Добудьте больше меди.
|
||||||
tutorial.waves.mobile = [lightgray]Противники[] приближаются.\n\nЗащитите ядро от двух волн. Ваш корабль будет автоматически атаковать противника.\nПостройте больше турелей и буров. Добудьте больше меди.
|
tutorial.waves.mobile = [lightgray]Противники[] приближаются.\n\nЗащитите ядро от двух волн. Ваш корабль будет автоматически атаковать противника.\nПостройте больше турелей и буров. Добудьте больше меди.
|
||||||
tutorial.launch = Когда Вы достигаете определенной волны, Вы можете осуществить[accent] запуск ядра[], оставив базу и[accent] перенести ресурсы из ядра.[]\nЭти ресурсы могут быть использованы для изучения новых технологий.\n\n[accent]Нажмите кнопку запуска.
|
tutorial.launch = Когда Вы достигаете определенной волны, Вы можете осуществить[accent] запуск ядра[], оставив базу и[accent] перенести ресурсы из ядра.[]\nЭти ресурсы могут быть использованы для изучения новых технологий.\n\n[accent]Нажмите кнопку запуска.
|
||||||
|
|
||||||
item.copper.description = Самый основной строительный материал. Широко используется во всех типах блоков.
|
item.copper.description = Самый основной строительный материал. Широко используется во всех типах блоков.
|
||||||
item.lead.description = Основной стартовый материал. Широко используется в электронике и блоках для транспортировки жидкостей.
|
item.lead.description = Основной стартовый материал. Широко используется в электронике и блоках для транспортировки жидкостей.
|
||||||
item.metaglass.description = Сверхпрочный сплав стекла. Широко используется для распределения и хранения жидкости.
|
item.metaglass.description = Сверхпрочный сплав стекла. Широко используется для распределения и хранения жидкости.
|
||||||
item.graphite.description = Минерализованный углерод, используемый для боеприпасов и электроизоляции.
|
item.graphite.description = Минерализованный углерод, используемый для боеприпасов и электрических компонентов.
|
||||||
item.sand.description = Обычный материал, который широко используется при выплавке, как при легировании, так и в качестве отходов.
|
item.sand.description = Обычный материал, который широко используется при выплавке, как при легировании, так и в качестве флюса.
|
||||||
item.coal.description = Окаменелое растительное вещество, образовавшееся задолго до посева. Широко используется для производства топлива и ресурсов.
|
item.coal.description = Окаменелое растительное вещество, образовавшееся задолго до посева. Широко используется для производства топлива и ресурсов.
|
||||||
item.titanium.description = Редкий сверхлёгкий металл, широко используемый для транспортировки жидкостей, буров и авиации.
|
item.titanium.description = Редкий сверхлёгкий металл, широко используемый для транспортировки жидкостей, буров и авиации.
|
||||||
item.thorium.description = Плотный радиоактивный металл, используемый в качестве структурной опоры и ядерного топлива.
|
item.thorium.description = Плотный радиоактивный металл, используемый в качестве структурной опоры и ядерного топлива.
|
||||||
item.scrap.description = Остатки старых сооружений и подразделений. Содержит небольшие количества многих различных металлов.
|
item.scrap.description = Остатки старых сооружений и подразделений. Содержит небольшие количества многих различных металлов.
|
||||||
item.silicon.description = Чрезвычайно полезный полупроводник. Применяется в солнечных панелях, сложной электронике и самонаводящихся боеприпасах.
|
item.silicon.description = Чрезвычайно полезный полупроводник. Применяется в солнечных панелях, сложной электронике и самонаводящихся боеприпасах.
|
||||||
item.plastanium.description = Лёгкий, пластичный материал, используемый в современных авиационных и осколочных боеприпасах.
|
item.plastanium.description = Лёгкий, пластичный материал, используемый в продвинутой авиации и осколочных боеприпасах.
|
||||||
item.phase-fabric.description = Практически невесомое вещество, используемое в передовой электронике и технологиях самовосстановления.
|
item.phase-fabric.description = Практически невесомое вещество, используемое в передовой электронике и технологиях самовосстановления.
|
||||||
item.surge-alloy.description = Современный сплав с уникальными электрическими свойствами.
|
item.surge-alloy.description = Современный сплав с уникальными электрическими свойствами.
|
||||||
item.spore-pod.description = Стручок синтетических спор, синтезированных из атмосферных концентраций для промышленных целей. Используется для превращения в нефть, взрывчатые вещества и топливо.
|
item.spore-pod.description = Стручок синтетических спор, синтезированных из атмосферных концентраций для промышленных целей. Используется для превращения в нефть, взрывчатые вещества и топливо.
|
||||||
@@ -1024,9 +1094,9 @@ liquid.oil.description = Жидкость, используемая в прои
|
|||||||
liquid.cryofluid.description = Инертная, неедкая жидкость, созданная из воды и титана. Обладает чрезвычайно высокой теплоёмкостью. Широко используется в качестве охлаждающей жидкости.
|
liquid.cryofluid.description = Инертная, неедкая жидкость, созданная из воды и титана. Обладает чрезвычайно высокой теплоёмкостью. Широко используется в качестве охлаждающей жидкости.
|
||||||
mech.alpha-mech.description = Стандартный управляемый мех. Основан на «Кинжале», с улучшенной броней и строительными возможностями. Имеет больший урон, чем «Дротик».
|
mech.alpha-mech.description = Стандартный управляемый мех. Основан на «Кинжале», с улучшенной броней и строительными возможностями. Имеет больший урон, чем «Дротик».
|
||||||
mech.delta-mech.description = Быстрый, легко бронированный мех, созданный для ударов «атакуй и беги». Наносит мало урона по строениям, но может очень быстро убить большие группы вражеских орудий с помощью дуговых молний.
|
mech.delta-mech.description = Быстрый, легко бронированный мех, созданный для ударов «атакуй и беги». Наносит мало урона по строениям, но может очень быстро убить большие группы вражеских орудий с помощью дуговых молний.
|
||||||
mech.tau-mech.description = Мех поддержки. Ремонтирует союзные блоки просто стреляя в них. Может лечить союзников в радиусе его ремонтирующей способности.
|
mech.tau-mech.description = Мех поддержки. Ремонтирует союзные блоки, просто стреляя в них. Может лечить союзников в радиусе его ремонтирующей способности.
|
||||||
mech.omega-mech.description = Громоздкий и хорошо бронированный мех, созданный для передовых атак. Его броня может блокировать до 90% входящего урона.
|
mech.omega-mech.description = Громоздкий и хорошо бронированный мех, созданный для передовых атак. Его броня может блокировать до 90% входящего урона.
|
||||||
mech.dart-ship.description = Стандартный управляемый корабль. Достаточно быстрый и легкий, но мало атакующий и обладает низкой скоростью добычи.
|
mech.dart-ship.description = Стандартный управляемый корабль. Быстрая скорость добычи. Достаточно быстрый и легкий, но обладает слабым вооружением.
|
||||||
mech.javelin-ship.description = Корабль для тактики «атакуй и беги». Сначала он медленный, но позже может разгоняться до огромных скоростей и летать над аванпостами противника, нанося большой урон молниями и ракетами.
|
mech.javelin-ship.description = Корабль для тактики «атакуй и беги». Сначала он медленный, но позже может разгоняться до огромных скоростей и летать над аванпостами противника, нанося большой урон молниями и ракетами.
|
||||||
mech.trident-ship.description = Тяжёлый бомбардировщик, построенный для строительства и уничтожения вражеских укреплений. Достаточно хорошо бронированный.
|
mech.trident-ship.description = Тяжёлый бомбардировщик, построенный для строительства и уничтожения вражеских укреплений. Достаточно хорошо бронированный.
|
||||||
mech.glaive-ship.description = Большой хорошо бронированный боевой корабль. Оборудован зажигательным повторителем. Очень манёвренный.
|
mech.glaive-ship.description = Большой хорошо бронированный боевой корабль. Оборудован зажигательным повторителем. Очень манёвренный.
|
||||||
@@ -1045,14 +1115,14 @@ block.message.description = Сохраняет сообщение. Исполь
|
|||||||
block.graphite-press.description = Сжимает куски угля в чистые листы графита.
|
block.graphite-press.description = Сжимает куски угля в чистые листы графита.
|
||||||
block.multi-press.description = Обновлённая версия графитовой печати. Использует воду и энергию для быстрой и эффективной переработки угля.
|
block.multi-press.description = Обновлённая версия графитовой печати. Использует воду и энергию для быстрой и эффективной переработки угля.
|
||||||
block.silicon-smelter.description = Соединяет песок с чистым углем. Производит кремний.
|
block.silicon-smelter.description = Соединяет песок с чистым углем. Производит кремний.
|
||||||
block.kiln.description = Выплавляет песок и свинец в соединение, известному как метастекло. Требуется небольшое количество энергии для запуска.
|
block.kiln.description = Выплавляет песок и свинец в соединение, известное как метастекло. Требуется небольшое количество энергии для работы.
|
||||||
block.plastanium-compressor.description = Производит пластаний из нефти и титана.
|
block.plastanium-compressor.description = Производит пластаний из нефти и титана.
|
||||||
block.phase-weaver.description = Синтезирует фазовую ткань из радиоактивного тория и песка. Требуется огромное количество энергии.
|
block.phase-weaver.description = Синтезирует фазовую ткань из радиоактивного тория и песка. Требуется огромное количество энергии для работы.
|
||||||
block.alloy-smelter.description = Объединяет титан, свинец, кремний и медь для производства кинетического сплава.
|
block.alloy-smelter.description = Объединяет титан, свинец, кремний и медь для производства кинетического сплава.
|
||||||
block.cryofluidmixer.description = Смешивает воду и мелкий титановый порошок титана в криогеннную жидкость. Неотъемлемая часть при использования ториевого реактора
|
block.cryofluidmixer.description = Смешивает воду и мелкий титановый порошок титана в криогеннную жидкость. Неотъемлемая часть при использования ториевого реактора
|
||||||
block.blast-mixer.description = Раздавливает и смешивает скопления спор с пиротитом для получения взрывчатого вещества.
|
block.blast-mixer.description = Раздавливает и смешивает скопления спор с пиротитом для получения взрывчатого вещества.
|
||||||
block.pyratite-mixer.description = Смешивает уголь, свинец и песок в легковоспламеняющийся пиротит.
|
block.pyratite-mixer.description = Смешивает уголь, свинец и песок в легковоспламеняющийся пиротит.
|
||||||
block.melter.description = Плавит металлолом в шлак для дальнейшей обработки или использования в башнях «Волна».
|
block.melter.description = Плавит металлолом в шлак для дальнейшей обработки или использования в турелях «Волна».
|
||||||
block.separator.description = Разделяет шлак на его минеральные компоненты. Выводит охлажденный результат.
|
block.separator.description = Разделяет шлак на его минеральные компоненты. Выводит охлажденный результат.
|
||||||
block.spore-press.description = Сжимает капсулы спор под сильным давлением для синтеза масла.
|
block.spore-press.description = Сжимает капсулы спор под сильным давлением для синтеза масла.
|
||||||
block.pulverizer.description = Измельчает металлолом в мелкий песок.
|
block.pulverizer.description = Измельчает металлолом в мелкий песок.
|
||||||
@@ -1063,12 +1133,12 @@ block.power-source.description = Бесконечно вводит энерги
|
|||||||
block.item-source.description = Бесконечно выводит элементы. Только песочница.
|
block.item-source.description = Бесконечно выводит элементы. Только песочница.
|
||||||
block.item-void.description = Уничтожает любые предметы. Только песочница.
|
block.item-void.description = Уничтожает любые предметы. Только песочница.
|
||||||
block.liquid-source.description = Бесконечно выводит жидкости. Только песочница.
|
block.liquid-source.description = Бесконечно выводит жидкости. Только песочница.
|
||||||
block.copper-wall.description = Дешёвый защитный блок.\nПолезно для защиты ядра и турелей в первые несколько волн.
|
block.copper-wall.description = Дешёвый защитный блок.\nПолезен для защиты ядра и турелей в первые несколько волн.
|
||||||
block.copper-wall-large.description = Дешёвый защитный блок.\nПолезно для защиты ядра и турелей в первые несколько волн.\nРазмещается на нескольких плитках.
|
block.copper-wall-large.description = Дешёвый защитный блок.\nПолезен для защиты ядра и турелей в первые несколько волн.\nРазмещается на нескольких плитках.
|
||||||
block.titanium-wall.description = Умеренно сильный защитный блок.\nОбеспечивает умеренную защиту от врагов.
|
block.titanium-wall.description = Умеренно сильный защитный блок.\nОбеспечивает умеренную защиту от врагов.
|
||||||
block.titanium-wall-large.description = Умеренно сильный защитный блок.\nОбеспечивает умеренную защиту от врагов.\nРазмещается на нескольких плитках.
|
block.titanium-wall-large.description = Умеренно сильный защитный блок.\nОбеспечивает умеренную защиту от врагов.\nРазмещается на нескольких плитках.
|
||||||
block.plastanium-wall.description = Специальный тип стены, который поглощает электрические разряды и блокирует автоматическое соединение между силовыми узлами.\nРазмещается на нескольких плитках.
|
block.plastanium-wall.description = Специальный тип стены, который поглощает электрические разряды и блокирует автоматическое соединение между силовыми узлами.
|
||||||
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
|
block.plastanium-wall-large.description = Специальный тип стены, который поглощает электрические разряды и блокирует автоматическое соединение между силовыми узлами.\nРазмещается на нескольких плитках.
|
||||||
block.thorium-wall.description = Сильный защитный блок.\nХорошая защита от врагов.
|
block.thorium-wall.description = Сильный защитный блок.\nХорошая защита от врагов.
|
||||||
block.thorium-wall-large.description = Сильный защитный блок.\nХорошая защита от врагов.\nРазмещается на нескольких плитках.
|
block.thorium-wall-large.description = Сильный защитный блок.\nХорошая защита от врагов.\nРазмещается на нескольких плитках.
|
||||||
block.phase-wall.description = Стена, покрытая специальным фазовым отражающим составом. Отражает большинство пуль при ударе.
|
block.phase-wall.description = Стена, покрытая специальным фазовым отражающим составом. Отражает большинство пуль при ударе.
|
||||||
@@ -1077,37 +1147,39 @@ block.surge-wall.description = Очень прочный защитный бло
|
|||||||
block.surge-wall-large.description = Очень прочный защитный блок.\nНакапливает заряд при контакте с пулей, выпуская его случайным образом.\nРазмещается на нескольких плитках.
|
block.surge-wall-large.description = Очень прочный защитный блок.\nНакапливает заряд при контакте с пулей, выпуская его случайным образом.\nРазмещается на нескольких плитках.
|
||||||
block.door.description = Маленькая дверь. Можно открыть или закрыть нажатием.
|
block.door.description = Маленькая дверь. Можно открыть или закрыть нажатием.
|
||||||
block.door-large.description = Большая дверь. Можно открыть и закрыть нажатием.\nРазмещается на нескольких плитках.
|
block.door-large.description = Большая дверь. Можно открыть и закрыть нажатием.\nРазмещается на нескольких плитках.
|
||||||
block.mender.description = Периодически ремонтирует блоки в непосредственной близости. Сохраняет средства защиты, восстановленные между волнами.\nОпционально использует кремний для увеличения дальности и эффективности.
|
block.mender.description = Периодически ремонтирует блоки в непосредственной близости. Сохраняет средства защиты в целостности между волнами.\nОпционально использует кремний для увеличения дальности и эффективности.
|
||||||
block.mend-projector.description = Обновлённая версия Регенератора. Ремонт блоков в непосредственной близости.\nОпционально использует фазовую ткань для увеличения дальности и эффективности.
|
block.mend-projector.description = Обновлённая версия Регенератора. Ремонтирует блоки в непосредственной близости.\nОпционально использует фазовую ткань для увеличения дальности и эффективности.
|
||||||
block.overdrive-projector.description = Увеличивает скорость близлежащих зданий.\nОпционально использует фазовую ткань для увеличения дальности и эффективности.
|
block.overdrive-projector.description = Увеличивает скорость близлежащих зданий.\nОпционально использует фазовую ткань для увеличения дальности и эффективности.
|
||||||
block.force-projector.description = Создает вокруг себя шестиугольное силовое поле, защищая здания и подразделения внутри от повреждений.\nПерегревается, если нанесено слишком большое количество повреждений. Опционально требуется охлаждающая жидкость для предотвращения перегрева. Фазовая ткань может быть использована для увеличения размера щита.
|
block.force-projector.description = Создает вокруг себя шестиугольное силовое поле, защищая здания и подразделения внутри от повреждений.\nПерегревается, если нанесено слишком большое количество повреждений. Опционально использует охлаждающую жидкость для предотвращения перегрева. Фазовая ткань может быть использована для увеличения размера щита.
|
||||||
block.shock-mine.description = Наносит урон врагам, наступающим на мину. Почти невидима для врага.
|
block.shock-mine.description = Наносит урон врагам, наступающим на мину. Почти невидима для врага.
|
||||||
block.conveyor.description = Базовый элемент транспортного блока. Перемещает предметы вперед и автоматически складывает их в блоки. Можно повернуть.
|
block.conveyor.description = Базовый элемент транспортного блока. Перемещает предметы вперед и автоматически складывает их в блоки. Можно повернуть.
|
||||||
block.titanium-conveyor.description = Расширенный транспортный блок. Перемещает предметы быстрее, чем стандартные конвейеры.
|
block.titanium-conveyor.description = Улучшенный транспортный блок. Перемещает предметы быстрее, чем стандартные конвейеры.
|
||||||
block.junction.description = Действует как мост для двух пересекающихся конвейерных лент. Полезно в ситуациях, когда два разных конвейера перевозят разные материалы в разные места.
|
block.junction.description = Действует как мост для двух пересекающихся конвейерных лент. Полезен в ситуациях, когда два разных конвейера перевозят разные материалы в разные места.
|
||||||
block.bridge-conveyor.description = Улучшенный транспортный блок. Позволяет транспортировать предметы по 3 плиткам любой местности или здания.
|
block.bridge-conveyor.description = Улучшенный транспортный блок. Позволяет транспортировать предметы над 3 плитками любой местности или здания.
|
||||||
block.phase-conveyor.description = Улучшенный транспортный блок. Использует энергию для телепортации предметов на подключенный фазовый конвейер по нескольким плиткам.
|
block.phase-conveyor.description = Улучшенный транспортный блок. Использует энергию для телепортации предметов на подключенный фазовый конвейер над несколькими плитками.
|
||||||
block.sorter.description = Сортирует предметы. Если предмет соответствует выбору, он может пройти. В противном случае предмет выводится слева и справа.
|
block.sorter.description = Сортирует предметы. Если предмет соответствует выбору, он может пройти. В противном случае предмет выводится слева и справа.
|
||||||
block.inverted-sorter.description = Работает с предметами так же, как и стандартный сортировщик, но выводит выбранный предмет по бокам, а не прямо.
|
block.inverted-sorter.description = Работает с предметами так же, как и стандартный сортировщик, но выводит выбранный предмет по бокам, а не прямо.
|
||||||
block.router.description = Принимает предмет в одном направлении и выводит их до 3 других направлений в равной степени. Полезно для разделения материалов из одного источника на несколько целей.\n\n[scarlet]Никогда не используйте рядом с заводами и т.п., так как маршрутизатор будет забит выходными предметами.[]
|
block.router.description = Принимает предмет в одном направлении и выводит их до 3 других направлений в равной степени. Полезен для разделения материалов из одного источника на несколько целей.\n\n[scarlet]Никогда не используйте рядом с заводами и т.п., так как маршрутизатор будет забит выходными предметами.[]
|
||||||
block.distributor.description = Расширенный маршрутизатор. Разделение элементов до 7 других направлений в равной степени.
|
block.distributor.description = Расширенный маршрутизатор. Разделяет предметы до 7 других направлений в равной степени.
|
||||||
block.overflow-gate.description = Комбинированный разделитель и маршрутизатор. Выводит только влево и вправо, если передний путь заблокирован.
|
block.overflow-gate.description = Выводит предметы влево и вправо, только если передний путь заблокирован.
|
||||||
block.mass-driver.description = Конечный транспортный блок. Собирает несколько предметов и затем стреляет ими в другую катапульту на большом расстоянии. Требуется энергия для работы.
|
block.mass-driver.description = Самый продвинутый транспортного блока. Собирает несколько предметов и затем стреляет ими в другую катапульту на большом расстоянии. Требуется энергия для работы.
|
||||||
block.mechanical-pump.description = Дешёвый насос с низкой производительностью, но без энергопотребления.
|
block.mechanical-pump.description = Дешёвый насос с низкой производительностью, но без энергопотребления.
|
||||||
block.rotary-pump.description = Продвинутый насос. Качает больше жидкости, но требуют энергию.
|
block.rotary-pump.description = Продвинутый насос. Качает больше жидкости, но требуют энергию.
|
||||||
block.thermal-pump.description = Наилучший насос.
|
block.thermal-pump.description = Наилучший насос.
|
||||||
block.conduit.description = Основной блок транспортировки жидкости. Перемещает жидкости вперед. Используется совместно с насосами и другими трубопроводами.
|
block.conduit.description = Основной блок транспортировки жидкости. Перемещает жидкости вперед. Используется совместно с насосами и другими трубопроводами.
|
||||||
block.pulse-conduit.description = Расширенный блок транспортировки жидкости. Транспортирует жидкости быстрее и хранит больше, чем стандартные трубопроводы.
|
block.pulse-conduit.description = Улучшенный блок транспортировки жидкости. Транспортирует жидкости быстрее и хранит больше, чем стандартные трубопроводы.
|
||||||
block.liquid-router.description = Принимает жидкости из одного направления и выводит их до 3 других направлений в равной степени. Можно также хранить определенное количество жидкости. Полезно для разделения жидкостей из одного источника на несколько целей.
|
block.plated-conduit.description = Перемещает жидкости с той же скоростью, что и импульсные трубопроводы, но обладает большей прочностью. Не принимает жидкости со сторон, кроме как от других трубопроводов.\nПротекает меньше.
|
||||||
|
block.liquid-router.description = Принимает жидкости из одного направления и выводит их до 3 других направлений в равной степени. Также может хранить определенное количество жидкости. Полезен для разделения жидкостей из одного источника на несколько целей.
|
||||||
block.liquid-tank.description = Хранит большое количество жидкости. Используется для создания буферов в ситуациях с непостоянной потребностью в материалах или в качестве защиты для охлаждения жизненно важных блоков.
|
block.liquid-tank.description = Хранит большое количество жидкости. Используется для создания буферов в ситуациях с непостоянной потребностью в материалах или в качестве защиты для охлаждения жизненно важных блоков.
|
||||||
block.liquid-junction.description = Действует как мост для двух пересекающихся каналов. Полезно в ситуациях, когда два разных трубопровода переносят разные жидкости в разные места.
|
block.liquid-junction.description = Действует как мост для двух пересекающихся каналов. Полезен в ситуациях, когда два разных трубопровода переносят разные жидкости в разные места.
|
||||||
block.bridge-conduit.description = Расширенный блок транспортировки жидкости. Позволяет транспортировать жидкости над 3 плитками любой местности или здания.
|
block.bridge-conduit.description = Расширенный блок транспортировки жидкости. Позволяет транспортировать жидкости над 3 плитками любой местности или здания.
|
||||||
block.phase-conduit.description = Расширенный блок транспортировки жидкости. Использует энергию для телепортации жидкостей в подключенный фазовый канал над несколькими плиткам.
|
block.phase-conduit.description = Расширенный блок транспортировки жидкости. Использует энергию для телепортации жидкостей в подключенный фазовый канал над несколькими плиткам.
|
||||||
block.power-node.description = Передает питание на подключенные узлы. Узел будет получать питание или поставлять питание на любые соседние блоки.
|
block.power-node.description = Передает питание на подключенные узлы. Узел будет получать питание или поставлять питание на любые соседние блоки.
|
||||||
block.power-node-large.description = Усовершенствованный силовой узел с большей дальностью и большим количеством соединений.
|
block.power-node-large.description = Усовершенствованный силовой узел с большей дальностью.
|
||||||
block.surge-tower.description = Силовой узел с очень большим радиусом действия, но меньшим количеством доступных соединений.
|
block.surge-tower.description = Силовой узел с очень большим радиусом действия, но меньшим количеством доступных соединений.
|
||||||
|
block.diode.description = Энергия из аккумуляторов имеет возможность перемещаться через этот блок в одну сторону, если на выходе имеется меньше энергии в запасе, чем на входе.
|
||||||
block.battery.description = Накапливает энергию как буфер во времена избытка энергии. Выводит энергию во времена дефицита.
|
block.battery.description = Накапливает энергию как буфер во времена избытка энергии. Выводит энергию во времена дефицита.
|
||||||
block.battery-large.description = Хранит гораздо больше энергии, чем обычная батарея.
|
block.battery-large.description = Хранит гораздо больше энергии, чем обычный аккумулятор.
|
||||||
block.combustion-generator.description = Вырабатывает энергию путём сжигания легковоспламеняющихся материалов, таких как уголь.
|
block.combustion-generator.description = Вырабатывает энергию путём сжигания легковоспламеняющихся материалов, таких как уголь.
|
||||||
block.thermal-generator.description = Генерирует энергию, когда находится в горячих местах.
|
block.thermal-generator.description = Генерирует энергию, когда находится в горячих местах.
|
||||||
block.turbine-generator.description = Усовершенствованный генератор сгорания. Более эффективен, но дополнительно требует воду для выработки пара.
|
block.turbine-generator.description = Усовершенствованный генератор сгорания. Более эффективен, но дополнительно требует воду для выработки пара.
|
||||||
@@ -1116,28 +1188,28 @@ block.rtg-generator.description = Простой, надежный генера
|
|||||||
block.solar-panel.description = Обеспечивает небольшое количество энергии от солнца.
|
block.solar-panel.description = Обеспечивает небольшое количество энергии от солнца.
|
||||||
block.solar-panel-large.description = Значительно более эффективный вариант стандартной солнечной панели.
|
block.solar-panel-large.description = Значительно более эффективный вариант стандартной солнечной панели.
|
||||||
block.thorium-reactor.description = Генерирует значительное количество энергии из тория. Требует постоянного охлаждения. Взорвётся с большой силой при недостаточном количестве охлаждающей жидкости. Выходная энергия зависит от наполненности, при этом базовая энергия генерируется на полную мощность.
|
block.thorium-reactor.description = Генерирует значительное количество энергии из тория. Требует постоянного охлаждения. Взорвётся с большой силой при недостаточном количестве охлаждающей жидкости. Выходная энергия зависит от наполненности, при этом базовая энергия генерируется на полную мощность.
|
||||||
block.impact-reactor.description = Усовершенствованный генератор, способный создавать огромное количество энергии с максимальной эффективностью. Требуется значительное количество энергии для запуска процесса.
|
block.impact-reactor.description = Усовершенствованный генератор, способный создавать огромное количество энергии на пике эффективности. Требуется значительное количество энергии для запуска процесса.
|
||||||
block.mechanical-drill.description = Дешёвый бур. При размещении на соответствующих плитках, предметы бесконечно выводятся в медленном темпе. Способен добывать только медь, свинец и уголь.
|
block.mechanical-drill.description = Дешёвый бур. При размещении на соответствующих плитках, предметы бесконечно выводятся в медленном темпе. Способен добывать только базовые ресурсы.
|
||||||
block.pneumatic-drill.description = Улучшенный бур, способный добывать титан. Добывает быстрее, чем механический бур.
|
block.pneumatic-drill.description = Улучшенный бур, способный добывать титан. Добывает быстрее, чем механический бур.
|
||||||
block.laser-drill.description = Позволяет сверлить еще быстрее с помощью лазерной технологии, но требует энергии. Способен добывать торий.
|
block.laser-drill.description = Позволяет сверлить еще быстрее с помощью лазерной технологии, но требует энергии. Способен добывать торий.
|
||||||
block.blast-drill.description = Конечный бур. Требует большое количества энергии.
|
block.blast-drill.description = Самый продвинутый бура. Требует большое количества энергии.
|
||||||
block.water-extractor.description = Выкачивает подземные воды. Используется в местах, где нет поверхностных вод.
|
block.water-extractor.description = Выкачивает подземные воды. Используется в местах, где нет поверхностных вод.
|
||||||
block.cultivator.description = Выращивает крошечные концентрации спор в атмосфере в готовые к использованию споры.
|
block.cultivator.description = Выращивает крошечные концентрации спор в атмосфере в готовые к использованию споры.
|
||||||
block.oil-extractor.description = Использует большое количество энергии, песка и воды для бурения, добывая нефть.
|
block.oil-extractor.description = Использует большое количество энергии, песка и воды для бурения, добывая нефть.
|
||||||
block.core-shard.description = Первая итерация капсулы ядра. После уничтожения весь контакт с регионом теряется. Не позволяйте этому случиться.
|
block.core-shard.description = Первая итерация капсулы ядра. После уничтожения, весь контакт с регионом теряется. Не позволяйте этому случиться.
|
||||||
block.core-foundation.description = Вторая версия ядра. Лучше бронировано. Хранит больше ресурсов.
|
block.core-foundation.description = Вторая версия ядра. Лучше бронировано. Хранит больше ресурсов.
|
||||||
block.core-nucleus.description = Третья и последняя итерация капсулы ядра. Очень хорошо бронировано. Хранит огромное количество ресурсов.
|
block.core-nucleus.description = Третья и последняя итерация капсулы ядра. Очень хорошо бронировано. Хранит огромное количество ресурсов.
|
||||||
block.vault.description = Хранит большое количество предметов каждого типа. Блок разгрузчика может быть использован для извлечения предметов из хранилища.
|
block.vault.description = Хранит большое количество предметов каждого типа. Блок разгрузчика может быть использован для извлечения предметов из хранилища.
|
||||||
block.container.description = Хранит небольшое количество предметов каждого типа. Блок разгрузчика может быть использован для извлечения элементов из контейнера.
|
block.container.description = Хранит небольшое количество предметов каждого типа. Блок разгрузчика может быть использован для извлечения элементов из контейнера.
|
||||||
block.unloader.description = Выгружает предметы из контейнера, хранилища или ядра на конвейер или непосредственно в соседний блок. Тип элемента, который необходимо Выгрузить, можно изменить, коснувшись.
|
block.unloader.description = Выгружает предметы из любого нетранспортного блока. Тип предмета, который необходимо выгрузить, можно изменить нажатием.
|
||||||
block.launch-pad.description = Запускает партии предметов без необходимости запуска ядра.
|
block.launch-pad.description = Запускает партии предметов без необходимости запуска ядра.
|
||||||
block.launch-pad-large.description = Улучшенная версия стартовой площадки. Хранит больше предметов. Запускается чаще.
|
block.launch-pad-large.description = Улучшенная версия стартовой площадки. Хранит больше предметов. Запускается чаще.
|
||||||
block.duo.description = Маленькая, дешёвая турель. Полезна против наземных юнитов.
|
block.duo.description = Маленькая, дешёвая турель. Полезна против наземных юнитов.
|
||||||
block.scatter.description = Основная противовоздушная турель. Распыляет куски свинца или металлолома на вражеские подразделения.
|
block.scatter.description = Основная противовоздушная турель. Распыляет куски свинца или металлолома на вражеские подразделения.
|
||||||
block.scorch.description = Сжигает любых наземных врагов рядом с ним. Высокоэффективна на близком расстоянии.
|
block.scorch.description = Сжигает любых наземных врагов рядом с ним. Высокоэффективен на близком расстоянии.
|
||||||
block.hail.description = Маленькая дальнобойная артиллерийская турель.
|
block.hail.description = Маленькая дальнобойная артиллерийская турель.
|
||||||
block.wave.description = Турель среднего размера. Стреляет потоками жидкости по врагам. Автоматически тушит пожары при подаче воды.
|
block.wave.description = Турель среднего размера. Стреляет потоками жидкости по врагам. Автоматически тушит пожары при подаче воды.
|
||||||
block.lancer.description = Лазерная турель среднего размера. Заряжает и стреляет мощными лучами энергии.
|
block.lancer.description = Лазерная турель среднего размера. Заряжает и стреляет мощными лучами энергии по наземным целям.
|
||||||
block.arc.description = Небольшая электрическая турель ближнего радиуса действия. Выстреливает дуги электричества по врагам.
|
block.arc.description = Небольшая электрическая турель ближнего радиуса действия. Выстреливает дуги электричества по врагам.
|
||||||
block.swarmer.description = Ракетная турель среднего размера. Атакует как воздушных, так и наземных врагов. Запускает самонаводящиеся ракеты.
|
block.swarmer.description = Ракетная турель среднего размера. Атакует как воздушных, так и наземных врагов. Запускает самонаводящиеся ракеты.
|
||||||
block.salvo.description = Большая, более продвинутая версия двойной турели. Выпускает быстрые залпы из пуль по врагу.
|
block.salvo.description = Большая, более продвинутая версия двойной турели. Выпускает быстрые залпы из пуль по врагу.
|
||||||
@@ -1147,21 +1219,21 @@ block.cyclone.description = Большая противовоздушная и
|
|||||||
block.spectre.description = Массивная двуствольная пушка. Стреляет крупными бронебойными пулями по воздушным и наземным целям.
|
block.spectre.description = Массивная двуствольная пушка. Стреляет крупными бронебойными пулями по воздушным и наземным целям.
|
||||||
block.meltdown.description = Массивная лазерная пушка. Заряжает и стреляет постоянным лазерным лучом в ближайших врагов. Требуется охлаждающая жидкость для работы.
|
block.meltdown.description = Массивная лазерная пушка. Заряжает и стреляет постоянным лазерным лучом в ближайших врагов. Требуется охлаждающая жидкость для работы.
|
||||||
block.command-center.description = Командует перемещениями боевых единиц по всей карте.\nУказывает подразделениям [accent]собираться[] вокруг командного центра, [accent]атаковать[] вражеское ядро или [accent]отступать[] к ядру/фабрике. Если вражеское ядро отсутствует, единицы будут патрулировать при команде [accent]атаки[].
|
block.command-center.description = Командует перемещениями боевых единиц по всей карте.\nУказывает подразделениям [accent]собираться[] вокруг командного центра, [accent]атаковать[] вражеское ядро или [accent]отступать[] к ядру/фабрике. Если вражеское ядро отсутствует, единицы будут патрулировать при команде [accent]атаки[].
|
||||||
block.draug-factory.description = Производит добывающих дронов.
|
block.draug-factory.description = Производит добывающих дронов «Драугр».
|
||||||
block.spirit-factory.description = Производит дронов, которые ремонтируют постройки.
|
block.spirit-factory.description = Производит дронов «Дух», которые ремонтируют постройки.
|
||||||
block.phantom-factory.description = Производит улучшенных дронов, которые помогают в строительстве.
|
block.phantom-factory.description = Производит улучшенных дронов, которые помогают в строительстве.
|
||||||
block.wraith-factory.description = Производит быстрые и летающие боевые единицы.
|
block.wraith-factory.description = Производит быстрые и летающие боевые единицы.
|
||||||
block.ghoul-factory.description = Производит тяжёлых ковровых бомбардировщиков.
|
block.ghoul-factory.description = Производит тяжёлые ковровые бомбардировщики.
|
||||||
block.revenant-factory.description = Производит тяжёлые летающие боевые единицы.
|
block.revenant-factory.description = Производит тяжёлые летающие боевые единицы, вооружённые ракетами.
|
||||||
block.dagger-factory.description = Производит основных наземных боевые единиц.
|
block.dagger-factory.description = Производит основные наземные боевые единицы.
|
||||||
block.crawler-factory.description = Производит быстрых саморозрушающихся боевые единиц.
|
block.crawler-factory.description = Производит быстрые саморазрушающиеся боевые единицы.
|
||||||
block.titan-factory.description = Производит продвинутые бронированные боевые единицы.
|
block.titan-factory.description = Производит продвинутые бронированные боевые единицы.
|
||||||
block.fortress-factory.description = Производит тяжёлые артиллерийские боевые единицы.
|
block.fortress-factory.description = Производит тяжёлые артиллерийские боевые единицы.
|
||||||
block.repair-point.description = Непрерывно лечит ближайший поврежденную боевую единицу или мех, находящийся рядом.
|
block.repair-point.description = Непрерывно лечит ближайшую поврежденную боевую единицу или мех в своём радиусе.
|
||||||
block.dart-mech-pad.description = Обеспечивает превращение в базовый атакующий мех.\nИспользуйте, нажав, стоя на нём.
|
block.dart-mech-pad.description = Обеспечивает превращение в базовый атакующий мех.\nИспользуйте, нажав, стоя на нём.
|
||||||
block.delta-mech-pad.description = Обеспечивает превращение в легкобронированный атакующий мех.\nИспользуйте, нажав, стоя на нём.
|
block.delta-mech-pad.description = Обеспечивает превращение в легкобронированный атакующий мех.\nИспользуйте, нажав, стоя на нём.
|
||||||
block.tau-mech-pad.description = Обеспечивает превращение в улучшенный мех поддержки.\nИспользуйте, нажав, стоя на нём.
|
block.tau-mech-pad.description = Обеспечивает превращение в продвинутый мех поддержки.\nИспользуйте, нажав, стоя на нём.
|
||||||
block.omega-mech-pad.description = Обеспечивает превращение в тяжелобронированный ракетный мех.\nИспользуйте, нажав, стоя на нём.
|
block.omega-mech-pad.description = Обеспечивает превращение в тяжелобронированный ракетный мех.\nИспользуйте, нажав, стоя на нём.
|
||||||
block.javelin-ship-pad.description = Обеспечивает превращение в быстрый перехватчик в лёгкой броне.\nИспользуйте, нажав, стоя на нём.
|
block.javelin-ship-pad.description = Обеспечивает превращение в быстрый перехватчик в лёгкой броне.\nИспользуйте, нажав, стоя на нём.
|
||||||
block.trident-ship-pad.description = Обеспечивает превращение в тяжёлый бомбардировщик.\nИспользуйте, нажав, стоя на нём.
|
block.trident-ship-pad.description = Обеспечивает превращение в тяжёлый бомбардировщик поддержки.\nИспользуйте, нажав, стоя на нём.
|
||||||
block.glaive-ship-pad.description = Обеспечивает превращение в большой, хорошо бронированный боевой корабль.\nИспользуйте, нажав, стоя на нём.
|
block.glaive-ship-pad.description = Обеспечивает превращение в большой, хорошо бронированный боевой корабль.\nИспользуйте, нажав, стоя на нём.
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Pick Block
|
|||||||
keybind.break_block.name = Break Block
|
keybind.break_block.name = Break Block
|
||||||
keybind.deselect.name = Deselect
|
keybind.deselect.name = Deselect
|
||||||
keybind.shoot.name = Shoot
|
keybind.shoot.name = Shoot
|
||||||
keybind.zoom_hold.name = Zoom Hold
|
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
|
|||||||
1201
core/assets/bundles/bundle_th.properties
Normal file
@@ -652,7 +652,6 @@ keybind.pick.name = Pick Block
|
|||||||
keybind.break_block.name = Break Block
|
keybind.break_block.name = Break Block
|
||||||
keybind.deselect.name = Eldeki yapiyi birak
|
keybind.deselect.name = Eldeki yapiyi birak
|
||||||
keybind.shoot.name = Sik
|
keybind.shoot.name = Sik
|
||||||
keybind.zoom_hold.name = Yaklasma basili tutmasi
|
|
||||||
keybind.zoom.name = Yaklas
|
keybind.zoom.name = Yaklas
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Durdur
|
keybind.pause.name = Durdur
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ keybind.pick.name = Blok Seç
|
|||||||
keybind.break_block.name = Blok Kır
|
keybind.break_block.name = Blok Kır
|
||||||
keybind.deselect.name = Seçimleri Kaldır
|
keybind.deselect.name = Seçimleri Kaldır
|
||||||
keybind.shoot.name = Ateş Et
|
keybind.shoot.name = Ateş Et
|
||||||
keybind.zoom_hold.name = Zumu Sabit Tutma
|
|
||||||
keybind.zoom.name = Zum
|
keybind.zoom.name = Zum
|
||||||
keybind.menu.name = Menü
|
keybind.menu.name = Menü
|
||||||
keybind.pause.name = Durdur
|
keybind.pause.name = Durdur
|
||||||
|
|||||||
@@ -10,8 +10,9 @@ link.dev-builds.description = Нестабільні версії
|
|||||||
link.trello.description = Офіційна дошка Trello для запланованих функцій
|
link.trello.description = Офіційна дошка Trello для запланованих функцій
|
||||||
link.itch.io.description = Itch.io сторінка, на якій можна завантажити гру
|
link.itch.io.description = Itch.io сторінка, на якій можна завантажити гру
|
||||||
link.google-play.description = Завантажити для Android з Google Play
|
link.google-play.description = Завантажити для Android з Google Play
|
||||||
link.f-droid.description = Перелік каталогу F-Droid
|
link.f-droid.description = Завантажити для Android з F-Droid
|
||||||
link.wiki.description = Офіційна Mindustry wiki
|
link.wiki.description = Офіційна Mindustry wiki
|
||||||
|
link.feathub.description = Запропонувати нові функції
|
||||||
linkfail = Не вдалося відкрити посилання!\nURL-адреса скопійована в буфер обміну.
|
linkfail = Не вдалося відкрити посилання!\nURL-адреса скопійована в буфер обміну.
|
||||||
screenshot = Зняток мапи збережено в {0}
|
screenshot = Зняток мапи збережено в {0}
|
||||||
screenshot.invalid = Мапа занадто велика, тому, мабуть, не вистачає пам’яті для знятку мапи.
|
screenshot.invalid = Мапа занадто велика, тому, мабуть, не вистачає пам’яті для знятку мапи.
|
||||||
@@ -25,6 +26,15 @@ load.image = Зображення
|
|||||||
load.content = Зміст
|
load.content = Зміст
|
||||||
load.system = Система
|
load.system = Система
|
||||||
load.mod = Модифікації
|
load.mod = Модифікації
|
||||||
|
load.scripts = Скрипти
|
||||||
|
|
||||||
|
be.update = Доступна нова збірка Bleeding Edge:
|
||||||
|
be.update.confirm = Завантажити і перезавантажити зараз?
|
||||||
|
be.updating = Оновлення…
|
||||||
|
be.ignore = Ігнорувати
|
||||||
|
be.noupdates = Оновлень не знайдено.
|
||||||
|
be.check = Перевірити на наявність оновлень
|
||||||
|
|
||||||
schematic = Схема
|
schematic = Схема
|
||||||
schematic.add = Зберегти схему…
|
schematic.add = Зберегти схему…
|
||||||
schematics = Схеми
|
schematics = Схеми
|
||||||
@@ -35,7 +45,7 @@ schematic.importfile = Імпортувати файл
|
|||||||
schematic.browseworkshop = Переглянути в Майстерні
|
schematic.browseworkshop = Переглянути в Майстерні
|
||||||
schematic.copy = Копіювати в буфер обміну
|
schematic.copy = Копіювати в буфер обміну
|
||||||
schematic.copy.import = Імпортувати з клавіатури
|
schematic.copy.import = Імпортувати з клавіатури
|
||||||
schematic.shareworkshop = Поширити в Майстерні
|
schematic.shareworkshop = Поширити в Майстерню
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Відобразити схему
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Відобразити схему
|
||||||
schematic.saved = Схема збережена.
|
schematic.saved = Схема збережена.
|
||||||
schematic.delete.confirm = Ця схема буде повністю випалена.
|
schematic.delete.confirm = Ця схема буде повністю випалена.
|
||||||
@@ -65,7 +75,7 @@ customgame = Користувацька гра
|
|||||||
newgame = Нова гра
|
newgame = Нова гра
|
||||||
none = <нічого>
|
none = <нічого>
|
||||||
minimap = Мінімапа
|
minimap = Мінімапа
|
||||||
position = Позиція
|
position = Місцерозташування
|
||||||
close = Закрити
|
close = Закрити
|
||||||
website = Веб-сайт
|
website = Веб-сайт
|
||||||
quit = Вихід
|
quit = Вихід
|
||||||
@@ -82,30 +92,44 @@ uploadingcontent = Вивантаження вмісту
|
|||||||
uploadingpreviewfile = Вивантаження файлу передперегляду
|
uploadingpreviewfile = Вивантаження файлу передперегляду
|
||||||
committingchanges = Здійснення змін
|
committingchanges = Здійснення змін
|
||||||
done = Зроблено
|
done = Зроблено
|
||||||
feature.unsupported = Ваш пристрій не підтримує цю особливість.
|
mods = Модифікації
|
||||||
mods.alphainfo = Майте на увазі, що модифікації знаходяться в альфі, і [scarlet]можуть бути дуже глючними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry GitHub або Discord.
|
mods.alphainfo = Майте на увазі, що модифікації знаходяться в альфі, і [scarlet]може бути дуже глючними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry Github або Discord.
|
||||||
|
mods.alpha = [scarlet](Альфа)
|
||||||
|
mods.none = [LIGHT_GRAY]Модифікацій не знайдено!
|
||||||
|
mod.enabled = [lightgray]Увімкнено
|
||||||
|
mod.disabled = [scarlet]Вимкнено
|
||||||
|
mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій.
|
||||||
|
mod.import = Імпортувати модифікацію
|
||||||
|
mod.remove.confirm = Цю модифікацію буде видалено.
|
||||||
|
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
||||||
mods.alpha = [scarlet](Альфа)
|
mods.alpha = [scarlet](Альфа)
|
||||||
mods = Модифікації
|
mods = Модифікації
|
||||||
mods.none = [LIGHT_GRAY]Модифікацій не знайдено!
|
mods.none = [LIGHT_GRAY]Модифікацій не знайдено!
|
||||||
mods.guide = Посібник зі створення модифицій
|
mods.guide = Посібник з модифицій
|
||||||
mods.report = Повідомити про ваду
|
mods.report = Повідомити про ваду
|
||||||
mods.openfolder = Відкрити теку модифікацій
|
mods.openfolder = Відкрити теку модифікацій
|
||||||
mod.enabled = [lightgray]Увімкнено
|
mod.enabled = [lightgray]Увімкнено
|
||||||
mod.disabled = [scarlet]Вимкнено
|
mod.disabled = [scarlet]Вимкнено
|
||||||
mod.disable = Вимкнути
|
mod.disable = Вимкн.
|
||||||
mod.delete.error = Неможливо видалити модифікацію. Файл, можливо, використовується.
|
mod.delete.error = Неможливо видалити модифікацію. Файл, можливо, використовується.
|
||||||
|
mod.requiresversion = [scarlet]Необхідна мінімальна версія гри: [accent]{0}
|
||||||
|
mod.erroredcontent = [scarlet]Помилки при завантаженнні
|
||||||
|
mod.errors = Сталася помилка при завантаження змісту.
|
||||||
|
mod.noerrorplay = [scarlet]Ви маєте модифікації з помилками.[] Або вимкніть проблемні модифікації, або виправте їх.
|
||||||
mod.missingdependencies = [scarlet]Відсутні залежності: {0}
|
mod.missingdependencies = [scarlet]Відсутні залежності: {0}
|
||||||
mod.nowdisabled = [scarlet]Модифікації '{0}' не вистачає залежностей:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буду автоматично вимкнена.
|
mod.nowdisabled = [scarlet]Модифікації «{0}» не вистачає залежних модифікацій:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буде автоматично вимкнена.
|
||||||
mod.enable = Увімкнути
|
mod.enable = Увімк.
|
||||||
mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій.
|
mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій.
|
||||||
mod.reloadrequired = [scarlet]Потрібно перезавантаження
|
mod.reloadrequired = [scarlet]Потрібно перезавантаження
|
||||||
mod.import = Імпортувати модифікацію
|
mod.import = Імпортувати модифікацію
|
||||||
mod.import.github = Імпортувати модификацію з Ґітгаб
|
mod.import.github = Завантажити мод з GitHub
|
||||||
|
mod.item.remove = Цей предмет є частиною модифікації [accent] «{0}»[]. Щоб видалити його, видаліть цю модифікацію.
|
||||||
mod.remove.confirm = Цю модифікацію буде видалено.
|
mod.remove.confirm = Цю модифікацію буде видалено.
|
||||||
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
||||||
mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0}
|
mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0}
|
||||||
mod.preview.missing = До публікації цієї модифікації в Майстерні, ви повинні додати зображення попереднього перегляду.\nПомістіть зображення з назвою [accent] preview.png[] у теку з модификаціями і спробуйте знову.
|
mod.preview.missing = До публікації цієї модифікації в Майстерні, ви повинні додати зображення попереднього перегляду.\nПомістіть зображення з назвою [accent] preview.png[] у теку з модификаціями і спробуйте знову.
|
||||||
mod.folder.missing = Тільки модификації у формі теці можуть бути опубліковані в Майстерні.\nЩоб перетворити будь-яку модификацію у теку, просто розархівуйте цей файлу теку та видаліть старий архів, і потім перезапустіть гру або перезавантажте ваші модификації.
|
mod.folder.missing = Тільки модификації у формі теці можуть бути опубліковані в Майстерні.\nЩоб перетворити будь-яку модификацію у теку, просто розархівуйте цей файлу теку та видаліть старий архів, і потім перезапустіть гру або перезавантажте ваші модификації.
|
||||||
|
mod.scripts.unsupported = Ваш пристрій не підтримує скрипти модифікацій. Деякі модифифікаціх не будуть працювати правильно.
|
||||||
about.button = Про гру
|
about.button = Про гру
|
||||||
name = Ім’я:
|
name = Ім’я:
|
||||||
noname = Спочатку придумайте[accent] собі ім’я[].
|
noname = Спочатку придумайте[accent] собі ім’я[].
|
||||||
@@ -120,7 +144,7 @@ players = Гравців: {0}
|
|||||||
players.single = {0} гравець на сервері
|
players.single = {0} гравець на сервері
|
||||||
server.closing = [accent]Закриття сервера…
|
server.closing = [accent]Закриття сервера…
|
||||||
server.kicked.kick = Ви були вигнані з сервера!
|
server.kicked.kick = Ви були вигнані з сервера!
|
||||||
server.kicked.whitelist = Ви не в білому спискі сервері.
|
server.kicked.whitelist = Ви не в білому спискі сервера!
|
||||||
server.kicked.serverClose = Сервер закрито.
|
server.kicked.serverClose = Сервер закрито.
|
||||||
server.kicked.vote = Вас було вигнано із сервера за допомогою голосування. Прощавайте.
|
server.kicked.vote = Вас було вигнано із сервера за допомогою голосування. Прощавайте.
|
||||||
server.kicked.clientOutdated = Застарілий клієнт! Оновіть свою гру!
|
server.kicked.clientOutdated = Застарілий клієнт! Оновіть свою гру!
|
||||||
@@ -134,6 +158,7 @@ server.kicked.nameEmpty = Ваше ім’я має містити принай
|
|||||||
server.kicked.idInUse = Ви вже на цьому сервері! Підключення двох облікових записів не дозволяється.
|
server.kicked.idInUse = Ви вже на цьому сервері! Підключення двох облікових записів не дозволяється.
|
||||||
server.kicked.customClient = Цей сервер не підтримує користувацькі збірки. Завантажте офіційну версію.
|
server.kicked.customClient = Цей сервер не підтримує користувацькі збірки. Завантажте офіційну версію.
|
||||||
server.kicked.gameover = Гра завершена!
|
server.kicked.gameover = Гра завершена!
|
||||||
|
server.kicked.serverRestarting = Сервер перезавантажується
|
||||||
server.versions = Ваша версія:[accent] {0}[]\nВерсія на сервері:[accent] {1}[]
|
server.versions = Ваша версія:[accent] {0}[]\nВерсія на сервері:[accent] {1}[]
|
||||||
host.info = Кнопка [accent]Сервер[] розміщує сервер на порті [scarlet]6567[]. \nКористувачі, які знаходяться у тій же [lightgray]WiFi або локальній мережі[], повинні бачити ваш сервер у своєму списку серверів.\n\nЯкщо ви хочете, щоб люди могли приєднуватися з будь-якої точки через IP, то[accent] переадресація порту []обов’язкова.\n\n[lightgray]Примітка. Якщо у вас виникли проблеми з підключенням до вашої локальної гри, переконайтеся, що ви дозволили Mindustry доступ до вашої локальної мережі в налаштуваннях брандмауера. Зауважте, що публічні мережі іноді не дозволяють виявити сервер.
|
host.info = Кнопка [accent]Сервер[] розміщує сервер на порті [scarlet]6567[]. \nКористувачі, які знаходяться у тій же [lightgray]WiFi або локальній мережі[], повинні бачити ваш сервер у своєму списку серверів.\n\nЯкщо ви хочете, щоб люди могли приєднуватися з будь-якої точки через IP, то[accent] переадресація порту []обов’язкова.\n\n[lightgray]Примітка. Якщо у вас виникли проблеми з підключенням до вашої локальної гри, переконайтеся, що ви дозволили Mindustry доступ до вашої локальної мережі в налаштуваннях брандмауера. Зауважте, що публічні мережі іноді не дозволяють виявити сервер.
|
||||||
join.info = Тут ви можете ввести [accent]IP сервера[] для підключення або знайти сервери у [accent]локальній мережі[] для підключення до них.\nПідтримується локальна мережа(LAN) і широкосмугова мережа(WAN).\n\n[lightgray] Примітка. Тут немає автоматичного глобального списку серверів; якщо ви хочете підключитися до когось через IP, вам доведеться попросити створювача сервера дати свій ip.
|
join.info = Тут ви можете ввести [accent]IP сервера[] для підключення або знайти сервери у [accent]локальній мережі[] для підключення до них.\nПідтримується локальна мережа(LAN) і широкосмугова мережа(WAN).\n\n[lightgray] Примітка. Тут немає автоматичного глобального списку серверів; якщо ви хочете підключитися до когось через IP, вам доведеться попросити створювача сервера дати свій ip.
|
||||||
@@ -196,8 +221,8 @@ save.delete.confirm = Ви дійсно хочете видалити це зб
|
|||||||
save.delete = Видалити
|
save.delete = Видалити
|
||||||
save.export = Експортувати збереження
|
save.export = Експортувати збереження
|
||||||
save.import.invalid = [accent]Це збереження недійсне!
|
save.import.invalid = [accent]Це збереження недійсне!
|
||||||
save.import.fail = [crimson]Не вдалося імпортувати збереження: [accent]{0}
|
save.import.fail = [crimson]Не вдалося завантажити збереження: [accent]{0}
|
||||||
save.export.fail = [crimson]Не вдалося експортувати збереження: [accent]{0}
|
save.export.fail = [crimson]Не вдалося вивантажити збереження: [accent]{0}
|
||||||
save.import = Імпортувати збереження
|
save.import = Імпортувати збереження
|
||||||
save.newslot = Ім’я збереження:
|
save.newslot = Ім’я збереження:
|
||||||
save.rename = Перейменувати
|
save.rename = Перейменувати
|
||||||
@@ -227,12 +252,12 @@ cancel = Скасувати
|
|||||||
openlink = Відкрити посилання
|
openlink = Відкрити посилання
|
||||||
copylink = Скопіювати посилання
|
copylink = Скопіювати посилання
|
||||||
back = Назад
|
back = Назад
|
||||||
data.export = Експортувати дані
|
data.export = Вивантажити дані
|
||||||
data.import = Импортувати дані
|
data.import = Завантажити дані
|
||||||
data.exported = Дані імпортовано.
|
data.exported = Дані вивантажено.
|
||||||
data.invalid = Це не дійсні ігрові дані.
|
data.invalid = Це не дійсні ігрові дані.
|
||||||
data.import.confirm = Імпорт зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється.
|
data.import.confirm = Вивантаження зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється.
|
||||||
classic.export = Експортувати класичні дані
|
classic.export = Вивантажити класичні дані
|
||||||
classic.export.text = Класичне (версія 3.5 збірка 40) збереження або мапа були знайдені. Ви хочете експортувати ці дані в домашню теку телефону, для використання у застосунку Mindustry Classic?
|
classic.export.text = Класичне (версія 3.5 збірка 40) збереження або мапа були знайдені. Ви хочете експортувати ці дані в домашню теку телефону, для використання у застосунку Mindustry Classic?
|
||||||
quit.confirm = Ви впевнені, що хочете вийти?
|
quit.confirm = Ви впевнені, що хочете вийти?
|
||||||
quit.confirm.tutorial = Ви впевнені, що хочете вийти з навчання?
|
quit.confirm.tutorial = Ви впевнені, що хочете вийти з навчання?
|
||||||
@@ -304,7 +329,7 @@ waves.invalid = Недійсні хвилі у буфері обміну.
|
|||||||
waves.copied = Хвилі скопійовані.
|
waves.copied = Хвилі скопійовані.
|
||||||
waves.none = Вороги не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
|
waves.none = Вороги не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
|
||||||
editor.default = [lightgray]<За замовчуванням>
|
editor.default = [lightgray]<За замовчуванням>
|
||||||
details = Деталі…
|
details = Подробиці…
|
||||||
edit = Редагувати…
|
edit = Редагувати…
|
||||||
editor.name = Назва:
|
editor.name = Назва:
|
||||||
editor.spawn = Створити бойову одиницю
|
editor.spawn = Створити бойову одиницю
|
||||||
@@ -312,7 +337,7 @@ editor.removeunit = Видалити бойову одиницю
|
|||||||
editor.teams = Команди
|
editor.teams = Команди
|
||||||
editor.errorload = Помилка завантаження зображення:\n[accent] {0}
|
editor.errorload = Помилка завантаження зображення:\n[accent] {0}
|
||||||
editor.errorsave = Помилка збереження зображення:\n[accent]{0}
|
editor.errorsave = Помилка збереження зображення:\n[accent]{0}
|
||||||
editor.errorimage = Це зображення, а не мапа. Не змінюйте розширення, очікуючи, що це запрацює.\n\nЯкщо Ви хочете імпортувати застарілку мапу, то використовуйте кнопку «Імпортувати застаріле зображення» у редакторі.
|
editor.errorimage = Це зображення, а не мапа. Не змінюйте розширення, очікуючи, що це запрацює.\n\nЯкщо ви хочете імпортувати застарілку мапу, то використовуйте кнопку «Імпортувати застаріле зображення» у редакторі.
|
||||||
editor.errorlegacy = Ця мапа занадто стара і використовує попередній формат мапи, який більше не підтримується.
|
editor.errorlegacy = Ця мапа занадто стара і використовує попередній формат мапи, який більше не підтримується.
|
||||||
editor.errornot = Це не мапа.
|
editor.errornot = Це не мапа.
|
||||||
editor.errorheader = Цей файл мапи недійсний або пошкоджений.
|
editor.errorheader = Цей файл мапи недійсний або пошкоджений.
|
||||||
@@ -413,8 +438,8 @@ abandon = Покинути
|
|||||||
abandon.text = Ця зона і всі її ресурси будуть втрачені.
|
abandon.text = Ця зона і всі її ресурси будуть втрачені.
|
||||||
locked = Заблоковано
|
locked = Заблоковано
|
||||||
complete = [lightgray]Досягнута:
|
complete = [lightgray]Досягнута:
|
||||||
requirement.wave = Досягніть хвилі {0} у {1}
|
requirement.wave = Досягніть хвилі {0} у зоні «{1}»
|
||||||
requirement.core = Знишьте вороже ядро у {0}
|
requirement.core = Знищьте вороже ядро у {0}
|
||||||
requirement.unlock = Розблокуйте {0}
|
requirement.unlock = Розблокуйте {0}
|
||||||
resume = Відновити зону:\n[lightgray]{0}
|
resume = Відновити зону:\n[lightgray]{0}
|
||||||
bestwave = [lightgray]Найкраща хвиля: {0}
|
bestwave = [lightgray]Найкраща хвиля: {0}
|
||||||
@@ -423,16 +448,16 @@ launch.title = Запуск вдалий
|
|||||||
launch.next = [lightgray]наступна можливість на {0}-тій хвилі
|
launch.next = [lightgray]наступна можливість на {0}-тій хвилі
|
||||||
launch.unable2 = [scarlet]ЗАПУСК неможливий.[]
|
launch.unable2 = [scarlet]ЗАПУСК неможливий.[]
|
||||||
launch.confirm = Це видалить всі ресурси у Вашому ядрі.\nВи не зможете повернутися до цієї бази.
|
launch.confirm = Це видалить всі ресурси у Вашому ядрі.\nВи не зможете повернутися до цієї бази.
|
||||||
launch.skip.confirm = Якщо Ви пропустите зараз, Ви не зможете не запускати до більш пізніх хвиль.
|
launch.skip.confirm = Якщо ви пропустите зараз, Ви не зможете не запускати до більш пізніх хвиль.
|
||||||
uncover = Розкрити
|
uncover = Розкрити
|
||||||
configure = Вивантажити конфігурацію
|
configure = Вивантажити конфігурацію
|
||||||
bannedblocks = Заборонені блоки
|
bannedblocks = Заборонені блоки
|
||||||
addall = Додати все
|
addall = Додати все
|
||||||
configure.locked = [lightgray]Можливість розблокувати вивантаження ресурсів буде доступна на {0}-тій хвилі.
|
configure.locked = {0}[lightgray]Тільки після цього можливість розблокувати вивантаження ресурсів буде доступна.
|
||||||
configure.invalid = Кількість повинна бути числом між 0 та {0}.
|
configure.invalid = Кількість повинна бути числом між 0 та {0}.
|
||||||
zone.unlocked = Зона «[lightgray]{0}» тепер розблокована.
|
zone.unlocked = Зона «[lightgray]{0}» тепер розблокована.
|
||||||
zone.requirement.complete = Ви досягли {0}-тої хвилі,\nВимоги до зони «{1}» виконані.
|
zone.requirement.complete = Ви досягли {0}-тої хвилі. \nВимоги до зони «{1}» виконані.
|
||||||
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
|
zone.config.unlocked = Вивантаження розблоковано:[lightgray]\n{0}
|
||||||
zone.resources = Виявлені ресурси:
|
zone.resources = Виявлені ресурси:
|
||||||
zone.objective = [lightgray]Мета: [accent]{0}
|
zone.objective = [lightgray]Мета: [accent]{0}
|
||||||
zone.objective.survival = Вижити
|
zone.objective.survival = Вижити
|
||||||
@@ -449,7 +474,7 @@ error.mapnotfound = Файл мапи не знайдено
|
|||||||
error.io = Мережева помилка введення-виведення
|
error.io = Мережева помилка введення-виведення
|
||||||
error.any = Невідома мережева помилка
|
error.any = Невідома мережева помилка
|
||||||
error.bloom = Не вдалося ініціалізувати цвітіння.\nВаш пристрій, мабуть, не підтримує це.
|
error.bloom = Не вдалося ініціалізувати цвітіння.\nВаш пристрій, мабуть, не підтримує це.
|
||||||
zone.groundZero.name = Нульова земля
|
zone.groundZero.name = Відправний пункт
|
||||||
zone.desertWastes.name = Пустельні відходи
|
zone.desertWastes.name = Пустельні відходи
|
||||||
zone.craters.name = Кратери
|
zone.craters.name = Кратери
|
||||||
zone.frozenForest.name = Крижаний ліс
|
zone.frozenForest.name = Крижаний ліс
|
||||||
@@ -480,7 +505,8 @@ zone.crags.description = <вставити опис тут>
|
|||||||
settings.language = Мова
|
settings.language = Мова
|
||||||
settings.data = Ігрові дані
|
settings.data = Ігрові дані
|
||||||
settings.reset = Скинути за замовчуванням
|
settings.reset = Скинути за замовчуванням
|
||||||
settings.rebind = Зміна
|
settings.rebind = Змінити
|
||||||
|
settings.resetKey = Скинути
|
||||||
settings.controls = Керування
|
settings.controls = Керування
|
||||||
settings.game = Гра
|
settings.game = Гра
|
||||||
settings.sound = Звук
|
settings.sound = Звук
|
||||||
@@ -501,7 +527,7 @@ blocks.output = Вихід
|
|||||||
blocks.booster = Прискорювач
|
blocks.booster = Прискорювач
|
||||||
block.unknown = [lightgray]???
|
block.unknown = [lightgray]???
|
||||||
blocks.powercapacity = Місткість енергії
|
blocks.powercapacity = Місткість енергії
|
||||||
blocks.powershot = Енергія/постріл
|
blocks.powershot = Енергія за постріл
|
||||||
blocks.damage = Шкода
|
blocks.damage = Шкода
|
||||||
blocks.targetsair = Повітряні мішені
|
blocks.targetsair = Повітряні мішені
|
||||||
blocks.targetsground = Наземні мішені
|
blocks.targetsground = Наземні мішені
|
||||||
@@ -513,7 +539,7 @@ blocks.liquidcapacity = Місткість рідини
|
|||||||
blocks.powerrange = Діапазон передачі енергії
|
blocks.powerrange = Діапазон передачі енергії
|
||||||
blocks.powerconnections = Максимальна кількість з’єднань
|
blocks.powerconnections = Максимальна кількість з’єднань
|
||||||
blocks.poweruse = Енергії використовує
|
blocks.poweruse = Енергії використовує
|
||||||
blocks.powerdamage = Енергія/урон
|
blocks.powerdamage = Енергія/шкода
|
||||||
blocks.itemcapacity = Місткість предметів
|
blocks.itemcapacity = Місткість предметів
|
||||||
blocks.basepowergeneration = Базова генерація енергії
|
blocks.basepowergeneration = Базова генерація енергії
|
||||||
blocks.productiontime = Час виробництва
|
blocks.productiontime = Час виробництва
|
||||||
@@ -563,6 +589,8 @@ unit.blocks = блоки
|
|||||||
unit.powersecond = одиниць енергії за секунду
|
unit.powersecond = одиниць енергії за секунду
|
||||||
unit.liquidsecond = одиниць рідини за секунду
|
unit.liquidsecond = одиниць рідини за секунду
|
||||||
unit.itemssecond = предметів за секунду
|
unit.itemssecond = предметів за секунду
|
||||||
|
unit.thousands = тис
|
||||||
|
unit.millions = млн
|
||||||
unit.liquidunits = одиниць рідини
|
unit.liquidunits = одиниць рідини
|
||||||
unit.powerunits = одиниць енергії
|
unit.powerunits = одиниць енергії
|
||||||
unit.degrees = град.
|
unit.degrees = град.
|
||||||
@@ -606,6 +634,7 @@ setting.screenshake.name = Тряска екрану
|
|||||||
setting.effects.name = Ефекти
|
setting.effects.name = Ефекти
|
||||||
setting.destroyedblocks.name = Показувати зруйновані блоки
|
setting.destroyedblocks.name = Показувати зруйновані блоки
|
||||||
setting.conveyorpathfinding.name = Пошук шляху для встановлення конвейерів
|
setting.conveyorpathfinding.name = Пошук шляху для встановлення конвейерів
|
||||||
|
setting.coreselect.name = Дозволити схематичні ядра
|
||||||
setting.sensitivity.name = Чутливість контролера
|
setting.sensitivity.name = Чутливість контролера
|
||||||
setting.saveinterval.name = Інтервал збереження
|
setting.saveinterval.name = Інтервал збереження
|
||||||
setting.seconds = {0} с
|
setting.seconds = {0} с
|
||||||
@@ -617,7 +646,7 @@ setting.fps.name = Показувати FPS і затримку до серве
|
|||||||
setting.blockselectkeys.name = Показувати клавіші вибору блока
|
setting.blockselectkeys.name = Показувати клавіші вибору блока
|
||||||
setting.vsync.name = Вертикальна синхронізація
|
setting.vsync.name = Вертикальна синхронізація
|
||||||
setting.pixelate.name = Пікселізація[lightgray] (вимикає анімації)
|
setting.pixelate.name = Пікселізація[lightgray] (вимикає анімації)
|
||||||
setting.minimap.name = Показувати міні-мапу
|
setting.minimap.name = Показувати мінімапу
|
||||||
setting.position.name = Показувати координати гравця
|
setting.position.name = Показувати координати гравця
|
||||||
setting.musicvol.name = Гучність музики
|
setting.musicvol.name = Гучність музики
|
||||||
setting.ambientvol.name = Звуки навколишнього середовища
|
setting.ambientvol.name = Звуки навколишнього середовища
|
||||||
@@ -643,11 +672,12 @@ category.multiplayer.name = Мережева гра
|
|||||||
command.attack = Атакувати
|
command.attack = Атакувати
|
||||||
command.rally = Точка збору
|
command.rally = Точка збору
|
||||||
command.retreat = Відступити
|
command.retreat = Відступити
|
||||||
placement.blockselectkeys = \n[lightgray]Клавіша: [{0},
|
placement.blockselectkeys = \n[lightgray]Ключ: [{0},
|
||||||
keybind.clear_building.name = Очистити план будування
|
keybind.clear_building.name = Очистити план будування
|
||||||
keybind.press = Натисніть клавішу…
|
keybind.press = Натисніть клавішу…
|
||||||
keybind.press.axis = Натисніть клавішу…
|
keybind.press.axis = Натисніть клавішу…
|
||||||
keybind.screenshot.name = Зняток мапи
|
keybind.screenshot.name = Зняток мапи
|
||||||
|
keybind.toggle_power_lines.name = Показувати лазери енергопостачання
|
||||||
keybind.move_x.name = Рух по осі X
|
keybind.move_x.name = Рух по осі X
|
||||||
keybind.move_y.name = Рух по осі Y
|
keybind.move_y.name = Рух по осі Y
|
||||||
keybind.mouse_move.name = Слідкувати за мишею
|
keybind.mouse_move.name = Слідкувати за мишею
|
||||||
@@ -679,7 +709,6 @@ keybind.pick.name = Вибрати блок
|
|||||||
keybind.break_block.name = Зламати блок
|
keybind.break_block.name = Зламати блок
|
||||||
keybind.deselect.name = Скасувати
|
keybind.deselect.name = Скасувати
|
||||||
keybind.shoot.name = Постріл
|
keybind.shoot.name = Постріл
|
||||||
keybind.zoom_hold.name = Керування масштабом
|
|
||||||
keybind.zoom.name = Приблизити
|
keybind.zoom.name = Приблизити
|
||||||
keybind.menu.name = Меню
|
keybind.menu.name = Меню
|
||||||
keybind.pause.name = Пауза
|
keybind.pause.name = Пауза
|
||||||
@@ -716,6 +745,7 @@ rules.enemyCheat = Нескінченні ресурси для ШІ
|
|||||||
rules.unitdrops = Ресурс бойових одиниць
|
rules.unitdrops = Ресурс бойових одиниць
|
||||||
rules.unitbuildspeedmultiplier = Множник швидкості виробництва бойових одиниць
|
rules.unitbuildspeedmultiplier = Множник швидкості виробництва бойових одиниць
|
||||||
rules.unithealthmultiplier = Множник здоров’я бойових одиниць
|
rules.unithealthmultiplier = Множник здоров’я бойових одиниць
|
||||||
|
rules.blockhealthmultiplier = Множник здоров’я блоків
|
||||||
rules.playerhealthmultiplier = Множник здоров’я гравця
|
rules.playerhealthmultiplier = Множник здоров’я гравця
|
||||||
rules.playerdamagemultiplier = Множник шкоди гравця
|
rules.playerdamagemultiplier = Множник шкоди гравця
|
||||||
rules.unitdamagemultiplier = Множник шкоди бойових одиниць
|
rules.unitdamagemultiplier = Множник шкоди бойових одиниць
|
||||||
@@ -749,7 +779,7 @@ item.graphite.name = Графіт
|
|||||||
item.titanium.name = Титан
|
item.titanium.name = Титан
|
||||||
item.thorium.name = Торій
|
item.thorium.name = Торій
|
||||||
item.silicon.name = Кремній
|
item.silicon.name = Кремній
|
||||||
item.plastanium.name = Пластиній
|
item.plastanium.name = Пластаній
|
||||||
item.phase-fabric.name = Фазова тканина
|
item.phase-fabric.name = Фазова тканина
|
||||||
item.surge-alloy.name = Кінетичний сплав
|
item.surge-alloy.name = Кінетичний сплав
|
||||||
item.spore-pod.name = Споровий стручок
|
item.spore-pod.name = Споровий стручок
|
||||||
@@ -783,6 +813,7 @@ mech.trident-ship.name = Тризубець
|
|||||||
mech.trident-ship.weapon = Бомби
|
mech.trident-ship.weapon = Бомби
|
||||||
mech.glaive-ship.name = Спис
|
mech.glaive-ship.name = Спис
|
||||||
mech.glaive-ship.weapon = Вогняний кулемет
|
mech.glaive-ship.weapon = Вогняний кулемет
|
||||||
|
item.corestorable = [lightgray]Зберігання в ядрі: {0}
|
||||||
item.explosiveness = [lightgray]Вибухонебезпечність: {0}%
|
item.explosiveness = [lightgray]Вибухонебезпечність: {0}%
|
||||||
item.flammability = [lightgray]Вогненебезпечність: {0}%
|
item.flammability = [lightgray]Вогненебезпечність: {0}%
|
||||||
item.radioactivity = [lightgray]Радіоактивність: {0}%
|
item.radioactivity = [lightgray]Радіоактивність: {0}%
|
||||||
@@ -832,7 +863,7 @@ block.core-nucleus.name = Ядро «Атом»
|
|||||||
block.deepwater.name = Глибоководдя
|
block.deepwater.name = Глибоководдя
|
||||||
block.water.name = Вода
|
block.water.name = Вода
|
||||||
block.tainted-water.name = Забруднена вода
|
block.tainted-water.name = Забруднена вода
|
||||||
block.darksand-tainted-water.name = Темний пісок з забрудненою водою
|
block.darksand-tainted-water.name = Темний пісок із забрудненою водою
|
||||||
block.tar.name = Дьоготь
|
block.tar.name = Дьоготь
|
||||||
block.stone.name = Камінь
|
block.stone.name = Камінь
|
||||||
block.sand.name = Пісок
|
block.sand.name = Пісок
|
||||||
@@ -1016,30 +1047,29 @@ unit.eradicator.name = Випалювач
|
|||||||
unit.lich.name = Лич
|
unit.lich.name = Лич
|
||||||
unit.reaper.name = Жнець
|
unit.reaper.name = Жнець
|
||||||
tutorial.next = [lightgray]<Натисніть для продовження>
|
tutorial.next = [lightgray]<Натисніть для продовження>
|
||||||
tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочніть з[accent] видобування міді[]. Використовуйте [[WASD] для руху.\n[accent] Утримуйте [[Ctrl] під час прокрутки миші[] для приближення і віддалення. Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
|
tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочніть з [accent]видобутку міді[]. Використовуйте [[WASD] для руху.\n[accent]Прокручуйте миш[] для приближення і віддалення. Наблизьтесь до мідної жили біля вашого ядра, а потім натисніть на неї, щоб розпочати видобуток.\n\n[accent]{0}/{1} міді
|
||||||
tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть екраном, щоб рухатися.\n[accent] Зведіть або розведіть 2 пальця [] для приближення і віддалення відповідно.\nз[accent] видобування міді.[] Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
|
tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть екраном, щоб рухатися.\n[accent] Зведіть або розведіть 2 пальця [] для приближення і віддалення відповідно.\nз[accent] видобування міді.[] Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
|
||||||
tutorial.drill = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку свердла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\nВи також можете вибрати бур, натиснувши [accent][[2][], а потім натиснути [accent][[1][] швидко, незалежно від того, яка вкладка відкрита.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
|
tutorial.drill = Добування вручну не є ефективним.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку із зображенням свердла знизу праворуч.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\nВи також можете вибрати бур, натиснувши [accent][[2][], а потім швидко натиснути [accent][[1][], незалежно від того, яка вкладка відкрита.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
|
||||||
tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent] галочку[] нижче, щоб підтвердити розміщення to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку із зображенням сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent]галочку[] нижче, щоб підтвердити розміщення .\nНатисніть [accent]кнопку X[], щоб скасувати розміщення.
|
||||||
tutorial.blockinfo = Кожен блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисність на кнопку «?», коли Ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура прямо зараз.[]
|
tutorial.blockinfo = Кожен блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисність на кнопку «?», коли ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура прямо зараз.[]
|
||||||
tutorial.conveyor = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent]Утримуйте миш, щоб розмістити у лінію.[]\nУтримуйте[accent] CTRL[] під час вибору лінії для розміщення по діагоналі.\n\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
|
tutorial.conveyor = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent]Утримуйте миш, щоб розмістити у лінію.[]\nУтримуйте[accent] CTRL[] під час вибору лінії для розміщення по діагоналі.\\nПрокручуйте, щоб обертати блоки до їх установлення.\n[accent]Розмістіть 2 конвеєри у лінію, а потім доставте предмет в ядро.tutorial.conveyor.mobile = [accent]Конвеєри[] використовується для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви вибрали.\nВикористовуйте колесо прокрутки, щоб обертати блоки перед їх розміщенням\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
|
||||||
tutorial.conveyor.mobile = [accent]Конвеєри[] використовується для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви вибрали.\nВикористовуйте колесо прокрутки, щоб обертати блоки перед їх розміщенням\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
|
tutorial.turret = Оборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башту «Подвійна»[] біля вашої бази.
|
||||||
tutorial.turret = Оборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башточку «Подвійна»[] біля вашої бази.
|
|
||||||
tutorial.drillturret = «Подвійна» потребує [accent]мідні боєприпаси[] для стрільби.\nРозмістіть бур біля башточки\nПроведіть конвеєри до башточки, щоб заповнити її боєприпасами.\n\n[accent]Доставлено боєприпасів: 0/1
|
tutorial.drillturret = «Подвійна» потребує [accent]мідні боєприпаси[] для стрільби.\nРозмістіть бур біля башточки\nПроведіть конвеєри до башточки, щоб заповнити її боєприпасами.\n\n[accent]Доставлено боєприпасів: 0/1
|
||||||
tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисність пробіл для павзи.tutorial.launch
|
tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисність пробіл для павзи.
|
||||||
tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]атисніть кнопку зліва вгорі для павзи.
|
tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисніть кнопку вгорі ліворуч для павзи.
|
||||||
tutorial.unpause = Тепер натисність пробіл, щоб зняти павзу.
|
tutorial.unpause = Тепер натисність пробіл, щоб зняти павзу.
|
||||||
tutorial.unpause.mobile = Тепер натисність туди ще раз, щоб зняти павзу.
|
tutorial.unpause.mobile = Тепер натисність туди ще раз, щоб зняти павзу.
|
||||||
tutorial.breaking = Блоки часто повинні бути знищені.\n[accent]Утримуючи ПКМ[] Ви знищите всі виділені блоки.[]\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
tutorial.breaking = Блоки часто повинні бути знищені.\n[accent]Утримуючи ПКМ[] ви знищите всі виділені блоки.[]\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
||||||
tutorial.breaking.mobile = Блоки часто повинні бути знищені.\n[accent]Виберіть режим руйнування[], потім натисніть на блок, щоб зламати його.\nЗнищіть область, утримуючи палець протягом декількох секунд [] і потягнувши в потрібному напрямку.\nНатисніть кнопку галочки, щоб підтвердити руйнування.\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
tutorial.breaking.mobile = Блоки часто повинні бути знищені.\n[accent]Виберіть режим руйнування[], потім натисніть на блок, щоб зламати його.\nЗнищіть область, утримуючи палець протягом декількох секунд [] і потягнувши в потрібному напрямку.\nНатисніть кнопку галочки, щоб підтвердити руйнування.\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
||||||
tutorial.withdraw = У деяких ситуаціях потрібно брати предмети безпосередньо з блоків.\nЩоб зробити це, [accent]натисність на блок[] з предметами на ньому, і потім [accent]натисніть на предмет[] в інвентарі.\nМожна вилучити кілька предметів [accent]натискаючи та утримуючи[].\n\n[accent]Вилучіть трохи міді з ядра.[]
|
tutorial.withdraw = У деяких ситуаціях потрібно брати предмети безпосередньо з блоків.\nЩоб зробити це, [accent]натисність на блок[] з предметами, і потім [accent]натисніть на предмет[] в інвентарі.\nМожна вилучити кілька предметів [accent]натискаючи та утримуючи[].\n\n[accent]Вилучіть трохи міді з ядра.[]
|
||||||
tutorial.deposit = Покладіть предмети в блоки, перетягнувши з вашого корабля в потрібний блок.\n\n[accent]Покладіть мідь назад у ядро.[]
|
tutorial.deposit = Покладіть предмети в блоки, перетягнувши з вашого корабля в потрібний блок.\n\n[accent]Покладіть мідь назад у ядро.[]
|
||||||
tutorial.waves = [lightgray] Ворог[] з’явився.\n\nЗахистіть ядро від двух хвиль.[accent] Натисніть[], щоб стріляти.\nСтворіть більше башточок і бурів. Добудьте більше міді.
|
tutorial.waves = [lightgray] Ворог[] з’явився.\n\nЗахистіть ядро від двух хвиль.[accent] Натисніть ЛКМ[], щоб стріляти.\nСтворіть більше башт і бурів. Добудьте більше міді.
|
||||||
tutorial.waves.mobile = [lightgray] Ворог[] з’явився.\n\nЗахистіть ядро від двух хвиль. Ваш корабель буде автоматично атакувати ворогів.\nСтворіть більше башточок і бурів. Добудьте більше міді.
|
tutorial.waves.mobile = [lightgray] Ворог[] з’явився.\n\nЗахистіть ядро від двух хвиль. Ваш корабель буде автоматично атакувати ворогів.\nСтворіть більше башт і бурів. Добудьте більше міді.
|
||||||
tutorial.launch = Як тільки ви досягнете певної хвилі, Ви зможете[accent] запустити ядро[], залишивши захисні сили позаду та [accent]отримати всі ресурси у вашому ядрі.[]\nЦі отримані ресурси можуть бути використані для дослідження нових технологій.\n\n[accent]Натисніть кнопку запуску.
|
tutorial.launch = Як тільки ви досягнете певної хвилі, ви зможете[accent] запустити ядро[], залишивши захисні сили позаду та [accent]отримати всі ресурси у вашому ядрі.[]\nЦі отримані ресурси можуть бути використані для дослідження нових технологій.\n\n[accent]Натисніть кнопку запуску.
|
||||||
item.copper.description = Найбільш базовий будівельний матеріал. Широко використовується у всіх типах блоків.
|
item.copper.description = Найбільш базовий будівельний матеріал. Широко використовується у всіх типах блоків.
|
||||||
item.lead.description = Основний стартовий матеріал. Широко застосовується в електроніці та транспортуванні рідин.
|
item.lead.description = Основний стартовий матеріал. Широко застосовується в електроніці та транспортуванні рідин.
|
||||||
item.metaglass.description = Супер жорсткий склад скла. Широко застосовується для розподілу та зберігання рідини.
|
item.metaglass.description = Супер жорсткий склад скла. Широко застосовується для розподілу та зберігання рідини.
|
||||||
item.graphite.description = Мінералізований вуглець, що використовується для боєприпасів та електроізоляції.
|
item.graphite.description = Мінералізований вуглець, що використовується для боєприпасів та як компонент.
|
||||||
item.sand.description = Поширений матеріал, який широко використовується при виплавці, як при сплавленні, так і в якості відходів.
|
item.sand.description = Поширений матеріал, який широко використовується при виплавці, як при сплавленні, так і в якості відходів.
|
||||||
item.coal.description = Окам’янілі рослинні речовини, що утворюються задовго до посіву. Широко використовується для виробництва пального та ресурсів.
|
item.coal.description = Окам’янілі рослинні речовини, що утворюються задовго до посіву. Широко використовується для виробництва пального та ресурсів.
|
||||||
item.titanium.description = Рідкісний надлегкий метал, який широко використовується для транспортування рідини, бурів і літаків.
|
item.titanium.description = Рідкісний надлегкий метал, який широко використовується для транспортування рідини, бурів і літаків.
|
||||||
@@ -1057,11 +1087,11 @@ liquid.slag.description = Різні види розплавленого мет
|
|||||||
liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена в вугілля в якості палива або використана як куля.
|
liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена в вугілля в якості палива або використана як куля.
|
||||||
liquid.cryofluid.description = Інертна, не роз’їдаюча рідина, створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості охолоджуючої рідини.
|
liquid.cryofluid.description = Інертна, не роз’їдаюча рідина, створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості охолоджуючої рідини.
|
||||||
mech.alpha-mech.description = Стандартний керований мех. Заснований на бойовій одиниці «Кинджал», з оновленими бронею та можливостями будування. Наносить більше шкоди, ніж «Дротик».
|
mech.alpha-mech.description = Стандартний керований мех. Заснований на бойовій одиниці «Кинджал», з оновленими бронею та можливостями будування. Наносить більше шкоди, ніж «Дротик».
|
||||||
mech.delta-mech.description = Швидкий, легкоброньований мех, зроблений для тактики «атакуй і біжи». Наносить мало шкоди будівлям, але може дуже швидко вбити великі групи підрозділів противника своєю дуговою блискавкою.
|
mech.delta-mech.description = Швидкий, легкоброньований мех, зроблений для тактики «атакуй і втікай». Наносить мало шкоди будівлям, але може дуже швидко вбити великі групи підрозділів противника своєю дуговою блискавкою.
|
||||||
mech.tau-mech.description = Мех підтримки. Ремонтує союзні блоки, стріляючи по них. Може зцілювати союзників у радіусі його ремонтної здатності.
|
mech.tau-mech.description = Мех підтримки. Ремонтує союзні блоки, стріляючи по них. Може зцілювати союзників у радіусі його ремонтної здатності.
|
||||||
mech.omega-mech.description = Об’ємний і добре броньований мех, зроблений для фронтових штурмів. Його броня може перекрити до 90% пошкоджень, що надходять.
|
mech.omega-mech.description = Об’ємний і добре броньований мех, зроблений для фронтових штурмів. Його броня може перекрити до 90% пошкоджень, що надходять.
|
||||||
mech.dart-ship.description = Стандартний корабель управління. Розумно швидкий і легкий, але має мало наступальних можливостей і низьку швидкість видобутку.
|
mech.dart-ship.description = Стандартний корабель управління. Швидко видобуває ресурси. Достатньо швидкий і легкий, але має мало наступальних можливостей.
|
||||||
mech.javelin-ship.description = Корабель для стратегії атакуй та біжи». Хоча спочатку він повільний, потім вже може розганятися до великих швидкостей і літати над ворожими форпостами, завдаючи великої кількості шкоди своїми блискавками та ракетами.
|
mech.javelin-ship.description = Корабель, який використовується для стратегії «атакуй та втікай». Хоча спочатку він повільний, потім вже може розганятися до великих швидкостей і літати над ворожими форпостами, завдаючи великої кількості шкоди своїми блискавками та ракетами.
|
||||||
mech.trident-ship.description = Важкий бомбардувальник, побудований для будування та знищення ворожих укріплень. Дуже добре броньований.
|
mech.trident-ship.description = Важкий бомбардувальник, побудований для будування та знищення ворожих укріплень. Дуже добре броньований.
|
||||||
mech.glaive-ship.description = Великий, добре броньований бойовий корабель. Оснащений запальним ретранслятором. Високо маневрений.
|
mech.glaive-ship.description = Великий, добре броньований бойовий корабель. Оснащений запальним ретранслятором. Високо маневрений.
|
||||||
unit.draug.description = Примітивний дрон, який добуває ресурси. Дешевий для виробництва. Автоматично видобуває мідь і свинець поблизу. Доставляє видобуті ресурси до найближчого ядра.
|
unit.draug.description = Примітивний дрон, який добуває ресурси. Дешевий для виробництва. Автоматично видобуває мідь і свинець поблизу. Доставляє видобуті ресурси до найближчого ядра.
|
||||||
@@ -1072,7 +1102,7 @@ unit.crawler.description = Наземна одиниця, що складаєт
|
|||||||
unit.titan.description = Вдосконалений броньований наземний блок. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу Випалювач.
|
unit.titan.description = Вдосконалений броньований наземний блок. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу Випалювач.
|
||||||
unit.fortress.description = Артилерійний мех. Оснащений двома модифікованими гарматами типу «Град» для дальнього нападу на ворожі структури та підрозділи.
|
unit.fortress.description = Артилерійний мех. Оснащений двома модифікованими гарматами типу «Град» для дальнього нападу на ворожі структури та підрозділи.
|
||||||
unit.eruptor.description = Важкий мех, призначеней для знесення конструкцій. Вистрілює потік шлаків у ворожі укріплення, розплавляючи їх і підпалюючи летючі речовини.
|
unit.eruptor.description = Важкий мех, призначеней для знесення конструкцій. Вистрілює потік шлаків у ворожі укріплення, розплавляючи їх і підпалюючи летючі речовини.
|
||||||
unit.wraith.description = Швидкий перехоплювач, який використовується для тактики «атакуй і біжи». Пріоритет — енергетичні генератори.
|
unit.wraith.description = Швидкий перехоплювач, який використовується для тактики «атакуй і втікай». Пріоритет — генератори енергії.
|
||||||
unit.ghoul.description = Важкий килимовий бомбардувальник. Пробиває ворожі структури, орієнтуючись на віжливу інфраструктуру.
|
unit.ghoul.description = Важкий килимовий бомбардувальник. Пробиває ворожі структури, орієнтуючись на віжливу інфраструктуру.
|
||||||
unit.revenant.description = Важкий ракетний масив.
|
unit.revenant.description = Важкий ракетний масив.
|
||||||
block.message.description = Зберігає повідомлення. Використовується для комунікаціх між союзниками.
|
block.message.description = Зберігає повідомлення. Використовується для комунікаціх між союзниками.
|
||||||
@@ -1080,25 +1110,25 @@ block.graphite-press.description = Стискає шматки вугілля в
|
|||||||
block.multi-press.description = Модернізована версія графітового преса. Використовує воду та енергію для швидкої та ефективної переробки вугілля.
|
block.multi-press.description = Модернізована версія графітового преса. Використовує воду та енергію для швидкої та ефективної переробки вугілля.
|
||||||
block.silicon-smelter.description = Змішує пісок з чистим вугіллям. Виробляє кремній.
|
block.silicon-smelter.description = Змішує пісок з чистим вугіллям. Виробляє кремній.
|
||||||
block.kiln.description = Виплавляє пісок та свинець у сполуку, відому як метаскло. Для запуску потрібна невелика кількість енергії.
|
block.kiln.description = Виплавляє пісок та свинець у сполуку, відому як метаскло. Для запуску потрібна невелика кількість енергії.
|
||||||
block.plastanium-compressor.description = Виробляє пластиній з нафти і титану.
|
block.plastanium-compressor.description = Виробляє пластаній з нафти і титану.
|
||||||
block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для функціонування потрібна велика кількість енергії.
|
block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для функціонування потрібна велика кількість енергії.
|
||||||
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
|
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
|
||||||
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану титану в кріогенну рідину. Основне використання у торієвому реактору.
|
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану титану в кріогенну рідину. Основне використання у торієвому реактору.
|
||||||
block.blast-mixer.description = Подрібнює і змішує скупчення спор з піратитом для отримання вибухової суміші.
|
block.blast-mixer.description = Подрібнює і змішує скупчення спор з піратитом для отримання вибухової суміші.
|
||||||
block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піратит.
|
block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піратит.
|
||||||
block.melter.description = Розплавляє брухт у шлак для подальшої переробки або використання у башточках «Хвиля».
|
block.melter.description = Розплавляє брухт у шлак для подальшої переробки або використання у баштах «Хвиля».
|
||||||
block.separator.description = Відокремлює шлак на його мінеральні компоненти. Виводить охолоджений результат.
|
block.separator.description = Відокремлює шлак на його мінеральні компоненти. Виводить охолоджений результат.
|
||||||
block.spore-press.description = Стискає спорові стручки під сильним тиском для синтезу нафти
|
block.spore-press.description = Стискає спорові стручки під сильним тиском для синтезу нафти.
|
||||||
block.pulverizer.description = Подрібнює брухт дрібного піску.
|
block.pulverizer.description = Подрібнює брухт дрібного піску.
|
||||||
block.coal-centrifuge.description = Нафта перетворюється у шматки вугілля.
|
block.coal-centrifuge.description = Нафта перетворюється у шматки вугілля.
|
||||||
block.incinerator.description = Випаровує будь-який зайвий предмет або рідину, які він отримує.
|
block.incinerator.description = Випаровує будь-який зайвий предмет або рідину, які він отримує.
|
||||||
block.power-void.description = Знищує будь-яку енергію, до якої він під’єднаний. Тільки пісочниця
|
block.power-void.description = Знищує будь-яку енергію, до якої він під’єднаний. Тільки пісочниця
|
||||||
block.power-source.description = Нескінченно виводить енергію. Тільки пісочниця
|
block.power-source.description = Нескінченно виводить енергію.
|
||||||
block.item-source.description = Нескінченно виводить предмети. Тільки пісочниця
|
block.item-source.description = Нескінченно виводить предмети.
|
||||||
block.item-void.description = Знищує будь-які предмети. Тільки пісочниця
|
block.item-void.description = Знищує будь-які предмети.
|
||||||
block.liquid-source.description = Нескінченно виводить рідини. Тільки пісочниця
|
block.liquid-source.description = Нескінченно виводить рідини.
|
||||||
block.copper-wall.description = Дешевий захисний блок.\nКорисна для захисту ядра та башточок у перші кілька хвиль.
|
block.copper-wall.description = Дешевий захисний блок.\nКорисна для захисту ядра та башто у перші кілька хвиль.
|
||||||
block.copper-wall-large.description = Дешевий захисний блок.\nКорисна для захисту ядра та башточок у перші кілька хвиль.\nОхоплює кілька плиток.
|
block.copper-wall-large.description = Дешевий захисний блок.\nКорисна для захисту ядра та башт у перші кілька хвиль.\nОхоплює кілька плиток.
|
||||||
block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.
|
block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.
|
||||||
block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.\nОхоплює кілька плиток.
|
block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.\nОхоплює кілька плиток.
|
||||||
block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з'єднання енергетичних вузлів.
|
block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з'єднання енергетичних вузлів.
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ link.dev-builds.description = 不稳定的开发版本
|
|||||||
link.trello.description = 官方列于 Trello 的功能计划表
|
link.trello.description = 官方列于 Trello 的功能计划表
|
||||||
link.itch.io.description = itch.io 上的 PC 版下载
|
link.itch.io.description = itch.io 上的 PC 版下载
|
||||||
link.google-play.description = Google Play 页面
|
link.google-play.description = Google Play 页面
|
||||||
|
link.f-droid.description = F-Droid 页面
|
||||||
link.wiki.description = Mindustry 官方 Wiki
|
link.wiki.description = Mindustry 官方 Wiki
|
||||||
linkfail = 打开链接失败!\n网址已复制到您的剪贴板。
|
linkfail = 打开链接失败!\n网址已复制到您的剪贴板。
|
||||||
screenshot = 屏幕截图已保存到 {0}
|
screenshot = 屏幕截图已保存到 {0}
|
||||||
@@ -46,20 +47,20 @@ schematic.info = {0}x{1},{2} 个方块
|
|||||||
stat.wave = 防守波数:[accent]{0}
|
stat.wave = 防守波数:[accent]{0}
|
||||||
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
|
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
|
||||||
stat.built = 建造建筑:[accent]{0}
|
stat.built = 建造建筑:[accent]{0}
|
||||||
stat.destroyed = 摧毁建筑:[accent]{0}
|
stat.destroyed = 被毁建筑:[accent]{0}
|
||||||
stat.deconstructed = 拆除建筑:[accent]{0}
|
stat.deconstructed = 拆除建筑:[accent]{0}
|
||||||
stat.delivered = 运走资源:
|
stat.delivered = 装运资源:
|
||||||
stat.rank = 最终评级:[accent]{0}
|
stat.rank = 最终评级:[accent]{0}
|
||||||
|
|
||||||
launcheditems = [accent]装运的资源
|
launcheditems = [accent]装运的资源
|
||||||
launchinfo = [unlaunched][[LAUNCH] 你的核心将获得用蓝色标识出的资源。
|
launchinfo = [unlaunched]发射你的核心后,你将获得用蓝字标识的资源。
|
||||||
map.delete = 确定要删除“[accent]{0}[]”地图吗?
|
map.delete = 确定要删除“[accent]{0}[]”地图吗?
|
||||||
level.highscore = 最高分:[accent]{0}
|
level.highscore = 最高分:[accent]{0}
|
||||||
level.select = 选择关卡
|
level.select = 选择关卡
|
||||||
level.mode = 游戏模式:
|
level.mode = 游戏模式:
|
||||||
showagain = 下次不再显示
|
showagain = 下次不再显示
|
||||||
coreattack = < 核心正在受到攻击!>
|
coreattack = < 核心正在受到攻击!>
|
||||||
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n即将被摧毁
|
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n摧毁在即
|
||||||
database = 核心数据库
|
database = 核心数据库
|
||||||
savegame = 保存游戏
|
savegame = 保存游戏
|
||||||
loadgame = 载入游戏
|
loadgame = 载入游戏
|
||||||
@@ -98,6 +99,7 @@ mod.enabled = [lightgray]已启用
|
|||||||
mod.disabled = [scarlet]已禁用
|
mod.disabled = [scarlet]已禁用
|
||||||
mod.disable = 禁用
|
mod.disable = 禁用
|
||||||
mod.delete.error = 无法删除模组。可能文件被占用。
|
mod.delete.error = 无法删除模组。可能文件被占用。
|
||||||
|
mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0}
|
||||||
mod.missingdependencies = [scarlet]缺少依赖条件:{0}
|
mod.missingdependencies = [scarlet]缺少依赖条件:{0}
|
||||||
mod.nowdisabled = [scarlet]“{0}”模组缺少依赖条件:[accent] {1}\n[lightgray]需要先下载上述模组。\n此模组现在将自动禁用。
|
mod.nowdisabled = [scarlet]“{0}”模组缺少依赖条件:[accent] {1}\n[lightgray]需要先下载上述模组。\n此模组现在将自动禁用。
|
||||||
mod.enable = 启用
|
mod.enable = 启用
|
||||||
@@ -115,7 +117,7 @@ about.button = 关于
|
|||||||
name = 名字:
|
name = 名字:
|
||||||
noname = 先取一个[accent]玩家名[]。
|
noname = 先取一个[accent]玩家名[]。
|
||||||
filename = 文件名:
|
filename = 文件名:
|
||||||
unlocked = 新方块已解锁!
|
unlocked = 解锁了新内容!
|
||||||
completed = [accent]己研究
|
completed = [accent]己研究
|
||||||
techtree = 科技树
|
techtree = 科技树
|
||||||
research.list = [lightgray]研究:
|
research.list = [lightgray]研究:
|
||||||
@@ -263,8 +265,8 @@ builtin = 内建的
|
|||||||
map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法撤销!
|
map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法撤销!
|
||||||
map.random = [accent]随机地图
|
map.random = [accent]随机地图
|
||||||
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[ROYAL]己方[]的核心。
|
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[ROYAL]己方[]的核心。
|
||||||
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[ROYAL]敌方[]的核心。
|
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[ROYAL]敌人[]的核心。
|
||||||
map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[SCARLET]敌方[]的核心。
|
map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[SCARLET]敌人[]的核心。
|
||||||
map.invalid = 地图载入错误:地图文件可能已经损坏。
|
map.invalid = 地图载入错误:地图文件可能已经损坏。
|
||||||
workshop.update = 更新地图
|
workshop.update = 更新地图
|
||||||
workshop.error = 获取创意工坊详细信息时出错:{0}
|
workshop.error = 获取创意工坊详细信息时出错:{0}
|
||||||
@@ -278,6 +280,7 @@ publishing = [accent]正在发布...
|
|||||||
publish.confirm = 确定发布?\n\n[lightgray]请确认您已经同意创意工坊的最终用户许可协议,否则您的项目不会展示!
|
publish.confirm = 确定发布?\n\n[lightgray]请确认您已经同意创意工坊的最终用户许可协议,否则您的项目不会展示!
|
||||||
publish.error = 发布项目出错:{0}
|
publish.error = 发布项目出错:{0}
|
||||||
steam.error = 初始化 Steam 服务失败。\n错误:{0}
|
steam.error = 初始化 Steam 服务失败。\n错误:{0}
|
||||||
|
|
||||||
editor.brush = 笔刷
|
editor.brush = 笔刷
|
||||||
editor.openin = 在编辑器中打开
|
editor.openin = 在编辑器中打开
|
||||||
editor.oregen = 矿石的生成
|
editor.oregen = 矿石的生成
|
||||||
@@ -440,7 +443,7 @@ addall = 添加所有
|
|||||||
configure.locked = [lightgray]完成{0}\n解锁装运配置。
|
configure.locked = [lightgray]完成{0}\n解锁装运配置。
|
||||||
configure.invalid = 数量必须是0到{0}之间的数字。
|
configure.invalid = 数量必须是0到{0}之间的数字。
|
||||||
zone.unlocked = [lightgray]{0} 已解锁。
|
zone.unlocked = [lightgray]{0} 已解锁。
|
||||||
zone.requirement.complete = 完成{0}。\n达成解锁{1}的需求。
|
zone.requirement.complete = 完成{0}。\n已达成解锁{1}的要求。
|
||||||
zone.config.unlocked = 资源装运已解锁:[lightgray]\n{0}
|
zone.config.unlocked = 资源装运已解锁:[lightgray]\n{0}
|
||||||
zone.resources = 地图中的资源:
|
zone.resources = 地图中的资源:
|
||||||
zone.objective = [lightgray]目标:[accent]{0}
|
zone.objective = [lightgray]目标:[accent]{0}
|
||||||
@@ -448,6 +451,7 @@ zone.objective.survival = 生存
|
|||||||
zone.objective.attack = 摧毁敌方核心
|
zone.objective.attack = 摧毁敌方核心
|
||||||
add = 添加…
|
add = 添加…
|
||||||
boss.health = BOSS 生命值
|
boss.health = BOSS 生命值
|
||||||
|
|
||||||
connectfail = [crimson]服务器连接失败:[accent]{0}
|
connectfail = [crimson]服务器连接失败:[accent]{0}
|
||||||
error.unreachable = 无法访问服务器。\n确定输对地址了吗?
|
error.unreachable = 无法访问服务器。\n确定输对地址了吗?
|
||||||
error.invalidaddress = 地址无效。
|
error.invalidaddress = 地址无效。
|
||||||
@@ -458,6 +462,7 @@ error.mapnotfound = 找不到地图文件!
|
|||||||
error.io = 网络 I/O 错误。
|
error.io = 网络 I/O 错误。
|
||||||
error.any = 未知网络错误。
|
error.any = 未知网络错误。
|
||||||
error.bloom = 未能初始化特效。\n您的设备可能不支持。
|
error.bloom = 未能初始化特效。\n您的设备可能不支持。
|
||||||
|
|
||||||
zone.groundZero.name = 零号地区
|
zone.groundZero.name = 零号地区
|
||||||
zone.desertWastes.name = 荒芜沙漠
|
zone.desertWastes.name = 荒芜沙漠
|
||||||
zone.craters.name = 陨石带
|
zone.craters.name = 陨石带
|
||||||
@@ -467,22 +472,22 @@ zone.stainedMountains.name = 绵延群山
|
|||||||
zone.desolateRift.name = 荒芜裂谷
|
zone.desolateRift.name = 荒芜裂谷
|
||||||
zone.nuclearComplex.name = 核裂阵
|
zone.nuclearComplex.name = 核裂阵
|
||||||
zone.overgrowth.name = 增生区
|
zone.overgrowth.name = 增生区
|
||||||
zone.tarFields.name = 石油田
|
zone.tarFields.name = 油田
|
||||||
zone.saltFlats.name = 盐碱荒滩
|
zone.saltFlats.name = 盐碱荒滩
|
||||||
zone.impact0078.name = 0078号冲击
|
zone.impact0078.name = 0078号冲击
|
||||||
zone.crags.name = 悬崖
|
zone.crags.name = 悬崖
|
||||||
zone.fungalPass.name = 真菌通道
|
zone.fungalPass.name = 真菌通道
|
||||||
|
|
||||||
zone.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
|
zone.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
|
||||||
zone.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造燃烧发电机并学会使用修理者。
|
zone.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。
|
||||||
zone.desertWastes.description = 这里的废料规模庞大、难以预测,并与废弃的结构交织在一起。\n此地区有煤矿存在,燃烧它以获取动力或合成石墨。\n\n[lightgray]无法保证此着陆位置。
|
zone.desertWastes.description = 这里的废料规模庞大、难以预测,并与废弃的结构交织在一起。\n此地区有煤矿存在,点燃它以获取动力,或者将其合成为石墨。\n\n[lightgray]无法保证此着陆位置。
|
||||||
zone.saltFlats.description = 在沙漠的郊区有盐滩。在这个地方几乎找不到资源。\n\n敌人在这里建立了一个资源存储区。摧毁他们的核心。不要留下任何东西。
|
zone.saltFlats.description = 在沙漠的郊区有盐滩。在这个地方几乎找不到资源。\n\n敌人在这里建立了一个资源存储区。摧毁他们的核心。不要留下任何东西。
|
||||||
zone.craters.description = 水在这个火山口积聚,这是旧战争的遗迹。夺下该区域。收集沙子来冶炼玻璃。用水泵抽水来加速炮塔和钻头。
|
zone.craters.description = 水在这个火山口积聚,这是旧战争的遗迹。夺下该区域。收集沙子来冶炼玻璃。用水泵抽水来加速炮塔和钻头。
|
||||||
zone.ruinousShores.description = 穿过荒地,就是海岸线。这个地方曾经建造了一个海岸防御线。但现在所剩无几,只有最基本的防御结构仍然毫发无损,其他一切都被摧毁了。\n继续向外扩展。继续研究科技。
|
zone.ruinousShores.description = 穿过荒地,就是海岸线。这个地方曾经建造了一个海岸防御线。但现在所剩无几,只有最基本的防御结构仍然毫发无损,其他一切都被摧毁了。\n继续向外扩展。继续研究科技。
|
||||||
zone.stainedMountains.description = 在更远的内陆地区是山脉,但这里没有被孢子污染。\n在这一地区分布着丰富的钛,学习如何使用它。\n\n这里敌人的存在更大。不要给他们时间派出最强的部队。
|
zone.stainedMountains.description = 在更远的内陆地区是山脉,但这里没有被孢子污染。\n这一地区分布着丰富的钛,学习如何使用它。\n\n这里的敌人势力更大,不要给他们时间派出最强的部队。
|
||||||
zone.overgrowth.description = 这个地区靠近孢子的来源,因此生长过度。\n敌人在这里建立了一个前哨站。建造尖刀单位来摧毁它并找回丢失的东西。
|
zone.overgrowth.description = 这个地区靠近孢子的来源,因此生长过度。\n敌人在这里建立了一个前哨站。建造尖刀单位来摧毁它并找回丢失的东西。
|
||||||
zone.tarFields.description = 位于山脉和沙漠之间的产油区的郊区是少数几个有可用石油储量的地区之一。\n尽管被废弃,但附近仍有一些危险的敌军。不要低估他们。\n\n[lightgray]如果可能,研究石油加工技术。
|
zone.tarFields.description = 产油区边缘,位于山脉和沙漠之间。它少数几个有石油储量的地区之一。\n尽管被废弃,这附近仍有一些危险的敌方单位。不要低估他们。\n\n[lightgray]如果可能,研究石油加工技术。
|
||||||
zone.desolateRift.description = 非常危险的区域。这儿资源丰富但空间小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。
|
zone.desolateRift.description = 非常危险的区域。这儿的资源丰富但空间很小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。
|
||||||
zone.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[lightgray]研究钍及其多种用途。\n\n敌人在这里大量存在,不断消灭入侵者。
|
zone.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[lightgray]研究钍及其多种用途。\n\n敌人在这里大量存在,不断消灭入侵者。
|
||||||
zone.fungalPass.description = 介于高山和低矮孢子丛生的土地之间的过渡地带。这里有一个小型的敌方侦察基地。\n侦察它。\n使用尖刀和爬行者单位来摧毁两个核心。
|
zone.fungalPass.description = 介于高山和低矮孢子丛生的土地之间的过渡地带。这里有一个小型的敌方侦察基地。\n侦察它。\n使用尖刀和爬行者单位来摧毁两个核心。
|
||||||
zone.impact0078.description = <描述空缺>
|
zone.impact0078.description = <描述空缺>
|
||||||
@@ -523,7 +528,7 @@ blocks.size = 尺寸
|
|||||||
blocks.liquidcapacity = 液体容量
|
blocks.liquidcapacity = 液体容量
|
||||||
blocks.powerrange = 能量范围
|
blocks.powerrange = 能量范围
|
||||||
blocks.powerconnections = 最多连接
|
blocks.powerconnections = 最多连接
|
||||||
blocks.poweruse = 能量使用
|
blocks.poweruse = 使用能量
|
||||||
blocks.powerdamage = 功率/损伤
|
blocks.powerdamage = 功率/损伤
|
||||||
blocks.itemcapacity = 物品容量
|
blocks.itemcapacity = 物品容量
|
||||||
blocks.basepowergeneration = 基础能源输出
|
blocks.basepowergeneration = 基础能源输出
|
||||||
@@ -542,6 +547,7 @@ blocks.inaccuracy = 误差
|
|||||||
blocks.shots = 发射数
|
blocks.shots = 发射数
|
||||||
blocks.reload = 每秒发射数
|
blocks.reload = 每秒发射数
|
||||||
blocks.ammo = 弹药
|
blocks.ammo = 弹药
|
||||||
|
|
||||||
bar.drilltierreq = 需要更好的钻头
|
bar.drilltierreq = 需要更好的钻头
|
||||||
bar.drillspeed = 挖掘速度:{0}/秒
|
bar.drillspeed = 挖掘速度:{0}/秒
|
||||||
bar.pumpspeed = 泵压速度:{0}/秒
|
bar.pumpspeed = 泵压速度:{0}/秒
|
||||||
@@ -550,7 +556,7 @@ bar.powerbalance = 能量:{0}/秒
|
|||||||
bar.powerstored = 储能:{0}/{1}
|
bar.powerstored = 储能:{0}/{1}
|
||||||
bar.poweramount = 能量:{0}
|
bar.poweramount = 能量:{0}
|
||||||
bar.poweroutput = 能量输出:{0}
|
bar.poweroutput = 能量输出:{0}
|
||||||
bar.items = 物体:{0}
|
bar.items = 物品:{0}
|
||||||
bar.capacity = 容量:{0}
|
bar.capacity = 容量:{0}
|
||||||
bar.liquid = 液体
|
bar.liquid = 液体
|
||||||
bar.heat = 热量
|
bar.heat = 热量
|
||||||
@@ -559,6 +565,7 @@ bar.progress = 制造进度
|
|||||||
bar.spawned = 单位数量:{0}/{1}
|
bar.spawned = 单位数量:{0}/{1}
|
||||||
bar.input = 输入
|
bar.input = 输入
|
||||||
bar.output = 输出
|
bar.output = 输出
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] 伤害
|
bullet.damage = [stat]{0}[lightgray] 伤害
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
||||||
bullet.incendiary = [stat] 燃烧
|
bullet.incendiary = [stat] 燃烧
|
||||||
@@ -570,16 +577,17 @@ bullet.freezing = [stat] 冰冻
|
|||||||
bullet.tarred = [stat] 减速
|
bullet.tarred = [stat] 减速
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x 弹药数量
|
bullet.multiplier = [stat]{0}[lightgray]x 弹药数量
|
||||||
bullet.reload = [stat]{0}[lightgray]x 装弹
|
bullet.reload = [stat]{0}[lightgray]x 装弹
|
||||||
|
|
||||||
unit.blocks = 方块
|
unit.blocks = 方块
|
||||||
unit.powersecond = 能量单位/秒
|
unit.powersecond = 能量/秒
|
||||||
unit.liquidsecond = 液体单位/秒
|
unit.liquidsecond = 液体/秒
|
||||||
unit.itemssecond = 物品/秒
|
unit.itemssecond = 物品/秒
|
||||||
unit.liquidunits = 液体单位
|
unit.liquidunits = 液体
|
||||||
unit.powerunits = 能量单位
|
unit.powerunits = 能量
|
||||||
unit.degrees = 度
|
unit.degrees = 度
|
||||||
unit.seconds = 秒
|
unit.seconds = 秒
|
||||||
unit.persecond = /秒
|
unit.persecond = /秒
|
||||||
unit.timesspeed = x 速度
|
unit.timesspeed = 倍 速度
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = 物品
|
unit.items = 物品
|
||||||
category.general = 普通
|
category.general = 普通
|
||||||
@@ -620,9 +628,12 @@ setting.conveyorpathfinding.name = 传送带放置寻路
|
|||||||
setting.sensitivity.name = 控制器灵敏度
|
setting.sensitivity.name = 控制器灵敏度
|
||||||
setting.saveinterval.name = 自动保存间隔
|
setting.saveinterval.name = 自动保存间隔
|
||||||
setting.seconds = {0} 秒
|
setting.seconds = {0} 秒
|
||||||
|
setting.blockselecttimeout.name = 块选择超时
|
||||||
|
setting.milliseconds = {0} 毫秒
|
||||||
setting.fullscreen.name = 全屏
|
setting.fullscreen.name = 全屏
|
||||||
setting.borderlesswindow.name = 无边框窗口[lightgray](可能需要重启)
|
setting.borderlesswindow.name = 无边框窗口[lightgray](可能需要重启)
|
||||||
setting.fps.name = 显示 FPS
|
setting.fps.name = 显示 FPS 和网络延迟
|
||||||
|
setting.blockselectkeys.name = 显示块选择按键
|
||||||
setting.vsync.name = 垂直同步
|
setting.vsync.name = 垂直同步
|
||||||
setting.pixelate.name = 像素画面 [lightgray](禁用动画)
|
setting.pixelate.name = 像素画面 [lightgray](禁用动画)
|
||||||
setting.minimap.name = 显示小地图
|
setting.minimap.name = 显示小地图
|
||||||
@@ -651,17 +662,36 @@ category.multiplayer.name = 多人
|
|||||||
command.attack = 攻击
|
command.attack = 攻击
|
||||||
command.rally = 团体
|
command.rally = 团体
|
||||||
command.retreat = 撤退
|
command.retreat = 撤退
|
||||||
|
placement.blockselectkeys = \n[lightgray]按键:[{0},
|
||||||
keybind.clear_building.name = 清除建筑
|
keybind.clear_building.name = 清除建筑
|
||||||
keybind.press = 请按一个键…
|
keybind.press = 请按一个键…
|
||||||
keybind.press.axis = 请按一个轴或键…
|
keybind.press.axis = 请按一个轴或键…
|
||||||
keybind.screenshot.name = 地图截图
|
keybind.screenshot.name = 地图截图
|
||||||
|
keybind.toggle_power_lines.name = 显隐能量标识线
|
||||||
keybind.move_x.name = 水平移动
|
keybind.move_x.name = 水平移动
|
||||||
keybind.move_y.name = 竖直移动
|
keybind.move_y.name = 竖直移动
|
||||||
keybind.mouse_move.name = 跟随鼠标
|
keybind.mouse_move.name = 跟随鼠标
|
||||||
|
keybind.dash.name = 冲刺
|
||||||
keybind.schematic_select.name = 选择区域
|
keybind.schematic_select.name = 选择区域
|
||||||
keybind.schematic_menu.name = 蓝图目录
|
keybind.schematic_menu.name = 蓝图目录
|
||||||
keybind.schematic_flip_x.name = 水平翻转
|
keybind.schematic_flip_x.name = 水平翻转
|
||||||
keybind.schematic_flip_y.name = 竖直翻转
|
keybind.schematic_flip_y.name = 竖直翻转
|
||||||
|
keybind.category_prev.name = 上一分类
|
||||||
|
keybind.category_next.name = 下一分类
|
||||||
|
keybind.block_select_left.name = 块选择向左
|
||||||
|
keybind.block_select_right.name = 块选择向右
|
||||||
|
keybind.block_select_up.name = 块选择向上
|
||||||
|
keybind.block_select_down.name = 块选择向下
|
||||||
|
keybind.block_select_01.name = 分类/块选择 1
|
||||||
|
keybind.block_select_02.name = 分类/块选择 2
|
||||||
|
keybind.block_select_03.name = 分类/块选择 3
|
||||||
|
keybind.block_select_04.name = 分类/块选择 4
|
||||||
|
keybind.block_select_05.name = 分类/块选择 5
|
||||||
|
keybind.block_select_06.name = 分类/块选择 6
|
||||||
|
keybind.block_select_07.name = 分类/块选择 7
|
||||||
|
keybind.block_select_08.name = 分类/块选择 8
|
||||||
|
keybind.block_select_09.name = 分类/块选择 9
|
||||||
|
keybind.block_select_10.name = 分类/块选择 10
|
||||||
keybind.fullscreen.name = 切换全屏
|
keybind.fullscreen.name = 切换全屏
|
||||||
keybind.select.name = 选择/射击
|
keybind.select.name = 选择/射击
|
||||||
keybind.diagonal_placement.name = 自动铺设
|
keybind.diagonal_placement.name = 自动铺设
|
||||||
@@ -669,13 +699,11 @@ keybind.pick.name = 选择方块
|
|||||||
keybind.break_block.name = 破坏方块
|
keybind.break_block.name = 破坏方块
|
||||||
keybind.deselect.name = 取消选择
|
keybind.deselect.name = 取消选择
|
||||||
keybind.shoot.name = 射击
|
keybind.shoot.name = 射击
|
||||||
keybind.zoom_hold.name = 按住调整缩放
|
|
||||||
keybind.zoom.name = 缩放
|
keybind.zoom.name = 缩放
|
||||||
keybind.menu.name = 菜单
|
keybind.menu.name = 菜单
|
||||||
keybind.pause.name = 暂停
|
keybind.pause.name = 暂停
|
||||||
keybind.pause_building.name = 暂停/继续建造
|
keybind.pause_building.name = 暂停/继续建造
|
||||||
keybind.minimap.name = 小地图
|
keybind.minimap.name = 小地图
|
||||||
keybind.dash.name = 冲刺
|
|
||||||
keybind.chat.name = 聊天
|
keybind.chat.name = 聊天
|
||||||
keybind.player_list.name = 玩家列表
|
keybind.player_list.name = 玩家列表
|
||||||
keybind.console.name = 控制台
|
keybind.console.name = 控制台
|
||||||
@@ -689,12 +717,12 @@ keybind.drop_unit.name = 松开单位
|
|||||||
keybind.zoom_minimap.name = 小地图缩放
|
keybind.zoom_minimap.name = 小地图缩放
|
||||||
mode.help.title = 模式说明
|
mode.help.title = 模式说明
|
||||||
mode.survival.name = 生存
|
mode.survival.name = 生存
|
||||||
mode.survival.description = 正常的游戏模式,有限的资源、自动的波次。\n[gray]需要击退周期性出现的敌人。
|
mode.survival.description = 正常的游戏模式,有限的资源,自动的波次。\n[gray]需要击退周期性出现的敌人。
|
||||||
mode.sandbox.name = 沙盒
|
mode.sandbox.name = 沙盒
|
||||||
mode.sandbox.description = 无限的资源,不会自动生成敌人。
|
mode.sandbox.description = 无限的资源,不会自动生成敌人。
|
||||||
mode.editor.name = 编辑器
|
mode.editor.name = 编辑器
|
||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = 和本地玩家对战。\n[gray]需要地图中有不同队伍(颜色)的核心。
|
mode.pvp.description = 与本地玩家对战。\n[gray]需要地图中有不同队伍(颜色)的核心。
|
||||||
mode.attack.name = 攻击
|
mode.attack.name = 攻击
|
||||||
mode.attack.description = 没有波次,但需要摧毁敌人的基地。\n[gray]需要地图中有红色的核心。
|
mode.attack.description = 没有波次,但需要摧毁敌人的基地。\n[gray]需要地图中有红色的核心。
|
||||||
mode.custom = 自定义模式
|
mode.custom = 自定义模式
|
||||||
@@ -717,7 +745,7 @@ rules.wavespacing = 波次间隔时间:[lightgray](秒)
|
|||||||
rules.buildcostmultiplier = 建设花费倍数
|
rules.buildcostmultiplier = 建设花费倍数
|
||||||
rules.buildspeedmultiplier = 建设时间倍数
|
rules.buildspeedmultiplier = 建设时间倍数
|
||||||
rules.waitForWaveToEnd = 等待敌人时间
|
rules.waitForWaveToEnd = 等待敌人时间
|
||||||
rules.dropzoneradius = 敌人出生点毁灭大小:[lightgray](格)
|
rules.dropzoneradius = 敌人出生点禁区大小:[lightgray](格)
|
||||||
rules.respawns = 每波最大重生次数
|
rules.respawns = 每波最大重生次数
|
||||||
rules.limitedRespawns = 重生限制次数
|
rules.limitedRespawns = 重生限制次数
|
||||||
rules.title.waves = 波次
|
rules.title.waves = 波次
|
||||||
@@ -726,6 +754,10 @@ rules.title.resourcesbuilding = 资源和建造
|
|||||||
rules.title.player = 玩家
|
rules.title.player = 玩家
|
||||||
rules.title.enemy = 敌人
|
rules.title.enemy = 敌人
|
||||||
rules.title.unit = 单位
|
rules.title.unit = 单位
|
||||||
|
rules.title.experimental = 实验性
|
||||||
|
rules.lighting = 光照
|
||||||
|
rules.ambientlight = 环境光
|
||||||
|
|
||||||
content.item.name = 物品
|
content.item.name = 物品
|
||||||
content.liquid.name = 液体
|
content.liquid.name = 液体
|
||||||
content.unit.name = 部队
|
content.unit.name = 部队
|
||||||
@@ -772,16 +804,16 @@ mech.trident-ship.name = Trident
|
|||||||
mech.trident-ship.weapon = 炸弹
|
mech.trident-ship.weapon = 炸弹
|
||||||
mech.glaive-ship.name = Glaive
|
mech.glaive-ship.name = Glaive
|
||||||
mech.glaive-ship.weapon = 火焰机枪
|
mech.glaive-ship.weapon = 火焰机枪
|
||||||
item.explosiveness = [lightgray]爆炸性:{0}
|
item.explosiveness = [lightgray]爆炸性:{0}%
|
||||||
item.flammability = [lightgray]易燃性:{0}
|
item.flammability = [lightgray]易燃性:{0}%
|
||||||
item.radioactivity = [lightgray]放射性:{0}
|
item.radioactivity = [lightgray]放射性:{0}%
|
||||||
unit.health = [lightgray]生命值:{0}
|
unit.health = [lightgray]生命值:{0}
|
||||||
unit.speed = [lightgray]速度:{0}
|
unit.speed = [lightgray]速度:{0}
|
||||||
mech.weapon = [lightgray]武器:{0}
|
mech.weapon = [lightgray]武器:{0}
|
||||||
mech.health = [lightgray]生命值:{0}
|
mech.health = [lightgray]生命值:{0}
|
||||||
mech.itemcapacity = [lightgray]物品容量:{0}
|
mech.itemcapacity = [lightgray]物品容量:{0}
|
||||||
mech.minespeed = [lightgray]采矿速度:{0}
|
mech.minespeed = [lightgray]采矿速度:{0}%
|
||||||
mech.minepower = [lightgray]采矿力量:{0}
|
mech.minepower = [lightgray]采矿强度:{0}
|
||||||
mech.ability = [lightgray]能力:{0}
|
mech.ability = [lightgray]能力:{0}
|
||||||
mech.buildspeed = [lightgray]建造速度:{0}%
|
mech.buildspeed = [lightgray]建造速度:{0}%
|
||||||
liquid.heatcapacity = [lightgray]热容量:{0}
|
liquid.heatcapacity = [lightgray]热容量:{0}
|
||||||
@@ -810,8 +842,8 @@ block.scrap-wall.name = 废墙
|
|||||||
block.scrap-wall-large.name = 大型废墙
|
block.scrap-wall-large.name = 大型废墙
|
||||||
block.scrap-wall-huge.name = 巨型废墙
|
block.scrap-wall-huge.name = 巨型废墙
|
||||||
block.scrap-wall-gigantic.name = 超巨型废墙
|
block.scrap-wall-gigantic.name = 超巨型废墙
|
||||||
block.thruster.name = 助力器
|
block.thruster.name = 推进器残骸
|
||||||
block.kiln.name = 熔炉
|
block.kiln.name = 窑炉
|
||||||
block.graphite-press.name = 石墨压缩机
|
block.graphite-press.name = 石墨压缩机
|
||||||
block.multi-press.name = 多重压缩机
|
block.multi-press.name = 多重压缩机
|
||||||
block.constructing = {0}\n[lightgray](建造中)
|
block.constructing = {0}\n[lightgray](建造中)
|
||||||
@@ -873,20 +905,21 @@ block.door.name = 门
|
|||||||
block.door-large.name = 大门
|
block.door-large.name = 大门
|
||||||
block.duo.name = 双管炮
|
block.duo.name = 双管炮
|
||||||
block.scorch.name = 火焰炮
|
block.scorch.name = 火焰炮
|
||||||
block.scatter.name = 分裂炮
|
block.scatter.name = 散射炮
|
||||||
block.hail.name = 冰雹炮
|
block.hail.name = 冰雹炮
|
||||||
block.lancer.name = 蓝瑟炮
|
block.lancer.name = 蓝瑟炮
|
||||||
block.conveyor.name = 传送带
|
block.conveyor.name = 传送带
|
||||||
block.titanium-conveyor.name = 钛传送带
|
block.titanium-conveyor.name = 钛传送带
|
||||||
block.armored-conveyor.name = 装甲传送带
|
block.armored-conveyor.name = 装甲传送带
|
||||||
block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边的输入。
|
block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边的输入。
|
||||||
block.junction.name = 连接桥
|
block.junction.name = 交叉器
|
||||||
block.router.name = 路由器
|
block.router.name = 路由器
|
||||||
block.distributor.name = 分配器
|
block.distributor.name = 分配器
|
||||||
block.sorter.name = 分类器
|
block.sorter.name = 分类器
|
||||||
block.inverted-sorter.name = 反向分类器
|
block.inverted-sorter.name = 反向分类器
|
||||||
block.message.name = 信息板
|
block.message.name = 信息板
|
||||||
block.illuminator.name = Illuminator
|
block.illuminator.name = 照明器
|
||||||
|
block.illuminator.description = 小型、紧凑、可配置的光源。需要能量运行。
|
||||||
block.overflow-gate.name = 溢流门
|
block.overflow-gate.name = 溢流门
|
||||||
block.silicon-smelter.name = 硅冶炼厂
|
block.silicon-smelter.name = 硅冶炼厂
|
||||||
block.phase-weaver.name = 相织布编织器
|
block.phase-weaver.name = 相织布编织器
|
||||||
@@ -899,13 +932,13 @@ block.separator.name = 分离机
|
|||||||
block.coal-centrifuge.name = 煤炭离心机
|
block.coal-centrifuge.name = 煤炭离心机
|
||||||
block.power-node.name = 能量节点
|
block.power-node.name = 能量节点
|
||||||
block.power-node-large.name = 大型能量节点
|
block.power-node-large.name = 大型能量节点
|
||||||
block.surge-tower.name = 巨浪塔
|
block.surge-tower.name = 大型能量塔
|
||||||
block.diode.name = Battery Diode
|
block.diode.name = 二极管
|
||||||
block.battery.name = 电池
|
block.battery.name = 电池
|
||||||
block.battery-large.name = 大型电池
|
block.battery-large.name = 大型电池
|
||||||
block.combustion-generator.name = 燃烧发电机
|
block.combustion-generator.name = 火力发电机
|
||||||
block.turbine-generator.name = 涡轮发电机
|
block.turbine-generator.name = 涡轮发电机
|
||||||
block.differential-generator.name = 差动发电机
|
block.differential-generator.name = 温差发电机
|
||||||
block.impact-reactor.name = 冲击反应堆
|
block.impact-reactor.name = 冲击反应堆
|
||||||
block.mechanical-drill.name = 机械钻头
|
block.mechanical-drill.name = 机械钻头
|
||||||
block.pneumatic-drill.name = 气动钻头
|
block.pneumatic-drill.name = 气动钻头
|
||||||
@@ -921,30 +954,30 @@ block.omega-mech-pad.name = Omega 机甲平台
|
|||||||
block.tau-mech-pad.name = Tau 机甲平台
|
block.tau-mech-pad.name = Tau 机甲平台
|
||||||
block.conduit.name = 导管
|
block.conduit.name = 导管
|
||||||
block.mechanical-pump.name = 机械泵
|
block.mechanical-pump.name = 机械泵
|
||||||
block.item-source.name = 物品源
|
block.item-source.name = 无限物品
|
||||||
block.item-void.name = 物品黑洞
|
block.item-void.name = 物品黑洞
|
||||||
block.liquid-source.name = 液体源
|
block.liquid-source.name = 无限液体
|
||||||
block.power-void.name = 能源黑洞
|
block.power-void.name = 能源黑洞
|
||||||
block.power-source.name = 无限能源
|
block.power-source.name = 无限能源
|
||||||
block.unloader.name = 装卸器
|
block.unloader.name = 装卸器
|
||||||
block.vault.name = 仓库
|
block.vault.name = 仓库
|
||||||
block.wave.name = 波浪
|
block.wave.name = 波浪炮
|
||||||
block.swarmer.name = 蜂群
|
block.swarmer.name = 蜂群
|
||||||
block.salvo.name = 齐射炮
|
block.salvo.name = 连射炮
|
||||||
block.ripple.name = 浪涌
|
block.ripple.name = 浪涌炮
|
||||||
block.phase-conveyor.name = 相织布传送带桥
|
block.phase-conveyor.name = 相织布传送带桥
|
||||||
block.bridge-conveyor.name = 传送带桥
|
block.bridge-conveyor.name = 传送带桥
|
||||||
block.plastanium-compressor.name = 塑钢压缩机
|
block.plastanium-compressor.name = 塑钢压缩机
|
||||||
block.pyratite-mixer.name = 硫混合器
|
block.pyratite-mixer.name = 硫混合器
|
||||||
block.blast-mixer.name = 爆炸混合器
|
block.blast-mixer.name = 爆炸混合器
|
||||||
block.solar-panel.name = 太阳能电池
|
block.solar-panel.name = 太阳能板
|
||||||
block.solar-panel-large.name = 大型太阳能电池
|
block.solar-panel-large.name = 大型太阳能板
|
||||||
block.oil-extractor.name = 石油钻井
|
block.oil-extractor.name = 石油钻井
|
||||||
block.command-center.name = 指挥中心
|
block.command-center.name = 指挥中心
|
||||||
block.draug-factory.name = 德鲁格采矿机工厂
|
block.draug-factory.name = 德鲁格采矿机工厂
|
||||||
block.spirit-factory.name = 幽灵修理机工厂
|
block.spirit-factory.name = 幽灵修理机工厂
|
||||||
block.phantom-factory.name = 鬼怪建造机工厂
|
block.phantom-factory.name = 幻影建造机工厂
|
||||||
block.wraith-factory.name = 幻影战机工厂
|
block.wraith-factory.name = 幽灵战机工厂
|
||||||
block.ghoul-factory.name = 食尸鬼轰炸机工厂
|
block.ghoul-factory.name = 食尸鬼轰炸机工厂
|
||||||
block.dagger-factory.name = 尖刀机甲工厂
|
block.dagger-factory.name = 尖刀机甲工厂
|
||||||
block.crawler-factory.name = 爬行者机甲工厂
|
block.crawler-factory.name = 爬行者机甲工厂
|
||||||
@@ -953,13 +986,13 @@ block.fortress-factory.name = 堡垒机甲工厂
|
|||||||
block.revenant-factory.name = 亡魂战机工厂
|
block.revenant-factory.name = 亡魂战机工厂
|
||||||
block.repair-point.name = 维修点
|
block.repair-point.name = 维修点
|
||||||
block.pulse-conduit.name = 脉冲导管
|
block.pulse-conduit.name = 脉冲导管
|
||||||
block.plated-conduit.name = Plated Conduit
|
block.plated-conduit.name = 电镀导管
|
||||||
block.phase-conduit.name = 相织布导管桥
|
block.phase-conduit.name = 相织布导管桥
|
||||||
block.liquid-router.name = 液体路由器
|
block.liquid-router.name = 液体路由器
|
||||||
block.liquid-tank.name = 储液罐
|
block.liquid-tank.name = 储液罐
|
||||||
block.liquid-junction.name = 液体连接桥
|
block.liquid-junction.name = 液体交叉器
|
||||||
block.bridge-conduit.name = 导管桥
|
block.bridge-conduit.name = 导管桥
|
||||||
block.rotary-pump.name = 回旋泵
|
block.rotary-pump.name = 回转泵
|
||||||
block.thorium-reactor.name = 钍反应堆
|
block.thorium-reactor.name = 钍反应堆
|
||||||
block.mass-driver.name = 质量驱动器
|
block.mass-driver.name = 质量驱动器
|
||||||
block.blast-drill.name = 爆破钻头
|
block.blast-drill.name = 爆破钻头
|
||||||
@@ -971,14 +1004,14 @@ block.mend-projector.name = 修理投影器
|
|||||||
block.surge-wall.name = 波动墙
|
block.surge-wall.name = 波动墙
|
||||||
block.surge-wall-large.name = 大型波动墙
|
block.surge-wall-large.name = 大型波动墙
|
||||||
block.cyclone.name = 气旋炮
|
block.cyclone.name = 气旋炮
|
||||||
block.fuse.name = 融合炮
|
block.fuse.name = 雷光炮
|
||||||
block.shock-mine.name = 脉冲地雷
|
block.shock-mine.name = 脉冲地雷
|
||||||
block.overdrive-projector.name = 超速投影器
|
block.overdrive-projector.name = 超速投影器
|
||||||
block.force-projector.name = 力墙投影器
|
block.force-projector.name = 力墙投影器
|
||||||
block.arc.name = 电弧
|
block.arc.name = 电弧炮
|
||||||
block.rtg-generator.name = RTG 发电机
|
block.rtg-generator.name = RTG 发电机
|
||||||
block.spectre.name = 幽灵
|
block.spectre.name = 幽灵炮
|
||||||
block.meltdown.name = 熔毁
|
block.meltdown.name = 熔毁炮
|
||||||
block.container.name = 容器
|
block.container.name = 容器
|
||||||
block.launch-pad.name = 发射台
|
block.launch-pad.name = 发射台
|
||||||
block.launch-pad-large.name = 大型发射台
|
block.launch-pad-large.name = 大型发射台
|
||||||
@@ -991,12 +1024,12 @@ team.green.name = 绿
|
|||||||
team.purple.name = 紫
|
team.purple.name = 紫
|
||||||
unit.spirit.name = 幽灵修理机
|
unit.spirit.name = 幽灵修理机
|
||||||
unit.draug.name = 德鲁格采矿机
|
unit.draug.name = 德鲁格采矿机
|
||||||
unit.phantom.name = 鬼怪建造机
|
unit.phantom.name = 幻影建造机
|
||||||
unit.dagger.name = 尖刀
|
unit.dagger.name = 尖刀
|
||||||
unit.crawler.name = 爬行者
|
unit.crawler.name = 爬行者
|
||||||
unit.titan.name = 泰坦
|
unit.titan.name = 泰坦
|
||||||
unit.ghoul.name = 食尸鬼轰炸机
|
unit.ghoul.name = 食尸鬼轰炸机
|
||||||
unit.wraith.name = 幻影战机
|
unit.wraith.name = 幽灵战机
|
||||||
unit.fortress.name = 堡垒
|
unit.fortress.name = 堡垒
|
||||||
unit.revenant.name = 亡魂
|
unit.revenant.name = 亡魂
|
||||||
unit.eruptor.name = 暴君
|
unit.eruptor.name = 暴君
|
||||||
@@ -1005,10 +1038,10 @@ unit.eradicator.name = 根除者
|
|||||||
unit.lich.name = 尸鬼
|
unit.lich.name = 尸鬼
|
||||||
unit.reaper.name = 死神
|
unit.reaper.name = 死神
|
||||||
tutorial.next = [lightgray]<点击以继续>
|
tutorial.next = [lightgray]<点击以继续>
|
||||||
tutorial.intro = 你进入了[scarlet] Mindustry 教程[]。\n[accent]采集铜矿[]以开始。点击附近的一处铜矿。\n\n[accent]{0}/{1} 铜
|
tutorial.intro = 您已进入[scarlet] Mindustry 教程[]。[]\n使用[accent][[WASD][]键移动主角和视角。\n[accent]按住[[Ctrl]并转动鼠标滚轮[]缩放视野。\n让我们从[accent]采集铜矿[]开始。先移动到铜矿旁边,然后点按矿脉附近散落的矿物。\n\n[accent]{0}/{1} 铜
|
||||||
tutorial.intro.mobile = 您已进入[scarlet] Mindustry 教程[]。\n在屏幕上滑动来继续。\n[accent]双指捏合 [] 来缩小和放大。\n让我们从[accent]采集铜矿[]开始。先移动到它旁边,然后点按矿脉附近散落的矿物。\n\n[accent]铜 {0}/{1}
|
tutorial.intro.mobile = 您已进入[scarlet] Mindustry 教程[]。\n在屏幕上滑动来继续。\n[accent]双指捏合[] 来缩小和放大。\n让我们从[accent]采集铜矿[]开始。先移动到铜矿旁边,然后点按矿脉附近散落的矿物。\n\n[accent]铜 {0}/{1}
|
||||||
tutorial.drill = 手动采矿效率不佳。\n[accent]钻头[]可以自动采矿。\n让我们在在铜矿上放一个。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n单击将其放置在铜矿上。\n[accent]右键单击[]来停止。
|
tutorial.drill = 手动采矿效率不高。\n[accent]钻头[]可以自动采矿。\n让我们在在铜矿上放一个。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n单击将其放置在铜矿上。\n[accent]右键单击[]来停止。
|
||||||
tutorial.drill.mobile = 手动采矿效率不佳。\n[accent]钻头[]可以自动采矿。\n点右下角的钻头菜单。\n选择[accent]机械钻头[]。\n点一下将其放在铜矿上,点[accent]对号[]来确定。\n点[accent]叉号[]来取消。
|
tutorial.drill.mobile = 手动采矿效率不高。\n[accent]钻头[]可以自动采矿。\n点右下角的钻头菜单。\n选择[accent]机械钻头[]。\n点一下将其放在铜矿上,点[accent]对号[]来确定。\n点[accent]叉号[]来取消。
|
||||||
tutorial.blockinfo = 每种方块都有其独特的数据。每个钻头只能开采部分矿石。\n若要查看块的信息和统计信息,[accent]在菜单中点击问号。[]\n\n[accent]现在查看机械钻头的数据吧。[]
|
tutorial.blockinfo = 每种方块都有其独特的数据。每个钻头只能开采部分矿石。\n若要查看块的信息和统计信息,[accent]在菜单中点击问号。[]\n\n[accent]现在查看机械钻头的数据吧。[]
|
||||||
tutorial.conveyor = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。
|
tutorial.conveyor = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。
|
||||||
tutorial.conveyor.mobile = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。\n[accent]长按数秒[]并向一个方向拖动来直线放置。\n\n[accent]{0}/{1} 条传送带\n[accent]0/1 物品
|
tutorial.conveyor.mobile = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。\n[accent]长按数秒[]并向一个方向拖动来直线放置。\n\n[accent]{0}/{1} 条传送带\n[accent]0/1 物品
|
||||||
@@ -1024,158 +1057,158 @@ tutorial.withdraw = 有时,从方块中取出物品是必要的。\n[accent]
|
|||||||
tutorial.deposit = 将物品从机甲拖向方块来放下物品。\n\n[accent]将铜放回核心[]。
|
tutorial.deposit = 将物品从机甲拖向方块来放下物品。\n\n[accent]将铜放回核心[]。
|
||||||
tutorial.waves = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。[accent]点击[]以射击。\n建造更多的炮塔和钻头,并采更多的矿。
|
tutorial.waves = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。[accent]点击[]以射击。\n建造更多的炮塔和钻头,并采更多的矿。
|
||||||
tutorial.waves.mobile = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。你的机甲将对敌人自动开火。\n建造更多的炮塔和钻头,并采更多的矿。
|
tutorial.waves.mobile = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。你的机甲将对敌人自动开火。\n建造更多的炮塔和钻头,并采更多的矿。
|
||||||
tutorial.launch = 特定波次中,你可以[accent]发射核心[],[accent]携带核心中所有资源[]离开所有的建筑。\n资源可用来研究科技。\n\n[accent]点击发射按钮。
|
tutorial.launch = 进入特定波次后,你可以[accent]发射核心(起飞)[],[accent]带走核心中的所有资源[]并抛下所有的建筑。\n装运的资源可用于研究科技。\n\n[accent]点击发射按钮。
|
||||||
|
|
||||||
item.copper.description = 一种有用的结构材料。在各种类型的方块中广泛使用。
|
item.copper.description = 最基本的的结构材料。在各种类型的方块中被广泛使用。
|
||||||
item.lead.description = 一种基本的起始材料。广泛用于电子设备和液体运输。
|
item.lead.description = 一种基本的电力材料。广泛用于电子设备和液体输送模块。
|
||||||
item.metaglass.description = 一种超级强硬的复合玻璃。通常用来传送和收藏液体。
|
item.metaglass.description = 一种致密坚硬的复合玻璃。广泛用于液体输送和存储。
|
||||||
item.graphite.description = 一种用于弹药和电路绝缘的矿化碳。
|
item.graphite.description = 矿化碳,用于弹药和电路绝缘。
|
||||||
item.sand.description = 一种常见的材料,广泛用于冶炼,包括制作合金和助熔剂。
|
item.sand.description = 一种常见的材料,广泛用于冶炼,包括制作合金和助熔剂。
|
||||||
item.coal.description = 一种常见并容易获得的燃料。
|
item.coal.description = 植物的化石,常见且容易获得,常用作燃料或其他资源的生产。
|
||||||
item.titanium.description = 一种罕见的超轻金属,被广泛运用于液体运输、钻头和飞机。
|
item.titanium.description = 一种罕见的超轻金属,被广泛运用于液体运输、钻头和飞机。
|
||||||
item.thorium.description = 一种致密的放射性金属,用作结构支撑和核燃料。
|
item.thorium.description = 一种致密的放射性金属,用作结构支撑和核燃料。
|
||||||
item.scrap.description = 一种废弃的建筑物及废弃单位的残骸,富含多种金属元素。
|
item.scrap.description = 一种废弃的建筑物及废弃单位的残骸,富含多种金属元素。
|
||||||
item.silicon.description = 一种非常有用的半导体,被用于太阳能电池板和很多复杂的电子设备。
|
item.silicon.description = 一种非常有用的半导体,被用于太阳能电池板和很多复杂的电子设备。
|
||||||
item.plastanium.description = 一种轻质,可延展的材料,用于高级的飞机和碎片弹药。
|
item.plastanium.description = 一种轻质、可延展的材料,用于高级的飞机和碎片弹药。
|
||||||
item.phase-fabric.description = 一种接近0重量的物质,用于先进的电子技术和自我修复技术。
|
item.phase-fabric.description = 一种近乎无重量的物质,用于先进的电子技术和自我修复技术。
|
||||||
item.surge-alloy.description = 一种具有独特电气性能的高级合金。
|
item.surge-alloy.description = 一种先进的合金,具有独特的电气性能。
|
||||||
item.spore-pod.description = 一种用于制造石油,炸药及燃料的生物质。
|
item.spore-pod.description = 一种用于制造石油、炸药及燃料的生物质。
|
||||||
item.blast-compound.description = 一种用于炸弹和炸药的挥发性混合物。虽然它可以作为燃料燃烧,但不建议这样做。
|
item.blast-compound.description = 一种用于炸弹和炸药的挥发性混合物。虽然它可以作为燃料,但不建议这样做。
|
||||||
item.pyratite.description = 一种燃烧武器中使用的极易燃物质。
|
item.pyratite.description = 一种在燃烧武器中使用的极易燃物质。
|
||||||
liquid.water.description = 最有用的液体。常用于冷却和废物处理。
|
liquid.water.description = 最有用的液体。常用于冷却机器和废物处理。
|
||||||
liquid.slag.description = 各种不同类型的熔融金属混合在一起的液体。可以被分解成其组成矿物,或作为武器喷向敌方单位。
|
liquid.slag.description = 各种不同类型的熔融金属混合在一起的液体。可以被分解成其矿物成分,或作为武器喷向敌方单位。
|
||||||
liquid.oil.description = 用于先进材料生产的液体。可以转换成煤作为燃料,或作为武器喷射和放火。
|
liquid.oil.description = 用于先进材料生产的液体。可以转换成煤作为燃料,或作为武器喷射和放火。
|
||||||
liquid.cryofluid.description = 一种由水和钛制成的惰性、无腐蚀性的液体。具有极高的热容量。广泛用作冷却剂。
|
liquid.cryofluid.description = 一种由水和钛制成的惰性、无腐蚀性的液体。具有极高的热容量。广泛用作冷却剂。
|
||||||
mech.alpha-mech.description = 标准控制机甲。基于尖刀单位,具有升级的装甲和建筑能力。比 Dart 有更多的伤害输出。
|
mech.alpha-mech.description = 标准控制机甲。基于尖刀单位,具有升级的装甲和建筑能力。比 Dart 有更多的伤害输出。
|
||||||
mech.delta-mech.description = 一种快速,轻便的机甲,一击即退。对结构造成的伤害很小,但可以用弧形闪电武器快速杀死大量敌方单位。
|
mech.delta-mech.description = 一种快速、轻便的机甲,一击即退。对结构造成的伤害很小,但可以使用弧形闪电武器快速杀死大量敌方单位。
|
||||||
mech.tau-mech.description = 后勤机甲。治疗友军。可以熄灭火焰并治疗一定范围内的友军。
|
mech.tau-mech.description = 后勤机甲。治疗友军。可以熄灭火焰并治疗一定范围内的友军。
|
||||||
mech.omega-mech.description = 一种装甲厚重的机甲,用于在前线攻击。它的护甲可以阻挡高达90%的伤害。
|
mech.omega-mech.description = 一种装甲厚重的机甲,用于在前线攻击。它的护甲可以阻挡高达90%的伤害。
|
||||||
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度慢。
|
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度慢。
|
||||||
mech.javelin-ship.description = 一艘一击即退的攻击船。虽然最初很慢,但它可以加速到很快的速度,并飞过敌人的前哨,利用其闪电能力和导弹造成大量伤害。
|
mech.javelin-ship.description = 一艘一击即退的攻击船。虽然最初很慢,但它可以加速到很快的速度,并飞过敌人的前哨,利用其闪电能力和导弹造成大量伤害。
|
||||||
mech.trident-ship.description = 为建造和摧毁敌人防御工事而建造的重型轰炸机。有相当好的装甲。
|
mech.trident-ship.description = 为建造和摧毁敌人防御工事而建造的重型轰炸机。有相当好的装甲。
|
||||||
mech.glaive-ship.description = 一种大型,装甲厚重的武装直升机。配备燃烧机枪。有优秀的加速能力和最快的速度。
|
mech.glaive-ship.description = 一种大型的装甲厚重的武装直升机。配备火焰机枪。有优秀的加速能力和最快的速度。
|
||||||
unit.draug.description = 一种原始的采矿机。生产成本低,消耗品。在附近自动开采铜和铅。将开采的资源输送到最近的核心。
|
unit.draug.description = 一种原始的采矿机。生产成本低,消耗品。在附近自动开采铜和铅。将开采的资源输送到最近的核心。
|
||||||
unit.spirit.description = 一种改进的德鲁格无人机,设计用于维修而不是采矿。自动修复该区域中任何损坏的块。
|
unit.spirit.description = 一种改进的德鲁格无人机,设计用于维修而不是采矿。自动修复该区域中任何损坏的块。
|
||||||
unit.phantom.description = 一种先进的无人机。跟随玩家并协助建造。
|
unit.phantom.description = 一种先进的无人机。跟随玩家并协助建造。
|
||||||
unit.dagger.description = 一种最基本的地面机甲。生产成本低。在蜂群中使用时很有用。
|
unit.dagger.description = 一种最基本的地面机甲。生产成本低。集群使用时比较有用。
|
||||||
unit.crawler.description = 一种地面装置,由一个框架和绑在上面的烈性炸药组成。不是特别耐用。与敌人接触后爆炸。
|
unit.crawler.description = 一种地面装置,由一个框架和绑在上面的烈性炸药组成。不是特别耐用。与敌人接触后爆炸。
|
||||||
unit.titan.description = 一种先进的装甲地面部队。攻击地面和空中目标。配备两个微型灼烧级火焰喷射器。
|
unit.titan.description = 一种先进的地面装甲部队。攻击地面和空中目标。配备两个微型灼烧级火焰喷射器。
|
||||||
unit.fortress.description = 一种重型炮兵机甲。装备两门改进型冰雹炮,用于对敌军建筑物和部队进行远程攻击。
|
unit.fortress.description = 一种重型炮兵机甲。装备两门改进型冰雹炮,用于对敌军建筑物和部队进行远程攻击。
|
||||||
unit.eruptor.description = 一种用来拆除建筑物的重型机甲。在敌人的防御工事上发射矿渣,将它们熔化并点燃挥发物。
|
unit.eruptor.description = 一种用来拆除建筑物的重型机甲。在敌人的防御工事上发射矿渣,将它们熔化并点燃挥发物。
|
||||||
unit.wraith.description = 一种快速、一击即退的拦截器机甲。目标是发电机。
|
unit.wraith.description = 一种快速、一击即退的拦截器机甲。目标是发电机。
|
||||||
unit.ghoul.description = 一种地毯式轰炸机。通过敌人的结构进行攻击,并瞄准关键的基础设施。
|
unit.ghoul.description = 一种重型地毯式轰炸机。瞄准关键的基础设施来击溃敌人的基地。
|
||||||
unit.revenant.description = 一种发射导弹的重型飞行机甲。
|
unit.revenant.description = 一种发射导弹的重型飞行机甲。
|
||||||
block.message.description = 储存一条信息。用于在盟军之间交流。
|
block.message.description = 储存一条消息。用于盟友间的交流。
|
||||||
block.graphite-press.description = 把大块的煤压缩成纯石墨片。
|
block.graphite-press.description = 将煤块压缩成纯石墨片材料。
|
||||||
block.multi-press.description = 石墨压缩机的升级版。利用水和电力快速高效地处理煤炭。
|
block.multi-press.description = 石墨压缩机的升级版。利用水和电力快速高效地处理煤炭。
|
||||||
block.silicon-smelter.description = 用高纯度的焦炭来加工沙子以生产硅。
|
block.silicon-smelter.description = 用高纯度的焦炭来加工沙子以生产硅。
|
||||||
block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。
|
block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。
|
||||||
block.plastanium-compressor.description = 用石油和钛生产塑钢。
|
block.plastanium-compressor.description = 用石油和钛生产塑钢。
|
||||||
block.phase-weaver.description = 用放射性钍和大量沙子生产相织物。
|
block.phase-weaver.description = 用放射性钍和大量沙子生产相织物。
|
||||||
block.alloy-smelter.description = 用钛,铅,硅和铜生产浪涌合金。
|
block.alloy-smelter.description = 用钛、铅、硅和铜生产浪涌合金。
|
||||||
block.cryofluidmixer.description = 水和钛结合到低温流体中,冷却效率更高。
|
block.cryofluidmixer.description = 将水和细的钛粉混成冷却液。钍反应堆的必备之物。
|
||||||
block.blast-mixer.description = 用油将硫转化为不易燃但更具爆炸性的爆炸化合物。
|
block.blast-mixer.description = 用油料将硫转化为不易燃但更具爆炸性的爆炸化合物。
|
||||||
block.pyratite-mixer.description = 将煤,铅和沙子混合成高度易燃的硫。
|
block.pyratite-mixer.description = 将煤、铅和沙子混合成高度易燃的硫。
|
||||||
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔弹药。
|
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔弹药。
|
||||||
block.separator.description = 从矿渣中提取有用的矿物。
|
block.separator.description = 从矿渣中提取有用的矿物。
|
||||||
block.spore-press.description = 压缩孢子荚得到石油。
|
block.spore-press.description = 以极高压力压缩孢子荚合成油料。
|
||||||
block.pulverizer.description = 将废料压碎成沙子。当缺少天然沙子时很有用。
|
block.pulverizer.description = 将废料碾成沙。
|
||||||
block.coal-centrifuge.description = 使石油凝固成煤块。
|
block.coal-centrifuge.description = 使石油凝固成煤块。
|
||||||
block.incinerator.description = 用于除掉任何多余的物品或液体。
|
block.incinerator.description = 用来接收并除掉多余的物品或液体。
|
||||||
block.power-void.description = 消耗输入的所有能量。仅限沙盒。
|
block.power-void.description = 消耗输入的所有能量。仅限沙盒。
|
||||||
block.power-source.description = 无限输出能量。仅限沙盒。
|
block.power-source.description = 无限输出能量。仅限沙盒。
|
||||||
block.item-source.description = 无限输出物品。仅限沙盒。
|
block.item-source.description = 无限输出物品。仅限沙盒。
|
||||||
block.item-void.description = 在不使用能量的情况下销毁任何进入它的物品。仅限沙盒。
|
block.item-void.description = 销毁输入的所有物品。仅限沙盒。
|
||||||
block.liquid-source.description = 无限输出液体。仅限沙盒。
|
block.liquid-source.description = 无限输出液体。仅限沙盒。
|
||||||
block.copper-wall.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。
|
block.copper-wall.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。
|
||||||
block.copper-wall-large.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。\n跨越多个区块。
|
block.copper-wall-large.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。\n占多个方格。
|
||||||
block.titanium-wall.description = 中等强度的防御方块。\n提供中等强度的防御以抵御敌人。
|
block.titanium-wall.description = 中等强度的防御方块。\n提供中等强度的防御以抵御敌人。
|
||||||
block.titanium-wall-large.description = 中等强度的防御方块。\n提供中等强度的防御以防敌人攻击。\n跨越多个区块。
|
block.titanium-wall-large.description = 中等强度的防御方块。\n提供中等强度的防御以防敌人攻击。\n占多个方格。
|
||||||
block.plastanium-wall.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。
|
block.plastanium-wall.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。
|
||||||
block.plastanium-wall-large.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。\n跨越多个区块。
|
block.plastanium-wall-large.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。\n占多个方格。
|
||||||
block.thorium-wall.description = 强大的防御方块。\n可以很好的防御敌人。
|
block.thorium-wall.description = 强大的防御方块。\n可以很好的防御敌人。
|
||||||
block.thorium-wall-large.description = 强大的防御方块。\n很好地防御敌人。\n跨越多个区块。
|
block.thorium-wall-large.description = 强大的防御方块。\n很好地防御敌人。\n占多个方格。
|
||||||
block.phase-wall.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。
|
block.phase-wall.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。
|
||||||
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。\n跨越多个区块。
|
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。\n占多个方格。
|
||||||
block.surge-wall.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。
|
block.surge-wall.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。
|
||||||
block.surge-wall-large.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。\n跨越多个区块。
|
block.surge-wall-large.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。\n占多个方格。
|
||||||
block.door.description = 一扇小门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。
|
block.door.description = 一扇小门。点按切换它的打开/关闭状态。
|
||||||
block.door-large.description = 一扇大门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。\n跨越多个区块。
|
block.door-large.description = 一扇大门。点按切换它的打开/关闭状态。\n占多个方格。
|
||||||
block.mender.description = 会定期修理附近的方块,使防御系统在波与波之间得到修复。\n可以使用硅来提高修复范围和修复效率。
|
block.mender.description = 定期修理附近的方块,使防御系统在波次之间得到修复。\n可选使用硅来提高修复范围和修复效率。
|
||||||
block.mend-projector.description = 修理者的升级版,会定期修复附近的建筑物。
|
block.mend-projector.description = 修理者的升级版,定期修复附近的建筑物。
|
||||||
block.overdrive-projector.description = 提高附近建筑物的速度,如钻头和传送带。
|
block.overdrive-projector.description = 提高附近建筑物的速度,如钻头和传送带。
|
||||||
block.force-projector.description = 自身周围创建一个六边形力场,使建筑物和内部单位免受弹药的伤害。
|
block.force-projector.description = 在自身周围创建一个六角形力场,使里面的建筑物和单位免受伤害。\n持续承受高伤害会导致过热,可以使用冷却液降温。相织物可用于增加屏障大小。
|
||||||
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
|
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
|
||||||
block.conveyor.description = 初级传送带。将物品向前输送并将它们放入炮塔或工厂中。可旋转方向。
|
block.conveyor.description = 初级物资传送带。将物品向前输送并在可能时运入建筑。可旋转方向。
|
||||||
block.titanium-conveyor.description = 高级传送带,比初级传送带更快地输送物品。
|
block.titanium-conveyor.description = 高级物资传送带。运送物品的速度优于初级传送带。
|
||||||
block.junction.description = 作为交叉的两条传送带的桥梁。适用于两条不同方向的传送带将不同的物品运送到不同的位置。
|
block.junction.description = 两条传送带的交叉桥连接。适用于两条不同方向的传送带要分别将不同的物品运送到不同的位置。
|
||||||
block.bridge-conveyor.description = 高级物品传输方块。允许跨越任何地形或建筑物上运输物品,最多跨越3个块。
|
block.bridge-conveyor.description = 先进的物品运输方块。允许跨越任意地形或建筑物运输物品,最多跨越3格。
|
||||||
block.phase-conveyor.description = 高级传送带,使用电力将物品传送到距离几个块的相位传送带上。
|
block.phase-conveyor.description = 先进的传送带,使用电力将物品传送到距离几个块的相位传送带上。
|
||||||
block.sorter.description = 对物品进行分类,如果物品与所选种类相同,则允许其通过。否则,物品将从左边和右边输出。
|
block.sorter.description = 对物品进行分类,如果物品与所选种类相同,则允许其通过。否则,物品将从左边和右边输出。
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = 同分类器一样分类物品,但所选物品输出到左边和右边。
|
||||||
block.router.description = 从一个方向接受物品,并将它们平均输出到其他3个方向。可以将材料分成多份。
|
block.router.description = 从一个方向接受物品,并将它们平均输出到其他3个方向。可以将材料分成多份。
|
||||||
block.distributor.description = 一个高级路由器,可以将物品向最多7个方向输出。
|
block.distributor.description = 改进的路由器,可将物品输出到周围的最多7个其他方向。
|
||||||
block.overflow-gate.description = 分离器和路由器的组合,如果前面被挡住,则向从左和右输出。
|
block.overflow-gate.description = 仅在前路被阻塞时向左和右输出。
|
||||||
block.mass-driver.description = 终极传送带,收集物品后将它们射向远处的另一个质量驱动器。
|
block.mass-driver.description = 终极传送带,收集若干物品后将其射到远处的另一个质量驱动器。
|
||||||
block.mechanical-pump.description = 一种输出速度慢但没有功耗的廉价泵。
|
block.mechanical-pump.description = 一种廉价泵,输出速度慢,但无需能量。
|
||||||
block.rotary-pump.description = 先进的水泵。泵送更多液体,但需要能量。
|
block.rotary-pump.description = 先进液泵。泵送更多液体,但需要能量。
|
||||||
block.thermal-pump.description = 终级水泵。
|
block.thermal-pump.description = 终级液泵。
|
||||||
block.conduit.description = 基本液体传输管道。像传送带一样工作,但仅适用于液体。用于从泵或其他导管中提取液体。
|
block.conduit.description = 基本液体传输管道。像传送带一样工作,但仅适用于液体。用于从泵或其他导管中提取液体。
|
||||||
block.pulse-conduit.description = 高级液体传输管道。比普通导管更快地输送液体且能储存更多液体。
|
block.pulse-conduit.description = 高级液体传输管道。比普通导管更快地输送液体且能储存更多液体。
|
||||||
block.plated-conduit.description = 转移液体的速度与脉冲导管相同,但护甲更强。Does not accept fluids from the sides by anything other than conduits.\n更少泄漏。
|
block.plated-conduit.description = 转移液体的速度与脉冲导管相同,但护甲更强。两侧只接受通过导管传入液体。\n更少泄漏。
|
||||||
block.liquid-router.description = 接受来自一个方向的液体并将它们平均输出到其他3个方向。同时可以储存一定量的液体。用于将液体从一个源分成多个目标。
|
block.liquid-router.description = 接受一个方向的液体并将它们平均输出到其他3个方向。同时可以储存一定量的液体。用于将液体从一个源分往多个目标。
|
||||||
block.liquid-tank.description = 存储大量液体,可用于在材料需求不恒定的时候提供缓冲,或作为供给冷却液体的保障。
|
block.liquid-tank.description = 存储大量液体,可在材料需求不恒定作为缓冲区,或作为供给冷却液体的保障设施。
|
||||||
block.liquid-junction.description = 作为两个交叉管道的桥梁。适用于两种不同方向的导管将不同液体输送到不同位置的情况。
|
block.liquid-junction.description = 两条管道的交叉桥连接。适用于两条不同方向的导管要将不同的液体输送到不同的位置。
|
||||||
block.bridge-conduit.description = 高级液体传输方块。可以跨越任何地形或建筑物,最多跨越3格来传输液体。
|
block.bridge-conduit.description = 先进的液体传输方块。可以跨越任何地形或建筑物,最多跨越3格来传输液体。
|
||||||
block.phase-conduit.description = 高级液体传输方块。使用电力将液体传送到多个块上的连接管道。
|
block.phase-conduit.description = 先进的液体传输方块。使用电力将液体传送到多个块上的连接管道。
|
||||||
block.power-node.description = 将电源传输到连接的节点上。节点将接收来自任何方块的能量或向任何方块供给能量。
|
block.power-node.description = 将电源传输到连接的节点上。节点将接收来自任何方块的能量或向任何方块供给能量。
|
||||||
block.power-node-large.description = 拥有大范围和多连接点的高级能量节点。
|
block.power-node-large.description = 更大范围、更多连接点的高级能量节点。
|
||||||
block.surge-tower.description = 连接点较少,但是距离远的能量节点。
|
block.surge-tower.description = 连接数低但范围很远的能量节点。
|
||||||
block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
|
block.diode.description = 此方块上的电能只能单向流动,仅当对方的储能更低时流动。
|
||||||
block.battery.description = 储存能量,当储存有能量时,可在能源短缺时提供能量。
|
block.battery.description = 存储能量作为缓冲,在能源亏空时提供。
|
||||||
block.battery-large.description = 比普通电池容量更大。
|
block.battery-large.description = 比普通电池容量更大。
|
||||||
block.combustion-generator.description = 燃烧煤等材料发电。
|
block.combustion-generator.description = 燃烧煤等材料发电。
|
||||||
block.thermal-generator.description = 当放置在热的地方时发电。
|
block.thermal-generator.description = 放置在炽热的地方发电。
|
||||||
block.turbine-generator.description = 先进的燃烧发电机,效率更高,但需要水来产生蒸汽。
|
block.turbine-generator.description = 先进的火力发电机,效率更高,但需要水来产生蒸汽。
|
||||||
block.differential-generator.description = 利用低温流体和燃烧的硫之间的温差产生大量的能量。
|
block.differential-generator.description = 利用低温流体与燃烧的硫之间的温差产生大量能量。
|
||||||
block.rtg-generator.description = 简单可靠的发电机。利用衰变放射性化合物的热量以缓慢的速度产生能量。
|
block.rtg-generator.description = 一种简单可靠的发电机。利用放射性化合物的衰变产生的热量,以缓慢的速度产生能量。
|
||||||
block.solar-panel.description = 普通太阳能面板,提供少量电力。
|
block.solar-panel.description = 普通太阳能板,提供少量电力。
|
||||||
block.solar-panel-large.description = 高级太阳能面板,提供更多电力,但搭建起来更贵。
|
block.solar-panel-large.description = 高级太阳能板,提供更多电力,但成本更高。
|
||||||
block.thorium-reactor.description = 高放射性钍产生大量电力。需要冷却液来冷却。如果供应的冷却液不足,会导致爆炸。
|
block.thorium-reactor.description = 用高放射性的钍产生大量电力。需要冷却液冷却。如果供应的冷却液不足,会导致爆炸。
|
||||||
block.impact-reactor.description = 一种先进的发电机,能够以最高效率产生大量的电力。但需要大量的能量输入才会启动。
|
block.impact-reactor.description = 一种先进的发电机,能够以最高效率产生大量的电力。但需要大量的能量输入来启动。
|
||||||
block.mechanical-drill.description = 一种便宜的钻头。放置在合适的方块上时,以缓慢的速度无限期地输出物品。只能开采基本资源。
|
block.mechanical-drill.description = 一种便宜的钻头。放置在合适的方块上时,以缓慢的速度无限期地输出物品。只能开采基本资源。
|
||||||
block.pneumatic-drill.description = 一种改进的钻头,能开采钛。采矿速度比机械钻快。
|
block.pneumatic-drill.description = 一种改进的钻头,能开采钛。采矿速度比机械钻头快。
|
||||||
block.laser-drill.description = 通过激光技术更快开采,但需要电力。这种钻头可以开采放射性钍。
|
block.laser-drill.description = 通过激光技术更快地开采,但需要能量。这种钻头可以开采放射性钍。
|
||||||
block.blast-drill.description = 终极钻头,需要大量电力。
|
block.blast-drill.description = 终极钻头,需要大量能量。
|
||||||
block.water-extractor.description = 从地下提取水。当附近没有水源时使用它。
|
block.water-extractor.description = 从地下提取水。当附近没有水源时使用它。
|
||||||
block.cultivator.description = 将微小的孢子培养成工业用的孢子荚。
|
block.cultivator.description = 将微小的孢子培养成工业用的孢子荚。
|
||||||
block.oil-extractor.description = 使用大量的电力从沙子中提取石油。当附近没有直接的石油来源时使用它。
|
block.oil-extractor.description = 使用大量能量、沙子和水提炼石油。
|
||||||
block.core-shard.description = 核心第一代。一旦被摧毁,与该地区的所有连接都将断开。不要让它被摧毁。
|
block.core-shard.description = 初代核心。一旦被摧毁,与该地区的所有连接都将断开。不要让它被摧毁。
|
||||||
block.core-foundation.description = 核心第二代。血量更高。可以存储更多资源。
|
block.core-foundation.description = 二代核心。血量更高。可以存储更多资源。
|
||||||
block.core-nucleus.description = 核心第三代,也是最后一代,血量非常高。存储大量资源。
|
block.core-nucleus.description = 三代核心,也是最新一代,血量非常高。能存储大量资源。
|
||||||
block.vault.description = 存储大量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从仓库中提取物品。
|
block.vault.description = 存储大量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从仓库中提取物品。
|
||||||
block.container.description = 存储少量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从容器中提取物品。
|
block.container.description = 存储少量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从容器中提取物品。
|
||||||
block.unloader.description = 物品可以从容器,仓库或核心提取到传送带上或直接提取到相邻的方块中。可以通过点击卸载器来更改要卸载的项目类型。
|
block.unloader.description = 将物品从容器、仓库或你的核心中提取到传送带或直接提取到相邻的方块。点击卸载器本身更改所要卸载的物品类型。
|
||||||
block.launch-pad.description = 允许不通过核心发射物体。
|
block.launch-pad.description = 定期发射一批物品,而无需发射核心(离开地图)。
|
||||||
block.launch-pad-large.description = 发射台的改进版,可以存储更多物体的同时启动频率更高。
|
block.launch-pad-large.description = 发射台的改进版,可以存储更多物品,同时启动频率更高。
|
||||||
block.duo.description = 小而便宜的炮塔,对地有效。
|
block.duo.description = 小而便宜的炮塔,对地很有效。
|
||||||
block.scatter.description = 不可或缺的防空炮塔,向空中敌人发射铅或废料。
|
block.scatter.description = 基本型防空炮塔。向空中敌人喷出一团铅或废料。
|
||||||
block.scorch.description = 小型炮塔,燃烧任何靠近它的地面敌人。近距离非常有效。
|
block.scorch.description = 小型炮塔,点燃任何靠近它的地面敌人。近距离非常有效。
|
||||||
block.hail.description = 小型远程炮台。
|
block.hail.description = 小型远程炮台。
|
||||||
block.wave.description = 中型快速炮塔,射出液体泡泡。有液体输入时自动灭火。
|
block.wave.description = 中型快速炮塔,射出液体泡泡。有液体输入时自动灭火。
|
||||||
block.lancer.description = 中型对地炮塔。遇敌时会充能并发射强有力的的能量束。
|
block.lancer.description = 中型对地炮塔。会充能并发射强力的的能量束。
|
||||||
block.arc.description = 小型炮塔,发射电弧。
|
block.arc.description = 小型炮塔,发射电弧。
|
||||||
block.swarmer.description = 中型炮塔,对空对地,发射跟踪爆炸导弹。
|
block.swarmer.description = 中型炮塔,对空对地,发射跟踪爆炸导弹。
|
||||||
block.salvo.description = 双管炮的升级版。中型,齐射射击。
|
block.salvo.description = 双管炮的升级版。中型,快速射出一串子弹。
|
||||||
block.fuse.description = 大型炮塔,发射三道刺穿敌人的短程光束。
|
block.fuse.description = 大型近程炮塔,发射三道刺穿敌人的短程光束。
|
||||||
block.ripple.description = 大型远程炮台,非常强力,向远处的敌人投射一簇弹药。
|
block.ripple.description = 大型远程炮台,非常强力,向远处的敌人投射一簇弹药。
|
||||||
block.cyclone.description = 大型快速炮塔,对空对地,向周围敌人发射爆炸弹。
|
block.cyclone.description = 大型炮塔,对空对地,发射在敌人周围引爆的爆炸物。
|
||||||
block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的穿甲弹药。
|
block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的穿甲弹药。
|
||||||
block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。
|
block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。
|
||||||
block.command-center.description = 在地图上向盟军发出移动命令。\n使用部队巡逻、攻击敌军核心或撤退到核心/工厂。当没有敌人核心时,部队默认在攻击命令下巡逻。
|
block.command-center.description = 在地图上向联盟单位发出移动命令。\n使部队巡逻、攻击一个敌人核心,或者撤退到核心/工厂。当没有敌人核心时,得到攻击命令的部队默认执行巡逻。
|
||||||
block.draug-factory.description = 生产德鲁格釆矿机。
|
block.draug-factory.description = 生产德鲁格釆矿机。
|
||||||
block.spirit-factory.description = 生产幽灵修理机。
|
block.spirit-factory.description = 生产幽灵修理机。
|
||||||
block.phantom-factory.description = 生产鬼怪建造机。
|
block.phantom-factory.description = 生产幻影建造机。
|
||||||
block.wraith-factory.description = 生产快速截击机。
|
block.wraith-factory.description = 生产快速截击机。
|
||||||
block.ghoul-factory.description = 生产重型地毯轰炸机。
|
block.ghoul-factory.description = 生产重型地毯轰炸机。
|
||||||
block.revenant-factory.description = 生产重型导弹部队。
|
block.revenant-factory.description = 生产重型导弹部队。
|
||||||
@@ -1183,11 +1216,11 @@ block.dagger-factory.description = 生产基本地面单位。
|
|||||||
block.crawler-factory.description = 生产快速自毁单元。
|
block.crawler-factory.description = 生产快速自毁单元。
|
||||||
block.titan-factory.description = 生产先进的装甲地面单位。
|
block.titan-factory.description = 生产先进的装甲地面单位。
|
||||||
block.fortress-factory.description = 生产重型地面火炮部队。
|
block.fortress-factory.description = 生产重型地面火炮部队。
|
||||||
block.repair-point.description = 连续治疗附近最近的受损单位。
|
block.repair-point.description = 持续治疗其附近伤势最重的单位。
|
||||||
block.dart-mech-pad.description = 替换当前的机甲并转换成一个基础的攻击型机甲。\n站在上面时点击切换。
|
block.dart-mech-pad.description = 允许将当前的机甲替换为一款基础的攻击型机甲。\n站在上面并点一下执行切换。
|
||||||
block.delta-mech-pad.description = 替换当前的机甲并转换成一个快速,轻装甲的机械装置。\n站在上面时点击切换。
|
block.delta-mech-pad.description = 允许将当前的机甲替换为一款轻快的攻击型机甲。\n站在上面并点一下执行切换。
|
||||||
block.tau-mech-pad.description = 替换当前的机甲并转换成一个可以治愈友方建筑物和单位的后勤机甲。\n站在上面时点击切换。
|
block.tau-mech-pad.description = 允许将当前的机甲替换为一款可以治愈友方建筑物和单位的支援型机甲。\n站在上面并点一下执行切换。
|
||||||
block.omega-mech-pad.description = 替换当前的机甲并转换成一个笨重但是高护甲的机甲。\n站在上面时点击切换。
|
block.omega-mech-pad.description = 允许将当前的机甲替换为一款笨重、厚装甲的导弹机甲。\n站在上面并点一下执行切换。
|
||||||
block.javelin-ship-pad.description = 替换当前的机甲并转换成一个强大而快速的截击机,发射电弧。\n站在上面时点击切换。
|
block.javelin-ship-pad.description = 允许将当前的机甲替换为一款快速、轻装甲的截击机,发射电弧。\n站在上面并点一下执行切换。
|
||||||
block.trident-ship-pad.description = 替换当前的机甲并转换成一个高护甲的重型轰炸机。\n站在上面时点击切换。
|
block.trident-ship-pad.description = 允许将当前的机甲替换为一款重型的支援轰炸机。\n站在上面并点一下执行切换。
|
||||||
block.glaive-ship-pad.description = 替换当前的机甲并转换成一个高护甲的大型武装直升机。\n站在上面时点击切换。
|
block.glaive-ship-pad.description = 允许将当前的机甲替换为一款大型的装甲武装直升机。\n站在上面并点一下执行切换。
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ link.itch.io.description = itch.io 電腦版下載網頁
|
|||||||
link.google-play.description = Google Play 商店頁面
|
link.google-play.description = Google Play 商店頁面
|
||||||
link.f-droid.description = F-Droid 目錄頁面
|
link.f-droid.description = F-Droid 目錄頁面
|
||||||
link.wiki.description = 官方 Mindustry 維基
|
link.wiki.description = 官方 Mindustry 維基
|
||||||
|
link.feathub.description = 建議新功能
|
||||||
linkfail = 無法打開連結!\n我們已將該網址複製到您的剪貼簿。
|
linkfail = 無法打開連結!\n我們已將該網址複製到您的剪貼簿。
|
||||||
screenshot = 截圖保存到{0}
|
screenshot = 截圖保存到{0}
|
||||||
screenshot.invalid = 地圖太大了,可能沒有足夠的內存用於截圖。
|
screenshot.invalid = 地圖太大了,可能沒有足夠的內存用於截圖。
|
||||||
@@ -26,6 +27,7 @@ load.image = 圖片載入中
|
|||||||
load.content = 內容載入中
|
load.content = 內容載入中
|
||||||
load.system = 系統載入中
|
load.system = 系統載入中
|
||||||
load.mod = 模組載入中
|
load.mod = 模組載入中
|
||||||
|
load.scripts = 指令檔載入中
|
||||||
|
|
||||||
schematic = 藍圖
|
schematic = 藍圖
|
||||||
schematic.add = 儲存藍圖...
|
schematic.add = 儲存藍圖...
|
||||||
@@ -87,6 +89,7 @@ uploadingpreviewfile = 上傳預覽文件
|
|||||||
committingchanges = 提交變更
|
committingchanges = 提交變更
|
||||||
done = 完成
|
done = 完成
|
||||||
feature.unsupported = 您的設備不支持此功能。
|
feature.unsupported = 您的設備不支持此功能。
|
||||||
|
|
||||||
mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry GitHub或Discord報告發現的任何問題。
|
mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry GitHub或Discord報告發現的任何問題。
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = 模組
|
mods = 模組
|
||||||
@@ -96,20 +99,26 @@ mods.report = 回報錯誤
|
|||||||
mods.openfolder = 開啟模組資料夾
|
mods.openfolder = 開啟模組資料夾
|
||||||
mod.enabled = [lightgray]已啟用
|
mod.enabled = [lightgray]已啟用
|
||||||
mod.disabled = [scarlet]已禁用
|
mod.disabled = [scarlet]已禁用
|
||||||
mod.enable = 啟用
|
|
||||||
mod.disable = 禁用
|
mod.disable = 禁用
|
||||||
mod.delete.error = 無法刪除模組,檔案可能在使用中。
|
mod.delete.error = 無法刪除模組,檔案可能在使用中。
|
||||||
mod.missingdependencies = [scarlet]缺少依賴項目: {0}
|
mod.requiresversion = [scarlet]最低遊戲版本要求:[accent]{0}
|
||||||
mod.nowdisabled = [scarlet]「{0}'」模組缺少依賴項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
|
mod.missingdependencies = [scarlet]缺少必須項目: {0}
|
||||||
|
mod.erroredcontent = [scarlet]內容錯誤
|
||||||
|
mod.errors = 載入內容時發生錯誤
|
||||||
|
mod.noerrorplay = [scarlet]你使用了有錯誤的模組。[] 遊戲前請先禁用相關模組或修正錯誤。
|
||||||
|
mod.nowdisabled = [scarlet]「{0}」模組缺少必須項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
|
||||||
|
mod.enable = 啟用
|
||||||
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
|
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
|
||||||
mod.reloadrequired = [scarlet]需要重新載入
|
mod.reloadrequired = [scarlet]需要重新載入
|
||||||
mod.import = 匯入模組
|
mod.import = 匯入模組
|
||||||
mod.import.github = 匯入GitHub模組
|
mod.import.github = 匯入GitHub模組
|
||||||
|
mod.item.remove = 此物品是[accent] '{0}'[]模組的一部份。解除安裝模組以移除此物品。
|
||||||
mod.remove.confirm = 該模組將被刪除。
|
mod.remove.confirm = 該模組將被刪除。
|
||||||
mod.author = [lightgray]作者:[] {0}
|
mod.author = [lightgray]作者:[] {0}
|
||||||
mod.missing = 此存檔含有您最近更新或不再安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0}
|
mod.missing = 此存檔含有您最近更新或不再安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0}
|
||||||
mod.preview.missing = 在工作坊發佈這個模組前,您必須添加預覽圖。\n在該模組的資料夾中放置一個名為[accent] preview.png[]的圖片並重試。
|
mod.preview.missing = 在工作坊發佈這個模組前,您必須添加預覽圖。\n在該模組的資料夾中放置一個名為[accent] preview.png[]的圖片並重試。
|
||||||
mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。
|
mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。
|
||||||
|
mod.scripts.unsupported = 你的裝置不支援模組指令檔。部分模組將無法正常運作。
|
||||||
|
|
||||||
about.button = 關於
|
about.button = 關於
|
||||||
name = 名稱:
|
name = 名稱:
|
||||||
@@ -130,7 +139,7 @@ server.kicked.serverClose = 伺服器已關閉。
|
|||||||
server.kicked.vote = 您已被投票踢出伺服器,再見。
|
server.kicked.vote = 您已被投票踢出伺服器,再見。
|
||||||
server.kicked.clientOutdated = 客戶端版本過舊!請更新遊戲!
|
server.kicked.clientOutdated = 客戶端版本過舊!請更新遊戲!
|
||||||
server.kicked.serverOutdated = 伺服器版本過舊!請聯絡伺服主更新伺服器!
|
server.kicked.serverOutdated = 伺服器版本過舊!請聯絡伺服主更新伺服器!
|
||||||
server.kicked.banned = 您已經從這個伺服器被封禁。
|
server.kicked.banned = 您已經在這個伺服器中被封禁。
|
||||||
server.kicked.typeMismatch = 該伺服器與您的版本不相容。
|
server.kicked.typeMismatch = 該伺服器與您的版本不相容。
|
||||||
server.kicked.playerLimit = 該伺服器已滿。請等待一個空位置。
|
server.kicked.playerLimit = 該伺服器已滿。請等待一個空位置。
|
||||||
server.kicked.recentKick = 您最近曾被踢出伺服器。\n請稍後再進行連線。
|
server.kicked.recentKick = 您最近曾被踢出伺服器。\n請稍後再進行連線。
|
||||||
@@ -140,7 +149,7 @@ server.kicked.idInUse = 你已經在伺服器中!不允許用兩個帳號。
|
|||||||
server.kicked.customClient = 這個伺服器不支持自訂客戶端,請下載官方版本。
|
server.kicked.customClient = 這個伺服器不支持自訂客戶端,請下載官方版本。
|
||||||
server.kicked.gameover = 遊戲結束!
|
server.kicked.gameover = 遊戲結束!
|
||||||
server.versions = 您的遊戲版本:[accent] {0}[]\n伺服器遊戲版本:[accent] {1}[]
|
server.versions = 您的遊戲版本:[accent] {0}[]\n伺服器遊戲版本:[accent] {1}[]
|
||||||
host.info = 目前伺服器監聽於連接埠[scarlet]6567[]。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過IP 位址連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意:如果區域網路內有玩家無法連線至您的伺服器,請務必確認您已於防火牆設定中開放Mindustry存取您的區域網路。請注意公共網路有時不允許搜尋伺服器。
|
host.info = [accent]建立伺服器[]按鍵會在連接埠[scarlet]6567[]建立一個伺服器。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過IP 位址連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意:如果區域網路內有玩家無法連線至您的伺服器,請務必確認您已於防火牆設定中開放Mindustry存取您的區域網路。請注意公共網路有時不允許搜尋伺服器。
|
||||||
join.info = 您可以在此輸入欲連線的[accent]伺服器IP位址[],或尋找[accent]區域網路[]內的伺服器。目前支援區域網路與網際網路連線。\n\n[lightgray]注意:並沒有自動的網際網路伺服器清單,如果您想透過IP位址連線到他人的伺服器,您必須向他們詢問IP位址。
|
join.info = 您可以在此輸入欲連線的[accent]伺服器IP位址[],或尋找[accent]區域網路[]內的伺服器。目前支援區域網路與網際網路連線。\n\n[lightgray]注意:並沒有自動的網際網路伺服器清單,如果您想透過IP位址連線到他人的伺服器,您必須向他們詢問IP位址。
|
||||||
hostserver = 建立伺服器
|
hostserver = 建立伺服器
|
||||||
invitefriends = 邀請好友
|
invitefriends = 邀請好友
|
||||||
@@ -175,7 +184,7 @@ confirmban = 您確定要封禁該玩家嗎?
|
|||||||
confirmkick = 您確定要踢出該玩家嗎?
|
confirmkick = 您確定要踢出該玩家嗎?
|
||||||
confirmvotekick = 您確定要投票剔除該名玩家嗎?
|
confirmvotekick = 您確定要投票剔除該名玩家嗎?
|
||||||
confirmunban = 您確定要解除封禁該玩家嗎?
|
confirmunban = 您確定要解除封禁該玩家嗎?
|
||||||
confirmadmin = 您確定要提升這個玩家為管理員嗎?
|
confirmadmin = 您確定要晉升這個玩家為管理員嗎?
|
||||||
confirmunadmin = 您確定要解除這個玩家的管理員嗎?
|
confirmunadmin = 您確定要解除這個玩家的管理員嗎?
|
||||||
joingame.title = 加入遊戲
|
joingame.title = 加入遊戲
|
||||||
joingame.ip = IP位址:
|
joingame.ip = IP位址:
|
||||||
@@ -250,7 +259,7 @@ pausebuilding = [accent][[{0}][]暫停建造
|
|||||||
resumebuilding = [scarlet][[{0}][]恢復建造
|
resumebuilding = [scarlet][[{0}][]恢復建造
|
||||||
wave = [accent]第{0}波
|
wave = [accent]第{0}波
|
||||||
wave.waiting = [lightgray]將於{0}秒後抵達
|
wave.waiting = [lightgray]將於{0}秒後抵達
|
||||||
wave.waveInProgress = 第[lightgray]波正在進行中
|
wave.waveInProgress = [lightgray]波次進行中
|
||||||
waiting = [lightgray]等待中...
|
waiting = [lightgray]等待中...
|
||||||
waiting.players = 等待玩家中...
|
waiting.players = 等待玩家中...
|
||||||
wave.enemies = [lightgray]剩下{0}個敵人
|
wave.enemies = [lightgray]剩下{0}個敵人
|
||||||
@@ -262,9 +271,9 @@ custom = 自訂
|
|||||||
builtin = 内建
|
builtin = 内建
|
||||||
map.delete.confirm = 確認要刪除地圖嗎?此操作無法撤回!
|
map.delete.confirm = 確認要刪除地圖嗎?此操作無法撤回!
|
||||||
map.random = [accent]隨機地圖
|
map.random = [accent]隨機地圖
|
||||||
map.nospawn = 這個地圖沒有核心!請在編輯器中添加一個[ROYAL]藍色[]的核心。
|
map.nospawn = 這個地圖沒有核心!請在編輯器中添加一個[accent]橘色[]的核心。
|
||||||
map.nospawn.pvp = 這個地圖沒有核心讓敵人重生!請在編輯器中添加一個[SCARLET]紅色[]的核心。
|
map.nospawn.pvp = 這個地圖沒有敵對核心讓玩家重生!請在編輯器中添加一個[SCARLET]不是橘色[]的核心。
|
||||||
map.nospawn.attack = 這個地圖沒有敵人核心讓可以攻擊!請在編輯器中添加一個[SCARLET]紅色[]的核心。
|
map.nospawn.attack = 這個地圖沒有敵人核心可以攻擊!請在編輯器中添加一個[SCARLET]紅色[]的核心。
|
||||||
map.invalid = 地圖載入錯誤:地圖可能已經損壞。
|
map.invalid = 地圖載入錯誤:地圖可能已經損壞。
|
||||||
workshop.update = 更新項目
|
workshop.update = 更新項目
|
||||||
workshop.error = 提取工作坊詳細信息時出錯: {0}
|
workshop.error = 提取工作坊詳細信息時出錯: {0}
|
||||||
@@ -278,6 +287,7 @@ publishing = [accent]發佈中...
|
|||||||
publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示!
|
publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示!
|
||||||
publish.error = 發佈項目時出錯: {0}
|
publish.error = 發佈項目時出錯: {0}
|
||||||
steam.error = Steam 服務初始化失敗.\n錯誤: {0}
|
steam.error = Steam 服務初始化失敗.\n錯誤: {0}
|
||||||
|
|
||||||
editor.brush = 粉刷
|
editor.brush = 粉刷
|
||||||
editor.openin = 在編輯器中開啟
|
editor.openin = 在編輯器中開啟
|
||||||
editor.oregen = 礦石生成
|
editor.oregen = 礦石生成
|
||||||
@@ -295,7 +305,7 @@ editor.newmap = 新地圖
|
|||||||
workshop = 工作坊
|
workshop = 工作坊
|
||||||
waves.title = 波次
|
waves.title = 波次
|
||||||
waves.remove = 移除
|
waves.remove = 移除
|
||||||
waves.never = 〈從來沒有〉
|
waves.never = 〈永遠〉
|
||||||
waves.every = 每
|
waves.every = 每
|
||||||
waves.waves = 波次
|
waves.waves = 波次
|
||||||
waves.perspawn = 每次生成
|
waves.perspawn = 每次生成
|
||||||
@@ -367,7 +377,7 @@ toolmode.eraseores = 清除礦物
|
|||||||
toolmode.eraseores.description = 僅清除礦物。
|
toolmode.eraseores.description = 僅清除礦物。
|
||||||
toolmode.fillteams = 填充團隊
|
toolmode.fillteams = 填充團隊
|
||||||
toolmode.fillteams.description = 填充團隊而不是方塊。
|
toolmode.fillteams.description = 填充團隊而不是方塊。
|
||||||
toolmode.drawteams = Draw Teams
|
toolmode.drawteams = 繪製團隊
|
||||||
toolmode.drawteams.description = 繪製團隊而不是方塊。
|
toolmode.drawteams.description = 繪製團隊而不是方塊。
|
||||||
|
|
||||||
filters.empty = [lightgray]沒有過濾器!使用下面的按鈕添加一個。
|
filters.empty = [lightgray]沒有過濾器!使用下面的按鈕添加一個。
|
||||||
@@ -494,6 +504,7 @@ settings.language = 語言
|
|||||||
settings.data = 遊戲數據
|
settings.data = 遊戲數據
|
||||||
settings.reset = 重設為預設設定
|
settings.reset = 重設為預設設定
|
||||||
settings.rebind = 重新綁定
|
settings.rebind = 重新綁定
|
||||||
|
settings.resetKey = 重設按鍵
|
||||||
settings.controls = 操作
|
settings.controls = 操作
|
||||||
settings.game = 遊戲
|
settings.game = 遊戲
|
||||||
settings.sound = 音效
|
settings.sound = 音效
|
||||||
@@ -528,7 +539,7 @@ blocks.powerconnections = 最大連接數
|
|||||||
blocks.poweruse = 能量使用
|
blocks.poweruse = 能量使用
|
||||||
blocks.powerdamage = 能量/傷害
|
blocks.powerdamage = 能量/傷害
|
||||||
blocks.itemcapacity = 物品容量
|
blocks.itemcapacity = 物品容量
|
||||||
blocks.basepowergeneration = 基本能量生產
|
blocks.basepowergeneration = 基礎能量生產
|
||||||
blocks.productiontime = 生產時間
|
blocks.productiontime = 生產時間
|
||||||
blocks.repairtime = 方塊完全修復時間
|
blocks.repairtime = 方塊完全修復時間
|
||||||
blocks.speedincrease = 速度提升
|
blocks.speedincrease = 速度提升
|
||||||
@@ -587,6 +598,8 @@ unit.persecond = /秒
|
|||||||
unit.timesspeed = ×速度
|
unit.timesspeed = ×速度
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = 物品
|
unit.items = 物品
|
||||||
|
unit.thousands = k
|
||||||
|
unit.millions = mil
|
||||||
category.general = 一般
|
category.general = 一般
|
||||||
category.power = 能量
|
category.power = 能量
|
||||||
category.liquids = 液體
|
category.liquids = 液體
|
||||||
@@ -594,12 +607,12 @@ category.items = 物品
|
|||||||
category.crafting = 需求
|
category.crafting = 需求
|
||||||
category.shooting = 射擊
|
category.shooting = 射擊
|
||||||
category.optional = 可選的強化
|
category.optional = 可選的強化
|
||||||
|
|
||||||
setting.landscape.name = 鎖定水平畫面
|
setting.landscape.name = 鎖定水平畫面
|
||||||
setting.shadows.name = 陰影
|
setting.shadows.name = 陰影
|
||||||
setting.blockreplace.name = 方塊建造建議
|
setting.blockreplace.name = 方塊建造建議
|
||||||
setting.linear.name = 線性過濾
|
setting.linear.name = 線性過濾
|
||||||
setting.hints.name = 提示
|
setting.hints.name = 提示
|
||||||
|
setting.buildautopause.name = 自動暫停建築
|
||||||
setting.animatedwater.name = 水動畫
|
setting.animatedwater.name = 水動畫
|
||||||
setting.animatedshields.name = 護盾動畫
|
setting.animatedshields.name = 護盾動畫
|
||||||
setting.antialias.name = 消除鋸齒[lightgray](需要重啟遊戲)[]
|
setting.antialias.name = 消除鋸齒[lightgray](需要重啟遊戲)[]
|
||||||
@@ -625,11 +638,14 @@ setting.conveyorpathfinding.name = 自動輸送帶放置規劃
|
|||||||
setting.sensitivity.name = 控制器靈敏度
|
setting.sensitivity.name = 控制器靈敏度
|
||||||
setting.saveinterval.name = 自動存檔間隔
|
setting.saveinterval.name = 自動存檔間隔
|
||||||
setting.seconds = {0}秒
|
setting.seconds = {0}秒
|
||||||
|
setting.blockselecttimeout.name = 跳過方塊建造時距
|
||||||
|
setting.milliseconds = {0}毫秒
|
||||||
setting.fullscreen.name = 全螢幕
|
setting.fullscreen.name = 全螢幕
|
||||||
setting.borderlesswindow.name = 無邊框窗口[lightgray](可能需要重啟遊戲)
|
setting.borderlesswindow.name = 無邊框窗口[lightgray](可能需要重啟遊戲)
|
||||||
setting.fps.name = 顯示FPS
|
setting.fps.name = 顯示FPS與Ping
|
||||||
|
setting.blockselectkeys.name = 顯示方塊選擇快捷鍵
|
||||||
setting.vsync.name = 垂直同步
|
setting.vsync.name = 垂直同步
|
||||||
setting.pixelate.name = 像素化[lightgray](可能降低性能)
|
setting.pixelate.name = 像素化[lightgray](會關閉動畫)
|
||||||
setting.minimap.name = 顯示小地圖
|
setting.minimap.name = 顯示小地圖
|
||||||
setting.position.name = 顯示玩家位置
|
setting.position.name = 顯示玩家位置
|
||||||
setting.musicvol.name = 音樂音量
|
setting.musicvol.name = 音樂音量
|
||||||
@@ -656,16 +672,36 @@ category.multiplayer.name = 多人
|
|||||||
command.attack = 攻擊
|
command.attack = 攻擊
|
||||||
command.rally = 集結
|
command.rally = 集結
|
||||||
command.retreat = 撤退
|
command.retreat = 撤退
|
||||||
keybind.clear_building.name = 清除建築物
|
placement.blockselectkeys = \n[lightgray]按鍵:[{0},
|
||||||
|
keybind.clear_building.name = 清除建築指令
|
||||||
keybind.press = 按一下按鍵...
|
keybind.press = 按一下按鍵...
|
||||||
keybind.press.axis = 按一下軸向或按鍵...
|
keybind.press.axis = 按一下軸向或按鍵...
|
||||||
keybind.screenshot.name = 地圖截圖
|
keybind.screenshot.name = 地圖截圖
|
||||||
|
keybind.toggle_power_lines.name = 顯示能量激光
|
||||||
keybind.move_x.name = 水平移動
|
keybind.move_x.name = 水平移動
|
||||||
keybind.move_y.name = 垂直移動
|
keybind.move_y.name = 垂直移動
|
||||||
|
keybind.mouse_move.name = 跟隨滑鼠
|
||||||
|
keybind.dash.name = 衝刺
|
||||||
keybind.schematic_select.name = 選擇區域
|
keybind.schematic_select.name = 選擇區域
|
||||||
keybind.schematic_menu.name = 藍圖目錄
|
keybind.schematic_menu.name = 藍圖目錄
|
||||||
keybind.schematic_flip_x.name = X軸翻轉
|
keybind.schematic_flip_x.name = X軸翻轉
|
||||||
keybind.schematic_flip_y.name = Y軸翻轉
|
keybind.schematic_flip_y.name = Y軸翻轉
|
||||||
|
keybind.category_prev.name = 前一個類別
|
||||||
|
keybind.category_next.name = 下一個類別
|
||||||
|
keybind.block_select_left.name = 選取方塊左
|
||||||
|
keybind.block_select_right.name = 選取方塊右
|
||||||
|
keybind.block_select_up.name = 選取方塊上
|
||||||
|
keybind.block_select_down.name = 選取方塊下
|
||||||
|
keybind.block_select_01.name = 類別/方塊選取 1
|
||||||
|
keybind.block_select_02.name = 類別/方塊選取 2
|
||||||
|
keybind.block_select_03.name = 類別/方塊選取 3
|
||||||
|
keybind.block_select_04.name = 類別/方塊選取 4
|
||||||
|
keybind.block_select_05.name = 類別/方塊選取 5
|
||||||
|
keybind.block_select_06.name = 類別/方塊選取 6
|
||||||
|
keybind.block_select_07.name = 類別/方塊選取 7
|
||||||
|
keybind.block_select_08.name = 類別/方塊選取 8
|
||||||
|
keybind.block_select_09.name = 類別/方塊選取 9
|
||||||
|
keybind.block_select_10.name = 類別/方塊選取 10
|
||||||
keybind.fullscreen.name = 全螢幕切換
|
keybind.fullscreen.name = 全螢幕切換
|
||||||
keybind.select.name = 選取
|
keybind.select.name = 選取
|
||||||
keybind.diagonal_placement.name = 對角線放置
|
keybind.diagonal_placement.name = 對角線放置
|
||||||
@@ -673,13 +709,11 @@ keybind.pick.name = 選擇方塊
|
|||||||
keybind.break_block.name = 移除方塊
|
keybind.break_block.name = 移除方塊
|
||||||
keybind.deselect.name = 取消選取
|
keybind.deselect.name = 取消選取
|
||||||
keybind.shoot.name = 射擊
|
keybind.shoot.name = 射擊
|
||||||
keybind.zoom_hold.name = 按住縮放
|
|
||||||
keybind.zoom.name = 縮放
|
keybind.zoom.name = 縮放
|
||||||
keybind.menu.name = 主選單
|
keybind.menu.name = 主選單
|
||||||
keybind.pause.name = 暫停遊戲
|
keybind.pause.name = 暫停遊戲
|
||||||
keybind.pause_building.name = 暫停/恢復建造
|
keybind.pause_building.name = 暫停/恢復建造
|
||||||
keybind.minimap.name = 小地圖
|
keybind.minimap.name = 小地圖
|
||||||
keybind.dash.name = 衝刺
|
|
||||||
keybind.chat.name = 聊天
|
keybind.chat.name = 聊天
|
||||||
keybind.player_list.name = 玩家列表
|
keybind.player_list.name = 玩家列表
|
||||||
keybind.console.name = 終端機
|
keybind.console.name = 終端機
|
||||||
@@ -693,14 +727,14 @@ keybind.drop_unit.name = 放下單位
|
|||||||
keybind.zoom_minimap.name = 縮放小地圖
|
keybind.zoom_minimap.name = 縮放小地圖
|
||||||
mode.help.title = 模式說明
|
mode.help.title = 模式說明
|
||||||
mode.survival.name = 生存
|
mode.survival.name = 生存
|
||||||
mode.survival.description = 一般模式。有限的資源與自動來襲的波次。
|
mode.survival.description = 一般模式。有限的資源與自動來襲的波次。\n[gray]地圖中需要敵人生成點。
|
||||||
mode.sandbox.name = 沙盒
|
mode.sandbox.name = 沙盒
|
||||||
mode.sandbox.description = 無限的資源,與不倒數計時的波次。
|
mode.sandbox.description = 無限的資源與不倒數計時的波次。
|
||||||
mode.editor.name = 編輯
|
mode.editor.name = 編輯
|
||||||
mode.pvp.name = 對戰
|
mode.pvp.name = 對戰
|
||||||
mode.pvp.description = 和其他玩家競爭、戰鬥。
|
mode.pvp.description = 和其他玩家競爭、戰鬥。\n[gray]地圖中需要至少兩個不同顏色的核心。
|
||||||
mode.attack.name = 進攻
|
mode.attack.name = 進攻
|
||||||
mode.attack.description = 沒有波次,目標是摧毀敵人的基地。
|
mode.attack.description = 目標是摧毀敵人的基地。\n[gray]地圖中需要有一個紅色核心。
|
||||||
mode.custom = 自訂規則
|
mode.custom = 自訂規則
|
||||||
|
|
||||||
rules.infiniteresources = 無限資源
|
rules.infiniteresources = 無限資源
|
||||||
@@ -711,11 +745,11 @@ rules.attack = 攻擊模式
|
|||||||
rules.enemyCheat = 電腦無限資源
|
rules.enemyCheat = 電腦無限資源
|
||||||
rules.unitdrops = 單位掉落物
|
rules.unitdrops = 單位掉落物
|
||||||
rules.unitbuildspeedmultiplier = 單位建設速度倍數
|
rules.unitbuildspeedmultiplier = 單位建設速度倍數
|
||||||
rules.unithealthmultiplier = 單位耐久度倍數
|
rules.unithealthmultiplier = 單位生命值倍數
|
||||||
rules.playerhealthmultiplier = 玩家耐久度倍數
|
rules.playerhealthmultiplier = 玩家生命值倍數
|
||||||
rules.playerdamagemultiplier = 玩家傷害倍數
|
rules.playerdamagemultiplier = 玩家傷害倍數
|
||||||
rules.unitdamagemultiplier = 單位傷害倍數
|
rules.unitdamagemultiplier = 單位傷害倍數
|
||||||
rules.enemycorebuildradius = 敵人核心無建設半徑︰[lightgray](格)
|
rules.enemycorebuildradius = 敵人核心禁止建設半徑︰[lightgray](格)
|
||||||
rules.respawntime = 重生時間︰[lightgray](秒)
|
rules.respawntime = 重生時間︰[lightgray](秒)
|
||||||
rules.wavespacing = 波次間距︰[lightgray](秒)
|
rules.wavespacing = 波次間距︰[lightgray](秒)
|
||||||
rules.buildcostmultiplier = 建設成本倍數
|
rules.buildcostmultiplier = 建設成本倍數
|
||||||
@@ -759,7 +793,6 @@ liquid.water.name = 水
|
|||||||
liquid.slag.name = 熔渣
|
liquid.slag.name = 熔渣
|
||||||
liquid.oil.name = 原油
|
liquid.oil.name = 原油
|
||||||
liquid.cryofluid.name = 冷凍液
|
liquid.cryofluid.name = 冷凍液
|
||||||
|
|
||||||
mech.alpha-mech.name = 阿爾法
|
mech.alpha-mech.name = 阿爾法
|
||||||
mech.alpha-mech.weapon = 重型機關槍
|
mech.alpha-mech.weapon = 重型機關槍
|
||||||
mech.alpha-mech.ability = 自修復
|
mech.alpha-mech.ability = 自修復
|
||||||
@@ -781,21 +814,23 @@ mech.trident-ship.name = 三叉戟
|
|||||||
mech.trident-ship.weapon = 轟炸艙
|
mech.trident-ship.weapon = 轟炸艙
|
||||||
mech.glaive-ship.name = 偃月刀
|
mech.glaive-ship.name = 偃月刀
|
||||||
mech.glaive-ship.weapon = 火焰機關槍
|
mech.glaive-ship.weapon = 火焰機關槍
|
||||||
item.explosiveness = [lightgray]爆炸性:{0}
|
item.corestorable = [lightgray]核心可儲存: {0}
|
||||||
item.flammability = [lightgray]易燃性:{0}
|
item.explosiveness = [lightgray]爆炸性:{0}%
|
||||||
item.radioactivity = [lightgray]放射性:{0}
|
item.flammability = [lightgray]易燃性:{0}%
|
||||||
unit.health = [lightgray]耐久度:{0}
|
item.radioactivity = [lightgray]放射性:{0}%
|
||||||
|
unit.health = [lightgray]生命值:{0}
|
||||||
unit.speed = [lightgray]速度:{0}
|
unit.speed = [lightgray]速度:{0}
|
||||||
mech.weapon = [lightgray]武器:{0}
|
mech.weapon = [lightgray]武器:{0}
|
||||||
mech.health = [lightgray]血量:{0}
|
mech.health = [lightgray]血量:{0}
|
||||||
mech.itemcapacity = [lightgray]物品容量:{0}
|
mech.itemcapacity = [lightgray]物品容量:{0}
|
||||||
mech.minespeed = [lightgray]採礦速度:{0}
|
mech.minespeed = [lightgray]採礦速度:{0}%
|
||||||
mech.minepower = [lightgray]採礦能力:{0}
|
mech.minepower = [lightgray]採礦能力:{0}
|
||||||
mech.ability = [lightgray]能力:{0}
|
mech.ability = [lightgray]能力:{0}
|
||||||
mech.buildspeed = [lightgray]建造速度: {0}%
|
mech.buildspeed = [lightgray]建造速度: {0}%
|
||||||
liquid.heatcapacity = [lightgray]熱容量:{0}
|
liquid.heatcapacity = [lightgray]熱容量:{0}
|
||||||
liquid.viscosity = [lightgray]粘性:{0}
|
liquid.viscosity = [lightgray]粘性:{0}
|
||||||
liquid.temperature = [lightgray]溫度:{0}
|
liquid.temperature = [lightgray]溫度:{0}
|
||||||
|
|
||||||
block.sand-boulder.name = 沙礫
|
block.sand-boulder.name = 沙礫
|
||||||
block.grass.name = 草
|
block.grass.name = 草
|
||||||
block.salt.name = 鹽
|
block.salt.name = 鹽
|
||||||
@@ -1010,13 +1045,13 @@ unit.fortress.name = 要塞
|
|||||||
unit.revenant.name = 復仇鬼
|
unit.revenant.name = 復仇鬼
|
||||||
unit.eruptor.name = 爆發者
|
unit.eruptor.name = 爆發者
|
||||||
unit.chaos-array.name = 混沌陣列
|
unit.chaos-array.name = 混沌陣列
|
||||||
unit.eradicator.name = 消除者
|
unit.eradicator.name = 殲滅者
|
||||||
unit.lich.name = 巫妖
|
unit.lich.name = 巫妖
|
||||||
unit.reaper.name = 收掠者
|
unit.reaper.name = 收掠者
|
||||||
tutorial.next = [lightgray]<按下以繼續>
|
tutorial.next = [lightgray]<按下以繼續>
|
||||||
tutorial.intro = 您已進入[scarlet] Mindustry 教學。[]\n使用[[WASD鍵]來移動.\n在滾動滾輪時[accent]按住 [[Ctrl][]來放大縮小畫面.\n從[accent]開採銅礦[]開始吧靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
|
tutorial.intro = 您已進入[scarlet] Mindustry 教學。[]\n使用[[WASD鍵]來移動.\n滾動滾輪來放大縮小畫面.\n從[accent]開採銅礦[]開始吧靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
|
||||||
tutorial.intro.mobile = 您已進入[scarlet] Mindustry 教學。[]\n滑動螢幕即可移動。\n[accent]用兩指捏[]來縮放畫面。\n從[accent]開採銅礦[]開始吧。靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
|
tutorial.intro.mobile = 您已進入[scarlet] Mindustry 教學。[]\n滑動螢幕即可移動。\n[accent]用兩指捏[]來縮放畫面。\n從[accent]開採銅礦[]開始吧。靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
|
||||||
tutorial.drill = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n在銅礦脈上放置一個鑽頭。
|
tutorial.drill = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n在銅礦脈上放置一個鑽頭。\n不論在哪個選單,您也可以用快速按下按鍵[accent][[2][]然後[accent][[1][]來選擇鑽頭。\n[accent]滑鼠右擊[]停止建造。
|
||||||
tutorial.drill.mobile = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n點選右下角的鑽頭選項\n選擇[accent]機械鑽頭[].\n通過點擊將其放置在銅礦上,然後按下下方的[accent]確認標誌[]確認您的選擇\n按下[accent] X 按鈕[] 取消放置.
|
tutorial.drill.mobile = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n點選右下角的鑽頭選項\n選擇[accent]機械鑽頭[].\n通過點擊將其放置在銅礦上,然後按下下方的[accent]確認標誌[]確認您的選擇\n按下[accent] X 按鈕[] 取消放置.
|
||||||
tutorial.blockinfo = 每個方塊都有不同的屬性。每個鑽頭只能開採特定的礦石。\n查看方塊的資訊和屬性,[accent]在建造目錄時按下"?"鈕。[]\n\n[accent]立即訪問機械鑽頭的屬性資料。[]
|
tutorial.blockinfo = 每個方塊都有不同的屬性。每個鑽頭只能開採特定的礦石。\n查看方塊的資訊和屬性,[accent]在建造目錄時按下"?"鈕。[]\n\n[accent]立即訪問機械鑽頭的屬性資料。[]
|
||||||
tutorial.conveyor = [accent]輸送帶[]能夠將物品運輸到核心。\n製作一條從鑽頭開始到核心的輸送帶。
|
tutorial.conveyor = [accent]輸送帶[]能夠將物品運輸到核心。\n製作一條從鑽頭開始到核心的輸送帶。
|
||||||
@@ -1036,8 +1071,8 @@ tutorial.launch = 一旦您達到特定的波數, 您就可以[accent] 發射
|
|||||||
item.copper.description = 最基本的結構材料。在各種類型的方塊中廣泛使用。
|
item.copper.description = 最基本的結構材料。在各種類型的方塊中廣泛使用。
|
||||||
item.lead.description = 一種基本的起始材料。被廣泛用於電子設備和液體運輸方塊。
|
item.lead.description = 一種基本的起始材料。被廣泛用於電子設備和液體運輸方塊。
|
||||||
item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和存儲。
|
item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和存儲。
|
||||||
item.graphite.description = 礦化的碳,用於彈藥和電氣絕緣。
|
item.graphite.description = 礦化的碳,用於彈藥和電氣元件。
|
||||||
item.sand.description = 一種常見的材料,廣泛用於冶煉,包括製作合金和助熔劑。
|
item.sand.description = 一種常見的材料,廣泛用於冶煉,包括製作合金和作為助熔劑。
|
||||||
item.coal.description = 遠在「播種」事件前就形成的植物化石。一種常見並容易獲得的燃料。
|
item.coal.description = 遠在「播種」事件前就形成的植物化石。一種常見並容易獲得的燃料。
|
||||||
item.titanium.description = 一種罕見的超輕金屬,被廣泛運用於運輸液體、鑽頭和飛行載具。
|
item.titanium.description = 一種罕見的超輕金屬,被廣泛運用於運輸液體、鑽頭和飛行載具。
|
||||||
item.thorium.description = 一種高密度的放射性金屬,用作結構支撐和核燃料。
|
item.thorium.description = 一種高密度的放射性金屬,用作結構支撐和核燃料。
|
||||||
@@ -1054,10 +1089,10 @@ liquid.slag.description = 各種不同類型的熔融金屬混合在一起的液
|
|||||||
liquid.oil.description = 用於進階材料製造的液體。可以轉化為煤炭作為燃料或噴灑向敵方單位後點燃作為武器。
|
liquid.oil.description = 用於進階材料製造的液體。可以轉化為煤炭作為燃料或噴灑向敵方單位後點燃作為武器。
|
||||||
liquid.cryofluid.description = 一種安定,無腐蝕性的液體,用水及鈦混合成。具有很高的比熱。廣泛的用作冷卻劑。
|
liquid.cryofluid.description = 一種安定,無腐蝕性的液體,用水及鈦混合成。具有很高的比熱。廣泛的用作冷卻劑。
|
||||||
mech.alpha-mech.description = 標準的控制機甲。改良自匕首機甲,加強了裝甲及建造能力。
|
mech.alpha-mech.description = 標準的控制機甲。改良自匕首機甲,加強了裝甲及建造能力。
|
||||||
mech.delta-mech.description = 一種快速、輕裝甲的機甲,用於打帶跑的攻擊。對結構造成的傷害很小,但可以用弧形閃電武器很快殺死大量敵方單位。
|
mech.delta-mech.description = 一種快速、輕裝甲的機甲,用於打帶跑的攻擊。對結構體造成的傷害很小,但可以用弧形閃電武器很快殺死大量敵方單位。
|
||||||
mech.tau-mech.description = 支援機甲。射擊友方方塊以修復它們。可以使用它的修復能力治療一定範圍內的友軍。
|
mech.tau-mech.description = 支援機甲。射擊友方方塊以修復它們。可以使用它的修復能力治療一定範圍內的友軍。
|
||||||
mech.omega-mech.description = 一種笨重、重裝甲的機甲,用於前線突擊。它的裝甲能力可以阻擋高達90%的傷害。
|
mech.omega-mech.description = 一種笨重、重裝甲的機甲,用於前線突擊。
|
||||||
mech.dart-ship.description = 標準的控制飛船。快速、輕便,但攻擊能力低、採礦速度慢。
|
mech.dart-ship.description = 標準的控制飛船。採礦速度快。相當快速、輕便,但攻擊能力低落。
|
||||||
mech.javelin-ship.description = 一種打帶跑的突襲艇。雖然最初很慢,但它可以加速到很快的速度,並飛過敵人的前哨站,利用其閃電能力和導彈造成大量的傷害。
|
mech.javelin-ship.description = 一種打帶跑的突襲艇。雖然最初很慢,但它可以加速到很快的速度,並飛過敵人的前哨站,利用其閃電能力和導彈造成大量的傷害。
|
||||||
mech.trident-ship.description = 一種重型轟炸機。用以摧毀敵方建築。有相當的裝甲。
|
mech.trident-ship.description = 一種重型轟炸機。用以摧毀敵方建築。有相當的裝甲。
|
||||||
mech.glaive-ship.description = 一種大型、配有良好裝甲的砲艇。配備燃燒機關槍。高機動性。
|
mech.glaive-ship.description = 一種大型、配有良好裝甲的砲艇。配備燃燒機關槍。高機動性。
|
||||||
|
|||||||
@@ -83,3 +83,4 @@ amrsoll
|
|||||||
ねらひかだ
|
ねらひかだ
|
||||||
Draco
|
Draco
|
||||||
Quezler
|
Quezler
|
||||||
|
Alicila
|
||||||
|
|||||||
20
core/assets/scripts/base.js
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
const log = function(context, obj){
|
||||||
|
Vars.mods.getScripts().log(context, obj ? String(obj) : "null")
|
||||||
|
}
|
||||||
|
|
||||||
|
const extendContent = function(classType, name, params){
|
||||||
|
return new JavaAdapter(classType, params, name)
|
||||||
|
}
|
||||||
|
|
||||||
|
const extend = function(classType, params){
|
||||||
|
return new JavaAdapter(classType, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
const run = method => new java.lang.Runnable(){run: method}
|
||||||
|
const boolf = method => new Boolf(){get: method}
|
||||||
|
const boolp = method => new Boolp(){get: method}
|
||||||
|
const cons = method => new Cons(){get: method}
|
||||||
|
const prov = method => new Prov(){get: method}
|
||||||
|
const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer}))
|
||||||
|
Call = Packages.mindustry.gen.Call
|
||||||
|
const Calls = Call //backwards compat
|
||||||
80
core/assets/scripts/global.js
Executable file
@@ -0,0 +1,80 @@
|
|||||||
|
//Generated class. Do not modify.
|
||||||
|
|
||||||
|
const log = function(context, obj){
|
||||||
|
Vars.mods.getScripts().log(context, obj ? String(obj) : "null")
|
||||||
|
}
|
||||||
|
|
||||||
|
const extendContent = function(classType, name, params){
|
||||||
|
return new JavaAdapter(classType, params, name)
|
||||||
|
}
|
||||||
|
|
||||||
|
const extend = function(classType, params){
|
||||||
|
return new JavaAdapter(classType, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
const run = method => new java.lang.Runnable(){run: method}
|
||||||
|
const boolf = method => new Boolf(){get: method}
|
||||||
|
const boolp = method => new Boolp(){get: method}
|
||||||
|
const cons = method => new Cons(){get: method}
|
||||||
|
const prov = method => new Prov(){get: method}
|
||||||
|
const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer}))
|
||||||
|
Call = Packages.mindustry.gen.Call
|
||||||
|
const Calls = Call //backwards compat
|
||||||
|
importPackage(Packages.arc)
|
||||||
|
importPackage(Packages.arc.func)
|
||||||
|
importPackage(Packages.arc.graphics)
|
||||||
|
importPackage(Packages.arc.graphics.g2d)
|
||||||
|
importPackage(Packages.arc.math)
|
||||||
|
importPackage(Packages.arc.math.geom)
|
||||||
|
importPackage(Packages.arc.scene)
|
||||||
|
importPackage(Packages.arc.scene.actions)
|
||||||
|
importPackage(Packages.arc.scene.event)
|
||||||
|
importPackage(Packages.arc.scene.style)
|
||||||
|
importPackage(Packages.arc.scene.ui)
|
||||||
|
importPackage(Packages.arc.scene.ui.layout)
|
||||||
|
importPackage(Packages.arc.scene.utils)
|
||||||
|
importPackage(Packages.arc.struct)
|
||||||
|
importPackage(Packages.arc.util)
|
||||||
|
importPackage(Packages.mindustry)
|
||||||
|
importPackage(Packages.mindustry.ai)
|
||||||
|
importPackage(Packages.mindustry.content)
|
||||||
|
importPackage(Packages.mindustry.core)
|
||||||
|
importPackage(Packages.mindustry.ctype)
|
||||||
|
importPackage(Packages.mindustry.editor)
|
||||||
|
importPackage(Packages.mindustry.entities)
|
||||||
|
importPackage(Packages.mindustry.entities.bullet)
|
||||||
|
importPackage(Packages.mindustry.entities.effect)
|
||||||
|
importPackage(Packages.mindustry.entities.traits)
|
||||||
|
importPackage(Packages.mindustry.entities.type)
|
||||||
|
importPackage(Packages.mindustry.entities.type.base)
|
||||||
|
importPackage(Packages.mindustry.entities.units)
|
||||||
|
importPackage(Packages.mindustry.game)
|
||||||
|
importPackage(Packages.mindustry.gen)
|
||||||
|
importPackage(Packages.mindustry.graphics)
|
||||||
|
importPackage(Packages.mindustry.input)
|
||||||
|
importPackage(Packages.mindustry.maps)
|
||||||
|
importPackage(Packages.mindustry.maps.filters)
|
||||||
|
importPackage(Packages.mindustry.maps.generators)
|
||||||
|
importPackage(Packages.mindustry.maps.zonegen)
|
||||||
|
importPackage(Packages.mindustry.type)
|
||||||
|
importPackage(Packages.mindustry.ui)
|
||||||
|
importPackage(Packages.mindustry.ui.dialogs)
|
||||||
|
importPackage(Packages.mindustry.ui.fragments)
|
||||||
|
importPackage(Packages.mindustry.ui.layout)
|
||||||
|
importPackage(Packages.mindustry.world)
|
||||||
|
importPackage(Packages.mindustry.world.blocks)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.defense)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.defense.turrets)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.distribution)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.liquid)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.logic)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.power)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.production)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.sandbox)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.storage)
|
||||||
|
importPackage(Packages.mindustry.world.blocks.units)
|
||||||
|
importPackage(Packages.mindustry.world.consumers)
|
||||||
|
importPackage(Packages.mindustry.world.meta)
|
||||||
|
importPackage(Packages.mindustry.world.meta.values)
|
||||||
|
importPackage(Packages.mindustry.world.modules)
|
||||||
|
importPackage(Packages.mindustry.world.producers)
|
||||||
10
core/assets/scripts/wrapper.js
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
modName = "$MOD_NAME$"
|
||||||
|
|
||||||
|
!function(){
|
||||||
|
|
||||||
|
const scriptName = "$SCRIPT_NAME$"
|
||||||
|
const print = text => log(scriptName, text);
|
||||||
|
$CODE$
|
||||||
|
|
||||||
|
}();
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 957 KiB After Width: | Height: | Size: 957 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 332 KiB After Width: | Height: | Size: 332 KiB |
@@ -1,26 +0,0 @@
|
|||||||
package io.anuke.mindustry.content;
|
|
||||||
|
|
||||||
import io.anuke.mindustry.ctype.*;
|
|
||||||
import io.anuke.mindustry.game.*;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
public class Loadouts implements ContentList{
|
|
||||||
public static Schematic
|
|
||||||
basicShard,
|
|
||||||
advancedShard,
|
|
||||||
basicFoundation,
|
|
||||||
basicNucleus;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void load(){
|
|
||||||
try{
|
|
||||||
basicShard = Schematics.readBase64("bXNjaAB4nD2K2wqAIBiD5ymibnoRn6YnEP1BwUMoBL19FuJ2sbFvUFgYZDaJsLeQrkinN9UJHImsNzlYE7WrIUastuSbnlKx2VJJt+8IQGGKdfO/8J5yrGJSMegLg+YUIA==");
|
|
||||||
advancedShard = Schematics.readBase64("bXNjaAB4nD2LjQqAIAyET7OMIOhFfJqeYMxBgSkYCL199gu33fFtB4tOwUTaBCP5QpHFzwtl32DahBeKK1NwPq8hoOcUixwpY+CUxe3XIwBbB/pa6tadVCUP02hgHvp5vZq/0b7pBHPYFOQ=");
|
|
||||||
basicFoundation = Schematics.readBase64("bXNjaAB4nD1OSQ6DMBBzFhVu8BG+0X8MQyoiJTNSukj8nlCi2Adbtg/GA4OBF8oB00rvyE/9ykafqOIw58A7SWRKy1ZiShhZ5RcOLZhYS1hefQ1gRIeptH9jq/qW2lvc1d2tgWsOfVX/tOwE86AYBA==");
|
|
||||||
basicNucleus = Schematics.readBase64("bXNjaAB4nD2MUQqAIBBEJy0s6qOLdJXuYNtCgikYBd2+LNmdj308hkGHtkId7M4YFns4mk/yfB4a48602eDI+mlNznu0FMPFd0wYKCaewl8F0EOueqM+yKSLVfJrNKWnSw/FZGzEGXFG9sy/px4gEBW1");
|
|
||||||
}catch(IOException e){
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
package io.anuke.mindustry.content;
|
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
|
||||||
import io.anuke.arc.math.Mathf;
|
|
||||||
import io.anuke.mindustry.entities.Effects;
|
|
||||||
import io.anuke.mindustry.ctype.ContentList;
|
|
||||||
import io.anuke.mindustry.game.EventType.*;
|
|
||||||
import io.anuke.mindustry.type.StatusEffect;
|
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.waveTeam;
|
|
||||||
|
|
||||||
public class StatusEffects implements ContentList{
|
|
||||||
public static StatusEffect none, burning, freezing, wet, melting, tarred, overdrive, shielded, shocked, corroded, boss;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void load(){
|
|
||||||
|
|
||||||
none = new StatusEffect();
|
|
||||||
|
|
||||||
burning = new StatusEffect(){{
|
|
||||||
damage = 0.06f;
|
|
||||||
effect = Fx.burning;
|
|
||||||
|
|
||||||
opposite(() -> wet, () -> freezing);
|
|
||||||
trans(() -> tarred, ((unit, time, newTime, result) -> {
|
|
||||||
unit.damage(1f);
|
|
||||||
Effects.effect(Fx.burning, unit.x + Mathf.range(unit.getSize() / 2f), unit.y + Mathf.range(unit.getSize() / 2f));
|
|
||||||
result.set(this, Math.min(time + newTime, 300f));
|
|
||||||
}));
|
|
||||||
}};
|
|
||||||
|
|
||||||
freezing = new StatusEffect(){{
|
|
||||||
speedMultiplier = 0.6f;
|
|
||||||
armorMultiplier = 0.8f;
|
|
||||||
effect = Fx.freezing;
|
|
||||||
|
|
||||||
opposite(() -> melting, () -> burning);
|
|
||||||
}};
|
|
||||||
|
|
||||||
wet = new StatusEffect(){{
|
|
||||||
speedMultiplier = 0.9f;
|
|
||||||
effect = Fx.wet;
|
|
||||||
|
|
||||||
trans(() -> shocked, ((unit, time, newTime, result) -> {
|
|
||||||
unit.damage(20f);
|
|
||||||
if(unit.getTeam() == waveTeam){
|
|
||||||
Events.fire(Trigger.shock);
|
|
||||||
}
|
|
||||||
result.set(this, time);
|
|
||||||
}));
|
|
||||||
opposite(() -> burning);
|
|
||||||
}};
|
|
||||||
|
|
||||||
melting = new StatusEffect(){{
|
|
||||||
speedMultiplier = 0.8f;
|
|
||||||
armorMultiplier = 0.8f;
|
|
||||||
damage = 0.3f;
|
|
||||||
effect = Fx.melting;
|
|
||||||
|
|
||||||
trans(() -> tarred, ((unit, time, newTime, result) -> result.set(this, Math.min(time + newTime / 2f, 140f))));
|
|
||||||
opposite(() -> wet, () -> freezing);
|
|
||||||
}};
|
|
||||||
|
|
||||||
tarred = new StatusEffect(){{
|
|
||||||
speedMultiplier = 0.6f;
|
|
||||||
effect = Fx.oily;
|
|
||||||
|
|
||||||
trans(() -> melting, ((unit, time, newTime, result) -> result.set(burning, newTime + time)));
|
|
||||||
trans(() -> burning, ((unit, time, newTime, result) -> result.set(burning, newTime + time)));
|
|
||||||
}};
|
|
||||||
|
|
||||||
overdrive = new StatusEffect(){{
|
|
||||||
armorMultiplier = 0.95f;
|
|
||||||
speedMultiplier = 1.15f;
|
|
||||||
damageMultiplier = 1.4f;
|
|
||||||
damage = -0.01f;
|
|
||||||
effect = Fx.overdriven;
|
|
||||||
}};
|
|
||||||
|
|
||||||
shielded = new StatusEffect(){{
|
|
||||||
armorMultiplier = 3f;
|
|
||||||
}};
|
|
||||||
|
|
||||||
boss = new StatusEffect(){{
|
|
||||||
armorMultiplier = 3f;
|
|
||||||
damageMultiplier = 3f;
|
|
||||||
speedMultiplier = 1.1f;
|
|
||||||
}};
|
|
||||||
|
|
||||||
shocked = new StatusEffect();
|
|
||||||
|
|
||||||
//no effects, just small amounts of damage.
|
|
||||||
corroded = new StatusEffect(){{
|
|
||||||
damage = 0.1f;
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
package io.anuke.mindustry.core;
|
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
|
||||||
import io.anuke.arc.Files.*;
|
|
||||||
import io.anuke.arc.collection.*;
|
|
||||||
import io.anuke.arc.files.*;
|
|
||||||
import io.anuke.arc.util.*;
|
|
||||||
import io.anuke.arc.util.io.*;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
|
|
||||||
public class Version{
|
|
||||||
/** Build type. 'official' for official releases; 'custom' or 'bleeding edge' are also used. */
|
|
||||||
public static String type;
|
|
||||||
/** Build modifier, e.g. 'alpha' or 'release' */
|
|
||||||
public static String modifier;
|
|
||||||
/** Number specifying the major version, e.g. '4' */
|
|
||||||
public static int number;
|
|
||||||
/** Build number, e.g. '43'. set to '-1' for custom builds. */
|
|
||||||
public static int build = 0;
|
|
||||||
/** Revision number. Used for hotfixes. Does not affect server compatibility. */
|
|
||||||
public static int revision = 0;
|
|
||||||
/** Whether version loading is enabled. */
|
|
||||||
public static boolean enabled = true;
|
|
||||||
|
|
||||||
public static void init(){
|
|
||||||
if(!enabled) return;
|
|
||||||
|
|
||||||
try{
|
|
||||||
FileHandle file = OS.isAndroid || OS.isIos ? Core.files.internal("version.properties") : new FileHandle("version.properties", FileType.Internal);
|
|
||||||
|
|
||||||
ObjectMap<String, String> map = new ObjectMap<>();
|
|
||||||
PropertiesUtils.load(map, file.reader());
|
|
||||||
|
|
||||||
type = map.get("type");
|
|
||||||
number = Integer.parseInt(map.get("number", "4"));
|
|
||||||
modifier = map.get("modifier");
|
|
||||||
if(map.get("build").contains(".")){
|
|
||||||
String[] split = map.get("build").split("\\.");
|
|
||||||
try{
|
|
||||||
build = Integer.parseInt(split[0]);
|
|
||||||
revision = Integer.parseInt(split[1]);
|
|
||||||
}catch(Throwable e){
|
|
||||||
e.printStackTrace();
|
|
||||||
build = -1;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
build = Strings.canParseInt(map.get("build")) ? Integer.parseInt(map.get("build")) : -1;
|
|
||||||
}
|
|
||||||
}catch(IOException e){
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
package io.anuke.mindustry.ctype;
|
|
||||||
|
|
||||||
import io.anuke.arc.files.*;
|
|
||||||
import io.anuke.arc.util.ArcAnnotate.*;
|
|
||||||
import io.anuke.mindustry.*;
|
|
||||||
import io.anuke.mindustry.mod.Mods.*;
|
|
||||||
import io.anuke.mindustry.type.*;
|
|
||||||
|
|
||||||
|
|
||||||
/** Base class for a content type that is loaded in {@link io.anuke.mindustry.core.ContentLoader}. */
|
|
||||||
public abstract class Content implements Comparable<Content>{
|
|
||||||
public final short id;
|
|
||||||
/** The mod that loaded this piece of content. */
|
|
||||||
public @Nullable LoadedMod mod;
|
|
||||||
/** File that this content was loaded from. */
|
|
||||||
public @Nullable FileHandle sourceFile;
|
|
||||||
|
|
||||||
public Content(){
|
|
||||||
this.id = (short)Vars.content.getBy(getContentType()).size;
|
|
||||||
Vars.content.handleContent(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the type name of this piece of content.
|
|
||||||
* This should return the same value for all instances of this content type.
|
|
||||||
*/
|
|
||||||
public abstract ContentType getContentType();
|
|
||||||
|
|
||||||
/** Called after all content and modules are created. Do not use to load regions or texture data! */
|
|
||||||
public void init(){
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called after all content is created, only on non-headless versions.
|
|
||||||
* Use for loading regions or other image data.
|
|
||||||
*/
|
|
||||||
public void load(){
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compareTo(Content c){
|
|
||||||
return Integer.compare(id, c.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString(){
|
|
||||||
return getContentType().name() + "#" + id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package io.anuke.mindustry.ctype;
|
|
||||||
|
|
||||||
/** Interface for a list of content to be loaded in {@link io.anuke.mindustry.core.ContentLoader}. */
|
|
||||||
public interface ContentList{
|
|
||||||
/** This method should create all the content. */
|
|
||||||
void load();
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.traits;
|
|
||||||
|
|
||||||
import io.anuke.mindustry.game.Team;
|
|
||||||
|
|
||||||
public interface TeamTrait extends Entity{
|
|
||||||
Team getTeam();
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type;
|
|
||||||
|
|
||||||
import io.anuke.arc.math.geom.Vector2;
|
|
||||||
import io.anuke.mindustry.entities.traits.SolidTrait;
|
|
||||||
|
|
||||||
public abstract class SolidEntity extends BaseEntity implements SolidTrait{
|
|
||||||
protected transient Vector2 velocity = new Vector2(0f, 0.0001f);
|
|
||||||
private transient Vector2 lastPosition = new Vector2();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vector2 lastPosition(){
|
|
||||||
return lastPosition;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vector2 velocity(){
|
|
||||||
return velocity;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Crawler extends GroundUnit{
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Dagger extends GroundUnit{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Draug extends MinerDrone{
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Eruptor extends GroundUnit{
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Fortress extends GroundUnit{
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Ghoul extends FlyingUnit{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Phantom extends BuilderDrone{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Spirit extends RepairDrone{
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Titan extends GroundUnit{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package io.anuke.mindustry.entities.type.base;
|
|
||||||
|
|
||||||
public class Wraith extends FlyingUnit{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
package io.anuke.mindustry.game;
|
|
||||||
|
|
||||||
import io.anuke.arc.Core;
|
|
||||||
import io.anuke.arc.graphics.Color;
|
|
||||||
import io.anuke.mindustry.graphics.*;
|
|
||||||
|
|
||||||
public enum Team{
|
|
||||||
derelict(Color.valueOf("4d4e58")),
|
|
||||||
sharded(Pal.accent),
|
|
||||||
crux(Color.valueOf("e82d2d")),
|
|
||||||
green(Color.valueOf("4dd98b")),
|
|
||||||
purple(Color.valueOf("9a4bdf")),
|
|
||||||
blue(Color.royal.cpy());
|
|
||||||
|
|
||||||
public final static Team[] all = values();
|
|
||||||
public final Color color;
|
|
||||||
public final int intColor;
|
|
||||||
|
|
||||||
Team(Color color){
|
|
||||||
this.color = color;
|
|
||||||
intColor = Color.rgba8888(color);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String localized(){
|
|
||||||
return Core.bundle.get("team." + name() + ".name");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
package io.anuke.mindustry.game;
|
|
||||||
|
|
||||||
import io.anuke.arc.collection.*;
|
|
||||||
import io.anuke.mindustry.*;
|
|
||||||
import io.anuke.mindustry.world.*;
|
|
||||||
|
|
||||||
/** Class for various team-based utilities. */
|
|
||||||
public class Teams{
|
|
||||||
private TeamData[] map = new TeamData[Team.all.length];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register a team.
|
|
||||||
* @param team The team type enum.
|
|
||||||
* @param enemies The array of enemies of this team. Any team not in this array is considered neutral.
|
|
||||||
*/
|
|
||||||
public void add(Team team, Team... enemies){
|
|
||||||
map[team.ordinal()] = new TeamData(team, EnumSet.of(enemies));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns team data by type. */
|
|
||||||
public TeamData get(Team team){
|
|
||||||
if(map[team.ordinal()] == null){
|
|
||||||
add(team, Array.with(Team.all).select(t -> t != team).toArray(Team.class));
|
|
||||||
}
|
|
||||||
return map[team.ordinal()];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns whether a team is active, e.g. whether it has any cores remaining. */
|
|
||||||
public boolean isActive(Team team){
|
|
||||||
//the enemy wave team is always active
|
|
||||||
return team == Vars.waveTeam || get(team).cores.size > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns a set of all teams that are enemies of this team. */
|
|
||||||
public EnumSet<Team> enemiesOf(Team team){
|
|
||||||
return get(team).enemies;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns whether {@param other} is an enemy of {@param #team}. */
|
|
||||||
public boolean areEnemies(Team team, Team other){
|
|
||||||
return enemiesOf(team).contains(other);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Allocates a new array with the active teams.
|
|
||||||
* Never call in the main game loop.*/
|
|
||||||
public Array<TeamData> getActive(){
|
|
||||||
return Array.select(map, t -> t != null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class TeamData{
|
|
||||||
public final ObjectSet<Tile> cores = new ObjectSet<>();
|
|
||||||
public final EnumSet<Team> enemies;
|
|
||||||
public final Team team;
|
|
||||||
public Queue<BrokenBlock> brokenBlocks = new Queue<>();
|
|
||||||
|
|
||||||
public TeamData(Team team, EnumSet<Team> enemies){
|
|
||||||
this.team = team;
|
|
||||||
this.enemies = enemies;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Represents a block made by this team that was destroyed somewhere on the map.
|
|
||||||
* This does not include deconstructed blocks.*/
|
|
||||||
public static class BrokenBlock{
|
|
||||||
public final short x, y, rotation, block;
|
|
||||||
public final int config;
|
|
||||||
|
|
||||||
public BrokenBlock(short x, short y, short rotation, short block, int config){
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
this.rotation = rotation;
|
|
||||||
this.block = block;
|
|
||||||
this.config = config;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package io.anuke.mindustry.input;
|
|
||||||
|
|
||||||
enum PlaceMode{
|
|
||||||
none, breaking, placing, schematicSelect
|
|
||||||
}
|
|
||||||
@@ -1,214 +0,0 @@
|
|||||||
package io.anuke.mindustry.io;
|
|
||||||
|
|
||||||
import io.anuke.arc.collection.*;
|
|
||||||
import io.anuke.arc.files.*;
|
|
||||||
import io.anuke.arc.graphics.*;
|
|
||||||
import io.anuke.arc.util.*;
|
|
||||||
import io.anuke.arc.util.serialization.*;
|
|
||||||
import io.anuke.mindustry.content.*;
|
|
||||||
import io.anuke.mindustry.game.*;
|
|
||||||
import io.anuke.mindustry.io.MapIO.*;
|
|
||||||
import io.anuke.mindustry.maps.*;
|
|
||||||
import io.anuke.mindustry.type.*;
|
|
||||||
import io.anuke.mindustry.world.*;
|
|
||||||
import io.anuke.mindustry.world.LegacyColorMapper.*;
|
|
||||||
import io.anuke.mindustry.world.blocks.*;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.zip.*;
|
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
|
||||||
|
|
||||||
/** Map IO for the "old" .mmap format.
|
|
||||||
* Differentiate between legacy maps and new maps by checking the extension (or the header).*/
|
|
||||||
public class LegacyMapIO{
|
|
||||||
private static final ObjectMap<String, String> fallback = ObjectMap.of("alpha-dart-mech-pad", "dart-mech-pad");
|
|
||||||
private static final Json json = new Json();
|
|
||||||
|
|
||||||
/* Convert a map from the old format to the new format. */
|
|
||||||
public static void convertMap(FileHandle in, FileHandle out) throws IOException{
|
|
||||||
Map map = readMap(in, true);
|
|
||||||
|
|
||||||
String waves = map.tags.get("waves", "[]");
|
|
||||||
Array<SpawnGroup> groups = new Array<>(json.fromJson(SpawnGroup[].class, waves));
|
|
||||||
|
|
||||||
Tile[][] tiles = world.createTiles(map.width, map.height);
|
|
||||||
for(int x = 0; x < map.width; x++){
|
|
||||||
for(int y = 0; y < map.height; y++){
|
|
||||||
tiles[x][y] = new CachedTile();
|
|
||||||
tiles[x][y].x = (short)x;
|
|
||||||
tiles[x][y].y = (short)y;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
state.rules.spawns = groups;
|
|
||||||
readTiles(map, tiles);
|
|
||||||
MapIO.writeMap(out, map);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Map readMap(FileHandle file, boolean custom) throws IOException{
|
|
||||||
try(DataInputStream stream = new DataInputStream(file.read(1024))){
|
|
||||||
StringMap tags = new StringMap();
|
|
||||||
|
|
||||||
//meta is uncompressed
|
|
||||||
int version = stream.readInt();
|
|
||||||
if(version != 1){
|
|
||||||
throw new IOException("Outdated legacy map format");
|
|
||||||
}
|
|
||||||
int build = stream.readInt();
|
|
||||||
short width = stream.readShort(), height = stream.readShort();
|
|
||||||
byte tagAmount = stream.readByte();
|
|
||||||
|
|
||||||
for(int i = 0; i < tagAmount; i++){
|
|
||||||
String name = stream.readUTF();
|
|
||||||
String value = stream.readUTF();
|
|
||||||
tags.put(name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Map(file, width, height, tags, custom, version, build);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void readTiles(Map map, Tile[][] tiles) throws IOException{
|
|
||||||
readTiles(map, (x, y) -> tiles[x][y]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void readTiles(Map map, TileProvider tiles) throws IOException{
|
|
||||||
readTiles(map.file, map.width, map.height, tiles);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void readTiles(FileHandle file, int width, int height, Tile[][] tiles) throws IOException{
|
|
||||||
readTiles(file, width, height, (x, y) -> tiles[x][y]);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void readTiles(FileHandle file, int width, int height, TileProvider tiles) throws IOException{
|
|
||||||
try(BufferedInputStream input = file.read(bufferSize)){
|
|
||||||
|
|
||||||
//read map
|
|
||||||
{
|
|
||||||
DataInputStream stream = new DataInputStream(input);
|
|
||||||
|
|
||||||
stream.readInt(); //version
|
|
||||||
stream.readInt(); //build
|
|
||||||
stream.readInt(); //width + height
|
|
||||||
byte tagAmount = stream.readByte();
|
|
||||||
|
|
||||||
for(int i = 0; i < tagAmount; i++){
|
|
||||||
stream.readUTF(); //key
|
|
||||||
stream.readUTF(); //val
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try(DataInputStream stream = new DataInputStream(new InflaterInputStream(input))){
|
|
||||||
|
|
||||||
try{
|
|
||||||
byte mapped = stream.readByte();
|
|
||||||
IntMap<Block> idmap = new IntMap<>();
|
|
||||||
IntMap<String> namemap = new IntMap<>();
|
|
||||||
|
|
||||||
for(int i = 0; i < mapped; i++){
|
|
||||||
byte type = stream.readByte();
|
|
||||||
short total = stream.readShort();
|
|
||||||
|
|
||||||
for(int j = 0; j < total; j++){
|
|
||||||
String name = stream.readUTF();
|
|
||||||
if(type == 1){
|
|
||||||
Block res = content.getByName(ContentType.block, fallback.get(name, name));
|
|
||||||
idmap.put(j, res == null ? Blocks.air : res);
|
|
||||||
namemap.put(j, fallback.get(name, name));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//read floor and create tiles first
|
|
||||||
for(int i = 0; i < width * height; i++){
|
|
||||||
int x = i % width, y = i / width;
|
|
||||||
int floorid = stream.readUnsignedByte();
|
|
||||||
int oreid = stream.readUnsignedByte();
|
|
||||||
int consecutives = stream.readUnsignedByte();
|
|
||||||
|
|
||||||
Tile tile = tiles.get(x, y);
|
|
||||||
tile.setFloor((Floor)idmap.get(floorid));
|
|
||||||
tile.setOverlay(idmap.get(oreid));
|
|
||||||
|
|
||||||
for(int j = i + 1; j < i + 1 + consecutives; j++){
|
|
||||||
int newx = j % width, newy = j / width;
|
|
||||||
Tile newTile = tiles.get(newx, newy);
|
|
||||||
newTile.setFloor((Floor)idmap.get(floorid));
|
|
||||||
newTile.setOverlay(idmap.get(oreid));
|
|
||||||
}
|
|
||||||
|
|
||||||
i += consecutives;
|
|
||||||
}
|
|
||||||
|
|
||||||
//read blocks
|
|
||||||
for(int i = 0; i < width * height; i++){
|
|
||||||
int x = i % width, y = i / width;
|
|
||||||
int id = stream.readUnsignedByte();
|
|
||||||
Block block = idmap.get(id);
|
|
||||||
if(block == null) block = Blocks.air;
|
|
||||||
|
|
||||||
Tile tile = tiles.get(x, y);
|
|
||||||
//the spawn block is saved in the block tile layer in older maps, shift it to the overlay
|
|
||||||
if(block != Blocks.spawn){
|
|
||||||
tile.setBlock(block);
|
|
||||||
}else{
|
|
||||||
tile.setOverlay(block);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(namemap.get(id, "").equals("part")){
|
|
||||||
stream.readByte(); //link
|
|
||||||
}else if(tile.entity != null){
|
|
||||||
byte tr = stream.readByte();
|
|
||||||
stream.readShort(); //read health (which is actually irrelevant)
|
|
||||||
|
|
||||||
byte team = Pack.leftByte(tr);
|
|
||||||
byte rotation = Pack.rightByte(tr);
|
|
||||||
|
|
||||||
tile.setTeam(Team.all[team]);
|
|
||||||
tile.entity.health = tile.block().health;
|
|
||||||
tile.rotation(rotation);
|
|
||||||
|
|
||||||
if(tile.block() == Blocks.liquidSource || tile.block() == Blocks.unloader || tile.block() == Blocks.sorter){
|
|
||||||
stream.readByte(); //these blocks have an extra config byte, read it
|
|
||||||
}
|
|
||||||
}else{ //no entity/part, read consecutives
|
|
||||||
int consecutives = stream.readUnsignedByte();
|
|
||||||
|
|
||||||
for(int j = i + 1; j < i + 1 + consecutives; j++){
|
|
||||||
int newx = j % width, newy = j / width;
|
|
||||||
tiles.get(newx, newy).setBlock(block);
|
|
||||||
}
|
|
||||||
|
|
||||||
i += consecutives;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}finally{
|
|
||||||
content.setTemporaryMapper(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Reads a pixmap in the 3.5 pixmap format. */
|
|
||||||
public static void readPixmap(Pixmap pixmap, Tile[][] tiles){
|
|
||||||
for(int x = 0; x < pixmap.getWidth(); x++){
|
|
||||||
for(int y = 0; y < pixmap.getHeight(); y++){
|
|
||||||
int color = pixmap.getPixel(x, pixmap.getHeight() - 1 - y);
|
|
||||||
LegacyBlock block = LegacyColorMapper.get(color);
|
|
||||||
Tile tile = tiles[x][y];
|
|
||||||
|
|
||||||
tile.setFloor(block.floor);
|
|
||||||
tile.setBlock(block.wall);
|
|
||||||
if(block.ore != null) tile.setOverlay(block.ore);
|
|
||||||
|
|
||||||
//place core
|
|
||||||
if(color == Color.rgba8888(Color.green)){
|
|
||||||
//actual core parts
|
|
||||||
tile.setBlock(Blocks.coreShard);
|
|
||||||
tile.setTeam(Team.sharded);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,129 +0,0 @@
|
|||||||
package io.anuke.mindustry.io.versions;
|
|
||||||
|
|
||||||
import io.anuke.arc.func.Prov;
|
|
||||||
import io.anuke.mindustry.entities.type.Bullet;
|
|
||||||
import io.anuke.mindustry.entities.effect.*;
|
|
||||||
import io.anuke.mindustry.entities.type.Player;
|
|
||||||
import io.anuke.mindustry.entities.type.base.*;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Latest data: [build 81]
|
|
||||||
|
|
||||||
0 = Player
|
|
||||||
1 = Fire
|
|
||||||
2 = Puddle
|
|
||||||
3 = Draug
|
|
||||||
4 = Spirit
|
|
||||||
5 = Phantom
|
|
||||||
6 = Dagger
|
|
||||||
7 = Crawler
|
|
||||||
8 = Titan
|
|
||||||
9 = Fortress
|
|
||||||
10 = Eruptor
|
|
||||||
11 = Wraith
|
|
||||||
12 = Ghoul
|
|
||||||
13 = Revenant
|
|
||||||
|
|
||||||
Before removal of lightining/bullet: [build 80]
|
|
||||||
|
|
||||||
0 = Player
|
|
||||||
1 = Fire
|
|
||||||
2 = Puddle
|
|
||||||
3 = Bullet
|
|
||||||
4 = Lightning
|
|
||||||
5 = Draug
|
|
||||||
6 = Spirit
|
|
||||||
7 = Phantom
|
|
||||||
8 = Dagger
|
|
||||||
9 = Crawler
|
|
||||||
10 = Titan
|
|
||||||
11 = Fortress
|
|
||||||
12 = Eruptor
|
|
||||||
13 = Wraith
|
|
||||||
14 = Ghoul
|
|
||||||
15 = Revenant
|
|
||||||
|
|
||||||
Before addition of new units: [build 79 and below]
|
|
||||||
|
|
||||||
0 = Player
|
|
||||||
1 = Fire
|
|
||||||
2 = Puddle
|
|
||||||
3 = Bullet
|
|
||||||
4 = Lightning
|
|
||||||
5 = Spirit
|
|
||||||
6 = Dagger
|
|
||||||
7 = Crawler
|
|
||||||
8 = Titan
|
|
||||||
9 = Fortress
|
|
||||||
10 = Eruptor
|
|
||||||
11 = Wraith
|
|
||||||
12 = Ghoul
|
|
||||||
13 = Phantom
|
|
||||||
14 = Revenant
|
|
||||||
*/
|
|
||||||
public class LegacyTypeTable{
|
|
||||||
private static final Prov[] build81Table = {
|
|
||||||
Player::new,
|
|
||||||
Fire::new,
|
|
||||||
Puddle::new,
|
|
||||||
Draug::new,
|
|
||||||
Spirit::new,
|
|
||||||
Phantom::new,
|
|
||||||
Dagger::new,
|
|
||||||
Crawler::new,
|
|
||||||
Titan::new,
|
|
||||||
Fortress::new,
|
|
||||||
Eruptor::new,
|
|
||||||
Wraith::new,
|
|
||||||
Ghoul::new,
|
|
||||||
Revenant::new
|
|
||||||
};
|
|
||||||
|
|
||||||
private static final Prov[] build80Table = {
|
|
||||||
Player::new,
|
|
||||||
Fire::new,
|
|
||||||
Puddle::new,
|
|
||||||
Bullet::new, //TODO reading these may crash
|
|
||||||
Lightning::new,
|
|
||||||
Draug::new,
|
|
||||||
Spirit::new,
|
|
||||||
Phantom::new,
|
|
||||||
Dagger::new,
|
|
||||||
Crawler::new,
|
|
||||||
Titan::new,
|
|
||||||
Fortress::new,
|
|
||||||
Eruptor::new,
|
|
||||||
Wraith::new,
|
|
||||||
Ghoul::new,
|
|
||||||
Revenant::new
|
|
||||||
};
|
|
||||||
|
|
||||||
private static final Prov[] build79Table = {
|
|
||||||
Player::new,
|
|
||||||
Fire::new,
|
|
||||||
Puddle::new,
|
|
||||||
Bullet::new, //TODO reading these may crash
|
|
||||||
Lightning::new,
|
|
||||||
Spirit::new,
|
|
||||||
Dagger::new,
|
|
||||||
Crawler::new,
|
|
||||||
Titan::new,
|
|
||||||
Fortress::new,
|
|
||||||
Eruptor::new,
|
|
||||||
Wraith::new,
|
|
||||||
Ghoul::new,
|
|
||||||
Phantom::new,
|
|
||||||
Revenant::new
|
|
||||||
};
|
|
||||||
|
|
||||||
public static Prov[] getTable(int build){
|
|
||||||
if(build == -1 || build == 81){
|
|
||||||
//return most recent one since that's probably it; not guaranteed
|
|
||||||
return build81Table;
|
|
||||||
}else if(build == 80){
|
|
||||||
return build80Table;
|
|
||||||
}else{
|
|
||||||
return build79Table;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
package io.anuke.mindustry.mod;
|
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
|
||||||
import io.anuke.arc.collection.*;
|
|
||||||
import io.anuke.arc.graphics.*;
|
|
||||||
import io.anuke.arc.graphics.g2d.*;
|
|
||||||
import io.anuke.arc.math.*;
|
|
||||||
import io.anuke.arc.scene.ui.layout.*;
|
|
||||||
import io.anuke.arc.util.*;
|
|
||||||
import io.anuke.mindustry.graphics.*;
|
|
||||||
import io.anuke.mindustry.mod.Mods.*;
|
|
||||||
import io.anuke.mindustry.ui.*;
|
|
||||||
|
|
||||||
public class ModCrashHandler{
|
|
||||||
|
|
||||||
public static void handle(Throwable t){
|
|
||||||
Array<Throwable> list = Strings.getCauses(t);
|
|
||||||
Throwable modCause = list.find(e -> e instanceof ModLoadException);
|
|
||||||
|
|
||||||
if(modCause != null && Fonts.outline != null){
|
|
||||||
String text = "[scarlet][[A fatal crash has occured while loading a mod!][]\n\nReason:[accent] " + modCause.getMessage();
|
|
||||||
String bottom = "[scarlet]The associated mod has been disabled. Swipe out of the app and launch it again.";
|
|
||||||
GlyphLayout layout = new GlyphLayout();
|
|
||||||
Core.atlas = TextureAtlas.blankAtlas();
|
|
||||||
Colors.put("accent", Pal.accent);
|
|
||||||
|
|
||||||
Core.app.addListener(new ApplicationListener(){
|
|
||||||
@Override
|
|
||||||
public void update(){
|
|
||||||
Core.graphics.clear(0.1f, 0.1f, 0.1f, 1f);
|
|
||||||
float rad = Math.min(Core.graphics.getWidth(), Core.graphics.getHeight()) / 2f / 1.3f;
|
|
||||||
Draw.color(Color.scarlet, Color.black, Mathf.absin(Core.graphics.getFrameId(), 15f, 0.6f));
|
|
||||||
Lines.stroke(Scl.scl(40f));
|
|
||||||
//Lines.poly2(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, 3, rad, 0f);
|
|
||||||
float cx = Core.graphics.getWidth()/2f, cy = Core.graphics.getHeight()/2f;
|
|
||||||
for(int i = 0; i < 3; i++){
|
|
||||||
float angle1 = i * 120f + 90f;
|
|
||||||
float angle2 = (i + 1) * 120f + 90f;
|
|
||||||
Tmp.v1.trnsExact(angle1, rad - Lines.getStroke()/2f).add(cx, cy);
|
|
||||||
Tmp.v2.trnsExact(angle2, rad - Lines.getStroke()/2f).add(cx, cy);
|
|
||||||
Tmp.v3.trnsExact(angle1, rad + Lines.getStroke()/2f).add(cx, cy);
|
|
||||||
Tmp.v4.trnsExact(angle2, rad + Lines.getStroke()/2f).add(cx, cy);
|
|
||||||
Fill.quad(Tmp.v1.x, Tmp.v1.y, Tmp.v2.x, Tmp.v2.y, Tmp.v4.x, Tmp.v4.y, Tmp.v3.x, Tmp.v3.y);
|
|
||||||
}
|
|
||||||
Lines.lineAngleCenter(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f - Scl.scl(5f), 90f, rad/3.1f);
|
|
||||||
Fill.square(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f + rad/2f - Scl.scl(15f), Lines.getStroke()/2f);
|
|
||||||
Draw.reset();
|
|
||||||
|
|
||||||
Fonts.outline.getData().markupEnabled = true;
|
|
||||||
layout.setText(Fonts.outline, text, Color.white, Core.graphics.getWidth(), Align.left, true);
|
|
||||||
Fonts.outline.draw(text, Core.graphics.getWidth()/2f - layout.width/2f, Core.graphics.getHeight() - Scl.scl(50f), Core.graphics.getWidth(), Align.left, true);
|
|
||||||
|
|
||||||
layout.setText(Fonts.outline, bottom, Color.white, Core.graphics.getWidth(), Align.left, true);
|
|
||||||
Fonts.outline.draw(bottom, Core.graphics.getWidth()/2f - layout.width/2f, layout.height + Scl.scl(10f), Core.graphics.getWidth(), Align.left, true);
|
|
||||||
Draw.flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void resize(int width, int height){
|
|
||||||
Draw.proj().setOrtho(0, 0, width, height);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
throw new RuntimeException(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,666 +0,0 @@
|
|||||||
package io.anuke.mindustry.mod;
|
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
|
||||||
import io.anuke.arc.assets.*;
|
|
||||||
import io.anuke.arc.collection.*;
|
|
||||||
import io.anuke.arc.files.*;
|
|
||||||
import io.anuke.arc.func.*;
|
|
||||||
import io.anuke.arc.graphics.*;
|
|
||||||
import io.anuke.arc.graphics.Pixmap.*;
|
|
||||||
import io.anuke.arc.graphics.Texture.*;
|
|
||||||
import io.anuke.arc.graphics.g2d.*;
|
|
||||||
import io.anuke.arc.graphics.g2d.TextureAtlas.*;
|
|
||||||
import io.anuke.arc.util.ArcAnnotate.*;
|
|
||||||
import io.anuke.arc.util.*;
|
|
||||||
import io.anuke.arc.util.io.*;
|
|
||||||
import io.anuke.arc.util.serialization.*;
|
|
||||||
import io.anuke.mindustry.core.*;
|
|
||||||
import io.anuke.mindustry.ctype.*;
|
|
||||||
import io.anuke.mindustry.game.EventType.*;
|
|
||||||
import io.anuke.mindustry.gen.*;
|
|
||||||
import io.anuke.mindustry.plugin.*;
|
|
||||||
import io.anuke.mindustry.type.*;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.net.*;
|
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
|
||||||
|
|
||||||
public class Mods implements Loadable{
|
|
||||||
private Json json = new Json();
|
|
||||||
private ContentParser parser = new ContentParser();
|
|
||||||
private ObjectMap<String, Array<FileHandle>> bundles = new ObjectMap<>();
|
|
||||||
private ObjectSet<String> specialFolders = ObjectSet.with("bundles", "sprites");
|
|
||||||
|
|
||||||
private int totalSprites;
|
|
||||||
private PixmapPacker packer;
|
|
||||||
|
|
||||||
private Array<LoadedMod> loaded = new Array<>();
|
|
||||||
private Array<LoadedMod> disabled = new Array<>();
|
|
||||||
private ObjectMap<Class<?>, ModMeta> metas = new ObjectMap<>();
|
|
||||||
private boolean requiresReload;
|
|
||||||
|
|
||||||
/** Returns a file named 'config.json' in a special folder for the specified plugin.
|
|
||||||
* Call this in init(). */
|
|
||||||
public FileHandle getConfig(Mod mod){
|
|
||||||
ModMeta load = metas.get(mod.getClass());
|
|
||||||
if(load == null) throw new IllegalArgumentException("Mod is not loaded yet (or missing)!");
|
|
||||||
return modDirectory.child(load.name).child("config.json");
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return the loaded mod found by class, or null if not found. */
|
|
||||||
public @Nullable LoadedMod getMod(Class<? extends Mod> type){
|
|
||||||
return loaded.find(l -> l.mod.getClass() == type);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Imports an external mod file.*/
|
|
||||||
public void importMod(FileHandle file) throws IOException{
|
|
||||||
FileHandle dest = modDirectory.child(file.name());
|
|
||||||
if(dest.exists()){
|
|
||||||
throw new IOException("A mod with the same filename already exists!");
|
|
||||||
}
|
|
||||||
|
|
||||||
file.copyTo(dest);
|
|
||||||
try{
|
|
||||||
loaded.add(loadMod(dest));
|
|
||||||
requiresReload = true;
|
|
||||||
}catch(IOException e){
|
|
||||||
dest.delete();
|
|
||||||
throw e;
|
|
||||||
}catch(Throwable t){
|
|
||||||
dest.delete();
|
|
||||||
throw new IOException(t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Repacks all in-game sprites. */
|
|
||||||
@Override
|
|
||||||
public void loadAsync(){
|
|
||||||
if(loaded.isEmpty()) return;
|
|
||||||
Time.mark();
|
|
||||||
|
|
||||||
packer = new PixmapPacker(2048, 2048, Format.RGBA8888, 2, true);
|
|
||||||
|
|
||||||
for(LoadedMod mod : loaded){
|
|
||||||
int[] packed = {0};
|
|
||||||
boolean[] failed = {false};
|
|
||||||
mod.root.child("sprites").walk(file -> {
|
|
||||||
if(failed[0]) return;
|
|
||||||
if(file.extension().equals("png")){
|
|
||||||
try(InputStream stream = file.read()){
|
|
||||||
byte[] bytes = Streams.copyStreamToByteArray(stream, Math.max((int)file.length(), 512));
|
|
||||||
Pixmap pixmap = new Pixmap(bytes, 0, bytes.length);
|
|
||||||
packer.pack(mod.name + "-" + file.nameWithoutExtension(), pixmap);
|
|
||||||
pixmap.dispose();
|
|
||||||
packed[0] ++;
|
|
||||||
totalSprites ++;
|
|
||||||
}catch(IOException e){
|
|
||||||
failed[0] = true;
|
|
||||||
Core.app.post(() -> {
|
|
||||||
Log.err("Error packing images for mod: {0}", mod.meta.name);
|
|
||||||
e.printStackTrace();
|
|
||||||
if(!headless) ui.showException(e);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Log.info("Packed {0} images for mod '{1}'.", packed[0], mod.meta.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.info("Time to pack textures: {0}", Time.elapsed());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void loadSync(){
|
|
||||||
if(packer == null) return;
|
|
||||||
Time.mark();
|
|
||||||
|
|
||||||
Texture editor = Core.atlas.find("clear-editor").getTexture();
|
|
||||||
PixmapPacker editorPacker = new PixmapPacker(2048, 2048, Format.RGBA8888, 2, true);
|
|
||||||
|
|
||||||
for(AtlasRegion region : Core.atlas.getRegions()){
|
|
||||||
if(region.getTexture() == editor){
|
|
||||||
editorPacker.pack(region.name, Core.atlas.getPixmap(region).crop());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//get textures packed
|
|
||||||
if(totalSprites > 0){
|
|
||||||
TextureFilter filter = Core.settings.getBool("linear") ? TextureFilter.Linear : TextureFilter.Nearest;
|
|
||||||
|
|
||||||
packer.updateTextureAtlas(Core.atlas, filter, filter, false);
|
|
||||||
//generate new icons
|
|
||||||
for(Array<Content> arr : content.getContentMap()){
|
|
||||||
arr.each(c -> {
|
|
||||||
if(c instanceof UnlockableContent && c.mod != null){
|
|
||||||
UnlockableContent u = (UnlockableContent)c;
|
|
||||||
u.createIcons(packer, editorPacker);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
editorPacker.updateTextureAtlas(Core.atlas, filter, filter, false);
|
|
||||||
packer.updateTextureAtlas(Core.atlas, filter, filter, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
packer.dispose();
|
|
||||||
packer = null;
|
|
||||||
Log.info("Time to update textures: {0}", Time.elapsed());
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Removes a mod file and marks it for requiring a restart. */
|
|
||||||
public void removeMod(LoadedMod mod){
|
|
||||||
if(mod.root instanceof ZipFileHandle){
|
|
||||||
mod.root.delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean deleted = mod.file.isDirectory() ? mod.file.deleteDirectory() : mod.file.delete();
|
|
||||||
|
|
||||||
if(!deleted){
|
|
||||||
ui.showErrorMessage("$mod.delete.error");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
loaded.remove(mod);
|
|
||||||
disabled.remove(mod);
|
|
||||||
requiresReload = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean requiresReload(){
|
|
||||||
return requiresReload;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Loads all mods from the folder, but does not call any methods on them.*/
|
|
||||||
public void load(){
|
|
||||||
for(FileHandle file : modDirectory.list()){
|
|
||||||
if(!file.extension().equals("jar") && !file.extension().equals("zip") && !(file.isDirectory() && file.child("mod.json").exists())) continue;
|
|
||||||
|
|
||||||
|
|
||||||
Log.debug("[Mods] Loading mod {0}", file);
|
|
||||||
try{
|
|
||||||
LoadedMod mod = loadMod(file);
|
|
||||||
if(mod.enabled() || headless){
|
|
||||||
loaded.add(mod);
|
|
||||||
}else{
|
|
||||||
disabled.add(mod);
|
|
||||||
}
|
|
||||||
}catch(Exception e){
|
|
||||||
Log.err("Failed to load mod file {0}. Skipping.", file);
|
|
||||||
Log.err(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//load workshop mods now
|
|
||||||
for(FileHandle file : platform.getWorkshopContent(LoadedMod.class)){
|
|
||||||
try{
|
|
||||||
LoadedMod mod = loadMod(file);
|
|
||||||
if(mod.enabled()){
|
|
||||||
loaded.add(mod);
|
|
||||||
}else{
|
|
||||||
disabled.add(mod);
|
|
||||||
}
|
|
||||||
mod.addSteamID(file.name());
|
|
||||||
}catch(Exception e){
|
|
||||||
Log.err("Failed to load mod workshop file {0}. Skipping.", file);
|
|
||||||
Log.err(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resolveDependencies();
|
|
||||||
//sort mods to make sure servers handle them properly.
|
|
||||||
loaded.sort(Structs.comparing(m -> m.name));
|
|
||||||
|
|
||||||
buildFiles();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void resolveDependencies(){
|
|
||||||
for(LoadedMod mod : Array.<LoadedMod>withArrays(loaded, disabled)){
|
|
||||||
updateDependencies(mod);
|
|
||||||
}
|
|
||||||
|
|
||||||
disabled.addAll(loaded.select(LoadedMod::hasUnmetDependencies));
|
|
||||||
loaded.removeAll(LoadedMod::hasUnmetDependencies);
|
|
||||||
disabled.each(mod -> setEnabled(mod, false));
|
|
||||||
disabled.distinct();
|
|
||||||
loaded.distinct();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateDependencies(LoadedMod mod){
|
|
||||||
mod.dependencies.clear();
|
|
||||||
mod.missingDependencies.clear();
|
|
||||||
mod.dependencies = mod.meta.dependencies.map(this::locateMod);
|
|
||||||
|
|
||||||
for(int i = 0; i < mod.dependencies.size; i++){
|
|
||||||
if(mod.dependencies.get(i) == null){
|
|
||||||
mod.missingDependencies.add(mod.meta.dependencies.get(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void topoSort(LoadedMod mod, Array<LoadedMod> stack, ObjectSet<LoadedMod> visited){
|
|
||||||
visited.add(mod);
|
|
||||||
mod.dependencies.each(m -> !visited.contains(m), m -> topoSort(m, stack, visited));
|
|
||||||
stack.add(mod);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return mods ordered in the correct way needed for dependencies. */
|
|
||||||
private Array<LoadedMod> orderedMods(){
|
|
||||||
ObjectSet<LoadedMod> visited = new ObjectSet<>();
|
|
||||||
Array<LoadedMod> result = new Array<>();
|
|
||||||
for(LoadedMod mod : loaded){
|
|
||||||
if(!visited.contains(mod)){
|
|
||||||
topoSort(mod, result, visited);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private LoadedMod locateMod(String name){
|
|
||||||
return loaded.find(mod -> mod.name.equals(name));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void buildFiles(){
|
|
||||||
for(LoadedMod mod : orderedMods()){
|
|
||||||
boolean zipFolder = !mod.file.isDirectory() && mod.root.parent() != null;
|
|
||||||
String parentName = zipFolder ? mod.root.name() : null;
|
|
||||||
for(FileHandle file : mod.root.list()){
|
|
||||||
//ignore special folders like bundles or sprites
|
|
||||||
if(file.isDirectory() && !specialFolders.contains(file.name())){
|
|
||||||
//TODO calling child/parent on these files will give you gibberish; create wrapper class.
|
|
||||||
file.walk(f -> tree.addFile(mod.file.isDirectory() ? f.path().substring(1 + mod.file.path().length()) :
|
|
||||||
zipFolder ? f.path().substring(parentName.length() + 1) : f.path(), f));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//load up bundles.
|
|
||||||
FileHandle folder = mod.root.child("bundles");
|
|
||||||
if(folder.exists()){
|
|
||||||
for(FileHandle file : folder.list()){
|
|
||||||
if(file.name().startsWith("bundle") && file.extension().equals("properties")){
|
|
||||||
String name = file.nameWithoutExtension();
|
|
||||||
bundles.getOr(name, Array::new).add(file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//add new keys to each bundle
|
|
||||||
I18NBundle bundle = Core.bundle;
|
|
||||||
while(bundle != null){
|
|
||||||
String str = bundle.getLocale().toString();
|
|
||||||
String locale = "bundle" + (str.isEmpty() ? "" : "_" + str);
|
|
||||||
for(FileHandle file : bundles.getOr(locale, Array::new)){
|
|
||||||
try{
|
|
||||||
PropertiesUtils.load(bundle.getProperties(), file.reader());
|
|
||||||
}catch(Exception e){
|
|
||||||
throw new RuntimeException("Error loading bundle: " + file + "/" + locale, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bundle = bundle.getParent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Reloads all mod content. How does this even work? I refuse to believe that it functions correctly.*/
|
|
||||||
public void reloadContent(){
|
|
||||||
//epic memory leak
|
|
||||||
//TODO make it less epic
|
|
||||||
Core.atlas = new TextureAtlas(Core.files.internal("sprites/sprites.atlas"));
|
|
||||||
|
|
||||||
loaded.clear();
|
|
||||||
disabled.clear();
|
|
||||||
load();
|
|
||||||
Sounds.dispose();
|
|
||||||
Sounds.load();
|
|
||||||
Core.assets.finishLoading();
|
|
||||||
content.clear();
|
|
||||||
content.createContent();
|
|
||||||
loadAsync();
|
|
||||||
loadSync();
|
|
||||||
content.init();
|
|
||||||
content.load();
|
|
||||||
content.loadColors();
|
|
||||||
data.load();
|
|
||||||
requiresReload = false;
|
|
||||||
|
|
||||||
Events.fire(new ContentReloadEvent());
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Creates all the content found in mod files. */
|
|
||||||
public void loadContent(){
|
|
||||||
class LoadRun implements Comparable<LoadRun>{
|
|
||||||
final ContentType type;
|
|
||||||
final FileHandle file;
|
|
||||||
final LoadedMod mod;
|
|
||||||
|
|
||||||
public LoadRun(ContentType type, FileHandle file, LoadedMod mod){
|
|
||||||
this.type = type;
|
|
||||||
this.file = file;
|
|
||||||
this.mod = mod;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compareTo(LoadRun l){
|
|
||||||
int mod = this.mod.name.compareTo(l.mod.name);
|
|
||||||
if(mod != 0) return mod;
|
|
||||||
return this.file.name().compareTo(l.file.name());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Array<LoadRun> runs = new Array<>();
|
|
||||||
|
|
||||||
for(LoadedMod mod : orderedMods()){
|
|
||||||
if(mod.root.child("content").exists()){
|
|
||||||
FileHandle contentRoot = mod.root.child("content");
|
|
||||||
for(ContentType type : ContentType.all){
|
|
||||||
FileHandle folder = contentRoot.child(type.name().toLowerCase() + "s");
|
|
||||||
if(folder.exists()){
|
|
||||||
for(FileHandle file : folder.list()){
|
|
||||||
if(file.extension().equals("json") || file.extension().equals("hjson") || file.extension().equals("js")){
|
|
||||||
runs.add(new LoadRun(type, file, mod));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//make sure mod content is in proper order
|
|
||||||
runs.sort();
|
|
||||||
runs.each(l -> safeRun(l.mod, () -> {
|
|
||||||
try{
|
|
||||||
//this binds the content but does not load it entirely
|
|
||||||
Content loaded = parser.parse(l.mod, l.file.nameWithoutExtension(), l.file.readString("UTF-8"), l.file, l.type);
|
|
||||||
Log.debug("[{0}] Loaded '{1}'.", l.mod.meta.name,
|
|
||||||
(loaded instanceof UnlockableContent ? ((UnlockableContent)loaded).localizedName : loaded));
|
|
||||||
}catch(Exception e){
|
|
||||||
throw new RuntimeException("Failed to parse content file '" + l.file + "' for mod '" + l.mod.meta.name + "'.", e);
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
|
|
||||||
//this finishes parsing content fields
|
|
||||||
parser.finishParsing();
|
|
||||||
|
|
||||||
//load content for code mods
|
|
||||||
each(Mod::loadContent);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return all loaded mods. */
|
|
||||||
public Array<LoadedMod> all(){
|
|
||||||
return loaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return all disabled mods. */
|
|
||||||
public Array<LoadedMod> disabled(){
|
|
||||||
return disabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return a list of mod names only, without versions. */
|
|
||||||
public Array<String> getModNames(){
|
|
||||||
return loaded.select(l -> !l.meta.hidden).map(l -> l.name + ":" + l.meta.version);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return a list of mods and versions, in the format name:version. */
|
|
||||||
public Array<String> getModStrings(){
|
|
||||||
return loaded.select(l -> !l.meta.hidden).map(l -> l.name + ":" + l.meta.version);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Makes a mod enabled or disabled. shifts it.*/
|
|
||||||
public void setEnabled(LoadedMod mod, boolean enabled){
|
|
||||||
if(mod.enabled() != enabled){
|
|
||||||
Core.settings.putSave("mod-" + mod.name + "-enabled", enabled);
|
|
||||||
Core.settings.save();
|
|
||||||
requiresReload = true;
|
|
||||||
if(!enabled){
|
|
||||||
loaded.remove(mod);
|
|
||||||
if(!disabled.contains(mod)) disabled.add(mod);
|
|
||||||
}else{
|
|
||||||
if(!loaded.contains(mod)) loaded.add(mod);
|
|
||||||
disabled.remove(mod);
|
|
||||||
}
|
|
||||||
loaded.each(this::updateDependencies);
|
|
||||||
disabled.each(this::updateDependencies);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return the mods that the client is missing.
|
|
||||||
* The inputted array is changed to contain the extra mods that the client has but the server doesn't.*/
|
|
||||||
public Array<String> getIncompatibility(Array<String> out){
|
|
||||||
Array<String> mods = getModStrings();
|
|
||||||
Array<String> result = mods.copy();
|
|
||||||
for(String mod : mods){
|
|
||||||
if(out.remove(mod)){
|
|
||||||
result.remove(mod);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Iterates through each mod with a main class.*/
|
|
||||||
public void each(Cons<Mod> cons){
|
|
||||||
loaded.each(p -> p.mod != null, p -> safeRun(p, () -> cons.get(p.mod)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void handleError(Throwable t, LoadedMod mod){
|
|
||||||
Array<Throwable> causes = Strings.getCauses(t);
|
|
||||||
Content content = null;
|
|
||||||
for(Throwable e : causes){
|
|
||||||
if(e instanceof ModLoadException && ((ModLoadException) e).content != null){
|
|
||||||
content = ((ModLoadException) e).content;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String realCause = "<???>";
|
|
||||||
for(int i = causes.size -1 ; i >= 0; i--){
|
|
||||||
if(causes.get(i).getMessage() != null){
|
|
||||||
realCause = causes.get(i).getMessage();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setEnabled(mod, false);
|
|
||||||
|
|
||||||
if(content != null){
|
|
||||||
throw new ModLoadException(Strings.format("Error loading '{0}' from mod '{1}' ({2}):\n{3}",
|
|
||||||
content, mod.meta.name, content.sourceFile == null ? "<unknown file>" : content.sourceFile.name(), realCause), content, t);
|
|
||||||
}else{
|
|
||||||
throw new ModLoadException("Error loading mod " + mod.meta.name, t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void safeRun(LoadedMod mod, Runnable run){
|
|
||||||
try{
|
|
||||||
run.run();
|
|
||||||
}catch(Throwable t){
|
|
||||||
handleError(t, mod);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Loads a mod file+meta, but does not add it to the list.
|
|
||||||
* Note that directories can be loaded as mods.*/
|
|
||||||
private LoadedMod loadMod(FileHandle sourceFile) throws Exception{
|
|
||||||
FileHandle zip = sourceFile.isDirectory() ? sourceFile : new ZipFileHandle(sourceFile);
|
|
||||||
if(zip.list().length == 1 && zip.list()[0].isDirectory()){
|
|
||||||
zip = zip.list()[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
FileHandle metaf = zip.child("mod.json").exists() ? zip.child("mod.json") : zip.child("plugin.json");
|
|
||||||
if(!metaf.exists()){
|
|
||||||
Log.warn("Mod {0} doesn't have a 'mod.json'/'plugin.json' file, skipping.", sourceFile);
|
|
||||||
throw new IllegalArgumentException("No mod.json found.");
|
|
||||||
}
|
|
||||||
|
|
||||||
ModMeta meta = json.fromJson(ModMeta.class, metaf.readString());
|
|
||||||
String camelized = meta.name.replace(" ", "");
|
|
||||||
String mainClass = meta.main == null ? camelized.toLowerCase() + "." + camelized + "Mod" : meta.main;
|
|
||||||
String baseName = meta.name.toLowerCase().replace(" ", "-");
|
|
||||||
|
|
||||||
if(loaded.contains(m -> m.name.equals(baseName)) || disabled.contains(m -> m.name.equals(baseName))){
|
|
||||||
throw new IllegalArgumentException("A mod with the name '" + baseName + "' is already imported.");
|
|
||||||
}
|
|
||||||
|
|
||||||
Mod mainMod;
|
|
||||||
|
|
||||||
FileHandle mainFile = zip;
|
|
||||||
String[] path = (mainClass.replace('.', '/') + ".class").split("/");
|
|
||||||
for(String str : path){
|
|
||||||
if(!str.isEmpty()){
|
|
||||||
mainFile = mainFile.child(str);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//make sure the main class exists before loading it; if it doesn't just don't put it there
|
|
||||||
if(mainFile.exists()){
|
|
||||||
//other platforms don't have standard java class loaders
|
|
||||||
if(!headless && Version.build != -1){
|
|
||||||
throw new IllegalArgumentException("Java class mods are currently unsupported outside of custom builds.");
|
|
||||||
}
|
|
||||||
|
|
||||||
URLClassLoader classLoader = new URLClassLoader(new URL[]{sourceFile.file().toURI().toURL()}, ClassLoader.getSystemClassLoader());
|
|
||||||
Class<?> main = classLoader.loadClass(mainClass);
|
|
||||||
metas.put(main, meta);
|
|
||||||
mainMod = (Mod)main.getDeclaredConstructor().newInstance();
|
|
||||||
}else{
|
|
||||||
mainMod = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
//all plugins are hidden implicitly
|
|
||||||
if(mainMod instanceof Plugin){
|
|
||||||
meta.hidden = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new LoadedMod(sourceFile, zip, mainMod, meta);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Represents a plugin that has been loaded from a jar file.*/
|
|
||||||
public static class LoadedMod implements Publishable{
|
|
||||||
/** The location of this mod's zip file/folder on the disk. */
|
|
||||||
public final FileHandle file;
|
|
||||||
/** The root zip file; points to the contents of this mod. In the case of folders, this is the same as the mod's file. */
|
|
||||||
public final FileHandle root;
|
|
||||||
/** The mod's main class; may be null. */
|
|
||||||
public final @Nullable Mod mod;
|
|
||||||
/** Internal mod name. Used for textures. */
|
|
||||||
public final String name;
|
|
||||||
/** This mod's metadata. */
|
|
||||||
public final ModMeta meta;
|
|
||||||
/** This mod's dependencies as already-loaded mods. */
|
|
||||||
public Array<LoadedMod> dependencies = new Array<>();
|
|
||||||
/** All missing dependencies of this mod as strings. */
|
|
||||||
public Array<String> missingDependencies = new Array<>();
|
|
||||||
|
|
||||||
public LoadedMod(FileHandle file, FileHandle root, Mod mod, ModMeta meta){
|
|
||||||
this.root = root;
|
|
||||||
this.file = file;
|
|
||||||
this.mod = mod;
|
|
||||||
this.meta = meta;
|
|
||||||
this.name = meta.name.toLowerCase().replace(" ", "-");
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean enabled(){
|
|
||||||
return Core.settings.getBool("mod-" + name + "-enabled", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasUnmetDependencies(){
|
|
||||||
return !missingDependencies.isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSteamID(){
|
|
||||||
return Core.settings.getString(name + "-steamid", null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addSteamID(String id){
|
|
||||||
Core.settings.put(name + "-steamid", id);
|
|
||||||
Core.settings.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeSteamID(){
|
|
||||||
Core.settings.remove(name + "-steamid");
|
|
||||||
Core.settings.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String steamTitle(){
|
|
||||||
return meta.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String steamDescription(){
|
|
||||||
return meta.description;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String steamTag(){
|
|
||||||
return "mod";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FileHandle createSteamFolder(String id){
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FileHandle createSteamPreview(String id){
|
|
||||||
return file.child("preview.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean prePublish(){
|
|
||||||
if(!file.isDirectory()){
|
|
||||||
ui.showErrorMessage("$mod.folder.missing");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!file.child("preview.png").exists()){
|
|
||||||
ui.showErrorMessage("$mod.preview.missing");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString(){
|
|
||||||
return "LoadedMod{" +
|
|
||||||
"file=" + file +
|
|
||||||
", root=" + root +
|
|
||||||
", name='" + name + '\'' +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Plugin metadata information.*/
|
|
||||||
public static class ModMeta{
|
|
||||||
public String name, author, description, version, main;
|
|
||||||
public Array<String> dependencies = Array.with();
|
|
||||||
/** Hidden mods are only server-side or client-side, and do not support adding new content. */
|
|
||||||
public boolean hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Thrown when an error occurs while loading a mod.*/
|
|
||||||
public static class ModLoadException extends RuntimeException{
|
|
||||||
public Content content;
|
|
||||||
public LoadedMod mod;
|
|
||||||
|
|
||||||
public ModLoadException(String message, Throwable cause){
|
|
||||||
super(message, cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModLoadException(String message, @Nullable Content content, Throwable cause){
|
|
||||||
super(message, cause);
|
|
||||||
this.content = content;
|
|
||||||
if(content != null){
|
|
||||||
this.mod = content.mod;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModLoadException(@Nullable Content content, Throwable cause){
|
|
||||||
super(cause);
|
|
||||||
this.content = content;
|
|
||||||
if(content != null){
|
|
||||||
this.mod = content.mod;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package io.anuke.mindustry.plugin;
|
|
||||||
|
|
||||||
import io.anuke.mindustry.mod.*;
|
|
||||||
|
|
||||||
public abstract class Plugin extends Mod{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.anuke.mindustry.world.producers;
|
|
||||||
|
|
||||||
public class Produce{
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.anuke.mindustry.world.producers;
|
|
||||||
|
|
||||||
public class ProduceItem{
|
|
||||||
}
|
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
package io.anuke.mindustry;
|
package mindustry;
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
import arc.*;
|
||||||
import io.anuke.arc.assets.*;
|
import arc.assets.*;
|
||||||
import io.anuke.arc.assets.loaders.*;
|
import arc.assets.loaders.*;
|
||||||
import io.anuke.arc.audio.*;
|
import arc.audio.*;
|
||||||
import io.anuke.arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import io.anuke.arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import io.anuke.arc.math.*;
|
import arc.math.*;
|
||||||
import io.anuke.arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import io.anuke.arc.util.*;
|
import arc.util.*;
|
||||||
import io.anuke.arc.util.async.*;
|
import arc.util.async.*;
|
||||||
import io.anuke.mindustry.core.*;
|
import mindustry.core.*;
|
||||||
import io.anuke.mindustry.ctype.Content;
|
import mindustry.ctype.Content;
|
||||||
import io.anuke.mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import io.anuke.mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import io.anuke.mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import io.anuke.mindustry.maps.*;
|
import mindustry.maps.*;
|
||||||
import io.anuke.mindustry.mod.*;
|
import mindustry.mod.*;
|
||||||
import io.anuke.mindustry.net.Net;
|
import mindustry.net.Net;
|
||||||
|
|
||||||
import static io.anuke.arc.Core.*;
|
import static arc.Core.*;
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public abstract class ClientLauncher extends ApplicationCore implements Platform{
|
public abstract class ClientLauncher extends ApplicationCore implements Platform{
|
||||||
private static final int loadingFPS = 20;
|
private static final int loadingFPS = 20;
|
||||||
@@ -32,8 +32,8 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setup(){
|
public void setup(){
|
||||||
|
Vars.loadLogger();
|
||||||
Vars.platform = this;
|
Vars.platform = this;
|
||||||
Log.setUseColors(false);
|
|
||||||
beginTime = Time.millis();
|
beginTime = Time.millis();
|
||||||
|
|
||||||
Time.setDeltaProvider(() -> {
|
Time.setDeltaProvider(() -> {
|
||||||
@@ -70,8 +70,11 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
Sounds.load();
|
Sounds.load();
|
||||||
|
|
||||||
assets.loadRun("contentcreate", Content.class, () -> {
|
assets.loadRun("contentcreate", Content.class, () -> {
|
||||||
content.createContent();
|
content.createBaseContent();
|
||||||
content.loadColors();
|
content.loadColors();
|
||||||
|
}, () -> {
|
||||||
|
mods.loadScripts();
|
||||||
|
content.createModContent();
|
||||||
});
|
});
|
||||||
|
|
||||||
add(logic = new Logic());
|
add(logic = new Logic());
|
||||||
@@ -120,7 +123,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
for(ApplicationListener listener : modules){
|
for(ApplicationListener listener : modules){
|
||||||
listener.init();
|
listener.init();
|
||||||
}
|
}
|
||||||
mods.each(Mod::init);
|
mods.eachClass(Mod::init);
|
||||||
finished = true;
|
finished = true;
|
||||||
Events.fire(new ClientLoadEvent());
|
Events.fire(new ClientLoadEvent());
|
||||||
super.resize(graphics.getWidth(), graphics.getHeight());
|
super.resize(graphics.getWidth(), graphics.getHeight());
|
||||||
@@ -193,7 +196,8 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
|
|
||||||
if(assets.getCurrentLoading() != null){
|
if(assets.getCurrentLoading() != null){
|
||||||
String name = assets.getCurrentLoading().fileName.toLowerCase();
|
String name = assets.getCurrentLoading().fileName.toLowerCase();
|
||||||
String key = name.contains("content") ? "content" : name.contains("mod") ? "mods" : name.contains("msav") || name.contains("maps") ? "map" : name.contains("ogg") || name.contains("mp3") ? "sound" : name.contains("png") ? "image" : "system";
|
String key = name.contains("script") ? "scripts" : name.contains("content") ? "content" : name.contains("mod") ? "mods" : name.contains("msav") ||
|
||||||
|
name.contains("maps") ? "map" : name.contains("ogg") || name.contains("mp3") ? "sound" : name.contains("png") ? "image" : "system";
|
||||||
font.draw(bundle.get("load." + key, ""), graphics.getWidth() / 2f, graphics.getHeight() / 2f - height / 2f - Scl.scl(10f), Align.center);
|
font.draw(bundle.get("load." + key, ""), graphics.getWidth() / 2f, graphics.getHeight() / 2f - height / 2f - Scl.scl(10f), Align.center);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,38 +1,41 @@
|
|||||||
package io.anuke.mindustry;
|
package mindustry;
|
||||||
|
|
||||||
import io.anuke.arc.Application.*;
|
import arc.*;
|
||||||
import io.anuke.arc.*;
|
import arc.Application.*;
|
||||||
import io.anuke.arc.assets.*;
|
import arc.assets.*;
|
||||||
import io.anuke.arc.collection.*;
|
import arc.struct.*;
|
||||||
import io.anuke.arc.files.*;
|
import arc.files.*;
|
||||||
import io.anuke.arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import io.anuke.arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import io.anuke.arc.util.*;
|
import arc.util.*;
|
||||||
import io.anuke.mindustry.ai.*;
|
import arc.util.io.*;
|
||||||
import io.anuke.mindustry.core.*;
|
import mindustry.ai.*;
|
||||||
import io.anuke.mindustry.entities.*;
|
import mindustry.core.*;
|
||||||
import io.anuke.mindustry.entities.effect.*;
|
import mindustry.entities.*;
|
||||||
import io.anuke.mindustry.entities.traits.*;
|
import mindustry.entities.effect.*;
|
||||||
import io.anuke.mindustry.entities.type.*;
|
import mindustry.entities.traits.*;
|
||||||
import io.anuke.mindustry.game.*;
|
import mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.gen.*;
|
import mindustry.game.*;
|
||||||
import io.anuke.mindustry.input.*;
|
import mindustry.game.EventType.*;
|
||||||
import io.anuke.mindustry.maps.*;
|
import mindustry.gen.*;
|
||||||
import io.anuke.mindustry.mod.*;
|
import mindustry.input.*;
|
||||||
import io.anuke.mindustry.net.Net;
|
import mindustry.maps.*;
|
||||||
import io.anuke.mindustry.world.blocks.defense.ForceProjector.*;
|
import mindustry.mod.*;
|
||||||
|
import mindustry.net.*;
|
||||||
|
import mindustry.net.Net;
|
||||||
|
import mindustry.world.blocks.defense.ForceProjector.*;
|
||||||
|
|
||||||
import java.nio.charset.*;
|
import java.nio.charset.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static io.anuke.arc.Core.*;
|
import static arc.Core.settings;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class Vars implements Loadable{
|
public class Vars implements Loadable{
|
||||||
/** Whether to load locales.*/
|
/** Whether to load locales.*/
|
||||||
public static boolean loadLocales = true;
|
public static boolean loadLocales = true;
|
||||||
/** Maximum number of broken blocks. TODO implement or remove.*/
|
/** Whether the logger is loaded. */
|
||||||
public static final int maxBrokenBlocks = 256;
|
public static boolean loadedLogger = false;
|
||||||
/** Maximum schematic size.*/
|
/** Maximum schematic size.*/
|
||||||
public static final int maxSchematicSize = 32;
|
public static final int maxSchematicSize = 32;
|
||||||
/** All schematic base64 starts with this string.*/
|
/** All schematic base64 starts with this string.*/
|
||||||
@@ -51,16 +54,16 @@ public class Vars implements Loadable{
|
|||||||
public static final String crashReportURL = "http://192.99.169.18/report";
|
public static final String crashReportURL = "http://192.99.169.18/report";
|
||||||
/** URL the links to the wiki's modding guide.*/
|
/** URL the links to the wiki's modding guide.*/
|
||||||
public static final String modGuideURL = "https://mindustrygame.github.io/wiki/modding/";
|
public static final String modGuideURL = "https://mindustrygame.github.io/wiki/modding/";
|
||||||
|
/** URL to the JSON file containing all the global, public servers. Not queried in BE. */
|
||||||
|
public static final String serverJsonURL = "https://raw.githubusercontent.com/Anuken/Mindustry/master/servers.json";
|
||||||
|
/** URL to the JSON file containing all the BE servers. Only queried in BE. */
|
||||||
|
public static final String serverJsonBeURL = "https://raw.githubusercontent.com/Anuken/Mindustry/master/servers_be.json";
|
||||||
/** URL the links to the wiki's modding guide.*/
|
/** URL the links to the wiki's modding guide.*/
|
||||||
public static final String reportIssueURL = "https://github.com/Anuken/Mindustry/issues/new?template=bug_report.md";
|
public static final String reportIssueURL = "https://github.com/Anuken/Mindustry/issues/new?template=bug_report.md";
|
||||||
/** list of built-in servers.*/
|
/** list of built-in servers.*/
|
||||||
public static final Array<String> defaultServers = Array.with(/*"mins.us.to"*/);
|
public static final Array<String> defaultServers = Array.with();
|
||||||
/** maximum distance between mine and core that supports automatic transferring */
|
/** maximum distance between mine and core that supports automatic transferring */
|
||||||
public static final float mineTransferRange = 220f;
|
public static final float mineTransferRange = 220f;
|
||||||
/** team of the player by default */
|
|
||||||
public static final Team defaultTeam = Team.sharded;
|
|
||||||
/** team of the enemy in waves/sectors */
|
|
||||||
public static final Team waveTeam = Team.crux;
|
|
||||||
/** whether to enable editing of units in the editor */
|
/** whether to enable editing of units in the editor */
|
||||||
public static final boolean enableUnitEditing = false;
|
public static final boolean enableUnitEditing = false;
|
||||||
/** max chat message length */
|
/** max chat message length */
|
||||||
@@ -118,22 +121,26 @@ public class Vars implements Loadable{
|
|||||||
public static boolean headless;
|
public static boolean headless;
|
||||||
/** whether steam is enabled for this game */
|
/** whether steam is enabled for this game */
|
||||||
public static boolean steam;
|
public static boolean steam;
|
||||||
/** application data directory, equivalent to {@link io.anuke.arc.Settings#getDataDirectory()} */
|
/** whether typing into the console is enabled - developers only */
|
||||||
public static FileHandle dataDirectory;
|
public static boolean enableConsole = false;
|
||||||
|
/** application data directory, equivalent to {@link Settings#getDataDirectory()} */
|
||||||
|
public static Fi dataDirectory;
|
||||||
/** data subdirectory used for screenshots */
|
/** data subdirectory used for screenshots */
|
||||||
public static FileHandle screenshotDirectory;
|
public static Fi screenshotDirectory;
|
||||||
/** data subdirectory used for custom mmaps */
|
/** data subdirectory used for custom maps */
|
||||||
public static FileHandle customMapDirectory;
|
public static Fi customMapDirectory;
|
||||||
/** data subdirectory used for custom mmaps */
|
/** data subdirectory used for custom map previews */
|
||||||
public static FileHandle mapPreviewDirectory;
|
public static Fi mapPreviewDirectory;
|
||||||
/** tmp subdirectory for map conversion */
|
/** tmp subdirectory for map conversion */
|
||||||
public static FileHandle tmpDirectory;
|
public static Fi tmpDirectory;
|
||||||
/** data subdirectory used for saves */
|
/** data subdirectory used for saves */
|
||||||
public static FileHandle saveDirectory;
|
public static Fi saveDirectory;
|
||||||
/** data subdirectory used for mods */
|
/** data subdirectory used for mods */
|
||||||
public static FileHandle modDirectory;
|
public static Fi modDirectory;
|
||||||
/** data subdirectory used for schematics */
|
/** data subdirectory used for schematics */
|
||||||
public static FileHandle schematicDirectory;
|
public static Fi schematicDirectory;
|
||||||
|
/** data subdirectory used for bleeding edge build versions */
|
||||||
|
public static Fi bebuildDirectory;
|
||||||
/** map file extension */
|
/** map file extension */
|
||||||
public static final String mapExtension = "msav";
|
public static final String mapExtension = "msav";
|
||||||
/** save file extension */
|
/** save file extension */
|
||||||
@@ -155,6 +162,7 @@ public class Vars implements Loadable{
|
|||||||
public static Platform platform = new Platform(){};
|
public static Platform platform = new Platform(){};
|
||||||
public static Mods mods;
|
public static Mods mods;
|
||||||
public static Schematics schematics = new Schematics();
|
public static Schematics schematics = new Schematics();
|
||||||
|
public static BeControl becontrol;
|
||||||
|
|
||||||
public static World world;
|
public static World world;
|
||||||
public static Maps maps;
|
public static Maps maps;
|
||||||
@@ -178,7 +186,7 @@ public class Vars implements Loadable{
|
|||||||
public static EntityGroup<ShieldEntity> shieldGroup;
|
public static EntityGroup<ShieldEntity> shieldGroup;
|
||||||
public static EntityGroup<Puddle> puddleGroup;
|
public static EntityGroup<Puddle> puddleGroup;
|
||||||
public static EntityGroup<Fire> fireGroup;
|
public static EntityGroup<Fire> fireGroup;
|
||||||
public static EntityGroup<BaseUnit>[] unitGroups;
|
public static EntityGroup<BaseUnit> unitGroup;
|
||||||
|
|
||||||
public static Player player;
|
public static Player player;
|
||||||
|
|
||||||
@@ -190,6 +198,7 @@ public class Vars implements Loadable{
|
|||||||
|
|
||||||
public static void init(){
|
public static void init(){
|
||||||
Serialization.init();
|
Serialization.init();
|
||||||
|
DefaultSerializers.typeMappings.put("mindustry.type.ContentType", "mindustry.ctype.ContentType");
|
||||||
|
|
||||||
if(loadLocales){
|
if(loadLocales){
|
||||||
//load locales
|
//load locales
|
||||||
@@ -217,6 +226,7 @@ public class Vars implements Loadable{
|
|||||||
defaultWaves = new DefaultWaves();
|
defaultWaves = new DefaultWaves();
|
||||||
collisions = new EntityCollisions();
|
collisions = new EntityCollisions();
|
||||||
world = new World();
|
world = new World();
|
||||||
|
becontrol = new BeControl();
|
||||||
|
|
||||||
maps = new Maps();
|
maps = new Maps();
|
||||||
spawner = new WaveSpawner();
|
spawner = new WaveSpawner();
|
||||||
@@ -232,11 +242,7 @@ public class Vars implements Loadable{
|
|||||||
puddleGroup = entities.add(Puddle.class).enableMapping();
|
puddleGroup = entities.add(Puddle.class).enableMapping();
|
||||||
shieldGroup = entities.add(ShieldEntity.class, false);
|
shieldGroup = entities.add(ShieldEntity.class, false);
|
||||||
fireGroup = entities.add(Fire.class).enableMapping();
|
fireGroup = entities.add(Fire.class).enableMapping();
|
||||||
unitGroups = new EntityGroup[Team.all.length];
|
unitGroup = entities.add(BaseUnit.class).enableMapping();
|
||||||
|
|
||||||
for(Team team : Team.all){
|
|
||||||
unitGroups[team.ordinal()] = entities.add(BaseUnit.class).enableMapping();
|
|
||||||
}
|
|
||||||
|
|
||||||
for(EntityGroup<?> group : entities.all()){
|
for(EntityGroup<?> group : entities.all()){
|
||||||
group.setRemoveListener(entity -> {
|
group.setRemoveListener(entity -> {
|
||||||
@@ -261,6 +267,7 @@ public class Vars implements Loadable{
|
|||||||
tmpDirectory = dataDirectory.child("tmp/");
|
tmpDirectory = dataDirectory.child("tmp/");
|
||||||
modDirectory = dataDirectory.child("mods/");
|
modDirectory = dataDirectory.child("mods/");
|
||||||
schematicDirectory = dataDirectory.child("schematics/");
|
schematicDirectory = dataDirectory.child("schematics/");
|
||||||
|
bebuildDirectory = dataDirectory.child("be_builds/");
|
||||||
|
|
||||||
modDirectory.mkdirs();
|
modDirectory.mkdirs();
|
||||||
|
|
||||||
@@ -268,6 +275,31 @@ public class Vars implements Loadable{
|
|||||||
maps.load();
|
maps.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void loadLogger(){
|
||||||
|
if(loadedLogger) return;
|
||||||
|
|
||||||
|
String[] tags = {"[green][D][]", "[royal][I][]", "[yellow][W][]", "[scarlet][E][]", ""};
|
||||||
|
String[] stags = {"&lc&fb[D]", "&lg&fb[I]", "&ly&fb[W]", "&lr&fb[E]", ""};
|
||||||
|
|
||||||
|
Array<String> logBuffer = new Array<>();
|
||||||
|
Log.setLogger((level, text, args) -> {
|
||||||
|
String result = Log.format(text, args);
|
||||||
|
System.out.println(Log.format(stags[level.ordinal()] + "&fr " + text, args));
|
||||||
|
|
||||||
|
result = tags[level.ordinal()] + " " + result;
|
||||||
|
|
||||||
|
if(!headless && (ui == null || ui.scriptfrag == null)){
|
||||||
|
logBuffer.add(result);
|
||||||
|
}else if(!headless){
|
||||||
|
ui.scriptfrag.addMessage(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Events.on(ClientLoadEvent.class, e -> logBuffer.each(ui.scriptfrag::addMessage));
|
||||||
|
|
||||||
|
loadedLogger = true;
|
||||||
|
}
|
||||||
|
|
||||||
public static void loadSettings(){
|
public static void loadSettings(){
|
||||||
Core.settings.setAppName(appName);
|
Core.settings.setAppName(appName);
|
||||||
|
|
||||||
@@ -275,7 +307,7 @@ public class Vars implements Loadable{
|
|||||||
Core.settings.setDataDirectory(Core.files.local("saves/"));
|
Core.settings.setDataDirectory(Core.files.local("saves/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
Core.settings.defaults("locale", "default");
|
Core.settings.defaults("locale", "default", "blocksync", true);
|
||||||
Core.keybinds.setDefaults(Binding.values());
|
Core.keybinds.setDefaults(Binding.values());
|
||||||
Core.settings.load();
|
Core.settings.load();
|
||||||
|
|
||||||
@@ -285,7 +317,7 @@ public class Vars implements Loadable{
|
|||||||
|
|
||||||
try{
|
try{
|
||||||
//try loading external bundle
|
//try loading external bundle
|
||||||
FileHandle handle = Core.files.local("bundle");
|
Fi handle = Core.files.local("bundle");
|
||||||
|
|
||||||
Locale locale = Locale.ENGLISH;
|
Locale locale = Locale.ENGLISH;
|
||||||
Core.bundle = I18NBundle.createBundle(handle, locale);
|
Core.bundle = I18NBundle.createBundle(handle, locale);
|
||||||
@@ -298,7 +330,7 @@ public class Vars implements Loadable{
|
|||||||
}catch(Throwable e){
|
}catch(Throwable e){
|
||||||
//no external bundle found
|
//no external bundle found
|
||||||
|
|
||||||
FileHandle handle = Core.files.internal("bundles/bundle");
|
Fi handle = Core.files.internal("bundles/bundle");
|
||||||
Locale locale;
|
Locale locale;
|
||||||
String loc = Core.settings.getString("locale");
|
String loc = Core.settings.getString("locale");
|
||||||
if(loc.equals("default")){
|
if(loc.equals("default")){
|
||||||
@@ -1,21 +1,21 @@
|
|||||||
package io.anuke.mindustry.ai;
|
package mindustry.ai;
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
import arc.*;
|
||||||
import io.anuke.arc.collection.*;
|
import arc.func.*;
|
||||||
import io.anuke.arc.func.*;
|
import arc.math.*;
|
||||||
import io.anuke.arc.math.*;
|
import arc.math.geom.*;
|
||||||
import io.anuke.arc.math.geom.*;
|
import arc.struct.*;
|
||||||
import io.anuke.mindustry.content.*;
|
import mindustry.content.*;
|
||||||
import io.anuke.mindustry.entities.type.*;
|
import mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import io.anuke.mindustry.game.*;
|
import mindustry.game.*;
|
||||||
import io.anuke.mindustry.game.Teams.*;
|
import mindustry.game.Teams.*;
|
||||||
import io.anuke.mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import io.anuke.mindustry.world.*;
|
import mindustry.world.*;
|
||||||
import io.anuke.mindustry.world.blocks.*;
|
import mindustry.world.blocks.*;
|
||||||
import io.anuke.mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
/** Class used for indexing special target blocks for AI. */
|
/** Class used for indexing special target blocks for AI. */
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@@ -28,15 +28,15 @@ public class BlockIndexer{
|
|||||||
private final ObjectSet<Item> itemSet = new ObjectSet<>();
|
private final ObjectSet<Item> itemSet = new ObjectSet<>();
|
||||||
/** Stores all ore quadtrants on the map. */
|
/** Stores all ore quadtrants on the map. */
|
||||||
private ObjectMap<Item, ObjectSet<Tile>> ores = new ObjectMap<>();
|
private ObjectMap<Item, ObjectSet<Tile>> ores = new ObjectMap<>();
|
||||||
/** Tags all quadrants. */
|
/** Maps each team ID to a quarant. A quadrant is a grid of bits, where each bit is set if and only if there is a block of that team in that quadrant. */
|
||||||
private GridBits[] structQuadrants;
|
private GridBits[] structQuadrants;
|
||||||
/** Stores all damaged tile entities by team. */
|
/** Stores all damaged tile entities by team. */
|
||||||
private ObjectSet<Tile>[] damagedTiles = new ObjectSet[Team.all.length];
|
private ObjectSet<Tile>[] damagedTiles = new ObjectSet[Team.all().length];
|
||||||
/**All ores available on this map.*/
|
/**All ores available on this map.*/
|
||||||
private ObjectSet<Item> allOres = new ObjectSet<>();
|
private ObjectSet<Item> allOres = new ObjectSet<>();
|
||||||
|
|
||||||
/** Maps teams to a map of flagged tiles by type. */
|
/** Maps teams to a map of flagged tiles by type. */
|
||||||
private ObjectSet<Tile>[][] flagMap = new ObjectSet[Team.all.length][BlockFlag.all.length];
|
private ObjectSet<Tile>[][] flagMap = new ObjectSet[Team.all().length][BlockFlag.all.length];
|
||||||
/** Maps tile positions to their last known tile index data. */
|
/** Maps tile positions to their last known tile index data. */
|
||||||
private IntMap<TileIndex> typeMap = new IntMap<>();
|
private IntMap<TileIndex> typeMap = new IntMap<>();
|
||||||
/** Empty set used for returning. */
|
/** Empty set used for returning. */
|
||||||
@@ -59,8 +59,8 @@ public class BlockIndexer{
|
|||||||
Events.on(WorldLoadEvent.class, event -> {
|
Events.on(WorldLoadEvent.class, event -> {
|
||||||
scanOres.clear();
|
scanOres.clear();
|
||||||
scanOres.addAll(Item.getAllOres());
|
scanOres.addAll(Item.getAllOres());
|
||||||
damagedTiles = new ObjectSet[Team.all.length];
|
damagedTiles = new ObjectSet[Team.all().length];
|
||||||
flagMap = new ObjectSet[Team.all.length][BlockFlag.all.length];
|
flagMap = new ObjectSet[Team.all().length][BlockFlag.all.length];
|
||||||
|
|
||||||
for(int i = 0; i < flagMap.length; i++){
|
for(int i = 0; i < flagMap.length; i++){
|
||||||
for(int j = 0; j < BlockFlag.all.length; j++){
|
for(int j = 0; j < BlockFlag.all.length; j++){
|
||||||
@@ -73,10 +73,7 @@ public class BlockIndexer{
|
|||||||
ores = null;
|
ores = null;
|
||||||
|
|
||||||
//create bitset for each team type that contains each quadrant
|
//create bitset for each team type that contains each quadrant
|
||||||
structQuadrants = new GridBits[Team.all.length];
|
structQuadrants = new GridBits[Team.all().length];
|
||||||
for(int i = 0; i < Team.all.length; i++){
|
|
||||||
structQuadrants[i] = new GridBits(Mathf.ceil(world.width() / (float)quadrantSize), Mathf.ceil(world.height() / (float)quadrantSize));
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int x = 0; x < world.width(); x++){
|
for(int x = 0; x < world.width(); x++){
|
||||||
for(int y = 0; y < world.height(); y++){
|
for(int y = 0; y < world.height(); y++){
|
||||||
@@ -103,7 +100,31 @@ public class BlockIndexer{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ObjectSet<Tile>[] getFlagged(Team team){
|
private ObjectSet<Tile>[] getFlagged(Team team){
|
||||||
return flagMap[team.ordinal()];
|
return flagMap[team.id];
|
||||||
|
}
|
||||||
|
|
||||||
|
private GridBits structQuadrant(Team t){
|
||||||
|
if(structQuadrants[t.id] == null){
|
||||||
|
structQuadrants[t.id] = new GridBits(Mathf.ceil(world.width() / (float)quadrantSize), Mathf.ceil(world.height() / (float)quadrantSize));
|
||||||
|
}
|
||||||
|
return structQuadrants[t.id];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Updates all the structure quadrants for a newly activated team. */
|
||||||
|
public void updateTeamIndex(Team team){
|
||||||
|
if(structQuadrants == null) return;
|
||||||
|
|
||||||
|
//go through every tile... ouch
|
||||||
|
for(int x = 0; x < world.width(); x++){
|
||||||
|
for(int y = 0; y < world.height(); y++){
|
||||||
|
Tile tile = world.tile(x, y);
|
||||||
|
if(tile.getTeam() == team){
|
||||||
|
int quadrantX = tile.x / quadrantSize;
|
||||||
|
int quadrantY = tile.y / quadrantSize;
|
||||||
|
structQuadrant(team).set(quadrantX, quadrantY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return whether this item is present on this map.*/
|
/** @return whether this item is present on this map.*/
|
||||||
@@ -115,11 +136,11 @@ public class BlockIndexer{
|
|||||||
public ObjectSet<Tile> getDamaged(Team team){
|
public ObjectSet<Tile> getDamaged(Team team){
|
||||||
returnArray.clear();
|
returnArray.clear();
|
||||||
|
|
||||||
if(damagedTiles[team.ordinal()] == null){
|
if(damagedTiles[team.id] == null){
|
||||||
damagedTiles[team.ordinal()] = new ObjectSet<>();
|
damagedTiles[team.id] = new ObjectSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjectSet<Tile> set = damagedTiles[team.ordinal()];
|
ObjectSet<Tile> set = damagedTiles[team.id];
|
||||||
for(Tile tile : set){
|
for(Tile tile : set){
|
||||||
if((tile.entity == null || tile.entity.getTeam() != team || !tile.entity.damaged()) || tile.block() instanceof BuildBlock){
|
if((tile.entity == null || tile.entity.getTeam() != team || !tile.entity.damaged()) || tile.block() instanceof BuildBlock){
|
||||||
returnArray.add(tile);
|
returnArray.add(tile);
|
||||||
@@ -135,13 +156,13 @@ public class BlockIndexer{
|
|||||||
|
|
||||||
/** Get all allied blocks with a flag. */
|
/** Get all allied blocks with a flag. */
|
||||||
public ObjectSet<Tile> getAllied(Team team, BlockFlag type){
|
public ObjectSet<Tile> getAllied(Team team, BlockFlag type){
|
||||||
return flagMap[team.ordinal()][type.ordinal()];
|
return flagMap[team.id][type.ordinal()];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get all enemy blocks with a flag. */
|
/** Get all enemy blocks with a flag. */
|
||||||
public Array<Tile> getEnemy(Team team, BlockFlag type){
|
public Array<Tile> getEnemy(Team team, BlockFlag type){
|
||||||
returnArray.clear();
|
returnArray.clear();
|
||||||
for(Team enemy : state.teams.enemiesOf(team)){
|
for(Team enemy : team.enemies()){
|
||||||
if(state.teams.isActive(enemy)){
|
if(state.teams.isActive(enemy)){
|
||||||
ObjectSet<Tile> set = getFlagged(enemy)[type.ordinal()];
|
ObjectSet<Tile> set = getFlagged(enemy)[type.ordinal()];
|
||||||
if(set != null){
|
if(set != null){
|
||||||
@@ -155,11 +176,11 @@ public class BlockIndexer{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void notifyTileDamaged(TileEntity entity){
|
public void notifyTileDamaged(TileEntity entity){
|
||||||
if(damagedTiles[entity.getTeam().ordinal()] == null){
|
if(damagedTiles[(int)entity.getTeam().id] == null){
|
||||||
damagedTiles[entity.getTeam().ordinal()] = new ObjectSet<>();
|
damagedTiles[(int)entity.getTeam().id] = new ObjectSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjectSet<Tile> set = damagedTiles[entity.getTeam().ordinal()];
|
ObjectSet<Tile> set = damagedTiles[(int)entity.getTeam().id];
|
||||||
set.add(entity.tile);
|
set.add(entity.tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,16 +303,16 @@ public class BlockIndexer{
|
|||||||
int quadrantY = tile.y / quadrantSize;
|
int quadrantY = tile.y / quadrantSize;
|
||||||
int index = quadrantX + quadrantY * quadWidth();
|
int index = quadrantX + quadrantY * quadWidth();
|
||||||
|
|
||||||
for(Team team : Team.all){
|
for(TeamData data : state.teams.getActive()){
|
||||||
TeamData data = state.teams.get(team);
|
GridBits bits = structQuadrant(data.team);
|
||||||
|
|
||||||
//fast-set this quadrant to 'occupied' if the tile just placed is already of this team
|
//fast-set this quadrant to 'occupied' if the tile just placed is already of this team
|
||||||
if(tile.getTeam() == data.team && tile.entity != null && tile.block().targetable){
|
if(tile.getTeam() == data.team && tile.entity != null && tile.block().targetable){
|
||||||
structQuadrants[data.team.ordinal()].set(quadrantX, quadrantY);
|
bits.set(quadrantX, quadrantY);
|
||||||
continue; //no need to process futher
|
continue; //no need to process futher
|
||||||
}
|
}
|
||||||
|
|
||||||
structQuadrants[data.team.ordinal()].set(quadrantX, quadrantY, false);
|
bits.set(quadrantX, quadrantY, false);
|
||||||
|
|
||||||
outer:
|
outer:
|
||||||
for(int x = quadrantX * quadrantSize; x < world.width() && x < (quadrantX + 1) * quadrantSize; x++){
|
for(int x = quadrantX * quadrantSize; x < world.width() && x < (quadrantX + 1) * quadrantSize; x++){
|
||||||
@@ -299,7 +320,7 @@ public class BlockIndexer{
|
|||||||
Tile result = world.ltile(x, y);
|
Tile result = world.ltile(x, y);
|
||||||
//when a targetable block is found, mark this quadrant as occupied and stop searching
|
//when a targetable block is found, mark this quadrant as occupied and stop searching
|
||||||
if(result.entity != null && result.getTeam() == data.team){
|
if(result.entity != null && result.getTeam() == data.team){
|
||||||
structQuadrants[data.team.ordinal()].set(quadrantX, quadrantY);
|
bits.set(quadrantX, quadrantY);
|
||||||
break outer;
|
break outer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -308,7 +329,7 @@ public class BlockIndexer{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean getQuad(Team team, int quadrantX, int quadrantY){
|
private boolean getQuad(Team team, int quadrantX, int quadrantY){
|
||||||
return structQuadrants[team.ordinal()].get(quadrantX, quadrantY);
|
return structQuadrant(team).get(quadrantX, quadrantY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int quadWidth(){
|
private int quadWidth(){
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
package io.anuke.mindustry.ai;
|
package mindustry.ai;
|
||||||
|
|
||||||
import io.anuke.annotations.Annotations.*;
|
import arc.*;
|
||||||
import io.anuke.arc.*;
|
import mindustry.annotations.Annotations.*;
|
||||||
import io.anuke.arc.collection.*;
|
import arc.struct.*;
|
||||||
import io.anuke.arc.func.*;
|
import arc.func.*;
|
||||||
import io.anuke.arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import io.anuke.arc.util.*;
|
import arc.util.*;
|
||||||
import io.anuke.arc.util.ArcAnnotate.*;
|
import arc.util.ArcAnnotate.*;
|
||||||
import io.anuke.arc.util.async.*;
|
import arc.util.async.*;
|
||||||
import io.anuke.mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import io.anuke.mindustry.game.*;
|
import mindustry.game.*;
|
||||||
import io.anuke.mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import io.anuke.mindustry.world.*;
|
import mindustry.world.*;
|
||||||
import io.anuke.mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class Pathfinder implements Runnable{
|
public class Pathfinder implements Runnable{
|
||||||
private static final long maxUpdate = Time.millisToNanos(4);
|
private static final long maxUpdate = Time.millisToNanos(4);
|
||||||
@@ -27,9 +27,9 @@ public class Pathfinder implements Runnable{
|
|||||||
/** unordered array of path data for iteration only. DO NOT iterate ot access this in the main thread.*/
|
/** unordered array of path data for iteration only. DO NOT iterate ot access this in the main thread.*/
|
||||||
private Array<PathData> list = new Array<>();
|
private Array<PathData> list = new Array<>();
|
||||||
/** Maps teams + flags to a valid path to get to that flag for that team. */
|
/** Maps teams + flags to a valid path to get to that flag for that team. */
|
||||||
private PathData[][] pathMap = new PathData[Team.all.length][PathTarget.all.length];
|
private PathData[][] pathMap = new PathData[Team.all().length][PathTarget.all.length];
|
||||||
/** Grid map of created path data that should not be queued again. */
|
/** Grid map of created path data that should not be queued again. */
|
||||||
private GridBits created = new GridBits(Team.all.length, PathTarget.all.length);
|
private GridBits created = new GridBits(Team.all().length, PathTarget.all.length);
|
||||||
/** handles task scheduling on the update thread. */
|
/** handles task scheduling on the update thread. */
|
||||||
private TaskQueue queue = new TaskQueue();
|
private TaskQueue queue = new TaskQueue();
|
||||||
/** current pathfinding thread */
|
/** current pathfinding thread */
|
||||||
@@ -42,8 +42,8 @@ public class Pathfinder implements Runnable{
|
|||||||
|
|
||||||
//reset and update internal tile array
|
//reset and update internal tile array
|
||||||
tiles = new int[world.width()][world.height()];
|
tiles = new int[world.width()][world.height()];
|
||||||
pathMap = new PathData[Team.all.length][PathTarget.all.length];
|
pathMap = new PathData[Team.all().length][PathTarget.all.length];
|
||||||
created = new GridBits(Team.all.length, PathTarget.all.length);
|
created = new GridBits(Team.all().length, PathTarget.all.length);
|
||||||
list = new Array<>();
|
list = new Array<>();
|
||||||
|
|
||||||
for(int x = 0; x < world.width(); x++){
|
for(int x = 0; x < world.width(); x++){
|
||||||
@@ -53,7 +53,7 @@ public class Pathfinder implements Runnable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//special preset which may help speed things up; this is optional
|
//special preset which may help speed things up; this is optional
|
||||||
preloadPath(waveTeam, PathTarget.enemyCores);
|
preloadPath(state.rules.waveTeam, PathTarget.enemyCores);
|
||||||
|
|
||||||
start();
|
start();
|
||||||
});
|
});
|
||||||
@@ -84,8 +84,8 @@ public class Pathfinder implements Runnable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int debugValue(Team team, int x, int y){
|
public int debugValue(Team team, int x, int y){
|
||||||
if(pathMap[team.ordinal()][PathTarget.enemyCores.ordinal()] == null) return 0;
|
if(pathMap[team.id][PathTarget.enemyCores.ordinal()] == null) return 0;
|
||||||
return pathMap[team.ordinal()][PathTarget.enemyCores.ordinal()].weights[x][y];
|
return pathMap[team.id][PathTarget.enemyCores.ordinal()].weights[x][y];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Update a tile in the internal pathfinding grid. Causes a complete pathfinding reclaculation. */
|
/** Update a tile in the internal pathfinding grid. Causes a complete pathfinding reclaculation. */
|
||||||
@@ -139,7 +139,7 @@ public class Pathfinder implements Runnable{
|
|||||||
//stop looping when interrupted externally
|
//stop looping when interrupted externally
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}catch(Exception e){
|
}catch(Throwable e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -149,12 +149,12 @@ public class Pathfinder implements Runnable{
|
|||||||
public Tile getTargetTile(Tile tile, Team team, PathTarget target){
|
public Tile getTargetTile(Tile tile, Team team, PathTarget target){
|
||||||
if(tile == null) return null;
|
if(tile == null) return null;
|
||||||
|
|
||||||
PathData data = pathMap[team.ordinal()][target.ordinal()];
|
PathData data = pathMap[team.id][target.ordinal()];
|
||||||
|
|
||||||
if(data == null){
|
if(data == null){
|
||||||
//if this combination is not found, create it on request
|
//if this combination is not found, create it on request
|
||||||
if(!created.get(team.ordinal(), target.ordinal())){
|
if(!created.get(team.id, target.ordinal())){
|
||||||
created.set(team.ordinal(), target.ordinal());
|
created.set(team.id, target.ordinal());
|
||||||
//grab targets since this is run on main thread
|
//grab targets since this is run on main thread
|
||||||
IntArray targets = target.getTargets(team, new IntArray());
|
IntArray targets = target.getTargets(team, new IntArray());
|
||||||
queue.post(() -> createPath(team, target, targets));
|
queue.post(() -> createPath(team, target, targets));
|
||||||
@@ -188,7 +188,7 @@ public class Pathfinder implements Runnable{
|
|||||||
/** @return whether a tile can be passed through by this team. Pathfinding thread only.*/
|
/** @return whether a tile can be passed through by this team. Pathfinding thread only.*/
|
||||||
private boolean passable(int x, int y, Team team){
|
private boolean passable(int x, int y, Team team){
|
||||||
int tile = tiles[x][y];
|
int tile = tiles[x][y];
|
||||||
return PathTile.passable(tile) || (PathTile.team(tile) != team.ordinal() && PathTile.team(tile) != Team.derelict.ordinal());
|
return PathTile.passable(tile) || (PathTile.team(tile) != team.id && PathTile.team(tile) != (int)Team.derelict.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -238,7 +238,7 @@ public class Pathfinder implements Runnable{
|
|||||||
PathData path = new PathData(team, target, world.width(), world.height());
|
PathData path = new PathData(team, target, world.width(), world.height());
|
||||||
|
|
||||||
list.add(path);
|
list.add(path);
|
||||||
pathMap[team.ordinal()][target.ordinal()] = path;
|
pathMap[team.id][target.ordinal()] = path;
|
||||||
|
|
||||||
//grab targets from passed array
|
//grab targets from passed array
|
||||||
synchronized(path.targets){
|
synchronized(path.targets){
|
||||||
@@ -303,7 +303,7 @@ public class Pathfinder implements Runnable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//spawn points are also enemies.
|
//spawn points are also enemies.
|
||||||
if(state.rules.waves && team == defaultTeam){
|
if(state.rules.waves && team == state.rules.defaultTeam){
|
||||||
for(Tile other : spawner.getGroundSpawns()){
|
for(Tile other : spawner.getGroundSpawns()){
|
||||||
out.add(other.pos());
|
out.add(other.pos());
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
package io.anuke.mindustry.ai;
|
package mindustry.ai;
|
||||||
|
|
||||||
import io.anuke.arc.Events;
|
import arc.Events;
|
||||||
import io.anuke.arc.collection.Array;
|
import arc.struct.Array;
|
||||||
import io.anuke.arc.func.Floatc2;
|
import arc.func.Floatc2;
|
||||||
import io.anuke.arc.math.Angles;
|
import arc.math.Angles;
|
||||||
import io.anuke.arc.math.Mathf;
|
import arc.math.Mathf;
|
||||||
import io.anuke.arc.util.Time;
|
import arc.util.Time;
|
||||||
import io.anuke.arc.util.Tmp;
|
import arc.util.Tmp;
|
||||||
import io.anuke.mindustry.content.Blocks;
|
import mindustry.content.Blocks;
|
||||||
import io.anuke.mindustry.content.Fx;
|
import mindustry.content.Fx;
|
||||||
import io.anuke.mindustry.entities.Damage;
|
import mindustry.entities.Damage;
|
||||||
import io.anuke.mindustry.entities.Effects;
|
import mindustry.entities.Effects;
|
||||||
import io.anuke.mindustry.entities.type.BaseUnit;
|
import mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.game.EventType.WorldLoadEvent;
|
import mindustry.game.EventType.WorldLoadEvent;
|
||||||
import io.anuke.mindustry.game.SpawnGroup;
|
import mindustry.game.SpawnGroup;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import mindustry.world.Tile;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class WaveSpawner{
|
public class WaveSpawner{
|
||||||
private static final float margin = 40f, coreMargin = tilesize * 3; //how far away from the edge flying units spawn
|
private static final float margin = 40f, coreMargin = tilesize * 3; //how far away from the edge flying units spawn
|
||||||
@@ -53,7 +53,7 @@ public class WaveSpawner{
|
|||||||
|
|
||||||
eachFlyerSpawn((spawnX, spawnY) -> {
|
eachFlyerSpawn((spawnX, spawnY) -> {
|
||||||
for(int i = 0; i < spawned; i++){
|
for(int i = 0; i < spawned; i++){
|
||||||
BaseUnit unit = group.createUnit(waveTeam);
|
BaseUnit unit = group.createUnit(state.rules.waveTeam);
|
||||||
unit.set(spawnX + Mathf.range(spread), spawnY + Mathf.range(spread));
|
unit.set(spawnX + Mathf.range(spread), spawnY + Mathf.range(spread));
|
||||||
unit.add();
|
unit.add();
|
||||||
}
|
}
|
||||||
@@ -66,7 +66,7 @@ public class WaveSpawner{
|
|||||||
for(int i = 0; i < spawned; i++){
|
for(int i = 0; i < spawned; i++){
|
||||||
Tmp.v1.rnd(spread);
|
Tmp.v1.rnd(spread);
|
||||||
|
|
||||||
BaseUnit unit = group.createUnit(waveTeam);
|
BaseUnit unit = group.createUnit(state.rules.waveTeam);
|
||||||
unit.set(spawnX + Tmp.v1.x, spawnY + Tmp.v1.y);
|
unit.set(spawnX + Tmp.v1.x, spawnY + Tmp.v1.y);
|
||||||
|
|
||||||
Time.run(Math.min(i * 5, 60 * 2), () -> spawnEffect(unit));
|
Time.run(Math.min(i * 5, 60 * 2), () -> spawnEffect(unit));
|
||||||
@@ -78,7 +78,7 @@ public class WaveSpawner{
|
|||||||
eachGroundSpawn((spawnX, spawnY, doShockwave) -> {
|
eachGroundSpawn((spawnX, spawnY, doShockwave) -> {
|
||||||
if(doShockwave){
|
if(doShockwave){
|
||||||
Time.run(20f, () -> Effects.effect(Fx.spawnShockwave, spawnX, spawnY, state.rules.dropZoneRadius));
|
Time.run(20f, () -> Effects.effect(Fx.spawnShockwave, spawnX, spawnY, state.rules.dropZoneRadius));
|
||||||
Time.run(40f, () -> Damage.damage(waveTeam, spawnX, spawnY, state.rules.dropZoneRadius, 99999999f, true));
|
Time.run(40f, () -> Damage.damage(state.rules.waveTeam, spawnX, spawnY, state.rules.dropZoneRadius, 99999999f, true));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -90,11 +90,11 @@ public class WaveSpawner{
|
|||||||
cons.accept(spawn.worldx(), spawn.worldy(), true);
|
cons.accept(spawn.worldx(), spawn.worldy(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state.rules.attackMode && state.teams.isActive(waveTeam) && !state.teams.get(defaultTeam).cores.isEmpty()){
|
if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam) && !state.teams.playerCores().isEmpty()){
|
||||||
Tile firstCore = state.teams.get(defaultTeam).cores.first();
|
TileEntity firstCore = state.teams.playerCores().first();
|
||||||
for(Tile core : state.teams.get(waveTeam).cores){
|
for(TileEntity core : state.rules.waveTeam.cores()){
|
||||||
Tmp.v1.set(firstCore).sub(core.worldx(), core.worldy()).limit(coreMargin + core.block().size*tilesize);
|
Tmp.v1.set(firstCore).sub(core.x, core.y).limit(coreMargin + core.block.size*tilesize);
|
||||||
cons.accept(core.worldx() + Tmp.v1.x, core.worldy() + Tmp.v1.y, false);
|
cons.accept(core.x + Tmp.v1.x, core.y + Tmp.v1.y, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -107,9 +107,9 @@ public class WaveSpawner{
|
|||||||
cons.get(spawnX, spawnY);
|
cons.get(spawnX, spawnY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state.rules.attackMode && state.teams.isActive(waveTeam)){
|
if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam)){
|
||||||
for(Tile core : state.teams.get(waveTeam).cores){
|
for(TileEntity core : state.teams.get(state.rules.waveTeam).cores){
|
||||||
cons.get(core.worldx(), core.worldy());
|
cons.get(core.x, core.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,35 +1,34 @@
|
|||||||
package io.anuke.mindustry.content;
|
package mindustry.content;
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
import arc.*;
|
||||||
import io.anuke.arc.collection.*;
|
import arc.struct.*;
|
||||||
import io.anuke.arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import io.anuke.arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import io.anuke.arc.math.*;
|
import arc.math.*;
|
||||||
import io.anuke.arc.util.*;
|
import arc.util.*;
|
||||||
import io.anuke.mindustry.*;
|
import mindustry.*;
|
||||||
import io.anuke.mindustry.ctype.ContentList;
|
import mindustry.ctype.*;
|
||||||
import io.anuke.mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
import io.anuke.mindustry.entities.bullet.*;
|
import mindustry.entities.bullet.*;
|
||||||
import io.anuke.mindustry.entities.type.*;
|
import mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import io.anuke.mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import io.anuke.mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import io.anuke.mindustry.world.*;
|
import mindustry.world.*;
|
||||||
import io.anuke.mindustry.world.blocks.*;
|
import mindustry.world.blocks.*;
|
||||||
import io.anuke.mindustry.world.blocks.defense.*;
|
import mindustry.world.blocks.defense.*;
|
||||||
import io.anuke.mindustry.world.blocks.defense.turrets.*;
|
import mindustry.world.blocks.defense.turrets.*;
|
||||||
import io.anuke.mindustry.world.blocks.distribution.*;
|
import mindustry.world.blocks.distribution.*;
|
||||||
import io.anuke.mindustry.world.blocks.liquid.Conduit;
|
import mindustry.world.blocks.liquid.*;
|
||||||
import io.anuke.mindustry.world.blocks.liquid.LiquidTank;
|
import mindustry.world.blocks.logic.*;
|
||||||
import io.anuke.mindustry.world.blocks.logic.*;
|
import mindustry.world.blocks.power.*;
|
||||||
import io.anuke.mindustry.world.blocks.power.*;
|
import mindustry.world.blocks.production.*;
|
||||||
import io.anuke.mindustry.world.blocks.production.*;
|
import mindustry.world.blocks.sandbox.*;
|
||||||
import io.anuke.mindustry.world.blocks.sandbox.*;
|
import mindustry.world.blocks.storage.*;
|
||||||
import io.anuke.mindustry.world.blocks.storage.*;
|
import mindustry.world.blocks.units.*;
|
||||||
import io.anuke.mindustry.world.blocks.units.*;
|
import mindustry.world.consumers.*;
|
||||||
import io.anuke.mindustry.world.consumers.*;
|
import mindustry.world.meta.*;
|
||||||
import io.anuke.mindustry.world.meta.*;
|
import mindustry.world.modules.*;
|
||||||
import io.anuke.mindustry.world.modules.*;
|
|
||||||
|
|
||||||
public class Blocks implements ContentList{
|
public class Blocks implements ContentList{
|
||||||
public static Block
|
public static Block
|
||||||
@@ -485,7 +484,7 @@ public class Blocks implements ContentList{
|
|||||||
drawer = tile -> {
|
drawer = tile -> {
|
||||||
Draw.rect(region, tile.drawx(), tile.drawy());
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
|
|
||||||
GenericCrafterEntity entity = tile.entity();
|
GenericCrafterEntity entity = tile.ent();
|
||||||
|
|
||||||
Draw.alpha(Mathf.absin(entity.totalProgress, 3f, 0.9f) * entity.warmup);
|
Draw.alpha(Mathf.absin(entity.totalProgress, 3f, 0.9f) * entity.warmup);
|
||||||
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy());
|
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy());
|
||||||
@@ -510,7 +509,7 @@ public class Blocks implements ContentList{
|
|||||||
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name), Core.atlas.find(name + "-weave")};
|
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name), Core.atlas.find(name + "-weave")};
|
||||||
|
|
||||||
drawer = tile -> {
|
drawer = tile -> {
|
||||||
GenericCrafterEntity entity = tile.entity();
|
GenericCrafterEntity entity = tile.ent();
|
||||||
|
|
||||||
Draw.rect(reg(bottomRegion), tile.drawx(), tile.drawy());
|
Draw.rect(reg(bottomRegion), tile.drawx(), tile.drawy());
|
||||||
Draw.rect(reg(weaveRegion), tile.drawx(), tile.drawy(), entity.totalProgress);
|
Draw.rect(reg(weaveRegion), tile.drawx(), tile.drawy(), entity.totalProgress);
|
||||||
@@ -660,7 +659,7 @@ public class Blocks implements ContentList{
|
|||||||
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-top")};
|
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-top")};
|
||||||
|
|
||||||
drawer = tile -> {
|
drawer = tile -> {
|
||||||
GenericCrafterEntity entity = tile.entity();
|
GenericCrafterEntity entity = tile.ent();
|
||||||
|
|
||||||
Draw.rect(region, tile.drawx(), tile.drawy());
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
Draw.rect(reg(frameRegions[(int)Mathf.absin(entity.totalProgress, 5f, 2.999f)]), tile.drawx(), tile.drawy());
|
Draw.rect(reg(frameRegions[(int)Mathf.absin(entity.totalProgress, 5f, 2.999f)]), tile.drawx(), tile.drawy());
|
||||||
@@ -687,7 +686,7 @@ public class Blocks implements ContentList{
|
|||||||
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-rotator")};
|
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-rotator")};
|
||||||
|
|
||||||
drawer = tile -> {
|
drawer = tile -> {
|
||||||
GenericCrafterEntity entity = tile.entity();
|
GenericCrafterEntity entity = tile.ent();
|
||||||
|
|
||||||
Draw.rect(region, tile.drawx(), tile.drawy());
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
Draw.rect(reg(rotatorRegion), tile.drawx(), tile.drawy(), entity.totalProgress * 2f);
|
Draw.rect(reg(rotatorRegion), tile.drawx(), tile.drawy(), entity.totalProgress * 2f);
|
||||||
@@ -915,6 +914,7 @@ public class Blocks implements ContentList{
|
|||||||
phaseConveyor = new ItemBridge("phase-conveyor"){{
|
phaseConveyor = new ItemBridge("phase-conveyor"){{
|
||||||
requirements(Category.distribution, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10));
|
requirements(Category.distribution, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10));
|
||||||
range = 12;
|
range = 12;
|
||||||
|
canOverdrive = false;
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
consumes.power(0.30f);
|
consumes.power(0.30f);
|
||||||
}};
|
}};
|
||||||
@@ -977,7 +977,7 @@ public class Blocks implements ContentList{
|
|||||||
size = 3;
|
size = 3;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
conduit = new io.anuke.mindustry.world.blocks.liquid.Conduit("conduit"){{
|
conduit = new Conduit("conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.metaglass, 1));
|
requirements(Category.liquid, ItemStack.with(Items.metaglass, 1));
|
||||||
health = 45;
|
health = 45;
|
||||||
}};
|
}};
|
||||||
@@ -989,14 +989,14 @@ public class Blocks implements ContentList{
|
|||||||
health = 90;
|
health = 90;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
platedConduit = new io.anuke.mindustry.world.blocks.liquid.ArmoredConduit("plated-conduit"){{
|
platedConduit = new ArmoredConduit("plated-conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.thorium, 2, Items.metaglass, 1));
|
requirements(Category.liquid, ItemStack.with(Items.thorium, 2, Items.metaglass, 1, Items.plastanium, 1));
|
||||||
liquidCapacity = 16f;
|
liquidCapacity = 16f;
|
||||||
liquidPressure = 1.025f;
|
liquidPressure = 1.025f;
|
||||||
health = 220;
|
health = 220;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
liquidRouter = new io.anuke.mindustry.world.blocks.liquid.LiquidRouter("liquid-router"){{
|
liquidRouter = new LiquidRouter("liquid-router"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 2));
|
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 2));
|
||||||
liquidCapacity = 20f;
|
liquidCapacity = 20f;
|
||||||
}};
|
}};
|
||||||
@@ -1008,20 +1008,21 @@ public class Blocks implements ContentList{
|
|||||||
health = 500;
|
health = 500;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
liquidJunction = new io.anuke.mindustry.world.blocks.liquid.LiquidJunction("liquid-junction"){{
|
liquidJunction = new LiquidJunction("liquid-junction"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.graphite, 2, Items.metaglass, 2));
|
requirements(Category.liquid, ItemStack.with(Items.graphite, 2, Items.metaglass, 2));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
bridgeConduit = new io.anuke.mindustry.world.blocks.liquid.LiquidExtendingBridge("bridge-conduit"){{
|
bridgeConduit = new LiquidExtendingBridge("bridge-conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 8));
|
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 8));
|
||||||
range = 4;
|
range = 4;
|
||||||
hasPower = false;
|
hasPower = false;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
phaseConduit = new io.anuke.mindustry.world.blocks.liquid.LiquidBridge("phase-conduit"){{
|
phaseConduit = new LiquidBridge("phase-conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10));
|
requirements(Category.liquid, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10));
|
||||||
range = 12;
|
range = 12;
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
|
canOverdrive = false;
|
||||||
consumes.power(0.30f);
|
consumes.power(0.30f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -1233,7 +1234,7 @@ public class Blocks implements ContentList{
|
|||||||
//region storage
|
//region storage
|
||||||
|
|
||||||
coreShard = new CoreBlock("core-shard"){{
|
coreShard = new CoreBlock("core-shard"){{
|
||||||
requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with(Items.titanium, 4000));
|
requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with());
|
||||||
alwaysUnlocked = true;
|
alwaysUnlocked = true;
|
||||||
|
|
||||||
health = 1100;
|
health = 1100;
|
||||||
@@ -1242,7 +1243,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
coreFoundation = new CoreBlock("core-foundation"){{
|
coreFoundation = new CoreBlock("core-foundation"){{
|
||||||
requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with(Items.titanium, 400, Items.silicon, 3000));
|
requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with());
|
||||||
|
|
||||||
health = 2000;
|
health = 2000;
|
||||||
itemCapacity = 9000;
|
itemCapacity = 9000;
|
||||||
@@ -1250,7 +1251,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
coreNucleus = new CoreBlock("core-nucleus"){{
|
coreNucleus = new CoreBlock("core-nucleus"){{
|
||||||
requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with(Items.titanium, 4000, Items.silicon, 2000, Items.surgealloy, 3000));
|
requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with());
|
||||||
|
|
||||||
health = 4000;
|
health = 4000;
|
||||||
itemCapacity = 13000;
|
itemCapacity = 13000;
|
||||||
@@ -1359,7 +1360,7 @@ public class Blocks implements ContentList{
|
|||||||
ammo(
|
ammo(
|
||||||
Items.graphite, Bullets.artilleryDense,
|
Items.graphite, Bullets.artilleryDense,
|
||||||
Items.silicon, Bullets.artilleryHoming,
|
Items.silicon, Bullets.artilleryHoming,
|
||||||
Items.pyratite, Bullets.artlleryIncendiary
|
Items.pyratite, Bullets.artilleryIncendiary
|
||||||
);
|
);
|
||||||
reload = 60f;
|
reload = 60f;
|
||||||
recoil = 2f;
|
recoil = 2f;
|
||||||
@@ -1387,15 +1388,6 @@ public class Blocks implements ContentList{
|
|||||||
range = 110f;
|
range = 110f;
|
||||||
health = 250 * size * size;
|
health = 250 * size * size;
|
||||||
shootSound = Sounds.splash;
|
shootSound = Sounds.splash;
|
||||||
|
|
||||||
drawer = (tile, entity) -> {
|
|
||||||
Draw.rect(region, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
|
|
||||||
|
|
||||||
Draw.color(entity.liquids.current().color);
|
|
||||||
Draw.alpha(entity.liquids.total() / liquidCapacity);
|
|
||||||
Draw.rect(name + "-liquid", tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
|
|
||||||
Draw.color();
|
|
||||||
};
|
|
||||||
}};
|
}};
|
||||||
|
|
||||||
lancer = new ChargeTurret("lancer"){{
|
lancer = new ChargeTurret("lancer"){{
|
||||||
@@ -1510,7 +1502,7 @@ public class Blocks implements ContentList{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(io.anuke.mindustry.entities.type.Bullet b){
|
public void init(mindustry.entities.type.Bullet b){
|
||||||
for(int i = 0; i < rays; i++){
|
for(int i = 0; i < rays; i++){
|
||||||
Damage.collideLine(b, b.getTeam(), hitEffect, b.x, b.y, b.rot(), rayLength - Math.abs(i - (rays / 2)) * 20f);
|
Damage.collideLine(b, b.getTeam(), hitEffect, b.x, b.y, b.rot(), rayLength - Math.abs(i - (rays / 2)) * 20f);
|
||||||
}
|
}
|
||||||
@@ -1539,9 +1531,9 @@ public class Blocks implements ContentList{
|
|||||||
ammo(
|
ammo(
|
||||||
Items.graphite, Bullets.artilleryDense,
|
Items.graphite, Bullets.artilleryDense,
|
||||||
Items.silicon, Bullets.artilleryHoming,
|
Items.silicon, Bullets.artilleryHoming,
|
||||||
Items.pyratite, Bullets.artlleryIncendiary,
|
Items.pyratite, Bullets.artilleryIncendiary,
|
||||||
Items.blastCompound, Bullets.artilleryExplosive,
|
Items.blastCompound, Bullets.artilleryExplosive,
|
||||||
Items.plastanium, Bullets.arilleryPlastic
|
Items.plastanium, Bullets.artilleryPlastic
|
||||||
);
|
);
|
||||||
size = 3;
|
size = 3;
|
||||||
shots = 4;
|
shots = 4;
|
||||||
@@ -1,24 +1,24 @@
|
|||||||
package io.anuke.mindustry.content;
|
package mindustry.content;
|
||||||
|
|
||||||
import io.anuke.arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import io.anuke.arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import io.anuke.arc.math.*;
|
import arc.math.*;
|
||||||
import io.anuke.arc.util.*;
|
import arc.util.*;
|
||||||
import io.anuke.mindustry.ctype.ContentList;
|
import mindustry.ctype.ContentList;
|
||||||
import io.anuke.mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
import io.anuke.mindustry.entities.bullet.*;
|
import mindustry.entities.bullet.*;
|
||||||
import io.anuke.mindustry.entities.effect.*;
|
import mindustry.entities.effect.*;
|
||||||
import io.anuke.mindustry.entities.type.*;
|
import mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import io.anuke.mindustry.world.*;
|
import mindustry.world.*;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class Bullets implements ContentList{
|
public class Bullets implements ContentList{
|
||||||
public static BulletType
|
public static BulletType
|
||||||
|
|
||||||
//artillery
|
//artillery
|
||||||
artilleryDense, arilleryPlastic, artilleryPlasticFrag, artilleryHoming, artlleryIncendiary, artilleryExplosive, artilleryUnit,
|
artilleryDense, artilleryPlastic, artilleryPlasticFrag, artilleryHoming, artilleryIncendiary, artilleryExplosive, artilleryUnit,
|
||||||
|
|
||||||
//flak
|
//flak
|
||||||
flakScrap, flakLead, flakPlastic, flakExplosive, flakSurge, flakGlass, glassFrag,
|
flakScrap, flakLead, flakPlastic, flakExplosive, flakSurge, flakGlass, glassFrag,
|
||||||
@@ -65,7 +65,7 @@ public class Bullets implements ContentList{
|
|||||||
despawnEffect = Fx.none;
|
despawnEffect = Fx.none;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
arilleryPlastic = new ArtilleryBulletType(3.4f, 0, "shell"){{
|
artilleryPlastic = new ArtilleryBulletType(3.4f, 0, "shell"){{
|
||||||
hitEffect = Fx.plasticExplosion;
|
hitEffect = Fx.plasticExplosion;
|
||||||
knockback = 1f;
|
knockback = 1f;
|
||||||
lifetime = 55f;
|
lifetime = 55f;
|
||||||
@@ -91,7 +91,7 @@ public class Bullets implements ContentList{
|
|||||||
homingRange = 50f;
|
homingRange = 50f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
artlleryIncendiary = new ArtilleryBulletType(3f, 0, "shell"){{
|
artilleryIncendiary = new ArtilleryBulletType(3f, 0, "shell"){{
|
||||||
hitEffect = Fx.blastExplosion;
|
hitEffect = Fx.blastExplosion;
|
||||||
knockback = 0.8f;
|
knockback = 0.8f;
|
||||||
lifetime = 60f;
|
lifetime = 60f;
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
package io.anuke.mindustry.content;
|
package mindustry.content;
|
||||||
|
|
||||||
import io.anuke.arc.*;
|
import arc.*;
|
||||||
import io.anuke.arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import io.anuke.arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import io.anuke.arc.math.*;
|
import arc.math.*;
|
||||||
import io.anuke.arc.util.*;
|
import arc.util.*;
|
||||||
import io.anuke.mindustry.ctype.ContentList;
|
import mindustry.ctype.ContentList;
|
||||||
import io.anuke.mindustry.entities.Effects.*;
|
import mindustry.entities.Effects.*;
|
||||||
import io.anuke.mindustry.entities.effect.GroundEffectEntity.*;
|
import mindustry.entities.effect.GroundEffectEntity.*;
|
||||||
import io.anuke.mindustry.entities.type.*;
|
import mindustry.entities.type.*;
|
||||||
import io.anuke.mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import io.anuke.mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import io.anuke.mindustry.ui.Cicon;
|
import mindustry.ui.Cicon;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class Fx implements ContentList{
|
public class Fx implements ContentList{
|
||||||
public static Effect
|
public static Effect
|
||||||
@@ -48,28 +48,24 @@ public class Fx implements ContentList{
|
|||||||
Draw.rect(unit.getIconRegion(), e.x, e.y,
|
Draw.rect(unit.getIconRegion(), e.x, e.y,
|
||||||
unit.getIconRegion().getWidth() * Draw.scl * scl, unit.getIconRegion().getWidth() * Draw.scl * scl, 180f);
|
unit.getIconRegion().getWidth() * Draw.scl * scl, unit.getIconRegion().getWidth() * Draw.scl * scl, 180f);
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
commandSend = new Effect(28, e -> {
|
commandSend = new Effect(28, e -> {
|
||||||
Draw.color(Pal.command);
|
Draw.color(Pal.command);
|
||||||
Lines.stroke(e.fout() * 2f);
|
Lines.stroke(e.fout() * 2f);
|
||||||
Lines.circle(e.x, e.y, 4f + e.finpow() * 120f);
|
Lines.circle(e.x, e.y, 4f + e.finpow() * 120f);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
placeBlock = new Effect(16, e -> {
|
placeBlock = new Effect(16, e -> {
|
||||||
Draw.color(Pal.accent);
|
Draw.color(Pal.accent);
|
||||||
Lines.stroke(3f - e.fin() * 2f);
|
Lines.stroke(3f - e.fin() * 2f);
|
||||||
Lines.square(e.x, e.y, tilesize / 2f * e.rotation + e.fin() * 3f);
|
Lines.square(e.x, e.y, tilesize / 2f * e.rotation + e.fin() * 3f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
tapBlock = new Effect(12, e -> {
|
tapBlock = new Effect(12, e -> {
|
||||||
Draw.color(Pal.accent);
|
Draw.color(Pal.accent);
|
||||||
Lines.stroke(3f - e.fin() * 2f);
|
Lines.stroke(3f - e.fin() * 2f);
|
||||||
Lines.circle(e.x, e.y, 4f + (tilesize / 1.5f * e.rotation) * e.fin());
|
Lines.circle(e.x, e.y, 4f + (tilesize / 1.5f * e.rotation) * e.fin());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
breakBlock = new Effect(12, e -> {
|
breakBlock = new Effect(12, e -> {
|
||||||
@@ -80,41 +76,35 @@ public class Fx implements ContentList{
|
|||||||
Angles.randLenVectors(e.id, 3 + (int)(e.rotation * 3), e.rotation * 2f + (tilesize * e.rotation) * e.finpow(), (x, y) -> {
|
Angles.randLenVectors(e.id, 3 + (int)(e.rotation * 3), e.rotation * 2f + (tilesize * e.rotation) * e.finpow(), (x, y) -> {
|
||||||
Fill.square(e.x + x, e.y + y, 1f + e.fout() * (3f + e.rotation));
|
Fill.square(e.x + x, e.y + y, 1f + e.fout() * (3f + e.rotation));
|
||||||
});
|
});
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
select = new Effect(23, e -> {
|
select = new Effect(23, e -> {
|
||||||
Draw.color(Pal.accent);
|
Draw.color(Pal.accent);
|
||||||
Lines.stroke(e.fout() * 3f);
|
Lines.stroke(e.fout() * 3f);
|
||||||
Lines.circle(e.x, e.y, 3f + e.fin() * 14f);
|
Lines.circle(e.x, e.y, 3f + e.fin() * 14f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
smoke = new Effect(100, e -> {
|
smoke = new Effect(100, e -> {
|
||||||
Draw.color(Color.gray, Pal.darkishGray, e.fin());
|
Draw.color(Color.gray, Pal.darkishGray, e.fin());
|
||||||
float size = 7f - e.fin() * 7f;
|
float size = 7f - e.fin() * 7f;
|
||||||
Draw.rect("circle", e.x, e.y, size, size);
|
Draw.rect("circle", e.x, e.y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
magmasmoke = new Effect(110, e -> {
|
magmasmoke = new Effect(110, e -> {
|
||||||
Draw.color(Color.gray);
|
Draw.color(Color.gray);
|
||||||
Fill.circle(e.x, e.y, e.fslope() * 6f);
|
Fill.circle(e.x, e.y, e.fslope() * 6f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
spawn = new Effect(30, e -> {
|
spawn = new Effect(30, e -> {
|
||||||
Lines.stroke(2f * e.fout());
|
Lines.stroke(2f * e.fout());
|
||||||
Draw.color(Pal.accent);
|
Draw.color(Pal.accent);
|
||||||
Lines.poly(e.x, e.y, 4, 5f + e.fin() * 12f);
|
Lines.poly(e.x, e.y, 4, 5f + e.fin() * 12f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
padlaunch = new Effect(10, e -> {
|
padlaunch = new Effect(10, e -> {
|
||||||
Lines.stroke(4f * e.fout());
|
Lines.stroke(4f * e.fout());
|
||||||
Draw.color(Pal.accent);
|
Draw.color(Pal.accent);
|
||||||
Lines.poly(e.x, e.y, 4, 5f + e.fin() * 60f);
|
Lines.poly(e.x, e.y, 4, 5f + e.fin() * 60f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
vtolHover = new Effect(40f, e -> {
|
vtolHover = new Effect(40f, e -> {
|
||||||
@@ -122,7 +112,6 @@ public class Fx implements ContentList{
|
|||||||
float ang = e.rotation + Mathf.randomSeedRange(e.id, 30f);
|
float ang = e.rotation + Mathf.randomSeedRange(e.id, 30f);
|
||||||
Draw.color(Pal.lightFlame, Pal.lightOrange, e.fin());
|
Draw.color(Pal.lightFlame, Pal.lightOrange, e.fin());
|
||||||
Fill.circle(e.x + Angles.trnsx(ang, len), e.y + Angles.trnsy(ang, len), 2f * e.fout());
|
Fill.circle(e.x + Angles.trnsx(ang, len), e.y + Angles.trnsy(ang, len), 2f * e.fout());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
unitDrop = new GroundEffect(30, e -> {
|
unitDrop = new GroundEffect(30, e -> {
|
||||||
@@ -130,7 +119,6 @@ public class Fx implements ContentList{
|
|||||||
Angles.randLenVectors(e.id, 9, 3 + 20f * e.finpow(), (x, y) -> {
|
Angles.randLenVectors(e.id, 9, 3 + 20f * e.finpow(), (x, y) -> {
|
||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.4f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.4f);
|
||||||
});
|
});
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
unitLand = new GroundEffect(30, e -> {
|
unitLand = new GroundEffect(30, e -> {
|
||||||
@@ -138,42 +126,36 @@ public class Fx implements ContentList{
|
|||||||
Angles.randLenVectors(e.id, 6, 17f * e.finpow(), (x, y) -> {
|
Angles.randLenVectors(e.id, 6, 17f * e.finpow(), (x, y) -> {
|
||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.3f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.3f);
|
||||||
});
|
});
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
unitPickup = new GroundEffect(18, e -> {
|
unitPickup = new GroundEffect(18, e -> {
|
||||||
Draw.color(Pal.lightishGray);
|
Draw.color(Pal.lightishGray);
|
||||||
Lines.stroke(e.fin() * 2f);
|
Lines.stroke(e.fin() * 2f);
|
||||||
Lines.poly(e.x, e.y, 4, 13f * e.fout());
|
Lines.poly(e.x, e.y, 4, 13f * e.fout());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
landShock = new GroundEffect(12, e -> {
|
landShock = new GroundEffect(12, e -> {
|
||||||
Draw.color(Pal.lancerLaser);
|
Draw.color(Pal.lancerLaser);
|
||||||
Lines.stroke(e.fout() * 3f);
|
Lines.stroke(e.fout() * 3f);
|
||||||
Lines.poly(e.x, e.y, 12, 20f * e.fout());
|
Lines.poly(e.x, e.y, 12, 20f * e.fout());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
pickup = new Effect(18, e -> {
|
pickup = new Effect(18, e -> {
|
||||||
Draw.color(Pal.lightishGray);
|
Draw.color(Pal.lightishGray);
|
||||||
Lines.stroke(e.fout() * 2f);
|
Lines.stroke(e.fout() * 2f);
|
||||||
Lines.spikes(e.x, e.y, 1f + e.fin() * 6f, e.fout() * 4f, 6);
|
Lines.spikes(e.x, e.y, 1f + e.fin() * 6f, e.fout() * 4f, 6);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
healWave = new Effect(22, e -> {
|
healWave = new Effect(22, e -> {
|
||||||
Draw.color(Pal.heal);
|
Draw.color(Pal.heal);
|
||||||
Lines.stroke(e.fout() * 2f);
|
Lines.stroke(e.fout() * 2f);
|
||||||
Lines.circle(e.x, e.y, 4f + e.finpow() * 60f);
|
Lines.circle(e.x, e.y, 4f + e.finpow() * 60f);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
heal = new Effect(11, e -> {
|
heal = new Effect(11, e -> {
|
||||||
Draw.color(Pal.heal);
|
Draw.color(Pal.heal);
|
||||||
Lines.stroke(e.fout() * 2f);
|
Lines.stroke(e.fout() * 2f);
|
||||||
Lines.circle(e.x, e.y, 2f + e.finpow() * 7f);
|
Lines.circle(e.x, e.y, 2f + e.finpow() * 7f);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -193,7 +175,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hitFuse = new Effect(14, e -> {
|
hitFuse = new Effect(14, e -> {
|
||||||
@@ -212,7 +193,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hitBulletBig = new Effect(13, e -> {
|
hitBulletBig = new Effect(13, e -> {
|
||||||
@@ -224,7 +204,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1.5f);
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hitFlameSmall = new Effect(14, e -> {
|
hitFlameSmall = new Effect(14, e -> {
|
||||||
@@ -236,7 +215,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hitLiquid = new Effect(16, e -> {
|
hitLiquid = new Effect(16, e -> {
|
||||||
@@ -246,7 +224,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 2f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 2f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hitLancer = new Effect(12, e -> {
|
hitLancer = new Effect(12, e -> {
|
||||||
@@ -258,7 +235,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hitMeltdown = new Effect(12, e -> {
|
hitMeltdown = new Effect(12, e -> {
|
||||||
@@ -270,14 +246,12 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 4 + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
hitLaser = new Effect(8, e -> {
|
hitLaser = new Effect(8, e -> {
|
||||||
Draw.color(Color.white, Pal.heal, e.fin());
|
Draw.color(Color.white, Pal.heal, e.fin());
|
||||||
Lines.stroke(0.5f + e.fout());
|
Lines.stroke(0.5f + e.fout());
|
||||||
Lines.circle(e.x, e.y, e.fin() * 5f);
|
Lines.circle(e.x, e.y, e.fin() * 5f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
despawn = new Effect(12, e -> {
|
despawn = new Effect(12, e -> {
|
||||||
@@ -289,7 +263,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 2 + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 2 + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
flakExplosion = new Effect(20, e -> {
|
flakExplosion = new Effect(20, e -> {
|
||||||
@@ -313,7 +286,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
plasticExplosion = new Effect(24, e -> {
|
plasticExplosion = new Effect(24, e -> {
|
||||||
@@ -337,7 +309,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
plasticExplosionFlak = new Effect(28, e -> {
|
plasticExplosionFlak = new Effect(28, e -> {
|
||||||
@@ -361,7 +332,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
blastExplosion = new Effect(22, e -> {
|
blastExplosion = new Effect(22, e -> {
|
||||||
@@ -385,32 +355,27 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
artilleryTrail = new Effect(50, e -> {
|
artilleryTrail = new Effect(50, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
incendTrail = new Effect(50, e -> {
|
incendTrail = new Effect(50, e -> {
|
||||||
Draw.color(Pal.lightOrange);
|
Draw.color(Pal.lightOrange);
|
||||||
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
missileTrail = new Effect(50, e -> {
|
missileTrail = new Effect(50, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
absorb = new Effect(12, e -> {
|
absorb = new Effect(12, e -> {
|
||||||
Draw.color(Pal.accent);
|
Draw.color(Pal.accent);
|
||||||
Lines.stroke(2f * e.fout());
|
Lines.stroke(2f * e.fout());
|
||||||
Lines.circle(e.x, e.y, 5f * e.fout());
|
Lines.circle(e.x, e.y, 5f * e.fout());
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
flakExplosionBig = new Effect(30, e -> {
|
flakExplosionBig = new Effect(30, e -> {
|
||||||
@@ -434,7 +399,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -445,7 +409,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.1f + e.fout() * 1.4f);
|
Fill.circle(e.x + x, e.y + y, 0.1f + e.fout() * 1.4f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
fire = new Effect(50f, e -> {
|
fire = new Effect(50f, e -> {
|
||||||
@@ -467,7 +430,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.2f + e.fslope() * 1.5f);
|
Fill.circle(e.x + x, e.y + y, 0.2f + e.fslope() * 1.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
steam = new Effect(35f, e -> {
|
steam = new Effect(35f, e -> {
|
||||||
@@ -477,7 +439,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.2f + e.fslope() * 1.5f);
|
Fill.circle(e.x + x, e.y + y, 0.2f + e.fslope() * 1.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
fireballsmoke = new Effect(25f, e -> {
|
fireballsmoke = new Effect(25f, e -> {
|
||||||
@@ -487,7 +448,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.2f + e.fout() * 1.5f);
|
Fill.circle(e.x + x, e.y + y, 0.2f + e.fout() * 1.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
ballfire = new Effect(25f, e -> {
|
ballfire = new Effect(25f, e -> {
|
||||||
@@ -497,7 +457,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.2f + e.fout() * 1.5f);
|
Fill.circle(e.x + x, e.y + y, 0.2f + e.fout() * 1.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
freezing = new Effect(40f, e -> {
|
freezing = new Effect(40f, e -> {
|
||||||
@@ -507,7 +466,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 1.2f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 1.2f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
melting = new Effect(40f, e -> {
|
melting = new Effect(40f, e -> {
|
||||||
@@ -517,7 +475,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, .2f + e.fout() * 1.2f);
|
Fill.circle(e.x + x, e.y + y, .2f + e.fout() * 1.2f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
wet = new Effect(40f, e -> {
|
wet = new Effect(40f, e -> {
|
||||||
@@ -527,7 +484,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 1f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
oily = new Effect(42f, e -> {
|
oily = new Effect(42f, e -> {
|
||||||
@@ -537,7 +493,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 1f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
overdriven = new Effect(20f, e -> {
|
overdriven = new Effect(20f, e -> {
|
||||||
@@ -547,7 +502,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.square(e.x + x, e.y + y, e.fout() * 2.3f + 0.5f);
|
Fill.square(e.x + x, e.y + y, e.fout() * 2.3f + 0.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
dropItem = new Effect(20f, e -> {
|
dropItem = new Effect(20f, e -> {
|
||||||
@@ -562,35 +516,30 @@ public class Fx implements ContentList{
|
|||||||
Draw.color(Color.white, Color.lightGray, e.fin());
|
Draw.color(Color.white, Color.lightGray, e.fin());
|
||||||
Lines.stroke(e.fout() * 2f + 0.2f);
|
Lines.stroke(e.fout() * 2f + 0.2f);
|
||||||
Lines.circle(e.x, e.y, e.fin() * 28f);
|
Lines.circle(e.x, e.y, e.fin() * 28f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
bigShockwave = new Effect(10f, 80f, e -> {
|
bigShockwave = new Effect(10f, 80f, e -> {
|
||||||
Draw.color(Color.white, Color.lightGray, e.fin());
|
Draw.color(Color.white, Color.lightGray, e.fin());
|
||||||
Lines.stroke(e.fout() * 3f);
|
Lines.stroke(e.fout() * 3f);
|
||||||
Lines.circle(e.x, e.y, e.fin() * 50f);
|
Lines.circle(e.x, e.y, e.fin() * 50f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
nuclearShockwave = new Effect(10f, 200f, e -> {
|
nuclearShockwave = new Effect(10f, 200f, e -> {
|
||||||
Draw.color(Color.white, Color.lightGray, e.fin());
|
Draw.color(Color.white, Color.lightGray, e.fin());
|
||||||
Lines.stroke(e.fout() * 3f + 0.2f);
|
Lines.stroke(e.fout() * 3f + 0.2f);
|
||||||
Lines.circle(e.x, e.y, e.fin() * 140f);
|
Lines.circle(e.x, e.y, e.fin() * 140f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
impactShockwave = new Effect(13f, 300f, e -> {
|
impactShockwave = new Effect(13f, 300f, e -> {
|
||||||
Draw.color(Pal.lighterOrange, Color.lightGray, e.fin());
|
Draw.color(Pal.lighterOrange, Color.lightGray, e.fin());
|
||||||
Lines.stroke(e.fout() * 4f + 0.2f);
|
Lines.stroke(e.fout() * 4f + 0.2f);
|
||||||
Lines.circle(e.x, e.y, e.fin() * 200f);
|
Lines.circle(e.x, e.y, e.fin() * 200f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
spawnShockwave = new Effect(20f, 400f, e -> {
|
spawnShockwave = new Effect(20f, 400f, e -> {
|
||||||
Draw.color(Color.white, Color.lightGray, e.fin());
|
Draw.color(Color.white, Color.lightGray, e.fin());
|
||||||
Lines.stroke(e.fout() * 3f + 0.5f);
|
Lines.stroke(e.fout() * 3f + 0.5f);
|
||||||
Lines.circle(e.x, e.y, e.fin() * (e.rotation + 50f));
|
Lines.circle(e.x, e.y, e.fin() * (e.rotation + 50f));
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
explosion = new Effect(30, e -> {
|
explosion = new Effect(30, e -> {
|
||||||
@@ -613,7 +562,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
dynamicExplosion = new Effect(30, e -> {
|
dynamicExplosion = new Effect(30, e -> {
|
||||||
@@ -638,7 +586,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + out * 4 * (3f + intensity));
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + out * 4 * (3f + intensity));
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
blockExplosion = new Effect(30, e -> {
|
blockExplosion = new Effect(30, e -> {
|
||||||
@@ -661,7 +608,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
blockExplosionSmoke = new Effect(30, e -> {
|
blockExplosionSmoke = new Effect(30, e -> {
|
||||||
@@ -672,7 +618,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x / 2f, e.y + y / 2f, e.fout() * 1f);
|
Fill.circle(e.x + x / 2f, e.y + y / 2f, e.fout() * 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -681,7 +626,6 @@ public class Fx implements ContentList{
|
|||||||
float w = 1f + 5 * e.fout();
|
float w = 1f + 5 * e.fout();
|
||||||
Drawf.tri(e.x, e.y, w, 15f * e.fout(), e.rotation);
|
Drawf.tri(e.x, e.y, w, 15f * e.fout(), e.rotation);
|
||||||
Drawf.tri(e.x, e.y, w, 3f * e.fout(), e.rotation + 180f);
|
Drawf.tri(e.x, e.y, w, 3f * e.fout(), e.rotation + 180f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootHeal = new Effect(8, e -> {
|
shootHeal = new Effect(8, e -> {
|
||||||
@@ -689,7 +633,6 @@ public class Fx implements ContentList{
|
|||||||
float w = 1f + 5 * e.fout();
|
float w = 1f + 5 * e.fout();
|
||||||
Drawf.tri(e.x, e.y, w, 17f * e.fout(), e.rotation);
|
Drawf.tri(e.x, e.y, w, 17f * e.fout(), e.rotation);
|
||||||
Drawf.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f);
|
Drawf.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootSmallSmoke = new Effect(20f, e -> {
|
shootSmallSmoke = new Effect(20f, e -> {
|
||||||
@@ -699,7 +642,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 1.5f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 1.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootBig = new Effect(9, e -> {
|
shootBig = new Effect(9, e -> {
|
||||||
@@ -707,7 +649,6 @@ public class Fx implements ContentList{
|
|||||||
float w = 1.2f + 7 * e.fout();
|
float w = 1.2f + 7 * e.fout();
|
||||||
Drawf.tri(e.x, e.y, w, 25f * e.fout(), e.rotation);
|
Drawf.tri(e.x, e.y, w, 25f * e.fout(), e.rotation);
|
||||||
Drawf.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f);
|
Drawf.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootBig2 = new Effect(10, e -> {
|
shootBig2 = new Effect(10, e -> {
|
||||||
@@ -715,7 +656,6 @@ public class Fx implements ContentList{
|
|||||||
float w = 1.2f + 8 * e.fout();
|
float w = 1.2f + 8 * e.fout();
|
||||||
Drawf.tri(e.x, e.y, w, 29f * e.fout(), e.rotation);
|
Drawf.tri(e.x, e.y, w, 29f * e.fout(), e.rotation);
|
||||||
Drawf.tri(e.x, e.y, w, 5f * e.fout(), e.rotation + 180f);
|
Drawf.tri(e.x, e.y, w, 5f * e.fout(), e.rotation + 180f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootBigSmoke = new Effect(17f, e -> {
|
shootBigSmoke = new Effect(17f, e -> {
|
||||||
@@ -725,7 +665,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 2f + 0.2f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 2f + 0.2f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootBigSmoke2 = new Effect(18f, e -> {
|
shootBigSmoke2 = new Effect(18f, e -> {
|
||||||
@@ -735,7 +674,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 2.4f + 0.2f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 2.4f + 0.2f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootSmallFlame = new Effect(32f, e -> {
|
shootSmallFlame = new Effect(32f, e -> {
|
||||||
@@ -745,7 +683,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.5f);
|
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootPyraFlame = new Effect(33f, e -> {
|
shootPyraFlame = new Effect(33f, e -> {
|
||||||
@@ -755,7 +692,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.6f);
|
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.6f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shootLiquid = new Effect(40f, e -> {
|
shootLiquid = new Effect(40f, e -> {
|
||||||
@@ -765,7 +701,6 @@ public class Fx implements ContentList{
|
|||||||
Fill.circle(e.x + x, e.y + y, 0.5f + e.fout() * 2.5f);
|
Fill.circle(e.x + x, e.y + y, 0.5f + e.fout() * 2.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shellEjectSmall = new GroundEffect(30f, 400f, e -> {
|
shellEjectSmall = new GroundEffect(30f, 400f, e -> {
|
||||||
@@ -780,7 +715,6 @@ public class Fx implements ContentList{
|
|||||||
e.y + Angles.trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
e.y + Angles.trnsy(lr, len) + Mathf.randomSeedRange(e.id + i + 8, 3f * e.fin()),
|
||||||
1f, 2f, rot + e.fin() * 50f * i);
|
1f, 2f, rot + e.fin() * 50f * i);
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shellEjectMedium = new GroundEffect(34f, 400f, e -> {
|
shellEjectMedium = new GroundEffect(34f, 400f, e -> {
|
||||||
@@ -804,7 +738,6 @@ public class Fx implements ContentList{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shellEjectBig = new GroundEffect(22f, 400f, e -> {
|
shellEjectBig = new GroundEffect(22f, 400f, e -> {
|
||||||
@@ -829,7 +762,6 @@ public class Fx implements ContentList{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
lancerLaserShoot = new Effect(21f, e -> {
|
lancerLaserShoot = new Effect(21f, e -> {
|
||||||
@@ -839,7 +771,6 @@ public class Fx implements ContentList{
|
|||||||
Drawf.tri(e.x, e.y, 4f * e.fout(), 29f, e.rotation + 90f * i);
|
Drawf.tri(e.x, e.y, 4f * e.fout(), 29f, e.rotation + 90f * i);
|
||||||
}
|
}
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
lancerLaserShootSmoke = new Effect(26f, e -> {
|
lancerLaserShootSmoke = new Effect(26f, e -> {
|
||||||
@@ -849,7 +780,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fout() * 9f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fout() * 9f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
lancerLaserCharge = new Effect(38f, e -> {
|
lancerLaserCharge = new Effect(38f, e -> {
|
||||||
@@ -859,7 +789,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 3f + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 3f + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
lancerLaserChargeBegin = new Effect(71f, e -> {
|
lancerLaserChargeBegin = new Effect(71f, e -> {
|
||||||
@@ -877,7 +806,6 @@ public class Fx implements ContentList{
|
|||||||
Drawf.tri(e.x + x, e.y + y, e.fslope() * 3f + 1, e.fslope() * 3f + 1, Mathf.angle(x, y));
|
Drawf.tri(e.x + x, e.y + y, e.fslope() * 3f + 1, e.fslope() * 3f + 1, Mathf.angle(x, y));
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
lightningShoot = new Effect(12f, e -> {
|
lightningShoot = new Effect(12f, e -> {
|
||||||
@@ -888,7 +816,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 5f + 2f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -897,7 +824,6 @@ public class Fx implements ContentList{
|
|||||||
float size = 1f + e.fout() * 5f;
|
float size = 1f + e.fout() * 5f;
|
||||||
Draw.color(Color.lightGray, Color.gray, e.fin());
|
Draw.color(Color.lightGray, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
nuclearsmoke = new Effect(40, e -> {
|
nuclearsmoke = new Effect(40, e -> {
|
||||||
@@ -905,7 +831,6 @@ public class Fx implements ContentList{
|
|||||||
float size = e.fslope() * 4f;
|
float size = e.fslope() * 4f;
|
||||||
Draw.color(Color.lightGray, Color.gray, e.fin());
|
Draw.color(Color.lightGray, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
nuclearcloud = new Effect(90, 200f, e -> {
|
nuclearcloud = new Effect(90, 200f, e -> {
|
||||||
@@ -913,7 +838,6 @@ public class Fx implements ContentList{
|
|||||||
float size = e.fout() * 14f;
|
float size = e.fout() * 14f;
|
||||||
Draw.color(Color.lime, Color.gray, e.fin());
|
Draw.color(Color.lime, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
impactsmoke = new Effect(60, e -> {
|
impactsmoke = new Effect(60, e -> {
|
||||||
@@ -921,7 +845,6 @@ public class Fx implements ContentList{
|
|||||||
float size = e.fslope() * 4f;
|
float size = e.fslope() * 4f;
|
||||||
Draw.color(Color.lightGray, Color.gray, e.fin());
|
Draw.color(Color.lightGray, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
impactcloud = new Effect(140, 400f, e -> {
|
impactcloud = new Effect(140, 400f, e -> {
|
||||||
@@ -929,7 +852,6 @@ public class Fx implements ContentList{
|
|||||||
float size = e.fout() * 15f;
|
float size = e.fout() * 15f;
|
||||||
Draw.color(Pal.lighterOrange, Color.lightGray, e.fin());
|
Draw.color(Pal.lighterOrange, Color.lightGray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
redgeneratespark = new Effect(18, e -> {
|
redgeneratespark = new Effect(18, e -> {
|
||||||
@@ -937,7 +859,6 @@ public class Fx implements ContentList{
|
|||||||
float len = e.fout() * 4f;
|
float len = e.fout() * 4f;
|
||||||
Draw.color(Pal.redSpark, Color.gray, e.fin());
|
Draw.color(Pal.redSpark, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, len, len);
|
Draw.rect("circle", e.x + x, e.y + y, len, len);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
generatespark = new Effect(18, e -> {
|
generatespark = new Effect(18, e -> {
|
||||||
@@ -945,7 +866,6 @@ public class Fx implements ContentList{
|
|||||||
float len = e.fout() * 4f;
|
float len = e.fout() * 4f;
|
||||||
Draw.color(Pal.orangeSpark, Color.gray, e.fin());
|
Draw.color(Pal.orangeSpark, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, len, len);
|
Draw.rect("circle", e.x + x, e.y + y, len, len);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
fuelburn = new Effect(23, e -> {
|
fuelburn = new Effect(23, e -> {
|
||||||
@@ -953,70 +873,60 @@ public class Fx implements ContentList{
|
|||||||
float len = e.fout() * 4f;
|
float len = e.fout() * 4f;
|
||||||
Draw.color(Color.lightGray, Color.gray, e.fin());
|
Draw.color(Color.lightGray, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, len, len);
|
Draw.rect("circle", e.x + x, e.y + y, len, len);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
plasticburn = new Effect(40, e -> {
|
plasticburn = new Effect(40, e -> {
|
||||||
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 5f, (x, y) -> {
|
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 5f, (x, y) -> {
|
||||||
Draw.color(Color.valueOf("e9ead3"), Color.gray, e.fin());
|
Draw.color(Color.valueOf("e9ead3"), Color.gray, e.fin());
|
||||||
Fill.circle(e.x + x, e.y + y, e.fout() * 1f);
|
Fill.circle(e.x + x, e.y + y, e.fout() * 1f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
pulverize = new Effect(40, e -> {
|
pulverize = new Effect(40, e -> {
|
||||||
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> {
|
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> {
|
||||||
Draw.color(Pal.stoneGray);
|
Draw.color(Pal.stoneGray);
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.5f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.5f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
pulverizeRed = new Effect(40, e -> {
|
pulverizeRed = new Effect(40, e -> {
|
||||||
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> {
|
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> {
|
||||||
Draw.color(Pal.redDust, Pal.stoneGray, e.fin());
|
Draw.color(Pal.redDust, Pal.stoneGray, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.5f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.5f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
pulverizeRedder = new Effect(40, e -> {
|
pulverizeRedder = new Effect(40, e -> {
|
||||||
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 9f, (x, y) -> {
|
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 9f, (x, y) -> {
|
||||||
Draw.color(Pal.redderDust, Pal.stoneGray, e.fin());
|
Draw.color(Pal.redderDust, Pal.stoneGray, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 2.5f + 0.5f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 2.5f + 0.5f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
pulverizeSmall = new Effect(30, e -> {
|
pulverizeSmall = new Effect(30, e -> {
|
||||||
Angles.randLenVectors(e.id, 3, e.fin() * 5f, (x, y) -> {
|
Angles.randLenVectors(e.id, 3, e.fin() * 5f, (x, y) -> {
|
||||||
Draw.color(Pal.stoneGray);
|
Draw.color(Pal.stoneGray);
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 1f + 0.5f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 1f + 0.5f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
pulverizeMedium = new Effect(30, e -> {
|
pulverizeMedium = new Effect(30, e -> {
|
||||||
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> {
|
Angles.randLenVectors(e.id, 5, 3f + e.fin() * 8f, (x, y) -> {
|
||||||
Draw.color(Pal.stoneGray);
|
Draw.color(Pal.stoneGray);
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 1f + 0.5f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 1f + 0.5f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
producesmoke = new Effect(12, e -> {
|
producesmoke = new Effect(12, e -> {
|
||||||
Angles.randLenVectors(e.id, 8, 4f + e.fin() * 18f, (x, y) -> {
|
Angles.randLenVectors(e.id, 8, 4f + e.fin() * 18f, (x, y) -> {
|
||||||
Draw.color(Color.white, Pal.accent, e.fin());
|
Draw.color(Color.white, Pal.accent, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, 1f + e.fout() * 3f, 45);
|
Fill.square(e.x + x, e.y + y, 1f + e.fout() * 3f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
smeltsmoke = new Effect(15, e -> {
|
smeltsmoke = new Effect(15, e -> {
|
||||||
Angles.randLenVectors(e.id, 6, 4f + e.fin() * 5f, (x, y) -> {
|
Angles.randLenVectors(e.id, 6, 4f + e.fin() * 5f, (x, y) -> {
|
||||||
Draw.color(Color.white, e.color, e.fin());
|
Draw.color(Color.white, e.color, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, 0.5f + e.fout() * 2f, 45);
|
Fill.square(e.x + x, e.y + y, 0.5f + e.fout() * 2f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
formsmoke = new Effect(40, e -> {
|
formsmoke = new Effect(40, e -> {
|
||||||
Angles.randLenVectors(e.id, 6, 5f + e.fin() * 8f, (x, y) -> {
|
Angles.randLenVectors(e.id, 6, 5f + e.fin() * 8f, (x, y) -> {
|
||||||
Draw.color(Pal.plasticSmoke, Color.lightGray, e.fin());
|
Draw.color(Pal.plasticSmoke, Color.lightGray, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, 0.2f + e.fout() * 2f, 45);
|
Fill.square(e.x + x, e.y + y, 0.2f + e.fout() * 2f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
blastsmoke = new Effect(26, e -> {
|
blastsmoke = new Effect(26, e -> {
|
||||||
@@ -1024,7 +934,6 @@ public class Fx implements ContentList{
|
|||||||
float size = 2f + e.fout() * 6f;
|
float size = 2f + e.fout() * 6f;
|
||||||
Draw.color(Color.lightGray, Color.darkGray, e.fin());
|
Draw.color(Color.lightGray, Color.darkGray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
lava = new Effect(18, e -> {
|
lava = new Effect(18, e -> {
|
||||||
@@ -1032,79 +941,66 @@ public class Fx implements ContentList{
|
|||||||
float size = e.fslope() * 4f;
|
float size = e.fslope() * 4f;
|
||||||
Draw.color(Color.orange, Color.gray, e.fin());
|
Draw.color(Color.orange, Color.gray, e.fin());
|
||||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
dooropen = new Effect(10, e -> {
|
dooropen = new Effect(10, e -> {
|
||||||
Lines.stroke(e.fout() * 1.6f);
|
Lines.stroke(e.fout() * 1.6f);
|
||||||
Lines.square(e.x, e.y, tilesize / 2f + e.fin() * 2f);
|
Lines.square(e.x, e.y, tilesize / 2f + e.fin() * 2f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
doorclose = new Effect(10, e -> {
|
doorclose = new Effect(10, e -> {
|
||||||
Lines.stroke(e.fout() * 1.6f);
|
Lines.stroke(e.fout() * 1.6f);
|
||||||
Lines.square(e.x, e.y, tilesize / 2f + e.fout() * 2f);
|
Lines.square(e.x, e.y, tilesize / 2f + e.fout() * 2f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
dooropenlarge = new Effect(10, e -> {
|
dooropenlarge = new Effect(10, e -> {
|
||||||
Lines.stroke(e.fout() * 1.6f);
|
Lines.stroke(e.fout() * 1.6f);
|
||||||
Lines.square(e.x, e.y, tilesize + e.fin() * 2f);
|
Lines.square(e.x, e.y, tilesize + e.fin() * 2f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
doorcloselarge = new Effect(10, e -> {
|
doorcloselarge = new Effect(10, e -> {
|
||||||
Lines.stroke(e.fout() * 1.6f);
|
Lines.stroke(e.fout() * 1.6f);
|
||||||
Lines.square(e.x, e.y, tilesize + e.fout() * 2f);
|
Lines.square(e.x, e.y, tilesize + e.fout() * 2f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
purify = new Effect(10, e -> {
|
purify = new Effect(10, e -> {
|
||||||
Draw.color(Color.royal, Color.gray, e.fin());
|
Draw.color(Color.royal, Color.gray, e.fin());
|
||||||
Lines.stroke(2f);
|
Lines.stroke(2f);
|
||||||
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
|
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
purifyoil = new Effect(10, e -> {
|
purifyoil = new Effect(10, e -> {
|
||||||
Draw.color(Color.black, Color.gray, e.fin());
|
Draw.color(Color.black, Color.gray, e.fin());
|
||||||
Lines.stroke(2f);
|
Lines.stroke(2f);
|
||||||
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
|
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
purifystone = new Effect(10, e -> {
|
purifystone = new Effect(10, e -> {
|
||||||
Draw.color(Color.orange, Color.gray, e.fin());
|
Draw.color(Color.orange, Color.gray, e.fin());
|
||||||
Lines.stroke(2f);
|
Lines.stroke(2f);
|
||||||
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
|
Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
generate = new Effect(11, e -> {
|
generate = new Effect(11, e -> {
|
||||||
Draw.color(Color.orange, Color.yellow, e.fin());
|
Draw.color(Color.orange, Color.yellow, e.fin());
|
||||||
Lines.stroke(1f);
|
Lines.stroke(1f);
|
||||||
Lines.spikes(e.x, e.y, e.fin() * 5f, 2, 8);
|
Lines.spikes(e.x, e.y, e.fin() * 5f, 2, 8);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
mine = new Effect(20, e -> {
|
mine = new Effect(20, e -> {
|
||||||
Angles.randLenVectors(e.id, 6, 3f + e.fin() * 6f, (x, y) -> {
|
Angles.randLenVectors(e.id, 6, 3f + e.fin() * 6f, (x, y) -> {
|
||||||
Draw.color(e.color, Color.lightGray, e.fin());
|
Draw.color(e.color, Color.lightGray, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 2f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 2f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
mineBig = new Effect(30, e -> {
|
mineBig = new Effect(30, e -> {
|
||||||
Angles.randLenVectors(e.id, 6, 4f + e.fin() * 8f, (x, y) -> {
|
Angles.randLenVectors(e.id, 6, 4f + e.fin() * 8f, (x, y) -> {
|
||||||
Draw.color(e.color, Color.lightGray, e.fin());
|
Draw.color(e.color, Color.lightGray, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.2f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.2f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
mineHuge = new Effect(40, e -> {
|
mineHuge = new Effect(40, e -> {
|
||||||
Angles.randLenVectors(e.id, 8, 5f + e.fin() * 10f, (x, y) -> {
|
Angles.randLenVectors(e.id, 8, 5f + e.fin() * 10f, (x, y) -> {
|
||||||
Draw.color(e.color, Color.lightGray, e.fin());
|
Draw.color(e.color, Color.lightGray, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.5f, 45);
|
Fill.square(e.x + x, e.y + y, e.fout() * 2f + 0.5f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
smelt = new Effect(20, e -> {
|
smelt = new Effect(20, e -> {
|
||||||
Angles.randLenVectors(e.id, 6, 2f + e.fin() * 5f, (x, y) -> {
|
Angles.randLenVectors(e.id, 6, 2f + e.fin() * 5f, (x, y) -> {
|
||||||
Draw.color(Color.white, e.color, e.fin());
|
Draw.color(Color.white, e.color, e.fin());
|
||||||
Fill.square(e.x + x, e.y + y, 0.5f + e.fout() * 2f, 45);
|
Fill.square(e.x + x, e.y + y, 0.5f + e.fout() * 2f, 45);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
teleportActivate = new Effect(50, e -> {
|
teleportActivate = new Effect(50, e -> {
|
||||||
@@ -1121,7 +1017,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 4f + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 4f + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
teleport = new Effect(60, e -> {
|
teleport = new Effect(60, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
@@ -1132,7 +1027,6 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 4f + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fin() * 4f + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
teleportOut = new Effect(20, e -> {
|
teleportOut = new Effect(20, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
@@ -1143,13 +1037,11 @@ public class Fx implements ContentList{
|
|||||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 4f + 1f);
|
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 4f + 1f);
|
||||||
});
|
});
|
||||||
|
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
ripple = new GroundEffect(false, 30, e -> {
|
ripple = new GroundEffect(false, 30, e -> {
|
||||||
Draw.color(Tmp.c1.set(e.color).mul(1.2f));
|
Draw.color(Tmp.c1.set(e.color).mul(1.2f));
|
||||||
Lines.stroke(e.fout() + 0.4f);
|
Lines.stroke(e.fout() + 0.4f);
|
||||||
Lines.circle(e.x, e.y, 2f + e.fin() * 4f);
|
Lines.circle(e.x, e.y, 2f + e.fin() * 4f);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
bubble = new Effect(20, e -> {
|
bubble = new Effect(20, e -> {
|
||||||
@@ -1158,56 +1050,48 @@ public class Fx implements ContentList{
|
|||||||
Angles.randLenVectors(e.id, 2, 8f, (x, y) -> {
|
Angles.randLenVectors(e.id, 2, 8f, (x, y) -> {
|
||||||
Lines.circle(e.x + x, e.y + y, 1f + e.fin() * 3f);
|
Lines.circle(e.x + x, e.y + y, 1f + e.fin() * 3f);
|
||||||
});
|
});
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
launch = new Effect(28, e -> {
|
launch = new Effect(28, e -> {
|
||||||
Draw.color(Pal.command);
|
Draw.color(Pal.command);
|
||||||
Lines.stroke(e.fout() * 2f);
|
Lines.stroke(e.fout() * 2f);
|
||||||
Lines.circle(e.x, e.y, 4f + e.finpow() * 120f);
|
Lines.circle(e.x, e.y, 4f + e.finpow() * 120f);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
healWaveMend = new Effect(40, e -> {
|
healWaveMend = new Effect(40, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
Lines.stroke(e.fout() * 2f);
|
Lines.stroke(e.fout() * 2f);
|
||||||
Lines.circle(e.x, e.y, e.finpow() * e.rotation);
|
Lines.circle(e.x, e.y, e.finpow() * e.rotation);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
overdriveWave = new Effect(50, e -> {
|
overdriveWave = new Effect(50, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
Lines.stroke(e.fout() * 1f);
|
Lines.stroke(e.fout() * 1f);
|
||||||
Lines.circle(e.x, e.y, e.finpow() * e.rotation);
|
Lines.circle(e.x, e.y, e.finpow() * e.rotation);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
healBlock = new Effect(20, e -> {
|
healBlock = new Effect(20, e -> {
|
||||||
Draw.color(Pal.heal);
|
Draw.color(Pal.heal);
|
||||||
Lines.stroke(2f * e.fout() + 0.5f);
|
Lines.stroke(2f * e.fout() + 0.5f);
|
||||||
Lines.square(e.x, e.y, 1f + (e.fin() * e.rotation * tilesize / 2f - 1f));
|
Lines.square(e.x, e.y, 1f + (e.fin() * e.rotation * tilesize / 2f - 1f));
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
healBlockFull = new Effect(20, e -> {
|
healBlockFull = new Effect(20, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
Draw.alpha(e.fout());
|
Draw.alpha(e.fout());
|
||||||
Fill.square(e.x, e.y, e.rotation * tilesize / 2f);
|
Fill.square(e.x, e.y, e.rotation * tilesize / 2f);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
overdriveBlockFull = new Effect(60, e -> {
|
overdriveBlockFull = new Effect(60, e -> {
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
Draw.alpha(e.fslope() * 0.4f);
|
Draw.alpha(e.fslope() * 0.4f);
|
||||||
Fill.square(e.x, e.y, e.rotation * tilesize);
|
Fill.square(e.x, e.y, e.rotation * tilesize);
|
||||||
Draw.color();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
shieldBreak = new Effect(40, e -> {
|
shieldBreak = new Effect(40, e -> {
|
||||||
Draw.color(Pal.accent);
|
Draw.color(Pal.accent);
|
||||||
Lines.stroke(3f * e.fout());
|
Lines.stroke(3f * e.fout());
|
||||||
Lines.poly(e.x, e.y, 6, e.rotation + e.fin(), 90);
|
Lines.poly(e.x, e.y, 6, e.rotation + e.fin(), 90);
|
||||||
Draw.reset();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
coreLand = new Effect(120f, e -> {
|
coreLand = new Effect(120f, e -> {
|
||||||