Compare commits

..

99 Commits
v77 ... v79

Author SHA1 Message Date
Anuken
0be674d7af Changed back overflow gate speed 2019-06-08 10:48:32 -04:00
Anuken
e6499f7e5a Bugfixes 2019-06-08 10:41:22 -04:00
Anuken
10bd1d1969 Fixed #509 2019-06-08 10:05:08 -04:00
Anuken
ec94267b8e Update ServerControl.java 2019-06-08 09:23:15 -04:00
Anuken
d3ad113bf5 Update ServerControl.java
;
2019-06-08 09:18:39 -04:00
Anuken
8d7242a1ef Update ServerControl.java 2019-06-08 09:08:49 -04:00
Anuken
13879dd374 Fixed #513 2019-06-07 18:58:07 -04:00
Anuken
0f519fd358 Bugfixes for 78.1 2019-06-07 17:34:46 -04:00
Anuken
e7fb128499 Fixed sorter loading 2019-06-07 16:13:48 -04:00
Anuken
c2d619cb7f Save IO fixes 2019-06-07 16:06:23 -04:00
Anuken
78176cca90 unused -> unchecked 2019-06-07 15:06:17 -04:00
Anuken
dbc49649c0 Merge remote-tracking branch 'origin/master' 2019-06-07 15:04:43 -04:00
Anuken
49ee821029 More stuff fixed / Contributor list 2019-06-07 15:03:01 -04:00
Anuken
e1499330bc Merge pull request #508 from VizardAlpha/patch-21
Updates bundle_fr_BE.properties
2019-06-07 14:19:21 -04:00
Anuken
222175e005 Merge pull request #497 from ZacBytes/patch-5
Update bundle_zh_CN.properties
2019-06-07 14:18:40 -04:00
Anuken
388927715e Merge branch 'master' into patch-5 2019-06-07 14:18:33 -04:00
Anuken
ac9e1febfb Merge pull request #492 from MrPickles14/patch-2
Update bundle_fr.properties
2019-06-07 14:16:08 -04:00
Anuken
e47836cc64 Merge branch 'master' into patch-2 2019-06-07 14:16:00 -04:00
Anuken
f8f48f1c88 Merge pull request #491 from MrPickles14/patch-1
Update bundle_fr.properties
2019-06-07 14:14:29 -04:00
Anuken
95e8a603a5 Merge pull request #489 from Kieaer/patch-5
bundle_ko
2019-06-07 14:14:03 -04:00
Anuken
c400fd88f3 Merge pull request #487 from beito123/master
Update Japanese translations
2019-06-07 14:13:06 -04:00
Anuken
095d90fd22 Merge pull request #484 from Deyvid67/patch-2
Update bundle_pt_BR.properties
2019-06-07 14:11:47 -04:00
Anuken
797be92ddd Merge pull request #482 from laohuaji233/patch-7
Update bundle_zh_CN.properties
2019-06-07 14:11:32 -04:00
Anuken
7f23bd694c Merge pull request #480 from Prosta4okua/patch-1
Update bundle_uk_UA.properties
2019-06-07 14:11:15 -04:00
Anuken
1cbf8b960a Added clarifying mode descriptions 2019-06-07 14:10:23 -04:00
Anuken
c8ce195522 Reverted buffers / Added Dexapnow's fixed zone maps [untested] 2019-06-07 14:07:32 -04:00
Anuken
4458ae042e hhh 2019-06-07 11:18:06 -04:00
Anuken
1c3d7c1c73 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-06-07 10:25:14 -04:00
Anuken
dd05f5278c Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-06-06 12:05:46 -04:00
VizardAlpha
328cdac60f Update bundle_fr_BE.properties 2019-06-06 15:38:24 +02:00
키에르
3ad9e44891 Update bundle_ko.properties 2019-06-05 23:05:01 +09:00
VizardAlpha
9039d52817 Updates bundle_fr_BE.properties 2019-06-01 23:12:52 +02:00
Prosta4okua
cdb3d29767 Update bundle_uk_UA.properties 2019-05-30 09:56:57 +03:00
Prosta4okua
90fe5329e3 Update bundle_uk_UA.properties 2019-05-30 09:53:37 +03:00
Prosta4okua
22e20cb2da Update bundle_ru.properties 2019-05-30 09:51:54 +03:00
Anuken
72638fc215 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-05-21 13:19:27 -04:00
Zachary
65418529cd Update bundle_zh_CN.properties
Skrttt Skrrtt Vroom Vroom

Translated some new stuff
2019-05-21 23:00:01 +08:00
Prosta4ok_ua
ceea0d1730 Hmmmm
Hmmmm
2019-05-20 21:25:16 +03:00
키에르
764ea699b1 Update bundle_ko.properties 2019-05-20 13:14:59 +09:00
Prosta4ok_ua
1687ce3182 Added new translations 2019-05-14 23:59:24 +03:00
키에르
cee55afa5c Update bundle_ko.properties 2019-05-12 15:46:03 +09:00
키에르
f998bbbe4c Update bundle_ko.properties 2019-05-12 14:45:25 +09:00
MrPickles14
08edce7906 Update core/assets/bundles/bundle_fr.properties
Co-Authored-By: Math2128 <math2128@gmail.com>
2019-05-10 14:32:24 -04:00
MrPickles14
55eb493d1f Update bundle_fr.properties
J'ai changé 2 ou 3 trucs et ajouté des traductions qui n'étaient pas faites
2019-05-10 14:30:38 -04:00
MrPickles14
df26148e7c Update bundle_fr.properties 2019-05-10 12:23:21 -04:00
키에르
bb322f1bff Update bundle_ko.properties 2019-05-06 16:20:54 +09:00
키에르
72843e9c92 Update bundle_ko.properties 2019-05-06 16:19:20 +09:00
Anuken
465c0e7dc3 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-05-05 12:50:04 -04:00
Prosta4ok_ua
e4e2b6ab00 Hmmmmmm 2019-05-05 18:37:24 +03:00
beito123
b37ae484c0 Update Japanese translations 2019-05-05 23:39:15 +09:00
beito123
18f1b5f9d2 Update Japanese translations 2019-05-05 01:52:35 +09:00
beito123
96a92fd85f Update Japanese translations 2019-05-04 18:42:05 +09:00
beito123
e5175d6309 Update Japanese translations 2019-05-04 18:37:44 +09:00
beito123
b5ceee3336 Merge remote-tracking branch 'upstream/master' 2019-05-04 16:42:48 +09:00
Deyvid67
c97826ed29 Update bundle_pt_BR.properties 2019-05-02 14:33:29 -03:00
Anuken
9c653a46bc Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/src/io/anuke/mindustry/game/Version.java
2019-05-02 12:59:05 -04:00
beito123
9f5a183793 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-05-02 20:08:10 +09:00
Anuken
c2a6690d24 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-05-01 20:52:02 -04:00
Anuken
5e5b719704 Added version toggle 2019-05-01 20:51:44 -04:00
laohuaji233
bb5e454b91 Update bundle_zh_CN.properties
Most of them have been translated into Chinese, but there are still some uncertainties.
2019-05-01 23:19:27 +08:00
Prosta4okua
ffb12f9c0b Update bundle_ru.properties 2019-05-01 18:18:01 +03:00
Prosta4okua
a89786d079 Update bundle_uk_UA.properties 2019-05-01 18:17:35 +03:00
Prosta4ok_ua
271d01dc9d Tar fields, Overgrowth, Dart Mech Pad 2019-05-01 13:16:12 +03:00
Prosta4okua
d3ffaea042 Update bundle_uk_UA.properties 2019-05-01 11:36:13 +03:00
beito123
a2fa65330d Update Japanese translations 2019-04-29 17:40:03 +09:00
beito123
d3af66b7ed Merge remote-tracking branch 'upstream/master' 2019-04-29 17:18:16 +09:00
beito123
4a7960d64b Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-04-16 19:10:18 +09:00
Anuken
c5226c9e59 Merge branch 'master' into master 2019-03-20 17:13:48 -06:00
beito123
3bad95b389 Update Japanese translations 2019-03-20 15:29:36 +09:00
beito123
54ef7760b9 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-03-20 13:11:49 +09:00
beito123
2ed5d34192 Update Japanese 2019-03-19 21:20:29 +09:00
beito123
9336a2b4c5 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-03-17 17:56:40 +09:00
beito123
eb92ca8cd7 Update Japanese 2019-03-17 16:44:51 +09:00
beito123
f5866d7f72 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-03-06 14:59:38 +09:00
beito123
dbbc72d00f Update Japanese translations 2019-03-06 14:49:12 +09:00
beito123
2b4bcf0b0a Oops! 2019-02-15 12:17:43 +09:00
beito123
0851f2d0e2 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-02-13 12:23:26 +09:00
beito123
ea9ed841ee Update Japanese translations 2018-12-16 21:54:32 +09:00
beito123
567f3fd3cd Update Japanese translations 2018-12-15 17:26:26 +09:00
beito123
9dcd8dc419 Merge remote-tracking branch 'fork_master/master' 2018-12-15 15:48:39 +09:00
beito123
e19bd9d434 Update Japanese translation 2018-12-10 23:10:57 +09:00
beito123
35ecd26634 Update Japanese translations 2018-12-10 00:37:00 +09:00
beito123
ac3bb37c36 Update Japanese translations 2018-12-09 19:36:29 +09:00
beito123
17b8b285a3 Update Japanese translations 2018-12-09 19:10:41 +09:00
beito123
788bf383aa Update Japanese translations 2018-12-09 19:07:40 +09:00
beito123
8d0b889f3c Update Japanese translations 2018-12-09 15:09:37 +09:00
beito123
d250fb655d Merge remote-tracking branch 'fork_master/master' 2018-12-09 14:26:55 +09:00
beito123
74eb79de17 Merge remote-tracking branch 'fork_master/master' 2018-12-08 00:44:59 +09:00
beito123
e2eabfc141 Merge remote-tracking branch 'fork_master/master' 2018-12-01 17:08:54 +09:00
beito123
a3ee43b31c Update Japanese translations 2018-11-25 23:49:40 +09:00
beito123
12dd16d4bf Update Japanese 2018-11-25 23:40:33 +09:00
beito123
a5b9e57576 Update Japanese translations
Improve and update for new changes
2018-11-25 23:33:00 +09:00
beito123
6c194d257c merge from master 2018-11-25 22:39:04 +09:00
beito123
09598e0ced Update Japanese 2018-11-16 19:39:16 +09:00
beito123
6af2696f6a Update Japanese 2018-11-16 19:01:05 +09:00
beito123
69dac77932 Merge remote-tracking branch 'fork_master/master' 2018-11-16 18:44:14 +09:00
beito123
2764e0e5fa Upadte Japanese translations 2018-11-15 01:42:11 +09:00
beito123
fa5cdc3afa Update Japanese translation
Applies commit 7a51693. and small changes.
2018-11-15 01:07:39 +09:00
beito123
8dae5ec47a Add new japanese translation
It translated on commit 66810c8.
so it don't apply changes from commit 17e0489.
2018-11-15 00:39:37 +09:00
48 changed files with 883 additions and 791 deletions

View File

@@ -508,9 +508,9 @@ mode.survival.description = The normal mode. Limited resources and automatic inc
mode.sandbox.name = Sandbox mode.sandbox.name = Sandbox
mode.sandbox.description = Infinite resources and no timer for waves. mode.sandbox.description = Infinite resources and no timer for waves.
mode.pvp.name = PvP mode.pvp.name = PvP
mode.pvp.description = Fight against other players locally. mode.pvp.description = Fight against other players locally. Requires at least 2 differently-colored cores in the map to play.
mode.attack.name = Attack mode.attack.name = Attack
mode.attack.description = Destroy the enemy's base. No waves. mode.attack.description = Destroy the enemy's base. No waves. Requires a red core in the map to play.
mode.custom = Custom Rules mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources rules.infiniteresources = Infinite Resources

View File

@@ -326,7 +326,7 @@ zone.overgrowth.name = Overgrowth
zone.tarFields.name = Tar Fields zone.tarFields.name = Tar Fields
settings.language = Langage settings.language = Langage
settings.reset = Valeur par défaut. settings.reset = Valeur par défaut.
settings.rebind = Réatttribuer settings.rebind = Réattribuer
settings.controls = Contrôles settings.controls = Contrôles
settings.game = Jeu settings.game = Jeu
settings.sound = Son settings.sound = Son
@@ -360,14 +360,14 @@ blocks.poweruse = Énergie utilisée
blocks.powerdamage = Énergie/Dégâts blocks.powerdamage = Énergie/Dégâts
blocks.itemcapacity = Stockage blocks.itemcapacity = Stockage
blocks.basepowergeneration = Génération d'énergie minimale blocks.basepowergeneration = Génération d'énergie minimale
blocks.productiontime = Production Time blocks.productiontime = Temps de production
blocks.repairtime = Temps pour la Réparation Totale du Bloc blocks.repairtime = Temps pour la Réparation Totale du Bloc
blocks.speedincrease = Speed Increase blocks.speedincrease = Speed Increase
blocks.range = Portée blocks.range = Portée
blocks.drilltier = Forable blocks.drilltier = Forable
blocks.drillspeed = Vitesse de forage de base blocks.drillspeed = Vitesse de forage de base
blocks.boosteffect = Boost Effect blocks.boosteffect = Boost Effect
blocks.maxunits = Nombre d'unité actives maximal blocks.maxunits = Nombre d'unités actives maximal
blocks.health = Santé blocks.health = Santé
blocks.inaccuracy = Précision blocks.inaccuracy = Précision
blocks.shots = Tir blocks.shots = Tir
@@ -422,10 +422,10 @@ setting.antialias.name = Antialias[LIGHT_GRAY] (demande le redémarrage de l'app
setting.indicators.name = Indicateurs pour les alliés setting.indicators.name = Indicateurs pour les alliés
setting.autotarget.name = Visée automatique setting.autotarget.name = Visée automatique
setting.fpscap.name = Max FPS setting.fpscap.name = Max FPS
setting.fpscap.none = None setting.fpscap.none = Aucun
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.swapdiagonal.name = Autoriser le placement des blocs en diagonal setting.swapdiagonal.name = Autoriser le placement des blocs en diagonal
setting.difficulty.training = entraînement setting.difficulty.training = Entraînement
setting.difficulty.easy = Facile setting.difficulty.easy = Facile
setting.difficulty.normal = Normal setting.difficulty.normal = Normal
setting.difficulty.hard = Difficile setting.difficulty.hard = Difficile
@@ -441,14 +441,14 @@ setting.borderless.name = Fenêtre sans contour
setting.fps.name = Afficher FPS setting.fps.name = Afficher FPS
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = Afficher les rayons des lasers setting.lasers.name = Afficher les rayons des lasers
setting.pixelate.name = Pixelate[LIGHT_GRAY] (disables animations) setting.pixelate.name = Pixeliser[LIGHT_GRAY] (disables animations)
setting.minimap.name = Montrer la minimap setting.minimap.name = Montrer la minimap
setting.musicvol.name = Volume de la musique setting.musicvol.name = Volume de la musique
setting.mutemusic.name = Couper la musique setting.mutemusic.name = Couper la musique
setting.sfxvol.name = Volume des SFX setting.sfxvol.name = Volume des SFX
setting.mutesound.name = Couper les SFX setting.mutesound.name = Couper les SFX
setting.crashreport.name = Envoyer un rapport de crash anonyme setting.crashreport.name = Envoyer un rapport de crash anonyme
setting.chatopacity.name = Chat Opacity setting.chatopacity.name = Opacité du chat
setting.playerchat.name = Display In-Game Chat setting.playerchat.name = Display In-Game Chat
keybind.title = Paramétrer les touches keybind.title = Paramétrer les touches
category.general.name = Général category.general.name = Général
@@ -465,7 +465,7 @@ keybind.screenshot.name = Capture d'écran
keybind.move_x.name = mouvement x keybind.move_x.name = mouvement x
keybind.move_y.name = mouvement y keybind.move_y.name = mouvement y
keybind.select.name = sélectionner keybind.select.name = sélectionner
keybind.diagonal_placement.name = Placement en diagonal keybind.diagonal_placement.name = Placement en diagonale
keybind.pick.name = Choisir un bloc keybind.pick.name = Choisir un bloc
keybind.break_block.name = Suppprimer un bloc keybind.break_block.name = Suppprimer un bloc
keybind.deselect.name = Désélectionner keybind.deselect.name = Désélectionner
@@ -488,17 +488,17 @@ keybind.drop_unit.name = drop unit
keybind.zoom_minimap.name = Zoom minimap keybind.zoom_minimap.name = Zoom minimap
mode.help.title = Description des modes de jeu mode.help.title = Description des modes de jeu
mode.survival.name = Survival mode.survival.name = Survival
mode.survival.description = The normal mode. Limited resources and automatic incoming waves. mode.survival.description = Le mode normal. Ressources limitées et vagues automatiques.
mode.sandbox.name = bac à sable mode.sandbox.name = bac à sable
mode.sandbox.description = Ressources infinies et pas de timer pour les vagues. mode.sandbox.description = Ressources infinies et pas de minuterie pour les vagues.
mode.pvp.name = JcJ mode.pvp.name = JcJ
mode.pvp.description = Battez-vous contre d'autres joueurs en local. mode.pvp.description = Battez-vous contre d'autres joueurs en local.
mode.attack.name = Attack mode.attack.name = Attaque
mode.attack.description = No waves, with the goal to destroy the enemy base. mode.attack.description = Pas de vagues, avec le but de détruire la base ennemie.
mode.custom = Custom Rules mode.custom = Règles personnalisées
rules.infiniteresources = Infinite Resources rules.infiniteresources = Ressources infinies
rules.wavetimer = Wave Timer rules.wavetimer = Minuterie pour les vagues
rules.waves = Waves rules.waves = Vagues
rules.enemyCheat = Infinite AI Resources rules.enemyCheat = Infinite AI Resources
rules.unitdrops = Unit Drops rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
@@ -514,13 +514,13 @@ rules.buildspeedmultiplier = Build Speed Multiplier
rules.waitForWaveToEnd = Waves wait for enemies rules.waitForWaveToEnd = Waves wait for enemies
rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles) rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles)
rules.respawns = Max respawns per wave rules.respawns = Max respawns per wave
rules.limitedRespawns = Limit Respawns rules.limitedRespawns = Limite de réapparition
rules.title.waves = Waves rules.title.waves = Vagues
rules.title.respawns = Respawns rules.title.respawns = Réapparitions
rules.title.resourcesbuilding = Resources & Building rules.title.resourcesbuilding = Resources & Building
rules.title.player = Players rules.title.player = Joueurs
rules.title.enemy = Enemies rules.title.enemy = Ennemis
rules.title.unit = Units rules.title.unit = Unités
content.item.name = Objets content.item.name = Objets
content.liquid.name = Liquides content.liquid.name = Liquides
content.unit.name = Unités content.unit.name = Unités
@@ -553,8 +553,8 @@ item.blast-compound.name = Mélange explosif
item.blast-compound.description = Un composé volatile utilisé dans les bombes et les explosifs. Bien qu'il puisse être utilisé comme carburant, ce n'est pas conseillé. item.blast-compound.description = Un composé volatile utilisé dans les bombes et les explosifs. Bien qu'il puisse être utilisé comme carburant, ce n'est pas conseillé.
item.pyratite.name = Pyratite item.pyratite.name = Pyratite
item.pyratite.description = Une substance extrêmement inflammable utilisée dans les armes incendiaires. item.pyratite.description = Une substance extrêmement inflammable utilisée dans les armes incendiaires.
item.metaglass.name = Metaglass item.metaglass.name = Métavitre
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage. item.metaglass.description = Un composé de vitre super-résistant. Utilisé largement pour le transport et le stockage de liquides.
item.scrap.name = Scrap item.scrap.name = Scrap
item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals. item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals.
liquid.water.name = Eau liquid.water.name = Eau
@@ -601,23 +601,23 @@ mech.itemcapacity = [LIGHT_GRAY]Capacité de stockage: {0}
mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0} mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0}
mech.minepower = [LIGHT_GRAY]Puissance du minage: {0} mech.minepower = [LIGHT_GRAY]Puissance du minage: {0}
mech.ability = [LIGHT_GRAY]Compétence: {0} mech.ability = [LIGHT_GRAY]Compétence: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}% mech.buildspeed = [LIGHT_GRAY]Vitesse de construction: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0} liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0} liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
liquid.temperature = [LIGHT_GRAY]Température: {0} liquid.temperature = [LIGHT_GRAY]Température: {0}
block.grass.name = Grass block.grass.name = Herbe
block.salt.name = Salt block.salt.name = Sel
block.saltrocks.name = Salt Rocks block.saltrocks.name = Roches de sel
block.pebbles.name = Pebbles block.pebbles.name = Cailloux
block.tendrils.name = Tendrils block.tendrils.name = Tendrils
block.sandrocks.name = Sand Rocks block.sandrocks.name = Roches de sable
block.spore-pine.name = Spore Pine block.spore-pine.name = Spore Pine
block.sporerocks.name = Spore Rocks block.sporerocks.name = Spore Rocks
block.rock.name = Rock block.rock.name = Roche
block.snowrock.name = Snow Rock block.snowrock.name = Roches de neige
block.shale.name = Shale block.shale.name = Shale
block.shale-boulder.name = Shale Boulder block.shale-boulder.name = Shale Boulder
block.moss.name = Moss block.moss.name = Mousse
block.shrubs.name = Shrubs block.shrubs.name = Shrubs
block.spore-moss.name = Spore Moss block.spore-moss.name = Spore Moss
block.shalerocks.name = Shale Rocks block.shalerocks.name = Shale Rocks
@@ -642,44 +642,44 @@ block.darksand-tainted-water.name = Dark Sand Tainted Water
block.tar.name = Pétrole block.tar.name = Pétrole
block.stone.name = Roche block.stone.name = Roche
block.sand.name = Sable block.sand.name = Sable
block.darksand.name = Dark Sand block.darksand.name = Sable sombre
block.ice.name = glace block.ice.name = Glace
block.snow.name = Neige block.snow.name = Neige
block.craters.name = Craters block.craters.name = Cratères
block.sand-water.name = Sand water block.sand-water.name = Sand water
block.darksand-water.name = Dark Sand Water block.darksand-water.name = Dark Sand Water
block.char.name = Char block.char.name = Char
block.holostone.name = Holo stone block.holostone.name = Holo stone
block.ice-snow.name = Ice Snow block.ice-snow.name = Ice Snow
block.rocks.name = Rocks block.rocks.name = Roches
block.icerocks.name = Ice rocks block.icerocks.name = Roches de glace
block.snowrocks.name = Snow Rocks block.snowrocks.name = Roches de neige
block.dunerocks.name = Dune Rocks block.dunerocks.name = Roches de dunes
block.pine.name = Pine block.pine.name = Pin
block.white-tree-dead.name = White Tree Dead block.white-tree-dead.name = Arbre blanc mort
block.white-tree.name = White Tree block.white-tree.name = Arbre blanc
block.spore-cluster.name = Spore Cluster block.spore-cluster.name = Spore Cluster
block.metal-floor.name = Metal Floor block.metal-floor.name = Plancher de métal
block.metal-floor-2.name = Metal Floor 2 block.metal-floor-2.name = Plancher de métal 2
block.metal-floor-3.name = Metal Floor 3 block.metal-floor-3.name = Plancher de métal 3
block.metal-floor-5.name = Metal Floor 5 block.metal-floor-5.name = Plancher de métal 5
block.metal-floor-damaged.name = Metal Floor Damaged block.metal-floor-damaged.name = Plancher de métal endommagé
block.creeptree.name = Creeptree block.creeptree.name = Creeptree
block.dark-panel-1.name = Dark Panel 1 block.dark-panel-1.name = Panneau sombre 1
block.dark-panel-2.name = Dark Panel 2 block.dark-panel-2.name = Panneau sombre 2
block.dark-panel-3.name = Dark Panel 3 block.dark-panel-3.name = Panneau sombre 3
block.dark-panel-4.name = Dark Panel 4 block.dark-panel-4.name = Panneau sombre 4
block.dark-panel-5.name = Dark Panel 5 block.dark-panel-5.name = Panneau sombre 5
block.dark-panel-6.name = Dark Panel 6 block.dark-panel-6.name = Panneau sombre 6
block.dark-metal.name = Dark Metal block.dark-metal.name = Métal Sombre
block.ignarock.name = Igna Rock block.ignarock.name = Roches ignées
block.hotrock.name = Hot Rock block.hotrock.name = Hot Rock
block.magmarock.name = Magma Rock block.magmarock.name = Magma Rock
block.cliffs.name = Cliffs block.cliffs.name = Falaises
block.copper-wall.name = Mur de cuivre block.copper-wall.name = Mur de cuivre
block.copper-wall-large.name = Grand mur de cuivre block.copper-wall-large.name = Grand mur de cuivre
block.titanium-wall.name = Titanium Wall block.titanium-wall.name = Mur de titane
block.titanium-wall-large.name = Large Titanium Wall block.titanium-wall-large.name = Grand mur de titane
block.phase-wall.name = Mur phasé block.phase-wall.name = Mur phasé
block.phase-wall-large.name = Grand mur phasé block.phase-wall-large.name = Grand mur phasé
block.thorium-wall.name = Mur en Thorium block.thorium-wall.name = Mur en Thorium
@@ -696,7 +696,7 @@ block.titanium-conveyor.name = Convoyeur en titane
block.junction.name = Jonction block.junction.name = Jonction
block.router.name = [accent]routeur[] block.router.name = [accent]routeur[]
block.distributor.name = Distributeur block.distributor.name = Distributeur
block.sorter.name = Sorteur block.sorter.name = Trieur
block.sorter.description = Trie les articles. Si un article rcorrespond à la sélection, il peut passer. Autrement, l'article est distribué vers la gauche ou la droite. block.sorter.description = Trie les articles. Si un article rcorrespond à la sélection, il peut passer. Autrement, l'article est distribué vers la gauche ou la droite.
block.overflow-gate.name = Barrière de Débordement block.overflow-gate.name = Barrière de Débordement
block.overflow-gate.description = C'est la combinaison entre un Routeur et un Diviseur qui peut seulement distribuer à gauche et à droite si le chemin de devant est bloqué. block.overflow-gate.description = C'est la combinaison entre un Routeur et un Diviseur qui peut seulement distribuer à gauche et à droite si le chemin de devant est bloqué.
@@ -708,16 +708,16 @@ block.melter.name = Four à Fusion
block.incinerator.name = Incinérateur block.incinerator.name = Incinérateur
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
block.separator.name = Séparateur block.separator.name = Séparateur
block.coal-centrifuge.name = Coal Centrifuge block.coal-centrifuge.name = Centrifuge à charbon
block.power-node.name = Transmetteur énergétique block.power-node.name = Transmetteur énergétique
block.power-node-large.name = Gros transmetteur énergétique block.power-node-large.name = Gros transmetteur énergétique
block.surge-tower.name = Surge Tower block.surge-tower.name = Surge Tower
block.battery.name = Batterie block.battery.name = Batterie
block.battery-large.name = Batterie large block.battery-large.name = Grande batterie
block.combustion-generator.name = Générateur à combustion block.combustion-generator.name = Générateur à combustion
block.turbine-generator.name = Générateur à Turbine block.turbine-generator.name = Générateur à Turbine
block.differential-generator.name = Differential Generator block.differential-generator.name = Differential Generator
block.impact-reactor.name = Impact Reactor block.impact-reactor.name = Réacteur à impact
block.mechanical-drill.name = Foreuse mécanique block.mechanical-drill.name = Foreuse mécanique
block.pneumatic-drill.name = Foreuse à vérin block.pneumatic-drill.name = Foreuse à vérin
block.laser-drill.name = Foreuse Laser block.laser-drill.name = Foreuse Laser
@@ -776,7 +776,7 @@ block.thermal-generator.name = Générateur thermique
block.alloy-smelter.name = Fonderie d'alliage superchargé block.alloy-smelter.name = Fonderie d'alliage superchargé
block.mender.name = Mender block.mender.name = Mender
block.mend-projector.name = Projecteur soignant block.mend-projector.name = Projecteur soignant
block.surge-wall.name = mur superchargé block.surge-wall.name = Mur superchargé
block.surge-wall-large.name = Grand mur superchargé block.surge-wall-large.name = Grand mur superchargé
block.cyclone.name = Cyclone block.cyclone.name = Cyclone
block.fuse.name = Fuse block.fuse.name = Fuse
@@ -788,16 +788,16 @@ block.rtg-generator.name = G.T.R.
block.spectre.name = Spectre block.spectre.name = Spectre
block.meltdown.name = Meltdown block.meltdown.name = Meltdown
block.container.name = Conteneur block.container.name = Conteneur
block.launch-pad.name = Launch Pad block.launch-pad.name = Plateforme de lancement
block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished. block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished.
block.launch-pad-large.name = Large Launch Pad block.launch-pad-large.name = Grande plateforme de lancement
team.blue.name = Bleu team.blue.name = Bleu
team.red.name = Rouge team.red.name = Rouge
team.orange.name = Orange team.orange.name = Orange
team.none.name = Gris team.none.name = Gris
team.green.name = Vert team.green.name = Vert
team.purple.name = Violet team.purple.name = Violet
unit.spirit.name = Drone sppirituel unit.spirit.name = Drone spirituel
unit.spirit.description = L'unité de soutien de départ. Apparaît dans la base par défaut. Mine automatiquement les minerais, récupère les objets au sol et répare les blocs. unit.spirit.description = L'unité de soutien de départ. Apparaît dans la base par défaut. Mine automatiquement les minerais, récupère les objets au sol et répare les blocs.
unit.phantom.name = Drone Fantôme unit.phantom.name = Drone Fantôme
unit.phantom.description = Une unité de soutien avancée. Mine automatiquement les minerais, récupère les objets au sol et répare les blocs. Bien plus efficace qu'un drone spirituel. unit.phantom.description = Une unité de soutien avancée. Mine automatiquement les minerais, récupère les objets au sol et répare les blocs. Bien plus efficace qu'un drone spirituel.

View File

