Merge branch 'master' into master

This commit is contained in:
Vanguard 2019-12-06 18:20:05 +03:00 committed by GitHub
commit 044dac6a9e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
76 changed files with 3949 additions and 2122 deletions

View file

@ -41,7 +41,14 @@ In general, if you are using IntelliJ, you should be warned about platform incom
#### Use `arc` collections and classes when possible.
Instead of using `java.util.List`, `java.util.HashMap`, and other standard Java collections, use `Array`, `ObjectMap` and other equivalents from `io.anuke.arc.collection`.
Why? Because that's what the rest of the codebase uses, and the standard collections have a lot of cruft and usability issues associated with them.
In the rare case that concurrency is required, you may use the standard Java classes for that purpose (e.g. `CopyOnWriteArrayList`).
In the rare case that concurrency is required, you may use the standard Java classes for that purpose (e.g. `CopyOnWriteArrayList`).
What you'll usually need to change:
- `HashSet` -> `ObjectSet`
- `HashMap` -> `ObjectMap`
- `List` / `ArrayList` / `Stack` -> `Array`
- `java.util.Queue` -> `io.anuke.arc.collection.Queue`
- *Many others*
#### Avoid boxed types (Integer, Boolean)
@ -59,4 +66,4 @@ If something needs to be encapsulated in the future, IntelliJ can handle it with
#### Do not create methods unless necessary.
Unless a block of code is very large or used in more than 1-2 places, don't split it up into a separate method. Making unnecessary methods only creates confusion, and may slightly decrease performance.
Unless a block of code is very large or used in more than 1-2 places, don't split it up into a separate method. Making unnecessary methods only creates confusion, and may slightly decrease performance.

View file

