Compare commits

..

225 Commits
v131 ... v132

Author SHA1 Message Date
Anuken
717a620ff4 Unpause game in logic variable dialog if necessary 2021-10-16 14:51:53 -04:00
Anuken
9dfd4d0049 Merge remote-tracking branch 'origin/master' 2021-10-16 13:01:07 -04:00
Anuken
290450de5b Fixed deconstructor not accepting direct unit payloads 2021-10-16 13:01:03 -04:00
Darkness#3729
d970eb45e3 Lol (#6171) 2021-10-16 12:45:16 -04:00
Anuken
b7f030eb13 Added logic variable display window 2021-10-16 12:30:00 -04:00
Anuken
f43e308dad Merge remote-tracking branch 'origin/master' 2021-10-16 10:22:24 -04:00
Anuken
bd329f57d6 Add sensing of reconstructor config 2021-10-16 10:22:20 -04:00
Sharlotte
06bf2711a4 Update [KO] bundles once again (#6147)
* Why did you marge this

* Update bundle_ko.properties
2021-10-16 09:49:58 -04:00
Matthew Peng
7ff9ad7351 Move payload blend check to BuildingComp (#6152) 2021-10-16 09:49:52 -04:00
Yuri Polyakov
91acda56c1 [RU] New blocks translated (#6159)
* [RU] New blocks translated

ь

* Поправил 2 строчки

* а

* Еще перевел пару строк

* Поправил строчку

Как же плохо без очков
2021-10-16 09:49:37 -04:00
JrTRinny
0f29a01292 Update bundle_th.properties (#6162) 2021-10-16 09:46:27 -04:00
Anuken
902f3695ee amend 2021-10-16 09:03:21 -04:00
Anuken
d5e239c610 Fixed #6168 2021-10-16 09:02:40 -04:00
Anuken
36064c63e3 Fixed #6166 2021-10-15 22:26:52 -04:00
Anuken
01a8a8bb4d Merge remote-tracking branch 'origin/master' 2021-10-15 21:40:13 -04:00
Anuken
4a979058c2 Crawler shootOnDeath 2021-10-15 21:40:09 -04:00
Fernando
e06640935d Update servers_v6.json (#6165)
Add new server
2021-10-15 20:23:52 -04:00
Anuken
956cbe792b Fixed #6164 2021-10-15 18:48:59 -04:00
Anuken
e9e5fea306 Merge remote-tracking branch 'origin/master' 2021-10-15 17:04:39 -04:00
Anuken
f683496440 cleanup 2021-10-15 17:04:34 -04:00
buthed010203
b66eb173d8 Consistency (#6163)
* Consistency

Why is this inconsistent with the portion just above it?

* C o n s i s t e n t
2021-10-15 16:07:15 -04:00
Anuken
816ab161df Make Unit type default to Alpha 2021-10-15 12:07:07 -04:00
Anuken
bccdd86f30 Merge remote-tracking branch 'origin/master' 2021-10-15 11:41:00 -04:00
Anuken
9a5ac14bc3 Fixed #6158 2021-10-15 11:40:55 -04:00
router
dc14f42593 .pl hosting moment (#6156)
* .pl hosting moment

* Update servers_be.json
2021-10-15 09:33:26 -04:00
Anuken
18c5f508b1 Update README.md 2021-10-14 22:41:33 -04:00
Anuken
d8cf65e24c More permissive json type re-declarations 2021-10-14 21:59:02 -04:00
Anuken
3de9cfa1d7 Don't crash on invalid research 2021-10-14 21:26:34 -04:00
Anuken
df156444e7 Prioritize mod content in parser 2021-10-14 21:24:19 -04:00
Anuken
8a3dd53aa2 ClassMap regen 2021-10-14 21:01:20 -04:00
Anuken
b855849e4a Merge remote-tracking branch 'origin/master' 2021-10-14 20:58:13 -04:00
Anuken
6b59c1cd83 More branch merging 2021-10-14 20:58:03 -04:00
Anuken
ad1c75d050 WIP branch merging 2021-10-14 19:15:03 -04:00
Zelaux
dcb84f9faf Made the Menus API less conflicting (#6154)
* Made the Menus API less conflicting

* Fixed ignoring zero menuId in Menus
2021-10-14 14:23:12 -04:00
itsragedev
d5babe88e3 Update bundle_de.properties (#6150)
Changing some strings to match the original a little more.
2021-10-14 11:38:25 -04:00
Anuken
b30eb26eb7 Merge remote-tracking branch 'origin/master' 2021-10-14 11:16:57 -04:00
Anuken
b5f639f518 AGP 7.0.3 2021-10-14 11:16:53 -04:00
Sunny Kim
ec1124499f Disable sector info for specific sectors (#6151)
* showSectorLandInfo

* showSectorLandInfo type
2021-10-14 11:16:36 -04:00
Ilya246
095cc27ea6 Add shootOnDeath to weapons (#6149)
* Update Weapon.java

* Add files via upload
2021-10-14 09:50:57 -04:00
Anuken
a2f40a5565 Fixed #6148 2021-10-13 19:35:04 -04:00
Anuken
1f1a5bde3e Removed unused PayloadLaunchPad class 2021-10-13 14:00:31 -04:00
Anuken
4a4b336814 Added logic payEnter command 2021-10-13 10:18:34 -04:00
Anuken
1a839bce86 Merge remote-tracking branch 'origin/master' 2021-10-13 08:51:54 -04:00
Anuken
2e747a481a Generator unit cell color tweaks 2021-10-13 08:51:48 -04:00
Matthew Peng
fdfe381b6e Unhardcode Drill Effect Randomness (#6144)
* Unhardcode Drill Effect Randomness

* I should start refusing to make prs for people
2021-10-12 22:32:58 -04:00
Anuken
9e01d1a69d Merge remote-tracking branch 'origin/master' 2021-10-12 18:25:43 -04:00
Anuken
5e8a3137c1 FX cast cleanup 2021-10-12 18:25:37 -04:00
Matthew Peng
8c3ecfdb06 Make Burst + Spread Work (#5589)
* Make Burst + Spread Work

* This is why you use an IDE

* h
2021-10-12 17:36:59 -04:00
Kubek0212
fbca85fe0a Update achievements.vdf (#4423)
Achievement description wasn't updated from 5.0. Added foreshadow.
Small fix do production I achievement.
2021-10-12 15:37:00 -04:00
BorisA11
bf8276f501 Serbian translation of all blocks (#6129)
all blocks are now translated, meaning the game should be more playable on this language
block descriptions are not yet done
2021-10-12 15:36:29 -04:00
Yuri Polyakov
1fc3974e1b [RU] Minor translation of some lines (#6016)
* [RU] Minor translation of some lines

Translated 3 lines. That's all for now ...

* [RU] Editor translate

bruh

* [RU] Editor translate (2)

* [RU] Editor translate

bruh2

* update

* update 2
2021-10-12 15:34:51 -04:00
Sharlotte
c857c8a438 Update bundle_ko.properties (#5984)
* Update bundle_ko.properties

* Update bundle_ko.properties
2021-10-12 15:21:48 -04:00
Anuken
5b9e11cc6c Revert "Update this bundle (#6081)" (#6143)
This reverts commit 10b1ce2a3d.
2021-10-12 15:18:56 -04:00
GuestUser25
10b1ce2a3d Update this bundle (#6081) 2021-10-12 15:18:25 -04:00
Angel-24
5b3ae4ae15 [ES] Updated spanish translation (#6031)
* Update bundle_es.properties

* Update bundle_es.properties

* Update bundle_es.properties

* Update bundle_es.properties

* Update bundle_es.properties

* Update bundle_es.properties

* Update bundle_es.properties

* Update bundle_es.properties

* Updated line 125

Remove suggestion of changing auto-disabling mods setting when the game crashes, just what Anuke did in the original bundle.
2021-10-12 14:16:22 -04:00
Anuken
90d589939a PR cleanup 2021-10-12 14:15:28 -04:00
Anuken
da225d15c7 Merge branch 'master' of https://github.com/Anuken/Mindustry 2021-10-12 14:14:56 -04:00
Ilya246
21549d2518 Add new fx (#6136)
* Update Fx.java

* Update Fx.java

* Update Fx.java

* Update NetClient.java

* Update Fx.java
2021-10-12 14:14:51 -04:00
Nautilus
e6863825d2 Update servers_v7.json (#6142)
added our network to the server list
2021-10-12 14:14:20 -04:00
Anuken
25c8623e30 router 2021-10-12 12:35:46 -04:00
Anuken
d5f7fc842c Fixed #6140 2021-10-12 08:25:00 -04:00
Anuken
da0fea5186 Merge remote-tracking branch 'origin/master' 2021-10-11 10:30:44 -04:00
Anuken
6abb458c27 Increased world stream chunk size 2021-10-11 10:30:40 -04:00
GlennFolker
9cc738d867 order (#6137) 2021-10-11 09:03:42 -04:00
Nalrahc
171e348b49 Update achievements.vdf (#5536)
L37 : "Créer une nouvelle carte 10 fois" could have been understood as "Edit the same map 10 times".
L113 : "Contrôller" is a typo
2021-10-10 20:51:41 -04:00
VizardAlpha
3c071bcf49 Create Summary.txt (#5400)
* Create Summary.txt

* Create changelogs

* Delete changelogs

* Update description.txt steam

* Update summary

Co-authored-by: Anuken <arnukren@gmail.com>
2021-10-10 20:50:23 -04:00
Matthew Peng
4030e71b31 Customizable Force Projector Absorb Effect (#6102)
* Customizable Force Projector Absorb Effect

* Fix everything

* Custom shield break effect
2021-10-10 17:06:59 -04:00
Anuken
9f070323c2 a 2021-10-10 14:11:12 -04:00
Anuken
8ae70f5f9a Merge remote-tracking branch 'origin/master' 2021-10-10 14:04:13 -04:00
Anuken
f5cb6f2542 Fixed arguments resetting red in server errors 2021-10-10 14:04:08 -04:00
VizardAlpha
871fcc9579 Update achievements.vdf (#4987)
Minor correction and small translation ...
2021-10-10 13:52:19 -04:00
Anuken
a9bb8b1310 Update TRANSLATING.md 2021-10-10 13:47:44 -04:00
Parkurist
b955539383 [TR] Translation of Steam and Google Play game descriptions and achivements (#5420)
* Create full_description.txt

* Create short_description.txt

* Create summary.txt

* Create title.txt

* Create 100.1.txt

* Delete 100.1.txt

* Create description.txt

* Create short_description.txt

* draft

* [TR] Translated all of the Steam achivements
2021-10-10 13:40:59 -04:00
VizardAlpha
8f8e038575 Update description.txt (#4986)
* Update description.txt

Minor correction and small translation ...

* Update description.txt
2021-10-10 13:38:37 -04:00
Anuken
b2de197050 Merge remote-tracking branch 'origin/master' 2021-10-10 12:37:11 -04:00
Anuken
c60bd6f0dc Customizable chat formatting (Closes #5387) 2021-10-10 12:37:07 -04:00
Darkness#3729
8468214dd7 Another translate and typo fix (#6115)
* Update bundle_ru.properties

* Another typo and some translation

* Also this

* And hint

* Bruh
2021-10-10 10:29:58 -04:00
Anuken
919db8cc76 Merge remote-tracking branch 'origin/master' 2021-10-10 10:24:16 -04:00
Anuken
5ce5f347aa Jitpack gradle tweak 2021-10-10 10:24:10 -04:00
GlennFolker
758921c077 Added 2 versatile trigger event types (#6130)
* t

* oops
2021-10-10 08:08:04 -04:00
MrSampleJay
c22ede229e Update bundle_fil.properties (#6128)
Translated item description from copper to surge
2021-10-09 17:15:43 -04:00
Wojtek G
1ca6db9cf5 Update bundle_pl.properties (#5206)
[tutorial] changed "Poradnik" (Guide) to "Samouczek" (Tutorial) for consistency 

[command.rally] changed "Zbierz" (Sounds more like collecting something) to "Zbiórka" (Sounds more like gathering units together)
2021-10-09 14:08:44 -04:00
buthed010203
c5ed535519 add javaPath variable (#6126) 2021-10-09 14:07:56 -04:00
Fernando
6c86a64c74 Update servers_v6.json (#6125)
remove modded server
2021-10-09 13:13:23 -04:00
Anuken
d24f7cb549 Merge remote-tracking branch 'origin/master' 2021-10-09 12:54:26 -04:00
Anuken
f5d6313399 Redundant effect paren cleanup 2021-10-09 12:54:20 -04:00
BorisA11
dc7ffbc8b8 The partial Serbian language translation (#6118)
* The partial Serbian language translation

Since all south-slavic langauges are very similar, this would also be usable by Croats, Bosnians, etc. The translation is not yet fully completed, many things are still not done, but I will propose this as it is now, then finish it up later, if possible.

* typo

typed rs instead of sr

* typo 2

ohno

* more unit descriptions

* more translations - over 100 more lines are done

* more translations

more complete translations
2021-10-08 18:11:54 -04:00
kituta
f9da6f8904 Update bundle_ja.properties (#6121)
Add. //追加しました
2021-10-08 18:11:19 -04:00
Anuken
1ada42738f Merge remote-tracking branch 'origin/master' 2021-10-07 14:35:13 -04:00
Anuken
04df23b88a Generation tweaks 2021-10-07 14:35:09 -04:00
Darkness#3729
200aa3e32b Typo (#6114) 2021-10-07 12:47:52 -04:00
Anuken
083321d6c7 Merge remote-tracking branch 'origin/master' 2021-10-07 12:07:32 -04:00
Anuken
00be5b7fa5 Converted soundtrack to ogg 2021-10-07 12:07:26 -04:00
SoMall-dumpling
55537f09dc Torpedos->Torpedoes (#6113)
Typo, yes.
2021-10-07 09:32:24 -04:00
Anuken
d43157fd22 Fixed negative recoil 2021-10-06 13:29:31 -04:00
Anuken
60a430025a Merge remote-tracking branch 'origin/master' 2021-10-06 13:09:53 -04:00
Anuken
3f53315a07 Proper implementation of #6099 (untested) 2021-10-06 13:09:45 -04:00
Darkness#3729
6e3de78026 [RU] Unit descriptions and more (#6110)
* Небольшое обновление бандла

* Перевод криогенной жидкости, а так же поиска карт

* Надо ещё оксиное перевести

* Добавил описание Оксино

* Убрал ненужное
2021-10-06 10:23:32 -04:00
Matthew Peng
a4963f351d Fix negative recoil (#6107) 2021-10-05 23:05:33 -04:00
Anuken
df5c31a0e7 Update SERVERLIST.md 2021-10-05 22:22:27 -04:00
JrTRinny
17af905d52 Update bundle_th.properties (#6036)
* Update bundle_th.properties

* Update bundle_th.properties

* Update bundle_th.properties
2021-10-05 22:18:18 -04:00
VizardAlpha
f2139fad6e Update bundle_fr.properties (#6035)
* Update bundle_fr.properties

* Adding new commits

* Don't suggest changing the mod disable option

* ....
2021-10-05 22:18:06 -04:00
Anuken
785ba7910d Merge remote-tracking branch 'origin/master' 2021-10-05 17:06:17 -04:00
Anuken
3030308f09 Make naval units only slow down on "shallow" water 2021-10-05 17:06:09 -04:00
Darkness#3729
4ed471f77b Change server port (#6105)
:-/
2021-10-05 13:42:06 -04:00
maxutka99
373c73f492 Update servers_v7.json (#6079)
* Update servers_v7.json

* Update servers_v7.json

* Update servers_v7.json
2021-10-05 13:00:11 -04:00
Matthew Peng
bc3da30d45 Allow for dynamic laser absorption and insulation (#5047)
* Allow for dynamic laser absorption

* Might as well do insulated as well

* null checks are important
2021-10-05 12:36:29 -04:00
Fatonndev
77736f227f New domain name (#6076)
* new domain name

* moved to new domain
2021-10-04 14:39:55 -04:00
way-zer
6d49bd39be Fix #5702 (#6098) 2021-10-04 09:21:02 -04:00
Anuken
0d0fe394d3 Serpulo water tweaks 2021-10-03 13:12:20 -04:00
Anuken
aed57aaac3 Added InputHandler lock system 2021-10-03 11:21:53 -04:00
Anuken
b20cdb97c5 Reset chat font cache color 2021-10-02 13:01:54 -04:00
Anuken
d95662233c Fixed #6090 2021-10-02 12:05:02 -04:00
Anuken
ce7e91f17b Merge remote-tracking branch 'origin/master' 2021-10-02 08:42:12 -04:00
Anuken
db6b8abce6 Fixed #6089 2021-10-02 08:42:07 -04:00
Vajda Simon
3e2da3595f Update servers_v6.json (#6084) 2021-10-01 13:47:32 -04:00
Anuken
60fe1e5570 arc 2021-10-01 12:10:50 -04:00
Anuken
67ed6ddd18 arc 2021-10-01 09:44:45 -04:00
Anuken
b265ddac03 Don't suggest changing the mod disable option 2021-10-01 09:28:23 -04:00
Anuken
ee26f51d7a Cleanup 2021-09-30 18:32:31 -04:00
Anuken
0483e3f900 Serpulo naval wave support 2021-09-30 18:22:50 -04:00
Anuken
9939d6065a Merge remote-tracking branch 'origin/master' 2021-09-30 17:33:23 -04:00
Anuken
c226127648 Display jump statement destination 2021-09-30 17:33:17 -04:00
Matthew Peng
e0b1c49e0b Fix weapon recoiling (#6083)
Weapons recoil when the begin charging
2021-09-30 17:01:24 -04:00
Yuri Polyakov
558fb26dcb Update bundle_ru.properties (#6078)
б
2021-09-30 13:03:28 -04:00
buthed010203
78a4572388 Add "infotable" name to hudfrag (#6082)
In another attempt to make my client more compatible with mods, I am adding this so it can be found by name rather than by index
2021-09-30 13:01:52 -04:00
Anuken
6f6590d5bb chargeShootEffect / Effect startDelay 2021-09-29 22:39:33 -04:00
EyeOfDarkness
efb9df7b1b Recoil Time and Improved Alternating (#6073)
* Revamped recoil, and improved alternating

* i might have to make this more complicated later

* hhhhhhhhh

* proper description.
2021-09-29 19:35:47 -04:00
Matthew Peng
a04b385f56 Fix spread + burst turrets (#6069)
* Fix spread + burst turrets

* spread is 4 by default

set salvo spread to 0

* damnit
2021-09-29 08:38:51 -04:00
Fernando
01d6aee754 Add MindustryBR network (#6074)
Come to Brazil
2021-09-28 20:43:40 -04:00
Anuken
603c871e6e apparently the --illegal-access flag is still needed 2021-09-28 18:52:48 -04:00
Anuken
71543f2ab2 Improved Serpulo water edge generation 2021-09-28 17:20:20 -04:00
Anuken
7f415588f4 Cleaned up duplicate SettingsMenuDialog code 2021-09-28 14:41:35 -04:00
Anuken
c6c374f672 Merge remote-tracking branch 'origin/master' 2021-09-28 11:28:58 -04:00
Anuken
d226ffe633 Fixed #6071 2021-09-28 11:28:53 -04:00
Matthew Peng
182dfc5f38 delta in reload for a LaserTurret isn't properly calculated (#6068) 2021-09-28 08:41:40 -04:00
TranquillyUnpleasant
366822e4d1 Remove unused variable (#6063)
This got leftover from some other shader testing I did.
2021-09-27 22:25:22 -04:00
Anuken
8f53822a6e Merge remote-tracking branch 'origin/master' 2021-09-27 21:11:25 -04:00
Anuken
c814ef0012 Slightly increased item charge damage 2021-09-27 21:11:21 -04:00
SoMall-dumpling
30e6bb2625 Retusa Description Change (#6061)
Now that Retusa has been remaked, the description needs to be changed too.
2021-09-27 19:11:48 -04:00
Anuken
f5a0528c73 Merge remote-tracking branch 'origin/master' 2021-09-27 19:02:10 -04:00
Anuken
f5a2ed900d Make hint.presetLaunch more likely to show up 2021-09-27 19:02:06 -04:00
Matthew Peng
2f9bf6e13f collideTerrain (#6059)
* collideTerrain

* Combine code
2021-09-27 15:11:36 -04:00
Anuken
13b92519f1 Added missing revision 2021-09-27 15:07:34 -04:00
Anuken
61a28aca91 Cryofluid floor tweaks 2021-09-27 15:07:10 -04:00
Anuken
7c00b54191 hgdf 2021-09-27 14:51:50 -04:00
TranquillyUnpleasant
dbd31b9031 Cryo tiles (#6054)
* Cryo tile

* tile name

* Shader

* Icon and property
2021-09-27 14:46:28 -04:00
Matthew Peng
083c21ea3f Effect Rotate With Parent (#5999)
* Effect Rotate With Parent

* Use Rotc

* Wording

* Base Rotation

* Rotate effect rotation with parent.
2021-09-27 11:55:56 -04:00
buthed010203
6fb7f4fe26 At least add a fastAA property (#6058)
Since my other pr will never get merged, i will at least add this so i can use it myself
2021-09-27 11:55:34 -04:00
Anuken
a21942e401 Map dialog margin cleanup 2021-09-27 11:36:03 -04:00
TranquillyUnpleasant
bf89ef1e5e Map search (#6004)
* Map search

* Fix format

* check and continue

* icons and style

* grow pane so search bar doesnt move

* Inline focusing

* Use boolean instead of checking size
2021-09-27 11:33:12 -04:00
Anuken
2d2052e39f "ok" 2021-09-27 11:00:33 -04:00
Anuken
7bf85d9f84 Merge remote-tracking branch 'origin/master' 2021-09-27 09:18:53 -04:00
Anuken
ed1557b5ac Implemented Anuken/Mindustry-Suggestions/issues/3026 2021-09-27 09:18:46 -04:00
Pietro
5e0f404602 row mod content dialog in mobile (#6051)
* Row mod content dialog in mobile

It's as simple as `Math.floor()`

* type casting

(int)
2021-09-26 11:40:15 -04:00
Misaka
0185f8bc5a shizashizashiza epic comeback (#6050)
No description provided.
2021-09-26 08:33:05 -04:00
Matthew Peng
94d9ca4727 Pull creating and dumping products out into their own methods (#6047) 2021-09-26 08:31:21 -04:00
Darkness#3729
d79ab3ec3e Make thruster cost some scrap (#6045) 2021-09-25 08:50:20 -04:00
Matthew Peng
50cc340b20 Customizable Block Place Sound (#6043) 2021-09-24 21:28:20 -04:00
Anuken
dac17aa2b7 Merge remote-tracking branch 'origin/master' 2021-09-23 19:44:46 -04:00
Anuken
29242249bd Fixed #6039 2021-09-23 19:44:42 -04:00
rmuchan
22a93fc649 fix achievement Roboticist (#6037) 2021-09-23 14:14:44 -04:00
Anuken
c8ab2bd1ba Inline SchematicsDialog#focusSearchField 2021-09-22 20:25:01 -04:00
Anuken
9e718b633e Increase dependency timeout for jitpack 2021-09-22 20:21:26 -04:00
Anuken
90d1770b3e Attempt to synchronized logic random seed 2021-09-22 20:12:45 -04:00
Anuken
3f6d5b9dfe Sync/save @tick/@time; make @time be based off of @tick
Closes Anuken/Mindustry-Suggestions/issues/2976
2021-09-22 19:35:15 -04:00
Anuken
6d41b894ab Slight difficulty increase of Desolate Rift 2021-09-22 19:21:58 -04:00
Anuken
0c4592fbc8 ok jitpack 2021-09-22 18:43:13 -04:00
Anuken
dc2ff1e933 Switch to 'slightly faster' Jabel version 2021-09-22 18:40:00 -04:00
Anuken
6f8ae1b5a3 h 2021-09-22 18:32:14 -04:00
Anuken
76e5c51a12 ???? 2021-09-22 18:26:04 -04:00
Anuken
45f6fde689 ??? 2021-09-22 18:22:28 -04:00
Anuken
83dc70b054 Run tests with --stacktrace 2021-09-22 18:17:54 -04:00
Anuken
ec886456c8 really? 2021-09-22 18:15:27 -04:00
Anuken
4377eacfd5 Updated Jabel for JDK 17 compatibility 2021-09-22 18:11:51 -04:00
Anuken
c92433c5f9 Attempting JDK 17 again 2021-09-22 18:01:04 -04:00
Darkness#3729
deca57c2d9 Add a new gamemode, improve port (#6033)
:-/
2021-09-22 13:33:18 -04:00
Anuken
00cb441704 Fixed #6032 2021-09-21 13:50:20 -04:00
Anuken
173ac324a4 Merge remote-tracking branch 'origin/master' 2021-09-21 09:42:24 -04:00
Anuken
3a8ba568b5 Fixed main -> mainClass deprecation warning 2021-09-21 09:42:19 -04:00
Matthew Peng
b60acf2c37 Option to parentize status effect effects (#6030) 2021-09-21 08:36:34 -04:00
Anuken
6f27fd1ea2 Merge remote-tracking branch 'origin/master' 2021-09-20 12:38:34 -04:00
Anuken
8a6f3db20e Fixed #6028 2021-09-20 12:38:29 -04:00
Matthew Peng
4886ee35e9 Status Field Effect X/Y (#6009)
* Status Field Effect X/Y

* h

* aaaaaaaaaaaaaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2021-09-20 09:32:30 -04:00
Matthew Peng
cbb3afa95c Add boolean[] to TypeIO (#6026)
* Add `boolean[]` to `TypeIO`

I'm too lazy to convert `byte[]` in my code.

* Order
2021-09-20 00:10:43 -04:00
Anuken
7e0f68b24d Made replaced preset sector saves auto-delete 2021-09-19 12:50:45 -04:00
Anuken
cc0cdeb6c0 Use Unit icon() for minimap icons 2021-09-19 09:29:32 -04:00
Anuken
01a76d1c9e Merge remote-tracking branch 'origin/master' 2021-09-19 08:53:04 -04:00
Anuken
5c0827b208 Fixed requestItem not respecting amount 2021-09-19 08:52:59 -04:00
Darkness#3729
05b8c772d8 Opened a sandbox server and added a domain (#6022) 2021-09-19 08:34:28 -04:00
Anuken
9dfb5888ec Fixed shields not capping properly 2021-09-18 20:39:43 -04:00
Anuken
66f56d9e98 Merge remote-tracking branch 'origin/master' 2021-09-18 14:33:03 -04:00
Anuken
3f996cf294 Better bullet range calc 2021-09-18 14:32:57 -04:00
JrTRinny
47dc9c7b31 add playerControllable for turrets (#6019) 2021-09-18 09:52:31 -04:00
Kowkodivka
e4e1bac2aa [RU] Multiplayer translate (#6014)
Перевел строчку "servers.local.steam = Open Games & Local Servers".
2021-09-17 21:39:49 -04:00
Anuken
01771c5288 Merge remote-tracking branch 'origin/master' 2021-09-17 11:46:58 -04:00
Anuken
58a21c3cc7 Arc compatibility 2021-09-17 11:46:52 -04:00
Kowkodivka
effd226c3e [RU] Settings translate (#6013)
Перевел 2 строчки в настройках графики.
2021-09-17 11:33:46 -04:00
Kowkodivka
8ccca23a24 Update bundle_ru.properties (#6012)
Translated "status.overdrive.name"
2021-09-17 10:16:03 -04:00
Anuken
84935e1bb0 Fixed #6008 2021-09-16 21:25:31 -04:00
Anuken
32baf06c97 Experimental alternate Serpulo generation / Spawn margin decrease 2021-09-16 18:10:38 -04:00
Anuken
0756da0dd1 Fixed shader warnings 2021-09-16 12:41:45 -04:00
Anuken
845b64945e "Realistic" specular planet lighting 2021-09-16 10:20:32 -04:00
Anuken
7b623e964c gitignore fixes 2021-09-15 22:34:15 -04:00
Anuken
e3cceea1af Re-trying JITPack 2021-09-15 22:30:53 -04:00
Anuken
c4fe53955b Moved Scripts loaders to Vars.tree.loadSound/Music 2021-09-15 11:24:39 -04:00
Anuken
0068952ba6 Content parser listener 2021-09-15 10:49:22 -04:00
Anuken
a3b3745d01 Merge remote-tracking branch 'origin/master' 2021-09-14 21:28:39 -04:00
Anuken
95c3476144 Fixed #6001 2021-09-14 21:28:34 -04:00
Matthew Peng
4cb3bef1a7 Parentize Vela and Corvus shoot effects (#5997) 2021-09-14 14:24:19 -04:00
Darkness#3729
248f59131b [RU] Translation of all latest bundles (#5985)
* [RU] Translation of all latest bundles

* Also this line

* Update bundle_ru.properties

* Fix
2021-09-14 12:52:19 -04:00
Anuken
72841afd96 too soon, apparently 2021-09-14 12:29:29 -04:00
Anuken
eb9c3c8033 Use JDK 17 for tests 2021-09-14 12:25:09 -04:00
Anuken
e23837a4ba Updated RoboVM / Switched to hard-coded SDK platform jar 2021-09-14 12:21:07 -04:00
Anuken
625f2640d8 Merge remote-tracking branch 'origin/master' 2021-09-14 09:55:40 -04:00
Anuken
01c67b77cb Fixed #5995 2021-09-14 09:55:35 -04:00
JrTRinny
63b39cdb72 there is no cliffs (#5991) 2021-09-14 09:32:08 -04:00
Rex
be0397355f br (#5990) 2021-09-13 21:08:42 -04:00
TNT331PRD
689b5af2fb Minty (#5987)
Additional server
2021-09-13 20:54:43 -04:00
Rex
d36a00a6fe update bundle_es.properties (#5989)
* Update bundle_es.properties

* Update bundle_es.properties

* 131

* support units

* fixed
2021-09-13 20:08:40 -04:00
RebornTrack970
8dfa349484 V6 2r2t (#5986) 2021-09-13 18:42:34 -04:00
Darkness6030
2906c61d06 Prevent players to kick themselves (#5988) 2021-09-13 13:39:23 -04:00
Anuken
e1ba9f16f6 Merge remote-tracking branch 'origin/master' 2021-09-13 09:04:01 -04:00
Anuken
826ddf4aad strip message newlines 2021-09-13 09:03:56 -04:00
kituta
d20048fe11 Update bundle_ja.properties (#5849)
* Update bundle_ja.properties

Addition. //追加
Changed wording of the toolmode. //toolmodeの文言を変更
Small fixes. //小さな修正

* Update bundle_ja.properties

Change of wording //文言の変更

* Update bundle_ja.properties

Addition. //追加

* Update bundle_ja.properties

Addition. //追加
366 editor.cliffs = Walls To Cliffs は「建築不能領域を表す断崖の壁を描く機能」だと思いますが、把握できていないため未翻訳で置いておきます。
「断崖を描く」

* Update bundle_ja.properties

Add

* Update bundle_ja.properties

fix //句点を忘れていました

* Update bundle_ja.properties

Small fixes. //小さな修正
2021-09-13 08:44:13 -04:00
303 changed files with 5286 additions and 1647 deletions

View File

@@ -17,9 +17,9 @@ jobs:
git tag ${BNUM} git tag ${BNUM}
git config --global user.name "Build Uploader" git config --global user.name "Build Uploader"
git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds ${BNUM} git push https://Anuken:${{ secrets.API_TOKEN_GITHUB }}@github.com/Anuken/MindustryBuilds ${BNUM}
- name: Set up JDK 16 - name: Set up JDK 17
uses: actions/setup-java@v1 uses: actions/setup-java@v1
with: with:
java-version: 16 java-version: 17
- name: Run unit tests - name: Run unit tests
run: ./gradlew clean cleanTest test run: ./gradlew clean cleanTest test --stacktrace

4
.gitignore vendored
View File

@@ -162,3 +162,7 @@ gradle-app.setting
.DS_Store .DS_Store
Thumbs.db Thumbs.db
android/libs/ android/libs/
# ignored due to frequent branch conflicts.
core/assets/logicids.dat
core/assets/icons/icons.properties

View File

@@ -18,7 +18,7 @@ See [CONTRIBUTING](CONTRIBUTING.md).
Bleeding-edge builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases). Bleeding-edge builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases).
If you'd rather compile on your own, follow these instructions. If you'd rather compile on your own, follow these instructions.
First, make sure you have [JDK 16](https://adoptopenjdk.net/archive.html?variant=openjdk16&jvmVariant=hotspot) installed. **Other JDK versions will not work.** Open a terminal in the Mindustry directory and run the following commands: First, make sure you have [JDK 16-17](https://adoptopenjdk.net/archive.html?variant=openjdk16&jvmVariant=hotspot) installed. **Other JDK versions will not work.** Open a terminal in the Mindustry directory and run the following commands:
### Windows ### Windows

View File

@@ -5,6 +5,7 @@ This is done by letting clients `GET` a [JSON list of servers](https://github.co
You may want to add your server to this list. The steps for getting this done are as follows: You may want to add your server to this list. The steps for getting this done are as follows:
0. **Take note of the fact that modded servers are not allowed on this list.** Such servers confuse users, and there's currently no easy way to fix mod incompatibilities after a failed connection.
1. **Ensure your server is properly moderated.** For the most part, this applies to survival servers, but PvP servers can be affected as well. 1. **Ensure your server is properly moderated.** For the most part, this applies to survival servers, but PvP servers can be affected as well.
You'll need to either hire some moderators, or make use of (currently non-existent) anti-grief and anti-curse plugins. You'll need to either hire some moderators, or make use of (currently non-existent) anti-grief and anti-curse plugins.
*Consider enabling a rate limit:* `config messageRateLimit 2` will make it so that players can only send messages every 2 seconds, for example. *Consider enabling a rate limit:* `config messageRateLimit 2` will make it so that players can only send messages every 2 seconds, for example.

View File

@@ -31,9 +31,11 @@ There are two ways to test the translation bundle:
1) Assuming you have the PC version downloaded, download your bundle file, name it `bundle.properties`, then place it in the same folder as the Mindustry desktop executable and run it. *You should get a popup message in-game confirming that you have loaded an external translation.* 1) Assuming you have the PC version downloaded, download your bundle file, name it `bundle.properties`, then place it in the same folder as the Mindustry desktop executable and run it. *You should get a popup message in-game confirming that you have loaded an external translation.*
2) For advanced users: simply download your fork of mindustry and compile/run the game. 2) For advanced users: simply download your fork of mindustry and compile/run the game.
#### Translating for stores (Steam, Google Play) #### Translating for stores (Steam, ~~Google Play~~)
If you would like to translate the descriptions for Google Play or Steam, see the [Fastlane Metadata folder](https://github.com/Anuken/Mindustry/tree/master/fastlane/metadata) and submit a pull request for files there. On Google Play, you would create or edit the folder with the correct local code; for Steam, I have to update the translations manually, so just name the folder with the language name, and include the same files as the English folder does. NOTE: The Google Play description is in the process of being re-written, please do not translate it.
If you would like to translate the descriptions for ~~Google Play~~ or Steam, see the [Fastlane Metadata folder](https://github.com/Anuken/Mindustry/tree/master/fastlane/metadata) and submit a pull request for files there. On Google Play, you would create or edit the folder with the correct local code; for Steam, I have to update the translations manually, so just name the folder with the language name, and include the same files as the English folder does.
**And that's it.** **And that's it.**

View File

@@ -7,7 +7,7 @@ buildscript{
} }
dependencies{ dependencies{
classpath 'com.android.tools.build:gradle:7.0.1' classpath 'com.android.tools.build:gradle:7.0.3'
} }
} }
@@ -29,7 +29,7 @@ task deploy(type: Copy){
} }
android{ android{
buildToolsVersion '30.0.2' buildToolsVersion '30.0.3'
compileSdkVersion 30 compileSdkVersion 30
sourceSets{ sourceSets{
main{ main{
@@ -139,8 +139,8 @@ dependencies{
gpImplementation "com.google.android.gms:play-services-games:21.0.0" gpImplementation "com.google.android.gms:play-services-games:21.0.0"
gpImplementation "com.google.android.gms:play-services-auth:19.0.0" gpImplementation "com.google.android.gms:play-services-auth:19.0.0"
//android dependencies magically disappear during compilation, thanks gradle! //TODO dynamically find best android platform jar instead of hard-coding to 30
def sdkFile = new File((String)findSdkDir(), "/platforms/android-29/android.jar") def sdkFile = new File((String)findSdkDir(), "/platforms/android-30/android.jar")
if(sdkFile.exists()) compileOnly files(sdkFile.absolutePath) if(sdkFile.exists()) compileOnly files(sdkFile.absolutePath)
} }

View File

@@ -878,7 +878,7 @@ public class EntityProcess extends BaseProcessor{
nullsBuilder.addField(FieldSpec.builder(type, Strings.camelize(baseName)).initializer("new " + className + "()").addModifiers(Modifier.FINAL, Modifier.STATIC, Modifier.PUBLIC).build()); nullsBuilder.addField(FieldSpec.builder(type, Strings.camelize(baseName)).initializer("new " + className + "()").addModifiers(Modifier.FINAL, Modifier.STATIC, Modifier.PUBLIC).build());
write(nullBuilder); write(nullBuilder, imports.asArray());
} }
write(nullsBuilder); write(nullsBuilder);

View File

@@ -0,0 +1 @@
{version:6,fields:[{name:color,type:arc.graphics.Color},{name:data,type:java.lang.Object},{name:effect,type:mindustry.entities.Effect},{name:lifetime,type:float},{name:offsetPos,type:float},{name:offsetRot,type:float},{name:offsetX,type:float},{name:offsetY,type:float},{name:parent,type:mindustry.gen.Posc},{name:rotWithParent,type:boolean},{name:rotation,type:float},{name:time,type:float},{name:x,type:float},{name:y,type:float}]}

View File

@@ -13,36 +13,18 @@ buildscript{
google() google()
maven{ url "https://oss.sonatype.org/content/repositories/snapshots/" } maven{ url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven{ url 'https://jitpack.io' } maven{ url 'https://jitpack.io' }
//fake repository to download my patched robovm jar from
ivy{
url 'https://github.com/'
patternLayout {
artifact '/[organisation]/[module]/raw/a-single-jar-file/[revision].jar'
}
// This is required in Gradle 6.0+ as metadata file (ivy.xml)
// is mandatory. Docs linked below this code section
metadataSources { artifact() }
}
} }
dependencies{ dependencies{
//use local, patched robovm gradle plugin until my PR for gradle 7.0 support is merged classpath "com.mobidevelop.robovm:robovm-gradle-plugin:2.3.14"
//https://github.com/Anuken/robovm/raw/a-single-jar-file/robovm-gradle-plugin-2.3.14-SNAPSHOT.jar
classpath "Anuken:robovm:robovm-gradle-plugin-2.3.14-SNAPSHOT"
//needed for plugin above
classpath "com.mobidevelop.robovm:robovm-dist-compiler:2.3.13"
classpath "com.github.Anuken.Arc:packer:$arcHash" classpath "com.github.Anuken.Arc:packer:$arcHash"
classpath "com.github.Anuken.Arc:arc-core:$arcHash" classpath "com.github.Anuken.Arc:arc-core:$arcHash"
} }
} }
plugins{ plugins{
id 'org.jetbrains.kotlin.jvm' version '1.5.21' id 'org.jetbrains.kotlin.jvm' version '1.5.31'
id "org.jetbrains.kotlin.kapt" version "1.5.21" id "org.jetbrains.kotlin.kapt" version "1.5.31"
} }
allprojects{ allprojects{
@@ -285,7 +267,7 @@ project(":ios"){
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'] = '6.0' props['app.version'] = '7.0'
props['app.mainclass'] = 'mindustry.IOSLauncher' props['app.mainclass'] = 'mindustry.IOSLauncher'
props['app.executable'] = 'IOSLauncher' props['app.executable'] = 'IOSLauncher'
props['app.name'] = 'Mindustry' props['app.name'] = 'Mindustry'
@@ -393,7 +375,7 @@ project(":core"){
if(localArc() && debugged()) api arcModule("extensions:recorder") if(localArc() && debugged()) api arcModule("extensions:recorder")
if(localArc()) api arcModule(":extensions:packer") if(localArc()) api arcModule(":extensions:packer")
annotationProcessor 'com.github.Anuken:jabel:34e4c172e65b3928cd9eabe1993654ea79c409cd' annotationProcessor 'com.github.Anuken:jabel:0.6.0'
compileOnly project(":annotations") compileOnly project(":annotations")
kapt project(":annotations") kapt project(":annotations")
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 895 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -122,7 +122,7 @@ committingchanges = Committing Changes
done = Done done = Done
feature.unsupported = Your device does not support this feature. feature.unsupported = Your device does not support this feature.
mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]\n\nTo disable this feature, turn it off in [accent]Settings->Game->Disable Mods On Startup Crash[]. mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
mods = Mods mods = Mods
mods.none = [lightgray]No mods found! mods.none = [lightgray]No mods found!
mods.guide = Modding Guide mods.guide = Modding Guide
@@ -379,6 +379,9 @@ editor.ingame = Edit In-Game
editor.publish.workshop = Publish On Workshop editor.publish.workshop = Publish On Workshop
editor.newmap = New Map editor.newmap = New Map
editor.center = Center editor.center = Center
editor.search = Search Maps...
editor.filters = Filter Maps
editor.showAll = Show Default Maps
workshop = Workshop workshop = Workshop
waves.title = Waves waves.title = Waves
waves.remove = Remove waves.remove = Remove
@@ -412,6 +415,7 @@ wavemode.health = health
editor.default = [lightgray]<Default> editor.default = [lightgray]<Default>
details = Details... details = Details...
edit = Edit... edit = Edit...
variables = Vars
editor.name = Name: editor.name = Name:
editor.spawn = Spawn Unit editor.spawn = Spawn Unit
editor.removeunit = Remove Unit editor.removeunit = Remove Unit
@@ -1130,6 +1134,7 @@ block.sand-boulder.name = Sand Boulder
block.basalt-boulder.name = Basalt Boulder block.basalt-boulder.name = Basalt Boulder
block.grass.name = Grass block.grass.name = Grass
block.molten-slag.name = Slag block.molten-slag.name = Slag
block.pooled-cryofluid.name = Cryofluid
block.space.name = Space block.space.name = Space
block.salt.name = Salt block.salt.name = Salt
block.salt-wall.name = Salt Wall block.salt-wall.name = Salt Wall
@@ -1291,6 +1296,7 @@ block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Phase Conduit block.phase-conduit.name = Phase Conduit
block.liquid-router.name = Liquid Router block.liquid-router.name = Liquid Router
block.liquid-tank.name = Liquid Tank block.liquid-tank.name = Liquid Tank
block.liquid-container.name = Liquid Container
block.liquid-junction.name = Liquid Junction block.liquid-junction.name = Liquid Junction
block.bridge-conduit.name = Bridge Conduit block.bridge-conduit.name = Bridge Conduit
block.rotary-pump.name = Rotary Pump block.rotary-pump.name = Rotary Pump
@@ -1337,10 +1343,16 @@ block.disassembler.name = Disassembler
block.silicon-crucible.name = Silicon Crucible block.silicon-crucible.name = Silicon Crucible
block.overdrive-dome.name = Overdrive Dome block.overdrive-dome.name = Overdrive Dome
block.interplanetary-accelerator.name = Interplanetary Accelerator block.interplanetary-accelerator.name = Interplanetary Accelerator
#experimental, may be removed block.constructor.name = Constructor
block.block-forge.name = Block Forge block.constructor.description = Fabricates structures up to 2x2 tiles in size.
block.block-loader.name = Block Loader block.large-constructor.name = Large Constructor
block.block-unloader.name = Block Unloader block.large-constructor.description = Fabricates structures up to 4x4 tiles in size.
block.deconstructor.name = Deconstructor
block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost.
block.payload-loader.name = Payload Loader
block.payload-loader.description = Load liquids and items into blocks.
block.payload-unloader.name = Payload Unloader
block.payload-unloader.description = Unloads liquids and items from blocks.
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor
@@ -1496,6 +1508,7 @@ block.conduit.description = Moves liquids forward. Used in conjunction with pump
block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits. block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak. block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak.
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid.
block.liquid-container.description = Stores a sizeable amount of liquid. Outputs to all sides, similarly to a liquid router.
block.liquid-tank.description = Stores a large amount of liquid. Outputs to all sides, similarly to a liquid router. block.liquid-tank.description = Stores a large amount of liquid. Outputs to all sides, similarly to a liquid router.
block.liquid-junction.description = Acts as a bridge for two crossing conduits. block.liquid-junction.description = Acts as a bridge for two crossing conduits.
block.bridge-conduit.description = Transports liquids over terrain or buildings. block.bridge-conduit.description = Transports liquids over terrain or buildings.
@@ -1610,7 +1623,7 @@ unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Co
unit.alpha.description = Defends the Shard core from enemies. Builds structures. unit.alpha.description = Defends the Shard core from enemies. Builds structures.
unit.beta.description = Defends the Foundation core from enemies. Builds structures. unit.beta.description = Defends the Foundation core from enemies. Builds structures.
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures. unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
unit.retusa.description = Places proximity mines. Repairs allied units. unit.retusa.description = Fires homing torpedoes at nearby enemies. Repairs allied units.
unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret. unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret.
unit.cyerce.description = Fires seeking cluster-missiles at enemies. Repairs allied units. unit.cyerce.description = Fires seeking cluster-missiles at enemies. Repairs allied units.
unit.aegires.description = Shocks all enemy units and structures that enter its energy field. Repairs all allies. unit.aegires.description = Shocks all enemy units and structures that enter its energy field. Repairs all allies.
@@ -1761,6 +1774,7 @@ lenum.itemdrop = Drop an item.
lenum.itemtake = Take an item from a building. lenum.itemtake = Take an item from a building.
lenum.paydrop = Drop current payload. lenum.paydrop = Drop current payload.
lenum.paytake = Pick up payload at current location. lenum.paytake = Pick up payload at current location.
lenum.payenter = Enter/land on the payload block the unit is on.
lenum.flag = Numeric unit flag. lenum.flag = Numeric unit flag.
lenum.mine = Mine at a position. lenum.mine = Mine at a position.
lenum.build = Build a structure. lenum.build = Build a structure.

View File

@@ -23,7 +23,7 @@ gameover.pvp = Das[accent] {0}[] Team ist siegreich!
gameover.waiting = [accent]Warte auf neue Karte... gameover.waiting = [accent]Warte auf neue Karte...
highscore = [accent]Neuer Highscore! highscore = [accent]Neuer Highscore!
copied = Kopiert. copied = Kopiert.
indev.notready = Dieser Teil vom Spiel ist noch unfertig. indev.notready = Dieser Teil vom Spiel ist noch nicht fertig.
indev.campaign = [accent]Glückwunsch! Du hast das Ende der Kampagne erreicht![]\n\nMehr gibt es noch nicht. In einem zukünftigen Update wird interplanetarisches Reisen möglich werden. indev.campaign = [accent]Glückwunsch! Du hast das Ende der Kampagne erreicht![]\n\nMehr gibt es noch nicht. In einem zukünftigen Update wird interplanetarisches Reisen möglich werden.
load.sound = Audio load.sound = Audio
@@ -34,25 +34,25 @@ load.system = System
load.mod = Mods load.mod = Mods
load.scripts = Scripts load.scripts = Scripts
be.update = Ein neuer Bleeding Edge build ist verfügbar: be.update = Ein neuer Bleeding-Edge-Build ist verfügbar:
be.update.confirm = Herunterladen und neu starten? be.update.confirm = Herunterladen und neu starten?
be.updating = Aktualisieren... be.updating = Aktualisiert...
be.ignore = Ignorieren be.ignore = Ignorieren
be.noupdates = Keine Aktualisierungen gefunden. be.noupdates = Keine Aktualisierungen gefunden.
be.check = Auf Aktualisierungen prüfen be.check = Auf Aktualisierungen prüfen
mod.featured.dialog.title = Mod Browser mod.featured.dialog.title = Mod-Browser
mods.browser.selected = Ausgewählter Mod mods.browser.selected = Ausgewählter Mod
mods.browser.add = Installieren mods.browser.add = Installieren
mods.browser.reinstall = Neu Installieren mods.browser.reinstall = Neu installieren
mods.github.open = Github mods.github.open = GitHub-Repo
mods.browser.sortdate = Nach neusten sortieren mods.browser.sortdate = Nach neuesten sortieren
mods.browser.sortstars = Nach Sternen sortieren mods.browser.sortstars = Nach Sternen sortieren
schematic = Entwurf schematic = Entwurf
schematic.add = Entwurf speichern... schematic.add = Entwurf speichern...
schematics = Entwürfe schematics = Entwürfe
schematic.replace = Ein anderer Entwurf hat bereits diesen Namen. Diesen ersetzen? schematic.replace = Es gibt bereits einen Entwurf mit diesem Namen. Diesen ersetzen?
schematic.exists = Es gibt schon einen Entwurf mit diesem Namen. schematic.exists = Es gibt schon einen Entwurf mit diesem Namen.
schematic.import = Entwurf importieren... schematic.import = Entwurf importieren...
schematic.exportfile = Datei exportieren schematic.exportfile = Datei exportieren
@@ -107,7 +107,7 @@ position = Position
close = Schließen close = Schließen
website = Website website = Website
quit = Verlassen quit = Verlassen
save.quit = Speichern & Verlassen save.quit = Speichern & verlassen
maps = Karten maps = Karten
maps.browse = Karten durchsuchen maps.browse = Karten durchsuchen
continue = Weiter continue = Weiter
@@ -138,7 +138,7 @@ mod.disabled = [scarlet]Deaktiviert
mod.multiplayer.compatible = [gray]Mehrspieler-kompatibel mod.multiplayer.compatible = [gray]Mehrspieler-kompatibel
mod.disable = Deaktivieren mod.disable = Deaktivieren
mod.content = Inhalt: mod.content = Inhalt:
mod.delete.error = Unfähig Mod zu löschen. Datei könnte in Benutzung sein. mod.delete.error = Mod konnte nicht gelöscht werden. Datei könnte in Benutzung sein.
mod.requiresversion = [scarlet]Benötigt mindestens Version:[accent] {0} mod.requiresversion = [scarlet]Benötigt mindestens Version:[accent] {0}
mod.outdated = [scarlet]Nicht mit V6 kompatibel (no minGameVersion: 105) mod.outdated = [scarlet]Nicht mit V6 kompatibel (no minGameVersion: 105)
mod.missingdependencies = [scarlet]Fehlende Abhängigkeiten: {0} mod.missingdependencies = [scarlet]Fehlende Abhängigkeiten: {0}
@@ -151,9 +151,9 @@ mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuw
mod.reloadrequired = [scarlet]Neuladen benötigt mod.reloadrequired = [scarlet]Neuladen benötigt
mod.import = Mod importieren mod.import = Mod importieren
mod.import.file = Datei importieren mod.import.file = Datei importieren
mod.import.github = GitHub-Mod importieren mod.import.github = Aus GitHub importieren
mod.jarwarn = [scarlet]JAR Mods sind nicht sicher.[]\nInstalliere nur Mods von vertrauenswürdigen Quellen! mod.jarwarn = [scarlet]JAR-Mods sind nicht sicher.[]\nInstalliere nur Mods von vertrauenswürdigen Quellen!
mod.item.remove = Dies ist Teil vom [accent] '{0}'[] Mod. Deaktiviere diesen Mod, um dies zu entfernen. mod.item.remove = Dieses Item ist Teil vom [accent] '{0}'[] Mod. Deaktiviere diesen Mod, um dies zu entfernen.
mod.remove.confirm = Dieser Mod wird gelöscht. mod.remove.confirm = Dieser Mod wird gelöscht.
mod.author = [lightgray]Autor:[] {0} mod.author = [lightgray]Autor:[] {0}
mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden sind oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, dass du ihn laden möchtest?\n[lightgray]Mods:\n{0} mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden sind oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, dass du ihn laden möchtest?\n[lightgray]Mods:\n{0}
@@ -327,7 +327,7 @@ enablebuilding = [scarlet][[{0}][] um zu bauen
showui = Bedienflächen versteckt.\nDrücke [accent][[{0}][], um sie wieder anzuzeigen. showui = Bedienflächen versteckt.\nDrücke [accent][[{0}][], um sie wieder anzuzeigen.
wave = [accent]Welle {0} wave = [accent]Welle {0}
wave.cap = [accent]Welle {0}/{1} wave.cap = [accent]Welle {0}/{1}
wave.waiting = Welle in {0} wave.waiting = Nächste Welle in {0}
wave.waveInProgress = [lightgray]Welle im Gange wave.waveInProgress = [lightgray]Welle im Gange
waiting = Warten... waiting = Warten...
waiting.players = Warte auf Spieler... waiting.players = Warte auf Spieler...
@@ -354,7 +354,7 @@ map.publish.confirm = Willst du diese Karte wirklich veröffentlichen?\n\n[light
workshop.menu = Wähle aus, was du mit diesem Objekt tun willst. workshop.menu = Wähle aus, was du mit diesem Objekt tun willst.
workshop.info = Objekt-Info workshop.info = Objekt-Info
changelog = Änderungen (optional): changelog = Änderungen (optional):
eula = Steam EULA eula = Steam-EULA
missing = Dieses Objekt wurde gelöscht oder verschoben.\n[lightgray]Die Workshop-Auflistung ist nun automatisch getrennt worden. missing = Dieses Objekt wurde gelöscht oder verschoben.\n[lightgray]Die Workshop-Auflistung ist nun automatisch getrennt worden.
publishing = [accent]Veröffentlichen... publishing = [accent]Veröffentlichen...
publish.confirm = Willst du das wirklich veröffentlichen?\n\n[lightgray]Vergewissere dich, dass du der Workshop-EULA zugestimmt hast, sonst tauchen deine Objekte nicht auf! publish.confirm = Willst du das wirklich veröffentlichen?\n\n[lightgray]Vergewissere dich, dass du der Workshop-EULA zugestimmt hast, sonst tauchen deine Objekte nicht auf!
@@ -1494,7 +1494,7 @@ block.laser-drill.description = Erlaubt es, durch Lasertechnologie noch schnelle
block.blast-drill.description = Der ultimative Bohrer. Benötigt große Mengen an Strom. block.blast-drill.description = Der ultimative Bohrer. Benötigt große Mengen an Strom.
block.water-extractor.description = Extrahiert Wasser aus dem Boden. Verwende ihn, wenn es keinen See in der Nähe gibt. block.water-extractor.description = Extrahiert Wasser aus dem Boden. Verwende ihn, wenn es keinen See in der Nähe gibt.
block.cultivator.description = Kultiviert winzige Mengen atmosphärischer Mikrosporen in Sporen-Pods. block.cultivator.description = Kultiviert winzige Mengen atmosphärischer Mikrosporen in Sporen-Pods.
block.cultivator.details = Zurückgewonnene Technologie. Wird benutzt, um große Mengen Biomasse so effizient wie möglich herzustellen. Wahrscheinlich der ehemaliger Inkubator der Sporen, die Serpulo heute bedecken. block.cultivator.details = Zurückgewonnene Technologie. Wird benutzt, um große Mengen Biomasse so effizient wie möglich herzustellen. Wahrscheinlich der ehemalige Inkubator der Sporen, die Serpulo heute bedecken.
block.oil-extractor.description = Verwendet große Mengen an Strom, Sand und Wasser, um Öl zu extrahieren. block.oil-extractor.description = Verwendet große Mengen an Strom, Sand und Wasser, um Öl zu extrahieren.
block.core-shard.description = Kern der Basis. Einmal zerstört, ist jeglicher Kontakt zum Sektor verloren. block.core-shard.description = Kern der Basis. Einmal zerstört, ist jeglicher Kontakt zum Sektor verloren.
block.core-shard.details = Die erste Version. Kompakt. Selbstduplizierend. Mit Einmalraketen ausgestattet. Nicht für Interplanetarische Reisen geeignet. block.core-shard.details = Die erste Version. Kompakt. Selbstduplizierend. Mit Einmalraketen ausgestattet. Nicht für Interplanetarische Reisen geeignet.

View File

@@ -2,7 +2,7 @@ credits.text = Creado por [royal]Anuken[] - [sky]anukendev@gmail.com[]
credits = Créditos credits = Créditos
contributors = Traductores y Contribuidores contributors = Traductores y Contribuidores
discord = ¡Únete al Discord de Mindustry! discord = ¡Únete al Discord de Mindustry!
link.discord.description = El servidor official de Discord de Mindustry link.discord.description = El servidor oficial de Discord de Mindustry
link.reddit.description = El subreddit de Mindustry link.reddit.description = El subreddit de Mindustry
link.github.description = Código fuente del juego link.github.description = Código fuente del juego
link.changelog.description = Lista de actualizaciones link.changelog.description = Lista de actualizaciones
@@ -24,7 +24,7 @@ gameover.waiting = [accent]Esperando el próximo mapa...
highscore = [accent]¡Nuevo récord de puntuación! highscore = [accent]¡Nuevo récord de puntuación!
copied = Copiado copied = Copiado
indev.notready = Esta parte del juego no esta lista aún. indev.notready = Esta parte del juego no esta lista aún.
indev.campaign = [accent]Has llegado al final de la campaña![]\n\nEsto es lo más lejos que puedes llegar por ahora.\nLos viajes interplanetarios se añadirán en futuras actualizaciones. indev.campaign = [accent]¡Has llegado al final de la campaña![]\n\nEsto es lo más lejos que puedes llegar por ahora.\nLos viajes interplanetarios se añadirán en futuras actualizaciones.
load.sound = Sonidos load.sound = Sonidos
load.map = Mapas load.map = Mapas
@@ -49,24 +49,24 @@ mods.github.open = Repositorio
mods.browser.sortdate = Más recientes mods.browser.sortdate = Más recientes
mods.browser.sortstars = Mejor valorados mods.browser.sortstars = Mejor valorados
schematic = Plantilla schematic = Esquema
schematic.add = Guardar plantilla... schematic.add = Guardar Esquema...
schematics = Plantillas schematics = Esquemas
schematic.replace = Ya existe una plantilla con ese nombre. ¿Deseas remplazarla? schematic.replace = Ya existe un esquema con ese nombre. ¿Deseas remplazarlo?
schematic.exists = Ya existe una plantilla con ese nombre. schematic.exists = Ya existe un esquema con ese nombre.
schematic.import = Importar plantilla... schematic.import = Importar Esquema...
schematic.exportfile = Exportar archivo schematic.exportfile = Exportar Archivo
schematic.importfile = Importar archivo schematic.importfile = Importar Archivo
schematic.browseworkshop = Buscar en Steam Workshop schematic.browseworkshop = Buscar en Steam Workshop
schematic.copy = Copiar al portapapeles. schematic.copy = Copiar al portapapeles.
schematic.copy.import = Importar desde el portapapeles. schematic.copy.import = Importar desde el portapapeles.
schematic.shareworkshop = Compartir en Steam Workshop schematic.shareworkshop = Compartir en Steam Workshop
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Girar plantilla schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Girar esquema
schematic.saved = Plantilla guardada. schematic.saved = Esquema guardado.
schematic.delete.confirm = Se borrará ésta plantilla. schematic.delete.confirm = Se borrará éste esquema.
schematic.rename = Renombrar plantilla schematic.rename = Renombrar Esquema
schematic.info = {0}x{1}, {2} bloques schematic.info = {0}x{1}, {2} bloques
schematic.disabled = [scarlet]Plantillas desactivadas.[]\nNo puedes usar plantillas en este [accent]mapa[] o [accent]servidor. schematic.disabled = [scarlet]Esquemas desactivados.[]\nNo puedes usar esquemas en este [accent]mapa[] o [accent]servidor.
schematic.tags = Etiquetas: schematic.tags = Etiquetas:
schematic.edittags = Editar Etiquetas schematic.edittags = Editar Etiquetas
schematic.addtag = Añadir Etiqueta schematic.addtag = Añadir Etiqueta
@@ -78,13 +78,12 @@ schematic.tagexists = Esa etiqueta ya existe.
stats = Estadísticas stats = Estadísticas
stat.wave = Oleadas Derrotadas:[accent] {0} stat.wave = Oleadas Derrotadas:[accent] {0}
stat.unitsCreated = Unidades Creadas:[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}
stat.destroyed = Estructuras Destruidas:[accent] {0} stat.destroyed = Estructuras Destruidas:[accent] {0}
stat.deconstructed = Estructuras Desconstruidas:[accent] {0} stat.deconstructed = Estructuras Desconstruidas:[accent] {0}
stat.delivered = Recursos Lanzados:
stat.playtime = Tiempo jugado:[accent] {0} stat.playtime = Tiempo jugado:[accent] {0}
stat.rank = Rango final: [accent]{0}
globalitems = [accent]Recursos Totales globalitems = [accent]Recursos Totales
map.delete = ¿Quieres borrar el mapa "[accent]{0}[]"? map.delete = ¿Quieres borrar el mapa "[accent]{0}[]"?
@@ -93,7 +92,8 @@ level.select = Selección de Nivel
level.mode = Modo de juego: level.mode = Modo de juego:
coreattack = < ¡El núcleo está bajo ataque! > coreattack = < ¡El núcleo está bajo ataque! >
nearpoint = [[ [scarlet]ABANDONA EL PUNTO DE ATERRIZAJE INMEDIATAMENTE[] ]\nRiesgo de aniquilación inminente nearpoint = [[ [scarlet]ABANDONA EL PUNTO DE ATERRIZAJE INMEDIATAMENTE[] ]\nRiesgo de aniquilación inminente
database = Base de datos database = Base de Datos del Núcleo
database.button = Base de Datos
savegame = Guardar Partida savegame = Guardar Partida
loadgame = Cargar Partida loadgame = Cargar Partida
joingame = Unirse a Partida joingame = Unirse a Partida
@@ -101,6 +101,7 @@ customgame = Crear Partida
newgame = Nueva Partida newgame = Nueva Partida
none = <no hay> none = <no hay>
none.found = [lightgray]<no hay coincidencias> none.found = [lightgray]<no hay coincidencias>
none.inmap = [lightgray]<no hay en este lugar>
minimap = Minimapa minimap = Minimapa
position = Posición position = Posición
close = Cerrar close = Cerrar
@@ -121,7 +122,7 @@ committingchanges = Confirmando Cambios
done = Hecho done = Hecho
feature.unsupported = Tu dispositivo no es compatible con esta función. feature.unsupported = Tu dispositivo no es compatible con esta función.
mods.initfailed = [red]⚠[] La anterior ejecución de Mindustry encontró un fallo al inicializarse. Seguramente fue causado por algún mod erróneo.\n\nPara evitar un bucle de erroes al iniciar el juego, [red]se han desactivado todos los mods.[]\n\nPuedes desactivar ésta medida de seguridad desde [accent]Opciones->Juego->Desactivar mods si el juego encuentra un error al iniciarse.[]. mods.initfailed = [red]⚠[] La anterior ejecución de Mindustry encontró un fallo al inicializarse. Seguramente fue causado por algún mod erróneo.\n\nPara evitar un bucle de erroes al iniciar el juego, [red]se han desactivado todos los mods.[]
mods = Mods mods = Mods
mods.none = [lightgray]¡No se encontraron Mods! mods.none = [lightgray]¡No se encontraron Mods!
mods.guide = Guía sobre Mods mods.guide = Guía sobre Mods
@@ -129,7 +130,7 @@ mods.report = Reportar Error
mods.openfolder = Abrir carpeta de mods mods.openfolder = Abrir carpeta de mods
mods.viewcontent = Ver Contenido mods.viewcontent = Ver Contenido
mods.reload = Recargar mods.reload = Recargar
mods.reloadexit = A continuación se cerrará el juego para recargar los mods. mods.reloadexit = A continuación se cerrará el juego para cargar los mods.
mod.installed = [[Instalado] mod.installed = [[Instalado]
mod.display = [gray]Mod:[orange] {0} mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Activado mod.enabled = [lightgray]Activado
@@ -152,8 +153,8 @@ mod.import = Importar mod
mod.import.file = Importar archivo mod.import.file = Importar archivo
mod.import.github = Importar desde Github mod.import.github = Importar desde Github
mod.jarwarn = [scarlet]Los mods JAR pueden no ser seguros.[]\n¡Asegúrate de haberlos descargado de una fuente en la que confíes! mod.jarwarn = [scarlet]Los mods JAR pueden no ser seguros.[]\n¡Asegúrate de haberlos descargado de una fuente en la que confíes!
mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod. mod.item.remove = Este objeto es parte del mod[accent] '{0}'[]. Para eliminarlo, desinstala ese mod.
mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar? mod.remove.confirm = Este mod será eliminado.
mod.author = [lightgray]Autor:[] {0} mod.author = [lightgray]Autor:[] {0}
mod.missing = Esta partida guardada usa mods que has actualizado recientemente o que no tienes instalados. Se puede corromper la partida guardada. ¿Quieres cargarla a pesar de ello?\n[lightgray]Mods:\n{0} mod.missing = Esta partida guardada usa mods que has actualizado recientemente o que no tienes instalados. Se puede corromper la partida guardada. ¿Quieres cargarla a pesar de ello?\n[lightgray]Mods:\n{0}
mod.preview.missing = Antes de publicar este mod en Steam Workshop, debes añadir una imagen de vista previa.\nAñade una imagen llamada[accent] preview.png[] en la carpeta del mod e inténtalo de nuevo. mod.preview.missing = Antes de publicar este mod en Steam Workshop, debes añadir una imagen de vista previa.\nAñade una imagen llamada[accent] preview.png[] en la carpeta del mod e inténtalo de nuevo.
@@ -168,8 +169,9 @@ launchcore = Lanzar núcleo
filename = Nombre del archivo: filename = Nombre del archivo:
unlocked = ¡Nuevo contenido en la Base de Datos! unlocked = ¡Nuevo contenido en la Base de Datos!
available = ¡Nueva investigación disponible! available = ¡Nueva investigación disponible!
unlock.incampaign = < Desbloquealo en campaña para más detalles >
completed = [accent]Completado completed = [accent]Completado
techtree = Tecnologías techtree = Árbol de Tecnologías
research.legacy = Se han encontrado datos guardados de investigaciones tecnológicas realizadas en la versión [accent]5.0[].\n¿Quieres [accent]cargar estos datos[], o [accent]descartarlos[] para reiniciar los descubrimientos tecnológicos del nuevo modo Campaña? (Recomendado) research.legacy = Se han encontrado datos guardados de investigaciones tecnológicas realizadas en la versión [accent]5.0[].\n¿Quieres [accent]cargar estos datos[], o [accent]descartarlos[] para reiniciar los descubrimientos tecnológicos del nuevo modo Campaña? (Recomendado)
research.load = Cargar research.load = Cargar
research.discard = Descartar research.discard = Descartar
@@ -214,6 +216,7 @@ hosts.none = [lightgray]No se han encontrado partidas en LAN
host.invalid = [scarlet]No se pudo conectar con el anfitrión host.invalid = [scarlet]No se pudo conectar con el anfitrión
servers.local = Servidores Locales servers.local = Servidores Locales
servers.local.steam = Partidas Públicas y Servidores Locales
servers.remote = Servidores Remotos servers.remote = Servidores Remotos
servers.global = Servidores de la Comunidad servers.global = Servidores de la Comunidad
@@ -314,15 +317,15 @@ data.exported = Datos exportados.
data.invalid = Esta data del juego no es valida. data.invalid = Esta data del juego no es valida.
data.import.confirm = Importando los datos externos borrará[scarlet] todo[] tu progreso.\n[accent]Esto no se puede rehacer![]\n\nUna vez que los datos hayan sido importados, el juego saldrá automaticamente. data.import.confirm = Importando los datos externos borrará[scarlet] todo[] tu progreso.\n[accent]Esto no se puede rehacer![]\n\nUna vez que los datos hayan sido importados, el juego saldrá automaticamente.
quit.confirm = ¿Quieres salir de la partida? quit.confirm = ¿Quieres salir de la partida?
quit.confirm.tutorial = ¿Estás seguro de que sabes qué estas haciendo?\nSe puede hacer el tutorial de nuevo en[accent] Ajustes->Juego->Volver a hacer tutorial.[]
loading = [accent]Cargando... loading = [accent]Cargando...
reloading = [accent]Recargando mods... downloading = [accent]Descargando...
saving = [accent]Guardando... saving = [accent]Guardando...
respawn = [accent][[{0}][] para reaparecer en el núcleo respawn = [accent][[{0}][] para reaparecer en el núcleo
cancelbuilding = [accent][[{0}][] para limpiar el plan cancelbuilding = [accent][[{0}][] para limpiar el plan
selectschematic = [accent][[{0}][] para seleccionar+copiar selectschematic = [accent][[{0}][] para seleccionar+copiar
pausebuilding = [accent][[{0}][] para pausar la construcción pausebuilding = [accent][[{0}][] para pausar la construcción
resumebuilding = [scarlet][[{0}][] para reanudar la construcción resumebuilding = [scarlet][[{0}][] para reanudar la construcción
enablebuilding = [scarlet][[{0}][] para activar la construcción
showui = Interfaz oculta.\nPulsa [accent][[{0}][] para volver a mostrar la Interfaz. showui = Interfaz oculta.\nPulsa [accent][[{0}][] para volver a mostrar la Interfaz.
wave = [accent]Oleada {0} wave = [accent]Oleada {0}
wave.cap = [accent]Oleada {0}/{1} wave.cap = [accent]Oleada {0}/{1}
@@ -360,6 +363,7 @@ publish.confirm = ¿Estás seguro de que quieres publicar esto?\n\n[lightgray]¡
publish.error = Error publicando el artículo: {0} publish.error = Error publicando el artículo: {0}
steam.error = Error al inicializar los servicios de Steam.\nError: {0} steam.error = Error al inicializar los servicios de Steam.\nError: {0}
editor.cliffs = Paredes a Colinas
editor.brush = Pincel editor.brush = Pincel
editor.openin = Abrir en el Editor editor.openin = Abrir en el Editor
editor.oregen = Generación de Minerales editor.oregen = Generación de Minerales
@@ -383,6 +387,7 @@ waves.waves = oleada(s)
waves.perspawn = por lugar de aparición waves.perspawn = por lugar de aparición
waves.shields = escudo/oleadas waves.shields = escudo/oleadas
waves.to = hasta waves.to = hasta
waves.max = Oleadas máximas
waves.guardian = Guardián waves.guardian = Guardián
waves.preview = Vista previa waves.preview = Vista previa
waves.edit = Editar... waves.edit = Editar...
@@ -391,6 +396,13 @@ waves.load = Cargar del Portapapeles
waves.invalid = Oleadas inválidaas en el portapapeles. waves.invalid = Oleadas inválidaas en el portapapeles.
waves.copied = Oleadas copiadas. waves.copied = Oleadas copiadas.
waves.none = No hay enemigos definidos.\nNótese que las listas de oleadas vacías se sustituirán por la lista por defecto. waves.none = No hay enemigos definidos.\nNótese que las listas de oleadas vacías se sustituirán por la lista por defecto.
waves.sort = Ordenar por
waves.sort.reverse = Al revés
waves.sort.begin = Inicio
waves.sort.health = Vida
waves.sort.type = Tipo
waves.units.hide = Ocultar Todo
waves.units.show = Mostrar Todo
#Estos están en minúscula intencionadamente. #Estos están en minúscula intencionadamente.
wavemode.counts = limitadas wavemode.counts = limitadas
@@ -537,6 +549,7 @@ configure = Configurar carga inicial
loadout = Carga Inicial loadout = Carga Inicial
resources = Recursos resources = Recursos
bannedblocks = Bloques prohibidos bannedblocks = Bloques prohibidos
bannedunits = Unidades prohibidas
addall = Añadir todo addall = Añadir todo
launch.from = Lanzando desde: [accent]{0} launch.from = Lanzando desde: [accent]{0}
launch.destination = Destino: {0} launch.destination = Destino: {0}
@@ -561,10 +574,13 @@ weather.sandstorm.name = Tormenta de arena
weather.sporestorm.name = Tormenta de esporas weather.sporestorm.name = Tormenta de esporas
weather.fog.name = Niebla weather.fog.name = Niebla
sectorlist = Sectores
sectorlist.attacked = {0} Bajo ataque
sectors.unexplored = [lightgray]No explorado sectors.unexplored = [lightgray]No explorado
sectors.resources = Recursos: sectors.resources = Recursos:
sectors.production = Producción: sectors.production = Producción:
sectors.export = Exportado: sectors.export = Exportaciones:
sectors.import = Importaciones:
sectors.time = Tiempo: sectors.time = Tiempo:
sectors.threat = Amenaza: sectors.threat = Amenaza:
sectors.wave = Oleada: sectors.wave = Oleada:
@@ -582,10 +598,10 @@ sectors.go = Ir
sector.curcapture = Sector Capturado sector.curcapture = Sector Capturado
sector.curlost = Sector Perdido sector.curlost = Sector Perdido
sector.missingresources = [scarlet]Recursos Insuficientes sector.missingresources = [scarlet]Recursos Insuficientes
sector.attacked = Sector [accent]{0}[white] bajo ataque[]! sector.attacked = ¡Sector [accent]{0}[white] bajo ataque[]!
sector.lost = ¡Sector [accent]{0}[white] perdido[]! sector.lost = ¡Sector [accent]{0}[white] perdido[]!
#nota: el espacio en blanco en la línea siguiente es intencionado #nota: el espacio en blanco en la línea siguiente es intencionado
sector.captured = ¡Sector [accent]{0}[white] capturado[]! sector.captured = ¡Sector [accent]{0}[white] capturado!
sector.changeicon = Cambiar Icono sector.changeicon = Cambiar Icono
threat.low = Baja threat.low = Baja
@@ -615,6 +631,8 @@ sector.biomassFacility.name = Centro de Sintetización de Biomasa
sector.windsweptIslands.name = Islas Windswept sector.windsweptIslands.name = Islas Windswept
sector.extractionOutpost.name = Puesto de avanzada de Extracción sector.extractionOutpost.name = Puesto de avanzada de Extracción
sector.planetaryTerminal.name = Terminal de Lanzamiento Interplanetario sector.planetaryTerminal.name = Terminal de Lanzamiento Interplanetario
sector.coastline.name = Línea Costera
sector.navalFortress.name = Fortaleza Naval
sector.groundZero.description = La ubicación adecuada para empezar una vez más. Amenaza enemiga baja. Pocos recursos.\nReúna la mayor cantidad de plomo y cobre posible y sigue adelante. sector.groundZero.description = La ubicación adecuada para empezar una vez más. Amenaza enemiga baja. Pocos recursos.\nReúna la mayor cantidad de plomo y cobre posible y sigue adelante.
sector.frozenForest.description = Incluso aquí, más cerca de las montañas, las esporas se han extendido. Las gélidas temperaturas no las contendrán para siempre.\n\nAprende a usar la energía. Construye generadores de combustión. Aprende a usar reparadores. sector.frozenForest.description = Incluso aquí, más cerca de las montañas, las esporas se han extendido. Las gélidas temperaturas no las contendrán para siempre.\n\nAprende a usar la energía. Construye generadores de combustión. Aprende a usar reparadores.
@@ -635,17 +653,19 @@ sector.planetaryTerminal.description = El objetivo final.\n\nÉsta base costera
status.burning.name = En llamas status.burning.name = En llamas
status.freezing.name = Congelado status.freezing.name = Congelado
status.wet.name = Húmedo status.wet.name = Mojado
status.muddy.name = Fangoso status.muddy.name = Fangoso
status.melting.name = Fundido status.melting.name = Fundido
status.sapped.name = Debilitado status.sapped.name = Debilitado
status.electrified.name = Electrificado status.electrified.name = Aturdido
status.spore-slowed.name = Ralentizado status.spore-slowed.name = Ralentizado
status.tarred.name = Alquitranado status.tarred.name = Alquitranado
status.overdrive.name = Acelerado
status.overclock.name = Sobrecargado status.overclock.name = Sobrecargado
status.shocked.name = Aturdido status.shocked.name = Electrificado
status.blasted.name = Explotado status.blasted.name = Explosión
status.unmoving.name = Inmóvil status.unmoving.name = Inmóvil
status.boss.name = Guardián
settings.language = Idioma settings.language = Idioma
settings.data = Datos del Juego settings.data = Datos del Juego
@@ -667,7 +687,7 @@ settings.clearcampaignsaves = Borrar datos de campaña
settings.clearcampaignsaves.confirm = ¿Quieres borrar tus partidas guardadas en el modo campaña? settings.clearcampaignsaves.confirm = ¿Quieres borrar tus partidas guardadas en el modo campaña?
paused = [accent] < Pausado > paused = [accent] < Pausado >
clear = Vaciar clear = Vaciar
banned = [scarlet]Baneado banned = [scarlet]Vetado
unsupported.environment = [scarlet]Entorno no válido unsupported.environment = [scarlet]Entorno no válido
yes = yes =
no = No no = No
@@ -675,10 +695,10 @@ info.title = Información
error.title = [crimson]Ha ocurrido un error. error.title = [crimson]Ha ocurrido un error.
error.crashtitle = Ha ocurrido un error. error.crashtitle = Ha ocurrido un error.
unit.nobuild = [scarlet]Esta unidad no puede construir unit.nobuild = [scarlet]Esta unidad no puede construir
lastaccessed = [lightgray]Último usado: {0} lastaccessed = [lightgray]Último uso: {0}
block.unknown = [lightgray]??? block.unknown = [lightgray]???
stat.showinmap = <cargar mapa para mostrar> stat.showinmap = <mapa para mostrar>
stat.description = Objetivo stat.description = Objetivo
stat.input = Entrada stat.input = Entrada
stat.output = Salida stat.output = Salida
@@ -729,9 +749,9 @@ stat.ammo = Munición
stat.shieldhealth = Escudo stat.shieldhealth = Escudo
stat.cooldowntime = Enfriamiento stat.cooldowntime = Enfriamiento
stat.explosiveness = Explosividad stat.explosiveness = Explosividad
stat.basedeflectchance = Probabilidad de desvío stat.basedeflectchance = Probabilidad base de desvío
stat.lightningchance = Probabilidad de descarga stat.lightningchance = Probabilidad de descarga
stat.lightningdamage = Daño por rayo stat.lightningdamage = Daño de descarga eléctrica
stat.flammability = Inflamabilidad stat.flammability = Inflamabilidad
stat.radioactivity = Radioactividad stat.radioactivity = Radioactividad
stat.charge = Carga eléctrica stat.charge = Carga eléctrica
@@ -742,10 +762,10 @@ stat.speed = Velocidad
stat.buildspeed = Velocidad de construcción stat.buildspeed = Velocidad de construcción
stat.minespeed = Velocidad de extracción stat.minespeed = Velocidad de extracción
stat.minetier = Nivel de taladro stat.minetier = Nivel de taladro
stat.payloadcapacity = Capacidad de carga stat.payloadcapacity = Capacidad de Almacenamiento
stat.commandlimit = Límite de comando stat.commandlimit = Límite de escuadrón
stat.abilities = Habilidades stat.abilities = Habilidades
stat.canboost = Potenciador stat.canboost = Puede Volar
stat.flying = Aéreo stat.flying = Aéreo
stat.ammouse = Usa Munición stat.ammouse = Usa Munición
stat.damagemultiplier = Multiplicador de Daño stat.damagemultiplier = Multiplicador de Daño
@@ -756,10 +776,10 @@ stat.buildspeedmultiplier = Multiplicador de Velocidad de Construcción
stat.reactive = Reacciona stat.reactive = Reacciona
stat.healing = Sanador stat.healing = Sanador
ability.forcefield = Campo de Escudo ability.forcefield = Campo de Fuerza
ability.repairfield = Campo de Reparación ability.repairfield = Zona de Reparación
ability.statusfield = {0} Campo de aceleración ability.statusfield = {0} Campo aceleración
ability.unitspawn = {0} Fábrica ability.unitspawn = Fábrica de {0}
ability.shieldregenfield = Regeneración de Armaduras ability.shieldregenfield = Regeneración de Armaduras
ability.movelightning = Movimiento Relámpago ability.movelightning = Movimiento Relámpago
ability.energyfield = Campo de Energía: [accent]{0}[] daño ~ [accent]{1}[] bloques / [accent]{2}[] objetivos ability.energyfield = Campo de Energía: [accent]{0}[] daño ~ [accent]{1}[] bloques / [accent]{2}[] objetivos
@@ -770,15 +790,15 @@ bar.corereq = Necesitas un núcleo base
bar.drillspeed = Velocidad del Taladro: {0}/s bar.drillspeed = Velocidad del Taladro: {0}/s
bar.pumpspeed = Velocidad de bombeado: {0}/s bar.pumpspeed = Velocidad de bombeado: {0}/s
bar.efficiency = Eficiencia: {0}% bar.efficiency = Eficiencia: {0}%
bar.powerbalance = Energía: {0} bar.boost = Aceleración: +{0}%
bar.powerstored = Almacenados: {0}/{1} bar.powerbalance = Energía: {0}/s
bar.powerstored = Almacenado: {0}/{1}
bar.poweramount = Energía: {0} bar.poweramount = Energía: {0}
bar.poweroutput = Salida de Energía: {0} bar.poweroutput = Salida de Energía: {0}
bar.powerlines = Conexiones: {0}/{1} bar.powerlines = Conexiones: {0}/{1}
bar.items = Objetos: {0} bar.items = Objetos: {0}
bar.capacity = Capacidad: {0} bar.capacity = Capacidad: {0}
bar.unitcap = {0} {1}/{2} bar.unitcap = {0} {1}/{2}
bar.limitreached = [scarlet] {0} / {1}[white] {2}\n[lightgray][[unit disabled]
bar.liquid = Líquido bar.liquid = Líquido
bar.heat = Calor bar.heat = Calor
bar.power = Energía bar.power = Energía
@@ -787,7 +807,7 @@ bar.input = Entrada
bar.output = Salida bar.output = Salida
bar.strength = [stat]{0}[lightgray]x fuerza bar.strength = [stat]{0}[lightgray]x fuerza
units.processorcontrol = [lightgray]Controlado por Procesador units.processorcontrol = [lightgray]Controlado desde procesador
bullet.damage = [stat]{0}[lightgray] Daño bullet.damage = [stat]{0}[lightgray] Daño
bullet.splashdamage = [stat]{0}[lightgray] área daño ~[stat] {1}[lightgray] bloques bullet.splashdamage = [stat]{0}[lightgray] área daño ~[stat] {1}[lightgray] bloques
@@ -832,30 +852,30 @@ category.items = Objetos
category.crafting = Fabricación category.crafting = Fabricación
category.function = Función category.function = Función
category.optional = Mejoras Opcionales category.optional = Mejoras Opcionales
setting.skipcoreanimation.name = Saltar animación de Lanzamiento/Aterrizaje del Núcleo
setting.landscape.name = Bloquear modo horizontal setting.landscape.name = Bloquear modo horizontal
setting.shadows.name = Sombras setting.shadows.name = Sombras
setting.blockreplace.name = Sugerir bloques al construir setting.blockreplace.name = Sugerir bloques al construir
setting.linear.name = Filtrado Lineal setting.linear.name = Filtrado Lineal
setting.hints.name = Consejos setting.hints.name = Consejos
setting.logichints.name = Consejos sobre "Bloques Lógicos" setting.logichints.name = Consejos sobre "Bloques Lógicos"
setting.flow.name = Mostrar tasa de flujo de recursos
setting.backgroundpause.name = Pausar en segundo plano setting.backgroundpause.name = Pausar en segundo plano
setting.buildautopause.name = Auto-pausar construcción setting.buildautopause.name = Auto-pausar construcción
setting.doubletapmine.name = Doble-Click para Extraer minerales setting.doubletapmine.name = Doble-Click para Extraer minerales
setting.modcrashdisable.name = Desactivar Mods si se cuelga el juego setting.modcrashdisable.name = Desactivar Mods si se cuelga el juego
setting.animatedwater.name = Animación de Terreno setting.animatedwater.name = Animaciones de Terreno
setting.animatedshields.name = Animación de Escudos setting.animatedshields.name = Animación de Escudos
setting.antialias.name = Antialias[lightgray] (necesita un reinicio)[]
setting.playerindicators.name = Indicadores de Jugadores setting.playerindicators.name = Indicadores de Jugadores
setting.indicators.name = Indicadores de Enemigos setting.indicators.name = Indicadores de Enemigos
setting.autotarget.name = Auto-Apuntado setting.autotarget.name = Auto-Apuntado
setting.keyboard.name = Controles de Ratón+Teclado setting.keyboard.name = Controles de Ratón+Teclado
setting.touchscreen.name = Controles Táctiles setting.touchscreen.name = Controles Táctiles
setting.fpscap.name = FPS Maxímos setting.fpscap.name = FPS Maxímos
setting.fpscap.none = Nada setting.fpscap.none = No
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.uiscale.name = Escala de Interfaz[lightgray] (necesita reiniciar)[] setting.uiscale.name = Escala de Interfaz
setting.swapdiagonal.name = Siempre Construir Diagonalmente setting.uiscale.description = Es necesario reiniciar para aplicar los cambios.
setting.swapdiagonal.name = Permitir Siempre Construcción Diagonal
setting.difficulty.training = Entrenamiento setting.difficulty.training = Entrenamiento
setting.difficulty.easy = Fácil setting.difficulty.easy = Fácil
setting.difficulty.normal = Normal setting.difficulty.normal = Normal
@@ -872,14 +892,16 @@ setting.saveinterval.name = Intervalo del Autoguardado
setting.seconds = {0} segundos setting.seconds = {0} segundos
setting.milliseconds = {0} milisegundos setting.milliseconds = {0} milisegundos
setting.fullscreen.name = Pantalla Completa setting.fullscreen.name = Pantalla Completa
setting.borderlesswindow.name = Ventana sin Bordes[lightgray] (podría requerir un reinicio) setting.borderlesswindow.name = Ventana sin Bordes[lightgray]
setting.borderlesswindow.name.windows = Pantalla Completa sin Bordes
setting.borderlesswindow.description = Un reinicio podría ser requerido para aplicar cambios.
setting.fps.name = Mostrar FPS y Ping setting.fps.name = Mostrar FPS y Ping
setting.smoothcamera.name = Movimiento de cámara suave setting.smoothcamera.name = Movimiento de cámara suave
setting.vsync.name = VSync (Limita los fps a los Hz de tu pantalla) setting.vsync.name = VSync
setting.pixelate.name = Pixelar setting.pixelate.name = Pixelar
setting.minimap.name = Mostrar Minimapa setting.minimap.name = Mostrar Minimapa
setting.coreitems.name = Mostrar Objetos en el nucleo (WIP) setting.coreitems.name = Mostrar Objetos en el nucleo
setting.position.name = Mostrar indicadores de posición de jugadores. setting.position.name = Mostrar indicadores de posición de jugadores
setting.musicvol.name = Volumen de la Música setting.musicvol.name = Volumen de la Música
setting.atmosphere.name = Mostrar Atmósfera del planeta setting.atmosphere.name = Mostrar Atmósfera del planeta
setting.ambientvol.name = Volumen del Ambiente setting.ambientvol.name = Volumen del Ambiente
@@ -953,7 +975,7 @@ keybind.break_block.name = Destruir Bloque
keybind.deselect.name = Deseleccionar keybind.deselect.name = Deseleccionar
keybind.pickupCargo.name = Recoger carga keybind.pickupCargo.name = Recoger carga
keybind.dropCargo.name = Soltar carga keybind.dropCargo.name = Soltar carga
keybind.command.name = Ordenar keybind.command.name = Formar Escuadrón
keybind.shoot.name = Disparar keybind.shoot.name = Disparar
keybind.zoom.name = Zoom keybind.zoom.name = Zoom
keybind.menu.name = Menú keybind.menu.name = Menú
@@ -961,7 +983,7 @@ keybind.pause.name = Pausa
keybind.pause_building.name = Pausar/Reanudar construcción keybind.pause_building.name = Pausar/Reanudar construcción
keybind.minimap.name = Minimapa keybind.minimap.name = Minimapa
keybind.planet_map.name = Mapa del Planeta keybind.planet_map.name = Mapa del Planeta
keybind.research.name = Investigar keybind.research.name = Menú Investigaciones
keybind.block_info.name = Información del Bloque keybind.block_info.name = Información del Bloque
keybind.chat.name = Chat keybind.chat.name = Chat
keybind.player_list.name = Lista de jugadores keybind.player_list.name = Lista de jugadores
@@ -995,6 +1017,8 @@ rules.wavetimer = Temporizador de Oleadas
rules.waves = Oleadas rules.waves = Oleadas
rules.attack = Asalto rules.attack = Asalto
rules.buildai = Contrucción de IA rules.buildai = Contrucción de IA
rules.aitier = Nivel de IA
rules.cleanupdeadteams = Limpiar las construcciones de enemigos derrotados (PvP)
rules.corecapture = Capturar Núcleo al Destruirlo rules.corecapture = Capturar Núcleo al Destruirlo
rules.polygoncoreprotection = Protección de Núcleo Poligonal rules.polygoncoreprotection = Protección de Núcleo Poligonal
rules.enemyCheat = La IA (Equipo Rojo) tiene recursos infinitos rules.enemyCheat = La IA (Equipo Rojo) tiene recursos infinitos
@@ -1013,12 +1037,15 @@ rules.deconstructrefundmultiplier = Multiplicador de devolución de desconstrucc
rules.waitForWaveToEnd = Las oleadas esperan a los enemigos rules.waitForWaveToEnd = Las oleadas esperan a los enemigos
rules.dropzoneradius = Radio de zona de caída:[lightgray] (casillas) rules.dropzoneradius = Radio de zona de caída:[lightgray] (casillas)
rules.unitammo = Las unidades necesitan munición rules.unitammo = Las unidades necesitan munición
rules.enemyteam = Equipo Enemigo
rules.playerteam = Equipo del jugador
rules.title.waves = Oleadas rules.title.waves = Oleadas
rules.title.resourcesbuilding = Recursos y Construcción rules.title.resourcesbuilding = Recursos y Construcción
rules.title.enemy = Enemigos rules.title.enemy = Enemigos
rules.title.unit = Unidades rules.title.unit = Unidades
rules.title.experimental = Experimental rules.title.experimental = Experimental
rules.title.environment = Entorno rules.title.environment = Entorno
rules.title.teams = Equipos
rules.lighting = Iluminación rules.lighting = Iluminación
rules.enemyLights = Luces enemigas rules.enemyLights = Luces enemigas
rules.fire = Fuego rules.fire = Fuego
@@ -1097,7 +1124,6 @@ unit.reign.name = Reign
unit.vela.name = Vela unit.vela.name = Vela
unit.corvus.name = Corvus unit.corvus.name = Corvus
block.resupply-point.name = Punto de reabastecimiento
block.parallax.name = Parallax block.parallax.name = Parallax
block.cliff.name = Pared block.cliff.name = Pared
block.sand-boulder.name = Roca de arena block.sand-boulder.name = Roca de arena
@@ -1137,6 +1163,7 @@ block.core-nucleus.name = Núcleo: Nucleus
block.deep-water.name = Aguas profundas block.deep-water.name = Aguas profundas
block.shallow-water.name = Agua block.shallow-water.name = Agua
block.tainted-water.name = Agua contaminada block.tainted-water.name = Agua contaminada
block.deep-tainted-water.name = Agua profunda contaminada
block.darksand-tainted-water.name = Agua contaminada con arena oscura block.darksand-tainted-water.name = Agua contaminada con arena oscura
block.tar.name = Alquitrán block.tar.name = Alquitrán
block.stone.name = Piedra block.stone.name = Piedra
@@ -1289,7 +1316,6 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow block.foreshadow.name = Foreshadow
block.container.name = Contenedor block.container.name = Contenedor
block.launch-pad.name = Plataforma de Lanzamiento block.launch-pad.name = Plataforma de Lanzamiento
block.launch-pad-large.name = Plataforma de Lanzamiento Grande
block.segment.name = Segment block.segment.name = Segment
block.command-center.name = Centro de Comando block.command-center.name = Centro de Comando
block.ground-factory.name = Fábrica Terrestre block.ground-factory.name = Fábrica Terrestre
@@ -1304,17 +1330,17 @@ block.payload-router.name = Enrutador de Carga
block.duct.name = Túnel block.duct.name = Túnel
block.duct-router.name = Túnel Enrutador block.duct-router.name = Túnel Enrutador
block.duct-bridge.name = Túnel Puente block.duct-bridge.name = Túnel Puente
block.payload-propulsion-tower.name = Torre de Propulsión de Bloques block.payload-propulsion-tower.name = Torre de Propulsión de Carga
block.payload-void.name = Vacío de Bloques block.payload-void.name = Vacío de carga
block.payload-source.name = Fuente de Bloques block.payload-source.name = Fuente de carga
block.disassembler.name = Desensamblador block.disassembler.name = Desensamblador
block.silicon-crucible.name = Crisol de silicio block.silicon-crucible.name = Crisol de silicio
block.overdrive-dome.name = Campo de Aceleración block.overdrive-dome.name = Campo de Aceleración
#experimental, puede ser eliminado
block.block-forge.name = Forja de Bloques
block.block-loader.name = Cargador de Bloques
block.block-unloader.name = Descargador de Bloques
block.interplanetary-accelerator.name = Acelerador Interplanetario block.interplanetary-accelerator.name = Acelerador Interplanetario
#experimental, puede ser eliminado
block.block-forge.name = Forja de Carga
block.block-loader.name = Cargador de Carga
block.block-unloader.name = Descargador de Carga
block.switch.name = Interruptor block.switch.name = Interruptor
block.micro-processor.name = Micro Processador block.micro-processor.name = Micro Processador
@@ -1328,7 +1354,7 @@ block.memory-bank.name = Servidor de memoria
team.blue.name = azul team.blue.name = azul
team.crux.name = crux team.crux.name = crux
team.sharded.name = sharded team.sharded.name = sharded
team.derelict.name = delerict team.derelict.name = abandonado
team.green.name = verde team.green.name = verde
team.purple.name = morado team.purple.name = morado
@@ -1349,6 +1375,7 @@ hint.placeTurret = Construye \uf861 [accent]Torretas[] para defender tu base de
hint.breaking = Pulsa [accent]Clic-derecho[] y arrastra para destruir bloques. hint.breaking = Pulsa [accent]Clic-derecho[] y arrastra para destruir bloques.
hint.breaking.mobile = Activa el botón con el \ue817 [accent]martillo[] situado abajo a la derecha y selecciona bloques para eliminarlos.\n\nMantén el dedo un segundo y arrastra para eliminar bloques directamente en esa selección. hint.breaking.mobile = Activa el botón con el \ue817 [accent]martillo[] situado abajo a la derecha y selecciona bloques para eliminarlos.\n\nMantén el dedo un segundo y arrastra para eliminar bloques directamente en esa selección.
hint.blockInfo = Puedes visualizar información de un bloque seleccionándolo en el [accent]menú de construcción[], mediante el botón [accent][[?][] en la derecha. hint.blockInfo = Puedes visualizar información de un bloque seleccionándolo en el [accent]menú de construcción[], mediante el botón [accent][[?][] en la derecha.
hint.derelict = Las estructuras [accent]abandonadas[] son ruinas inservibles de antiguas bases no operativas.\n\nEstas estructuras pueden ser [accent]deconstruidas[] para obtener recursos.
hint.research = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos. hint.research = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos.
hint.research.mobile = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos. hint.research.mobile = Usa el botón \ue875 [accent]Investigación[] para acceder al menú de descubrimientos tecnológicos.
hint.unitControl = Mantén [accent][[L-ctrl][] y [accent]haz clic[] sobre unidades o torretas aliadas para controlarlas manualmente. hint.unitControl = Mantén [accent][[L-ctrl][] y [accent]haz clic[] sobre unidades o torretas aliadas para controlarlas manualmente.
@@ -1361,8 +1388,8 @@ hint.conveyorPathfind.mobile = Activa el\ue844 [accent]modo diagonal[] y arrastr
hint.boost = Mantén [accent][[L-Shift][] para sobrevolar obstáculos con tu unidad actual.\n\nSólo algunas unidades terrestres disponen de estos propulsores. hint.boost = Mantén [accent][[L-Shift][] para sobrevolar obstáculos con tu unidad actual.\n\nSólo algunas unidades terrestres disponen de estos propulsores.
hint.command = Pulsa [accent][[G][] para comandar unidades aliadas cercanas. hint.command = Pulsa [accent][[G][] para comandar unidades aliadas cercanas.
hint.command.mobile = [accent][[Toca dos veces][] tu unidad para comandar unidades aliadas cercanas. hint.command.mobile = [accent][[Toca dos veces][] tu unidad para comandar unidades aliadas cercanas.
hint.payloadPickup = Pulsa [accent][[[] para recoger bloques pequeños o unidades. hint.payloadPickup = Pulsa [accent][[[] para recoger bloques o unidades.
hint.payloadPickup.mobile = [accent]Mantén[] sobre un bloque pequeño o unidad para recogerlo. hint.payloadPickup.mobile = [accent]Mantén[] sobre un bloque o unidad para recogerlo.
hint.payloadDrop = Pulsa [accent]][] para soltar la carga. hint.payloadDrop = Pulsa [accent]][] para soltar la carga.
hint.payloadDrop.mobile = [accent]Mantén[] sobre un lugar vacío para soltar la carga. hint.payloadDrop.mobile = [accent]Mantén[] sobre un lugar vacío para soltar la carga.
hint.waveFire = Cuando las torretas [accent]Wave[] usen agua como munición, apagarán fuego e incendios cercanos automáticamente. hint.waveFire = Cuando las torretas [accent]Wave[] usen agua como munición, apagarán fuego e incendios cercanos automáticamente.
@@ -1370,6 +1397,7 @@ hint.generator = Los \uf879[accent]Generadores de combustión[] querman carbón
hint.guardian = Los [accent]Guardianes[] poseen una robusta armadura. Municiones débiles como el [accent]Cobre[] o el [accent]Plomo[] no son [scarlet]effectivas[] contra él.\n\nUsa torretas de mayor categoría o por ejemplo, munición de \uf835[accent]Grafito[] \uf861Duo/\uf859 en torretas Salvo para derribar a los Guardianes. hint.guardian = Los [accent]Guardianes[] poseen una robusta armadura. Municiones débiles como el [accent]Cobre[] o el [accent]Plomo[] no son [scarlet]effectivas[] contra él.\n\nUsa torretas de mayor categoría o por ejemplo, munición de \uf835[accent]Grafito[] \uf861Duo/\uf859 en torretas Salvo para derribar a los Guardianes.
hint.coreUpgrade = Los núcleos se pueden mejorar [accent]construyendo núcleos de mayor calidad encima[].\n\nColoca un  núcleo [accent]Foundation[] sobre el  núcleo [accent]Shard[]. Asegúrate de que no hay obstáculos cerca. hint.coreUpgrade = Los núcleos se pueden mejorar [accent]construyendo núcleos de mayor calidad encima[].\n\nColoca un  núcleo [accent]Foundation[] sobre el  núcleo [accent]Shard[]. Asegúrate de que no hay obstáculos cerca.
hint.presetLaunch = Las zonas de aterrizaje de los [accent]sectores grises[], como el [accent]Bosque Congelado[], son accesibles desde cualquier lugar. No requieren capturar sectores adyacentes.\n\nLos [accent]sectores numerados[], como este, son [accent]opcionales[]. hint.presetLaunch = Las zonas de aterrizaje de los [accent]sectores grises[], como el [accent]Bosque Congelado[], son accesibles desde cualquier lugar. No requieren capturar sectores adyacentes.\n\nLos [accent]sectores numerados[], como este, son [accent]opcionales[].
hint.presetDifficulty = Este sector tiene un [scarlet]alto nivel de amenaza enemiga[].\n[accent]No es recomendable[] viajar a sectores como estos sin las tecnologías adecuadas y preparación.
hint.coreIncinerate = Tras completar la capacidad máxima de almacenamiento en el núcleo para un tipo de objeto, cualquier recurso adicional de ese tipo que reciba el núcleo será [accent]incinerado[]. hint.coreIncinerate = Tras completar la capacidad máxima de almacenamiento en el núcleo para un tipo de objeto, cualquier recurso adicional de ese tipo que reciba el núcleo será [accent]incinerado[].
hint.coopCampaign = Sí estás jugando el modo [accent]campaña en multijugador[], los objetos producidos en el mapa actual también se enviarán [accent]a los sectores locales de cada jugador[].\n\nCualquier nueva investigación tecnológica realizada por el anfitrión también se desbloqueará para los demás jugadores. hint.coopCampaign = Sí estás jugando el modo [accent]campaña en multijugador[], los objetos producidos en el mapa actual también se enviarán [accent]a los sectores locales de cada jugador[].\n\nCualquier nueva investigación tecnológica realizada por el anfitrión también se desbloqueará para los demás jugadores.
@@ -1400,137 +1428,139 @@ liquid.slag.description = Diferentes tipos de metales fundidos mezclados. Puede
liquid.oil.description = Se utiliza en producción de materiales avanzados, y en munición incendiaria. liquid.oil.description = Se utiliza en producción de materiales avanzados, y en munición incendiaria.
liquid.cryofluid.description = Usado como refrigerante para reactores, torretas, y fábricas. liquid.cryofluid.description = Usado como refrigerante para reactores, torretas, y fábricas.
block.resupply-point.description = Reabastece unidades cercanas con munición de cobre. No es compatible con unidades que requieren energía. block.derelict =  [lightgray]Abandonado
block.armored-conveyor.description = Mueve objetos. No acepta objetos si entran por los lados. block.armored-conveyor.description = Mueve objetos. No los acepta si entran por los lados.
block.illuminator.description = Emite luz. block.illuminator.description = Emite luz.
block.message.description = Almacena un mensaje. Puedes usarlo para comunicarte con aliados o dejar recordatorios. block.message.description = Almacena un mensaje para comunicarte con aliados o dejar recordatorios.
block.graphite-press.description = Comprime carbón en piezas de grafito puro. block.graphite-press.description = Comprime carbón en piezas de grafito puro.
block.multi-press.description = Una versión mejorada de la prensa de grafito. Utiliza agua y energía para procesar carbón rápida y eficientemente. block.multi-press.description = Utiliza agua y energía para procesar carbón más eficientemente.
block.silicon-smelter.description = Reduce la arena con carbón puro. Produce silicio. block.silicon-smelter.description = Refina silicio procesando arena y carbón.
block.kiln.description = Funde arena y plomo en metacristal. Requiere cantidades pequeñas de energía para funcionar. block.kiln.description = Funde arena y plomo en metacristal.
block.plastanium-compressor.description = Produce plastanio con petróleo y titanio. block.plastanium-compressor.description = Produce plastanio con petróleo y titanio.
block.phase-weaver.description = Produce tejido de fase del torio radioactivo y altas cantidades de arena. block.phase-weaver.description = Produce tejido de fase del torio radioactivo y altas cantidades de arena.
block.alloy-smelter.description = Produce aleación eléctrica con titanio, plomo, silicio y cobre. block.alloy-smelter.description = Produce aleación eléctrica con titanio, plomo, silicio y cobre.
block.cryofluid-mixer.description = Combina agua y titanio en líquido criogénico, que es mucho más eficiente para enfriar. block.cryofluid-mixer.description = Mezcla agua y polvo de titanio refinado para obtener líquido criogénico.
block.blast-mixer.description = Usa esporas para transformar pirotita en un objeto menos inflamable pero más explosivo: el compuesto explosivo. block.blast-mixer.description = Usa esporas para transformar pirotita en compuestos explosivos.
block.pyratite-mixer.description = Mezcla carbón, plomo y arena en pirotita altamente inflamable. block.pyratite-mixer.description = Produce pirotita mezclando carbón, plomo y arena.
block.melter.description = Calienta chatarra a temperaturas muy altas para obtener magma. block.melter.description = Funde chatarra para producir magma.
block.separator.description = Separa el magma en sus componentes minerales. block.separator.description = Separa el magma en sus componentes minerales.
block.spore-press.description = Comprime esporas en petróleo. block.spore-press.description = Comprime vainas de esporas en petróleo.
block.pulverizer.description = Despedaza la chatarra en arena. Útil cuando no hay arena natural. block.pulverizer.description = Prensa chatarra hasta obtener arena.
block.coal-centrifuge.description = Solidifica petróleo en piezas de carbón. block.coal-centrifuge.description = Solidifica petróleo en trozos de carbón.
block.incinerator.description = Se deshace de cualquier líquido o material producido en exceso. block.incinerator.description = Vaporiza cualquier líquido o material que recive.
block.power-void.description = Elimina toda la energía que se le da. Solo en disponible en el modo Libre. block.power-void.description = Elimina toda la energía que recive. Solo disponible en el modo Libre.
block.power-source.description = Da energía infinita. Solo disponible en el modo Libre. block.power-source.description = Genera energía infinita. Solo disponible en el modo Libre.
block.item-source.description = Hace aparecer minerales de forma infinita. Solo disponible en el modo Libre. block.item-source.description = Genera objetos de forma infinita. Solo disponible en el modo Libre.
block.item-void.description = Destruye cuanquier objeto que entra en él. Solo disponible en el modo Libre. block.item-void.description = Destruye los objetos que entran en él. Solo disponible en el modo Libre.
block.liquid-source.description = Da líquido infinito. Solo disponible en el modo Libre. block.liquid-source.description = Genera cualquier líquido de forma infinita. Solo disponible en el modo Libre.
block.liquid-void.description = Elimina cualquier liquido que entra en él. Solo disponible en el modo Libre. block.liquid-void.description = Elimina los liquidos que entran en él. Solo disponible en el modo Libre.
block.copper-wall.description = Un bloque defensivo barato.\nÚtil para defender el núcleo y las torres en las primeras oleadas. block.payload-source.description = Genera estructuras o unidades de forma infinita. Solo disponible en el modo Libre.
block.copper-wall-large.description = Un bloque defensivo barato.\nÚtil para defender el núcleo y las torres en las primeras oleadas.\nOcupa múltiples casillas. block.payload-void.description = Destruye cualquier bloque o unidad. Solo disponible en el modo Libre.
block.titanium-wall.description = Un bloque defensivo moderadamente fuerte.\nProporciona protección moderada contra los enemigos. block.copper-wall.description = Protege estructuras de proyectiles enemigos.
block.titanium-wall-large.description = Un bloque defensivo moderadamente fuerte.\nProporciona protección moderada contra los enemigos.\nOcupa múltiples casillas. block.copper-wall-large.description = Protege estructuras de proyectiles enemigos.
block.plastanium-wall.description = Un tipo especial de pared que absorbe los arcos eléctricos y bloquea las conexiones automáticas de los nodos de potencia. block.titanium-wall.description = Protege estructuras de proyectiles enemigos.
block.plastanium-wall-large.description = Un tipo especial de pared que absorbe los arcos eléctricos y bloquea las conexiones automáticas de los nodos de potencia.\nOcupa múltiples casillas. block.titanium-wall-large.description = Protege estructuras de proyectiles enemigos.
block.thorium-wall.description = Un bloque defensivo fuerte.\nBuena protección contra enemigos. block.plastanium-wall.description = Protege estructuras de proyectiles enemigos. Absorbe láseres y rayos. Bloquea las conexiones automáticas de nodos de energía.
block.thorium-wall-large.description = Un bloque defensivo fuerte.\nBuena protección contra enemigos.\nOcupa múltiples casillas. block.plastanium-wall-large.description = Protege estructuras de proyectiles enemigos. Absorbe láseres y rayos. Bloquea las conexiones automáticas de nodos de energía.
block.phase-wall.description = No es tan fuerte como un muro de torio pero hace rebotar las balas del enemigo si no son demasiado fuertes. block.thorium-wall.description = Protege estructuras de proyectiles enemigos.
block.phase-wall-large.description = No es tan fuerte como un muro de torio pero rebota balas al enemigo si no son demasiado fuertes.\nOcupa múltiples casillas. block.thorium-wall-large.description = Protege estructuras de proyectiles enemigos.
block.surge-wall.description = El bloque defensivo más fuerte.\nTiene una pequeña probabilidad de disparar rayos al atacante. block.phase-wall.description = Protege estructuras de proyectiles enemigos. Puede reflejar la mayoría de proyectiles al imapctar.
block.surge-wall-large.description = El bloque defensivo más fuerte.\nTiene una pequeña probabilidad de disparar rayos al atacante.\nOcupa múltiplies casillas. block.phase-wall-large.description = Protege estructuras de proyectiles enemigos. Puede reflejar la mayoría de proyectiles al impactar.
block.door.description = Una puerta pequeña que puede ser abierta y cerrada tocándola.\nSi está abierta, los enemigos pueden moverse y disparar a través de ella. block.surge-wall.description = Protege estructuras de proyectiles enemigos. Al contaco, libera arcos eléctricos periódicamente.
block.door-large.description = Una puerta grande que puede ser abierta y cerrada tocándola.\nSi está abierta, los enemigos pueden moverse y disparar a través de ella.\nOcupa múltiples casillas. block.surge-wall-large.description = Protege estructuras de proyectiles enemigos. Al contaco, libera arcos eléctricos periódicamente.
block.mender.description = Repara bloques cercanos de forma constante. Mantiene a las defensas reparadas entre oleadas. Puede usar silicio opcionalmente para mejorar el alcance y la eficiencia. block.door.description = Un muro que puede estar cerrado o abierto, permitiendo el paso a través de él.
block.mend-projector.description = Regenera edificios cercanos de forma constante. Ocupa multiples casillas. block.door-large.description = Un muro que puede estar cerrado o abierto, permitiendo el paso a través de él.
block.overdrive-projector.description = Aumenta la velocidad de edificios cercanos como taladros y transportadores. block.mender.description = Repara estructuras cercanas constantemente. Puede usar silicio para potenciar su alcance y eficiencia.
block.force-projector.description = Crea un área de fuerza hexagonal alrededor de él, protegiendo edificios y unidades dentro de él del daño de las balas hasta que se agota. \nRequiere de un suministro constante de energía para mantenerse activo. block.mend-projector.description = Repara estructuras cercanas constantemente. Puede usar tejido de fase para potenciar su alcance y eficiencia.
block.shock-mine.description = Daña enemigos que pisan a mina. Casi invisible al enemigo. block.overdrive-projector.description = Incrementa la velocidad de estructuras cercanas. Puede usar tejido de fase para potenciar su alcance y eficiencia.
block.conveyor.description = Bloque de transporte básico. Mueve objetos hacia adelante y los deposita automáticamente en torres o fábricas. Rotable. block.force-projector.description = Crea un campo de fuerza hexagonal a su alrededor, protegiendo unidades y estructuras cercanas.\nSe sobrecalentará si absorbe demasiado daño, lo que se puede evitar utilizando refrigerante. Se puede usar tejido de fase para aumentar el escudo.
block.titanium-conveyor.description = Bloque de transporte avanzado. Mueve objetos más rápido que los transportadores estándar. block.shock-mine.description = Libera arcos eléctricos al contacto con una unidad enemiga.
block.plastanium-conveyor.description = Mueve objetos por lotes.\nAcepta objetos por detrás, y los descarga en tres direcciones hacia el frente, como un enrutador. block.conveyor.description = Mueve objetos hacia adelante.
block.junction.description = Actúa como puente para dos transportadores que se cruzan. Útil en situaciones con dos diferentes transportadores transportando diferentes materiales a diferentes lugares. block.titanium-conveyor.description = Mueve objetos más rápido.
block.bridge-conveyor.description = Bloque avanzado de transporte. Puede transportar objetos por encima hasta 3 casillas de cualquier terreno o construcción. block.plastanium-conveyor.description = Mueve objetos por lotes.\nAcepta objetos por detrás, y los descarga en tres direcciones hacia el frente. Requiere múltiples puntos de entrada y salida para alcanzar su máxima eficacia.
block.phase-conveyor.description = Bloque de transporte avanzado. Usa energía para transportar objetos a otro transportador de fase conectado a través de varias casillas. block.junction.description = Actúa como puente para dos transportadores que se cruzan.
block.sorter.description = Clasifica objetos. Si un objeto es igual al seleccionado, pasará al frente. Si no, el objeto saldrá por la izquierda y la derecha. block.bridge-conveyor.description = Transporta objetos sobre cualquier terreno o estructura.
block.inverted-sorter.description = Procesa elementos como un clasificador estándar, pero en su lugar pasa elementos seleccionados a los lados. block.phase-conveyor.description = Transporta objetos instantáneamente sobre cualquier terreno o estructura. Tiene un mayor alcance que el puente básico, pero requiere energía.
block.router.description = Acepta objetos de una dirección luego los deja equitativamente en hasta 3 direcciones diferentes. Útil para dividir los materiales de una fuente de recursos a múltiples objetivos. \n\n[scarlet]Nunca usar como entrada de producción porque puede tapar con los objetos de salida.[] block.sorter.description = Si el objeto entrante es igual al seleccionado, pasará al frente. Si no, los objetos saldrán por la izquierda y la derecha.
block.router.details = Un mal necesario... No se recomienda usarlo junto a estructuras de producción ya que puede atascar una cadena de transporte. block.inverted-sorter.description = Similar a un clasificador normal, pero devuelve el elemento seleccionado a los lados.
block.distributor.description = Un enrutador avanzado que distribuye objetos equitativamente en hasta otras 7 direcciones. block.router.description = Distribuye los objetos entrantes hasta en 3 direcciones de salida equitativamente.
block.overflow-gate.description = Un enrutador que solo saca por la izquierda y la derecha si la cinta del frente está llena. block.router.details = Un mal necesario... No se recomienda usarlo junto a estructuras de producción ya que los objetos de salida pueden atascar la entrada del mismo bloque, e incluso toda la cadena de transporte.
block.underflow-gate.description = El opuesto de la compuerda de desborde. Solo dispensa hacia el frente si los lados están bloqueados. block.distributor.description = Distribuye objetos equitativamente en hasta otras 7 direcciones.
block.mass-driver.description = El mejor bloque de transorte. Recoge varios objetos y los dispara a otro conductor de masa en un largo rango. Requiere energía para operar. block.overflow-gate.description = Saca los objetos entrantes por los lados cuando la cinta del frente está llena.
block.mechanical-pump.description = Una bomba de agua barata algo lenta, pero funciona sin energía. block.underflow-gate.description = El opuesto de la compuerta de desborde. Sólo devuelve objetos hacia el frente si los lados están bloqueados.
block.rotary-pump.description = Una bomba algo mas avanzada. Bombea más líquido, pero requiere energía. block.mass-driver.description = Estructura de transporte de largo alcance. Acumula varios objetos y los dispara a otro del mismo tipo.
block.thermal-pump.description = La mejor bomba de líquidos. Utiliza energía. block.mechanical-pump.description = Extrae y bombea líquidos. Funciona sin energía.
block.conduit.description = Bloque de transporte de líquidos básico. Funciona como un transportador, pero con líquidos. Usado con bombas, extractores u otros conductos. block.rotary-pump.description = Extrae y bombea líquidos. Requiere energía.
block.pulse-conduit.description = Bloque de transporte de líquidos avanzado. Transporta líquidos más rápidamente y almacena más que los conductos estándar. block.thermal-pump.description = Extrae y bombea líquidos.
block.plated-conduit.description = Mueve líquidos a la misma velocidad que los conductos de pulso, pero posee más armadura. No acepta líquidos de los lados por otra cosa que no sean conductos.\nGotea menos. block.conduit.description = Mueve líquidos hacia delante. Se usa junto con bombas y otros conductos.
block.liquid-router.description = Acepta líquidos de una dirección y los deja en hasta 3 direcciones equitativamente. También puede almacenar cierta capacidad de líquido. Útil para dividir los líquidos de una fuente a varios objetivos. block.pulse-conduit.description = Transporta líquidos rápidamente y almacena más que los conductos estándar.
block.liquid-tank.description = Almacena una gran cantidad de líquidos. Úsalo para crear almacenes cuando no hay una demanda constante de materiales o para asegurarse de enfriar bloques vitales. block.plated-conduit.description = Transporta líquidos rápidamente pero no acepta líquidos por los lados. Resiste más ante fugas, por lo que no gotea.
block.liquid-junction.description = Actúa como un puente para dos conductos que se cruzan. Útil en situaciones en las que hay dos conductos con líquidos diferentes a diferentes lugares. block.liquid-router.description = Acepta líquidos de una dirección y los reparte en hasta 3 direcciones equitativamente. También puede almacenar cierta capacidad de líquido.
block.bridge-conduit.description = Bloque avanzado de transporte de líquidos. Permite transportar líquidos por encima de hasta 3 casillas de cualquier terreno o construcción. block.liquid-tank.description = Almacena una gran cantidad de líquidos. Lo devuelve en todas direcciones de salida válidas, como un enrutador de líquidos.
block.phase-conduit.description = Bloque de transporte de líquidos avanzado. Usa energía para transportar líquidos a otro conducto de fase conectado a través de varias casillas. block.liquid-junction.description = Actúa como un puente para dos conductos que se cruzan.
block.power-node.description = Transmite energía a nodos conectados, conecta hasta diez fuentes de energía, edificios que usan energía o nodos. El nodo obtendrá o transmitirá energía de cualquier bloque adyacente. block.bridge-conduit.description = Permite transportar líquidos sobre cualquier terreno o estructura.
block.power-node-large.description = Tiene un radio más amplio que el nodo de energía y conecta hasta diez fuentes de energía, edificios que usan energía o nodos. block.phase-conduit.description = Tiene más alcance que un conducto puente normal, pero requiere energía.
block.surge-tower.description = Un nodo con un gran alcance, pero sólo dos conexiones disponibles. block.power-node.description = Transmite energía a nodos conectados. Además, el nodo obtendrá o transmitirá energía de cualquier bloque adyacente.
block.diode.description = La energía de la batería puede fluir a través de este bloque en una sola dirección, pero solo si el otro lado tiene menos energía almacenada. block.power-node-large.description = Nodo de energía avanzado con un mayor alcance.
block.battery.description = Guarda energía cuando hay abundancia y proporciona energía cuando hay escasez de energía mientras la batería tenga energía. block.surge-tower.description = Un nodo de largo alcance, con sólo un par de conexiones disponibles.
block.battery-large.description = Almacena mucha más energía que una batería normal. block.diode.description = Mueve la energía entre baterías en una sola dirección, pero sólo si el otro lado tiene menos energía almacenada.
block.combustion-generator.description = Genera energía quemando materiales inflamables o petróleo. block.battery.description = Almacena energía cuando se genera en abundancia. Proporciona energía cuando escasea.
block.thermal-generator.description = Genera una gran cantidad de energía con el magma. block.battery-large.description = Almacena energía cuando se genera en abundancia. Proporciona energía cuando escasea. Tiene más capacidad que una batería normal.
block.steam-generator.description = Más eficiente que un generador de combustión, pero requiere agua adicional. block.combustion-generator.description = Genera energía quemando materiales inflamables, como el carbón.
block.differential-generator.description = Genera grandes cantidades de energía. Utiliza la diferencia de temperatura entre el fluído criogenico y la quema de pirotita. block.thermal-generator.description = Genera una gran cantidad de energía si se construye sobre zonas con altas temperaturas.
block.rtg-generator.description = Un generador radioisótropo termoeléctrico que no necesita enfriamiento, pero proporciona menos energía que un reactor de torio. block.steam-generator.description = Genera energía quemando materiales inflamables y convirtiendo agua en vapor.
block.solar-panel.description = Proporciona una pequeña cantidad de energía. block.differential-generator.description = Genera grandes cantidades de energía. Utiliza la diferencia de temperatura entre el fluído criogenico y el quemado de pirotita.
block.solar-panel-large.description = Genera un mayor suministro de energía que un panel solar estándar, pero también es mucho más caro de construir. block.rtg-generator.description = Usa el calor de generado en la descomposición de elementos radioactivos para producir energía lentamente.
block.thorium-reactor.description = Genera grandes cantidades de energía del torio altamente radioactivo. Necesita enfriamiento constante. Explotará violentamente si no se le aporta suficiente enfriamiento. block.solar-panel.description = Proporciona una pequeña cantidad de energía de los rayos solares.
block.impact-reactor.description = Un generador avanzado, capaz de crear cantidades masivas de energía a máxima eficiencia. Requiere una cantidad significante de energía para impulsar el comienzo del proceso. block.solar-panel-large.description = Proporciona una pequeña cantidad de energía de los rayos solares. Es más eficiente que el panel solar estándar.
block.mechanical-drill.description = Un taladro barato. Cuando es colocado en casillas apropiadas, extrae objetos lentamente de forma indefinida. Solo es capaz de minar recursos básicos. block.thorium-reactor.description = Genera grandes cantidades de energía procesando torio. Necesita enfriamiento constante. Explotará violentamente si no se refrigera constantemente.
block.pneumatic-drill.description = Un taladro mejorado, es capaz de minar titanio. Más rápido que un taladro mécanico. block.impact-reactor.description = Capaz de crear cantidades masivas de energía a máxima eficiencia. Requiere una cantidad significante de energía para impulsar la producción.
block.laser-drill.description = Su tecnología láser le permite obtener minerales incluso más rápido, pero requiere energía. Además, se puede obtener torio radioactivo con este taladro. block.mechanical-drill.description = Si se construye sobre vetas de minerales, extrae objetos lentamente de forma indefinida. Solo es capaz de minar recursos básicos.
block.blast-drill.description = El mejor taladro. Requiere grandes cantidades de energía y refrigeración. block.pneumatic-drill.description = Un taladro mejorado, capaz de extraer titanio. Más rápido que un taladro mécanico.
block.water-extractor.description = Extrae agua de la tierra. Úsalo cuando no haya lagos cercanos. block.laser-drill.description = Su tecnología láser le permite obtener minerales incluso más rápido, pero requiere energía. Puede extraer torio.
block.cultivator.description = Cultiva concentraciones de esporas en la atmosfera a vainas. block.blast-drill.description = El mejor taladro. Requiere grandes cantidades de energía.
block.water-extractor.description = Extrae agua subterránea. Úsalo cuando no haya agua disponible en la superficie.
block.cultivator.description = Cultiva pequeñas concentraciones de esporas en la atmosfera en vainas de esporas.
block.cultivator.details = Tecnología recuperada. Usada para producir cantidades masivas de biomasa. Parecido al primer incubador de esporas, que ahora cubren Serpulo. block.cultivator.details = Tecnología recuperada. Usada para producir cantidades masivas de biomasa. Parecido al primer incubador de esporas, que ahora cubren Serpulo.
block.oil-extractor.description = Usa grandes cantidades de energía, arena y agua para obtener petróleo. Úsalo cuando no hay fuentes directas de petróleo cerca. block.oil-extractor.description = Usa grandes cantidades de energía, arena y agua para obtener petróleo.
block.core-shard.description = El núcleo de la base. Compacto. Puede auto-replicarse. Equipado con propulsores de uso único. block.core-shard.description = El núcleo de la base. Si es destruido, todo contacto con el sector está perdido.
block.core-shard.details = La primera iteración. Si es destruido, todo contacto con el sector está perdido. No designado para viajes interplanetarios. block.core-shard.details = La primera iteración. Compacto. Puede auto-replicarse. Equipado con propulsores de uso único. No designado para viajes interplanetarios.
block.core-foundation.description = El núcleo de la base. Mejor blindado. Almacena más recursos que el modelo Shard. block.core-foundation.description = El núcleo de la base. Mejor blindado. Almacena más recursos que el modelo Shard.
block.core-foundation.details = La segunda iteración. block.core-foundation.details = La segunda iteración.
block.core-nucleus.description = El núcleo de la base. Extremadamente bien armado. Almacena cantidades masivas de recursos. block.core-nucleus.description = El núcleo de la base. Extremadamente bien armado. Almacena cantidades masivas de recursos.
block.core-nucleus.details = La tercera y última iteración. block.core-nucleus.details = La tercera y última iteración.
block.vault.description = Almacena una gran cantidad de objetos. Úsalo para crear almacenes cuando no hay una demanda constante de materales. Un [lightgray] descargador[] puede usarse para obtener los objetos almacenados. block.vault.description = Almacena una gran cantidad de objetos de cada tipo. Su contenido se puede recuperar con un descargador.
block.container.description = Almacena una pequeña cantidad de objetos. Úsalo para crear almacenes cuando no hay una demanda constante de materales. Un [lightgray] descargador[] puede usarse para obtener objetos del contenedor. block.container.description = Almacena una pequeña cantidad de objetos de cada tipo. Su contenido se puede recuperar con un descargador.
block.unloader.description = Descarga objetos de un contenedor, almacén o el núcleo a un transportador o directamente a un bloque adyacente. El tipo de objeto descargado puede ser cambiado tocando el descagador. block.unloader.description = Descarga el objeto seleccionado de bloques cercanos.
block.launch-pad.description = Lanza paquetes de recursos a los sectores seleccionados. block.launch-pad.description = Lanza lotes de recursos a los sectores seleccionados.
block.duo.description = Una torre pequeña y barata. Útil contra enemigos terrestres no demasiado fuertes. block.duo.description = Dispara balas sencillas a los enemigos.
block.scatter.description = Una torreta antiaérea de tamaño medio. Dispara proyectiles de plomo o chatarra a las unidades enemigas. block.scatter.description = Dispara proyectiles de plomo, chatarra o metacristal a las unidades aéreas enemigas.
block.scorch.description = Quema a cualquier enemigo terrestre cercano a él. Altamente efectivo a corto alcance. block.scorch.description = Quema a cualquier enemigo terrestre cercano a él. Altamente efectivo a corto alcance.
block.hail.description = Una torre de artillería pequeña de largo alcance. block.hail.description = Dispara proyectiles a enemigos terrestres sobre largas distancias.
block.wave.description = Una torre de tamaño mediano. Dispara chorros de líquido a enemigos. Apaga el fuego en su rango de acción si recibe agua. block.wave.description = Dispara chorros de líquido a enemigos. Apaga fuego automáticamente si se lo suministra con agua.
block.lancer.description = Una torre láser anti-terrestre de tamaño mediano. Dispara y carga poderosos rayos de energía. block.lancer.description = Carga y dispara poderosos rayos de energía a objetivos terrestres.
block.arc.description = Una pequeña torre eléctrica de rango corto. Dispara arcos de electricidad a los enemigos. block.arc.description = Dispara arcos de electricidad a objetivos terrestres.
block.swarmer.description = Una torre de tamaño mediano que dispara misiles. Ataca a aire y tierra. Dispara misiles teledirigidos. block.swarmer.description = Dispara misiles autodirigidos a enemigos.
block.salvo.description = Una versión más grande y avanzada de la torre dúo. Dispara ráfagas a enemigos terrestres y aéreos. block.salvo.description = Dispara ráfagas de balas a enemigos.
block.fuse.description = Una torre grande de energía de corto alcance. Dispara tres rayos perforantes a enemigos cercanos. block.fuse.description = Dispara tres rayos perforantes de corta distancia a enemigos cercanos.
block.ripple.description = Una torre extramadamente poderosa. Dispara conjuntos de balas a los enemigos desde grandes distancias. block.ripple.description = Dispara cúmulos de balas a los enemigos desde grandes distancias.
block.cyclone.description = Una torre grande anti-aérea y anti-terrestre. Dispara conjuntos fragmentados explosivos a enemigos cercanos. block.cyclone.description = Dispara fragmentados explosivos a enemigos cercanos.
block.spectre.description = Un cañon masivo de dos barriles. Dispara balas perforantes a objetivos de aire y tierra. block.spectre.description = Dispara poderosas balas perforantes a objetivos aéreos y terrestres.
block.meltdown.description = Un cañon láser masivo. Carga y dispara un rayo láser continuo a enemigos cercanos. Requiere enfriamiento para operar. block.meltdown.description = Carga y dispara un poderoso rayo láser persistente. Necesita refrigerante para funcionar.
block.foreshadow.description = Dispara un rayo de un solo objetivo a grandes distancias. block.foreshadow.description = Dispara un rayo de objetivo único a larga distancia. Prioriza enemigos con mayor salud máxima.
block.repair-point.description = Repara constantemente la unidad dañada más cercana dentro de su área. block.repair-point.description = Repara constantemente la unidad dañada más cercana dentro de su área.
block.segment.description = Daña y destruye proyectiles que se acerquen. No afecta a los láseres. block.segment.description = Daña y destruye proyectiles enemigos. No afecta a láseres.
block.parallax.description = Dispara un rayo tractor que atrae enemigos aéreos, dañándolos en el proceso. block.parallax.description = Dispara un rayo tractor que atrae enemigos aéreos, dañándolos en el proceso.
block.tsunami.description = Dispara poderosos torrentes de líquido a los enemigos. También apaga fuegos automáticamente si se lo abastece con agua. block.tsunami.description = Dispara poderosos torrentes de líquido a los enemigos. También apaga fuegos automáticamente si se lo abastece con agua.
block.silicon-crucible.description = Refina silicio a partir de arena y carbón, usando pirotita como una fuente de calor adicional. Es más eficiente en lugares cálidos. block.silicon-crucible.description = Refina silicio a partir de arena y carbón, usando pirotita como una fuente de calor adicional. Es más eficiente en lugares cálidos.
block.disassembler.description = Separa magma en cantidades moderadas de componentes minerales exóticos con baja eficiencia. Puede producir Torio. block.disassembler.description = Separa magma en cantidades moderadas de componentes minerales exóticos con baja eficiencia. Puede producir Torio.
block.overdrive-dome.description = Incrementa la velocidad de estructuras cercanas. Requiere Tejido de Fase y Silicio para operar. block.overdrive-dome.description = Incrementa la velocidad de estructuras cercanas. Requiere tejido de fase y silicio para operar.
block.payload-conveyor.description = Mueve tanto grandes cargas, como unidades recién ensambladas de sus fábricas. block.payload-conveyor.description = Mueve grandes cargas, como estructuras o unidades recién ensambladas de sus fábricas.
block.payload-router.description = Divide las cargas entrantes en 3 direcciones de salida. block.payload-router.description = Divide las cargas entrantes en 3 direcciones de salida.
block.command-center.description = Controla el comportamiento de las unidades con diferentes órdenes. block.command-center.description = Controla el comportamiento de las unidades con diferentes órdenes.
block.ground-factory.description = Produce unidades terrestres. Las unidades resultantes se pueden usar directamente, o se pueden llevar a reconstructores para mejorarlas. block.ground-factory.description = Produce unidades terrestres. Las unidades resultantes se pueden usar directamente, o se pueden transportar a reconstructores para mejorarlas.
block.air-factory.description = Produce unidades aéreas. Las unidades resultantes se pueden usar directamente, o se pueden llevar a reconstructores para mejorarlas. block.air-factory.description = Produce unidades aéreas. Las unidades resultantes se pueden usar directamente, o se pueden tranportar a reconstructores para mejorarlas.
block.naval-factory.description = Produce unidades navales. Las unidades resultantes se pueden usar directamente, o se pueden llevar a reconstructores para mejorarlas. block.naval-factory.description = Produce unidades navales. Las unidades resultantes se pueden usar directamente, o se pueden transportar a reconstructores para mejorarlas.
block.additive-reconstructor.description = Mejora unidades a segunda categoría. block.additive-reconstructor.description = Mejora unidades a segunda categoría.
block.multiplicative-reconstructor.description = Mejora unidades a tercera categoría. block.multiplicative-reconstructor.description = Mejora unidades a tercera categoría.
block.exponential-reconstructor.description = Mejora unidades a cuarta categoría. block.exponential-reconstructor.description = Mejora unidades a cuarta categoría.
@@ -1541,43 +1571,50 @@ block.logic-processor.description = Ejecuta una secuencia de instrucciones lógi
block.hyper-processor.description = Ejecuta una secuencia de instrucciones lógicas en bucle. Se puede usar para controlar unidades y estructuras. Es más rápido que el procesador lógico. block.hyper-processor.description = Ejecuta una secuencia de instrucciones lógicas en bucle. Se puede usar para controlar unidades y estructuras. Es más rápido que el procesador lógico.
block.memory-cell.description = Almacena información para los procesadores lógicos. block.memory-cell.description = Almacena información para los procesadores lógicos.
block.memory-bank.description = Almacena información para los procesadores lógicos. Alta capacidad. block.memory-bank.description = Almacena información para los procesadores lógicos. Alta capacidad.
block.logic-display.description = Muestra gráficos arbitrarios desde un procesador lógico. block.logic-display.description = Muestra gráficos arbitrarios dibujados desde un procesador lógico.
block.large-logic-display.description = También muestra gráficos arbitrarios desde un procesador lógico. block.large-logic-display.description = También muestra gráficos arbitrarios dibujados desde un procesador lógico.
block.interplanetary-accelerator.description = Una torre de proyección electromagnética masiva. Acelera núcleos hasta la velocidad necesaria para escapar del campo gravitatorio del planeta, habilitando el despliegue interplanetario. block.interplanetary-accelerator.description = Una torre de proyección electromagnética masiva. Acelera núcleos hasta la velocidad necesaria para escapar del campo gravitatorio del planeta, habilitando el despliegue interplanetario.
block.repair-turret.description = Repara continuamente la unidad dañada más cercana dentro de su alcance. Opcionalmente acepta refrigerante.
block.payload-propulsion-tower.description = Estructura de transporte de cargas a largo alcance. Dispara cargas, tales como unidades o estructuras hasta otras torres de propulsión elazadas.
unit.dagger.description = Dispara proyectiles básicos a enemigos cercanos. unit.dagger.description = Dispara proyectiles básicos a enemigos cercanos.
unit.mace.description = Lanza torrentes de llamas a enemigos cercanos. unit.mace.description = Ataca con llamaradas a enemigos cercanos.
unit.fortress.description = Utiliza artillería de largo alcance contra enemigos terrestres. unit.fortress.description = Utiliza artillería de largo alcance contra enemigos terrestres.
unit.scepter.description = Bombardea enemigos cercanos con proyectiles cargados. unit.scepter.description = Bombardea enemigos cercanos con proyectiles cargados.
unit.reign.description = Bombardea enemigos con proyectiles penetrantes. unit.reign.description = Bombardea enemigos con proyectiles perforantes.
unit.nova.description = Dispara rayos láser que dañan enemigos y reparan estructuras aliadas. Puede volar. unit.nova.description = Dispara rayos láser que dañan enemigos y reparan estructuras aliadas. Puede volar.
unit.pulsar.description = Dispara arcos eléctricos que dañan enemigos y reparan estructuras aliadas. Puede volar. unit.pulsar.description = Dispara arcos eléctricos que dañan enemigos y reparan estructuras aliadas. Puede volar.
unit.quasar.description = Dispara rayos láser perforantes que dañan enemigos, pueden provocar incendios y reparan estructuras aliadas. Puede volar. Posee escudo. unit.quasar.description = Dispara rayos láser perforantes que dañan enemigos y reparan estructuras aliadas. Puede volar. Posee escudo.
unit.vela.description = Dispara un rayo láser continuo que daña enemigos, provoca incendios y reparan estructuras aliadas. Puede volar. unit.vela.description = Dispara un rayo láser continuo que daña enemigos, provoca incendios y repara estructuras aliadas. Puede volar.
unit.corvus.description = Dispara poderosos láseres que dañan enemigos, y reparan estructuras aliadas. Puede pisar sobre la mayoría de terreno. unit.corvus.description = Dispara poderosos láseres que dañan enemigos, y reparan estructuras aliadas. Puede pisar sobre la mayoría de terreno.
unit.crawler.description = Corre hacia enemigos y se autodestruye, provocando una gran explosión. unit.crawler.description = Corre hacia enemigos y se autodestruye, provocando una gran explosión.
unit.atrax.description = Dispara orbes de magma debilitantes a enemigos terrestres. Puede pisar sobre la mayoría de terreno. unit.atrax.description = Dispara orbes de magma debilitantes a enemigos terrestres. Puede pisar sobre la mayoría de terreno.
unit.spiroct.description = Dispara láseres que debilitan al enemigo, reparándose en el proceso. Puede pisar sobre la mayoría de terreno. unit.spiroct.description = Dispara láseres que debilitan al enemigo, regenerándose en el proceso. Puede pisar sobre la mayoría de terreno.
unit.arkyid.description = Dispara grandes rayos láser que debilitan al enemigo, reparándose en el proceso. Puede pisar sobre la mayoría de terreno. unit.arkyid.description = Dispara grandes rayos láser que debilitan al enemigo, regenerándose en el proceso. Puede pisar sobre la mayoría de terreno.
unit.toxopid.description = Dispara grandes fragmentos electrizados y láseres perforantes. Puede pisar sobre la mayoría de terreno. unit.toxopid.description = Dispara grandes fragmentos electrizados y láseres perforantes. Puede pisar sobre la mayoría de terreno.
unit.flare.description = Dispara proyectiles básicos a enemigos cercanos. unit.flare.description = Dispara proyectiles básicos a enemigos terrestres cercanos.
unit.horizon.description = Suelta fragmentos explosivos sobre objetivos terrestres. unit.horizon.description = Suelta conjuntos de bombas sobre objetivos terrestres.
unit.zenith.description = Dispara ráfagas de misiles a enemigos cercanos. unit.zenith.description = Dispara ráfagas de misiles a enemigos cercanos.
unit.antumbra.description = Dispara un enjambre de balas a cualquer enemigo cercano. unit.antumbra.description = Dispara un enjambre de balas a cualquer enemigo cercano.
unit.eclipse.description = Dispara dos láseres perforantes y un enjambre de balas de fragmentación. unit.eclipse.description = Dispara dos láseres perforantes y un enjambre de balas de fragmentación.
unit.mono.description = Extrae cobre y plomo, y los deposita en el núcleo. unit.mono.description = Extrae automáticamente cobre y plomo, y los deposita en el núcleo.
unit.poly.description = Reconstruye automáticamente estructuras dañadas y asiste a otras unidades en la construcción. unit.poly.description = Reconstruye automáticamente estructuras dañadas y asiste a otras unidades en la construcción.
unit.mega.description = Repara automáticamente estructuras dañadas. Puede llevar estructuras y unidades terrestres pequeñas. unit.mega.description = Repara automáticamente estructuras dañadas. Puede cargar con estructuras y otras unidades terrestres pequeñas.
unit.quad.description = Suelta grandes bombas sobre objetivos terrestres, repara estructuras aliadas y daña enemigos. Puede cargar con unidades terrestres de tamaño medio. unit.quad.description = Suelta grandes bombas sobre objetivos terrestres, repara estructuras aliadas y daña enemigos. Puede cargar con unidades terrestres de tamaño medio.
unit.oct.description = Protege aliados con su escudo. Puede cargar con la mayoría de unidades terrestres. unit.oct.description = Protege aliados con su escudo. Puede cargar con la mayoría de unidades terrestres.
unit.risso.description = Dispara un enjambre de misiles y proyectiles a enemigos cercanos. unit.risso.description = Dispara un enjambre de misiles y proyectiles a enemigos cercanos.
unit.minke.description = Dispara proyectiles variados a enemigos terrestres. unit.minke.description = Dispara proyectiles simples variados a enemigos terrestres.
unit.bryde.description = Dispara misiles de largo alcance a enemigos. unit.bryde.description = Dispara misiles de artillería de largo alcance a enemigos.
unit.sei.description = Dispara un enjambre de misiles y proyectiles perforantes a enemigos. unit.sei.description = Dispara un enjambre de misiles y proyectiles perforantes a enemigos.
unit.omura.description = Dispara rayos contínuos perforantes. Construye unidades Flare. unit.omura.description = Dispara un rayo perforante de largo alcance. Construye unidades Flare.
unit.alpha.description = Defiende el núcleo Shard de los enemigos. Construye estructuras. unit.alpha.description = Defiende el núcleo Shard de los enemigos. Construye estructuras.
unit.beta.description = Defiende el núcleo Foundation de los enemigos. Construye estructuras. unit.beta.description = Defiende el núcleo Foundation de los enemigos. Construye estructuras.
unit.gamma.description = Defiende el núcleo Nucleus de los enemigos. Construye estructuras. unit.gamma.description = Defiende el núcleo Nucleus de los enemigos. Construye estructuras.
unit.retusa.description = Coloca minas de proximidad. Repara unidades aliadas.
unit.oxynoe.description = Dispara llamaradas de fuego que reparan estructuras aliadas. Su torreta de defensa móvil fija y destruye proyectiles enemigos automáticamente.
unit.cyerce.description = Dispara grupos de misiles rastreadores. Repara unidades aliadas.
unit.aegires.description = Electrifica a todas las unidades y estructuras que entran en su campo de energía. Repara todas las unidades aliadas.
unit.navanax.description = Dispara proyectiles EMP explosivos que infligen mucho daño a las redes eléctricas enemigas y reparan las estructuras aliadas. Funde a los enemigos cercanos con 4 torretas láser autónomas.
lst.read = Lee un número desde una unidad de memoria conectada. lst.read = Lee un número desde una unidad de memoria conectada.
lst.write = Escribe un número en una unidad de memoria conectada. lst.write = Escribe un número en una unidad de memoria conectada.
@@ -1606,7 +1643,7 @@ lenum.type = El tipo de bloque/unidad\nEjemplo: "para cualquier enrutador", devo
lenum.shoot = Dispara a una posición. lenum.shoot = Dispara a una posición.
lenum.shootp = Dispara a una unidad/bloque con predicción de velocidad. lenum.shootp = Dispara a una unidad/bloque con predicción de velocidad.
lenum.config = Configuración de bloque, por ejemplo: clasificador. lenum.config = Configuración de bloque, por ejemplo: clasificador.
lenum.enabled = Si el bloque está activado o no. lenum.enabled = Si el bloque está activado.
laccess.color = Color del iluminador. laccess.color = Color del iluminador.
laccess.controller = Controlador de unidad. Si se controla mediante un procesador, devuelve dicho procesador.\nSi está en formación, devuelve su líder.\nDe otra forma, devuelve la misma unidad. laccess.controller = Controlador de unidad. Si se controla mediante un procesador, devuelve dicho procesador.\nSi está en formación, devuelve su líder.\nDe otra forma, devuelve la misma unidad.
@@ -1729,4 +1766,4 @@ lenum.mine = Extrae minerales de una posición.
lenum.build = Construye una estructura. lenum.build = Construye una estructura.
lenum.getblock = Obtiene la construcción y su categoría en unas coordenadas específicas.\nLa unidad debe estar en el rango de su posición.\nLos bloques no-construcciones tendrán el tipo [accent]@solid[]. lenum.getblock = Obtiene la construcción y su categoría en unas coordenadas específicas.\nLa unidad debe estar en el rango de su posición.\nLos bloques no-construcciones tendrán el tipo [accent]@solid[].
lenum.within = Comprueba si una unidad se encuentra cerca de una posición. lenum.within = Comprueba si una unidad se encuentra cerca de una posición.
lenum.boost = Inicia/Detiene potenciación. lenum.boost = Iniciar/Detener potenciación.

View File

@@ -1200,19 +1200,19 @@ tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 wav
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper. tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
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 obtained 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 obtained resources can then be used to research new technology.\n\n[accent]Press the launch button.
item.copper.description = The most basic structural material. Used extensively in all types of blocks. item.copper.description = Ang pinaka basic na struktural materyal. Malawakang ginagamit sa lahat ng types ng blocks.
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks. item.lead.description = Ang panimulang at basic na materyal. Malawakang ginagamit sa electronika at sa transportasyon ng likido gamit ng blocks.
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage. item.metaglass.description = Ito ay matigas na glass compound. Malawakang ginagamit sa distribution ng likido at pag imbakan.
item.graphite.description = Mineralized carbon, used for ammunition and electrical components. item.graphite.description = Mineralized carbon, Malawakang ginagamit sa ammunisyon at sa mga bahagi ng electrisidad.
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux. item.sand.description = Ang karaniwang materyal na malawakang ginagamit sa smelting, pareho sa alloying at bilang flux
item.coal.description = Fossilized plant matter, formed long before the seeding event. Used extensively for fuel and resource production. item.coal.description =Ang karaniwang materyal na malawakang ginagamit sa smelting, pareho sa alloying at bilang flux
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft. item.titanium.description = Ang bihira hanapin at magaan na metal. Malawaking ginagamit sa transportasyon ng likido, mga drills at aircraft.
item.thorium.description = A dense, radioactive metal used as structural support and nuclear fuel. item.thorium.description = Ito ay malagong, radioactive metal ginagamit para sa supporta sa istraktura at nuklear fuel.
item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals. item.scrap.description = Galing sa mga matatanda at natirang struktura at units. Naglalaman ng ibat ibang metals.
item.silicon.description = An extremely useful semiconductor. Applications in solar panels, complex electronics and homing turret ammunition. item.silicon.description = Ang nakakatulong na semiconductor. Aplikasyon sa solar panels, Komplikadong electronika at homing turret ammunisyon.
item.plastanium.description = A light, ductile material used in advanced aircraft and fragmentation ammunition. item.plastanium.description = Ito ay magaan, malagkit na materyal ginamit sa advanced aircraft at fragmentation ammunisyon.
item.phase-fabric.description = A near-weightless substance used in advanced electronics and self-repairing technology. item.phase-fabric.description = Ito ay malapit na mawalan ng timbang na substansya ginamit sa advanced na electronika at self-repairing na technolohiya.
item.surge-alloy.description = An advanced alloy with unique electrical properties. item.surge-alloy.description = Ang advanced na pinag halung metal na may kakaibang electrical properties.
item.spore-pod.description = A pod of synthetic spores, synthesized from atmospheric concentrations for industrial purposes. Used for conversion into oil, explosives and fuel. item.spore-pod.description = A pod of synthetic spores, synthesized from atmospheric concentrations for industrial purposes. Used for conversion into oil, explosives and fuel.
item.blast-compound.description = An unstable compound used in bombs and explosives. Synthesized from spore pods and other volatile substances. Use as fuel is not advised. item.blast-compound.description = An unstable compound used in bombs and explosives. Synthesized from spore pods and other volatile substances. Use as fuel is not advised.
item.pyratite.description = An extremely flammable substance used in incendiary weapons. item.pyratite.description = An extremely flammable substance used in incendiary weapons.

View File

@@ -122,7 +122,7 @@ committingchanges = Validation des modifications
done = Fait done = Fait
feature.unsupported = Votre appareil ne prend pas en charge cette fonctionnalité. feature.unsupported = Votre appareil ne prend pas en charge cette fonctionnalité.
mods.initfailed = [red]⚠[] L'instance précédente de Mindustry na pas pu sinitialiser. Cela a probablement été causé par des mods..\n\nPour éviter une boucle de crash, [red]tous les mods ont été désactivés.[]\n\nPour désactiver cette fonctionnalité, désactivez-la dans [accent]Paramètres->Jeu->Désactiver les mods lors d'un crash au démarrage[]. mods.initfailed = [red]⚠[] L'instance précédente de Mindustry na pas pu sinitialiser. Cela a probablement été causé par des mods..\n\nPour éviter une boucle de crash, [red]tous les mods ont été désactivés.[]
mods = Mods mods = Mods
mods.none = [lightgray]Aucun Mod trouvé ! mods.none = [lightgray]Aucun Mod trouvé !
mods.guide = Guide de Modding mods.guide = Guide de Modding
@@ -363,6 +363,7 @@ publish.confirm = Êtes-vous sûr de vouloir publier ceci ?\n\n[lightgray]Assure
publish.error = Erreur de publication de l'élément : {0} publish.error = Erreur de publication de l'élément : {0}
steam.error = Échec d'initialisation des services Steam.\nErreur : {0} steam.error = Échec d'initialisation des services Steam.\nErreur : {0}
editor.cliffs = De murs à falaises
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
@@ -378,6 +379,9 @@ editor.ingame = Éditer dans le jeu
editor.publish.workshop = Publier sur le Workshop editor.publish.workshop = Publier sur le Workshop
editor.newmap = Nouvelle carte editor.newmap = Nouvelle carte
editor.center = Centrer editor.center = Centrer
editor.search = Recherche de cartes...
editor.filters = Filtrer les cartes
editor.showAll = Afficher les cartes par défaut
workshop = Steam Workshop workshop = Steam Workshop
waves.title = Vagues waves.title = Vagues
waves.remove = Supprimer waves.remove = Supprimer
@@ -1133,6 +1137,7 @@ block.sand-boulder.name = Bloc de Sable
block.basalt-boulder.name = Rocher de Basalte block.basalt-boulder.name = Rocher de Basalte
block.grass.name = Herbe block.grass.name = Herbe
block.molten-slag.name = Scories block.molten-slag.name = Scories
block.pooled-cryofluid.name = Cryofluide
block.space.name = Espace block.space.name = Espace
block.salt.name = Sel block.salt.name = Sel
block.salt-wall.name = Mur de Sel block.salt-wall.name = Mur de Sel
@@ -1613,7 +1618,7 @@ unit.omura.description = Tire avec un canon à rails à longue portée, une puis
unit.alpha.description = Défend le Noyau fragment contre les ennemis. Peut construire des structures. unit.alpha.description = Défend le Noyau fragment contre les ennemis. Peut construire des structures.
unit.beta.description = Défend le Noyau fondation contre les ennemis. Peut construire des structures. unit.beta.description = Défend le Noyau fondation contre les ennemis. Peut construire des structures.
unit.gamma.description = Défend le Noyau épicentre contre les ennemis. Peut construire des structures. unit.gamma.description = Défend le Noyau épicentre contre les ennemis. Peut construire des structures.
unit.retusa.description = Pose des mines de proximité. Répare les unités alliées. unit.retusa.description = Tire des torpilles à tête chercheuse sur les ennemis proches. Répare les unités alliées.
unit.oxynoe.description = Tire des jets de flammes qui réparent les structures et endommage les ennemis proches. Cible les projectiles ennemis proches avec une tourelle de défense ponctuelle. unit.oxynoe.description = Tire des jets de flammes qui réparent les structures et endommage les ennemis proches. Cible les projectiles ennemis proches avec une tourelle de défense ponctuelle.
unit.cyerce.description = Tire des missiles à fragmentation sur les ennemis. Répare les unités alliées. unit.cyerce.description = Tire des missiles à fragmentation sur les ennemis. Répare les unités alliées.
unit.aegires.description = Secoue toutes les unités et structures ennemies qui entrent dans son champ d'énergie. Répare tous les alliés. unit.aegires.description = Secoue toutes les unités et structures ennemies qui entrent dans son champ d'énergie. Répare tous les alliés.

View File

@@ -85,7 +85,7 @@ stat.destroyed = 破壊した建造物数:[accent] {0}
stat.deconstructed = 解体した建造物数:[accent] {0} stat.deconstructed = 解体した建造物数:[accent] {0}
stat.playtime = プレイ時間:[accent] {0} stat.playtime = プレイ時間:[accent] {0}
globalitems = [accent]グローバルアイテム globalitems = [accent]トータルアイテム
map.delete = マップ "[accent]{0}[]" を削除してもよろしいですか? map.delete = マップ "[accent]{0}[]" を削除してもよろしいですか?
level.highscore = ハイスコア: [accent]{0} level.highscore = ハイスコア: [accent]{0}
level.select = レベル選択 level.select = レベル選択
@@ -93,6 +93,7 @@ level.mode = ゲームモード:
coreattack = < コアが攻撃を受けています! > coreattack = < コアが攻撃を受けています! >
nearpoint = [[ [scarlet]直ちに出現ポイントより離脱せよ[] ]\n殲滅されます nearpoint = [[ [scarlet]直ちに出現ポイントより離脱せよ[] ]\n殲滅されます
database = コアデータベース database = コアデータベース
database.button = データベース
savegame = 保存 savegame = 保存
loadgame = 読み込む loadgame = 読み込む
joingame = マルチプレイ joingame = マルチプレイ
@@ -121,12 +122,12 @@ committingchanges = 変更を適応中
done = 完了 done = 完了
feature.unsupported = あなたのデバイスはこの機能をサポートしていません。 feature.unsupported = あなたのデバイスはこの機能をサポートしていません。
mods.initfailed = [red]⚠[] 以前のMindustryの初期化に失敗しました。おそらくModの誤作動が原因です。\n\nクラッシュループを防ぐために、[red]全てのModが無効になっています。[]\n\nこの機能を無効にするのは、[accent]設定->ゲーム->起動時にクラッシュした場合にModを無効にする[]をオフにします。 mods.initfailed = [red]⚠[] 以前のMindustryの初期化に失敗しました。\nおそらくModの誤作動が原因です。\n\nクラッシュループを防ぐために、[red]全てのModが無効になっています。[]
mods = Mods mods = Mods
mods.none = [lightgray]Modが見つかりませんでした! mods.none = [lightgray]Modが見つかりませんでした!
mods.guide = Mod作成ガイド mods.guide = Mod作成ガイド
mods.report = バグを報告する mods.report = バグを報告する
mods.openfolder = Modフォルダを開く mods.openfolder = Modフォルダを開く
mods.viewcontent = コンテンツを見る mods.viewcontent = コンテンツを見る
mods.reload = 再読み込み mods.reload = 再読み込み
mods.reloadexit = Modを読み込む為にゲームを再起動します。 mods.reloadexit = Modを読み込む為にゲームを再起動します。
@@ -168,6 +169,7 @@ launchcore = コアを打ち上げる
filename = ファイル名: filename = ファイル名:
unlocked = 新しい要素をアンロック! unlocked = 新しい要素をアンロック!
available = 新しい研究が利用可能です! available = 新しい研究が利用可能です!
unlock.incampaign = < 詳細はキャンペーンでアンロックしてください >
completed = [accent]完了 completed = [accent]完了
techtree = テックツリー techtree = テックツリー
research.legacy = [accent]5.0[] の研究データが見つかりました。\n[accent]このデータを読み込みますか?[] それとも、[accent]破棄して新しいキャンペーンで研究をやり直しますか?[](推奨) research.legacy = [accent]5.0[] の研究データが見つかりました。\n[accent]このデータを読み込みますか?[] それとも、[accent]破棄して新しいキャンペーンで研究をやり直しますか?[](推奨)
@@ -361,6 +363,7 @@ publish.confirm = 公開してもよろしいですか?\n\n[lightgray]最初
publish.error = 公開中のエラー: {0} publish.error = 公開中のエラー: {0}
steam.error = Steam サービスの初期化に失敗しました。\nエラー: {0} steam.error = Steam サービスの初期化に失敗しました。\nエラー: {0}
editor.cliffs = 壁を崖にする
editor.brush = ブラシ editor.brush = ブラシ
editor.openin = エディターで開く editor.openin = エディターで開く
editor.oregen = 鉱石の生成 editor.oregen = 鉱石の生成
@@ -376,6 +379,9 @@ editor.ingame = ゲーム内で編集する
editor.publish.workshop = ワークショップで公開 editor.publish.workshop = ワークショップで公開
editor.newmap = 新しいマップ editor.newmap = 新しいマップ
editor.center = 中心 editor.center = 中心
editor.search = マップを検索...
editor.filters = マップをフィルターする
editor.showAll = デフォルトマップを表示
workshop = ワークショップ workshop = ワークショップ
waves.title = ウェーブ waves.title = ウェーブ
waves.remove = 削除 waves.remove = 削除
@@ -393,6 +399,13 @@ waves.load = クリップボードから読み込む
waves.invalid = クリップボードのウェーブは無効なウェーブです。 waves.invalid = クリップボードのウェーブは無効なウェーブです。
waves.copied = ウェーブをコピーしました。 waves.copied = ウェーブをコピーしました。
waves.none = 敵が定義されていません。\n空のウェーブレイアウトはデフォルトのレイアウトに自動的に置き換えられます。 waves.none = 敵が定義されていません。\n空のウェーブレイアウトはデフォルトのレイアウトに自動的に置き換えられます。
waves.sort = 昇順
waves.sort.reverse = 降順
waves.sort.begin = 開始
waves.sort.health = 体力
waves.sort.type = タイプ
waves.units.hide = すべて非表示
aves.units.show = すべて表示
#these are intentionally in lower case #these are intentionally in lower case
wavemode.counts = wavemode.counts =
@@ -447,19 +460,19 @@ editor.exists = すでに同じ名前のマップが存在します。
editor.selectmap = 読み込むマップを選択: editor.selectmap = 読み込むマップを選択:
toolmode.replace = 置換 toolmode.replace = 置換
toolmode.replace.description = 固体ブロックのみに描きます toolmode.replace.description = 同系統のブロックのみを置換する
toolmode.replaceall = 全て置換 toolmode.replaceall = 全て置換
toolmode.replaceall.description = このマップにあるすべてのブロックを置き換えます toolmode.replaceall.description = マップ内の同ブロックをすべて置換する
toolmode.orthogonal = toolmode.orthogonal = 水平垂
toolmode.orthogonal.description = 直角の線を描きます。 toolmode.orthogonal.description = 水平もしくは垂直に線を描きます。
toolmode.square = 四角形 toolmode.square = 四角形
toolmode.square.description = 四角形のブラシです。 toolmode.square.description = 四角形のブラシです。
toolmode.eraseores = 鉱石消しゴム toolmode.eraseores = 鉱石消しゴム
toolmode.eraseores.description = 鉱石のみを消します。 toolmode.eraseores.description = 鉱石のみを消します。(敵の出現場所含む)
toolmode.fillteams = チームで埋める toolmode.fillteams = チームを変更
toolmode.fillteams.description = ブロックの代わりにチームで埋めます。 toolmode.fillteams.description = ブロックの所属チームを上書きします。
toolmode.drawteams = チームを描く toolmode.drawteams = チームを変更
toolmode.drawteams.description = ブロックの代わりにチームを描きます。 toolmode.drawteams.description = ブロックの所属チームを上書きします。
filters.empty = [lightgray]フィルターが設定されていません! 下のボタンからフィルターを追加してください。 filters.empty = [lightgray]フィルターが設定されていません! 下のボタンからフィルターを追加してください。
@@ -475,7 +488,7 @@ filter.defaultores = デフォルトの鉱石
filter.ore = 鉱石 filter.ore = 鉱石
filter.rivernoise = 川の生成 filter.rivernoise = 川の生成
filter.mirror = 反転 filter.mirror = 反転
filter.clear = クリア filter.clear = クリア
filter.option.ignore = 無視 filter.option.ignore = 無視
filter.scatter = 分散 filter.scatter = 分散
filter.terrain = 地形 filter.terrain = 地形
@@ -582,7 +595,7 @@ sectors.nonelaunch = [lightgray]無し (sun)
sectors.rename = セクター名を変更 sectors.rename = セクター名を変更
sectors.enemybase = [scarlet]敵基地 sectors.enemybase = [scarlet]敵基地
sectors.vulnerable = [scarlet]脆弱 sectors.vulnerable = [scarlet]脆弱
sectors.underattack = [scarlet]攻撃を受けます! [accent]{0}% 破損 sectors.underattack = [scarlet]攻撃を受けています! [accent]{0}% 破損
sectors.survives = [accent]{0} ウェーブ生存 sectors.survives = [accent]{0} ウェーブ生存
sectors.go = Go sectors.go = Go
sector.curcapture = 制圧したセクター sector.curcapture = 制圧したセクター
@@ -621,6 +634,8 @@ sector.biomassFacility.name = バイオマス · シンテシス · ファシリ
sector.windsweptIslands.name = ウインドスイープト · アイランズ sector.windsweptIslands.name = ウインドスイープト · アイランズ
sector.extractionOutpost.name = エクストラクション · アウトポスト sector.extractionOutpost.name = エクストラクション · アウトポスト
sector.planetaryTerminal.name = プラネタリー · ローンチ · ターミナル sector.planetaryTerminal.name = プラネタリー · ローンチ · ターミナル
sector.coastline.name = 海岸線
sector.navalFortress.name = 海軍要塞
sector.groundZero.description = 奪回を始めるには最適な場所です。敵脅威は低いですが、資源が乏しいです。\nできるだけ多くの銅と鉛を集めます。\n始めましょう。 sector.groundZero.description = 奪回を始めるには最適な場所です。敵脅威は低いですが、資源が乏しいです。\nできるだけ多くの銅と鉛を集めます。\n始めましょう。
sector.frozenForest.description = ここでさえ、山に近づくほど胞子が広がっています。\n極寒の気温もそれらを永遠に封じ込めることはできませんでした。\n\n電気に挑みましょう。\n火力発電機を建設し、修復機の使い方を学びましょう。 sector.frozenForest.description = ここでさえ、山に近づくほど胞子が広がっています。\n極寒の気温もそれらを永遠に封じ込めることはできませんでした。\n\n電気に挑みましょう。\n火力発電機を建設し、修復機の使い方を学びましょう。
@@ -648,6 +663,7 @@ status.sapped.name = 吸収
status.electrified.name = 帯電 status.electrified.name = 帯電
status.spore-slowed.name = 鈍化胞子 status.spore-slowed.name = 鈍化胞子
status.tarred.name = 石油塗れ status.tarred.name = 石油塗れ
status.overdrive.name = オーバードライブ
status.overclock.name = オーバークロック status.overclock.name = オーバークロック
status.shocked.name = 電撃 status.shocked.name = 電撃
status.blasted.name = 爆破 status.blasted.name = 爆破
@@ -904,7 +920,7 @@ setting.savecreate.name = 自動保存
setting.publichost.name = 誰でもゲームに参加できるようにする setting.publichost.name = 誰でもゲームに参加できるようにする
setting.playerlimit.name = プレイヤー数制限 setting.playerlimit.name = プレイヤー数制限
setting.chatopacity.name = チャットの透明度 setting.chatopacity.name = チャットの透明度
setting.lasersopacity.name = レーザーの透明度 setting.lasersopacity.name = 電線の透明度
setting.bridgeopacity.name = ブリッジの透明度 setting.bridgeopacity.name = ブリッジの透明度
setting.playerchat.name = ゲーム内にチャットを表示 setting.playerchat.name = ゲーム内にチャットを表示
setting.showweather.name = 天気のグラフィックを表示 setting.showweather.name = 天気のグラフィックを表示
@@ -990,14 +1006,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 = 通常のモードです。 資源も限られる中、自動的にウェーブが進行していきます。\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]マップに少なくとも異なる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 = 資源の無限化
@@ -1019,7 +1035,7 @@ rules.unitbuildspeedmultiplier = ユニットの製造速度倍率
rules.unithealthmultiplier = ユニットの体力倍率 rules.unithealthmultiplier = ユニットの体力倍率
rules.unitdamagemultiplier = ユニットのダメージ倍率 rules.unitdamagemultiplier = ユニットのダメージ倍率
rules.unitcapvariable = コア数によってユニット上限を変動 rules.unitcapvariable = コア数によってユニット上限を変動
rules.unitcap = ベースのユニット上限数 rules.unitcap = 基礎ユニット上限数
rules.enemycorebuildradius = 敵コア周辺の建設禁止区域の半径:[lightgray] (タイル) rules.enemycorebuildradius = 敵コア周辺の建設禁止区域の半径:[lightgray] (タイル)
rules.wavespacing = ウェーブ間の待機時間:[lightgray] (秒) rules.wavespacing = ウェーブ間の待機時間:[lightgray] (秒)
rules.buildcostmultiplier = 建設コストの倍率 rules.buildcostmultiplier = 建設コストの倍率
@@ -1121,6 +1137,7 @@ block.sand-boulder.name = 巨大な礫
block.basalt-boulder.name = 玄武岩の礫 block.basalt-boulder.name = 玄武岩の礫
block.grass.name = block.grass.name =
block.molten-slag.name = スラグ block.molten-slag.name = スラグ
block.pooled-cryofluid.name = 冷却水
block.space.name = Space block.space.name = Space
block.salt.name = 岩塩氷河 block.salt.name = 岩塩氷河
block.salt-wall.name = 塩の壁 block.salt-wall.name = 塩の壁
@@ -1153,7 +1170,8 @@ block.core-foundation.name = コア: ファンデーション
block.core-nucleus.name = コア: ニュークリアス block.core-nucleus.name = コア: ニュークリアス
block.deep-water.name = 深層水 block.deep-water.name = 深層水
block.shallow-water.name = block.shallow-water.name =
block.tainted-water.name = れた block.tainted-water.name = 汚水
block.deep-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 =
@@ -1388,6 +1406,7 @@ hint.generator = \uf879 [accent]火力発電機[]石炭を燃やし、隣接す
hint.guardian = [accent]ガーディアン[]ユニットは装甲を搭載しています。[accent]銅[]や[accent]鉛[]などの弱い弾薬は[scarlet]効果がありません[]。\n\n強力なターレット、または\uf861デュオ/\uf859サルボーの弾薬に\uf835 [accent]黒鉛[]を使用してガーディアンを撃破してください。 hint.guardian = [accent]ガーディアン[]ユニットは装甲を搭載しています。[accent]銅[]や[accent]鉛[]などの弱い弾薬は[scarlet]効果がありません[]。\n\n強力なターレット、または\uf861デュオ/\uf859サルボーの弾薬に\uf835 [accent]黒鉛[]を使用してガーディアンを撃破してください。
hint.coreUpgrade = コアは [accent]上位のコアを配置することでアップグレードできます[]。\n\n  [accent]シャード[]コアの上に、  [accent]ファンデーション[]コアを置きます。近くに障害物がないことを確認してください。 hint.coreUpgrade = コアは [accent]上位のコアを配置することでアップグレードできます[]。\n\n  [accent]シャード[]コアの上に、  [accent]ファンデーション[]コアを置きます。近くに障害物がないことを確認してください。
hint.presetLaunch = [accent]フローズン · フォレスト[]などの灰色の[accent]着陸ゾーンセクター[]には、どこからでも発射できるため近くの領土を確保する必要はありません。\n\nしかし、このような[accent]数字のセクター[]では[accent]この限りではありません[]。 hint.presetLaunch = [accent]フローズン · フォレスト[]などの灰色の[accent]着陸ゾーンセクター[]には、どこからでも発射できるため近くの領土を確保する必要はありません。\n\nしかし、このような[accent]数字のセクター[]では[accent]この限りではありません[]。
hint.presetDifficulty = このセクターは[scarlet]敵の脅威レベルが高いです[]。\nこのようなセクターへの出撃は、適切な技術と準備なしには[accent]お勧めできません[]。
hint.coreIncinerate = コアのアイテム収納数の上限に達したアイテムは搬入されず[accent]破棄[]されます。 hint.coreIncinerate = コアのアイテム収納数の上限に達したアイテムは搬入されず[accent]破棄[]されます。
hint.coopCampaign = [accent]co-op キャンペーン[]をプレイすると、現在のマップで生産されたアイテムは[accent]あなたのセクター[]に移送されます。\n\nホストが行った新しい研究も引き継がれます。 hint.coopCampaign = [accent]co-op キャンペーン[]をプレイすると、現在のマップで生産されたアイテムは[accent]あなたのセクター[]に移送されます。\n\nホストが行った新しい研究も引き継がれます。
@@ -1600,7 +1619,7 @@ unit.omura.description = 敵に長距離かつ貫通性能を持つレールガ
unit.alpha.description = シャードコアを敵から守ります。\n建造物を建築します。 unit.alpha.description = シャードコアを敵から守ります。\n建造物を建築します。
unit.beta.description = ファンデーションコアを敵から守ります。\n建造物を建築します。 unit.beta.description = ファンデーションコアを敵から守ります。\n建造物を建築します。
unit.gamma.description = ニュークリアスコアを敵から守ります。\n建造物を建築します。 unit.gamma.description = ニュークリアスコアを敵から守ります。\n建造物を建築します。
unit.retusa.description = 接地雷を配置します。\n味方ユニットを修復します。 unit.retusa.description = くの敵に追尾魚雷を発射します。\n味方ユニットを修復します。
unit.oxynoe.description = 建造物修復火炎放射を発射します。敵にはダメージを与えます。\n地点防空タレットによって敵の弾丸を撃ち落とします。 unit.oxynoe.description = 建造物修復火炎放射を発射します。敵にはダメージを与えます。\n地点防空タレットによって敵の弾丸を撃ち落とします。
unit.cyerce.description = 敵に追尾クラスターミサイルを発射します。\n味方ユニットを修復します。 unit.cyerce.description = 敵に追尾クラスターミサイルを発射します。\n味方ユニットを修復します。
unit.aegires.description = エネルギーフィールド内の全ての敵ユニットと建造物には電撃を放ち、全ての味方ユニットには修復効果を与えます。 unit.aegires.description = エネルギーフィールド内の全ての敵ユニットと建造物には電撃を放ち、全ての味方ユニットには修復効果を与えます。

View File

@@ -379,6 +379,9 @@ editor.ingame = 인 게임 편집
editor.publish.workshop = 창작마당 게시 editor.publish.workshop = 창작마당 게시
editor.newmap = 신규 맵 editor.newmap = 신규 맵
editor.center = 중앙 editor.center = 중앙
editor.search = 맵 검색하기
editor.filters = 맵 필터링하기
editor.showAll = 기본 맵 보기
workshop = 창작마당 workshop = 창작마당
waves.title = 단계 waves.title = 단계
waves.remove = 삭제 waves.remove = 삭제
@@ -631,6 +634,8 @@ sector.biomassFacility.name = 유기물 합성 시설
sector.windsweptIslands.name = 폭풍의 격전지 sector.windsweptIslands.name = 폭풍의 격전지
sector.extractionOutpost.name = 자원 추출기지 sector.extractionOutpost.name = 자원 추출기지
sector.planetaryTerminal.name = 대행성 출격단지 sector.planetaryTerminal.name = 대행성 출격단지
sector.coastline.name = 해안선
sector.navalFortress.name = 해군 요새
sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지닌 장소입니다. 적의 위협 수준이 낮으며, 자원이 거의 없습니다.\n가능 한 많은 양의 구리와 납을 수집하세요.\n이제 출격할 시간입니다! sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지닌 장소입니다. 적의 위협 수준이 낮으며, 자원이 거의 없습니다.\n가능 한 많은 양의 구리와 납을 수집하세요.\n이제 출격할 시간입니다!
sector.frozenForest.description = 이곳에서도, 산에 가까운 곳에 포자가 퍼졌습니다. 추운 온도에서도 포자들을 막을 수 없을 것 같습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배우세요. sector.frozenForest.description = 이곳에서도, 산에 가까운 곳에 포자가 퍼졌습니다. 추운 온도에서도 포자들을 막을 수 없을 것 같습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배우세요.
@@ -1128,6 +1133,7 @@ block.sand-boulder.name = 사암 바위
block.basalt-boulder.name = 현무암 바위 block.basalt-boulder.name = 현무암 바위
block.grass.name = 잔디 block.grass.name = 잔디
block.molten-slag.name = 용암 block.molten-slag.name = 용암
block.pooled-cryofluid.name = 얼음물
block.space.name = 우주 block.space.name = 우주
block.salt.name = 소금 block.salt.name = 소금
block.salt-wall.name = 소금 벽 block.salt-wall.name = 소금 벽
@@ -1289,6 +1295,7 @@ 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-container.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 = 동력 펌프
@@ -1335,10 +1342,16 @@ block.disassembler.name = 광재 분해기
block.silicon-crucible.name = 실리콘 도가니 block.silicon-crucible.name = 실리콘 도가니
block.overdrive-dome.name = 대형 과부하 프로젝터 block.overdrive-dome.name = 대형 과부하 프로젝터
block.interplanetary-accelerator.name = 성간 코어 가속기 block.interplanetary-accelerator.name = 성간 코어 가속기
#experimental, may be removed / 이 아래의 블록들은 테스트용 임시 블록들이였습니다. block.constructor.name = 제작대
block.block-forge.name = 블록 제작 block.constructor.description = 최대 2x2 크기의 블록 제작합니다.
block.block-loader.name = 블록 로더 block.large-constructor.name = 대형 제작대
block.block-unloader.name = 블록 언로더 block.large-constructor.description = 최대 4x4 크기의 블록을 제작합니다.
block.deconstructor.name = 분해기
block.deconstructor.description = 블록과 유닛을 분해합니다. 건설 비용의 100%를 돌려받습니다.
block.payload-loader.name = 블록 로더
block.payload-loader.description = 들어간 블록에 액체와 아이템을 저장합니다.
block.payload-unloader.name = 블록 언로더
block.payload-unloader.description = 들어간 블록에서 액체와 아이템을 가져옵니다.
block.switch.name = 스위치 block.switch.name = 스위치
block.micro-processor.name = 마이크로 프로세서 block.micro-processor.name = 마이크로 프로세서
@@ -1494,6 +1507,7 @@ block.conduit.description = 기본 액체 운송 블록. 액체를 앞으로 이
block.pulse-conduit.description = 고급 액체 운송 블록. 액체를 더 빠르게 운반하고 표준 파이프보다 더 많이 저장합니다. block.pulse-conduit.description = 고급 액체 운송 블록. 액체를 더 빠르게 운반하고 표준 파이프보다 더 많이 저장합니다.
block.plated-conduit.description = 펄스 파이프와 같은 속도로 이동하지만 더 높은 방어력을 가지고 있습니다. 측면에서 액체들을 받아들이지 않습니다.\n액체가 누설하지 않습니다. block.plated-conduit.description = 펄스 파이프와 같은 속도로 이동하지만 더 높은 방어력을 가지고 있습니다. 측면에서 액체들을 받아들이지 않습니다.\n액체가 누설하지 않습니다.
block.liquid-router.description = 한 방향에서 액체를 받아 최대 3개의 다른 방향으로 같이 출력합니다. 일정량의 액체를 저장할 수도 있으며 한 소스에서 여러 대상으로 액체를 나누는 데 유용합니다. block.liquid-router.description = 한 방향에서 액체를 받아 최대 3개의 다른 방향으로 같이 출력합니다. 일정량의 액체를 저장할 수도 있으며 한 소스에서 여러 대상으로 액체를 나누는 데 유용합니다.
block.liquid-container.description = 상당한 양의 액체를 저장합니다. 액체 라우터와 유사하게 모든 면에 출력할 수 있습니다.
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개 타일 위로 액체를 운반할 수 있습니다.
@@ -1608,7 +1622,7 @@ unit.omura.description = 적에게 장거리 관통 레일건을 발사합니다
unit.alpha.description = 적으로부터 코어: 조각을 방어합니다. 구조물을 짓습니다. unit.alpha.description = 적으로부터 코어: 조각을 방어합니다. 구조물을 짓습니다.
unit.beta.description = 적으로부터 코어: 기반을 방어합니다. 구조물을 짓습니다. unit.beta.description = 적으로부터 코어: 기반을 방어합니다. 구조물을 짓습니다.
unit.gamma.description = 적으로부터 코어: 핵심을 방어합니다. 구조물을 짓습니다. unit.gamma.description = 적으로부터 코어: 핵심을 방어합니다. 구조물을 짓습니다.
unit.retusa.description = 근접 시한지뢰를 설치합니다. 아군 유닛을 수리할 수 있습니다. unit.retusa.description = 주변 적에게 유도 어뢰를 발사합니다. 아군 유닛을 수리할 수 있습니다.
unit.oxynoe.description = 주변 적에게 블록을 수리하는 화염을 발사합니다. 주변 적 탄환을 요격 포탑으로 요격할 수 있습니다. unit.oxynoe.description = 주변 적에게 블록을 수리하는 화염을 발사합니다. 주변 적 탄환을 요격 포탑으로 요격할 수 있습니다.
unit.cyerce.description = 주변 적에게 유도 집속 미사일을 발사합니다. 아군 유닛을 수리할 수 있습니다. unit.cyerce.description = 주변 적에게 유도 집속 미사일을 발사합니다. 아군 유닛을 수리할 수 있습니다.
unit.aegires.description = 애너지 필드 안의 모든 적 유닛과 블록을 감전시킵니다. 아군에겐 전격으로 수리합니다. unit.aegires.description = 애너지 필드 안의 모든 적 유닛과 블록을 감전시킵니다. 아군에겐 전격으로 수리합니다.
@@ -1759,6 +1773,7 @@ lenum.itemdrop = 아이템 투하
lenum.itemtake = 건물에서 아이템 수송 lenum.itemtake = 건물에서 아이템 수송
lenum.paydrop = 현재 화물 투하 lenum.paydrop = 현재 화물 투하
lenum.paytake = 현재 위치에서 화물 수송 lenum.paytake = 현재 위치에서 화물 수송
lenum.payenter = 아래 화물 건물에 착륙
lenum.flag = 깃발 수 설정 lenum.flag = 깃발 수 설정
lenum.mine = 특정 위치에서 채광 lenum.mine = 특정 위치에서 채광
lenum.build = 구조물 건설 lenum.build = 구조물 건설

View File

@@ -904,7 +904,7 @@ category.view.name = Wyświetl
category.multiplayer.name = Wielu graczy category.multiplayer.name = Wielu graczy
category.blocks.name = Wybierz Blok category.blocks.name = Wybierz Blok
command.attack = Atakuj command.attack = Atakuj
command.rally = Zbierz command.rally = Zbiórka
command.retreat = Wycofaj command.retreat = Wycofaj
command.idle = Nieaktywny command.idle = Nieaktywny
placement.blockselectkeys = \n[lightgray]Klawisz: [{0}, placement.blockselectkeys = \n[lightgray]Klawisz: [{0},

View File

@@ -78,13 +78,12 @@ schematic.tagexists = Такой тег уже существует.
stats = Статистика stats = Статистика
stat.wave = Волн отражено:[accent] {0} stat.wave = Волн отражено:[accent] {0}
stat.unitsCreated = Единиц создано:[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.playtime = Время игры:[accent] {0} stat.playtime = Время игры:[accent] {0}
stat.rank = Финальный ранг: [accent]{0}
globalitems = [accent]Общие предметы globalitems = [accent]Общие предметы
map.delete = Вы действительно хотите удалить карту «[accent]{0}[]»? map.delete = Вы действительно хотите удалить карту «[accent]{0}[]»?
@@ -122,7 +121,7 @@ committingchanges = Внесение изменений
done = Готово done = Готово
feature.unsupported = Ваше устройство не поддерживает эту возможность. feature.unsupported = Ваше устройство не поддерживает эту возможность.
mods.initfailed = [red]⚠[] Не удалось инициализировать предыдущий запуск Mindustry. Это могло быть вызвано неисправными модификациями.\n\nЧтобы предотвратить зацикленные вылеты игры, [red]все модификации были отключены.[]\n\nЧтобы отключить эту функцию, выключите её в [accent]Настройки->Игра->Отключение модификаций после вылета при запуске[]. mods.initfailed = [red]⚠[] Не удалось инициализировать предыдущий запуск Mindustry. Это могло быть вызвано неисправными модификациями.\n\nЧтобы предотвратить зацикленные вылеты игры, [red]все модификации были отключены.[]
mods = Модификации mods = Модификации
mods.none = [lightgray]Модификации не найдены! mods.none = [lightgray]Модификации не найдены!
mods.guide = Руководство по модификациям mods.guide = Руководство по модификациям
@@ -169,6 +168,7 @@ launchcore = Запуск ядра
filename = Имя файла: filename = Имя файла:
unlocked = Новый контент разблокирован! unlocked = Новый контент разблокирован!
available = Доступно новое исследование! available = Доступно новое исследование!
unlock.incampaign = < Разблокируйте в кампании для подробностей >
completed = [accent]Завершено completed = [accent]Завершено
techtree = Дерево\n технологий techtree = Дерево\n технологий
research.legacy = Найдены данные исследований из [accent]5.0[].\nХотите [accent]загрузить эти данные[], или [accent]отказаться от них[] и перезапустить исследования в новой кампании (рекомендуется)? research.legacy = Найдены данные исследований из [accent]5.0[].\nХотите [accent]загрузить эти данные[], или [accent]отказаться от них[] и перезапустить исследования в новой кампании (рекомендуется)?
@@ -217,7 +217,7 @@ host.invalid = [scarlet]Не удаётся подключиться к хост
servers.local = Локальные серверы servers.local = Локальные серверы
servers.remote = Удалённые серверы servers.remote = Удалённые серверы
servers.global = Серверы сообщества servers.global = Серверы сообщества
servers.local.steam = Открытые игры и локальные серверы
servers.disclaimer = Серверы сообщества [accent]не[] принадлежат разработчику и [accent]не[] контролируются им.\n\nСерверы могут содержать пользовательский контент, который не подходит для всех возрастов. servers.disclaimer = Серверы сообщества [accent]не[] принадлежат разработчику и [accent]не[] контролируются им.\n\nСерверы могут содержать пользовательский контент, который не подходит для всех возрастов.
servers.showhidden = Отображать скрытые серверы servers.showhidden = Отображать скрытые серверы
server.shown = Отображается server.shown = Отображается
@@ -316,7 +316,7 @@ data.invalid = Эти игровые данные являются недейс
data.import.confirm = Импорт внешних данных сотрёт[scarlet] все[] ваши игровые данные.\n[accent]Это не может быть отменено![]\n\nКак только данные импортированы, ваша игра немедленно закроется. data.import.confirm = Импорт внешних данных сотрёт[scarlet] все[] ваши игровые данные.\n[accent]Это не может быть отменено![]\n\nКак только данные импортированы, ваша игра немедленно закроется.
quit.confirm = Вы уверены, что хотите выйти? quit.confirm = Вы уверены, что хотите выйти?
loading = [accent]Загрузка… loading = [accent]Загрузка…
reloading = [accent]Перезагрузка модификаций… downloading = [accent]Скачивание...
saving = [accent]Сохранение… saving = [accent]Сохранение…
respawn = [accent][[{0}][] для возрождения из ядра respawn = [accent][[{0}][] для возрождения из ядра
cancelbuilding = [accent][[{0}][] для очистки плана cancelbuilding = [accent][[{0}][] для очистки плана
@@ -344,9 +344,9 @@ custom = Пользовательская
builtin = Встроенная builtin = Встроенная
map.delete.confirm = Вы действительно хотите удалить эту карту? Это действие не может быть отменено! map.delete.confirm = Вы действительно хотите удалить эту карту? Это действие не может быть отменено!
map.random = [accent]Случайная карта map.random = [accent]Случайная карта
map.nospawn = Эта карта не имеет ни одного ядра, в котором игрок может появиться! Добавьте [accent]оранжевое[] ядро на эту карту в редакторе. map.nospawn = Эта карта не имеет ни одного ядра, в котором игрок может появиться! Добавьте [#{0}]{1}[] ядро на эту карту в редакторе.
map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте [scarlet]не оранжевое[] ядро на эту карту в редакторе. map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте [scarlet]не оранжевое[] ядро на эту карту в редакторе.
map.nospawn.attack = У этой карты нет вражеских ядер для атаки игроком! Добавьте [scarlet]красное[] ядро на эту карту в редакторе. map.nospawn.attack = У этой карты нет вражеских ядер для атаки игроком! Добавьте [#{0}]{1}[] ядро на эту карту в редакторе.
map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты. map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты.
workshop.update = Обновить содержимое workshop.update = Обновить содержимое
workshop.error = Ошибка загрузки информации из Мастерской: {0} workshop.error = Ошибка загрузки информации из Мастерской: {0}
@@ -376,6 +376,9 @@ editor.ingame = Редактировать в игре
editor.publish.workshop = Опубликовать в Мастерской editor.publish.workshop = Опубликовать в Мастерской
editor.newmap = Новая карта editor.newmap = Новая карта
editor.center = Центрировать editor.center = Центрировать
editor.search = Поиск карт...
editor.filters = Фильтры
editor.showAll = Показать карты по умолчанию
workshop = Мастерская workshop = Мастерская
waves.title = Волны waves.title = Волны
waves.remove = Удалить waves.remove = Удалить
@@ -384,6 +387,7 @@ waves.waves = волна(ы)
waves.perspawn = за появление waves.perspawn = за появление
waves.shields = ед. щита/волну waves.shields = ед. щита/волну
waves.to = до waves.to = до
waves.max = максимум единиц
waves.guardian = Страж waves.guardian = Страж
waves.preview = Предварительный просмотр waves.preview = Предварительный просмотр
waves.edit = Редактировать… waves.edit = Редактировать…
@@ -392,6 +396,8 @@ waves.load = Загрузить из буфера обмена
waves.invalid = Неверные волны в буфере обмена. waves.invalid = Неверные волны в буфере обмена.
waves.copied = Волны скопированы. waves.copied = Волны скопированы.
waves.none = Враги не были определены.\nОбратите внимание, что пустые волны будут автоматически заменены обычной волной. waves.none = Враги не были определены.\nОбратите внимание, что пустые волны будут автоматически заменены обычной волной.
waves.units.hide = Скрыть все
waves.units.show = Показать все
#these are intentionally in lower case #these are intentionally in lower case
wavemode.counts = количество единиц wavemode.counts = количество единиц
@@ -401,6 +407,7 @@ wavemode.health = всего прочности
editor.default = [lightgray]<По умолчанию> editor.default = [lightgray]<По умолчанию>
details = Подробности… details = Подробности…
edit = Редактировать… edit = Редактировать…
variables = Переменные
editor.name = Название: editor.name = Название:
editor.spawn = Создать боевую единицу editor.spawn = Создать боевую единицу
editor.removeunit = Удалить боевую единицу editor.removeunit = Удалить боевую единицу
@@ -444,6 +451,7 @@ editor.overwrite = [accent]Внимание!\nЭто перезапишет уж
editor.overwrite.confirm = [scarlet]Осторожно![] Карта с таким названием уже существует. Вы действительно хотите её перезаписать?\n«[accent]{0}[]» editor.overwrite.confirm = [scarlet]Осторожно![] Карта с таким названием уже существует. Вы действительно хотите её перезаписать?\n«[accent]{0}[]»
editor.exists = Карта с таким именем уже существует. editor.exists = Карта с таким именем уже существует.
editor.selectmap = Выберите карту для загрузки: editor.selectmap = Выберите карту для загрузки:
editor.cliffs = Создать скалы из стен
toolmode.replace = Заменить toolmode.replace = Заменить
toolmode.replace.description = Рисует только\nна сплошных блоках. toolmode.replace.description = Рисует только\nна сплошных блоках.
@@ -538,6 +546,7 @@ configure = Конфигурация выгрузки
loadout = Груз loadout = Груз
resources = Ресурсы resources = Ресурсы
bannedblocks = Запрещённые блоки bannedblocks = Запрещённые блоки
bannedunits = Запрещённые единицы
addall = Добавить всё addall = Добавить всё
launch.from = Запуск из: [accent]{0} launch.from = Запуск из: [accent]{0}
launch.destination = Место назначения: {0} launch.destination = Место назначения: {0}
@@ -562,10 +571,13 @@ weather.sandstorm.name = Пыльная буря
weather.sporestorm.name = Споровая буря weather.sporestorm.name = Споровая буря
weather.fog.name = Туман weather.fog.name = Туман
sectorlist = Секторы
sectorlist.attacked = {0} под атакой
sectors.unexplored = [lightgray]Не исследовано sectors.unexplored = [lightgray]Не исследовано
sectors.resources = Ресурсы: sectors.resources = Ресурсы:
sectors.production = Производит: sectors.production = Производит:
sectors.export = Экспорт: sectors.export = Экспорт:
sectors.import = Импорт:
sectors.time = Время: sectors.time = Время:
sectors.threat = Угроза: sectors.threat = Угроза:
sectors.wave = Волна: sectors.wave = Волна:
@@ -576,6 +588,7 @@ sectors.select = Выбор
sectors.nonelaunch = [lightgray]нет (солнце) sectors.nonelaunch = [lightgray]нет (солнце)
sectors.rename = Переименовать сектор sectors.rename = Переименовать сектор
sectors.enemybase = [scarlet]Вражеская база sectors.enemybase = [scarlet]Вражеская база
sectors.import = Импорт:
sectors.vulnerable = [scarlet]Уязвим sectors.vulnerable = [scarlet]Уязвим
sectors.underattack = [scarlet]Атакован! [accent]{0}% повреждений sectors.underattack = [scarlet]Атакован! [accent]{0}% повреждений
sectors.survives = [accent]Продержится {0} волн(ы) sectors.survives = [accent]Продержится {0} волн(ы)
@@ -646,9 +659,11 @@ status.electrified.name = Электризация
status.spore-slowed.name = Замедление спорами status.spore-slowed.name = Замедление спорами
status.tarred.name = В нефти status.tarred.name = В нефти
status.overclock.name = Разгон status.overclock.name = Разгон
status.overdrive.name = Ускорение
status.shocked.name = Шок status.shocked.name = Шок
status.blasted.name = Разрыв status.blasted.name = Разрыв
status.unmoving.name = Обездвиживание status.unmoving.name = Обездвиживание
status.boss.name = Страж
settings.language = Язык settings.language = Язык
settings.data = Игровые данные settings.data = Игровые данные
@@ -835,13 +850,13 @@ category.items = Предметы
category.crafting = Ввод/вывод category.crafting = Ввод/вывод
category.function = Действие category.function = Действие
category.optional = Дополнительные улучшения category.optional = Дополнительные улучшения
setting.skipcoreanimation.name = Пропускать анимацию запуска/приземления ядра
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.logichints.name = Подсказки для логики setting.logichints.name = Подсказки для логики
setting.flow.name = Показывать скорость потока ресурсов
setting.backgroundpause.name = Фоновая пауза setting.backgroundpause.name = Фоновая пауза
setting.buildautopause.name = Автоматическая приостановка строительства setting.buildautopause.name = Автоматическая приостановка строительства
setting.doubletapmine.name = Добыча руды двойным нажатием setting.doubletapmine.name = Добыча руды двойным нажатием
@@ -897,6 +912,8 @@ setting.lasersopacity.name = Непрозрачность лазеров эне
setting.bridgeopacity.name = Непрозрачность мостов setting.bridgeopacity.name = Непрозрачность мостов
setting.playerchat.name = Отображать облака чата над игроками setting.playerchat.name = Отображать облака чата над игроками
setting.showweather.name = Отображать погоду setting.showweather.name = Отображать погоду
setting.skipcoreanimation.name = Пропускать анимацию запуска/приземления ядра
setting.borderlesswindow.name.windows = Полноэкранный режим без полей
public.confirm = Вы хотите, чтобы ваша игра стала публичной?\n[accent] Любой игрок сможет присоединиться к вашим играм.\n[lightgray]Позже, это можно будет изменить в Настройки->Игра->Общедоступность игры. public.confirm = Вы хотите, чтобы ваша игра стала публичной?\n[accent] Любой игрок сможет присоединиться к вашим играм.\n[lightgray]Позже, это можно будет изменить в Настройки->Игра->Общедоступность игры.
public.confirm.really = Если вы хотите поиграть с друзьями, то используйте кнопку «[green]Пригласить друзей[]» вместо создания [scarlet]публичного сервера[]!\nВы уверены, что хотите сделать свою игру [scarlet]публичной[]? public.confirm.really = Если вы хотите поиграть с друзьями, то используйте кнопку «[green]Пригласить друзей[]» вместо создания [scarlet]публичного сервера[]!\nВы уверены, что хотите сделать свою игру [scarlet]публичной[]?
public.beta = Имейте в виду, что бета-версия игры не может делать игры публичными. public.beta = Имейте в виду, что бета-версия игры не может делать игры публичными.
@@ -989,6 +1006,7 @@ mode.attack.name = Атака
mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется красное ядро на карте. mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется красное ядро на карте.
mode.custom = Пользовательские правила mode.custom = Пользовательские правила
rules.cleanupdeadteams = Очистка строений побежденных команд (PvP)
rules.infiniteresources = Бесконечные ресурсы (Игрок) rules.infiniteresources = Бесконечные ресурсы (Игрок)
rules.reactorexplosions = Взрывы реакторов rules.reactorexplosions = Взрывы реакторов
rules.coreincinerates = Ядро сжигает избыток ресурсов rules.coreincinerates = Ядро сжигает избыток ресурсов
@@ -1003,7 +1021,9 @@ rules.enemyCheat = Бесконечные ресурсы ИИ (красная к
rules.blockhealthmultiplier = Множитель прочности блоков rules.blockhealthmultiplier = Множитель прочности блоков
rules.blockdamagemultiplier = Множитель урона блоков rules.blockdamagemultiplier = Множитель урона блоков
rules.unitbuildspeedmultiplier = Множитель скорости производства боев. ед. rules.unitbuildspeedmultiplier = Множитель скорости производства боев. ед.
rules.aitier = Уровень ИИ
rules.unithealthmultiplier = Множитель прочности боев. ед. rules.unithealthmultiplier = Множитель прочности боев. ед.
rules.aitier = Уровень ИИ
rules.unitdamagemultiplier = Множитель урона боев. ед. rules.unitdamagemultiplier = Множитель урона боев. ед.
rules.unitcapvariable = Ядра увеличивают лимит единиц rules.unitcapvariable = Ядра увеличивают лимит единиц
rules.unitcap = Начальный лимит единиц rules.unitcap = Начальный лимит единиц
@@ -1024,8 +1044,12 @@ rules.title.environment = Окружение
rules.lighting = Освещение rules.lighting = Освещение
rules.enemyLights = Вражеские огни rules.enemyLights = Вражеские огни
rules.fire = Огонь rules.fire = Огонь
rules.enemyteam = Команда Врагов
rules.playerteam = Команда Игрока
rules.explosions = Урон от взрывов блоков/единиц rules.explosions = Урон от взрывов блоков/единиц
rules.ambientlight = Окружающий свет rules.ambientlight = Окружающий свет
rules.enemyteam = Команда Врагов
rules.playerteam = Команда Игрока
rules.weather = Погода rules.weather = Погода
rules.weather.frequency = Периодичность: rules.weather.frequency = Периодичность:
rules.weather.always = Всегда rules.weather.always = Всегда
@@ -1099,13 +1123,13 @@ unit.reign.name = Власть
unit.vela.name = Парус unit.vela.name = Парус
unit.corvus.name = Ворон unit.corvus.name = Ворон
block.resupply-point.name = Пункт снабжения
block.parallax.name = Параллакс block.parallax.name = Параллакс
block.cliff.name = Скала block.cliff.name = Скала
block.sand-boulder.name = Песчаный валун block.sand-boulder.name = Песчаный валун
block.basalt-boulder.name = Базальтовый валун block.basalt-boulder.name = Базальтовый валун
block.grass.name = Трава block.grass.name = Трава
block.molten-slag.name = Шлак block.molten-slag.name = Шлак
block.pooled-cryofluid.name = Криогенная жидкость
block.space.name = Космос block.space.name = Космос
block.salt.name = Соль block.salt.name = Соль
block.salt-wall.name = Соляная стена block.salt-wall.name = Соляная стена
@@ -1137,6 +1161,7 @@ block.core-shard.name = Ядро: «Осколок»
block.core-foundation.name = Ядро: «Штаб» block.core-foundation.name = Ядро: «Штаб»
block.core-nucleus.name = Ядро: «Атом» block.core-nucleus.name = Ядро: «Атом»
block.deep-water.name = Глубоководье block.deep-water.name = Глубоководье
block.deep-tainted-water.name = Загрязнённое глубоководье
block.shallow-water.name = Вода block.shallow-water.name = Вода
block.tainted-water.name = Загрязнённая вода block.tainted-water.name = Загрязнённая вода
block.darksand-tainted-water.name = Тёмный песок с загрязнённой водой block.darksand-tainted-water.name = Тёмный песок с загрязнённой водой
@@ -1266,6 +1291,7 @@ 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-container.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 = Роторный насос
@@ -1317,6 +1343,16 @@ block.block-forge.name = Завод блоков
block.block-loader.name = Загрузчик блоков block.block-loader.name = Загрузчик блоков
block.block-unloader.name = Разгрузчик блоков block.block-unloader.name = Разгрузчик блоков
block.interplanetary-accelerator.name = Межпланетный ускоритель block.interplanetary-accelerator.name = Межпланетный ускоритель
block.constructor.name = Конструктор
block.constructor.description = Производит грузы размером 1x1 и 2x2
block.large-constructor.name = Большой конструктор
block.large-constructor.description = Производит грузы размером 3x3 и 4x4
block.deconstructor.name = Деконструктор
block.deconstructor.description = Разбирает грузы и боевые единицы с возвращением 100% использованных ресурсов на их производство
block.payload-loader.name = Грузовой загрузчик
block.payload-loader.description = Загружает жидкости и ресурсы в груз
block.payload-unloader.name = Грузовой разгрузчик
block.payload-unloader.description = Выгружает жидкости и ресурсы из груза
block.switch.name = Переключатель block.switch.name = Переключатель
block.micro-processor.name = Микропроцессор block.micro-processor.name = Микропроцессор
@@ -1351,6 +1387,7 @@ hint.placeTurret = Установите \uf861 [accent]Турели[] для з
hint.breaking = Выделите блоки в рамку [accent]правой кнопкой мыши[], чтобы разобрать их. hint.breaking = Выделите блоки в рамку [accent]правой кнопкой мыши[], чтобы разобрать их.
hint.breaking.mobile = Активируйте \ue817 [accent]молоток[] в правом нижнем углу и нажимайте на блоки, чтобы разобрать их. Удерживайте палец в течение секунды и переместите, чтобы разобрать выделением. hint.breaking.mobile = Активируйте \ue817 [accent]молоток[] в правом нижнем углу и нажимайте на блоки, чтобы разобрать их. Удерживайте палец в течение секунды и переместите, чтобы разобрать выделением.
hint.blockInfo = Для просмотра информации о блоке, выберите его в [accent]меню строительства[], затем нажмите на кнопку [accent][[?][] справа. hint.blockInfo = Для просмотра информации о блоке, выберите его в [accent]меню строительства[], затем нажмите на кнопку [accent][[?][] справа.
hint.derelict = [accent]Покинутые[] постройки - это остатки старых баз, которые больше не функционируют.\n\nОни могут быть [accent]разобраны[] для получения ресурсов.
hint.research = Используйте кнопку \ue875 [accent]Исследований[], чтобы исследовать новые технологии. hint.research = Используйте кнопку \ue875 [accent]Исследований[], чтобы исследовать новые технологии.
hint.research.mobile = Используйте кнопку \ue875 [accent]Исследований[] в \ue88c [accent]Меню[], чтобы исследовать новые технологии. hint.research.mobile = Используйте кнопку \ue875 [accent]Исследований[] в \ue88c [accent]Меню[], чтобы исследовать новые технологии.
hint.unitControl = Зажмите [accent][[Л-Ctrl][] и [accent]нажмите левую кнопку мыши[], чтобы контролировать дружественные единицы и турели. hint.unitControl = Зажмите [accent][[Л-Ctrl][] и [accent]нажмите левую кнопку мыши[], чтобы контролировать дружественные единицы и турели.
@@ -1374,6 +1411,7 @@ hint.coreUpgrade = Ядра могут быть улучшены путем [acc
hint.presetLaunch = В серые [accent]секторы с посадочными зонами[], такие как [accent]Ледяной лес[], можно запускаться из любого места. Они не требуют захвата близлежащей территории.\n\n[accent]Нумерованные секторы[], такие как этот, [accent]не обязательны[] для прохождения. hint.presetLaunch = В серые [accent]секторы с посадочными зонами[], такие как [accent]Ледяной лес[], можно запускаться из любого места. Они не требуют захвата близлежащей территории.\n\n[accent]Нумерованные секторы[], такие как этот, [accent]не обязательны[] для прохождения.
hint.coreIncinerate = После того, как ядро будет заполнено предметом до отказа, любые лишние входящие предметы этого типа будут [accent]сожжены[]. hint.coreIncinerate = После того, как ядро будет заполнено предметом до отказа, любые лишние входящие предметы этого типа будут [accent]сожжены[].
hint.coopCampaign = Во время игры в [accent]кампанию по сети[], произведённые на текущей карте предметы будут также отправлены [accent]на ваши локальные секторы[].\n\nЛюбое исследование со стороны хоста также будет перенесено. hint.coopCampaign = Во время игры в [accent]кампанию по сети[], произведённые на текущей карте предметы будут также отправлены [accent]на ваши локальные секторы[].\n\nЛюбое исследование со стороны хоста также будет перенесено.
hint.presetDifficulty = У этого сектора [scarlet]высокий уровень угрозы[].\nЗапуск на такие сектора [accent]не рекомендуется[] без достаточных технологий и подготовки.
item.copper.description = Используется во всех типах построек и боеприпасов. item.copper.description = Используется во всех типах построек и боеприпасов.
item.copper.details = Медь. Аномально широко распространённый металл на Серпуло. Структурно слабый, если не укреплён. item.copper.details = Медь. Аномально широко распространённый металл на Серпуло. Структурно слабый, если не укреплён.
@@ -1402,7 +1440,6 @@ liquid.slag.description = Может быть переработан в разд
liquid.oil.description = Используется в производстве продвинутых материалов и как зажигательный боеприпас. liquid.oil.description = Используется в производстве продвинутых материалов и как зажигательный боеприпас.
liquid.cryofluid.description = Используется в качестве охлаждающей жидкости для реакторов, турелей и фабрик. liquid.cryofluid.description = Используется в качестве охлаждающей жидкости для реакторов, турелей и фабрик.
block.resupply-point.description = Снаряжает медными боеприпасами ближайшие боевые единицы. Не совместим с единицами, требующими питания от батареи.
block.armored-conveyor.description = Перемещает предметы вперёд. Не принимает вход по бокам. block.armored-conveyor.description = Перемещает предметы вперёд. Не принимает вход по бокам.
block.illuminator.description = Излучает свет. block.illuminator.description = Излучает свет.
block.message.description = Сохраняет сообщение для связи между союзниками. block.message.description = Сохраняет сообщение для связи между союзниками.
@@ -1471,6 +1508,7 @@ block.liquid-router.description = Принимает жидкости из од
block.liquid-tank.description = Хранит большое количество жидкости. Выводит жидкости во все стороны, подобно жидкостному маршрутизатору. block.liquid-tank.description = Хранит большое количество жидкости. Выводит жидкости во все стороны, подобно жидкостному маршрутизатору.
block.liquid-junction.description = Действует как мост для двух пересекающихся трубопроводов. block.liquid-junction.description = Действует как мост для двух пересекающихся трубопроводов.
block.bridge-conduit.description = Перемещает жидкости над любой местностью или зданиями. block.bridge-conduit.description = Перемещает жидкости над любой местностью или зданиями.
block.liquid-container.description = Хранит большое количество жидкости. Выводит их во все стороны, как жидкостный маршрутизатор.
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 = Усовершенствованный силовой узел с большей дальностью.
@@ -1582,6 +1620,11 @@ unit.omura.description = Стреляет дальнобойным пробив
unit.alpha.description = Защищает ядро «Осколок» от врагов. Основная строительная единица. unit.alpha.description = Защищает ядро «Осколок» от врагов. Основная строительная единица.
unit.beta.description = Защищает ядро «Штаб» от врагов. Основная строительная единица. unit.beta.description = Защищает ядро «Штаб» от врагов. Основная строительная единица.
unit.gamma.description = Защищает ядро «Атом» от врагов. Основная строительная единица. unit.gamma.description = Защищает ядро «Атом» от врагов. Основная строительная единица.
unit.retusa.description = Запускает самонаводящиеся торпеды в ближайших противников. Ремонтирует союзные единицы.
unit.oxynoe.description = Стреляет потоками пламени, которые восстанавливают союзные постройки и наносят урон врагам. Разрушает ближайшие вражеские снаряды с помощью турели точечной защиты.
unit.cyerce.description = Стреляет по врагам скоплениями ракет. Ремонтирует союзные единицы.
unit.aegires.description = Оглушает все вражеские единицы и постройки, которые попадают в его энергетическое поле. Ремонтирует всех союзников.
unit.navanax.description = Запускает взрывные ЭМИ-снаряды, которые наносят значительный урон силовым узлам противника и ремонтируют союзные постройки. Плавит ближайших врагов с помощью 4 автономных лазерных турелей.
lst.read = Считывает число из соединённой ячейки памяти. lst.read = Считывает число из соединённой ячейки памяти.
lst.write = Записывает число в соединённую ячейку памяти. lst.write = Записывает число в соединённую ячейку памяти.

File diff suppressed because it is too large Load Diff

View File

@@ -37,7 +37,7 @@ load.scripts = สคริปต์
be.update = เวอร์ชั่นรุ่นพัฒนาล่าสุดออกแล้ว: be.update = เวอร์ชั่นรุ่นพัฒนาล่าสุดออกแล้ว:
be.update.confirm = ดาวน์โหลดเวอร์ชั่นใหม่แล้วรีสตาร์ทเลยไหม? be.update.confirm = ดาวน์โหลดเวอร์ชั่นใหม่แล้วรีสตาร์ทเลยไหม?
be.updating = กำลังอัปเดต... be.updating = กำลังอัปเดต...
be.ignore = กเลิก be.ignore = เพิกเฉ
be.noupdates = ไม่พบอัปเดตใหม่ be.noupdates = ไม่พบอัปเดตใหม่
be.check = ตรวจหาอัปเดตใหม่ be.check = ตรวจหาอัปเดตใหม่
@@ -122,7 +122,7 @@ committingchanges = กำลังทำการเปลี่ยนแปล
done = เรียบร้อย done = เรียบร้อย
feature.unsupported = อุปกรณ์ของคุณไม่รองรับฟีเจอร์นี้ feature.unsupported = อุปกรณ์ของคุณไม่รองรับฟีเจอร์นี้
mods.initfailed = [red]⚠[] ไม่สามารถเปิดเกม Mindustry ได้ อาจเกิดจากม็อดที่ทำงานผิดปกติ\n\nเพื่อป้องกันการแครชต่อเนื่อง [red]ม็อดทั้งหมดได้ปิดตัวลง[]\n\nหากต้องการปิดฟีเจอร์นี้ ปิดได้ที่ [accent]ตั้งค่า->เกม->ปิดม็อดเมื่อเกมขัดข้อง[] mods.initfailed = [red]⚠[] ไม่สามารถเปิดเกม Mindustry ได้ อาจเกิดจากม็อดที่ทำงานผิดปกติ\n\nเพื่อป้องกันการแครชต่อเนื่อง [red]ม็อดทั้งหมดได้ปิดตัวลง[]
mods = ม็อด mods = ม็อด
mods.none = [lightgray]ไม่พบม็อด! mods.none = [lightgray]ไม่พบม็อด!
mods.guide = คู่มือการทำม็อด mods.guide = คู่มือการทำม็อด
@@ -152,7 +152,7 @@ mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด
mod.import = นำเข้าม็อด mod.import = นำเข้าม็อด
mod.import.file = นำเข้าไฟล์ mod.import.file = นำเข้าไฟล์
mod.import.github = นำเข้าม็อดจาก Github mod.import.github = นำเข้าม็อดจาก Github
mod.jarwarn = [scarlet]ม็อดไฟล์ JAR นั้นค่อนข้างไม่ปลอดภัย[]\nกรุณาเช็ให้แน่ใจว่าคุณนำเข้าม็อดนี้จะแหล่งที่เชื่อถือได้! mod.jarwarn = [scarlet]ม็อดไฟล์ JAR นั้นค่อนข้างไม่ปลอดภัย[]\nกรุณาเช็ให้แน่ใจว่าคุณนำเข้าม็อดนี้จะแหล่งที่เชื่อถือได้!
mod.item.remove = ไอเท็มนี้เป็นส่วนหนึ่งของม็อด [accent]'{0}'[] หากต้องการนำออก กรุณาถอนการติดตั้งม็อดนั้น mod.item.remove = ไอเท็มนี้เป็นส่วนหนึ่งของม็อด [accent]'{0}'[] หากต้องการนำออก กรุณาถอนการติดตั้งม็อดนั้น
mod.remove.confirm = ม็อดนี้จะถูกลบ mod.remove.confirm = ม็อดนี้จะถูกลบ
mod.author = [lightgray]ผู้สร้าง:[] {0} mod.author = [lightgray]ผู้สร้าง:[] {0}
@@ -201,7 +201,7 @@ server.kicked.customClient = เซิร์ฟเวอร์นี้ไม่
server.kicked.gameover = จบเกม! server.kicked.gameover = จบเกม!
server.kicked.serverRestarting = เซิร์ฟเวอร์กำลังเริ่มใหม่ server.kicked.serverRestarting = เซิร์ฟเวอร์กำลังเริ่มใหม่
server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิร์ฟเวอร์:[accent] {1}[] server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิร์ฟเวอร์:[accent] {1}[]
host.info = ปุ่ม[accent]โฮสต์[]นั้นโฮสต์เซิร์ฟเวอร์ที่พอร์ต [scarlet]6567[] \nทุกคนที่อยู่ใน [lightgray]Wi-Fi หรือเครือข่ายท้องถิ่น[]เดียวกันจะสามารถเห็นเซิร์ฟเวอร์ของคุณในรายชื่อของ\nเซิร์ฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆ สามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP คุณจำเป็นจะต้องใช้การ[accent]การส่งต่อพอร์ต (Port Forwarding)[] \n\n[lightgray]โน๊ต: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็ให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึงเครือข่ายท้องถิ่นของคุณในการตั้งค่า Firewall จำไว้ว่าเครือข่ายสาธารณะบางครั้งอาจไม่อนุญาตการ\nค้นหาเซิร์ฟเวอร์ host.info = ปุ่ม[accent]โฮสต์[]นั้นโฮสต์เซิร์ฟเวอร์ที่พอร์ต [scarlet]6567[] \nทุกคนที่อยู่ใน [lightgray]Wi-Fi หรือเครือข่ายท้องถิ่น[]เดียวกันจะสามารถเห็นเซิร์ฟเวอร์ของคุณในรายชื่อของ\nเซิร์ฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆ สามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP คุณจำเป็นจะต้องใช้การ[accent]การส่งต่อพอร์ต (Port Forwarding)[] \n\n[lightgray]โน๊ต: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็ให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึงเครือข่ายท้องถิ่นของคุณในการตั้งค่า Firewall จำไว้ว่าเครือข่ายสาธารณะบางครั้งอาจไม่อนุญาตการ\nค้นหาเซิร์ฟเวอร์
join.info = คุณสามารถใส่ [accent]IP ของเซิร์ฟเวอร์[]เพื่อที่จะเชื่อมต่อหรือค้นหาเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้[accent]เครือข่ายท้องถิ่น[]จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]ถ้าคุณอยากเชื่อมต่อกับใครบางคนโดยใช้ IP คุณต้องไปถามโฮสต์เอาว่า IP ของโฮสต์คืออะไร ซึ่งสามารถหาได้โดยการค้นหาในกูเกิ้ลว่า "ip ของฉัน" จากเครื่องของโฮสต์ join.info = คุณสามารถใส่ [accent]IP ของเซิร์ฟเวอร์[]เพื่อที่จะเชื่อมต่อหรือค้นหาเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้[accent]เครือข่ายท้องถิ่น[]จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]ถ้าคุณอยากเชื่อมต่อกับใครบางคนโดยใช้ IP คุณต้องไปถามโฮสต์เอาว่า IP ของโฮสต์คืออะไร ซึ่งสามารถหาได้โดยการค้นหาในกูเกิ้ลว่า "ip ของฉัน" จากเครื่องของโฮสต์
hostserver = โฮสต์เกมผู้เล่นหลายคน hostserver = โฮสต์เกมผู้เล่นหลายคน
invitefriends = ชวนเพื่อน invitefriends = ชวนเพื่อน
@@ -229,7 +229,7 @@ trace = แกะรอยผู้เล่น
trace.playername = ชื่อผู้เล่น: [accent]{0} trace.playername = ชื่อผู้เล่น: [accent]{0}
trace.ip = IP: [accent]{0} 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}
trace.times.joined = เวลาเข้า: [accent]{0} trace.times.joined = เวลาเข้า: [accent]{0}
trace.times.kicked = เวลาโดนเตะ: [accent]{0} trace.times.kicked = เวลาโดนเตะ: [accent]{0}
@@ -343,7 +343,7 @@ loadimage = โหลดรูป
saveimage = เซฟรูป saveimage = เซฟรูป
unknown = ไม่ทราบ unknown = ไม่ทราบ
custom = กำหนดเอง custom = กำหนดเอง
builtin = ติดตัว builtin = ค่าเริ่มต้น
map.delete.confirm = คุณแน่ใจหรือว่าจะลบแมพนี้? การกระทำครั้งนี้ไม่สามารถย้อนกลับได้! map.delete.confirm = คุณแน่ใจหรือว่าจะลบแมพนี้? การกระทำครั้งนี้ไม่สามารถย้อนกลับได้!
map.random = [accent]สุ่มแมพ map.random = [accent]สุ่มแมพ
map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[#{0}]{1}[] ลงในตัวแก้ไข map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[#{0}]{1}[] ลงในตัวแก้ไข
@@ -379,6 +379,9 @@ editor.ingame = แก้ไขในเกม
editor.publish.workshop = เผยแพร่บนเวิร์กช็อป editor.publish.workshop = เผยแพร่บนเวิร์กช็อป
editor.newmap = แมพใหม่ editor.newmap = แมพใหม่
editor.center = ศูนย์กลางแมพ editor.center = ศูนย์กลางแมพ
editor.search = ค้นหาแมพ...
editor.filters = ตัวกรองแมพ
editor.showAll = แสดงแมพค่าเริ่มต้น
workshop = เวิร์กช็อป workshop = เวิร์กช็อป
waves.title = คลื่น waves.title = คลื่น
waves.remove = ลบ waves.remove = ลบ
@@ -432,8 +435,8 @@ editor.loadmap = โหลดแมพ
editor.savemap = เซฟแมพ editor.savemap = เซฟแมพ
editor.saved = เซฟเรียบร้อย! editor.saved = เซฟเรียบร้อย!
editor.save.noname = แมพของคุณไม่มีชื่อ! สามารถตั้งชื่อได้ในเมนู 'ข้อมูลแมพ' editor.save.noname = แมพของคุณไม่มีชื่อ! สามารถตั้งชื่อได้ในเมนู 'ข้อมูลแมพ'
editor.save.overwrite = แมพของคุณไปทับกับแมพติดตัว! เปลี่ยนชื่อได้ในเมนู 'ข้อมูลแมพ' editor.save.overwrite = แมพของคุณไปทับกับแมพค่าเริ่มต้น! เปลี่ยนชื่อได้ในเมนู 'ข้อมูลแมพ'
editor.import.exists = [scarlet]ไม่สามารถนำเข้าได้:[] มีแมพติดตัวที่ชื่อ '{0}' อยู่แล้ว! editor.import.exists = [scarlet]ไม่สามารถนำเข้าได้:[] มีแมพค่าเริ่มต้นที่ชื่อ '{0}' อยู่แล้ว!
editor.import = นำเข้า... editor.import = นำเข้า...
editor.importmap = นำเข้าแมพ editor.importmap = นำเข้าแมพ
editor.importmap.description = นำเข้าแมพที่มีอยู่แล้ว editor.importmap.description = นำเข้าแมพที่มีอยู่แล้ว
@@ -560,8 +563,8 @@ guardian = ผู้พิทักษ์
connectfail = [crimson]การเชื่อมต่อผิดพลาด:\n\n[accent]{0} connectfail = [crimson]การเชื่อมต่อผิดพลาด:\n\n[accent]{0}
error.unreachable = เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้\nแน่ใจหรือว่าที่อยู่เขียนถูกต้อง? error.unreachable = เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้\nแน่ใจหรือว่าที่อยู่เขียนถูกต้อง?
error.invalidaddress = ที่อยู่ไม่ถูกต้อง error.invalidaddress = ที่อยู่ไม่ถูกต้อง
error.timedout = Timed out!\nเช็ให้แน่ใจว่า port forwarding ของโฮสต์เปิดอยู่และที่อยู่นั้นถูกต้อง! error.timedout = Timed out!\nเช็ให้แน่ใจว่า port forwarding ของโฮสต์เปิดอยู่และที่อยู่นั้นถูกต้อง!
error.mismatch = Packet error:\nอาจเกิดจากเวอร์ชั่นของ ไคลเอนต์/เซิร์ฟเวอร์ ไม่ตรงกัน\nเช็ให้แน่ใจว่าคุณและโฮสต์ใช้ Mindustry เวอร์ชั่นล่าสุด! error.mismatch = Packet error:\nอาจเกิดจากเวอร์ชั่นของ ไคลเอนต์/เซิร์ฟเวอร์ ไม่ตรงกัน\nเช็ให้แน่ใจว่าคุณและโฮสต์ใช้ Mindustry เวอร์ชั่นล่าสุด!
error.alreadyconnected = เชื่อมต่ออยู่แล้ว error.alreadyconnected = เชื่อมต่ออยู่แล้ว
error.mapnotfound = ไม่พบไฟล์แมพ error.mapnotfound = ไม่พบไฟล์แมพ
error.io = Network I/O error error.io = Network I/O error
@@ -624,7 +627,7 @@ sector.stainedMountains.name = ภูเขาหลากสี
sector.desolateRift.name = เดโซเลต ริฟต์ sector.desolateRift.name = เดโซเลต ริฟต์
sector.nuclearComplex.name = ฐานผลิตนิวเคลียร์ sector.nuclearComplex.name = ฐานผลิตนิวเคลียร์
sector.overgrowth.name = โอเวอร์โกรว์ด sector.overgrowth.name = โอเวอร์โกรว์ด
sector.tarFields.name = ผืนแผ่นแห่งน้ำมัน sector.tarFields.name = ราบลุ่มน้ำมัน
sector.saltFlats.name = ที่ราบเกลือ sector.saltFlats.name = ที่ราบเกลือ
sector.fungalPass.name = ทางผ่านฟังกัล sector.fungalPass.name = ทางผ่านฟังกัล
sector.biomassFacility.name = แหล่งสังเคราะห์ชีวมวล sector.biomassFacility.name = แหล่งสังเคราะห์ชีวมวล
@@ -634,21 +637,21 @@ sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกา
sector.coastline.name = แนวชายฝั่ง sector.coastline.name = แนวชายฝั่ง
sector.navalFortress.name = ปราการแห่งวารี sector.navalFortress.name = ปราการแห่งวารี
sector.groundZero.description = ที่ที่ดีที่สุดในการเริ่มต้นอีกครั้ง ศัตรูน้อย ทรัพยากรน้อย\nเก็บ[accent]ตะกั่ว[]และ[accent]ทองแดง[]ให้ได้มากที่สุด\nแล้วลุยต่อ sector.groundZero.description = ที่ที่ดีที่สุดในการเริ่มต้นอีกครั้ง ศัตรูน้อย ทรัพยากรน้อย\nเก็บ[accent]ตะกั่ว[]และ[orange]ทองแดง[]ให้ได้มากที่สุด\nแล้วลุยต่อ
sector.frozenForest.description = แม้แต่ที่นี่ ณ ที่ที่อยู่ใกล้ภูเขา [accent]สปอร์[]ก็ยังแพร่มาถึงที่นี่\nอากาศอันแสนเย็นเยือกไม่สามารถหยุดยั้งพวกมันได้ตลอดไป\n\nเริ่มต้นการใช้ไฟฟ้า สร้างเครื่องกำเนิดไฟฟ้าเผาไหม้\nเรียนรู้ที่จะใช้เครื่องซ่อมแซม sector.frozenForest.description = แม้แต่ที่นี่ ณ ที่ที่อยู่ใกล้ภูเขา [accent]สปอร์[]ก็ยังแพร่มาถึงที่นี่ อากาศอันแสนเย็นเยือกไม่สามารถหยุดยั้งพวกมันได้ตลอดไป\n\nเริ่มต้นการใช้ไฟฟ้า สร้างเครื่องกำเนิดไฟฟ้าเผาไหม้ เรียนรู้ที่จะใช้เครื่องซ่อมแซม
sector.saltFlats.description = ณ ขอบของทะเลทราย เป็นที่ตั้งของที่ราบเกลือ สามารถพบทรัพยากรบางอย่างได้ที่นี่\n\nศัตรูได้ตั้งฐานเก็บทรัพยากรไว้ที่นี่ ทำลายแกนกลางของพวกมัน อย่าให้มีอะไรเหลือ sector.saltFlats.description = ณ ขอบของทะเลทราย เป็นที่ตั้งของที่ราบเกลือ สามารถพบทรัพยากรบางอย่างได้ที่นี่\n\nศัตรูได้ตั้งฐานเก็บทรัพยากรไว้ที่นี่ ทำลายแกนกลางของพวกมัน อย่าให้มีอะไรเหลือ
sector.craters.description = มีน้ำขังอยู่ในหลุมอุกกาบาศแห่งนี้ เป็นอนุสรณ์สถานของสงครามเก่าแก่\nยึดพื้นที่นี่มา เก็บทราย เผา[accent]กระจกเมต้า[]\nปั๊มน้ำเพื่อมาหล่อเย็นป้อมปืนและเครื่องขุดเจาะ sector.craters.description = มีน้ำขังอยู่ในหลุมอุกกาบาศแห่งนี้ เป็นอนุสรณ์สถานของสงครามเก่าแก่ ยึดพื้นที่นี่มา เก็บทราย เผา[white]กระจกเมต้า[] ปั๊มน้ำเพื่อมาหล่อเย็นป้อมปืนและเครื่องขุดเจาะ
sector.ruinousShores.description = ถัดมาจากทะเลทราย เป็นที่ตั้งของชายฝั่ง ที่ครั้งก่อน เคยเป็นที่ตั้งของฐานป้องกันชายฝั่ง\nซึ่งทุกทำลายไปซะส่วนใหญ่แล้ว มีเหลือแค่ระบบการป้องกันพื้นฐาน\nทุกอย่างที่เหลือถูกทำลายเหลือเพียงแค่เศษเหล็ก\n\nทำการขยายการสำรวจต่อไป ค้นพบกับเทคโนโลยีอีกครั้ง sector.ruinousShores.description = ถัดมาจากทะเลทราย เป็นที่ตั้งของชายฝั่ง ที่ครั้งก่อน เคยเป็นที่ตั้งของฐานป้องกันชายฝั่ง ซึ่งทุกทำลายไปซะส่วนใหญ่แล้ว มีเหลือแค่ระบบการป้องกันพื้นฐาน ทุกอย่างที่เหลือถูกทำลายเหลือเพียงแค่เศษเหล็ก\n\nทำการขยายการสำรวจต่อไป ค้นพบกับเทคโนโลยีอีกครั้ง
sector.stainedMountains.description = เข้าลึกไปในพื้นที่ จะพบกับภูเขา ซึ่งยังไม่ถูกสปอร์แตะต้อง\nขุด[accent]ไทเทเนี่ยม[]ที่อุดมสมบูรณ์ในพื้นที่นี้ เรียนรู้ที่จะใช้มัน\n\nมีศัตรูปรากฏตัวมากขึ้นในบริเวณนี้ อย่าปล่อยให้พวกมันส่งยูนิตที่แข็งแกร่งที่สุดออกมา sector.stainedMountains.description = เข้าลึกไปในพื้นที่ จะพบกับภูเขา ซึ่งยังไม่ถูกสปอร์แตะต้อง\nขุด[sky]ไทเทเนี่ยม[]ที่อุดมสมบูรณ์ในพื้นที่นี้ เรียนรู้ที่จะใช้มัน\n\nมีศัตรูปรากฏตัวมากขึ้นในบริเวณนี้ อย่าปล่อยให้พวกมันส่งยูนิตที่แข็งแกร่งที่สุดออกมา
sector.overgrowth.description = พื้นที่นี้ถูกปกคลุมไปด้วยพืช เข้าใกล้กับแหล่งกำเนิดของสปอร์\nศัตรูได้ตั้งฐานเฝ้าระวังไว้ที่นี่ สร้างยูนิตเมส ทำลายฐานทิ้งซะ\nวิจัย[accent]เครื่องพัฒนารุ่นยกกำลัง[]เพื่อผลิตยูนิตขนาดที่ใหญ่ขึ้น sector.overgrowth.description = พื้นที่แห่งนี้ถูกปกคลุมไปด้วยพืชรกร้าง เริ่มเข้าใกล้กับแหล่งกำเนิดของสปอร์\nศัตรูได้ตั้งฐานเฝ้าระวังไว้ที่นี่ สร้างยูนิตเมส ทำลายฐานทิ้งซะ\nวิจัย[accent]เครื่องพัฒนารุ่นยกกำลัง[]เพื่อผลิตยูนิตขนาดที่ใหญ่ขึ้น
sector.tarFields.description = แนวชานขอบของแหล่งผลิตน้ำมัน อยู่ระหว่างภูเขาและทะเลทราย เป็นหนึ่งในพื้นที่ที่มีแหล่งน้ำมันดินที่ใช้งานได้\nแม้ว่าจะถูกทิ้งร้าง พื้นที่นี้ยังคงมีฐานทัพของศัตรูอยู่ใกล้ๆ อย่าประมาทกับพวกมัน\n\n[lightgray]วิจัยเทคโนโลยีการแปรรูปน้ำมันหากเป็นไปได้ sector.tarFields.description = แนวชานขอบของแหล่งผลิตน้ำมัน อยู่ระหว่างภูเขาและทะเลทราย เป็นหนึ่งในพื้นที่ที่มีแหล่งน้ำมันดินที่ใช้งานได้\nแม้ว่าจะถูกทิ้งร้าง พื้นที่นี้ยังคงมีฐานทัพของศัตรูอยู่ใกล้ๆ อย่าประมาทกับพวกมัน\n\n[lightgray]วิจัยเทคโนโลยีการแปรรูปน้ำมันหากเป็นไปได้[]
sector.desolateRift.description = เป็นพื้นที่ที่อันตรายมาก ทรัพยากรมากมาย แต่พื้นที่คับแคบ\nความเสี่ยงการโดนทำลายล้างสูง ออกไปจากที่นี่ให้เร็วที่สุด\nอย่าถูกหลอกโดยระยะเวลาระหว่างการโจมตีของศัตรูที่เว้นไว้นานกว่าปกติ sector.desolateRift.description = เป็นพื้นที่ที่อันตรายมาก ทรัพยากรมากมาย แต่พื้นที่คับแคบ ความเสี่ยงการโดนทำลายล้างสูง ออกไปจากที่นี่ให้เร็วที่สุด อย่าถูกหลอกโดยระยะเวลาระหว่างการโจมตีของศัตรูที่เว้นไว้นานกว่าปกติ
sector.nuclearComplex.description = สถานที่ผลิตและแปรรูปทอเรี่ยมเก่า ถูกทำลายไม่เหลือสิ้น\nวิจัยทอเรี่ยมและวิธีการใช้มัน\n\nศัตรูในบริเวณนี้มีจำนวนมาก คอยตรวจตราหาผู้บุกรุกอยู่ตลอดเวลา sector.nuclearComplex.description = สถานที่ผลิตและแปรรูป[pink]ทอเรี่ยม[]เก่า ถูกทำลายไม่เหลือสิ้น\nวิจัยทอเรี่ยมและวิธีการใช้มัน\n\nศัตรูในบริเวณนี้มีจำนวนมาก คอยตรวจตราหาผู้บุกรุกอยู่ตลอดเวลา
sector.fungalPass.description = ทางผ่านระหว่างพื้นที่สูงและต่ำของภูเขา พื้นที่นี้เต็มไปด้วยสปอร์ ฐานลาดตระเวนขนาดเล็กของศัตรูตั้งอยู่ที่นี่\nทำลายมันซะ\nผลิตยูนิตแด็กเกอร์และครอว์เลอร์ ทำลายแกนกลางทั้งสองไม่ให้เหลือซาก sector.fungalPass.description = ทางผ่านระหว่างพื้นที่สูงและต่ำของภูเขา พื้นที่นี้เต็มไปด้วยสปอร์ ฐานลาดตระเวนขนาดเล็กของศัตรูตั้งอยู่ที่นี่\nทำลายมันซะ\nผลิตยูนิตแด็กเกอร์และครอว์เลอร์ ทำลายแกนกลางทั้งสองไม่ให้เหลือซาก
sector.biomassFacility.description = แหล่งต้นกำเนิดของสปอร์ ที่นี่คือฐานวิจัยและผลิตสปอร์เริ่มแรก\nวิจัยเทคโนโลยีที่อยู่ภายในนั้น เพาะชำ[accent]สปอร์[]เพื่อเป็นเชื้อเพลิงและใช้ในการผลิตพลาสติก\n\n[gray]เมื่อสถานที่นี้ถูกทิ้งร้าง สปอร์ก็ถูกปล่อยออกมา ไม่มีสิ่งใดในระบบนิเวศท้องถิ่นที่สามารถแข่งขันกับสิ่งมีชีวิตที่\nแพร่กระจายเช่นนี้ได้ sector.biomassFacility.description = แหล่งต้นกำเนิดของสปอร์ ที่นี่คือฐานวิจัยและผลิตสปอร์เริ่มแรก\nวิจัยเทคโนโลยีที่อยู่ภายในนั้น เพาะชำ[accent]สปอร์[]เพื่อเป็นเชื้อเพลิงและใช้ในการผลิตพลาสติก\n\n[gray]เมื่อสถานที่นี้ถูกทิ้งร้าง สปอร์ก็ถูกปล่อยออกมา ไม่มีสิ่งใดในระบบนิเวศท้องถิ่นที่สามารถแข่งขันกับสิ่งมีชีวิตที่\nแพร่กระจายเช่นนี้ได้
sector.windsweptIslands.description = เลยแนวชายฝั่งไปจะพบกับหมู่เกาะที่ตั้งอยู่ห่างไกลแห่งนี้ เคยมีบันทึกว่าที่นี่มีโรงงานผลิต[accent]พลาสตาเนี่ยม[]อยู่\n\nทำลายเรือศัตรู สร้างฐานทัพบนเกาะ วิจัยโรงงานพวกนี้ sector.windsweptIslands.description = เลยแนวชายฝั่งไปจะพบกับหมู่เกาะที่ตั้งอยู่ห่างไกลแห่งนี้ เคยมีบันทึกว่าที่นี่มีโรงงานผลิต[green]พลาสตาเนี่ยม[]อยู่\n\nทำลายเรือศัตรู สร้างฐานทัพบนเกาะ วิจัยโรงงานพวกนี้
sector.extractionOutpost.description = ด่านที่อยู่ห่างไกล สร้างโดยศัตรูเพื่อใช้ในการส่งทรัพยากรไปยังฐานทัพอื่น\n\nเทคโนโลยีการส่งไอเท็มข้ามเซ็กเตอร์เป็นสิ่งจำเป็นสำหรับการพิชิตถัดๆ ไป ทำลายด่าน วิจัยฐานส่งของ sector.extractionOutpost.description = ด่านที่อยู่ห่างไกล สร้างโดยศัตรูเพื่อใช้ในการส่งทรัพยากรไปยังฐานทัพอื่น\n\nเทคโนโลยีการส่งไอเท็มข้ามเซ็กเตอร์เป็นสิ่งจำเป็นสำหรับการพิชิตถัดๆ ไป ทำลายด่าน วิจัยฐานส่งของ
sector.impact0078.description = ณ ที่แห่งนี้คือเศษซากของเรือขนส่งระหว่างดวงดาวที่เคยเข้ามายังระบบนี้\nเศษเหล็กและหิมะปกคลุมทั่วทั้งพื้นที่\n\nกอบกู้ซากยานให้ได้มากที่สุด วิจัยเทคโนโลยีทั้งหมดที่ยังเหลือรอด\n\n\n[gray]อย่าประมาทกับฐานทัพศัตรูที่อยู่ใกล้ๆ โดยอันขาด\nศัตรูจะส่งกองกำลังมาโจมตีเรื่อยๆ จนกว่าคุณจะพ่ายแพ้ sector.impact0078.description = ณ ที่แห่งนี้คือเศษซากของเรือขนส่งระหว่างดวงดาวที่เคยเข้ามายังระบบนี้\nเศษเหล็กและหิมะปกคลุมทั่วทั้งพื้นที่\n\nกอบกู้ซากยานให้ได้มากที่สุด วิจัยเทคโนโลยีทั้งหมดที่ยังเหลือรอด\n\n\n[gray]อย่าประมาทกับฐานทัพศัตรูที่อยู่ใกล้ๆ โดยอันขาด\nศัตรูจะส่งกองกำลังมาโจมตีเรื่อยๆ จนกว่าคุณจะพ่ายแพ้[]
sector.planetaryTerminal.description = เป้าหมายสุดท้าย\n\nฐานทัพติดชายหาดนี้มีสิ่งประดิษฐ์ที่สามารถส่งแกนกลางไปยังดาวที่อยู่ใกล้ๆ ได้ ฐานทัพมีการป้องกันที่แน่นหนามาก\n\nผลิตยูนิตเรือ กวาดล้างศัตรูให้เร็วที่สุด วิจัยสิ่งประดิษฐ์นั่น sector.planetaryTerminal.description = เป้าหมายสุดท้าย\n\nฐานทัพติดชายหาดนี้มีสิ่งประดิษฐ์ที่สามารถส่งแกนกลางไปยังดาวที่อยู่ใกล้ๆ ได้ ฐานทัพมีการป้องกันที่แน่นหนามาก\n\nผลิตยูนิตเรือ กวาดล้างศัตรูให้เร็วที่สุด วิจัยสิ่งประดิษฐ์นั่น
status.burning.name = เผาไหม้ status.burning.name = เผาไหม้
@@ -740,7 +743,7 @@ stat.maxunits = จำนวนยูนิตสูงสุด
stat.armor = เกราะ stat.armor = เกราะ
stat.health = พลังชีวิต stat.health = พลังชีวิต
stat.buildtime = เวลาในการสร้าง stat.buildtime = เวลาในการสร้าง
stat.maxconsecutive = ติดต่อกันสูงสุด stat.maxconsecutive = ติดต่อกันได้สูงสุด
stat.buildcost = ใช้ stat.buildcost = ใช้
stat.inaccuracy = ความคลาดเคลื่อน stat.inaccuracy = ความคลาดเคลื่อน
stat.shots = นัด stat.shots = นัด
@@ -920,7 +923,7 @@ setting.showweather.name = แสดงแกรฟฟิกสภาพอา
public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิร์ฟเวอร์สาธารณะ public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิร์ฟเวอร์สาธารณะ
public.confirm.really = หากคุณอยากเล่นกับเล่นกับเพื่อน ใช้[green]ชวนเพื่อน[]ดีกว่า แทนที่จะใช้[scarlet]เซิร์ฟเวอร์สาธารณะ[]!\nคุณแน่ใจนะว่าจะเปลี่ยนเกมคุณเป็น[scarlet]สาธารณะ[]? public.confirm.really = หากคุณอยากเล่นกับเล่นกับเพื่อน ใช้[green]ชวนเพื่อน[]ดีกว่า แทนที่จะใช้[scarlet]เซิร์ฟเวอร์สาธารณะ[]!\nคุณแน่ใจนะว่าจะเปลี่ยนเกมคุณเป็น[scarlet]สาธารณะ[]?
public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิร์ฟเวอร์สาธารณะได้ public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิร์ฟเวอร์สาธารณะได้
uiscale.reset = อัตราขนาดของ UI ได้มีการเปลี่ยนแปลง\nกด "โอเค" เพื่อยืนยันขนาด UI นี้\n[scarlet]จะเปลี่ยนกลับไปเป็นแบบเดิมและออกในอีก[accent] {0}[] วินาที... uiscale.reset = อัตราขนาดของ UI ได้มีการเปลี่ยนแปลง\nกด "โอเค" เพื่อยืนยันขนาด UI นี้\n[scarlet]จะเปลี่ยนกลับไปเป็นขนาดเดิมและออกในอีก[accent] {0}[] วินาที...
uiscale.cancel = ยกเลิกและออก uiscale.cancel = ยกเลิกและออก
setting.bloom.name = บลูม setting.bloom.name = บลูม
keybind.title = ตั้งค่าปุ่ม keybind.title = ตั้งค่าปุ่ม
@@ -1130,6 +1133,7 @@ block.sand-boulder.name = ก้อนหินทราย
block.basalt-boulder.name = ก้อนบะซอลต์ block.basalt-boulder.name = ก้อนบะซอลต์
block.grass.name = หญ้า block.grass.name = หญ้า
block.molten-slag.name = แร่หลอมละลาย block.molten-slag.name = แร่หลอมละลาย
block.pooled-cryofluid.name = สารหล่อเย็น
block.space.name = อวกาศ block.space.name = อวกาศ
block.salt.name = เกลือ block.salt.name = เกลือ
block.salt-wall.name = กำแพงเกลือ block.salt-wall.name = กำแพงเกลือ
@@ -1290,6 +1294,7 @@ block.pulse-conduit.name = ท่อน้ำพัลซ์
block.plated-conduit.name = ท่อน้ำเสริมเกราะ block.plated-conduit.name = ท่อน้ำเสริมเกราะ
block.phase-conduit.name = ท่อน้ำเฟส block.phase-conduit.name = ท่อน้ำเฟส
block.liquid-router.name = เร้าเตอร์ของเหลว block.liquid-router.name = เร้าเตอร์ของเหลว
block.liquid-container.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 = สะพานของเหลว
@@ -1298,7 +1303,7 @@ block.thorium-reactor.name = เตาปฏิกรณ์ทอเรี่ย
block.mass-driver.name = เครื่องโอนถ่ายมวล block.mass-driver.name = เครื่องโอนถ่ายมวล
block.blast-drill.name = เครื่องขุดแอร์บลาสต์ block.blast-drill.name = เครื่องขุดแอร์บลาสต์
block.thermal-pump.name = ปั๊มความร้อน block.thermal-pump.name = ปั๊มความร้อน
block.thermal-generator.name = เครื่องกำเนิดไฟฟ้าจากความร้อน block.thermal-generator.name = เครื่องกำเนิดไฟฟ้าพลังอัคคี
block.alloy-smelter.name = เครื่องหลอมอัลลอย block.alloy-smelter.name = เครื่องหลอมอัลลอย
block.mender.name = เครื่องซ่อมแซม block.mender.name = เครื่องซ่อมแซม
block.mend-projector.name = เครื่องฉายซ่อมแซม block.mend-projector.name = เครื่องฉายซ่อมแซม
@@ -1337,10 +1342,16 @@ block.disassembler.name = เครื่องถอดแยกส่วนป
block.silicon-crucible.name = เบ้าหลอมซิลิคอน block.silicon-crucible.name = เบ้าหลอมซิลิคอน
block.overdrive-dome.name = โดมเร่งประสิทธิภาพ block.overdrive-dome.name = โดมเร่งประสิทธิภาพ
block.interplanetary-accelerator.name = ฐานเร่งความเร็วระหว่างดาวเคราะห์ block.interplanetary-accelerator.name = ฐานเร่งความเร็วระหว่างดาวเคราะห์
#experimental, may be removed block.constructor.name = เครื่องก่อสร้าง
block.block-forge.name = เครื่องสร้างบล็อก block.constructor.description = สรรค์สร้างสิ่งก่อสร้างขนาดจนถึง 2x2 ช่อง
block.block-loader.name = เครื่องโหลดบล็อก block.large-constructor.name = เครื่องก่อสร้างขนาดใหญ่
block.block-unloader.name = เครื่องถ่ายบล็อก block.large-constructor.description = สรรค์สร้างสิ่งก่อสร้างขนาดจนถึง 4x4 ช่อง
block.deconstructor.name = เครื่องลบทำลาย
block.deconstructor.description = ลบทำลายสิ่งก่อสร้างและยูนิต คืน 100% ของทรัพยากรที่ใช้ในการสร้าง
block.payload-loader.name = เครื่องโหลดสิ่งบรรทุก
block.payload-loader.description = โหลดของเหลวและไอเท็มเข้าไปในบล็อก
block.payload-unloader.name = เครื่องถ่ายสิ่งบรรทุก
block.payload-unloader.description = ถ่ายของเหลวและไอเท็มออกจากบล็อก
block.switch.name = สวิตช์ block.switch.name = สวิตช์
block.micro-processor.name = ตัวประมวลผลขนาดเล็ก block.micro-processor.name = ตัวประมวลผลขนาดเล็ก
@@ -1441,7 +1452,7 @@ liquid.cryofluid.details = ของเหลวเฉื่อยและไ
block.derelict =  [lightgray]ถูกทิ้งร้าง block.derelict =  [lightgray]ถูกทิ้งร้าง
block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นเป็นสายพานด้วยกันเอง block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นเป็นสายพานด้วยกันเอง
block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดสีของแสงได้ด้วย... เจ๋งใช่มั้ยล่ะ block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดค่าสีของแสงได้ด้วย... เจ๋งใช่มั้ยล่ะ
block.message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร block.message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร
block.graphite-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ block.graphite-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์
block.multi-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ ใช้น้ำและพลังงานในการแปรรูปถ่านหินให้เร็วและมีประสิทธิภาพมากขึ้น block.multi-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ ใช้น้ำและพลังงานในการแปรรูปถ่านหินให้เร็วและมีประสิทธิภาพมากขึ้น
@@ -1511,13 +1522,14 @@ block.conduit.description = เคลื่อนย้ายของเหล
block.pulse-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า เคลื่อนย้ายได้เร็วขึ้นและเก็บของเหลวได้เยอะกว่าท่อน้ำธรรมดา block.pulse-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า เคลื่อนย้ายได้เร็วขึ้นและเก็บของเหลวได้เยอะกว่าท่อน้ำธรรมดา
block.plated-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างนอกจากท่อน้ำด้วยกันเอง\nไม่รั่ว และมีเกราะที่หนากว่า block.plated-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างนอกจากท่อน้ำด้วยกันเอง\nไม่รั่ว และมีเกราะที่หนากว่า
block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออกสามทางเท่าๆกัน สามารถเก็บของเหลวได้จำนวนหนึ่ง\nมีประโยชน์สำหรับการส่งของเหลวจากปั้มไปยังหลายที่ block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออกสามทางเท่าๆกัน สามารถเก็บของเหลวได้จำนวนหนึ่ง\nมีประโยชน์สำหรับการส่งของเหลวจากปั้มไปยังหลายที่
block.liquid-tank.description = เก็บของเหลวจำนวนมาก ส่งออกไปรอบด้านคล้ายกับเร้าเตอร์ของเหลว\nใช้สำหรับสร้างกันชนในเวลาที่ของหลวไม่คงที่หรือเวลาที่ใช้ของเหลว\nเป็นจำนวนมาก block.liquid-container.description = เก็บของเหลวจำนวนปานกลาง ส่งออกไปรอบด้านคล้ายกับเร้าเตอร์ของเหลว\nเหมาะในการใช้กับเครื่องหลดและถ่ายสิ่งบรรทุกสำหรับการขนส่งของเหลวทางไกล
block.liquid-tank.description = เก็บของเหลวจำนวนมาก ส่งออกไปรอบด้านคล้ายกับเร้าเตอร์ของเหลว\nเหมาะในการใช้เพื่อสร้างกันชนในเวลาที่ของเหลวไม่คงที่\nหรือเวลาที่ใช้ของเหลวเป็นจำนวนมาก
block.liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับท่อน้ำสองท่อตัดกันที่มีของเหลวสองชนิดแล้วจะไปคนละที่ block.liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับท่อน้ำสองท่อตัดกันที่มีของเหลวสองชนิดแล้วจะไปคนละที่
block.bridge-conduit.description = เคลื่อนย้ายของเหลวข้ามสิ่งก่อสร้างหรือกำแพง block.bridge-conduit.description = เคลื่อนย้ายของเหลวข้ามสิ่งก่อสร้างหรือกำแพง
block.phase-conduit.description = เคลื่อนย้ายของเหลวข้ามสิ่งก่อสร้างหรือกำแพงด้วยความเร็วแสง\nมีระยะที่ไกลกว่าสะพานของเหลว แต่ต้องใช้พลังงาน block.phase-conduit.description = เคลื่อนย้ายของเหลวข้ามสิ่งก่อสร้างหรือกำแพงด้วยความเร็วแสง\nมีระยะที่ไกลกว่าสะพานของเหลว แต่ต้องใช้พลังงาน
block.power-node.description = ส่งพลังงานไปยังตัวจ่ายพลังงานที่เชื่อมต่อ ตัวจ่ายจะรับพลังงานจากตัวจ่ายอื่น\nหรือแหล่งพลังงานแล้วส่งไปยังบล็อกที่ติดกัน block.power-node.description = ส่งพลังงานไปยังตัวจ่ายพลังงานที่เชื่อมต่อ ตัวจ่ายจะรับพลังงานจากตัวจ่ายอื่น\nหรือแหล่งพลังงานแล้วส่งไปยังบล็อกที่ติดกัน
block.power-node-large.description = ตัวจ่ายพลังงานขั้นสูง มีระยะเชื่อมต่อกว้างขึ้น เชื่อมต่อได้มากขึ้น block.power-node-large.description = ตัวจ่ายพลังงานขั้นสูง มีระยะเชื่อมต่อกว้างขึ้น เชื่อมต่อได้มากขึ้น
block.surge-tower.description = ตัวจ่ายพลังงานที่มีระยะเชื่อมต่อไกลมากแต่เชื่อมต่อได้น้อย\nไว้ใช้สำหรับส่งพลังงานไปที่ไกลๆ block.surge-tower.description = ตัวจ่ายพลังงานที่มีระยะเชื่อมต่อไกลมากแต่เชื่อมต่อได้น้อย\nเหมาะในการใช้เพื่อส่งพลังงานไปที่ไกลๆ
block.diode.description = พลังงานแบตเตอรี่สามารถไหลผ่านบล็อกนี้ได้เพียงทางเดียว แต่เฉพาะเวลาที่อีกด้านมีพลังงานน้อยกว่าเท่านั้น block.diode.description = พลังงานแบตเตอรี่สามารถไหลผ่านบล็อกนี้ได้เพียงทางเดียว แต่เฉพาะเวลาที่อีกด้านมีพลังงานน้อยกว่าเท่านั้น
block.battery.description = เก็บพลังงานเป็นกันชนเวลาที่มีพลังงานเกิน และส่งออกพลังงานเมื่อพลังงานไม่พอ block.battery.description = เก็บพลังงานเป็นกันชนเวลาที่มีพลังงานเกิน และส่งออกพลังงานเมื่อพลังงานไม่พอ
block.battery-large.description = เก็บพลังงานเป็นกันชนเวลาที่มีพลังงานเกิน และส่งออกพลังงานเมื่อพลังงานไม่พอ\nเก็บพลังงานได้เยอะกว่าแบตเตอรี่ธรรมดา block.battery-large.description = เก็บพลังงานเป็นกันชนเวลาที่มีพลังงานเกิน และส่งออกพลังงานเมื่อพลังงานไม่พอ\nเก็บพลังงานได้เยอะกว่าแบตเตอรี่ธรรมดา
@@ -1532,8 +1544,8 @@ block.thorium-reactor.description = ผลิตพลังงานจำน
block.thorium-reactor.details = เตาปฏิกรที่เป็นดาบสองคม ผลิตพลังงานได้มหาศาลขึ้นอยู่จำนวนทอเรี่ยม แต่จะระเบิดอย่างรุนแรงเช่นกันหากขาดสารหล่อเย็น ควรมั่นใจเรื่องทรัพยากรก่อนใช้เตาปฎิกรนี้ block.thorium-reactor.details = เตาปฏิกรที่เป็นดาบสองคม ผลิตพลังงานได้มหาศาลขึ้นอยู่จำนวนทอเรี่ยม แต่จะระเบิดอย่างรุนแรงเช่นกันหากขาดสารหล่อเย็น ควรมั่นใจเรื่องทรัพยากรก่อนใช้เตาปฎิกรนี้
block.impact-reactor.description = สามารถผลิตไฟฟ้าได้จำนวนมหาศาลที่ประสิทธิภาพสูงสุด จำเป็นต้องใช้พลังงานจำนวนมากในการสตาร์ทเครื่อง block.impact-reactor.description = สามารถผลิตไฟฟ้าได้จำนวนมหาศาลที่ประสิทธิภาพสูงสุด จำเป็นต้องใช้พลังงานจำนวนมากในการสตาร์ทเครื่อง
block.mechanical-drill.description = เมื่อวางบนพื้นแร่ จะขุดแร่นั้นและส่งออกมาอย่างช้าๆ\nไปเรื่อยๆ ไม่มีที่สิ้นสุด ขุดได้แค่ทรัพยากรพื้นฐาน block.mechanical-drill.description = เมื่อวางบนพื้นแร่ จะขุดแร่นั้นและส่งออกมาอย่างช้าๆ\nไปเรื่อยๆ ไม่มีที่สิ้นสุด ขุดได้แค่ทรัพยากรพื้นฐาน
block.pneumatic-drill.description = เครื่องขุดที่ได้รับการปรับปรุง สามารถขุด[accent]ไทเทเนี่ยม[]ได้ ขุดได้เร็วกว่าเครื่องขุดเชิงกล block.pneumatic-drill.description = เครื่องขุดที่ได้รับการปรับปรุง สามารถขุด[sky]ไทเทเนี่ยม[]ได้ ขุดได้เร็วกว่าเครื่องขุดเชิงกล
block.laser-drill.description = ขุดได้เร็วขึ้นด้วยเทคโนโลยีเลเซอร์ แต่ต้องใช้พลังงาน\nสามารถขุด[accent]ทอเรี่ยม[]ได้ block.laser-drill.description = ขุดได้เร็วขึ้นด้วยเทคโนโลยีเลเซอร์ แต่ต้องใช้พลังงาน\nสามารถขุด[pink]ทอเรี่ยม[]ได้
block.blast-drill.description = เครื่องขุดขั้นสุดยอด ใช้พลังงานจำนวนมาก block.blast-drill.description = เครื่องขุดขั้นสุดยอด ใช้พลังงานจำนวนมาก
block.water-extractor.description = ขุดน้ำบาดาลจากใต้พื้นดิน ใช้ในพื้นที่ที่ไม่มีน้ำบนดินให้ใช้ block.water-extractor.description = ขุดน้ำบาดาลจากใต้พื้นดิน ใช้ในพื้นที่ที่ไม่มีน้ำบนดินให้ใช้
block.cultivator.description = รวบรวมสปอร์ในชั้นบรรยากาศมาสกัดเป็นกระเปาะสปอร์สำหรับ\nอุตสาหกรรม block.cultivator.description = รวบรวมสปอร์ในชั้นบรรยากาศมาสกัดเป็นกระเปาะสปอร์สำหรับ\nอุตสาหกรรม
@@ -1594,15 +1606,15 @@ block.repair-turret.description = ซ่อมแซมยูนิตที่
block.payload-propulsion-tower.description = บล็อกขนส่งสิ่งบรรทุกทางไกล\nยิงสิ่งบรรทุกไปยังหอเคลื่อนย้ายสิ่งบรรทุกอีกเครื่องที่เชื่อมต่อไว้ block.payload-propulsion-tower.description = บล็อกขนส่งสิ่งบรรทุกทางไกล\nยิงสิ่งบรรทุกไปยังหอเคลื่อนย้ายสิ่งบรรทุกอีกเครื่องที่เชื่อมต่อไว้
unit.dagger.description = ยิงกระสุนธรรมดาใส่ศัตรูที่อยู่ใกล้เคียง unit.dagger.description = ยิงกระสุนธรรมดาใส่ศัตรูที่อยู่ใกล้เคียง
unit.mace.description = ยิงเปลวไฟใส่ศัตรูที่อยู่ใกล้เคียง ทำให้ศัตรูถูกเผาไหม้ unit.mace.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียง
unit.fortress.description = ยิงปืนใหญ่พิสัยไกลไปที่เป้าหมายพื้นดิน unit.fortress.description = ยิงปืนใหญ่พิสัยไกลไปที่เป้าหมายพื้นดิน
unit.scepter.description = ยิงกระสุนชาร์จใส่ศัตรูใกล้เคียงทั้งหมด กระสุนจะระเบิดออกเป็นพลังงานสายฟ้า สร้างความเสียหายแก่ป้อมปืนที่อยู่หลังกำแพ unit.scepter.description = ยิงกระสุนชาร์จใส่ศัตรูใกล้เคียงทั้งหมด กระสุนจะระเบิดออกเป็นพลังงานสายฟ้า สร้างความเสียหายแก่ยูนิตรอบข้า
unit.reign.description = ยิงกระสุนเจาะทะลุขนาดใหญ่ใส่ศัตรูที่อยู่ใกล้เคียง กระสุนสามารถกระจายตัวไปโจมตีป้อมปืนที่หลบอยู่หลังกำแพงได้ unit.reign.description = ยิงกระสุนเจาะทะลุขนาดใหญ่ใส่ศัตรูที่อยู่ใกล้เคียง กระสุนสามารถกระจายตัวไปโจมตีป้อมปืนที่หลบอยู่หลังกำแพงได้
unit.nova.description = ยิงเลเซอร์ที่สร้างความเสียหายให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพวกพ้อง สามารถบินได้ unit.nova.description = ยิงเลเซอร์ที่สร้างความเสียหายให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพวกพ้อง สามารถบินได้
unit.pulsar.description = ยิงสายฟ้าที่สร้างความเสียหายให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพวกพ้อง สามารถบินได้ unit.pulsar.description = ยิงสายฟ้าที่สร้างความเสียหายให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพวกพ้อง สามารถบินได้
unit.quasar.description = ยิงลำแสงเลเซอร์เจาะทะลุที่สร้างความเสียหายให้กับศัตรูและซ่อมแซม\nสิ่งก่อสร้างของพวกพ้อง มีโล่พลังงานเพื่อป้องกันร่างกายอันบอบบาง\nสามารถบินได้ unit.quasar.description = ยิงลำแสงเลเซอร์เจาะทะลุที่สร้างความเสียหายให้กับศัตรูและซ่อมแซม\nสิ่งก่อสร้างของพวกพ้อง มีโล่พลังงานเพื่อป้องกันร่างกายอันบอบบาง\nสามารถบินได้
unit.vela.description = ยิงลำแสงเลเซอร์ต่อเนื่องขนาดใหญ่ที่สร้างความเสียหายให้กับศัตรู ทำให้เกิดไฟไหม้ และซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nสามารถบินได้ unit.vela.description = ยิงลำแสงเลเซอร์ต่อเนื่องขนาดใหญ่ที่สร้างความเสียหายให้กับศัตรู ทำให้เกิดไฟไหม้ และซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nสามารถบินได้
unit.corvus.description = ยิงลำแสงเลเซอร์ระเบิดขนาดใหญ่ที่สร้างความเสียหายอย่างหนักให้กับศัตรู\nและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง สามารถเหยียบข้ามกำแพงได้ unit.corvus.description = ยิงลำแสงเลเซอร์พลังงานขนาดใหญ่ที่สร้างความเสียหายอย่างหนัก\nให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง สามารถเหยียบข้ามกำแพงได้
unit.crawler.description = วิ่งเข้าหาศัตรูแล้วระเบิดตัวเอง ทำให้เกิดระเบิดขนาดใหญ่ unit.crawler.description = วิ่งเข้าหาศัตรูแล้วระเบิดตัวเอง ทำให้เกิดระเบิดขนาดใหญ่
unit.atrax.description = ยิงลูกแก้วแร่หลอมใส่เป้าหมายพื้นดิน ทำให้ศัตรูถูกเผาไหม้ สามารถเหยียบข้ามกำแพงได้ unit.atrax.description = ยิงลูกแก้วแร่หลอมใส่เป้าหมายพื้นดิน ทำให้ศัตรูถูกเผาไหม้ สามารถเหยียบข้ามกำแพงได้
unit.spiroct.description = ยิงเลเซอร์ทอนกำลังใส่ศัตรู ซ่อมแซมตัวเองไปในตัว สามารถเหยียบข้ามกำแพงได้ unit.spiroct.description = ยิงเลเซอร์ทอนกำลังใส่ศัตรู ซ่อมแซมตัวเองไปในตัว สามารถเหยียบข้ามกำแพงได้
@@ -1626,10 +1638,10 @@ unit.omura.description = ยิงลำแสงปืนเรลกันเ
unit.alpha.description = ปกป้องแกนกลางชาร์ดจากศัตรู สร้างสิ่งต่างๆ unit.alpha.description = ปกป้องแกนกลางชาร์ดจากศัตรู สร้างสิ่งต่างๆ
unit.beta.description = ปกป้องแกนกลางฟาวน์เดชั่นจากศัตรู สร้างสิ่งต่างๆ unit.beta.description = ปกป้องแกนกลางฟาวน์เดชั่นจากศัตรู สร้างสิ่งต่างๆ
unit.gamma.description = ปกป้องแกนกลางนิวเคลียสจากศัตรู สร้างสิ่งต่างๆ unit.gamma.description = ปกป้องแกนกลางนิวเคลียสจากศัตรู สร้างสิ่งต่างๆ
unit.retusa.description = วางทุ่นระเบิดระยะใกล้ และซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียง unit.retusa.description = ยิงตอร์ปิโดติดตามตัวใส่ศัตรูที่อยู่ใกล้เคียง และซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียง
unit.oxynoe.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียงและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nทำลายกระสุนที่กำลังเข้ามาด้วยปืนป้องกันจุด\nให้สถานะ[accent]โอเวอร์คล็อก[]แก่พวกพ้องรอบข้าง ทำให้ยิงเร็วและแรงขึ้น unit.oxynoe.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียงและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nทำลายกระสุนที่กำลังเข้ามาด้วยปืนป้องกันจุด\nให้สถานะ[accent]โอเวอร์คล็อก[]แก่พวกพ้องรอบข้าง ทำให้ยิงเร็วและแรงขึ้น
unit.cyerce.description = ยิงขีปนาวุธพลาสม่าติดตามตัวเป็นกระจุกระเบิดใส่ศัตรู\nซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียงด้วยปืนซ่อมแซม unit.cyerce.description = ยิงขีปนาวุธพลาสม่าติดตามตัวเป็นกระจุกระเบิดใส่ศัตรู\nซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียงด้วยปืนซ่อมแซม
unit.aegires.description = ช็อตทุกสิ่งก่อสร้างและยูนิตศัตรูที่เข้ามาในสนามพลังงานของมัน\nซ่อมแซมสิ่งก่อสร้างและยูนิตพวกพ้อง unit.aegires.description = ช็อตทุกสิ่งก่อสร้างและยูนิตศัตรูที่เข้ามาในสนามพลังงานของมัน\nด้วยสายฟ้าฟาด ซ่อมแซมสิ่งก่อสร้างและยูนิตพวกพ้อง
unit.navanax.description = ยิงลูกระเบิดคลื่นชีพจรแม่เหล็กขนาดใหญ่ สร้างความเสียหายอย่างหนักให้กับเครือข่ายพลังงานศัตรู\nและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nหลอมละลายศัตรูที่อยู่ใกล้เคียงด้วยป้อมปืนเลเซอร์อัตโนมัติสี่ป้อม unit.navanax.description = ยิงลูกระเบิดคลื่นชีพจรแม่เหล็กขนาดใหญ่ สร้างความเสียหายอย่างหนักให้กับเครือข่ายพลังงานศัตรู\nและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nหลอมละลายศัตรูที่อยู่ใกล้เคียงด้วยป้อมปืนเลเซอร์อัตโนมัติสี่ป้อม
lst.read = อ่านเลขจากเซลล์ความจำที่เชื่อมต่อไว้ lst.read = อ่านเลขจากเซลล์ความจำที่เชื่อมต่อไว้
@@ -1751,16 +1763,16 @@ radar.output = ตัวแปรของยูนิตที่มองห
unitradar.target = ตัวกรองในการหายูนิต unitradar.target = ตัวกรองในการหายูนิต
unitradar.and = ตัวกรองเพิ่มเติม unitradar.and = ตัวกรองเพิ่มเติม
unitradar.order = เรียงลำดับคำสั่ง\n0 เพื่อย้อนกลับ unitradar.order = เรียงลำดับคำสั่ง\n0 เพื่อเรียงย้อนกลับ
unitradar.sort = เมตริกเพื่อจัดเรียงผลลัพย์ตาม unitradar.sort = เมตริกเพื่อจัดเรียงผลลัพย์ตาม
unitradar.output = ตัวแปรของยูนิตที่มองหา unitradar.output = ตัวแปรของยูนิตที่มองหา
control.of = สิ่งก่อสร้างให้ควบคุม control.of = สิ่งก่อสร้างให้ควบคุม
control.unit = ยูนิต/สิ่งก่อสร้างที่จะเล็ง control.unit = ยูนิต/สิ่งก่อสร้างที่จะเล็ง
control.shoot = ว่าจะยิงหรือเปล่า control.shoot = ว่าจะยิงหรือไม่
unitlocate.enemy = ว่าจะหาสิ่งก่อสร้างศัตรูหรือไม่ unitlocate.enemy = ว่าจะหาสิ่งก่อสร้างศัตรูหรือไม่
unitlocate.found = ตัวแปรว่าหาเจอหรือไม่\nจะส่งกลับว่า true หากเจอสิ่งก่อสร้าง unitlocate.found = ตัวแปรว่าพบเจอหรือไม่\nจะส่งกลับว่า true หากเจอสิ่งก่อสร้าง
unitlocate.building = ตัวแปรสิ่งก่อสร้างที่มองหา unitlocate.building = ตัวแปรสิ่งก่อสร้างที่มองหา
unitlocate.outx = ตัวแปรพิกัด X unitlocate.outx = ตัวแปรพิกัด X
unitlocate.outy = ตัวแปรพิกัด Y unitlocate.outy = ตัวแปรพิกัด Y
@@ -1777,6 +1789,7 @@ lenum.itemdrop = ปล่อยไอเท็ม
lenum.itemtake = หยิบไอเท็มจากสิ่งก่อสร้าง lenum.itemtake = หยิบไอเท็มจากสิ่งก่อสร้าง
lenum.paydrop = ปล่อยสิ่งที่บรรทุกอยู่ lenum.paydrop = ปล่อยสิ่งที่บรรทุกอยู่
lenum.paytake = หยิบสิ่งบรรทุก ณ จุดที่อยู่ lenum.paytake = หยิบสิ่งบรรทุก ณ จุดที่อยู่
lenum.payenter = เข้าไป/ลงจอดบนบล็อกบรรทุก ณ จุดที่ยูนิตอยู่
lenum.flag = ปักธงยูนิตเป็นหมายเลข lenum.flag = ปักธงยูนิตเป็นหมายเลข
lenum.mine = ขุดที่ตำแหน่งเป้าหมาย lenum.mine = ขุดที่ตำแหน่งเป้าหมาย
lenum.build = สร้างสิ่งก่อสร้าง lenum.build = สร้างสิ่งก่อสร้าง

View File

@@ -360,3 +360,11 @@
63348=molten-slag|block-molten-slag-ui 63348=molten-slag|block-molten-slag-ui
63347=crater-stone|block-crater-stone-ui 63347=crater-stone|block-crater-stone-ui
63346=deep-tainted-water|block-deep-tainted-water-ui 63346=deep-tainted-water|block-deep-tainted-water-ui
63345=pooled-cryofluid|block-pooled-cryofluid-ui
63344=empty|block-empty-ui
63343=liquid-container|block-liquid-container-ui
63342=deconstructor|block-deconstructor-ui
63341=constructor|block-constructor-ui
63340=large-constructor|block-large-constructor-ui
63339=payload-loader|block-payload-loader-ui
63338=payload-unloader|block-payload-unloader-ui

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/boss1.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/boss2.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game1.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game2.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game3.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game4.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game5.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game6.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game7.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game8.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/game9.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/land.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
core/assets/music/menu.ogg Normal file

Binary file not shown.

View File

@@ -191,6 +191,7 @@ const PlayEvent = Packages.mindustry.game.EventType.PlayEvent
const DisposeEvent = Packages.mindustry.game.EventType.DisposeEvent const DisposeEvent = Packages.mindustry.game.EventType.DisposeEvent
const ServerLoadEvent = Packages.mindustry.game.EventType.ServerLoadEvent const ServerLoadEvent = Packages.mindustry.game.EventType.ServerLoadEvent
const ClientCreateEvent = Packages.mindustry.game.EventType.ClientCreateEvent const ClientCreateEvent = Packages.mindustry.game.EventType.ClientCreateEvent
const SaveWriteEvent = Packages.mindustry.game.EventType.SaveWriteEvent
const SaveLoadEvent = Packages.mindustry.game.EventType.SaveLoadEvent const SaveLoadEvent = Packages.mindustry.game.EventType.SaveLoadEvent
const MapPublishEvent = Packages.mindustry.game.EventType.MapPublishEvent const MapPublishEvent = Packages.mindustry.game.EventType.MapPublishEvent
const MapMakeEvent = Packages.mindustry.game.EventType.MapMakeEvent const MapMakeEvent = Packages.mindustry.game.EventType.MapMakeEvent

20
core/assets/shaders/clouds.vert Executable file
View File

@@ -0,0 +1,20 @@
attribute vec4 a_position;
attribute vec3 a_normal;
attribute vec4 a_color;
uniform mat4 u_proj;
uniform mat4 u_trans;
uniform vec3 u_lightdir;
uniform vec3 u_ambientColor;
uniform float u_alpha;
varying vec4 v_col;
const vec3 diffuse = vec3(0.01);
void main(){
vec3 norc = u_ambientColor * (diffuse + vec3(clamp((dot(a_normal, u_lightdir) + 1.0) / 2.0, 0.0, 1.0)));
v_col = a_color * vec4(norc, u_alpha);
gl_Position = u_proj * u_trans * a_position;
}

View File

@@ -0,0 +1,33 @@
#define HIGHP
//shades of cryofluid
#define S1 vec3(53.0, 83.0, 93.0) / 100.0
#define S2 vec3(68.0, 90.0, 97.0) / 100.0
#define NSCALE 100.0 / 2.0
uniform sampler2D u_texture;
uniform sampler2D u_noise;
uniform vec2 u_campos;
uniform vec2 u_resolution;
uniform float u_time;
varying vec2 v_texCoords;
void main(){
vec2 c = v_texCoords.xy;
vec2 coords = vec2(c.x * u_resolution.x + u_campos.x, c.y * u_resolution.y + u_campos.y);
float btime = u_time / 5000.0;
float wave = abs(sin(coords.x * 1.1 + coords.y) + 0.1 * sin(2.5 * coords.x) + 0.15 * sin(3.0 * coords.y)) / 30.0;
float noise = wave + (texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.2, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(btime * 1.1) * vec2(0.8, -1.0)).r) / 2.0;
vec4 color = texture2D(u_texture, c);
if(noise > 0.54 && noise < 0.57){
color.rgb = S2;
}else if (noise > 0.49 && noise < 0.62){
color.rgb = S1;
}
gl_FragColor = color;
}

View File

@@ -15,11 +15,16 @@ const float shinefalloff = 4.0;
const float shinelen = 0.2; const float shinelen = 0.2;
void main(){ void main(){
vec3 norc = u_ambientColor * (diffuse + vec3(clamp((dot(a_normal, u_lightdir) + 1.0) / 2.0, 0.0, 1.0))); vec3 specular = vec3(0.0, 0.0, 0.0);
float shinedot = max((-dot(u_camdir, a_normal) - (1.0 - shinelen)) / shinelen, 0.0);
float albedo = (1.0 - a_color.a) * pow(shinedot, shinefalloff);
vec4 baseCol = vec4(a_color.rgb, 1.0);
v_col = mix(baseCol * vec4(norc, 1.0), vec4(1.0), albedo * norc.r); vec3 lightReflect = normalize(reflect(a_normal, u_lightdir));
float specularFactor = dot(u_camdir, lightReflect);
if(specularFactor > 0.0){
specular = vec3(1.0 * pow(specularFactor, 64.0)) * (1.0-a_color.a); //specular power = 32
}
vec3 norc = (u_ambientColor + specular) * (diffuse + vec3(clamp((dot(a_normal, u_lightdir) + 1.0) / 2.0, 0.0, 1.0)));
v_col = vec4(a_color.rgb, 1.0) * vec4(norc, 1.0);
gl_Position = u_proj * u_trans * a_position; gl_Position = u_proj * u_trans * a_position;
} }

View File

@@ -18,7 +18,7 @@ void main(){
vec2 c = v_texCoords.xy; vec2 c = v_texCoords.xy;
vec2 coords = vec2(c.x * u_resolution.x + u_campos.x, c.y * u_resolution.y + u_campos.y); vec2 coords = vec2(c.x * u_resolution.x + u_campos.x, c.y * u_resolution.y + u_campos.y);
float btime = u_time / 4000.0; float btime = u_time / 5000.0;
float noise = (texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.9, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(btime * 1.1) * vec2(0.8, -1.0)).r) / 2.0; float noise = (texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.9, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(btime * 1.1) * vec2(0.8, -1.0)).r) / 2.0;
vec4 color = texture2D(u_texture, c); vec4 color = texture2D(u_texture, c);

View File

@@ -40,7 +40,7 @@ public class Vars implements Loadable{
public static boolean loadLocales = true; public static boolean loadLocales = true;
/** Whether the logger is loaded. */ /** Whether the logger is loaded. */
public static boolean loadedLogger = false, loadedFileLogger = false; public static boolean loadedLogger = false, loadedFileLogger = false;
/** Whether to enable various experimental features (e.g. cliffs) */ /** Whether to enable various experimental features (e.g. spawn positions for spawn groups) */
public static boolean experimental = false; public static boolean experimental = false;
/** Name of current Steam player. */ /** Name of current Steam player. */
public static String steamPlayerName = ""; public static String steamPlayerName = "";
@@ -132,6 +132,8 @@ public class Vars implements Loadable{
Color.valueOf("4b5ef1"), Color.valueOf("4b5ef1"),
Color.valueOf("2cabfe"), Color.valueOf("2cabfe"),
}; };
/** maximum TCP packet size */
public static final int maxTcpSize = 900;
/** default server port */ /** default server port */
public static final int port = 6567; public static final int port = 6567;
/** multicast discovery port.*/ /** multicast discovery port.*/
@@ -199,6 +201,8 @@ public class Vars implements Loadable{
public static final String saveExtension = "msav"; public static final String saveExtension = "msav";
/** schematic file extension */ /** schematic file extension */
public static final String schematicExtension = "msch"; public static final String schematicExtension = "msch";
/** path to the java executable */
public static String javaPath;
/** list of all locales that can be switched to */ /** list of all locales that can be switched to */
public static Locale[] locales; public static Locale[] locales;
@@ -293,6 +297,10 @@ public class Vars implements Loadable{
pathfinder = new Pathfinder(); pathfinder = new Pathfinder();
bases = new BaseRegistry(); bases = new BaseRegistry();
constants = new GlobalConstants(); constants = new GlobalConstants();
javaPath =
new Fi(OS.prop("java.home")).child("bin/java").exists() ? new Fi(OS.prop("java.home")).child("bin/java").absolutePath() :
Core.files.local("jre/bin/java").exists() ? Core.files.local("jre/bin/java").absolutePath() :
"java";
state = new GameState(); state = new GameState();
@@ -372,7 +380,7 @@ public class Vars implements Loadable{
log.log(level, text); log.log(level, text);
try{ try{
writer.write("[" + Character.toUpperCase(level.name().charAt(0)) +"] " + Log.removeColors(text) + "\n"); writer.write("[" + Character.toUpperCase(level.name().charAt(0)) + "] " + Log.removeColors(text) + "\n");
writer.flush(); writer.flush();
}catch(IOException e){ }catch(IOException e){
e.printStackTrace(); e.printStackTrace();

View File

@@ -6,6 +6,8 @@ import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.world.*; import mindustry.world.*;
import java.util.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class Astar{ public class Astar{
@@ -13,7 +15,7 @@ public class Astar{
private static final Seq<Tile> out = new Seq<>(); private static final Seq<Tile> out = new Seq<>();
private static final PQueue<Tile> queue = new PQueue<>(200 * 200 / 4, (a, b) -> 0); private static final PQueue<Tile> queue = new PQueue<>(200 * 200 / 4, (a, b) -> 0);
private static final IntFloatMap costs = new IntFloatMap(); private static float[] costs;
private static byte[][] rotations; private static byte[][] rotations;
public static Seq<Tile> pathfind(Tile from, Tile to, TileHueristic th, Boolf<Tile> passable){ public static Seq<Tile> pathfind(Tile from, Tile to, TileHueristic th, Boolf<Tile> passable){
@@ -32,9 +34,14 @@ public class Astar{
GridBits closed = new GridBits(tiles.width, tiles.height); GridBits closed = new GridBits(tiles.width, tiles.height);
costs.clear(); if(costs == null || costs.length != tiles.width * tiles.height){
costs = new float[tiles.width * tiles.height];
}
Arrays.fill(costs, 0);
queue.clear(); queue.clear();
queue.comparator = Structs.comparingFloat(a -> costs.get(a.pos(), 0f) + dh.cost(a.x, a.y, end.x, end.y)); queue.comparator = Structs.comparingFloat(a -> costs[a.array()] + dh.cost(a.x, a.y, end.x, end.y));
queue.add(start); queue.add(start);
if(rotations == null || rotations.length != world.width() || rotations[0].length != world.height()){ if(rotations == null || rotations.length != world.width() || rotations[0].length != world.height()){
rotations = new byte[world.width()][world.height()]; rotations = new byte[world.width()][world.height()];
@@ -43,7 +50,7 @@ public class Astar{
boolean found = false; boolean found = false;
while(!queue.empty()){ while(!queue.empty()){
Tile next = queue.poll(); Tile next = queue.poll();
float baseCost = costs.get(next.pos(), 0f); float baseCost = costs[next.array()];
if(next == end){ if(next == end){
found = true; found = true;
break; break;
@@ -58,7 +65,7 @@ public class Astar{
if(!closed.get(child.x, child.y)){ if(!closed.get(child.x, child.y)){
closed.set(child.x, child.y); closed.set(child.x, child.y);
rotations[child.x][child.y] = child.relativeTo(next.x, next.y); rotations[child.x][child.y] = child.relativeTo(next.x, next.y);
costs.put(child.pos(), newCost); costs[child.array()] = newCost;
queue.add(child); queue.add(child);
} }
} }

View File

@@ -13,6 +13,7 @@ import mindustry.game.EventType.*;
import mindustry.game.*; import mindustry.game.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.storage.*; import mindustry.world.blocks.storage.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
@@ -40,7 +41,7 @@ public class Pathfinder implements Runnable{
public static final Seq<PathCost> costTypes = Seq.with( public static final Seq<PathCost> costTypes = Seq.with(
//ground //ground
(team, tile) -> (PathTile.team(tile) == team.id || PathTile.team(tile) == 0) && PathTile.solid(tile) ? impassable : 1 + (team, tile) -> (PathTile.allDeep(tile) || (PathTile.team(tile) == team.id || PathTile.team(tile) == 0) && PathTile.solid(tile)) ? impassable : 1 +
PathTile.health(tile) * 5 + PathTile.health(tile) * 5 +
(PathTile.nearSolid(tile) ? 2 : 0) + (PathTile.nearSolid(tile) ? 2 : 0) +
(PathTile.nearLiquid(tile) ? 6 : 0) + (PathTile.nearLiquid(tile) ? 6 : 0) +
@@ -49,6 +50,7 @@ public class Pathfinder implements Runnable{
//legs //legs
(team, tile) -> PathTile.legSolid(tile) ? impassable : 1 + (team, tile) -> PathTile.legSolid(tile) ? impassable : 1 +
(PathTile.deep(tile) ? 6000 : 0) + //leg units can now drown
(PathTile.solid(tile) ? 5 : 0), (PathTile.solid(tile) ? 5 : 0),
//water //water
@@ -108,14 +110,16 @@ public class Pathfinder implements Runnable{
/** Packs a tile into its internal representation. */ /** Packs a tile into its internal representation. */
private int packTile(Tile tile){ private int packTile(Tile tile){
boolean nearLiquid = false, nearSolid = false, nearGround = false, solid = tile.solid(); boolean nearLiquid = false, nearSolid = false, nearGround = false, solid = tile.solid(), allDeep = tile.floor().isDeep();
for(int i = 0; i < 4; i++){ for(int i = 0; i < 4; i++){
Tile other = tile.nearby(i); Tile other = tile.nearby(i);
if(other != null){ if(other != null){
if(other.floor().isLiquid) nearLiquid = true; Floor floor = other.floor();
if(floor.isLiquid) nearLiquid = true;
if(other.solid()) nearSolid = true; if(other.solid()) nearSolid = true;
if(!other.floor().isLiquid) nearGround = true; if(!floor.isLiquid) nearGround = true;
if(!floor.isDeep()) allDeep = false;
} }
} }
@@ -131,7 +135,8 @@ public class Pathfinder implements Runnable{
nearGround, nearGround,
nearSolid, nearSolid,
tile.floor().isDeep(), tile.floor().isDeep(),
tile.floor().damageTaken > 0.00001f tile.floor().damageTaken > 0.00001f,
allDeep
); );
} }
@@ -494,5 +499,7 @@ public class Pathfinder implements Runnable{
boolean deep; boolean deep;
//whether the floor damages //whether the floor damages
boolean damages; boolean damages;
//whether all tiles nearby are deep
boolean allDeep;
} }
} }

View File

@@ -19,7 +19,7 @@ import mindustry.world.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class WaveSpawner{ public class WaveSpawner{
private static final float margin = 40f, coreMargin = tilesize * 2f, maxSteps = 30; private static final float margin = 0f, coreMargin = tilesize * 2f, maxSteps = 30;
private int tmpCount; private int tmpCount;
private Seq<Tile> spawns = new Seq<>(); private Seq<Tile> spawns = new Seq<>();
@@ -203,6 +203,7 @@ public class WaveSpawner{
unit.apply(StatusEffects.unmoving, 30f); unit.apply(StatusEffects.unmoving, 30f);
unit.apply(StatusEffects.invincible, 60f); unit.apply(StatusEffects.invincible, 60f);
unit.add(); unit.add();
unit.unloaded();
Events.fire(new UnitSpawnEvent(unit)); Events.fire(new UnitSpawnEvent(unit));
Call.spawnEffect(unit.x, unit.y, unit.rotation, unit.type); Call.spawnEffect(unit.x, unit.y, unit.rotation, unit.type);

View File

@@ -68,7 +68,7 @@ public class BuilderAI extends AIController{
//approach request if building //approach request if building
BuildPlan req = unit.buildPlan(); BuildPlan req = unit.buildPlan();
//clear break plan if another player is breaking something. //clear break plan if another player is breaking something
if(!req.breaking && timer.get(timerTarget2, 40f)){ if(!req.breaking && timer.get(timerTarget2, 40f)){
for(Player player : Groups.player){ for(Player player : Groups.player){
if(player.isBuilder() && player.unit().activelyBuilding() && player.unit().buildPlan().samePos(req) && player.unit().buildPlan().breaking){ if(player.isBuilder() && player.unit().activelyBuilding() && player.unit().buildPlan().samePos(req) && player.unit().buildPlan().breaking){
@@ -131,16 +131,15 @@ public class BuilderAI extends AIController{
//check if it's already been placed //check if it's already been placed
if(world.tile(block.x, block.y) != null && world.tile(block.x, block.y).block().id == block.block){ if(world.tile(block.x, block.y) != null && world.tile(block.x, block.y).block().id == block.block){
blocks.removeFirst(); blocks.removeFirst();
}else if(Build.validPlace(content.block(block.block), unit.team(), block.x, block.y, block.rotation)){ //it's valid. }else if(Build.validPlace(content.block(block.block), unit.team(), block.x, block.y, block.rotation)){ //it's valid
lastPlan = block; lastPlan = block;
//add build request. //add build request
unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config)); unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config));
//shift build plan to tail so next unit builds something else. //shift build plan to tail so next unit builds something else
blocks.addLast(blocks.removeFirst()); blocks.addLast(blocks.removeFirst());
}else{ }else{
//shift head of queue to tail, try something else next time //shift head of queue to tail, try something else next time
blocks.removeFirst(); blocks.addLast(blocks.removeFirst());
blocks.addLast(block);
} }
} }
} }

View File

@@ -76,6 +76,8 @@ public class SoundControl{
sound.setBus(uiBus); sound.setBus(uiBus);
} }
} }
Events.fire(new MusicRegisterEvent());
} }
public void loop(Sound sound, float volume){ public void loop(Sound sound, float volume){

View File

@@ -35,7 +35,7 @@ public class Blocks implements ContentList{
public static Block public static Block
//environment //environment
air, spawn, cliff, deepwater, water, taintedWater, deepTaintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space, air, spawn, cliff, deepwater, water, taintedWater, deepTaintedWater, tar, slag, cryofluid, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space, empty,
dacite, dacite,
stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster,
iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, grass, salt, iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, grass, salt,
@@ -64,7 +64,7 @@ public class Blocks implements ContentList{
duct, ductRouter, ductBridge, duct, ductRouter, ductBridge,
//liquid //liquid
mechanicalPump, rotaryPump, thermalPump, conduit, pulseConduit, platedConduit, liquidRouter, liquidTank, liquidJunction, bridgeConduit, phaseConduit, mechanicalPump, rotaryPump, thermalPump, conduit, pulseConduit, platedConduit, liquidRouter, liquidContainer, liquidTank, liquidJunction, bridgeConduit, phaseConduit,
//power //power
combustionGenerator, thermalGenerator, steamGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor, combustionGenerator, thermalGenerator, steamGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor,
@@ -86,18 +86,19 @@ public class Blocks implements ContentList{
repairPoint, repairTurret, repairPoint, repairTurret,
//payloads //payloads
payloadConveyor, payloadRouter, payloadPropulsionTower, payloadConveyor, payloadRouter, payloadPropulsionTower, deconstructor, constructor, largeConstructor, payloadLoader, payloadUnloader,
//logic //logic
message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank, message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank,
//campaign //campaign
launchPad, interplanetaryAccelerator, launchPad, interplanetaryAccelerator
//misc experimental
blockForge, blockLoader, blockUnloader
; ;
/** @deprecated use the blocks with proper names, */
@Deprecated
public static Block blockForge, blockLoader, blockUnloader;
@Override @Override
public void load(){ public void load(){
//region environment //region environment
@@ -125,9 +126,9 @@ public class Blocks implements ContentList{
isLiquid = true; isLiquid = true;
status = StatusEffects.wet; status = StatusEffects.wet;
statusDuration = 120f; statusDuration = 120f;
drownTime = 140f; drownTime = 200f;
cacheLayer = CacheLayer.water; cacheLayer = CacheLayer.water;
albedo = 0.5f; albedo = 0.9f;
}}; }};
water = new Floor("shallow-water"){{ water = new Floor("shallow-water"){{
@@ -138,7 +139,7 @@ public class Blocks implements ContentList{
liquidDrop = Liquids.water; liquidDrop = Liquids.water;
isLiquid = true; isLiquid = true;
cacheLayer = CacheLayer.water; cacheLayer = CacheLayer.water;
albedo = 0.5f; albedo = 0.9f;
}}; }};
taintedWater = new Floor("tainted-water"){{ taintedWater = new Floor("tainted-water"){{
@@ -149,7 +150,7 @@ public class Blocks implements ContentList{
liquidDrop = Liquids.water; liquidDrop = Liquids.water;
isLiquid = true; isLiquid = true;
cacheLayer = CacheLayer.water; cacheLayer = CacheLayer.water;
albedo = 0.5f; albedo = 0.9f;
attributes.set(Attribute.spores, 0.15f); attributes.set(Attribute.spores, 0.15f);
}}; }};
@@ -158,35 +159,35 @@ public class Blocks implements ContentList{
variants = 0; variants = 0;
status = StatusEffects.wet; status = StatusEffects.wet;
statusDuration = 140f; statusDuration = 140f;
drownTime = 120f; drownTime = 200f;
liquidDrop = Liquids.water; liquidDrop = Liquids.water;
isLiquid = true; isLiquid = true;
cacheLayer = CacheLayer.water; cacheLayer = CacheLayer.water;
albedo = 0.5f; albedo = 0.9f;
attributes.set(Attribute.spores, 0.15f); attributes.set(Attribute.spores, 0.15f);
}}; }};
darksandTaintedWater = new ShallowLiquid("darksand-tainted-water"){{ darksandTaintedWater = new ShallowLiquid("darksand-tainted-water"){{
speedMultiplier = 0.75f; speedMultiplier = 0.75f;
statusDuration = 60f; statusDuration = 60f;
albedo = 0.5f; albedo = 0.9f;
attributes.set(Attribute.spores, 0.1f); attributes.set(Attribute.spores, 0.1f);
}}; }};
sandWater = new ShallowLiquid("sand-water"){{ sandWater = new ShallowLiquid("sand-water"){{
speedMultiplier = 0.8f; speedMultiplier = 0.8f;
statusDuration = 50f; statusDuration = 50f;
albedo = 0.5f; albedo = 0.9f;
}}; }};
darksandWater = new ShallowLiquid("darksand-water"){{ darksandWater = new ShallowLiquid("darksand-water"){{
speedMultiplier = 0.8f; speedMultiplier = 0.8f;
statusDuration = 50f; statusDuration = 50f;
albedo = 0.5f; albedo = 0.9f;
}}; }};
tar = new Floor("tar"){{ tar = new Floor("tar"){{
drownTime = 150f; drownTime = 230f;
status = StatusEffects.tarred; status = StatusEffects.tarred;
statusDuration = 240f; statusDuration = 240f;
speedMultiplier = 0.19f; speedMultiplier = 0.19f;
@@ -196,8 +197,24 @@ public class Blocks implements ContentList{
cacheLayer = CacheLayer.tar; cacheLayer = CacheLayer.tar;
}}; }};
slag = new Floor("molten-slag"){{ cryofluid = new Floor("pooled-cryofluid"){{
drownTime = 150f; drownTime = 150f;
status = StatusEffects.freezing;
statusDuration = 240f;
speedMultiplier = 0.5f;
variants = 0;
liquidDrop = Liquids.cryofluid;
liquidMultiplier = 0.5f;
isLiquid = true;
cacheLayer = CacheLayer.cryofluid;
emitLight = true;
lightRadius = 25f;
lightColor = Color.cyan.cpy().a(0.19f);
}};
slag = new Floor("molten-slag"){{
drownTime = 230f;
status = StatusEffects.melting; status = StatusEffects.melting;
statusDuration = 240f; statusDuration = 240f;
speedMultiplier = 0.19f; speedMultiplier = 0.19f;
@@ -217,8 +234,11 @@ public class Blocks implements ContentList{
placeableOn = false; placeableOn = false;
solid = true; solid = true;
variants = 0; variants = 0;
canShadow = false;
}}; }};
empty = new EmptyFloor("empty");
stone = new Floor("stone"); stone = new Floor("stone");
craters = new Floor("crater-stone"){{ craters = new Floor("crater-stone"){{
@@ -275,7 +295,6 @@ public class Blocks implements ContentList{
statusDuration = 30f; statusDuration = 30f;
attributes.set(Attribute.water, 1f); attributes.set(Attribute.water, 1f);
cacheLayer = CacheLayer.mud; cacheLayer = CacheLayer.mud;
albedo = 0.35f;
walkSound = Sounds.mud; walkSound = Sounds.mud;
walkSoundVolume = 0.08f; walkSoundVolume = 0.08f;
walkSoundPitchMin = 0.4f; walkSoundPitchMin = 0.4f;
@@ -300,18 +319,21 @@ public class Blocks implements ContentList{
snow = new Floor("snow"){{ snow = new Floor("snow"){{
attributes.set(Attribute.water, 0.2f); attributes.set(Attribute.water, 0.2f);
albedo = 0.7f;
}}; }};
ice = new Floor("ice"){{ ice = new Floor("ice"){{
dragMultiplier = 0.35f; dragMultiplier = 0.35f;
speedMultiplier = 0.9f; speedMultiplier = 0.9f;
attributes.set(Attribute.water, 0.4f); attributes.set(Attribute.water, 0.4f);
albedo = 0.65f;
}}; }};
iceSnow = new Floor("ice-snow"){{ iceSnow = new Floor("ice-snow"){{
dragMultiplier = 0.6f; dragMultiplier = 0.6f;
variants = 3; variants = 3;
attributes.set(Attribute.water, 0.3f); attributes.set(Attribute.water, 0.3f);
albedo = 0.6f;
}}; }};
shale = new Floor("shale"){{ shale = new Floor("shale"){{
@@ -319,34 +341,36 @@ public class Blocks implements ContentList{
attributes.set(Attribute.oil, 1.6f); attributes.set(Attribute.oil, 1.6f);
}}; }};
moss = new Floor("moss"){{
variants = 3;
attributes.set(Attribute.spores, 0.15f);
}};
sporeMoss = new Floor("spore-moss"){{
variants = 3;
attributes.set(Attribute.spores, 0.3f);
}};
stoneWall = new StaticWall("stone-wall"){{ stoneWall = new StaticWall("stone-wall"){{
variants = 2; variants = 2;
}}; }};
sporeWall = new StaticWall("spore-wall"){{ sporeWall = new StaticWall("spore-wall"){{
variants = 2; taintedWater.asFloor().wall = deepTaintedWater.asFloor().wall = sporeMoss.asFloor().wall = this;
taintedWater.asFloor().wall = deepTaintedWater.asFloor().wall = this;
}}; }};
dirtWall = new StaticWall("dirt-wall"){{ dirtWall = new StaticWall("dirt-wall");
variants = 2;
}};
daciteWall = new StaticWall("dacite-wall"){{ daciteWall = new StaticWall("dacite-wall");
variants = 2;
}};
iceWall = new StaticWall("ice-wall"){{ iceWall = new StaticWall("ice-wall"){{
variants = 2;
iceSnow.asFloor().wall = this; iceSnow.asFloor().wall = this;
albedo = 0.6f;
}}; }};
snowWall = new StaticWall("snow-wall"){{ snowWall = new StaticWall("snow-wall");
variants = 2;
}};
duneWall = new StaticWall("dune-wall"){{ duneWall = new StaticWall("dune-wall"){{
variants = 2;
basalt.asFloor().wall = darksandWater.asFloor().wall = darksandTaintedWater.asFloor().wall = this; basalt.asFloor().wall = darksandWater.asFloor().wall = darksandTaintedWater.asFloor().wall = this;
}}; }};
@@ -359,21 +383,15 @@ public class Blocks implements ContentList{
shrubs = new StaticWall("shrubs"); shrubs = new StaticWall("shrubs");
shaleWall = new StaticWall("shale-wall"){{ shaleWall = new StaticWall("shale-wall");
variants = 2;
}};
sporePine = new StaticTree("spore-pine"){{ sporePine = new StaticTree("spore-pine"){{
variants = 0; moss.asFloor().wall = this;
}}; }};
snowPine = new StaticTree("snow-pine"){{ snowPine = new StaticTree("snow-pine");
variants = 0;
}};
pine = new StaticTree("pine"){{ pine = new StaticTree("pine");
variants = 0;
}};
whiteTreeDead = new TreeBlock("white-tree-dead"); whiteTreeDead = new TreeBlock("white-tree-dead");
@@ -386,7 +404,7 @@ public class Blocks implements ContentList{
boulder = new Prop("boulder"){{ boulder = new Prop("boulder"){{
variants = 2; variants = 2;
stone.asFloor().decoration = this; stone.asFloor().decoration = craters.asFloor().decoration = charr.asFloor().decoration = this;
}}; }};
snowBoulder = new Prop("snow-boulder"){{ snowBoulder = new Prop("snow-boulder"){{
@@ -396,30 +414,22 @@ public class Blocks implements ContentList{
shaleBoulder = new Prop("shale-boulder"){{ shaleBoulder = new Prop("shale-boulder"){{
variants = 2; variants = 2;
shale.asFloor().decoration = this;
}}; }};
sandBoulder = new Prop("sand-boulder"){{ sandBoulder = new Prop("sand-boulder"){{
variants = 2; variants = 2;
sand.asFloor().decoration = this;
}}; }};
daciteBoulder = new Prop("dacite-boulder"){{ daciteBoulder = new Prop("dacite-boulder"){{
variants = 2; variants = 2;
dacite.asFloor().decoration = this;
}}; }};
basaltBoulder = new Prop("basalt-boulder"){{ basaltBoulder = new Prop("basalt-boulder"){{
variants = 2; variants = 2;
}}; basalt.asFloor().decoration = hotrock.asFloor().decoration = darksand.asFloor().decoration = magmarock.asFloor().decoration = this;
moss = new Floor("moss"){{
variants = 3;
attributes.set(Attribute.spores, 0.15f);
wall = sporePine;
}};
sporeMoss = new Floor("spore-moss"){{
variants = 3;
attributes.set(Attribute.spores, 0.3f);
wall = sporeWall;
}}; }};
metalFloor = new Floor("metal-floor", 0); metalFloor = new Floor("metal-floor", 0);
@@ -872,6 +882,7 @@ public class Blocks implements ContentList{
}}; }};
thruster = new Thruster("thruster"){{ thruster = new Thruster("thruster"){{
requirements(Category.defense, BuildVisibility.sandboxOnly, with(Items.scrap, 96));
health = 55 * 16 * wallHealthMultiplier; health = 55 * 16 * wallHealthMultiplier;
size = 4; size = 4;
}}; }};
@@ -1111,10 +1122,16 @@ public class Blocks implements ContentList{
liquidCapacity = 20f; liquidCapacity = 20f;
}}; }};
liquidContainer = new LiquidRouter("liquid-container"){{
requirements(Category.liquid, with(Items.titanium, 10, Items.metaglass, 15));
liquidCapacity = 700f;
size = 2;
}};
liquidTank = new LiquidRouter("liquid-tank"){{ liquidTank = new LiquidRouter("liquid-tank"){{
requirements(Category.liquid, with(Items.titanium, 25, Items.metaglass, 25)); requirements(Category.liquid, with(Items.titanium, 30, Items.metaglass, 40));
size = 3; size = 3;
liquidCapacity = 1500f; liquidCapacity = 1800f;
health = 500; health = 500;
}}; }};
@@ -1656,6 +1673,7 @@ public class Blocks implements ContentList{
recoilAmount = 3f; recoilAmount = 3f;
shootShake = 1f; shootShake = 1f;
burstSpacing = 3f; burstSpacing = 3f;
spread = 0f;
shots = 4; shots = 4;
ammoUseEffect = Fx.casing2; ammoUseEffect = Fx.casing2;
health = 240 * size * size; health = 240 * size * size;
@@ -1879,6 +1897,7 @@ public class Blocks implements ContentList{
length = 200f; length = 200f;
hitEffect = Fx.hitMeltdown; hitEffect = Fx.hitMeltdown;
hitColor = Pal.meltdownHit; hitColor = Pal.meltdownHit;
status = StatusEffects.melting;
drawSize = 420f; drawSize = 420f;
incendChance = 0.4f; incendChance = 0.4f;
@@ -2062,6 +2081,50 @@ public class Blocks implements ContentList{
consumes.power(6f); consumes.power(6f);
}}; }};
deconstructor = new PayloadDeconstructor("deconstructor"){{
requirements(Category.units, with(Items.thorium, 250, Items.silicon, 200, Items.graphite, 250));
itemCapacity = 250;
consumes.power(3f);
size = 5;
deconstructSpeed = 2f;
}};
constructor = new Constructor("constructor"){{
requirements(Category.units, with(Items.silicon, 50, Items.thorium, 70, Items.graphite, 50));
hasPower = true;
consumes.power(2f);
size = 3;
}};
//yes this block is pretty much useless
largeConstructor = new Constructor("large-constructor"){{
requirements(Category.units, with(Items.silicon, 100, Items.thorium, 150, Items.graphite, 50, Items.phaseFabric, 40));
hasPower = true;
consumes.power(2f);
maxBlockSize = 4;
minBlockSize = 3;
size = 5;
}};
payloadLoader = new PayloadLoader("payload-loader"){{
requirements(Category.units, with(Items.graphite, 50, Items.silicon, 50, Items.copper, 100));
hasPower = true;
consumes.power(2f);
size = 3;
}};
payloadUnloader = new PayloadUnloader("payload-unloader"){{
requirements(Category.units, with(Items.graphite, 50, Items.silicon, 50, Items.copper, 100));
hasPower = true;
consumes.power(2f);
size = 3;
}};
//deprecated, will be removed.
blockForge = constructor;
blockLoader = payloadLoader;
blockUnloader = payloadUnloader;
//endregion //endregion
//region sandbox //region sandbox
@@ -2224,30 +2287,6 @@ public class Blocks implements ContentList{
size = 6; size = 6;
}}; }};
//endregion
//region experimental
blockForge = new BlockForge("block-forge"){{
requirements(Category.units, BuildVisibility.debugOnly, with(Items.thorium, 100));
hasPower = true;
consumes.power(2f);
size = 3;
}};
blockLoader = new BlockLoader("block-loader"){{
requirements(Category.units, BuildVisibility.debugOnly, with(Items.thorium, 100));
hasPower = true;
consumes.power(2f);
size = 3;
}};
blockUnloader = new BlockUnloader("block-unloader"){{
requirements(Category.units, BuildVisibility.debugOnly, with(Items.thorium, 100));
hasPower = true;
consumes.power(2f);
size = 3;
}};
//endregion //endregion
} }
} }

View File

@@ -12,6 +12,7 @@ import mindustry.game.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.world.Block;
import static arc.graphics.g2d.Draw.rect; import static arc.graphics.g2d.Draw.rect;
import static arc.graphics.g2d.Draw.*; import static arc.graphics.g2d.Draw.*;
@@ -27,6 +28,17 @@ public class Fx{
none = new Effect(0, 0f, e -> {}), none = new Effect(0, 0f, e -> {}),
blockCrash = new Effect(100f, e -> {
if(!(e.data instanceof Block block)) return;
alpha(e.fin() + 0.5f);
float offset = Mathf.lerp(0f, 200f, e.fout());
color(0f, 0f, 0f, 0.44f);
rect(block.fullIcon, e.x - offset * 4f, e.y, (float)block.size * 8f, (float)block.size * 8f);
color(Color.white);
rect(block.fullIcon, e.x + offset, e.y + offset * 5f, (float)block.size * 8f, (float)block.size * 8f);
}),
trailFade = new Effect(400f, e -> { trailFade = new Effect(400f, e -> {
if(!(e.data instanceof Trail trail)) return; if(!(e.data instanceof Trail trail)) return;
//lifetime is how many frames it takes to fade out the trail //lifetime is how many frames it takes to fade out the trail
@@ -67,9 +79,8 @@ public class Fx{
}), }),
unitControl = new Effect(30f, e -> { unitControl = new Effect(30f, e -> {
if(!(e.data instanceof Unit)) return; if(!(e.data instanceof Unit select)) return;
Unit select = e.data();
boolean block = select instanceof BlockUnitc; boolean block = select instanceof BlockUnitc;
mixcol(Pal.accent, 1f); mixcol(Pal.accent, 1f);
@@ -84,9 +95,8 @@ public class Fx{
}), }),
unitDespawn = new Effect(100f, e -> { unitDespawn = new Effect(100f, e -> {
if(!(e.data instanceof Unit) || e.<Unit>data().type == null) return; if(!(e.data instanceof Unit select) || select.type == null) return;
Unit select = e.data();
float scl = e.fout(Interp.pow2Out); float scl = e.fout(Interp.pow2Out);
float p = Draw.scl; float p = Draw.scl;
Draw.scl *= scl; Draw.scl *= scl;
@@ -99,8 +109,7 @@ public class Fx{
}), }),
unitSpirit = new Effect(17f, e -> { unitSpirit = new Effect(17f, e -> {
if(!(e.data instanceof Position)) return; if(!(e.data instanceof Position to)) return;
Position to = e.data();
color(Pal.accent); color(Pal.accent);
@@ -118,8 +127,7 @@ public class Fx{
}), }),
itemTransfer = new Effect(12f, e -> { itemTransfer = new Effect(12f, e -> {
if(!(e.data instanceof Position)) return; if(!(e.data instanceof Position to)) return;
Position to = e.data();
Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interp.pow3) Tmp.v1.set(e.x, e.y).interpolate(Tmp.v2.set(to), e.fin(), Interp.pow3)
.add(Tmp.v2.sub(e.x, e.y).nor().rotate90(1).scl(Mathf.randomSeedRange(e.id, 1f) * e.fslope() * 10f)); .add(Tmp.v2.sub(e.x, e.y).nor().rotate90(1).scl(Mathf.randomSeedRange(e.id, 1f) * e.fslope() * 10f));
float x = Tmp.v1.x, y = Tmp.v1.y; float x = Tmp.v1.x, y = Tmp.v1.y;
@@ -133,9 +141,7 @@ public class Fx{
}), }),
pointBeam = new Effect(25f, 300f, e -> { pointBeam = new Effect(25f, 300f, e -> {
if(!(e.data instanceof Position)) return; if(!(e.data instanceof Position pos)) return;
Position pos = e.data();
Draw.color(e.color, e.fout()); Draw.color(e.color, e.fout());
Lines.stroke(1.5f); Lines.stroke(1.5f);
@@ -229,11 +235,10 @@ public class Fx{
}), }),
unitWreck = new Effect(200f, e -> { unitWreck = new Effect(200f, e -> {
if(!(e.data instanceof TextureRegion)) return; if(!(e.data instanceof TextureRegion reg)) return;
Draw.mixcol(Pal.rubble, 1f); Draw.mixcol(Pal.rubble, 1f);
TextureRegion reg = e.data();
float vel = e.fin(Interp.pow5Out) * 2f * Mathf.randomSeed(e.id, 1f); float vel = e.fin(Interp.pow5Out) * 2f * Mathf.randomSeed(e.id, 1f);
float totalRot = Mathf.randomSeed(e.id + 1, 10f); float totalRot = Mathf.randomSeed(e.id + 1, 10f);
Tmp.v1.trns(Mathf.randomSeed(e.id + 2, 360f), vel); Tmp.v1.trns(Mathf.randomSeed(e.id + 2, 360f), vel);
@@ -362,13 +367,13 @@ public class Fx{
Fill.circle(e.x, e.y, e.fin() * 10); Fill.circle(e.x, e.y, e.fin() * 10);
Drawf.light(e.x, e.y, e.fin() * 20f, Pal.heal, 0.7f); Drawf.light(e.x, e.y, e.fin() * 20f, Pal.heal, 0.7f);
}), }).followParent(true).rotWithParent(true),
greenLaserChargeSmall = new Effect(40f, 100f, e -> { greenLaserChargeSmall = new Effect(40f, 100f, e -> {
color(Pal.heal); color(Pal.heal);
stroke(e.fin() * 2f); stroke(e.fin() * 2f);
Lines.circle(e.x, e.y, e.fout() * 50f); Lines.circle(e.x, e.y, e.fout() * 50f);
}), }).followParent(true).rotWithParent(true),
greenCloud = new Effect(80f, e -> { greenCloud = new Effect(80f, e -> {
color(Pal.heal); color(Pal.heal);
@@ -455,7 +460,7 @@ public class Fx{
color(Pal.lightFlame, Pal.darkFlame, e.fin()); color(Pal.lightFlame, Pal.darkFlame, e.fin());
stroke(0.5f + e.fout()); stroke(0.5f + e.fout());
randLenVectors(e.id, 2, e.fin() * 15f, e.rotation, 50f, (x, y) -> { randLenVectors(e.id, 2, 1f + e.fin() * 15f, e.rotation, 50f, (x, y) -> {
float ang = Mathf.angle(x, y); float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f); lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
}); });
@@ -465,7 +470,7 @@ public class Fx{
color(Color.white, Pal.heal, e.fin()); color(Color.white, Pal.heal, e.fin());
stroke(0.5f + e.fout()); stroke(0.5f + e.fout());
randLenVectors(e.id, 2, e.fin() * 15f, e.rotation, 50f, (x, y) -> { randLenVectors(e.id, 2, 1f + e.fin() * 15f, e.rotation, 50f, (x, y) -> {
float ang = Mathf.angle(x, y); float ang = Mathf.angle(x, y);
lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f); lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
}); });
@@ -474,7 +479,7 @@ public class Fx{
hitLiquid = new Effect(16, e -> { hitLiquid = new Effect(16, e -> {
color(e.color); color(e.color);
randLenVectors(e.id, 5, e.fin() * 15f, e.rotation, 60f, (x, y) -> { randLenVectors(e.id, 5, 1f + e.fin() * 15f, e.rotation, 60f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, e.fout() * 2f); Fill.circle(e.x + x, e.y + y, e.fout() * 2f);
}); });
}), }),
@@ -1878,7 +1883,7 @@ public class Fx{
color(e.color); color(e.color);
stroke(3f * e.fout()); stroke(3f * e.fout());
Lines.poly(e.x, e.y, 6, e.rotation + e.fin()); Lines.poly(e.x, e.y, 6, e.rotation + e.fin());
}), }).followParent(true),
coreLandDust = new Effect(100f, e -> { coreLandDust = new Effect(100f, e -> {
color(e.color, e.fout(0.1f)); color(e.color, e.fout(0.1f));
@@ -1888,9 +1893,7 @@ public class Fx{
}).layer(Layer.groundUnit + 1f), }).layer(Layer.groundUnit + 1f),
unitShieldBreak = new Effect(35, e -> { unitShieldBreak = new Effect(35, e -> {
if(!(e.data instanceof Unitc)) return; if(!(e.data instanceof Unit unit)) return;
Unit unit = e.data();
float radius = unit.hitSize() * 1.3f; float radius = unit.hitSize() * 1.3f;
@@ -1943,7 +1946,7 @@ public class Fx{
} }
Lines.endLine(); Lines.endLine();
}).followParent(false), }).followParent(false).rotWithParent(false),
chainEmp = new Effect(30f, 300f, e -> { chainEmp = new Effect(30f, 300f, e -> {
if(!(e.data instanceof Position p)) return; if(!(e.data instanceof Position p)) return;
@@ -1980,5 +1983,5 @@ public class Fx{
} }
Lines.endLine(); Lines.endLine();
}).followParent(false); }).followParent(false).rotWithParent(false);
} }

View File

@@ -14,7 +14,7 @@ public class Planets implements ContentList{
@Override @Override
public void load(){ public void load(){
sun = new Planet("sun", null, 0, 2){{ sun = new Planet("sun", null, 4f){{
bloom = true; bloom = true;
accessible = false; accessible = false;
@@ -31,9 +31,13 @@ public class Planets implements ContentList{
); );
}}; }};
serpulo = new Planet("serpulo", sun, 3, 1){{ serpulo = new Planet("serpulo", sun, 1f, 3){{
generator = new SerpuloPlanetGenerator(); generator = new SerpuloPlanetGenerator();
meshLoader = () -> new HexMesh(this, 6); meshLoader = () -> new HexMesh(this, 6);
cloudMeshLoader = () -> new MultiMesh(
new HexSkyMesh(this, 11, 0.15f, 0.13f, 5, new Color().set(Pal.spore).mul(0.9f).a(0.75f), 2, 0.45f, 0.9f, 0.38f),
new HexSkyMesh(this, 1, 0.6f, 0.16f, 5, Color.white.cpy().lerp(Pal.spore, 0.55f).a(0.75f), 2, 0.45f, 1f, 0.41f)
);
atmosphereColor = Color.valueOf("3c1b8f"); atmosphereColor = Color.valueOf("3c1b8f");
atmosphereRadIn = 0.02f; atmosphereRadIn = 0.02f;
atmosphereRadOut = 0.3f; atmosphereRadOut = 0.3f;

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