@@ -11,8 +11,8 @@ link.google-play.description = Page Google Play du jeu
link.wiki.description = Wiki officiel de Mindustry link.wiki.description = Wiki officiel de Mindustry
linkfail = L'ouverture du lien a échoué!\nL'URL a été copiée dans votre presse-papier. linkfail = L'ouverture du lien a échoué!\nL'URL a été copiée dans votre presse-papier.
screenshot = Capture d'écran enregistrée sur {0} screenshot = Capture d'écran enregistrée sur {0}
screenshot.invalid = Map too large, potentially not enough memory for screenshot. screenshot.invalid = Carte trop grande, potentiellement pas assez de mémoire pour la capture d'écran.
gameover = Le base a été détruit. gameover = Le base a été détruite.
gameover.pvp = L'équipe[accent] {0}[] a gagnée ! gameover.pvp = L'équipe[accent] {0}[] a gagnée !
highscore = [accent]Nouveau meilleur score ! highscore = [accent]Nouveau meilleur score !
stat.wave = Vagues vaincues:[accent] {0} stat.wave = Vagues vaincues:[accent] {0}
@@ -52,11 +52,11 @@ name = Nom:
noname = Choisissez d'abord [accent]un pseudo[]. noname = Choisissez d'abord [accent]un pseudo[].
filename = Nom du fichier: filename = Nom du fichier:
unlocked = Nouveau bloc debloqué! unlocked = Nouveau bloc debloqué!
completed = [accent]Completed completed = [accent]Terminé
techtree = Tech Tree techtree = Arbre technologique
research.list = [LIGHT_GRAY]Research: research.list = [LIGHT_GRAY]Recherche:
research = Research research = Recherche
researched = [LIGHT_GRAY]{0} researched. researched = [LIGHT_GRAY]{0} recherchée.
players = {0} joueurs en ligne players = {0} joueurs en ligne
players.single = {0} joueur en ligne players.single = {0} joueur en ligne
server.closing = [accent]Fermeture du serveur ... server.closing = [accent]Fermeture du serveur ...
@@ -155,7 +155,7 @@ confirm = Confirmer
delete = Supprimer delete = Supprimer
ok = OK ok = OK
open = Ouvrir open = Ouvrir
customize = Customize customize = Personnaliser
cancel = Annuler cancel = Annuler
openlink = Ouvrir le lien openlink = Ouvrir le lien
copylink = Copier le lien copylink = Copier le lien
@@ -172,7 +172,7 @@ loading = [accent]Chargement...
saving = [accent]Sauvegarde... saving = [accent]Sauvegarde...
wave = [accent]Vague {0} wave = [accent]Vague {0}
wave.waiting = [LIGHT_GRAY]Prochaine vague dans {0} wave.waiting = [LIGHT_GRAY]Prochaine vague dans {0}
wave.waveInProgress = [LIGHT_GRAY]Wave in progress wave.waveInProgress = [LIGHT_GRAY]Vague en cours
waiting = [LIGHT_GRAY]En attente... waiting = [LIGHT_GRAY]En attente...
waiting.players = En attente de joueurs ... waiting.players = En attente de joueurs ...
wave.enemies = [LIGHT_GRAY]{0} Ennemis restants wave.enemies = [LIGHT_GRAY]{0} Ennemis restants
@@ -315,15 +315,15 @@ error.mapnotfound = Fichier de carte introuvable !
error.io = Network I/O error. error.io = Network I/O error.
error.any = Erreur réseau inconnue. error.any = Erreur réseau inconnue.
zone.groundZero.name = Première Bataille zone.groundZero.name = Première Bataille
zone.desertWastes.name = Desert Wastes zone.desertWastes.name = Déchets du désert
zone.craters.name = Les Cratères zone.craters.name = Les Cratères
zone.frozenForest.name = Forêt Glaciale zone.frozenForest.name = Forêt Glaciale
zone.ruinousShores.name = Rives en Ruine zone.ruinousShores.name = Rives en Ruine
zone.stainedMountains.name = Montagnes Tâchetées zone.stainedMountains.name = Montagnes Tâchetées
zone.desolateRift.name = Fissure abandonnée zone.desolateRift.name = Fissure abandonnée
zone.nuclearComplex.name = Complexe nucléaire zone.nuclearComplex.name = Complexe nucléaire
zone.overgrowth.name = Overgrowth zone.overgrowth.name = Surcroissance
zone.tarFields.name = Tar Fields zone.tarFields.name = Champs de goudron
settings.language = Langage settings.language = Langage
settings.reset = Valeur par défaut. settings.reset = Valeur par défaut.
settings.rebind = Réatttribuer settings.rebind = Réatttribuer
@@ -448,8 +448,8 @@ setting.mutemusic.name = Couper la musique
setting.sfxvol.name = Volume des SFX setting.sfxvol.name = Volume des SFX
setting.mutesound.name = Couper les SFX setting.mutesound.name = Couper les SFX
setting.crashreport.name = Envoyer des rapports d'incident anonymement. setting.crashreport.name = Envoyer des rapports d'incident anonymement.
setting.chatopacity.name = Chat Opacity setting.chatopacity.name = Opacité du tchat
setting.playerchat.name = Display In-Game Chat setting.playerchat.name = Afficher le tchat en jeu
keybind.title = Paramétrer les touches keybind.title = Paramétrer les touches
category.general.name = Général category.general.name = Général
category.view.name = Voir category.view.name = Voir
@@ -474,7 +474,7 @@ keybind.zoom_hold.name = Tenir le zoom
keybind.zoom.name = Zoom keybind.zoom.name = Zoom
keybind.menu.name = Menu keybind.menu.name = Menu
keybind.pause.name = Pause keybind.pause.name = Pause
keybind.minimap.name = Minimap keybind.minimap.name = Mini-Map
keybind.dash.name = Sprint keybind.dash.name = Sprint
keybind.chat.name = Tchat keybind.chat.name = Tchat
keybind.player_list.name = Liste des joueurs keybind.player_list.name = Liste des joueurs
@@ -503,24 +503,24 @@ rules.enemyCheat = Ressources infinies pour l'IA
rules.unitdrops = Uniter Drops rules.unitdrops = Uniter Drops
rules.unitbuildspeedmultiplier = Multiplicateur de vitesse de création d'unités rules.unitbuildspeedmultiplier = Multiplicateur de vitesse de création d'unités
rules.unithealthmultiplier = Multiplicateur de la santé des unités rules.unithealthmultiplier = Multiplicateur de la santé des unités
rules.playerhealthmultiplier = Player Health Multiplier rules.playerhealthmultiplier = Multiplicateur de la santé des joueurs
rules.playerdamagemultiplier = Multiplicateur des dégâts du joueur rules.playerdamagemultiplier = Multiplicateur de dégât des joueurs
rules.unitdamagemultiplier = Unit Damage Multiplier rules.unitdamagemultiplier = Multiplicateur de dégât des unités
rules.enemycorebuildradius = Rayon de non-construction autour de la base ennemi:[LIGHT_GRAY] (tuiles) rules.enemycorebuildradius = Rayon de non-construction autour de la base ennemi:[LIGHT_GRAY] (tuiles)
rules.respawntime = Temps de réapparition:[LIGHT_GRAY] (sec) rules.respawntime = Temps de réapparition:[LIGHT_GRAY] (sec)
rules.wavespacing = Espacement des vagues:[LIGHT_GRAY] (sec) rules.wavespacing = Espacement des vagues:[LIGHT_GRAY] (sec)
rules.buildcostmultiplier = Multiplicateur de coût de construction rules.buildcostmultiplier = Multiplicateur de coût de construction
rules.buildspeedmultiplier = Multiplicateur de vitesse de construction rules.buildspeedmultiplier = Multiplicateur de vitesse de construction
rules.waitForWaveToEnd = Waves wait for enemies rules.waitForWaveToEnd = Les vagues attendent les ennemis
rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles) rules.dropzoneradius = Rayon de la zone de largage:[LIGHT_GRAY] (tuiles)
rules.respawns = Max respawns per wave rules.respawns = Max d'apparition par vague
rules.limitedRespawns = Limit Respawns rules.limitedRespawns = Limite d'apparition
rules.title.waves = Waves rules.title.waves = Vagues
rules.title.respawns = Respawns rules.title.respawns = Apparition
rules.title.resourcesbuilding = Resources & Building rules.title.resourcesbuilding = Ressources & Bâtiment
rules.title.player = Players rules.title.player = Joueurs
rules.title.enemy = Enemies rules.title.enemy = Ennemis
rules.title.unit = Units rules.title.unit = Unités
content.item.name = Objets content.item.name = Objets
content.liquid.name = Liquides content.liquid.name = Liquides
content.unit.name = Unités content.unit.name = Unités
@@ -607,9 +607,9 @@ liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
liquid.temperature = [LIGHT_GRAY]Température: {0} liquid.temperature = [LIGHT_GRAY]Température: {0}
block.grass.name = Herbe block.grass.name = Herbe
block.salt.name = Sel block.salt.name = Sel
block.saltrocks.name = Salt Rocks block.saltrocks.name = Roches de sel
block.pebbles.name = Pebbles block.pebbles.name = Cailloux
block.tendrils.name = Tendrils block.tendrils.name = Vrilles
block.sandrocks.name = Roche de sableuse block.sandrocks.name = Roche de sableuse
block.spore-pine.name = Pin sporifère block.spore-pine.name = Pin sporifère
block.sporerocks.name = Roche sporifère block.sporerocks.name = Roche sporifère
@@ -618,7 +618,7 @@ block.snowrock.name = Roche enneigée
block.shale.name = Schiste block.shale.name = Schiste
block.shale-boulder.name = Rocher de schiste block.shale-boulder.name = Rocher de schiste
block.moss.name = Mousse block.moss.name = Mousse
block.shrubs.name = Shrubs block.shrubs.name = Arbustes
block.spore-moss.name = Mousse sporifère block.spore-moss.name = Mousse sporifère
block.shalerocks.name = Roche de schiste block.shalerocks.name = Roche de schiste
block.scrap-wall.name = Mur de ferraille block.scrap-wall.name = Mur de ferraille
@@ -664,14 +664,14 @@ block.metal-floor-2.name = Sol métallique 2
block.metal-floor-3.name = Sol métallique 3 block.metal-floor-3.name = Sol métallique 3
block.metal-floor-5.name = Sol métallique 5 block.metal-floor-5.name = Sol métallique 5
block.metal-floor-damaged.name = Sol métallique endommagé block.metal-floor-damaged.name = Sol métallique endommagé
block.creeptree.name = Creeptree block.creeptree.name = Arbre effrayant
block.dark-panel-1.name = Dark Panel 1 block.dark-panel-1.name = Panneau noir 1
block.dark-panel-2.name = Dark Panel 2 block.dark-panel-2.name = Panneau noir 2
block.dark-panel-3.name = Dark Panel 3 block.dark-panel-3.name = Panneau noir 3
block.dark-panel-4.name = Dark Panel 4 block.dark-panel-4.name = Panneau noir 4
block.dark-panel-5.name = Dark Panel 5 block.dark-panel-5.name = Panneau noir 5
block.dark-panel-6.name = Dark Panel 6 block.dark-panel-6.name = Panneau noir 6
block.dark-metal.name = Dark Metal block.dark-metal.name = Métal noir
block.ignarock.name = Roche d'igna block.ignarock.name = Roche d'igna
block.hotrock.name = Roche chaude block.hotrock.name = Roche chaude
block.magmarock.name = Roche de magma block.magmarock.name = Roche de magma
@@ -708,7 +708,7 @@ block.melter.name = Four à Fusion
block.incinerator.name = Incinérateur block.incinerator.name = Incinérateur
block.spore-press.name = Spore presse block.spore-press.name = Spore presse
block.separator.name = Séparateur block.separator.name = Séparateur
block.coal-centrifuge.name = Coal Centrifuge block.coal-centrifuge.name = Centrifugeuse à charbon
block.power-node.name = Transmetteur énergétique block.power-node.name = Transmetteur énergétique
block.power-node-large.name = Grand transmetteur énergétique block.power-node-large.name = Grand transmetteur énergétique
block.surge-tower.name = Tour de surtension block.surge-tower.name = Tour de surtension

View File