@ -1,4 +1,4 @@
![Logo](core/assets/sprites/logo.png)
![Logo](core/assets-raw/sprites/ui/logo.png)
[![Build Status](https://travis-ci.org/Anuken/Mindustry.svg?branch=master)](https://travis-ci.org/Anuken/Mindustry)
[![Discord](https://img.shields.io/discord/391020510269669376.svg)](https://discord.gg/mindustry)

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -99,6 +99,7 @@ mod.enabled = [lightgray]Enabled
mod.disabled = [scarlet]Disabled
mod.disable = Disable
mod.delete.error = Unable to delete mod. File may be in use.
mod.requiresversion = [scarlet]Requires game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable
@ -106,6 +107,7 @@ mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Reload Required
mod.import = Import Mod
mod.import.github = Import GitHub Mod
mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = This mod will be deleted.
mod.author = [LIGHT_GRAY]Author:[] {0}
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
@ -496,6 +498,7 @@ settings.language = Language
settings.data = Game Data
settings.reset = Reset to Defaults
settings.rebind = Rebind
settings.resetKey = Reset
settings.controls = Controls
settings.game = Game
settings.sound = Sound
@ -589,6 +592,8 @@ unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = items
unit.thousands = k
unit.millions = mil
category.general = General
category.power = Power
category.liquids = Liquids
@ -666,7 +671,7 @@ keybind.clear_building.name = Clear Building
keybind.press = Press a key...
keybind.press.axis = Press an axis or key...
keybind.screenshot.name = Map Screenshot
keybind.toggle_power_lines.name = Toggle Power Lines
keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Move X
keybind.move_y.name = Move Y
keybind.mouse_move.name = Follow Mouse
@ -724,7 +729,7 @@ mode.editor.name = Editor
mode.pvp.name = PvP
mode.pvp.description = Fight against other players locally.\n[gray]Requires at least 2 differently-colored cores in the map to play.
mode.attack.name = Attack
mode.attack.description = Destroy the enemy's base. No waves.\n[gray]Requires a red core in the map to play.
mode.attack.description = Destroy the enemy's base. \n[gray]Requires a red core in the map to play.
mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
@ -804,6 +809,7 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = Bomb Bay
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Flame Repeater
item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]Explosiveness: {0}%
item.flammability = [lightgray]Flammability: {0}%
item.radioactivity = [lightgray]Radioactivity: {0}%
@ -1083,7 +1089,7 @@ mech.alpha-mech.description = The standard control mech. Based on a Dagger unit,
mech.delta-mech.description = A fast, lightly-armored mech made for hit-and-run attacks. Does little damage against structures, but can kill large groups of enemy units very quickly with its arc lightning weapons.
mech.tau-mech.description = The support mech. Heals allied blocks by shooting at them. Can heal allies in a radius with its repair ability.
mech.omega-mech.description = A bulky and well-armored mech, made for front-line assaults. Its armor can block up to 90% of incoming damage.
mech.dart-ship.description = The standard control ship. Reasonably fast and light, but has little offensive capability and low mining speed.
mech.dart-ship.description = The standard control ship. Fast mining speed. Reasonably fast and light, but has little offensive capability.
mech.javelin-ship.description = A hit-and-run strike ship. While initially slow, it can accelerate to great speeds and fly by enemy outposts, dealing large amounts of damage with its lightning and missiles.
mech.trident-ship.description = A heavy bomber, built for construction and destroying enemy fortifications. Reasonably well armored.
mech.glaive-ship.description = A large, well-armored gunship. Equipped with an incendiary repeater. Highly maneuverable.

View file

@ -3,7 +3,7 @@ credits = Kredituak
contributors = Itzultzaile eta kolaboratzaileak
discord = Elkartu Mindustry Discord-era!
link.discord.description = Mindustry Discord txat gela ofiziala
link.reddit.description = The Mindustry subreddit
link.reddit.description = Mindustry azpireddita
link.github.description = Jolasaren iturburu kodea
link.changelog.description = Eguneraketaren aldaketen zerrenda
link.dev-builds.description = Garapen konpilazio ezegonkorrak
@ -17,29 +17,29 @@ screenshot.invalid = Mapa handiegia, baliteke pantaila-argazkirako memoria nahik
gameover = Partida amaitu da
gameover.pvp = [accent] {0}[] taldeak irabazi du!
highscore = [accent]Marka berria!
copied = Copied.
copied = Kopiatuta.
load.sound = Soinuak
load.map = Mapak
load.image = Irudiak
load.content = Edukia
load.system = Sistema
load.mod = Mods
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
schematic.replace = A schematic by that name already exists. Replace it?
schematic.import = Import Schematic...
schematic.exportfile = Export File
schematic.importfile = Import File
schematic.browseworkshop = Browse Workshop
schematic.copy = Copy to Clipboard
schematic.copy.import = Import from Clipboard
schematic.shareworkshop = Share on Workshop
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
load.mod = Mod-ak
schematic = Eskama
schematic.add = Gorde eskema...
schematics = Eskemak
schematic.replace = Badago izen bereko eskema bat. Ordeztu nahi duzu?
schematic.import = Inportatu eskema...
schematic.exportfile = Esportatu fitxategia
schematic.importfile = Inportatu fitxategia
schematic.browseworkshop = Arakatu tailerra
schematic.copy = Kopiatu arbelera
schematic.copy.import = Inportatu arbeletik
schematic.shareworkshop = Partekatu tailerrean
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: itzulbiratu eskema
schematic.saved = Eskema gordeta.
schematic.delete.confirm = Eskema hau behin betiko suntsituko da.
schematic.rename = Aldatu izena eskemari
schematic.info = {0}x{1}, {2} bloke
stat.wave = Garaitutako boladak:[accent] {0}
stat.enemiesDestroyed = Suntsitutako etsaiak:[accent] {0}
stat.built = Eraikitako eraikinak:[accent] {0}
@ -48,7 +48,7 @@ stat.deconstructed = Deseraikitako eraikinak:[accent] {0}
stat.delivered = Egotzitako baliabideak:
stat.rank = Azken graduazioa: [accent]{0}
launcheditems = [accent]Egotzitako baliabideak
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
launchinfo = [unlaunched][[EGOTZI] zure muina urdinez adierazitako baliabideak eskuratzeko.
map.delete = Ziur al zaude "[accent]{0}[]" mapa ezabatu nahi duzula?
level.highscore = Marka: [accent]{0}
level.select = Maila hautaketa
@ -64,7 +64,7 @@ customgame = Partida pertsonalizatua
newgame = Partida berria
none = <bat ere ez>
minimap = Mapatxoa
position = Position
position = Posizioa
close = Itxi
website = Webgunea
quit = Irten
@ -80,30 +80,30 @@ uploadingcontent = Edukia igotzen
uploadingpreviewfile = Aurrebista fitxategia igotzen
committingchanges = Aldaketak aplikatzen
done = Egina
feature.unsupported = Your device does not support this feature.
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [LIGHT_GRAY]No mods found!
mods.guide = Modding Guide
mods.report = Report Bug
mods.openfolder = Open Mod Folder
mod.enabled = [lightgray]Enabled
mod.disabled = [scarlet]Disabled
mod.disable = Disable
mod.delete.error = Unable to delete mod. File may be in use.
mod.missingdependencies = [scarlet]Missing dependencies: {0}
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Reload Required
mod.import = Import Mod
mod.import.github = Import GitHub Mod
mod.remove.confirm = This mod will be deleted.
mod.author = [LIGHT_GRAY]Author:[] {0}
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
feature.unsupported = Zure gailuak ez du ezaugarri hau onartzen.
mods.alphainfo = Kontuan izan mod-ak alfa egoeran daudela, eta [scarlet] akats ugari izan ditzakete[].\nEman arazoen berri Mindustry-ren GitHub or Discord zerbitzuetan.
mods.alpha = [accent](Alfa)
mods = Mod-ak
mods.none = [LIGHT_GRAY]Ez da mod-ik aurkitu!
mods.guide = Mod-ak sortzeko gida
mods.report = Eman akatsaren berri
mods.openfolder = Ireki Mod-en karpeta
mod.enabled = [lightgray]Gaituta
mod.disabled = [scarlet]Desgaituta
mod.disable = Desgaitu
mod.delete.error = Ezin izan da mod-a ezabatu. Agian fitxategia erabilia izaten ari da.
mod.missingdependencies = [scarlet]Falta diren menpekotasunak: {0}
mod.nowdisabled = [scarlet]'{0}' mod-ak menpekotasunak ditu faltan:[accent] {1}\n[lightgray]Aurretik beste mod hauek deskargatu behar dira.\nMod hau automatikoki desgaituko da.
mod.enable = Gaitu
mod.requiresrestart = Jolasa itxi egingo da mod-aren aldaketak aplikatzeko.
mod.reloadrequired = [scarlet]Birkargatu behar da
mod.import = Importatu Mod-a
mod.import.github = Inportatu GitHub Mod-a
mod.remove.confirm = Mod hau ezabatuko da.
mod.author = [LIGHT_GRAY]Egilea:[] {0}
mod.missing = Gordetako partida honek eguneratu dituzun edo jada instalatuta ez dituzun mod-ak ditu. Gordetako partida izorratu daiteke. Ziur kargatu nahi duzula?\n[lightgray]Mod-ak:\n{0}
mod.preview.missing = Mod hau tailerrean argitaratu aurretik, aurrebista bat gehitu behar diozu.\nKokatu[accent] preview.png[] izeneko irudi bat mod-aren karpetan eta saiatu berriro.
mod.folder.missing = Karpeta formatuko mod-ak besterik ezin dira argitaratu tailerrean.\nEdozein mod karpetara bihurtzeko, deskopnrimitu fitxategia eta ezabatu zip zaharra, gero berrabiarazi jolasa edo birkargatu zure mod-ak.
about.button = Honi buruz
name = Izena:
noname = Hautatu[accent] jokalari-izena[] aurretik.
@ -216,8 +216,8 @@ save.playtime = Jolastua: {0}
warning = Abisua.
confirm = Baieztatu
delete = Ezabatu
view.workshop = Ikusi lantegian
workshop.listing = Edit Workshop Listing
view.workshop = Ikusi tailerrean
workshop.listing = Editatu tailerreko zerrenda
ok = Ados
open = Ireki
customize = Aldatu arauak
@ -235,12 +235,12 @@ classic.export.text = [accent]Mindustry[] jolasak eguneraketa nagusi bat jaso du
quit.confirm = Ziur irten nahi duzula?
quit.confirm.tutorial = Ziur al zaude irten nahi duzula?\nTutoriala berriro hasi dezakezu hemen: [accent] Ezarpenak->Jolasa->Berriro hasi tutoriala.[]
loading = [accent]Kargatzen...
reloading = [accent]Reloading Mods...
reloading = [accent]Mod-ak birkargatzen...
saving = [accent]Gordetzen...
cancelbuilding = [accent][[{0}][] to clear plan
selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
cancelbuilding = [accent][[{0}][] plan bat ezabatzeko
selectschematic = [accent][[{0}][] hautatu+kopiatzeko
pausebuilding = [accent][[{0}][] eraikiketa eteteko
resumebuilding = [scarlet][[{0}][] eraikiketa berrekiteko
wave = [accent]{0}. bolada
wave.waiting = [lightgray]Boladarako {0}
wave.waveInProgress = [lightgray]Bolada abian
@ -259,18 +259,18 @@ map.nospawn = Mapa honek ez du muinik jokalaria sortu dadin! Gehitu muin [accent
map.nospawn.pvp = Mapa honek ez du etsaien muinik jokalaria sortu dadin! Gehitu [SCARLET]laranja ez den[] muinen bat edo batzuk mapa honi editorean.
map.nospawn.attack = Mapa honek ez du etsaien muinik jokalariak eraso dezan! Gehitu muin [SCARLET]gorriak[] mapa honi editorean.
map.invalid = Errorea mapa kargatzean: Mapa-fitxategi baliogabe edo hondatua.
workshop.update = Update Item
workshop.error = Error fetching workshop details: {0}
workshop.update = Eguneratu elementua
workshop.error = Errorea tailerreko xehetasunak eskuratzean: {0}
map.publish.confirm = Ziur mapa hau argitaratu nahi duzula?\n\n[lightgray]Ziurtatu aurretik lantegiaren erabilera arauekin bat zatozela, bestela zure mapak ez dira agertuko!
workshop.menu = Select what you would like to do with this item.
workshop.info = Item Info
changelog = Changelog (optional):
workshop.menu = Erabaki elementu honekin zer egin nahi duzun.
workshop.info = Elementuaren informazioa
changelog = Aldaketa egunkatia (aukerakoa):
eula = Steam EULA
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
publishing = [accent]Publishing...
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
publish.error = Error publishing item: {0}
steam.error = Failed to initialize Steam services.\nError: {0}
missing = Elementu hau ezabatu edo lekuz aldatu da.\n[lightgray]Tailerreko zerrendatik kendu da automatikoki.
publishing = [accent]Argitaratzen...
publish.confirm = Ziur hau argitaratu nahi duzula?\n\n[lightgray]Egiaztatu tailerreko EULA lizentziarekin ados zaudela aurretik, bestela zure elementuak ez dira agertuko!
publish.error = Errorea elementua argitaratzean: {0}
steam.error = Huts egin du Steam zerbitzuak hasieratzean.\nErrorea: {0}
editor.brush = Brotxa
editor.openin = Ireki editorean
editor.oregen = Mea sorrera
@ -411,9 +411,9 @@ abandon = Abandonatu
abandon.text = Eremu hau eta bere baliabide guztiak etsaiaren esku geratuko dira.
locked = Blokeatuta
complete = [lightgray]Helmena:
requirement.wave = Reach Wave {0} in {1}
requirement.core = Destroy Enemy Core in {0}
requirement.unlock = Unlock {0}
requirement.wave = Iritsi {0} boladara {1}
requirement.core = Suntsitu etsaiaren muina {0}
requirement.unlock = Desblokeatu {0}
resume = Berrekin:\n[lightgray]{0}
bestwave = [lightgray]Bolada onena: {0}
launch = < EGOTZI >
@ -424,13 +424,13 @@ launch.confirm = Honek zure muinean dauden baliabide guztiak egotziko ditu.\nEzi
launch.skip.confirm = Orain ez eginez gero, geroagoko beste bolada batera itxaron beharko duzu.
uncover = Estalgabetu
configure = Konfiguratu zuzkidura
bannedblocks = Banned Blocks
addall = Add All
bannedblocks = Debekatutako blokeak
addall = Gehitu denak
configure.locked = [lightgray]Zuzkiduraren konfigurazioa desblokeatzeko: {0} bolada.
configure.invalid = Kopurua 0 eta {0} bitarteko zenbaki bat izan behar da.
zone.unlocked = [lightgray]{0} desblokeatuta.
zone.requirement.complete = {0}. boladara iritsia:\n{1} Eremuaren betebeharra beteta.
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
zone.config.unlocked = Deskarga desblokeatuta:[lightgray]\n{0}
zone.resources = [lightgray]Antzemandako baliabideak:
zone.objective = [lightgray]Helburua: [accent]{0}
zone.objective.survival = Biziraupena
@ -487,8 +487,8 @@ settings.cleardata = Garbitu jolasaren datuak...
settings.clear.confirm = Ziur datu hauek garbitu nahi dituzula?\nEgindakoa ezin da desegin!
settings.clearall.confirm = [scarlet]ABISUA![]\nHonek datu guztiak garbituko ditu, gordetako partidak, mapak, desblokeatutakoak, eta teklen konfigurazioak barne.\nBehin 'Ados' sakatzen duzula jolasak datuk guztiak ezabatuko ditu eta automatikoki irten.
paused = [accent]< Pausatuta >
clear = Clear
banned = [scarlet]Banned
clear = Garbitu
banned = [scarlet]Debekatuta
yes = Bai
no = Ez
info.title = Informazioa
@ -509,7 +509,7 @@ blocks.shootrange = Irismena
blocks.size = Neurria
blocks.liquidcapacity = Likido-edukiera
blocks.powerrange = Energia irismena
blocks.powerconnections = Max Connections
blocks.powerconnections = Gehieneko konexioak
blocks.poweruse = Energia-erabilera
blocks.powerdamage = Energia/Kaltea
blocks.itemcapacity = Elementu-edukiera
@ -531,7 +531,7 @@ blocks.reload = Tiroak/segundoko
blocks.ammo = Munizioa
bar.drilltierreq = Zulagailu hobea behar da
bar.drillspeed = Ustiatze-abiadura: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.pumpspeed = Ponpatze abiadura: {0}/s
bar.efficiency = Eraginkortasuna: {0}%
bar.powerbalance = Energia: {0}/s
bar.powerstored = Bilduta: {0}/{1}
@ -576,9 +576,9 @@ category.shooting = Tirokatzea
category.optional = Aukerako hobekuntzak
setting.landscape.name = Blokeatu horizontalean
setting.shadows.name = Itzalak
setting.blockreplace.name = Automatic Block Suggestions
setting.blockreplace.name = Bloke proposamen automatikoak
setting.linear.name = Iragazte lineala
setting.hints.name = Hints
setting.hints.name = Pistak
setting.animatedwater.name = Animatutako ura
setting.animatedshields.name = Animatutako ezkutuak
setting.antialias.name = Antialias[lightgray] (berrabiarazi behar da)[]
@ -599,8 +599,8 @@ setting.difficulty.insane = Zoramena
setting.difficulty.name = Zailtasuna:
setting.screenshake.name = Pantailaren astindua
setting.effects.name = Bistaratze-efektuak
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.destroyedblocks.name = Erakutsi suntsitutako blokeak
setting.conveyorpathfinding.name = Garraio-zintak kokatzeko bide-bilaketa
setting.sensitivity.name = Kontrolagailuaren sentikortasuna
setting.saveinterval.name = Gordetzeko tartea
setting.seconds = {0} segundo
@ -610,7 +610,7 @@ setting.fps.name = Erakutsi FPS
setting.vsync.name = VSync
setting.pixelate.name = Pixelatu[lightgray] (animazioak desgaitzen ditu)
setting.minimap.name = Erakutsi mapatxoa
setting.position.name = Show Player Position
setting.position.name = Erakutsi jokalariaren kokalekua
setting.musicvol.name = Musikaren bolumena
setting.ambientvol.name = Giroaren bolumena
setting.mutemusic.name = Isilarazi musika
@ -620,10 +620,10 @@ setting.crashreport.name = Bidali kraskatze txosten automatikoak
setting.savecreate.name = Gorde automatikoki
setting.publichost.name = Partidaren ikusgaitasun publikoa
setting.chatopacity.name = Txataren opakotasuna
setting.lasersopacity.name = Power Laser Opacity
setting.lasersopacity.name = Energia laserraren opakutasuna
setting.playerchat.name = Erakutsi jolas barneko txata
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
public.beta = Note that beta versions of the game cannot make public lobbies.
public.confirm = Zure jolasa publikoa egin nahi duzu?\n[accent]Edonor elkartu ahal izango da zure partidetara.\n[lightgray]Hau gero ere aldatu dauteke, Ezarpenak->Partida->Partida publikoaren ikusgaitasuna.
public.beta = Kontuan izan jolasaren beta bertsioek ezin dituztela jokalarien gela publokoak sortu.
uiscale.reset = Interfazearen eskala aldatu da.\nSakatu "Ados" eskala hau berresteko.\n[scarlet][accent] {0}[] segundo atzera egin eta irteteko...
uiscale.cancel = Utzi eta irten
setting.bloom.name = Distira
@ -635,16 +635,16 @@ category.multiplayer.name = Hainbat jokalari
command.attack = Eraso
command.rally = Batu
command.retreat = Erretreta
keybind.clear_building.name = Clear Building
keybind.clear_building.name = Garrbitu eraikina
keybind.press = Sakatu tekla bat...
keybind.press.axis = Sakatu ardatza edo tekla...
keybind.screenshot.name = Maparen pantaila-argazkia
keybind.move_x.name = Mugitu x
keybind.move_y.name = Mugitu y
keybind.schematic_select.name = Select Region
keybind.schematic_menu.name = Schematic Menu
keybind.schematic_flip_x.name = Flip Schematic X
keybind.schematic_flip_y.name = Flip Schematic Y
keybind.schematic_select.name = Hautatu eskualdea
keybind.schematic_menu.name = Eskema menua
keybind.schematic_flip_x.name = Itzulbiratu X
keybind.schematic_flip_y.name = Itzulbiratu Y
keybind.fullscreen.name = Txandakatu pantaila osoa
keybind.select.name = Hautatu/Tirokatu
keybind.diagonal_placement.name = Kokatze diagonala
@ -656,14 +656,14 @@ keybind.zoom_hold.name = Zoom mantenduz
keybind.zoom.name = Zoom
keybind.menu.name = Menua
keybind.pause.name = Pausatu
keybind.pause_building.name = Pause/Resume Building
keybind.pause_building.name = Pausatu/berrekin eraikiketa
keybind.minimap.name = Mapatxoa
keybind.dash.name = Arrapalada
keybind.chat.name = Txata
keybind.player_list.name = Jokalarien zerrenda
keybind.console.name = Kontsola
keybind.rotate.name = Biratu
keybind.rotateplaced.name = Rotate Existing (Hold)
keybind.rotateplaced.name = Biratu dagoena (Mantendu)
keybind.toggle_menus.name = Txandakatu menuak
keybind.chat_history_prev.name = Txat historialean aurrekoa
keybind.chat_history_next.name = Txat historialean hurrengoa
@ -675,7 +675,7 @@ mode.survival.name = Biziraupena
mode.survival.description = Modu arrunta. Baliabide mugatuak eta bolada automatikoak.\n[gray]Jolasteko etsaien sortze puntuak behar dira mapan.
mode.sandbox.name = Jolastokia
mode.sandbox.description = Baliabide amaigabeak eta boladen denboragailurik gabe.
mode.editor.name = Editor
mode.editor.name = Editorea
mode.pvp.name = JvJ
mode.pvp.description = Borrokatu beste jokalari batzuk lokalean.\n[gray]Gutxienez bi kolore desberdinetako muinak behar dira mapan jolasteko.
mode.attack.name = Erasoa
@ -843,8 +843,8 @@ block.copper-wall.name = Kobrezko horma
block.copper-wall-large.name = Kobrezko horma handia
block.titanium-wall.name = Titaniozko horma
block.titanium-wall-large.name = Titaniozko horma handia
block.plastanium-wall.name = Plastanium Wall
block.plastanium-wall-large.name = Large Plastanium Wall
block.plastanium-wall.name = Plastaniozko horma
block.plastanium-wall-large.name = Plastaniozko horma handia
block.phase-wall.name = Fasezko horma
block.phase-wall-large.name = Fasezko horma handia
block.thorium-wall.name = Toriozko horma
@ -864,7 +864,7 @@ block.junction.name = Lotunea
block.router.name = Bideratzailea
block.distributor.name = Banatzailea
block.sorter.name = Antolatzailea
block.inverted-sorter.name = Inverted Sorter
block.inverted-sorter.name = Alderantzizko antolatzailea
block.message.name = Mezua
block.overflow-gate.name = Gainezkatze atea
block.silicon-smelter.name = Silizio galdategia
@ -983,7 +983,7 @@ unit.lich.name = Litxe
unit.reaper.name = Segalaria
tutorial.next = [lightgray]<Sakatu jarraitzeko>
tutorial.intro = Hau [scarlet]Mindustry tutoriala[] da.\nHasi [accent]kobrea ustiatzen[]. Horretarako, sakatu zure muinetik hurbil dagoen kobre-mea bat.\n\n[accent]{0}/{1} kobre
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
tutorial.intro.mobile = [scarlet] Mindustry Tutorialean[] sartu zara\nPasatu hatza mugitzeko.\n[accent]Egin atximurkada bi hatzekin [] zooma hurbildu edo urruntzeko.\nHasi[accent] kobrea ustiatuz[]. Hurbildu kobrera, gero sakatu zure muinetik hurbil dagoen kobre mea bat.\n\n[accent]{0}/{1} kobre
tutorial.drill = Eskuz ustiatzea ez da eraginkorra.\n[accent]Zulagailuek []automatikoki ustiatu dezakete.\nSakatu zulagailuen fitxa, behean eskuman.\nHautatu[accent] zulagailu mekanikoa[]. Kokatu ezazu kobre zain batean klik eginez.\n[accent]Eskumako klik[] deseraikitzeko.
tutorial.drill.mobile = Eskuz ustiatzea ez da eraginkorra.\n[accent]Zulagailuek []automatikoki ustiatu dezakete.\nSakatu zulagailuen fitxa behean eskuman.\nHautatu[accent] zulagailu mekanikoa[]. \nKokatu ezazu kobre zain batean sakatuz, gero sakatu azpiko [accent]egiaztapen-marka[] zure hautaketa berresteko.\nSakatu [accent]X botoia[] kokatzea ezeztatzeko.
tutorial.blockinfo = Bloke bakoitzak estatistika desberdinak ditu. Eta zulagailu bakoitzak mea mota zehatz batzuk ustiatu ditzake soilik.\nBloke mota baten informazio eta estatistikak egiaztatzeko,[accent] hautatu blokea eraikiketa menuan eta sakatu "?" botoia .[]\n\n[accent]Atzitu zulagailu mekanikoaren estatistikak orain.[]
@ -1000,7 +1000,7 @@ tutorial.breaking.mobile = Maiz blokeak suntsitu beharko dituzu.\n[accent]Hautat
tutorial.withdraw = Egoera batzuetan, blokeetatik zuzenean hartu behar dira baliabideak.\nHorretarako, [accent]sakatu baliabideak dituen bloke bat[], gero [accent]sakatu baliabidea[] inbentarioan.\nHainbat baliabide ateratzeko [accent]sakatu eta mantendu[].\n\n[accent]Atera kobre apur bat muinetik.[]
tutorial.deposit = Baliabideak blokeren batean sartzeko, arrastatu zure ontzitik blokera.\n\n[accent]Sartu zure kobrea berriro muinean.[]
tutorial.waves = [lightgray]Etsaia[] dator.\n\nBabestu muina 2 boladetan zehar. [accent]Egin klik[] tirokatzeko.\nEraiki dorre eta zulagailu gehiago. Ustiatu kobre gehiago.
tutorial.waves.mobile = [lightgray]Etsaia[] daor.\n\nBabestu muina 2 boladatan. Zure ontziak automatikoki tirokatuko ditu etsaiak.\nEraiki dorre eta zulagailu gehiago. Ustiatu kobre gehiago.
tutorial.waves.mobile = [lightgray]Etsaia[] dator.\n\nBabestu muina 2 boladatan. Zure ontziak automatikoki tirokatuko ditu etsaiak.\nEraiki dorre eta zulagailu gehiago. Ustiatu kobre gehiago.
tutorial.launch = Bolada zehatz batera heltzean, [accent]muina egotzi[] dezakezu, zure defentsak atzean utziz [accent]eta muineko baliabide guztiak eskuratuz.[]\nBaliabide hauek teknologia berriak ikertzeko erabili daitezke.\n\n[accent]Sakatu egotzi botoia.
item.copper.description = Egiturazko material oinarrizkoena. Asko erabilia bloke mota guztietarako.
item.lead.description = Hastapeneko oinarrizko materiala. Bloke elektronikoak eta likidoen garraiorako blokeetan asko erabilia.
@ -1067,8 +1067,8 @@ block.copper-wall.description = Babeserako bloke merke bat.\nMuina eta dorreak l
block.copper-wall-large.description = Babeserako bloke merke bat.\nMuina eta dorreak lehen boladetan babesteko erabilgarria.\nHainbat lauza hartzen ditu.
block.titanium-wall.description = Zertxobait gogorra den babeserako bloke bat.\nEtsaien aurreko babes ertaina eskaintzen du.
block.titanium-wall-large.description = Zertxobait gogorra den babeserako bloke bat.\nEtsaien aurreko babes ertaina eskaintzen du.\nHainbat lauza hartzen ditu.
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
block.plastanium-wall.description = Arku elektrikoak xurgatzen dituen eta energia-nodoen konexio automatikoak blokeatzen dituen horma berezia.
block.plastanium-wall-large.description = Arku elektrikoak xurgatzen dituen eta energia-nodoen konexio automatikoak blokeatzen dituen horma berezia..\nHainbat lauza hartzen ditu.
block.thorium-wall.description = Babeserako bloke gogorra.\nEtsaitatik aterpe txukuna.
block.thorium-wall-large.description = Babeserako bloke gogorra.\nEtsaitatik aterpe txukuna.\nHainbat lauza hartzen ditu.
block.phase-wall.description = Fasez osatutako konposatu islatzaile batez estalitako horma bat. Talkan jasotako bala gehienak desbideratzen ditu.
@ -1088,7 +1088,7 @@ block.junction.description = Gurutzatutako bi garraio-zinten arteko zubi gisa ar
block.bridge-conveyor.description = Elementuen garraiorako bloke aurreratua. Elementuak edozein gainazal edo eraikinen gainetik garraiatzen ditu 3 lauzatara gehienez.
block.phase-conveyor.description = Elementuen garraiorako bloke aurreratua. Energia erabiltzen du hainbat lauzetara konektatutako beste Fasezko garraiagailu batera elementuak teleportatzeko.
block.sorter.description = Elementuak antolatzen ditu. Elementu bat hautuarekin bat badator, aurrera jarraitu dezake. Bestela, elementua ezker eta eskuinera ateratzen da.
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
block.inverted-sorter.description = Antolatzaile arruntaren antzera prozesatzen ditu elementuak, baina hautatutako elementuak alboetara ateratzen ditu.
block.router.description = Elementuak onartzen ditu, eta beste gehienez 3 norabideetara ateratzen ditu kopuru berdinetan. Jatorri batetik hainbat xedeetara materialak banatzeko egokia.\n\n[scarlet]Ez jarri ekoizpen sarreren ondoan, irteerek trabatuko baitute.[]
block.distributor.description = Bideratzaile aurreratu bat. Elementuak beste gehienez 7 norabideetara sakabanatzen ditu kopuru berdinetan.
block.overflow-gate.description = Antolatzaile eta bideratzaile konbinatua. Soilik aurrealdea blokeatuta dagoenean ateratzen du ezker eta eskuinera.

File diff suppressed because it is too large Load diff

View file

@ -10,6 +10,7 @@ link.dev-builds.description = Versions instables du jeu
link.trello.description = Trello officiel pour les ajouts futurs
link.itch.io.description = Page itch.io avec lien de téléchargement pour PC
link.google-play.description = Google Play Store
link.f-droid.description = Catalogue F-Droid
link.wiki.description = Le wiki officiel de Mindustry
linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copiée dans votre presse papier.
screenshot = Capture d'écran sauvegardée à {0}
@ -18,12 +19,14 @@ gameover = Game over
gameover.pvp = L'équipe [accent] {0}[] a gagné !
highscore = [accent]Nouveau meilleur score!
copied = Copié.
load.sound = Sons
load.map = Cartes
load.image = Images
load.content = Contenu
load.system = Système
load.mod = Mods
schematic = Schéma
schematic.add = Sauvegarder le schéma...
schematics = Schémas
@ -40,6 +43,7 @@ schematic.saved = Schéma sauvegardé.
schematic.delete.confirm = Ce schéma sera complètement éradiqué.
schematic.rename = Renommer le schéma
schematic.info = {0}x{1}, {2} blocs
stat.wave = Vagues vaincues:[accent] {0}
stat.enemiesDestroyed = Ennemis détruits:[accent] {0}
stat.built = Bâtiments construits:[accent] {0}
@ -47,6 +51,7 @@ stat.destroyed = Bâtiments détruits:[accent] {0}
stat.deconstructed = Bâtiments déconstruits:[accent] {0}
stat.delivered = Ressources transférées:
stat.rank = Rang Final: [accent]{0}
launcheditems = [accent]Ressources transférées
launchinfo = [unlaunched][[LANCER] votre noyau pour obtenir les objets indiqués en bleu.
map.delete = Êtes-vous certain(e) de vouloir supprimer la carte "[accent]{0}[]"?
@ -74,6 +79,7 @@ maps.browse = Parcourir les cartes
continue = Continuer
maps.none = [lightgray]Aucune carte trouvée!
invalid = Invalide
pickcolor = Choisir la Couleur
preparingconfig = Préparation de la configuration
preparingcontent = Préparation du contenu
uploadingcontent = Publication du contenu
@ -81,6 +87,7 @@ uploadingpreviewfile = Publication du fichier d'aperçu
committingchanges = Validation des modifications
done = Fait
feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité.
mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry.
mods.alpha = [accent](Alpha)
mods = Mods
@ -104,6 +111,7 @@ mod.author = [LIGHT_GRAY]Auteur:[] {0}
mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à jour ou que vous avez désinstallés. Votre sauvegarde risque d'être corrompue. Êtes-vous sûr de vouloir l'importer?\n[lightgray]Mods:\n{0}
mod.preview.missing = Avant de publier ce mod dans le workshop, vous devez ajouter une image servant d'aperçu.\nPlacez une image nommée[accent] preview.png[] dans le dossier du mod et réessayez.
mod.folder.missing = Seuls les mods sous forme de dossiers peuvent être publiés sur l'atelier.\nPour convertir n'importe quel mod en un dossier, dézippez-le tout simplement dans un dossier et supprimez l'ancien zip, puis redémarrez votre jeu ou rechargez vos mods.
about.button = À propos
name = Nom:
noname = Commencer par choisir un[accent] nom de joueur[].
@ -271,6 +279,7 @@ publishing = [accent]Publication...
publish.confirm = Êtes-vous sûr de vouloir publier ceci ?\n\n[lightgray]Assurez-vous d'être d'abord d'accord avec les CGU du workshop, sinon vos éléments n'apparaîtront pas !
publish.error = Erreur de publication de l'élément: {0}
steam.error = Failed to initialize Steam services.\nError: {0}
editor.brush = Pinceau
editor.openin = Ouvrir dans l'éditeur
editor.oregen = Génération de minerais
@ -347,6 +356,7 @@ editor.overwrite = [accent]Attention!\nCeci écrase une carte existante.
editor.overwrite.confirm = [scarlet]Attention![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir l'écraser?
editor.exists = Une carte avec ce nom existe déjà.
editor.selectmap = Sélectionnez une carte:
toolmode.replace = Remplacer
toolmode.replace.description = Dessiner seulement sur les blocs solides.
toolmode.replaceall = Tout remplacer
@ -361,6 +371,7 @@ toolmode.fillteams = Remplir les équipes
toolmode.fillteams.description = Rempli les équipes au lieu des blocs.
toolmode.drawteams = Dessiner les équipes
toolmode.drawteams.description = Dessine les équipes au lieu de blocs.
filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous.
filter.distort = Déformation
filter.noise = Bruit
@ -392,6 +403,7 @@ filter.option.floor2 = Sol secondaire
filter.option.threshold2 = Seuil secondaire
filter.option.radius = Rayon
filter.option.percentile = Centile
width = Largeur:
height = Hauteur:
menu = Menu
@ -407,6 +419,7 @@ tutorial = Tutoriel
tutorial.retake = Refaire le Tutoriel
editor = Éditeur
mapeditor = Éditeur de carte
abandon = Abandonner
abandon.text = Cette zone et toutes ses ressources vont être perdues.
locked = Verrouillé
@ -437,6 +450,7 @@ zone.objective.survival = Survivre
zone.objective.attack = Détruire le noyau ennemi
add = Ajouter...
boss.health = Santé du Boss
connectfail = [crimson]Échec de la connexion au serveur :\n\n[accent]{0}
error.unreachable = Serveur injoignable.\nL'adresse IP est correcte?
error.invalidaddress = Adresse invalide.
@ -447,6 +461,7 @@ error.mapnotfound = Carte introuvable!
error.io = Erreur de Réseau (I/O)
error.any = Erreur réseau inconnue
error.bloom = Échec de l'initialisation du flou lumineux.\nVotre appareil peux ne pas le supporter.
zone.groundZero.name = Première Bataille
zone.desertWastes.name = Désert Sauvage
zone.craters.name = Les Cratères
@ -461,6 +476,7 @@ zone.saltFlats.name = Marais Salants
zone.impact0078.name = Impact 0078
zone.crags.name = Rochers
zone.fungalPass.name = Passe Fongique
zone.groundZero.description = L'emplacement optimal pour débuter. Faible menace ennemie. Peu de ressources. \nRecueillez autant de plomb et de cuivre que possible.\nRien d'autre à signaler.
zone.frozenForest.description = Même ici, plus près des montagnes, les spores se sont propagées. Les températures glaciales ne pourront pas les contenir pour toujours.\n\nFamiliarisez vous avec l'Énergie. Construisez des générateurs a combustion. Apprenez a utiliser les réparateurs.
zone.desertWastes.description = Cette étendue désertique est immense, imprévisible. On y croise des structures abandonnées.\nLe charbon est présent dans la région. Brûlez-le pour générer de l'Énergie ou synthétisez-le en graphite.\n\n[lightgray]Ce lieu d'atterisage est imprévisible.
@ -475,6 +491,7 @@ zone.nuclearComplex.description = Une ancienne installation de production et tra
zone.fungalPass.description = Une zone de transition entre les hautes montagnes et les basses régions infestées de spores. Une petite base de reconnaissance ennemie s'y trouve.\nDétruisez la.\nUtilisez les unités Poignard et Rampeurs. Détruisez les deux noyaux.
zone.impact0078.description = <insérer une description ici>
zone.crags.description = <insérer une description ici>
settings.language = Langue
settings.data = Données du Jeu
settings.reset = Valeurs par Défaut
@ -494,8 +511,8 @@ no = Non
info.title = Info
error.title = [crimson]Une erreur s'est produite
error.crashtitle = Une erreur s'est produite
blocks.input = Input
blocks.output = Output
blocks.input = Entrée
blocks.output = Sortie
blocks.booster = Booster
block.unknown = [lightgray]???
blocks.powercapacity = Capacité d'énergie
@ -529,9 +546,10 @@ blocks.inaccuracy = Imprécision
blocks.shots = Tirs
blocks.reload = Tirs/Seconde
blocks.ammo = Munitions
bar.drilltierreq = Foreuse Améliorée Requise
bar.drillspeed = Vitesse de forage: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.drillspeed = Vitesse de Forage: {0}/s
bar.pumpspeed = Vitesse de Pompage: {0}/s
bar.efficiency = Efficacité: {0}%
bar.powerbalance = Énergie: {0}/s
bar.powerstored = Stocké: {0}/{1}
@ -544,6 +562,9 @@ bar.heat = Chaleur
bar.power = Énergie
bar.progress = Progression de la construction
bar.spawned = Unités: {0}/{1}
bar.input = Entrée
bar.output = Sortie
bullet.damage = [stat]{0}[lightgray] dégâts
bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs
bullet.incendiary = [stat]incendiaire
@ -555,6 +576,7 @@ bullet.freezing = [stat]gel
bullet.tarred = [stat]goudronné
bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions
bullet.reload = [stat]{0}[lightgray]x vitesse de tir
unit.blocks = blocs
unit.powersecond = énergie/seconde
unit.liquidsecond = unité de liquide/seconde
@ -576,9 +598,10 @@ category.shooting = Défense
category.optional = Améliorations optionnelles
setting.landscape.name = Verrouiller en rotation paysage
setting.shadows.name = Ombres
setting.blockreplace.name = Automatic Block Suggestions
setting.blockreplace.name = Suggestions Automatiques de Blocs
setting.linear.name = Filtrage Linéaire
setting.hints.name = Astuces
setting.buildautopause.name = Pause Automatique de la Construction
setting.animatedwater.name = Eau animée
setting.animatedshields.name = Boucliers Animés
setting.antialias.name = Antialias[lightgray] (redémarrage du jeu nécessaire)[]
@ -599,14 +622,17 @@ setting.difficulty.insane = Extrême
setting.difficulty.name = Difficulté:
setting.screenshake.name = Tremblement de l'écran
setting.effects.name = Afficher les effets
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.destroyedblocks.name = Afficher les Blocs Détruits
setting.conveyorpathfinding.name = Recherche de Chemin pour le Placement de Convoyeurs
setting.sensitivity.name = Sensibilité de la manette
setting.saveinterval.name = Intervalle des sauvegardes auto
setting.seconds = {0} secondes
setting.blockselecttimeout.name = Délai d'Attente de Sélection de Bloc
setting.milliseconds = {0} millisecondes
setting.fullscreen.name = Plein Écran
setting.borderlesswindow.name = Fenêtre sans bords (Borderless)[lightgray] (peut nécessiter le redémarrage du jeu)
setting.fps.name = Afficher FPS
setting.blockselectkeys.name = Afficher les Touches de Sélection de Bloc
setting.vsync.name = VSync
setting.pixelate.name = Pixeliser[lightgray] (désactive les animations)
setting.minimap.name = Afficher la Minimap
@ -635,16 +661,36 @@ category.multiplayer.name = Multijoueur
command.attack = Attaque
command.rally = Rassembler
command.retreat = Retraite
placement.blockselectkeys = \n[lightgray]Touche: [{0},
keybind.clear_building.name = Effacer les constructions
keybind.press = Appuyer sur une touche...
keybind.press.axis = Appuyer sur un axe ou une touche...
keybind.screenshot.name = Capture d'écran
keybind.move_x.name = Mouvement x
keybind.move_y.name = Mouvement y
keybind.toggle_power_lines.name = Montrer/Cacher les Connections d'Énergie
keybind.move_x.name = Mouvement X
keybind.move_y.name = Mouvement Y
keybind.mouse_move.name = Suivre la Souris
keybind.dash.name = Sprint
keybind.schematic_select.name = Sélectionner une région
keybind.schematic_menu.name = Menu des schéma
keybind.schematic_flip_x.name = Retourner le schéma sur l'axe X
keybind.schematic_flip_y.name = Retourner le schéma sur l'axe Y
keybind.category_prev.name = Catégorie Précédente
keybind.category_next.name = Catégorie Suivante
keybind.block_select_left.name = Sélectionner Bloc de Gauche
keybind.block_select_right.name = Sélectionner Bloc de Droite
keybind.block_select_up.name = Sélectionner Bloc en Haut
keybind.block_select_down.name = Sélectionner Bloc en Bas
keybind.block_select_01.name = Sélectionner Catégorie/Bloc 1
keybind.block_select_02.name = Sélectionner Catégorie/Bloc 2
keybind.block_select_03.name = Sélectionner Catégorie/Bloc 3
keybind.block_select_04.name = Sélectionner Catégorie/Bloc 4
keybind.block_select_05.name = Sélectionner Catégorie/Bloc 5
keybind.block_select_06.name = Sélectionner Catégorie/Bloc 6
keybind.block_select_07.name = Sélectionner Catégorie/Bloc 7
keybind.block_select_08.name = Sélectionner Catégorie/Bloc 8
keybind.block_select_09.name = Sélectionner Catégorie/Bloc 9
keybind.block_select_10.name = Sélectionner Catégorie/Bloc 10
keybind.fullscreen.name = Basculer en Plein Écran
keybind.select.name = Sélectionner/Tirer
keybind.diagonal_placement.name = Placement en diagonale
@ -658,18 +704,17 @@ keybind.menu.name = Menu
keybind.pause.name = Pause
keybind.pause_building.name = Pauser/Reprendre la construction
keybind.minimap.name = Minimap
keybind.dash.name = Sprint
keybind.chat.name = Chat
keybind.player_list.name = Liste des joueurs
keybind.player_list.name = Liste des Joueurs
keybind.console.name = Console
keybind.rotate.name = Tourner
keybind.rotateplaced.name = Tourner existant (maintenir)
keybind.toggle_menus.name = Cacher/afficher les menus
keybind.chat_history_prev.name = Remonter l'historique du chat
keybind.chat_history_next.name = Descendre l'historique du chat
keybind.chat_scroll.name = Défilement du chat
keybind.toggle_menus.name = Cacher/Afficher les Menus
keybind.chat_history_prev.name = Remonter l'Historique du Chat
keybind.chat_history_next.name = Descendre l'Historique du Chat
keybind.chat_scroll.name = Défilement du Chat
keybind.drop_unit.name = Larguer l'unité
keybind.zoom_minimap.name = Zoom minimap
keybind.zoom_minimap.name = Zoom Minimap
mode.help.title = Description des modes de jeu
mode.survival.name = Survie
mode.survival.description = Le mode normal. Ressources limitées et vagues automatiques.\n[gray]Nécessite un point d'apparition pour les ennemis.
@ -681,7 +726,9 @@ mode.pvp.description = Battez-vous contre d'autres joueurs en local.\n[gray]Requ
mode.attack.name = Attaque
mode.attack.description = Pas de vagues, le but étant de détruire la base ennemie.\n[gray]Requiert un noyaux rouge dans la map pour y jouer.
mode.custom = Règles personnalisées
rules.infiniteresources = Ressources infinies
rules.reactorexplosions = Explosion des Réacteurs
rules.wavetimer = Minuterie pour les vagues
rules.waves = Vagues
rules.attack = Mode d'Attaque
@ -707,6 +754,10 @@ rules.title.resourcesbuilding = Ressources & Construction
rules.title.player = Joueurs
rules.title.enemy = Ennemis
rules.title.unit = Unités
rules.title.experimental = Expérimental
rules.lighting = Éclairage
rules.ambientlight = Éclairage Ambiant
content.item.name = Objets
content.liquid.name = Liquides
content.unit.name = Unités
@ -753,6 +804,7 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = Bombes
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Mitraille incendiaire
item.corestorable = [lightgray]Stockable dans le Noyau: {0}
item.explosiveness = [LIGHT_GRAY]Explosivité: {0}
item.flammability = [LIGHT_GRAY]Inflammabilité: {0}
item.radioactivity = [LIGHT_GRAY]Radioactivité: {0}
@ -768,6 +820,7 @@ mech.buildspeed = [LIGHT_GRAY]Vitesse de Construction: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
liquid.temperature = [LIGHT_GRAY]Température: {0}
block.sand-boulder.name = Bloc de Sable
block.grass.name = Herbe
block.salt.name = Sel
@ -866,6 +919,8 @@ block.distributor.name = Distributeur
block.sorter.name = Trieur
block.inverted-sorter.name = Trieur Inversé
block.message.name = Message
block.illuminator.name = Illuminateur
block.illuminator.description = Une petite source lumineuse compacte et configurable. Nécessite de l'énergie pour fonctionner.
block.overflow-gate.name = Barrière de Débordement
block.silicon-smelter.name = Fonderie de Silicium
block.phase-weaver.name = Tisseur à Phase
@ -879,6 +934,7 @@ block.coal-centrifuge.name = Centrifugeur à Charbon
block.power-node.name = Transmetteur Énergétique
block.power-node-large.name = Grand Transmetteur Énergétique
block.surge-tower.name = Tour de Surtension
block.diode.name = Diode de Batterie
block.battery.name = Batterie
block.battery-large.name = Grande Batterie
block.combustion-generator.name = Générateur à Combustion
@ -931,6 +987,7 @@ block.fortress-factory.name = Usine de Méchas Forteresses
block.revenant-factory.name = Usine de Combattants Revenants
block.repair-point.name = Point de Réparation
block.pulse-conduit.name = Conduit à Impulsion
block.plated-conduit.name = Conduit Plaqué
block.phase-conduit.name = Conduit Phasé
block.liquid-router.name = Routeur de Liquide
block.liquid-tank.name = Réservoir à Liquide
@ -938,7 +995,7 @@ block.liquid-junction.name = Jonction à Liquide
block.bridge-conduit.name = Conduit Surélevé
block.rotary-pump.name = Pompe Rotative
block.thorium-reactor.name = Réacteur à Thorium
block.mass-driver.name = Transporteur de Masses
block.mass-driver.name = Catapulte Électromagnétique
block.blast-drill.name = Foreuse à Explosion
block.thermal-pump.name = Pompe Thermique
block.thermal-generator.name = Générateur Thermique
@ -982,7 +1039,7 @@ unit.eradicator.name = Éradicateur
unit.lich.name = Liche
unit.reaper.name = Faucheur
tutorial.next = [lightgray]<Appuyez pour continuer>
tutorial.intro = Vous venez de commencer le [scarlet]Tutoriel de Mindustry.[]\nUtilisez [[ZQSD] pour vous déplacer.\n[accent]Maintenez [[Ctrl] tout en faisant rouler la molette de la souris[] pour zoomer et dézoomer.\nCommencez en minant du [accent]cuivre[]. Pour cela, rapprochez vous de la veine de minerais de cuivre près de votre noyau et faites un clic gauche dessus.\n\n[accent]{0}/{1} cuivre
tutorial.intro = Vous venez de commencer le [scarlet]Tutoriel de Mindustry.[]\nUtilisez [accent][[ZQSD][] pour vous déplacer.\n[accent]Maintenez [[Ctrl] tout en faisant rouler la molette de la souris[] pour zoomer et dézoomer.\nCommencez en minant du [accent]cuivre[]. Pour cela, rapprochez vous de la veine de minerais de cuivre près de votre noyau et faites un clic gauche dessus.\n\n[accent]{0}/{1} cuivre
tutorial.intro.mobile = Vous venez de commencer le [scarlet]Tutoriel de Mindustry.[]\nBalayez l'écran pour vous déplacer.\n[accent] Pincer avec deux doigts [] afin d'agrandir et rétrécir la perspective.\nCommencez en[accent] minant du cuivre[]. Pour cela, appuyez sur une veine de minerai de cuivre près de votre noyau.\n\n[accent]{0}/{1} cuivre
tutorial.drill = Miner manuellement est inefficace.\n[accent]Les foreuses []peuvent miner pour vous.\nCliquez sur l'onglet des foreuses en bas à droite.\nSélectionnez la [accent]foreuse mécanique[]. Placez-la sur une veine de cuivre en cliquant.\n[accent]Faite un clique-droit[] pour arrêter la construction.
tutorial.drill.mobile = Miner manuellement est inefficace.\n[accent]Les foreuses []peuvent miner pour vous.\nAppuyez sur l'onglet des foreuses en bas à droite.\nSélectionnez la [accent]foreuse mécanique[].\nPlacez-la sur une veine de cuivre en y appuyant, puis en touchant la[accent] coche[] pour confirmer votre placement.\nAppuyez sur le [accent]bouton en forme de croix[] pour annuler le placement.
@ -1002,6 +1059,7 @@ tutorial.deposit = Déposez des ressources dans des blocs en les faisant glisser
tutorial.waves = L'[lightgray] ennemi[] approche.\n\nDéfendez le noyau pendant 2 vagues.[accent] Cliquez[] pour tirer.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre.
tutorial.waves.mobile = L'[lightgray] ennemi[] approche.\n\nDéfendez le noyau pendant 2 vagues. Votre vaisseau tirera automatiquement sur les ennemis.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre.
tutorial.launch = Une fois que vous aurez atteint une vague spécifique, vous aurez la possibilité de[accent] faire décoller le noyau[], abandonnant vos défenses mais [accent]sécurisant toutes les ressources stockées dans votre noyau.[]\nCes ressources peuvent ensuite être utilisées pour rechercher de nouvelles technologies.\n\n[accent]Appuyez sur le bouton de lancement.
item.copper.description = Le matériau structurel de base. Utilisé intensivement dans tout les blocs.
item.lead.description = Un matériau de départ. Utilisé intensivement en électronique et dans les blocs de transport de liquides.
item.metaglass.description = Un composé de vitre super-résistant. Utilisé largement pour le transport et le stockage de liquides.
@ -1083,21 +1141,22 @@ block.overdrive-projector.description = Accélère les bâtiments autour de lui,
block.force-projector.description = Crée un champ de force hexagonal autour de lui qui protège les bâtiments et les unités à l'intérieur des dégâts.\nSurchauffe si trop de dégâts sont reçus. Peut utiliser du liquide réfrigérant pour éviter la surchauffe. Peut utiliser du tissu phasé pour booster la taille du bouclier.
block.shock-mine.description = Blesse les ennemis qui marchent dessus. Quasiment invisible pour l'ennemi.
block.conveyor.description = Convoyeur basique servant à transporter des objets. Les objets déplacés en avant sont automatiquement déposés dans les tourelles ou les bâtiments. Peut être tourné.
block.titanium-conveyor.description = Convoyeur avancé . Déplace les objets plus rapidement que les convoyeurs standards.
block.titanium-conveyor.description = Convoyeur avancé. Déplace les objets plus rapidement que les convoyeurs standards.
block.junction.description = Agit comme un pont pour deux lignes de convoyeurs se croisant. Utile lorsque deux différents convoyeurs déplacent différents matériaux à différents endroits.
block.bridge-conveyor.description = Bloc de transport avancé permettant de traverser jusqu'à 3 blocs de n'importe quel terrain ou bâtiment.
block.phase-conveyor.description = Convoyeur très avancé. Utilise de l'énergie pour téléporter des objets à un convoyeur phasé connecté jusqu'à une longue distance .
block.sorter.description = Trie les articles. Si un article correspond à la sélection, il peut passer. Autrement, l'article est distribué vers la gauche ou la droite.
block.inverted-sorter.description = Trie les articles comme un trieur standard, mais ceux correspondant à la sélection sont envoyés sur les côtés.
block.phase-conveyor.description = Convoyeur très avancé. Utilise de l'énergie pour téléporter des objets à un convoyeur phasé connecté jusqu'à une longue distance.
block.sorter.description = Trie les ressources. Si une ressource correspond à la sélection, elle peut passer. Autrement, elle est distribuée vers la gauche ou la droite.
block.inverted-sorter.description = Trie les ressources comme un trieur standard, mais ceux correspondant à la sélection sont envoyés sur les côtés.
block.router.description = Accepte les objets depuis une ou plus directions et le renvoie dans n'importe quelle direction. Utile pour séparer une chaîne de convoyeurs en plusieurs.[accent]Le seul et l'Unique[]
block.distributor.description = Un routeur avancé qui sépare les objets jusqu'à 7 autres directions équitablement.
block.overflow-gate.description = C'est la combinaison entre un Routeur et un Diviseur qui peut seulement distribuer à gauche et à droite si le chemin de devant est bloqué.
block.mass-driver.description = bâtiment de transport d'objet [accent]ultime[]. Collecte un grand nombre d'objets puis les tire à un autre transporteur de masse sur une très longue distance.
block.mechanical-pump.description = Une pompe de faible prix pompant lentement, mais ne consomme pas d'énergie.
block.overflow-gate.description = Bloc envoyant les ressources à gauche et à droite si le chemin de devant est bloqué.
block.mass-driver.description = Le moyen de transport de resources ultime. Collecte plusieurs ressources puis les envoie à une autre catapulte sur une longue distance. Nécessite de l'énergie pour fonctionner.
block.mechanical-pump.description = Une pompe de faible prix pompant lentement, mais ne consommant pas d'énergie.
block.rotary-pump.description = Une pompe avancée plus rapide mais utilisant de l'énergie.
block.thermal-pump.description = La pompe ultime. Beaucoup plus rapide qu'une pompe mécanique et la seule pompe capable de récupérer de la lave.
block.conduit.description = Tuyau basique permettant le transport de liquide . Marche comme un convoyeur mais avec les liquides. Utile si utilisé avec des extracteurs, des pompes ou d'autres conduits.
block.pulse-conduit.description = Tuyau avancé permettant le transport de liquide . Transporte les liquides plus rapidement et en stocke plus que les tuyaux standards.
block.thermal-pump.description = La pompe ultime.
block.conduit.description = Bloc de transport de liquide de base. Fait avancer les liquides. Utilisé avec des pompes et autres conduits.
block.pulse-conduit.description = Tuyau avancé permettant le transport de liquide. Transporte les liquides plus rapidement et en stocke plus que les tuyaux standards.
block.plated-conduit.description = Déplace les liquides au même rythme que les conduits d'impulsion, mais possède plus d'armure. N'accepte pas de liquides provenant des côtés par autre chose que des conduits.\nFuit moins.
block.liquid-router.description = Accepte les liquides en une direction et les rejette de tous les côtés équitablement. Peut aussi stocker une certaine quantité de liquide. Utile pour envoyer un liquide à plusieurs endroits.
block.liquid-tank.description = Stocke une grande quantité de liquides . Utile pour réguler la sortie quand la demande est inconstante ou comme sécurité pour refroidir des bâtiments important.
block.liquid-junction.description = Agit comme une intersection pour deux conduits se croisant.Utile si deux conduits amènent différents liquides à différents endroits.
@ -1106,11 +1165,12 @@ block.phase-conduit.description = Tuyau très avancé permettant le transport de
block.power-node.description = Transmet l'énergie aux transmetteurs énergétiques connectés. Le transmetteur recevra de l'énergie ou la transmettra à n'importe quel bâtiment adjacent.
block.power-node-large.description = Possède un rayon plus grand que le transmetteur énergétique standard, connectant d'autant plus de consommateurs ou transmetteurs d'énergie.
block.surge-tower.description = Un transmetteur énergétique de très grande portée mais avec moins de connections disponibles.
block.diode.description = La batterie ne peut circuler dans ce bloc que dans un sens, mais uniquement si lautre côté a moins dénergie stockée.
block.battery.description = Stocke l'énergie quand elle est en abondance et la redistribue si il y a un deficit d'énergie dans la limite des réserves disponibles.
block.battery-large.description = Stocke bien plus d'énergie qu'une batterie normale.
block.combustion-generator.description = Génère de l'énergie en brûlant du charbon ou des matériaux inflammables.
block.thermal-generator.description = Génère une grande quantité d'énergie à partir de zone de chaleur .
block.turbine-generator.description = Plus efficace qu'un générateur à combustion, mais requiert de l'eau .
block.combustion-generator.description = Génère de l'énergie en brûlant du charbon ou d'autres matériaux inflammables.
block.thermal-generator.description = Génère une grande quantité d'énergie à partir de zone de chaleur.
block.turbine-generator.description = Plus efficace qu'un générateur à combustion, mais requiert de l'eau.
block.differential-generator.description = Génère de grande quantité d'energie. Utilise différence de temperature entre le liquide cryogénique et la pyratite brûlante.
block.rtg-generator.description = Un générateur thermo-électrique à radioisotope qui ne demande pas de refroidissement mais produit moins d'énergie qu'un réacteur à Thorium.
block.solar-panel.description = Génère une faible quantité d'énergie grace au rayons du soleil.

View file

@ -17,29 +17,29 @@ screenshot.invalid = マップが広すぎます。スクリーンショット
gameover = ゲームオーバー
gameover.pvp = [accent] {0}[] チームの勝利!
highscore = [accent]ハイスコアを更新!
copied = Copied.
copied = コピーしました。
load.sound = サウンド
load.map = マップ
load.image = 画像
load.content = コンテンツ
load.system = システム
load.mod = MOD
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
schematic.replace = A schematic by that name already exists. Replace it?
schematic.import = Import Schematic...
schematic.exportfile = Export File
schematic.importfile = Import File
schematic.browseworkshop = Browse Workshop
schematic.copy = Copy to Clipboard
schematic.copy.import = Import from Clipboard
schematic.shareworkshop = Share on Workshop
schematic = 設計図
schematic.add = 設計図を保存しています...
schematics = 設計図一覧
schematic.replace = 同じ名前の設計図があるようです。 上書きしますか?
schematic.import = 設計図を読み込んでいます...
schematic.exportfile = ファイルに出力する
schematic.importfile = ファイルから読み込む
schematic.browseworkshop = ワークショップを表示する
schematic.copy = クリップボードにコピーする
schematic.copy.import = クリップボードから読み込む
schematic.shareworkshop = ワークショップで共有する
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
schematic.saved = 設計図を保存しました。
schematic.delete.confirm = この設計図は完全に削除されます。よろしいですか
schematic.rename = 設計図の名前を変更する。
schematic.info = {0}x{1}, {2} ブロック
stat.wave = 防衛したウェーブ:[accent] {0}
stat.enemiesDestroyed = 敵による破壊数:[accent] {0}
stat.built = 建設した建造物数:[accent] {0}
@ -64,7 +64,7 @@ customgame = カスタムプレイ
newgame = 新しく始める
none = <なし>
minimap = ミニマップ
position = Position
position = 位置
close = 閉じる
website = ウェブサイト
quit = 終了
@ -80,25 +80,25 @@ uploadingcontent = コンテンツをアップロードしています
uploadingpreviewfile = プレビューファイルをアップロードしています
committingchanges = 変更を適応中
done = 完了
feature.unsupported = Your device does not support this feature.
feature.unsupported = あなたのデバイスはこの機能をサポートしていません。
mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry GitHubに報告してください。
mods.alpha = [accent](Alpha)
mods = Mods
mods.none = [LIGHT_GRAY]Modが見つかりませんでした!
mods.guide = Modding Guide
mods.report = Report Bug
mods.openfolder = Open Mod Folder
mods.report = バグを報告する
mods.openfolder = MODのフォルダを開く
mod.enabled = [lightgray]有効
mod.disabled = [scarlet]無効
mod.disable = 無効化
mod.delete.error = Unable to delete mod. File may be in use.
mod.delete.error = MODを削除することができませんでした。
mod.missingdependencies = [scarlet]Missing dependencies: {0}
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = 有効化
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。
mod.import = Modをインポート
mod.import.github = Import GitHub Mod
mod.import.github = GitHubからMODを読み込む
mod.remove.confirm = このModを削除します。
mod.author = [LIGHT_GRAY]著者:[] {0}
mod.missing = このセーブには、アップグレードされた可能性があるModsか、ここに存在しないModsが必要です。 メモリのセーブを保存する! ロードしてもよろしいですか?\n[lightgray]MODS:\n{0}
@ -166,7 +166,7 @@ server.version = [lightgray]バージョン: {0} {1}
server.custombuild = [yellow]カスタムビルド
confirmban = このプレイヤーをBanしてもよろしいですか?
confirmkick = このプレイヤーをキックしてもよろしいですか?
confirmvotekick = Are you sure you want to vote-kick this player?
confirmvotekick = このプレイヤーを投票キックしてもよろしいですか?
confirmunban = このプレイヤーのBanを解除してもよろしいですか?
confirmadmin = このプレイヤーを管理者にしてもよろしいですか?
confirmunadmin = このプレイヤーを管理者から削除してもよろしいですか?
@ -202,7 +202,7 @@ save.rename = 名前を変更
save.rename.text = 新しい名前:
selectslot = セーブデータを選択してください。
slot = [accent]スロット {0}
editmessage = Edit Message
editmessage = メッセージを編集する
save.corrupted = [accent]セーブファイルが無効、または破損しました!\nゲームのアップデート直後の場合、恐らくセーブデータのフォーマットの変更によるもので、バグではありません。
empty = <空>
on = オン
@ -237,10 +237,10 @@ quit.confirm.tutorial = チュートリアルを終了しますか?\nチュー
loading = [accent]読み込み中...
reloading = [accent]Reloading Mods...
saving = [accent]保存中...
cancelbuilding = [accent][[{0}][] to clear plan
selectschematic = [accent][[{0}][] to select+copy
pausebuilding = [accent][[{0}][] to pause building
resumebuilding = [scarlet][[{0}][] to resume building
cancelbuilding = [accent][[{0}][] 選択を解除する
selectschematic = [accent][[{0}][] 選択し、コピーする
pausebuilding = [accent][[{0}][] 建築を一時的に中断する
resumebuilding = [scarlet][[{0}][] 建築を再開する
wave = [accent]ウェーブ {0}
wave.waiting = [lightgray]次のウェーブまで {0} 秒
wave.waveInProgress = [lightgray]ウェーブ進行中
@ -424,8 +424,8 @@ launch.confirm = すべての資源をコアに搬入し、発射します。\n
launch.skip.confirm = スキップすると、次の発射可能なウェーブまで発射できません。
uncover = 開放
configure = 積み荷の設定
bannedblocks = Banned Blocks
addall = Add All
bannedblocks = 禁止ブロック
addall = すべて追加
configure.locked = [lightgray]ウェーブ {0} を達成すると積み荷を設定できるようになります。
configure.invalid = 値は 0 から {0} の間でなければなりません。
zone.unlocked = [lightgray]{0} がアンロックされました.
@ -509,7 +509,7 @@ blocks.shootrange = 範囲
blocks.size = 大きさ
blocks.liquidcapacity = 液体容量
blocks.powerrange = 電力範囲
blocks.powerconnections = Max Connections
blocks.powerconnections = 最大接続数
blocks.poweruse = 電力使用量
blocks.powerdamage = 電力/ダメージ
blocks.itemcapacity = アイテム容量
@ -531,10 +531,10 @@ blocks.reload = ショット/秒
blocks.ammo = 弾薬
bar.drilltierreq = より良いドリルが必要です
bar.drillspeed = 採掘速度: {0}/秒
bar.pumpspeed = Pump Speed: {0}/s
bar.pumpspeed = ポンプの速度: {0}/s
bar.efficiency = 効率: {0}%
bar.powerbalance = 電力: {0}/秒
bar.powerstored = Stored: {0}/{1}
bar.powerstored = 残量: {0}/{1}
bar.poweramount = 電力: {0}
bar.poweroutput = 電力発電量: {0}
bar.items = アイテム: {0}
@ -578,7 +578,7 @@ setting.landscape.name = 横画面で固定
setting.shadows.name =
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = リニアフィルター
setting.hints.name = Hints
setting.hints.name = ヒント
setting.animatedwater.name = 水のアニメーション
setting.animatedshields.name = シールドのアニメーション
setting.antialias.name = アンチエイリアス[lightgray] (再起動が必要)[]
@ -599,7 +599,7 @@ setting.difficulty.insane = クレイジー
setting.difficulty.name = 難易度:
setting.screenshake.name = 画面の揺れ
setting.effects.name = 画面効果
setting.destroyedblocks.name = Display Destroyed Blocks
setting.destroyedblocks.name = 破壊されたブロックを表示
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.sensitivity.name = 操作感度
setting.saveinterval.name = 自動保存間隔
@ -610,7 +610,7 @@ setting.fps.name = FPSを表示
setting.vsync.name = VSync
setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます)
setting.minimap.name = ミニマップを表示
setting.position.name = Show Player Position
setting.position.name = プレイヤーの位置表示
setting.musicvol.name = 音楽 音量
setting.ambientvol.name = 環境音 音量
setting.mutemusic.name = 音楽をミュート
@ -620,7 +620,7 @@ setting.crashreport.name = 匿名でクラッシュレポートを送信する
setting.savecreate.name = 自動保存
setting.publichost.name = 誰でもゲームに参加できるようにする
setting.chatopacity.name = チャットの透明度
setting.lasersopacity.name = Power Laser Opacity
setting.lasersopacity.name = レーザーの透明度
setting.playerchat.name = ゲーム内にチャットを表示
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
public.beta = Note that beta versions of the game cannot make public lobbies.
@ -843,8 +843,8 @@ block.copper-wall.name = 銅の壁
block.copper-wall-large.name = 巨大な銅の壁
block.titanium-wall.name = チタンの壁
block.titanium-wall-large.name = 巨大なチタンの壁
block.plastanium-wall.name = Plastanium Wall
block.plastanium-wall-large.name = Large Plastanium Wall
block.plastanium-wall.name = プラスタニウムの壁
block.plastanium-wall-large.name = 巨大なプラスタニウムの壁
block.phase-wall.name = フェーズファイバーの壁
block.phase-wall-large.name = 巨大なフェーズファイバーの壁
block.thorium-wall.name = トリウムの壁
@ -864,8 +864,8 @@ block.junction.name = ジャンクション
block.router.name = ルーター
block.distributor.name = ディストリビューター
block.sorter.name = ソーター
block.inverted-sorter.name = Inverted Sorter
block.message.name = Message
block.inverted-sorter.name = 反転ソーター
block.message.name = メッセージブロック
block.overflow-gate.name = オーバーフローゲート
block.silicon-smelter.name = シリコン溶鉱炉
block.phase-weaver.name = フェーズ織機
@ -1088,7 +1088,7 @@ block.junction.description = 十字に交差したコンベアーをそれぞれ
block.bridge-conveyor.description = 高度な輸送ブロックです。地形や建物を超えて、3ブロック離れた場所にアイテムを輸送することができます。
block.phase-conveyor.description = 改良されたアイテム転送ブロックです。電力を使用して、離れた場所にあるフェーズコンベアーにアイテムを転送することができます。
block.sorter.description = アイテムを分別して搬出します。設定したアイテムは通過させます。他のアイテムが搬入されると側面にアイテムを搬出します。
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
block.inverted-sorter.description = アイテムを分別して搬出します。設定したアイテムは側面に搬出されます。他のアイテムが搬入されるとアイテムを通過させます。通常のルーターと反対の動作をします。
block.router.description = 搬入したアイテムをほかの3方向に均等に搬出します。一つの資源から複数に分ける際などに使われます。
block.distributor.description = 高度なルーターです。搬入したアイテムをほかの7方向に均等に分けて搬出します。
block.overflow-gate.description = 搬出先にアイテムを搬入する空きがない場合に左右にアイテムを搬出します。

View file

@ -10,6 +10,7 @@ link.dev-builds.description = 불안정한 개발 빌드들
link.trello.description = 다음 출시될 기능들을 게시한 공식 Trello 보드
link.itch.io.description = PC 버전 다운로드와 HTML5 버전이 있는 itch.io 사이트
link.google-play.description = Google Play 스토어 정보
link.f-droid.description = F-Droid 카탈로그
link.wiki.description = 공식 Mindustry 위키
linkfail = 링크를 여는 데 실패했습니다!\nURL이 기기의 클립보드에 복사되었습니다.
screenshot = 스크린샷이 {0} 경로에 저장되었습니다.
@ -18,12 +19,14 @@ gameover = 게임 오버
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
highscore = [accent]최고점수 달성!
copied = 복사됨.
load.sound = 소리
load.map =
load.image = 사진
load.content = 컨텐츠
load.system = 시스템
load.mod = 모드
schematic = 설계도
schematic.add = 설계도 저장하기
schematics = 설계도 모음
@ -40,6 +43,7 @@ schematic.saved = 설계도 저장됨.
schematic.delete.confirm = 삭제된 설계도는 복구할 수 없습니다. 정말로 삭제하시겠습니까?
schematic.rename = 설계도명 변경
schematic.info = 크기 : {0}x{1}, 블럭 수 : {2}
stat.wave = 버틴 단계 수 : [accent]{0}
stat.enemiesDestroyed = 파괴한 적 수 : [accent]{0}
stat.built = 건설한 건물 수 : [accent]{0}
@ -47,6 +51,7 @@ stat.destroyed = 파괴된 건물 수 : [accent]{0}
stat.deconstructed = 파괴한 건물 수 : [accent]{0}
stat.delivered = 획득한 자원 :
stat.rank = 최종 점수 : [accent]{0}
launcheditems = [accent]창고
launchinfo = [출격되지 않음][[출격]파랑색으로 표시된 자원들을 획득합니다.
map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?
@ -74,6 +79,7 @@ maps.browse = 맵 검색
continue = 계속하기
maps.none = [LIGHT_GRAY]맵을 찾을 수 없습니다!
invalid = 오류
pickcolor =
preparingconfig = 설정 사전준비
preparingcontent = 컨텐츠 사전준비
uploadingcontent = 컨텐츠 업로드
@ -81,13 +87,14 @@ uploadingpreviewfile = 미리보기 파일 업로드
committingchanges = 바뀐 점 적용
done = 완료
feature.unsupported = 당신의 기기는 이 기능을 지원하지 않습니다.
mods.alphainfo = 현재의 모드는 첫 번째 시도이며, 그리고[scarlet] 버그가 매우 많음을 명심하십시오[].\n만약 버그를 발견할경우 Mindustry 깃허브 또는 디스코드로 제보해주세요.
mods.alpha = [scarlet](Alpha)
mods = 모드
mods.none = [LIGHT_GRAY]추가한 모드가 없습니다!
mods.guide = 모드 가이드
mods.report = 버그 신고
mods.openfolder = Open Mod Folder
mods.openfolder = 모드 폴더 열기
mod.enabled = [firebrick]활성화
mod.disabled = [lightgray]비활성화
mod.disable = 비활성화
@ -104,6 +111,7 @@ mod.author = [LIGHT_GRAY]제작자 : [] {0}
mod.missing = 이 세이브파일에는 설치하지 않은 모드 혹은 이 버전에 속해있지 않은 데이터가 포함되어 있습니다. 이 파일을 불러올 경우 세이브파일의 데이터가 손상될 수 있습니다. 정말로 이 파일을 불러오시겠습니까?\n[lightgray]모드 :\n{0}
mod.preview.missing = 워크샵에 당신의 모드를 업로드하기 전에 미리보기 이미지를 먼저 추가해야합니다.\n[accent] preview.png[]라는 이름으로 미리보기 이미지를 당신의 모드 폴더안에 준비한 후 다시 시도해주세요.
mod.folder.missing = 워크샵에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 파일을 폴더에 압축 해제하고 이전 압축파일을 제거한 후, 게임을 재시작하거나 모드를 다시 로드하십시오.
about.button = 정보
name = 이름 :
noname = 먼저 [accent] [] 을 설정하세요.
@ -148,7 +156,7 @@ hosts.none = [lightgray]LAN 게임을 찾을 수 없습니다!
host.invalid = [scarlet]서버에 연결할 수 없습니다!
trace = 플레이어 정보 보기
trace.playername = 닉네임 : [accent]{0}
trace.ip = IP : [accent]{0}{0}
trace.ip = IP : [accent]{0}
trace.id = UUID : [accent]{0}
trace.mobile = 모바일 접속 유무 : [accent]{0}
trace.modclient = 수정된 클라이언트 : [accent]{0}
@ -173,7 +181,7 @@ confirmunadmin = 이 플레이어를 일반 유저로 만들겠습니까?
joingame.title = 게임 참가
joingame.ip = 주소 :
disconnect = 서버와 연결이 해제되었습니다.
disconnect.error = 연결 .
disconnect.error = 연결 오류.
disconnect.closed = 연결이 끊어졌습니다..
disconnect.timeout = 연결 시간 한계 도달..
disconnect.data = 월드 데이터 로딩 실패..
@ -183,7 +191,7 @@ connecting.data = [accent]월드 데이터 로딩중...
server.port = 포트 :
server.addressinuse = 주소가 이미 사용중입니다!
server.invalidport = 포트가 올바르지 않습니다!
server.error = [accent]{0}[crimson]서버를 여는 데 오류가 발생했습니다.
server.error = [crimson]서버를 여는 데 오류가 발생했습니다.
save.new = 새로 저장
save.overwrite = 이 저장 슬롯을 덮어씌우겠습니까?
overwrite = 덮어쓰기
@ -271,6 +279,7 @@ publishing = [accent]업로드 중...
publish.confirm = 맵을 업로드 하시겠습니까?\n\n[lightgray]먼저 워크샵 EULA에 동의하시지 않으면 맵이 표시되지 않습니다!
publish.error = 맵 업로드 오류 : {0}
steam.error = 스팀 서비스를 초기화하는데 실패했습니다.\n에러 코드 : {0}
editor.brush = 브러쉬
editor.openin = 편집기 열기
editor.oregen = 광물 무작위 생성
@ -308,8 +317,8 @@ editor.name = 이름 :
editor.spawn = 유닛 생성
editor.removeunit = 유닛 삭제
editor.teams =
editor.errorload = [accent]{0} 파일을 불러오는 데 실패했습니다.
editor.errorsave = [accent]{0} 파일을 저장하는 데 실패했습니다.
editor.errorload = 파일을 불러오지 습니다.
editor.errorsave = 파일을 저장하지 못했습니다.
editor.errorimage = 이것은 맵이 아니라 사진입니다.\n\n예전 맵을 가져오려면 편집기의 '예전 맵 가져오기' 버튼을 사용하세요.
editor.errorlegacy = 이 맵은 너무 오래되어, 더는 지원하지 않는 맵 형식을 사용합니다.
editor.errornot = 선택한 대상이 맵 파일이 아닙니다.
@ -347,6 +356,7 @@ editor.overwrite = [accept]경고!이 명령은 기존 맵을 덮어씌우게
editor.overwrite.confirm = [scarlet]경고![] 이 이름을 가진 맵이 이미 있습니다. 덮어 쓰시겠습니까?
editor.exists = 같은 이름의 맵이 이미 존재합니다.
editor.selectmap = 불러올 맵 선택 :
toolmode.replace = 재배치
toolmode.replace.description = 블록을 배치합니다.
toolmode.replaceall = 모두 재배치
@ -361,6 +371,7 @@ toolmode.fillteams = 팀 채우기
toolmode.fillteams.description = 블록 대신 팀 건물로 채웁니다.
toolmode.drawteams = 팀 그리기
toolmode.drawteams.description = 블록 대신 팀 건물을 배치합니다.
filters.empty = [LIGHT_GRAY]필터가 없습니다!! 아래 버튼을 눌러 추가하세요.
filter.distort = 왜곡
filter.noise = 맵 전체에 타일 혹은 블럭 뿌리기
@ -392,6 +403,7 @@ filter.option.floor2 = 2번째 바닥
filter.option.threshold2 = 2번째 한계점
filter.option.radius = 반경
filter.option.percentile = 백분위수
width = 넓이 :
height = 높이 :
menu = 메뉴
@ -407,6 +419,7 @@ tutorial = 튜토리얼
tutorial.retake = 튜토리얼
editor = 편집기
mapeditor = 맵 편집기
abandon = 지역 포기
abandon.text = 이 구역의 모든 자원이 적에게 빼앗길 것입니다.
locked = 잠김
@ -428,7 +441,7 @@ bannedblocks = 금지된 블럭들
addall = 모두 추가
configure.locked = [lightgray]{0}시 시작자원 설정이 해금됩니다.
configure.invalid = 해당 값은 0 과 {0} 사이여야 합니다.
zone.unlocked = [LIGHT_GRAY] 잠금 해제되었습니다!
zone.unlocked = [LIGHT_GRAY]지역 {0}이 잠금 해제되었습니다!
zone.requirement.complete = {0} 단계 달성 성공! \n{1} 지역 요구사항이 충족되었습니다!
zone.config.unlocked = 시작자원 설정 해금! : [lightgray]\n{0}
zone.resources = 감지된 자원 목록 :
@ -437,6 +450,7 @@ zone.objective.survival = 생존
zone.objective.attack = 적 코어 파괴
add = 추가...
boss.health = 보스 체력
connectfail = [crimson]{0}[accent] 서버에 연결하지 못했습니다.[]
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
error.invalidaddress = 잘못된 주소입니다.
@ -447,6 +461,7 @@ error.mapnotfound = 맵 파일을 찾을 수 없습니다!
error.io = 네트워크 I/O 오류.
error.any = 알 수 없는 네트워크 오류.
error.bloom = 블룸 그래픽 효과를 적용하지 못했습니다.\n당신의 기기가 이 기능을 지원하지 않는 것일 수도 있습니다.
zone.groundZero.name = 전초기지
zone.desertWastes.name = 쓰레기 사막
zone.craters.name = 크레이터
@ -461,6 +476,7 @@ zone.saltFlats.name = 소금 사막
zone.impact0078.name = Impact 0078
zone.crags.name = 협곡
zone.fungalPass.name = 포자 지대
zone.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지닌 장소입니다. 적은 수준의 위협이 있으며 자원의 양은 적습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n출격합시다!
zone.frozenForest.description = 이 지역도 산과 가까운 지역입니다 포자들이 흩뿌려져 있으며 극한의 추위도 포자를 막을 수 있을 것 같지 않습니다.\n화력 발전소를 짓고 전력을 확보하여 채광 드론을 사용하는 법을 배우십시오.
zone.desertWastes.description = 이 황무지는 끝을 알 수 없을 정도로 광활하고 십자가 형태의 버려진 구조물이 존재합니다.\n석탄이 존재하며 이를 화력발전에 쓰거나 흑연 정제에 쓰십시오.\n\n[lightgray]이 지역에서의 착륙장소는 확실하지 않습니다.
@ -475,6 +491,7 @@ zone.nuclearComplex.description = 과거 토륨의 생산, 연구와 처리를
zone.fungalPass.description = 고산지대과 포자지대 사이의 지역입니다. 소규모의 적 정찰기지가 있으니 디거와 크롤러를 이용해 적의 코어를 파괴하십시오.
zone.impact0078.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다.
zone.crags.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다.
settings.language = 언어
settings.data = 게임 데이터
settings.reset = 설정 초기화
@ -497,7 +514,7 @@ error.crashtitle = 오류가 발생했습니다.
blocks.input = 소모 자원
blocks.output = 출력 자원
blocks.booster = 가속
block.unknown = [LIGHT_GRAY]???
block.unknown = [LIGHT_GRAY]OHNO
blocks.powercapacity = 전력 용량
blocks.powershot = 1발당 전력 소모량
blocks.damage = 공격력
@ -509,7 +526,7 @@ blocks.shootrange = 사거리
blocks.size = 크기
blocks.liquidcapacity = 액체 용량
blocks.powerrange = 전력 범위
blocks.powerconnections = Max Connections
blocks.powerconnections = 최대 연결 수
blocks.poweruse = 전력 사용
blocks.powerdamage = 전력/데미지
blocks.itemcapacity = 저장 용량
@ -529,14 +546,15 @@ blocks.inaccuracy = 오차각
blocks.shots = 공격 속도
blocks.reload = 재장전
blocks.ammo = 탄약
bar.drilltierreq = 더 좋은 드릴이 요구됨
bar.drillspeed = 초당 {0}개 채굴중
bar.pumpspeed = Pump Speed: {0}/s
bar.drillspeed = 드릴 속도 : {0}개/s
bar.pumpspeed = 펌프 속도 : {0}/s
bar.efficiency = 활성화율 : {0}%
bar.powerbalance = 초당 {0} 발전중
bar.powerbalance = 전력 발전 : {0}/s
bar.powerstored = 총 전력 저장량 : {0}/{1}
bar.poweramount = 전력 저장량 : {0}
bar.poweroutput = 초당 {0} 발전중
bar.poweroutput = 전력 출력 : {0}
bar.items = 자원량 : {0}
bar.capacity = 저장공간 : {0}
bar.liquid = 액체
@ -544,6 +562,9 @@ bar.heat = 발열
bar.power = 전력
bar.progress = 생산 진행도
bar.spawned = 최대 {1}기 중 {0}기 생산됨
bar.input = 입력
bar.output =
bullet.damage = [lightgray]피해량 : [stat]{0}[]
bullet.splashdamage = [lightgray]범위 피해량 : [stat]{0}[] / [lightgray]피해 범위 : [stat]{1}[lightgray] 타일
bullet.incendiary = [stat]방화
@ -555,6 +576,7 @@ bullet.freezing = [stat]빙결
bullet.tarred = [stat]타르
bullet.multiplier = 추가 타격 횟수 : [stat]{0}[lightgray]
bullet.reload = 공격 속도 : [stat]{0}[lightgray]
unit.blocks = 블록
unit.powersecond = 전력/초
unit.liquidsecond = 액체/초
@ -574,11 +596,12 @@ category.items = 아이템
category.crafting = 제작
category.shooting = 사격
category.optional = 보조 아이템
setting.landscape.name = 가로화면으로 고정
setting.landscape.name = 가로화면
setting.shadows.name = 그림자
setting.blockreplace.name = 블럭 제안 자동화
setting.linear.name = 선형 필터링
setting.hints.name = 힌트 활성화
setting.buildautopause.name = 건설 자동 일시정지
setting.animatedwater.name = 움직이는 물
setting.animatedshields.name = 움직이는 보호막
setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[]
@ -599,14 +622,17 @@ setting.difficulty.insane = 미침
setting.difficulty.name = 난이도 :
setting.screenshake.name = 화면 흔들기
setting.effects.name = 화면 효과
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.destroyedblocks.name = 부서진 블럭 표시
setting.conveyorpathfinding.name = 컨베이어 설치 보조 기능
setting.sensitivity.name = 컨트롤러 감도
setting.saveinterval.name = 저장 간격
setting.seconds =
setting.seconds = {0} 초
setting.blockselecttimeout.name = 블록 선택 시간 초과
setting.milliseconds = {0} 밀리초
setting.fullscreen.name = 전체 화면
setting.borderlesswindow.name = 테두리 없는 창모드[LIGHT_GRAY] (재시작이 필요할 수 있습니다)
setting.fps.name = FPS 표시
setting.blockselectkeys.name = 블럭 선택 키
setting.vsync.name = VSync 활성화
setting.pixelate.name = 픽셀화[LIGHT_GRAY] (게임에 렉이 심할 경우 이 옵션을 켜주세요.)
setting.minimap.name = 미니맵 보기
@ -635,16 +661,35 @@ category.multiplayer.name = 멀티플레이
command.attack = 공격
command.rally = 순찰
command.retreat = 후퇴
placement.blockselectkeys = \n[lightgray]키: [{0},
keybind.clear_building.name = 설계도 초기화
keybind.press = 키를 누르세요...
keybind.press.axis = 마우스 휠 또는 키를 누르세요...
keybind.screenshot.name = 맵 스크린샷
keybind.move_x.name = 오른쪽/왼쪽 이동
keybind.move_y.name = 위 / 아래 중간
keybind.toggle_power_lines.name = 전력 라인 허용
keybind.move_x.name = 오른쪽 / 왼쪽 이동
keybind.move_y.name = 위 / 아래 이동
keybind.mouse_move.name = 커서를 따라서 이동
keybind.schematic_select.name = 영역 설정
keybind.schematic_menu.name = 설계도 메뉴
keybind.schematic_flip_x.name = 설계도 X축 뒤집기
keybind.schematic_flip_y.name = 설계도 Y축 뒤집기
keybind.category_prev.name = 이전 목록
keybind.category_next.name = 다음 목록
keybind.block_select_left.name = 블럭 Select Left
keybind.block_select_right.name = 블럭 Select Right
keybind.block_select_up.name = 블럭 Select Up
keybind.block_select_down.name = 블럭 Select Down
keybind.block_select_01.name = 카테고리/블럭 선택 1
keybind.block_select_02.name = 카테고리/블럭 선택 2
keybind.block_select_03.name = 카테고리/블럭 선택 3
keybind.block_select_04.name = 카테고리/블럭 선택 4
keybind.block_select_05.name = 카테고리/블럭 선택 5
keybind.block_select_06.name = 카테고리/블럭 선택 6
keybind.block_select_07.name = 카테고리/블럭 선택 7
keybind.block_select_08.name = 카테고리/블럭 선택 8
keybind.block_select_09.name = 카테고리/블럭 선택 9
keybind.block_select_10.name = 카테고리/블럭 선택 10
keybind.fullscreen.name = 전체 화면
keybind.select.name = 선택/공격
keybind.diagonal_placement.name = 대각선 설치
@ -681,9 +726,11 @@ mode.pvp.description = 실제 플레이어와 PvP를 합니다. 맵에 적어도
mode.attack.name = 공격
mode.attack.description = 적 기지를 파괴하세요. 맵에 빨간팀 코어가 있어야 플레이 가능합니다.
mode.custom = 사용자 정의 규칙
rules.infiniteresources = 무한 자원
rules.wavetimer = 단계
rules.waves = 단계
rules.reactorexplosions = 원자로 폭발 허가여부
rules.wavetimer = 단계 대기시간
rules.waves = 단계 활성화
rules.attack = 공격 모드
rules.enemyCheat = 무한한 적 자원
rules.unitdrops = 유닛 처치시 자원 약탈
@ -692,13 +739,13 @@ rules.unithealthmultiplier = 유닛 체력 배수
rules.playerhealthmultiplier = 플레이어 체력 배수
rules.playerdamagemultiplier = 플레이어 공격력 배수
rules.unitdamagemultiplier = 유닛 공격력 배수
rules.enemycorebuildradius = 적 코어 건설 금지구역:[LIGHT_GRAY] (타일)
rules.respawntime = 플레이어 부활 대기 시간:[LIGHT_GRAY] (초)
rules.enemycorebuildradius = 적 코어 건설 금지구역 범위 : [LIGHT_GRAY] (타일)
rules.respawntime = 플레이어 부활 대기 시간 : [LIGHT_GRAY] (초)
rules.wavespacing = 단계 간격 : [LIGHT_GRAY] (초)
rules.buildcostmultiplier = 건설 소모 배수
rules.buildspeedmultiplier = 건설 속도 배수
rules.waitForWaveToEnd = 단계가 끝날때까지 기다리는중
rules.dropzoneradius = 적 소환 구역 반경 : [LIGHT_GRAY] (타일)
rules.dropzoneradius = 소환 충격파 범위 : [LIGHT_GRAY] (타일)
rules.respawns = 단계당 최대 플레이어 부활 횟수
rules.limitedRespawns = 플레이어 부활 제한
rules.title.waves = 단계
@ -707,6 +754,10 @@ rules.title.resourcesbuilding = 자원 & 건축
rules.title.player = 플레이어들
rules.title.enemy =
rules.title.unit = 유닛
rules.title.experimental = 실험적인 기능
rules.lighting = 전장의 안개 활성화
rules.ambientlight = 안개 색
content.item.name = 아이템
content.liquid.name = 액체
content.unit.name = 유닛
@ -721,7 +772,7 @@ item.thorium.name = 토륨
item.silicon.name = 실리콘
item.plastanium.name = 플라스터늄
item.phase-fabric.name = 메타
item.surge-alloy.name = 서지 합
item.surge-alloy.name =
item.spore-pod.name = 포자 포드
item.sand.name = 모래
item.blast-compound.name = 폭발물
@ -768,6 +819,7 @@ mech.buildspeed = [LIGHT_GRAY]건설 속도 : {0}%
liquid.heatcapacity = [LIGHT_GRAY]발열 용량 : {0}
liquid.viscosity = [LIGHT_GRAY]점도 : {0}
liquid.temperature = [LIGHT_GRAY]온도 : {0}
block.sand-boulder.name = 사암
block.grass.name = 잔디
block.salt.name = 소금
@ -866,6 +918,8 @@ block.distributor.name = 대형 분배기
block.sorter.name = 필터
block.inverted-sorter.name = 반전 필터
block.message.name = 메모 블럭
block.illuminator.name = 조명
block.illuminator.description = 작고, 간단한 조명입니다. 색을 변경할 수 있으며 가동하기 위해서 전력이 필요합니다.
block.overflow-gate.name = 포화 필터
block.silicon-smelter.name = 실리콘 제련소
block.phase-weaver.name = 메타 합성기
@ -879,6 +933,7 @@ block.coal-centrifuge.name = 석탄 원심분리기
block.power-node.name = 전력 노드
block.power-node-large.name = 대형 전력 노드
block.surge-tower.name = 설금 타워
block.diode.name = 배터리 다이오드
block.battery.name = 배터리
block.battery-large.name = 대형 배터리
block.combustion-generator.name = 화력 발전기
@ -893,8 +948,8 @@ block.cultivator.name = 온실
block.dart-mech-pad.name = 알파 기체 패드
block.delta-mech-pad.name = 델타 기체 패드
block.javelin-ship-pad.name = 재블린 비행선 패드
block.trident-ship-pad.name = 삼지창 비행선 패드
block.glaive-ship-pad.name = 글레브 비행선 패드
block.trident-ship-pad.name = 트라이던트 폭격기 패드
block.glaive-ship-pad.name = 글레이브 전투기 패드
block.omega-mech-pad.name = 오메가 기체 패드
block.tau-mech-pad.name = 타우 기체 패드
block.conduit.name = 파이프
@ -930,7 +985,8 @@ block.titan-factory.name = 타이탄 공장
block.fortress-factory.name = 포트리스 공장
block.revenant-factory.name = 망령 전함 공장
block.repair-point.name = 수리 지점
block.pulse-conduit.name = 퓨즈 파이프
block.pulse-conduit.name = 펄스 파이프
block.plated-conduit.name = 도금된
block.phase-conduit.name = 메타 파이프
block.liquid-router.name = 액체 분배기
block.liquid-tank.name = 물탱크
@ -957,8 +1013,8 @@ block.rtg-generator.name = RTG 발전기
block.spectre.name = 스펙터
block.meltdown.name = 멜트다운
block.container.name = 컨테이너
block.launch-pad.name = 발사대
block.launch-pad-large.name = 출격 패드
block.launch-pad.name = 자원 출격 패드
block.launch-pad-large.name = 대형 자원 출격 패드
team.blue.name = 파랑색 팀
team.crux.name = 빨강색 팀
team.sharded.name = 주황색 팀
@ -976,10 +1032,10 @@ unit.ghoul.name = 구울 폭격기
unit.wraith.name = 유령 전투기
unit.fortress.name = 포트리스
unit.revenant.name = 망령 전함
unit.eruptor.name = 럽터
unit.chaos-array.name = 혼돈의 군대
unit.eruptor.name = 럽터
unit.chaos-array.name = 혼돈 군주
unit.eradicator.name = 파괴자
unit.lich.name = 사자왕
unit.lich.name = 시체 군주
unit.reaper.name = 사신
tutorial.next = [lightgray]< 이 곳을 터치해 진행하세요. >
tutorial.intro = [scarlet]Mindustry 튜토리얼[]을 시작하겠습니다.\n [WASD] 키를 눌러 이동할 수 있습니다.\n[accent]Ctrl 키를 누르고 마우스 휠을 돌려 확대 또는 축소가 가능합니다.\n[accent]주황색의 광맥[]을 눌러 [accent]구리[]를 채광하세요.\n구리를 채광한 후에는 코어 근처로 이동한 뒤, 당신의 기체에서 코어로 드래그해 구리를 코어에 넣으세요. 코어 근처에서 채광하면 자동으로 옮겨집니다.\n\n임무 : 구리 채광({0}/{1})
@ -1002,6 +1058,7 @@ tutorial.deposit = 자원을 다시 블록에 넣을 수도 있습니다.\n\n[ac
tutorial.waves = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계 동안 코어를 보호하세요.[]
tutorial.waves.mobile = [LIGHT_GRAY]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2단계동안 코어를 방어하세요.[]
tutorial.launch = 특정 단계에 도달하면 [accent]출격[]이 가능합니다.\n[accent]출격[]을 하게되면 해당 지역의 코어에 들어있는 자원들을 캠페인의 자원 창고로 보내지만, 해당 지역의 [accent]모든 것들[]은 날라가게 되니 주의하세요.
item.copper.description = 모든 종류의 블록에서 광범위하게 사용되는 자원입니다.
item.lead.description = 쉽게 구할 수 있으며, 전자 및 액체 수송 블록에서 광범위하게 사용되는 자원입니다.
item.metaglass.description = 초강력 유리 화합물. 액체 분배 및 저장에 광범위하게 사용됩니다.\n\n[royal]액체를 활용하기 위한 필수품입니다.
@ -1088,7 +1145,7 @@ block.junction.description = 2개의 컨베이어 벨트를 교차시키는 다
block.bridge-conveyor.description = 자원 수송 블록.\n지형이나 건물을 넘어 최대 3개 타일을 건너뛰고 자원을 운송할 수 있습니다.
block.phase-conveyor.description = 고급 자원 수송 블록.\n지형이나 건물을 넘어 최대 11개 타일을 건너뛰고 자원을 운송할 수 있습니다. 전기를 사용하고, 기본 터널 컨베이어보다 빠릅니다.
block.sorter.description = 자원을 넣어서 필터에 설정된 자원일 경우 바로 앞으로 통과하며, 그렇지 않을 경우 옆으로 이동시킵니다.
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
block.inverted-sorter.description = 필터와 비슷하지만, 대신에 반전 필터는 설정된 자원을 필터의 양 옆으로 보냅니다.
block.router.description = 한 방향에서 자원을 넣을 시 최대 3개의 다른 방향으로 균등하게 내보냅니다. 자원을 한 곳에서 여러 방향으로 분배하는 데 유용합니다.
block.distributor.description = 자원을 최대 7개의 다른 방향으로 균등하게 분베하는 고급 분배기.
block.overflow-gate.description = 평소에는 자원의 들어온 방향으로 자원을 통과시키지만, 정면이 자원으로 꽉 차거나 다른 사유로 막힐 시 옆으로 자원을 내보냅니다.
@ -1098,6 +1155,7 @@ block.rotary-pump.description = 전기를 사용해 빠른 속도로 액체를
block.thermal-pump.description = 가장 강력한 펌프.
block.conduit.description = 기본 파이프\n액체를 배치된 방향으로 느리게 운송합니다.
block.pulse-conduit.description = 고급 파이프\n기본 파이프보다 액체 운송 속도가 빠릅니다.
block.plated-conduit.description = 펄스 파이프와 같은 속도로 액체를 운송시키지만, 체력이 더 많습니다. 양 옆으로는 파이프 의외의 대상에서 액체를 받지 않습니다. \n파이프 끝 부분이 블럭에 연결되지 않고 노출되었을 때 누수되는 액체의 양이 더 적습니다.
block.liquid-router.description = 액체를 다른 방향으로 분배할 수 있게 하는 블럭입니다.
block.liquid-tank.description = 액체를 저장할 수 있는 물탱크 입니다.
block.liquid-junction.description = 교차기와 같은 기능을 하나 자원 대신에 액체를 교차시킵니다.
@ -1106,6 +1164,7 @@ block.phase-conduit.description = 고급 액체 수송블록\n전기를 사용
block.power-node.description = 전기을 연결된 대상과 연동시킵니다.\n최대 20개의 대상을 연결할 수 있습니다. 노드는 붙어있는 블록으로부터 전기가 연동됩니다.
block.power-node-large.description = 전기를 연결된 대상과 연동시킵니다.\n최대 30개의 대상을 연결시킬 수 있고, 범위도 더 넓습니다.
block.surge-tower.description = 전기를 연결된 대상과 연동시킵니다.\n2개의 대상만 연결시킬 수 있지만 대신에 범위가 매우 넓습니다.
block.diode.description = 이 블럭을 배터리와 배터리 사이에 놓아 연결할경우 전력은 화살표 방향으로만 이동할 수 있습니다. 화살표의 뒤에 있는 배터리의 전력량이 앞에 있는 배터리보다 많을 경우에만 이동시킵니다.
block.battery.description = 전력 생산량에 여유가 있을경우, 생산된 잉여 전력을 여기에 저장합니다.\n\n[ROYAL]이것을 이용해 한순간에 많은 전력을 사용하는 포탑들을 보조가능합니다.
block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 전력을 저장합니다.\n\n[ROYAL]배터리 9개를 설치하는 것보다 효율이 좋습니다.
block.combustion-generator.description = 인화성 물질을 태워 소량의 전력을 생산합니다.

View file

@ -1,4 +1,4 @@
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
credits.text = Stworzone przez [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
credits = Zasłużeni
contributors = Tłumacze i pomocnicy
discord = Odwiedź nasz serwer Discord!
@ -10,6 +10,7 @@ link.dev-builds.description = Niestabilne wersje gry
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
link.google-play.description = Strona na sklepie Google Play
link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Oficjana Wiki Mindustry
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
screenshot = Zapisano zdjęcie w {0}
@ -18,12 +19,14 @@ gameover = Koniec Gry
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
highscore = [YELLOW] Nowy rekord!
copied = Copied.
load.sound = Dźwięki
load.map = Mapy
load.image = Obrazy
load.content = Treść
load.system = System
load.mod = Mody
schematic = Schemat
schematic.add = Zapisz schemat...
schematics = Schematy
@ -40,6 +43,7 @@ schematic.saved = Schemat zapisany.
schematic.delete.confirm = Ten schemat zostanie kompletnie wyeliminowany.
schematic.rename = Zmień nazwę schematu
schematic.info = {0}x{1}, {2} bloków
stat.wave = Fale powstrzymane:[accent] {0}
stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0}
stat.built = Budynki zbudowane:[accent] {0}
@ -47,8 +51,9 @@ stat.destroyed = Budynki zniszczone:[accent] {0}
stat.deconstructed = Budynki zrekonstruowane:[accent] {0}
stat.delivered = Surowce wystrzelone:
stat.rank = Ocena: [accent]{0}
launcheditems = [accent]Wystrzelone przedmioty
launchinfo = [unlaunched][[LAUNCH] rdzeń aby uzyskać przedmioty oznaczone na niebiesko.
launchinfo = [unlaunched][[WYSTRZEL] rdzeń aby uzyskać przedmioty oznaczone na niebiesko.
map.delete = Jesteś pewny, że chcesz usunąć "[accent]{0}[]"?
level.highscore = Rekord: [accent]{0}
level.select = Wybrany poziom
@ -72,8 +77,10 @@ save.quit = Zapisz & Wyjdź
maps = Mapy
maps.browse = Przeglądaj Mapy
continue = Kontynuuj
maps.none = [LIGHT_GRAY]Nie znaleziono żadnych map!
maps.none = [lightgray]Nie znaleziono żadnych map!
invalid = Nieprawidłowy
pickcolor = Wybierz kolor
preparingconfig = Przygotowywanie Konfiguracji
preparingcontent = Przygotowywanie Zawartości
uploadingcontent = Przesyłanie Zawartości
@ -81,6 +88,7 @@ uploadingpreviewfile = Przesyłanie Pliku Podglądu
committingchanges = Zatwierdzanie Zmian
done = Gotowe
feature.unsupported = Twoje urządzenie nie wspiera tej funkcji.
mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord.
mods.alpha = [scarlet](Alpha)
mods = Mody
@ -104,16 +112,17 @@ mod.author = [LIGHT_GRAY]Autor:[] {0}
mod.missing = Ten zapis zawiera mody, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Mody:\n{0}
mod.preview.missing = Przed opublikowaniem tego moda na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu moda i spróbuj jeszcze raz.
mod.folder.missing = Jedynie mody w formie folderów mogą się znaleźć na Warsztacie.\nBy zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę bądź załaduj ponownie mody.
about.button = O Grze
name = Nazwa:
noname = Najpierw wybierz [accent]nazwę gracza[]
noname = Najpierw wybierz[accent] nazwę gracza[]
filename = Nazwa Pliku:
unlocked = Odblokowano nowy blok!
unlocked = Odblokowano nową zawartość!
completed = [accent]Ukończony
techtree = Drzewo Technologiczne
research.list = [LIGHT_GRAY]Badania:
research.list = [lightgray]Badania:
research = Badaj
researched = [LIGHT_GRAY]{0} zbadane.
researched = [lightgray]{0} zbadane.
players = {0} graczy online
players.single = {0} gracz online
server.closing = [accent] Zamykanie serwera...
@ -129,23 +138,23 @@ server.kicked.playerLimit = Serwer pełny. Poczekaj na wolne miejsce.
server.kicked.recentKick = Zostałeś niedawno wyrzucony.\nPoczekaj chwilę przed ponownym połączniem.
server.kicked.nameInUse = Ta nazwa jest już zajęta na tym serwerze.
server.kicked.nameEmpty = Wybrana przez Ciebie nazwa jest nieprawidłowa.
server.kicked.idInUse = Jesteś już na serwerze! Używanie tego samego konta na 2 urządzeniach jest zabronione.
server.kicked.idInUse = Jesteś już na serwerze! Łączenie się z dwóch kont nie jest dozwolone.
server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobierz oficjalną wersję.
server.kicked.gameover = Koniec gry!
server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[]
host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[] i [scarlet]6568.[]\nKażdy w tej samej sieci [LIGHT_GRAY]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[LIGHT_GRAY]Notka:Jeśli ktokolwiek ma problem z dołączeniem do gry, upewnij się, że udostępniłeś Mindustry dostęp do sieci.
join.info = Tutaj możesz wpisać [accent]adres IP serwera[], aby dołączyć lub wyszukać [accent]serwerów w lokalnej sieci[], do których możesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[LIGHT_GRAY]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o IP.
host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[]. \nKażdy w tej samej sieci [lightgray]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[lightgray]Notka: Jeśli ktokolwiek ma problem z dołączeniem do gry lokalnej, upewnij się, że udostępniłeś Mindustry dostęp do sieci w ustawieniach zapory (firewall). Zauważ, że niektóre sieci publiczne mogą nie zezwalać na wykrycie serwerów.
join.info = Tutaj możesz wpisać [accent]adres IP serwera[], aby dołączyć lub wyszukać [accent]serwerów w lokalnej sieci[], do których możesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[lightgray]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o IP.
hostserver = Stwórz Serwer
invitefriends = Zaproś Znajomych
hostserver.mobile = Hostuj\nGrę
host = Hostuj
hosting = [accent] Otwieranie serwera...
hosting = [accent]Otwieranie serwera...
hosts.refresh = Odśwież
hosts.discovering = Wyszukiwanie gier w sieci LAN
hosts.discovering.any = Wyszukiwanie gier
server.refreshing = Odświeżanie serwera
hosts.none = [lightgray] Brak serwerów w sieci LAN!
host.invalid = [scarlet] Nie można połączyć się z hostem.
hosts.none = [lightgray]Brak serwerów w sieci LAN!
host.invalid = [scarlet]Nie można połączyć się z hostem.
trace = Zlokalizuj Gracza
trace.playername = Nazwa gracza: [accent]{0}
trace.ip = IP: [accent]{0}
@ -162,8 +171,8 @@ server.delete = Czy na pewno chcesz usunąć ten serwer?
server.edit = Edytuj Serwer
server.outdated = [crimson]Przestarzały serwer![]
server.outdated.client = [crimson]Przestarzały klient![]
server.version = [lightgray]Wersja: {0}
server.custombuild = [yellow]Zmodowany klient
server.version = [gray]Wersja: {0}
server.custombuild = [accent]Zmodowany klient
confirmban = Jesteś pewny, że chcesz zbanować tego gracza?
confirmkick = Jesteś pewny, że chcesz wyrzucić tego gracza?
confirmvotekick = Jesteś pewny, że chcesz głosować za wyrzuceniem tego gracza?
@ -188,14 +197,14 @@ save.new = Nowy zapis
save.overwrite = Czy na pewno chcesz nadpisać zapis gry?
overwrite = Nadpisz
save.none = Nie znaleziono zapisów gry!
saveload = [accent]Zapisywanie...
saveload = Zapisywanie...
savefail = Nie udało się zapisać gry!
save.delete.confirm = Czy na pewno chcesz usunąć ten zapis gry?
save.delete = Usuń
save.export = Eksportuj
save.import.invalid = [accent]Zapis gry jest niepoprawny!
save.import.fail = [crimson]Nie udało się zaimportować zapisu: [accent] {0}
save.export.fail = [crimson]Nie można wyeksportować zapisu: [accent] {0}
save.import.fail = [crimson]Nie udało się zaimportować zapisu: [accent]{0}
save.export.fail = [crimson]Nie można wyeksportować zapisu: [accent]{0}
save.import = Importuj Zapis
save.newslot = Zapisz nazwę:
save.rename = Zmień Nazwę
@ -203,7 +212,7 @@ save.rename.text = Nowa nazwa:
selectslot = Wybierz zapis.
slot = [accent]Slot {0}
editmessage = Edytuj Wiadomość
save.corrupted = [accent]Zapis gry jest uszkodzony lub nieprawidłowy! Jeżeli aktualizowałeś grę, najprawdopodobniej jest to zmiana w formacie zapisu i [scarlet]nie jest[] to błąd.
save.corrupted = Zapis gry jest uszkodzony lub nieprawidłowy!
empty = <pusto>
on = Włączone
off = Wyłączone
@ -231,11 +240,11 @@ data.exported = Dane wyeksportowane.
data.invalid = Nieprawidłowe dane gry.
data.import.confirm = Zaimportowanie zewnętrznych danych usunie[scarlet] wszystkie[] obecne dane gry.\n[accent]Nie można tego cofnąć![]\n\nGdy dane zostaną zimportowane, gra automatycznie się wyłączy.
classic.export = Eksportuj Dane Wersji Klasycznej
classic.export.text = [accent]Mindustry[] otrzymało ostatnio ważną aktualizację.\nClassic (v3.5 build 40) zapis albo mapa zostały wykryte. Czy chciałbyś eksportować te zapisy do katalogu domowego swojego telefonu, do użycia w aplikacji Mindustry Classic?
classic.export.text = [accent]Mindustry[] otrzymało ostatnio ważną aktualizację.\nWykryto zapis lub mapę z wersji classic (v3.5 build 40) - czy chciałbyś eksportować te zapisy do katalogu domowego swojego telefonu, do użycia w aplikacji Mindustry Classic?
quit.confirm = Czy na pewno chcesz wyjść?
quit.confirm.tutorial = Czy jesteś pewien tego co robisz?\nSamouczek może zostać powtórzony w[accent] Opcje->Gra->Powtórz samouczek.[]
quit.confirm.tutorial = Czy jesteś pewien tego co robisz?\nSamouczek może zostać powtórzony w[accent] Ustawienia->Gra->Ponów samouczek.[]
loading = [accent]Ładowanie...
reloading = [accent]Reloading Mods...
reloading = [accent]Przeładowywanie Modów...
saving = [accent]Zapisywanie...
cancelbuilding = [accent][[{0}][] by wyczyścić plan
selectschematic = [accent][[{0}][] by wybrać+skopiować
@ -243,11 +252,11 @@ pausebuilding = [accent][[{0}][] by wtrzymać budowę
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
wave = [accent]Fala {0}
wave.waiting = Fala za {0}
wave.waveInProgress = [LIGHT_GRAY]Fala w trakcie
waiting = [LIGHT_GRAY]Oczekiwanie...
wave.waveInProgress = [lightgray]Fala w trakcie
waiting = [lightgray]Oczekiwanie...
waiting.players = Oczekiwanie na graczy...
wave.enemies = Pozostało [LIGHT_GRAY]{0} wrogów
wave.enemy = Pozostał [LIGHT_GRAY]{0} wróg
wave.enemies = Pozostało [lightgray]{0} wrogów
wave.enemy = Pozostał [lightgray]{0} wróg
loadimage = Załaduj Obraz
saveimage = Zapisz Obraz
unknown = Nieznane
@ -255,8 +264,8 @@ custom = Własne
builtin = Wbudowane
map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić.
map.random = [accent]Losowa Mapa
map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [ROYAL]niebieski[] rdzeń do tej mapy w edytorze.
map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż niebieski[] rdzeń do mapy w edytorze.
map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [accent]pomarańczowy[] rdzeń do tej mapy w edytorze.
map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż pomarańczowy[] rdzeń do mapy w edytorze.
map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[SCARLET] czerwony[] rdzeń do mapy w edytorze.
map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy.
workshop.update = Aktualizuj pozycję
@ -265,12 +274,13 @@ map.publish.confirm = Czy jesteś pewien, że chcesz opublikować tę mapę?\n\n
workshop.menu = Wybierz co chcesz zrobić z tą pozycją.
workshop.info = Informacja o pozycji
changelog = Historia aktualizacji (opcjonalna):
eula = Umowa EULA Steam
eula = Umowa Użytkownika Końcowego (EULA) Steam
missing = Ta pozycja została przeniesiona bądź usunięta.\n[lightgray]Pozycja na Warsztacie została automatycznie odłączona.
publishing = [accent]Trwa publikowanie...
publish.confirm = Czy jesteś pewien, że chcesz to opublikować?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje pozycje nie będą widoczne!
publish.error = Błąd podczas publikowania pozycji: {0}
steam.error = Nie udało się zainicjować serwisów Steam.\nBłąd: {0}
editor.brush = Pędzel
editor.openin = Otwórz w Edytorze
editor.oregen = Generacja Złóż
@ -301,7 +311,7 @@ waves.load = Załaduj Ze Schowka
waves.invalid = Nieprawidłowe fale w schowku.
waves.copied = Fale zostały skopiowane.
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
editor.default = [LIGHT_GRAY]<Domyślne>
editor.default = [lightgray]<Domyślne>
details = Detale...
edit = Edytuj...
editor.name = Nazwa:
@ -310,11 +320,11 @@ editor.removeunit = Usuń Jednostkę
editor.teams = Drużyny
editor.errorload = Błąd podczas ładowania pliku:\n[accent]{0}
editor.errorsave = Błąd podczas zapisywania pliku:\n[accent]{0}
editor.errorimage = To obraz, nie mapa. Nie zmieniaj rozszerzenia, spodziewając się, że to coś zmieni.\n\nJeśli chcesz zaimportować starszą mapę, użyj przycisku „importuj starszą mapę” w edytorze.
editor.errorimage = To obraz, nie mapa.\n\nJeśli chcesz zaimportować mapę z wersji 3.5/build 40, użyj przycisku "Importuj starszą mapę" w edytorze.
editor.errorlegacy = Ta mapa jest zbyt stara i używa starszego formatu mapy, który nie jest już obsługiwany.
editor.errornot = To nie jest plik mapy.
editor.errorheader = Ten plik mapy jest nieprawidłowy lub uszkodzony.
editor.errorname = Mapa nie zawiera nazwy.
editor.errorname = Mapa nie zawiera nazwy. Czy próbujesz załadować zapis gry?
editor.update = Aktualizuj
editor.randomize = Losuj
editor.apply = Zastosuj
@ -347,6 +357,7 @@ editor.overwrite = [accent]Uwaga!\nSpowoduje to nadpisanie istniejącej mapy.
editor.overwrite.confirm = [scarlet]Uwaga![] Mapa o tej nazwie już istnieje. Jesteś pewny, że chcesz ją nadpisać?
editor.exists = Mapa o tej nazwie już istnieje.
editor.selectmap = Wybierz mapę do załadowania:
toolmode.replace = Zastąp
toolmode.replace.description = Rysuje tylko na stałych blokach.
toolmode.replaceall = Zastąp Wszystko
@ -361,7 +372,8 @@ toolmode.fillteams = Wypełnij Drużyny
toolmode.fillteams.description = Wypełniaj drużyny zamiast bloków.
toolmode.drawteams = Rysuj Drużyny
toolmode.drawteams.description = Rysuj drużyny zamiast bloków.
filters.empty = [LIGHT_GRAY]Brak filtrów! Dodaj jeden za pomocą przycisku poniżej.
filters.empty = [lightgray]Brak filtrów! Dodaj jeden za pomocą przycisku poniżej.
filter.distort = Zniekształcanie
filter.noise = Szum
filter.median = Mediana
@ -391,7 +403,8 @@ filter.option.ore = Ruda
filter.option.floor2 = Druga Podłoga
filter.option.threshold2 = Drugi Próg
filter.option.radius = Zasięg
filter.option.percentile = Percentyl
filter.option.percentile = Procent
width = Szerokość:
height = Wysokość:
menu = Menu
@ -401,52 +414,56 @@ load = Wczytaj
save = Zapisz
fps = FPS: {0}
ping = Ping: {0}ms
language.restart = Uruchom grę ponownie, aby ustawiony język zaczął funkcjonować.
settings = Ustawienia
tutorial = Poradnik
tutorial.retake = Ponów Samouczek
editor = Edytor
mapeditor = Edytor Map
abandon = Opuść
abandon.text = Ta strefa i wszystkie jej surowce będą przejęte przez przeciwników.
locked = Zablokowane
complete = [LIGHT_GRAY]Ukończone:
complete = [lightgray]Ukończone:
requirement.wave = Osiągnij falę {0} w {1}
requirement.core = Zniszcz Rdzeń wroga w {0}
requirement.unlock = Odblokuj {0}
resume = Kontynuuj Strefę:\n[LIGHT_GRAY]{0}
bestwave = [LIGHT_GRAY]Najwyższa fala: {0}
resume = Kontynuuj Strefę:\n[lightgray]{0}
bestwave = [lightgray]Najwyższa fala: {0}
launch = < WYSTRZEL >
launch.title = Wystrzelenie Udane
launch.next = [LIGHT_GRAY]Następna okazja przy fali {0}
launch.next = [lightgray]Następna okazja przy fali {0}
launch.unable2 = [scarlet]WYSTZRZELENIE niedostępne.[]
launch.confirm = Spowoduje to wystrzelenie wszystkich surowców w rdzeniu.\nNie będziesz mógł wrócić do tej bazy.
launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, Nie biędziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal.
launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, nie biędziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal.
uncover = Odkryj
configure = Skonfiguruj Ładunek
bannedblocks = Zabronione bloki
addall = Dodaj wszystkie
configure.locked = [LIGHT_GRAY]Dotrzyj do fali {0}\nAby skonfigurować ładunek.
configure.locked = [lightgray]Dotrzyj do fali {0},\naby skonfigurować ładunek.
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
zone.unlocked = [LIGHT_GRAY]Strefa {0} odblokowana.
zone.unlocked = [lightgray]Strefa {0} odblokowana.
zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione.
zone.config.unlocked = Ładunek odblokowany:[lightgray]\n{0}
zone.resources = Wykryte Zasoby:
zone.resources = [lightgray]Wykryte Zasoby:
zone.objective = [lightgray]Cel: [accent]{0}
zone.objective.survival = Przeżyj
zone.objective.attack = Zniszcz Rdzeń Wroga
add = Dodaj...
boss.health = Zdrowie Bossa
connectfail = [crimson]Nie można połączyć się z serwerem:\n\n[accent]{0}
error.unreachable = Serwer niedostępny.\nCzy adres jest wpisany poprawnie?
error.invalidaddress = Niepoprawny adres.
error.timedout = Przekroczono limit czasu!/nUpewnij się, że host ma ustawione przekierowanie portu oraz, czy adres jest poprawny!
error.timedout = Przekroczono limit czasu!/nUpewnij się, że host ma ustawione przekierowanie portu oraz poprawność wpisanego adresu!
error.mismatch = Błąd pakietu:\nprawdopodobne niedopasowanie klienta/serwera.\nUpewnij się, że ty i host macie najnowszą wersję Mindustry!
error.alreadyconnected = Jesteś już połączony.
error.mapnotfound = Plik mapy nie został znaleziony!
error.io = Błąd siecowy I/O.
error.any = Nieznany błąd sieci.
error.bloom = Nie udało się załadować bloom.\nTwoje urządzenie może nie wspierać tej funkcji.
zone.groundZero.name = Wybuch Lądowy
zone.desertWastes.name = Pustynne Pustkowia
zone.craters.name = Kratery
@ -461,6 +478,7 @@ zone.saltFlats.name = Solne Równiny
zone.impact0078.name = Uderzenie 0078
zone.crags.name = Urwisko
zone.fungalPass.name = Grzybowa Przełęcz
zone.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz jak najwięcej miedzi i ołowiu, tyle ile jest możliwe.\nPrzejdź do następnej strefy jak najszybciej.
zone.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki rozprzestrzeniły się. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nRozpocznij przedsięwzięcie od władzy. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy.
zone.desertWastes.description = Te pustkowia są rozległe, nieprzewidywalne, i znajdują się na nich opuszczone struktury.\nWęgiel jest obecny w tym regionie. Użyj go do produkcji energii, lub do stworzenia grafitu.\n\n[lightgray]Miejsce lądowania nie jest pewne.
@ -472,7 +490,7 @@ zone.overgrowth.description = Obszar ten jest zarośnięty, bliżej źródła za
zone.tarFields.description = Obrzeża strefy produkcji ropy, między górami a pustynią. Jeden z niewielu obszarów z rezerwami użytecznej smoły.\nMimo że ta strefa jest opuszczona, w pobliżu znajdują się niebezpieczne siły wroga. Nie lekceważ ich.\n\n[lightgray]Jeśli to możliwe, zbadaj technologię przetwarzania oleju.
zone.desolateRift.description = Strefa wyjątkowo niebezpieczna. Obfita w zasoby ale mało miejsca. Wysokie ryzyko zniszczenia. Opuść tę strefe jak najszybciej. Nie daj się zwieść długiemu odstępowi między atakami wroga.
zone.nuclearComplex.description = Dawny zakład produkcji i przetwarzania toru, zredukowny do ruin.\n[lightgray]Zbadaj tor i jego zastosowania.\n\nWróg jest tutaj obecny w dużej ilości, nieustannie poszukuje napastników.
zone.fungalPass.description = Przejściowy obszar pomiędzy wysokimi górami a nisko znajdującymi się, ogarniętymi przez zarodniki równinami. Znajduje się tu mała postawiona przez wrogów baza zwiadowcza.\nZniszcz ją.\nUżyj jednostek Nóż i Pełzak. Zniszcz oba rdżenie.
zone.fungalPass.description = Przejściowy obszar pomiędzy wysokimi górami a nisko znajdującymi się, ogarniętymi przez zarodniki równinami. Znajduje się tu mała postawiona przez wrogów baza zwiadowcza.\nZniszcz ją.\nUżyj jednostek Nóż i Pełzak. Zniszcz oba rdzenie.
zone.impact0078.description = <insert description here>
zone.crags.description = <insert description here>
settings.language = Język
@ -497,7 +515,7 @@ error.crashtitle = Wystąpił błąd
blocks.input = Wejście
blocks.output = Wyjście
blocks.booster = Wzmacniacz
block.unknown = [LIGHT_GRAY]???
block.unknown = [lightgray]???
blocks.powercapacity = Pojemność mocy
blocks.powershot = moc/strzał
blocks.damage = Obrażenia
@ -509,7 +527,7 @@ blocks.shootrange = Zasięg
blocks.size = Rozmiar
blocks.liquidcapacity = Pojemność cieczy
blocks.powerrange = Zakres mocy
blocks.powerconnections = Max Connections
blocks.powerconnections = Maksymalna ilość połączeń
blocks.poweruse = Zużycie prądu
blocks.powerdamage = Moc/Zniszczenia
blocks.itemcapacity = Pojemność przedmiotów
@ -529,9 +547,10 @@ blocks.inaccuracy = Niedokładność
blocks.shots = Strzały
blocks.reload = Strzałów/sekundę
blocks.ammo = Amunicja
bar.drilltierreq = Wymagane Lepsze Wiertło
bar.drillspeed = Prędkość wiertła: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.pumpspeed = Prędkość pompy: {0}/s
bar.efficiency = Efektywność: {0}%
bar.powerbalance = Moc: {0}
bar.powerstored = Zmagazynowano: {0}/{1}
@ -544,6 +563,9 @@ bar.heat = Ciepło
bar.power = Prąd
bar.progress = Postęp Budowy
bar.spawned = Jednostki: {0}/{1}
bar.input = Input
bar.output = Output
bullet.damage = [stat]{0}[lightgray] Obrażenia
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
bullet.incendiary = [stat]zapalający
@ -555,6 +577,7 @@ bullet.freezing = [stat]zamrażający
bullet.tarred = [stat]smolny
bullet.multiplier = [stat]{0}[lightgray]x mnożnik amunicji
bullet.reload = [stat]{0}[lightgray]x szybkość ataku
unit.blocks = bloki
unit.powersecond = jednostek prądu na sekundę
unit.liquidsecond = jednostek płynów na sekundę
@ -576,12 +599,13 @@ category.shooting = Strzelanie
category.optional = Dodatkowe ulepszenia
setting.landscape.name = Zablokuj tryb panoramiczny
setting.shadows.name = Cienie
setting.blockreplace.name = Automatic Block Suggestions
setting.blockreplace.name = Automatyczne sugestie bloków
setting.linear.name = Filtrowanie Liniowe
setting.hints.name = Hints
setting.hints.name = Podpowiedzi
setting.buildautopause.name = Automatycznie zatrzymaj budowanie
setting.animatedwater.name = Animowana woda
setting.animatedshields.name = Animowana Tarcza
setting.antialias.name = Antyaliasing[LIGHT_GRAY] (wymaga restartu)[]
setting.antialias.name = Antyaliasing[lightgray] (wymaga restartu)[]
setting.indicators.name = Wskaźniki Przyjaciół
setting.autotarget.name = Automatyczne Celowanie
setting.keyboard.name = Sterowanie - Myszka+Klawiatura
@ -599,18 +623,21 @@ setting.difficulty.insane = Szalony
setting.difficulty.name = Poziom trudności
setting.screenshake.name = Wstrząsy ekranu
setting.effects.name = Wyświetlanie efektów
setting.destroyedblocks.name = Display Destroyed Blocks
setting.destroyedblocks.name = Wyświetl zniszczone bloki
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.sensitivity.name = Czułość kontrolera
setting.saveinterval.name = Interwał automatycznego zapisywania
setting.seconds = {0} Sekundy
setting.seconds = {0} sekund
setting.blockselecttimeout.name = Block Select Timeout
setting.milliseconds = {0} millisekund
setting.fullscreen.name = Pełny ekran
setting.borderlesswindow.name = Bezramkowe okno[LIGHT_GRAY] (może wymagać restartu)
setting.fps.name = Pokazuj FPS
setting.borderlesswindow.name = Bezramkowe okno[lightgray] (może wymagać restartu)
setting.fps.name = Pokazuj FPS oraz ping
setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = Synchronizacja pionowa
setting.pixelate.name = Pikselacja [LIGHT_GRAY](wyłącza animacje)
setting.pixelate.name = Pikselacja [lightgray](wyłącza animacje)
setting.minimap.name = Pokaż Minimapę
setting.position.name = Show Player Position
setting.position.name = Pokazuj położenie gracza
setting.musicvol.name = Głośność muzyki
setting.ambientvol.name = Głośność otoczenia
setting.mutemusic.name = Wycisz muzykę
@ -622,7 +649,7 @@ setting.publichost.name = Widoczność Gry Publicznej
setting.chatopacity.name = Przezroczystość czatu
setting.lasersopacity.name = Przezroczystość laserów zasilających
setting.playerchat.name = Wyświetlaj czat w grze
public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej.
public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[accent]Każdy będzie mógł dołączyć do twojej gry.\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej.
public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi.
uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[]
uiscale.cancel = Anuluj i Wyjdź
@ -635,16 +662,36 @@ category.multiplayer.name = Wielu graczy
command.attack = Atakuj
command.rally = Zbierz
command.retreat = Wycofaj
placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Wyczyść budynek
keybind.press = Naciśnij wybrany klawisz...
keybind.press.axis = Naciśnij oś lub klawisz...
keybind.screenshot.name = Zrzut ekranu mapy
keybind.toggle_power_lines.name = Toggle Power Lines
keybind.move_x.name = Poruszanie w poziomie
keybind.move_y.name = Poruszanie w pionie
keybind.mouse_move.name = Follow Mouse
keybind.dash.name = Dash
keybind.schematic_select.name = Wybierz region
keybind.schematic_menu.name = Menu schematów
keybind.schematic_flip_x.name = Obróć schemat horyzontalnie
keybind.schematic_flip_y.name = Obróć schemat wertykalnie
keybind.category_prev.name = Poprzednia kategoria
keybind.category_next.name = Następna kategoria
keybind.block_select_left.name = Block Select Left
keybind.block_select_right.name = Block Select Right
keybind.block_select_up.name = Block Select Up
keybind.block_select_down.name = Block Select Down
keybind.block_select_01.name = Category/Block Select 1
keybind.block_select_02.name = Category/Block Select 2
keybind.block_select_03.name = Category/Block Select 3
keybind.block_select_04.name = Category/Block Select 4
keybind.block_select_05.name = Category/Block Select 5
keybind.block_select_06.name = Category/Block Select 6
keybind.block_select_07.name = Category/Block Select 7
keybind.block_select_08.name = Category/Block Select 8
keybind.block_select_09.name = Category/Block Select 9
keybind.block_select_10.name = Category/Block Select 10
keybind.fullscreen.name = Przełącz Pełny Ekran
keybind.select.name = Zaznacz
keybind.diagonal_placement.name = Budowa po skosie
@ -658,7 +705,6 @@ keybind.menu.name = Menu
keybind.pause.name = Pauza
keybind.pause_building.name = Wstrzymaj/kontynuuj budowę
keybind.minimap.name = Minimapa
keybind.dash.name = Przyspieszenie
keybind.chat.name = Czat
keybind.player_list.name = Lista graczy
keybind.console.name = Konsola
@ -672,16 +718,18 @@ keybind.drop_unit.name = Wyrzucanie przedmiot
keybind.zoom_minimap.name = Powiększenie mapy
mode.help.title = Opis trybów
mode.survival.name = Przeżycie
mode.survival.description = Zwykły tryb. Limitowane surowce i fale przeciwników.
mode.survival.description = Zwykły tryb. Limitowane surowce i fale przeciwników.\n[gray]Wymaga spawnów wroga na mapie, aby móc grać na tym trybie.
mode.sandbox.name = Piaskownica
mode.sandbox.description = Nieskończone surowce i fale bez odliczania.
mode.editor.name = Edytor
mode.pvp.name = PvP
mode.pvp.description = Walcz przeciwko innym graczom.
mode.pvp.description = Walcz przeciwko innym graczom.\n[gray]Wymaga co najmniej dwóch rdzeniów o róźnych kolorach na mapie, aby móc grać na tym trybie
mode.attack.name = Atak
mode.attack.description = Brak fal. Celem jest zniszczenie bazy przeciwnika.
mode.attack.description = Brak fal. Celem jest zniszczenie bazy przeciwnika.\n[gray]Wymaga czerwonego rdzenia na mapie, aby móc grać na tym trybie.
mode.custom = Własny tryb
rules.infiniteresources = Nieskończone zasoby
rules.reactorexplosions = Eksplozje reaktorów
rules.wavetimer = Zegar fal
rules.waves = Fale
rules.attack = Tryb ataku
@ -692,13 +740,13 @@ rules.unithealthmultiplier = Mnożnik życia jednostek
rules.playerhealthmultiplier = Mnożnik życia gracza
rules.playerdamagemultiplier = Mnożnik obrażeń gracza
rules.unitdamagemultiplier = Mnożnik obrażeń jednostek
rules.enemycorebuildradius = Zasięg blokady budowy przy rdżeniu wroga:[LIGHT_GRAY] (kratki)
rules.respawntime = Czas odrodzenia:[LIGHT_GRAY] (sek)
rules.wavespacing = Odstępy między falami:[LIGHT_GRAY] (sek)
rules.enemycorebuildradius = Zasięg blokady budowy przy rdzeniu wroga:[lightgray] (kratki)
rules.respawntime = Czas odrodzenia:[lightgray] (sek)
rules.wavespacing = Odstępy między falami:[lightgray] (sek)
rules.buildcostmultiplier = Mnożnik kosztów budowania
rules.buildspeedmultiplier = Mnożnik prędkości budowania
rules.waitForWaveToEnd = Fale czekają na przeciwników
rules.dropzoneradius = Zasięg strefy zrzutu:[LIGHT_GRAY] (kratki)
rules.dropzoneradius = Zasięg strefy zrzutu:[lightgray] (kratki)
rules.respawns = Maksymalna ilośc odrodzeń na falę
rules.limitedRespawns = Ogranicz Odrodzenia
rules.title.waves = Fale
@ -707,6 +755,10 @@ rules.title.resourcesbuilding = Zasoby i Budowanie
rules.title.player = Gracze
rules.title.enemy = Przeciwnicy
rules.title.unit = Jednostki
rules.title.experimental = Eksperymentalne
rules.lighting = Oświetlenie
rules.ambientlight = Światła otoczenia
content.item.name = Przedmioty
content.liquid.name = Płyny
content.unit.name = Jednostki
@ -753,21 +805,22 @@ mech.trident-ship.name = Trójząb
mech.trident-ship.weapon = Wnęka bombowa
mech.glaive-ship.name = Glewia
mech.glaive-ship.weapon = Zapalający Karabin
item.explosiveness = [LIGHT_GRAY]Wybuchowość: {0}
item.flammability = [LIGHT_GRAY]Palność: {0}
item.radioactivity = [LIGHT_GRAY]Promieniotwórczość: {0}
unit.health = [LIGHT_GRAY]Zdrowie: {0}
unit.speed = [LIGHT_GRAY]Prędkość: {0}
mech.weapon = [LIGHT_GRAY]Broń: {0}
mech.health = [LIGHT_GRAY]Zdrowie: {0}
mech.itemcapacity = [LIGHT_GRAY]Pojemność przedmiotów: {0}
mech.minespeed = [LIGHT_GRAY]Prędkość kopania: {0}
mech.minepower = [LIGHT_GRAY]Moc kopania: {0}
mech.ability = [LIGHT_GRAY]Umiejętność: {0}
mech.buildspeed = [LIGHT_GRAY]Szybkość Budowy: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Wytrzymałość na przegrzewanie: {0}
liquid.viscosity = [LIGHT_GRAY]Lepkość: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
item.explosiveness = [lightgray]Wybuchowość: {0}
item.flammability = [lightgray]Palność: {0}
item.radioactivity = [lightgray]Promieniotwórczość: {0}
unit.health = [lightgray]Zdrowie: {0}
unit.speed = [lightgray]Prędkość: {0}
mech.weapon = [lightgray]Broń: {0}
mech.health = [lightgray]Zdrowie: {0}
mech.itemcapacity = [lightgray]Pojemność przedmiotów: {0}
mech.minespeed = [lightgray]Prędkość kopania: {0}
mech.minepower = [lightgray]Moc kopania: {0}
mech.ability = [lightgray]Umiejętność: {0}
mech.buildspeed = [lightgray]Szybkość Budowy: {0}%
liquid.heatcapacity = [lightgray]Wytrzymałość na przegrzewanie: {0}
liquid.viscosity = [lightgray]Lepkość: {0}
liquid.temperature = [lightgray]Temperatura: {0}
block.sand-boulder.name = Piaskowy Głaz
block.grass.name = Trawa
block.salt.name = Sól
@ -794,7 +847,7 @@ block.thruster.name = Silnik
block.kiln.name = Wypalarka
block.graphite-press.name = Grafitowa Prasa
block.multi-press.name = Multi-Prasa
block.constructing = {0} [LIGHT_GRAY](Budowa)
block.constructing = {0} [lightgray](Budowa)
block.spawn.name = Spawn wrogów
block.core-shard.name = Rdzeń: Odłamek
block.core-foundation.name = Rdzeń: Podstawa
@ -843,8 +896,8 @@ block.copper-wall.name = Miedziana Ściana
block.copper-wall-large.name = Duża Miedziana Ściana
block.titanium-wall.name = Tytanowa Ściana
block.titanium-wall-large.name = Duża Tytanowa Ściana
block.plastanium-wall.name = Plastanium Wall
block.plastanium-wall-large.name = Large Plastanium Wall
block.plastanium-wall.name = Ściana z Plastanu
block.plastanium-wall-large.name = Duża Ściana z Plastanu
block.phase-wall.name = Fazowa Ściana
block.phase-wall-large.name = Duża Fazowa Ściana
block.thorium-wall.name = Torowa Ściana
@ -866,6 +919,8 @@ block.distributor.name = Dystrybutor
block.sorter.name = Sortownik
block.inverted-sorter.name = Odwrotny Sortownik
block.message.name = Wiadomość
block.illuminator.name = Illuminator
block.illuminator.description = Małe, kompaktowe i konfigurowane źródło światła. Wymaga energii do funkcjonowania.
block.overflow-gate.name = Brama Przepełnieniowa
block.silicon-smelter.name = Huta Krzemu
block.phase-weaver.name = Fazowa Fabryka
@ -879,6 +934,7 @@ block.coal-centrifuge.name = Wirówka węglowa
block.power-node.name = Węzeł Prądu
block.power-node-large.name = Duży Węzeł Prądu
block.surge-tower.name = Wieża Energetyczna
block.diode.name = Dioda baterii
block.battery.name = Bateria
block.battery-large.name = Duża Bateria
block.combustion-generator.name = Generator Spalinowy
@ -931,6 +987,7 @@ block.fortress-factory.name = Fabryka Mechów Forteca
block.revenant-factory.name = Fabryka Krążowników Zjawa
block.repair-point.name = Punkt Napraw
block.pulse-conduit.name = Rura Pulsacyjna
block.plated-conduit.name = Opancerzona rura
block.phase-conduit.name = Rura Fazowa
block.liquid-router.name = Rozdzielacz Płynów
block.liquid-tank.name = Zbiornik Płynów
@ -982,8 +1039,8 @@ unit.eradicator.name = Niszczyciel
unit.lich.name = Obudzony
unit.reaper.name = Żniwiarz
tutorial.next = [lightgray]<Kliknij, aby kontynuować>
tutorial.intro = Wszedłeś do[scarlet] Samouczka Mindustry.[]\nZacznij od[accent] wydobycia miedzi[]. Aby to zrobić, dotknij żyły rudy miedzi w pobliżu rdzenia.\n\n[accent]{0}/{1} miedź
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
tutorial.intro = Wszedłeś do[scarlet] Samouczka Mindustry.[]\nUżyj [accent][[WASD][], aby poruszyć się.\n[accent]Przytrzymaj [[Ctrl] podczas przewijania[], aby przybliżyć i oddalić widok.\nZacznij od[accent] wydobycia miedzi[]. W tym celu przybliż się, a następnie dotknij żyły rudy miedzi w pobliżu rdzenia.\n\n[accent]{0}/{1} miedź
tutorial.intro.mobile = Wszedłeś do[scarlet] Samouczka Mindustry.[]\nPrzesuń palcem po ekranie, aby poruszyć się.\n[accent]Użyj dwóch palcy[], aby przybliżyć i oddalić widok.\nZacznij od[accent] wydobycia miedzi[]. W tym celu przybliż się, a następnie dotknij żyły rudy miedzi w pobliżu rdzenia.\n\n[accent]{0}/{1} miedź
tutorial.drill = Wydobywanie ręczne nie jest efektywne.\n[accent]Wiertła []mogą kopać automatycznie.\nKliknij zakładkę wiertła w prawym dolnym rogu.\nWybierz[accent] wiertło mechaniczne[]. Umieść go na złożu miedzi, klikając.\n[accent]Kliknij prawym przyciskiem myszy[], aby przestać budować.
tutorial.drill.mobile = Wydobywanie ręczne jest nieefektywne.\n[accent]Wiertła []mogą kopać automatycznie.\nDotknij zakładkę wiertła w prawym dolnym rogu.\nWybierz[accent] wiertło mechaniczne[].\nUmieść go na złożu miedzi poprzez Stuknięcie, potem wciśnij[accent] ptaszek[] na dole by potwierdzić wybór.\nNaciśnij przycisk[accent] X[] by anulować budowe.
tutorial.blockinfo = Każdy blok ma inne statystyki. Każde wiertło może kopać tylko wybrane rudy.\nBy sprawdzić informacje i statystyki bloku,[accent] kliknij przycisk "?" podczas jego wyboru w menu budowy.[]\n\n[accent]Sprawdź teraz statystyki mechanicznego wiertła.[]
@ -1002,12 +1059,13 @@ tutorial.deposit = Włóż przedmioty do bloków poprzez przeciągnięcie z twoj
tutorial.waves = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdżeń przez 2 fale.[accent] Kliknij[] by strzelać.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
tutorial.waves.mobile = [lightgray] Wrogowie[] nadchodzą.\n\nBroń swój rdzeń przez 2 fale. Twój statek będzie automatycznie atakował wrogów.\nZbuduj wiecej działek i wierteł. Wydobądź więcej miedzi.
tutorial.launch = Kiedy dotrzesz do określonej fali, masz możliwość[accent] wystrzelenia rdzenia[], pozostawiając struktury obronne za sobą i[accent] otrzymując wszystkie surowce znajdujące się w rdzeniu.[]\nSurowce te mogą potem zostać użyte do odkrywania nowych technologii.\n\n[accent]Naciśnij przycisk Wystrzału.
item.copper.description = Przydatny materiał budowlany. Szeroko używany w prawie każdej konstrukcji.
item.lead.description = Podstawowy matriał. Używany w przesyle przemiotów i płynów. Nie jest on przypadkiem szkodliwy?
item.lead.description = Podstawowy materiał. Używany w przesyle przemiotów i płynów. Nie jest on przypadkiem szkodliwy?
item.metaglass.description = Wyjątkowo wytrzymały stop szkła. Szeroko używany w transporcie i przechowywaniu płynów.
item.graphite.description = Zmineralizowany węgiel, wykorzystywany do amunicji i izolacji elektrycznej.
item.sand.description = Zwykły materiał używany pospolicie w przepalaniu, stopach i jako topnik. Dostanie piaskiem po oczach nie jest przyjemne.
item.coal.description = Zwykły i łatwo dostępny materiał energetyczny.
item.sand.description = Zwykły materiał używany pospolicie w przepalaniu, stopach i jako topnik. Dostanie piaskiem po oczach nie jest przyjemne.
item.coal.description = Zwykły i łatwo dostępny materiał energetyczny. Używany powszechnie jako paliwo oraz w produkcji surowców.
item.titanium.description = Rzadki i bardzo lekki materiał. Używany w bardzo zaawansowanym przewodnictwie, wiertłach i samolotach. Poczuj się jak Tytan!
item.thorium.description = Zwarty i radioaktywny materiał używany w strukturach i paliwie nuklearnym. Nie trzymaj go w rękach!
item.scrap.description = Pozostałości starych budynków i jednostek. Składa się z małej ilości wszystkiego.
@ -1021,7 +1079,7 @@ item.pyratite.description = Niesamowicie palny związek używany w zbrojeniu. Ni
liquid.water.description = Powszechnie używana do schładzania budowli i przetwarzania odpadów.
liquid.slag.description = Wiele różnych metali stopionych i zmieszanych razem. Może zostać rozdzielony na jego metale składowe, albo wystrzelony w wrogie jednostki i użyty jako broń.
liquid.oil.description = Używany w do produkcji złożonych materiałów. Może zostać przetworzony na węgiel, lub wystrzelony w wrogów przez wieżyczke.
liquid.cryofluid.description = Najefektywniejsza ciecz do schładzania budowli.
liquid.cryofluid.description = Obojętna, niekorozyjna ciecz utworzona z wody i tytanu
mech.alpha-mech.description = Standardowy mech. Bazuje na jednostce Nóż, z ulepszonym pancerzem i zdolnością budowania. Zadaje więcej obrażeń niż Strzałka.
mech.delta-mech.description = Szybki, lekko opancerzony mech stworzony do ataków typu uderz i uciekaj. Zadaje niewielkie obrażenia strukturom, lecz może bardzo szybko niszczyć spore grupy jednostek wroga przy pomocy jego działek tesli.
mech.tau-mech.description = Mech wsparcia. Naprawia budynki drużyny, strzelając w nie. Potrafi wygasić niedalekie pożary i uleczyć bliskich przyjaciół.
@ -1038,7 +1096,7 @@ unit.crawler.description = Jednostka naziemna składająca się z rozebranej ram
unit.titan.description = Zaawansowana, opancerzona jednostka naziemna. Atakuje zarówno cele naziemne, jak i powietrzne. Wyposażony w dwa miniaturowe miotacze ognia typu Płomień.
unit.fortress.description = Ciężki mech artyleryjski. Wyposażony w dwa zmodyfikowane działa typu gradowego do ataku na dalekie odległości na konstrukcje i jednostki wroga.
unit.eruptor.description = Ciężki mech stworzony do niszczenia struktur. Strzela wiązką żużlu w kierunku fortyfikacji wroga, Topiąc je oraz podpalając łatwopalne przedmioty.
unit.wraith.description = Szybka jednostka, stosuje taktyke uderz-uciekaj Namierza jakiekolwiek źródło prądu.
unit.wraith.description = Szybka jednostka, stosuje taktykę uderz-uciekaj. Namierza jakiekolwiek źródło prądu.
unit.ghoul.description = Ciężki bombowiec dywanowy. Rozdziera struktury wroga, atakując krytyczną infrastrukturę.
unit.revenant.description = Ciężka, unosząca sie platforma z rakietami.
block.message.description = Przechowuje wiadomość. Wykorzystywane do komunikacji pomiędzy sojusznikami.
@ -1078,8 +1136,8 @@ block.surge-wall-large.description = Ekstremalnie wytrzymały blok obronny.\nMa
block.door.description = Małe drzwi, które można otwierać i zamykać, klikając na nie.\nJeśli są otwarte, wrogowie mogą strzelać i się przemieszczać przez nie.
block.door-large.description = Duże drzwi, które można otwierać i zamykać, klikając na nie.\nJeśli są otwarte, wrogowie mogą strzelać i się przemieszczać przez nie.\nObejmuje wiele kratek.
block.mender.description = Co jakiś czas naprawia bloki w zasięgu. Utrzymuje struktury obronne w dobrym stanie.\nOpcjonalnie używa silikonu do zwiększenia zasięgu i szybkości naprawy.
block.mend-projector.description = Co jakiś czas naprawia bloki w zasięgu. Lepsza wersja naprawiacza.
block.overdrive-projector.description = Zwiększa szybkość budynków w zasięgu takich jak wiertła czy przenośniki.
block.mend-projector.description = Ulepszona wersja Naprawiacza. Naprawia bloki w jego otoczeniu.\nMoże wykorzystywać włókno fazowe, aby zwiększyć efektywność budowli.
block.overdrive-projector.description = Zwiększa szybkość budynków w zasięgu takich jak wiertła czy przenośniki. Może wykorzystywać włókno fazowe, aby zwiększyć zasięg i efektywność budowli.
block.force-projector.description = Wytwarza pole siłowe w kształcie sześciokąta wokół siebie, chroniąc budynki i jednostki wewnątrz od obrażeń zadanych przez pociski.
block.shock-mine.description = Zadaje obrażenia jednostkom wroga którzy na nią wejdą. Ledwo widoczne dla wrogów.
block.conveyor.description = Podstawowy blok transportowy dla przedmiotów. Automatycznie przesyła przedmioty naprzód do działek oraz maszyn. Można obrócić.
@ -1088,7 +1146,7 @@ block.junction.description = Używany jako most dla dwóch krzyżujących się p
block.bridge-conveyor.description = Zaawansowany blok transportujący. Pozwala na przenoszenie przedmiotów nawet do 3 bloków na każdym terenie, przez każdy budynek.
block.phase-conveyor.description = Zaawansowany blok transportowy dla przedmiotów. Używa energii do teleportacji przedmiotów do połączonego transportera fazowego na spore odległości.
block.sorter.description = Sortuje przedmioty. Jeśli przedmiot pasuje to przechodzi dalej, jeśli nie - to przechodzi na boki.
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
block.inverted-sorter.description = Sortuje przedmioty jak zwykły sortownik, ale odpowiednie surowce wyciągane są na boki.
block.router.description = Akceptuje przedmioty z jednego miejsca i rozdziela je do trzech innych kierunków. Przydatne w rozdzielaniu materiałów z jednego źródła do wielu celów.
block.distributor.description = Zaawansowany rozdzielacz, rozdzielający przedmioty do 7 innych kierunków.
block.overflow-gate.description = Rozdzielacz, który przerzuca przedmioty, kiedy główna droga jest przepełniona
@ -1098,6 +1156,7 @@ block.rotary-pump.description = Zaawansowana pompa. Pompuje więcej cieczy, ale
block.thermal-pump.description = Najlepsza pompa. Trzy razy szybsza od mechanicznej pompy i jedyna, która może wypompować lawę.
block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami.
block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury.
block.plated-conduit.description = Przesyła ciecze z taką samą szybkością co rura tytanowa, ale jest bardziej odporna. Wejściami bocznymi mogą być tylko inne rury.\nWycieka z niej mniej cieczy.
block.liquid-router.description = Akceptuje płyny z jednego kierunku i wyprowadza je po równo do trzech innych kierunków. Może również przechowywać pewną ilość płynu. Przydatne do dzielenia płynów z jednego źródła do wielu celów.
block.liquid-tank.description = Magazynuje duże ilości cieczy. Użyj go do stworzenia buforu, gdy występuje różne zapotrzebowanie na materiały lub jako zabezpieczenie dla chłodzenia ważnych bloków.
block.liquid-junction.description = Działa jak most dla dwóch krzyżujących się rur. Przydatne w sytuacjach, kiedy dwie rury mają różne ciecze do różnych lokacji.
@ -1106,6 +1165,7 @@ block.phase-conduit.description = Zaawansowany blok do przenoszenia cieczy. Uży
block.power-node.description = Przesyła moc do połączonych węzłów. Można podłączyć do czterech źródeł zasilania, zlewów lub węzłów. Zasila też bloki które go dotykają.
block.power-node-large.description = Posiada większy zasięg niż zwykły węzeł prądu. Można podłączyć do sześciu źródeł zasilania, zlewów lub węzłów.
block.surge-tower.description = Węzęł prądu z bardzo dużym zasięgiem, posiadający mniej możliwych podłączeń.
block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
block.battery.description = Przechowuje energię przy nadwyżce produkcji oraz dostarcza energię kiedy jest jej brak, dopóki jest w niej miejsce.
block.battery-large.description = Przechowuje o wiele wiecej prądu niż standardowa bateria.
block.combustion-generator.description = Wytwarza energię poprzez spalanie łatwopalnych materiałów.
@ -1121,14 +1181,14 @@ block.mechanical-drill.description = Tanie wiertło. Kiedy zostanie zbudowane na
block.pneumatic-drill.description = Ulepszone wiertło, które jest szybsze i może wykopywać twardsze surowce przy użyciu ciśnienia.
block.laser-drill.description = Pozwala kopać jeszcze szybciej poprzez technologię laserową, ale wymaga energii. Zdolne do wydobywania toru.
block.blast-drill.description = Najlepsze wiertło. Wymaga dużych ilości energii.
block.water-extractor.description = Wydobywa wodę z ziemi. Użyj go, gdy w pobliżu nie ma jeziora.
block.water-extractor.description = Wydobywa wodę z ziemi. Użyj go, gdy w pobliżu brakuje wody.
block.cultivator.description = Uprawia małe skupiska zarodników i umieszcza je w gotowych do dalszego przetwarzania kapsułach.
block.oil-extractor.description = Używa bardzo dużych ilości energii do ekstrakcji ropy z piasku. Używaj go w sytuacji kiedy nie ma bezpośredniego źródła ropy w okolicy.
block.core-shard.description = Pierwsza wersja rdzenia. Gdy zostaje zniszczony, wszelki kontakt do regionu zostaje utracony. Nie pozwól na to.
block.core-foundation.description = Druga wersja rdzenia. Lepiej opancerzony. Przechowuje więcej surowców.
block.core-nucleus.description = Trzecia i ostatnia wersja rdzenia. Bardzo dobrze opanczerzony. Przechowuje ogromne ilości surowców.
block.vault.description = Przechowuje duże ilości przedmiotów każdego rodzaju. [LIGHT_GRAY] Ekstraktor[] może zostać użyty do rozładowania magazynu.
block.container.description = Przechowuje małe ilości przedmiotów każdego rodzaju. [LIGHT_GRAY] ekstraktor[] może zostać użyty do rozładowania kontenera.
block.vault.description = Przechowuje duże ilości przedmiotów każdego rodzaju. Użyj ekstraktora, aby rozładować magazyn.
block.container.description = Przechowuje małe ilości przedmiotów każdego rodzaju. Użyj ekstraktora, aby rozładować kontener.
block.unloader.description = Wyciąga przedmioty z kontenera, magazynu oraz rdżenia na przenośniki lub bezpośrednio na przyległe bloki. Typ przedmiotu jaki zostanie wyciągniety może zostać zmieniony poprzez kliknięcie.
block.launch-pad.description = Wysyła pakiety przedmiotów bez potrzeby wystrzeliwania rdżenia. Niedokończona.
block.launch-pad-large.description = Ulepszona wersja wyrzutni. Magazynuje więcej przedmiotów. Wysyła częściej.

View file

@ -10,20 +10,23 @@ link.dev-builds.description = Desenvolvimentos instáveis
link.trello.description = Trello oficial para atualizações planejadas
link.itch.io.description = Página da Itch.io com os downloads
link.google-play.description = Página da google play store
link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Wiki oficial do Mindustry
linkfail = Falha ao abrir o link\nO Url foi copiado
linkfail = Falha ao abrir o link\nO Url foi copiado para a área de transferência.
screenshot = Screenshot salvo para {0}
screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura de tela.
gameover = O núcleo foi destruído.
gameover.pvp = O time[accent] {0}[] ganhou!
highscore = [YELLOW]Novo recorde!
copied = Copiado
load.sound = Sons
load.map = Mapas
load.image = Imagens
load.content = Conteúdo
load.system = Sistema
load.mod = Mods
schematic = Esquema
schematic.add = Salvar Esquema...
schematics = Esquemas
@ -40,6 +43,7 @@ schematic.saved = Esquema salvo.
schematic.delete.confirm = Esse Esquema será totalmente erradicado.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
stat.wave = Hordas derrotadas:[accent] {0}
stat.enemiesDestroyed = Inimigos Destruídos:[accent] {0}
stat.built = Construções construídas:[accent] {0}
@ -47,6 +51,7 @@ stat.destroyed = Construções destruídas:[accent] {0}
stat.deconstructed = Construções desconstruídas:[accent] {0}
stat.delivered = Recursos lançados:
stat.rank = Classificação Final: [accent]{0}
launcheditems = [accent]Itens lançados
launchinfo = [unlaunched][[LANCE] seu núcleo para obter os itens indicados em azul.
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
@ -74,6 +79,7 @@ maps.browse = Pesquisar mapas
continue = Continuar
maps.none = [LIGHT_GRAY]Nenhum Mapa Encontrado!
invalid = Inválido
pickcolor = Escolher Cor
preparingconfig = Preparando configuração
preparingcontent = Preparando conteúdo
uploadingcontent = Fazendo upload do conteúdo
@ -81,6 +87,7 @@ uploadingpreviewfile = Fazendo upload do arquivo de pré-visualização
committingchanges = Enviando mudanças
done = Feito
feature.unsupported = Seu dispositivo não suporta essa função.
mods.alphainfo = Mantenha em mente que os mods estão em Alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry.
mods.alpha = [accent](Alpha)
mods = Mods
@ -90,10 +97,11 @@ mods.report = Reportar um Bug
mods.openfolder = Abrir pasta de Mods
mod.enabled = [lightgray]Ativado
mod.disabled = [scarlet]Desativado
mod.disable = Desativar
mod.disable = Desati-\nvar
mod.delete.error = Incapaz de deletar o Mod. O arquivo talvez esteja em uso.
mod.requiresversion = [scarlet]Requer versão [accent]{0} [scarlet]do jogo.
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes :[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes:[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
mod.enable = Ativar
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do Mod.
mod.reloadrequired = [scarlet]Recarregamento necessário
@ -104,6 +112,7 @@ mod.author = [LIGHT_GRAY]Author:[] {0}
mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. O jogo salvo pode se corromper. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
mod.preview.missing = Antes de publicar esse mod na Oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do Mod e tente novamente.
mod.folder.missing = Somente Mods no formato de pasta serão publicados na Oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os Mods.
about.button = Sobre
name = Nome:
noname = Escolha[accent] um nome[] primeiro.
@ -271,6 +280,7 @@ publishing = [accent]Publishing...
publish.confirm = você tem certeza de que quer publicar isso?\n\n[lightgray]Primeiramente tenha certeza de que você concorda com o EULA da Oficina, ou seus itens não irão aparecer!
publish.error = Erro publicando o Item: {0}
steam.error = Falha em iniciar os serviços da Steam.\nError: {0}
editor.brush = Pincel
editor.openin = Abrir no Editor
editor.oregen = Geração de minério
@ -347,6 +357,7 @@ editor.overwrite = [accent]Aviso!\nIsso Substitui um mapa existente.
editor.overwrite.confirm = [scarlet]Aviso![] Um mapa com esse nome já existe. Tem certeza que deseja substituir?
editor.exists = Já existe um mapa com este nome.
editor.selectmap = Selecione uma mapa para carregar:
toolmode.replace = Substituir
toolmode.replace.description = Desenha apenas em blocos sólidos.
toolmode.replaceall = Substituir tudo
@ -361,6 +372,7 @@ toolmode.fillteams = Encher times
toolmode.fillteams.description = Muda o time do qual todos os blocos pertencem.
toolmode.drawteams = Desenhar times
toolmode.drawteams.description = Muda o time do qual o bloco pertence.
filters.empty = [LIGHT_GRAY]Sem filtro! Adicione um usando o botão abaixo.
filter.distort = Distorcedor
filter.noise = Geração aleatória
@ -392,6 +404,7 @@ filter.option.floor2 = Chão secundário
filter.option.threshold2 = Margem secundária
filter.option.radius = Raio
filter.option.percentile = Percentual
width = Largura:
height = Altura:
menu = Menu
@ -407,6 +420,7 @@ tutorial = Tutorial
tutorial.retake = Refazer Tutorial
editor = Editor
mapeditor = Editor de mapa
abandon = Abandonar
abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo.
locked = Trancado
@ -437,6 +451,7 @@ zone.objective.survival = Sobreviver
zone.objective.attack = Destruir o núcleo inimigo
add = Adicionar...
boss.health = Vida do chefe
connectfail = [crimson]Falha ao entrar no servidor: [accent]{0}
error.unreachable = Servidor inalcançável.
error.invalidaddress = Endereço inválido.
@ -447,6 +462,7 @@ error.mapnotfound = Arquivo de mapa não encontrado!
error.io = Erro I/O de internet.
error.any = Erro de rede desconhecido.
error.bloom = Falha ao inicializar bloom.\nSeu dispositivo talvez não o suporte.
zone.groundZero.name = Marco zero
zone.desertWastes.name = Ruínas do Deserto
zone.craters.name = As crateras
@ -461,6 +477,7 @@ zone.saltFlats.name = Planícies de sal
zone.impact0078.name = Impacto 0078
zone.crags.name = Penhascos
zone.fungalPass.name = Passagem Fúngica
zone.groundZero.description = Uma ótima localização para começar de novo. Baixa ameaça inimiga. Poucos recursos.\nColete o máximo de chumbo e cobre possível.\nContinue!
zone.frozenForest.description = Até aqui, perto das montanhas, os esporos se espalharam. As baixas temperaturas não podem contê-los para sempre.\n\nComeçe a busca por energia. Construa geradores à combustão. Aprenda a usar os reparadores (menders).
zone.desertWastes.description = Estas ruínas são vastas, imprevisíveis, e cruzadas por estruturas abandonadas.\nCarvão está presente na região. O queime por energia, ou sintetize grafite.\n\n[lightgray]Este local de pouso não pode ser garantido.
@ -475,17 +492,19 @@ zone.nuclearComplex.description = Uma antiga instalação para produção e proc
zone.fungalPass.description = Uma area de transição entre montanhas altas e baixas, terras cheias de esporos. Uma pequena base de reconhecimento inimiga está localizada aqui.\nDestrua-a.\nUse as unidades crawler e dagger. Destrua os dois núcleos.
zone.impact0078.description = <insert description here>
zone.crags.description = <insert description here>
settings.language = Idioma
settings.data = Dados do jogo
settings.reset = Restaurar Padrões
settings.rebind = Religar
settings.resetKey = Resetar
settings.controls = Controles
settings.game = Jogo
settings.sound = Som
settings.graphics = Gráficos
settings.cleardata = Apagar dados...
settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não pode ser desfeito!
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, Incluindo jogos salvos, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente.
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, incluindo jogos salvos, mapas, teclas personalizadas e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente.
paused = Pausado
clear = Clear
banned = [scarlet]Banido
@ -529,6 +548,7 @@ blocks.inaccuracy = Imprecisão
blocks.shots = Tiros
blocks.reload = Tiros por segundo
blocks.ammo = Munição
bar.drilltierreq = Broca melhor necessária.
bar.drillspeed = Velocidade da Broca: {0}/s
bar.pumpspeed = Velocidade da Bomna: {0}/s
@ -544,8 +564,11 @@ bar.heat = Aquecimento
bar.power = Poder
bar.progress = Progresso da construção
bar.spawned = Unidades: {0}/{1}
bullet.damage = [stat]{0}[lightgray] Dano
bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos
bar.input = Entrando
bar.output = Saindo
bullet.damage = [stat]{0}[lightgray] de dano
bullet.splashdamage = [stat]{0}[lightgray] de dano em área ~[stat] {1}[lightgray] bloco(s)
bullet.incendiary = [stat]Incendiário
bullet.homing = [stat]Guiado
bullet.shock = [stat]Choque
@ -555,6 +578,7 @@ bullet.freezing = [stat]Congelamento
bullet.tarred = [stat]Grudento
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munição
bullet.reload = [stat]{0}[lightgray]x cadência de tiro
unit.blocks = Blocos
unit.powersecond = Unidades de energia/segundo
unit.liquidsecond = Unidades de líquido/segundo
@ -576,13 +600,14 @@ category.shooting = Atirando
category.optional = Melhoras opcionais
setting.landscape.name = Travar panorama
setting.shadows.name = Sombras
setting.blockreplace.name = Automatic Block Suggestions
setting.blockreplace.name = Sugestões automáticas de blocos
setting.linear.name = Filtragem linear
setting.hints.name = Dicas
setting.buildautopause.name = Pausar construções automaticamente
setting.animatedwater.name = Água animada
setting.animatedshields.name = Escudos animados
setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[]
setting.indicators.name = Indicador de aliados
setting.indicators.name = Indicador de aliados/inimigos
setting.autotarget.name = Alvo automatico
setting.keyboard.name = Controles de mouse e teclado
setting.touchscreen.name = Controles de Touchscreen
@ -600,13 +625,16 @@ setting.difficulty.name = Dificuldade
setting.screenshake.name = Balanço da Tela
setting.effects.name = Efeitos
setting.destroyedblocks.name = Mostrar Blocos Destruídos
setting.conveyorpathfinding.name = Posicionamento do localizador do Transportador
setting.conveyorpathfinding.name = Esteiras Encontram Caminho
setting.sensitivity.name = Sensibilidade do Controle
setting.saveinterval.name = Intervalo de Auto Salvamento
setting.seconds = {0} Segundos
setting.seconds = {0} segundos
setting.blockselecttimeout.name = Tempo limite de seleção de blocos
setting.milliseconds = {0} milissegundos
setting.fullscreen.name = Tela Cheia
setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar)
setting.fps.name = Mostrar FPS
setting.fps.name = Mostrar FPS e Ping
setting.blockselectkeys.name = Mostrar teclas de seleção de blocos
setting.vsync.name = VSync
setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace)
setting.minimap.name = Mostrar minimapa
@ -635,16 +663,36 @@ category.multiplayer.name = Multijogador
command.attack = Atacar
command.rally = Reunir
command.retreat = Recuar
keybind.clear_building.name = Clear Building
placement.blockselectkeys = \n[lightgray]Tecla: [{0},
keybind.clear_building.name = Limpar construção
keybind.press = Pressione uma tecla...
keybind.press.axis = Pressione uma Axis ou tecla...
keybind.screenshot.name = Captura do mapa
keybind.move_x.name = mover_x
keybind.move_y.name = mover_y
keybind.toggle_power_lines.name = Mudar lasers
keybind.move_x.name = Mover no eixo x
keybind.move_y.name = Mover no eixo Y
keybind.mouse_move.name = Seguir Mouse
keybind.dash.name = Arrancada
keybind.schematic_select.name = Selecionar região
keybind.schematic_menu.name = Menu de Esquemas
keybind.schematic_flip_x.name = girar o Esquema X
keybind.schematic_flip_y.name = girar o Esquema Y
keybind.schematic_flip_x.name = Girar o Esquema no eixo X
keybind.schematic_flip_y.name = Girar o Esquema no eixo Y
keybind.category_prev.name = Categoria anterior
keybind.category_next.name = Próxima categoria
keybind.block_select_left.name = Selecionar bloco à esquerda
keybind.block_select_right.name = Selecionar bloco à direita
keybind.block_select_up.name = Selecionar bloco acima
keybind.block_select_down.name = Selecionar bloco abaixo
keybind.block_select_01.name = Categoria/Selecionar bloco 1
keybind.block_select_02.name = Categoria/Selecionar bloco 2
keybind.block_select_03.name = Categoria/Selecionar bloco 3
keybind.block_select_04.name = Categoria/Selecionar bloco 4
keybind.block_select_05.name = Categoria/Selecionar bloco 5
keybind.block_select_06.name = Categoria/Selecionar bloco 6
keybind.block_select_07.name = Categoria/Selecionar bloco 7
keybind.block_select_08.name = Categoria/Selecionar bloco 8
keybind.block_select_09.name = Categoria/Selecionar bloco 9
keybind.block_select_10.name = Categoria/Selecionar bloco 10
keybind.fullscreen.name = Alterar tela cheia
keybind.select.name = selecionar
keybind.diagonal_placement.name = Colocação diagonal
@ -658,7 +706,6 @@ keybind.menu.name = Menu
keybind.pause.name = Pausar
keybind.pause_building.name = Parar/Resumir a construção
keybind.minimap.name = Minimapa
keybind.dash.name = Correr
keybind.chat.name = Conversa
keybind.player_list.name = Lista_de_jogadores
keybind.console.name = Console
@ -666,7 +713,7 @@ keybind.rotate.name = Girar
keybind.rotateplaced.name = Girar (Segure)
keybind.toggle_menus.name = Ativar menus
keybind.chat_history_prev.name = Historico do chat anterior
keybind.chat_history_next.name = Historico do proximo chat
keybind.chat_history_next.name = Historico do próximo chat
keybind.chat_scroll.name = Rolar chat
keybind.drop_unit.name = Soltar unidade
keybind.zoom_minimap.name = Zoom do minimapa
@ -681,12 +728,14 @@ mode.pvp.description = Lutar contra outros jogadores locais.
mode.attack.name = Ataque
mode.attack.description = Sem hordas, com o objetivo de destruir a base inimiga.
mode.custom = Regras personalizadas
rules.infiniteresources = Recursos infinitos
rules.reactorexplosions = Reatores explodem
rules.wavetimer = Tempo de horda
rules.waves = Hordas
rules.attack = Modo de ataque
rules.enemyCheat = Recursos de IA Infinitos
rules.unitdrops = Unidade solta
rules.unitdrops = Inimigos dropam itens
rules.unitbuildspeedmultiplier = Multiplicador de velocidade de criação de unidade
rules.unithealthmultiplier = Multiplicador de vida de unidade
rules.playerhealthmultiplier = Multiplicador da vida de jogador
@ -694,10 +743,10 @@ rules.playerdamagemultiplier = Multiplicador do dano de jogador
rules.unitdamagemultiplier = Multiplicador de dano de Unidade
rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[LIGHT_GRAY] (blocos)
rules.respawntime = Tempo de renascimento:[LIGHT_GRAY] (seg)
rules.wavespacing = Espaço entre hordas:[LIGHT_GRAY] (seg)
rules.wavespacing = Espaço de tempo entre hordas:[LIGHT_GRAY] (seg)
rules.buildcostmultiplier = Multiplicador de custo de construção
rules.buildspeedmultiplier = Multiplicador de velocidade de construção
rules.waitForWaveToEnd = hordas esperam inimigos
rules.waitForWaveToEnd = Hordas esperam inimigos
rules.dropzoneradius = Raio da zona de spawn:[LIGHT_GRAY] (blocos)
rules.respawns = Respawn maximos por horda
rules.limitedRespawns = Respawn limitados
@ -707,6 +756,10 @@ rules.title.resourcesbuilding = Recursos e Construções
rules.title.player = Jogadores
rules.title.enemy = Inimigos
rules.title.unit = Unidades
rules.title.experimental = Experimental
rules.lighting = Iluminação
rules.ambientlight = Luz ambiente
content.item.name = Itens
content.liquid.name = Líquidos
content.unit.name = Unidades
@ -768,6 +821,7 @@ mech.buildspeed = [LIGHT_GRAY]Velocidade de construção: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
block.sand-boulder.name = Pedregulho de areia
block.grass.name = Grama
block.salt.name = Sal
@ -843,7 +897,7 @@ block.copper-wall.name = Muro de Cobre
block.copper-wall-large.name = Muro de Cobre Grande
block.titanium-wall.name = Muro de Titânio
block.titanium-wall-large.name = Muro de Titânio grande
block.plastanium-wall.name = Muro de Plastânio Grande
block.plastanium-wall.name = Muro de Plastânio
block.plastanium-wall-large.name = Muro de Plastânio Grande
block.phase-wall.name = Muro de Fase
block.phase-wall-large.name = Muro de Fase Grande
@ -866,6 +920,8 @@ block.distributor.name = Distribuidor
block.sorter.name = Ordenador
block.inverted-sorter.name = Ordenador Invertido
block.message.name = Mensagem
block.illuminator.name = Iluminador
block.illuminator.description = Uma pequena, compacta e configurável fonte de luz. Precisa de energia para funcionar.
block.overflow-gate.name = Portão Sobrecarregado
block.silicon-smelter.name = Fundidora de silicio
block.phase-weaver.name = Palheta de fase
@ -875,14 +931,15 @@ block.melter.name = Aparelho de fusão
block.incinerator.name = Incinerador
block.spore-press.name = Prensa de Esporo
block.separator.name = Separador
block.coal-centrifuge.name = Centrifuga de carvão
block.power-node.name = Célula de energia
block.power-node-large.name = Célula de energia Grande
block.coal-centrifuge.name = Centrífuga de carvão
block.power-node.name = Célula de Energia
block.power-node-large.name = Célula de Energia Grande
block.surge-tower.name = Torre de surto
block.diode.name = Bateria de Diodo
block.battery.name = Bateria
block.battery-large.name = Bateria Grande
block.combustion-generator.name = Gerador a combustão
block.turbine-generator.name = Gerador de Turbina
block.combustion-generator.name = Gerador à combustão
block.turbine-generator.name = Gerador à vapor
block.differential-generator.name = Gerador diferencial
block.impact-reactor.name = Reator De Impacto
block.mechanical-drill.name = Broca Mecânica
@ -931,6 +988,7 @@ block.fortress-factory.name = Fábrica de mech Fortress
block.revenant-factory.name = Fábrica de lutadores Revenant
block.repair-point.name = Ponto de Reparo
block.pulse-conduit.name = Cano de Pulso
block.plated-conduit.name = Cano Chapeado
block.phase-conduit.name = Cano de Fase
block.liquid-router.name = Roteador de Líquido
block.liquid-tank.name = Tanque de Líquido
@ -939,12 +997,12 @@ block.bridge-conduit.name = Cano Ponte
block.rotary-pump.name = Bomba Rotatória
block.thorium-reactor.name = Reator a Tório
block.mass-driver.name = Catapulta Eletromagnética
block.blast-drill.name = Broca de Explosão
block.blast-drill.name = Broca de Jato de Ar
block.thermal-pump.name = Bomba térmica
block.thermal-generator.name = Gerador Térmico
block.alloy-smelter.name = Fundidora de Liga
block.mender.name = Reparador
block.mend-projector.name = Projetor de reparo
block.mend-projector.name = Projetor de Reparo
block.surge-wall.name = Parede de liga de surto
block.surge-wall-large.name = Parede de liga de surto grande
block.cyclone.name = Ciclone
@ -960,10 +1018,10 @@ block.container.name = Contâiner
block.launch-pad.name = Plataforma de lançamento
block.launch-pad-large.name = Plataforma de lançamento grande
team.blue.name = Azul
team.crux.name = Vermelha
team.sharded.name = Estilhaçada
team.orange.name = Laranja
team.derelict.name = Abandonada
team.crux.name = Vermelho
team.sharded.name = Fragmentado
team.orange.name = Alaranjado
team.derelict.name = Abandonado
team.green.name = Verde
team.purple.name = Roxa
unit.spirit.name = Drone Spirit
@ -1002,6 +1060,7 @@ tutorial.deposit = Deposite itens em blocos arrastando da sua nave até o bloco.
tutorial.waves = O[LIGHT_GRAY] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Construa mais torretas.
tutorial.waves.mobile = O[lightgray] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Seu drone vai atirar nos inimigos automaticamente.\nConstrua mais torretas e brocas. Minere mais cobre.
tutorial.launch = Quando você atinge uma horda específica, Você é capaz de[accent] lançar o núcleo[], deixando suas defesas para trás e[accent] obtendo todos os recursos em seu núcleo.[]\nEstes recursos podem ser usados para pesquisar novas tecnologias.\n\n[accent]Pressione o botão lançar.
item.copper.description = O material mais básico. Usado em todos os tipos de blocos.
item.lead.description = Material de começo basico. usado extensivamente em blocos de transporte de líquidos e eletrônicos.
item.metaglass.description = Composto de vidro super resistente. Extensivamente usado para distribuição e armazenagem de líquidos.
@ -1051,7 +1110,7 @@ block.phase-weaver.description = Produz tecido de fase usando tório radioativo
block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto.
block.cryofluidmixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório.
block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão.
block.pyratite-mixer.description = Mistura carvão, cobre e areia em piratita altamente inflamável
block.pyratite-mixer.description = Mistura carvão, cobre e areia em piratita altamente inflamável.
block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas.
block.separator.description = Separa escória em seus minerais componentes, oferece o resultado refriado.
block.spore-press.description = Comprime cápsulas de esporos em petróleo.
@ -1067,10 +1126,10 @@ block.copper-wall.description = Um bloco defensivo e barato.\nUtil para proteger
block.copper-wall-large.description = Um bloco defensivo e barato.\nUtil para proteger o núcleo e torretas no começo.\nOcupa múltiplos blocos.
block.titanium-wall.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.
block.titanium-wall-large.description = Um bloco defensivo moderadamente forte.\nProvidencia defesa moderada contra inimigos.\nOcupa múltiplos blocos.
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
block.plastanium-wall.description = Um tipo especial de muro que absorve arcos elétricos e bloqueia conexões automáticas de células de energia.
block.plastanium-wall-large.description = Um tipo especial de muro que absorve arcos elétricos e bloqueia conexões automáticas de células de energia.\nOcupa múltiplos blocos.
block.thorium-wall.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.
block.thorium-wall-large.description = Um bloco grande e defensivo.\nBoa proteção contra inimigos.\nOcupa multiplos blocos.
block.thorium-wall-large.description = Um bloco defensivo forte.\nBoa proteção contra inimigos.\nOcupa múltiplos blocos.
block.phase-wall.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.
block.phase-wall-large.description = Um muro revestido com um composto especial baseado em tecido de fase. Desvia a maioria das balas no impacto.\nSOcupa múltiplos blocos.
block.surge-wall.description = Um bloco defensivo extremamente durável.\nSe carrega com eletricidade no contato com as balas, soltando-s aleatoriamente.
@ -1098,7 +1157,8 @@ block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas
block.thermal-pump.description = A bomba final.
block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos.
block.pulse-conduit.description = Bloco avancado de transporte de liquido. Transporta liquidos mais rápido e armazena mais que os canos padrões.
block.liquid-router.description = Aceita liquidos de uma direcão e os joga em 3 direções igualmente. Pode armazenar uma certa quantidade de liquido. Util para espalhar liquidos de uma fonte para multiplos alvos.
block.plated-conduit.description = Move líquidos na mesma velocidade que canos de pulso, mas possui mais blindagem. Não aceita fluidos dos lados de nada além de outros canos.\nVaza menos.
block.liquid-router.description = Aceita liquidos de uma direcão e os joga em 3 direções igualmente. Pode armazenar uma certa quantidade de liquido. Útil para espalhar líquidos de uma fonte para múltiplos alvos.
block.liquid-tank.description = Armazena grandes quantidades de liquido. Use quando a demanda de materiais não for constante ou para guardar itens para resfriar blocos vitais.
block.liquid-junction.description = Age como uma ponte para dois canos que se cruzam. Útil em situações em que há dois cano carregando liquidos diferentes até localizações diferentes.
block.bridge-conduit.description = Bloco de transporte de liquidos avancados. Possibilita o transporte de liquido sobre 3 blocos acima de construções ou paredes
@ -1106,15 +1166,16 @@ block.phase-conduit.description = Bloco avancado de transporte de liquido. Usa e
block.power-node.description = Transmite energia para células conectadas. A célula vai receber energia ou alimentar qualquer bloco adjacente.
block.power-node-large.description = Uma célula de energia avançada com maior alcance e mais conexões.
block.surge-tower.description = Uma célula de energia com um extremo alcance mas com menos conexões disponíveis.
block.diode.description = A energia de baterias pode fluir através desse bloco em apenas uma direção, mas apenas se o outro lado possuir menos energia armazenada.
block.battery.description = Armazena energia em tempos de energia excedente. Libera energia em tempos de déficit.
block.battery-large.description = Guarda muito mais energia que uma beteria comum.
block.combustion-generator.description = Gera energia usando combustível ou petróleo.
block.thermal-generator.description = Gera uma quantidade grande de energia usando lava.
block.turbine-generator.description = Mais eficiente que o gerador de Combustão, Mas requer agua adicional.
block.differential-generator.description = Gera grandes quantidades de Energia. Utiliza a diferença de temperatura entre o Fluído Criogênico e a Piratita.
block.battery-large.description = Guarda muito mais energia que uma bateria comum.
block.combustion-generator.description = Gera energia queimando materiais inflamáveis, como carvão.
block.thermal-generator.description = Gera energia quando colocado em lugares quentes.
block.turbine-generator.description = Mais eficiente que o gerador à combustão, mas requer água adicional para a geração de vapor.
block.differential-generator.description = Gera grandes quantidades de energia. Utiliza a diferença de temperatura entre o Fluido Criogênico e a Piratita.
block.rtg-generator.description = Um Gerador termoelétrico de radioisótopos que não precisa de refriamento mas dá muito menos energia que o reator de tório.
block.solar-panel.description = Gera pequenas quantidades de energia do sol.
block.solar-panel-large.description = Dá muito mais energia que o painel solar comum, Mas sua produção é mais cara.
block.solar-panel-large.description = Uma versão significantemente mais eficiente que o painel solar padrão.
block.thorium-reactor.description = Gera altas quantidades de energia do torio radioativo. Requer resfriamento constante. Vai explodir violentamente Se resfriamento insuficiente for fornecido.
block.impact-reactor.description = An advanced generator, capable of creating massive amounts of power at peak efficiency. Requires a significant power input to kickstart the process.
block.mechanical-drill.description = Uma broca barata. Quando colocado em blocos apropriados, retira itens em um ritmo lento e indefinitavamente.
@ -1123,9 +1184,9 @@ block.laser-drill.description = Possibilita a mineração ainda mais rapida usan
block.blast-drill.description = A melhor mineradora. Requer muita energia.
block.water-extractor.description = Extrai água do chão. Use quando não tive nenhum lago proximo
block.cultivator.description = Cultiva o solo com agua para pegar bio materia.
block.oil-extractor.description = Usa altas quantidades de energia Para extrair oleo da areia. Use quando não tiver fontes de oleo por perto
block.core-shard.description = Primeira iteração da cápsula do núcleo. Uma vez destruida, o controle da região inteira é perdido. Não deixe isso acontecer.
block.core-foundation.description = A segunda versão do núcleo. Melhor armadura. Guarda mais recursos.
block.water-extractor.description = Extrai água subterrânea. Usado em locais sem água superficial disponível.
block.cultivator.description = Cultiva pequenas concentrações de esporos na atmosfera em cápsulas prontas.
block.oil-extractor.description = Usa altas quantidades de energia para extrair petróleo da areia. Use quando não tiver fontes de petróleo por perto.
block.core-nucleus.description = A terceira e ultima iteração do núcleo. Extremamente bem armadurada. Guarda quantidades massivas de recursos.
block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container.
block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container.

View file

@ -592,6 +592,8 @@ unit.persecond = /сек
unit.timesspeed = x скорость
unit.percent = %
unit.items = предметов
unit.thousands = тыс
unit.millions = мил
category.general = Основные
category.power = Энергия
category.liquids = Жидкости

View file

@ -102,6 +102,7 @@ mod.enabled = [lightgray]Увімкнено
mod.disabled = [scarlet]Вимкнено
mod.disable = Вимкнути
mod.delete.error = Неможливо видалити модифікацію. Файл, можливо, використовується.
mod.requiresversion = [scarlet]Необхідна версія гри: [accent]{0}
mod.missingdependencies = [scarlet]Відсутні залежності: {0}
mod.nowdisabled = [scarlet]Модифікації '{0}' не вистачає залежностей:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буду автоматично вимкнена.
mod.enable = Увімкнути
@ -489,6 +490,7 @@ settings.language = Мова
settings.data = Ігрові дані
settings.reset = Скинути за замовчуванням
settings.rebind = Зміна
settings.resetKey = Скинути
settings.controls = Керування
settings.game = Гра
settings.sound = Звук
@ -571,6 +573,8 @@ unit.blocks = блоки
unit.powersecond = одиниць енергії за секунду
unit.liquidsecond = одиниць рідини за секунду
unit.itemssecond = предметів за секунду
unit.thousands = тис
unit.millions = млн
unit.liquidunits = одиниць рідини
unit.powerunits = одиниць енергії
unit.degrees = град.
@ -625,7 +629,7 @@ setting.fps.name = Показувати FPS і затримку до серве
setting.blockselectkeys.name = Показувати клавіші вибору блока
setting.vsync.name = Вертикальна синхронізація
setting.pixelate.name = Пікселізація[lightgray] (вимикає анімації)
setting.minimap.name = Показувати міні-мапу
setting.minimap.name = Показувати мінімапу
setting.position.name = Показувати координати гравця
setting.musicvol.name = Гучність музики
setting.ambientvol.name = Звуки навколишнього середовища
@ -651,11 +655,12 @@ category.multiplayer.name = Мережева гра
command.attack = Атакувати
command.rally = Точка збору
command.retreat = Відступити
placement.blockselectkeys = \n[lightgray]Клавіша: [{0},
placement.blockselectkeys = \n[lightgray]Ключ: [{0},
keybind.clear_building.name = Очистити план будування
keybind.press = Натисніть клавішу…
keybind.press.axis = Натисніть клавішу…
keybind.screenshot.name = Зняток мапи
keybind.toggle_power_lines.name = Показувати лазери енергопостачання
keybind.move_x.name = Рух по осі X
keybind.move_y.name = Рух по осі Y
keybind.mouse_move.name = Слідкувати за мишею
@ -757,7 +762,7 @@ item.graphite.name = Графіт
item.titanium.name = Титан
item.thorium.name = Торій
item.silicon.name = Кремній
item.plastanium.name = Пластиній
item.plastanium.name = Пластаній
item.phase-fabric.name = Фазова тканина
item.surge-alloy.name = Кінетичний сплав
item.spore-pod.name = Споровий стручок
@ -791,6 +796,7 @@ mech.trident-ship.name = Тризубець
mech.trident-ship.weapon = Бомби
mech.glaive-ship.name = Спис
mech.glaive-ship.weapon = Вогняний кулемет
item.corestorable = [lightgray]Зберігання в ядрі: {0}
item.explosiveness = [lightgray]Вибухонебезпечність: {0}%
item.flammability = [lightgray]Вогненебезпечність: {0}%
item.radioactivity = [lightgray]Радіоактивність: {0}%
@ -1026,8 +1032,8 @@ unit.reaper.name = Жнець
tutorial.next = [lightgray]<Натисніть для продовження>
tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочніть з[accent] видобування міді[]. Використовуйте [[WASD] для руху.\n[accent] Утримуйте [[Ctrl] під час прокрутки миші[] для приближення і віддалення. Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть екраном, щоб рухатися.\n[accent] Зведіть або розведіть 2 пальця [] для приближення і віддалення відповідно.\nз[accent] видобування міді.[] Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
tutorial.drill = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку свердла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\nВи також можете вибрати бур, натиснувши [accent][[2][], а потім натиснути [accent][[1][] швидко, незалежно від того, яка вкладка відкрита.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent] галочку[] нижче, щоб підтвердити розміщення to confirm your selection.\nPress the[accent] X button[] to cancel placement.
tutorial.drill = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку свердла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\nВи також можете вибрати бур, натиснувши [accent][[2][], а потім натиснути [accent][[1][] швидко, незалежно від того, яка вкладка відкрита.\n[accent]Натисніть ПКМ[], щоб зупинити будування.tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent] галочку[] нижче, щоб підтвердити розміщення .\nНатисніть[accent] клавішу X[], щоб скасувати розміщення.
tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent] галочку[] нижче, щоб підтвердити розміщення.\nPress the[accent] X button[] to cancel placement.
tutorial.blockinfo = Кожен блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисність на кнопку «?», коли Ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура прямо зараз.[]
tutorial.conveyor = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent]Утримуйте миш, щоб розмістити у лінію.[]\nУтримуйте[accent] CTRL[] під час вибору лінії для розміщення по діагоналі.\n\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
tutorial.conveyor.mobile = [accent]Конвеєри[] використовується для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви вибрали.\nВикористовуйте колесо прокрутки, щоб обертати блоки перед їх розміщенням\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
@ -1068,7 +1074,7 @@ mech.alpha-mech.description = Стандартний керований мех.
mech.delta-mech.description = Швидкий, легкоброньований мех, зроблений для тактики «атакуй і біжи». Наносить мало шкоди будівлям, але може дуже швидко вбити великі групи підрозділів противника своєю дуговою блискавкою.
mech.tau-mech.description = Мех підтримки. Ремонтує союзні блоки, стріляючи по них. Може зцілювати союзників у радіусі його ремонтної здатності.
mech.omega-mech.description = Об’ємний і добре броньований мех, зроблений для фронтових штурмів. Його броня може перекрити до 90% пошкоджень, що надходять.
mech.dart-ship.description = Стандартний корабель управління. Розумно швидкий і легкий, але має мало наступальних можливостей і низьку швидкість видобутку.
mech.dart-ship.description = Стандартний корабель управління. Швидко видобуває ресурси. Достатньо швидкий і легкий, але має мало наступальних можливостей.
mech.javelin-ship.description = Корабель для стратегії атакуй та біжи». Хоча спочатку він повільний, потім вже може розганятися до великих швидкостей і літати над ворожими форпостами, завдаючи великої кількості шкоди своїми блискавками та ракетами.
mech.trident-ship.description = Важкий бомбардувальник, побудований для будування та знищення ворожих укріплень. Дуже добре броньований.
mech.glaive-ship.description = Великий, добре броньований бойовий корабель. Оснащений запальним ретранслятором. Високо маневрений.
@ -1088,7 +1094,7 @@ block.graphite-press.description = Стискає шматки вугілля в
block.multi-press.description = Модернізована версія графітового преса. Використовує воду та енергію для швидкої та ефективної переробки вугілля.
block.silicon-smelter.description = Змішує пісок з чистим вугіллям. Виробляє кремній.
block.kiln.description = Виплавляє пісок та свинець у сполуку, відому як метаскло. Для запуску потрібна невелика кількість енергії.
block.plastanium-compressor.description = Виробляє пластиній з нафти і титану.
block.plastanium-compressor.description = Виробляє пластаній з нафти і титану.
block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для функціонування потрібна велика кількість енергії.
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану титану в кріогенну рідину. Основне використання у торієвому реактору.

View file

@ -10,6 +10,7 @@ link.dev-builds.description = 不稳定的开发版本
link.trello.description = 官方列于 Trello 的功能计划表
link.itch.io.description = itch.io 上的 PC 版下载
link.google-play.description = Google Play 页面
link.f-droid.description = F-Droid 页面
link.wiki.description = Mindustry 官方 Wiki
linkfail = 打开链接失败!\n网址已复制到您的剪贴板。
screenshot = 屏幕截图已保存到 {0}
@ -46,20 +47,20 @@ schematic.info = {0}x{1}{2} 个方块
stat.wave = 防守波数:[accent]{0}
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
stat.built = 建造建筑:[accent]{0}
stat.destroyed = 毁建筑:[accent]{0}
stat.destroyed = 毁建筑:[accent]{0}
stat.deconstructed = 拆除建筑:[accent]{0}
stat.delivered = 资源:
stat.delivered = 运资源:
stat.rank = 最终评级:[accent]{0}
launcheditems = [accent]装运的资源
launchinfo = [unlaunched][[LAUNCH] 你的核心将获得用蓝色标识出的资源。
launchinfo = [unlaunched]发射你的核心后,你将获得用蓝字标识的资源。
map.delete = 确定要删除“[accent]{0}[]”地图吗?
level.highscore = 最高分:[accent]{0}
level.select = 选择关卡
level.mode = 游戏模式:
showagain = 下次不再显示
coreattack = < 核心正在受到攻击!>
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n即将被摧毁
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n摧毁在即
database = 核心数据库
savegame = 保存游戏
loadgame = 载入游戏
@ -98,6 +99,7 @@ mod.enabled = [lightgray]已启用
mod.disabled = [scarlet]已禁用
mod.disable = 禁用
mod.delete.error = 无法删除模组。可能文件被占用。
mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0}
mod.missingdependencies = [scarlet]缺少依赖条件:{0}
mod.nowdisabled = [scarlet]“{0}”模组缺少依赖条件:[accent] {1}\n[lightgray]需要先下载上述模组。\n此模组现在将自动禁用。
mod.enable = 启用
@ -115,7 +117,7 @@ about.button = 关于
name = 名字:
noname = 先取一个[accent]玩家名[]。
filename = 文件名:
unlocked = 新方块已解锁!
unlocked = 解锁了新内容
completed = [accent]己研究
techtree = 科技树
research.list = [lightgray]研究:
@ -263,8 +265,8 @@ builtin = 内建的
map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法撤销!
map.random = [accent]随机地图
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[ROYAL]己方[]的核心。
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[ROYAL]敌[]的核心。
map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[SCARLET]敌[]的核心。
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[ROYAL]敌[]的核心。
map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[SCARLET]敌[]的核心。
map.invalid = 地图载入错误:地图文件可能已经损坏。
workshop.update = 更新地图
workshop.error = 获取创意工坊详细信息时出错:{0}
@ -278,6 +280,7 @@ publishing = [accent]正在发布...
publish.confirm = 确定发布?\n\n[lightgray]请确认您已经同意创意工坊的最终用户许可协议,否则您的项目不会展示!
publish.error = 发布项目出错:{0}
steam.error = 初始化 Steam 服务失败。\n错误{0}
editor.brush = 笔刷
editor.openin = 在编辑器中打开
editor.oregen = 矿石的生成
@ -440,7 +443,7 @@ addall = 添加所有
configure.locked = [lightgray]完成{0}\n解锁装运配置。
configure.invalid = 数量必须是0到{0}之间的数字。
zone.unlocked = [lightgray]{0} 已解锁。
zone.requirement.complete = 完成{0}。\n达成解锁{1}的需求。
zone.requirement.complete = 完成{0}。\n已达成解锁{1}的要求。
zone.config.unlocked = 资源装运已解锁:[lightgray]\n{0}
zone.resources = 地图中的资源:
zone.objective = [lightgray]目标:[accent]{0}
@ -448,6 +451,7 @@ zone.objective.survival = 生存
zone.objective.attack = 摧毁敌方核心
add = 添加…
boss.health = BOSS 生命值
connectfail = [crimson]服务器连接失败:[accent]{0}
error.unreachable = 无法访问服务器。\n确定输对地址了吗
error.invalidaddress = 地址无效。
@ -458,6 +462,7 @@ error.mapnotfound = 找不到地图文件!
error.io = 网络 I/O 错误。
error.any = 未知网络错误。
error.bloom = 未能初始化特效。\n您的设备可能不支持。
zone.groundZero.name = 零号地区
zone.desertWastes.name = 荒芜沙漠
zone.craters.name = 陨石带
@ -467,22 +472,22 @@ zone.stainedMountains.name = 绵延群山
zone.desolateRift.name = 荒芜裂谷
zone.nuclearComplex.name = 核裂阵
zone.overgrowth.name = 增生区
zone.tarFields.name = 油田
zone.tarFields.name = 油田
zone.saltFlats.name = 盐碱荒滩
zone.impact0078.name = 0078号冲击
zone.crags.name = 悬崖
zone.fungalPass.name = 真菌通道
zone.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧
zone.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造燃烧发电机并学会使用修理者。
zone.desertWastes.description = 这里的废料规模庞大、难以预测,并与废弃的结构交织在一起。\n此地区有煤矿存在燃烧它以获取动力或合成石墨。\n\n[lightgray]无法保证此着陆位置。
zone.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造火力发电机并学会使用修理者。
zone.desertWastes.description = 这里的废料规模庞大、难以预测,并与废弃的结构交织在一起。\n此地区有煤矿存在点燃它以获取动力,或者将其合成为石墨。\n\n[lightgray]无法保证此着陆位置。
zone.saltFlats.description = 在沙漠的郊区有盐滩。在这个地方几乎找不到资源。\n\n敌人在这里建立了一个资源存储区。摧毁他们的核心。不要留下任何东西。
zone.craters.description = 水在这个火山口积聚,这是旧战争的遗迹。夺下该区域。收集沙子来冶炼玻璃。用水泵抽水来加速炮塔和钻头。
zone.ruinousShores.description = 穿过荒地,就是海岸线。这个地方曾经建造了一个海岸防御线。但现在所剩无几,只有最基本的防御结构仍然毫发无损,其他一切都被摧毁了。\n继续向外扩展。继续研究科技。
zone.stainedMountains.description = 在更远的内陆地区是山脉,但这里没有被孢子污染。\n这一地区分布着丰富的钛,学习如何使用它。\n\n这里敌人的存在更大。不要给他们时间派出最强的部队。
zone.stainedMountains.description = 在更远的内陆地区是山脉,但这里没有被孢子污染。\n这一地区分布着丰富的钛,学习如何使用它。\n\n这里的敌人势力更大,不要给他们时间派出最强的部队。
zone.overgrowth.description = 这个地区靠近孢子的来源,因此生长过度。\n敌人在这里建立了一个前哨站。建造尖刀单位来摧毁它并找回丢失的东西。
zone.tarFields.description = 位于山脉和沙漠之间的产油区的郊区是少数几个有可用石油储量的地区之一。\n尽管被废弃但附近仍有一些危险的敌军。不要低估他们。\n\n[lightgray]如果可能,研究石油加工技术。
zone.desolateRift.description = 非常危险的区域。这儿资源丰富但空间小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。
zone.tarFields.description = 产油区边缘,位于山脉和沙漠之间。它少数几个有石油储量的地区之一。\n尽管被废弃这附近仍有一些危险的敌方单位。不要低估他们。\n\n[lightgray]如果可能,研究石油加工技术。
zone.desolateRift.description = 非常危险的区域。这儿资源丰富但空间小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。
zone.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[lightgray]研究钍及其多种用途。\n\n敌人在这里大量存在不断消灭入侵者。
zone.fungalPass.description = 介于高山和低矮孢子丛生的土地之间的过渡地带。这里有一个小型的敌方侦察基地。\n侦察它。\n使用尖刀和爬行者单位来摧毁两个核心。
zone.impact0078.description = <描述空缺>
@ -523,7 +528,7 @@ blocks.size = 尺寸
blocks.liquidcapacity = 液体容量
blocks.powerrange = 能量范围
blocks.powerconnections = 最多连接
blocks.poweruse = 能量使用
blocks.poweruse = 使用能量
blocks.powerdamage = 功率/损伤
blocks.itemcapacity = 物品容量
blocks.basepowergeneration = 基础能源输出
@ -542,6 +547,7 @@ blocks.inaccuracy = 误差
blocks.shots = 发射数
blocks.reload = 每秒发射数
blocks.ammo = 弹药
bar.drilltierreq = 需要更好的钻头
bar.drillspeed = 挖掘速度:{0}/秒
bar.pumpspeed = 泵压速度:{0}/秒
@ -550,7 +556,7 @@ bar.powerbalance = 能量:{0}/秒
bar.powerstored = 储能:{0}/{1}
bar.poweramount = 能量:{0}
bar.poweroutput = 能量输出:{0}
bar.items = {0}
bar.items = {0}
bar.capacity = 容量:{0}
bar.liquid = 液体
bar.heat = 热量
@ -559,6 +565,7 @@ bar.progress = 制造进度
bar.spawned = 单位数量:{0}/{1}
bar.input = 输入
bar.output = 输出
bullet.damage = [stat]{0}[lightgray] 伤害
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
bullet.incendiary = [stat] 燃烧
@ -570,16 +577,17 @@ bullet.freezing = [stat] 冰冻
bullet.tarred = [stat] 减速
bullet.multiplier = [stat]{0}[lightgray]x 弹药数量
bullet.reload = [stat]{0}[lightgray]x 装弹
unit.blocks = 方块
unit.powersecond = 能量单位/秒
unit.liquidsecond = 液体单位/秒
unit.powersecond = 能量/秒
unit.liquidsecond = 液体/秒
unit.itemssecond = 物品/秒
unit.liquidunits = 液体单位
unit.powerunits = 能量单位
unit.liquidunits = 液体
unit.powerunits = 能量
unit.degrees =
unit.seconds =
unit.persecond = /秒
unit.timesspeed = x 速度
unit.timesspeed = 速度
unit.percent = %
unit.items = 物品
category.general = 普通
@ -620,9 +628,12 @@ setting.conveyorpathfinding.name = 传送带放置寻路
setting.sensitivity.name = 控制器灵敏度
setting.saveinterval.name = 自动保存间隔
setting.seconds = {0} 秒
setting.blockselecttimeout.name = 块选择超时
setting.milliseconds = {0} 毫秒
setting.fullscreen.name = 全屏
setting.borderlesswindow.name = 无边框窗口[lightgray](可能需要重启)
setting.fps.name = 显示 FPS
setting.fps.name = 显示 FPS 和网络延迟
setting.blockselectkeys.name = 显示块选择按键
setting.vsync.name = 垂直同步
setting.pixelate.name = 像素画面 [lightgray](禁用动画)
setting.minimap.name = 显示小地图
@ -640,7 +651,7 @@ setting.lasersopacity.name = 能量激光不透明度
setting.playerchat.name = 显示玩家聊天气泡
public.confirm = 确定使您的游戏公开可见?\n[accent]其他人将可以加入到您的游戏。\n[lightgray]您之后可以在 设置->游戏->游戏公开可见 更改。
public.beta = 请注意,测试版的游戏不能公开可见。
uiscale.reset = UI缩放比例已更改。\n按下“确定”来执行缩放比例的更改。\n[accent]{0}[]秒后[scarlet]将自动退出并还原设置。
uiscale.reset = UI 缩放比例已更改。\n按下“确定”来执行缩放比例的更改。\n[accent]{0}[]秒后[scarlet]将自动退出并还原设置。
uiscale.cancel = 取消并退出
setting.bloom.name = 特效
keybind.title = 重新绑定按键
@ -651,17 +662,36 @@ category.multiplayer.name = 多人
command.attack = 攻击
command.rally = 团体
command.retreat = 撤退
placement.blockselectkeys = \n[lightgray]按键:[{0},
keybind.clear_building.name = 清除建筑
keybind.press = 请按一个键…
keybind.press.axis = 请按一个轴或键…
keybind.screenshot.name = 地图截图
keybind.toggle_power_lines.name = 显隐能量标识线
keybind.move_x.name = 水平移动
keybind.move_y.name = 竖直移动
keybind.mouse_move.name = 跟随鼠标
keybind.dash.name = 冲刺
keybind.schematic_select.name = 选择区域
keybind.schematic_menu.name = 蓝图目录
keybind.schematic_flip_x.name = 水平翻转
keybind.schematic_flip_y.name = 竖直翻转
keybind.category_prev.name = 上一分类
keybind.category_next.name = 下一分类
keybind.block_select_left.name = 块选择向左
keybind.block_select_right.name = 块选择向右
keybind.block_select_up.name = 块选择向上
keybind.block_select_down.name = 块选择向下
keybind.block_select_01.name = 分类/块选择 1
keybind.block_select_02.name = 分类/块选择 2
keybind.block_select_03.name = 分类/块选择 3
keybind.block_select_04.name = 分类/块选择 4
keybind.block_select_05.name = 分类/块选择 5
keybind.block_select_06.name = 分类/块选择 6
keybind.block_select_07.name = 分类/块选择 7
keybind.block_select_08.name = 分类/块选择 8
keybind.block_select_09.name = 分类/块选择 9
keybind.block_select_10.name = 分类/块选择 10
keybind.fullscreen.name = 切换全屏
keybind.select.name = 选择/射击
keybind.diagonal_placement.name = 自动铺设
@ -675,7 +705,6 @@ keybind.menu.name = 菜单
keybind.pause.name = 暂停
keybind.pause_building.name = 暂停/继续建造
keybind.minimap.name = 小地图
keybind.dash.name = 冲刺
keybind.chat.name = 聊天
keybind.player_list.name = 玩家列表
keybind.console.name = 控制台
@ -689,12 +718,12 @@ keybind.drop_unit.name = 松开单位
keybind.zoom_minimap.name = 小地图缩放
mode.help.title = 模式说明
mode.survival.name = 生存
mode.survival.description = 正常的游戏模式,有限的资源自动的波次。\n[gray]需要击退周期性出现的敌人。
mode.survival.description = 正常的游戏模式,有限的资源自动的波次。\n[gray]需要击退周期性出现的敌人。
mode.sandbox.name = 沙盒
mode.sandbox.description = 无限的资源,不会自动生成敌人。
mode.editor.name = 编辑器
mode.pvp.name = PvP
mode.pvp.description = 本地玩家对战。\n[gray]需要地图中有不同队伍(颜色)的核心。
mode.pvp.description = 本地玩家对战。\n[gray]需要地图中有不同队伍(颜色)的核心。
mode.attack.name = 攻击
mode.attack.description = 没有波次,但需要摧毁敌人的基地。\n[gray]需要地图中有红色的核心。
mode.custom = 自定义模式
@ -717,7 +746,7 @@ rules.wavespacing = 波次间隔时间:[lightgray](秒)
rules.buildcostmultiplier = 建设花费倍数
rules.buildspeedmultiplier = 建设时间倍数
rules.waitForWaveToEnd = 等待敌人时间
rules.dropzoneradius = 敌人出生点毁灭大小:[lightgray](格)
rules.dropzoneradius = 敌人出生点禁区大小:[lightgray](格)
rules.respawns = 每波最大重生次数
rules.limitedRespawns = 重生限制次数
rules.title.waves = 波次
@ -726,6 +755,10 @@ rules.title.resourcesbuilding = 资源和建造
rules.title.player = 玩家
rules.title.enemy = 敌人
rules.title.unit = 单位
rules.title.experimental = 实验性
rules.lighting = 光照
rules.ambientlight = 环境光
content.item.name = 物品
content.liquid.name = 液体
content.unit.name = 部队
@ -772,16 +805,16 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = 炸弹
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = 火焰机枪
item.explosiveness = [lightgray]爆炸性:{0}
item.flammability = [lightgray]易燃性:{0}
item.radioactivity = [lightgray]放射性:{0}
item.explosiveness = [lightgray]爆炸性:{0}%
item.flammability = [lightgray]易燃性:{0}%
item.radioactivity = [lightgray]放射性:{0}%
unit.health = [lightgray]生命值:{0}
unit.speed = [lightgray]速度:{0}
mech.weapon = [lightgray]武器:{0}
mech.health = [lightgray]生命值:{0}
mech.itemcapacity = [lightgray]物品容量:{0}
mech.minespeed = [lightgray]采矿速度:{0}
mech.minepower = [lightgray]采矿力量{0}
mech.minespeed = [lightgray]采矿速度:{0}%
mech.minepower = [lightgray]采矿强度{0}
mech.ability = [lightgray]能力:{0}
mech.buildspeed = [lightgray]建造速度:{0}%
liquid.heatcapacity = [lightgray]热容量:{0}
@ -810,8 +843,8 @@ block.scrap-wall.name = 废墙
block.scrap-wall-large.name = 大型废墙
block.scrap-wall-huge.name = 巨型废墙
block.scrap-wall-gigantic.name = 超巨型废墙
block.thruster.name = 助力器
block.kiln.name =
block.thruster.name = 推进器残骸
block.kiln.name =
block.graphite-press.name = 石墨压缩机
block.multi-press.name = 多重压缩机
block.constructing = {0}\n[lightgray](建造中)
@ -873,20 +906,21 @@ block.door.name = 门
block.door-large.name = 大门
block.duo.name = 双管炮
block.scorch.name = 火焰炮
block.scatter.name = 分裂
block.scatter.name = 散射
block.hail.name = 冰雹炮
block.lancer.name = 蓝瑟炮
block.conveyor.name = 传送带
block.titanium-conveyor.name = 钛传送带
block.armored-conveyor.name = 装甲传送带
block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边的输入。
block.junction.name = 连接桥
block.junction.name = 交叉器
block.router.name = 路由器
block.distributor.name = 分配器
block.sorter.name = 分类器
block.inverted-sorter.name = 反向分类器
block.message.name = 信息板
block.illuminator.name = Illuminator
block.illuminator.name = 照明器
block.illuminator.description = 小型、紧凑、可配置的光源。需要能量运行。
block.overflow-gate.name = 溢流门
block.silicon-smelter.name = 硅冶炼厂
block.phase-weaver.name = 相织布编织器
@ -899,13 +933,13 @@ block.separator.name = 分离机
block.coal-centrifuge.name = 煤炭离心机
block.power-node.name = 能量节点
block.power-node-large.name = 大型能量节点
block.surge-tower.name = 巨浪
block.diode.name = Battery Diode
block.surge-tower.name = 大型能量
block.diode.name = 二极管
block.battery.name = 电池
block.battery-large.name = 大型电池
block.combustion-generator.name = 燃烧发电机
block.combustion-generator.name = 火力发电机
block.turbine-generator.name = 涡轮发电机
block.differential-generator.name = 发电机
block.differential-generator.name = 差发电机
block.impact-reactor.name = 冲击反应堆
block.mechanical-drill.name = 机械钻头
block.pneumatic-drill.name = 气动钻头
@ -921,30 +955,30 @@ block.omega-mech-pad.name = Omega 机甲平台
block.tau-mech-pad.name = Tau 机甲平台
block.conduit.name = 导管
block.mechanical-pump.name = 机械泵
block.item-source.name = 物品
block.item-source.name = 无限物品
block.item-void.name = 物品黑洞
block.liquid-source.name = 液体
block.liquid-source.name = 无限液体
block.power-void.name = 能源黑洞
block.power-source.name = 无限能源
block.unloader.name = 装卸器
block.vault.name = 仓库
block.wave.name = 波浪
block.wave.name = 波浪
block.swarmer.name = 蜂群
block.salvo.name = 射炮
block.ripple.name = 浪涌
block.salvo.name = 射炮
block.ripple.name = 浪涌
block.phase-conveyor.name = 相织布传送带桥
block.bridge-conveyor.name = 传送带桥
block.plastanium-compressor.name = 塑钢压缩机
block.pyratite-mixer.name = 硫混合器
block.blast-mixer.name = 爆炸混合器
block.solar-panel.name = 太阳能电池
block.solar-panel-large.name = 大型太阳能电池
block.solar-panel.name = 太阳能
block.solar-panel-large.name = 大型太阳能
block.oil-extractor.name = 石油钻井
block.command-center.name = 指挥中心
block.draug-factory.name = 德鲁格采矿机工厂
block.spirit-factory.name = 幽灵修理机工厂
block.phantom-factory.name = 鬼怪建造机工厂
block.wraith-factory.name = 幻影战机工厂
block.phantom-factory.name = 幻影建造机工厂
block.wraith-factory.name = 幽灵战机工厂
block.ghoul-factory.name = 食尸鬼轰炸机工厂
block.dagger-factory.name = 尖刀机甲工厂
block.crawler-factory.name = 爬行者机甲工厂
@ -953,13 +987,13 @@ block.fortress-factory.name = 堡垒机甲工厂
block.revenant-factory.name = 亡魂战机工厂
block.repair-point.name = 维修点
block.pulse-conduit.name = 脉冲导管
block.plated-conduit.name = Plated Conduit
block.plated-conduit.name = 电镀导管
block.phase-conduit.name = 相织布导管桥
block.liquid-router.name = 液体路由器
block.liquid-tank.name = 储液罐
block.liquid-junction.name = 液体连接桥
block.liquid-junction.name = 液体交叉器
block.bridge-conduit.name = 导管桥
block.rotary-pump.name =
block.rotary-pump.name =
block.thorium-reactor.name = 钍反应堆
block.mass-driver.name = 质量驱动器
block.blast-drill.name = 爆破钻头
@ -971,14 +1005,14 @@ block.mend-projector.name = 修理投影器
block.surge-wall.name = 波动墙
block.surge-wall-large.name = 大型波动墙
block.cyclone.name = 气旋炮
block.fuse.name = 融合
block.fuse.name = 雷光
block.shock-mine.name = 脉冲地雷
block.overdrive-projector.name = 超速投影器
block.force-projector.name = 力墙投影器
block.arc.name = 电弧
block.arc.name = 电弧
block.rtg-generator.name = RTG 发电机
block.spectre.name = 幽灵
block.meltdown.name = 熔毁
block.spectre.name = 幽灵
block.meltdown.name = 熔毁
block.container.name = 容器
block.launch-pad.name = 发射台
block.launch-pad-large.name = 大型发射台
@ -991,12 +1025,12 @@ team.green.name = 绿
team.purple.name =
unit.spirit.name = 幽灵修理机
unit.draug.name = 德鲁格采矿机
unit.phantom.name = 鬼怪建造机
unit.phantom.name = 幻影建造机
unit.dagger.name = 尖刀
unit.crawler.name = 爬行者
unit.titan.name = 泰坦
unit.ghoul.name = 食尸鬼轰炸机
unit.wraith.name = 幻影战机
unit.wraith.name = 幽灵战机
unit.fortress.name = 堡垒
unit.revenant.name = 亡魂
unit.eruptor.name = 暴君
@ -1005,10 +1039,10 @@ unit.eradicator.name = 根除者
unit.lich.name = 尸鬼
unit.reaper.name = 死神
tutorial.next = [lightgray]<点击以继续>
tutorial.intro = 你进入了[scarlet] Mindustry 教程[]。\n[accent]采集铜矿[]以开始。点击附近的一处铜矿。\n\n[accent]{0}/{1} 铜
tutorial.intro.mobile = 您已进入[scarlet] Mindustry 教程[]。\n在屏幕上滑动来继续。\n[accent]双指捏合 [] 来缩小和放大。\n让我们从[accent]采集铜矿[]开始。先移动到旁边,然后点按矿脉附近散落的矿物。\n\n[accent]铜 {0}/{1}
tutorial.drill = 手动采矿效率不。\n[accent]钻头[]可以自动采矿。\n让我们在在铜矿上放一个。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n单击将其放置在铜矿上。\n[accent]右键单击[]来停止。
tutorial.drill.mobile = 手动采矿效率不。\n[accent]钻头[]可以自动采矿。\n点右下角的钻头菜单。\n选择[accent]机械钻头[]。\n点一下将其放在铜矿上点[accent]对号[]来确定。\n点[accent]叉号[]来取消。
tutorial.intro = 您已进入[scarlet] Mindustry 教程[]。[]\n使用[accent][[WASD][]键移动主角和视角。\n[accent]按住[[Ctrl]并转动鼠标滚轮[]缩放视野。\n让我们从[accent]采集铜矿[]开始。先移动到铜矿旁边,然后点按矿脉附近散落的矿物。\n\n[accent]{0}/{1} 铜
tutorial.intro.mobile = 您已进入[scarlet] Mindustry 教程[]。\n在屏幕上滑动来继续。\n[accent]双指捏合[] 来缩小和放大。\n让我们从[accent]采集铜矿[]开始。先移动到铜矿旁边,然后点按矿脉附近散落的矿物。\n\n[accent]铜 {0}/{1}
tutorial.drill = 手动采矿效率不。\n[accent]钻头[]可以自动采矿。\n让我们在在铜矿上放一个。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n单击将其放置在铜矿上。\n[accent]右键单击[]来停止。
tutorial.drill.mobile = 手动采矿效率不。\n[accent]钻头[]可以自动采矿。\n点右下角的钻头菜单。\n选择[accent]机械钻头[]。\n点一下将其放在铜矿上点[accent]对号[]来确定。\n点[accent]叉号[]来取消。
tutorial.blockinfo = 每种方块都有其独特的数据。每个钻头只能开采部分矿石。\n若要查看块的信息和统计信息[accent]在菜单中点击问号。[]\n\n[accent]现在查看机械钻头的数据吧。[]
tutorial.conveyor = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。
tutorial.conveyor.mobile = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。\n[accent]长按数秒[]并向一个方向拖动来直线放置。\n\n[accent]{0}/{1} 条传送带\n[accent]0/1 物品
@ -1024,158 +1058,158 @@ tutorial.withdraw = 有时,从方块中取出物品是必要的。\n[accent]
tutorial.deposit = 将物品从机甲拖向方块来放下物品。\n\n[accent]将铜放回核心[]。
tutorial.waves = [lightgray]敌人[]来了。\n\n保护核心防御两波攻击。造更多的炮塔。[accent]点击[]以射击。\n建造更多的炮塔和钻头并采更多的矿。
tutorial.waves.mobile = [lightgray]敌人[]来了。\n\n保护核心防御两波攻击。造更多的炮塔。你的机甲将对敌人自动开火。\n建造更多的炮塔和钻头并采更多的矿。
tutorial.launch = 特定波次中,你可以[accent]发射核心[][accent]携带核心中所有资源[]离开所有的建筑。\n资源可用来研究科技。\n\n[accent]点击发射按钮。
tutorial.launch = 进入特定波次后,你可以[accent]发射核心(起飞)[][accent]带走核心中的所有资源[]并抛下所有的建筑。\n装运的资源可用于研究科技。\n\n[accent]点击发射按钮。
item.copper.description = 一种有用的结构材料。在各种类型的方块中广泛使用。
item.lead.description = 一种基本的起始材料。广泛用于电子设备和液体运输
item.metaglass.description = 一种超级强硬的复合玻璃。通常用来传送和收藏液体
item.graphite.description = 一种用于弹药和电路绝缘的矿化碳
item.copper.description = 最基本的的结构材料。在各种类型的方块中被广泛使用。
item.lead.description = 一种基本的电力材料。广泛用于电子设备和液体输送模块
item.metaglass.description = 一种致密坚硬的复合玻璃。广泛用于液体输送和存储
item.graphite.description = 矿化碳,用于弹药和电路绝缘
item.sand.description = 一种常见的材料,广泛用于冶炼,包括制作合金和助熔剂。
item.coal.description = 一种常见并容易获得的燃料
item.coal.description = 植物的化石,常见且容易获得,常用作燃料或其他资源的生产
item.titanium.description = 一种罕见的超轻金属,被广泛运用于液体运输、钻头和飞机。
item.thorium.description = 一种致密的放射性金属,用作结构支撑和核燃料。
item.scrap.description = 一种废弃的建筑物及废弃单位的残骸,富含多种金属元素。
item.silicon.description = 一种非常有用的半导体,被用于太阳能电池板和很多复杂的电子设备。
item.plastanium.description = 一种轻质可延展的材料,用于高级的飞机和碎片弹药。
item.phase-fabric.description = 一种接近0重量的物质,用于先进的电子技术和自我修复技术。
item.surge-alloy.description = 一种具有独特电气性能的高级合金
item.spore-pod.description = 一种用于制造石油炸药及燃料的生物质。
item.blast-compound.description = 一种用于炸弹和炸药的挥发性混合物。虽然它可以作为燃料燃烧,但不建议这样做。
item.pyratite.description = 一种燃烧武器中使用的极易燃物质。
liquid.water.description = 最有用的液体。常用于冷却和废物处理。
liquid.slag.description = 各种不同类型的熔融金属混合在一起的液体。可以被分解成其组成矿物,或作为武器喷向敌方单位。
item.plastanium.description = 一种轻质可延展的材料,用于高级的飞机和碎片弹药。
item.phase-fabric.description = 一种近乎无重量的物质,用于先进的电子技术和自我修复技术。
item.surge-alloy.description = 一种先进的合金,具有独特电气性能。
item.spore-pod.description = 一种用于制造石油炸药及燃料的生物质。
item.blast-compound.description = 一种用于炸弹和炸药的挥发性混合物。虽然它可以作为燃料,但不建议这样做。
item.pyratite.description = 一种燃烧武器中使用的极易燃物质。
liquid.water.description = 最有用的液体。常用于冷却机器和废物处理。
liquid.slag.description = 各种不同类型的熔融金属混合在一起的液体。可以被分解成其矿物成分,或作为武器喷向敌方单位。
liquid.oil.description = 用于先进材料生产的液体。可以转换成煤作为燃料,或作为武器喷射和放火。
liquid.cryofluid.description = 一种由水和钛制成的惰性、无腐蚀性的液体。具有极高的热容量。广泛用作冷却剂。
mech.alpha-mech.description = 标准控制机甲。基于尖刀单位,具有升级的装甲和建筑能力。比 Dart 有更多的伤害输出。
mech.delta-mech.description = 一种快速轻便的机甲,一击即退。对结构造成的伤害很小,但可以用弧形闪电武器快速杀死大量敌方单位。
mech.delta-mech.description = 一种快速轻便的机甲,一击即退。对结构造成的伤害很小,但可以使用弧形闪电武器快速杀死大量敌方单位。
mech.tau-mech.description = 后勤机甲。治疗友军。可以熄灭火焰并治疗一定范围内的友军。
mech.omega-mech.description = 一种装甲厚重的机甲用于在前线攻击。它的护甲可以阻挡高达90%的伤害。
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度慢。
mech.javelin-ship.description = 一艘一击即退的攻击船。虽然最初很慢,但它可以加速到很快的速度,并飞过敌人的前哨,利用其闪电能力和导弹造成大量伤害。
mech.trident-ship.description = 为建造和摧毁敌人防御工事而建造的重型轰炸机。有相当好的装甲。
mech.glaive-ship.description = 一种大型,装甲厚重的武装直升机。配备燃烧机枪。有优秀的加速能力和最快的速度。
mech.glaive-ship.description = 一种大型的装甲厚重的武装直升机。配备火焰机枪。有优秀的加速能力和最快的速度。
unit.draug.description = 一种原始的采矿机。生产成本低,消耗品。在附近自动开采铜和铅。将开采的资源输送到最近的核心。
unit.spirit.description = 一种改进的德鲁格无人机,设计用于维修而不是采矿。自动修复该区域中任何损坏的块。
unit.phantom.description = 一种先进的无人机。跟随玩家并协助建造。
unit.dagger.description = 一种最基本的地面机甲。生产成本低。在蜂群中使用时很有用。
unit.dagger.description = 一种最基本的地面机甲。生产成本低。集群使用时比较有用。
unit.crawler.description = 一种地面装置,由一个框架和绑在上面的烈性炸药组成。不是特别耐用。与敌人接触后爆炸。
unit.titan.description = 一种先进的装甲地面部队。攻击地面和空中目标。配备两个微型灼烧级火焰喷射器。
unit.titan.description = 一种先进的地面装甲部队。攻击地面和空中目标。配备两个微型灼烧级火焰喷射器。
unit.fortress.description = 一种重型炮兵机甲。装备两门改进型冰雹炮,用于对敌军建筑物和部队进行远程攻击。
unit.eruptor.description = 一种用来拆除建筑物的重型机甲。在敌人的防御工事上发射矿渣,将它们熔化并点燃挥发物。
unit.wraith.description = 一种快速、一击即退的拦截器机甲。目标是发电机。
unit.ghoul.description = 一种地毯式轰炸机。通过敌人的结构进行攻击,并瞄准关键的基础设施。
unit.ghoul.description = 一种重型地毯式轰炸机。瞄准关键的基础设施来击溃敌人的基地
unit.revenant.description = 一种发射导弹的重型飞行机甲。
block.message.description = 储存一条信息。用于在盟军之间交流。
block.graphite-press.description = 把大块的煤压缩成纯石墨片
block.message.description = 储存一条消息。用于盟友间的交流。
block.graphite-press.description = 将煤块压缩成纯石墨片材料
block.multi-press.description = 石墨压缩机的升级版。利用水和电力快速高效地处理煤炭。
block.silicon-smelter.description = 用高纯度的焦炭来加工沙子以生产硅。
block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。
block.plastanium-compressor.description = 用石油和钛生产塑钢。
block.phase-weaver.description = 用放射性钍和大量沙子生产相织物。
block.alloy-smelter.description = 用钛,铅,硅和铜生产浪涌合金。
block.cryofluidmixer.description = 水和钛结合到低温流体中,冷却效率更高
block.blast-mixer.description = 用油将硫转化为不易燃但更具爆炸性的爆炸化合物。
block.pyratite-mixer.description = 将煤铅和沙子混合成高度易燃的硫。
block.alloy-smelter.description = 用钛、铅、硅和铜生产浪涌合金。
block.cryofluidmixer.description = 将水和细的钛粉混成冷却液。钍反应堆的必备之物
block.blast-mixer.description = 用油将硫转化为不易燃但更具爆炸性的爆炸化合物。
block.pyratite-mixer.description = 将煤铅和沙子混合成高度易燃的硫。
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔弹药。
block.separator.description = 从矿渣中提取有用的矿物。
block.spore-press.description = 压缩孢子荚得到石油
block.pulverizer.description = 将废料压碎成沙子。当缺少天然沙子时很有用
block.spore-press.description = 以极高压力压缩孢子荚合成油料
block.pulverizer.description = 将废料碾成沙
block.coal-centrifuge.description = 使石油凝固成煤块。
block.incinerator.description = 于除掉任何多余的物品或液体。
block.incinerator.description = 来接收并除掉多余的物品或液体。
block.power-void.description = 消耗输入的所有能量。仅限沙盒。
block.power-source.description = 无限输出能量。仅限沙盒。
block.item-source.description = 无限输出物品。仅限沙盒。
block.item-void.description = 在不使用能量的情况下销毁任何进入它的物品。仅限沙盒。
block.item-void.description = 销毁输入的所有物品。仅限沙盒。
block.liquid-source.description = 无限输出液体。仅限沙盒。
block.copper-wall.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。
block.copper-wall-large.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。\n跨越多个区块
block.copper-wall-large.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。\n占多个方格
block.titanium-wall.description = 中等强度的防御方块。\n提供中等强度的防御以抵御敌人。
block.titanium-wall-large.description = 中等强度的防御方块。\n提供中等强度的防御以防敌人攻击。\n跨越多个区块
block.titanium-wall-large.description = 中等强度的防御方块。\n提供中等强度的防御以防敌人攻击。\n占多个方格
block.plastanium-wall.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。
block.plastanium-wall-large.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。\n跨越多个区块
block.plastanium-wall-large.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。\n占多个方格
block.thorium-wall.description = 强大的防御方块。\n可以很好的防御敌人。
block.thorium-wall-large.description = 强大的防御方块。\n很好地防御敌人。\n跨越多个区块
block.thorium-wall-large.description = 强大的防御方块。\n很好地防御敌人。\n占多个方格
block.phase-wall.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。\n跨越多个区块
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。\n占多个方格
block.surge-wall.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。
block.surge-wall-large.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。\n跨越多个区块
block.door.description = 一扇小门,可以通过点击打开和关闭。\n如果打开敌人可以射击并穿过
block.door-large.description = 一扇大门,可以通过点击打开和关闭。\n如果打开敌人可以射击并穿过。\n跨越多个区块
block.mender.description = 定期修理附近的方块,使防御系统在波与波之间得到修复。\n可以使用硅来提高修复范围和修复效率。
block.mend-projector.description = 修理者的升级版,定期修复附近的建筑物。
block.surge-wall-large.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。\n占多个方格
block.door.description = 一扇小门。点按切换它的打开/关闭状态
block.door-large.description = 一扇大门。点按切换它的打开/关闭状态。\n占多个方格
block.mender.description = 定期修理附近的方块,使防御系统在波次之间得到修复。\n可选使用硅来提高修复范围和修复效率。
block.mend-projector.description = 修理者的升级版,定期修复附近的建筑物。
block.overdrive-projector.description = 提高附近建筑物的速度,如钻头和传送带。
block.force-projector.description = 自身周围创建一个六边形力场,使建筑物和内部单位免受弹药的伤害
block.force-projector.description = 在自身周围创建一个六角形力场,使里面的建筑物和单位免受伤害。\n持续承受高伤害会导致过热可以使用冷却液降温。相织物可用于增加屏障大小
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
block.conveyor.description = 初级传送带。将物品向前输送并将它们放入炮塔或工厂中。可旋转方向。
block.titanium-conveyor.description = 高级传送带,比初级传送带更快地输送物品
block.junction.description = 作为交叉的两条传送带的桥梁。适用于两条不同方向的传送带将不同的物品运送到不同的位置。
block.bridge-conveyor.description = 高级物品传输方块。允许跨越任何地形或建筑物上运输物品最多跨越3个块
block.phase-conveyor.description = 高级传送带,使用电力将物品传送到距离几个块的相位传送带上。
block.conveyor.description = 初级物资传送带。将物品向前输送并在可能时运入建筑。可旋转方向。
block.titanium-conveyor.description = 高级物资传送带。运送物品的速度优于初级传送带
block.junction.description = 两条传送带的交叉桥连接。适用于两条不同方向的传送带要分别将不同的物品运送到不同的位置。
block.bridge-conveyor.description = 先进的物品运输方块。允许跨越任意地形或建筑物运输物品最多跨越3格
block.phase-conveyor.description = 先进的传送带,使用电力将物品传送到距离几个块的相位传送带上。
block.sorter.description = 对物品进行分类,如果物品与所选种类相同,则允许其通过。否则,物品将从左边和右边输出。
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
block.inverted-sorter.description = 同分类器一样分类物品,但所选物品输出到左边和右边。
block.router.description = 从一个方向接受物品并将它们平均输出到其他3个方向。可以将材料分成多份。
block.distributor.description = 一个高级路由器可以将物品向最多7个方向输出
block.overflow-gate.description = 分离器和路由器的组合,如果前面被挡住,则向从左和右输出。
block.mass-driver.description = 终极传送带,收集物品后将它们射向远处的另一个质量驱动器。
block.mechanical-pump.description = 一种输出速度慢但没有功耗的廉价泵
block.rotary-pump.description = 先进的水泵。泵送更多液体,但需要能量。
block.thermal-pump.description = 终级泵。
block.distributor.description = 改进的路由器可将物品输出到周围的最多7个其他方向
block.overflow-gate.description = 仅在前路被阻塞时向左和右输出。
block.mass-driver.description = 终极传送带,收集若干物品后将其射到远处的另一个质量驱动器。
block.mechanical-pump.description = 一种廉价泵,输出速度慢,但无需能量
block.rotary-pump.description = 先进泵。泵送更多液体,但需要能量。
block.thermal-pump.description = 终级泵。
block.conduit.description = 基本液体传输管道。像传送带一样工作,但仅适用于液体。用于从泵或其他导管中提取液体。
block.pulse-conduit.description = 高级液体传输管道。比普通导管更快地输送液体且能储存更多液体。
block.plated-conduit.description = 转移液体的速度与脉冲导管相同,但护甲更强。Does not accept fluids from the sides by anything other than conduits.\n更少泄漏。
block.liquid-router.description = 接受来自一个方向的液体并将它们平均输出到其他3个方向。同时可以储存一定量的液体。用于将液体从一个源分多个目标。
block.liquid-tank.description = 存储大量液体,可用于在材料需求不恒定的时候提供缓冲,或作为供给冷却液体的保障
block.liquid-junction.description = 作为两个交叉管道的桥梁。适用于两种不同方向的导管将不同液体输送到不同位置的情况
block.bridge-conduit.description = 高级液体传输方块。可以跨越任何地形或建筑物最多跨越3格来传输液体。
block.phase-conduit.description = 高级液体传输方块。使用电力将液体传送到多个块上的连接管道。
block.plated-conduit.description = 转移液体的速度与脉冲导管相同,但护甲更强。两侧只接受通过导管传入液体。\n更少泄漏。
block.liquid-router.description = 接受一个方向的液体并将它们平均输出到其他3个方向。同时可以储存一定量的液体。用于将液体从一个源分多个目标。
block.liquid-tank.description = 存储大量液体,可在材料需求不恒定作为缓冲区,或作为供给冷却液体的保障设施
block.liquid-junction.description = 两条管道的交叉桥连接。适用于两条不同方向的导管要将不同的液体输送到不同的位置
block.bridge-conduit.description = 先进的液体传输方块。可以跨越任何地形或建筑物最多跨越3格来传输液体。
block.phase-conduit.description = 先进的液体传输方块。使用电力将液体传送到多个块上的连接管道。
block.power-node.description = 将电源传输到连接的节点上。节点将接收来自任何方块的能量或向任何方块供给能量。
block.power-node-large.description = 拥有大范围和多连接点的高级能量节点。
block.surge-tower.description = 连接点较少,但是距离远的能量节点。
block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
block.battery.description = 储存能量,当储存有能量时,可在能源短缺时提供能量
block.power-node-large.description = 更大范围、更多连接点的高级能量节点。
block.surge-tower.description = 连接数低但范围很远的能量节点。
block.diode.description = 此方块上的电能只能单向流动,仅当对方的储能更低时流动。
block.battery.description = 存储能量作为缓冲,在能源亏空时提供
block.battery-large.description = 比普通电池容量更大。
block.combustion-generator.description = 燃烧煤等材料发电。
block.thermal-generator.description = 放置在热的地方发电。
block.turbine-generator.description = 先进的燃烧发电机,效率更高,但需要水来产生蒸汽。
block.differential-generator.description = 利用低温流体和燃烧的硫之间的温差产生大量的能量。
block.rtg-generator.description = 简单可靠的发电机。利用衰变放射性化合物的热量以缓慢的速度产生能量。
block.solar-panel.description = 普通太阳能板,提供少量电力。
block.solar-panel-large.description = 高级太阳能面板,提供更多电力,但搭建起来更贵
block.thorium-reactor.description = 高放射性钍产生大量电力。需要冷却液冷却。如果供应的冷却液不足,会导致爆炸。
block.impact-reactor.description = 一种先进的发电机,能够以最高效率产生大量的电力。但需要大量的能量输入才会启动。
block.thermal-generator.description = 放置在热的地方发电。
block.turbine-generator.description = 先进的火力发电机,效率更高,但需要水来产生蒸汽。
block.differential-generator.description = 利用低温流体与燃烧的硫之间的温差产生大量能量。
block.rtg-generator.description = 一种简单可靠的发电机。利用放射性化合物的衰变产生的热量以缓慢的速度产生能量。
block.solar-panel.description = 普通太阳能板,提供少量电力。
block.solar-panel-large.description = 高级太阳能板,提供更多电力,但成本更高
block.thorium-reactor.description = 高放射性钍产生大量电力。需要冷却液冷却。如果供应的冷却液不足,会导致爆炸。
block.impact-reactor.description = 一种先进的发电机,能够以最高效率产生大量的电力。但需要大量的能量输入启动。
block.mechanical-drill.description = 一种便宜的钻头。放置在合适的方块上时,以缓慢的速度无限期地输出物品。只能开采基本资源。
block.pneumatic-drill.description = 一种改进的钻头,能开采钛。采矿速度比机械钻快。
block.laser-drill.description = 通过激光技术更快开采,但需要电力。这种钻头可以开采放射性钍。
block.blast-drill.description = 终极钻头,需要大量电力
block.pneumatic-drill.description = 一种改进的钻头,能开采钛。采矿速度比机械钻快。
block.laser-drill.description = 通过激光技术更快地开采,但需要能量。这种钻头可以开采放射性钍。
block.blast-drill.description = 终极钻头,需要大量能量
block.water-extractor.description = 从地下提取水。当附近没有水源时使用它。
block.cultivator.description = 将微小的孢子培养成工业用的孢子荚。
block.oil-extractor.description = 使用大量的电力从沙子中提取石油。当附近没有直接的石油来源时使用它
block.core-shard.description = 核心第一代。一旦被摧毁,与该地区的所有连接都将断开。不要让它被摧毁。
block.core-foundation.description = 核心第二代。血量更高。可以存储更多资源。
block.core-nucleus.description = 核心第三代,也是最后一代,血量非常高。存储大量资源。
block.oil-extractor.description = 使用大量能量、沙子和水提炼石油
block.core-shard.description = 初代核心。一旦被摧毁,与该地区的所有连接都将断开。不要让它被摧毁。
block.core-foundation.description = 二代核心。血量更高。可以存储更多资源。
block.core-nucleus.description = 三代核心,也是最新一代,血量非常高。能存储大量资源。
block.vault.description = 存储大量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从仓库中提取物品。
block.container.description = 存储少量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从容器中提取物品。
block.unloader.description = 物品可以从容器,仓库或核心提取到传送带上或直接提取到相邻的方块中。可以通过点击卸载器来更改要卸载的项目类型。
block.launch-pad.description = 允许不通过核心发射物体
block.launch-pad-large.description = 发射台的改进版,可以存储更多物体的同时启动频率更高。
block.duo.description = 小而便宜的炮塔,对地有效。
block.scatter.description = 不可或缺的防空炮塔,向空中敌人发射铅或废料。
block.scorch.description = 小型炮塔,任何靠近它的地面敌人。近距离非常有效。
block.unloader.description = 将物品从容器、仓库或你的核心中提取到传送带或直接提取到相邻的方块。点击卸载器本身更改所要卸载的物品类型。
block.launch-pad.description = 定期发射一批物品,而无需发射核心(离开地图)
block.launch-pad-large.description = 发射台的改进版,可以存储更多物品,同时启动频率更高。
block.duo.description = 小而便宜的炮塔,对地有效。
block.scatter.description = 基本型防空炮塔。向空中敌人喷出一团铅或废料。
block.scorch.description = 小型炮塔,燃任何靠近它的地面敌人。近距离非常有效。
block.hail.description = 小型远程炮台。
block.wave.description = 中型快速炮塔,射出液体泡泡。有液体输入时自动灭火。
block.lancer.description = 中型对地炮塔。遇敌时会充能并发射强力的的能量束。
block.lancer.description = 中型对地炮塔。会充能并发射强力的的能量束。
block.arc.description = 小型炮塔,发射电弧。
block.swarmer.description = 中型炮塔,对空对地,发射跟踪爆炸导弹。
block.salvo.description = 双管炮的升级版。中型,齐射射击
block.fuse.description = 大型炮塔,发射三道刺穿敌人的短程光束。
block.salvo.description = 双管炮的升级版。中型,快速射出一串子弹
block.fuse.description = 大型近程炮塔,发射三道刺穿敌人的短程光束。
block.ripple.description = 大型远程炮台,非常强力,向远处的敌人投射一簇弹药。
block.cyclone.description = 大型快速炮塔,对空对地,向周围敌人发射爆炸弹
block.cyclone.description = 大型炮塔,对空对地,发射在敌人周围引爆的爆炸物
block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的穿甲弹药。
block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。
block.command-center.description = 在地图上向盟军发出移动命令。\n使用部队巡逻、攻击敌军核心或撤退到核心/工厂。当没有敌人核心时,部队默认在攻击命令下巡逻。
block.command-center.description = 在地图上向联盟单位发出移动命令。\n使部队巡逻、攻击一个敌人核心或者撤退到核心/工厂。当没有敌人核心时,得到攻击命令的部队默认执行巡逻。
block.draug-factory.description = 生产德鲁格釆矿机。
block.spirit-factory.description = 生产幽灵修理机。
block.phantom-factory.description = 生产鬼怪建造机。
block.phantom-factory.description = 生产幻影建造机。
block.wraith-factory.description = 生产快速截击机。
block.ghoul-factory.description = 生产重型地毯轰炸机。
block.revenant-factory.description = 生产重型导弹部队。
@ -1183,11 +1217,11 @@ block.dagger-factory.description = 生产基本地面单位。
block.crawler-factory.description = 生产快速自毁单元。
block.titan-factory.description = 生产先进的装甲地面单位。
block.fortress-factory.description = 生产重型地面火炮部队。
block.repair-point.description = 连续治疗附近最近的受损单位。
block.dart-mech-pad.description = 替换当前的机甲并转换成一个基础的攻击型机甲。\n站在上面时点击切换。
block.delta-mech-pad.description = 替换当前的机甲并转换成一个快速,轻装甲的机械装置。\n站在上面时点击切换。
block.tau-mech-pad.description = 替换当前的机甲并转换成一个可以治愈友方建筑物和单位的后勤机甲。\n站在上面时点击切换。
block.omega-mech-pad.description = 替换当前的机甲并转换成一个笨重但是高护甲的机甲。\n站在上面时点击切换。
block.javelin-ship-pad.description = 替换当前的机甲并转换成一个强大而快速的截击机,发射电弧。\n站在上面时点击切换。
block.trident-ship-pad.description = 替换当前的机甲并转换成一个高护甲的重型轰炸机。\n站在上面时点击切换。
block.glaive-ship-pad.description = 替换当前的机甲并转换成一个高护甲的大型武装直升机。\n站在上面时点击切换。
block.repair-point.description = 持续治疗其附近伤势最重的单位。
block.dart-mech-pad.description = 允许将当前的机甲替换为一款基础的攻击型机甲。\n站在上面并点一下执行切换。
block.delta-mech-pad.description = 允许将当前的机甲替换为一款轻快的攻击型机甲。\n站在上面并点一下执行切换。
block.tau-mech-pad.description = 允许将当前的机甲替换为一款可以治愈友方建筑物和单位的支援型机甲。\n站在上面并点一下执行切换。
block.omega-mech-pad.description = 允许将当前的机甲替换为一款笨重、厚装甲的导弹机甲。\n站在上面并点一下执行切换。
block.javelin-ship-pad.description = 允许将当前的机甲替换为一款快速、轻装甲的截击机,发射电弧。\n站在上面并点一下执行切换。
block.trident-ship-pad.description = 允许将当前的机甲替换为一款重型的支援轰炸机。\n站在上面并点一下执行切换。
block.glaive-ship-pad.description = 允许将当前的机甲替换为一款大型的装甲武装直升机。\n站在上面并点一下执行切换。

View file

@ -99,8 +99,9 @@ mod.disabled = [scarlet]已禁用
mod.enable = 啟用
mod.disable = 禁用
mod.delete.error = 無法刪除模組,檔案可能在使用中。
mod.requiresversion = [scarlet]遊戲版本要求:[accent]{0}
mod.missingdependencies = [scarlet]缺少依賴項目: {0}
mod.nowdisabled = [scarlet]「{0}'」模組缺少依賴項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
mod.nowdisabled = [scarlet]「{0}」模組缺少必須項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
mod.reloadrequired = [scarlet]需要重新載入
mod.import = 匯入模組
@ -140,7 +141,7 @@ server.kicked.idInUse = 你已經在伺服器中!不允許用兩個帳號。
server.kicked.customClient = 這個伺服器不支持自訂客戶端,請下載官方版本。
server.kicked.gameover = 遊戲結束!
server.versions = 您的遊戲版本:[accent] {0}[]\n伺服器遊戲版本:[accent] {1}[]
host.info = 目前伺服器監聽於連接埠[scarlet]6567[]。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過IP 位址連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意如果區域網路內有玩家無法連線至您的伺服器請務必確認您已於防火牆設定中開放Mindustry存取您的區域網路。請注意公共網路有時不允許搜尋伺服器。
host.info = [accent]建立伺服器[]按鍵會在連接埠[scarlet]6567[]建立一個伺服器。\n所有跟您在同一個[lightgray]網路或區域網路[]環境的玩家應該能在他們的伺服器清單中找到您的伺服器。\n\n如果您希望網際網路上的玩家透過IP 位址連線到您的伺服器,您必須設定[accent]連接埠轉發[]。\n\n[lightgray]注意如果區域網路內有玩家無法連線至您的伺服器請務必確認您已於防火牆設定中開放Mindustry存取您的區域網路。請注意公共網路有時不允許搜尋伺服器。
join.info = 您可以在此輸入欲連線的[accent]伺服器IP位址[],或尋找[accent]區域網路[]內的伺服器。目前支援區域網路與網際網路連線。\n\n[lightgray]注意並沒有自動的網際網路伺服器清單如果您想透過IP位址連線到他人的伺服器您必須向他們詢問IP位址。
hostserver = 建立伺服器
invitefriends = 邀請好友
@ -494,6 +495,7 @@ settings.language = 語言
settings.data = 遊戲數據
settings.reset = 重設為預設設定
settings.rebind = 重新綁定
settings.resetKey = 重設按鍵
settings.controls = 操作
settings.game = 遊戲
settings.sound = 音效
@ -587,6 +589,8 @@ unit.persecond = /秒
unit.timesspeed = ×速度
unit.percent = %
unit.items = 物品
unit.thousands = k
unit.millions = mil
category.general = 一般
category.power = 能量
category.liquids = 液體
@ -660,6 +664,7 @@ keybind.clear_building.name = 清除建築物
keybind.press = 按一下按鍵...
keybind.press.axis = 按一下軸向或按鍵...
keybind.screenshot.name = 地圖截圖
keybind.toggle_power_lines.name = 顯示能量激光
keybind.move_x.name = 水平移動
keybind.move_y.name = 垂直移動
keybind.schematic_select.name = 選擇區域
@ -781,6 +786,7 @@ mech.trident-ship.name = 三叉戟
mech.trident-ship.weapon = 轟炸艙
mech.glaive-ship.name = 偃月刀
mech.glaive-ship.weapon = 火焰機關槍
item.corestorable = [lightgray]核心可儲存: {0}
item.explosiveness = [lightgray]爆炸性:{0}
item.flammability = [lightgray]易燃性:{0}
item.radioactivity = [lightgray]放射性:{0}

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 901 KiB

After

Width:  |  Height:  |  Size: 924 KiB

Before After
Before After

View file

@ -31,8 +31,6 @@ import static io.anuke.arc.Core.*;
public class Vars implements Loadable{
/** Whether to load locales.*/
public static boolean loadLocales = true;
/** Maximum number of broken blocks. TODO implement or remove.*/
public static final int maxBrokenBlocks = 256;
/** Maximum schematic size.*/
public static final int maxSchematicSize = 32;
/** All schematic base64 starts with this string.*/
@ -51,10 +49,12 @@ public class Vars implements Loadable{
public static final String crashReportURL = "http://192.99.169.18/report";
/** URL the links to the wiki's modding guide.*/
public static final String modGuideURL = "https://mindustrygame.github.io/wiki/modding/";
/** URL to the JSON file containing all the global, public servers. */
public static final String serverJsonURL = "https://raw.githubusercontent.com/Anuken/Mindustry/master/servers.json";
/** URL the links to the wiki's modding guide.*/
public static final String reportIssueURL = "https://github.com/Anuken/Mindustry/issues/new?template=bug_report.md";
/** list of built-in servers.*/
public static final Array<String> defaultServers = Array.with(/*"mins.us.to"*/);
public static final Array<String> defaultServers = Array.with();
/** maximum distance between mine and core that supports automatic transferring */
public static final float mineTransferRange = 220f;
/** team of the player by default */
@ -275,7 +275,7 @@ public class Vars implements Loadable{
Core.settings.setDataDirectory(Core.files.local("saves/"));
}
Core.settings.defaults("locale", "default");
Core.settings.defaults("locale", "default", "blocksync", true);
Core.keybinds.setDefaults(Binding.values());
Core.settings.load();

View file

@ -5,7 +5,7 @@ import io.anuke.arc.*;
import io.anuke.arc.util.*;
import io.anuke.mindustry.content.*;
import io.anuke.mindustry.core.GameState.*;
import io.anuke.mindustry.ctype.UnlockableContent;
import io.anuke.mindustry.ctype.*;
import io.anuke.mindustry.entities.*;
import io.anuke.mindustry.entities.type.*;
import io.anuke.mindustry.game.EventType.*;
@ -189,6 +189,7 @@ public class Logic implements ApplicationListener{
for(Item item : content.items()){
if(tile == null || tile.entity == null || tile.entity.items == null) continue;
data.addItem(item, tile.entity.items.get(item));
Events.fire(new LaunchItemEvent(item, tile.entity.items.get(item)));
}
world.removeBlock(tile);
}

View file

@ -342,6 +342,26 @@ public class NetClient implements ApplicationListener{
}
}
@Remote(variants = Variant.both, priority = PacketPriority.low, unreliable = true)
public static void onBlockSnapshot(short amount, short dataLen, byte[] data){
try{
netClient.byteStream.setBytes(net.decompressSnapshot(data, dataLen));
DataInputStream input = netClient.dataStream;
for(int i = 0; i < amount; i++){
int pos = input.readInt();
Tile tile = world.tile(pos);
if(tile == null || tile.entity == null){
Log.warn("Missing entity at {0}. Skipping block snapshot.", tile);
break;
}
tile.entity.read(input, tile.entity.version());
}
}catch(Exception e){
e.printStackTrace();
}
}
@Remote(variants = Variant.one, priority = PacketPriority.low, unreliable = true)
public static void onStateSnapshot(float waveTime, int wave, int enemies, short coreDataLen, byte[] coreData){
try{

View file

@ -30,8 +30,8 @@ import java.util.zip.*;
import static io.anuke.mindustry.Vars.*;
public class NetServer implements ApplicationListener{
public final static int maxSnapshotSize = 430;
private final static float serverSyncTime = 12, kickDuration = 30 * 1000;
private final static int maxSnapshotSize = 430, timerBlockSync = 0;
private final static float serverSyncTime = 12, kickDuration = 30 * 1000, blockSyncTime = 60 * 10;
private final static Vector2 vector = new Vector2();
private final static Rectangle viewport = new Rectangle();
/** If a player goes away of their server-side coordinates by this distance, they get teleported back. */
@ -41,6 +41,7 @@ public class NetServer implements ApplicationListener{
public final CommandHandler clientCommands = new CommandHandler("/");
private boolean closing = false;
private Interval timer = new Interval();
private ByteBuffer writeBuffer = ByteBuffer.allocate(127);
private ByteBufferOutput outputBuffer = new ByteBufferOutput(writeBuffer);
@ -612,7 +613,35 @@ public class NetServer implements ApplicationListener{
}
}
public void writeSnapshot(Player player) throws IOException{
/** Sends a block snapshot to all players. */
public void writeBlockSnapshots() throws IOException{
syncStream.reset();
short sent = 0;
for(TileEntity entity : tileGroup.all()){
if(!entity.block.sync) continue;
sent ++;
dataStream.writeInt(entity.tile.pos());
entity.write(dataStream);
if(syncStream.size() > maxSnapshotSize){
dataStream.close();
byte[] stateBytes = syncStream.toByteArray();
Call.onBlockSnapshot(sent, (short)stateBytes.length, net.compressSnapshot(stateBytes));
sent = 0;
syncStream.reset();
}
}
if(sent > 0){
dataStream.close();
byte[] stateBytes = syncStream.toByteArray();
Call.onBlockSnapshot(sent, (short)stateBytes.length, net.compressSnapshot(stateBytes));
}
}
public void writeEntitySnapshot(Player player) throws IOException{
syncStream.reset();
ObjectSet<Tile> cores = state.teams.get(player.getTeam()).cores;
@ -726,7 +755,6 @@ public class NetServer implements ApplicationListener{
void sync(){
try{
//iterate through each player
for(int i = 0; i < playerGroup.size(); i++){
Player player = playerGroup.all().get(i);
@ -741,7 +769,11 @@ public class NetServer implements ApplicationListener{
if(!player.timer.get(Player.timerSync, serverSyncTime) || !connection.hasConnected) continue;
writeSnapshot(player);
writeEntitySnapshot(player);
}
if(playerGroup.size() > 0 && Core.settings.getBool("blocksync") && timer.get(timerBlockSync, blockSyncTime)){
writeBlockSnapshots();
}
}catch(IOException e){

View file

@ -429,12 +429,15 @@ public class UI implements ApplicationListener, Loadable{
}
public void showCustomConfirm(String title, String text, String yes, String no, Runnable confirmed){
public void showCustomConfirm(String title, String text, String yes, String no, Runnable confirmed, Runnable denied){
FloatingDialog dialog = new FloatingDialog(title);
dialog.cont.add(text).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center);
dialog.buttons.defaults().size(200f, 54f).pad(2f);
dialog.setFillParent(false);
dialog.buttons.addButton(no, dialog::hide);
dialog.buttons.addButton(no, () -> {
dialog.hide();
denied.run();
});
dialog.buttons.addButton(yes, () -> {
dialog.hide();
confirmed.run();
@ -458,11 +461,11 @@ public class UI implements ApplicationListener, Loadable{
public String formatAmount(int number){
if(number >= 1000000){
return Strings.fixed(number / 1000000f, 1) + "[gray]mil[]";
return Strings.fixed(number / 1000000f, 1) + "[gray]" + Core.bundle.getOrNull("unit.millions") + "[]";
}else if(number >= 10000){
return number / 1000 + "[gray]k[]";
}else if(number >= 1000){
return Strings.fixed(number / 1000f, 1) + "[gray]k[]";
return Strings.fixed(number / 1000f, 1) + "[gray]" + Core.bundle.getOrNull("unit.thousands") + "[]";
}else{
return number + "";
}

View file

@ -5,6 +5,7 @@ import io.anuke.arc.*;
import io.anuke.arc.graphics.g2d.*;
import io.anuke.arc.scene.ui.layout.*;
import io.anuke.mindustry.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.ui.Cicon;
/** Base interface for an unlockable content type. */
@ -25,7 +26,7 @@ public abstract class UnlockableContent extends MappableContent{
/** Generate any special icons for this content. Called asynchronously.*/
@CallSuper
public void createIcons(PixmapPacker out, PixmapPacker editor){
public void createIcons(MultiPacker packer){
}

View file

@ -35,14 +35,14 @@ public interface BuilderTrait extends Entity, TeamTrait{
float finalPlaceDst = state.rules.infiniteResources ? Float.MAX_VALUE : placeDistance;
Unit unit = (Unit)this;
//remove already completed build requests
removal.clear();
removal.addAll(buildQueue());
Structs.filter(buildQueue(), req -> {
Iterator<BuildRequest> it = buildQueue().iterator();
while(it.hasNext()){
BuildRequest req = it.next();
Tile tile = world.tile(req.x, req.y);
return tile == null || (req.breaking && tile.block() == Blocks.air) || (!req.breaking && (tile.rotation() == req.rotation || !req.block.rotate) && tile.block() == req.block);
});
if(tile == null || (req.breaking && tile.block() == Blocks.air) || (!req.breaking && (tile.rotation() == req.rotation || !req.block.rotate) && tile.block() == req.block)){
it.remove();
}
}
TileEntity core = unit.getClosestCore();
@ -230,7 +230,6 @@ public interface BuilderTrait extends Entity, TeamTrait{
//due to iOS weirdness, this is apparently required
class BuildDataStatic{
static Array<BuildRequest> removal = new Array<>();
static Vector2[] tmptr = new Vector2[]{new Vector2(), new Vector2(), new Vector2(), new Vector2()};
}

View file

@ -15,6 +15,7 @@ import io.anuke.mindustry.game.*;
import io.anuke.mindustry.game.EventType.BlockDestroyEvent;
import io.anuke.mindustry.gen.*;
import io.anuke.mindustry.world.*;
import io.anuke.mindustry.world.consumers.*;
import io.anuke.mindustry.world.modules.*;
import java.io.*;
@ -89,7 +90,7 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
/** Base efficiency. If this entity has non-buffered power, returns the power %, otherwise returns 1. */
public float efficiency(){
return power != null && !block.consumes.getPower().buffered ? power.status : 1f;
return power != null && (block.consumes.has(ConsumeType.power) && !block.consumes.getPower().buffered) ? power.status : 1f;
}
/** Call when nothing is happening to the entity. This increments the internal sleep timer. */

View file

@ -37,6 +37,14 @@ public class EventType{
public static class LaunchEvent{}
public static class LaunchItemEvent{
public final ItemStack stack;
public LaunchItemEvent(Item item, int amount){
this.stack = new ItemStack(item, amount);
}
}
public static class MapMakeEvent{}
public static class MapPublishEvent{}
@ -138,7 +146,7 @@ public class EventType{
public final Player player;
public final Item item;
public final int amount;
public DepositEvent(Tile tile, Player player, Item item, int amount){
this.tile = tile;
this.player = player;
@ -146,7 +154,7 @@ public class EventType{
this.amount = amount;
}
}
/** Called when the player taps a block. */
public static class TapEvent{
public final Tile tile;
@ -157,7 +165,7 @@ public class EventType{
this.player = player;
}
}
/** Called when the player sets a specific block. */
public static class TapConfigEvent{
public final Tile tile;
@ -310,7 +318,7 @@ public class EventType{
/** Called after connecting; when a player recieves world data and is ready to play.*/
public static class PlayerJoin{
public final Player player;
public PlayerJoin(Player player){
this.player = player;
}
@ -327,11 +335,45 @@ public class EventType{
public static class PlayerLeave{
public final Player player;
public PlayerLeave(Player player){
this.player = player;
}
}
public static class PlayerBanEvent{
public final Player player;
public PlayerBanEvent(Player player){
this.player = player;
}
}
public static class PlayerUnbanEvent{
public final Player player;
public PlayerUnbanEvent(Player player){
this.player = player;
}
}
public static class PlayerIpBanEvent{
public final String ip;
public PlayerIpBanEvent(String ip){
this.ip = ip;
}
}
public static class PlayerIpUnbanEvent{
public final String ip;
public PlayerIpUnbanEvent(String ip){
this.ip = ip;
}
}
}

View file

@ -5,6 +5,7 @@ import io.anuke.arc.collection.IntIntMap.*;
import io.anuke.arc.files.*;
import io.anuke.arc.util.ArcAnnotate.*;
import io.anuke.mindustry.*;
import io.anuke.mindustry.mod.Mods.*;
import io.anuke.mindustry.type.*;
import io.anuke.mindustry.world.*;
import io.anuke.mindustry.world.blocks.storage.*;
@ -16,8 +17,10 @@ public class Schematic implements Publishable, Comparable<Schematic>{
public StringMap tags;
public int width, height;
public @Nullable FileHandle file;
/** Associated mod. If null, no mod is associated with this schematic. */
public @Nullable LoadedMod mod;
public Schematic(Array<Stile> tiles, StringMap tags, int width, int height){
public Schematic(Array<Stile> tiles, @NonNull StringMap tags, int width, int height){
this.tiles = tiles;
this.tags = tags;
this.width = width;

View file

@ -8,6 +8,7 @@ import io.anuke.arc.graphics.*;
import io.anuke.arc.graphics.g2d.*;
import io.anuke.arc.graphics.glutils.*;
import io.anuke.arc.util.*;
import io.anuke.arc.util.ArcAnnotate.*;
import io.anuke.arc.util.io.Streams.*;
import io.anuke.arc.util.serialization.*;
import io.anuke.mindustry.*;
@ -74,6 +75,14 @@ public class Schematics implements Loadable{
platform.getWorkshopContent(Schematic.class).each(this::loadFile);
//mod-specific schematics, cannot be removed
mods.listFiles("schematics", (mod, file) -> {
Schematic s = loadFile(file);
if(s != null){
s.mod = mod;
}
});
all.sort();
if(shadowBuffer == null){
@ -102,8 +111,8 @@ public class Schematics implements Loadable{
}
}
private void loadFile(FileHandle file){
if(!file.extension().equals(schematicExtension)) return;
private @Nullable Schematic loadFile(FileHandle file){
if(!file.extension().equals(schematicExtension)) return null;
try{
Schematic s = read(file);
@ -113,9 +122,12 @@ public class Schematics implements Loadable{
if(!s.file.parent().equals(schematicDirectory)){
s.tags.put("steamid", s.file.parent().name());
}
return s;
}catch(IOException e){
Log.err(e);
}
return null;
}
public Array<Schematic> all(){

View file

@ -9,7 +9,7 @@ import io.anuke.mindustry.type.*;
@Serialize
public class Stats{
/** Items delivered to global resoure counter. Zones only. */
public transient ObjectIntMap<Item> itemsDelivered = new ObjectIntMap<>();
public ObjectIntMap<Item> itemsDelivered = new ObjectIntMap<>();
/** Enemy (red team) units destroyed. */
public int enemyUnitsDestroyed;
/** Total waves lasted. */

View file

@ -0,0 +1,61 @@
package io.anuke.mindustry.graphics;
import io.anuke.arc.graphics.*;
import io.anuke.arc.graphics.Pixmap.*;
import io.anuke.arc.graphics.Texture.*;
import io.anuke.arc.graphics.g2d.*;
import io.anuke.arc.util.*;
public class MultiPacker implements Disposable{
private PixmapPacker[] packers = new PixmapPacker[PageType.all.length];
public MultiPacker(){
for(int i = 0; i < packers.length; i++){
int pageSize = 2048;
packers[i] = new PixmapPacker(pageSize, pageSize, Format.RGBA8888, 2, true);
}
}
public boolean has(PageType type, String name){
return packers[type.ordinal()].getRect(name) != null;
}
public void add(PageType type, String name, PixmapRegion region){
packers[type.ordinal()].pack(name, region);
}
public void add(PageType type, String name, Pixmap pix){
packers[type.ordinal()].pack(name, pix);
}
public TextureAtlas flush(TextureFilter filter, TextureAtlas atlas){
for(PixmapPacker p : packers){
p.updateTextureAtlas(atlas, filter, filter, false, false);
}
return atlas;
}
@Override
public void dispose(){
for(PixmapPacker packer : packers){
packer.dispose();
}
}
//There are several pages for sprites.
//main page (sprites.png) - all sprites for units, weapons, placeable blocks, effects, bullets, etc
//environment page (sprites2.png) - all sprites for things in the environmental cache layer
//editor page (sprites3.png) - all sprites needed for rendering in the editor, including block icons and a few minor sprites
//zone page (sprites4.png) - zone previews
//ui page (sprites5.png) - content icons, white icons and UI elements
public enum PageType{
main,
environment,
editor,
zone,
ui;
public static final PageType[] all = values();
}
}

View file

@ -157,5 +157,4 @@ public class OverlayRenderer{
}
}
}
}

View file

@ -29,6 +29,14 @@ public class JsonIO{
super.writeValue(value, knownType, elementType);
}
}
@Override
protected String convertToString(Object object){
if(object instanceof MappableContent){
return ((MappableContent)object).name;
}
return super.convertToString(object);
}
};
public static Json json(){

View file

@ -5,11 +5,13 @@ import io.anuke.arc.collection.*;
import io.anuke.arc.files.*;
import io.anuke.arc.graphics.*;
import io.anuke.arc.util.*;
import io.anuke.arc.util.ArcAnnotate.*;
import io.anuke.mindustry.*;
import io.anuke.mindustry.game.EventType.*;
import io.anuke.mindustry.game.*;
import io.anuke.mindustry.io.*;
import io.anuke.mindustry.maps.filters.*;
import io.anuke.mindustry.mod.Mods.*;
import io.anuke.mindustry.type.*;
import static io.anuke.mindustry.Vars.*;
@ -35,6 +37,8 @@ public class Map implements Comparable<Map>, Publishable{
public IntSet teams = new IntSet();
/** Number of enemy spawns on this map.*/
public int spawns = 0;
/** Associated mod. If null, no mod is associated. */
public @Nullable LoadedMod mod;
public Map(FileHandle file, int width, int height, StringMap tags, boolean custom, int version, int build){
this.custom = custom;

View file

@ -138,6 +138,17 @@ public class Maps{
Log.err(e);
}
}
//mod
mods.listFiles("maps", (mod, file) -> {
try{
Map map = loadMap(file, false);
map.mod = mod;
}catch(Exception e){
Log.err("Failed to load mod map file '{0}'!", file);
Log.err(e);
}
});
}
public void reload(){
@ -457,7 +468,7 @@ public class Maps{
return maps.find(m -> m != prev || maps.size == 1);
}),
custom(prev -> {
Array<Map> maps = Array.withArrays(Vars.maps.customMaps());
Array<Map> maps = Array.withArrays(Vars.maps.customMaps().isEmpty() ? Vars.maps.defaultMaps() : Vars.maps.customMaps());
maps.shuffle();
return maps.find(m -> m != prev || maps.size == 1);
}),

View file

@ -1,6 +1,7 @@
package io.anuke.mindustry.mod;
import io.anuke.arc.*;
import io.anuke.arc.assets.*;
import io.anuke.arc.audio.*;
import io.anuke.arc.audio.mock.*;
import io.anuke.arc.collection.Array;
@ -69,9 +70,9 @@ public class ContentParser{
String name = "sounds/" + data.asString();
String path = Vars.tree.get(name + ".ogg").exists() && !Vars.ios ? name + ".ogg" : name + ".mp3";
ModLoadingSound sound = new ModLoadingSound();
Core.assets.load(path, Sound.class).loaded = result -> {
sound.sound = (Sound)result;
};
AssetDescriptor<?> desc = Core.assets.load(path, Sound.class);
desc.loaded = result -> sound.sound = (Sound)result;
desc.errored = Throwable::printStackTrace;
return sound;
});
put(Objective.class, (type, data) -> {
@ -104,7 +105,7 @@ public class ContentParser{
return t;
}
private <T> T internalRead(Class<T> type, Class elementType, JsonValue jsonData, Class keyType){
private <T> T internalRead(Class<T> type, Class elementType, JsonValue jsonData, Class keyType){
if(type != null){
if(classParsers.containsKey(type)){
try{
@ -114,6 +115,29 @@ public class ContentParser{
}
}
//try to parse "item/amount" syntax
try{
if(type == ItemStack.class && jsonData.isString() && jsonData.asString().contains("/")){
String[] split = jsonData.asString().split("/");
return (T)fromJson(ItemStack.class, "{item: " + split[0] + ", amount: " + split[1] + "}");
}
}catch(Throwable ignored){
}
//try to parse "liquid/amount" syntax
try{
if(jsonData.isString() && jsonData.asString().contains("/")){
String[] split = jsonData.asString().split("/");
if(type == LiquidStack.class){
return (T)fromJson(LiquidStack.class, "{liquid: " + split[0] + ", amount: " + split[1] + "}");
}else if(type == ConsumeLiquid.class){
return (T)fromJson(ConsumeLiquid.class, "{liquid: " + split[0] + ", amount: " + split[1] + "}");
}
}
}catch(Throwable ignored){
}
if(Content.class.isAssignableFrom(type)){
ContentType ctype = contentTypes.getThrow(type, () -> new IllegalArgumentException("No content type for class: " + type.getSimpleName()));
String prefix = currentMod != null ? currentMod.name + "-" : "";
@ -205,6 +229,9 @@ public class ContentParser{
postreads.add(() -> {
TechNode parnode = TechTree.all.find(t -> t.block == parent);
if(parnode == null){
throw new ModLoadException("Block '" + parent.name + "' isn't in the tech tree, but '" + block.name + "' requires it to be researched.", block);
}
if(!parnode.children.contains(baseNode)){
parnode.children.add(baseNode);
}
@ -342,7 +369,13 @@ public class ContentParser{
init();
}
//remove extra # characters to make it valid json... apparently some people have *unquoted* # characters in their json
if(file.extension().equals("json")){
json = json.replace("#", "\\#");
}
JsonValue value = parser.fromJson(null, Jval.read(json).toString(Jformat.plain));
if(!parsers.containsKey(type)){
throw new SerializationException("No parsers for content type '" + type + "'");
}

View file

@ -6,7 +6,6 @@ import io.anuke.arc.collection.*;
import io.anuke.arc.files.*;
import io.anuke.arc.func.*;
import io.anuke.arc.graphics.*;
import io.anuke.arc.graphics.Pixmap.*;
import io.anuke.arc.graphics.Texture.*;
import io.anuke.arc.graphics.g2d.*;
import io.anuke.arc.graphics.g2d.TextureAtlas.*;
@ -14,10 +13,13 @@ import io.anuke.arc.util.ArcAnnotate.*;
import io.anuke.arc.util.*;
import io.anuke.arc.util.io.*;
import io.anuke.arc.util.serialization.*;
import io.anuke.arc.util.serialization.Jval.*;
import io.anuke.mindustry.core.*;
import io.anuke.mindustry.ctype.*;
import io.anuke.mindustry.game.EventType.*;
import io.anuke.mindustry.gen.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.graphics.MultiPacker.*;
import io.anuke.mindustry.plugin.*;
import io.anuke.mindustry.type.*;
@ -33,7 +35,7 @@ public class Mods implements Loadable{
private ObjectSet<String> specialFolders = ObjectSet.with("bundles", "sprites");
private int totalSprites;
private PixmapPacker packer;
private MultiPacker packer;
private Array<LoadedMod> loaded = new Array<>();
private Array<LoadedMod> disabled = new Array<>();
@ -48,9 +50,21 @@ public class Mods implements Loadable{
return modDirectory.child(load.name).child("config.json");
}
/** Returns a list of files per mod subdirectory. */
public void listFiles(String directory, Cons2<LoadedMod, FileHandle> cons){
for(LoadedMod mod : loaded){
FileHandle file = mod.root.child(directory);
if(file.exists()){
for(FileHandle child : file.list()){
cons.get(mod, child);
}
}
}
}
/** @return the loaded mod found by class, or null if not found. */
public @Nullable LoadedMod getMod(Class<? extends Mod> type){
return loaded.find(l -> l.mod.getClass() == type);
return loaded.find(l -> l.mod != null && l.mod.getClass() == type);
}
/** Imports an external mod file.*/
@ -79,68 +93,71 @@ public class Mods implements Loadable{
if(loaded.isEmpty()) return;
Time.mark();
packer = new PixmapPacker(2048, 2048, Format.RGBA8888, 2, true);
packer = new MultiPacker();
for(LoadedMod mod : loaded){
int[] packed = {0};
boolean[] failed = {false};
mod.root.child("sprites").walk(file -> {
if(failed[0]) return;
if(file.extension().equals("png")){
try(InputStream stream = file.read()){
byte[] bytes = Streams.copyStreamToByteArray(stream, Math.max((int)file.length(), 512));
Pixmap pixmap = new Pixmap(bytes, 0, bytes.length);
packer.pack(mod.name + "-" + file.nameWithoutExtension(), pixmap);
pixmap.dispose();
packed[0] ++;
totalSprites ++;
}catch(IOException e){
failed[0] = true;
Core.app.post(() -> {
Log.err("Error packing images for mod: {0}", mod.meta.name);
e.printStackTrace();
if(!headless) ui.showException(e);
});
}
}
});
Log.info("Packed {0} images for mod '{1}'.", packed[0], mod.meta.name);
Array<FileHandle> sprites = mod.root.child("sprites").findAll(f -> f.extension().equals("png"));
Array<FileHandle> overrides = mod.root.child("sprites-override").findAll(f -> f.extension().equals("png"));
packSprites(sprites, mod, true);
packSprites(overrides, mod, false);
Log.info("Packed {0} images for mod '{1}'.", sprites.size + overrides.size, mod.meta.name);
totalSprites += sprites.size + overrides.size;
}
for(AtlasRegion region : Core.atlas.getRegions()){
PageType type = getPage(region);
if(!packer.has(type, region.name)){
packer.add(type, region.name, Core.atlas.getPixmap(region));
}
}
Log.info("Time to pack textures: {0}", Time.elapsed());
}
private void packSprites(Array<FileHandle> sprites, LoadedMod mod, boolean prefix){
for(FileHandle file : sprites){
try(InputStream stream = file.read()){
byte[] bytes = Streams.copyStreamToByteArray(stream, Math.max((int)file.length(), 512));
Pixmap pixmap = new Pixmap(bytes, 0, bytes.length);
packer.add(getPage(file), (prefix ? mod.name + "-" : "") + file.nameWithoutExtension(), new PixmapRegion(pixmap));
pixmap.dispose();
}catch(IOException e){
Core.app.post(() -> {
Log.err("Error packing images for mod: {0}", mod.meta.name);
e.printStackTrace();
if(!headless) ui.showException(e);
});
break;
}
}
totalSprites += sprites.size;
}
@Override
public void loadSync(){
if(packer == null) return;
Time.mark();
Texture editor = Core.atlas.find("clear-editor").getTexture();
PixmapPacker editorPacker = new PixmapPacker(2048, 2048, Format.RGBA8888, 2, true);
for(AtlasRegion region : Core.atlas.getRegions()){
if(region.getTexture() == editor){
editorPacker.pack(region.name, Core.atlas.getPixmap(region).crop());
}
}
//get textures packed
if(totalSprites > 0){
TextureFilter filter = Core.settings.getBool("linear") ? TextureFilter.Linear : TextureFilter.Nearest;
packer.updateTextureAtlas(Core.atlas, filter, filter, false);
//flush so generators can use these sprites
packer.flush(filter, Core.atlas);
//generate new icons
for(Array<Content> arr : content.getContentMap()){
arr.each(c -> {
if(c instanceof UnlockableContent && c.mod != null){
UnlockableContent u = (UnlockableContent)c;
u.createIcons(packer, editorPacker);
u.createIcons(packer);
}
});
}
editorPacker.updateTextureAtlas(Core.atlas, filter, filter, false);
packer.updateTextureAtlas(Core.atlas, filter, filter, false);
Core.atlas = packer.flush(filter, new TextureAtlas());
Core.atlas.setErrorRegion("error");
Log.info("Total pages: {0}", Core.atlas.getTextures().size);
}
packer.dispose();
@ -148,6 +165,26 @@ public class Mods implements Loadable{
Log.info("Time to update textures: {0}", Time.elapsed());
}
private PageType getPage(AtlasRegion region){
return
region.getTexture() == Core.atlas.find("white").getTexture() ? PageType.main :
region.getTexture() == Core.atlas.find("stone1").getTexture() ? PageType.environment :
region.getTexture() == Core.atlas.find("clear-editor").getTexture() ? PageType.editor :
region.getTexture() == Core.atlas.find("zone-groundZero").getTexture() ? PageType.zone :
region.getTexture() == Core.atlas.find("whiteui").getTexture() ? PageType.ui :
PageType.main;
}
private PageType getPage(FileHandle file){
String parent = file.parent().name();
return
parent.equals("environment") ? PageType.environment :
parent.equals("editor") ? PageType.editor :
parent.equals("zones") ? PageType.zone :
parent.equals("ui") || file.parent().parent().name().equals("ui") ? PageType.ui :
PageType.main;
}
/** Removes a mod file and marks it for requiring a restart. */
public void removeMod(LoadedMod mod){
if(mod.root instanceof ZipFileHandle){
@ -172,8 +209,7 @@ public class Mods implements Loadable{
/** Loads all mods from the folder, but does not call any methods on them.*/
public void load(){
for(FileHandle file : modDirectory.list()){
if(!file.extension().equals("jar") && !file.extension().equals("zip") && !(file.isDirectory() && file.child("mod.json").exists())) continue;
if(!file.extension().equals("jar") && !file.extension().equals("zip") && !(file.isDirectory() && (file.child("mod.json").exists() || file.child("mod.hjson").exists()))) continue;
Log.debug("[Mods] Loading mod {0}", file);
try{
@ -206,6 +242,7 @@ public class Mods implements Loadable{
}
resolveDependencies();
//sort mods to make sure servers handle them properly.
loaded.sort(Structs.comparing(m -> m.name));
@ -213,6 +250,10 @@ public class Mods implements Loadable{
}
private void resolveDependencies(){
Array<LoadedMod> incompatible = loaded.select(m -> !m.isSupported());
loaded.removeAll(incompatible);
disabled.addAll(incompatible);
for(LoadedMod mod : Array.<LoadedMod>withArrays(loaded, disabled)){
updateDependencies(mod);
}
@ -354,7 +395,7 @@ public class Mods implements Loadable{
FileHandle folder = contentRoot.child(type.name().toLowerCase() + "s");
if(folder.exists()){
for(FileHandle file : folder.list()){
if(file.extension().equals("json") || file.extension().equals("hjson") || file.extension().equals("js")){
if(file.extension().equals("json") || file.extension().equals("hjson")){
runs.add(new LoadRun(type, file, mod));
}
}
@ -482,13 +523,13 @@ public class Mods implements Loadable{
zip = zip.list()[0];
}
FileHandle metaf = zip.child("mod.json").exists() ? zip.child("mod.json") : zip.child("plugin.json");
FileHandle metaf = zip.child("mod.json").exists() ? zip.child("mod.json") : zip.child("mod.hjson").exists() ? zip.child("mod.hjson") : zip.child("plugin.json");
if(!metaf.exists()){
Log.warn("Mod {0} doesn't have a 'mod.json'/'plugin.json' file, skipping.", sourceFile);
Log.warn("Mod {0} doesn't have a 'mod.json'/'plugin.json'/'mod.js' file, skipping.", sourceFile);
throw new IllegalArgumentException("No mod.json found.");
}
ModMeta meta = json.fromJson(ModMeta.class, metaf.readString());
ModMeta meta = json.fromJson(ModMeta.class, Jval.read(metaf.readString()).toString(Jformat.plain));
String camelized = meta.name.replace(" ", "");
String mainClass = meta.main == null ? camelized.toLowerCase() + "." + camelized + "Mod" : meta.main;
String baseName = meta.name.toLowerCase().replace(" ", "-");
@ -563,6 +604,18 @@ public class Mods implements Loadable{
return !missingDependencies.isEmpty();
}
/** @return whether this mod is supported by the game verison */
public boolean isSupported(){
if(Version.build <= 0 || meta.minGameVersion == null) return true;
if(meta.minGameVersion.contains(".")){
String[] split = meta.minGameVersion.split("\\.");
if(split.length == 2){
return Version.build >= Strings.parseInt(split[0], 0) && Version.revision >= Strings.parseInt(split[1], 0);
}
}
return Version.build >= Strings.parseInt(meta.minGameVersion, 0);
}
@Override
public String getSteamID(){
return Core.settings.getString(name + "-steamid", null);
@ -632,7 +685,7 @@ public class Mods implements Loadable{
/** Plugin metadata information.*/
public static class ModMeta{
public String name, author, description, version, main;
public String name, author, description, version, main, minGameVersion;
public Array<String> dependencies = Array.with();
/** Hidden mods are only server-side or client-side, and do not support adding new content. */
public boolean hidden;
@ -662,5 +715,13 @@ public class Mods implements Loadable{
this.mod = content.mod;
}
}
public ModLoadException(String message, @Nullable Content content){
super(message);
this.content = content;
if(content != null){
this.mod = content.mod;
}
}
}
}

View file

@ -3,8 +3,11 @@ package io.anuke.mindustry.net;
import io.anuke.annotations.Annotations.*;
import io.anuke.arc.*;
import io.anuke.arc.collection.*;
import io.anuke.mindustry.Vars;
import static io.anuke.mindustry.Vars.headless;
import static io.anuke.mindustry.game.EventType.*;
public class Administration{
/** All player info. Maps UUIDs to info. This persists throughout restarts. */
@ -76,7 +79,7 @@ public class Administration{
bannedIPs.add(ip);
save();
Events.fire(new PlayerIpBanEvent(ip));
return true;
}
@ -88,7 +91,7 @@ public class Administration{
getCreateInfo(id).banned = true;
save();
Events.fire(new PlayerBanEvent(Vars.playerGroup.find(p -> id.equals(p.uuid))));
return true;
}
@ -108,8 +111,10 @@ public class Administration{
bannedIPs.removeValue(ip, false);
if(found) save();
if(found){
save();
Events.fire(new PlayerIpUnbanEvent(ip));
}
return found;
}
@ -126,7 +131,7 @@ public class Administration{
info.banned = false;
bannedIPs.removeAll(info.ips, false);
save();
Events.fire(new PlayerUnbanEvent(Vars.playerGroup.find(p -> id.equals(p.uuid))));
return true;
}

View file

@ -85,6 +85,9 @@ public class ContentDisplay{
table.left().defaults().fillX();
table.add(Core.bundle.format("item.corestorable", item.type == ItemType.material ? Core.bundle.format("yes") : Core.bundle.format("no")));
table.row();
table.add(Core.bundle.format("item.explosiveness", (int)(item.explosiveness * 100)));
table.row();
table.add(Core.bundle.format("item.flammability", (int)(item.flammability * 100)));

View file

@ -74,6 +74,9 @@ public class HostDialog extends FloatingDialog{
ui.showCustomConfirm("$setting.publichost.name", "$public.confirm", "$yes", "$no", () -> {
Core.settings.putSave("publichost", true);
platform.updateLobby();
}, () -> {
Core.settings.putSave("publichost", false);
platform.updateLobby();
});
}));
}

View file

@ -9,6 +9,7 @@ import io.anuke.arc.math.*;
import io.anuke.arc.scene.ui.*;
import io.anuke.arc.scene.ui.layout.*;
import io.anuke.arc.util.*;
import io.anuke.arc.util.serialization.*;
import io.anuke.mindustry.*;
import io.anuke.mindustry.core.*;
import io.anuke.mindustry.gen.*;
@ -359,6 +360,20 @@ public class JoinDialog extends FloatingDialog{
@SuppressWarnings("unchecked")
private void loadServers(){
servers = Core.settings.getObject("server-list", Array.class, Array::new);
//get servers
Core.net.httpGet(serverJsonURL, result -> {
try{
Jval val = Jval.read(result.getResultAsString());
Core.app.post(() -> {
try{
defaultServers.clear();
val.asArray().each(child -> defaultServers.add(child.getString("address", "<invalid>")));
Log.info("Fetched {0} global servers.", defaultServers.size);
}catch(Throwable ignored){}
});
}catch(Throwable ignored){}
}, t -> {});
}
private void saveServers(){

View file

@ -143,7 +143,7 @@ public class MapsDialog extends FloatingDialog{
button.row();
button.stack(new Image(map.safeTexture()).setScaling(Scaling.fit), new BorderImage(map.safeTexture()).setScaling(Scaling.fit)).size(mapsize - 20f);
button.row();
button.add(map.custom ? "$custom" : map.workshop ? "$workshop" : "$builtin").color(Color.gray).padTop(3);
button.add(map.custom ? "$custom" : map.workshop ? "$workshop" : map.mod != null ? "[lightgray]" + map.mod.meta.name : "$builtin").color(Color.gray).padTop(3);
i++;
}

View file

@ -132,7 +132,7 @@ public class ModsDialog extends FloatingDialog{
title.addImageTextButton(mod.enabled() ? "$mod.disable" : "$mod.enable", mod.enabled() ? Icon.arrowDownSmall : Icon.arrowUpSmall, Styles.cleart, () -> {
mods.setEnabled(mod, !mod.enabled());
setup();
}).height(50f).margin(8f).width(130f);
}).height(50f).margin(8f).width(130f).disabled(!mod.isSupported());
if(steam && !mod.hasSteamID()){
title.addImageButton(Icon.loadMapSmall, Styles.cleari, () -> {
@ -161,7 +161,10 @@ public class ModsDialog extends FloatingDialog{
t.labelWrap("[lightgray]" + mod.meta.description).growX();
t.row();
}
if(mod.hasUnmetDependencies()){
if(!mod.isSupported()){
t.labelWrap(Core.bundle.format("mod.requiresversion", mod.meta.minGameVersion)).growX();
t.row();
}else if(mod.hasUnmetDependencies()){
t.labelWrap(Core.bundle.format("mod.missingdependencies", mod.missingDependencies.toString(", "))).growX();
t.row();
}

View file

@ -99,10 +99,14 @@ public class SchematicsDialog extends FloatingDialog{
buttons.addImageButton(Icon.linkSmall, style, () -> platform.viewListing(s));
}else{
buttons.addImageButton(Icon.trash16Small, style, () -> {
ui.showConfirm("$confirm", "$schematic.delete.confirm", () -> {
schematics.remove(s);
rebuildPane[0].run();
});
if(s.mod != null){
ui.showInfo(Core.bundle.format("mod.item.remove", s.mod.meta.name));
}else{
ui.showConfirm("$confirm", "$schematic.delete.confirm", () -> {
schematics.remove(s);
rebuildPane[0].run();
});
}
});
}

View file

@ -189,9 +189,9 @@ public class BlockInventoryFragment extends Fragment{
private String round(float f){
f = (int)f;
if(f >= 1000000){
return (int)(f / 1000000f) + "[gray]mil[]";
return (int)(f / 1000000f) + "[gray]" + Core.bundle.getOrNull("unit.millions") + "[]";
}else if(f >= 1000){
return (int)(f / 1000) + "k";
return (int)(f / 1000) + Core.bundle.getOrNull("unit.thousands");
}else{
return (int)f + "";
}

View file

@ -345,7 +345,7 @@ public class HudFragment extends Fragment{
@Remote(targets = Loc.both, forward = true, called = Loc.both)
public static void setPlayerTeamEditor(Player player, Team team){
if(state.isEditor()){
if(state.isEditor() && player != null){
player.setTeam(team);
}
}

View file

@ -17,7 +17,6 @@ import io.anuke.mindustry.gen.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.ui.*;
import static io.anuke.arc.Core.assets;
import static io.anuke.mindustry.Vars.*;
public class MenuFragment extends Fragment{
@ -26,8 +25,6 @@ public class MenuFragment extends Fragment{
private MenuRenderer renderer;
public MenuFragment(){
assets.load("sprites/logo.png", Texture.class);
assets.finishLoading();
Events.on(DisposeEvent.class, event -> {
renderer.dispose();
});
@ -67,7 +64,7 @@ public class MenuFragment extends Fragment{
String versionText = "[#ffffffba]" + ((Version.build == -1) ? "[#fc8140aa]custom build" : (Version.type.equals("official") ? Version.modifier : Version.type) + " build " + Version.build + (Version.revision == 0 ? "" : "." + Version.revision));
parent.fill((x, y, w, h) -> {
Texture logo = Core.assets.get("sprites/logo.png");
TextureRegion logo = Core.atlas.find("logo");
float logoscl = Scl.scl(1);
float logow = Math.min(logo.getWidth() * logoscl, Core.graphics.getWidth() - Scl.scl(20));
float logoh = logow * (float)logo.getHeight() / logo.getWidth();
@ -76,7 +73,7 @@ public class MenuFragment extends Fragment{
float fy = (int)(Core.graphics.getHeight() - 6 - logoh) + logoh / 2 - (Core.graphics.isPortrait() ? Scl.scl(30f) : 0f);
Draw.color();
Draw.rect(Draw.wrap(logo), fx, fy, logow, logoh);
Draw.rect(logo, fx, fy, logow, logoh);
Fonts.def.setColor(Color.white);
Fonts.def.draw(versionText, fx, fy - logoh/2f, Align.center);

View file

@ -24,6 +24,7 @@ import io.anuke.mindustry.entities.traits.BuilderTrait.*;
import io.anuke.mindustry.entities.type.*;
import io.anuke.mindustry.gen.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.graphics.MultiPacker.*;
import io.anuke.mindustry.type.*;
import io.anuke.mindustry.ui.*;
import io.anuke.mindustry.world.blocks.*;
@ -93,6 +94,8 @@ public class Block extends BlockStorage{
public boolean drawLiquidLight = true;
/** Whether the config is positional and needs to be shifted. */
public boolean posConfig;
/** Whether to periodically sync this block across the network.*/
public boolean sync;
/** Whether this block uses conveyor-type placement mode.*/
public boolean conveyorPlacement;
/**
@ -755,10 +758,10 @@ public class Block extends BlockStorage{
}
@Override
public void createIcons(PixmapPacker packer, PixmapPacker editor){
super.createIcons(packer, editor);
public void createIcons(MultiPacker packer){
super.createIcons(packer);
editor.pack(name + "-icon-editor", Core.atlas.getPixmap((AtlasRegion)icon(Cicon.full)).crop());
packer.add(PageType.editor, name + "-icon-editor", Core.atlas.getPixmap((AtlasRegion)icon(Cicon.full)));
if(!synthetic()){
PixmapRegion image = Core.atlas.getPixmap((AtlasRegion)icon(Cicon.full));
@ -798,7 +801,7 @@ public class Block extends BlockStorage{
}
last = out;
packer.pack(name, out);
packer.add(PageType.main, name, out);
}
if(generatedIcons.length > 1){
@ -810,7 +813,7 @@ public class Block extends BlockStorage{
base.draw(Core.atlas.getPixmap(generatedIcons[i]));
}
}
packer.pack("block-" + name + "-full", base);
packer.add(PageType.main, "block-" + name + "-full", base);
generatedIcons = null;
Arrays.fill(cicons, null);
}

View file

@ -280,6 +280,10 @@ public class BuildBlock extends Block{
progress = Mathf.clamp(progress - amount);
if(builder instanceof Player){
builderID = builder.getID();
}
if(progress <= 0 || state.rules.infiniteResources){
Call.onDeconstructFinish(tile, this.cblock == null ? previous : this.cblock, builderID);
}

View file

@ -9,8 +9,10 @@ import io.anuke.arc.math.*;
import io.anuke.arc.math.geom.*;
import io.anuke.mindustry.content.*;
import io.anuke.mindustry.entities.Effects.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.graphics.MultiPacker.*;
import io.anuke.mindustry.type.*;
import io.anuke.mindustry.ui.Cicon;
import io.anuke.mindustry.ui.*;
import io.anuke.mindustry.world.*;
import static io.anuke.mindustry.Vars.tilesize;
@ -86,9 +88,9 @@ public class Floor extends Block{
}
@Override
public void createIcons(PixmapPacker out, PixmapPacker editor){
super.createIcons(out, editor);
editor.pack("editor-" + name, Core.atlas.getPixmap((AtlasRegion)icon(Cicon.full)).crop());
public void createIcons(MultiPacker packer){
super.createIcons(packer);
packer.add(PageType.editor, "editor-" + name, Core.atlas.getPixmap((AtlasRegion)icon(Cicon.full)).crop());
if(blendGroup != this){
return;
@ -97,7 +99,7 @@ public class Floor extends Block{
if(variants > 0){
for(int i = 0; i < variants; i++){
String rname = name + (i + 1);
editor.pack("editor-" + rname, Core.atlas.getPixmap(rname).crop());
packer.add(PageType.editor, "editor-" + rname, Core.atlas.getPixmap(rname).crop());
}
}
@ -114,7 +116,7 @@ public class Floor extends Block{
}
}
out.pack(name + "-edge", result);
packer.add(PageType.environment, name + "-edge", result);
}
@Override

View file

@ -4,6 +4,8 @@ import io.anuke.annotations.Annotations.*;
import io.anuke.arc.*;
import io.anuke.arc.graphics.*;
import io.anuke.arc.graphics.g2d.*;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.graphics.MultiPacker.*;
import io.anuke.mindustry.type.*;
import io.anuke.mindustry.world.*;
@ -34,7 +36,7 @@ public class OreBlock extends OverlayFloor{
@Override
@OverrideCallSuper
public void createIcons(PixmapPacker out, PixmapPacker editor){
public void createIcons(MultiPacker packer){
for(int i = 0; i < variants; i++){
Pixmap image = new Pixmap(32, 32);
PixmapRegion shadow = Core.atlas.getPixmap(itemDrop.name + (i + 1));
@ -55,12 +57,12 @@ public class OreBlock extends OverlayFloor{
image.draw(shadow);
out.pack(name + (i + 1), image);
editor.pack("editor-" + name + (i + 1), image);
packer.add(PageType.environment, name + (i + 1), image);
packer.add(PageType.editor, "editor-" + name + (i + 1), image);
if(i == 0){
editor.pack("editor-block-" + name + "-full", image);
out.pack("block-" + name + "-full", image);
packer.add(PageType.editor, "editor-block-" + name + "-full", image);
packer.add(PageType.main, "block-" + name + "-full", image);
}
}
}

View file

@ -175,7 +175,7 @@ public class ItemBridge extends Block{
while(it.hasNext){
int i = it.next();
Tile other = world.tile(i);
if(!linkValid(tile, other, false)){
if(!linkValid(tile, other, false) || other.<ItemBridgeEntity>entity().link != tile.pos()){
it.remove();
}
}
@ -298,7 +298,7 @@ public class ItemBridge extends Block{
@Override
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
if(tile.getTeam() != source.getTeam()) return false;
if(tile.getTeam() != source.getTeam() || !hasLiquids) return false;
ItemBridgeEntity entity = tile.entity();
Tile other = world.tile(entity.link);

View file

@ -30,6 +30,8 @@ public class LiquidBridge extends ItemBridge{
if(!linkValid(tile, other)){
tryDumpLiquid(tile, entity.liquids.current());
}else{
((ItemBridgeEntity)world.tile(entity.link).entity).incoming.add(tile.pos());
if(entity.cons.valid()){
float alpha = 0.04f;
if(hasPower){

View file

@ -30,6 +30,8 @@ public class LiquidExtendingBridge extends ExtendingItemBridge{
if(!linkValid(tile, other)){
tryDumpLiquid(tile, entity.liquids.current());
}else{
((ItemBridgeEntity)world.tile(entity.link).entity).incoming.add(tile.pos());
if(entity.cons.valid()){
entity.uptime = Mathf.lerpDelta(entity.uptime, 1f, 0.04f);
}else{

View file

@ -18,6 +18,7 @@ public class PowerGenerator extends PowerDistributor{
public PowerGenerator(String name){
super(name);
sync = true;
baseExplosiveness = 5f;
flags = EnumSet.of(BlockFlag.producer);
entityType = GeneratorEntity::new;

View file

@ -134,6 +134,11 @@ public class Drill extends Block{
return tile.entity.items.total() < itemCapacity;
}
@Override
public boolean shouldIdleSound(Tile tile){
return tile.entity.efficiency() > 0.01f;
}
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Tile tile = world.tile(x, y);

View file

@ -35,6 +35,7 @@ public class GenericCrafter extends Block{
hasItems = true;
health = 60;
idleSound = Sounds.machine;
sync = true;
idleSoundVolume = 0.03f;
entityType = GenericCrafterEntity::new;
}

View file

@ -80,6 +80,7 @@ public class LaunchPad extends StorageBlock{
int used = Math.min(entity.items.get(item), itemCapacity);
data.addItem(item, used);
entity.items.remove(item, used);
Events.fire(new LaunchItemEvent(item, used));
}
}
}

View file

@ -28,6 +28,10 @@ task run(dependsOn: classes, type: JavaExec){
args Eval.me(project.getProperties()["args"])
}
if(project.hasProperty("jvmArgs")){
jvmArgs((List<String>)Eval.me(project.getProperties()["jvmArgs"]))
}
if(args.contains("debug")){
main = "io.anuke.mindustry.DebugLauncher"
}
@ -151,7 +155,7 @@ PackrConfig.Platform.values().each{ platform ->
include "${lib}steamworks4j${platform == PackrConfig.Platform.Windows64 ? '64.dll' : platform == PackrConfig.Platform.Windows32 ? '.dll' : platform == PackrConfig.Platform.Linux64 ? '.so' : '.dylib'}"
include "${lib}steam_api${platform == PackrConfig.Platform.Windows64 ? '64.dll' : platform == PackrConfig.Platform.Windows32 ? '.dll' : platform == PackrConfig.Platform.Linux64 ? '.so' : '.dylib'}"
}
into "build/packr/output/"
into platform != PackrConfig.Platform.MacOS ? "build/packr/output/" : "build/packr/output/${appName}.app/Contents/Resources"
}
}

View file

@ -195,17 +195,15 @@ public class SStats implements SteamUserStatsCallback{
});
Events.on(LaunchEvent.class, e -> {
int total = 0;
for(Item item : Vars.content.items()){
total += Vars.state.stats.itemsDelivered.get(item, 0);
}
if(state.rules.tutorial){
completeTutorial.complete();
}
SStat.timesLaunched.add();
SStat.itemsLaunched.add(total);
});
Events.on(LaunchItemEvent.class, e -> {
SStat.itemsLaunched.add(e.stack.amount);
});
Events.on(WaveEvent.class, e -> {

View file

@ -39,7 +39,7 @@ public class SWorkshop implements SteamUGCCallback{
workshopFiles.put(Map.class, folders.select(f -> f.list().length == 1 && f.list()[0].extension().equals(mapExtension)).map(f -> f.list()[0]));
workshopFiles.put(Schematic.class, folders.select(f -> f.list().length == 1 && f.list()[0].extension().equals(schematicExtension)).map(f -> f.list()[0]));
workshopFiles.put(LoadedMod.class, folders.select(f -> f.child("mod.json").exists()));
workshopFiles.put(LoadedMod.class, folders.select(f -> f.child("mod.json").exists() || f.child("mod.hjson").exists()));
if(!workshopFiles.get(Map.class).isEmpty()){
SAchievement.downloadMapWorkshop.complete();

View file

@ -0,0 +1,5 @@
- Added fallback mod loading for poorly formatted old mods
- Fixed infinite building range
- Fixed impact reactors being able to blow up core on servers
- Fixed liquid bridges passing backwards
- Updated various translations

View file

@ -0,0 +1,5 @@
- Added fallback mod loading for poorly formatted old mods
- Fixed infinite building range
- Fixed impact reactors being able to blow up core on servers
- Fixed liquid bridges passing backwards
- Updated various translations

View file

@ -0,0 +1,6 @@
- Dodano awaryjne wczytywani modów dla źle przygotowanych modów na starsze wersje
- Naprawiono nieskończony zasięg budowy
- Naprawiono reaktor uderzeniowy mogący zniszczyć rdzeń na serwerze
- Naprawiono most płynów działąjący wstecz
- Updated various translations
- Zaktualizowano tłumaczenia

View file

@ -0,0 +1,10 @@
- Dodano eksperymentalny system oświetlenia - może być aktywowany w menu własnych zasad gry
- Added power diode block (Contributed by Quezler)
- Dodano blok diody (Dodane dzięki Quezler)
- Dodano opancerzoną rurę (Dodane dzięki Quezler)
- Dodano bloki światła tylko dla ciemnych map
- Polepszono prędkość rury pulsacyjnej (Dodano dzięki Quezler)
- Polepszono piorytet budowy
- Nowy format parsowania modów (HJSON)
- Naprawiono wyświetlanie niepoprawnych wartości zużycia bloku
- Naprawiono 'underwater' w edytorze

View file

@ -0,0 +1,15 @@
Twórz skomplikowane linie transportowe przy użyciu przenośników by zaopatrzyć wieżyczki w amunicję, produkować materiały używane do budowy, oraz broń swoje struktury przed falami wrogów. Graj ze swoimi przyjaciółmi w międzyplatformowych rozgrywkach wieloosobwych typu co-op, lub rzuć im wyzwanie w drużynowych rozgrywkach PvP.
W grze znajdziesz:
- 24 podstawowe mapy
- Kampanię z drzewkiem rozwoju technologii i terenami do odblokowania
- 4 potężne fale bossów
- System zarządzania elektrycznoścą, transportem cieczy i przedmiotów
- 19 unikatowych typów dronów, mechów i statków
- 120+ bloków do użycia podczas gry
- 75+ różnorodnych bloków terenu
- Graj ze znajomymi przez sieć lokalną lub na serwerze dedykowanym
- Zmieniaj zasady gry: Modyfikuj kosz budowy bloków, statystyki przeciwników, przedmioty na start, czas trwania tury i więcej
- Stwórz własną mapę przy użyciu wbudowanego edytora i popisz się kreatywnością z innymi
- Sam zdecyduj skąd nadejdzie następny atak

View file

@ -0,0 +1 @@
Bazująca na przetrwaniu i zarządzaniu fabryką sandboxowa gra typu obrony wieży.

View file

@ -0,0 +1 @@
Bazująca na przetrwaniu i zarządzaniu fabryką sandboxowa gra typu obrony wieży.

View file

@ -0,0 +1 @@
Mindustry

View file

@ -0,0 +1,9 @@
- Додана експериментальна система освітлення. Можна увімкнути у користувацьких правилах гри.
- Додано блок діоду (Сприяв Quezler).
- Додано зміцнений трубопровід (Сприяв Quezler).
- Додано блок освітлювача. Є тільки на темних мапах.
- Підвищена швидкість трубопровода (Сприяв Quezler).
- Поліпшено пріоритет спорудження.
- Новий дозвільний формат для модифікацій (HJSON).
- Виправлено кілька неправильних відображень споживання в блоках.
- Виправлені «підводні» руди в редакторі мап.

View file

@ -0,0 +1,9 @@
- Додана експериментальна система освітлення. Можна увімкнути у користувацьких правилах гри.
- Додано блок діоду (Сприяв Quezler).
- Додано зміцнений трубопровід (Сприяв Quezler).
- Додано блок освітлювача. Є тільки на темних мапах.
- Підвищена швидкість трубопровода (Сприяв Quezler).
- Поліпшено пріоритет спорудження.
- Новий дозвільний формат для модифікацій (HJSON).
- Виправлено кілька неправильних відображень споживання в блоках.
- Виправлені «підводні» руди в редакторі мап.

View file

@ -1,3 +1,3 @@
org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m
archash=e9f5ea632c36a9890d6a96c7e9f1cef62ad92b54
archash=2caecb328322b840a760dbb8877952867abd54d1

View file

@ -74,6 +74,23 @@
</array>
</dict>
<dict>
<key>CFBundleTypeIconFiles</key>
<array>
<string>icon-72.png</string>
</array>
<key>CFBundleTypeName</key>
<string>Mindustry Schematic File</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>io.anuke.mindustry.schematicfile</string>
</array>
</dict>
<dict>
<key>CFBundleTypeIconFiles</key>
<array>
@ -111,6 +128,24 @@
<string>mindustry/msav</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>Mindustry Schematic File</string>
<key>UTTypeIdentifier</key>
<string>io.anuke.mindustry.schematicfile</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>msch</string>
<key>public.mime-type</key>
<string>mindustry/msch</string>
</dict>
</dict>
</array>
</dict>
</plist>

View file

@ -12,6 +12,7 @@ import io.anuke.mindustry.game.Saves.*;
import io.anuke.mindustry.io.*;
import io.anuke.mindustry.mod.*;
import io.anuke.mindustry.ui.*;
import org.robovm.apple.coregraphics.*;
import org.robovm.apple.foundation.*;
import org.robovm.apple.uikit.*;
import org.robovm.objc.block.*;
@ -124,7 +125,17 @@ public class IOSLauncher extends IOSApplication.Delegate{
NSURL url = new NSURL(to.file());
UIActivityViewController p = new UIActivityViewController(Collections.singletonList(url), null);
UIApplication.getSharedApplication().getKeyWindow().getRootViewController().presentViewController(p, true, () -> Log.info("Success! Presented {0}", to));
UIViewController rootVc = UIApplication.getSharedApplication().getKeyWindow().getRootViewController();
if(UIDevice.getCurrentDevice().getUserInterfaceIdiom() == UIUserInterfaceIdiom.Pad){
// Set up the pop-over for iPad
UIPopoverPresentationController pop = p.getPopoverPresentationController();
UIView mainView = rootVc.getView();
pop.setSourceView(mainView);
CGRect targetRect = new CGRect(mainView.getBounds().getMidX(), mainView.getBounds().getMidY(), 0, 0);
pop.setSourceRect(targetRect);
pop.setPermittedArrowDirections(UIPopoverArrowDirection.None);
}
rootVc.presentViewController(p, true, () -> Log.info("Success! Presented {0}", to));
}catch(Throwable t){
ui.showException(t);
}

View file

@ -19,6 +19,9 @@ task run(dependsOn: classes, type: JavaExec){
if(project.hasProperty("appArgs")){
args Eval.me(appArgs)
}
if(project.hasProperty("jvmArgs")){
jvmArgs((List<String>)Eval.me(project.getProperties()["jvmArgs"]))
}
}
task debug(dependsOn: classes, type: JavaExec){

View file

@ -60,7 +60,7 @@ public class ServerControl implements ApplicationListener{
"shufflemode", "normal",
"bans", "",
"admins", "",
"shufflemode", "all",
"shufflemode", "custom",
"crashreport", false,
"port", port,
"logging", true,
@ -527,6 +527,16 @@ public class ServerControl implements ApplicationListener{
info("Player &ly'{0}'&lg has been un-whitelisted.", info.lastName);
});
handler.register("sync", "[on/off...]", "Enable/disable block sync. Experimental.", arg -> {
if(arg.length == 0){
info("Block sync is currently &lc{0}.", Core.settings.getBool("blocksync") ? "enabled" : "disabled");
return;
}
boolean on = arg[0].equalsIgnoreCase("on");
Core.settings.putSave("blocksync", on);
info("Block syncing is now &lc{0}.", on ? "on" : "off");
});
handler.register("crashreport", "<on/off>", "Disables or enables automatic crash reporting", arg -> {
boolean value = arg[0].equalsIgnoreCase("on");
Core.settings.put("crashreport", value);

1
servers.json Normal file
View file

@ -0,0 +1 @@
[]