@@ -3,28 +3,31 @@ credits = クレジット
contributors = 翻訳や協力してくださった方々 contributors = 翻訳や協力してくださった方々
discord = DiscordのMindustryに参加! discord = DiscordのMindustryに参加!
link.discord.description = Mindustryの公式Discordグループ link.discord.description = Mindustryの公式Discordグループ
link.github.description = ゲームのソースコード link.github.description = このゲームのソースコード
link.dev-builds.description = 不安定な開発ビルド link.dev-builds.description = 不安定な開発
link.trello.description = 公式 Trelloボード 実装予定の機能をチェック link.trello.description = 公式 Trelloボード 実装予定の機能をチェック
link.itch.io.description = itch.ioでPC版のダウンロードやweb版をプレイ link.itch.io.description = itch.io でPC版のダウンロードやweb版で遊ぼう
link.google-play.description = Google Playのストア link.google-play.description = Google Playのストア
link.wiki.description = 公式 Mindustry Wiki link.wiki.description = 公式 Mindustry Wiki
linkfail = リンクを開けませんでした!\nURLをクリップボードにコピーしました。 linkfail = リンクを開けませんでした!\nURLをクリップボードにコピーしました。
screenshot = スクリーンショットを {0} に保存しました。 screenshot = スクリーンショットを {0} に保存しました。
screenshot.invalid = Map too large, potentially not enough memory for screenshot. screenshot.invalid = マップが広すぎます。スクリーンショットに必要なメモリが足りない可能性があります。
gameover = ゲームオーバー gameover = ゲームオーバー
gameover.pvp = [accent] {0}[] チームの勝利! gameover.pvp = [accent] {0}[] チームの勝利!
highscore = [accent]ハイスコアを記録! highscore = [accent]ハイスコアを記録!
stat.wave = 防衛したウェーブ:[accent] {0} stat.wave = 防衛したウェーブ:[accent] {0}
stat.enemiesDestroyed = 敵による破壊数:[accent] {0} stat.enemiesDestroyed = 敵による破壊数:[accent] {0}
stat.built = 建設した建造物数:[accent] {0} stat.built = 建設した建造物数:[accent] {0}
stat.destroyed = 破壊した建造物数:[accent] {0} stat.destroyed = 破壊した建造物数:[accent] {0}
stat.deconstructed = 解体した建造物数:[accent] {0} stat.deconstructed = 解体した建造物数:[accent] {0}
stat.delivered = 獲得した資源: stat.delivered = 獲得した資源:
stat.rank = ランク: [accent]{0} stat.rank = 最終ランク: [accent]{0}
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it.
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it. placeline = ブロックを選択しました。\n[accent]少し長押し[]して、好きな方向にドラッグすると[accent]一直線上にブロックを設置[]することができます。\nやってみよう。
launcheditems = [accent]Launched Items removearea = 撤去モードが選択されました。\n[accent]少し長押し[]して、ドラッグすると[accent]範囲内のブロックを撤去[]することができます。\nやってみよう。
launcheditems = [accent]回収したアイテム
map.delete = マップ "[accent]{0}[]" を削除してもよろしいですか? map.delete = マップ "[accent]{0}[]" を削除してもよろしいですか?
level.highscore = ハイスコア: [accent]{0} level.highscore = ハイスコア: [accent]{0}
level.select = レベル選択 level.select = レベル選択
@@ -32,26 +35,26 @@ level.mode = ゲームモード:
showagain = 次回以降表示しない showagain = 次回以降表示しない
coreattack = < コアが攻撃を受けています! > coreattack = < コアが攻撃を受けています! >
nearpoint = [[ [scarlet]直ちに出現ポイントより離脱せよ[] ]\n殲滅されます nearpoint = [[ [scarlet]直ちに出現ポイントより離脱せよ[] ]\n殲滅されます
outofbounds = [[ 域外 ]\n[]自爆まであと {0} 秒 outofbounds = [[ 域外 ]\n[]自爆まであと {0} 秒
database = コアデーターベース database = コアデーターベース
savegame = ゲームを保存 savegame = 保存
loadgame = ゲームを読み込む loadgame = 読み込む
joingame = ゲームに参加 joingame = 参加
addplayers = プレイヤーを追加/削除 addplayers = プレイヤーを追加/削除
customgame = カスタムゲーム customgame = カスタムプレイ
newgame = 新しいゲーム newgame = 新しく始める
none = <なし> none = <なし>
minimap = Minimap minimap = ミニマップ
close = 閉じる close = 閉じる
quit = 終了 quit = 終了
maps = マップ maps = マップ
continue = 続ける continue = 続ける
maps.none = [LIGHT_GRAY]マップが存在しません! maps.none = [LIGHT_GRAY]マップが見つかりませんでした!
about.button = 情報 about.button = 情報
name = : name = プレイヤー名:
noname = 先に[accent]プレイヤー名[]を決めてください。 noname = [accent]プレイヤー名[]を入力してください。
filename = ファイル名: filename = ファイル名:
unlocked = 新しいブロックをアンロック! unlocked = 新しい要素をアンロック!
completed = [accent]完了 completed = [accent]完了
techtree = テックツリー techtree = テックツリー
research.list = [LIGHT_GRAY]調査: research.list = [LIGHT_GRAY]調査:
@@ -61,26 +64,26 @@ players = {0} 人がオンライン
players.single = {0} 人がオンライン players.single = {0} 人がオンライン
server.closing = [accent]サーバーを閉じています... server.closing = [accent]サーバーを閉じています...
server.kicked.kick = サーバからキックされました! server.kicked.kick = サーバからキックされました!
server.kicked.serverClose = サーバーが閉じました。 server.kicked.serverClose = サーバーが閉じられました。
server.kicked.clientOutdated = 古いクライアントです! ゲームをアップデートしてください! server.kicked.clientOutdated = 古いクライアントです! ゲームをアップデートしてください!
server.kicked.serverOutdated = 古いサーバーです! ホストに更新してもらってください! server.kicked.serverOutdated = 古いサーバーです! ホストに更新してもらってください!
server.kicked.banned = サーバーからブロックされています。 server.kicked.banned = サーバーからブロックされています。
server.kicked.recentKick = 直前にキックされています。\nもう一度接続できるまでお待ちください。 server.kicked.recentKick = 直前にキックされています。\nもう一度接続できるまでお待ちください。
server.kicked.nameInUse = このサーバーでは、\nその名前はすでに使用されています。 server.kicked.nameInUse = このサーバーでは、\nすでに同じ名前が使用されています。
server.kicked.nameEmpty = 無効な名前です。 server.kicked.nameEmpty = 無効な名前です。
server.kicked.idInUse = すでにサーバーに参加しています! 二つのアカウントでの接続は許可されていません。 server.kicked.idInUse = すでにサーバーに参加しています! 二つのアカウントでの同時接続は許可されていません。
server.kicked.customClient = このサーバーはカスタムビルドをサポートしていません。公式版をダウンロードしてください。 server.kicked.customClient = このサーバーはカスタムビルドをサポートしていません。公式版をダウンロードしてください。
server.kicked.gameover = ゲームオーバー! server.kicked.gameover = ゲームオーバー!
host.info = [accent]ホスト[]ボタンを押すと、ポート[scarlet]6567[]でサーバーが開かれます。同じ[LIGHT_GRAY]Wifi や ローカルネットワーク[]からはサーバーリストで見ることができます。\n\nIPアドレスからどこからでもアクセスできるようにするには、[accent]ポート開放[]する必要があります。\n\n[LIGHT_GRAY]注意:: LAN上のゲームで接続できない場合、Mindustryがファイアウォールの設定でローカルネットワーク接続が許可されているか確認してください。 host.info = [accent]ホスト[]をすると、ポート[scarlet]6567[]でサーバーが開かれます。\n同じ[LIGHT_GRAY]WiFiやローカル上のネットワークなど[]ではサーバーリストに表示されるようになります。\n\nIPアドレスで他のところからも接続できるようにするには、[accent]ポート開放[]が必要です。\n\n注意: もしLAN上のゲームに参加できない場合、Mindustryがファイアウォールの設定でローカルネットワークへの接続が許可されているか確認してください。
join.info = ここでは、[accent]サーバーのIPアドレス[]から接続したり、[accent]ローカルネットワーク[]のサーバーを探ことができます。\nLANWANの両方のマルチプレイに対応しています。\n\n[LIGHT_GRAY]注意:グローバルサーバーリストはありません。誰かのサーバーにIPで接続したい場合ホストにIPをお尋ねください。 join.info = ここでは、[accent]サーバーのIPアドレス[]から接続したり、[accent]ローカル[]のサーバーを探したりすることができます。\nLANWANの両方のマルチプレイに対応しています。\n\n[LIGHT_GRAY]注意: 世界中のサーバーの一覧ではありません。他人のサーバーにIPアドレスで接続したい場合は、あらかじめホストにIPアドレスをお尋ねください。
hostserver = ゲームをホスト hostserver = ホスト
hostserver.mobile = ホスト hostserver.mobile = ホスト
host = ホスト host = ホスト
hosting = [accent]サーバーを開いています... hosting = [accent]サーバーを開いています...
hosts.refresh = リフレッシュ hosts.refresh = 更新
hosts.discovering = LAN上のサーバーを探しています hosts.discovering = LAN上のサーバーを探索中
server.refreshing = サーバーをリフレッシュ server.refreshing = サーバーを更新中
hosts.none = [lightgray]ローカルゲームが見つかりません! hosts.none = [lightgray]ローカル上のサーバーが見つかりませんでした!
host.invalid = [scarlet]ホストに接続できません。 host.invalid = [scarlet]ホストに接続できません。
trace = プレイヤーの記録 trace = プレイヤーの記録
trace.playername = プレイヤー名: [accent]{0} trace.playername = プレイヤー名: [accent]{0}
@@ -95,48 +98,48 @@ trace.totalblocksplaced = 総ブロック設置数: [accent]{0}
trace.lastblockplaced = 最後に設置したブロック: [accent]{0} trace.lastblockplaced = 最後に設置したブロック: [accent]{0}
invalidid = 無効なクライアントIDです! バグ報告してください。 invalidid = 無効なクライアントIDです! バグ報告してください。
server.bans = ブロック server.bans = ブロック
server.bans.none = ブロックされたプレイヤーはいません! server.bans.none = ブロックされたプレイヤーは見つかりませんでした!
server.admins = 管理者 server.admins = 管理者
server.admins.none = 管理者はいません! server.admins.none = 管理者はいません!
server.add = サーバーを追加 server.add = サーバーを追加
server.delete = サーバーを削除しすか? server.delete = サーバーを削除してもよろしいですか?
server.hostname = ホスト: {0} server.hostname = ホスト: {0}
server.edit = サーバーを編集 server.edit = サーバーを編集
server.outdated = [crimson]古いサーバーです![] server.outdated = [crimson]古いサーバーです![]
server.outdated.client = [crimson]古いクライアントです![] server.outdated.client = [crimson]古いクライアントです![]
server.version = [lightgray]バージョン: {0} {1} server.version = [lightgray]バージョン: {0} {1}
server.custombuild = [yellow]カスタムビルド server.custombuild = [yellow]カスタムビルド
confirmban = このプレイヤーをブロックしすか? confirmban = このプレイヤーをブロックしてもよろしいですか?
confirmkick = このプレイヤーをキックしすか? confirmkick = このプレイヤーをキックしてもよろしいですか?
confirmunban = このプレイヤーのブロックを解除しすか? confirmunban = このプレイヤーのブロックを解除してもよろしいですか?
confirmadmin = このプレイヤーを管理者にしすか? confirmadmin = このプレイヤーを管理者にしてもよろしいですか?
confirmunadmin = このプレイヤーを管理者から削除しすか? confirmunadmin = このプレイヤーを管理者から削除してもよろしいですか?
joingame.title = サーバーに参加 joingame.title = サーバーに参加
joingame.ip = アドレス: joingame.ip = アドレス:
disconnect = 接続が切断されました。 disconnect = 接続が切断されました。
disconnect.data = ワールドデータの読み込みに失敗しました! disconnect.data = ワールドデータの読み込みに失敗しました!
connecting = [accent]接続中... connecting = [accent]接続中...
connecting.data = [accent]ワールドデータを読み込んでいます... connecting.data = [accent]ワールドデータを読み込み中...
server.port = ポート: server.port = ポート:
server.addressinuse = アドレスがすでに使用されています! server.addressinuse = アドレスがすでに使用されています!
server.invalidport = 無効なポート番号です! server.invalidport = 無効なポート番号です!
server.error = [crimson]サーバーエラー: [accent]{0} server.error = [crimson]サーバーのホストエラー: [accent]{0}
save.old = れは古いバージョンのセーブデータで、使用することができません。\n\n[LIGHT_GRAY]下位互換性の実装は正式版4.0行われます。 save.old = 古いバージョンのセーブデータ使用することができません。\n\n[LIGHT_GRAY]セーブデータの下位互換性の実装は正式版4.0行われます。
save.new = しく保存 save.new = 保存
save.overwrite = このスロットに上書きしてよろしいですか? save.overwrite = このスロットに上書きしてよろしいですか?
overwrite = 上書き overwrite = 上書き
save.none = セーブデータがりません! save.none = セーブデータがに見つかりませんでした!
saveload = [accent]セーブ中... saveload = [accent]セーブ中...
savefail = ゲームの保存に失敗しました! savefail = ゲームの保存に失敗しました!
save.delete.confirm = このセーブデータを削除してよろしいですか? save.delete.confirm = このセーブデータを削除してよろしいですか?
save.delete = 削除 save.delete = 削除
save.export = エクスポート save.export = エクスポート
save.import.invalid = [accent]無効なセーブデータです! save.import.invalid = [accent]無効なセーブデータです!
save.import.fail = [crimson]セーブのインポートに失敗: [accent]{0} save.import.fail = [crimson]セーブデータのインポートに失敗しました: [accent]{0}
save.export.fail = [crimson]セーブのエクスポートに失敗: [accent]{0} save.export.fail = [crimson]セーブデータのエクスポートに失敗しました: [accent]{0}
save.import = セーブデータを読み込む save.import = セーブデータを読み込む
save.newslot = セーブデータ名: save.newslot = セーブ名:
save.rename = リネーム save.rename = 名前を変更
save.rename.text = 新しい名前: save.rename.text = 新しい名前:
selectslot = セーブデータを選択 selectslot = セーブデータを選択
slot = [accent]スロット {0} slot = [accent]スロット {0}
@@ -148,14 +151,14 @@ save.autosave = 自動保存: {0}
save.map = マップ: {0} save.map = マップ: {0}
save.wave = ウェーブ {0} save.wave = ウェーブ {0}
save.difficulty = 難易度: {0} save.difficulty = 難易度: {0}
save.date = 最終保存: {0} save.date = 最終保存日時: {0}
save.playtime = プレイ時間: {0} save.playtime = プレイ時間: {0}
warning = 警告 warning = 警告
confirm = 確認 confirm = 確認
delete = 削除 delete = 削除
ok = OK ok = OK
open = 開く open = 開く
customize = Customize customize = カスタマイズ
cancel = キャンセル cancel = キャンセル
openlink = リンクを開く openlink = リンクを開く
copylink = リンクをコピー copylink = リンクをコピー
@@ -163,30 +166,30 @@ back = 戻る
quit.confirm = 終了してもよろしいですか? quit.confirm = 終了してもよろしいですか?
changelog.title = 変更履歴 changelog.title = 変更履歴
changelog.loading = 変更履歴を取得中... changelog.loading = 変更履歴を取得中...
changelog.error.android = [accent]Android4.4または、それ以下では変更履歴が動作しない場合があります!\nこれはAndroidの内部バグによるものです。 changelog.error.android = [accent]変更履歴はAndroid4.4または、それ以下では動作しない場合があります!\nこれはAndroidの内部バグによるものです。
changelog.error.ios = [accent]iOSは変更履歴に対応していません。 changelog.error.ios = [accent]変更履歴はiOSに対応していません。
changelog.error = [scarlet]変更履歴を取得できませんでした!\nインターネット接続を確認してください。 changelog.error = [scarlet]変更履歴を取得できませんでした!\nインターネット接続を確認してください。
changelog.current = [yellow][[現在のバージョン] changelog.current = [yellow][[現在のバージョン]
changelog.latest = [accent][[最新バージョン] changelog.latest = [accent][[最新]
loading = [accent]読み込み中... loading = [accent]読み込み中...
saving = [accent]保存中... saving = [accent]保存中...
wave = [accent]ウェーブ {0} wave = [accent]ウェーブ {0}
wave.waiting = [LIGHT_GRAY]次のウェーブまで {0} 秒 wave.waiting = [LIGHT_GRAY]次のウェーブまで {0} 秒
wave.waveInProgress = [LIGHT_GRAY]Wave in progress wave.waveInProgress = [LIGHT_GRAY]ウェーブ進行中
waiting = [LIGHT_GRAY]待機中... waiting = [LIGHT_GRAY]待機中...
waiting.players = プレイヤーを待っています... waiting.players = プレイヤーを待っています...
wave.enemies = [LIGHT_GRAY]残り {0} 体 wave.enemies = [LIGHT_GRAY]敵は残り {0} 体
wave.enemy = [LIGHT_GRAY]残り {0} 体 wave.enemy = [LIGHT_GRAY]敵は残り {0} 体
loadimage = イメージを読み込む loadimage = 画像を読み込む
saveimage = イメージを保存 saveimage = 画像を保存
unknown = 不明 unknown = 不明
custom = カスタム custom = カスタム
builtin = 組み込み builtin = 組み込み
map.delete.confirm = マップを削除してもよろしいですか? これは戻すことができません! map.delete.confirm = マップを削除してもよろしいですか? これは元に戻すことができません!
map.random = [accent]ランダムマップ map.random = [accent]ランダムマップ
map.nospawn = このマップにはスポーンするためのプレイヤーのコアがありません! [ROYAL]青い[]コアをエディターでマップに追加してください。 map.nospawn = このマップにはプレイヤーの出現するコアがありません! エディターで[ROYAL]青い[]コアをマップに追加してください。
map.nospawn.pvp = このマップには敵がスポーンするためのプレイヤーのコアがありません! [SCARLET]赤い[]コアをエディターでマップに追加してください。 map.nospawn.pvp = このマップにはプレイヤーの敵が出現するコアがありません! エディターで[SCARLET]青以外[]コアをマップに追加してください。
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor. map.nospawn.attack = このマップにはプレイヤーを攻撃する敵のコアがありません! エディターから[SCARLET]赤い[]コアを追加してください。
map.invalid = マップの読み込みエラー: ファイルが無効、または破損しています。 map.invalid = マップの読み込みエラー: ファイルが無効、または破損しています。
editor.brush = ブラシ editor.brush = ブラシ
editor.openin = エディターで開く editor.openin = エディターで開く
@@ -199,9 +202,9 @@ editor.waves = ウェーブ:
waves.title = ウェーブ waves.title = ウェーブ
waves.remove = 削除 waves.remove = 削除
waves.never = <永久> waves.never = <永久>
waves.every = every waves.every = ウェーブ
waves.waves = ウェーブごとに出現 waves.waves = ごとに出現
waves.perspawn = スポーン waves.perspawn = 体出現
waves.to = から waves.to = から
waves.boss = ボス waves.boss = ボス
waves.preview = プレビュー waves.preview = プレビュー
@@ -226,30 +229,30 @@ editor.resize = リサイズ
editor.loadmap = マップを読み込む 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 = すでに存在しているマップを読み込む
editor.importfile = ファイルをインポート editor.importfile = ファイルをインポート
editor.importfile.description = 外部マップファイルをインポート editor.importfile.description = 外部マップファイルを読み込む
editor.importimage = 古いイメージをインポート editor.importimage = 古いイメージをインポート
editor.importimage.description = 外部イメージファイルをインポート editor.importimage.description = 外部イメージファイルを読み込む
editor.export = エクスポート... editor.export = エクスポート...
editor.exportfile = ファイルをエクスポート editor.exportfile = ファイルをエクスポート
editor.exportfile.description = マップファイルをエクスポート editor.exportfile.description = マップファイルをエクスポートする
editor.exportimage = 地形イメージをエクスポート editor.exportimage = 地形イメージをエクスポート
editor.exportimage.description = イメージファイルをエクスポート editor.exportimage.description = イメージファイルをエクスポートする
editor.loadimage = 地形をインポート editor.loadimage = 地形をインポート
editor.saveimage = 地形をエクスポート editor.saveimage = 地形をエクスポート
editor.unsaved = [scarlet]保存されていない変更があります![]\n終了してもよろしいですか? editor.unsaved = [scarlet]保存されていない変更があります![]\n終了してもよろしいですか?
editor.resizemap = マップをリサイズ editor.resizemap = マップをリサイズ
editor.mapname = マップ名: editor.mapname = マップ名:
editor.overwrite = [accent]警告!\n存在するマップを上書きします。 editor.overwrite = [accent]警告!\nすでに存在するマップを上書きします。
editor.overwrite.confirm = [scarlet]警告![] この名前のマップがすでに存在します。上書きしてもよろしいですか? editor.overwrite.confirm = [scarlet]警告![] すでに同じ名前のマップが存在します。上書きしてもよろしいですか?
editor.selectmap = 読み込むマップを選択: editor.selectmap = 読み込むマップを選択:
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below. filters.empty = [LIGHT_GRAY]フィルターが設定されていません! 下のボタンからフィルターを追加してください。
filter.distort = ゆがみ filter.distort = ゆがみ
filter.noise = ノイズ filter.noise = ノイズ
filter.ore = 鉱石 filter.ore = 鉱石
@@ -278,52 +281,56 @@ save = 保存
fps = FPS: {0} fps = FPS: {0}
tps = TPS: {0} tps = TPS: {0}
ping = Ping: {0}ms ping = Ping: {0}ms
language.restart = 言語設定有効にするにはゲームを再起動してください language.restart = ゲームを再起動後、言語設定有効になります。
settings = 設定 settings = 設定
tutorial = チュートリアル tutorial = チュートリアル
editor = エディター editor = エディター
mapeditor = マップエディター mapeditor = マップエディター
donate = 寄附 donate = 寄附
abandon = 撤退 abandon = 撤退
abandon.text = このゾーンとすべての資源が敵に奪われます。 abandon.text = このゾーンとすべての資源が敵に奪われます。
locked = ロック locked = ロック
complete = [LIGHT_GRAY]完了: complete = [LIGHT_GRAY]達成済み:
zone.requirement = Wave {0} in zone {1} zone.requirement = ゾーン {1} でウェーブ {0} を達成
resume = 再開ゾーン:\n[LIGHT_GRAY]{0} resume = 再開ゾーン:\n[LIGHT_GRAY]{0}
bestwave = [LIGHT_GRAY]最高ウェーブ: {0} bestwave = [LIGHT_GRAY]最高ウェーブ: {0}
launch = 出撃 launch = 発射
launch.title = 出撃成功 launch.title = 発射成功
launch.next = [LIGHT_GRAY]次の出撃は ウェーブ {0} launch.next = [LIGHT_GRAY]次の発射は ウェーブ {0}
launch.unable = [scarlet]出撃できません[] 敵によって妨害されています。 launch.unable = [scarlet]発射できません[] 敵によって妨害されています。
launch.confirm = すべての資源がコアに搬入されます。\nもうこの基地には戻ってくることはできません。 launch.confirm = すべての資源がコアに搬入されます。\nもうこの基地には戻ってくることはできません。
uncover = uncover =
configure = 積荷の設定 configure = 積荷の設定
configure.locked = [LIGHT_GRAY]ウェーブ {0} を達成すると積荷を設定できるようになります。 configure.locked = [LIGHT_GRAY]ウェーブ {0} を達成すると積荷を設定できるようになります。
zone.unlocked = [LIGHT_GRAY]{0} がアンロックされました. zone.unlocked = [LIGHT_GRAY]{0} がアンロックされました.
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met. zone.requirement.complete = ウェーブ {0} を達成:\n{1} の開放条件を達成しました。
zone.config.complete = ウェーブ {0} を達成:\n積荷の設定が解除されました。 zone.config.complete = ウェーブ {0} を達成:\n積荷の設定が解除されました。
zone.resources = 発見した資源: zone.resources = 発見した資源:
add = 追加... add = 追加...
boss.health = ボスのHP boss.health = ボスのHP
connectfail = [crimson]サーバーへの接続できませんでした:\n\n[accent]{0} connectfail = [crimson]サーバーへの接続できませんでした:\n\n[accent]{0}
error.unreachable = サーバーに到達できません。\nアドレスは正しいですか? error.unreachable = サーバーに到達できません。\nアドレスは正しいですか?
error.invalidaddress = 無効なアドレスです。 error.invalidaddress = 無効なアドレスです。
error.timedout = タイムアウトしました!\nホストがポート開放されているか確認してください。アドレスは正しいです! error.timedout = タイムアウトしました!\nホストがポート開放されているか確認してください。また、このアドレスは無効なアドレスではありません!
error.mismatch = パケットエラー:\nクライアント/サーバーのバージョンが一致しません。\nゲームとホストが最新のMindustryか確認してください! error.mismatch = パケットエラー:\n恐らくクライアント/サーバーのバージョンが一致していません。\nゲームとホストが最新のMindustryかどうかを確認してください!
error.alreadyconnected = すでに接続されています。 error.alreadyconnected = すでに接続されています。
error.mapnotfound = マップファイルが見つかりません! error.mapnotfound = マップファイルが見つかりません!
error.io = ネットワークエラーです。 error.io = ネットワークエラーです。
error.any = 不明なネットワークエラーです。 error.any = 不明なネットワークエラーです。
zone.groundZero.name = グラウンド · ゼロ zone.groundZero.name = グラウンド · ゼロ
zone.desertWastes.name = Desert Wastes zone.desertWastes.name = デザート · ウェーツ
zone.craters.name = ザ · クレーター zone.craters.name = ザ · クレーター
zone.frozenForest.name = フローズン · フォレスト zone.frozenForest.name = フローズン · フォレスト
zone.ruinousShores.name = ルーイナス · ショアーズ zone.ruinousShores.name = ルーイナス · ショアーズ
zone.stainedMountains.name = ステインド · マウンテン zone.stainedMountains.name = ステインド · マウンテン
zone.desolateRift.name = ディサレット · リフト zone.desolateRift.name = ディサレット · リフト
zone.nuclearComplex.name = ニュークリア · プロダクション · コンプレックス zone.nuclearComplex.name = ニュークリア · プロダクション · コンプレックス
zone.overgrowth.name = Overgrowth zone.overgrowth.name = オーバーグロウス
zone.tarFields.name = Tar Fields zone.tarFields.name = ター · フィールズ
settings.language = 言語 settings.language = 言語
settings.reset = デフォルトにリセット settings.reset = デフォルトにリセット
settings.rebind = 再設定 settings.rebind = 再設定
@@ -332,7 +339,7 @@ settings.game = ゲーム
settings.sound = サウンド settings.sound = サウンド
settings.graphics = グラフィック settings.graphics = グラフィック
settings.cleardata = データを削除... settings.cleardata = データを削除...
settings.clear.confirm = データを削除してもよろしいですか?\n元に戻すことはできません! settings.clear.confirm = データを削除してもよろしいですか?\nこれを元に戻すことはできません!
settings.clearall.confirm = [scarlet]警告![]\nこれはすべてのデータが削除されます。これにはセーブデータ、マップ、アンロック、キーバインドが含まれます。\n「ok」 を押すと、すべてのデータが削除され、自動的に終了します。 settings.clearall.confirm = [scarlet]警告![]\nこれはすべてのデータが削除されます。これにはセーブデータ、マップ、アンロック、キーバインドが含まれます。\n「ok」 を押すと、すべてのデータが削除され、自動的に終了します。
settings.clearunlocks = アンロックを削除 settings.clearunlocks = アンロックを削除
settings.clearall = すべてを削除 settings.clearall = すべてを削除
@@ -342,16 +349,16 @@ no = いいえ
info.title = 情報 info.title = 情報
error.title = [crimson]エラーが発生しました error.title = [crimson]エラーが発生しました
error.crashtitle = エラーが発生しました error.crashtitle = エラーが発生しました
blocks.input = Input blocks.input = 搬入
blocks.output = Output blocks.output = 搬出
blocks.booster = Booster blocks.booster = ブースト
block.unknown = [LIGHT_GRAY]??? block.unknown = [LIGHT_GRAY]???
blocks.powercapacity = 電力容量 blocks.powercapacity = 電力容量
blocks.powershot = 電力/ショット blocks.powershot = 電力/ショット
blocks.targetsair = 対空攻撃 blocks.targetsair = 対空攻撃
blocks.targetsground = 対地攻撃 blocks.targetsground = 対地攻撃
blocks.itemsmoved = 輸送速度 blocks.itemsmoved = 輸送速度
blocks.launchtime = Time Between Launches blocks.launchtime = 発射の待機時間
blocks.shootrange = 範囲 blocks.shootrange = 範囲
blocks.size = 大きさ blocks.size = 大きさ
blocks.liquidcapacity = 液体容量 blocks.liquidcapacity = 液体容量
@@ -360,23 +367,25 @@ blocks.poweruse = 電力使用量
blocks.powerdamage = 電力/ダメージ blocks.powerdamage = 電力/ダメージ
blocks.itemcapacity = アイテム容量 blocks.itemcapacity = アイテム容量
blocks.basepowergeneration = 基本発電量 blocks.basepowergeneration = 基本発電量
blocks.productiontime = Production Time blocks.productiontime = 製造速度
blocks.repairtime = Block Full Repair Time blocks.repairtime = ブロックの完全修復速度
blocks.speedincrease = Speed Increase blocks.speedincrease = 速度向上
blocks.range = Range blocks.range = 範囲
blocks.drilltier = ドリル blocks.drilltier = ドリル
blocks.drillspeed = 基本採掘速度 blocks.drillspeed = 基本採掘速度
blocks.boosteffect = Boost Effect blocks.boosteffect = ブースト効果
blocks.maxunits = 最大ユニット数 blocks.maxunits = 最大ユニット数
blocks.health = 耐久値 blocks.health = 耐久値
blocks.buildtime = 建設時間
blocks.inaccuracy = 精度のずれ blocks.inaccuracy = 精度のずれ
blocks.shots = ショット blocks.shots = ショット
blocks.reload = ショット/秒 blocks.reload = ショット/秒
blocks.ammo = 弾薬 blocks.ammo = 弾薬
bar.drillspeed = 採掘速度: {0}/秒 bar.drillspeed = 採掘速度: {0}/秒
bar.efficiency = 効率: {0}% bar.efficiency = 効率: {0}%
bar.powerbalance = 電力: {0} bar.powerbalance = 電力: {0}/秒
bar.poweramount = Power: {0} bar.poweramount = 電力: {0}
bar.poweroutput = 電力発電量: {0} bar.poweroutput = 電力発電量: {0}
bar.items = アイテム: {0} bar.items = アイテム: {0}
bar.liquid = 液体 bar.liquid = 液体
@@ -384,17 +393,19 @@ bar.heat = 熱
bar.power = 電力 bar.power = 電力
bar.progress = 建設状況 bar.progress = 建設状況
bar.spawned = ユニット数: {0}/{1} bar.spawned = ユニット数: {0}/{1}
bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.damage = [stat]{0}[lightgray] ダメージ
bullet.incendiary = [stat]incendiary bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[lightgray] タイル
bullet.homing = [stat]homing bullet.incendiary = [stat]焼夷弾
bullet.shock = [stat]shock bullet.homing = [stat]ホーミング
bullet.frag = [stat]frag bullet.shock = [stat]電撃
bullet.knockback = [stat]{0}[lightgray] knockback bullet.frag = [stat]爆発弾
bullet.freezing = [stat]freezing bullet.knockback = [stat]{0}[lightgray] ノックバック
bullet.tarred = [stat]tarred bullet.freezing = [stat]フリーズ
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier bullet.tarred = [stat]タール弾
bullet.reload = [stat]{0}[lightgray]x reload bullet.multiplier = [stat]弾薬 {0}[lightgray]
bullet.reload = [stat]リロード速度 {0}[lightgray]倍
unit.blocks = ブロック unit.blocks = ブロック
unit.powersecond = 電力/秒 unit.powersecond = 電力/秒
unit.liquidsecond = 液体/秒 unit.liquidsecond = 液体/秒
@@ -403,24 +414,24 @@ unit.liquidunits = 液体
unit.powerunits = 電力 unit.powerunits = 電力
unit.degrees = unit.degrees =
unit.seconds = unit.seconds =
unit.persecond = /sec unit.persecond = /
unit.timesspeed = x speed unit.timesspeed = 倍の速度
unit.percent = % unit.percent = %
unit.items = アイテム unit.items = アイテム
category.general = 一般 category.general = 一般
category.power = 電力 category.power = 電力
category.liquids = 液体 category.liquids = 液体
category.items = アイテム category.items = アイテム
category.crafting = 製作速度 category.crafting = 搬入/搬出
category.shooting = 攻撃速度 category.shooting = ショット
category.optional = 機能強化オプション category.optional = 強化オプション
setting.landscape.name = Lock Landscape setting.landscape.name = 横画面で固定
setting.shadows.name = Shadows setting.shadows.name =
setting.animatedwater.name = 水のアニメーション setting.animatedwater.name = 水のアニメーション
setting.animatedshields.name = Animated Shields setting.animatedshields.name = シールドのアニメーション
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] setting.antialias.name = アンチエイリアス[LIGHT_GRAY] (再起動が必要)[]
setting.indicators.name = 味方の方角表示 setting.indicators.name = 敵/味方の方角表示
setting.autotarget.name = 自動ターゲット setting.autotarget.name = オートターゲット
setting.fpscap.name = 最大FPS setting.fpscap.name = 最大FPS
setting.fpscap.none = なし setting.fpscap.none = なし
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
@@ -437,25 +448,25 @@ setting.sensitivity.name = 操作感度
setting.saveinterval.name = 自動保存間隔 setting.saveinterval.name = 自動保存間隔
setting.seconds = {0} 秒 setting.seconds = {0} 秒
setting.fullscreen.name = フルスクリーン setting.fullscreen.name = フルスクリーン
setting.borderless.name = Borderless Window setting.borderless.name = ボーダーレスウィンドウ (再起動が必要な可能性があります)
setting.fps.name = FPSを表示 setting.fps.name = FPSを表示
setting.vsync.name = VSync setting.vsync.name = VSync
setting.lasers.name = 電力レーザーを表示 setting.lasers.name = 電力を表示
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance) setting.pixelate.name = ピクセル化 [LIGHT_GRAY](パフォーマンスが低下する可能性があります)
setting.minimap.name = ミニマップを表示 setting.minimap.name = ミニマップを表示
setting.musicvol.name = 音楽 音量 setting.musicvol.name = 音楽 音量
setting.mutemusic.name = 音楽をミュート setting.mutemusic.name = 音楽をミュート
setting.sfxvol.name = 効果音 音量 setting.sfxvol.name = 効果音 音量
setting.mutesound.name = 効果音をミュート setting.mutesound.name = 効果音をミュート
setting.crashreport.name = 匿名でクラッシュレポートを送信する setting.crashreport.name = 匿名でクラッシュレポートを送信する
setting.chatopacity.name = Chat Opacity setting.chatopacity.name = チャットの透明度
setting.playerchat.name = Display In-Game Chat setting.playerchat.name = ゲーム内にチャットを表示
keybind.title = キーバインド keybind.title = キーバインドを再設定
category.general.name = 一般 category.general.name = 一般
category.view.name = 表示 category.view.name = 表示
category.multiplayer.name = マルチプレイ category.multiplayer.name = マルチプレイ
command.attack = 攻撃 command.attack = 攻撃
command.retreat = 退 command.retreat = 退
command.patrol = 巡回 command.patrol = 巡回
keybind.gridMode.name = ブロック選択 keybind.gridMode.name = ブロック選択
keybind.gridModeShift.name = カテゴリー選択 keybind.gridModeShift.name = カテゴリー選択
@@ -470,11 +481,11 @@ keybind.pick.name = ブロックの選択
keybind.break_block.name = ブロックの破壊 keybind.break_block.name = ブロックの破壊
keybind.deselect.name = 選択解除 keybind.deselect.name = 選択解除
keybind.shoot.name = ショット keybind.shoot.name = ショット
keybind.zoom_hold.name = ズーム長押し keybind.zoom_hold.name = 長押しズーム
keybind.zoom.name = ズーム keybind.zoom.name = ズーム
keybind.menu.name = メニュー keybind.menu.name = メニュー
keybind.pause.name = ポーズ keybind.pause.name = ポーズ
keybind.minimap.name = Minimap keybind.minimap.name = ミニマップ
keybind.dash.name = ダッシュ keybind.dash.name = ダッシュ
keybind.chat.name = チャット keybind.chat.name = チャット
keybind.player_list.name = プレイヤーリスト keybind.player_list.name = プレイヤーリスト
@@ -488,39 +499,41 @@ keybind.drop_unit.name = ドロップユニット
keybind.zoom_minimap.name = ミニマップのズーム keybind.zoom_minimap.name = ミニマップのズーム
mode.help.title = モード説明 mode.help.title = モード説明
mode.survival.name = サバイバル mode.survival.name = サバイバル
mode.survival.description = 通常のモードです。 限られた資源で自動的にウェーブが進行します。 mode.survival.description = 通常のモードです。 資源も限られる中、自動的にウェーブが進行していきます。
mode.sandbox.name = サンドボックス mode.sandbox.name = サンドボックス
mode.sandbox.description = 無限の資源ウェーブを自由に進行できます。 mode.sandbox.description = 無限の資源があり、ウェーブを自由に進行できます。
mode.pvp.name = PvP mode.pvp.name = PvP
mode.pvp.description = ローカル内で他のプレイヤーと戦います。 mode.pvp.description = エリア内で他のプレイヤーと戦います。
mode.attack.name = アタック mode.attack.name = アタック
mode.attack.description = ウェーブがなく、敵の基地を破壊することを目指します。 mode.attack.description = ウェーブがなく、敵の基地を破壊することを目指します。
mode.custom = Custom Rules mode.custom = カスタムルール
rules.infiniteresources = Infinite Resources
rules.wavetimer = Wave Timer rules.infiniteresources = 資源の無限化
rules.waves = Waves rules.wavetimer = ウェーブの自動進行
rules.enemyCheat = Infinite AI Resources rules.waves = ウェーブ
rules.unitdrops = Unit Drops rules.enemyCheat = 敵の資源の無限化
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier rules.unitdrops = ユニットの戦利品
rules.unithealthmultiplier = Unit Health Multiplier rules.unitbuildspeedmultiplier = ユニットの製造速度倍率
rules.playerhealthmultiplier = Player Health Multiplier rules.unithealthmultiplier = ユニットの体力倍率
rules.playerdamagemultiplier = Player Damage Multiplier rules.playerhealthmultiplier = プレイヤーの体力倍率
rules.unitdamagemultiplier = Unit Damage Multiplier rules.playerdamagemultiplier = プレイヤーのダメージ倍率
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.unitdamagemultiplier = ユニットのダメージ倍率
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.enemycorebuildradius = 敵コア周辺の建設禁止区域の半径: [LIGHT_GRAY] (タイル)
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) rules.respawntime = 復活までの待機時間:[LIGHT_GRAY] ()
rules.buildcostmultiplier = Build Cost Multiplier rules.wavespacing = ウェーブ間の待機時間:[LIGHT_GRAY] (秒)
rules.buildspeedmultiplier = Build Speed Multiplier rules.buildcostmultiplier = 建設コストの倍率
rules.waitForWaveToEnd = Waves wait for enemies rules.buildspeedmultiplier = 建設速度の倍率
rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles) rules.waitForWaveToEnd = 敵が倒されるまでウェーブの進行を中断
rules.respawns = Max respawns per wave rules.dropzoneradius = 出現範囲の半径:[LIGHT_GRAY] (タイル)
rules.limitedRespawns = Limit Respawns rules.respawns = ウェーブごとの最大復活回数
rules.title.waves = Waves rules.limitedRespawns = 復活回数の制限
rules.title.respawns = Respawns rules.title.waves = ウェーブ
rules.title.resourcesbuilding = Resources & Building rules.title.respawns = 復活
rules.title.player = Players rules.title.resourcesbuilding = 資源 & 建設
rules.title.enemy = Enemies rules.title.player = プレイヤー
rules.title.unit = Units rules.title.enemy =
rules.title.unit = ユニット
content.item.name = アイテム content.item.name = アイテム
content.liquid.name = 液体 content.liquid.name = 液体
content.unit.name = ユニット content.unit.name = ユニット
@@ -536,23 +549,23 @@ item.graphite.name = 黒鉛
item.titanium.name = チタン item.titanium.name = チタン
item.titanium.description = 希少で非常に軽量な金属です。液体輸送やドリル、航空機などで使われます。 item.titanium.description = 希少で非常に軽量な金属です。液体輸送やドリル、航空機などで使われます。
item.thorium.name = トリウム item.thorium.name = トリウム
item.thorium.description = 放射性を持つ高密度な金属です。建物の補強や核燃料として使われます。 item.thorium.description = 放射性を持つ高密度な金属です。建物の支えや核燃料として使われます。
item.silicon.name = シリコン item.silicon.name = シリコン
item.silicon.description = 非常に有用な半導体でソーラーパネルや多くの複雑な機械に応用できます。 item.silicon.description = 非常に有用な半導体でソーラーパネルや多くの複雑な機械に応用できます。
item.plastanium.name = プラスタニウム item.plastanium.name = プラスタニウム
item.plastanium.description = 軽量で伸縮性のある材料です。機体や弾薬に使用されます。 item.plastanium.description = 軽量で伸縮性のある材料です。高度な航空機や分散型の弾薬として使用されます。
item.phase-fabric.name = フェーズファイバー item.phase-fabric.name = フェーズファイバー
item.phase-fabric.description = 極めて軽量な素材です。高度な機械や自己修復技術に使用されます。 item.phase-fabric.description = 極めて軽量な素材です。高度な機械や自己修復技術に使用されます。
item.surge-alloy.name = サージ合金 item.surge-alloy.name = サージ合金
item.surge-alloy.description = 電気的特性を持った特殊な合金です。 item.surge-alloy.description = 電気的特性を持った特殊な合金です。
item.spore-pod.name = 胞子ポッド item.spore-pod.name = 胞子ポッド
item.spore-pod.description = 石油や爆薬、燃料への転換使用されます。 item.spore-pod.description = 石油や爆薬、燃料への転換として使用されます。
item.sand.name = item.sand.name =
item.sand.description = 合金や融剤など広く使用されている一般的な材料です。 item.sand.description = 合金や融剤など広く使用されている一般的な材料です。
item.blast-compound.name = 爆発性化合物 item.blast-compound.name = 爆発性化合物
item.blast-compound.description = 爆弾や爆発物に使われる揮発性の化合物です。燃料として燃やすこともできますが、お勧めしません。 item.blast-compound.description = 爆弾や爆発物に使われる揮発性の化合物です。燃料として燃やすこともできますが、お勧めしません。
item.pyratite.name = ピラタイト item.pyratite.name = ピラタイト
item.pyratite.description = 兵器などに使われる非常に燃えやすい物質です。 item.pyratite.description = 焼夷兵器などに使われる非常に燃えやすい物質です。
item.metaglass.name = メタガラス item.metaglass.name = メタガラス
item.metaglass.description = とても頑丈な強化ガラスです。液体の輸送やタンクとして幅広く使われています。 item.metaglass.description = とても頑丈な強化ガラスです。液体の輸送やタンクとして幅広く使われています。
item.scrap.name = スクラップ item.scrap.name = スクラップ
@@ -562,26 +575,26 @@ liquid.slag.name = スラグ
liquid.oil.name = 石油 liquid.oil.name = 石油
liquid.cryofluid.name = 冷却水 liquid.cryofluid.name = 冷却水
mech.alpha-mech.name = アルファ mech.alpha-mech.name = アルファ
mech.alpha-mech.weapon = 武装機関砲 mech.alpha-mech.weapon = 重機関砲
mech.alpha-mech.ability = ドローン部隊 mech.alpha-mech.ability = 再生
mech.alpha-mech.description = 一般的な機体です。標準的な速度と攻撃力を持っています。攻撃力を高めるために最大3体のドローン機を持っています。 mech.alpha-mech.description = 一般的な機体です。十分な速度と攻撃性能です。
mech.delta-mech.name = デルタ mech.delta-mech.name = デルタ
mech.delta-mech.weapon = 電撃砲 mech.delta-mech.weapon = 電撃砲
mech.delta-mech.ability = 放電 mech.delta-mech.ability = 放電
mech.delta-mech.description = 高速移動する敵のために素早く軽量化された機体です。建物にはほとんどダメージを与えられませんが、電撃でたくさんの敵攻撃することができます。 mech.delta-mech.description = 突撃攻撃が可能な素早く軽量化された機体です。建物にはダメージをほとんど与えられませんが、電撃によって多くの敵攻撃することができます。
mech.tau-mech.name = タウ mech.tau-mech.name = タウ
mech.tau-mech.weapon = 修復レーザー mech.tau-mech.weapon = 再構築レーザー
mech.tau-mech.ability = リペアバースト mech.tau-mech.ability = リペアバースト
mech.tau-mech.description = 支援型機体です。ダメージを受けたブロックを修復や火災の消火、半径内の味方の治療を行います。 mech.tau-mech.description = 支援型機体です。攻撃を受けた味方のブロックを修復します。修復能力によって周辺の味方を修復します。
mech.omega-mech.name = オメガ mech.omega-mech.name = オメガ
mech.omega-mech.weapon = ロケット弾 mech.omega-mech.weapon = ロケット弾
mech.omega-mech.ability = プロテクター mech.omega-mech.ability = 特殊装甲
mech.omega-mech.description = 最前線での攻撃向けに作られた大型機体です。プロテクターによってダメージの90%を防ぐことができます。 mech.omega-mech.description = 最前線での攻撃向けに作られた大型機体です。特殊装甲によってダメージの90%を防ぐことができます。
mech.dart-ship.name = ダーツ mech.dart-ship.name = ダーツ
mech.dart-ship.weapon = 機関砲 mech.dart-ship.weapon = 機関砲
mech.dart-ship.description = 一般的な機体です。軽く高速で使いやすいですが、攻撃能力はほとんどなく採掘速度も遅いのが難点です。 mech.dart-ship.description = 一般的な機体です。軽く高速で使いやすいですが、攻撃能力はほとんどなく採掘速度も遅いのが難点です。
mech.javelin-ship.name = ジャベリン mech.javelin-ship.name = ジャベリン
mech.javelin-ship.description = 高速移動ができる機体です。最初は遅いですが、敵基地飛行能力が飛躍的に高まり、電撃やミサイルで多量のダメージを与えることができます。 mech.javelin-ship.description = 突撃攻撃型の機体です。最初の速度は遅いですが、敵基地が近づくと飛行能力が飛躍的に高まり、電撃やミサイルで大きなダメージを与えることができます。
mech.javelin-ship.weapon = バーストミサイル mech.javelin-ship.weapon = バーストミサイル
mech.javelin-ship.ability = 放電ブースター mech.javelin-ship.ability = 放電ブースター
mech.trident-ship.name = トライデント mech.trident-ship.name = トライデント
@@ -601,24 +614,25 @@ mech.itemcapacity = [LIGHT_GRAY]アイテム容量: {0}
mech.minespeed = [LIGHT_GRAY]採掘速度: {0} mech.minespeed = [LIGHT_GRAY]採掘速度: {0}
mech.minepower = [LIGHT_GRAY]採掘性能: {0} mech.minepower = [LIGHT_GRAY]採掘性能: {0}
mech.ability = [LIGHT_GRAY]能力: {0} mech.ability = [LIGHT_GRAY]能力: {0}
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}% mech.buildspeed = [LIGHT_GRAY]建設速度: {0}%
liquid.heatcapacity = [LIGHT_GRAY]熱容量: {0} liquid.heatcapacity = [LIGHT_GRAY]熱容量: {0}
liquid.viscosity = [LIGHT_GRAY]粘度: {0} liquid.viscosity = [LIGHT_GRAY]粘度: {0}
liquid.temperature = [LIGHT_GRAY]温度: {0} liquid.temperature = [LIGHT_GRAY]温度: {0}
block.grass.name = block.grass.name =
block.salt.name = 岩塩氷河 block.salt.name = 岩塩氷河
block.saltrocks.name = Salt Rocks block.saltrocks.name = 岩塩
block.pebbles.name = Pebbles block.pebbles.name = 小石
block.tendrils.name = Tendrils block.tendrils.name = つる
block.sandrocks.name = 砂岩 block.sandrocks.name = 砂岩
block.spore-pine.name = 胞子の松の木 block.spore-pine.name = 胞子の松の木
block.sporerocks.name = 胞子の岩 block.sporerocks.name = 胞子の岩
block.rock.name = block.rock.name =
block.snowrock.name = Snow Rock block.snowrock.name = 雪の積もった岩
block.shale.name = 泥板岩 block.shale.name = 泥板岩
block.shale-boulder.name = 泥板岩の丸石 block.shale-boulder.name = 泥板岩の丸石
block.moss.name = コケ block.moss.name = コケ
block.shrubs.name = Shrubs block.shrubs.name = 低木
block.spore-moss.name = 胞子のコケ block.spore-moss.name = 胞子のコケ
block.shalerocks.name = 泥板岩の岩 block.shalerocks.name = 泥板岩の岩
block.scrap-wall.name = スクラップの壁 block.scrap-wall.name = スクラップの壁
@@ -626,28 +640,28 @@ block.scrap-wall-large.name = 大きなスクラップの壁
block.scrap-wall-huge.name = とても大きなスクラップの壁 block.scrap-wall-huge.name = とても大きなスクラップの壁
block.scrap-wall-gigantic.name = 巨大なスクラップの壁 block.scrap-wall-gigantic.name = 巨大なスクラップの壁
block.thruster.name = スラスター block.thruster.name = スラスター
block.kiln.name = かまど block.kiln.name = 溶解炉
block.kiln.description = 砂と鉛を溶かしてメタガラスを生成します。少量の電力が必要です。 block.kiln.description = 砂と鉛を溶かしてメタガラスを生成します。少量の電力が必要です。
block.graphite-press.name = 黒鉛圧縮機 block.graphite-press.name = 黒鉛圧縮機
block.multi-press.name = マルチ圧縮機 block.multi-press.name = マルチ圧縮機
block.constructing = {0}\n[LIGHT_GRAY](建設中) block.constructing = {0}\n[LIGHT_GRAY](建設中)
block.spawn.name = 敵のスポーン block.spawn.name = 敵の出現場所
block.core-shard.name = コア: シャード block.core-shard.name = コア: シャード
block.core-foundation.name = コア: ファンデーション block.core-foundation.name = コア: ファンデーション
block.core-nucleus.name = コア: ニュークリアス block.core-nucleus.name = コア: ニュークリアス
block.deepwater.name = 深層水 block.deepwater.name = 深層水
block.water.name = block.water.name =
block.tainted-water.name = Tainted Water block.tainted-water.name = 汚れた水
block.darksand-tainted-water.name = Dark Sand Tainted Water block.darksand-tainted-water.name = 黒い砂で汚れた水
block.tar.name = タール block.tar.name = タール
block.stone.name = block.stone.name =
block.sand.name = block.sand.name =
block.darksand.name = Dark Sand block.darksand.name = 黒い砂
block.ice.name = block.ice.name =
block.snow.name = block.snow.name =
block.craters.name = クレーター block.craters.name = クレーター
block.sand-water.name = 濁った水 block.sand-water.name = 濁った水
block.darksand-water.name = Dark Sand Water block.darksand-water.name = 黒い砂で濁った水
block.char.name = 焦げ跡 block.char.name = 焦げ跡
block.holostone.name = ホロストーン block.holostone.name = ホロストーン
block.ice-snow.name = 雪氷 block.ice-snow.name = 雪氷
@@ -664,30 +678,29 @@ block.metal-floor-2.name = 金属製の地面 2
block.metal-floor-3.name = 金属製の地面 3 block.metal-floor-3.name = 金属製の地面 3
block.metal-floor-5.name = 金属製の地面 5 block.metal-floor-5.name = 金属製の地面 5
block.metal-floor-damaged.name = 破壊された金属製の地面 block.metal-floor-damaged.name = 破壊された金属製の地面
block.creeptree.name = Creeptree block.dark-panel-1.name = ダークパネル 1
block.dark-panel-1.name = Dark Panel 1 block.dark-panel-2.name = ダークパネル 2
block.dark-panel-2.name = Dark Panel 2 block.dark-panel-3.name = ダークパネル 3
block.dark-panel-3.name = Dark Panel 3 block.dark-panel-4.name = ダークパネル 4
block.dark-panel-4.name = Dark Panel 4 block.dark-panel-5.name = ダークパネル 5
block.dark-panel-5.name = Dark Panel 5 block.dark-panel-6.name = ダークパネル 6
block.dark-panel-6.name = Dark Panel 6 block.dark-metal.name = ダークメタル
block.dark-metal.name = Dark Metal
block.ignarock.name = イグナロック block.ignarock.name = イグナロック
block.hotrock.name = ホットロック block.hotrock.name = ホットロック
block.magmarock.name = マグマロック block.magmarock.name = マグマロック
block.cliffs.name = block.cliffs.name =
block.copper-wall.name = 銅の壁 block.copper-wall.name = 銅の壁
block.copper-wall-large.name = な銅の壁 block.copper-wall-large.name = 大な銅の壁
block.titanium-wall.name = チタンの壁 block.titanium-wall.name = チタンの壁
block.titanium-wall-large.name = なチタンの壁 block.titanium-wall-large.name = 大なチタンの壁
block.phase-wall.name = フェーズファイバーの壁 block.phase-wall.name = フェーズファイバーの壁
block.phase-wall-large.name = なフェーズファイバーの壁 block.phase-wall-large.name = 大なフェーズファイバーの壁
block.thorium-wall.name = トリウムの壁 block.thorium-wall.name = トリウムの壁
block.thorium-wall-large.name = なトリウムの壁 block.thorium-wall-large.name = 大なトリウムの壁
block.door.name = ドア block.door.name = ドア
block.door-large.name = きなドア block.door-large.name = 型のドア
block.duo.name = デュオ block.duo.name = デュオ
block.scorch.name = Scorch block.scorch.name = スコーチ
block.scatter.name = スキャッター block.scatter.name = スキャッター
block.hail.name = ヘイル block.hail.name = ヘイル
block.lancer.name = ランサー block.lancer.name = ランサー
@@ -697,9 +710,9 @@ block.junction.name = ジャンクション
block.router.name = ルーター block.router.name = ルーター
block.distributor.name = ディストリビューター block.distributor.name = ディストリビューター
block.sorter.name = ソーター block.sorter.name = ソーター
block.sorter.description = アイテムを分別して搬出します。設定されたアイテムは通過させ、異なるアイテムの場合、左右に搬出します。 block.sorter.description = アイテムを分別して搬出します。設定たアイテムは通過させます。他のアイテムが搬入されると側面にアイテムを搬出します。
block.overflow-gate.name = オーバーフローゲート block.overflow-gate.name = オーバーフローゲート
block.overflow-gate.description = 搬出先がいっぱいの場合に左右にアイテムを搬出します。 block.overflow-gate.description = 搬出先にアイテムを搬入する空きがない場合に左右にアイテムを搬出します。
block.silicon-smelter.name = シリコン溶鉱炉 block.silicon-smelter.name = シリコン溶鉱炉
block.phase-weaver.name = フェーズ織機 block.phase-weaver.name = フェーズ織機
block.pulverizer.name = 粉砕機 block.pulverizer.name = 粉砕機
@@ -708,7 +721,7 @@ block.melter.name = 融合機
block.incinerator.name = 焼却炉 block.incinerator.name = 焼却炉
block.spore-press.name = 胞子圧縮機 block.spore-press.name = 胞子圧縮機
block.separator.name = 分離機 block.separator.name = 分離機
block.coal-centrifuge.name = Coal Centrifuge block.coal-centrifuge.name = 石炭遠心分離機
block.power-node.name = 電源ノード block.power-node.name = 電源ノード
block.power-node-large.name = 大型電源ノード block.power-node-large.name = 大型電源ノード
block.surge-tower.name = サージタワー block.surge-tower.name = サージタワー
@@ -723,13 +736,13 @@ block.pneumatic-drill.name = 空気圧ドリル
block.laser-drill.name = レーザードリル block.laser-drill.name = レーザードリル
block.water-extractor.name = ウォーターポンプ block.water-extractor.name = ウォーターポンプ
block.cultivator.name = 培養機 block.cultivator.name = 培養機
block.dart-mech-pad.name = Dart Mech Pad block.dart-mech-pad.name = アルファ整備台
block.delta-mech-pad.name = デルタパッド block.delta-mech-pad.name = デルタ整備台
block.javelin-ship-pad.name = ジャベリンパッド block.javelin-ship-pad.name = ジャベリン整備台
block.trident-ship-pad.name = トライデントパッド block.trident-ship-pad.name = トライデント整備台
block.glaive-ship-pad.name = グライブパッド block.glaive-ship-pad.name = グライブ整備台
block.omega-mech-pad.name = オメガパッド block.omega-mech-pad.name = オメガ整備台
block.tau-mech-pad.name = タウパッド block.tau-mech-pad.name = タウ整備台
block.conduit.name = パイプ block.conduit.name = パイプ
block.mechanical-pump.name = 機械ポンプ block.mechanical-pump.name = 機械ポンプ
block.item-source.name = アイテムソース block.item-source.name = アイテムソース
@@ -774,7 +787,7 @@ 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 = Mender block.mender.name = 修復機
block.mend-projector.name = 修復プロジェクター block.mend-projector.name = 修復プロジェクター
block.surge-wall.name = サージの壁 block.surge-wall.name = サージの壁
block.surge-wall-large.name = 大きなサージの壁 block.surge-wall-large.name = 大きなサージの壁
@@ -788,8 +801,8 @@ block.rtg-generator.name = RTG発電機
block.spectre.name = スペクター block.spectre.name = スペクター
block.meltdown.name = メルトダウン block.meltdown.name = メルトダウン
block.container.name = コンテナー block.container.name = コンテナー
block.launch-pad.name = 出撃パッド block.launch-pad.name = 発射台
block.launch-pad.description = コアの出撃不要で多くのアイテムを脱出します。これは未完成です block.launch-pad.description = コアを発射することなく、沢山のアイテムを発射します。まだ未完成だよ
block.launch-pad-large.name = 大型発射台 block.launch-pad-large.name = 大型発射台
team.blue.name = ブルー team.blue.name = ブルー
team.red.name = レッド team.red.name = レッド
@@ -798,14 +811,14 @@ team.none.name = グレー
team.green.name = グリーン team.green.name = グリーン
team.purple.name = パープル team.purple.name = パープル
unit.spirit.name = スピリットドローン unit.spirit.name = スピリットドローン
unit.spirit.description = 初期のドローンユニットです。デフォルトでコアからスポーンします。自動で鉱石の採掘やブロックの修理をます。 unit.spirit.description = 手軽なドローンユニットです。最初からコアに出現します。鉱石の採掘やブロックの修理を自動で行います。
unit.phantom.name = ファントムドローン unit.phantom.name = ファントムドローン
unit.phantom.description = 改良された小型ドローンユニットです。自動で鉱石の採掘やブロックの修理をします。スピリットドローンを遥かに凌ぐ性能す。 unit.phantom.description = 高度な小型ドローンユニットです。自動で鉱石の採掘やブロックの修理をします。スピリットドローンを遥かに凌ぐ性能を誇ります。
unit.dagger.name = ダガー unit.dagger.name = ダガー
unit.dagger.description = 一般的な地上ユニットです。集団になるほど有用です。 unit.dagger.description = 基本的な地上ユニットです。集団になると便利に使えます。
unit.crawler.name = クローラー unit.crawler.name = クローラー
unit.titan.name = タイタン unit.titan.name = タイタン
unit.titan.description = 改良された武装地上ユニットです。地上と航空機の両方に攻撃ます。 unit.titan.description = 高度な武装地上ユニットです。空と地上の両方の敵に攻撃を行います。
unit.ghoul.name = グール爆撃機 unit.ghoul.name = グール爆撃機
unit.ghoul.description = 重爆撃機です。 unit.ghoul.description = 重爆撃機です。
unit.wraith.name = レースファイター unit.wraith.name = レースファイター
@@ -848,11 +861,11 @@ block.phase-wall-large.description = トリウムの壁ほど強固ではない
block.surge-wall.description = 最も硬い防壁ブロックです。\nたまに攻撃されると敵に電撃を与えます。 block.surge-wall.description = 最も硬い防壁ブロックです。\nたまに攻撃されると敵に電撃を与えます。
block.surge-wall-large.description = 最も硬い大型防壁ブロックです。\nたまに攻撃されると敵に電撃を与えます。 block.surge-wall-large.description = 最も硬い大型防壁ブロックです。\nたまに攻撃されると敵に電撃を与えます。
block.door.description = 小さなドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。 block.door.description = 小さなドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。
block.door-large.description = きなドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。 block.door-large.description = 型のドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。
block.mend-projector.description = 定期的に周辺のブロックを修復します。 block.mend-projector.description = 定期的に周辺のブロックを修復します。
block.overdrive-projector.description = ドリルやコンベアなど、近くの施設の効率を向上させます。 block.overdrive-projector.description = ドリルやコンベアなど、近くの施設の効率を向上させます。
block.force-projector.description = 周囲に六角形の力場を作り出し、内部の建造物やユニットなどを守ります。 block.force-projector.description = 周囲に六角形の力場を作り出し、内部の建造物やユニットなどを守ります。
block.shock-mine.description = 敵が踏むと、ダメージを与えます。敵に見えません。 block.shock-mine.description = 踏んだ敵にダメージを与えます。敵に見えることはありません。
block.duo.description = 小さく安価なターレットです。 block.duo.description = 小さく安価なターレットです。
block.scatter.description = 中規模の対空型ターレットです。敵に鉛またはスクラップの塊を分散するように発射させます。 block.scatter.description = 中規模の対空型ターレットです。敵に鉛またはスクラップの塊を分散するように発射させます。
block.arc.description = 小型の電撃型ターレットです。敵に向かってランダムな半円状に電撃を放ちます。 block.arc.description = 小型の電撃型ターレットです。敵に向かってランダムな半円状に電撃を放ちます。
@@ -886,48 +899,48 @@ block.separator.description = 石を水圧で砕き、石に含まれる様々
block.power-node.description = 電力ード間で電力の送電を行います。最大で4つの電力源やードなどに接続できます。隣接するブロックから電力の送電や供給を行います。 block.power-node.description = 電力ード間で電力の送電を行います。最大で4つの電力源やードなどに接続できます。隣接するブロックから電力の送電や供給を行います。
block.power-node-large.description = 巨大な電力ードです。最大で6つの電力源やードに接続できます。 block.power-node-large.description = 巨大な電力ードです。最大で6つの電力源やードに接続できます。
block.battery.description = 余分な電力の充電して、貯めておくことができます。必要があれば、溜まった電力を供給します。 block.battery.description = 余分な電力の充電して、貯めておくことができます。必要があれば、溜まった電力を供給します。
block.battery-large.description = 通常のバッテリーよりもたくさんの電力を溜めておくことができます block.battery-large.description = 通常のバッテリーよりもたくさんの電力を溜めておくことができます
block.combustion-generator.description = 石油や可燃性の物質を燃やして発電します。 block.combustion-generator.description = 石油や可燃性の物質を燃やして発電します。
block.turbine-generator.description = 水を使って火力発電機より効率的に発電します。 block.turbine-generator.description = 水を使って火力発電機より効率的に発電します。
block.thermal-generator.description = 溶岩から大量の電力を発電します。 block.thermal-generator.description = 溶岩から大量の電力を発電します。
block.solar-panel.description = 太陽光から少量の電力を発電します。 block.solar-panel.description = 太陽光から少量の電力を発電します。
block.solar-panel-large.description = 建設費が高価ですが、通常のソーラーパネルより大量の電力を発電することができます。 block.solar-panel-large.description = 高価な建設費と引き換えに、通常のソーラーパネルより大量の電力を発電することができます。
block.thorium-reactor.description = 高い放射性を持ったトリウムから大量の電力を発電します。これには一定の冷却が必要です。冷却が不十分な場合、大きな爆発が発生します。 block.thorium-reactor.description = 高い放射性を持ったトリウムから大量の電力を発電します。これには一定の冷却が必要です。冷却が不十分な場合、大きな爆発が発生します。
block.rtg-generator.description = トリウムリアクターよりも発電量は少ないですが、冷却を必要としない放射性同位体熱発電機(RTG)です。 block.rtg-generator.description = トリウムリアクターよりも発電量は少ないですが、冷却を必要としない放射性同位体熱発電機(RTG)です。
block.unloader.description = コンテナやボールト、コアからアイテムをコンベアーか隣接するブロックに搬出します。搬出機をタップして搬出するアイテムを変更することができます。 block.unloader.description = コンテナやボールト、コアからアイテムをコンベアーか隣接するブロックに搬出します。搬出機をタップして搬出するアイテムを変更することができます。
block.container.description = 各種類のアイテムを少量ずつ保管します。隣接するコンテナーやボール卜、コアは一つのストレージユニットとして扱われます。 [LIGHT_GRAY]搬出機[]を使って、コンテナーからアイテムを搬出できます。 block.container.description = 各種類のアイテムを少量ずつ保管します。隣接するコンテナーやボール卜、コアは一つのストレージユニットとして扱われます。 [LIGHT_GRAY]搬出機[]を使って、コンテナーからアイテムを搬出できます。
block.vault.description = 各種類のアイテムを大量に保管します。隣接するコンテナーやボール卜、コアは一つのストレージユニットとして扱われます。[LIGHT_GRAY]搬出機[]を使って、ボールトからアイテムを搬出できます。 block.vault.description = 各種類のアイテムを大量に保管します。隣接するコンテナーやボール卜、コアは一つのストレージユニットとして扱われます。[LIGHT_GRAY]搬出機[]を使って、ボールトからアイテムを搬出できます。
block.mechanical-drill.description = 安価なドリルです。採掘可能な鉱脈に設置すると、アイテムを採掘して搬出します。 block.mechanical-drill.description = 安価なドリルです。採掘可能な鉱脈に設置すると、アイテムを採掘して搬出します。
block.pneumatic-drill.description = 速く採掘できるように改されたドリルです。また、より硬い鉱石も採掘することができます。 block.pneumatic-drill.description = より速く採掘できるように改されたドリルです。また、より硬い鉱石も採掘することができます。
block.laser-drill.description = 電力を使用して、レーザー技術でより速く採掘することができます。また、放射性のトリウムを回収することができます。 block.laser-drill.description = 電力を使用しレーザー技術でより速く採掘することができます。また、放射性のトリウムを回収することができます。
block.blast-drill.description = 上位のドリルです。大量の電力が必要す。 block.blast-drill.description = 上位のドリルです。大量の電力が必要になります。
block.water-extractor.description = 地面から水を汲み上げます。近くに湖がない場合に有用です。 block.water-extractor.description = 地面から水を汲み上げます。近くに湖がない場合に有用です。
block.cultivator.description = 胞子の小さな集まりを工業用ポッドに培養します。 block.cultivator.description = 胞子の小さな集まりを工業用ポッドに培養します。
block.oil-extractor.description = 大量の電力を使用して、砂から石油を回収します。近くに油田がない場合に有用です。 block.oil-extractor.description = 大量の電力を使用して、砂から石油を回収します。近くに油田がない場合に有用です。
block.trident-ship-pad.description = 機体を重装備の爆撃機に乗り換えます。\nパッドに乗ってダブルタップすることで使用することができます。 block.trident-ship-pad.description = 機体を重装備の爆撃機に乗り換えます。\n整備台に乗ってダブルタップすることで使用することができます。
block.javelin-ship-pad.description = 機体を高速で強力な電撃砲を搭載した迎撃機に乗り換えます。\nパッドに乗ってダブルタップすることで使用することができます。 block.javelin-ship-pad.description = 機体を高速で強力な電撃砲を搭載した迎撃機に乗り換えます。\n整備台に乗ってダブルタップすることで使用することができます。
block.glaive-ship-pad.description = 機体を重装備の大型攻撃機に乗り換えます。\nパッドに乗ってダブルタップすることで使用することができます。 block.glaive-ship-pad.description = 機体を重装備の大型攻撃機に乗り換えます。\n整備台に乗ってダブルタップすることで使用することができます。
block.tau-mech-pad.description = 機体を味方の建造物やユニットの修復が可能な支援型機体に乗り換えます。\nパッドに乗ってダブルタップすることで使用することができます。 block.tau-mech-pad.description = 機体を味方の建造物やユニットの修復が可能な支援型機体に乗り換えます。\n整備台に乗ってダブルタップすることで使用することができます。
block.delta-mech-pad.description = 機体を高速で突撃攻撃に向いた軽装備の機体に乗り換えます。\nパッドに乗ってダブルタップすることで使用することができます。 block.delta-mech-pad.description = 機体を高速で突撃攻撃に向いた軽装備の機体に乗り換えます。\n整備台に乗ってダブルタップすることで使用することができます。
block.omega-mech-pad.description = 機体を最前線での戦闘に向いた重装備の機体に乗り換えます。\nパッドに乗ってダブルタップすることで使用することができます。 block.omega-mech-pad.description = 機体を最前線での戦闘に向いた重装備の機体に乗り換えます。\n整備台に乗ってダブルタップすることで使用することができます。
block.spirit-factory.description = 鉱石の採掘やブロックの修復を行う小型のドローンユニットのスピリットを製造します。 block.spirit-factory.description = 鉱石の採掘やブロックの修復を行う小型のドローンユニットのスピリットを製造します。
block.phantom-factory.description = スピリットドローンの性能を遥かに凌ぐ上位のドローンユニットのファントムドローンを製造します。 block.phantom-factory.description = スピリットドローンの性能を遥かに凌ぐ上位のドローンユニットのファントムドローンを製造します。
block.wraith-factory.description = 高速で突撃攻撃が可能な迎撃ユニットのレースファイターを製造します。 block.wraith-factory.description = 高速で突撃攻撃が可能な迎撃ユニットのレースファイターを製造します。
block.ghoul-factory.description = 大型爆撃機のグールを製造します。 block.ghoul-factory.description = 大型爆撃機のグールを製造します。
block.dagger-factory.description = 基本的な地上ユニットのダガーを製造します。 block.dagger-factory.description = 基本的な地上ユニットのダガーを製造します。
block.titan-factory.description = 改良された武装地上ユニットのタイタンを製造します。 block.titan-factory.description = 高度な武装地上ユニットのタイタンを製造します。
block.fortress-factory.description = 大型の砲撃地上ユニットのフォートレスを製造します。 block.fortress-factory.description = 大型の砲撃地上ユニットのフォートレスを製造します。
block.revenant-factory.description = 大型のレーザー航空ユニットのレベナントを製造します。 block.revenant-factory.description = 大型のレーザー航空ユニットのレベナントを製造します。
block.repair-point.description = 近くの負傷したユニットを修復します。 block.repair-point.description = 近くの負傷したユニットを修復します。
block.conduit.description = 一般的な液体輸送ブロックです。液体版のコンベアーです。ポンプや他のパイプに使うことができます。 block.conduit.description = 一般的な液体輸送ブロックです。液体版のコンベアーです。ポンプや他のパイプに使うことができます。
block.pulse-conduit.description = 改良された液体輸送ブロックです。通常のパイプより速く、たくさんのアイテムを輸送することができます。 block.pulse-conduit.description = 高度な液体輸送ブロックです。通常のパイプより速く、たくさんのアイテムを輸送することができます。
block.phase-conduit.description = 改良された液体輸送ブロックです。電力を使用して、液体を他の離れたフェーズパイプに転送することができます。 block.phase-conduit.description = 高度な液体輸送ブロックです。電力を使用して、液体を他の離れたフェーズパイプに転送することができます。
block.liquid-router.description = 搬入したアイテムをほかの3方向に均等に搬出します。液体の漏れを防ぐことができます。一つの資源から複数に分ける際などに使われます。 block.liquid-router.description = 搬入したアイテムをほかの3方向に均等に搬出します。液体の漏れを防ぐことができます。一つの資源から複数に分ける際などに使われます。
block.liquid-tank.description = 大量の液体を保管しておくことができます。需要が不安定な製造設備や重要な施設の冷却水の予備などとして使用されます。 block.liquid-tank.description = 大量の液体を保管しておくことができます。需要が不安定な製造設備や重要な施設の冷却水の予備などとして使用されます。
block.liquid-junction.description = パイプを他のパイプと交差できるようにします。それぞれ搬入した液体を前方に搬出します。パイプで複雑な構造を組み立てるときなどに使われます。 block.liquid-junction.description = パイプを他のパイプと交差できるようにします。それぞれ搬入した液体を前方に搬出します。パイプで複雑な構造を組み立てるときなどに使われます。
block.bridge-conduit.description = 高度な液体輸送ブロックです。地形や建物を超えて、3ブロック離れた場所に液体を輸送することができます。 block.bridge-conduit.description = 高度な液体輸送ブロックです。地形や建物を超えて、3ブロック離れた場所に液体を輸送することができます。
block.mechanical-pump.description = 安価なポンプです。搬出速度は遅いですが、電力を使わず使用できます。 block.mechanical-pump.description = 安価なポンプです。搬出速度は遅いですが、電力を使わず使用できます。
block.rotary-pump.description = 改良されたポンプです。電力を使用して2倍速く搬出することができます。 block.rotary-pump.description = 高度なポンプです。電力を使用して2倍速く搬出することができます。
block.thermal-pump.description = 最高性能のポンプです。 block.thermal-pump.description = 最高性能のポンプです。
block.router.description = 搬入したアイテムをほかの3方向に均等に搬出します。一つの資源から複数に分ける際などに使われます。 block.router.description = 搬入したアイテムをほかの3方向に均等に搬出します。一つの資源から複数に分ける際などに使われます。
block.distributor.description = 高度なルーターです。搬入したアイテムをほかの7方向に均等に分けて搬出します。 block.distributor.description = 高度なルーターです。搬入したアイテムをほかの7方向に均等に分けて搬出します。

View File

@@ -1,8 +1,8 @@
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
credits = 제작자 credits = 제작자
contributors = 번역 및 기여자들 contributors = 번역 및 기여자들
discord = mindustry discord 에 참여 해 보세요! discord = Mindustry Discord 에 참여 해 보세요!
link.discord.description = 공식 mindustry discord 채팅방 link.discord.description = 공식 Mindustry Discord 채팅방
link.github.description = 게임 소스코드 link.github.description = 게임 소스코드
link.dev-builds.description = 불안정한 개발 빌드들 link.dev-builds.description = 불안정한 개발 빌드들
link.trello.description = 다음 출시될 기능들을 게시판 공식 Trello 보드 link.trello.description = 다음 출시될 기능들을 게시판 공식 Trello 보드
@@ -86,13 +86,8 @@ trace = 플레이어 정보 보기
trace.playername = 이름: [accent]{0} trace.playername = 이름: [accent]{0}
trace.ip = IP: [accent]{0}{0} trace.ip = IP: [accent]{0}{0}
trace.id = 고유 ID: [accent]{0} trace.id = 고유 ID: [accent]{0}
trace.android = Android 클라이언트: [accent]{0} trace.mobile = 모바일 클라이언트: [accent]{0}
trace.modclient = 수정된 클라이언트: [accent]{0} trace.modclient = 수정된 클라이언트: [accent]{0}
trace.totalblocksbroken = 총 블록 파괴 개수: [accent]{0}
trace.structureblocksbroken = 구조 블록 파괴 수: [accent]{0}
trace.lastblockbroken = 마지막으로 파괴한 블록: [accent]{0}
trace.totalblocksplaced = 총 설치한 블록 개수: [accent]{0}
trace.lastblockplaced = 마지막으로 설치한 블록: [accent]{0}
invalidid = 잘못된 클라이언트 ID 입니다! 버그 보고서를 제출 해 주세요. invalidid = 잘못된 클라이언트 ID 입니다! 버그 보고서를 제출 해 주세요.
server.bans = 차단된 유저 server.bans = 차단된 유저
server.bans.none = 차단된 플레이어가 없습니다. server.bans.none = 차단된 플레이어가 없습니다.
@@ -196,6 +191,8 @@ editor.mapinfo = 맵 정보
editor.author = 만든이: editor.author = 만든이:
editor.description = 설명: editor.description = 설명:
editor.waves = 웨이브: editor.waves = 웨이브:
editor.rules = 규칙:
editor.ingame = 인게임 편집
waves.title = 웨이브 waves.title = 웨이브
waves.remove = 삭제 waves.remove = 삭제
waves.never = <절대> waves.never = <절대>
@@ -213,10 +210,15 @@ waves.copied = 웨이브 복사됨
editor.default = [LIGHT_GRAY]<기본값> editor.default = [LIGHT_GRAY]<기본값>
edit = 편집... edit = 편집...
editor.name = 이름: editor.name = 이름:
editor.spawn = 유닛 생성
editor.removeunit = 유닛 삭제
editor.teams = editor.teams =
editor.elevation = 지형 높이 editor.elevation = 지형 높이
editor.errorload = [accent]{0} 파일을 불러오는데 실패했습니다. editor.errorload = [accent]{0} 파일을 불러오는데 실패했습니다.
editor.errorsave = [accent]{0} 파일을 저장하는데 실패했습니다. editor.errorsave = [accent]{0} 파일을 저장하는데 실패했습니다.
editor.errorimage = 이것은 맵이 아니라 사진입니다. 확장자를 바꿔서 시도할 생각하지 마세요.\n\n예전 맵을 가져올려면 편집기의 '예전 맵 가져오기' 버튼을 사용하세요.
editor.errorlegacy = 이 맵은 너무 오래되어, 더이상 지원하지 않는 맵 형식을 사용합니다.
editor.errorheader = 이 맵 파일은 유효하지 않거나 손상되었습니다.
editor.errorname = 맵에 이름이 지정되어 있지 않습니다. editor.errorname = 맵에 이름이 지정되어 있지 않습니다.
editor.update = 업데이트 editor.update = 업데이트
editor.randomize = 랜덤 editor.randomize = 랜덤
@@ -250,7 +252,7 @@ editor.overwrite = [accept]경고!이 명령은 기존 맵을 덮어씌우게
editor.overwrite.confirm = [scarlet]경고![] 이 이름을 가진 맵이 이미 있습니다. 덮어 쓰시겠습니까? editor.overwrite.confirm = [scarlet]경고![] 이 이름을 가진 맵이 이미 있습니다. 덮어 쓰시겠습니까?
editor.selectmap = 불러올 맵 선택: editor.selectmap = 불러올 맵 선택:
filters.empty = [LIGHT_GRAY]필터가 없습니다!! 아래 버튼을 눌러 추가하세요. filters.empty = [LIGHT_GRAY]필터가 없습니다!! 아래 버튼을 눌러 추가하세요.
filter.distort = 비틀기 filter.distort = 왜곡
filter.noise = 노이즈 filter.noise = 노이즈
filter.ore = 자원 filter.ore = 자원
filter.rivernoise = 협곡 노이즈 filter.rivernoise = 협곡 노이즈
@@ -269,6 +271,8 @@ filter.option.wall = 벽
filter.option.ore = 자원 filter.option.ore = 자원
filter.option.floor2 = 2번째 바닥 filter.option.floor2 = 2번째 바닥
filter.option.threshold2 = 2번째 한계점 filter.option.threshold2 = 2번째 한계점
filter.option.radius = 반경
filter.option.percentile = 백분위수
width = 넓이: width = 넓이:
height = 높이: height = 높이:
menu = 메뉴 menu = 메뉴
@@ -315,7 +319,7 @@ error.mapnotfound = 맵 파일을 찾을 수 없습니다!
error.io = 네트워크 I/O 오류. error.io = 네트워크 I/O 오류.
error.any = 알 수 없는 네트워크 오류. error.any = 알 수 없는 네트워크 오류.
zone.groundZero.name = 그라운드 제로 zone.groundZero.name = 그라운드 제로
zone.desertWastes.name = 사막 쓰레기 zone.desertWastes.name = 쓰레기 사막
zone.craters.name = 분화구 zone.craters.name = 분화구
zone.frozenForest.name = 얼어붙은 숲 zone.frozenForest.name = 얼어붙은 숲
zone.ruinousShores.name = 파멸의 기슭 zone.ruinousShores.name = 파멸의 기슭
@@ -416,6 +420,7 @@ category.shooting = 사격
category.optional = 보조 아이템 category.optional = 보조 아이템
setting.landscape.name = 가로화면으로 고정 setting.landscape.name = 가로화면으로 고정
setting.shadows.name = 그림자 setting.shadows.name = 그림자
setting.linear.name = 선형 필터링
setting.animatedwater.name = 움직이는 물 setting.animatedwater.name = 움직이는 물
setting.animatedshields.name = 움직이는 보호막 setting.animatedshields.name = 움직이는 보호막
setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[] setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[]
@@ -429,7 +434,7 @@ setting.difficulty.training = 훈련
setting.difficulty.easy = 쉬움 setting.difficulty.easy = 쉬움
setting.difficulty.normal = 보통 setting.difficulty.normal = 보통
setting.difficulty.hard = 어려움 setting.difficulty.hard = 어려움
setting.difficulty.insane = 매우 어려움 setting.difficulty.insane = 미침
setting.difficulty.name = 난이도: setting.difficulty.name = 난이도:
setting.screenshake.name = 화면 흔들기 setting.screenshake.name = 화면 흔들기
setting.effects.name = 화면 효과 setting.effects.name = 화면 효과
@@ -437,7 +442,7 @@ setting.sensitivity.name = 컨트롤러 감도
setting.saveinterval.name = 저장 간격 setting.saveinterval.name = 저장 간격
setting.seconds = setting.seconds =
setting.fullscreen.name = 전체 화면 setting.fullscreen.name = 전체 화면
setting.borderless.name = 테두리 없는 창모드 setting.borderlesswindow.name = 테두리 없는 창모드[LIGHT_GRAY] (재시작이 필요할 수 있습니다)
setting.fps.name = FPS 표시 setting.fps.name = FPS 표시
setting.vsync.name = VSync 활성화 setting.vsync.name = VSync 활성화
setting.lasers.name = 전력 노드 레이저 표시 setting.lasers.name = 전력 노드 레이저 표시
@@ -607,9 +612,9 @@ liquid.viscosity = [LIGHT_GRAY]점도: {0}
liquid.temperature = [LIGHT_GRAY]온도: {0} liquid.temperature = [LIGHT_GRAY]온도: {0}
block.grass.name = 잔디 block.grass.name = 잔디
block.salt.name = 소금 block.salt.name = 소금
block.saltrocks.name = Salt Rocks block.saltrocks.name = 소금 바위
block.pebbles.name = 조약돌 block.pebbles.name = 조약돌
block.tendrils.name = 텐드릴 block.tendrils.name = 덩굴
block.sandrocks.name = 모래 바위 block.sandrocks.name = 모래 바위
block.spore-pine.name = 포자 소나무 block.spore-pine.name = 포자 소나무
block.sporerocks.name = 포자 바위 block.sporerocks.name = 포자 바위
@@ -637,8 +642,8 @@ block.core-foundation.name = 코어-기초
block.core-nucleus.name = 코어-핵 block.core-nucleus.name = 코어-핵
block.deepwater.name = 깊은물 block.deepwater.name = 깊은물
block.water.name = block.water.name =
block.tainted-water.name = 도색된 물 block.tainted-water.name = 오염된 물
block.darksand-tainted-water.name = 검은 모래로 도색된 물 block.darksand-tainted-water.name = 검은 모래로 오염된 물
block.tar.name = 타르 block.tar.name = 타르
block.stone.name = block.stone.name =
block.sand.name = 모래 block.sand.name = 모래
@@ -659,11 +664,11 @@ block.pine.name = 소나무
block.white-tree-dead.name = 죽은 하얀나무 block.white-tree-dead.name = 죽은 하얀나무
block.white-tree.name = 하얀 나무 block.white-tree.name = 하얀 나무
block.spore-cluster.name = 포자낭 block.spore-cluster.name = 포자낭
block.metal-floor.name = 메탈 바닥 block.metal-floor.name = 금속제 바닥
block.metal-floor-2.name = 메탈 바닥 2 block.metal-floor-2.name = 금속제 바닥 2
block.metal-floor-3.name = 메탈 바닥 3 block.metal-floor-3.name = 금속제 바닥 3
block.metal-floor-5.name = 메탈 바닥 5 block.metal-floor-5.name = 금속제 바닥 5
block.metal-floor-damaged.name = 손상된 메탈 바닥 block.metal-floor-damaged.name = 손상된 금속제 바닥
block.creeptree.name = 섬뜩한 나무 block.creeptree.name = 섬뜩한 나무
block.dark-panel-1.name = 어두운 패널 1 block.dark-panel-1.name = 어두운 패널 1
block.dark-panel-2.name = 어두운 패널 2 block.dark-panel-2.name = 어두운 패널 2
@@ -671,7 +676,7 @@ block.dark-panel-3.name = 어두운 패널 3
block.dark-panel-4.name = 어두운 패널 4 block.dark-panel-4.name = 어두운 패널 4
block.dark-panel-5.name = 어두운 패널 5 block.dark-panel-5.name = 어두운 패널 5
block.dark-panel-6.name = 어두운 패널 6 block.dark-panel-6.name = 어두운 패널 6
block.dark-metal.name = 어두운 메탈 block.dark-metal.name = 어두운 금속제
block.ignarock.name = 얼은 바위 block.ignarock.name = 얼은 바위
block.hotrock.name = 뜨거운 바위 block.hotrock.name = 뜨거운 바위
block.magmarock.name = 마그마 바위 block.magmarock.name = 마그마 바위
@@ -718,12 +723,12 @@ block.combustion-generator.name = 화력 발전기
block.turbine-generator.name = 터빈 발전기 block.turbine-generator.name = 터빈 발전기
block.differential-generator.name = 차동 발전기 block.differential-generator.name = 차동 발전기
block.impact-reactor.name = 핵융합로 block.impact-reactor.name = 핵융합로
block.mechanical-drill.name = 기계 드릴 block.mechanical-drill.name = 기계 드릴
block.pneumatic-drill.name = 강철 드릴 block.pneumatic-drill.name = 공기 드릴
block.laser-drill.name = 레이저 드릴 block.laser-drill.name = 레이저 드릴
block.water-extractor.name = 물 추출기 block.water-extractor.name = 물 추출기
block.cultivator.name = 온실 block.cultivator.name = 온실
block.dart-mech-pad.name = 다트 기체 패드 block.dart-mech-pad.name = 알파 기체 패드
block.delta-mech-pad.name = 델타 기체 패드 block.delta-mech-pad.name = 델타 기체 패드
block.javelin-ship-pad.name = 재블린 비행선 패드 block.javelin-ship-pad.name = 재블린 비행선 패드
block.trident-ship-pad.name = 삼지창 비행선 패드 block.trident-ship-pad.name = 삼지창 비행선 패드
@@ -759,7 +764,7 @@ block.dagger-factory.name = 디거 기체 공장
block.crawler-factory.name = 크롤러 기체 공장 block.crawler-factory.name = 크롤러 기체 공장
block.titan-factory.name = 타이탄 기체 공장 block.titan-factory.name = 타이탄 기체 공장
block.fortress-factory.name = 포트리스 기체 공장 block.fortress-factory.name = 포트리스 기체 공장
block.revenant-factory.name = 레비트 전투기 공장 block.revenant-factory.name = 레비트 전투기 공장
block.repair-point.name = 수리 지점 block.repair-point.name = 수리 지점
block.pulse-conduit.name = 퓨즈 파이프 block.pulse-conduit.name = 퓨즈 파이프
block.phase-conduit.name = 상직물 파이프 block.phase-conduit.name = 상직물 파이프
@@ -789,7 +794,7 @@ block.spectre.name = 스펙터
block.meltdown.name = 멜트다운 block.meltdown.name = 멜트다운
block.container.name = 컨테이너 block.container.name = 컨테이너
block.launch-pad.name = 발사대 block.launch-pad.name = 발사대
block.launch-pad.description = 출격할 필요 없이 아이템을 수송시킵시다. 미완성. block.launch-pad.description = 출격할 필요 없이 아이템을 수송시킵시다.
block.launch-pad-large.name = 큰 출격 패드 block.launch-pad-large.name = 큰 출격 패드
team.blue.name = 블루팀 team.blue.name = 블루팀
team.red.name = 레드팀 team.red.name = 레드팀
@@ -812,10 +817,10 @@ unit.wraith.name = 유령 전투기
unit.wraith.description = 적 핵심 건물 및 유닛을 집중적으로 공격하는 방식을 사용하는 전투기 입니다. unit.wraith.description = 적 핵심 건물 및 유닛을 집중적으로 공격하는 방식을 사용하는 전투기 입니다.
unit.fortress.name = 포트리스 unit.fortress.name = 포트리스
unit.fortress.description = 중포 지상 유닛.\n높은 공격력을 가진 총과 높은 체력을 가지고 있습니다. unit.fortress.description = 중포 지상 유닛.\n높은 공격력을 가진 총과 높은 체력을 가지고 있습니다.
unit.revenant.name = 레비 unit.revenant.name = 레비
unit.eruptor.name = 럽터 unit.eruptor.name = 이럽터
unit.chaos-array.name = 카오스 배열 unit.chaos-array.name = 카오스 배열
unit.eradicator.name = unit.eradicator.name =
unit.lich.name = 리치 unit.lich.name = 리치
unit.reaper.name = 사신 unit.reaper.name = 사신
tutorial.begin = 플레이어의 주요 목표는 [LIGHT_GRAY]적군[]을 제거하는 것입니다.\n\n이 게임은 [accent]구리를 채광[]하는 것으로 시작합니다.\n이것을 하기 위해 플레이어의 중심부 근처에 있는 구리 광맥을 누르세요. tutorial.begin = 플레이어의 주요 목표는 [LIGHT_GRAY]적군[]을 제거하는 것입니다.\n\n이 게임은 [accent]구리를 채광[]하는 것으로 시작합니다.\n이것을 하기 위해 플레이어의 중심부 근처에 있는 구리 광맥을 누르세요.
@@ -854,12 +859,12 @@ block.overdrive-projector.description = 드릴과 컨베이어와 같은 인근
block.force-projector.description = 총알에게서 내부의 건물과 유닛을 보호하면서 그 주위에 육각형 보호막을 만듭니다. block.force-projector.description = 총알에게서 내부의 건물과 유닛을 보호하면서 그 주위에 육각형 보호막을 만듭니다.
block.shock-mine.description = 지뢰를 밟는 적에게 피해를 줍니다. 적에게는 거의 보이지 않습니다. block.shock-mine.description = 지뢰를 밟는 적에게 피해를 줍니다. 적에게는 거의 보이지 않습니다.
block.duo.description = 작고 싼 터렛. block.duo.description = 작고 싼 터렛.
block.scatter.description = A medium-sized anti-air turret. Sprays clumps of lead or scrap flak at enemy units. block.scatter.description = 중형 대공 터렛. 납이나 고철 덩어리를 적에게 쏩니다.
block.arc.description = 적을 향해 무작위 각도로 전기를 쏘는 작은 터렛. block.arc.description = 적을 향해 무작위 각도로 전기를 쏘는 작은 터렛.
block.hail.description = 작은 포병 터렛. block.hail.description = 작은 포병 터렛.
block.lancer.description = 충전된 전기빔을 쏘는 중형 터렛. block.lancer.description = 충전된 전기빔을 쏘는 중형 터렛.
block.wave.description = 액체를 뿜는 중간 크기의 속화 터렛. block.wave.description = 액체를 뿜는 중간 크기의 속화 터렛.
block.salvo.description = 살보에서 사격을 하는 중형 터렛. block.salvo.description = 일제히 사격을 하는 중형 터렛.
block.swarmer.description = 유도 미사일을 발사하는 중형 터렛. block.swarmer.description = 유도 미사일을 발사하는 중형 터렛.
block.ripple.description = 여러 발의 사격을 동시에 하는 대형 포대. block.ripple.description = 여러 발의 사격을 동시에 하는 대형 포대.
block.cyclone.description = 대형 초고속 사격 터렛. block.cyclone.description = 대형 초고속 사격 터렛.
@@ -888,7 +893,7 @@ block.power-node-large.description = 생성된 전력를 다른 건물로 전달
block.battery.description = 전력 생산량에 여유가 있을경우, 생산된 잉여 전력을 여기에 저장합니다. block.battery.description = 전력 생산량에 여유가 있을경우, 생산된 잉여 전력을 여기에 저장합니다.
block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 전력을 저장합니다. block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 전력을 저장합니다.
block.combustion-generator.description = 기름이나 인화성 물질을 태워 전력을 발생시킵니다. block.combustion-generator.description = 기름이나 인화성 물질을 태워 전력을 발생시킵니다.
block.turbine-generator.description = 연소기보다 효율적이지만, 추가 액체가 필요합니다. block.turbine-generator.description = 화력기보다 효율적이지만, 추가 액체가 필요합니다.
block.thermal-generator.description = 뜨거운 위치에 건설하면 전력을 생산합니다. block.thermal-generator.description = 뜨거운 위치에 건설하면 전력을 생산합니다.
block.solar-panel.description = 태양으로부터 소량의 전력을 공급합니다. block.solar-panel.description = 태양으로부터 소량의 전력을 공급합니다.
block.solar-panel-large.description = 일반 태양 전지판보다 훨씬 나은 전력을 공급하지만, 건축비도 훨씬 비쌉니다. block.solar-panel-large.description = 일반 태양 전지판보다 훨씬 나은 전력을 공급하지만, 건축비도 훨씬 비쌉니다.

View File

@@ -149,7 +149,7 @@ save.map = Mapa: {0}
save.wave = Horda {0} save.wave = Horda {0}
save.difficulty = Dificuldade: {0} save.difficulty = Dificuldade: {0}
save.date = Último salvamento: {0} save.date = Último salvamento: {0}
save.playtime = Playtime: {0} save.playtime = Tempo De Jogo: {0}
warning = Aviso. warning = Aviso.
confirm = Confirmar confirm = Confirmar
delete = Excluir delete = Excluir
@@ -172,11 +172,11 @@ loading = [accent]Carregando...
saving = [accent]Salvando... saving = [accent]Salvando...
wave = [accent]Horda {0} wave = [accent]Horda {0}
wave.waiting = Horda em {0} wave.waiting = Horda em {0}
wave.waveInProgress = [LIGHT_GRAY]Wave in progress wave.waveInProgress = [LIGHT_GRAY]Horda Em Progresso
waiting = Aguardando... waiting = Aguardando...
waiting.players = Esperando por jogadores... waiting.players = Esperando por jogadores...
wave.enemies = [LIGHT_GRAY]{0} Enimigos Restantes wave.enemies = [LIGHT_GRAY]{0} Inimigos Restantes
wave.enemy = [LIGHT_GRAY]{0} Enimigo Restante wave.enemy = [LIGHT_GRAY]{0} Inimigo Restante
loadimage = Carregar\nImagem loadimage = Carregar\nImagem
saveimage = Salvar\nImagem saveimage = Salvar\nImagem
unknown = Desconhecido unknown = Desconhecido
@@ -203,7 +203,7 @@ waves.every = a casa
waves.waves = ondas(s) waves.waves = ondas(s)
waves.perspawn = por spawn waves.perspawn = por spawn
waves.to = para waves.to = para
waves.boss = Boss waves.boss = Chefe
waves.preview = Prever waves.preview = Prever
waves.edit = Editar... waves.edit = Editar...
waves.copy = Copiar para área de transferência waves.copy = Copiar para área de transferência
@@ -517,10 +517,10 @@ rules.respawns = Max respawns per wave
rules.limitedRespawns = Limit Respawns rules.limitedRespawns = Limit Respawns
rules.title.waves = Waves rules.title.waves = Waves
rules.title.respawns = Respawns rules.title.respawns = Respawns
rules.title.resourcesbuilding = Resources & Building rules.title.resourcesbuilding = Recursos e Construções
rules.title.player = Players rules.title.player = Players
rules.title.enemy = Enemies rules.title.enemy = Inimigos
rules.title.unit = Units rules.title.unit = Unidades
content.item.name = Itens content.item.name = Itens
content.liquid.name = Liquidos content.liquid.name = Liquidos
content.unit.name = Unidades content.unit.name = Unidades
@@ -529,7 +529,7 @@ content.mech.name = Mecas
item.copper.name = Cobre item.copper.name = Cobre
item.copper.description = Um material de estrutura util. Usado extensivamente em Maioria dos blocos. item.copper.description = Um material de estrutura util. Usado extensivamente em Maioria dos blocos.
item.lead.name = Chumbo item.lead.name = Chumbo
item.lead.description = Material de comeco basico. usado intensivamente em Blocos de transporte de liquidos e eletronicos. item.lead.description = Material de começo basico. usado intensivamente em Blocos de transporte de liquidos e eletronicos.
item.coal.name = Carvão item.coal.name = Carvão
item.coal.description = Combustivel pronto. item.coal.description = Combustivel pronto.
item.graphite.name = Graphite item.graphite.name = Graphite
@@ -607,13 +607,13 @@ liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0} liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
block.grass.name = Grama block.grass.name = Grama
block.salt.name = Sal block.salt.name = Sal
block.saltrocks.name = Salt Rocks block.saltrocks.name = Pedras De Sal
block.pebbles.name = Pebbles block.pebbles.name = Pebbles
block.tendrils.name = Tendrils block.tendrils.name = Tendrils
block.sandrocks.name = Pedras de areia block.sandrocks.name = Pedras de areia
block.spore-pine.name = Pinheiro de esporo block.spore-pine.name = Pinheiro de esporo
block.sporerocks.name = Pedras de esporo block.sporerocks.name = Pedras de esporo
block.rock.name = Rock block.rock.name = Pedra
block.snowrock.name = Pedra de gelo block.snowrock.name = Pedra de gelo
block.shale.name = Xisto block.shale.name = Xisto
block.shale-boulder.name = Pedra de xisto block.shale-boulder.name = Pedra de xisto
@@ -637,7 +637,7 @@ block.core-foundation.name = Core: Fundação
block.core-nucleus.name = Core: Nucleus block.core-nucleus.name = Core: Nucleus
block.deepwater.name = água funda block.deepwater.name = água funda
block.water.name = Água block.water.name = Água
block.tainted-water.name = Agua contaminada block.tainted-water.name = Água contaminada
block.darksand-tainted-water.name = Água contaminada de areia escura block.darksand-tainted-water.name = Água contaminada de areia escura
block.tar.name = Tar block.tar.name = Tar
block.stone.name = Pedra block.stone.name = Pedra
@@ -646,8 +646,8 @@ block.darksand.name = Areia escura
block.ice.name = Gelo block.ice.name = Gelo
block.snow.name = Neve block.snow.name = Neve
block.craters.name = Crateras block.craters.name = Crateras
block.sand-water.name = Agua de areia block.sand-water.name = Água de areia
block.darksand-water.name = Agua de areia escura block.darksand-water.name = Água de areia escura
block.char.name = Char block.char.name = Char
block.holostone.name = Pedra holo block.holostone.name = Pedra holo
block.ice-snow.name = Gelo de neve block.ice-snow.name = Gelo de neve

View File

@@ -2,11 +2,11 @@ credits.text = Создатель [ROYAL] Anuken. - [SKY]anukendev@gmail.com[][]
credits = Авторы credits = Авторы
contributors = Переводчики и Помощники contributors = Переводчики и Помощники
discord = Присоединяйтесь к нашему Discord! discord = Присоединяйтесь к нашему Discord!
link.discord.description = Официальный discord-сервер Mindustry link.discord.description = Официальный Discord-сервер Mindustry
link.github.description = Исходный код игры link.github.description = Исходный код игры
link.dev-builds.description = Нестабильные версии link.dev-builds.description = Нестабильные версии
link.trello.description = Официальная доска trello для запланированных функций link.trello.description = Официальная доска Trello для запланированных функций
link.itch.io.description = itch.io страница с загрузкой ПК версии и веб-версией игры link.itch.io.description = Itch.io страница с загрузкой ПК версии и веб-версией игры
link.google-play.description = Скачать для Android c Google play link.google-play.description = Скачать для Android c Google play
link.wiki.description = Официальная вики Mindustry(англ.) link.wiki.description = Официальная вики Mindustry(англ.)
linkfail = Не удалось открыть ссылку!\nURL-адрес был скопирован в буфер обмена. linkfail = Не удалось открыть ссылку!\nURL-адрес был скопирован в буфер обмена.
@@ -86,13 +86,8 @@ 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.android = Клиент Android: [accent]{0} trace.mobile = Мобильный клиент: [accent]{0}
trace.modclient = Пользовательский клиент: [accent]{0} trace.modclient = Пользовательский клиент: [accent]{0}
trace.totalblocksbroken = Всего разрушено блоков: [accent]{0}
trace.structureblocksbroken = Структурных блоков сломано: [accent]{0}
trace.lastblockbroken = Последний сломанный блок:[accent]{0}
trace.totalblocksplaced = Всего размещено блоков: [accent]{0}
trace.lastblockplaced = Последний размещенный блок: [accent]{0}
invalidid = Недопустимый ID клиента! Отправьте отчёт об ошибке. invalidid = Недопустимый ID клиента! Отправьте отчёт об ошибке.
server.bans = Блокировки server.bans = Блокировки
server.bans.none = Заблокированных игроков нет! server.bans.none = Заблокированных игроков нет!
@@ -196,6 +191,8 @@ editor.mapinfo = Информация о карте
editor.author = Автор: editor.author = Автор:
editor.description = Описание: editor.description = Описание:
editor.waves = Волны: editor.waves = Волны:
editor.rules = Правила:
editor.ingame = Редактировать в игре
waves.title = Волны waves.title = Волны
waves.remove = Удалить waves.remove = Удалить
waves.never = <никогда> waves.never = <никогда>
@@ -213,6 +210,8 @@ waves.copied = Волны скопированы.
editor.default = [LIGHT_GRAY]<По умолчанию> editor.default = [LIGHT_GRAY]<По умолчанию>
edit = Редактировать... edit = Редактировать...
editor.name = Название: editor.name = Название:
editor.spawn = Создать боевую единицу
editor.removeunit = Удалить боевую единицу
editor.teams = Команды editor.teams = Команды
editor.elevation = Возвышенность editor.elevation = Возвышенность
editor.errorload = Ошибка загрузки изображения: [accent] {0} editor.errorload = Ошибка загрузки изображения: [accent] {0}
@@ -298,7 +297,7 @@ launch.unable = [scarlet]ЗАПУСК невозможен.[] {0} Враг.
launch.confirm = Это удалит все ресурсы в Вашем ядре.\nВы не сможете вернуться на эту базу. launch.confirm = Это удалит все ресурсы в Вашем ядре.\nВы не сможете вернуться на эту базу.
uncover = Раскрыть uncover = Раскрыть
configure = Выгрузить конфигурацию configure = Выгрузить конфигурацию
configure.locked = [LIGHT_GRAY]Разблокировать настройки выгрузки:\nВолна {0}. configure.locked = [LIGHT_GRAY]Разблокировать настройки выгрузки: Волна {0}.
zone.unlocked = [LIGHT_GRAY]{0} разблокировано. zone.unlocked = [LIGHT_GRAY]{0} разблокировано.
zone.requirement.complete = {0}-я волна достигнута:\nУсловия для зоны "{1}" исполнены. zone.requirement.complete = {0}-я волна достигнута:\nУсловия для зоны "{1}" исполнены.
zone.config.complete = {0} волн достигнуто:\nВыгружаемая конфигурация разблокирована zone.config.complete = {0} волн достигнуто:\nВыгружаемая конфигурация разблокирована
@@ -322,8 +321,8 @@ zone.ruinousShores.name = Разрушенные Берега
zone.stainedMountains.name = Окрашенные горы zone.stainedMountains.name = Окрашенные горы
zone.desolateRift.name = Пустынный Разлом zone.desolateRift.name = Пустынный Разлом
zone.nuclearComplex.name = Ядерный Производственный Комплекс zone.nuclearComplex.name = Ядерный Производственный Комплекс
zone.overgrowth.name = Overgrowth zone.overgrowth.name = Заросли
zone.tarFields.name = Tar Fields zone.tarFields.name = Дёгтяные поля
settings.language = Язык settings.language = Язык
settings.reset = Сбросить по умолчанию settings.reset = Сбросить по умолчанию
settings.rebind = Смена settings.rebind = Смена
@@ -369,6 +368,7 @@ blocks.drillspeed = Базовая скорость бурения
blocks.boosteffect = Ускоряющий эффект blocks.boosteffect = Ускоряющий эффект
blocks.maxunits = Максимальное количество активных единиц blocks.maxunits = Максимальное количество активных единиц
blocks.health = Здоровье blocks.health = Здоровье
blocks.buildtime = Время строительства
blocks.inaccuracy = Разброс blocks.inaccuracy = Разброс
blocks.shots = Выстрелы blocks.shots = Выстрелы
blocks.reload = Выстрелы/секунду blocks.reload = Выстрелы/секунду
@@ -414,8 +414,9 @@ category.items = Предметы
category.crafting = Ввод/вывод category.crafting = Ввод/вывод
category.shooting = рельба category.shooting = рельба
category.optional = Дополнительные улучшения category.optional = Дополнительные улучшения
setting.landscape.name = Сохранить ландшафт setting.landscape.name = Ландшафтный режим
setting.shadows.name = Тени setting.shadows.name = Тени
setting.linear.name = Линейная фильтрация
setting.animatedwater.name = Анимированная вода setting.animatedwater.name = Анимированная вода
setting.animatedshields.name = Анимированные щиты setting.animatedshields.name = Анимированные щиты
setting.antialias.name = Сглаживание[LIGHT_GRAY] (требует перезапуска)[] setting.antialias.name = Сглаживание[LIGHT_GRAY] (требует перезапуска)[]
@@ -425,11 +426,11 @@ setting.fpscap.name = Макс. FPS
setting.fpscap.none = Неограниченный setting.fpscap.none = Неограниченный
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.swapdiagonal.name = Всегда Диагональное Размещение setting.swapdiagonal.name = Всегда Диагональное Размещение
setting.difficulty.training = обучение setting.difficulty.training = Обучение
setting.difficulty.easy = легко setting.difficulty.easy = Легко
setting.difficulty.normal = нормально setting.difficulty.normal = Нормально
setting.difficulty.hard = тяжело setting.difficulty.hard = Тяжело
setting.difficulty.insane = безумно setting.difficulty.insane = Безумно
setting.difficulty.name = Сложность: setting.difficulty.name = Сложность:
setting.screenshake.name = Тряска экрана setting.screenshake.name = Тряска экрана
setting.effects.name = Эффекты setting.effects.name = Эффекты
@@ -437,7 +438,7 @@ setting.sensitivity.name = Чувствительность контроллер
setting.saveinterval.name = Интервал сохранения setting.saveinterval.name = Интервал сохранения
setting.seconds = {0} Секунд setting.seconds = {0} Секунд
setting.fullscreen.name = Полноэкранный режим setting.fullscreen.name = Полноэкранный режим
setting.borderless.name = Окно без границ setting.borderlesswindow.name = Окно без границ [LIGHT_GRAY] (может потребоваться перезапуск)
setting.fps.name = Показывать FPS setting.fps.name = Показывать FPS
setting.vsync.name = Верт. синхронизация setting.vsync.name = Верт. синхронизация
setting.lasers.name = Показывать энергию лазеров setting.lasers.name = Показывать энергию лазеров
@@ -553,8 +554,8 @@ item.blast-compound.name = Взрывная смесь
item.blast-compound.description = Летучее соединение, используемое в бомбах и взрывчатых веществах. Также может гореть в качестве топлива, но не рекомендуется этого делать. item.blast-compound.description = Летучее соединение, используемое в бомбах и взрывчатых веществах. Также может гореть в качестве топлива, но не рекомендуется этого делать.
item.pyratite.name = Пиротит item.pyratite.name = Пиротит
item.pyratite.description = Очень огнеопасное вещество, используемое в зажигательном оружии. item.pyratite.description = Очень огнеопасное вещество, используемое в зажигательном оружии.
item.metaglass.name = Биостекло item.metaglass.name = Метастекло
item.metaglass.description = Сверхпрочная смесь стекла. Широко используется для распределения и хранения жидкости. item.metaglass.description = Сверхпрочная смесь стекла и металла. Широко используется для распределения и хранения жидкости.
item.scrap.name = Металлолом item.scrap.name = Металлолом
item.scrap.description = Остатки старых сооружений и подразделений. Содержит незначительные количества многих различных металлов. item.scrap.description = Остатки старых сооружений и подразделений. Содержит незначительные количества многих различных металлов.
liquid.water.name = Вода liquid.water.name = Вода
@@ -627,7 +628,7 @@ block.scrap-wall-huge.name = Огромная стена из металлоло
block.scrap-wall-gigantic.name = Гигантская стена из металлолома block.scrap-wall-gigantic.name = Гигантская стена из металлолома
block.thruster.name = Толкатель block.thruster.name = Толкатель
block.kiln.name = Печь block.kiln.name = Печь
block.kiln.description = Выплавляет песок и свинец в биостекло. Требует малого количества энергии. block.kiln.description = Выплавляет песок и свинец в метастекло. Требует малого количества энергии.
block.graphite-press.name = Графитный пресс block.graphite-press.name = Графитный пресс
block.multi-press.name = Мульти-пресс block.multi-press.name = Мульти-пресс
block.constructing = {0}\n[LIGHT_GRAY](Строится) block.constructing = {0}\n[LIGHT_GRAY](Строится)
@@ -664,7 +665,6 @@ block.metal-floor-2.name = Металлический Пол 2
block.metal-floor-3.name = Металлический Пол 3 block.metal-floor-3.name = Металлический Пол 3
block.metal-floor-5.name = Металлический Пол 5 block.metal-floor-5.name = Металлический Пол 5
block.metal-floor-damaged.name = Повреждённый Металлический Пол block.metal-floor-damaged.name = Повреждённый Металлический Пол
block.creeptree.name = Жуткодерево
block.dark-panel-1.name = Тёмная Панель 1 block.dark-panel-1.name = Тёмная Панель 1
block.dark-panel-2.name = Тёмная Панель 2 block.dark-panel-2.name = Тёмная Панель 2
block.dark-panel-3.name = Тёмная Панель 3 block.dark-panel-3.name = Тёмная Панель 3
@@ -723,7 +723,7 @@ block.pneumatic-drill.name = Пневматический бур
block.laser-drill.name = Лазерный бур block.laser-drill.name = Лазерный бур
block.water-extractor.name = Гидроконденсатор block.water-extractor.name = Гидроконденсатор
block.cultivator.name = Культиватор block.cultivator.name = Культиватор
block.dart-mech-pad.name = Dart Mech Pad block.dart-mech-pad.name = Реконструктор "Альфа"
block.delta-mech-pad.name = Реконструктор "Дельта" block.delta-mech-pad.name = Реконструктор "Дельта"
block.javelin-ship-pad.name = Реконструктор "Джавелин" block.javelin-ship-pad.name = Реконструктор "Джавелин"
block.trident-ship-pad.name = Реконструктор "Трезубeц" block.trident-ship-pad.name = Реконструктор "Трезубeц"

View File

@@ -2,10 +2,10 @@ credits.text = Створив [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\nЄ
credits = Автори credits = Автори
contributors = Перекладачі та Помічники contributors = Перекладачі та Помічники
discord = Приєднуйтесь до нашого Discord! discord = Приєднуйтесь до нашого Discord!
link.discord.description = Офіційний discord-сервер Mindustry link.discord.description = Офіційний Discord-сервер Mindustry
link.github.description = Код гри link.github.description = Код гри
link.dev-builds.description = Нестабільні версії link.dev-builds.description = Нестабільні версії
link.trello.description = Офіційна дошка trello(на англ.) для запланованих функцій link.trello.description = Офіційна дошка Trello(англ.) для запланованих функцій
link.itch.io.description = Itch.io сторінка з веб-версією та завантаженням для ПК link.itch.io.description = Itch.io сторінка з веб-версією та завантаженням для ПК
link.google-play.description = Скачати з Google Play для Android link.google-play.description = Скачати з Google Play для Android
link.wiki.description = Офіційна Mindustry вікі (англ.) link.wiki.description = Офіційна Mindustry вікі (англ.)
@@ -31,8 +31,8 @@ level.select = Вибір мапи
level.mode = Режим гри: level.mode = Режим гри:
showagain = Не показувати знову до наступного сеансу showagain = Не показувати знову до наступного сеансу
coreattack = < Ядро під атакою! > coreattack = < Ядро під атакою! >
nearpoint = [[ [scarlet]ЗАЛИШТЕ ТОЧ НЕГАЙНО[] ]\nаннігіляція неминуча. nearpoint = [ [scarlet]ЗАЛИШТЕ ТОЧКУ НЕГАЙНО[] ]\nаннігіляція неминуча.
outofbounds = [[ ПОЗА МЕЖАМИ ]\n[]саморуйнування через{0} outofbounds = [ ПОЗА МЕЖАМИ ]\nсаморуйнування через{0}
database = База Даних Ядра database = База Даних Ядра
savegame = Зберегти гру savegame = Зберегти гру
loadgame = Завантажити гру loadgame = Завантажити гру
@@ -86,13 +86,8 @@ trace = Стежити за гравцем
trace.playername = Ім'я гравця: [accent]{0} trace.playername = Ім'я гравця: [accent]{0}
trace.ip = IP: [accent]{0} trace.ip = IP: [accent]{0}
trace.id = Унікальний ідентифікатор: [accent]{0} trace.id = Унікальний ідентифікатор: [accent]{0}
trace.android = Клієнт Android: [accent]{0} trace.mobile = Мобільний клієнт: [accent]{0}
trace.modclient = Користувацький клієнт: [accent]{0} trace.modclient = Користувацький клієнт: [accent]{0}
trace.totalblocksbroken = Всього зруйновано блоків: [accent]{0}
trace.structureblocksbroken = Структурних блоків зруйновано: [accent]{0}
trace.lastblockbroken = Останній зруйнований блок: [accent]{0}
trace.totalblocksplaced = Всього встановлено блоків: [accent]{0}
trace.lastblockplaced = Останній встановлений блок: [accent]{0}
invalidid = Невірний ідентифікатор клієнта! Надішліть звіт про помилку. invalidid = Невірний ідентифікатор клієнта! Надішліть звіт про помилку.
server.bans = Блокування server.bans = Блокування
server.bans.none = Заблокованих гравців нема! server.bans.none = Заблокованих гравців нема!
@@ -196,6 +191,8 @@ editor.mapinfo = Інформація про мапу
editor.author = Автор: editor.author = Автор:
editor.description = Опис: editor.description = Опис:
editor.waves = Хвилі: editor.waves = Хвилі:
editor.rules = Правила:
editor.ingame = Редагувати в грі
waves.title = Хвилі waves.title = Хвилі
waves.remove = Видалити waves.remove = Видалити
waves.never = <ніколи> waves.never = <ніколи>
@@ -213,6 +210,8 @@ waves.copied = Хвилі скопіювані.
editor.default = [LIGHT_GRAY]<За замовчуванням> editor.default = [LIGHT_GRAY]<За замовчуванням>
edit = Редагувати... edit = Редагувати...
editor.name = Назва: editor.name = Назва:
editor.spawn = Створити бойову одиницю
editor.removeunit = Видалити бойову одиницю
editor.teams = Команди editor.teams = Команди
editor.elevation = Висота editor.elevation = Висота
editor.errorload = Помилка завантаження зображення:[accent] {0} editor.errorload = Помилка завантаження зображення:[accent] {0}
@@ -322,8 +321,8 @@ zone.ruinousShores.name = Зруйновані Берега
zone.stainedMountains.name = Пофарбовані гори zone.stainedMountains.name = Пофарбовані гори
zone.desolateRift.name = Пустельний Розлом zone.desolateRift.name = Пустельний Розлом
zone.nuclearComplex.name = Ядерний Виробничий Комплекс zone.nuclearComplex.name = Ядерний Виробничий Комплекс
zone.overgrowth.name = Overgrowth zone.overgrowth.name = Зарості
zone.tarFields.name = Tar Fields zone.tarFields.name = Дьогтьові поля
settings.language = Мова settings.language = Мова
settings.reset = Скинути за замовчуванням settings.reset = Скинути за замовчуванням
settings.rebind = Зміна settings.rebind = Зміна
@@ -369,6 +368,7 @@ blocks.drillspeed = Базова швидкість буріння
blocks.boosteffect = Прискорювальний ефект blocks.boosteffect = Прискорювальний ефект
blocks.maxunits = Максимальна кількість активних одиниць blocks.maxunits = Максимальна кількість активних одиниць
blocks.health = Здоров'я blocks.health = Здоров'я
blocks.buildtime = Час будівництва
blocks.inaccuracy = Розкид blocks.inaccuracy = Розкид
blocks.shots = Постріли blocks.shots = Постріли
blocks.reload = Постріли/секунду blocks.reload = Постріли/секунду
@@ -414,8 +414,9 @@ category.items = Предмети
category.crafting = Введення/виведення category.crafting = Введення/виведення
category.shooting = Стрільба category.shooting = Стрільба
category.optional = Додаткові поліпшення category.optional = Додаткові поліпшення
setting.landscape.name = Зберегти пейхаж setting.landscape.name = Ландшафтний
setting.shadows.name = Тіні setting.shadows.name = Тіні
setting.linear.name = Лінійна фільтрація
setting.animatedwater.name = Анімована вода setting.animatedwater.name = Анімована вода
setting.animatedshields.name = Анімовані щити setting.animatedshields.name = Анімовані щити
setting.antialias.name = Згладжування[LIGHT_GRAY] (потребує перезапуску)[] setting.antialias.name = Згладжування[LIGHT_GRAY] (потребує перезапуску)[]
@@ -425,11 +426,11 @@ setting.fpscap.name = Макс. FPS
setting.fpscap.none = Необмежений setting.fpscap.none = Необмежений
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.swapdiagonal.name = Завжди Діагональне Розміщення setting.swapdiagonal.name = Завжди Діагональне Розміщення
setting.difficulty.training = навчання setting.difficulty.training = Навчання
setting.difficulty.easy = легка setting.difficulty.easy = Легка
setting.difficulty.normal = нормальна setting.difficulty.normal = Нормальна
setting.difficulty.hard = важка setting.difficulty.hard = Важка
setting.difficulty.insane = божевільна setting.difficulty.insane = Божевільна
setting.difficulty.name = Складність: setting.difficulty.name = Складність:
setting.screenshake.name = Тряска екрану setting.screenshake.name = Тряска екрану
setting.effects.name = Ефекти setting.effects.name = Ефекти
@@ -437,7 +438,7 @@ setting.sensitivity.name = Чутливість контролера
setting.saveinterval.name = Інтервал збереження setting.saveinterval.name = Інтервал збереження
setting.seconds = {0} сек. setting.seconds = {0} сек.
setting.fullscreen.name = Повноекранний режим setting.fullscreen.name = Повноекранний режим
setting.borderless.name = Вікно без полів setting.borderlesswindow.name = Вікно без полів[LIGHT_GRAY] (може потребувати перезапуску)
setting.fps.name = Показувати FPS setting.fps.name = Показувати FPS
setting.vsync.name = Вертикальна синхронізація setting.vsync.name = Вертикальна синхронізація
setting.lasers.name = Показувати енергію лазерів setting.lasers.name = Показувати енергію лазерів
@@ -553,8 +554,8 @@ item.blast-compound.name = Вибухова суміш
item.blast-compound.description = Нестійке з'єднання, що використовується в бомбах та вибухових речовинах. Хоча воно може спалюватися як паливо, та це не рекомендується. item.blast-compound.description = Нестійке з'єднання, що використовується в бомбах та вибухових речовинах. Хоча воно може спалюватися як паливо, та це не рекомендується.
item.pyratite.name = Піротит item.pyratite.name = Піротит
item.pyratite.description = Вкрай легкозаймиста речовина, що використовується у запальній зброї. item.pyratite.description = Вкрай легкозаймиста речовина, що використовується у запальній зброї.
item.metaglass.name = Біоскло item.metaglass.name = Метаскло
item.metaglass.description = Надміцна суміш скла. Широко використовується для розподілу і зберігання рідини. item.metaglass.description = Надміцна суміш скла й метала. Широко використовується для розподілу і зберігання рідини.
item.scrap.name = Металобрухт item.scrap.name = Металобрухт
item.scrap.description = Залишки старих споруд і бойових одиниць. Містить незначні кількості багатьох різних металів. item.scrap.description = Залишки старих споруд і бойових одиниць. Містить незначні кількості багатьох різних металів.
liquid.water.name = Вода liquid.water.name = Вода
@@ -627,7 +628,7 @@ block.scrap-wall-huge.name = Величезна стіна з металобру
block.scrap-wall-gigantic.name = Гігантська стіна з металобрухту block.scrap-wall-gigantic.name = Гігантська стіна з металобрухту
block.thruster.name = Штовхач block.thruster.name = Штовхач
block.kiln.name = Піч block.kiln.name = Піч
block.kiln.description = Виплавляє пісок і свинець в біоскло. Потребує малої кількості енергії. block.kiln.description = Виплавляє пісок і свинець в метаскло. Потребує малої кількості енергії.
block.graphite-press.name = Графітний прес block.graphite-press.name = Графітний прес
block.multi-press.name = Мульти-прес block.multi-press.name = Мульти-прес
block.constructing = {0}\n[LIGHT_GRAY](В процесі) block.constructing = {0}\n[LIGHT_GRAY](В процесі)
@@ -664,7 +665,6 @@ block.metal-floor-2.name = Металевий Пол 2
block.metal-floor-3.name = Металевий Пол 3 block.metal-floor-3.name = Металевий Пол 3
block.metal-floor-5.name = Металевий Пол 4 block.metal-floor-5.name = Металевий Пол 4
block.metal-floor-damaged.name = Пошкоджений Металевий Пол block.metal-floor-damaged.name = Пошкоджений Металевий Пол
block.creeptree.name = Жахливе дерево
block.dark-panel-1.name = Темна Панель 1 block.dark-panel-1.name = Темна Панель 1
block.dark-panel-2.name = Темна Панель 2 block.dark-panel-2.name = Темна Панель 2
block.dark-panel-3.name = Темна Панель 3 block.dark-panel-3.name = Темна Панель 3
@@ -723,7 +723,7 @@ block.pneumatic-drill.name = Пневматичний дриль
block.laser-drill.name = Лазерний дриль block.laser-drill.name = Лазерний дриль
block.water-extractor.name = Гідроконденсатор block.water-extractor.name = Гідроконденсатор
block.cultivator.name = Культиватор block.cultivator.name = Культиватор
block.dart-mech-pad.name = Dart Mech Pad block.dart-mech-pad.name = Реконструктор "Альфа"
block.delta-mech-pad.name = Реконструктор "Дельта" block.delta-mech-pad.name = Реконструктор "Дельта"
block.javelin-ship-pad.name = Реконструктор "Джавелін" block.javelin-ship-pad.name = Реконструктор "Джавелін"
block.trident-ship-pad.name = Реконструктор "Тризуб" block.trident-ship-pad.name = Реконструктор "Тризуб"

View File

@@ -11,7 +11,7 @@ link.google-play.description = 从谷歌商店获取安卓版
link.wiki.description = 官方 Mindustry 维基 link.wiki.description = 官方 Mindustry 维基
linkfail = 打开链接失败!\nURL 已经复制到剪贴板。 linkfail = 打开链接失败!\nURL 已经复制到剪贴板。
screenshot = 荧幕截图已放在 {0} screenshot = 荧幕截图已放在 {0}
screenshot.invalid = Map too large, potentially not enough memory for screenshot. screenshot.invalid = 地图太大,可能没有足够的内存用于截图。
gameover = 你的核心被摧毁了! gameover = 你的核心被摧毁了!
gameover.pvp = [accent] {0}[] 队获胜! gameover.pvp = [accent] {0}[] 队获胜!
highscore = [accent]新纪录! highscore = [accent]新纪录!
@@ -27,11 +27,11 @@ removearea = 你选择了拆除模式。\n你能通过[accent]长按几秒钟[]
launcheditems = [accent]发射的资源 launcheditems = [accent]发射的资源
map.delete = 确定要删除 "[accent]{0}[]" 地图吗? map.delete = 确定要删除 "[accent]{0}[]" 地图吗?
level.highscore = 最高分:[accent]{0} level.highscore = 最高分:[accent]{0}
level.select = 选择关卡Level Select level.select = 选择关卡
level.mode = 游戏模式: level.mode = 游戏模式:
showagain = 下次不再显示 showagain = 下次不再显示
coreattack = < 核心正在受到攻击!> coreattack = < 核心正在受到攻击!>
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n将被清理 nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n将被全部清除
outofbounds = [[ 超出边界 ]\n[]{0}秒后自毁 outofbounds = [[ 超出边界 ]\n[]{0}秒后自毁
database = 核心数据库 database = 核心数据库
savegame = 保存游戏 savegame = 保存游戏
@@ -50,7 +50,7 @@ maps.none = [LIGHT_GRAY]没有找到地图!
about.button = 关于 about.button = 关于
name = 名字: name = 名字:
noname = 先取一个[accent]玩家名[]。 noname = 先取一个[accent]玩家名[]。
filename = 文件名: filename = 文件名
unlocked = 新方块已解锁! unlocked = 新方块已解锁!
completed = [accent]己研究 completed = [accent]己研究
techtree = 科技树 techtree = 科技树
@@ -62,12 +62,12 @@ players.single = {0}玩家在线
server.closing = [accent]正在关闭服务器…… server.closing = [accent]正在关闭服务器……
server.kicked.kick = 你被踢出服务器了! server.kicked.kick = 你被踢出服务器了!
server.kicked.serverClose = 服务器已关闭。 server.kicked.serverClose = 服务器已关闭。
server.kicked.clientOutdated = 过旧的客户端!更新你的游戏 server.kicked.clientOutdated = 客户端过旧,请更新你的游戏
server.kicked.serverOutdated = 过旧的服务器!联系房主升级 server.kicked.serverOutdated = 服务器过旧,请联系房主升级服务器。
server.kicked.banned = 你在这个服务器上被了。 server.kicked.banned = 你在这个服务器上被拉入黑名单了。
server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接 server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接
server.kicked.nameInUse = 服务器中已经\n有人有相同的名字了。 server.kicked.nameInUse = 你的名字与服务器中的一个人重复了。
server.kicked.nameEmpty = 你选择的名字是无效的。 server.kicked.nameEmpty = 无效的名字!
server.kicked.idInUse = 你已在这个服务器上!不允许用两个账号连接。 server.kicked.idInUse = 你已在这个服务器上!不允许用两个账号连接。
server.kicked.customClient = 这个服务器不支持定制版本。下载官方版本。 server.kicked.customClient = 这个服务器不支持定制版本。下载官方版本。
server.kicked.gameover = 游戏结束! server.kicked.gameover = 游戏结束!
@@ -115,8 +115,8 @@ joingame.title = 加入游戏
joingame.ip = 地址: joingame.ip = 地址:
disconnect = 已断开 disconnect = 已断开
disconnect.data = 读取世界数据失败! disconnect.data = 读取世界数据失败!
connecting = [accent]正在连接... connecting = [accent]连接中……
connecting.data = [accent]正在加载世界数据... connecting.data = [accent]加载中……
server.port = 端口: server.port = 端口:
server.addressinuse = 地址已经在使用中! server.addressinuse = 地址已经在使用中!
server.invalidport = 无效的端口号! server.invalidport = 无效的端口号!
@@ -150,30 +150,30 @@ save.wave = 波次 {0}
save.difficulty = 难度:{0} save.difficulty = 难度:{0}
save.date = 最后保存过:{0} save.date = 最后保存过:{0}
save.playtime = 游戏时间:{0} save.playtime = 游戏时间:{0}
warning = 警告 warning = 警告
confirm = 确认 confirm = 确认
delete = 删除 delete = 删除
ok = 好的 ok = 好的
open = 打开 open = 打开
customize = Customize customize = 定制
cancel = 取消 cancel = 取消
openlink = 打开链接 openlink = 打开链接
copylink = 复制链接 copylink = 复制链接
back = 返回 back = 返回
quit.confirm = 你确定你想要退出? quit.confirm = 你确定你想要退出?
changelog.title = 更新日志 changelog.title = 更新日志
changelog.loading = 正在获取更新日志... changelog.loading = 正在获取更新日志……
changelog.error.android = [accent]注意更新日志有时在安卓 4.4 以下不工作。\n这是安卓系统内部的一个bug。 changelog.error.android = [accent]注意更新日志有时在安卓 4.4 以下不工作。\n这是安卓系统内部的一个bug。
changelog.error.ios = [accent]更新日志当前在iOS中不被支持。 changelog.error.ios = [accent]更新日志当前在iOS中不被支持。
changelog.error = [scarlet]获取更新日志失败!\n请检查你的网络。 changelog.error = [scarlet]获取更新日志失败!\n请检查你的网络。
changelog.current = [yellow][[当前版本] changelog.current = [yellow][[当前版本]
changelog.latest = [accent][[最新版本] changelog.latest = [accent][[最新版本]
loading = [accent]正在加载... loading = [accent]加载中……
saving = [accent]正在保存... saving = [accent]保存中……
wave = [accent]波次 {0} wave = [accent]波次 {0}
wave.waiting = [LIGHT_GRAY]下一波将在{0}秒后到来 wave.waiting = [LIGHT_GRAY]下一波将在{0}秒后到来
wave.waveInProgress = [LIGHT_GRAY]Wave in progress wave.waveInProgress = [LIGHT_GRAY]Wave in progress
waiting = [LIGHT_GRAY]正在等待... waiting = [LIGHT_GRAY]等待中……
waiting.players = 等待玩家中…… waiting.players = 等待玩家中……
wave.enemies = [LIGHT_GRAY]剩余 {0} 个敌人 wave.enemies = [LIGHT_GRAY]剩余 {0} 个敌人
wave.enemy = [LIGHT_GRAY]剩余 {0} 个敌人 wave.enemy = [LIGHT_GRAY]剩余 {0} 个敌人
@@ -197,28 +197,28 @@ editor.author = 作者:
editor.description = 描述: editor.description = 描述:
editor.waves = 波数: editor.waves = 波数:
waves.title = 波数 waves.title = 波数
waves.remove = waves.remove =
waves.never = <never> waves.never = <永不>
waves.every = waves.every =
waves.waves = waves.waves =
waves.perspawn = 每次生成 waves.perspawn = 每次生成
waves.to = waves.to =
waves.boss = BOSS waves.boss = BOSS
waves.preview = 预览 waves.preview = 预览
waves.edit = 编辑... waves.edit = 编辑……
waves.copy = 复制到剪贴板 waves.copy = 复制到剪贴板
waves.load = 从剪贴板读取 waves.load = 从剪贴板读取
waves.invalid = 剪贴板中无效的波次信息。 waves.invalid = 剪贴板中无效的波次信息。
waves.copied = 波次信息已复制。 waves.copied = 波次信息已复制。
editor.default = [LIGHT_GRAY]<默认> editor.default = [LIGHT_GRAY]<默认>
edit = 编辑... edit = 编辑……
editor.name = 名称: editor.name = 名称:
editor.teams = 队伍 editor.teams = 队伍
editor.elevation = 高度 editor.elevation = 高度
editor.errorload = 读取文件时出现错误:\n[accent]{0} editor.errorload = 读取文件时出现错误:\n[accent]{0}
editor.errorsave = 保存文件时出现错误:\n[accent]{0} editor.errorsave = 保存文件时出现错误:\n[accent]{0}
editor.errorname = 地图没有被定义的名称。 editor.errorname = 地图没有被定义的名称。
editor.update = 更新Update editor.update = 更新
editor.randomize = 随机化 editor.randomize = 随机化
editor.apply = 应用 editor.apply = 应用
editor.generate = 生成 editor.generate = 生成
@@ -250,13 +250,13 @@ editor.overwrite = [accent]警告!\n这将会覆盖一个已经存在的地图
editor.overwrite.confirm = [scarlet]警告![]存在同名地图。你确定你想要覆盖? editor.overwrite.confirm = [scarlet]警告![]存在同名地图。你确定你想要覆盖?
editor.selectmap = 选择一个地图加载: editor.selectmap = 选择一个地图加载:
filters.empty = [LIGHT_GRAY]没有过滤器filters用下方的按钮添加一个。 filters.empty = [LIGHT_GRAY]没有过滤器filters用下方的按钮添加一个。
filter.distort = 扭曲Distort filter.distort = 扭曲程度
filter.noise = 噪音Noise filter.noise = 噪音Noise
filter.ore = 矿石Ore filter.ore = 矿石数量
filter.rivernoise = 河流噪音River Noise filter.rivernoise = 河流噪音River Noise
filter.scatter = 散播Scatter filter.scatter = 分散程度
filter.terrain = 地形Terrain filter.terrain = 地形
filter.option.scale = 规模Scale filter.option.scale = 规模大小
filter.option.chance = 机会Chance filter.option.chance = 机会Chance
filter.option.mag = 大小Magnitude filter.option.mag = 大小Magnitude
filter.option.threshold = 门槛Threshold filter.option.threshold = 门槛Threshold
@@ -285,45 +285,45 @@ editor = 编辑器
mapeditor = 地图编辑器 mapeditor = 地图编辑器
donate = 捐赠 donate = 捐赠
abandon = 放弃 abandon = 放弃
abandon.text = 这个区域和它的所有资源会被敌人重置 abandon.text = 这个区域和它的所有资源会被敌人重置
locked = 已被锁定 locked = 已被锁定
complete = [LIGHT_GRAY]完成: complete = [LIGHT_GRAY]完成
zone.requirement = 在{1}中达到{0}波 zone.requirement = 在{1}中达到{0}波
resume = 恢复区:\n[LIGHT_GRAY]{0} resume = 恢复区:\n[LIGHT_GRAY]{0}
bestwave = [LIGHT_GRAY]最好: {0} bestwave = [LIGHT_GRAY]最好: {0}
launch = < 发射 > launch = < 发射 >
launch.title = 发射成功 launch.title = 发射成功
launch.next = [LIGHT_GRAY]下一个发射机会在第 {0} 波 launch.next = [LIGHT_GRAY]下一个发射机会在第 {0} 波
launch.unable = [scarlet]发射失败。[] 敌人. launch.unable = [scarlet]发射失败。[]敌人未被全部消灭。
launch.confirm = 这样做会把您基地里的所有资源发射出去\n您不能再回来这个基地 launch.confirm = 您将发射核心中所有资源。\n此地图将被重置
uncover = Uncover uncover = 解锁
configure = 设定发射资源 configure = 设定发射资源数量
configure.locked = [LIGHT_GRAY]到达第 {0} 波\n才设定发射资源。 configure.locked = [LIGHT_GRAY]到达第 {0} 波\n才设定发射资源。
zone.unlocked = [LIGHT_GRAY]{0} 已解锁。 zone.unlocked = [LIGHT_GRAY]{0} 已解锁。
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met. zone.requirement.complete = 已达到第{0}波。\n达到解锁{1}的需求。
zone.config.complete = Wave {0} reached:\nLoadout config unlocked. zone.config.complete = 已达到第{0}波。\n允许携带发射的资源进入此地区。
zone.resources = 已被发现的资源: zone.resources = 地图中的资源
add = 添加 add = 添加
boss.health = BOSS 生命值 boss.health = BOSS 生命值
connectfail = [crimson]服务器连接失败:[accent]{0} connectfail = [crimson]服务器连接失败:[accent]{0}
error.unreachable = 服务器无法访问。 error.unreachable = 服务器无法访问。
error.invalidaddress = 地址无效。 error.invalidaddress = 地址无效。
error.timedout = 连接超时!\n确保服务器设置了端口转发并且地址正确 error.timedout = 连接超时!\n确保服务器设置了端口转发并且地址正确
error.mismatch = 包错误:\n可能是客户端/服务器版本不匹配.\n请确保客户端和服务器都是最新的版本! error.mismatch = 不匹配。\n可能是客户端/服务器版本不匹配\n请确保客户端和服务器都是最新的版本
error.alreadyconnected = 已连接。 error.alreadyconnected = 已连接。
error.mapnotfound = 找不到地图文件! error.mapnotfound = 找不到地图文件!
error.io = 网络 I/O 错误。 error.io = 网络 I/O 错误。
error.any = 未知网络错误。 error.any = 未知网络错误。
zone.groundZero.name = 零号地区 zone.groundZero.name = 零号地区
zone.desertWastes.name = Desert Wastes zone.desertWastes.name = 沙漠废物
zone.craters.name = 陨石 zone.craters.name = 陨石带
zone.frozenForest.name = 冰冻森林 zone.frozenForest.name = 冰冻森林
zone.ruinousShores.name = 毁灭海岸 zone.ruinousShores.name = 毁灭海岸
zone.stainedMountains.name = 绵延群山 zone.stainedMountains.name = 绵延群山
zone.desolateRift.name = 荒芜裂谷 zone.desolateRift.name = 荒芜裂谷
zone.nuclearComplex.name = 能生产 zone.nuclearComplex.name = 裂变
zone.overgrowth.name = Overgrowth zone.overgrowth.name = 增生区
zone.tarFields.name = Tar Fields zone.tarFields.name = 石油田
settings.language = 语言 settings.language = 语言
settings.reset = 恢复默认 settings.reset = 恢复默认
settings.rebind = 重新绑定 settings.rebind = 重新绑定
@@ -417,11 +417,11 @@ category.optional = 可选的增强物品
setting.landscape.name = 锁定横屏 setting.landscape.name = 锁定横屏
setting.shadows.name = 影子 setting.shadows.name = 影子
setting.animatedwater.name = 流动的水 setting.animatedwater.name = 流动的水
setting.animatedshields.name = Animated Shields setting.animatedshields.name = 动态画面
setting.antialias.name = 抗锯齿[LIGHT_GRAY] (需要重新启动)[] setting.antialias.name = 抗锯齿[LIGHT_GRAY] 需要重新启动[]
setting.indicators.name = 队友指示器 setting.indicators.name = 队友指示器
setting.autotarget.name = 自动发射 setting.autotarget.name = 自动发射
setting.fpscap.name = 最高 FPS setting.fpscap.name = FPS限制
setting.fpscap.none = setting.fpscap.none =
setting.fpscap.text = {0} FPS setting.fpscap.text = {0} FPS
setting.swapdiagonal.name = 总是自动铺设 setting.swapdiagonal.name = 总是自动铺设
@@ -448,8 +448,8 @@ setting.mutemusic.name = 静音
setting.sfxvol.name = 音效音量 setting.sfxvol.name = 音效音量
setting.mutesound.name = 静音 setting.mutesound.name = 静音
setting.crashreport.name = 发送匿名崩溃报告 setting.crashreport.name = 发送匿名崩溃报告
setting.chatopacity.name = Chat Opacity setting.chatopacity.name = 聊天界面透明度
setting.playerchat.name = Display In-Game Chat setting.playerchat.name = 显示游戏内聊天界面
keybind.title = 重新绑定按键 keybind.title = 重新绑定按键
category.general.name = 普通 category.general.name = 普通
category.view.name = 查看 category.view.name = 查看
@@ -474,7 +474,7 @@ keybind.zoom_hold.name = 保持缩放
keybind.zoom.name = 缩放 keybind.zoom.name = 缩放
keybind.menu.name = 菜单 keybind.menu.name = 菜单
keybind.pause.name = 暂停 keybind.pause.name = 暂停
keybind.minimap.name = Minimap keybind.minimap.name = 小地图
keybind.dash.name = 冲刺 keybind.dash.name = 冲刺
keybind.chat.name = 聊天 keybind.chat.name = 聊天
keybind.player_list.name = 玩家列表 keybind.player_list.name = 玩家列表
@@ -492,35 +492,35 @@ mode.survival.description = 正常的游戏模式,有限的资源和自动波次
mode.sandbox.name = 沙盒 mode.sandbox.name = 沙盒
mode.sandbox.description = 无限的资源,不会自动生成敌人。 mode.sandbox.description = 无限的资源,不会自动生成敌人。
mode.pvp.name = PvP mode.pvp.name = PvP
mode.pvp.description = 和本地玩家对战. mode.pvp.description = 和本地玩家对战
mode.attack.name = 攻击 mode.attack.name = 攻击
mode.attack.description = 没有波数,但是有摧毁敌人基地的任务. mode.attack.description = 没有波数,但是有摧毁敌人基地的任务
mode.custom = 自定义模式 mode.custom = 自定义模式
rules.infiniteresources = 无限资源 rules.infiniteresources = 无限资源
rules.wavetimer = 波次计时器 rules.wavetimer = 波次计时器
rules.waves = 波次 rules.waves = 波次
rules.enemyCheat = AI无限资源 rules.enemyCheat = 敌人无限资源
rules.unitdrops = 敌人出生点 rules.unitdrops = 敌人出生点
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier rules.unitbuildspeedmultiplier = 单位生产速度倍数
rules.unithealthmultiplier = Unit Health Multiplier rules.unithealthmultiplier = 单位生命倍数
rules.playerhealthmultiplier = Player Health Multiplier rules.playerhealthmultiplier = 玩家生命倍数
rules.playerdamagemultiplier = Player Damage Multiplier rules.playerdamagemultiplier = 玩家伤害倍数
rules.unitdamagemultiplier = Unit Damage Multiplier rules.unitdamagemultiplier = 单位伤害倍数
rules.enemycorebuildradius = 敌对核心非建设区半径:[LIGHT_GRAY](格) rules.enemycorebuildradius = 敌对核心非建设区半径:[LIGHT_GRAY](格)
rules.respawntime = 重生时间:[LIGHT_GRAY](秒) rules.respawntime = 重生时间:[LIGHT_GRAY](秒)
rules.wavespacing = 波次间隔时间:[LIGHT_GRAY](秒) rules.wavespacing = 波次间隔时间:[LIGHT_GRAY](秒)
rules.buildcostmultiplier = 建设花费倍数 rules.buildcostmultiplier = 建设花费倍数
rules.buildspeedmultiplier = 建设时间倍数 rules.buildspeedmultiplier = 建设时间倍数
rules.waitForWaveToEnd = Waves wait for enemies rules.waitForWaveToEnd = 等待敌人时间
rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles) rules.dropzoneradius = 敌人出生点毁灭大小:[LIGHT_GRAY] (格)
rules.respawns = Max respawns per wave rules.respawns = 每波最大重生次数
rules.limitedRespawns = Limit Respawns rules.limitedRespawns = 重生限制次数
rules.title.waves = Waves rules.title.waves = 波次
rules.title.respawns = Respawns rules.title.respawns = 重生
rules.title.resourcesbuilding = Resources & Building rules.title.resourcesbuilding = 资源和建造
rules.title.player = Players rules.title.player = 玩家
rules.title.enemy = Enemies rules.title.enemy = 敌人
rules.title.unit = Units rules.title.unit = 单位
content.item.name = 物品 content.item.name = 物品
content.liquid.name = 液体 content.liquid.name = 液体
content.unit.name = 部队 content.unit.name = 部队
@@ -564,7 +564,7 @@ liquid.cryofluid.name = 冷冻液
mech.alpha-mech.name = 阿尔法 mech.alpha-mech.name = 阿尔法
mech.alpha-mech.weapon = 重型机枪 mech.alpha-mech.weapon = 重型机枪
mech.alpha-mech.ability = 无人机群 mech.alpha-mech.ability = 无人机群
mech.alpha-mech.description = 标准的机甲。具有不错的速度和伤害输出;,可以制造多达 3 架无人机以提高进攻能力。 mech.alpha-mech.description = 标准的机甲。具有不错的速度和伤害输出,可以制造多达 3 架无人机以提高进攻能力。
mech.delta-mech.name = 德尔塔 mech.delta-mech.name = 德尔塔
mech.delta-mech.weapon = 电弧发电机 mech.delta-mech.weapon = 电弧发电机
mech.delta-mech.ability = 放电 mech.delta-mech.ability = 放电
@@ -596,7 +596,7 @@ item.radioactivity = [LIGHT_GRAY]放射性:{0}
unit.health = [LIGHT_GRAY]生命值:{0} unit.health = [LIGHT_GRAY]生命值:{0}
unit.speed = [LIGHT_GRAY]速度:{0} unit.speed = [LIGHT_GRAY]速度:{0}
mech.weapon = [LIGHT_GRAY]武器:{0} mech.weapon = [LIGHT_GRAY]武器:{0}
mech.health = [LIGHT_GRAY]生命值: {0} mech.health = [LIGHT_GRAY]生命值 {0}
mech.itemcapacity = [LIGHT_GRAY]物品容量:{0} mech.itemcapacity = [LIGHT_GRAY]物品容量:{0}
mech.minespeed = [LIGHT_GRAY]采矿速度:{0} mech.minespeed = [LIGHT_GRAY]采矿速度:{0}
mech.minepower = [LIGHT_GRAY]采矿力量:{0} mech.minepower = [LIGHT_GRAY]采矿力量:{0}
@@ -618,7 +618,7 @@ block.snowrock.name = 雪岩石
block.shale.name = 页岩地 block.shale.name = 页岩地
block.shale-boulder.name = 页岩巨石 block.shale-boulder.name = 页岩巨石
block.moss.name = 苔藓地 block.moss.name = 苔藓地
block.shrubs.name = Shrubs block.shrubs.name = 灌木丛
block.spore-moss.name = 孢子苔藓地 block.spore-moss.name = 孢子苔藓地
block.shalerocks.name = 页岩岩石 block.shalerocks.name = 页岩岩石
block.scrap-wall.name = 废墙 block.scrap-wall.name = 废墙
@@ -637,45 +637,45 @@ block.core-foundation.name = 中型核心
block.core-nucleus.name = 大型核心 block.core-nucleus.name = 大型核心
block.deepwater.name = 深水 block.deepwater.name = 深水
block.water.name = block.water.name =
block.tainted-water.name = Tainted Water block.tainted-water.name = 污水
block.darksand-tainted-water.name = Dark Sand Tainted Water block.darksand-tainted-water.name = 暗沙 污水
block.tar.name = Tar block.tar.name = 石油
block.stone.name = 石头 block.stone.name = 石头
block.sand.name = 沙子 block.sand.name = 沙子
block.darksand.name = 黑沙 block.darksand.name = 黑沙
block.ice.name = block.ice.name =
block.snow.name = block.snow.name =
block.craters.name = 陨石坑 block.craters.name = 陨石坑
block.sand-water.name = Sand water block.sand-water.name = 沙 水
block.darksand-water.name = Dark Sand Water block.darksand-water.name = 暗沙 水
block.char.name = Char block.char.name = 焦土
block.holostone.name = Holo stone block.holostone.name = 霍洛石头
block.ice-snow.name = Ice Snow block.ice-snow.name = 冰雪地
block.rocks.name = 岩石 block.rocks.name = 岩石
block.icerocks.name = Ice rocks block.icerocks.name = 冰岩石
block.snowrocks.name = Snow Rocks block.snowrocks.name = 雪岩石
block.dunerocks.name = Dune Rocks block.dunerocks.name = 沙丘岩石
block.pine.name = 松树 block.pine.name = 松树
block.white-tree-dead.name = White Tree Dead block.white-tree-dead.name = 枯萎的白树
block.white-tree.name = 白树 block.white-tree.name = 白树
block.spore-cluster.name = Spore Cluster block.spore-cluster.name = 孢子簇
block.metal-floor.name = Metal Floor block.metal-floor.name = 金属地板
block.metal-floor-2.name = Metal Floor 2 block.metal-floor-2.name = 金属地板2
block.metal-floor-3.name = Metal Floor 3 block.metal-floor-3.name = 金属地板3
block.metal-floor-5.name = Metal Floor 5 block.metal-floor-5.name = 金属地板5
block.metal-floor-damaged.name = Metal Floor Damaged block.metal-floor-damaged.name = 损坏的金属地板
block.creeptree.name = Creeptree block.creeptree.name = 爬行树
block.dark-panel-1.name = Dark Panel 1 block.dark-panel-1.name = 暗面板1
block.dark-panel-2.name = Dark Panel 2 block.dark-panel-2.name = 暗面板2
block.dark-panel-3.name = Dark Panel 3 block.dark-panel-3.name = 暗面板3
block.dark-panel-4.name = Dark Panel 4 block.dark-panel-4.name = 暗面板4
block.dark-panel-5.name = Dark Panel 5 block.dark-panel-5.name = 暗面板5
block.dark-panel-6.name = Dark Panel 6 block.dark-panel-6.name = 暗面板6
block.dark-metal.name = Dark Metal block.dark-metal.name = 暗金属
block.ignarock.name = Igna Rock block.ignarock.name = 伊格纳石头
block.hotrock.name = Hot Rock block.hotrock.name = 热石头
block.magmarock.name = Magma Rock block.magmarock.name = 岩浆石头
block.cliffs.name = Cliffs block.cliffs.name = 悬崖
block.copper-wall.name = 铜墙 block.copper-wall.name = 铜墙
block.copper-wall-large.name = 大型铜墙 block.copper-wall-large.name = 大型铜墙
block.titanium-wall.name = 钛墙 block.titanium-wall.name = 钛墙
@@ -708,7 +708,7 @@ block.melter.name = 熔炉
block.incinerator.name = 焚化炉 block.incinerator.name = 焚化炉
block.spore-press.name = 孢子压缩机 block.spore-press.name = 孢子压缩机
block.separator.name = 分离机 block.separator.name = 分离机
block.coal-centrifuge.name = Coal Centrifuge block.coal-centrifuge.name = 煤炭离心机
block.power-node.name = 能量节点 block.power-node.name = 能量节点
block.power-node-large.name = 大型能量节点 block.power-node-large.name = 大型能量节点
block.surge-tower.name = 远程输电塔 block.surge-tower.name = 远程输电塔
@@ -723,7 +723,7 @@ block.pneumatic-drill.name = 气动钻头
block.laser-drill.name = 激光钻头 block.laser-drill.name = 激光钻头
block.water-extractor.name = 抽水机 block.water-extractor.name = 抽水机
block.cultivator.name = 耕种机 block.cultivator.name = 耕种机
block.dart-mech-pad.name = Dart Mech Pad block.dart-mech-pad.name = 飞镖 机甲平台
block.delta-mech-pad.name = 德尔塔 机甲平台 block.delta-mech-pad.name = 德尔塔 机甲平台
block.javelin-ship-pad.name = 标枪 机甲平台 block.javelin-ship-pad.name = 标枪 机甲平台
block.trident-ship-pad.name = 三叉戟 机甲平台 block.trident-ship-pad.name = 三叉戟 机甲平台

73
core/assets/contributors Normal file
View File

@@ -0,0 +1,73 @@
Prosta4okua
Timmeey86
Epowerj
Baltazár Radics
Dexapnow
Milinai
키에르
Luxray5474
Leone25
Gureumi
VizardAlpha
LQ
Commodore64x
iczero
Krzysztof Skrzętnicki
Baramos666
theshadowknight
elmenda452
Predator127
Sonnicon
CinExPL
toushangyouxiang
xgamezs
Skybbles // L5474
William So
beito
BeefEX
Lorex
laohuaji233
CrazyBearTR
Zachary
Fenr1r
Jaiun Lee
Gab_351
Carter Gale
Jan Polák
JustYanns
BasedUser
BLucky-gh
DinoWattz
Jae
angelickite
ScriptHosT12
Senventise
SkeptiC
Deyvid67
Damlon
DaGamerFiles
Trigg
Uriel
VXF
Valen. H
Valentin Sonin
Clarence "Sparr" Risher
bei2
AceEllysium
Cedric L'homme
indielm
Ameb
player20033
Ignacy
J-VdS
Kenny
L5474
Franciszek Zaranowicz
Andreas Heiskanen
Doyoung Gwak
MMG
Math2128
Michael Plotke
Niko
Paul T
Dominik

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -39,9 +39,6 @@ public class Vars{
public static final String discordURL = "https://discord.gg/mindustry"; public static final String discordURL = "https://discord.gg/mindustry";
/** URL for Github API for releases */ /** URL for Github API for releases */
public static final String releasesURL = "https://api.github.com/repos/Anuken/Mindustry/releases"; public static final String releasesURL = "https://api.github.com/repos/Anuken/Mindustry/releases";
/** URL for Github API for contributors */
//TODO remove and replace with a manually updated list
public static final String contributorsURL = "https://api.github.com/repos/Anuken/Mindustry/contributors";
/** URL for sending crash reports to */ /** URL for sending crash reports to */
public static final String crashReportURL = "http://mins.us.to/report"; public static final String crashReportURL = "http://mins.us.to/report";
/** maximum distance between mine and core that supports automatic transferring */ /** maximum distance between mine and core that supports automatic transferring */

View File

@@ -31,7 +31,7 @@ public class BlockIndexer{
/** Stores all ore quadtrants on the map. */ /** Stores all ore quadtrants on the map. */
private ObjectMap<Item, ObjectSet<Tile>> ores; private ObjectMap<Item, ObjectSet<Tile>> ores;
/** Tags all quadrants. */ /** Tags all quadrants. */
private Bits[] structQuadrants; private GridBits[] structQuadrants;
/** Stores all damaged tile entities by team. */ /** Stores all damaged tile entities by team. */
private ObjectSet<Tile>[] damagedTiles = new ObjectSet[Team.all.length]; private ObjectSet<Tile>[] damagedTiles = new ObjectSet[Team.all.length];
/**All ores available on this map.*/ /**All ores available on this map.*/
@@ -73,9 +73,9 @@ public class BlockIndexer{
ores = null; ores = null;
//create bitset for each team type that contains each quadrant //create bitset for each team type that contains each quadrant
structQuadrants = new Bits[Team.all.length]; structQuadrants = new GridBits[Team.all.length];
for(int i = 0; i < Team.all.length; i++){ for(int i = 0; i < Team.all.length; i++){
structQuadrants[i] = new Bits(Mathf.ceil(world.width() / (float)structQuadrantSize) * Mathf.ceil(world.height() / (float)structQuadrantSize)); structQuadrants[i] = new GridBits(Mathf.ceil(world.width() / (float)structQuadrantSize), Mathf.ceil(world.height() / (float)structQuadrantSize));
} }
for(int x = 0; x < world.width(); x++){ for(int x = 0; x < world.width(); x++){
@@ -282,11 +282,11 @@ public class BlockIndexer{
//fast-set this quadrant to 'occupied' if the tile just placed is already of this team //fast-set this quadrant to 'occupied' if the tile just placed is already of this team
if(tile.getTeam() == data.team && tile.entity != null && tile.block().targetable){ if(tile.getTeam() == data.team && tile.entity != null && tile.block().targetable){
structQuadrants[data.team.ordinal()].set(index); structQuadrants[data.team.ordinal()].set(quadrantX, quadrantY);
continue; //no need to process futher continue; //no need to process futher
} }
structQuadrants[data.team.ordinal()].clear(index); structQuadrants[data.team.ordinal()].set(quadrantX, quadrantY, false);
outer: outer:
for(int x = quadrantX * structQuadrantSize; x < world.width() && x < (quadrantX + 1) * structQuadrantSize; x++){ for(int x = quadrantX * structQuadrantSize; x < world.width() && x < (quadrantX + 1) * structQuadrantSize; x++){
@@ -294,7 +294,7 @@ public class BlockIndexer{
Tile result = world.ltile(x, y); Tile result = world.ltile(x, y);
//when a targetable block is found, mark this quadrant as occupied and stop searching //when a targetable block is found, mark this quadrant as occupied and stop searching
if(result.entity != null && result.getTeam() == data.team){ if(result.entity != null && result.getTeam() == data.team){
structQuadrants[data.team.ordinal()].set(index); structQuadrants[data.team.ordinal()].set(quadrantX, quadrantY);
break outer; break outer;
} }
} }
@@ -303,8 +303,7 @@ public class BlockIndexer{
} }
private boolean getQuad(Team team, int quadrantX, int quadrantY){ private boolean getQuad(Team team, int quadrantX, int quadrantY){
int index = quadrantX + quadrantY * Mathf.ceil(world.width() / (float)structQuadrantSize); return structQuadrants[team.ordinal()].get(quadrantX, quadrantY);
return structQuadrants[team.ordinal()].get(index);
} }
private int quadWidth(){ private int quadWidth(){

View File

@@ -547,7 +547,7 @@ public class Bullets implements ContentList{
@Override @Override
public void update(Bullet b){ public void update(Bullet b){
if(b.timer.get(1, 5f)){ if(b.timer.get(1, 5f)){
Damage.collideLine(b, b.getTeam(), hitEffect, b.x, b.y, b.rot(), length); Damage.collideLine(b, b.getTeam(), hitEffect, b.x, b.y, b.rot(), length, true);
} }
Effects.shake(1f, 1f, b.x, b.y); Effects.shake(1f, 1f, b.x, b.y);
} }

View File

@@ -108,9 +108,13 @@ public class ContentLoader{
loaded = true; loaded = true;
} }
/** Initializes all content with the specified function. */
public void initialize(Consumer<Content> callable){ public void initialize(Consumer<Content> callable){
if(initialization.contains(callable)) return; initialize(callable, false);
}
/** Initializes all content with the specified function. */
public void initialize(Consumer<Content> callable, boolean override){
if(initialization.contains(callable) && !override) return;
for(ContentType type : ContentType.values()){ for(ContentType type : ContentType.values()){
for(Content content : contentMap[type.ordinal()]){ for(Content content : contentMap[type.ordinal()]){

View File

@@ -57,7 +57,7 @@ public class Control implements ApplicationListener{
content.initialize(Content::init); content.initialize(Content::init);
Core.atlas = new TextureAtlas(maxSize < 2048 ? "sprites/sprites_fallback.atlas" : "sprites/sprites.atlas"); Core.atlas = new TextureAtlas(maxSize < 2048 ? "sprites/sprites_fallback.atlas" : "sprites/sprites.atlas");
Draw.scl = 1f / Core.atlas.find("scale_marker").getWidth(); Draw.scl = 1f / Core.atlas.find("scale_marker").getWidth();
content.initialize(Content::load); content.initialize(Content::load, true);
data.load(); data.load();
@@ -83,6 +83,8 @@ public class Control implements ApplicationListener{
}); });
Events.on(PlayEvent.class, event -> { Events.on(PlayEvent.class, event -> {
player.setTeam(defaultTeam);
player.setDead(true);
player.add(); player.add();
state.set(State.playing); state.set(State.playing);

View File

@@ -7,6 +7,7 @@ import io.anuke.arc.Events;
import io.anuke.arc.collection.ObjectSet.ObjectSetIterator; import io.anuke.arc.collection.ObjectSet.ObjectSetIterator;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.content.Fx;
import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.*; import io.anuke.mindustry.entities.*;
import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.entities.type.Player;
@@ -15,7 +16,6 @@ import io.anuke.mindustry.game.EventType.*;
import io.anuke.mindustry.game.*; import io.anuke.mindustry.game.*;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.ItemStack;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
@@ -63,9 +63,11 @@ public class Logic implements ApplicationListener{
//add starting items //add starting items
if(!world.isZone()){ if(!world.isZone()){
for(Tile core : state.teams.get(defaultTeam).cores){ for(Team team : Team.all){
for(ItemStack stack : state.rules.startingItems){ if(state.teams.isActive(team)){
core.entity.items.add(stack.item, stack.amount); for(Tile core : state.teams.get(team).cores){
core.entity.items.add(Items.copper, 200);
}
} }
} }
} }

View File

@@ -190,6 +190,7 @@ public class NetClient implements ApplicationListener{
public static void onWorldDataBegin(){ public static void onWorldDataBegin(){
Entities.clear(); Entities.clear();
netClient.removed.clear(); netClient.removed.clear();
logic.reset();
ui.chatfrag.clearMessages(); ui.chatfrag.clearMessages();
Net.setClientLoaded(false); Net.setClientLoaded(false);

View File

@@ -183,8 +183,7 @@ public class MapView extends Element implements GestureListener{
public void act(float delta){ public void act(float delta){
super.act(delta); super.act(delta);
if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) && if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) && !Core.input.keyDown(KeyCode.CONTROL_LEFT)){
!Core.input.keyDown(KeyCode.CONTROL_LEFT)){
float ax = Core.input.axis(Binding.move_x); float ax = Core.input.axis(Binding.move_x);
float ay = Core.input.axis(Binding.move_y); float ay = Core.input.axis(Binding.move_y);
offsetx -= ax * 15f / zoom; offsetx -= ax * 15f / zoom;

View File

@@ -9,20 +9,17 @@ import io.anuke.arc.scene.ui.TextField.TextFieldFilter;
import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.*; import io.anuke.arc.util.*;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.content.StatusEffects; import io.anuke.mindustry.content.*;
import io.anuke.mindustry.content.UnitTypes; import io.anuke.mindustry.game.*;
import io.anuke.mindustry.game.DefaultWaves;
import io.anuke.mindustry.game.SpawnGroup;
import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.io.JsonIO;
import io.anuke.mindustry.type.UnitType; import io.anuke.mindustry.type.*;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
import static io.anuke.mindustry.game.SpawnGroup.never; import static io.anuke.mindustry.game.SpawnGroup.never;
public class WaveInfoDialog extends FloatingDialog{ public class WaveInfoDialog extends FloatingDialog{
private final MapEditor editor;
private final static int displayed = 20; private final static int displayed = 20;
private Array<SpawnGroup> groups; private Array<SpawnGroup> groups;
@@ -33,15 +30,10 @@ public class WaveInfoDialog extends FloatingDialog{
public WaveInfoDialog(MapEditor editor){ public WaveInfoDialog(MapEditor editor){
super("$waves.title"); super("$waves.title");
this.editor = editor;
shown(this::setup); shown(this::setup);
hidden(() -> { hidden(() -> {
if(groups == null){ state.rules.spawns = groups;
editor.getTags().remove("waves");
}else{
editor.getTags().put("waves", world.maps.writeWaves(groups));
}
}); });
keyDown(key -> { keyDown(key -> {
@@ -73,7 +65,7 @@ public class WaveInfoDialog extends FloatingDialog{
}).disabled(b -> Core.app.getClipboard().getContents() == null || Core.app.getClipboard().getContents().isEmpty()); }).disabled(b -> Core.app.getClipboard().getContents() == null || Core.app.getClipboard().getContents().isEmpty());
dialog.cont.row(); dialog.cont.row();
dialog.cont.addButton("$settings.reset", () -> ui.showConfirm("$confirm", "$settings.clear.confirm", () -> { dialog.cont.addButton("$settings.reset", () -> ui.showConfirm("$confirm", "$settings.clear.confirm", () -> {
groups = null; groups = JsonIO.copy(DefaultWaves.get());
buildGroups(); buildGroups();
dialog.hide(); dialog.hide();
})); }));
@@ -82,10 +74,9 @@ public class WaveInfoDialog extends FloatingDialog{
} }
void setup(){ void setup(){
groups = world.maps.readWaves(editor.getTags().get("waves")); groups = JsonIO.copy(state.rules.spawns);
cont.clear(); cont.clear();
cont.table("clear", main -> { cont.table("clear", main -> {
main.pane(t -> table = t).growX().growY().get().setScrollingDisabled(true, false); main.pane(t -> table = t).growX().growY().get().setScrollingDisabled(true, false);
main.row(); main.row();
@@ -237,8 +228,6 @@ public class WaveInfoDialog extends FloatingDialog{
preview.clear(); preview.clear();
preview.top(); preview.top();
Array<SpawnGroup> groups = (this.groups == null ? DefaultWaves.get() : this.groups);
for(int i = start; i < displayed + start; i++){ for(int i = start; i < displayed + start; i++){
int wave = i; int wave = i;
preview.table("underline", table -> { preview.table("underline", table -> {
@@ -251,8 +240,6 @@ public class WaveInfoDialog extends FloatingDialog{
spawned[spawn.type.id] += spawn.getUnitsSpawned(wave); spawned[spawn.type.id] += spawn.getUnitsSpawned(wave);
} }
int f = 0;
for(int j = 0; j < spawned.length; j++){ for(int j = 0; j < spawned.length; j++){
if(spawned[j] > 0){ if(spawned[j] > 0){
UnitType type = content.getByID(ContentType.unit, j); UnitType type = content.getByID(ContentType.unit, j);

View File

@@ -3,8 +3,7 @@ package io.anuke.mindustry.entities;
import io.anuke.annotations.Annotations.Struct; import io.anuke.annotations.Annotations.Struct;
import io.anuke.arc.collection.GridBits; import io.anuke.arc.collection.GridBits;
import io.anuke.arc.collection.IntQueue; import io.anuke.arc.collection.IntQueue;
import io.anuke.arc.function.Consumer; import io.anuke.arc.function.*;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.math.geom.*; import io.anuke.arc.math.geom.*;
@@ -78,18 +77,31 @@ public class Damage{
} }
} }
public static void collideLine(Bullet hitter, Team team, Effect effect, float x, float y, float angle, float length){
collideLine(hitter, team, effect, x, y, angle, length, false);
}
/** /**
* Damages entities in a line. * Damages entities in a line.
* Only enemies of the specified team are damaged. * Only enemies of the specified team are damaged.
*/ */
public static void collideLine(Bullet hitter, Team team, Effect effect, float x, float y, float angle, float length){ public static void collideLine(Bullet hitter, Team team, Effect effect, float x, float y, float angle, float length, boolean large){
tr.trns(angle, length); tr.trns(angle, length);
world.raycastEachWorld(x, y, x + tr.x, y + tr.y, (cx, cy) -> { IntPositionConsumer collider = (cx, cy) -> {
Tile tile = world.ltile(cx, cy); Tile tile = world.ltile(cx, cy);
if(tile != null && tile.entity != null && tile.getTeamID() != team.ordinal() && tile.entity.collide(hitter)){ if(tile != null && tile.entity != null && tile.getTeamID() != team.ordinal() && tile.entity.collide(hitter)){
tile.entity.collision(hitter); tile.entity.collision(hitter);
hitter.getBulletType().hit(hitter, tile.worldx(), tile.worldy()); hitter.getBulletType().hit(hitter, tile.worldx(), tile.worldy());
} }
};
world.raycastEachWorld(x, y, x + tr.x, y + tr.y, (cx, cy) -> {
collider.accept(cx, cy);
if(large){
for(Point2 p : Geometry.d4){
collider.accept(cx + p.x, cy + p.y);
}
}
return false; return false;
}); });

View File

@@ -56,8 +56,8 @@ public class Predict{
*/ */
public static Vector2 intercept(TargetTrait src, TargetTrait dst, float v){ public static Vector2 intercept(TargetTrait src, TargetTrait dst, float v){
return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(),
dst.getTargetVelocityX() - src.getTargetVelocityX(), dst.getTargetVelocityX() - src.getTargetVelocityX()/2f,
dst.getTargetVelocityY() - src.getTargetVelocityY(), v); dst.getTargetVelocityY() - src.getTargetVelocityY()/2f, v);
} }
private static Vector2 quad(float a, float b, float c){ private static Vector2 quad(float a, float b, float c){

View File

@@ -102,6 +102,8 @@ public class Units{
/** Returns the closest target enemy. First, units are checked, then tile entities. */ /** Returns the closest target enemy. First, units are checked, then tile entities. */
public static TargetTrait closestTarget(Team team, float x, float y, float range, Predicate<Unit> unitPred, Predicate<Tile> tilePred){ public static TargetTrait closestTarget(Team team, float x, float y, float range, Predicate<Unit> unitPred, Predicate<Tile> tilePred){
if(team == Team.none) return null;
Unit unit = closestEnemy(team, x, y, range, unitPred); Unit unit = closestEnemy(team, x, y, range, unitPred);
if(unit != null){ if(unit != null){
return unit; return unit;

View File

@@ -15,7 +15,7 @@ public class RubbleDecal extends Decal{
public static void create(float x, float y, int size){ public static void create(float x, float y, int size){
if(headless) return; if(headless) return;
if(regions[size].length == 0){ if(regions[size].length == 0 || regions[size][0].getTexture().isDisposed()){
regions[size] = new TextureRegion[2]; regions[size] = new TextureRegion[2];
for(int j = 0; j < 2; j++){ for(int j = 0; j < 2; j++){
regions[size][j] = Core.atlas.find("rubble-" + size + "-" + j); regions[size][j] = Core.atlas.find("rubble-" + size + "-" + j);

View File

@@ -17,7 +17,7 @@ public class ScorchDecal extends Decal{
public static void create(float x, float y){ public static void create(float x, float y){
if(headless) return; if(headless) return;
if(regions[0] == null){ if(regions[0] == null || regions[0].getTexture().isDisposed()){
for(int i = 0; i < regions.length; i++){ for(int i = 0; i < regions.length; i++){
regions[i] = Core.atlas.find("scorch" + (i + 1)); regions[i] = Core.atlas.find("scorch" + (i + 1));
} }

View File

@@ -2,9 +2,7 @@ package io.anuke.mindustry.game;
import io.anuke.annotations.Annotations.Serialize; import io.anuke.annotations.Annotations.Serialize;
import io.anuke.arc.collection.Array; import io.anuke.arc.collection.Array;
import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.io.JsonIO; import io.anuke.mindustry.io.JsonIO;
import io.anuke.mindustry.type.ItemStack;
import io.anuke.mindustry.type.Zone; import io.anuke.mindustry.type.Zone;
/** /**
@@ -65,11 +63,9 @@ public class Rules{
public boolean attackMode = false; public boolean attackMode = false;
/** Whether this is the editor gamemode. */ /** Whether this is the editor gamemode. */
public boolean editor = false; public boolean editor = false;
/** Items that the player starts with here. Not applicable to zones.*/
public Array<ItemStack> startingItems = Array.with(new ItemStack(Items.copper, 200));
/** Copies this ruleset exactly. Not very efficient at all, do not use often. */ /** Copies this ruleset exactly. Not very efficient at all, do not use often. */
public Rules copy(){ public Rules copy(){
return JsonIO.read(Rules.class, JsonIO.write(this)); return JsonIO.copy(this);
} }
} }

View File

@@ -42,8 +42,6 @@ public class MobileInput extends InputHandler implements GestureListener{
//gesture data //gesture data
private Vector2 vector = new Vector2(); private Vector2 vector = new Vector2();
private float lastDistance = -1f; private float lastDistance = -1f;
/** Set of completed guides. */
//private ObjectSet<String> guides = new ObjectSet<>();
/** Position where the player started dragging a line. */ /** Position where the player started dragging a line. */
private int lineStartX, lineStartY; private int lineStartX, lineStartY;
@@ -311,7 +309,7 @@ public class MobileInput extends InputHandler implements GestureListener{
}).visible(() -> !selection.isEmpty()); }).visible(() -> !selection.isEmpty());
Core.scene.table(t -> { Core.scene.table(t -> {
t.bottom().left().visible(() -> player.isBuilding() || block != null || mode == breaking); t.bottom().left().visible(() -> (player.isBuilding() || block != null || mode == breaking) && !state.is(State.menu));
t.addImageTextButton("$cancel", "icon-cancel", 16*2, () -> { t.addImageTextButton("$cancel", "icon-cancel", 16*2, () -> {
player.clearBuilding(); player.clearBuilding();
mode = none; mode = none;
@@ -437,7 +435,7 @@ public class MobileInput extends InputHandler implements GestureListener{
TargetTrait target = player.target; TargetTrait target = player.target;
//draw targeting crosshair //draw targeting crosshair
if(target != null){ if(target != null && !state.isEditor()){
if(target != lastTarget){ if(target != lastTarget){
crosshairScale = 0f; crosshairScale = 0f;
lastTarget = target; lastTarget = target;

View File

@@ -59,6 +59,5 @@ public class BundleLoader{
Locale.setDefault(locale); Locale.setDefault(locale);
Core.bundle = I18NBundle.createBundle(handle, locale); Core.bundle = I18NBundle.createBundle(handle, locale);
} }
} }
} }

View File

@@ -1,43 +0,0 @@
package io.anuke.mindustry.io;
import io.anuke.arc.collection.Array;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.util.serialization.JsonReader;
import io.anuke.arc.util.serialization.JsonValue;
import io.anuke.mindustry.net.Net;
import static io.anuke.mindustry.Vars.contributorsURL;
public class Contributors{
public static void getContributors(Consumer<Array<Contributor>> success, Consumer<Throwable> fail){
Net.http(contributorsURL, "GET", result -> {
JsonReader reader = new JsonReader();
JsonValue value = reader.parse(result).child;
Array<Contributor> out = new Array<>();
while(value != null){
String login = value.getString("login");
out.add(new Contributor(login));
value = value.next;
}
success.accept(out);
}, fail);
}
public static class Contributor{
public final String login;
public Contributor(String login){
this.login = login;
}
@Override
public String toString(){
return "Contributor{" +
"login='" + login + '\'' +
'}';
}
}
}

View File

@@ -7,11 +7,11 @@ import io.anuke.mindustry.game.Rules;
import io.anuke.mindustry.game.SpawnGroup; import io.anuke.mindustry.game.SpawnGroup;
import io.anuke.mindustry.type.*; import io.anuke.mindustry.type.*;
@SuppressWarnings("unchecked")
public class JsonIO{ public class JsonIO{
private static Json json = new Json(){{ private static Json json = new Json(){{
setIgnoreUnknownFields(true); setIgnoreUnknownFields(true);
setElementType(Rules.class, "spawns", SpawnGroup.class); setElementType(Rules.class, "spawns", SpawnGroup.class);
setElementType(Rules.class, "startingItems", ItemStack.class);
setSerializer(Zone.class, new Serializer<Zone>(){ setSerializer(Zone.class, new Serializer<Zone>(){
@Override @Override
@@ -42,6 +42,10 @@ public class JsonIO{
return json.toJson(object); return json.toJson(object);
} }
public static <T> T copy(T object){
return read((Class<T>)object.getClass(), write(object));
}
public static <T> T read(Class<T> type, String string){ public static <T> T read(Class<T> type, String string){
return json.fromJson(type, string); return json.fromJson(type, string);
} }

View File

@@ -38,8 +38,13 @@ public abstract class SaveVersion extends SaveFileReader{
public final void read(DataInputStream stream, CounterInputStream counter, WorldContext context) throws IOException{ public final void read(DataInputStream stream, CounterInputStream counter, WorldContext context) throws IOException{
region("meta", stream, counter, this::readMeta); region("meta", stream, counter, this::readMeta);
region("content", stream, counter, this::readContentHeader); region("content", stream, counter, this::readContentHeader);
try{
region("map", stream, counter, in -> readMap(in, context)); region("map", stream, counter, in -> readMap(in, context));
region("entities", stream, counter, this::readEntities); region("entities", stream, counter, this::readEntities);
}finally{
content.setTemporaryMapper(null);
}
} }
public final void write(DataOutputStream stream, StringMap extraTags) throws IOException{ public final void write(DataOutputStream stream, StringMap extraTags) throws IOException{
@@ -143,6 +148,7 @@ public abstract class SaveVersion extends SaveFileReader{
boolean generating = context.isGenerating(); boolean generating = context.isGenerating();
if(!generating) context.begin(); if(!generating) context.begin();
try{
context.resize(width, height); context.resize(width, height);
@@ -190,10 +196,10 @@ public abstract class SaveVersion extends SaveFileReader{
i += consecutives; i += consecutives;
} }
} }
}finally{
content.setTemporaryMapper(null);
if(!generating) context.end(); if(!generating) context.end();
} }
}
public void writeEntities(DataOutput stream) throws IOException{ public void writeEntities(DataOutput stream) throws IOException{
//write entity chunk //write entity chunk

View File

@@ -100,19 +100,25 @@ public class CrashSender{
ex(() -> value.addChild("os", new JsonValue(System.getProperty("os.name")))); ex(() -> value.addChild("os", new JsonValue(System.getProperty("os.name"))));
ex(() -> value.addChild("trace", new JsonValue(parseException(exception)))); ex(() -> value.addChild("trace", new JsonValue(parseException(exception))));
boolean[] sent = {false};
Log.info("Sending crash report."); Log.info("Sending crash report.");
//post to crash report URL //post to crash report URL
Net.http(Vars.crashReportURL, "POST", value.toJson(OutputType.json), r -> { Net.http(Vars.crashReportURL, "POST", value.toJson(OutputType.json), r -> {
Log.info("Crash sent successfully."); Log.info("Crash sent successfully.");
sent[0] = true;
System.exit(1); System.exit(1);
}, t -> { }, t -> {
t.printStackTrace(); t.printStackTrace();
sent[0] = true;
System.exit(1); System.exit(1);
}); });
//sleep for 10 seconds or until crash report is sent //sleep until report is sent
try{ try{
Thread.sleep(10000); while(!sent[0]){
Thread.sleep(30);
}
}catch(InterruptedException ignored){ }catch(InterruptedException ignored){
} }
}catch(Throwable death){ }catch(Throwable death){

View File

@@ -4,8 +4,7 @@ import io.anuke.arc.Core;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.mindustry.entities.Entities; import io.anuke.mindustry.entities.Entities;
import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.entities.type.Player;
import io.anuke.mindustry.game.Rules; import io.anuke.mindustry.game.*;
import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.io.JsonIO; import io.anuke.mindustry.io.JsonIO;
import io.anuke.mindustry.io.SaveIO; import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.maps.Map; import io.anuke.mindustry.maps.Map;

View File

@@ -1,19 +1,22 @@
package io.anuke.mindustry.type; package io.anuke.mindustry.type;
import io.anuke.arc.collection.Array; import io.anuke.arc.collection.Array;
import io.anuke.mindustry.content.Items;
public class ItemStack implements Comparable<ItemStack>{ public class ItemStack implements Comparable<ItemStack>{
public Item item; public Item item;
public int amount; public int amount;
public ItemStack(Item item, int amount){ public ItemStack(Item item, int amount){
if(item == null) item = Items.copper;
this.item = item; this.item = item;
this.amount = amount; this.amount = amount;
} }
//serialization only //serialization only
public ItemStack(){ public ItemStack(){
//prevent nulls.
item = Items.copper;
} }
public boolean equals(ItemStack other){ public boolean equals(ItemStack other){

View File

@@ -1,35 +1,28 @@
package io.anuke.mindustry.ui.dialogs; package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core; import io.anuke.arc.Core;
import io.anuke.arc.collection.Array; import io.anuke.arc.collection.*;
import io.anuke.arc.collection.ObjectSet;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.arc.scene.ui.ScrollPane; import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.layout.Cell; import io.anuke.arc.scene.ui.layout.*;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.*; import io.anuke.arc.util.*;
import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.graphics.Pal;
import io.anuke.mindustry.io.Contributors;
import io.anuke.mindustry.io.Contributors.Contributor;
import io.anuke.mindustry.ui.Links; import io.anuke.mindustry.ui.Links;
import io.anuke.mindustry.ui.Links.LinkEntry; import io.anuke.mindustry.ui.Links.LinkEntry;
import static io.anuke.mindustry.Vars.ios; import static io.anuke.mindustry.Vars.*;
import static io.anuke.mindustry.Vars.ui;
public class AboutDialog extends FloatingDialog{ public class AboutDialog extends FloatingDialog{
private Array<Contributor> contributors = new Array<>(); private Array<String> contributors = new Array<>();
private static ObjectSet<String> bannedItems = ObjectSet.with("google-play", "itch.io", "dev-builds", "trello"); private static ObjectSet<String> bannedItems = ObjectSet.with("google-play", "itch.io", "dev-builds", "trello");
public AboutDialog(){ public AboutDialog(){
super("$about.button"); super("$about.button");
if(!ios){ shown(() -> {
shown(() -> Contributors.getContributors(out -> { contributors = Array.with(Core.files.internal("contributors").readString().split("\n"));
contributors = out;
Core.app.post(this::setup); Core.app.post(this::setup);
}, Throwable::printStackTrace)); });
}
shown(this::setup); shown(this::setup);
onResize(this::setup); onResize(this::setup);
@@ -112,8 +105,8 @@ public class AboutDialog extends FloatingDialog{
dialog.cont.pane(new Table(){{ dialog.cont.pane(new Table(){{
int i = 0; int i = 0;
left(); left();
for(Contributor c : contributors){ for(String c : contributors){
add("[lightgray]" + c.login).left().pad(3).padLeft(6).padRight(6); add("[lightgray]" + c).left().pad(3).padLeft(6).padRight(6);
if(++i % 3 == 0){ if(++i % 3 == 0){
row(); row();
} }

View File

@@ -83,7 +83,7 @@ public class MapPlayDialog extends FloatingDialog{
cont.add(sdif); cont.add(sdif);
cont.row(); cont.row();
cont.add(new BorderImage(map.texture, 3f)).size(250f).get().setScaling(Scaling.fit); cont.add(new BorderImage(map.texture, 3f)).size(mobile && !Core.graphics.isPortrait() ? 150f : 250f).get().setScaling(Scaling.fit);
buttons.clearChildren(); buttons.clearChildren();
addCloseButton(); addCloseButton();

View File

@@ -63,9 +63,10 @@ public class MenuFragment extends Fragment{
join = new MobileButton("icon-add", isize, "$joingame", ui.join::show), join = new MobileButton("icon-add", isize, "$joingame", ui.join::show),
editor = new MobileButton("icon-editor", isize, "$editor", () -> ui.loadAnd(ui.editor::show)), editor = new MobileButton("icon-editor", isize, "$editor", () -> ui.loadAnd(ui.editor::show)),
tools = new MobileButton("icon-tools", isize, "$settings", ui.settings::show), tools = new MobileButton("icon-tools", isize, "$settings", ui.settings::show),
donate = new MobileButton("icon-donate", isize, "$donate", () -> Core.net.openURI(donationURL)); donate = new MobileButton("icon-donate", isize, "$donate", () -> Core.net.openURI(donationURL)),
exit = new MobileButton("icon-exit", isize, "$quit", () -> Core.app.exit());
if(Core.graphics.getWidth() > Core.graphics.getHeight()){ if(!Core.graphics.isPortrait()){
container.add(play); container.add(play);
container.add(join); container.add(join);
container.add(custom); container.add(custom);
@@ -79,6 +80,7 @@ public class MenuFragment extends Fragment{
table.add(tools); table.add(tools);
if(Platform.instance.canDonate()) table.add(donate); if(Platform.instance.canDonate()) table.add(donate);
table.add(exit);
}).colspan(4); }).colspan(4);
}else{ }else{
container.add(play); container.add(play);
@@ -95,6 +97,7 @@ public class MenuFragment extends Fragment{
table.defaults().set(container.defaults()); table.defaults().set(container.defaults());
if(Platform.instance.canDonate()) table.add(donate); if(Platform.instance.canDonate()) table.add(donate);
table.add(exit);
}).colspan(2); }).colspan(2);
} }
} }

View File

@@ -103,6 +103,8 @@ public class Block extends BlockStorage{
public float buildCost; public float buildCost;
/** Whether this block is visible and can currently be built. */ /** Whether this block is visible and can currently be built. */
public BooleanProvider buildVisibility = () -> false; public BooleanProvider buildVisibility = () -> false;
/** Whether this block has instant transfer.*/
public boolean instantTransfer = false;
public boolean alwaysUnlocked = false; public boolean alwaysUnlocked = false;
protected TextureRegion[] cacheRegions = {}; protected TextureRegion[] cacheRegions = {};
@@ -343,7 +345,7 @@ public class Block extends BlockStorage{
cacheRegions[i] = Core.atlas.find(cacheRegionStrings.get(i)); cacheRegions[i] = Core.atlas.find(cacheRegionStrings.get(i));
} }
if(cracks == null){ if(cracks == null || cracks[0][0].getTexture().isDisposed()){
cracks = new TextureRegion[maxCrackSize][crackRegions]; cracks = new TextureRegion[maxCrackSize][crackRegions];
for(int size = 1; size <= maxCrackSize; size++){ for(int size = 1; size <= maxCrackSize; size++){
for(int i = 0; i < crackRegions; i++){ for(int i = 0; i < crackRegions; i++){

View File

@@ -5,8 +5,7 @@ import io.anuke.arc.math.Mathf;
import io.anuke.arc.math.geom.Geometry; import io.anuke.arc.math.geom.Geometry;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import static io.anuke.mindustry.Vars.tilesize; import static io.anuke.mindustry.Vars.*;
import static io.anuke.mindustry.Vars.world;
public class ExtendingItemBridge extends ItemBridge{ public class ExtendingItemBridge extends ItemBridge{
@@ -27,8 +26,10 @@ public class ExtendingItemBridge extends ItemBridge{
float ex = other.worldx() - tile.worldx() - Geometry.d4[i].x * tilesize / 2f, float ex = other.worldx() - tile.worldx() - Geometry.d4[i].x * tilesize / 2f,
ey = other.worldy() - tile.worldy() - Geometry.d4[i].y * tilesize / 2f; ey = other.worldy() - tile.worldy() - Geometry.d4[i].y * tilesize / 2f;
ex *= entity.uptime; float uptime = state.isEditor() ? 1f : entity.uptime;
ey *= entity.uptime;
ex *= uptime;
ey *= uptime;
Lines.stroke(8f); Lines.stroke(8f);
Lines.line(bridgeRegion, Lines.line(bridgeRegion,
@@ -49,10 +50,10 @@ public class ExtendingItemBridge extends ItemBridge{
Draw.color(); Draw.color();
for(int a = 0; a < arrows; a++){ for(int a = 0; a < arrows; a++){
Draw.alpha(Mathf.absin(a / (float)arrows - entity.time / 100f, 0.1f, 1f) * entity.uptime); Draw.alpha(Mathf.absin(a / (float)arrows - entity.time / 100f, 0.1f, 1f) * uptime);
Draw.rect(arrowRegion, Draw.rect(arrowRegion,
tile.worldx() + Geometry.d4[i].x * (tilesize / 2f + a * 6f + 2) * entity.uptime, tile.worldx() + Geometry.d4[i].x * (tilesize / 2f + a * 6f + 2) * uptime,
tile.worldy() + Geometry.d4[i].y * (tilesize / 2f + a * 6f + 2) * entity.uptime, i * 90f); tile.worldy() + Geometry.d4[i].y * (tilesize / 2f + a * 6f + 2) * uptime, i * 90f);
} }
Draw.reset(); Draw.reset();
} }

View File

@@ -2,12 +2,17 @@ package io.anuke.mindustry.world.blocks.distribution;
import io.anuke.arc.util.Time; import io.anuke.arc.util.Time;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.entities.type.Unit;
import io.anuke.mindustry.gen.BufferItem; import io.anuke.mindustry.gen.BufferItem;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.DirectionalItemBuffer;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.meta.BlockGroup;
import java.io.*; import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.content;
@@ -19,9 +24,15 @@ public class Junction extends Block{
super(name); super(name);
update = true; update = true;
solid = true; solid = true;
instantTransfer = true;
group = BlockGroup.transportation; group = BlockGroup.transportation;
} }
@Override
public int acceptStack(Item item, int amount, Tile tile, Unit source){
return 0;
}
@Override @Override
public boolean outputsItems(){ public boolean outputsItems(){
return true; return true;

View File

@@ -1,6 +1,7 @@
package io.anuke.mindustry.world.blocks.distribution; package io.anuke.mindustry.world.blocks.distribution;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.*;
@@ -9,8 +10,7 @@ import io.anuke.mindustry.world.meta.BlockGroup;
import java.io.*; import java.io.*;
public class OverflowGate extends Block{ public class OverflowGate extends Block{
protected int bufferCapacity = 10; protected float speed = 1f;
protected float speed = 45f;
public OverflowGate(String name){ public OverflowGate(String name){
super(name); super(name);
@@ -20,18 +20,38 @@ public class OverflowGate extends Block{
group = BlockGroup.transportation; group = BlockGroup.transportation;
} }
@Override
public boolean outputsItems(){
return true;
}
@Override
public int removeStack(Tile tile, Item item, int amount){
OverflowGateEntity entity = tile.entity();
int result = super.removeStack(tile, item, amount);
if(result != 0 && item == entity.lastItem){
entity.lastItem = null;
}
return result;
}
@Override @Override
public void update(Tile tile){ public void update(Tile tile){
OverflowGateEntity entity = tile.entity(); OverflowGateEntity entity = tile.entity();
for(int i = 0; i < 4; i++){ if(entity.lastItem == null && entity.items.total() > 0){
Item item = entity.buffer.poll(i); entity.items.clear();
if(item != null){
Tile other = getTileTarget(tile, item, tile.getNearby(i), true);
if(other != null && other.block().acceptItem(item, other, tile)){
other.block().handleItem(item, other, tile);
entity.buffer.remove(i);
} }
if(entity.lastItem != null){
entity.time += 1f / speed * Time.delta();
Tile target = getTileTarget(tile, entity.lastItem, entity.lastInput, false);
if(target != null && (entity.time >= 1f)){
getTileTarget(tile, entity.lastItem, entity.lastInput, true);
target.block().handleItem(entity.lastItem, target, Edges.getFacingEdge(tile, target));
entity.items.remove(entity.lastItem, 1);
entity.lastItem = null;
} }
} }
} }
@@ -39,16 +59,17 @@ public class OverflowGate extends Block{
@Override @Override
public boolean acceptItem(Item item, Tile tile, Tile source){ public boolean acceptItem(Item item, Tile tile, Tile source){
OverflowGateEntity entity = tile.entity(); OverflowGateEntity entity = tile.entity();
return entity.buffer.accepts(tile.relativeTo(source.x, source.y));
return tile.getTeam() == source.getTeam() && entity.lastItem == null && entity.items.total() == 0;
} }
@Override @Override
public void handleItem(Item item, Tile tile, Tile source){ public void handleItem(Item item, Tile tile, Tile source){
OverflowGateEntity entity = tile.entity(); OverflowGateEntity entity = tile.entity();
int buffer = tile.relativeTo(source.x, source.y); entity.items.add(item, 1);
if(entity.buffer.accepts(buffer)){ entity.lastItem = item;
entity.buffer.accept(buffer, item); entity.time = 0f;
} entity.lastInput = source;
} }
Tile getTileTarget(Tile tile, Item item, Tile src, boolean flip){ Tile getTileTarget(Tile tile, Item item, Tile src, boolean flip){
@@ -92,24 +113,25 @@ public class OverflowGate extends Block{
} }
public class OverflowGateEntity extends TileEntity{ public class OverflowGateEntity extends TileEntity{
DirectionalItemBuffer buffer = new DirectionalItemBuffer(bufferCapacity, speed); Item lastItem;
Tile lastInput;
float time;
@Override @Override
public byte version(){ public byte version(){
return 1; return 2;
} }
@Override @Override
public void write(DataOutput stream) throws IOException{ public void write(DataOutput stream) throws IOException{
super.write(stream); super.write(stream);
buffer.write(stream);
} }
@Override @Override
public void read(DataInput stream, byte revision) throws IOException{ public void read(DataInput stream, byte revision) throws IOException{
super.read(stream, revision); super.read(stream, revision);
if(revision == 1){ if(revision == 1){
buffer.read(stream); new DirectionalItemBuffer(25, 50f).read(stream);
} }
} }
} }

View File

@@ -5,8 +5,7 @@ import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.math.Mathf; import io.anuke.arc.math.Mathf;
import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.entities.type.*;
import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.*;
@@ -20,13 +19,11 @@ import static io.anuke.mindustry.Vars.content;
public class Sorter extends Block{ public class Sorter extends Block{
private static Item lastItem; private static Item lastItem;
protected int bufferCapacity = 20;
protected float speed = 45f;
public Sorter(String name){ public Sorter(String name){
super(name); super(name);
update = true; update = true;
solid = true; solid = true;
instantTransfer = true;
group = BlockGroup.transportation; group = BlockGroup.transportation;
configurable = true; configurable = true;
} }
@@ -57,42 +54,28 @@ public class Sorter extends Block{
if(entity.sortItem == null) return; if(entity.sortItem == null) return;
Draw.color(entity.sortItem.color); Draw.color(entity.sortItem.color);
Draw.rect("center", tile.worldx(), tile.worldy()); Draw.rect("blank", tile.worldx(), tile.worldy(), 4f, 4f);
Draw.color(); Draw.color();
} }
@Override
public void update(Tile tile){
SorterEntity entity = tile.entity();
for(int i = 0; i < 4; i++){
Item item = entity.buffer.poll(i);
if(item != null){
Tile other = getTileTarget(item, tile, tile.getNearby(i), true);
if(other != null && other.block().acceptItem(item, other, tile)){
other.block().handleItem(item, other, tile);
entity.buffer.remove(i);
}
}
}
}
@Override @Override
public boolean acceptItem(Item item, Tile tile, Tile source){ public boolean acceptItem(Item item, Tile tile, Tile source){
SorterEntity entity = tile.entity(); Tile to = getTileTarget(item, tile, source, false);
return entity.buffer.accepts(tile.relativeTo(source.x, source.y));
return to != null && to.block().acceptItem(item, to, tile);
} }
@Override @Override
public void handleItem(Item item, Tile tile, Tile source){ public void handleItem(Item item, Tile tile, Tile source){
SorterEntity entity = tile.entity(); Tile to = getTileTarget(item, tile, source, true);
int buffer = tile.relativeTo(source.x, source.y);
if(entity.buffer.accepts(buffer)){ to.block().handleItem(item, to, tile);
entity.buffer.accept(buffer, item);
} }
boolean isSame(Tile tile, Tile other){
return other != null && other.block() == this && other.<SorterEntity>entity().sortItem == tile.<SorterEntity>entity().sortItem;
} }
@Nullable
Tile getTileTarget(Item item, Tile dest, Tile source, boolean flip){ Tile getTileTarget(Item item, Tile dest, Tile source, boolean flip){
SorterEntity entity = dest.entity(); SorterEntity entity = dest.entity();
@@ -101,12 +84,18 @@ public class Sorter extends Block{
Tile to; Tile to;
if(item == entity.sortItem){ if(item == entity.sortItem){
//prevent 3-chains
if(isSame(dest, source) && isSame(dest, dest.getNearby(dir))){
return null;
}
to = dest.getNearby(dir); to = dest.getNearby(dir);
}else{ }else{
Tile a = dest.getNearby(Mathf.mod(dir - 1, 4)); Tile a = dest.getNearby(Mathf.mod(dir - 1, 4));
Tile b = dest.getNearby(Mathf.mod(dir + 1, 4)); Tile b = dest.getNearby(Mathf.mod(dir + 1, 4));
boolean ac = a != null && a.block().acceptItem(item, a, dest); boolean ac = a != null && !(a.block().instantTransfer && source.block().instantTransfer) &&
boolean bc = b != null && b.block().acceptItem(item, b, dest); a.block().acceptItem(item, a, dest);
boolean bc = b != null && !(b.block().instantTransfer && source.block().instantTransfer) &&
b.block().acceptItem(item, b, dest);
if(ac && !bc){ if(ac && !bc){
to = a; to = a;
@@ -117,10 +106,12 @@ public class Sorter extends Block{
}else{ }else{
if(dest.rotation() == 0){ if(dest.rotation() == 0){
to = a; to = a;
if(flip) dest.rotation((byte)1); if(flip)
dest.rotation((byte)1);
}else{ }else{
to = b; to = b;
if(flip) dest.rotation((byte)0); if(flip)
dest.rotation((byte)0);
} }
} }
} }
@@ -142,20 +133,19 @@ public class Sorter extends Block{
return new SorterEntity(); return new SorterEntity();
} }
public class SorterEntity extends TileEntity{ public class SorterEntity extends TileEntity{
DirectionalItemBuffer buffer = new DirectionalItemBuffer(bufferCapacity, speed);
Item sortItem; Item sortItem;
@Override @Override
public byte version(){ public byte version(){
return 1; return 2;
} }
@Override @Override
public void write(DataOutput stream) throws IOException{ public void write(DataOutput stream) throws IOException{
super.write(stream); super.write(stream);
stream.writeShort(sortItem == null ? -1 : sortItem.id); stream.writeShort(sortItem == null ? -1 : sortItem.id);
buffer.write(stream);
} }
@Override @Override
@@ -163,7 +153,7 @@ public class Sorter extends Block{
super.read(stream, revision); super.read(stream, revision);
sortItem = content.item(stream.readShort()); sortItem = content.item(stream.readShort());
if(revision == 1){ if(revision == 1){
buffer.read(stream); new DirectionalItemBuffer(20, 45f).read(stream);
} }
} }
} }

View File

@@ -37,6 +37,7 @@ public class LiquidConverter extends GenericCrafter{
if(hasPower){ if(hasPower){
use *= entity.power.satisfaction; // Produce less liquid if power is not maxed use *= entity.power.satisfaction; // Produce less liquid if power is not maxed
} }
useContent(tile, outputLiquid.liquid);
entity.progress += use / cl.amount / craftTime; entity.progress += use / cl.amount / craftTime;
entity.liquids.add(outputLiquid.liquid, use); entity.liquids.add(outputLiquid.liquid, use);
if(entity.progress >= 1f){ if(entity.progress >= 1f){

View File

@@ -72,16 +72,18 @@ public class MechPad extends Block{
if(entity.player == null) return; if(entity.player == null) return;
Mech mech = ((MechPad)tile.block()).mech; Mech mech = ((MechPad)tile.block()).mech;
boolean resetSpawner = !entity.sameMech && entity.player.mech == mech;
entity.player.mech = !entity.sameMech && entity.player.mech == mech ? Mechs.starter : mech; entity.player.mech = !entity.sameMech && entity.player.mech == mech ? Mechs.starter : mech;
entity.progress = 0; entity.progress = 0;
entity.player.onRespawn(tile); entity.player.onRespawn(tile);
if(resetSpawner) entity.player.lastSpawner = null;
entity.player = null; entity.player = null;
} }
protected static boolean checkValidTap(Tile tile, Player player){ protected static boolean checkValidTap(Tile tile, Player player){
MechFactoryEntity entity = tile.entity(); MechFactoryEntity entity = tile.entity();
return Math.abs(player.x - tile.drawx()) <= tile.block().size * tilesize && return !player.isDead() && Math.abs(player.x - tile.drawx()) <= tile.block().size * tilesize &&
Math.abs(player.y - tile.drawy()) <= tile.block().size * tilesize && entity.cons.valid() && entity.player == null; Math.abs(player.y - tile.drawy()) <= tile.block().size * tilesize && entity.cons.valid() && entity.player == null;
} }

View File

@@ -44,6 +44,7 @@ public class ServerControl implements ApplicationListener{
private FileHandle currentLogFile; private FileHandle currentLogFile;
private boolean inExtraRound; private boolean inExtraRound;
private Task lastTask; private Task lastTask;
private Gamemode lastMode = Gamemode.survival;
private Thread socketThread; private Thread socketThread;
private PrintWriter socketOutput; private PrintWriter socketOutput;
@@ -157,7 +158,7 @@ public class ServerControl implements ApplicationListener{
? "[YELLOW]The " + event.winner.name() + " team is victorious![]" : "[SCARLET]Game over![]") ? "[YELLOW]The " + event.winner.name() + " team is victorious![]" : "[SCARLET]Game over![]")
+ "\nNext selected map:[accent] " + map.name() + "[]" + "\nNext selected map:[accent] " + map.name() + "[]"
+ (map.tags.containsKey("author") && !map.tags.get("author").trim().isEmpty() ? " by[accent] " + map.author() + "[]" : "") + "." + + (map.tags.containsKey("author") && !map.tags.get("author").trim().isEmpty() ? " by[accent] " + map.author() + "[]" : "") + "." +
"\nNew game begins in " + roundExtraTime + " seconds."); "\nNew game begins in " + roundExtraTime + "[] seconds.");
info("Selected next map to be {0}.", map.name()); info("Selected next map to be {0}.", map.name());
@@ -235,9 +236,10 @@ public class ServerControl implements ApplicationListener{
info("Loading map..."); info("Loading map...");
logic.reset(); logic.reset();
state.rules = preset.apply(result.rules()); lastMode = preset;
try{ try{
world.loadMap(result); world.loadMap(result);
state.rules = preset.apply(result.rules());
logic.play(); logic.play();
info("Map loaded."); info("Map loaded.");
@@ -698,12 +700,13 @@ public class ServerControl implements ApplicationListener{
players.add(p); players.add(p);
p.setDead(true); p.setDead(true);
} }
Rules rules = state.rules;
logic.reset(); logic.reset();
state.rules = rules;
Call.onWorldDataBegin(); Call.onWorldDataBegin();
run.run(); run.run();
logic.play(); logic.play();
state.rules = lastMode.apply(world.getMap().rules());
for(Player p : players){ for(Player p : players){
p.reset(); p.reset();
if(state.rules.pvp){ if(state.rules.pvp){